Pindancing

pindancing.blogspot.com · Personal blog · on HN since 2009

A programmer's blog on software careers, agile, machine learning, and Haskell, including advice on mentoring and programming at 50.

What HN saysHN commenters recommend its 2009 post "Let the Agile Fad Flow By" as a favorite and worth reading in full.
27HN people shared it
15linked it in comments
14stories submitted
959story points
4 months agolast shared
2009people per year2026

Most-shared posts

  1. 1
    The answer to "Will you mentor me?" is...No.
    7 people · 625 points · first shared 2010 · 81 comments on HN
  2. 2
    Sudoku in coders at work
    5 people · first shared 2010
  3. 3
    Stuck in Code
    4 people · 99 points · first shared 2009 · 24 comments on HN
  4. 4
    Learning about Machine Learning
    2 people · 37 points · first shared 2010 · 2 comments on HN
  5. 5
    Let the Agile Fad Flow By (2009)
    2 people · 1 points · first shared 2014 · discussion on HN
  6. 6
    Do you want to be programming at 50?
    1 people · 79 points · first shared 2012 · 108 comments on HN
  7. 7
    Why startups in India find it hard to hire devs
    1 people · 78 points · first shared 2011 · 43 comments on HN
  8. 8
    A Haskell Journey
    1 people · 38 points · first shared 2010 · 10 comments on HN
  9. 9
    Let the Agile Fad Flow By (2009)
    1 people · 1 points · first shared 2014 · discussion on HN
  10. 10
    Sudoku in Coders At work
    1 people · 1 points · first shared 2013 · discussion on HN
  11. 11
    Why do startups still use java part 4
    1 people · first shared 2010
  12. 12
    Answer to will you mentor me is
    1 people · first shared 2015
  13. 13
    Sudoku in coders at work
    1 people · first shared 2016
  14. 14
    Why do startups still use java part 3
    1 people · first shared 2010
  15. 15
    Why do startups still use java
    1 people · first shared 2010

What HN people wrote when they linked it

willvarfar · 2014-03-11
Here's my favourite post about Agile: http://pindancing.blogspot.com.au/2009/09/let-agile-fad-flow-by.html Very worth reading entirely.
barrkel · 2016-03-19
Abstractions aren't merely for duplication removal. Abstractions are for symbolic chunking; for thinking about things at different levels. We don't use e.g. units-of-measure types [1] because they remove duplication from our code; if anything, they add duplication. They do however clarify our thinking with help from the type checker. I think a lot in terms of flows / pipes / functional transforms. So I tend to try and express problems in that shape, because I have a lot of mental tools that I can apply, and I know they're extremely easy to test in isolation. Creating a pipe-like thing means reducing it to a simple common push or pull stream pattern. But it's not duplication I'm removing here; I'm actively introducing an abstraction because it has proven power for creating good software and solving problems. I try and create few, minimal abstractions that can be applied widely. Take a cue from functional languages and split out types from algorithms; if you make your types more general, you increase the reusability of your algorithms. Classical OO design tends to create a lot of types that are specific to the domain model. I happen to think that OO designs are usually poor; they tend to have a high code complexity to implemented logic ratio, and require awkward composition that leaves details hanging out. I spent 20 years writing OO software and was a big fan, especially in the early 2000s. I still work in OO languages, but most OO code I read makes me wretch now. I…
partition · 2010-11-25
I have mixed feelings about this. On the one hand, the peer review system was designed specifically to keep out the low-quality material that blogs let through for free because of their more inherently democractic nature; I can't be the only one who thinks many people who blog (and even some who appear on HN) are not presenting useful enough or clear enough material to be worth reading by any audience. People's lives are finite and time spent reading published work that is useless detracts from time spent reading useful work that helps in one's own line of inquiry. Smooth talking bullshitters like Ron Jeffries who promote objectively useless or even counterproductive methods abound, taking bandwidth away from more useful ideas. You need only remind yourself of this exchange: http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.htm… http://pindancing.blogspot.com/2009/09/sudoku-in-coders-at-work.html It will be sad the day a Ron Jeffries of the academic world wastes as much of other people's time reading his posts. But has that day come already? On the other hand, it's not like the peer review system is immune to gaming and corruption either. We've got people chopping whatever work they've done into least-publishable-units and objectively good work being ignored because it is not like the other peer-reviewed work out there. And since most people working in a scientific field have not also gone through educating themselves against bullshit techniques (i.e.,…
plinkplonk · 2010-04-24
I got good at mathematics. IMHO, This is the key step in making the shift from enterprise dev to ML. This is also where I've seen many people making the attempt give up. I also worked through some AI/Machine Learning books. I started with Norvig and Russell's AIMA and open sourced resulting Java code (yes it is a beginner's book and not tough at all, but it is very well written and a great starting point). Then I worked through more narrowly focuses books (and there are plenty of nice books see lists below). I got involved in the local ML community (mostly defence labs - Bangalore doesn't have many cutting edge startups/ sw companies yet). The combination of deep math and good programming opens many doors (as Bradford Cross and others point out elsewhere - see Brad's post at http://measuringmeasures.blogspot.com/2010/01/learning-about-statistic… for a list of resources . I wrote a supplementary blog post on the books I found useful (I have a somewhat different focus from Bradford and so ended up working through a different set of books) at http://pindancing.blogspot.com/2010/01/learning-about-machine-learniin… It helped that I didn't know I was not supposed to do such "crazy" things in my old age and (perhaps rather naively in retrospect) didn't doubt for a second I could teach myself anything I wanted to. I have zero academic background comp sci/math/ML etc. My proudest moment was when a senior researcher I respect highly at first refused to…
wonnage · 2026-07-06
This is much harder than it sounds. Most techniques I’ve seen end up using separate agents to do the planning, implementation, and judging. The elaborate workarounds you have to build to help an agent which fundamentally doesn’t know what it’s doing reminds me of this old blog post about TDD: https://pindancing.blogspot.com/2009/09/sudoku-in-coders-at-work.html?… IMO present technology is tailored for an experienced developer to give agents manageable tasks that can be one-shot. The marketing right now reminds me of the 90s when AskJeeves promised natural language search when the technology was fundamentally still stuck in keyword search, and learning to craft a search query for Google is today’s prompt engineering
miles · 2019-08-26
> what would be the most efficient way to go about searching for this type of tutor? Read Ravi's words of wisdom: http://pindancing.blogspot.com/2010/12/answer-to-will-you-mentor-me-is… and the related HN threads: https://news.ycombinator.com/item?id=20715136 https://news.ycombinator.com/item?id=1994998
BraveNewCurency · 2017-12-23
Trying to get a mentor is a little like trying to get a Significant Other. In theory, you can "just ask", but in practice you have to fundamentally understand the other person before you can 'ask'. This article sums up how to get a mentor: https://pindancing.blogspot.com/2010/12/answer-to-will-you-mentor-me-i…
sebg · 2016-06-17
This is a good place to start: "The answer to "Will you mentor me?" is" -> http://pindancing.blogspot.com/2010/12/answer-to-will-you-mentor-me-is… with the HN discussion here: https://news.ycombinator.com/item?id=1994998
dozzie · 2016-04-25
Whenever I hear about searching for a mentor, I imagine some guy that simply waits for illumination to happen, by osmosis, I suppose. I see searching specifically for a mentor as a kind of fashion or supersitition of these days. (Mind you, this is merely an association, a first impression that I have when I see such questions.) Do you have a plan how to use this "mentoring" thing? A concrete idea what you want from a mentor and how your work would look like? Do you have anything to show him/her, so the mentor has any foothold for comments? This is a good piece of article about exactly that: http://pindancing.blogspot.com/2010/12/answer-to-will-you-mentor-me-is…
kleiba · 2013-05-17
...which can have its benefits, but can also go terribly wrong if you get lost. (Case in point, Peter Norvig comments on a famous series of TDD blog posts that had the goal of writing a Sudoku solver, but ultimately failed: "And I could see, right from the start, you put these two together, and you could solve this Sudoku thing. He didn’t know that so he was sort of blundering in the dark even though all his code “worked” because he had all these test cases." http://pindancing.blogspot.com.au/2009/09/sudoku-in-coders-at-work.htm…
grok2 · 2010-10-04
Actually this post from that same blog (to me) correctly summarizes the Kata exercise: http://pindancing.blogspot.com/2009/09/sudoku-in-coders-at-work.html Specifically Norvigs quote in the blog: "I see tests more as a way of correcting errors rather than as a way of design. This extreme approach of saying, Well, the first thing you do is write a test that says I get the right answer at the end, and then you run it and see that it fails, and then you say, What do I need next? that doesn’t seem like the right way to design something to me."
philwelch · 2010-06-26
Your comment reminds me of this: http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.htm… http://pindancing.blogspot.com/2009/09/sudoku-in-coders-at-work.html It's a discussion of two people, Peter Norvig and a TDD enthusiast, both building a Sudoku solver. Norvig takes a no-nonsense AI approach and the TDD enthusiast flails for five blog posts without getting anywhere. To me, the moral of the story isn't to mock TDD, but to point out that different problems require different approaches. TDD can't be naively applied to an algorithmic problem the way it can be applied to a nuts-on-bolts web app, for instance.
IvyMike · 2025-09-22
Always gonna have to side with Peter Norvig on this one: https://pindancing.blogspot.com/2009/09/sudoku-in-coders-at-work.html > They said, “Look at the contrast—here’s Norvig’s Sudoku thing and then there’s this other guy, whose name I’ve forgotten, one of these test-driven design gurus. He starts off and he says, “Well, I’m going to do Sudoku and I’m going to have this class and first thing I’m going to do is write a bunch of tests.” But then he never got anywhere. He had five different blog posts and in each one he wrote a little bit more and wrote lots of tests but he never got anything working because he didn’t know how to solve the problem. I actually knew—from AI—that, well, there’s this field of constraint propagation—I know how that works. There’s this field of recursive search—I know how that works. And I could see, right from the start, you put these two together, and you could solve this Sudoku thing. He didn’t know that so he was sort of blundering in the dark even though all his code “worked” because he had all these test cases.

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