Archive for August, 02007

Grad School Curriculum Update

Thursday, August 23rd, 02007

Fall 2007 semester classes started for me on Tuesday.

My Grad School Curriculum page has been updated to show:

  • I'm taking ECE 547 (Neural Networks) with Thomas Caudell this semester
  • I'm taking 3 credits of ECE 599 (MS Thesis) with Greg Heileman this semester
  • I'm finishing my thesis next semester (Spring 2008) with three more credits of ECE 599
  • I'm hoping to get CS 481 (Operating System Principles) to apply as a credit for my Computational Science and Engineering Certificate Program elective. At least one professor has recommended that this be allowed, so we'll see. If it's not allowed as an elective, I'll try and also take CS 564 - Introduction to Database Management in the Spring 2008 semester, if it's offered.

Important next steps:

  • Get my "Program of Studies for Master's Degree" form submitted and approved.
  • Get my thesis proposal in a fair state
  • Meet with Dr. Heileman regarding the thesis

If everything works out, I'll have my MS is May 2008.

The Little Schemer in Javascript

Wednesday, August 22nd, 02007

I came across a fantastic writeup this morning called The Little JavaScripter.

Through a wonderful display of Turing Equivalence, it reimplements The Little Schemer, which teaches recursive thinking via Scheme, in Javascript.

Really, really cool. I'm increasingly interested in languages and the transformations through which they can be made to solve equivalent problems. There's an awful lot down this rabbit hole!

Bicycling to Work By Default

Monday, August 20th, 02007

Around three months ago, Elisa and I sold one of our cars, and I began bicycling to work every day. This has now become a very enjoyable habit that will be very hard to break. I plan on continuing year-round. Luckily, the winters are fairly mild in Albuquerque, so this shouldn't be too much of an issue, aside from getting some warmer biking clothes and a new headlamp for the darker mornings.

Nothing quite helps in initiating a healthy new habit like not having an alternative!

Blu-ray Early Adopter

Saturday, August 18th, 02007

I've been watching the Blu-ray vs HD DVD high-definition video format war for what seems like years now.

As of the middle of last month, I'm done waiting, an have placed my bet on Blu-ray, purchasing a Sony BDP-S300. Costco has them for $469.99:


Sony BDP-S300

Overall, I'm very pleased. The picture quality is truly awesome, Blu-ray has outsold HD DVD 2-to-1 this year, and Netflix has an ample supply of Blu-ray disks.

Various Recent Activities

Thursday, August 16th, 02007

Elisa and I have executed quite a few fun activities recently. Elisa has written about them on her blog, so I'll just refer you there for more detail.

Specific entries include: Montana Vacation Picture Essay, Montana sings to me sweetly, Cumbres & Toltec Railroad, Ojo Caliente Spa and Resort, and The Northern New Mexico Little Train Who Could.

I posted a few photos from Montana. Here are two I like:


Wedding Party


Matthew and Elisa at Flathead Lutheran Bible Camp

HTTP POST via web proxy using Ruby’s net/http

Thursday, August 9th, 02007

It took me quite a while to figure out how to do an HTTP POST through a web proxy via Ruby's net/http library, and there wasn't much love on the Internets regarding the topic, so here's an example to hopefully help the next person looking for a similar solution:

#!/usr/bin/ruby
# HTTP POST via web proxy using Ruby's net/http
	
require 'net/http'
require 'uri'
	
# The HTTP Proxy
proxy_host = 'proxy.mycompany.com'
proxy_port = 80
proxy      = Net::HTTP::Proxy(proxy_host, proxy_port)
	
# The URI we're going to be POSTing to
uri = URI.parse('http://somehost.company.com/some/path/')
	
# The data we're going to be POSTing:
params = { 'foo'  => 'blah', 'bar' => 'blarg' }
	
# Start up a connection to the web proxy and get an instance of Net::HTTP
# passed into a block where we'll do the POST
proxy.start(uri.host) do |h|
	
  # Create the POST request
  req = Net::HTTP::Post.new(uri.path)
  req.form_data = params
	
  # Make the POST request via the proxified Net::HTTP instance that this block
  # was passed
  response = h.request(req)
	
  # Check the request's response
  if response.message == 'OK'
    puts response.body
  else
    puts 'failure'
  end
	
end