7 ms·
The first major piece of code that I ever wrote was a publishing workflow management system for a major newspaper. It routed page images to presses and generate
by n9 2y ago
The first major piece of code that I ever wrote was a publishing workflow management system for a major newspaper. It routed page images to presses and generated pdfs of each page in each edition of the newspaper and made pdfs of each day's newspaper editions and published them to a static website where they were archived.
I was only allowed to use perl 4 to write this software and I wasn't allowed to use a database, even though the datastructure for a day's publishing batch had tens of thousands of keys and values and required RDBMs style queries. It also features a configurable postscript parser that extracts all kinds of data from completed newspaper pages that informs the publishing system. When I wrote it I was told that it would run for a few months only while we figured out how to get a $5M commercial product to handle the work.
The whole thing was written in perl 4 style OO Perl and came in at about 16k lines of code in the end -- most of the code was for the postscript processor and tons of cruft that I had to write to made a relational DBMS in memory because I wasn't allowed to use mysql. It took me four months to write it. I launched it in January of 2002 and it runs to this day. I know this because I got a call about it last month where my replacement's replacement's replacement asked me a few questions about what OO Perl is because he wanted to make a few changes. Good luck! It still runs and is responsbile for about 80% of what it was originally built to do. It is used by hundreds of people daily, who by all reports absolutely hate it. There are people working at the newspaper today that use it regularly that were not born when I wrote it. I am twice as old as I was when I wrote it.
They have apparently tried to replace it several times over the last 22 years and have failed to do so... this is likely due to the blockheadedness of my old boss (who is still there) as much as the radically insane obscurity of my code, which is exactly how you'd expect 16k lines of 22 year old OO Perl 4 would be.
- justusthane 2y agoThat’s a really incredible story. I’m not sure how much more you remember/are able to share, but I would kill to read a longer post about this.
- Folcon 2y agoIt's in moments like this that I miss the hacker news magazine[0], because I had relatively high certainty that when stories like this popped up, the poster in question would get interviewed and their story would appear in the next edition. Not sure who else recalls it? Really appreciated the monthly format as well, I think summarising the last month and going in-depth on specific stories ended up being a good touchstone for what happened in the community. If anyone is interested in picking up the torch, I for one would be happy to resubscribe to it :)... -[0]: https://news.ycombinator.com/item?id=1261499 https://news.ycombinator.com/item?id=1261499
- wh33zle 2y agoIf you don't mind me asking, how much did they pay you to build it?
- jbverschoor 2y agoMy salary was about 30k. Best deal ever lol
- GrumpyNl 2y agoWith software still running and being used, the company had a bargain.
- glitchcrab 2y agoThe person you're replying to is not the GP
- jbverschoor 2y agoPer year for those who are confused..
- chefandy 2y ago> asked me a few questions about what OO Perl is because he wanted to make a few changes Well that's pretty impressive. Most of my garbage pearl code from 20 years ago would probably look like line noise to most modern developers if it wasn't for the shebang.
- genewitch 2y agoi never wrote perl in any serious fashion, but i've always tried to use as much information in the source so i can figure out how i did it. I enjoy reading the submissions to code golf challenges, though. A few of the more esoteric language users have let slip they write a compiler to go from readable code to the target unreadable code. Whenever i see terse C or load bearing perl it does look like line noise.
- jbverschoor 2y agoInterestingly, i have a similar story. I created a database publishing platform exactly that time, a was given full control. I created it in Java, and added a JavaScript engine for scripting templates. The initial product was also side in a few months. It also runs to this day. The war file could be run by any Java server. The code, while old, was in a reasonable state, given some of the migrations. I never thought about the code being older than the people working on it
- chii 2y agoThere's nothing more permanent than a temporary fix put in while waiting for a permanent fix for a problem.
- stavros 2y agoWe have a saying for that in Greek: Ουδέν μονιμότερον του προσωρινού "Nothing more permanent than the temporary"
- lb1lf 2y agoIn Norwegian we have the (made up, but widespread) word 'Permasorisk' (a mangling of permanent and provisorisk) to describe a solution which is by no means meant to be permanent, but solves the original problem well enough that there no longer is a need for the permanent solution...
- jbverschoor 2y agoIt was never a temporary 'fix'. The product eventually spun off into a new company and was recently acquired by a PE firm. But yeah, creating software - or any kind of process actually - results in maintenance. If something is used a lot -> too many people depend on it. If the number of consumers/users isn't documented -> you don't know if you can turn it off, but for this problem you can inspect a year's worth of log files :)
- Rebelgecko 2y agoI had a job once trying to help the government un-fuck a janky codebase that they were in the process of paying billions of dollars for. I remember opening a file that had some issues (IIRC it could only be compiled with a specific discontinued compiler) and seeing a comment that the file was created on my literal birthday. Was quite the surprise.
- s2l 2y ago[flagged]
- scubbo 2y agoDo your testing on your own - don't pollute the discussion with it.
- xeyownt 2y agoAh ah Perl, the king of all WORN languages: Write Once, Read Never. Because It is so powerful that you get burned if you come too close.
- bionsystem 2y agoGreat story ! I'm proudly responsible for a small perl script that pre-processes SWIFT messages before sending them in a back-office banking Java app. It's barely 10 yo but I'm not a dev, and I suspect it will probably run forever. The idea is to split messages in chunks and sort the rows by ISIN instead of having one big file without any sorting pattern, and it cuts the processing by the app from a few hours to 10 min. Never heard of a bug in this one but it's only like 300 lines of code.
- shawn_w 2y agoPerl /4/ in 2002? When I learned perl in like 1995, 5 had been out for a bit already and it was hard to find a system with 4 installed... (perl 4 didn't have built in support for OO; did you roll your own system?)
- worthless-trash 2y agoTo be fair it is perl, there was probably a library for it.
- mhd 2y agoFor Perl4? Not that likely, IIRC CPAN was started in '95, after Perl 5 came out which introduced most of the packaging semantics. I think Perl 4 basically had an "include" equivalent. Don't remember anyone doing OO back then with it, either. Would be interested to know how that worked...
- davorg 2y ago> The whole thing was written in perl 4 style OO Perl What does that mean? Perl's basic OO support (using blessed hash references) was introduced with Perl 5 in 1994. I have no idea how anyone would even attempt writing OO code in Perl 4.
- Almondsetat 2y agoIt says perl 4 style OO Perl, not perl 4 OO style Perl
- shawn_w 2y agoHe said he was using perl 4. And there was no such thing as "perl 4 style OO". I'm thinking he's just misremembering what version of perl he was using. Easy to do after 20+ years.
- Almondsetat 2y agoI can write C style C++ or html 4 style html 5
- hohlraum 2y agoI architected/managed/maintained a perl web application starting in 2001 for a dot com. I still work with it today and the application/company recently sold to a new company for $24M USD.
- ssl-3 2y agoHow does it feel to be 44, fellow old person?
- defaultcompany 2y ago> It is used by hundreds of people daily, who by all reports absolutely hate it. This made me chuckle because as a software development intern in 1988 (being paid like $8 an hour) I wrote a giant monstrosity of a time tracking program for a local CAD company in an Empress database using its forms builder interface. It was in use for far longer than anyone ever intended and whenever I ran into someone from that company years later they would tell me how bad it was. Sorry guys!