Hacker Newsnew | past | comments | ask | show | jobs | submit | 2007-12-08login
Stories from December 8, 2007
Go back a day or month. Go forward a day, month, or year.
1.Slutbot aces Turing Test* (roughtype.com)
39 points by davidw on Dec 8, 2007 | 10 comments

That series of articles may be the most significant thing I read this year.

I have a comment on one bit:

    In his article The Perils of JavaSchools, Joel Spolsky
    refers to "programmers without the part of the brain
    that does pointers or recursion". In this "ha ha only
    serious" comment Spolsky displays a profound intuition.
    He's obviously observed his teams very carefully. My
    only disagreement with him is that I know from
    experience that everyone has the necessary bit of the
    brain. It's just that understanding pointers and
    recursion requires juxtaposition, and in most people
    that mode is not accessible.
The pointer problem

I am a programmer who tried and failed to get pointers many times over the course of some seven years, and then consciously tried a new way of thinking about it that flicked a switch in my mind nearly instantly. I was aware of the widespread belief that you either did or didn't get pointers, and immediately wrote down everything I could about the situation in order to capture it. I'll describe my findings and the situation here.

Pointers are easy when you think about the program in terms of memory and what's actually going on: casting of ints. The problem for me was that my brain was filtering out the correct scenario because due to a contradition in the syntax. Let me present a simple example to use for discussion.

    #include <stdio.h>
    #include <stdlib.h>

    void fn(char *c) {
        printf("[%c]\n", *c);
    }

    int main() {
        char *c = malloc( sizeof(char) );
        *c = 'a';

        printf("start\n");

        fn(c);

        return 0;
    }
One of the things that kept screwing me up with pointers in C was the contradiction in the situation where you pass a pointer to a function, yet the function receiving it has a different symbol for it. Look at the example above - where we declare 'c' in the parameter list for the function 'fn' it has a star next to it. Yet when we call fn it doesn't. But ... those are the same thing. How can that be?

I found that the more I thought about the problem the less I'd understand it. I tried to get several friends to step me through it and couldn't get there. I'd actually get it for a while, and then I'd lose it. In desperation - and I'm not making this up - I worked out a series of base examples that I knew to work even though I couldn't see why, printed them and pasted the sheets into the back of a copy of _Systems Programming for SVR4_. Horrifically embarassing - a professional unix-based programmer, who hangs around real geeks, who has designed and implemented several successful applications on a variety of platforms - reduced to this. I rapidly reached the point where I could write and debug C code without my colleagues detecting the weakness through my system. A key part of it was knowing the exact point at which I had to actively stop thinking about the syntax and trust what was written on my base examples.

OK - step back a bit. There's something else that's important. I'm told that I spoke early when I was a child, and rapidly got to the point where I could hold court in a room full of adults, and talking at their level. English was my strongest subject throughout high school. Throughout my life people around me seemed to think I was very smart but I felt like a fraud because although I was qite quick in language stuff, there were some problems that kids who struggled in general got quickly and that I didn't.

Early last year I was struggling through what felt like just such a problem and noticed myself feeling at a loss without an example to leverage. I wondered why it was that I needed to learn from example, and thought it interesting that some people are able to work through things without examples, yet I seemed incapable of it. This caused me to create a theory that I had a strong skill at certain sorts of learning based on pattern matching, and that overuse of this skill had stunted other learning skills. I told myself that I'd look out for opportunities to solve problems without using this kind of approach.

The first decent example that came up over the next few days was - conveniently - the pointer problem. A friend called me up to say she had an exam the next day and needed help with C - could I help? Readers will already recognise that are few times in any lifetime when good looking, charismatic, single girls (this one is a superb singer as well) will seek you out on the strength of your reputation for coding and I replied in a steady voice and pace, "Sure - why don't you come over now?" As I hung up I thought - oh oh - back to that old pointer problem that has been haunting me since the beginning of time. But then I realised that this was the opportunity I'd been looking for to overcome a problem with non-example based learning.

I had the whole problem solved less than five minutes from putting down the phone. I dug up my copy of _The C Programming Language_ and read the section on pointers to refamiliarise myself with the problem space. As you would know - the problem in a world without pointers is that you can't change non-global variables within a function so that the change persists past the end of the function (I had always been fine with this - nothing new so far). So I moved to the next step and decided to ask myself, "how would I solve this?" Easy - pass in the memory address. Have a mechanism for referring to memory addresses in memory instead of the variables they contain. Oh, and there needs to be some syntax to be able to dereference a variable.

That was the lightening bolt moment. The problem with pointers in C is that the [star][varname] syntax means two different things, and they are actually contradictory from a certain perspective. In one context it means "declare a variable that is a pointer" and in the other it means "deference". Whenever my languages-brain bit looked at this it couldn't deal with it, recognised it as a contradictory positions and basically shut me down, but not in a way that let me work out what was going on. Have a look at it yourself from that perspective - hopefully you'll see what I always did. Now whenever I look at C code I instead just think "everything is an int and pointers are all about casting ints, and a star when you declare something is your way of telling the compiler that the type of this thing is int-pointer instead of just int". Thus I now have no difficulties at all.

When I was at uni I heard the whole thing about people not knowing C would never be Real Programmers. And I'm glad I stayed insecure about it, or I may never have conquered what is clearly a huge deficiency in my learning patterns. OK - that's enough about me. Let's instead look at the big picture. The assumption behind the claim that groking pointers is a good guide as to whether someone has what it takes is that in order to get C you need to be able to think like the computer. But could it in fact be the case that the emphasis on C in computer science has been driving people with a strength in the humanities away from programming (in preference of people who do not have a language dominance) for the last few decades, and causing bias towards people who lack whatever it was that was sitting in my brain filtering out the correct case?

Oh - the short conclusion of my story is that - girl came over, we spent all night pretending to be a C interpreter by drawing memory diagrams on my whiteboard, she moved from likely failure to a reasonable mark in the space of four hours, was thrilled after the exam the next day, and now we both live on different continents.

I think there are leaps in what I've written here. But I'm confident I'm on to something about the relationship between people who use a certain type of thinking and have trouble with pointers. It probably doesn't apply to people with a strong background in low-level programming.

3.Valleywag: Mark Zuckerberg cashes out (valleywag.com)
30 points by staunch on Dec 8, 2007 | 5 comments
4.Followup: Zuckerberg didn't cash out (valleywag.com)
26 points by jorgeortiz85 on Dec 8, 2007 | 7 comments

please let me undo my votes! I'm reading on an iphone now, and it's really easy to hit the down button instead of up, or vice versa.
6.Augmented Reality (economist.com)
20 points by robg on Dec 8, 2007 | 2 comments
7."Those Crazy Ideas" - Isaac Asimov on Creativity (64.233.169.104)
20 points by asciilifeform on Dec 8, 2007 | 4 comments
8.Stonehenge: The Incredibly Simple Secret of How It Was Built (snarfd.com)
17 points by nickb on Dec 8, 2007
9.GoBigNetwork full of scammers? (gobignetwork.com)
12 points by prakster on Dec 8, 2007 | 5 comments
10.Experimental Philosophy: The New New Philosophy (nytimes.com)
11 points by robg on Dec 8, 2007 | 4 comments

I particularly like this one error I got in one of my ubuntu installs:

"The program 'apt-get' is currently not installed. You can install it by typing: apt-get install apt"


The Boeing B-17 was an early four engine plane and was extraordinarily complicated. Previous planes were simple enough that checklists were unnecessary but the B-17 only became practical with the introduction of a pre-flight checklist. The current state of Hospital Intensive Care is compared to flying a B-17 before the checklist was used.

Empirical evidence is given about IV line infections, a major problem in ICUs. A 5 step checklist lowers the 10-day line infection rate from 11% to 0% at Johns Hopkins, an almost unbelievable result. It is confirmed over 15 months.

These results are again confirmed at an understaffed inner city hospital in Michigan with similarly dramatic results. The study from the Michigan hospital is published in the December 2006 publication of The New England Journal of Medicine. Despite these dramatic results, there is resistance against the increased use of checklists.

The checklist study author says he can introduce ICU checklists across America for 3 million dollars at the most. Because of the resistance in the USA, the country of Spain will be the first country to use checklists nationwide. The study author hopes that the USA will not be the last country to start using ICU checklists.

If anyone here has money to burn, lobbying for the increased use of checklists in intensive care units would get more net local social returns (in lives saved) than building Stanford a new emergency room and it would cost less money.


I moonlight as an ER nurse while I'm finishing my software engineering degree. I've worked ICU for a number of years as well.

It sounds simple to institute a checklist, but the key issue isn't the checklist, it's about allowing nurses to hold doctors accountable and the hospital backing the nurses up in those disputes.

Say you're a night shift ICU nurse. Your patient craps out at 3am, and your intensivist crawls out of bed to come and "line up" your patient and put them on life support. Do you think that Dr. Intensivist with 15 years of school wants to hear at 3am is a nurse with an associates degree tell him to stop what he's doing and start over because he didn't wash his hands properly before starting. I've had charts thrown at me for stuff like that.

This issue is accountability and incentives. This plan places accountability on the doctors, but it puts a lot of strain on the doctor/nurse relationship when that nurse is the one blowing the whistle on the doctor.

What we need is an incentive system for doctors. You need both a carrot and a stick. Doctors only get paid when the patient is sick. And, if the patient gets sicker, that doctor spends more time with the patient and bills more. There is no incentive to keeping the patient healthy, only payment for taking care of as many sick patients as possible. Doctors don't like it they generally want to take good care of patients. They just have to pay of $200,000 of student loans, and the only way to do that is to rush and see as many patients as possible.

If the doctors received a large bonus every year if their lines did not get infected, or if their patients did not get a pneumonia when the patient was on life support, you better believe that complication rates would go down.

If nurses got a small bonus every year based on our infection control practices, we'd all wash our hands a lot more often. But we don't. We're all paid by the hour on a patient assembly line.

The doctors or nurses haven't set up this system, the insurance system has. It's just the unintended consequences of our third party payer system.

Although, there are winds of change. Medicare is starting to threaten hospitals by not paying them if a patient gets an infection from the hospital.


Are we really believing that Digg is the unsurpassable pinnacle of social news?

Before Google came along, the search space looked pretty mature with plenty of entrenched players.

15.Doctorow: Scribd introduces copyright filter (boingboing.net)
11 points by kf on Dec 8, 2007 | 1 comment

Breaking news: there is no breaking news!

We joke about this, but it is deadly serious. My theory on 2 founders:

- 2 hackers: Work your butts off, keep design simple and do it yourself until you have something functional. Then worry about finding a designer.

- 1 hacker & 1 designer: One of you will be doing most of the (important) work. Guess which one? Frankly, I don't know how people pull this off. If you can, more power to you.

- 2 designers: What are you doing here? Go get 2 jobs.


have you tried the bookmarklet?

http://writewith.com/fun/bookmarklet

it will do what you want, just drag it on to your shortcuts area.


"I think therefore I am" is not from Aristotle but Rene Descartes not a good way to start :P
20.Tech Startups Eye IPOs Again, After Long Lull (wired.com)
7 points by makimaki on Dec 8, 2007

Don't knock him for that. What have you built?
22.World's Largest Telescopes Discover Bizarre Magnetic Star (dailygalaxy.com)
8 points by kkim on Dec 8, 2007

FYI: Jason Calacanis asked Ron Conway specifically about Zuckerberg cashing out some money[1] and he had no problem with it because FB is in no danger of running out of money.

1. http://www.calacanis.com/2007/07/20/calacaniscast-beta-30/


Clearly the human brain isn't at its best form when it's hr0ny.
25.I'm working on a startup, how do I take care of the business aspect of it?
6 points by bazookaaa on Dec 8, 2007 | 3 comments
26.Best configuration for dedicated server?
6 points by pibefision on Dec 8, 2007 | 21 comments

Just get plenty of memory. Nothing else matters in a modern server--CPUs are way faster than they need to be, disks are bigger than necessary (generally), and the bottleneck is pretty much always going to be RAM.

We all know of the terrific PR that GoBigNetwork has received in the press and also in this forum, so I decided to register with them, since our team is about to seek funding,

I was about to pay their subscription fee, but decided to check their user forum first, and found the thread. It really concerns me that they may by using the entrepreneurs' hard earned money (subscription fee of $39 and up) for creating buzz and not for filtering out scammers as mentioned in this post.

I would like the GoBigNetwork guys to take this opportunity on this forum and answer a few questions about their service WITHOUT A LAYER OF BS:

1. What was the total number of Internet/Web deals funded in Nov 2007? 2. What was the total number of dollars funded in Nov 2007 for Internet/Web deals? 3. What was the mean funding cycle time for Internet/Web deals closed in Nov 2007? 4. Why won't you take the recommendations of your user as detailed so elegantly in the thread?

Feel free to add more questions.


"President, Jamar A. Martin" added the first paragraph. This is more clear in the actual .doc. Some short phrases can be matched up in Google's indexed version of the publication of the essay.

http://books.google.com/books?ei=gGhaR77JGoTqiQHAht20Bg&...


I disagree on the soft RAID vs. hardware RAID (if by soft RAID, you mean the md layer in Linux). I'm not a fan of hardware RAID, in general. I wrote the following ages ago on Slashdot in response to the same kind of disparaging statement about soft RAID:

The data integrity benefits are still present, as are some performance benefits in some circumstances (in fact, Linux RAID is demonstrably faster in some workloads than a top end Adaptec hardware RAID controller, though this is the exception rather than the rule)

That said, I hate pretty much all RAID controllers (whether software or hardware). Linux software RAID means that I can drop the disks into any PC and access the data. Every RAID controller from Promise, Adaptec, and Tektronic requires me to use their disk format, and if I lose the controller I lose the data until I can get another controller. Sure, in high availability environments, you keep a spare...but with Linux software RAID, every PC in the office is a spare controller. That's my kinda redundancy. I've even had two identical Adaptecs with different firmware lead to pretty massive data loss during a server migration. Thankfully there were good backups. I've never had similar problems moving Linux software RAID disks into a new Linux box.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: