Ideas, Technology and Startups


  • Customer development

    I was reading on Jussi Laakkonen’s blog about “Customer development or why 9/10 startups fail”. I think the bottom line the post makes is that the difference between a successful startup and a failed one is that the successful ones get out of the office and talk to the customers. I think that is a very important idea and I hope to keep it in mind.
    http://jussilaakkonen.wordpress.com/2008/11/13/customer-development-or-why-910-startups-fail/

  • Holidays 2009

    This year somehow we’ve lined up an extremely nice holiday plan:
    4-7 July - Rome, Italy
    26 July - 3 August - Greek Islands
    4 August - 16 August - Algarve, Portugal
    That will mean I’ll have to skip my favourite hacker conference HAR2009 which is also in August. I’ll balance that out by going to the Eclipse Summit Europe 2009 in October and the “Stack Overflow Dev Days Amsterdam” in the 2nd of November. Wish me good travelling and let me know if you have nice tips of places to visit in Rome or Greece.

  • Lahn Canoeing Trip 2009

    Had a very nice weekend that included camping and canoeing for 6 hours/20km on the river Lahn near Limburg.
    http://www.flickr.com/photos/e-penguin/sets/72157619761088274/

  • Bullet Points about REST

    REST stands for Representational State Transfer.
    What is the problem?

    Software architecture research investigates methods for determining how best to partition a system, how components identify and communicate with each other, how they evolve, etc.

    Do we know any large software architecture that has scaled immensely? Can we learn/take something from it? Yes, the Web and the Internet in general.

    What can we learn from it?

    Client-server (separation of concerns)
    Stateless (requests can be processed by different servers for scalability)
    Caching (performance and fault tolerance)
    Uniform interface (URI represents object and state)
    Layered System (components build on top of other components)

    Example

    Client-server => browser-httpd
    Stateless, Uniform interface => /car/parts/12337 => URI represents the object and asks for a specific resource.
    Can be processed by any server because there is no context
    Output in html, XML or JSON

    Example 2

    Imagine you could just re-use the component by redirecting requests to it
    Example: user auth
    Instead of having the user auth encapsulated in the application we can have the userauth to be a webservice that can be re-used by any application – this is RESTful

  • Mentorship on programming is overated

    You should just mentor yourself. When you’re doing computer science in the university there’s a point where teachers can’t teach you anymore, no better than you can teach yourself anyway.

    The thing is, in order to learn, you need basically experience and to get experience you need to do things that are useful. This is not math therefore theory can only work for you to a certain extent.

    First: have interest, try to learn everything you can by reading other opinions, for example add some of this blogs to your usual reading, they won’t teach specific things but will give you useful advices that you will remember when you need them, you won’t remember the exact thing but you will think “I know I read something about this and there was a really cool method for doing this”.

    Second: Program on your spare time. Find a project you like (an obtainable project not some unreachable objective like programming the new Quake 4) and do it until you finish it. Practice, practice and practice, a lot of problems arise when you make even the simplest programs. Experience let you recognice patterns and adapt them to new situations. If you’ve done something similar in the past then you’ll do the new thing twice faster.

    Third: Share, comment and try to explain things. One of the best things you can do is start your own programming blog. Try to explain others how to do things, you’ll find it’s a lot harder than you think. You may think you know how to do something but when you try to explain how it’s done and why, you end up doing a lot of research and actually learning how and why is done on the process.

    Finally: You will start developing your own thoughts an opinions that diverge the usual thinking or the opinions of the rest of the people. Share them. Create a blog or whatever and express your new opinions. You’ll get feedback and will continue learning for it. For example, I read both Joel and Jeff blogs, sometimes I agree and sometimes I don’t. When I don’t, I either post to say why not or blog about it and in the process I always learn something, maybe through comments I end up changing my mind and that too is a good thing.

    from http://stackoverflow.com/questions/94579/how-to-find-a-mentor/596714
  • Do Web Entrepreneurs Still Need Venture Capitalists?

    “Yes, according to Robert Hendershott, a professor of private equity and entrepreneurship at the Leavey School of Business at Santa Clara University.”
    “Take the Apple App Store, for instance. In a few weeks, developers can easily build an application, submit it to the store and immediately find out whether it has any traction. “They can vet the idea in the marketplace”
    from http://bits.blogs.nytimes.com/2009/05/14/do-web-entrepreneurs-still-need-venture-capitalists/

  • How to find a programming language that you love?

    I know that I don’t like stuff I don’t understand and I like stuff which I understand. In college for a long time I thought I didn’t like maths and then this great teacher came along and I started playing more with it and understanding more and more, to the point where I knew more than other people, and by then I could say I was quite enjoying math.
    So you have to play more and more with a certain language until a point where you know more than other people. Then you will start enjoying more that language.

  • Pictures of Rosetta

    It happens ESOC has an exact copy of the Rosetta spacecraft and today I got to stand next to it and see how it looks.
    Rosetta features a military grade computer processor defined in MIL-STD-1750A by the U.S. Air Force and is also used for example in the Apache Longbow Helicopter.
    Almost as being part of the Dharma Initiative..