The blog of Bill Hager
Here is a helpful nugget if you're going to try and have gpg decrypt anything from STDIN.
I recently read a blog article that laid out a plan for becoming a great programmer:
Per this post on the plugcomputer.org forum's versions of Ubuntu after 9.04 will not work on the any of the current plug computer platforms since Ubuntu is now compiling for a different(newer?) version of the ARM platform that none of the plugs are using. Looks like I've got some repair todo here.
In addition to my new SheevaPlug I'm using my Lenovo T60 running Ubuntu 10.04.
hager@acornattack:~$ dmesg|tail [ 3442.662882] usb 4-1: Ignoring serial port reserved for JTAG [ 3442.662941] ftdi_sio 4-1:1.1: FTDI USB Serial Device converter detected [ 3442.662990] usb 4-1: Detected FT2232C [ 3442.662995] usb 4-1: Number of endpoints 2 [ 3442.663000] usb 4-1: Endpoint 1 MaxPacketSize 64 [ 3442.663004] usb 4-1: Endpoint 2 MaxPacketSize 64 [ 3442.663008] usb 4-1: Setting MaxPacketSize 64 [ 3442.665983] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB3 [ 3442.666016] usbcore: registered new interface driver ftdi_sio [ 3442.666021] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver hager@acornattack:~$
Welcome to minicom 2.4
OPTIONS: I18n
Compiled on Jan 25 2010, 06:49:09.
Port /dev/ttyUSB3
Press CTRL-A Z for help on special keys
Marvell>>
Typing "help" gives a nice long list of commands.
Typing "version" showed the U-Boot version
Marvell>> version U-Boot 1.1.4 (Jul 14 2009 - 06:46:57) Marvell version: 3.4.16 Marvell>>
Typing "boot" booted a pre installed version of "Ubuntu jaunty (development branch)". The username was "root" and the password was "nosoup4u".
Ubuntu jaunty (development branch) debian ttyS0 debian login:
Everything seems to be working just like it says on the New Plugger How To which is great.
I recently found out about Plug Computers. With the price point being just $99 I couldn't help but order one to try out. 37 days after I ordered it and just three days after my birthday I came home to find my new SheevaPlug computer waiting for me on my porch today. The packaging was very nice check out the unboxing here.
This music video was on at an indian resturant my wife and I were eating dinner at last night. It's Hilarius! ROCKET SINGH - Salesman of the Year
Today was an interesting day. About half way through a morning of sifting through emails with "Call me as soon as your available" and "can you deliver this to me" and phone calls to follow up with the former I found one of the really scary notes. "It's broken, and I think it's one of the pieces you installed." So I hopped into my car and headed south to see if I could shed some light on to the issue. The reality is that after spending the afternoon on site more than likely the issue is too much Black Monday web surfing and too little bandwidth.
The good news about today is that after I getting back home I got to watch 3 episodes of Anthony Bourdain and one of Andrew Zimmern episode. I love these shows! One of my favorite things to do is drink with Anthony Bourdain. When his show is on I run to my fridge and grab whatever I happen to have available, pour it in a glass, and just enjoy it with Anthony for a little while.
In addition to all this fun I feel a little inspired as well. These TV shows really bring out the community feel good aspects of food. I wonder. Can I go a month with only eating home and friend prepared foods? That means nothing commercially prepared(i.e. restaurants). I'll think about how this sounds in the morning and let you know what happens!
Beware all who use PLT Scheme for HTTP access. HTTP Authentication is not included in the net/url library. It's fairly easy to use HTTP Basic Auth, though. The functions below will create an HTTP Basic Auth header line which can be passed to any of the net/url HTTP access routines(like get-pure-port).
This code not exactly an optimal implementation. I use PLT's built in base64-encode and then take out all the new lines it puts in with the "remove-nl" routine instead of implementing a my-base64-encode that doesn't include new lines. On the upside, it works. :)
(define (make-basic-auth user pass)
(let ((user-pass (remove-nl
(base64-encode
(string->bytes/locale (format "~a:~a" user pass))))))
(format "Authorization: Basic ~a" user-pass)))
(define (remove-nl bstr)
(list->bytes
(reverse
(foldl
(lambda (byte rest)
(if (eq? byte 10)
rest
(cons byte rest)))
'()
(bytes->list bstr)))))
PLT Scheme has a built in library for accessing web resources called net/url. Unfortunately, access to SSL web servers is not supported. Fortunately, with just a few lines of code you can get SSL working yourself. The code below is from my first stab at it tonight. I hope this helps.
#lang scheme/base
(require scheme/unit
net/url-structs
net/url-sig
net/url-unit
net/tcp-sig
net/ssl-tcp-unit)
; You will want to point client-root-cert-files to your trusted
; root certificate files, otherwise any server certificate will
; be trusted which negates much of the value gotten from using
; SSL in the first place.
(define my-ssl-tcp@
(make-ssl-tcp@ #f ; server-cert-file
#f ; server-key-file
#f ; server-root-certs-file
#f ; server-suggest-auth-file
#f ; client-cert-file
#f ; client-key-file
#f)) ; client-root-cert-files (listof path-string?)
(define my-ssl-tcp+url@
(compound-unit
(import)
(export URL)
(link [((URL : url^)) url@ TCP]
[((TCP : tcp^)) my-ssl-tcp@])))
(define-values/invoke-unit my-ssl-tcp+url@
(import)
(export url^))
; example function demonstrating access to a https web server
; You can test it out with (my-get-url "https://login.yahoo.com")
(define (my-get-url url)
(read-string
100000
(get-pure-port (string->url url))))
Just in case anyone was wondering the USB interface sucks for drives. It doesn't matter if it's a disk drive or a flash drive. Any extended usage of the drive is *SLOW*. My proof is below. "FreeAgent\ Drive" is a 2.5" USB Free Agent drive from Seagate. The tests I've conducted with flash drives have exactly the same results. The average speed over a long I/O operation is really *SLOW*.
ubuntu@ubuntu:~$ dd if=/dev/zero of=/media/FreeAgent\ Drive/ext3.fs bs=1M count=20480 417+0 records in 417+0 records out 437256192 bytes (437 MB) copied, 27.5261 s, 15.9 MB/s 1136+0 records in 1136+0 records out 1191182336 bytes (1.2 GB) copied, 80.4907 s, 14.8 MB/s 1676+0 records in 1676+0 records out 1757413376 bytes (1.8 GB) copied, 123.998 s, 14.2 MB/s 3320+0 records in 3320+0 records out 3481272320 bytes (3.5 GB) copied, 305 s, 11.4 MB/s 8689+0 records in 8689+0 records out 9111076864 bytes (9.1 GB) copied, 1274.29 s, 7.1 MB/s 9328+0 records in 9328+0 records out 9781116928 bytes (9.8 GB) copied, 1448.38 s, 6.8 MB/s 12639+0 records in 12639+0 records out 13252952064 bytes (13 GB) copied, 2571.63 s, 5.2 MB/s 13305+0 records in 13305+0 records out 13951303680 bytes (14 GB) copied, 2888.83 s, 4.8 MB/s 20480+0 records in 20480+0 records out 21474836480 bytes (21 GB) copied, 6819.54 s, 3.1 MB/s ubuntu@ubuntu:~$
The easiest way to grow or shrink a filesystem on AIX is to use
chfs. Here are a couple examples for growing the /home filesystem
chfs -a size=+256M /home
chfs -a size=+2G /home
Here are the same examples for shrinking instead of growing
chfs -a size=-256M /home
chfs -a size=-2G /home
I've had Ubuntu installed on my laptop for ages. Recently, I've wanted to play some Windows games with my co-workers, so the other night I shrunk my Ubuntu 8.10 partition with gparted and installed Windows on the free space.
After that I had a little trouble getting grub installed again. Here's how I finally got it fixed.
title Windows XP
root (hd0,1)
makeactive
chainloader +1
I purchased a Logitech Cordless Desktop Wave Pro the other day, and so far it's working great. I'm running Ubuntu 8.10 Intrepid Ibex. I plugged it in, and all of the standard keys work. There are a few "media" keys around the eges like zoom, music, photos, etc that don't. The volume buttons do work. In the short time that I've used it I've noticed that I do make more typos than I did with my Thinkpad keyboard. It may be that I'm still adjusting. For the past several years I've used an IBM Thinkpad keyboard almost exclusively.
The mouse stands out in my opinion. It's responsive to very small movements. The curves fit my hand very well. The buttons are just right. I especially like the scroll wheel. It's very easy to move, but at the same time it doesn't move more than I want it to. The back and forward buttons on the mouse work in Firefox, too.
I have noticed that the reception is not infallible. My desktop sits on the floor just to the right of my wooden desk which is a completely solid object. With the mouse and keyboard on top of the desk the mouse reception does not always reach the sensor. I fixed this by getting a USB extender cable, so the sensor could sit on top of the desk. However, without the solid desk in the way the reception works across the room.
If you're in the market for a keyboard/mouse. I hope this helps.