Idea: Ruby score

While programming with my friend Jocke he was really eager to show CoffeeScript. You don’t have to use parenthesis, curly braces or even semi-colons! Fantastic! Now there’ll be less bugs! </sarcasm> What was extra funny was that parenthesis are needed sometimes, but if you rewrite a bit you can get rid of them.

Example:

@milliSeconds = @getSeconds(timeReport) * 1000
#rewritten as:
@milliSeconds = 1000 * @getSeconds timeReport

As a fun game your code in CoffeScript, Python, Ruby or other could be scored on how many parenthesis you have, while nested parenthesis gives linearly more points, and the goal is to have as a low score as possible. It would be a simple practice in static code analysis, especially if the program can give tips on lowering your score – like the inverse of Page Speed.

It could traverse GitHub or something to create a Highscore leaderboard, just for kicks. What more would be fun to measure unnecessary “improvements” in your favourite language?

Book review: Free

Free – Chris Anderson

(Note: I read this book in 2009, and this is a repost of a review I did then in Visual Bookshelf on my Facebook)

As with The Long Tail that I reviewed about last week, Chris does a wide and deep search on the topic. One can read the introductory chapter and feel that’s all there is to say on the subject, but they’d be wrong. Chris has a nice writing style and uses a lot of examples. There are some very interesting examples on how “free” has been applied, such as popularizing Jell-O in the USA and music bands in Brazil.

Conclusion: Read it, if you like the economic side of software development.

Idea: Photoshop-style navigation in your browser

One of my favorite usability features in Photoshop are the view functions you control with your mouse and a command keys. Especially these:

  • space + click and drag = pan image (like smooth “scrolling”)
  • ctrl + mouse scroll = zoom
  • alt + mouse scroll = scroll horisontally

This tutorial on getting ReSharper keypress (alt+enter) to fix spelling hints in MS Word prompted me to think of other app combos. So the idea is a Chrome or Firefox extension that allows you to easily zoom and pan the website. Kind of how you do it on iPad, you just zoom in and “flow” around the page.

What other navigation or key-combos would you like to see from one app into another?

Book review: The Long Tail

The (Longer) Long Tail – Chris Anderson

(Note: I read this book in 2007, and back then it didn’t have “Longer” in the title. This is a repost of a review I did then in Visual Bookshelf on my Facebook.)

When this was written, back in 2006, I can imagine it being highly interesting. Today I don’t think most people would raise an eyebrow as the concept is so common: digital distribution is so cheap you can have an almost infinite amount of products in your catalog. So many in fact that even if you only sell one copy of each one the total sales from these “long tale products” adds up to a considerable increase in revenue for the company. Still it’s very interesting. He still has some valid points that most business hasn’t quite handled that well: by having an almost infinite variety of products, how do the customers find what they want?

Conclusion: Read it, if you have some extra time. Definitely a must-read for anyone starting or running an online service with a very large product catalogue. (2011 update: Today his new book Free might be more interesting.)

Idea: EuroPoint – Eurovision heatmap

I live in Sweden and here the Eurovision Song Contest is practically a national holiday. I don’t watch it, of course, but it was running in the “background” at a party this weekend. If you’re not familiar with it, countries in Europe compete in a music competition and then each country gets to vote for the other entries (it can’t vote for itself). The points given are: 1, 2, 3, 4, 5, 6, 7, 8, 10, 12. One thing that seems like common knowledge, and pretty obvious, is that when a country gets to vote it gives most high-value votes to neighbouring countries. Hmm.

I’m currently very keen on visualization so I’m thinking a map of Europe, maybe using a Google Geomap so you can click a country and the countries it voted for gets highlighted with the vote point value. Or maybe something related to distance between borders? Just to be able to get some overall score of how common it is to vote for neighbours. A bonus would be to include the entry videos, like this Eurovision 2010 map. The points distribution is available so let’s do something with it!

What other kinds of visualizations would be interesting, or even better than a heatmap?

“keep your friends close but your enemies closer”
Michael Corleone, The Godfather Part II

Book review: The Five Dysfunctions of a Team

The Five Dysfunctions of a Team – Patrick M. Lencioni

(Note: I read this book in 2009, and this is a repost of a review I did then in Visual Bookshelf on my Facebook)

A definitive read for anyone working in, or leading a, team. It lays out the common problems and solutions through an entertaining story. Which will most likely bring up some of your own memories of situations and people, which (for me) makes it easier to relate to and try to imagine what the proposed changes would’ve actually done had you applied them.

The last part of the book where it goes into more facts about the dysfunctions and what to do about them was well written as well. Although I’d like that part to be a bit more extensive, I’m sure it is in all the extra workshops and games and book editions.

Conclusion: Read it, even if you’re not a manager.

4 software developer uses for Dropbox

1) Static website host

You can use your dropbox to host small websites. They’re great for showing of concept mockups in pure HTML/CSS, just put the files in your public folder and you’re done. If you do some JavaScript you can even get applications running, like aggregating Twitter. You can even use it to create a start-page for your browser [2].

There are some frameworks you can “install” to get even more power on your dropbox site, like Drop Pages and TiddlyWiki.

2) Synchronize applications

There are two ways to keep some of your apps synced. One is just putting the config-files, chatlogs, etc in Dropbox. 

You can even synch your game saves! Some even support it out of the box, like Broken Sword for the iPhone.

The other way is using packaged apps for USB sticks (PortableApps), and putting the whole app in Dropbox. Personally I keep a copy of FileZilla with my sites in case I need to access one of my FTP’s. Others keep password apps like KeePass. I’ve tried having a browser synced, but noticed that the tabs I have open on one computer (work) isn’t what I want to see on another (home). Notepad++ with custom settings works great too.

3) Source control repository

Quite simply you can put a repository in Dropbox, in a shared folder with your team. It’ll work like a hosted repository and you’ll get free redundancy. The downside is that it doesn’t handle simultaneous checkins very well as it’s synching between computers.

4) Wireless transfer files to mobile devices

The Dropbox iPhone app can send files to apps that are registered for the file extension. So any .epub will prompt to send it to iBooks, which I use a lot on my iPad. The same with PDF and other files. I’m not a big fan of iTunes and I’m an even lesser fan of cables, so just putting a file in Dropbox and opening it in my iDevice is perfect. Most publishers will give you several filetypes if you buy an ebook directly from them. O’Reilly have good deals that include ePub, Mobi, PDF, APK and Daisyj, which is great since Microsoft Press works with them. Here’s a good tutorial.

Some extra tips: