HN user

zengargoyle

151 karma
Posts0
Comments70
View on HN
No posts found.

Sit right back and I'll tell you a tale. Fortune is a parasite glommed over the original intents of the Architecture of what is now known as Fortune.

Originally as the high gods intended the whole mess was nothing but a Rolodex, a box of index cards, etc.

You see, the first line of the '%' delimited records would be a 'LAST FIRST PHONE' and the rest would be for instance 'SMITH, JOE 867-5309' on the rest would be 'wife Mary, 3 kids (Joseph, Adam, Beth), maybe address, etc.'.

The '.dat' portion created by the 'strfile' would take that file and alphabetize it and then keep the 'seek' offsets in the file for each record. This let you have a big (for the time) Rolodex with fast retrieval upon search. Binary tree and all that, plus fast read of whole record because ... binary search, read one line match or not then difference between match and next record would be bytes needed to read (minus 1 for the '%'.

Fortune 'fortune(6)' started life as an address book,The random and multiple files and all that jazz was just a bunch of repurposing that took over and became a life of it's own. Nobody uses the 'first line sort' bit of 'strfile' program. Mostly the original has vanished into the wind, I have no clue what the command line thing was to bring up the Rolodex/Index Card of somebody was.

The 'man' page doesn't do it justice, but nobody really cares, and I like many others have a '~/quotes' file that is automated and hot-key bound to selecting a bit of text and preassing a couple of keys. If you know the https://en.wikipedia.org/wiki/Reservoir_sampling thing, you dont' even need the '.dat' file for the random bit.

Freshman year of high school I took a class called "Business Computer Applications". It was 1983 and I was 13. We were using Apple II+ computers or their clones. I had an Apple II+ since they came out and knew lots of things by then. I "wowed" my teacher with 3 line programs and such. On our classroom floppy I had a file with a control character in it's name, it was a disk editor. Knowing the disk directory layout things (it was a linked list of blocks), I carved out a whole hidden set of directory entries. So each day of class I would load up the disk editor using the invisible control characters, patch back in my hidden blocks, play with my hidden files, then at the end of class I'd load the disk editor up again and hide my files. Teacher never saw what was really on that disk.

Technically, yes for about seven years. We were introduced by a mutual friend because we were both staying on campus over the Christmas holiday. We hooked up on Christmas Eve and dropped some acid and had a fun few days. We were both the oddly precocious types who graduated high school at 16/17. We were both sorta slutty. We just became best of friends for the next few years (we both went our own separate ways romantically, we would eventually even go out and hook up with each others roommates...) We went out and got tattoos together on her 18th birthday. It was a couple of years later that we got married (I like to pontificate that we got married by the justice of the peace in the Blade Runner building. It was justice of the peace and somewhere in an old downtown LA building, no frills). She had her mothers or grandmothers ring or such, mine was a Peace symbol ring from a gumball machine with the Peace symbol torn off.... It turned my finger green unless coated with clear nail polish. About six months later I left university and moved halfway across the country. It was always interesting to eventually tell girlfriends and such that "by the way, technically I'm married". Around seven years later I ran into another mutual friend who told me that she had been looking for me to sign papers and such and couldn't find me. We did meet up again a few years later and nothing came up, she finally settled down and got really married. I assume she got a rubber stamp divorce for abandonment or even non-consummation (almost, but we were both so "too drunk to fuck" on Extacy that we gave up and just went back to the party). She's still a fond memory of a bestest friend for years, we could like read each other's minds, almost too dangerous to be serious.

Back in the late 1980s when I was a teenager I found plans and built this little circuit with a LED that would light up if someone else in the house was trying to listen in on my phone calls. More than one phone off the hook... LED lights up.

The first program I ever keyed in was the one dimensional lunar lander simulation on my dad's HP calculator. Must have been 6 or 7 years old (by 9 years old I was doing BASIC on an Apple ][ with floating point card and programming intersections of two pipes to make cutting templates). Even back then I got to the 'suicide burn' approach. Made playing the arcade game pretty easy years later.

This is why you fail. Thirty years ago I could make a wire wrapped 68000k board that did nothing but play music. CE/CS was different back then. I'd cut pins and solder in chips to twiddle the filters on audio output. You could know the entire process from power on to running of your computer and it was easy to change bits even down to the hardware level like adding a 'no place to put it unless you build it yourself' CPU/MPU/RAM upgrade and make it work. Adjust your NTSC video output, just cut that resistor in lieu of replacing it with something really high resistance, it'll be better. Let's build our own new high speed serial port for MIDI. How about a graphics co-processor that only does Mandlebrot calculations, let's build three of them. Only few of the younger generation comprehend the old ways. And the machines have changed to fewer chips and machines have turned into system on a chip. It's a bit of a shame.

Something like `read` gives a better example. Like `man 1 read` is "read — read from standard input into shell variables", "read [-r] var...", a shell function. And `man 2 read` is " read - read from a file descriptor", "ssize_t read(int fd, void buf, size_t count);". You can also get into `man 8 catman`, "catman - create or update the pre-formatted manual pages", "catman [-d?V] [-M path] [-C file] [section] ...". The `catman` is a mirror-like hierarchy of man pages (usually in troff format using the 'an' macro package) pre-formatted for the standard terminal or whatever to shave off a bit of time running roff on the source files all the time.

This is all ancient knowledge and well in place back in the mid 1980's long before Linux or any of that stuff. The `man` page sections used to be different 3-ring binders all printed out sitting on a table in the computer lab. The 'sections' were just different binders of documentation. Get off my lawn!!!

My pre-internet 16yr old ancient self (late bloomer) who had to read books in libraries and bookstores who lost first girlfriend by not kissing her and second girlfriend pinned me down and started sucking my face off while growing four extra hands... Kudos. There's an art to the kiss and so much more, a worthy field of study for a young gentleman. Next do the non-actual-sex parts of the Kama Sutra and the art of sensual massage. There are more appendages and nerves than one might think of....

I used to mess around with Anki many years ago while studying Japanese. The approach I took was to figure out the database structure, then write a bit of code to expand the information on cards. Just alter the database directly. Mostly for things like adding dictionary words to existing kanji decks. Looks like it would be a nice addition to genanki to be able to read/modify/save existing an existing apkg.

Same, I had my books from 1986 (when I was 16) bought from Caltech's bookstore while I was there at a summer program (YESS, Young Engineer Summer Scholars) that went on for months where I learned 2-3 semesters worth of undergrad physics/calculus. Such a wonderful summer nerd program for the day and age. Best summer camp ever! So many stories. Lost the books in a move in the late 1990's, still a bit sad about it. One of these days I'll add them back to my shelf.

Yeah, my org had a Kerberos setup for some DB/middleware/CLI tools. I inherited a bunch of random script tools that took the whole typing in passwords for everything. Screw that, first thing I did was write a Kerberos module and set up a Kerberos keystore. Presto, no more typing passwords for everything. Typically it ends up boiling down to whether or not the backend thing you're talking to supports Kerberos, many don't and only have the whole SSL thing. A well setup Kerberos was much nicer to work with than chained SSL certs.

I think about half the comments I've ever made here on HN are about my Amiga 1000 that I got in 1985. By 1989 it had a 14MHz 68020/68881 with 4MB Fast RAM, an 80 MB SCSI drive, and a MIDI interface that I built myself from diagrams from a Byte Magazine article. Such an awesome piece of kit. I worked in front of a Sun 3/50 (that's were I got the SCSI disk) and used the Sun compilers to write my Amiga code. Poor person's Sun workstation it was.

I'm talking about AmigaOS. Bits and pieces were based on https://en.wikipedia.org/wiki/TRIPOS and the kernel itself had a lot of UNIXy sort of features. In the late 1980s if your work job is sitting in front of a Sun workstation you bought an Amiga for home instead of a Mac or DOS machine. I would dial my Amiga into work before going to work and remote shell in (rlogin/rsh/rcp) and just shuffle things back an forth without effort. One could do CS homework both on the Amiga and on the SunOS systems just by linking to a different library. I never even had a C compiler on my AMIGA, didn't need one. I can't imagine writing some code on UNIX and that trivially making it run on a Mac or DOS machine. People even build stub UNIX libraries for AmigaOS that faked the user/group/permissions and other bits of the UNIX experience. It was just a pleasant experience for those late 80s compared to the alternatives.

AMIX is a whole different can of worms, they did that much later and I'd expect it was like porting between HP/UX, AIX, BSD etc. Probably pretty easy by then.

Forth is a really nice language for learning raw machine code then adding an assembler then moving up to a HLL in a few printed pages of code. The ultimate macro assembler. Back in 1986 teenage me found this library book that described Forth as "a ball of mud" which later made sense. A small core of machine specific bits form the core, you have to make that by hand. Then you accumulate and write an assembler on top of that. Then there's the I/O and logistics of the system. Then there's the whole interpreter/compiler all the same. It's the ultimate bootstrap. From laying down bytes in memory to a hybrid interpreter/compiler that you can say "take this word and make it a thing" and it can fart out this little polished turd.

Forth is a ball of mud that you start at the beginning and at the end you end up with a shiny turd of a https://en.wikipedia.org/wiki/Dorodango.

Forth is bottom up insted of top down. The concepts teaching/learning wise start at the bottom and lead up to the top. You can't learn that starting with Python or Fortran or C or BASIC, or even Assembler. Bottom up.

Forth might not be the best Pascal/Basic/Python learning some stuff language, but Forth is the best bits in memory to HLL "full-stack" language.

I wish your brother had done it on raw hardware instead of in Java. It is a really nice language for learning.

https://news.ycombinator.com/item?id=28081181

The OS was close enough and wonderful under the hood. So many UNIX people bought one for home just because it was so easy to port UNIX code. I wrote Amiga apps on a Sun3/50 using Sun's compiler and just transferred the binary over to my machine. The Amiga Pascal software even had a special program included to transfer binaries over serial/parallel from a UNIX box (usually a Sun). You mostly just needed to link to a different crt.o / clib.

The Pinouts Book 5 years ago

Ah, the good old Crap and Crud (C&C) manual. Back in the day every EE/CE/CS/IT sort had a big 3-ring binder of everything that they learned once. Serial cable wiring CTE/DTE/Crossover, wire color orderings for punching down a 110 block. All the good stuff that pre-real-internet everybody took their own notes.

I couldn't find a link anywhere to some sort of 'blank' PDF example, or to a fake filled out example. Double sided printing would be nice. So would formatting the output so you could cut/fold/staple it down into a little book.

Cool idea though. At work (back in the day) we had little laminated pieces of paper crammed with important numbers, a new one every year. Came in quite handy. Having the access to the scarily high res Xerox printer I'd print out a little black book of friends phone numbers to always have around.

Lol, seems I have somehow actually been remembering the forerunner DKBTrace or something. Sometime around 1989 I had it on my Amiga from a Fred Fish PD software disk. Even on my buffed out A1000 (68020 14Mhz 4MB) it took a long time to make a picture. So since I was student working for the university computing services department... I shanghaied a whole user room of Sun 3/50s (it was closed for the night) and had like 20 workstations each doing a single slice of an image. Much faster. Then my account was disabled and I had to go talk to Security about misuse of computer resources. heh. Good times.

USC would disable any residential port trying to host a real server like that (i.e. not a game server or something). It's a research and education network, not your free ISP. If you have legitimate reasons, get a teacher's note and we'll let you. We watched the connection counts, we'll investigate the weird and probably disable your port and account and send you to Student Conduct. You have to fly under the radar, too many connections to other machines on inside (you're up to something), or too much traffic (you're up to something else). Then again, we were better at network than most other universities.

Ditto. But eh... My bagel place was large enough to be industrial park warehouse sized and served the state of New Mexico with outlet shops and probably the bagels you find in the bulk bins at the grocery stores. They hired anybody breathing. It's a fun hacker story.

I applied and they told me I was overqualified so I played the "starving actor" card. I do computers and stuff but need a blah blah job to pay the rent. Bagels on that mid-industrial scale are more assembly line like engineering. Cut the dough, feed it into the former, put it on a tray, freeze or proof and bake, coat with things if needed, fill boxes... it's more of just a process.

A few weeks later the boss comes out for like the third time for a gripe session complaining about all of the wastage happening during the proofing process. Engineer brain piped up and blurted out "your doing it wrong". Gah! do it this way. The boss turns to the floor manager and promptly sends him out shopping for a list of items and the next day my procedure was implemented and all was well. A week later the boss calls me into the office with the owners. They can't do much but slip me a goodly amount of cash under the table.

Not to long after I was the mix-master coming in at 3am with the boss to get the work started and prepare the days production run and we'd bash out a significant amount of product in the couple of hours that it took for the rest of the workers to come in for their shifts. Then he'd go to the office and I'd just mix up new batches of dough or go make some boxes.

Pretty much walked out every day with enough bagels to fill myself and my housemates.

I would agree in the end, that sort of "baker" is pretty much dead end. There aren't really advancement positions much beyond mix-master or floor manager, it's a sparse field.

I actually found "baker" trivially easy compared to Dev/CS work. Same with "residential dining" or "warehouse management". If it's large enough it's just another procedure/process problem that you can hack into shape just like programming.

In like '89 when I was 19 and at university my work-study job was with the IT/ComputingResources department (old names). I worked as a graveyard shift NOC operator swapping tapes and handing out print-jobs, running system tests and stuff like that. We had several 24/7 computer labs full of Sun 3/50(60) workstations and things like that. But there was one lab that was closed from 10-5 overnight and I thought to myself "hey, there's a whole room of workstations not doing anything" so I wrote some scripts rsh/NFS and used that lab one night to run distributed ray-tracing jobs. The next day my account was disabled and I had to go talk to Security. They sorta laughed a bit then went like NO don't do that. I worked for the IT department for the next four years. Then I left for a decade. Then I came back and applied for a job. The interview lasted all of five minutes, I worked for a few months before being forcibly promoted up into the upper circle. My first task was to go around to the dozen others who had root and ask for advice and update the root-speech documentation. I got to Security.... tippity tappity "Oh, hello Mr. zengargoyle, let's see... '89 'misuse of computing resources'." LOL, still had root by the end of the day.

So, this is just to say... that places like education where people may stick around for a long while in the system and such. They probably do remember a bunch of events from even a decade ago. It's the good places that have a sense of humor or appreciation for a worthy harmless infraction. They may even be secretly proud or have some admiration.

Though I do sorta fear that I just happened to hit the tail end of old-school hackery where such things are such things are rewarded. Now get off my lawn.

The thing with Javascript is that it sucks so bad that there are what a dozen or so languages built on top of it that get transpiled to JS to run in a browser or on V8. It sucked so bad that nobody really wanted to use it, they'd rather build a compiler and write in something else and tranpile into JS. How can a language be "good" when there are so many attempts that take such effort just trying to avoid it.