Skip to Content

Yearly Archives: 2005

New Useful Tools

Permalink

Last week I found two tools that make my life better and make me look cool in front of my friends (j/k). So I thought I would share them.

Zebra Tele-scopic

Keeping bookmarks sync’d and accessible
Back in the day I used to use a shareware tool to dump my IE bookmarks to html, then upload them via FTP, and then download them again and re-sync. But times have changed and del.icio.us is the new way to bookmark.

For those not in the know del.icio.us is a “social bookmarking” website. The first consequence is that your bookmarks are stored on a globally accessible webserver with an easy to remember URL like http://del.icio.us/philips. The second and more fun aspect is that when you make a bookmark (with one of the great del.icio.us bookmarklets) you can see who else has bookmarked the same page and what other sites may be related and of interest. From this feature I have found some great websites, including my new favorite techno radio station Radio ABF France.

But the coolest part is a plugin for Firefox called Foxlicious that allows you to sync your bookmarks from del.icio.us into a folder, organized by tags. It is great I can bookmark at home, and sync at work, then bookmark at work and sync at home, then; well you get the idea.

Zebra Tele-scopic

As you may already know I carry with me at most times an analog notebook (you know the paper kind). But I have never been able to find an inexpensive pen that is compact enough to keep in my pocket. Until my faithful run to the store last week where I found it! “It” being the Zebra Tele-scopic pen which is small enough to put in a jean pocket but telescopes into a regular sized and balanced ball point pen. Not only that but they are far cheaper than the Fisher Space Pen. At ~$5.49 US for two tiny telescoping pens with two refills these pens are a great deal!

Ajax and Ruby on Rails (Until 5am)

Permalink

UPDATE: Demo offline permanently

UPDATE: I moved my development site to a workstation here at home. It is a slow old box so be gentle, it is serving a little under 10req/s, but it works.

LiveSearch

Over the last few weeks I have been seeing what I can do with Ruby on Rails. My conclusion? In the future I want to use RoR for web applications: PHP just isn’t as fun after you have worked with RoR.

At the Open Source Lab I work on a project written in PHP/MySQL called Maintain (demo), it is a DHCP/DNS management tool that is used by Oregon State, the Open Source Lab, math.ku.edu, and several others. It is a really great package, and one that many people are getting joy out of using. And given its size and complexity and my familiarity with its code, it made a great canidate for me testing out RoR.

Last night I decided to add LiveSearch support into my little pet project that is exploring how I would implement some of Maintains features in RoR. The first thing that needed to be done was add search methods to my models. Browsing around Tobias’ typo source tree I figured out how I wanted to implement searching for one of my domain class and came up with this:


# This search defaults to searching for all strings that match with no
# restriction on beginning or end. Also it will OR together statements in
# the query with a space in them.
def self.search(query)
if query
tokens = query.split.collect {|c| "%#{c.downcase}%"}
r = find_by_sql(["SELECT * from domains WHERE #{ (["LOWER(name) like ?"] * tokens.size).join(” OR “) }”, *tokens])
s = Array.new
r.each {|domain| domain.children.each{|child| r.push child}}
return r.uniq # No need for duplicate entries
end
end

The line with r = find_by_sql( is something that is just amazing to me, and would have required a whole looping structure and some if statements to implement in PHP, but in Ruby I was able to use prepared statements, Array#join, and the * operator on the array to quickly build a restraint on the domains; all in one line.

After implementing the search methods, and looking at the Typo code the rest was a breeze, I created a couple of partials for live search results, and now with two lines of code I can add new objects to the LiveSearch sidebar. Very cool.

If you want to take a look at it in action click here (site down permanently, code available here). The handshake starts with a testguy and ends with a testt. Oh, and this is a limited time offer, the site is running on my laptop.

And speaking of the OSL Scott Kveton has made a great post about OSU’s College of EECS strategy to take on the big research schools and focus less on undergraduate education. Its pretty clear that they should be focusing on open source software and education especially given the current climate around the state but I guess they would rather Go Big than think smart.

Projects in School

Permalink

Yuba County Charter Hot RodBob 2.1OSLUG

While waiting in line at the Portland Car Show I snapped a photo this Hot Rod not knowing that it was actually a project by a group of high school students. When I walked by the booth of a local AM station I saw these students talking about their hot rod project and listened for a few moments, they were really excited, and had alot to say about what they had learned and done.

This all reminded me of how empowering and important it is that schools encourage their students to work on real world projects. Why? Because, the students benefit greatly years after the project is finished, and the few extra resources applied to these students, get great returns for the school.

In high school I joined a three person independent study group doing robotics work. We had the same excitement and enthusiasm for working on robotics, that the Oregon State Linux Users Group has for Linux.

Anyways, this group attracted the attention of Newberg High School, whose robotic teams had been going to National conventions for years. In 2001 they wanted to do a PC based robot, but needed some programmers for this latest project. They decided to partner up with my group at Sherwood High, and I worked with them on two seperate projects.

Over the next two years I learned and experienced alot:

  • Learned what real software development was
  • Visited New York twice to compete in the RI/SME
  • Wrote a magazine article for Servo Magazine
  • Started working on independent consulting projects for USB

The school also got alot of love from the project. During all four years I took the robot to several shows, fund raisers, photo shoots, newspaper interviews and board meetings. Heck, I just noticed that the robot is still on the front page of Sherwood High Schools website.

They also provided the group with alot of resources, like some minor funding, and a small lab… hmm…

This all comes back to the OSLUG and our goal of getting permanent lab space and FOSS used in the computer science classes. Like my high school project and the Yuba County project we have an excited and enthusiastic group of students, and all we need now is some encouragement, and resources. The OSLUG has been doing some great things, and I think that with the support of the college it can do some amazing things.

But, I think that the last point is the most important. I was able to start working on the side for both Fascinating Electronics and Ron Reed eVentures/OHSU doing work with USB devices. Dean Adams wants to see entrepreneurs coming out of the department and I think that if it is going to come from anywhere it will come from the students of the OSLUG. When I started my work with the robotics project I had no idea that I would eventually write for a national magazine and do consulting, but had it not been for the help I had gotten from the school I would never had gotten these opportunities.

core dump

Permalink

I just upgraded to Wordpress 1.5, and was reminded of the number of blog entries that are just sitting in my notebook waiting to be posted.

The goal is to type out these various articles between studying this weekend, as a way to let my mind release from Physics and Infinite Series and Matrices.

Bugs, Curriculum, and Communities

Permalink
GentooBugDay

The last few days have been alot of fun and required the help of a few friends. There have definitely been some challenges, but in the end it has been rewarding.

The GentooBugDay was a great experience, I got two bug fixes submitted 77328 and 68277. It is a start, and I plan on doing more in the future.

Alex Polvi invited Michael Marineau and I to a meeting he had set up with Professor Quinn and Dean Adams. Hearing the questions and concerns of Professor Quinn helped to focus what we can do to move our idea of having Oregon State use more Open Source Software in the classroom.

The next few baby steps are creating a document, a StateOfTheLug, something that we can place down on a table and show people what we have done, show them we have students excited about this, and that we need to bring that into the classroom. What we need to show is the benefits of having software developed by communities that reach outside the bounds of any one company, school, or even person. And how exposure to this process is valuable to students. It is an experience that Dan Frye, Randy Kalmeta, and many other universities recognize, but that we, OSU, are not taking the opportunity to engage in.

But, I think that we are approaching it the right way, the students should be able to demand the skills that the college teaches them, and I want to see open source development taught.

Today Dan and Randy came down today from the Linux Technology Center at IBM. Both of these men understand Linux the business very well, and listening to them helped me to realize how important Linux is becoming to the technology sector, and how it is making customers, engineers, and business people happy. I talked to Randy about where their employees are coming from, and they are not from Oregon. In fact one of their goals in coming down was to meet with the computer science department to see how they are going to help train students to work with open source communities; it is the community stupid! Dan said that it is not the “technology that is revolutionary but the community, and how this software is developed.” This isn’t a new idea, Eric S. Raymond, Linus, and Richard Stallman have recognized the power that a community of dedicated people have when they are able to work together without the frictions and bounds of traditional organizations.

On Alex’s blog he quotes Professor Quinn, “There are only finite resources, however there are infinite things to do.” I think the ultimate goal is to show the department that this is not another check box to add to the list of things that are being done, but a new way of teaching and learning about the things we are already doing. I don’t want to see an “Open Source Class” I want to see Open Source In Class. I think Dean Adams understands it, and loves the idea and we need to work on concentrating what it is we want to see done.

In other news I have been doing alot of work with Ruby On Rails. This framework is beautiful, Ruby is a great language, and the community is very fun and excited about the project. I plan on doing some weekend hacking on my side project of getting Maintain re-implemented in RoR. So far I have been impressed, and think with a week or two of work I could get a system rolling with alot of momentum. But I will wait and see how this weekend goes.

Don’t Read This Blog!

Permalink

Write down the thoughts of the moment. Those that come unsought for are commonly the most valuable.” –Francis Bacon

I keep a personal journal, a little black Moleskine with me most of the time, it is my Anti-Blog, I write down anything that comes to mind. Most of the time they are useless, of little value, and just stay in the book, never having to bother anyone.

Here is where I chmod o+r. And I am going to begin with the lasagna that I am having tonight, a recipe that my mom gave me a few months ago. And with everything that I will try to post, it is good; or else it would have stayed in my notebook :-).

Enjoy:

Mom’s Lasagna
- 1/2lb Cooked Beef
- 1 jar Prego
- 3/4 Cup Water
- 1/2 pkg 160z lasagne noodles
- 1 Cup cottage cheese
- 12oz Shredded Mozerella

- heat Prego and water in pan
- in a 13×9″ glass pan layer Prego, noodles, other ingredients - 3 layers, alternating noodle orientation
- cheese on top

- 375 degrees
- cover with tin foil for one hour
- cool
- enjoy