Remindcast – my latest project

I had conversation with @mattwilliams about weather and how it would be great to have some tools that will tell you if it will be warmer / colder than yesterday. So you can decide what to wear or what to bring (like umbrella) with you to work. So I build it and you can try it here. Let me know what do you think.

From developer point of view:

Whole thing is build in latest rails. I’m using Google API (that have no documentation) for weather feed, Twitter for messaging and for authentication. The whole thing is hosted on Heroku.

Miles Davis and his wit

Davis was a man of few words. When he did speak, his words often had a similar effect to a hand grenade being lobbed into the room. In 1987, he was invited to a White House dinner by Ronald Reagan. Few of the guests appeared to know who he was. During dinner, Nancy Reagan turned to him and asked what he’d done with his life to merit an invitation. Straight-faced, Davis replied: “Well, I’ve changed the course of music five or six times. What have you done except fuck the president?”

via Miles Davis: his wardrobe, his wit, his way with a basketball … | Music | guardian.co.uk.

TextMate folder pattern

I reinstalled my Mac recently. Because it was a new installation a had to install everything from scratch which includes a TextMate. After a while of using it I get annoyed by dialog window for opening a file. It list lots of similar files from vendor folder in my Rails env. So I investigate little bit and find that you can modified settings for that (Preferences -> Advanced -> Folder references -> Folder pattern). When I’m trying to open a file, TextMate is ignoring vendor folder, now. You can see regexp for that bellow.

Looking for Ruby on Rails contract

To follow my passion which is writing my own applications and running, I decide to leave  Unboxed, where I had really great time. I was there almost 2 years and during that time I learn a lot, met lot of interesting people and work on lot of different types of projects. This is list of my projects that I was working on and my role.

education.skype.com

simple platform, designed to enable teachers to connect, share their resources and start collaborative projects. Winner of Core 77 design award 2011. Responsibilities included:

  • Lead Back-end developer and Technical Architect
  • Performance optimisation for current 14000 active users
  • Skype API integration (Authentication)
  • integration with Amazon S3, SES (Emailing service), EC2 (Cloud hosting)

Skype New Year Eve

To bring in 2011 Skype launched an HTML5 site that tracked NYE as it happened around the world. Users uploaded videos to YouTube via the site which, in turn, were displayed on an interactive timezone map of the world. The site was designed to work across multiple platforms in including mobile and tablet optimisations. Responsibilities included:

  • Lead Back-end developer and Technical Architect
  • YouTube API integration with download performance optimisation

Skype Theme

Skype Theme is site where Skype Apple users can upload themes for Skype UI. Responsibilities included:

  • improvement of unsecured parts of application. Based on Security report from independent agency.

Extra special trust

The ExtraSpecial Trust is charity that offers small personal grants towards some of life’s important extras to help make a wish come true. Responsibilities included:

  • finishing of html templates
  • deployment set up for Heroku
  • Amazon S3 integration

Edna (Channel 5)

The Edna is programme database. It has been design to streamline the working processes of the Digital Media team. It provides sources programme, series, episode, cast and VOD availability data from a variety of sources for different sites. Responsibilities included:

  • integration with Movida (programme database)
  • export dat in XML and JSON – contained information are based on type if requested player or platfiorm

If you are interested to work with me you can sand me an email to petr(at)zaparka(dot)cz or if you are just interested what am I up to just follow me on twitter @zaparka

Art of presentation

I’m big fan of good and interesting presentations, especially if they make you think or change your life. Today I was browsing Mixergy talks (btw Andrew Warner is doing great job, although I’m missing that giant book shelf that he had behind in earlier episodes) and I saw talk The Presentation Secrets Of Steve Jobs – with Carmine Gallo. As the title says in this talk Andrew and Carmine are talking lot about Steve’s presentation skills and why he is the best presenter. I made couple of notes, so if  you don’t want to spent 1 hour watching interview on mixergy, here are couple of bullet points.

  • Tell a story – most of presenters are presenting just facts like dry numbers, graphs, long list of bullet points, … etc. You should start your presentation by telling a story. You should say, why the subject that you are talking about matter.
  • Educate your listeners –  when Marrisa Mayer had a presentation at SF Museum of Modern Art, she did’t start talking about what news she have. She start talking about search evolution. She said that in 1935 it would have taken you day and a half to find information on certain painting. Because you would have to travel to get to the library. Than she went through every decade, describing how search evolve. Her point was that what took you day and a half takes now 3 seconds.
  • 10 minutes rule – you will notice that every great presenter will take a ‘brake’ around 10 th minute of his/her talk. Reason is that human mind loose focus after 10 minutes and it doesn’t matter how good presenter you are.
  •  Intermezzo – is kind of brake that your brain need to re-focus on presentation. You should change interaction with your listeners by playing video or showing demo of your ‘thing’.
  • Twitter friendly headlines – did you notice that great presenters are not using slides with lot of texts on them ? The reason is, if you can’t formulate your idea in short twitter friendly headlines, your audience could misunderstood you or get quickly bored.
  • Numbers as equivalent of … – when Steve Jobs has been presenting iPod he says that device has 5GB big storage capacity which is equivalent of 1000 songs in your pocket. There was also ad called iPod 1000 songs in your pocket. If you saw that presentation did you remember that iPod had 5GB or that you can download 1000 songs to it? :)
  • Presentation are not just powerpoint/keynote – when you start working on presentation, to sit infront of your laptop and opening keynote should be the last thing that you should do. Start with sketches, draw a timeline, be creative and don’t be afraid to do something new and original.

During the interview Carmine mentioned couple of times Steve Jobs iPhone presentation  in 1997. Carmine also write a book called “The Presentation Secrets of Steve Jobs: How to Be Insanely Great in Front of Any Audience”.

To be honest, I like Steve Jobs presentation but my number one presentation is Identity 2.0 by Dick Hardt, you can watch it on youtube too.

Good luck with making your own great presentations.

Steak vs Cucumber as BDD tools

When I joined the world of Ruby on Rails development and testing I was quite happy with all the tools and testing frameworks available, I was using a lot of them during development process. Words like Rspec and Cucumber quickly became part of my vocabulary, along with other ‘magic’ words like Kanban and Scrum. BDD, or ‘Behaviour Driven Development‘ became a permanent part of my life!

It’s crucial for a project, that the features that a customer would like to have implemented into the finished product are captured as well defined stories early on. We’ll eventually use these stories as a template for our tests. Cucumber is an especially good tool for using these stories as templates for testing. So what is Cucumber and what does it look like?

Here’s the explanation on Cucumber’s own wiki.

Cucumber is a tool that executes plain-text functional descriptions as automated tests. The language that Cucumber understands is called Gherkin.

Here is an example:

As you can see, Cucumber allows you to easily describe the behaviour of your new feature. In fact, it’s that good that some of our customers are using Cucumber descriptions as the acceptance criteria on their project’s stories. So where’s the catch? Well, not everything in cucumber is as easy as it may look. Even though cucumber has lot of pre-defined “phrases” to describe the behaviour of an application, you soon find out that sometimes it can be really tricky to preserve the readability of stories that are more complex than just: “And I should see ‘a yellow box” for example. When it gets tricky it gets really time consuming. And even if you know that implementing the related functionality is really easy – writing the proper, readable cucumber test that makes sense is sometimes very hard. I’m not complaining about writing tests in general. I’m complaining about how hard it is sometimes to achieve basic readability of tests! Does the average customer really have to understand the tests we use? If they do, then ok – I’m here and I’m prepared to write those nice, readable tests for them.  But what if they don’t care? Well there is another way around: the solution is called Steak.  So what is Steak? Steak is an Acceptance BDD solution (like Cucumber) but in plain ol’ Ruby. This is how an acceptance spec looks in Steak…

As you can see, there is a Feature description and a Scenario description, but the rest is Ruby language with Capybara syntax. But why do I think this is so special, and why do I think you should use it? Well it’s much, much faster to write those complex, yet readable tests, and it’s easy to maintain.

Recently, I was working on a tough project where I was the only back-end developer and there was one front-end developer; let’s call him Tom. At the start of this project we were using Cucumber. It took such a long time to write some of the tests, and because there were a lot of front end changes, we had to fix and re-write a lot of these Cucumber tests. Tom found he wasn’t that comfortable writing Cucumber scenarios, so it took him longer to fix them. At the start of the new iteration, I decided to use Steak instead of Cucumber. I discussed with Tom how Steak works, and he preferred it immediately. We started implementing new stories and development suddenly went really well and much quicker. I was writing Steak stories much faster, and Tom was faster too. So, by the end of the iteration there was no complaining about fixing Cucumber stories, and there was a lot more delivered functionality; them were some good times.

Is it Steak final solution?

Maybe, maybe not. It really depends on you and your customer’s needs, but what you really should do is to try it out yourself. You will see how much faster your development process can became.