Live data from Hacker News

The Story of Mel (1983)

cs.utah.edu

71–80 of 175 posts

Re: The Story of Mel (1983)

#71
So, the RPC-4000 version of blackjack seems lost, but the LGP-30 version exists (and can be run on simh). I've disassembled and partly annotated it, and found that it too has a sort of cheat switch.

The LGP-30 has no source of randomness to use as a seed. From loading the program, if the player plays optimally, the games will all be the same. Over the first few dozen games, the player ends up in the hole (IIRC, noticeably more than the long-run house edge).

The LGP-30 has one conditional branch instruction, that tests the sign bit of the accumulator. But if the sign bit on the instruction is set, and the TRANSFER CONTROL switch on the front panel is set, then the branch is always taken. This appears once in the program. On startup, if the switch is set, it marks two of the aces as already dealt. This perturbs the sequence enough so that, over the first few dozen games, the player has the advantage.

Re: The Story of Mel (1983)

#72
post #22

Earlier quoted context omitted.

I've never heard of this. Was this just a quirk of the LGP-30?

Probably not. Look at your keyboard. Those are the keys on the right side of the home row. They probably used them because it was easier and quicker to type than 'abcdef'.

What keyboard layout do you use? Q and L sure aren't in the home row on a QWERTY keyboard unless you're one of those sales guys that only ever types TYPEWRITER. :P

Re: The Story of Mel (1983)

#74
post #55
post #52

Earlier quoted context omitted.

Some things never change. One of my first HN comments got me four down-votes for much the same comment. https://news.ycombinator.com/item?id=679208 Back then, I was so new it bumped me down into negative score. I almost made a new account but decided to keep it and try and rebuild my damaged rep. Nowadays, my score in the thousands, but Mel still sounds awful.

I'd be interested to know exactly why; Is it because he doesn't obey his bosses when told to make the program cheat, or just the way it's framed as some kind of testosterone caveman thing?

    In the story,    
    The storyteller is tasked with maintaining Mel's code.    
    He can't do it. Mel hadn't left any documentation.    
    All sort of tricks.    
    No explanation of what's going on.

Re: The Story of Mel (1983)

#75
post #55

Earlier quoted context omitted.

I'd be interested to know exactly why; Is it because he doesn't obey his bosses when told to make the program cheat, or just the way it's framed as some kind of testosterone caveman thing?

Obviously difficult to work with and unprofessional. Utilized programming side effects which obscured the intent of the code to such an extent that he unintentionally reversed the logic of the test he was supposed to implement.

Abuse of side effects to save code is just a reality of working in limited or embedded systems once you have run into their limits. On one of my current projects, the target has only 8K of program memory. I had to do some things I'm not proud of to get the required functionality to fit because the alternative was to say "It can't be done, scrap everything." The target is an embedded hard-realtime processor core, so there's no way to add more memory to it. It's a component integrated into a larger system so I can't demand a larger or more capable device without incurring significant redesign costs. Quite frankly, I won't be considered worth those costs. Nobody's doing to take on the expense and effort simply because I can't hack it. I'd have a hard time blaming someone for doing the painful to keep a project alive, considering I'm doing exactly that. We can always agitate for better conditions next time around, but this time we must go to war with the army we have, and sometimes that necessitates fighting dirty.

The rest of the stuff is entirely valid though. A programmer that cannot be managed is worthless, and someone who is unwilling to accept correction is a liability. I wouldn't refuse to work with him because unless I'm his superior I don't get to make that call, but I would probably go out of my way to avoid interaction. (And if I were his superior, unless he's got political juice or something, I'd have him shown to the door if he won't work with the team instead of against it.)

Re: The Story of Mel (1983)

#76
post #60

I bought the Hackers Dictionary by Eric S. Raymond as a 90s kid and it had this story, as well as a few others. Das Blinkenlights and some AI Koans like the Broken Lisp Machine come to mind. I used to read them over and over, and it really left an imprint on me. The early hacker ethos was such a strong flavor. Sort of a "one part gnostic, one part mechanic, one part counterculture" vibe. Sometimes I wonder if that fl…

I've wondered this too. When my dad was learning to program, this was the culture. When I was learning to program, the culture was no longer fresh and alive, but its spirit was still strongly felt; the torch was being passed to us. Have we preserved that light? If my son learns to program, what will "hacker culture" mean to him?

Re: The Story of Mel (1983)

#77
post #30

In 1997 I was doing an apprenticeship. It had a very well organized curriculum and well thought courses. One course was based on 8080/8085 cpu. You know what they gave us: A development board (roughly the size of a modern mainboard) with onboard hex keyboard 0-9a-f and 3-4 function keys (halt, run, write at ... something like that). And a book and templated paper. So the exercises, 3-4 hours every week, were: Impleme…

When I was faced with that task, I rapidly got fed up with hand-assembling and relocating my code and went off to write an assembler to run on a computer with somewhat less anaemic IO. I doubt I actually used it more than once or twice, but it was fun to write.

Re: The Story of Mel (1983)

#79
post #74
post #55

Earlier quoted context omitted.

I'd be interested to know exactly why; Is it because he doesn't obey his bosses when told to make the program cheat, or just the way it's framed as some kind of testosterone caveman thing?

In the story, The storyteller is tasked with maintaining Mel's code. He can't do it. Mel hadn't left any documentation. All sort of tricks. No explanation of what's going on.

Upvoted for the effort of responding in verse, very nice.

That rubbed me the wrong way too. Even the hackers at MIT documented their hacks, they even wrote up a memo explaining a bunch of them so others could understand and build on them - see HAKMEM.

Documentation was much more extensive and available back then. Systems frequently came with full schematics, and you could call the design team on the phone if you wanted. DEC would get phone calls about the PDP-10's RIM10B bootloader right up until the retirement of the 36-bit processor line, and they did their best to explain its tricks.

The loader was made to fit entirely in the processor registers so it didn't touch the memory it was loading. To do this it made use of a specific and documented aspect of the processor - that being that the first thing it did when executing an instruction is to determine its effective address, and nothing the instruction can do will have any effect on its own effective address calculation.

They had two bold-print warnings about this in the processor manual, both before and after the RIM10B source code, but some people still required more explanation. For those people, the explanation was given.

In Mel's story, he grinds out a very well optimized program, and while I can appreciate the skill it takes to do that, he documented none of it. This was customer-facing code. That's unacceptable even by their standards, and even his own co-workers of the era would have thought he was an asshole. A skilled asshole, with skill worthy of respect, but an asshole nonetheless.

Re: The Story of Mel (1983)

#80
post #25
post #23

Earlier quoted context omitted.

I'm disgusted... What was the motivation for that?

I found this [0] which says that the layout of the LGP-30 Flexowriter (linked in the article) conformed to fgjkqw, so it may be related. [0] http://laboratorium.net/archive/2008/04/28/a_few_facts_about...

From https://ub.fnwi.uva.nl/computermuseum//DWcodes.html#A077 the Flexowriter character code was:

    +----------------------------------------------+
    |  00   20   40   60         00   20   40   60 | (1)  triangle
    +--------------------+    +--------------------+ (2)  pi
    |  RE   NL   ST      | 00 |  RE   NL   ST      | (3)  sigma
    |  z    i    p    h  | 01 |  Z    I    P    H  |
    |  0    4    8    j  | 02 |  )   (1)  (3)   J  | BS   Back Space
    |  SP   /    o       | 03 |  SP   ?    O       | COL  COLor
    |  LC   BS           | 04 |  LC   BS           | DEL  DELete
    |  b    d    e    c  | 05 |  B    D    E    C  | HT   Horizontal Tab
    |  l    5    9    k  | 06 |  L    %    (    K  | LC   Lower Case
    |  -    .    x       | 07 |  _    ]    X       | NL   New Line
    |  UC   HT           | 10 |  UC   HT           | RE   REad
    |  y    n    u    a  | 11 |  Y    N    U    A  | SP   SPace
    |  2    6    f    q  | 12 |  *    $    F    Q  | ST   STop
    |  +    ,            | 13 |  =    [            | UC   Upper Case
    | COL                | 14 | COL                |
    |  r    m    t    s  | 15 |  R    M    T    S  |
    |  3    7    g    w  | 16 |  "   (2)   G    W  |
    |  ,    v        DEL | 17 |  :    V        DEL |
    +--------------------+    +--------------------+
    |     lower case                upper case     |
    +----------------------------------------------+
Taking bits 2–5 gives you: 0 l 2 3 4 5 6 7 8 9 f g j k q w
Post reply on HN