Hacker News new | past | comments | ask | show | jobs | submit login
DOS on Dope: The last MVC web framework you'll ever need (2010) (secretgeek.net)
129 points by thunderbong 9 months ago | hide | past | favorite | 44 comments



Author here. I’m pleased to see DOS on Dope reaching new generations. This thing will outlive me, and I’m happy about that.

A few days ago at work, building an internal website for a customer, I designed a feature which involved executing a console app in another folder.

My fellow dev, a little younger than I, balked at the idea and said “are you sure web sites can even do that?”

A distant, dreamy look washed over my eyes, visions of ‘DOS on Dope’ shimmered inside the brain,

The words “are you sure web sites can do that?” echoed over and over, reflecting around and around inside the porcelain dome of the skull…

Strange mathematical symbols like “>”, “:\”, and “|” appeared and disappeared within the mind’s flickering cathode ray tube, and I said:

“Yep.”


The only comment you'll ever need on this , might as well close up the other threads and turn back now.


I built a few websites with this, but to be honest I found a few of the architectural decisions to be quite limiting. I wired in gwbasic as an escape hatch (it gave me the equivalent of an eval in batch) and it let me do what I needed. The only pain was needing to print out the websites for distribution.

Kidding aside, I love this. Once I built a GitLab runner that would execute a .gitlab-ci.yaml script written in Commodore BASIC. You feel like a mad genius when it all comes together.


That's awesome. At my last job, I created a Makefile-driven abomination that would, for a specific form of shell script, generate .gitlab-ci.yaml fragment and "link" them together. I'm equal parts proud and ashamed.


I've got one worse.

For those who know Clearcase, and winking in. Well, there was a team that had a 2 hour java build and they were suffering. Nothing was working right.

One could argue that using Clearcase and Clearmake was the error.. and even back then as a PFY I'd agree.

But help them I must. So I wrote a makefile, that wrote makefiles, that would then compile all the code into /tmp, and copy the jar back into place.

Because... Clearcase tracks every file you touch, it is critical, you ONLY touch your inputs, do not produce extra .class files where it can see them, or you'll end up with a bunch of files all interdependent and confused.

Their build went from ~2hrs to about ~5 minutes when I was done. Less if it "winked" in everything.

... The amount of good, stupid can do is amazing.


I don't know, Most stories like this sound more like "clever" than "stupid" to me. You have a set of constraints and some tools. You use those tools to workaround/within those constraints to solve a problem.

Clearcase being a tire fire is "stupid". But your solution is "clever"


After many years, describing a workaround as "stupid" is way more positive than "clever" (red flag). Especially when talking workaround for 3rd party software.


Stupid tools need stupid fixes. I will die on this hill.


In this case the stupid tool is Java.

What clear case did was correct for C/C++ and possibly Pascal and Ada and run by makefiles. Clearcase would spot which header files were used in your code and only recompiled if you changed those headers and if someone else used the same code and headers clear case would give them the .o file it had compiled for you. (no having to generate .dep files). As local machines got faster this became less of a speedup.

In the latter all dependency tracking was not part of the language so it could be left to clear case.

Java does its own dependency tracking and so did cleanse on the server so you get the mess. Clearcase is not necessarily at fault here it just was not designed for Java.


Clearcase is 100% to blame here. It made assumptions and the world changed.

And when it changed... Clearcase did not degrade gracefully. It was a full on collapse.


No the error is the users/management Clearcase and Java just don't work together using winking etc. So the users should use something else.

Clearcase assumptions still worked for C/C++.

Clearcase could also act in the way svn, PVCS and CVS did with a checkout to a local disk and that way there would not have been the issues the OP talks about. (We did that for some projects not because of Java but because we were on Windows). Clearcase was still useful as it had good merging and easy branching 10 years before git.

After git and mercurial came out then yes Clearcase was not worth the money and collapsed.


Clearcase is the only time I’ve ever quit a job over technology or tools.


I once created a makefile script that had this first line:

  #!/usr/bin/make -f
And I similarly felt equally proud and ashamed.


You know what this means. We need a framework that lets you Make a website. With a catchy name.


> Does it scale?

> So far I haven't run into any performance problems. Whenever I've opened up a DoD website to several users, my hard drive tends to get wiped long before I discover performance issues.

I was floored by this dead panning


RCE with fdisk.

Another fun DOS DoS: copy con clock$


There was also Bash on Balls, in case you don't have that shiny cmd.exe on your machine

https://github.com/jneen/balls


There's also Bask (bash + flask). It's a CTF challenge on day 8 of HackVent (1). It's based off an article on building a bash web server (2).

1. https://hv23.idocker.hacking-lab.com/

2. https://dev.to/leandronsp/building-a-web-server-in-bash-part...


Let's not forget COBOL on COGS

http://www.coboloncogs.org/HOME.HTM


There's also Cobol on Wheelchair[0], although they didn't follow the good name abbreviation practice.

[0] https://github.com/azac/cobol-on-wheelchair


> Whenever I've opened up a DoD website to several users, my hard drive tends to get wiped long before I discover performance issues.

I love the sense of humor on this site.


Related:

DOS on DOPE - https://news.ycombinator.com/item?id=32970096 - Sept 2022 (18 comments)

DOS on Dope (2010) - https://news.ycombinator.com/item?id=29962658 - Jan 2022 (67 comments)

DOS on Dope - https://news.ycombinator.com/item?id=24826251 - Oct 2020 (2 comments)

DOS on Dope: The last MVC web framework you'll ever need - https://news.ycombinator.com/item?id=1666580 - Sept 2010 (20 comments)


Microsoft had no idea, but there is proper exception handling in BAT files (0)

So to summarize, I think DOS on Dope is Enterprise Ready and future proof!

0: https://stackoverflow.com/a/31445372/193892


On a more serious note, what would be a (mostly?) sane way to do something like this on DOS? TurnoC? TurboPascal? What was the "web tooling story" of those toolkits?


Turbo Pascal 7, the last one for DOS, was released in 1992, one year before Mosaic. Later on you could set up TCP networking and a web stack to work on DOS (e.g. Arachne) but this was very uncommon. Typically you'd have a GUI browser running in Win 3.1, not directly on DOS. But I can't think of anyone actually trying to serve anything weblike from DOS. It's not a server OS, quite obviously so, so what's the point?

In principle I suppose CGI would work just fine for these hypothetical purposes, so long as everything is completely synchronous (so each CGI handler blocks all request processing while it runs).


Michael B. Brutman runs a website from DOS on an IBM PCjr. He wrote the whole stack himself and created a bunch of nice DOS networking tools.

https://www.brutman.com/


Oh, you certainly can do it - DOS had TCP stack options for a long time now - and I'm not surprised that people do it for a lark. But I've never heard of anyone seriously doing something like this back when Turbo Pascal and Turbo C were still relevant dev stacks.



[0] is one result that comes up. there was a submission here on a HN a while back which featured somebody's self-hosted DOS server, but my algolia-fu is failing me.

[0] https://fsturmat.net/blog/04202022/


You could write a web server in C using any compiler available on DOS, not just TurboC. There's GCC, MSVC (which is older than Ansi C itself), and I believe I heard that Watcom had the best C compiler for DOS.


Reminded me of COBOL on Wheelchair: https://github.com/azac/cobol-on-wheelchair


Trivia: this one was created by Adrian Zandberg, currently a Polish MP.



This is unhinged and I appreciate this on that trait alone.


(sort of) related ongoing thread:

How to run a DOS-based web server - https://news.ycombinator.com/item?id=38705747 - Dec 2023 (20 comments)


This made me remember how badly I’d like to make a TUI for business software.

Any recommendations, has anyone shipped (and maintained!) something like this?


I was doing PT tech consulting (relative of mine) and they used a 16-bit Foxpro application (accounting + inventory) for far longer than they should have. (Upgrade would have been 5 figures, and it was working great, so why change?) As it turns out, the software shipped with a DOS ui as well, that supported 100% of the functions + features that the GUI Windows version supported. .... which made it easy to run under SSH/Linux/Dosemu, which was used a few times when a bug in the original Foxpro runtime prevented printing on any version of Windows based on the NT4 kernel ....


We have reached back in time and decided to see what CGI with DOS would be like. The horror, the horror! :@]


Terry Davis in the comments. That was just the kind of thing that he'd like, poor soul.


Author here. Thank you for pointing that out. I didn’t know who Terry Davis was — but I had heard of TempleOS and now I have some more reading to do. Much appreciated.


Does it actually run on DOS? or just Windows command prompt


Many people mistake the Windows command line as being "DOS"


Yep. If the DOS version >= 7, it's probably running in virtual 86 mode under Windows. Windows 98SE was the last version capable of booting directly to DOS.

And then there are the DOS flavors besides MS-DOS such as PC-DOS and DR-DOS. And later, FreeDOS. :]

I consider DOS 6.22a to be DOS-"DOS", but 7.1 also works.

Back in the day, DESQview is how we ran multiple modem line BBSes on one machine.


While satirical, this was around the time when building Rails-like frameworks was the rage. I was doing ColdFusion at the time, and tried out the Rails clone, CFWheels. Grokking many of the Rails concepts in a language I was familiar with led me to the original, which is where I do most of my work today.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: