Brian C. Lane
Brian C. Lane

Archives

Using OpenVPN on an iPhone

You are being tracked. It is now no secret that on every level your cellphone is being used to compromise your privacy. Not only are the cellphone providers injecting tracking headers they have been selling off your location data to 3rd parties with lousy website security. We have no way to know how much of this data was archived, or who may have access to it. There is no way to ensure that it is all deleted.

Converting DICOM xray images to JPEG

I recently needed to convert a CD of xrays into jpeg images, and it wasn’t immediately obvious how to do this. The files on the CD were in DICOM format, which appears to be a commonly used format in the medical community that includes the image and extra metadata about the patient. I first used the aeskulap viewer which worked fine for viewing, but has no options (that I could find) for exporting them to regular...

Signing Webpages with GnuPG

Inspired by this old post from Rob Smith I have started making some changes to the blog. All of the pages are now signed using my GPG key, and can be verified by running curl https://www.brianlane.com/ | gpg --verify on the page. Rob did this by adding a plugin to Jekyll, but I’m using the Pelican static blog system for these pages, and as far as I can tell Pelican’s plugin support has...

Fixing A Few Logitech Trackballs

We love the Logitech trackballs in my house. I've used them for so long that the oldest one I have has a PS/2 connector on it. Overall they hold up really well, and I've never had a problem with them completely dying on me. But the left button does wear out after a few years (or less, depending on how many games you play). I decided to finally do something about the growing pile of them by replacing the switch. It's...

Switching To Using roPosterScreen for HMS

After almost 9 years of using my Home Media Server project I have accumulated over 2500 individual videos. HMS is written in BrightScript, and runs on the Roku Players and TVs. When I originally wrote HMS I only had a few hundred videos, so loading times were short. On my older players it can now take several minutes before the user interface is ready to use. This can cause family members to randomly say things like "This is too slow"...

Movie Box - Offline Movie Server for Roku

Stream movies from a Raspberry Pi without using a network connection. Useful during power outages, hiking in remote locations (with a HMDI monitor strapped to your pack, or locations with restricted or no available network. This combines my HMS and Clortho projects with a simple installation script to setup an old Pi I have laying around so that it will stream movies from a USB drive directly to the Roku. No network, no switches, no USB hubs needed. You should download...

Transitioning to a New GPG Key

I am transitioning to a new GnuPG key, here is my transition statement, based on one from Simon Josefsson Here is my signed statement: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512,SHA1 OpenPGP Key Transition Statement for Brian C. Lane I have created a new OpenPGP key and will be transitioning away from my old key. The old key has not been compromised and will continue to be valid for 30 days, but I prefer all future correspondence to be encrypted...

Creating OpenStack images with livemedia-creator

I was going to write about using mock to make live iso's without using virt-install, but this week is the OpenStack Summit and one of the things you can use livemedia-creator (lmc) for is making disk images for use with OpenStack. If you followed the instructions in my previous post on creating live isos you already have everything you need except the kickstart and OpenStack. I'm not going to cover how to setup OpenStack, I used the instructions...

Creating live isos with livemedia-creator

In this post I am going to describe how to create bootable live isos using livemedia-creator (lmc). It was created so that the same Anaconda installer logic would be used for installing systems and creating bootable media like the live iso. lmc can also be used to create disk images, but I'll cover that in the next post. Anaconda and kickstart are used to install the packages, and lmc compresses the filesystem and...

Creating the Anaconda boot.iso with lorax

Fedora 22 is almost here, so I thought I'd write a couple posts on how to use lorax and livemedia-creator to create bootable Fedora images. I'll start with lorax. It is used to create the Anaconda boot.iso which is used to install systems using a network connection. You can also automate your installations by using the boot.iso with a kickstart file. Lorax is part of the current release-engineering workflow and is used to create...

Saving the state for Home Media Server

Home Media Server is a Roku application for streaming video from a http server. I started the project in 2009 after Roku released the SDK for their devices. Originally it was a server and a client, but I rewrote it in 2010 as just a client so that the only external dependency was a http server that could handle partial file requests. In 2013 I rewrote the client to use the gridScreen layout which lets...

Setup oath ssh login on Fedora

There are occasions where I’d like to be able to ssh to a system without using the password or having to setup a ssh key. Another alternative for authentication is the pam_oath module which allows you to use OATH applications like FreeOTP or Google Authenticator for 2-factor logins. Start by installing the required packages. This is specific to Fedora, other distributions will be similar but slightly different in fun and challenging ways. yum install pam_oath oathtool gen-oath-safe

Deploying clortho with ansible and venv

I have started using Ansible to manage the few services that I still have running around here. I want to deploy clortho to a user on the system I use for serving up movies to my Roku players. I need to copy the source, setup a venv with the dependencies (aiohttp), and setup a systemd unit to make sure it is started at boot time. As of Python 3.3 the core library includes support...

clortho - A simple key/value server

clortho is a very simple key/value server written using python 3.4 and aiohttp key namespace is per-client IP address, and there is no authentication. It supports direct connections from clients, and the X-Forwarded-For header for use with proxies. I shouldn’t have to mention that running this on an open network isn’t a good idea. Get a key value by requesting http://server/keystore/ curl http://server/keystore/louis If the key has been set it will return a...

https is now the default protocol

On June 5th the EFF called for people to Reset the Net and do something to enhance their privacy on the net. I have put off switching to https for my sites because I host them using S3 and CloudFront, and up until recently it was extremely expensive to use a SSL certificate with your site. But now, thanks to SNI support in CloudFront, the cost is just slightly more than for http requests.

Automatic Backup of Files to S3 and Glacier

Automatic backups are important, especially when it comes to irreplaceable data like family photos. I have used s3cmd to maintain my website’s static files for a while now, and it was simple to use it to push my 100GB+ archive of photos over to S3. But I needed an automated way to update it with any new photos that my wife or I may take. The sync protocol really isn’t what you want — there should be no...

Chat with Tor and socat

It is easy to setup a simple chat over Tor using the socat utility. To receive incoming messages you first need to setup a Tor hidden service. Add this to the end of your /etc/tor/torrc file: HiddenServiceDir /var/lib/tor/hidden-chat/ HiddenServicePort 2330 127.0.0.1:2330 After restarting Tor check the /var/lib/tor/hidden-chat/hostname file for your hidden service .onion address. Use socat to setup a listener on port 2330, now incoming connections to ADDRESS.onion:2330 will show up on your terminal. Run...

Xmonad on a MacBook Pro with Fedora 19

For years I have dual booted my Macbook with Fedora. Things have always almost worked, but never quite as smoothly as they do under OSX. Typically the problems are with the trackpad, wireless drivers and heat control — The fans on my MBP didn’t want to kick on at the point I’d like them to and Fedora just runs hotter than OSX does for the same workflow. With F19 things are somewhat better, the following xorg config file...

Reliable Wireless Temperatures

The temperature sensors that I use to drive the freezer graph are in my garage, which doesn’t have an easy way to run wires to the server room. I have a WRT54GL running DD-WRT configured as a bridge to the rest of my network. The problem with this is that the connection isn’t always reliable. I used to have a simple script that read the temps and fed them to...

NASCAR Countdown for iPhone

The NASCAR Countdown app displays a countdown to the next NASCAR race, the name of the race and the television network carrying the race. On the flip side all of the races for the season are listed, and tapping on one of them will go to the nascar.com website for that track. The application now includes all of the Sprint Cup, Nationwide Series and Camping World Truck races. Moving a BackupPC Pool

I have been using BackupPC to automatically back up the systems on my LAN for years now. It started out with a 3x250GB RAID5 as the storage pool and when I ran out of space on that I added another disk to bring it up to about 700GB. BackupPC does an excellent job of pooling common files together so that they don’t take up extra space. This is especially useful if you are backing...

New MovieLandmarks Update

Movie Landmarks is back online. I think this is the 5th iteration of the project that I originally started back in 2006. It started out as a PHP app, morphed into a python wsgi application. It was always backed by a mysql db with lots of interactive features. For this redesign I've dropped all of that extra stuff and simplified things. I threw out the database and replaced it with a couple of python dictionaries holding the landmark...

Local time for mutt email display

I use mutt as my email client. Something that has recently been bugging me is that when reading a message it displays the original Date: header with the sender's timezone. Since I work with people in several different zones I am constantly having to do timezone math when looking at these. So I decided to fix that with a bit of python. One of mutt's features is that you can feed every email you...

Changes to the Webpage and Blog

As you may have noticed my webpages have changed a bit today. After about 6 years I decided it was time to revamp things a bit. The old site was all written in plain html with an attempt at reference link usage. I decided to rewrite in Restructured Text using Python and some kind of template language. I decided to do some searching before writing my own and found the Pelican...

AIS Parser SDK is now Free

I have decided to discontinue sales of my AIS Parser SDK and have released the code under the BSD License on GitHub....

Nice %changelog entries

When updating a rpm package it is nice to include a summary of the changes made since the last time. anaconda does this with a nifty script written by dcantrell called makebumpver which also enforces some RHEL rules and handles changing the version. I only needed the changelog part of this so I modified the script a bit to remove the extras: #!/usr/bin/python # # git-changelog - Output a rpm changelog # # Copyright (C) 2009-2010...

AIS feed is up again

A few weeks back my ancient Compaq laptop stopped booting (two LOUD beeps, no display, no drive noises). This system has been used in the garage to act as a serial to WiFi bridge for my AIS receiver, and to log temperatures for the garage and freezer temps you see at digitemp.com. The AIS data feeds the Live AIS view of Puget Sound. The laptop was exiled to the garage after its power connector broke...

Using RAID to Escape Disaster

Failed hard drives are inevitable. Especially when the drive in question was manufactured on November 27, 2001. You know the time has come to replace it when your log files start filling up with errors like this: Oct 28 03:53:05 cat kernel: res 51/40:00:fc:33:4e/00:00:00:00:00/e0 Emask 0x9 (media error) Oct 29 16:06:46 cat smartd[24427]: Device: /dev/sdb [SAT], FAILED SMART self-check. BACK UP DATA NOW! Failure is inescapable. Everything fails eventually, computers, people, electronics. This...

Fedora Pumpkin

I used the template from here. There is also a template for Shadowman here. Maybe I'll try that one next year....

Kindle on Linux using Wine

I have a few books I've bought for reading using the Kindle app on my iPhone. I'd like to be able to read them on my Fedora Linux based MacBook as well, but Amazon hasn't released a version for Linux yet, which is ironic given that the Kindle's OS is Linux based. All is not lost, there is an excellent project called Wine that enables you to run many Windows applications on your...

tidy_html plugin for rawdog

Requires python-tiny package on Fedora. Cleans up the HTML, preventing broken elements from spilling over into adjacent postings. Code was lifted from feedparser.py and dropped into a plugin for rawdog since I couldn't find an easy way to get mx.Tiny installed. # rawdog plugin to tidy up html output using python-tidy module # Brian C. Lane # from tidy import parseString import rawdoglib.plugins, re def tidy_html(config,

Sharing Music on the LAN

No, not on the lam. On the LAN. I have a fairly large collection of music. Years ago I used iTunes to rip the CD's to AAC format. Recently I've been using Amazon.com for more of my downloads so I have converted the library to high quality VBR mp3 files instead. I like being able to play the music no matter which system I am using, and the iTunes sharing works well for that. I wanted to centralize storage of the...

Home Media Server Updates

Tonight I finished adding delete handlers and a delete confirmation dialog to HMS. This is probably the state that the code will be in for my LFNW presentation next Saturday....

color output from git log -p on OSX

By default git on OSX wasn't colorizing its output. Two things needed to be setup - setting the color.ui to auto and setting the pager (less) to allow raw characters. Add this to ~/.gitconfig [color] ui = auto [core] pager = less -R Presto! Nice colorized output from git!...

Fixed live.aisparser.com

I wasn't escaping the ship name and destination before creating the XML so a & character would make the javascript choke. Fixed now, so you should be seeing ships update....

GUETech is back up

www.guetech.org was the first domain I ever registered. This was back when domains were free and you send in an email form with your request. I used it for a UUCP connected BBS (via Eskimo North for a short time from my apartment in the mid 90s. Since then I have mostly used it to host mirrors of the Infocom Gallery project and the Interactive Fiction Archive. I have just finished...

Newseum Page Grabber Script

Newseum archives the front pages of of over 500 newspapers from all around the world. If you know the ID of the papers you want to see you can use this simple Python program to download the jpg of the papers' front page to your local system. Edit the CITIES list to set the IDs of the papers to be grabbed. #!/usr/bin/env python """ Quick Newseum Frontpage Grabber script

ALMS Countdown Approved in Record Time

Much to my surprise my 2 new iPhone apps were approved today. This must be a new record for the App Revew process -- according to the history the American Le Mans Series (ALMS) Countdown app started review at 11:26 AM and was approved at 15:08 (3h42m), the NASCAR Countdown version took slightly longer, from 9:23 to 16:42 (7h19m). I suppose the fact that these are dead-simple apps with only 2 views may have had...

ALMS Countdown for iPhone

The ALMS Countdown app displays a countdown to the next American Le Mans Series race, the name of the race and the television network carrying the race. On the flip side all of the races for the 2010 season are listed, and tapping on one of them will go to the website for that track. Requirements iPhone or iPod Release Notes v1.0 Initial release

Submitted NASCAR Countdown app to App Store

I have made an iPhone version of my NASCAR Countdown Widget and sumbitted it to the App Store. The NASCAR Countdown app displays a countdown to the next race, the name of the race and the television network carrying the race. On the flip side all of the races for the 2010 season are listed, and tapping on one of them will go to the nascar.com website for that track.

Hygrosens Python Library

Hygrosens manufactures a number of sensors for measuring temperature, humidity, light level, pressure. Their devices use a common serial data format for a wide variety of sensors, include 1-wire sensors from Dallas. This library reads the output from Hygrosens devices and passes it to a calling function as a hash. I have included an example that outputs the readings in human readable format, and another that stores the readings into a MySQL database. Humidity/Temperature...

WZON T-Shirts

I'm not sure what made me think of these today, but I did a couple of Google searches to see if I could track down any more of these shirts. The only one I could find is the Creep shirt. There seems to be a lack of info on them on the web, so I'm going to help fix that. Stephen King owns a couple of radio stations in Maine, one is WZON and back in the mid 80's the...

NASCAR Countdown Dashboard Widget

This is a simple countdown widget for the OSX Dashboard. It is a pure javascript implementation so it will also run inside a web browser as you can see above. This widget will display the time until the next NASCAR Broadcast, the countdown takes into account your local timezone. This widget was inspired by the Sprint Cup Widget which is now outdated. I used the graphics for the Daytona...

Simple SQL Schema Migration

I'm working on an application to manage my streaming media for my Roku player using sqlite3 and Python for everything. One thing I've learned over the years is that your SQL schema always changes. Once your code is in production you always have something you need to change about it, whether it's adding a new column, changing a type or tables to support new features. I wanted a way to automatically update the database...

Moved the blog home

I decided to move the blog from Wordpress hosting back to my own server. I want to be able to run my own Google Ads on the system and Wordpress doesn't allow that. I used the Export/Import feature of Wordpress 2.9 and found that it misses a couple of things. It doesn't transfer the theme over, the widets or the links. I had to handle all of them manually. Otherwise the move has gone smoothly....

Streaming Local Video With Your Roku

Ever since I switched from Dish Network to a Roku player a few months ago I have had a couple of things I wanted my player to be able to do. The ability to categorize my Netflix queue is at the top of my list and it would be very cool to be able to play video from a local server. The SDK won't help me modify the Netflix application, but streaming from a...

SharePics Accepted by Apple!

After many minutes of redesign the new look of SharePics was ready to go. I re-packaged the app, captured new screenshots, and re-submitted it to the AppStore. 9 days later I received an email notifying me that my app was now available for sale in the App Store! Thanks to everyone who offered advice and design ideas after the crushing rejection last month. I couldn't have done it without you! Now you can easily share your pictures with your friends...

SharePics for iPhone

SharePics is a simple application that uses Bluetooth to share pictures between two iPhone or iPod Touch (2nd gen) devices. You can also take pictures using the app and share them immediately. There is no need for a wireless access point or even a 3G connection. You can select your pictures from the iPhone album, or take a new photo with the camera and send it to your friend.

SharePics Rejected by Apple!

So I got my first rejection from the App Store today. According to their email it was rejected because - we cannot post your application because it appears to include features that resemble Polariod photographs. Polaroid has previously objected to other applications that include features that resemble Polaroid photographs, and believes that such features infringe its rights. Say what? Now, I'm the first to admit that my icon is a bit simple. But it seems like a reach for Polaroid to...

Backups, Archives and Overheating Processors

A few (ahum) years ago I wrote an article for Linux Journal on building a RAID system. While that exact system no longer exists, I do still have a RAID5 setup that I use with BackupPC to backup all the systems on my LAN. As I wrote about in my KVM article, I have updated my main Linux box to Fedora11. It had been out of backup rotation for about...

KVM on Fedora11

I've been a VMWare Workstation user for years and have generally been pretty happy with it; but it is significantly slower than bare metal, especially when it comes to disk i/o. One of my responsibilities for work is creating and maintaining a custom Fedora distribution. This requires building new rpm packages and then creating a livecd iso for the install of the system. Lots of disk i/o involved in reading and creating the disk...

iPhone Tech Talk Seattle

Today is the Seattle iPhone developer talk event. I'm headed for the ferry in a few minutes and figured I would give the Wordpress iPhone app a try. I'll update this post as I have time today. Well, it was a long day! I used twitter a bit, but didn't have a chance for any longer updates here. Here are my impressions and short notes from the sessions I attended. I attended 4 presentations: UI Design Essentials, Adding In App Purchase,...

LinuxFest Northwest 2008 Presentation

Replace Yourself With Python ais_download.py - setup passwords for product download website mail-grep.py - Use IMAP and python to grep mail for specific strings mail_customers.py - Use smtplib and python to announce new releases to customers release.txt - Template file used by mail_customers.py ssh_thread.py - Threaded skeleton to run a ssh command on multiple servers in parallel with randomized start time....

System Health Monitoring Software

System Health Monitor for Linux is a handy Python program that will setup your system to generate RRD Graphs of network interface traffic, system load, memory usage, disk space and inode usage and graphs of the number of running processes. It features a user-friendly interactive configuration mode and auto-generated html pages. Just point your web server to the health_html directory to get an overview of the status of your machine....

Safari Books Online Review

http://www.safaribooksonline.com/ Full disclosure: I was give a 60 day 10 slot bookshelf account on Safari Books for the purposes of reviewing it, with the understanding that I would receive a full year free when I posted a review to the KPLUG webpage. No other strings were attached. The Safari Tech Books project is an amazing undertaking. The online catalog includes 2013 (at the time of this writing) books from O'Reilly, SAMS, QUE, Cisco Press, and several...

LinuxFest Northwest 2005 Presentation

MSP430 Programming with Linux This is a presentation that I gave at Linux Fest Northwest 2005. It covers PC Board layout in Linux and programming the TI MSP430 microprocessor. Slide images are here Magic Point source is here This presentation was also the basis for an article published in Linux Journal Issue #142...

PICprg

PICprg is programmer software for Microchip PIC programmers. It is designed to work with any of the PC parallel port types of programers for the PIC16C84 processors. It features a very flexible configuration menu where you can set the parallel port pin for each function, and test them. Setup is easy and only requires a voltmeter. It includes a user friendly setup menu, memory dump screen with hex display. You should also read my Linux...

PhotoAlbum

PhotoAlbum is a Perl program that creates a nice web friendly photo album of your pictures. It creates top level index files and individual image pages with optional captions, image statistics and file names using plain html for easy uploading to any web host. Navigation buttons make moving between pictures easy. The Album generated it suitable for posting to a webpage, or burning to cdrom. One of the things I like to do is to take tons of...

SN-15 PalmOS AR-15 Serial Number List

This is a simple PalmOS application that contains all of the information that I could find on the serial number ranges for various AR-15 manufacturers indicating whether or not the rifle is a 'pre-ban' rifle or not. Select the manufacturer from the popup menu and all of the information that I have found for that manufacturer will be displayed in the main screen, if it is too large to fit on one screen the scroll bar will be enabled, use...

TrollBridge Network Authentication

TrollBridge is a set of Python scripts and iptable configuration that allows you to capture unknown network clients and authenticate them before allowing them to access the network (local, internet, 802.11 WiFi, etc.). It is based on the firewall script from NoCatSplash, but is written in Python instead of 'c'. It can be used to to setup a network hot-spot for your business, school or home. The only authorization methods currently available...

up2dateiso

up2dateiso is a Python script that will create current CD .iso images for RedHat 9, Fedora Core 1 and CentOS 3.1 with the latest rpm updates available. It also includes a custom KPLUG splash screen identifying when it was last updated. This project attempts to update downloaded iso images with the latest security releases from the distributions. It support RedHat 9,...

Snapple Real Facts

UPDATE 07/15/2003: I've put the Snapple Real Fact Page back up, even though I am no longer running a wiki. I'll start adding to my drinking list as well. Where did the list of Snapple Real Facts go, you are asking? Well here's the answer: On the previous Wiki I had a list of the caps from the Snapple bottles that I had been drinking, in the order I saw them. Some people added a full list of the caps, which was...

Linux Fest Northwest 2003

For me the day began with at 5am, scrambling to make sure I remembered to bring everything -- laptop, Zaurus, cat-5 cable, cellphone, digital camera, USB to serial adapter, camera cable for downloading pictures (I ought to be able to do that with the Zaurus, shouldn't I?), etc. I wasn't sure exactly how long it would take me to make it to Bellingham from Seabeck, but I was pretty sure I needed to catch the 7:10 Kingston...

Olympic Arms Phoenix Rising Event

UPDATE 11/17/2001 I'm a bit tardy in this update, the new Olympic Arms building is done and open for business. I haven't had the chance to make it down myself. I am lucky enough to live about an hour away from Olympic Arms in Olympia, Washington. They are manufacturers of a variety of weapons and kits, most famously for their highly accurate AR-15 rifles. On June 7, 2000 a bearing in an exhaust fan seized and the resulting...

Build an AR-15 Rifle

Contents Parts Build Problems Range Report This HOWTO was written in 2000. Since then the prices on bare lowers has gone up a little and the 'assault weapons' ban has expired. I'd like to dedicate this page to the memory of my friend Mike Jackson who died in March 2003. His enthusiasm for the AR-15 is what convinced...

XfreeCD audio CD player

XfreeCD was one of my first Linux projects, it is a audio CD player application that takes its visual design from Nate Smith's freeCD. Development of XfreeCD stalled when I switched to using xmms to play all my music after ripping all of it it to ogg format using Grip. Current development has been moved to a Source Forge project. Check there for...

Receive Updates

ATOM

Contacts