Coach Thrasher
What will Baby T. Look Like?
Here's a very cool online app that lets you find out what kind of person your child might look like given a picture of the mom and dad:
Very cool! They should have a kiosk version of this at bars.
Posted at 03:38PM Oct 10, 2008 by jason in General |
Baby Twitter Howto
For the family and close friends interesting in following things via Twitter, here's the scoop: I'll be sending SMS updates to Twitter, and they will be sent to your phone if you're "following" me. I believe this is the easiest way to let everyone who's not in Palo Alto (which is almost everyone), follow along. It broadcasts updates to everyone at the same time, and doesn't create a distraction at the hospital with a kazillion phone calls. It worked great with Noah. So, here's what you need to do:
1) use your mobile phone to send a SMS text message to 40404 with "follow thrasher" as the only text in the body of the message.
2) wait for updates on your phone
OR, you can create an account on http://www.twitter.com and "follow" my username, which is "thrasher". There are more instructions here:
Twitter Help
Posted at 10:49PM Oct 07, 2008 by jason in General |
Twitter Baby Alerts
Just like with Noah, I'm sending out Twitter alerts as things progress. To get SMS updates pushed to your phone, subscribe to my Twitter feed here:
http://twitter.com/thrasher
Current status: Bridget has been feeling nauseous, and has flu-like symptoms. This is a sign of early labor. She didn't have any of this with Noah, but hey, this one's a girl.
Posted at 10:22AM Oct 05, 2008 by jason in General |
Baby Seat Two
I've finally installed the second carseat for Thrasher baby #2, due in .... any day! My 5 seat car is now a 2 seat station wagon. Check one action item off the list. Bridget will be happy.
Posted at 10:45AM Oct 04, 2008 by jason in General |
SVN diff with Meld
Every time I setup a new machine for development I forget a whole bunch of extra little bits that make developing more efficient and enjoyable. Most recently a new Macbook Pro has been my platform of choice. I like the visual diff implemented by Meld, and it works nicely using X11 with the Meld build coming from Fink. (Don't even try installing Meld from MacPorts... after 24 hours of hardcore Python pain it totally failed.) Here's a little script to launch a visual diff against the SVN repository that I keep misplacing (captured on my blog so I can find it again).
1) download it
2) move it to ~/bin/svn-diff-meld
3) chmod +x ~/bin/svn-diff-meld
4) echo "alias sd='svn diff --diff-cmd ~/bin/svn-diff-meld'" >> ~/.bash_profile
Then on the command line, run SVN diffs against the repo with something like:
$ sd -r 27003
or
$ sd path/to/some/file.txt
or
$ sd -r 27003 path/to/some/file.txt
Posted at 09:21AM Aug 15, 2008 by jason in Software |
Please, Thank you, You're Welcome
Noah is learning at least one new word every day. He's nearly 14 months old and already has a ~30 word vocabulary. It's amazing to see him identify something by name so quickly. He tries to pronounce multi-syllable words, but rushes through a bit to fast to get it all out. So "elephant" becomes "e-ant", and "Georgia" (our dog) becomes "Gege".
Bridget and I have realized that we need to interact with each other using proper communication so that Noah picks it up. Having been married for 4 years, we take appropriate shortcuts with each other in conversations. We've agreed to make a conscious effort to use "Please", "Thank you", and "Your Welcome" with each other while he's learning how to communicate.
Today I came across this timely quote for Noah:
"I learned very early the difference between knowing the name of something and knowing something."
-- Richard Feynman
My next step is to teach Noah how to learn to know something.
Posted at 04:41AM Aug 12, 2008 by jason in General |
jEdit on OSX 10.5.4
jEdit is a very lightweight text editor I've been using for years and years. Installation of jEdit on OSX 10.5.4 with JDK 1.6 fails due to a JNI incompatibility. Here's how to fix it.
Open the Info.plist file, and change:
to:
This file should live here, if you're using Safari's download manager:
~/Downloads/jEdit.app/Contents/Info.plist
Now jEdit can be installed to your dock normally.
The problem (on my developer-centric machine) is that the default JVM is 1.6, and the JNI libraries fail to allow jEdit to launch. Apparently it's because the Java-Cocoa bridge is 32-bit. When running with JDK6, I was getting this error:
[jason@jmac MacOS]$ ./jedit
[JavaAppLauncher] A 64-bit JVM is available for 1.6.0
[JavaAppLauncher] and it is the only version available
[JavaAppLauncher] JVMArchs not found in Java dictionary
10:16:04 AM [error] main: NSRuntime.loadLibrary(/usr/lib/java/libObjCJava.dylib) error.
10:16:04 AM [error] main: java.lang.UnsatisfiedLinkError: /usr/lib/java/libObjCJava.A.dylib:
10:16:04 AM [error] main: at java.lang.ClassLoader$NativeLibrary.load(Native Method)
[SNIP]
Posted at 10:35AM Jul 05, 2008 by jason in General |
Many Miles Before I Go
This moment of my life is described by John Hiatt's "Before I Go". I could not love my wife or my son any more. We need to make the most of our time together as this moment only comes once.
Posted at 08:09PM Jun 29, 2008 by jason in General |
RegCM and the Scientific Method
My wife is doing her graduate work at UCSC and using the RegCM regional climate model to simulate atmospheric conditions during the Eocene era. She frequently finds bugs in the code (FORTRAN), but she has no way to keep track of what changed other than creating a versioned tar ball of the whole code tree for each version change.
Recently she found a bug that affects all of the research she's done for the past 3 years. The bug likely affects countless other researchers and their published work, possibly invalidating their findings. This sounds incredibly troubling to me, but there's no way to understand what bugs those other researchers may have been affected by because they don't reference a version, branch, or tag, of any code tree.
How can any of their research be repeatable if they don't reference a version of their code? This seems like a fundamental flaw in implementation of the scientific method.
This has been driving me crazy because I would never embark on a large software project without a source control system. I would go insane tracking all of the changes, and trying to ascertain what happened when something didn't work.
After a little searching, I found a free SVN hosting solution at Code Spaces for her to use. It's not hosted at SourceForge, Google Code, or other OSS access points because we have little understanding of the licensing controls on the code, which is managed by some nice Italian climate researchers.
If anyone is interested in using the SVN system to track changes, here's where it lives:
http://svn.codespaces.com/regcm/regcm/
To check it out, just run:
svn co http://svn.codespaces.com/regcm/regcm/trunk regcm
Posted at 12:30PM Jun 27, 2008 by jason in Software |
TTL of Maven Repositories?
While building Spring Security 2.0.2 from their SVN tag I ran into what is increasingly becoming a major Maven annoyance. Namely, access to or maintenance of public Maven repositories is becoming problematic. They don't seem to be maintained, and when they are broken, many OSS projects aren't fixing references to them.
Spring Security, on the 2.0.2 SVN tag, won't build because it can't find the appropriate JetS3t. This is because the JetS3t jar doesn't exist where it once did. While I had no idea where it once lived, even the JetS3t Downloads page has incorrect instructions to find it: the referenced Maven repository URL doesn't seem to reference a valid S3 bucket. Maybe someone stopped paying the S3 bills?
So, while I was trying to update my JCaptcha code for AppFuse, I couldn't build the main Spring Security tree, nor the sandbox/captcha module required for JCaptcha. What a pain in the butt. Now I had to hunt down the correct version of the JetS3t jar to get Spring Security to build.
It turns out there's an interesting S3 based storage service called S3Browse that links to what appears to be a mirror of the former JetS3t maven repo path here: http://s3browse.com/explore/maven.springframework.org/external/. It's a bit shady because the jar isn't coming from the JetS3t file's owner, and I have no idea what's compiled into the version sitting on S3browse. Considering S3Browse's homepage doesn't seem to have been updated since 2007, I'm skeptical the link will live long.
So that begs the question: whats the time to live of OSS Maven repositories? I have faith Apache's will stick around, but there seems to be an opportunity for a repo-aggregator here to suck up the slack.
Posted at 10:43PM Jun 12, 2008 by jason in Software |
Glass Door
I just read about Glass Door, which shows salaries of companies that I'm competing against in the hiring relm. Specifically, we're competing against Google and Yahoo to hire the top talent in the Bay Area.
I'm very happy to say that 4INFO pays at the same level across the board. We need the brightest people, and must show that we'll compensate them appropriately in order to hire. It turns out that we're doing just that. I couldn't be prouder of Software Engineering at 4INFO!
Posted at 06:27PM Jun 12, 2008 by jason in Software |
Parameterized user.home for Maven on Windows XP
I found a handy way to reference the Java system property ${user.home} within a Maven build that supports Windows' ridiculous path name to home/profile directories:
c:\Documents and Settings\jason.
The problem is, when using Maven, this parameterized property doesn't get passed through as one property value, but as three, because somewhere in the build Maven chokes on the spaces or back-slashes and interprets it as either three arguments:
"c:\Documents", "and", "Settings\jason"
or treats the windows back-slash as an escape character and removes them so my parameterized user.home becomes:
"c:Documents and Settingsjason"
Why would this matter? Well, if you want to share build configurations with other developers, and can't check some of your files into a source control management system (because, for example, they contain private keys or certificates that don't belong in SCM), then you need a common, parameterized place to reference them that will work for every developer without much trouble. In my case, it's integration with Amazon's web-services that necessitates managing public/private PEM and P12 files.
For Amazon, I want to reference the AWS pem and p12 files like this from either the Maven pom.xml, or the settings.xml file:
${user.home}/aws/cert-BLAH.pem
${user.home}/aws/pk-BLAH.pem
${user.home}/aws/awskeystore-BLAH.p12
However, on Windows XP, unless I set the user.home on the build path every time, the back-slash escaping or space issues cause the files to not be found.
To fix it, add this profile to the $M2_HOME/conf/settings.xml file:
<profile>
<id>laptop-xp</id>
<properties>
<user.home>C:/Documents and Settings/${user.name}</user.home>
</properties>
</profile>
Then add an appropriate entry to the activeProfiles:
<activeProfile>laptop-xp</activeProfile>
Now every user will be able to use the user.home property to reference their home path correctly on the Windows box.
Posted at 10:13AM Jun 08, 2008 by jason in Software |
Mac OSX Terminal Colors
By terminal colors, I don't mean the colors of death, I do mean the command prompt. This dude has a great post on how to enable terminal colors on OSX. It's quite useful for reducing fatigue on the eyes (black background), and syntax highlighting within vi for different file extensions. My eyes get lost in the black and white of XML or Java after a few minutes on the stock terminal prompt.
Posted at 03:30PM Jun 02, 2008 by jason in Software |
HP XW9300 and Adaptec 2015S Linux Notes
I'm installing Linux on two machines for personal use and I've had a hell of a time getting the installer to identify the hardware.
The first box was a HP XW9300 machine, and I was applying a Fedora 8 installation via DVD. The problem was that the installer need a boot parameter to turn off ACPI, which was interfering with the hardware probe. This is done at the installer boot prompt with:
boot: linux pci=noacpi
The second box was a Supermicro 1u server (H8DAR-8 motherboard) with an Adaptec 2015S SCSI RAID host controller card, and I was applying CentOS 5.1 via DVD. I had configured the Adaptec to use RAID 10 for use as a database machine and CentOS 5.1 wasn't picking up the driver on probe. The solution was to boot into noprobe mode with:
boot: linux noprobe text
and then to specify the driver manually:
I2O Block driver (i2o_block)
I couldn't find this info anywhere, so hopefully it will help someone else.
Posted at 08:56AM Dec 10, 2007 by jason in Hardware |
Facebook API Better Stronger Faster
Okay, I've released my "better stronger faster" Facebook API on Sourceforge for all to use. It’s code name is F8-API, and it’s available for all to download or browse from the SVN repository and try out.
A download package hasn't been released yet, as I'd rather people provide feedback to validate that a release is warranted before packaging it for distribution. Use this command to get the files from Subversion:
svn co https://f8api.svn.sourceforge.net/svnroot/f8api f8api
I had signed up as a "Facebook developer" in several of the Facebook apps tools, and received about 1 query a day from people looking to "build the next killer app". Unfortunately, I found that people tended to make the assumption that I was a college student with lots of time on my hands to do this, and I'd work for peanuts. Well, that's not the case, but I do reflect fondly on college, and I can afford my own peanuts, thank you. As I result, I decided to give away some of this love on Sourceforge, and such, the project was born.
Today the F8-API is a lightweight stateless interface to Facebook’s web services. It uses Apache HttpClient, and Log4j, and it processes data quickly through SAX parsers. It is completely functional for all API calls today, and it supports both desktop and web based Facebook applications. You can also write unit tests that will hit the live Facebook account and interact with your test environment using Maven and JUnit, for both desktop and web apps.
Hopefully people will find this useful as it is. There is some room for improvement though. The data model used by Facebook needs to be flushed out so a "higher level" API can be interfaced that will act on model objects. As an applications developer, you usually don’t want to fiddle with low level things like the transport layer of an API that you’re interfacing. So, some flushing out is needed here.
I also need to write some example code to show how easy it is to use. If you’re subscribed to my RSS feed, you’ll see the update notice posted to the feed soon.
Posted at 10:44AM Sep 13, 2007 by jason in Software |