You are viewing a read-only archive of the Blogs.Harvard network. Learn more.
Skip to content

Wii games you won’t be seeing anytime soon

I found this really funny although it might offend other people’s senses.

Link to Rejected Wiiplay Games

Thanks LRR!

Can’t install anymore extensions in Firefox 3? Kill extensions.rdf

I’ve been trying out Firefox 3 and one strategy I do is to copy my Mozilla Firefox folder with me to whatever machine I go to so I don’t have to reinstall plugins, re-enter all my passwords, and configure everything about Firefox until I’m happy.

However, it seems due to some reason or another I lost the ability to install extensions. After Googling around I dug up a nice hint on Ubuntu’s Launchpad site.

Basically delete the file named extensions.rdf in your Mozilla directory

  • Windows: C:\Documents And Settings\[Username]\Application Data\Mozilla Firefox\
  • Linux (Fedora 9 and Ubuntu 7.10): $HOME/.mozilla/firefox/profile/MY_PROFILE/

Read the Ubuntu fix

The Rails Horde at RailsConf 2008

Egads… so… many… Rails… zombies

Unbound, a possible OSS competitor to BIND?

A quite from this article I pulled up from Planet Sysadmin

Unbound was written by NLnet Labs, VeriSign, Nominet and Kirei. Unbound will support DNSSEC, a version of DNS that uses public-key cryptography to protect DNS results, from begriming. Unbound and BIND are the only open-source recursive DNS servers that support DNSSEC.

Seems interesting. If they can make sure to make the transition from BIND as painless as possible I’m sure it will start getting some traction. Although, if you don’t need DNSSEC and lots of fancy features djbdns handles things not so badly (in my experience).

One thing that is interesting that wasn’t mentioned in the news announcement is that Unbound ONLY handles recursive requests while its cousin nsd is an authoritative only nameserver which is similar to how the djbdns suite works. In some cases, I DO like how BIND can handle both authoritative and recursive in one binary but I guess it always depends on the situation…

Read the announcement on eweek

Unbound’s website

Animoto riding the EC2 wave

Animoto sounds like an interesting service. Take some photos (and videos?) and some music or choose some already available and they remix it into a music video automatically. Don’t like the mix? Hit retry. Cool stuff…

Here’s a juicy quote from their blog post on Jeff Bozos talking about them:

This is about 50 EC2 instances down here. Their Facebook app kind of broke through. And so this is their Facebook app taking off. This is just three days ago, April 16th.

You can see they’ve gone from 50 instances of EC2 usage up to 3,500 instances of EC2 usage. It’s completely impractical in your own data center over the course of three days to scale from 50 servers to 3,500 servers. Don’t try this at home.

Great showcase for Cloud Computing. Too bad not ALL applications can take advantage of Cloud Computing. But glad to see ideas that can.

Read more

And oh yes… since their frontend is a Rails app of course it can’t scale

Volcanic Eruption in Chile

Wow… thanks John

Yapc Asia 2008 Day 1 Notes

Okay first day at YAPC…

Missed most of the opening speeches and Larry Wall’s Keynote.. d’oh. Then again trying to handle the incoming rush of attendees was quite the experience. I’d say jumbled is a good word for how we handled it but at least it got handled. It’s pretty hard handling the Japanese Incoming Rush that seems such a common phenomenon in Japan.

Perl as a Second Language Notes

Sat in on the Perl as a Second Language Talk. Here are some of my messy notes

  • There is one than one way to say it
  • Some languages pay more attention to certain details than others (Lots of ways to say cousin in Chinese vs Japanese and English)
  • Showed some examples of Hello World in other languages
    • The Ruby example hung! D’oh! No that isn’t because Ruby is slow….
    • Showed the ever popular Y-Combinator example in Scheme then showed a Perl version
  • One beneficial thing about expresstivity languages is the ability to skip saying the obvious
  • What makes Perl different?
    • Perl does not have OOP built-in (Yes… I know)
    • Shows an example using autobox
    • Perl can be a good language for learning OOP (because you can learn to make your own OO system)
    • Dan defines an Object to be data that knows what to do (I welcome our self-aware Object overlords)
    • Perl objects are references! (D’oh, I need to understand what a reference is… I’ll just assume pointer…)
    • Shows an example of objects with the Mom class and Daughter class
    • our @ISA defines parent-child class relationship in Perl
  • Implementing is…
    • References – for storing data
    • bless – teach data how to find it? (Sorta spaces out here)
  • More than one way to implement OO (no kidding, look at CLOS)
  • “1” + “1” is not “11” because Perl is a context-oriented language
  • However 1 . 1 IS 2 (Operators tell you a lot about what to do I guess)
  • perl -MO=Deparse is handy…
  • DWIM – Context is important for this (Somehow I don’t think I’ll ever get a computer to DWIM)

The other talks

After that… somehow I missed most of the others.. oh yeah I was busy trying to volunteer but I did manage to catch

‎mizzy’s – ‎Easy system administration programming with a framework – フレームワークでシステム管理プログラミングをもっと簡単に‎

Easy system administration programming with a framework

  • It’s called Punc (Perl Unified Network Controller)
  • I learned about CodeRepos which seems to be a popular SourceForge-like area for Japanese (Perl) hackers…
  • Punc looks like a clone of puppet except it uses JSON instead of XML-RPC for the data format to transfer
  • Looks like it’s still bleeding edge software (checkout from trunk and play with it)
  • Uses a Facter clone called PFacter (Are these two interchangeable? That would be realllly nice… otherwise you suck for making yet another clone that does the same thing but can’t be interchangeable…)
  • Dude where’s your test cases?
  • I somehow missed the reasons for writing Punc (Although because I can seems like a good enough reason for many….)
  • I guess if you REALLY want Perl for a Config Management system and don’t mind getting your hands dirty with sending patches this might work but I’m not wedded to any particular language but I am wedded to a more mature implementation
  • I’m sticking with Puppet

Afterwards came Lightning Talks which were really good. Here’s my blurry recollection of them (wish I took notes…)

  • One presenter seemed to have gotten close to written a Perl OS (Perl Machine)… whoah…
  • One presenter showed an interesting aggregator named Plagger (or was that Fastladder) that supposedly could aggregate anything on the web (supported authenticated sites yaaay) including one IRC commentors suggestion that it could be a perfect tool to aggregator pr0n pics
  • TT-something template looked nifty… wish Ruby had that
  • Text::MicroMason looked also nifty since it seemed like an ERB-clone so that’s less learning
  • Vroom::Vroom is quite impressive (VIM as your presentation tool)
  • Developing Amazon’s Dynamo in POE and Erlang showed some interesting contrasts between how the messaging would work if implemented in POE versus Erlang

Lightning Talks are probably one of my favorite events in a conference since 5 minutes really forces you to get to the point. There was also the dinner party which is what I guess you could expect from large amounts of geeks with large amounts of food and booze. Okay last day coming up! I need sleep…

YAPC Asia 2008 RejectConf Notes

I’m at YAPC Asia this year working as a volunteer. It’s interesting mingling with the Perl folk especially since I’m not a Perl person but am curious to know more about the Perl community.

Anyways here are my scribbling notes that I’ve taken

SoozyConf

  • This is the nickname for Perl’s RejectConf
  • Should bother to look up why it’s called that

scaffoldなんてもう古い、HTMLからコードを自動生成するページ駆動開発とは – ひがやすをさん

  • I missed most of this talk
  • Seems to be like Amrita for Ruby but for Java?
  • Not so interesting for me so maybe lucky I did miss out most of this

liftで日本で10本の指にはいる方法(what’s lift) – Yoshiori

  • Talks about the Lift Web Framework (for Scala)
  • Pretty humorous intro to Scala and Lift
  • Goes through a Rails-like demo in getting started
  • Getting started seems to require svn, maven, java 1.5
  • That’s one big ugly maven command you have to run to get bootstrapped… this due to it being in development?
  • It’s mostly just ‘read the code and examples’ if you want learn at this state

トランプ・スキャナβ(playing card scanner beta) – kuboon

  • This one was very cool
  • kuboon was also the MC for SoozyConf
  • Geek Magician or Magician Geek
  • Wifi-enabled scanning device? (Looked like a mouse pad to me…)
  • Either way some really interesting twists on card tricks with that ‘playing card scanner’
  • Fingerprinting identification used in a very amusing way

Nanto素敵な平城京(Nanto, yet another waf) – tokuhirom

  • Write your own web framework in 3 hours
  • Got lost in the details… sorry

HTTP::Engine Yappo

  • This is sort of like Ruby’s Rack framework but for Perl
  • From code examples, the simple seemed simple. (But so is Webrick)
  • Doesn’t have a plugin architecture it seems
  • I got lost seeing these application stacks…

Rubyへの愛憎(Tusndere at Ruby) – gunyaraway

  • I thought this was going to be about Ruby
  • Was a very amusing music video with some jamming pachinko techno to all the things that could drive you nuts about Perl
  • The idea of Perl aggravations to a dance beat sounds very amusing and probably easier in remembering those gotchas

Paul Bakaus (‎pbakaus‎) – ‎The inner works of jQuery‎

  • Was really excited to listen to this
  • My Javascript suckiness caught up to me and I was mostly lost after the first few slides
  • Need to do more JavaScript hacking to see what was interesting about what I saw
  • Showed off helpers, custom events, namespaced events and why these are helpful
  • The helpers are actually things used in jQuery core itself

Faiz Kazi (‎fuzz‎) – ‎The Little Javascripter: Higher-Order Javascript‎

  • Title sounded cool and I wanted to like this but… the content was not as interesting for me
  • Lots of talk about Lisp and Scheme. That’s fine but I knew most of what he was talking about, unfortunately so I spaced out around here
  • Pointed out Douglas Crockford wrote The Little JavaScripter which is a JS version of the Little Schemer
  • Had some examples showing how to insert into different parts of a list in Lisp and the JS equivalents
  • Mentioned Higher Order Perl
    • Most interesting comparison was Common Lisp is to Perl as Scheme is to Javascript
  • Ran out of time at this point and it started getting interesting at this point… d’oh

Futoshi Koresawa (‎SaK‎) – ‎Devel::DFire‎

  • Name confounded me
  • A Dtrace wrapper for Perl… neato
  • Seemed easy to wrap around a web framework and help profile
  • He also mentioned Devel::DTrace and mod_dtrace (grrr competing implementations???)

UPDATE:

Just found a link to Ero Geek Conference on the Soozy website. Neato. Also there were a lot more females than I expected at this SoozyConf/RejectConf/Perl Conference. Guess that’s just a sign of Perl being more mainstream than Ruby!

Why does RTFM with GNU manpages just suck

After looking at a seriously useful tip for cleaning out a clogged postfix queue I puzzled over the -r option in xargs. I’m not an xargs master but I figure if I need it I can always RTFM.

Well man xargs on my Ubuntu box provides the typical GNU fair and I spend the next way too long time period looking for where the -r option is. (The full option is –no-run-if-empty).

Sadly, I ended up finding it faster with a Google search on this web page that has some find-fu and xargs then looking again at the GNU manpage and finally find the option buried just before the EXAMPLES section.

I guess I should be happy this time around, there are some GNU manpages that don’t even HAVE documentation (at least compared to the *BSD brethren). Grrrrrr

Programming languages for your WinCE device

I got this WinCE device that I’ve been trying to wrangle into a nice cozy environment to do useful things so the first thing I started looking at was the availability of development tools that I can use directly on the device.

In general, I prefer Ruby however I’m not wedded to it since I’d prefer a language that is more

  • More mature for the host OS it’s running on
  • Can actually DO something besides Hello World
  • Actually can access standard libraries that would come with the desktop version (I don’t just want the language core)
  • Maintained to some degree
  • Not a PITA to install

After looking around I dug up the following :

  • Ruby WinCE
    • Has Ruby 1.8.6
    • Maintained to some degree
    • Not much docs in English (that’s fine I read Japanese)
    • The installer is basically unzip and plop into a directory somewhere
    • Not much docs on what to do with it
    • Looks like a “I got it compiled don’t know if it really works” project
    • Seems there can be string handling issues
  • Ruby CE
    • Also Ruby 1.8.6 based
    • Seems to be in active development
    • Looks like the developer is actually trying to get real code working with it
    • More documentation on how to install and bootstrap it
    • Seems more promising for using it for real coding over Ruby WinCE
    • No lazy installer. Zip files that need splatting on the filesystem
  • Pocket Scheme
    • An implementation of the Scheme programming language (Not all of it though)
    • UTF-8 support (woot!)
    • Rather well maintained
    • The interpreter/IDE integrates better with the OS
    • Supports cut and paste better
    • Actually has working sockets
    • Can do file manipulation
    • Code samples!
    • Lazy Installer
  • Python CE
    • A Python implementation for WinCE devices
    • Looks actively maintained
    • Actually has a wiki for documentation and it doesn’t seem THAT dead
    • Python 2.5 support looks like its available
    • Installer available
    • Docs seem pretty good
  • PPC Hugs
    • A Haskell (Hugs-based) implementation for WinCE
    • Looks like someone’s school project
    • Marked as alpha quality
    • No idea what actually works
    • Looks like another “It Compiles” projects
    • Doesn’t look like its actively maintained
    • Documentation looks sparse
    • No lazy installer
  • Perl CE
  • WinCE Emacs
    • Okay okay, not REALLY a programming language but… Emacs LISP is close enough…
    • Looks like you’re stuck at Emacs 20.7
    • Not sure keybindings on WinCE device will be liveable for a Emacs neophyte like me
    • Not sure if there is active development to bring more recent Emacs versions
    • Seems to have a lazy installer
    • Emacs Wiki Page on WinCE Emacs

Also pocketpcfaq.com has a nice listing of languages you can run on your WinCE device.

Too bad I didn’t find any of the following:

  • OCaml
  • Erlang
  • Common Lisp

So after looking at the choices, I think I’m down to Pocket Scheme, Ruby CE, and Python CE. I guess I’ll try them all and report which one seems like the easiest to just goof around with and get something useful done on a CE device.

A Deploying Scala story, “It’s just another Java library”

From Artima’s Developer Buzz feed I picked up this story on someone managing to sell to management the use of Scala in a project. There is a little bit talk about performance and ease of deployment which could be good points depending on your environment…

We also had an occasion to have 2,000 simultaneous (as in at the same time, pounding on their keyboards) connections … thanks to Jetty Continuations … and an average of 700 requests per second on a dual core opteron with a load average of around 0.24… try that with your Rails app.

So, to this customer’s JVM, the Scala and lift code looks, smells and tastes just like Java code. If I renamed the scala-library.jar file to apache-closures.jar, nobody would know the difference… at all.

For a Java shop deploying a Scala app might not be AS big a deal. However, when you have a clean slate and don’t even need to sell Java just a solution selling Scala becomes a little bit more blurred.

Read it yourself

What the fork are you doing Pidgin devs?

After glancing at the Slashdot post on the forking of pidgin and wasting far too much time slogging through the ticket that caused a bit of strife, I’m pretty sure I will move away from Pidgin until the developers stop being dorks (highly unlikely since they seem to develop only for themselves).

Quick quick summary of the whole issue. The pidgin developers decided to make the input text box very small and auto-resizing (up to a certain point) based on some fancy heuristic. Quite a few users have jumped up and down and requested to make this optional however the pidgin developers basically said, ‘Go take a hike’. There has been quite a bit of reaction to it, including the creation of a plugin to bring back old functionality to a full on fork of the whole project.

In general, forks are a bit of wasted effort to the Open Source community as a whole but one will never get the idea situation where all developers will just ‘get along’ and combine their energies into the One True Implementation. So, from a pragmatic standpoint, forking seems to get the job done although with a lot of burnt cycles.

I believe migrating to something like Funpidgin (A fork of Pidgin that aims to be listen more to the community) and making sure that it gets enough momentum to stay alive is probably the best answer to extremely stubborn developers wanting to do things their own way at the expense of the ‘users’. However, I guess we’ll just have to wait and see if the fork gets enough energy to keep itself running.

NYTimes.com design director, Khoi Vinh, answers some questions

I’m not much of a designer type person but I find Khoi’s answers to some of the questions posed regarding the information design of the NYTimes site interesting since it is a continual battle in trying to add more but use less to say more.

Here’s a quick snippet:

You can think of it as an elaborate logic puzzle, with the onus on my design staff to solve the puzzle using as few elements as possible, in as aesthetically pleasing a manner as possible. We strive to distill every template that we create down to its core parts, and actively debate the placement of nearly every element.

Read more here

One way to clean out a gazillion files in a directory without causing the server to hang on IO

Had a case where I had some rails app that was using files for its session store and had been running like that for months. While it was a careless (and dumb) thing to run it that way, we had to do something about it since it was eating up close to 85% of the system partition. The dumb way to try to do this is below:

nice find /tmp/ -name 'ruby_sess.*' | xargs -n 100 rm -fv

However, the problem is that this causes insanity on IO which is NOT good for a running service. (Luckily this service was merely important instead of critical) So, I present to you my quick and dirty script that will clean up all those nefarious ruby sessions files that have run amok for months.

while true; do
    nice find /tmp/ -name 'ruby_sess.*' | head -n 20 | xargs rm -fv; sleep 10
done

Testing as a discipline, finding the right people.. it’s not THAT easy

Been thinking about the role of testing in a software organization. Steve Rowe of M$ has a great blog post on finding the right people for the job. He breaks it down into 3 types of roles that are useful in a test team:

  • Runtime testers
  • Scripters
  • Tester Developer

Definitely a good read for understanding the type of personalities you would want when building a testing team.

It’s Common Sense, Stupid notes the difficulties in bootstrapping a GUI testing framework and what to expect out of it. These are good things to keep in mind when building out a UI test framework and putting realistic expectations on what you will get for the investment of effort.

I would also note that the blog posts on the difficulties of UI testing can be applied to larger scale system testing (ever test a router?) since one could view a GUI application is a little microcosm of a system that cannot be easily taken broken down into its components when trying to do integration testing.