Idea: Shaking as pin-code

The iPhone uses a regular number PIN-code as a locking mechanism for the phone. Android uses a swipe-based method.

Wouldn’t it be funny to use shake instead? Think of your favourite chorus in a song, and shake to it. Someone would have to guess the correct song and “dig” to it as you do.

Sure everyone can see you shaking and shaking takes more effort than swiping, but it would be funny!

Idea: Abstract Amazon Web Services to a Platform as a Service (PaaS)

What I really really like about Google App Engine (GAE) is the whole Platform as a Service (Paas) approach. As a developer I really couldn’t care less about how many instances (virtual servers) are running the site or what configuration they have. I certainly don’t want to be on call 24/7, ready to manually start up new instances in case I get slashdotted. GAE just runs your application and scales when needed with your set budget as the only real limit. So upload your website project and relax.

Google provides a great dashboard that shows usage stats and costs about all metrics that count so you can optimize and lower your costs. They even offer a pretty high volume of free capacity which is great for trying out new projects/products. If it was a .NET platform I wouldn’t use anything else, but alas it’s not – it’s for Java (JVM) and Python only (although it does support anything that runs on JVM, like JRuby).

Amazon Web Services (AWS) is a Infrastructure as a Service (Iaas) so you have to manually start up new instances or set up a small network of AWS-services to do it for you. Windows Azure is even worse since there’s no infrastructure support to build the automated monitoring on.

I see it as a great business opportunity to abstract AWS into a PaaS, and provide platforms for various website technologies. Especially ASP.NET and PHP.

Idea: Design pattern of the day

This is more an idea for my blog. To do a blog post about some design pattern every week. The thing is there are so many types of patterns now, everyone wants to patternize things. There’s Design Patterns in software, there’s Apprenticeship Patterns in software craftsmanship, UI Design Patterns in graphical design, there’s Pair Programming patterns, and so on. Also there’s the original architectural patterns.

What kind would be the most interesting? Maybe a mix of everything?

Idea: SVN Achievements

Some time ago my friend showed me Git Achievements. I think it’s a great idea and more and more projects are moving to GIT. Still, SVN has a large user base and it would be a great contribution to it. What I really like about achievements in general is how you can set fixed goals and have it automatically checked when someone reaches it. It’s also a visible badge that you can show off, or someone can search for (i.e. find someone with a specific achievement).

One example from the Git project is:

Added a .gitignore file to a repository.

Some could be very introductory, such as doing an update before a commit. You could even have anti-achievements such as breaking the build. Or meta-achievements where you’re the first one to get a specific achievement on a specific project or team.

One interesting twist to this would be a community driven site for creating and sharing new SVN Achievements.

There’s a lot that can be done with this and achievements in general, I’ll probably do a post on it later.