HNHacker News
TopNewBestAskShowJobs

wildjim

105 karma · joined March 18, 2009

submissionscomments
wildjim··on Should programmers learn machine code?
ok, not quite as hard-core as to write my own assembler, but i grew-up with ZX-81's and C-64's, and like-wise: if you wanted speed, BASIC couldn't do it, and a C-compiler couldn't fit in the memory (IIRC, games writers cross-compiled any C on PC's).

And it's true: the best optimising compiler in the world cannot work out the intentions you had for your code -- sometimes choosing one type of algorithm will optimise quite differently from your intention -- and if you have even basic understanding of what's happening on the hardware, you're already ahead.

Funnily enough, in my last job I met someone who had the same sort of experiences, and understanding of the actual hardware, and we lamented that no-one was growing up these days understanding the low-level stuff, incl. bus dymnamics, interaction between I/O, memory and CPU, etc, etc.

Doubly interesting was in my current job, met someone who understood JVM byte-code as well as assembler, and he claimed it was key to understanding how to get truly great performance from Java.

wildjim··on Ask HN: Is version control worth learning early on?
Yes, yes, yes, yes, yes, yes!!!

I work as a release engineer, and the sheer number of f*-ups that could be avoided by dev's understanding version control better is truly astonishing.

It doesn't matter very much which version control system you use (though there are a few which will give you a pounding headache) it's more important you understand a few useful processes, like merging and conflict resolution, branch strategies (e.g. feature branches, release branches, does HEAD == all source-code?, etc, and why you'd use one or the other) check-in style (e.g. larger chunk(s) with peer code-review?, frequent updates that allow you to follow your thinking at a later date?, pre-submit unit-tests?) among a few other things.

Even though not all of these things will be needed by your project(s), knowing those things in-advance are what will allow you to use a VCS effectively, even if you work alone.

wildjim··on Microsoft pushes for single global patent system
I hope it never happens.

There are certain Americanisms that have infected other countries patent systems over the years (e.g. software patents) that have done far, far more harm than good AFAICT, especially to the smaller countries that have been strong-armed into efficiently hamstringing their own nascent technology ventures.

The appearance that patent law in America is only about leverage against all your competitors with patent lawsuits rather than protecting truly original discoveries (especially those of smaller companies who can't adequately defend themselves against the super-corp's) is an utter travesty.

It puts me in mind of the same erosion that allowed us to become part of a worldwide debt economy (i.e. hardly enough real resources to back the debt).

wildjim··on Brain Difference In Psychopaths Identified
The thing that really scares me is that you could easily argue that everyone has a "little bit" of psychopathy in them -- see how car drivers in big cities treat others on the road, see how some people go "too far" during war.

What threshold would/could you pick?

wildjim··on On Scala's future
More "long-winded and painful" compared with Ruby, Perl, LISP, Haskell, among others.
wildjim··on On Scala's future
I'm also confused by your dislike of operators and syntax sugar. These are some of the things that made Ruby so popular, and the sort of ham-stringing that make Python and Java so long-winded and painful... If you're worried about n00bs shooting themselves in the foot, that's really a matter of training -- you wouldn't give all soldiers single-shot rifles just to make sure the new recruits couldn't lose control of an automatic. Later on, those "technical excellences" may be exactly the right spanner for the bolt.
wildjim··on Unmarked surveillance vehicles in Central London
I think this was semi-confirmed by a London paper recently as council parking surveillance vehicles; several defendants in a parking-fine case successfully got their fines overturned as there were no signs nearby warning of CCTV or Traffic Cameras, etc.
wildjim··on McKinnon's last appeal has failed
"If a foreign national..."

Do you really mean "if"? It won't even be "when", it will be "for some time, now".

wildjim··on The future of Ruby is....Java?
Except that almost all these comments seem to assume a long-running / web process.

Start-up times and memory requirements for the JVM are just horrendous; I can't write a serious command-line tool in Java because of these constraints. Even Scala has a compiler-tool which runs as a background task (fsc) because of this.

wildjim··on Ask HN: Why Python over Ruby?
Re: "5" 2 == "55" vs. 2 * "5" == Exception*

You need to remember that EVERYTHING is an object, there are no basic/literal types at all; in this case, "5" is really just syntactic sugar for creating a "5" String object, 2 is syntactic sugar for creating the "2" Integer (Number?) object, and the " * " operator is syntactic sugar for the " * " method of the "5" String object == ' "5".times(2) ' (which is similar to Perl's ' "5" x 2 ' construct).

The String class supports a " * " method which creates n copies of it's string value, and concat's them together into a new String object, but the Integer class does not.

Many "basic" objects have explicit conversion methods, but will also frequently support implicit conversion where it makes sense.

wildjim··on Ask HN: Why Python over Ruby?
People should be careful how much they quote Google as their reason for preferring Python.

The main reason was when they were standardising on the core-languages they could support, Python was enormously far ahead cf. the competition, so it was an obvious choice. And now, with all that code investment, you do NOT want to start again. And if you have the money, of course you'd be interested in hiring the best developers for your code-base.

Likewise, I believe Python 3000 is unlikely to used in Google for the forseeable future, due to that same code investment. I don't think Python 2.6 is fully supported, either...

I don't think "a bit more beginner friendly" is truly accurate. Most beginners will look for doc's and books, and for a good few years, recently, there was a dearth of good Python books while there seemed to be a new Ruby or Rails book every month, including several allowing you to d/l them for free.

I have to admit that I used to recommend Python to beginners for a long time, as it helped them avoid developing bad habits with the other equally popular "beginner" PHP and Visual Basic languages. These days, it's a toss-up.

If the person talks about writing web-apps, I'll tend to recommend Ruby and Rails as it has earlier ROI for a beginner, therefore a lot initially more satisfying.

wildjim··on Ask HN: Why Python over Ruby?
I totally agree about picking the languages you want to learn. There's only so many hours in the day, and you will have different pref's on style and language design, anyway.

I'd love to learn Scala (after being a Haskell and Ruby fan for years) but finding the time is incredibly difficult...

wildjim··on Ask HN: Why Python over Ruby?
To be fair, "Pythonista's" were renowned for slagging-off most other languages, and in the same breath, claiming how very like LISP their Python is. Hopefully this attitude has died off...

Ruby developers (Rubyons?) were renowned for typical Japanese self-effacement when it was becoming popular, which I think was some of the appeal... I guess what goes around comes around...

wildjim··on Ask HN: Why Python over Ruby?
Everything is an object in Ruby, including the blocks. I'm not clear how you can't pass around a block -- or is it the block + iterator metadata you're talking about? I suspect that's just an experience problem, where Python promotes iterators over lambdas so lends itself to a different style of programming; I'm not sure how often you'd want/need to pass a full iterator around in Ruby.

Personally I find blocks far more intuitive than Python's iterators and generators, but that is a subjective thing.

WRT Magical Classes, I'm not a fan of everything being stored in a dict. It seems grossly under-engineered to expose the underbelly as a basic "dumb" object; at the very least, it should've been a "Class Metadata" object with attached support methods to make it easier (safer?) to inspect or update.

And lastly: there is NEVER just one way to do it!! Witness the confusion n00b's feel over the join() method: ",".join([LIST]) where the more intuitive would probably be [LIST].join(",")... but if you MUST have join() in the string module, why not support the latter as a redirect to the former?

Seriously: this sort of dogma can make certain kinds of algorithms very messy to code.

However, my biggest beef with Python is that I seem to have to write a metric buttload of boilerplate and end up with something very Java-esque... <sigh>

wildjim··on Honey, I killed the superbug
My family used to do similarly, even though "modern" medicines like neosporin were popular then, but IIRC bark and sap from the Manuka tree is supposed to be good, too.

+1 for raw honey being better, but it's pretty hard to get it in big cities (without paying ridiculous prices!).

wildjim··on Ruby style guide
That's kind-of the point: emphasis should be on readability, not "this long, and no longer!", and that applies to all points in any style-guide, i.e. it's a "guide" not a rule-book.
wildjim··on Ruby style guide
This is explicitly disallowed within some companies...
wildjim··on Ruby style guide
I really hate other people's style-guides. Most of it is common-sense, but there's always some aspect or another that really grates against my preferences, e.g. "Keep lines fewer than 80 characters" is a pet hate; when did we return to Green-screen terminals?? My current company enforces this, and it often creates worse multi-line dischord cf. adding an extra 10 to 20 char's to the current line.

And "Read other style guides and apply the parts that don't dissent with this list" is a little too arrogant for any coder in the entire world -- perhaps should be "Replace any parts of this list that don't conform to your style".

wildjim··on Ruby style guide
I've heard all sorts of arguments for and against, but in the end it only matters that you consistently choose only tabs or spaces, and that you use whatever header-settings your IDE provides to enforce the decision across all the coders, e.g. for emacs:

  #!/usr/bin/ruby -w
  #-*- standard-indent: 2; indent-tabs-mode: nil; -*-
[...]
wildjim··on Specialist vs. Generalist: Who Wins?
I'd agree with the comment "it depends", except that I've always considered myself a generalist, and it seems to be the main reason I've managed to avoid employment problems over the last several employment "bubbles".
← PreviousPage 3 of 3