Alan Skorkin

skorks.com · Personal blog · on HN since 2008

Alan Skorkin, a software developer, writes about programming practice, Ruby, bash, URLs, and the culture of software development.

What HN saysHN commenters recommend it as follow-up reading, mainly the post on why developers rarely use state machines and the one on bash shortcuts.
73HN people shared it
13linked it in comments
141stories submitted
2.2Kstory points
5 months agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Why Developers Never Use State Machines
    9 people · 431 points · first shared 2011 · 161 comments on HN
  2. 2
    Bash Shortcuts For Maximum Productivity
    7 people · 190 points · first shared 2009 · 56 comments on HN
  3. 3
  4. 4
    What Every Developer Should Know About URLs
    4 people · 130 points · first shared 2010 · 27 comments on HN
  5. 5
    Software Development And The Sunk Cost Fallacy
    4 people · 23 points · first shared 2010 · 4 comments on HN
  6. 6
  7. 7
    On The Value Of Fundamentals In Software Development
    3 people · 19 points · first shared 2010 · 4 comments on HN
  8. 8
  9. 9
    Ruby Procs And Lambdas (And The Difference Between Them)
    3 people · 11 points · first shared 2010 · 2 comments on HN
  10. 10
    Did your boss thank you for coding yourself to death?
    2 people · 143 points · first shared 2010 · 118 comments on HN
  11. 11
    99 Out Of 100 Programmers Can’t Program – I Call BS
    2 people · 132 points · first shared 2010 · 161 comments on HN
  12. 12
  13. 13
    Closures – A Simple Explanation (Using Ruby)
    2 people · 61 points · first shared 2010 · 30 comments on HN
  14. 14
    The Myth of the Underachieving Genius
    2 people · 46 points · first shared 2010 · 34 comments on HN
  15. 15

What HN people wrote when they linked it

3pt14159 · 2017-07-30
Fantastic bit of research and write-up. SSRF is going to be the major story for the next couple years. I've seen them all over the place and they are much harder to block since they exploit multiple protocols and the properties of URLs have many arcane rules that aren't known to most programmers. Reading this a while back really opened my eyes to how complicated it was, even if I'd already learned (the hard way) most of it: http://www.skorks.com/2010/05/what-every-developer-should-know-about-u…
0xmohit · 2016-09-13
Another good read: Bash Shortcuts For Maximum Productivity [0] [0] http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
punnerud · 2016-05-16
[Follow up read] Why developers never use state machine: http://www.skorks.com/2011/09/why-developers-never-use-state-machines/
coldnebo · 2014-12-06
The core problem is definitely the support of custom types. I agree, if you refuse custom types everything gets a lot simpler. Here's a very simple example of marshaling comparing Marshal dump and load in Ruby using YAML, vs. custom JSON marshalers: http://www.skorks.com/2010/04/serializing-and-deserializing-objects-wi… Note that the post shows a tree structure in YAML because Marshall gives it to you for free (synonymous with Java serialize behavior). But the post punts on implementing the same tree in JSON, probably because it's messy and complicated. Nothing about that looks simple to me. For example, the JSON class label "A" has to be interpreted by something to actually instantiate an A Object. YAML is a bit better-- it at least defines that there is a Ruby class instance being marshaled -- but it doesn't help you if that class doesn't exist the same on client and server. Pretty soon this leads to madness in production systems where the server evolves "A" (v2) among a sea of separately evolving clients "A" (v1, v1.1, v1.2). Then versioned class annotations get introduced, followed by attempts to differentiate between serializable and non-serializable fields, deep and shallow serialization, etc. etc. Pretty soon, your JSON marshaling isn't so simple anymore.
braythwayt · 2018-02-26
> they go to the same dusty corner where so many other CS > topics that are never used in practice lie already. https://www.skorks.com/2011/09/why-developers-never-use-state-machines…
ics · 2013-08-20
There's an older (but still interesting) post about case in Ruby here[1] and another here[2] with some extra insight into the MRI implementation. Having learned Ruby before most of the other stuff I play with these days, I always second-guess myself when using a switch/case construct in my code. [1] http://www.skorks.com/2009/08/how-a-ruby-case-statement-works-and-what… [2] http://www.daniellesucher.com/2013/07/ruby-case-versus-if/
wolfhumble · 2013-02-02
I have been looking for apps that teaches keyboard training geared towards computer programming, and this looks like a good start. Congratulations! Would be cool to have a few tests where you can train typical bash and vim commands and see the ideal finger placement. Extra credits for emulating things in e.g. bash like: ctrl+a and alt+u etc. For command shortcut inspiration see for example: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/ Anyway: Good job! :-)
vlandham · 2012-10-23
Very similar list here: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/ which includes some other nice shortcuts - like ctrl + xx
eaurouge · 2012-04-05
What's missing in the other comments is that you can't call private methods with an explicit receiver, for example my_object.private_meth or even self.private_meth. On the other hand, public and protected methods can be called on self. See this blog post for more info: http://www.skorks.com/2010/04/ruby-access-control-are-private-and-prot…
GFischer · 2010-07-26
This article by Alan Skorkin tried to differentiate between the Computer Scientist (Engineer in your case?), the Programmer and the Developer: http://www.skorks.com/2010/03/the-difference-between-a-developer-a-pro… I agree that there isn't a standardized definition.
xtacy · 2010-05-23
An interesting application of skip lists: http://www.skorks.com/2010/03/faster-list-intersection-using-skip-poin… But I can't see why the same cannot be done using trees. :-/
St-Clock · 2011-08-18
"What you fail to realize" <- ? First, I believe there is a cultural difference between Canada and the US. In Canada, a Master's degree is typically not a professional degree and you usually cannot buy a M.Sc. Typically, half of the credits come from courses and the other half (often even more) comes from your thesis. I don't know about the situation in the UK, the author's country of origin. Second, I TAed and taught programming, algorithms, and software architecture courses for undergrads, Master's and Ph.D. students so I'm well aware of the advantages and limitations of higher education. I saw students in an advanced architecture course who did not know what a thread was or who had never written a single SQL query. Well, they learned it in my course. The graduate students that I described aren't rare. At least 75% of the Master's and Ph.D. students in the SE lab and PL lab at my university match that description. Maybe they would have a hard time building a web application in a day, but I think they have demonstrated that they can learn pretty complicated things and that they will learn how to solve your particular technical problems. I felt the article was really about "degree snobbery", meaning that the author promoted snubbing people with degrees. I understand the frustration of people without degree who need to prove every time that they don't need one. But I don't believe that having a systematic negative bias on candidates with a degree is wise either. Honestly,…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close