Live data from Hacker News

"We ran out of columns"

jimmyhmiller.github.io

341–350 of 588 posts

Re: "We ran out of columns"

#341

Earlier quoted context omitted.

Some of these stories sound a bit far fetched, especially those that involve Unix systems. RCS was released in 1982 and CVS in 1990 so Unix systems have had version control available for over forty years.

There is a lag between availability and mindshare to apply a technology. I myself introduced SVN as versioning solution to a company in 2007, years after git was available I and I was aware of it git simply didn't have the mind share jet, thus I went with what I knew

Hear, hear

Git was too weird for a team, but svn with its linear timeline was a hit. They are still with svn, and for a small shop it's ok

Re: "We ran out of columns"

#342
post #96

Earlier quoted context omitted.

We should use the Antarctic highlands as a prison colony for people found guilty of writing Stringly Typed Code. Siberia isn’t awful enough for them. I thought people who stuffed multiple independent values into a single database column were the worst and then I saw what people can accomplish without even touching a database.

No we should reserve the antarctic highlands for type system fetischists who write abstract protocol adaptor factory repositories for every damn simple piece of functionality.

No those people just get recycled.

Re: "We ran out of columns"

#343

Earlier quoted context omitted.

Do you go to the trouble of updating individual values in objects using some kind of deep/partial updating function or do you just accept race conditions that come with updating full objects?

We use optimistic versioning, with a dedicated "version" field (that is actually always pulled out of the blob in all tables). Classic fine-grained schemas are not that much different. A lot of high-level ORM frameworks simply save all the objects' fields on update, without doing fine-grained diffs. In addition, our frontend apps also support offline mode. They can get all the relevant objects, and then operate on th…

> A lot of high-level ORM frameworks simply save all the objects' fields on update, without doing fine-grained diffs.

Perhaps that is true... I'm a Rails dev and ActiveRecord definitely tracks mutations on the object and selectively updates.

I would assume this is consistent with Django and I'd assume a policy is probably required to be specified by SQLAlchemy.

Re: "We ran out of columns"

#344
post #316

Earlier quoted context omitted.

You don’t think if the company behind GitHub went all-in on mercurial that might have emerged as the winner? There were plenty of companies using either. Git wasn’t the only distributed game in town. I definitely think GitHub had a lot to do with it.

Before there was GitHub there was Sourceforge. Sourceforge supported several different protocols and git still won. Gits internals can be confusing at first, but once you understand them there's really nothing you can't do. Being distributed by design also helps.

Sourceforge had a flat namespace for projects and required you to manually apply for each project. It was a PITA and that added a huge barrier to entry.

Plus it didn’t have a mechanism to send contributions. I think GitHub “won” because of its web-based PR system.

Re: "We ran out of columns"

#345
post #316

Earlier quoted context omitted.

You don’t think if the company behind GitHub went all-in on mercurial that might have emerged as the winner? There were plenty of companies using either. Git wasn’t the only distributed game in town. I definitely think GitHub had a lot to do with it.

Before there was GitHub there was Sourceforge. Sourceforge supported several different protocols and git still won. Gits internals can be confusing at first, but once you understand them there's really nothing you can't do. Being distributed by design also helps.

Sourceforge isn't GitHub. What's the relevance?

If you think SF+CVS is equivalent to GitHub+Git then you never used SF+CVS. Git won because of GitHub, specifically, not because generically it could be hosted on the Internet.

Re: "We ran out of columns"

#346

It's hard for those who came into the discipline in the past twenty years to realize just how much things have changed around version control and building. Joel Spolsky released the "Joel Test" for determining if the software team you were interviewing had good practices in 2000 . One of the requirements was that they used version control. Not all that many teams actually did. Especially during the dotcom craze. Toda…

Do most places pass the Joel Test? He says that if you answer no to two or more of these, "you have serious problems", and I count about seven that I would say no to at my current big-name (and well-reputed) tech company:

4. Do you have a bug database? ["an organized database listing all known bugs in the code"]

No, each team has one or several poorly organized Jira boards that contain some fraction of the known bugs.

5. Do you fix bugs before writing new code?

Lol? Does any major company do this?

6. Do you have an up-to-date schedule?

No, we have weekly sprints and the vaguest idea of when bigger projects will land.

7. Do you have a spec?

I haven't seen a real spec in years.

8. Do programmers have quiet working conditions?

Well, I work from home, but all the fancy offices are open-plan.

10. Do you have testers?

Not for any of the stuff I work on, and I don't know if we have them at all.

11. Do you do hallway usability testing?

Absolutely not.

So that's 5/12. How many companies you know would get 11 or 12?

Re: "We ran out of columns"

#347
Oh, those kinds of columns. I thought we were talking text columns, and I was about to relate.

I work at a small business. Despite computer software being about the literal opposite of our business (plants), the founder built an entire suite of interconnected tools that runs off MS BASIC for Xenix, on a single HP machine running SCO OpenServer. The machine has so many customizations, self-scheduling cron/at jobs, odd nooks for files, weird tweaked programs, and special conventions that if a server with a dedicated hostname qualifies as a pet (as opposed to cattle), I'd be THIS THING'S pet.

The system handled EVERYTHING. Accounting, payroll, pesticide management, inventory, attendance, business contacts, shipping label printing... all out of a bunch of terminal menus (which are actually text files with control codes that get `cat`ed out).

But by God, the most horrifying part of it all are those BASIC files. They're IMPENETRABLE.

Firstly, I don't believe this version of BASIC supports named functions or subroutines. At all. But that's fine. MS BASIC being what it is, the interpreter only can deal with a certain number of characters per logical line, and that includes data definitions.

This version of BASIC (like so many others) includes its own serialization format and record/file access scheme. You declare the layout of the data file you want, open that file, and BASIC will handle (most of) the rest.

So when the founder started hitting the internal line limit while defining the data file's fields, he would cut the names of the fields down to fit more on that one line. Over time `30 AS EMPLOYEENAME` became `30ASEMPLNAME`, which became `30ASEMNAME` which became `30ASAF(1)`.

Every cent we transact, and every employee's timecards still flow through this old system, some even using bona fide Wyse terminals. To reiterate, this man was, first and foremost, a farmer. His contraption is terrifying, but commands immense respect. It's lasted 30-some years with continuous tweaking and refining, and we still have yet to replicate even half of its functionality. (Though there are other organizational issues that are making that difficult.)

On a personal note, aside from the calcified codebase and occasional spelling errors, it's a stellar business application. It's fast, mostly coherent, and keyboard-driven in such a way that experienced employees can navigate it faster than the terminal can refresh. We've been working for years to replace it, but at the same time, there's a lot our newfangled Angular+PHP+MySQL replacement could learn from it.

Re: "We ran out of columns"

#348
This reminds me of working with a company that provided market-wide pricing data for a particular commodity across the US. They were the de facto aggregator of pricing for the sector and at the time I worked for one of their larger customers. We requested they add another vendor’s pricing in a particular region and received a response along the lines of “Sure, as soon as we can figure out how to add another entry. We’re at the maximum row count on the system.”

Needless to say it gave my team a few days of flabbergast and speculation on what system they must have built on to hit a row limit at only 5 digits. And yet for a non-tech industry it was mostly working.

Re: "We ran out of columns"

#349

Earlier quoted context omitted.

This is amazing. I can so well imagine a bright young hire joining that team, helpfully offering to "setup this thing called git" only to be laughed out of the meeting by all the "senior" staff.

Some of these stories sound a bit far fetched, especially those that involve Unix systems. RCS was released in 1982 and CVS in 1990 so Unix systems have had version control available for over forty years.

Version control was virtually unknown outside UNIX systems, though, and, in lieu of it, mainframe/PC/Mac developers resorted to barbaric practices which included file tree renaming (v2, v1_John_is_an_idiot), countless zip files with similarly meaningful names with snapshots of entire projects and stuff like that. Then commercial version control systems started popping up, and they were very expensive, usually buggy af, and had no feature parity across themselves, i.e. knowledge of each was not portable.

Whereas nearly every UNIX installation included version control systems for free (SCCS in AT&T UNIX SVR1-4, RCS in BSD UNIX or both) that worked exactly the same everywhere.

Re: "We ran out of columns"

#350
post #286

Earlier quoted context omitted.

Why is it astonishingly? Git is not a natural development at all. Obviously, it is a standard right now. But I as a hobby coder at my teens I started out with FileZilla and copying over index2.php, index3.php, index_final.php, index_final_2.php and all of it worked well enough when at that point. I took a little break from that hobby, and it still took me a lot of time to build intuition around Git when I started out…

> Git is not a natural development at all. Obviously, it is a standard right now. Most standard tools we use today are not obvious to beginners nor would they be the first thing that beginners reach for. But senior developers can understand the problems that they claim to address, and why they are important and common problems.

You wouldn't believe the amount of crap I take whenever I introduce very basic version control at the various 3 to 6 man shops I find work at these days.

I'm 100% sure that once I left that the devs went back to remote server crash and burn FTP development...they couldn't be bothered with the "hassle" and unneeded headaches of git.

Post reply on HN