Maybe I’m just dumb, but I always find that learning new tech while simultaneously trying to build with that new tech usually ends up in me rethinking the project repeatedly as I learn new tricks and techniques. I’ve dropped projects that I realized were too ambitious or just weren’t evolving right after months, years of effort. I’ve since learned that building needs to feel more like assembly than fabrication. You can dream, but it shouldn’t leave the whiteboard until _all_ of your technical assumptions not backed by experience are resolved into certainty. You move so much quicker and more predictably if you can predict success.
1. You just want to serve static files from your blog? Install a webserver and knock yourself out in your editor, creating html and css (and maybe js) files.
2. You want to serve static files, with some dynamic crap stuffed inside here and there like the examples given in the article? Install the mod_php or equivalent for your webserver, and go mad with the editor.
3. You want fully generated content? Install one of the many backend frameworks in any language you want to use, and then go mad in your IDE.
What use-case does "one binary I wrote in Go" satisfy that isn't covered above? From everything I gleaned from the article, the PHP solution is even easier, while still technically being "one single binary".
EDIT: as an example of over-engineering, here is the authors code for a specific use-case:
func ipHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
fmt.Fprintf(w, r.Header.Get("X-Forwarded-For")+"\n")
}
...
http.HandleFunc("/ip", ipHandler)
And here is the equivalent in PHP: header('Content-Type: text/plain');
echo $_SERVER['REMOTE_ADDR'];
* mean/med/p99/p999/p9999/max over day, minute, second, 10ms
* software timestamps of rdtsc counter for interval measurements - am17 says why below
* all of that not just on a timer - but also for each event - order triggered for send, cancel sent, etc - for ease of correlation to markouts.
* hw timestamps off some sort of port replicator that has under 3ns jitter - and a way to correlate to above.
* network card timestamps for similar - solar flare card (amd now) support start of frame to start of Ethernet frame measurements.
So basically you’re taking 18 measurements and checking if they’re <10ms? Is that your time budget to make a trading decision, or is that also counting the trip to the exchange? How frequently are these measurements taken, and how do HFT folks handle breaches of this quota?
Not in finance, but I operate a high-load, low latency service and I’ve always been curious about how y’all think about latency.
This let's you drop .htaccess files anywhere and Apache will load them on each request for additional server config. https://httpd.apache.org/docs/2.4/howto/htaccess.html
One big reason to avoid them was performance; it required extra disk access on every request and it was always better to put the configuration in the main config file if possible.
But now? When most servers have an SSD and probably spare RAM that Linux will use to cache the file system?
Ok, performance is still slightly worse as Apache has to parse the config on every request as opposed to once, but again, now that most servers have more powerfull CPU's? In many use cases you can live with that.
[ Side project is very early version but I'm already using it: https://github.com/StaticPatch/StaticPatch/tree/main ]
Seeing the mention of ADHD set my thoughts on a rather different track. The lack of focus becamein retrospect much more the defining characteristic of the post -- to the point that the post itself doesn't seem to know what it is or wants, or at least fails to communicate that. (This kind of obliqueness is, to me, one of the hallmarks of ADHD.)
But you're right that just as a statement of goals and ideas, the post is a wonderful start. And I forgot completely to include this: the fact that OP is self-taught is encouraging. That's basically all he needs. It's invaluable and will serve him well, regardless of what he decides to do.
To be honest, what I hear in the paragraphs that follow is less a description of yourself than the pronouncement that you are capable, curious, and driven to learn more, that you're excited and motivated by the breadth and depth of tech -- that there's so much to learn and so much to study and you want to know all of it. That's a wonderful starting point, but it also sounds as though you are or will be prone to a kind of paralysis.
You have a list of projects you want to work on. This is good. Study will give you a foundation (personally, I found DS&A, once I approached it methodically and patiently, by far the funnest part of learning programming and CS, so projects aren't the only way), but building will give you something to put on top of it, figuratively speaking.
Just keep on mind that you're probably not going to build these things from first principles, so you're probably not going to learn operating systems, networking, or programming languages. Rather, your going to develop skill in specific tools rely onthose technologies. That's fine. But if you really do want to dig very specifically into the subjects and technologies themselves, then you needto be aware that building the products or projects you've described isn't going to give you the progress you seem to want.
If you really do want to know networking, don't build a website; implement, I don't know, telnet or tcp/ip from scratch after reading the spec. If you really want to know operating systems, build one. If you want to understand programming languages, DS&A, and algorithmic analysis, familiarize yourself with some instruction sets; learn discrete math; learn what lambda calcus is and how it's used.
> Adult ADHD
I have severe ADHD. I could not survive in the tech world without treatment and medication. YMMV, but you should get treatment if you haven't already. Last time I checked, there was essentially no empirical evidence supporting the coping strategies so many people advocate. Medication is the one, and the only, proven treatment for the condition.
Well, it is the only post on this person’s website, I bet they wrote this because they wanted to set up a blog and needed content. I thought their enthusiasm was heartwarming personally, imo the drive OP is expressing is the most important part of starting with CS stuff (maybe any hobby?)
> or of posting the post here is
Maybe they’re uncertain deep down whether or not a 37 year old can actually learn computers? I have the same insecurity with learning to play piano.
> Just keep on mind that you’re probably not going to build these things from first principles
Does anyone, truly?
Really though, all of OP’s aspirations seem reasonable to me, I think your post is a little too negative and discouraging. Making a HN-like webapp, esp for a small group, is a trivial demo exercise. The streaming device could just be a raspi in a custom case, but OP could go as far as building a custom board as their interests guide them. The education app and ecommerce sites are just further skill reinforcement w/ the HN site idea. OP even has ChatGPT to answer questions, I would have killed for someone or something that could answer my questions when I was learning.
Mostly responding because I felt bad at the idea of OP reading this and thinking they’re actually limited in achieving their goals. You’re right to caution against taking on too big a challenge up front, but OP _can_ totally chase their curiosity and dig into details as far as they are drawn. OP, if I was you, I’d try to build a “quick and dirty” version of whatever project idea(s) most pull at your soul before you get too into the weeds, otherwise all that nitty-gritty detail just feels like mind-numbing trivia.
In that sense, it isn’t “normal”, it’s just “something that’s happening in theory but eh maybe it only affects scary people or whatever idk”. I feel like this tolerance we’re developing for outside forces invading “private” spaces, nominally for these loose justifications of harm reduction, will be what _actually does_ make it normal.
Once it’s truly normal, and people think it’s what keeps them safe from mass shootings or whatever, it will be too late to get rid of it. I think fear and normalcy will motivate its spread to places beyond school chat platforms and Snapchat.