Jan Krutisch ...maker. breaker. crush groover. body mover.

English articles

  • » Computer Literacy, the forgotten part.

    Oh my god. Someone is wrong on the internet, and of all people, it’s Jeff Atwood, aka CodingHorror. His article unfortunately makes a lot of wrong assumtions on why people like us would like to see more people learning to write code and not less.

    I’m not going to re-iterate on these wrongly made assumtions and, instead, tell you why I really, really love to teach people how to write code.

    You see, my first computer was a Commodore C64. No, actually, it was the Sharp PC-1403 pocket calculator of my father, programmable in glorious basic. The most important thing with both computers: When you switched them on, they begged you to program them:

    READY. ■

    And I obliged. Happily. Never got rid of that “I need to program this” feeling my whole life. But, from machine to machine, programming got harder. While, on my Mac, Perl, PHP, Ruby, Python and C are just a few keystrokes away, a modern desktop computer, and even less a mobile computer such as an iPad or an mobile Phone, don’t really want you to program them.

    That’s actually a good thing. Except when it isn’t.

    You see, when I grew up, the boys (sadly, it was mostly boys…) who toyed with computers were the nerds. The outsiders. Most of us had some programming experience the moment we entered the CompSci classes in 9th grade or so. We had taken our machines apart (sometimes quite literally, but mostly by peeking and poking into every conceivable bit of memory) and we were afraid of nothing. And I mean that. We broke things, but we knew that most of the stuff was easily fixable. We tried to play games. My venture into hacking was when I programmed a shim for the DOS machines’ Novell-Login we had at school, so that peeps typed in their login and password and my shim would write it to disk somewhere and log itself out, so that peeps thought they typed in the wrong pasword. My teacher didn’t like it but saw what I did there. Security policies were changed. Well. What I try to portrait is that we, the nerds, the insiders, the outsiders, we literally had no respect for those machines. We knew how they worked (or at least we thought so. I am still baffled every time I see a simple microprocessor design and try to understand how it all works with just a few logic arrays and a clock), and we commanded them.

    These days the kids grow up using a computer to use Facebook and most of the candidates I interviewed for mindmatters throughout the last years actually never programmed a computer before entering the University to study frickin’ computer science. And we end up with a youth that knows how to turn on a computer, but how it all works, well, that’s a nerd thing. Only that nerds these days tend to play computer games. Of course I’m unfair here - There are still tons of young peeps that are curious how to program these machines and teach themselves how to build an iPhone app and get rich by their 16th birthday. But what I’m trying to say: Just because you got a computer for your 14th birthday, you haven’t automatically written your first line of code before your 15th birthday anymore. And that’s a problem because it creates this distance between the user and the machine. It’s this thing where I can start a browser and then it loads facebook. It’s just a medium. Okay, it’s also a musical instrument, a video cutting machine and a typewriter, but it’s not this thing that does “whatever you imagine”. And all of that typewriterish, video-cutting, music-playing stuff is powered by higher magick. There’s no way a 16 year old in 2012 sees Ableton Live or iMovie or even Microsoft Word and says “I could totally write that, too”.

    This is not only a problem because we have way to few programmers right now (which we do). This is also a problem because it widens the gap between “those who use computers, reluctantly” and “those who know how computers work”. In my experience, people, when they first encounter computers, they are massively afraid to break things, as if they’ve been sat into the pilot seat of a flying 747 with 300 people on board, right above the atlantic ocean and told to “fly the dame home”. Part of that is that we still suck at building userfriendly interfaces. We do. Trust me. But part of it also is the radiation of inherent complexity that’s been emitted by computers.

    Being able to write code and tell a computer to do something completely changes this relationship. It puts you into the pilot seat, but this time on the ground and actually, if your teacher is clever, in a simulator. You can tell the plane, sorry, the computer to do stuff for you, even if it’s just painting beautiful pictures for starters. You don’t have to be able to program a full fledged web application or a 3D game or a music generator or a crypto processor to get that feeling. Some simple programs that do something that amazes you while you’re still fully in control (and we all know THAT feeling, right?) are enough.

    Thats why you should learn coding.

    And if you’ve lost your angst about computers and you found fun in programming them, you can start to work really, really hard for a few years and you’ll become a software developer. It’s a glorious thing. Or at least lucrative, so I’m told. But that’s not what’s important.

    Thanks.

  • » The only constant is change

    This blogpost had a loooong, long way to go, and I’m immensely glad I am finally able to write it, but also quite anxious about it - Not about the post as such, but about the implications of my acts that lead up to this post.

    I am relatively risk-averse. I think many of us are, and I think we germans are especially good at it. Change is frowned upon.

    That being said, sometimes change is just inevitable. For me, it has been since at least the before-last end-of-year, where I almost broke up with my girlfriend and, by the time the year was done, both of us lived, after 7 years of living together, in our own flats again. We’re happy together, with the usual highs and lows, but the separate living spaces give us shelter when things are rough, which, you know, also inevitably happens.

    So, that’s change on a totally personal level and that’s totally not what I was going to write about - Nevertheless, with someone who doesn’t draw very distinct lines between personal and professional life, it plays an important part.

    read more...
  • » The Ethical Programmer

    This is somewhat of a complicated issue for me. I’m having a lot of discussions with fellow developers and colleagues on this and it seems to be very difficult to find some common ground here. But since it bugs me a lot and I am still very indifferent on the whole issue, I had to blog about it and kind of hoping to start a discussion amongst us, the developer community.

    So, here’s the question: Do we have, as developers, have some kind of moral obligation to choose projects to work on which follow certain ethical standards. If so, what might these standards look like?

    For me, there are actually a few solid lines. I would never work for a company that builds weapons, for example. I would never work for organisations that are downright, and knowingly so, criminal. Beyond those lines, things tend to get blurry very very fast. Take Apple, for example (just picking it because of it’s current popularity, could probably pick any consumer electronics vendor). While working at cupertino is certainly a cool job and work ethics are valued relatively high at the company(take a look at their “It get’s better” video, for example), you still would work for a company that manufactures their computers in factories where people actually commit suicide during work. Well? How would you decide?

    But let’s dismount the high horse – I’m aiming lower. Actually so low that “ethical” sounds a bit huge.

    Actually, I want to turn this completely around, from negative selection to positive: Are you, am I working on something that makes the world a better place? The internet a better place? Does it make people happy? Does it help people doing their jobs better, making their lives better?

    Because, in the end, that’s what I want to aim for, as a programmer, as a citizen, as a human being.

    And, to be honest, I think that we’re largely failing here.

    read more...

  • » Redesign, Schmedesign

    Yeah, right. I did a big bang relaunch on this blog. Well, not really, it took me about 6 hours, markup changes were minimal, but the whole thing is a little more sematic now and actually is html5. I used Andy Taylor’s excellent 1140 responsive grid, in form of the eleven40 compass extension from Jeremy Bush (I ran across some issues with it, hopefull I’ll find the time to fix them soon).

    The rationale of this redesign was to cut down on visual complexity. It is now more or less one of those “standard, two column, image on top, large font, serif text, sans-serif headlines” blog templates. I used two of the proposed font stacks from the excellent Revised Font Stack article by Amrinder Sandhu, to be not completely in boring-land with Helvetica and Times New Roman or something like that. I am happy with the design for now, although I would love to apply some Wowo style baseline nazi love to it somewhere in teh futare.

    And, yes, I implanted a small Adsense Ad on the page.

    How do you like it? Lemme know on the twitters or in the comments. Thank you for your business.

    Now I only need to write more often.

  • » Why Big Bang Relaunches are evil

    A few days back, XING started an online campaign for their grand redesign that will launch in june 2011. The campaign is nicely made, with interviews with some of the people behind that huge undertaking. I like it.

    What I strongly dislike, though, are big bang relaunches. I voiced that concern on twitter and this lead into a longish discussion with various people. So, I’m writing this post to archive my points I made yesterday, but also to elaborate a bit on the responses.

    Here’s my basic set of assumtions. If you don’t agree with them, you won’t agree with the rest of my text, which is fine, by the way :)

    1. Agile project/product management and software development is the best way to build our software. I don’t care if you use Kanban or Scrum or XP or whatever, but don’t go chasin’ waterfalls.
    2. We build software for our users. This sounds like a no-brainer but I’ve too often seen people build software for the googlebot. Did it myself even, but not without cringing.
    3. We do have a lean organisation without much organisational friction. I’ll come back to this later, because this actually may be a bit of a stretch.

    Funnily enough, we had that discussion briefly last wednesday at the Ruby Usergroup, where it became obvious that Big Bang Relaunches are obviously one of the clearer reasons to have a good branching model on your SCM (Source Code Management) system which was the main topic. The top reasons given why Big Bang Relaunches are necessary according to the audience were:

    1. Because Marketing wants them
    2. Because Designers can’t do incremental design

    Let’s look at them in detail.

    read more...

  • » Well, well, hasn't it been quiet in here

    Well, yes it has. I still feel like my whole life still didn’t settle enough for me thinking thoughts deep enough so that I could blog about them. And then, I’ve obviously been bitten by the pesky twitter bug, resulting in writing invariantly more, but in 140 character chunks.

    So, whassup? Awesome Fontstacks is still going relatively strong, although it is extremely hard to find the necessary time to bring the idea forward. Well, there’s still more than half a year left before to come up with an idea on how to pay the server bills :)

    On a similar note, we’ve developed an idea we currently call “Awesome Ideas Inc.”, which right now consists of a small group of awesome people committed to bring one small project to life in each quarter, every time in a rails rumble like fashion. We just (this weekend) finished our first project, which we launched in what I would call silent beta. If you’re interested in checking out a project in a very rough and unfinished state, hit one of us up on the twitters for a link.

    read more...

  • » An awesome ride!

    Although it had it’s low and high parts throughout the last year, I woulda not consider my live particularly turbulent. Consider that to be changed.

    I won’t bother you with personal details (I’ll guess I will write about that when the dust settled a bit more), let’s just say that sometimes 5 steps change everything. And by everything I mean everything that defined my personal life up to that point. Okay, enough of that.

    What has happened, though, as well, is that I finally managed to again participate in the rails rumble, a 48h hour coding contest. I did it in 2007 with almost the same team, resulting in us winning the “Most innovative” category and me having an ideal start into my brand new job at mindmatters. Here’s my account of it from 2007 after we won.

    This year, my team was kinda the ultimate dream team:

    • Wolfgang, one of the font-craziest people I know and also, after 3 years, not only a coworker, but also a very dear friend.
    • Florian, who, although we haven’t spend nearly enough time together while he still was in hamburg, is not only a friend but probably the most kickass devops personification you can find (and I really hope the podio guys know how lucky they are).
    • Thorsten, who is one of the most experienced rails devs in germany, and also one of those people you can always rely on in case of trouble.

    read more...

  • » Me and MongoDB

    If you take a look at the talks I gave and will give in the near future, you’ll notice a little pattern there – I’m talking a lot about MongoDB. This is not by accident: I quite like working with it, and although I am only now starting to use it in my day job at mindmatters, I tried to use it in my pet projects as much as possible. Here’s my top reasons why I like MongoDB:

    • Schema free document database. Nuff said. It’s the future.
    • A query language that’s conceptually close to SQL makes it easy to switch, but allows to do advanced document related stuff.
    • Nice libraries for ruby. Mongoid and MongoMapper both are an excellent choices and work nicely with Rails 3.

    Also, MongoDB is, as we all know, web scale. Only, I was, for now, not really in a position to compare MongoDB’s scaling features to other alternatives, and so I am actually more hoping for version 1.8 which will, for the first time, ensure single server durability — And while the 10gen got a lot of flak for their rather “unique” approach to durability and the tendency to gloss over it, I have a feeling that they lately really got the message on that – At least that’s what I seem to remember from my conversation with Richard Kreuter from 10gen at the FrosCon, where it all got a bit blurry after too many Kölsch.

    And so I am very happy to speak about Ruby and Rails Integration of MongoDB at the Mongo Berlin Conference on the 4th of October. There are still some spots left, so feel free to join us. The conference is only $100 which is, judging by the speaker line up, extremely good value for money if you are interested in MongoDB.

    And just in case you are going to visit the SAPO Codebits event in Lisbon in November, I’ll give a more general talk on MongoDB there.

  • » Some thoughts on photography

    Every now and then, Mathias Meyer, also known as @roidrage on the twitters, and I get into a discussion on photography. Mathias is definitely both the more experienced and more talented photographer. He also invests a lot more time into something that might as well become his profession somewhere in the future. I certainly would not object. Please visit his flickr stream, it’s awesome.

    That being said, we both have a tendency to disagree on the subject of digital photography vs. analogue photography. Which is only natural, considered that I am a digital only shooter while Mathias is almost completely analogue.

    So here’s my take on it, in one coherent piece and not split between various twitter conversations and chat logs.

    read more...

  • » Whew, I attended a hackday

    And then, I made it. I flew, for real, using an airplane, I attended a hackday and I came back, all in time and without any complications.

    So. What did I hack on? I decided earlier on that it was about time to heave my “remote” stockholm hackday project to the next level – Webloop. I wrote some stuff about it already in January

    Webloop screenshot

    read more...

Older posts (aka "da archive")