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

English articles

  • » Get the book while it is hot!

    So, finally, about at least two months after my original schedule, I started selling my book.

    The Single Page App Jumpstart

    It’s been a tough decision. Not because I didn’t think the book was ready (I always planned to release it as soon as I thought it had enough material to be interesting to people), but because I, after Hendrik asked me if I knew Leanpub, basically threw 20-30 hours of work into the gutter and went for them instead of building the book on my own.

    I did know Leanpub, of course. I even checked it out back in the days. But somehow I ended up trying to do all of this stuff on my own. Which was, as I see it now, a bad decision. From now on, every minute I invest into this project will be about the text and the example code and not about how to fix some weird code highlighter bug in Apple iBooks.

    So, thanks Hendrik, for poking me in exactly the right moment (After I spent a full weekend on readying my own infrastructure and publishing chain).

    It took me another day or so to convert the whole book to the slightly different markdown dialect Leanpub uses. Their publishing workflow is just insanely simple and brilliant - Thank you Peter and Scott for this great great platform.

    And now I advise you to Buy The Book!

  • » JavaScript Styleguides

    As an author of a soon-to-be-published book on JavaScript applications, I had to come up with a coding style to use in the examples I have in the book. So I wrote this article to explain my way of thinking about JavaScript coding styles.

    Having said that, the JavaScript community if there’s such a thing, has a few elements that leave me baffled every time. One of them is the battle over coding styles.

    One particularly curious example, that also often gets cited, is the npm styleguide. So to explain why my JavaScript coding style looks as old fashioned and C-Like, let’s look at this extreme example and why I don’t follow it.

      read more...

  • » Premature Abstractions Illustrated

    A lot of the discussion in the Ruby community are revolving around abstractions and when to use/do them and when not to. This is a struggle every developer faces every day, on various levels of, wait for it, abstractions.

    It is also something the JavaScript community discusses very often, hotly, with very mixed results. If you look at, for example, the discussions around backbone.js and all of those add ons like Marionette, you can easily see that this is a topic that can lead to hot blood and unclear results.

    Funnily, I recently fell into the “premature abstractions” trap pretty badly myself. I can’t share details in code, because it’s a yet to be released client project, but the story goes a little something like this (drop the bass):   read more...

  • » Your Design Principles

    A quick show of hands, how many of you have seen Dave Thomas’ closing keynote at the Scottish Ruby Conf?

    For me, this keynote was one of the most liberating moments of 2012. Why? Because in essence, he was telling me that I wasn’t crazy. He was telling my that my gut feelings of what I thought was wrong with the rails community were at least shared by someone who I hold in high regard.

    (By the way. If you have never read “The Pragmatic Programmer”, please do. Really.)

    Here’s the contents of the slide where Dave made me jump with joy:

    “Good” code is not the only code

    Dave said:

    I think there’s this increasing tendency in the ruby community to feel that somehow we’re the guardians of “good” programming taste. Right? Everything has to be done right. Everything has to be done using patterns. Everything has to be done using factories and injection and all this other kind of bullshit that I tried to escape when I left the Java world 1999. And what happens? You’re bringing it back to me. STOP!

    Yes, you could say that this resonated with me.   read more...

  • » Distributed synthesis - my MHD Reykjavik hack

    This is actually a pretty sad moment - I am sitting in an airport cafe at KEF and am about to leave Iceland after a brief, 6 day love affair with one of the most exciting places I’ve ever been to.

    The reason I’m here is the Music Hack Day Reykjavik which, as Johan, one of the organizers, told us, started off more as some sort of joke and then turned into the most awesome Music Hack Days I’ve ever been to. The event itself was great: Awesome food, great crowd of people, small enough to be able to get to know each other, pretty much the most awesome food I ever had at a hack day (Lobster soup from the Sea Baron. Need I say more?) and some pretty awesome hacks. But on top of this awesomeness: Iceland. With Geysirs and Huge Waterfalls (Gullfoss), Edges of continental plates.

    But enough of that. If you can find a chance, to go to iceland, it’s worth it. I will definitely go back for a longer visit.

    My Hack was something I had in mind for a long time now, but in contrast to earlier hackdays I didn’t actually prepare myself: I wanted to build some form of distributed synthesizer. With the Web Audio API available on iOS devices since iOS6 came out, this project got even more interesting. My original plan was to create something together with our long time MHD travelmate Michael aka Rockitbaby, but he had to cancel the trip on short notice due to very unfortunate events, so I was on my own.   read more...

  • » I'll be writing another book

    Just a quick post from another night where the sleep doesn’t come so easily. I am really happy to finally having gotten my sh-t together enough so that I can spread the news: I’ll be writing another book. The first one was definitely an interesting experience - It’s definitely worth a lot to be able to mention that you are actually the co-author of one of the first books on a subject when you are applying for a job.

    That being said, financially, writing a technical book with a traditional publisher is a complete desaster. I knew this beforehand and since I was writing the book while being employed, this was not a huge problem in terms of financial risk.

    This time, things will be a bit different.

      read more...

  • » On Jaywalking

    A few months back, I can’t exactly remember where and when, I came across the word “Jaywalking”. Since then, it has regularly popped up in discussions with people and so I took a good look at the wikipedia page. Forward to me mentioning it on the twitters, which triggered Jan Lehnardt to ask me if I could summarize my findings in a blog post. Which makes this the second post I wrote on his request.

    Well, here you go. First of all: I am not a lawyer. This text may also be full of errors. So don’t consider this text to be a legal advice.

    The term Jaywalking describes the act of crossing a street as a pedestrian at places and times where you probably should not. I say “probably”, because things already start to get blurry.

    Take my home country, for example. It is not illegal to cross a street at a random point. Actually I’m pretty sure that this is not true for all roads, as I am pretty sure German law has something to say about crossing an autobahn, but let’s just assume classic standard inner city roadworks, no motorway, no highway.

    So, as I said, you’re totally free to cross any street at any given point and it’s totally up to you to be clever enough to not be run over by cars. Now, if you do get hit by a car, things get utterly complicated in the process of finding out who might be responsible for that, so let’s leave that out as well. This is civil law by then anyway.

    There is, of course (there always is) an exception in our beloved “Strassenverkehrs-Ordnung”, or short StVO (Isn’t that one of the most german sounding words of them all?). As soon as you are within sight of a pedestrian crossing, or crosswalk for my american readers (weird enough, the law does not define a clear, distance based boundary on what “within sight” means), you are obliged to use it. And, as many people around the world find out when visiting germany, you are then forced to adhere to the traffic light. The fine for crossing a street during the red light seems to be something around 5 EUR, but I personally don’t know anyone who knows someone who knows someone who ever had to pay that fine. But that’s also because in general people just adhere to the traffic light, even if it makes no sense, because it’s 3AM in a godforsaken suburb and the next car will most probably cross this place in about two hours.

      read more...

  • » The Single Page App

    Yesterday, I gave two talks at RailsWayCon in Berlin, probably one of the weirdest Rails related conferences - It’s been held as a subconference to the “Webinale”, a rather large german conference on all things web. My guts tell me that this subconference had less then 50 visitors. Also, while the list of speakers is only partly impressive (Well, Yehuda is here, that’s something, I’d say), the talks were really, really good. So, really, weird mixed signals there.

    My second talk was recycled from last years codebits, talking about the importance of tooling in the frontend space (specifically Sass, Compass and the Asset pipeline).

    My first talk though, which was quite well received I think, was about building single page apps with Rails and backbone.js. It was a relatively high level talk about the things I’ve learned so far building backbone.js applications.

    Since my slides are usually not too useful without the actual talk (sadly, talks at RailsWayCon are not recorded on camera), let me summarize.

      read more...

  • » 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. <3 <3 <3

  • » 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...

Older posts (aka "da archive")