Hacker News .hnnew | past | comments | ask | show | jobs | submit | boulderdash's commentslogin

smart hiring strategy!


I think so too. It also works both ways. For those lucky enough to work on a mutually agreed Open Source 'pet project' they will have a good idea as to whether they really like the atmosphere and if the challenges available at Stripe are going to suit them.


Not actually what we're going for :).


Why not just allow it to be open source.


@srean - can you provide a link to the PDP support for coroutines? I would like to read more.


By the time I got within touching distance of any computer the era of the PDPs were long over. I have learned from John Skaller that they could exchange control between two stack frames in a single assembly instruction. "Exchange Jump" is what I think it was called. You will have to search the assembly manual for PDP-11 for more. Wikipedia has some details http://en.wikipedia.org/wiki/Coroutine#Implementations_in_as... But I am sure there are HN readers who can speak with way more authority and exhaustiveness than the wikipedia page and can probably point find you a PDP-11 manual. I think you will find this thread interesting http://permalink.gmane.org/gmane.org.user-groups.linux.tolug...

Quoting the most interesting bits from that thread, (although I urge you to read the original):

  Of the many styles of subroutine calls on the PDP-10, JSP ac,addr is the fastest,
  as it's the only one that doesn't require a memory store.

  Its ISP is something like:

        ac = PC
        PC = effective address [addr in the usual case]

  The subroutine return, of course, is:

        JRST (ac)

  Here, the efective address is the contents of the register.

  The coroutine instruction combined the two:

        JSP ac,(ac)

  This essentially exchanged the PC with ac.


Hi srean - thanks for that recap. I just did some more digging on this and tried to understand the assembly versions of coroutines. They were very spartan. It was just: POP the next address from the stack into TEMP, PUSH the current PC, then set the PC to TEMP. Notice that there isn't any linking or parameter passing.

Overall, it has been fun reading on all the variants of this idea.

side note: in my first job, there were a few PDP-11s in the lab that I was responsible for. We never turned them on though.

Also, the PDP 10, which you mention above, was one of the most revered machines by hackers.


Thanks for sharing that link.

I have seen James tutorial a while back, and I agree. He does a great job.


If anybody is doing this, let me share some words of advice based on experience.

Please use a virtual machine instead of doing this on your primary machine. You eliminate the risk of messing up your machine. Also, if you setup the VM properly, you get a debugger.


It's still important to test on physical hardware though, perhaps on an old spare machine you don't care about if you want to be cautious, as the virtual machines do not perfectly emulate real hardware. For example, QEMU initializes memory to all zeroes, whereas on a real system it's typically all ones, which led to some interesting bugs in my OS on real hardware where I had forgotten to zero out some memory.


Could you point to how to go about setting a suitable VM up on Debian? I could do with not bricking my machine :)



Thanks for sharing this. This is what Eugene Jarvis did to make Defender fast. It was a common tool in the toolbox for any clever game programmer for the 6809. I think it is awesome that Tom & buddy to experience the pleasure of its rediscovery.


guess what, in the bay area, connectivity up is generally even worse than that. For all the amazing internet companies here, the infrastructure for the public is pretty bad.


Been waiting for this, since the first articles like this appeared about 30 years ago.


DATA FTW!


this is awesome, thanks!


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

Search: