For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | jamon51's commentsregister

This made me happy. I also (obviously) have a soft place in my heart for pushing the boundaries of old / limited tech.


I updated the README with instructions on how to download the file, review it, and alias it locally. :-)


I made around 200 QBasic games when I was a teenager with no internet to help me, and it gave me so many amazing skills that I still use today!


That's fantastic. Are they published somewhere?


Hey, fun to see my fun little project showing up on HN!

Yes, aliasing the CLI command to a remote script is not exactly best practice. My casual question to myself when I made it was … what’s the literal easiest way I could get this to work on someone’s computer with as few dependencies as possible? This was the solution I came up with. (And in my defense, it is similar to how you install homebrew … `/bin/bash -c "$(curl -fsSL https://xn--rvg)`, but I get that most wouldn’t trust a somewhat random GitHub account like this.)

If you have any questions about this, let me know! My website (https://jamon.dev) runs on it (in a DigitalOcean droplet) and I’ve enjoyed the experience.


This is great because it is an entirely new way to teach programming that is tied to the web for beginners.

For those who started with basic and grew from there, the journey seems to have been critical to start with basic to have so many aha’s so early in learning a skill.


This is such a wonderfully absurd and amazing project, I love it!

I think this has huge potential in the educational sector, and bridges the gap of how our generation learned programming back then and the modern web.

Again, kudos!


Wonderful yes, not so sure if absurd makes sense?

Basic is a very capable beginners language to learn enough concepts.

Many developers had their first experiences of magic as kids with something like Basic.


I love this so much. I got my start on QBasic and made hundreds of games between 12 and 19 years old. I eventually left it behind, but always had a fond spot in my heart for it.

Last year, when I was going to rebuild my personal website, someone on Twitter challenged me: “Build it in QBasic, you coward”. I was like “haha…wait, can I?”

And I did! It runs on QB64 on a DigitalOcean droplet.

Here’s the source:

https://github.com/jamonholmgren/jamon.dev

Check app.bas for the QBasic code.

I may eventually release a CLI and library that lets people spin up a QB64 website in little time.


Ha, I once created a web framework in classic ASP that was inspired by QBasic - you’d use pure HTML templates but in handlers you’d write LOCATE statements using XPath selectors instead of screen coordinates, followed by PRINT statements to actually fill in the content of an element. Never tried to actually write it in QBasic itself though. Nice work!


Thank you!

XPATH in LOCATE stmts sounds like asking a disco dancer to moonwalk -- out of its era, but oddly fascinating to watch


It honestly wasn’t a bad approach in practice, many years later there was a similar library called Enlive in Clojure which I genuinely enjoyed. Forces you to use nice semantic IDs and classes for everything. I suppose if you wanted the real BASIC experience you’d actually just PEEK and POKE with character offsets into the templates or something ungodly like that.


This is awesome! Kudos!

I wish there was some kind of "computing archeology" discipline


The folks who built this stuff are still alive. Historian would be a better fit, and we can archive the actual first-hand accounts if we don't waste the chance.


I was confused for a few seconds. This is to help others. The user didn't build their website, they built the web server, a more difficult task.

I was expecting a classic CGI gateway approach with some templating support and maybe a data source (not necessarily sql but perhaps INI).

Instead it's an HTTP server


You could serve your qbasic website from an old Android phone in a drawer my dude.


Not with BabaBASIC (for now?). No networking support whatsoever :P


Fairly certain jamon can wire in some io, let me nerd snipe in peace plz


My apologies. BabaBASIC is here to make any Android-related anachronistic dream come true (˃̣̣̥ w ˂̣̣̥).


I think I have a general idea on how to implement basic TCP/IP sockets while staying true to QBasic 4.5's spirit (i.e. not introducing functions like _OpenConnection/_ConnectionAddress etc.)

The "API" I have in mind would look something like

```

OPEN "TCP:\127.0.0.1\80\LISTEN" FOR INPUT AS #1 INPUT #1, CONN$ IF CONN$ <> "" REM CONN$ contains something like "TCP:\127.0.0.1\80\REMOTE_HOST\REMOTE_PORT" OPEN CONN$ AS #2

  REM ... respond to request
  PRINT #2, "200 OK"
  CLOSE #2
END IF

```


Don't tempt me.


Ugh, jamon51, I think we slashdotted your website


I had the same experience as a kid. Probably built over a hundred QBasic-powered games with no internet to help me.

I missed it, so last year when I rebuilt my website I built it in QBasic:

jamon.dev


This is one of the big problems App.net always had, in that it wasn't at all intended to be a "Twitter alternative". Alpha was supposed to be an example of what could be built on the platform, not the entire product itself.


It's relatively large for a Phoenix web app, given that there aren't that many out there yet.


At Infinite Red we chose React.js over our previous choice of Ember not because it was objectively better at web, but because it lowered the context switching when our devs would switch between mobile and web projects. We have many devs who only handle web or only handle mobile, but for the ones who can do both, it's well worth it.

React.js being superior/inferior to Vue.js or others isn't very relevant unless the gap is huge, which it's not.


Portland is amazing in the summer, so if you get a chance to come visit us and attend this conference, please do!


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

Search:

HN For You