Build your own search engine

Posted on Tue 19 Aug, 2008

I recently used Yahoo!’s BOSS search API to build search.helicoid.net—a tiny Rails app that searches our public-facing web sites. It’s tied into our 404 pages which makes it easy for people to find things when they’re lost.

So how would you like to build your own search engine? The BOSS API searches Yahoo!’s index without any restrictions. This means you can freely search Yahoo!’s index with minimal hassle. The BOSS API is also incredibly simple to use.

To get started, you need to sign up and get a BOSS ID. Visit the BOSS page, then click “Build an Application.” I selected Browser Based Authentication in the sign-up form.

Once you’ve got your appid using the API is easy. Simply send requests to the service like this:

http://boss.yahooapis.com/ysearch/...>

Incredible kinetic sculpture

Posted on Tue 8 Jul, 2008

This amazing kinetic sculpture was created by ART+COM for BMW in Munich. It’s mechanical and uses metal balls to create shapes in 3D. Here’s a youtube video of it in action.

Korg DS-10: A synth for your DS

Posted on Sun 22 Jun, 2008

The Korg DS-10 is an incredible piece of software: it’s a sequencer and synth based on the Korg MS-10, allowing you to make music on your Nintendo DS.

There’s excellent coverage of it in this week’s 1up show, including interviews and jam sessions with the developers.

Incredible Radiohead remix video

Posted on Wed 11 Jun, 2008

Big Ideas: Don’t get any is an incredible remix of Radiohead’s Nude, using a collection of old hardware bent and twisted to reproduce the original. Featuring a ZX Spectrum and harddisk speaker!

Bletchley Park may close due to funding

Posted on Fri 30 May, 2008

From the BBC’s article, Code centre ‘in financial crisis’:

Simon Greenish, director of Bletchley Park Trust, said: “The site is unique and one of the most important remaining from World War II.
“We have exciting plans to develop the park and save it for future generations. The more visitors we have helps us to realise these plans.”

As a British software developer I find this saddening, since stories of the efforts at Bletchley Park (partly due to Neal Stephenson’s depiction in Cryptonomicon) are partly what inspired me to get into programming.

Perhaps I’ll organise a big Helicoid visit to help!

Google App Engine vs. AWS

Posted on Wed 28 May, 2008

Rowland Watkins, an old university friend of mine (and a friend of all the staff at Helicoid), recently wrote up a comparison of the Google App Engine and Amazon Web Services. He’s specialised in grid and more general distributed computing for about 8 years now, so his comments on the topic have some pedigree.

Since we specialise in Rails, leveraging the power of Amazon Web Services has always seemed more natural than Google’s approach which currently relies on Python. Here’s what Rowland has to say on the matter:

The clear separation of duty in AWS is what gives it the edge over Google App Engine. EC2 allows businesses to deploy complete OS images from S3 to produce novel environments such as Morph. It gives business more control on how to put together business processes which currently isn’t possible with the Google App Engine.

It was announced today that Google are now “allowi…

Inspirational reading

Posted on Fri 23 May, 2008

PingMag MAKE features interviews with entrepreneurs and craftsman in Japan. Some of them are people who have taken over an ancient family business and are dealing with business challenges presented by modern culture and economics. Others are people who have resurrected an old craft, to find a niche space in the market today.

These interviews are literally a gold mine of ideas for designers, entrepreneurs or even programmers like me! In the most recent interview, Kiri Woodcraft with a Modern Vision, Katsunari Matsuda reveals how he gets inspiration for his products:

In my case, I get hit when I first open my eyes in the morning. When I wake up, and I’m just sitting there staring into space and thinking, an image will come to me and take shape.

And a great story for dealing with unhappy customers:

One time, we received a complaint from a customer who had bought one of our rice storage bins. It was af…

Unfinished and Unpublished

Posted on Thu 1 May, 2008

Even though we use Helipad for our notes and to-do lists, I still think you can’t beat a good paper notebook. It’s hard to hunt down something unique, but we recently found Unfinished and Unpublished—a limited-edition collection of very special notebooks created by a collaboration between StudioMatador and several international artists and designers. The Isis&Pluto cover is particularly inspired.

Rapid Rails

Posted on Tue 22 Apr, 2008

I’ve just completed the third article in my Rapid Rails series.

If you’re interested in Ruby on Rails, or software development in general, check them out! They come straight from our experiences deep in the Helicoid software mines.

Think!

Posted on Thu 27 Mar, 2008

Think (for Mac OS X) lets you focus on what you’re doing by creating a configurable backdrop behind a single application. It shows you a list of running applications (in the same style as pressing cmd-tab). It doesn’t do much more than that!

One of the touches I like about it is it shows the currently selected application’s icon in the Dock. Of course, if you really need to focus hiding the dock might be a good idea.

My current technique for 100% focus on work is simply quitting my email client. That pretty much frees up my brain for as long as I need to concentrate.

Lateral Thinking of Withered Technology

Posted on Wed 6 Feb, 2008

Gunpei Yokoi, a former Nintendo employee and creator of the Game Boy, is also credited with an inspirational philosophy about innovating “mature” technologies. In his book Yokoi Gunpei Game House, Yokoi discusses his approach to improving on old ideas using lateral thinking to produce something both radical and innovative. He even suggested that pushing cutting edge technology sometimes gets in the way of developing a new product.

It’s easy to draw parallels between his philosophy and the Nintendo Wii’s recent success. Wikipedia’s article on the topic even goes back to Nintendo’s Game and Watch products, explaining how other innovations at that time meant LCD screens were cheap and plentiful, so by thinking laterally Nintendo used to this to create a new type of product. The same article contrasts this with knowing when the time is ripe for tech…

Improve customer service with error emails

Posted on Tue 29 Jan, 2008

Running a professional web application isn’t an easy thing to do. Even the most finely crafted and well tested code will have bugs somewhere, so we try to employ as many tools as possible to cut down time spent on bugs. Unfortunately, customers often won’t even report bugs, so if you’re not careful people will leave your service without even telling you something is wrong.

One technique we use to catch bugs is error email reporting. Depending on your development environment, it’s relatively easy to catch exceptions, display an error page and email your support staff.

Why are error emails so useful?

  • You can get in touch the person that caused the error to ask for more information about what they were doing, and to also let them know you’re dealing with the problem
  • Letting your customers know you’re aware of a problem even before someone raises a bug report is professional and good customer service
  • In our experience emails …

Version control: Write better commit messages

Posted on Mon 28 Jan, 2008

I’ve recently been providing consultancy for a few companies in London, advising them on skills and technologies that will improve the efficiency of their software developers. One thing these businesses didn’t do was version control. After explaining the basics I noticed people struggle with the “softer” skills required, and this raised the question: what’s a good commit message anyway?

It’s worth remembering that version control excels when it improves communication between developers. Log messages should form part of the evolving documentation of a project, where well-crafted messages become an asset rather than extraneous baggage. It’s important, especially in terms of saving time in the future on maintenance, that the people on your team understand how to write useful log messages.

In general, a good log message:

  • Doesn’t contain references to changed files: version control systems do this for you
  • Uses class or method names: make it easy for people to search in th…

Web app marketing tip: Widgets

Posted on Sat 26 Jan, 2008

After putting it off for several months I finally wrote a Dashboard widget for one of our applications, Tiktrac. What I wasn’t prepared for was the overwhelming response launching the widget had. Not only did existing Tiktrac customers email me numerous thank you messages, we also got hundreds of new signups for the application.

If you’ve been putting off building a widget for your service, our advice is: do it now!. Here’s why:

  • You can submit your widget to Apple.com. If it gets listed, potentially millions of people will be exposed to your site
  • You can submit it to other widget/gadget sites like DashboardWidgets
  • They’re easy to build (trust me)
  • People are more likely to continue using your site after signup if they have a desktop connection to it
  • If your widget looks cool people will link to it, making your site/product easier to …

Puzzle hacking

Posted on Thu 24 Jan, 2008

Artist Kent Rogowski creates montages using puzzle pieces from different jigsaw puzzles. The resulting images are both spectacular and surreal, and definitely inspiring if you’re a programmer knee deep in plugins, libraries and web mashups.

Protip: Start using Test Driven Development today

Posted on Fri 18 Jan, 2008

Test Driven Development (TDD) is one of the techniques I use for creating Helicoid’s products. I’m still the only developer here, so I have to work incredibly efficiently and effectively. In fact, this technique is the greatest secret behind successfully “one man banding” without losing all of your evenings and weekends.

TDD will:

  • Help you write better code: by working with the public interfaces from the start you’re encouraged to make cleaner interfaces
  • Help design code
  • Improve your confidence, ease deployment headaches: your tests will show recent changes are safe
  • Communicate your intentions to colleagues (or yourself in the future!)

Don’t worry about UML, XP or any other unfamiliar jargon

There are plenty of books about TDD, and on the implications of it. Don’t read books about TDD, just start doing it right now.

  1. If you don’t already write tests, look how people usually write unit tests in your project’s language
  2. Take one of your project’s classes, and thi…

20 free icons dedicated to programmers

Posted on Thu 10 Jan, 2008

The Helicoid Icon Set is a collection of icons we use in our applications, including:

  • Navigational cues
  • Credit card images
  • Scalable buttons
  • Images to enhance web applications

Why are we giving these icons away for free?

As the lead programmer and designer of Helicoid’s applications, I’ve worked ridiculously hard over the last year at two jobs: programming and design. Programming software is my passion, but I’ve had to teach myself design skills in order to get our applications released on a shoestring budget.

I realised there might be a lot of programmers out there in a similar situation (especially open source developers), so these icons are dedicated to you. If you open them up in Adobe’s Illustrator (or try the SVG file with an open source image editor) you’ll find it’s easy to change colours around and scale the icons.

License

These icons are released under the Creative Commons Attribution-...

10 essential ruby gems

Posted on Tue 8 Jan, 2008

There’s a few things I can’t live without when I’m programming. To that end, this is a list of 10 essential ruby gems that will make your life much easier, even if you only spend a small amount of time working with ruby.

Gems come and go, but these are keepers!

capistrano

Capistrano makes Rails application deployment less of a hassle. It’s also a clever framework for interacting with remote servers. I actually have backup scripts written with Capistrano, as an alternative to Rake/Net::SSH or shell scripts.

chronic

Chronic is a natural language time parser, with the added bonus of having a pun for its name.

Chronic.parse(‘3rd wednesday in november’)
=> Wed Nov 19 12:00:00 0000 2008

ferret

Ferret will make your boss/clients/customers love you. It provides tools for fast text searching, and you can even index PDFs and Office documents. I’ve used Ferret on some p…

Welcome to Helicoid Insider

Posted on Mon 7 Jan, 2008

Helicoid Insider is Helicoid Limited’s blog about design, code and the web industry. This blog will include materials and lessons learned while creating our applications. Comments, guest posts and feedback are more than welcome!

This blog is in addition to our company’s product blog, which provides updates and tips on our web applications.

Who are Helicoid?

Helicoid Limited was officially founded by Alex Young and Gabriel Gironda in 2005, with the help of Alex’s fiancé (Yuka Mizuno) and Kevin Ford. All Helicoid’s applications are currently designed and programmed by Alex, with thoughtful input and copy writing from Yuka, technical guidance and inspiration from Gabriel, and system administration and security help from Kevin Ford.