A sh HTTP Server, using Netcat
This kind of thing should not be used in any serious production application. For a start, there is a risk of shell injection attacks.
But I would bet that multiple S&P 500 companies use something like this, somewhere deep in the bowels of their systems.
Continue reading →Adventures in Forth/Stack Languages, part 1
Over the last week I have been playing with a Forth-like language that I have implemented (separately) in JavaScript and C.
I have embedded the JavaScript version below, and both versions are available on Codeberg: https://codeberg.org/DanielRHolland/forth-style-stack-lang.
Continue reading →Throwback Thursday: Haskell Game of Life
Almost two years ago now, at a Mycs company party, I was chatting with some other devs when I confessed to having never implemented a "Game of Life". To remedy this, I wrote one in Haskell (iirc I actually started this at the party itself).
Continue reading →Programming Languages that changed how I think
This is, in some sense, a part 2 to Software Engineering Books and Resources that I have found interesting. In fact, this list was originally going to be included with that one, but it got too long (especially with the notes), and so I split it out. Some of the notes may get trimmed/edited/fleshed-out at a later date, and I might add more languages.
I have intentionally excluded from this list some of my favourite languages, some of the most popular languages, and some of the best languages for building great products, simply on the grounds that I don't feel that they sufficiently changed the way that I think.
Continue reading →Processboard
Software Development, DevOps, & Infrastructure Design for a SaaS startup. Mainly using JavaScript & PostgreSQL, on Linux.
Continue reading →Creating Objects using Closures
You don't need Java (or C++, or an "OOP" language) to create objects and classes!
What are objects and classes?
For this post, consider objects to be instances of encapsulated state with associated methods, and classes to be the general definitions of a type of object.
Software Engineering Books and Resources that I have found interesting
I'm not really sure this is really "blog post" kind of content, as I intend to come back later and amend/add to it. When I have met people looking to get into Software Engineering, or students of Computer Science, I have been asked for recommendations for things to do/read/watch. This post lists some of the things that I have found interesting, and that I have recommended to others. This list is incomplete.
If you have any recommendations for me, let me know, I'll check them out, and I might even add them to the list.
Continue reading →459 times
If you have a 99% chance of failure, for a given task, then if you attempt it 459 times, your chance of success will be over 99%.
It gets better than this - after only 69 attempts, your chance of success is already greater than 50%.
Continue reading →Building a Mini Social Network in one file of Scheme - Part 1
I have been messing about with Chicken Scheme, building a little microblogging-style app, with a twist: users can vote for a purge of the whole site's content! I thought it would be fun to see how far I can get with one file of Scheme and without any JavaScript. I have put a favicon and some css in separate files, but really these could both be embedded in the Scheme file aswell - but that would be taking it a bit too far.
If you skim the Scheme below, several issues will become obvious to you. Perhaps most saliently, the USP feature is not actually fully implemented - users can vote to purge the server, but the purge action itself has not been added. Secondly, the users and passwords are simply hardcoded into an association list. I've dumped the code below, and at some point I will tidy up a few of the loose ends, make the GitHub repo public, and perhaps write further about it.
Continue reading →Software Engineers don't have a tech stack - their projects do
I would rather discuss solving problems than just talk about "Stacks" in isolation
It's great to have favourites, and to be enthusiastic about specific tools - I do too, this is an important part of being a tech-nerd/hacker/programmer. But "Tech Stack" isn't an attribute of the person, it's an attribute of the project.
Continue reading →