15 ms·
In the 1990s a piece of Germany’s air traffic control software ran on Emacs
- otagekki 4y agoFascinating story. I wonder what other dirty secrets state agencies have in stock for us tech stack-wise. This being said, Excel is most likely the most widespread tool for anything that involves office work. I've seen entire financial algorithms being implemented using Excel alone.
- anyfoo 4y agoAbout 15 years ago or so, back when I still did web development gigs and the like (because I hadn't accepted yet that the low level system development I loved was what I should do for a job, hard to imagine now), I got requests to build complex or not so complex systems, but with the restriction that "it has to be written in Excel". Most of the time, what they really needed was a CRUD app and a database. Needless to say, I never accepted any of them.
- Vt71fcAqt7 4y agoI'm torn on this. I think many saas type services can be a spreadsheet, but excel is only 98% of the way there. Because the main issue with excel is that it is local only and even then cannot be accessed even by other local programs. Hence all the wacky VBA "scripts" that turn into full flegded programs. I wish excel _would_ become a database, that is, a frontend to a postgres instance that could be run locally or on a server. Then we just set the postgresql srting in our app and everything just works: excel is the frontend, special features run in a sane programming language, can be updated seperately ect. Since that will nerver happen, someone needs to make an open source speadsheet that runs on postgres. And yes, it does have to be open source because otherwise nobody will learn it. And it needs at least 80% feature parity with excel.
- eternityforest 4y agoThe trouble with that is it's a central server which means an IT department to fuss with it. Better would be something like Excel but that works P2P like SyncThing, or even directly using SyncThing itself. I don't think it would actually be too hard as long as you didn't need truly realtime collaboration if you used file sync as your backend, and gave up on the 2D sheet model in favor of a table/records model that lends itself to conflict free operations instead of edits to specific numbered cells.
- accountinhn 4y agoExcel can connect to postgres - https://www.youtube.com/watch?v=o2T7xdNZ3Qc https://www.youtube.com/watch?v=o2T7xdNZ3Qc That combined with some thing like Office365 or Dropbox type service and we have what you might be describing.
- Vt71fcAqt7 4y agoI am well aware of ODBC. Critically you cannot edit the database itself, only copy from it. This makes sense so as not to let some sales guy tank an entire company becuase he misspelled a formula. What I mean is a spreadsheet that literally runs on a database. It could even be sqlite, _anything_ that allows two way communication between the slreadsheet and the application. spreadsheet gui <--> database <--> application The spreadsheet does simple data manipulation and acts as a GUI The database can be mysql, postgres, sqlite (even JSON...) The application does batch processing, generates documents, sends emails ect. everything excel can't or shouldn't do. This stack could solve, in my opinion, >50% of all business software. I have also considered some sort of general data storage but it's too slow. Drop box et al are not made for anything close to real time communication, which is critical for a spreadsheet that needs to talk to a program. Something like 100ms at most. This would also presumably require a perfect .xlsx implementation to read and edit the data which doesn't exist to my knowledge.
- rblatz 4y agoGoogle sheets, maybe excel, can make http post and get requests. It’s trivial to write an api that can read/write to a database on behalf of the spreadsheet.
- uni_rule 4y agoIsn't that somewhat the usecase of Microsoft Access?
- pmontra 4y agoYes, but from the point of view of an office (lowercase o) worker Access is that thing that, in decreasing order of importance 1) it's not clear what it does 2) it doesn't show them all the data at once all the time 3) it doesn't let them write formulas to work on the data 4) the few that saw Access in action say that they have to call a programmer to do what any Joe can do in Excel So whatever Access is doing Excel does it better and they can't understand why Microsoft developed a crippled version of Excel to manage tables of data. At this point I almost don't understand it myself anymore despite having seen all the years of Access and Excel ;-)
- indemnity 4y agoIn a past life the most “fun” I had as a developer on a CAD file processing solution was discovering that engineers loved linking Excel sheets to the CAD files so crucial calculations could be done there. And then having to make this work on Linux servers.
- pmontra 4y agoI had to run a very large accounting Excel file inside a web service about ten years ago. The service was born as manually operated Excel sheet plus interaction by email/phone and they wanted to scale it on the web. I run it on Windows Server and paid somebody to write the Windows service to manage the Excel sheet. I can't remember which language I used for the web service itself. They eventually gave up, commercial problems, not technical ones.
- abdullahkhalids 4y agoAbout 15-20 years ago, apparently one of the major ISP in my country was running off excel. Every customer was a row in some file. ISP agents would come to your house to collect your bill. If someone didn't pay, the agent would flip a cell in their excel row. And that would trigger that person's internet being suspended. Sometimes they would flip the wrong person, and you had to call them, and they would fix it.
- vesinisa 4y agoSorry but I just don't buy this. As fas as I know, there was no collaborative editing in Excel 15-20 years ago (no Office 365). The only way for several people to edit the same Excel file stored on a network drive would have been to a) make a local copy of the file, b) do the modifications and then c) overwrite the file on the network drive. This would have destoryed _all_ modifications that occured to the file between a) and c), and would have resulted in such high rate of errors that the company would have been simply impossible to operate. EDIT: As many people have pointed out, Excel did suppport collaborative editing at the time.
- throwaway2037 4y agoVBA? Seems possible to me. With VBA you have complete access to public Win32 API. You can make network calls, no problem.
- p_l 4y agoExcel supported collaborative editing of binary excel files on SMB shares under windows NT, back in the 2000s. Now, "supported" does not mean it was in any way good idea, or that it resembled how collaborative editing works in things like Google sheets or O365. Conflicts, deadlocks, etc were common - it's even why I built my first Rails app - we were given excel sheet and asked to do data entry on it over network from multiple machines, I didn't trust it despite a demo of it working and built a quick and dirty webapp.
- chewxy 4y agoYou could do it. Excel worked well with querying SharePoint. To most users it would be no different from just editing a file. You could also do it via samba. (Source: I built one of those during my school holidays but I didn't get paid and I didn't have the balls to ask for payment)
- carlmr 4y ago>I've seen entire financial algorithms being implemented using Excel alone. I've done some industrial automation in Excel/VBA. The company wanted it that way. Their whole IT department did everything in Excel/VBA.
- atoav 4y agoDepends on your definition of dirty. I'd take "air traffic control running on emacs" over "guy prints out a form he received digitally and other guy types it into their computer by hand" any day. The first seems dirty, the second one is downright idiotic. Guess which one you would see more of.
- nmlt 4y agoI don’t think that’s idiotic. There is no standard way of transferring a file from on device to another. That is a failing of the tech industry.
- atoav 4y agoThere is no standard for what a file is. It is turtles all the way down. Still there are 100 faster, more efficent and less error prone ways to get data from A to B than printing it out and having another guy type it.
- sp8 4y agoYeah, I used to work at a large UK university and I saw (helped manage) a vast Excel spreadsheet which calculated students' final degree classifications. It was so complex I never managed to unpick the algorithms, just assumed it was right.
- contingencies 4y agoLater AFAIK ~2010 it was said that at least part of German ATC used Linux HA, ie. something like http://www.linux-ha.org/wiki/Pacemaker http://www.linux-ha.org/wiki/Pacemaker + https://github.com/corosync/corosync https://github.com/corosync/corosync
- tyingq 4y agoThe story is great, but I was a bit confused with this part: "because C was not very well adapted to VMS" It's been a long time, but I remember using C on VMS in the 80's, and I don't recall anything odd about it.
- aradox66 4y agoSometimes those decisions reflect the technical familiarity / capacity of folks on the job ...
- nl 4y agoI know earlier (pre-2000's) versions of VMS were written in BLISS-32: https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS This would have been 1991 or 1992 so DEC was probably still a BLISS shop. Maybe they didn't ship C manuals or something.
- skissane 4y ago> I know earlier (pre-2000's) versions of VMS were written in BLISS-32: https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS My understanding is that, even for the brand new x86-64 port, large parts of OpenVMS are still written in BLISS and MACRO, although I believe they prefer C for brand new code. A key component of the porting effort was modifying the existing BLISS and MACRO compilers to produce x86-64 binaries instead of Itanium ones. [0] > This would have been 1991 or 1992 so DEC was probably still a BLISS shop. Maybe they didn't ship C manuals or something. I suspect the actual reason – in 1993, DEC released a new C compiler for OpenVMS – DEC C, to replace their earlier VAX C compiler. [0] DEC C was designed to be a fully ANSI C compiler, VAX C was a pre-ANSI (K&R) compiler with various unusual proprietary extensions, along with some half-finished ANSI C compatibility tacked on the side. Probably, they were used to writing ANSI C on other platforms, and were given VAX C to use as a as a compiler, and were (quite understandably) frustrated by its inability to compile ANSI C code correctly. [0] https://vmssoftware.com/docs/2021-04-27-x86-Compiler-Update.pdf https://vmssoftware.com/docs/2021-04-27-x86-Compiler-Update.... [1] https://www.digiater.nl/openvms/freeware/v70/vmsfaq/vmsfaq_014.html#soft5 https://www.digiater.nl/openvms/freeware/v70/vmsfaq/vmsfaq_0...
- themodelplumber 4y agoThat's pretty cool. Are there also other editors that could, at a stretch, pick up similar tasks? Emacs always seems so singular in these accounts (or in the it's-an-OS-sense) but I just wonder what some other editors in that class, or close to it, might be.
- kstrauser 4y agoProbably not as easily. One way to look at Emacs is as a Lisp system in which someone has written an editor. It has scads of functions for file and network IO, a zillion useful general functions, and a decent, well-tested runtime. While Emacs Lisp is most often used to write functions that manipulate documents and files, there’s no constraint at all on what you can use it for. I mean people have implemented web browsers, window managers, MP3 players, and other wild stuff in it. Now, I think you could theoretically implement all those things in Vimscript, in the sense that both are Turing complete. However, Emacs Lisp is a decent general-purpose programming language in its own right. I wouldn’t necessarily choose it over other modern languages for implementing non-text-editing related things, but if that were the only option conveniently available to me, I wouldn’t cry too much about it.
- bri3d 4y agoPretty much every modern IDE with a plugin system could be repurposed into a message router, since they all have underlying code execution in their respective runtime environment (just as how in this case, Emacs was really just a Lisp runtime). Certainly any of the major Java-based IDEs (Eclipse, IDEA, etc.) could host a message router, although this is quite boring as it's just Java. Amusingly though, Volkswagen's automotive dealership service tool, called ODIS, is built in Eclipse. The Javascript IDEs like VSCode could as well.
- throwaway892238 4y agoI think there's only two kinds of systems programmers: 1. The kind that build a system they think is really cool. 2. The kind that stay up at night, stressed over how frighteningly bad the system they've been forced to build/work on is.
- cdegroot 4y agoWhy not both? The "coolest" systems I've built definitely were the scariest to move to production...
- deleted 4y ago[deleted]
- cesarb 4y agoDirect link to the relevant comment, with context: https://old.reddit.com/r/emacs/comments/lly7po/do_you_use_emacs_lisp_as_a_general_purpose/gnvzisy/?context=2 https://old.reddit.com/r/emacs/comments/lly7po/do_you_use_em...
- ReptileMan 4y agoInitially I read Erlang ... and was unorthodox choice, but not bad. Then I reread the title ...
- dis-sys 4y agogreat story, for me another interesting part is that lots of those tools/utils used in their dev work were copied from that dude's home, surely that is very reproducible & auditable.
- cdegroot 4y agoWe're talking early '90s here. Security was a thing of course, it meant you set a five-character root password on your FTP server ;-). MD5 wasn't even around so you had to trust that your source tarballs were not tampered with whatever the origins. So whether I brought them from home or that company (if it had internet at all...) pulled them from gnu.org probably wouldn't have made a material difference. It was one of the reasons there was a big antipathy towards free software, at least with the vendor tapes you had someone to sue if they got tampered with.
- HeckFeck 4y agoThere is a slight risk with auditability, but were it me in the mid 90s I'd be honoured to hire someone who is excited enough to keep source copies of the GNU coreutils at home. Someone who is eager and creative like that is unlikely to be a sociopathic jobsworth. I.e. the type most likely to steal secretes or undermine your business.
- macintux 4y agoIn 1995/96 I was the first tech employee at a startup. We had a Solaris server at the core of our network, and needed a C compiler. Paying Sun whatever stupid amount of money they wanted didn’t seem to make sense, GNU still didn’t have their own domain, and for whatever reason I couldn’t find a gcc binary for Solaris to download (probably related to the terrible state of web search engines at the time). So I visited my university sysadmin and copied gcc from his Solaris network to use to compile our own fresh copy. It’s sometimes hard to remember just how bad things used to be.
- cdegroot 4y agoOr good. I knew a lot of local people because things like that. My first Linux distro arrived on a QIC tape from a nearby Uni :)
- heurisko 4y agoNew reddit for small screens https://www.reddit.com/r/emacs/comments/lly7po/do_you_use_emacs_lisp_as_a_general_purpose/ https://www.reddit.com/r/emacs/comments/lly7po/do_you_use_em...
- notpushkin 4y agoi.reddit for small screens without the “Open in app” nag: https://i.reddit.com/r/emacs/comments/lly7po/do_you_use_emacs_lisp_as_a_general_purpose/ https://i.reddit.com/r/emacs/comments/lly7po/do_you_use_emac...
- garbagetime 4y agohttps://new.reddit.com/r/emacs/comments/lly7po/do_you_use_emacs_lisp_as_a_general_purpose/ https://new.reddit.com/r/emacs/comments/lly7po/do_you_use_em... FTFY
- mousetree 4y agoAs a German the most surprising thing to me about this is that planes don’t have to send communications to the ATC by post
- eurasiantiger 4y agoCome on, we have had faxes for a while now.
- froh 4y agowe _had_ fax for a while. and then came DSGVO https://www.datenschutz.org/fax/#:~:text=Immer%20mehr%20Datenschutzbeauftragte%20raten%20daher,sollten%20Nutzer%20daher%20Abstand%20nehmen https://www.datenschutz.org/fax/#:~:text=Immer%20mehr%20Date....
- durnygbur 4y agoRespecting the three months notice and termination period for every procedure, of course.
- p_l 4y agoFor the rare cases where digital comms between planes and ground ATC system is done, planes run OSI Internet protocol stack to talk with ground stations. The rest of this is essentially about ATC talking to other ATC components (for example airport's CTR zone passing a plane to another region after takeoff)
- ManuelKiessling 4y agoAs a German, I feel deeply offended by your remarks. Expect a mounted messenger with my wrathful despatch any day now!
- kleiba 4y agoWell, certainly not the best choice. But of course, Emacs has a full Lisp implementation (ELisp) so certainly doable. The problem is not lack of turing-completeness or features, it is maintainability and performance. Apparently, the latter was not an issue, and the former has probably been solved by now by reimplementing the code in something more common.
- neilv 4y agoATC is much more impressive than my little story of Emacs in unexpected places... My research group needed to very rapidly make an interactive piece, for a looming big open house event for sponsors and VIPs. For Reasons, we had trouble getting computers, but there were some ancient ones that didn't run much of anything. I'd been programming in Java heavily before this, but the solution to the immediate emergency of deadline plus resource constraints was... Emacs. Emacs would run on the box we had available, and, with it, I could develop all the things I needed, including complex HTML generation, even faster than with Perl (which I also knew). I ended up having a new Emacs process exec'd for every request, by Apache CGI, and displaying in Netscape. Process startup of the dumped Emacs itself was fast, and it worked fine. I don't have that code anymore, but some other non-editor application for which I used Emacs before then was a kind of code generator: https://www.neilvandyke.org/jomtool/ https://www.neilvandyke.org/jomtool/ You can see Emacs was supporting objects and even syntax macros, which was very respectable for any programming language at the time, and this was only the extension language of a text editor. What you can't see is that Emacs was additionally a super-productive "IDE" for developing with its own extension language.
- kkfx 4y agoEvery time certain stories re-emerge I suggest to think about actual evolution of pretty anything like the recent https://www.engadget.com/zoom-email-calendar-meetings-productivity-184822470.html https://www.engadget.com/zoom-email-calendar-meetings-produc... or the classic https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule witch means: walled gardens can't works. They try to integrate anything a step at a time and in the end they implode on their own weight. On contrary software designed to be a fully integrated ecosystem meant to be extended indefinitively and refactored indefinitely in the same codebase, at any level, user programming level included regularly (even if rarely) show they can do countless things with simplicity and power. Oh, sure they are hard to design and evolve at first, BUT they pay back so much. These stories put side-by-side clearly show the complete failure of the software divide et imper commercial model and the need of classic desktop computing as designed back then by Xerox and kept up by Symbolics and co. Some in the unix land have seen that late and try to correct the aim a bit with Plan 9 but they fail. Nowadays the modern web with a substantial U-turn from widget-based UIs to document based ones, modern Uis in general, are another small brick few seem to see. In a decade perhaps we will back at original desktop model have forgotten it from the past...
- BrandoElFollito 4y agoThis is a great story - especially that someone "almost hugging me" in Germany in a professional context is more or less equivalent to a marriage proposal. He must have made their lives really, really better. I witnessed the disconnection of a (large) sensitive system because the 5yo grandson of a highly graded person who was touring him in the center flipped the switch of an AIX system. The system came back with a 513 error code (I think I still get it right after 30 years, the trauma). The high graded person's jaw dropped on the floor when he realized what was switched off, looked at me, smiled and zoomed off with the kid. I recovered the system with a toothpick and manual in Swahili and, boy, that was quite a night.
- kstrauser 4y agoI want to read this blog post.
- blippage 4y agoC-x M-c M-land-aircraft
- tmtvl 4y agoWell, M-x land-aircraft, but I just bind it to M-F4.
- cdegroot 4y agoFWIW, I wrote that piece so if you have questions, shoot :)
- qwezxcrty 4y agoBelieve it or not, last year, I have operated a $100k worth semiconductor manufacturing equipment (magnetron sputtering tool) with a GUI done in VBA of Microsoft Access 2003.