Live data from Hacker News

“I wrote FAT on an airplane, for heaven's sake”

blogs.msdn.com

81–90 of 119 posts

Re: “I wrote FAT on an airplane, for heaven's sake”

#81

Earlier quoted context omitted.

From this Woz quote it was pretty common: "I wrote all my code on paper in hexadecimal. I couldn't afford an assembler to translate my programs into hexadecimal bytes, I did it myself. Even my BASIC interpreter is all hand written. I'd type 4K into the Apple I and ][ in about an hour. I, and many others too I think, could sit down and start typing hexadecimal in for a SMALL program to solve something that occured or…

When I started my programming career, my first boss did not know how to use a text editor. He could perform a randomizing routine in his head but he trembled at using a text editor -- he still used punched cards and/or a mainframe utility that emulated a punch card. And lots of programmers coded first on columnar grid paper (shades of green and white, demarcations at 8, 12, 16 to help you indent properly.

My community college still had us writing C on huge tablets of that IBM grid paper in the late 90s. I can't imagine writing huge amounts of production-worthy code that way.

Re: “I wrote FAT on an airplane, for heaven's sake”

#82
post #30

Earlier quoted context omitted.

Thanks for pointing this out. It's all too common to overlook employee contributions to projects.

I think the point of the story wasn't proper attribution, it was a way for Gates to prod people to work faster.

I coded the entire linux operating system in one hour. Why can't you do something just as amazing with the same amount of time?

"but appropriation of work isn't relevant at all!!!!!" Of course it's relevant. The prodding doesn't work if the justification for the prodding is a lie.

Re: “I wrote FAT on an airplane, for heaven's sake”

#83

I had a manager that would repeatedly use this type of remark. We had this particular application that on one could touch without breaking something. It was always a mess. He would often remark "I wrote the whole thing over a weekend, why can't you guys make a tiny little change without breaking it?" One day I finally got fed up with him and replied "Because it's the quality of work you'd expect from an entire applic…

A company I worked for had a .NET application that was critical to basically all of corporate ticketing and resource management. It would no longer compile as a whole except on one guy's laptop and this didn't seem to bother anyone but me. Instead each file was modified and placed on the server to be compiled at runtime (causing a massive slowdown). It was mind boggling just how little people cared and how critical it was for day to day operations.

Eventually that laptop was destroyed in a bizarre accident (dropped at the airport security checkpoint was the claim) and last I heard they were regularly backing up the directory on the web server and still dropping files in to compile at runtime.

This is what happens when someone writes something and no longer has responsibility to maintain it or document.

Re: “I wrote FAT on an airplane, for heaven's sake”

#84

Earlier quoted context omitted.

I once worked with a founder who would always pull that kind of garbage: "I wrote [simple software with no dependencies or integration requirements] in [N] days! Why is it taking you guys [M] months to write [complex software relying on several 1st and 3rd party libraries, a component that needs to work within a large, old legacy system]? Good on the develop manager!

Also I've generally found it's easier to develop starting with a blank directory tree (no code), than to inherit a legacy codebase, have to make the sometimes grueling time/energy/focus/trial-and-error investment needed to come up to speed on it, understanding-wise, at the fine-grained level of detail you need to code confidently, then, figure out how to make a positive change that doesn't make some other thing worse…

Of course it's always easier. The question is, can the business afford to wait while you greenfield another app? Usually it can't. That's why refactoring.

First step is fixing the development environment / build process and getting a staging server up. It will inevitably be broken / nonexistent, with frequent edits directly to production necessary. The last guy will have internalized a great deal of operational workarounds that you'll need to rediscover then codify into the app.

Next you write tests. There will be none. Once you have a workflow that is decent, you can start to identify the worst offenders. All the while, you'll be having to change the codebase to meet project requirements, this will give you a good idea of where the really bad shit is. Unit test all of it, and if you're feeling froggy, write some integration tests. Once you get to this phase, you should be unit testing your project work.

Only after those two are completed can you start refactoring. Treat it like TDD. Keep an eye on larger goals like 12 factor conformance. It may look pie-in-the sky at first, but it will give you ideas on what to focus on. Main advantage of refactoring over ground-up re-writing is, you don't have to sell it to your boss. You just do it, in and around normal project work.

The biggest hurdle is the first step. It's scary to fuck with deployment. The approach I've come up with is to fork the codebase and rebuild the tooling on top of that, deploying first to staging, then to production, alongside the current working copies. Once you're satisfied flip the switch. You may have to flip it back, but at least it will be easy and instantaneous.

These lessons are from my ongoing project to modernize an ancient Rails 2.3.5 website running on Debian Lenny. Linode doesn't even offer that OS anymore, I had to cannibalize a server with an EOL app on it for a staging environment. I can't use Vagrant because there aren't any Lenny boxes.

It's long, arduous and slow. I fucking love it.

Re: “I wrote FAT on an airplane, for heaven's sake”

#85

Earlier quoted context omitted.

Also I've generally found it's easier to develop starting with a blank directory tree (no code), than to inherit a legacy codebase, have to make the sometimes grueling time/energy/focus/trial-and-error investment needed to come up to speed on it, understanding-wise, at the fine-grained level of detail you need to code confidently, then, figure out how to make a positive change that doesn't make some other thing worse…

Of course it's always easier. The question is, can the business afford to wait while you greenfield another app? Usually it can't. That's why refactoring. First step is fixing the development environment / build process and getting a staging server up. It will inevitably be broken / nonexistent, with frequent edits directly to production necessary. The last guy will have internalized a great deal of operational worka…

Can you explain or give some links on "12-Factor Conformance"? I did a few quick searches and nothing popped up.

Re: “I wrote FAT on an airplane, for heaven's sake”

#86

Earlier quoted context omitted.

Also I've generally found it's easier to develop starting with a blank directory tree (no code), than to inherit a legacy codebase, have to make the sometimes grueling time/energy/focus/trial-and-error investment needed to come up to speed on it, understanding-wise, at the fine-grained level of detail you need to code confidently, then, figure out how to make a positive change that doesn't make some other thing worse…

Of course it's always easier. The question is, can the business afford to wait while you greenfield another app? Usually it can't. That's why refactoring. First step is fixing the development environment / build process and getting a staging server up. It will inevitably be broken / nonexistent, with frequent edits directly to production necessary. The last guy will have internalized a great deal of operational worka…

http://12factor.net/

Re: “I wrote FAT on an airplane, for heaven's sake”

#87
post #72

From 12BitSlab in article's comments > I don't mind if billg gets a little arrogant at times. One merely has to look at how he wrote the ROM code for the Altair to realize his abilities. > Also, ALL of the concepts embodied in modern tablets and smartphones were "invented" by billg when he wrote the code for the Tandy 100. Things like "instant on", data stored in non-volitile memory, small productivity apps, continue…

When I was an undergrad (a year ahead of Gates, 72-76), Harvard had only "intro to programming" undergrad courses, so those of us CS (well, applied math) majors who arrived at college already competent at programming pretty much just took all grad CS courses for 4 years. The faculty were enlightened enough not to care that we weren't grad students. Gates was certainly one of the brighter undergrads in those courses.…

Awesome story, thanks.

While you guys were coding away at Harvard, I was not yet able to properly focus my mind, and so took to running around the streets of Cambridge(port) in diapers instead ;-)

p.s. from the above one can assume I was either born in '72 or was taking far too much acid for my own good.

Re: “I wrote FAT on an airplane, for heaven's sake”

#88
post #85

Earlier quoted context omitted.

Of course it's always easier. The question is, can the business afford to wait while you greenfield another app? Usually it can't. That's why refactoring. First step is fixing the development environment / build process and getting a staging server up. It will inevitably be broken / nonexistent, with frequent edits directly to production necessary. The last guy will have internalized a great deal of operational worka…

Can you explain or give some links on "12-Factor Conformance"? I did a few quick searches and nothing popped up.

Please don't sign your comments. (http://ycombinator.com/newsguidelines.html)

Re: “I wrote FAT on an airplane, for heaven's sake”

#89

Am I the only one who didn't interpret the quote as him showing off? If I used that line, it would be a way of telling them that the problem of segment tuning is an artificial limitation imposed by a format that hasn't gotten enough attention. "I wrote FAT on an airplane" would be my way of saying, "don't come up with better ways to work around my half-assed implementation. spend time improving the implementation so…

FAT and segment loading have nothing to do with each other. Gates was just bragging about having written something complex in a short period of time.

Still, he may have been pushing his team to do better.
Post reply on HN