A peep inside WDI

Some shots from the first few weeks of the course. I have eaten at least four of those hot dogs. I lost at Ten Pin Bowling and still can't talk about it.

The MTA Lab Strikes Back: Live

Hey. Well - I have the MTA lab live online. 

You can now visit this amazing website and figure out a journey from a select number of stops on a select number of New York's train lines.

Except you can't, because I'm not telling you where it is.

I did some (very) light CSS on this - initially I wanted to use images for each stop to create a cool render of the journey, but I think you need permission from the Mayor to use those.

So instead I just dumped the route out in the MTA's font (some font called Helvetica, apparently) and made it BIG to try and make the point.

By this time next week I will (hopefully) have my first fully-functioning web app.  

Maybe I'll even post the link.

 

Screen Shot 2013-10-25 at 2.33.33 PM.png

Why Am I Learning to Code: Part Deux

A while back I mentioned a list I had made of reasons to do WDI and (ultimately) learn to be a developer/acquire dev skills. Here it is in full, in no particular order:

1. Health - to be able to work on my own terms/with flexibility. I've got a knackered back y'see. 

2. Ability to freelance - to have greater say over which direction my life takes and, should I ever get laid off from a job unexpectedly, have better means of making money.

3. Relationships - having a stress level I can control will make me a good partner and ultimately (I hope) father. 

4. Family - I can go home to the UK when I need to/have to and get more time in my weeks to be accessible and in contact. I can take a contract overseas.

5. Skills - getting to the heart of what I enjoy most; the things I want to do every day.

6. Reputation - by doing GA I can expand my online presence and build some personal projects.

7. Access - for three months I get to ask questions of really talented people and suck up as much of their knowledge as possible. 

8. Advantage - being able to bootstrap my own business, authoritatively produce web projects or confidently hire other developers are huge benefits.

9. Sydney - immersion in the startup culture here, making it officially my 'home', and expanding my networking opportunities.

10. YOLO! (Drake: The Motto)

 

A Bunch of Useful Links

These will probably help you if you want to make stuff for the web or run a startup.  

Tools

Databases

Ruby

HTML, JS, CSS

Sinatra

Startups

 

How I Learned to Stop Worrying and Love the Bugs

My code wouldn't work last night.

What is annoying about this, is that I had convinced myself I was going to smash it.

To be completely honest, I had already mentally prepared a self-congratulatory tweet.

I knew entirely where I was going:  I had thought through the tasks, thought through their order, had set up the files, organised my database, altered my layout, told Sinatra what complicated things I needed it to do.

I approached my laptop as an Eastern European gymnast approaches the horse. I was going to charge at that thing, execute precisely what I had prepared, and land smack bang on my dainty but training-hardened little feet.

And then came the Ruby. And the bugs.

Bugs used to freak me out. They were a sign of me not knowing anything - that what I had done was wrong, or how to correct it.

But very, very quickly with web development comes the realisation that bugs are your life. The bugs are the job.

(If I were training to be a chef, the bugs would be the burns. The reason chef's have asbestos hands.)

With writing, wisdom dictates your first draft will never be read so you should get it on the page as quickly as you can.

And coding is kinda similar. 

From here on, I won't officially start a project until my first draft is complete and I will welcome in the bugs as a shepherd whistling for his flock.

The truly great thing about WDI - where there is no company clock ticking, or till ringing - is that I get the help I need to figure it out from people who have seen it all before have the patience to see it all again. And again.

On to the next one.

The View From Morning 13

Noone ever said it was going to be easy.

And frankly it isn't. 

Some of the best online tutorials are called 'Learn X the Hard Way' because, well, the Hard Way is the only way when it comes to this stuff.

And learning at such a rate has its pros and cons. Or perhaps the pros somehow are the cons. 

For example, if you are hating something or just not getting it, another thing comes along super quick to take your mind off it. 

But you have to hope the thing you've moved on from does not come back to bite you. 

As seems to be the case, a lot of what we are learning is superseded later in the course by a framework which promises a newer, better way of doing the same thing.

There's a decent amount of this - learning stuff you will probably not use (in its pure form) to better understand and appreciate the preferred ways.

On the point of what I hate and don't:

CSS and HTML is comforting to work with. I guess I've grown up seeing and working with that code so it isn't as problematic, even to find answers when I'm stuck.

Doing databases has been fine. It seems most folks despise this part of the process but to me it seems straightforward and the SQL commands are pretty much in the plainest English. [EDIT - as of this morning's class it is obvious SQL is as secure as the average child actor. We are learning ActiveRecord today.] 

Sinatra routing I find pretty cool. I'd always wondered how servers listen to your inputs and throw back something via the URL. And now I know.

Which - until the next thing arrives - just leaves Ruby. 

God knows I've done a lot of work on Ruby. I've been working until midnight most nights on it. But unfortunately more input (of time) does not directly mean more output.

If you don't know what you are doing, diminishing returns set in pretty damn quick.

I guess where I am at is this:  

If I had been studying engines for 3 weeks, I could probably tell you what a carburettor does, whereabouts it should be placed, and what other bits it connects to.

At the moment coding Ruby every day is like being walked blindfolded into a garage.

Once the blindfold is removed I find I am in complete darkness. Suddenly, the lights are slammed on and all around me are the countless parts of a car.

Then a friendly voice says 'I'll be back at 9am to pick up my Holden. Just Hipchat me if you have any problems.'

Nick's Amazing Movie Lookup

So I built a web app.

With my amazing Movie Lookup you can enter any movie into the prompt - any movie! Ever made! - and you get back a load of related info: year, cast, plot etc - with an image of the poster.

It uses html, css and ruby, with the local hosting shiznitz handled by Sinatra.

Sound cool?

It isn't. It's absolutely shit. But still, it is what it is. And at least it is.

I showed this to my girlfriend, eagerly asking her for the name of a movie.

She said: "Eternal Sunshine of the Spotless Mind."

I said: "Give me a one word title," as I hadn't worked out how to globally substitute spaces in titles.

"Looper",  she said.

I hit the submit button and her reaction, in the immortal words of Bill Hicks, was one of a dog being shown a card trick.

After a few seconds of her waiting for something more impressive to happen, without shifting gaze from my laptop, she said: "I have no idea what I'm looking at."

And so it begins.

The Keys

Looking at my keyboard as I type, little more than a week's worth of coding under my belt, comes this sense of awe that the answers lie within.

Like, everything that's ever been made, every operating system or game or website or (probably) life support machine, must at some point have begun here.

I bet no-one has ever gone up to Jony Ive and said: "dude, that latest keyboard is an absolute fucking masterpiece." 

But the one I'm looking at is. 

True story: I once went out for dinner on Valentine's Night to a basement restaurant in London.

In the middle of the dining room, nestled amongst the dozen or so tables, was a Grand Piano. 

At the end of the evening - it being Valentine's and all - some drunk guy got up to try and play Eric Clapton's 'Wonderful Tonight' to his wife. But he couldn't. 

He knew all of the chord shapes, but he didn't know the chords in the song.

I on the other hand knew all of the chords in the song but none on the piano. 

Between the two of us we managed to play that damn tune, me calling out the chords and he playing them. The diners (collectively) sang.

Everyone in that place looked at me, understandably, as some kind of virtuoso. 

They cheered at the end, urging me to take the stool and play some other crushingly soulless tune. But I couldn't. I didn't know how.

The drunk guy wouldn't let up so I had to make out it was my night off from being a virtuoso and insist he stopped hassling me.

I swore to myself that night I would learn piano (and go out to piano bars every Valentine's in the vain hope of retrospectively claiming my rightful glory).

But I haven't. 

And right now, the very idea I might be capable of building a website of my own from scratch, back to front, feels inordinately harder than the piano could ever be.

 

WDI: Week 1 Update

I'll admit right now, I'm a crier. 

Situations You'll See Me Cry

  • During the speeches at weddings, as day turns to night and I become pleasantly drunk
  • At some point during any rom-com (if it adheres strictly to genre conventions)
  • Whenever a contestant on a reality show is eliminated (volume of tears proportional to niceness of person)
  • When listening to either of my two breakup albums (both by the Icelandic artist, Mugison)  

The issue here, as is plainly obvious, aside from the embarrassment of this being public, is just how innocuous these situations are.

Even I look at that list and think 'for Christ's sake man, grow a fucking pair.'

But! Here's the funny/tragic thing. When it comes to life's big stuff - car crashes, deaths, physical trauma, careless destruction of family keepsakes - I have, on the surface, displayed very little emotion. (OK, absolutely nothing.)

There have been many times - often involving someone's newborn -  where I have actually willed the tears and found the well, well, well and truly dry.

This week - on Thursday I think it was, though I have now disregarded your conventional means of measuring time - the tears did flow.

The kind you try to stop but can't. 

They were entirely selfish, a bit pathetic, tinged with anger and - in retrospect - completely pointless.

To analyse them - as I am doing right now, for the first time - I suggest they were triggered by a long-forgotten feeling of being way out of my depth. 

The little kid at big school, when you wonder where the classroom is, or where everybody just went, or if you are even in the right school at all. 

I will think of the events of Thursday evening as merely a tremor in the force.

The view from this afternoon, typing in the General Assembly classroom while my fellow class-people wrangle with Ruby's arrays and hashes, is one of collective determination, of wildly ambitious targets, and of an overall willingness to grab this WDI course and kick it firmly in the dick.

Why am I learning to code?

Prior to taking this course, I made a list - naturally - of reasons why it is a good idea. A 'pros' list if you will. (A 'cons' list could have been made too, though I didn't bother making it. Let's not analyse why.) 

Over the coming weeks I will share the entire thing and, hopefully, my reasons will stack up. 

I will post them in no particular order other than an affinity with the particular reason on a particular day. One that resonates on most days is:

Reason 1: Health

I am typing from my home office in a saddle seat at a raised desk.

Years of bad posture, video games, sports and desk jobs have taken a toll and I am slave to the idiosyncrasies of a spine which has baffled the best medical minds in Sydney.

So surely coding will make it worse? 

Not so. The developers I know (OK, some of them) take their setup seriously and, accepting they will be in front of a screen for hours every week, ensure they have it optimised.

Plus, they seem to roam offices like Big Cats at dawn, pacing their environs for a spot to settle. 

 Aside from the course I am prioritising exercise - swimming, core strength in the gym, stretching and yoga, let's see how I go.

My home office during its reno.