20130724

No really, how am I going to learn to program?

Here is one very good way: JFDI.

http://blog.jenniferdewalt.com/post/56319597560/im-learning-to-code-by-building-180-websites-in-180

20130723

What (Programming) Language Should I Learn?

People who want to learn programming often ask me what programming language they should learn.

Great question!  Check out this answer from the Programming Is Terrible blog.

The right answer is usually Javascript or Python.

Javascript is great because you can make interactive web pages using Javascript.  You can make really simple and even useful things and share them with your friends and family.

Another good choice would be Python.  Python has an attractive mix of qualities:

  • it's easy to get started
  • it's easy to build big, powerful, well-structured pieces of software with it
  • there is a big, growing community around it with a positive attitude
  • it's well-documented
  • it's clear and consistent

Ruby is fine.  The Ruby community is full of self-important weenies who think that making a video is a good form of documentation.  But there's nothing wrong with Ruby itself.

Definitely not PHP.  Why not?  It's not because PHP is an inherently bad language.  PHP has a bad reputation that it no longer deserves.  The reason not to learn PHP is the same reason that you shouldn't learn Russian.  Don't get me wrong!  Russian is a wonderful language; I studied it in high school.  There is some fantastic literature written in Russian, and millions of people speak it.

There's nothing wrong with learning Russian.  But you would be better off learning English, Mandarin, or Spanish instead.  Those languages are growing in terms of the number of people who speak them, and the places in the world they give you access to.

PHP programmers are unfairly seen as second-class citizens in the programming world.  Why mark yourself as a second-class citizen if you don't have to?  There's no advantage in PHP that makes up for that disadvantage.  So unless you have some other compelling reason to choose PHP, you shouldn't.

Definitely not C or Objective-C or Java.  They are fine languages, and are the right choice for certain projects, but it's harder to get started; learn them later.

--

Hey, I hope this is helpful.  Let me know what you think!  Questions are great too.

20130718

I Read Some Books

I decided that in order to attain Thought Leadership, I must Read Books.  So I read Moneyball and The Art of Learning.

I will summarize each of these books in 140 characters, in my own private shorthand.

Moneyball: Ideas can take a long time to find an effective vessel. It took 10-15 years for Bill James' ideas to be picked up by a baseball GM.

The Art of Learning: Mental <-> emotional health, discipline, insight and resilience are first-order determinants in chess, tai chi and probably everything else.

Of course there's so much more to these books, but the above lines summarize what I found most surprising and unique about them that can be concisely put.  If I had another 140 for Moneyball I would try and express what a great writer Bill James was.  Lewis is generous to quote James at all, because the bits of James he quotes are so much better than anything Lewis can string together.

James speaks of numbers "taking on the power of language" and I wish I had a better gut feeling for what he means by that.  I understand the concept in some abstract way but I don't grok it.

20120407

why was it not a gg?


After playing this game:


Me: gg
WrathofKane: it was not you suck i just sent my stuff to attack you... or you lose
Me: thats odd
why was it not a gg?
WrathofKane: cause i dint win
Me: :)
WrathofKane: you can call gg if you lose but it is not unless i win
Me: sweet
WrathofKane: and you saying it after i left means you are a cunt

20120323

buying an apartment in nyc


A friend asked me for advice about buying an apartment in NYC.

I wrote:

Buying a house means buying a job – as a property owner and manager.

Transaction costs are about 9% round trip.

Streeteasy, propertshark, ACRIS and Curbed are really important resources that you should be intimately familiar with pre-transaction.  Think of them collectively as your Bloomberg terminal. Also interesting are the Case-Shiller city indexes.  Millersamuel.com used to have great data available free – timeseries going back 15-20 years on co-op and condo sales -- and now it’s all behind a paywall.

New York Times has the best buy vs rent calculator.  http://www.nytimes.com/interactive/business/buy-rent-calculator.html

Check out its ADVANCED SETTINGS.  You’ll see that how long you own the place is really important to the buy-vs-rent calculus.  Also important is the rate of return you could be earning on the downpayment if you hadn’t bought a house.  That’s also in the ADVANCED SETTINGS.

Adverse selection is alive and well in the real estate market.  Places will have problems that are not apparent at first look.  Some of this can be mitigated, some of it can’t.  For example, if you do plan to fix it up, you could pick the general contractor first, and then have them survey the place before you buy it, and even make a binding bid to fix it up before you buy it.

It is entirely possible to construct a good estimate of construction costs in advance, but it will take some arm-twisting to get this to happen before you’ve bought the place.  The seller and the contractor will both fight to prevent this from happening.

Most of the fun things that you might want to do with a bought property could maybe also be done with a rented one?  If you shop for a rental with that feature in mind.

Since you brought up schools – the NYC school situation is changing rapidly.  Currently in Manhattan, there is a severe supply/demand problem between parents and schools.  I see the imbalance being resolved mostly by parents choosing to move out, as we did to Park Slope.  Not sure how that affects the Manhattan real estate situation.

Before buying any place, I recommend becoming intimately familiar with its local school dynamics, not because you personally will care, but because the next buyer might. For example, PS 3 and PS 41 have been threatening to change their service boundaries for a few years, which is driving people nuts in the affected areas.   Something similar is happening in Park Slope around 5th Avenue.

20120309

Rails is driving me mad, part 2

In django/python, in development, whenever I change any source file it's automagically reloaded.

In RoR, this is true for some source files, but notably not the source files in my lib directory.

There's a way to fix that:
http://stackoverflow.com/questions/2129458/automatically-reload-rails-module/2138935#2138935

But why is this in an obscure SO question/answer, and why doesnt Rails automagically do the right thing?  And why does Rails permit you to do it wrong, for example by using require instead of require_dependency?

20120306

Rails is driving me mad, part 1

In django, if a robot is spidering through your site and hitting non-existent links, you can suppress the email warnings about 404s with a simple configuration change, as explained here.

So how does one do this in Rails?

After a half-hour of fruitless searching I stumbled across this blog post and this piece of software.  The software does a lot more than I want, in particular it takes over the exception notification mechanism.  So I followed the instructions in the blog post, copy-pasting the code into my app, and so far it seems to be working OK.

This is not the magical experience I was promised!