by greenSunglass on 10/21/23, 7:49 AM with 168 comments
by otikik on 10/22/23, 5:57 AM
> i have very high and unusual standards,
Which was kind of funny TBH :)
by danpalmer on 10/22/23, 10:29 AM
If you are presented with the option of an abstraction – perhaps a library or framework, perhaps a service or API – is it "simpler" to use it or to not?
If you don't use it, and you build the alternative, you know more about how the system works as a whole, and therefore arguably it's simpler. But complexity is still introduced, and in some cases the abstraction layers still need to be built (but maybe not all of them).
If you do use it, you can consider the system to be simpler because you hide the complexity, and on the happy-path of usage that may be true, but the complexity still exists and you don't understand it because it's hidden. Arguably it's simpler, but it's easy to point to how it's more complex.
I've met engineers who strongly prioritise one or the other of these sorts, and to them that way is obviously simpler, but the problem is that both approaches are obviously simpler when you look at them in a certain way, you have to get past the obvious to realise that there are trade-offs.
by hiAndrewQuinn on 10/22/23, 6:03 AM
> you should do this too!
Absolutely not :)
Maintainability is one of my core values too, down to doing my own bike maintenance, like you! But it is far from being #1 to such a degree that this would make sense for me.
The Framework laptop is a good divergence point for us. Whereas you continue to eke out 9s on the DIY side, I realize resilience by having a spare decade old ThinkPad lying around at all times on which I can run Linux and Neovim in a pinch, and trusting there will be a lot of sub-$100 ThinkPads in the future should that one break on me too. I carry around the bits of CS and mathematics needed to trust myself to write a slow, informal, bug ridden parser with Haskell's combinators from Markdown to HTML if I ever have to. I don't see that day coming any time soon.
I'd hire you if I could. You'd be the perfect counterweight to a great many folks who tilt in the opposite direction.
by tczMUFlmoNk on 10/22/23, 6:05 AM
The author is honest with themself and earnest with the reader. They're unapologetically themself, and figuring out how to achieve their goals in ways that align with their values and bring them joy. If those values do not align with yours, that is okay. That is beautiful! Now you have a clue as to what path you might explore.
The article is kind and humble and authentic, and I think that the author and the article make the world a better place. Thank you for writing it, and thank you for sharing it.
by corbezzoli on 10/22/23, 8:27 AM
The little HTML and CSS it uses actively renders the website worse. The poster is a troll.
by csomar on 10/22/23, 8:18 AM
> this script runs every minute on a cronjob, and rebuilds my site if the git repo has been updated.
He is pulling the git repo 525,600 times a year for the few commits he'll be making in that year... I guess that explains the "unusual" word?
by runlaszlorun on 10/22/23, 4:03 PM
I see a lot of very critical posts on here.
With all due respect… screw them.
Perhaps they may be right in their critiques, but as an industry we’re rapidly heading off into mass stupidity in order to follow a bunch of collective “ought to”s and “shoulds”. Many of which have the current validity of an urban myth.
What passes for “engineering” these days would be laughable if we weren’t actively building our future on it. My father was an aerospace engineer and I feel I can hear him rolling over in his grave at was passes for engineering in modern software development.
Yes, this is a comment section so everyone is free to comment. But personally it’s taken me 25 years in the industry to finally ignore all those chattering voices and actually do what I feel makes sense for those few opportunities where I can.
And on a personal site no less? That old “here’s to the crazy ones” line in the Apple commercial sure rings far from true. Given what the internet has become and that once startups are now literally the largest corporate behemoths on the landscape- it should not be a surprise.
Teddy Roosevelt’s quote about “the man in the arena” is so true these days.
I say rock on, OP, rock on…
by snickerer on 10/22/23, 10:00 AM
My website, game engine, and webserver is one binary. The source has 1000 lines of C code. The binary has a size of 164k (I don't know why it is so damned big).
I included my own webserver. The existing servers add way too much (hidden) complexity.
You can check out the result, an interactive fiction game in German, here: http://vmd34232.contaboserver.net/ (no tracking, no ads, not commercial)
by tetsuhamu on 10/22/23, 10:33 AM
- The website is "one binary", but the deploy strategy involves compiling it instead of running a binary artifact
- Won't rely on github pages, but depends on external resource at openlibrary.org
- Writing your own stuff lets you take advantage of open standards, but the .html files in thoughts/ are structured as plaintext with a false file extension
- When people go this route, they usually try to cram everything into the initial page load. This has several static files served dynamically.
- The Golang code does not cache any responses, and does not store templates in memory.
- Several dependencies in the go.mod file, all of them seem unused?
Most importantly: No discussion about the technical benefits of the "single-binary" ethos compared to modern infrastructure.
It's my humble opinion that it's a great idea, and this is a poor example.
by eviks on 10/22/23, 9:27 AM
Unusual yes, but very low given the awful resulting design of the website that can't even present text to fit your screen properly
by Retr0id on 10/22/23, 8:37 AM
For my personal blog, I wrote a simple static site generator in Python. It converts markdown files into articles, an index page, and an RSS feed. The HTML templates and CSS are written by hand. It's required minimal maintenance over the years, and for the most part Just Works. After an edit, I rebuild the site on my local machine, and deploy with `rsync`.
I do have a couple of "dynamic" things hosted behind the same domain. For those, I configure nginx to reverse-proxy to a local service - which could be a python script, or anything else.
The only real advantage I can see to my setup, beyond personal preference, is that redeploys come with precisely 0 downtime. Presumably, if you're updating a binary, there's a brief moment where the old one shuts down and the new one starts up (unless you're doing some kind of clever reverse-proxy switchover)
by wiseowise on 10/22/23, 8:10 AM
Apparently accessibility isn’t one of them, given that increasing zoom level on Safari does jack shit.
by aae42 on 10/22/23, 12:05 PM
I wonder if the author owns a car, and if he does, which?
Locking my Hugo build with something like Nix makes that comfortable. I can upgrade as I discover bugs but can always go back if it ain't broke. I do wish sometimes they would stop adding features.
What it's driving me to do in this same vein is build my own Hugo theme.
Also, tend to agree about dynamic sites vs JavaScript behemoths.
Disagree with the authors styling, and am a big fan of classless lightweight CSS, of which there are a number to choose from these days (I keep a list).
by mattlondon on 10/22/23, 7:16 AM
I think they missed the point of a static site generator: you "compile" your site once, and then you have static assets that never need any maintenance ever again (unless you decide to change something) and which can be served by anything, anywhere.
This approach seems to take the worst aspects of static site generators and dynamic sites and bundle them together: you now have a binary to maintain (that has to generate the HTML et al anyway) and you have the potential for security/other bugs and you now have extra CPU/RAM/IO load on your server and you need specific hosting that allows you to run your binary.
Don't get me wrong this is fun and all and nice that it works for the author, but I don't think it is a sensible way to make things simpler, more reliable, or easier maintain (the opposite in my mind).
I will agree that Hugo is terrible IME - so so so much complexity for very little benefit when compared to Jekyll et al.
by ruduhudi on 10/22/23, 7:40 AM
Thanks to the odd scroll container i cannot zoom to a view where i do not have to side-scroll anymore.
by gorgoiler on 10/22/23, 8:30 AM
[edit: with hindsight, looking at the other content on their site, I don’t think the date being April Fool’s day is particularly relevant.]
by Eiim on 10/22/23, 4:44 PM
Where I do think the article misses the ball is on static vs. dynamic websites. If you need a dynamic website (for example, to display the user's IP), build a dynamic website. If you don't, build a static website. There really isn't another argument presented here beyond "some things you can't do with a static website", which is really just the fundamental tradeoff of a static site.
Anyways, a neat glimpse into a particular development philosophy that I will very likely never do but I will share with some similarly-minded friends :)
by mr-karan on 10/22/23, 7:51 AM
by tromp on 10/22/23, 12:36 PM
by Ono-Sendai on 10/22/23, 6:38 AM
Src code: https://github.com/Ono-Sendai/blog
by mrlonglong on 10/22/23, 8:43 AM
by fullstackchris on 10/23/23, 4:32 AM
You can do your fancy build process, single binary, whatever. The bottom line is if you want to call yourself a (good/strong/solid) web developer, your site needs to be accessible across all form factors.
I'm on mobile so I can't check, but I would bet this thing doesn't get even close to a good score on a tool like Lighthouse. Then the fact that some people are applauding OP and turning around making fun of "modern" software development (whatever that means) don't even realize they're part of perpetuating that problem (applauding sites which are missing key peices of accessibility and functionality)
This isn't really opinion or up for discussion either, this is quite literally the benchmark of living in our reality. We have accesibility guidelines and standards built over the years by hundreds of dedicated folks who worked hard to make those standards and guidelines clear - SO USE THEM! (meaning HTML5/CSS3/WCAG) Software is for humans, to be used by humans. Sure, I get the aspect that there is a bit of artistic freedom which OP has taken and by no means has to follow any guidelines at all. But this is definitively NOT a high standard or normal in any sense of what decent modern web development is.
by apatheticonion on 10/22/23, 11:18 AM
Nope. Just a static HTML website... Cool...?
by bradley13 on 10/22/23, 6:45 AM
That said, compiling your web content into your server? That's a step too far. Data and the application that process that data are two very different things, and (imho) should remain separate.
by hackish on 10/22/23, 6:29 AM
While I don't have the same hesitations about depending on a small chain of open-source projects, I really didn't like the idea of caddy-exec despite my basic precautions, so I abandoned this approach until I can ponder it a bit more.
by urbandw311er on 10/22/23, 9:11 AM
I admire the determination to “own” and control the entire stack.
Equally parts of this smell of “not invented here” syndrome.
by block_dagger on 10/22/23, 8:39 AM
by wutwutwat on 10/22/23, 7:28 PM
https://gogs.io/docs/installation/install_from_binary.html#d...
by userbinator on 10/22/23, 7:01 AM
by OhHiMarkos on 10/24/23, 11:18 PM
So, thank you I guess. I would like to see more of your stuff and your approaches.
by yoav on 10/22/23, 12:43 PM
by gildas on 10/22/23, 10:55 AM
by f1shy on 10/22/23, 7:18 AM
As said before BTW the format in Mobile is horrible!
by tap-snap-or-nap on 10/22/23, 11:49 AM
by slmjkdbtl on 10/22/23, 4:32 PM
by fsiefken on 10/22/23, 9:38 AM
It reminds me of the guy who coded and compiled his impressive crypto exchange in c by hand to get the attack surface low and the performance extremely high. Does anyone remember the name of the site? I think he mentioned (years ago) he was on the brink of giving up.
by JodieBenitez on 10/22/23, 10:56 AM
Apparently latency is not one of them.
by mortallywounded on 10/22/23, 4:23 PM
It has been great.
by drawkbox on 10/22/23, 2:48 PM
This doesn't fly at clients/customers usually but what you control needs to be highly maintainable and simple. Whatever works for you to achieve this is good. In regards to personal projects or internal products, in that case a framework with massive dependencies just isn't easier to maintain long term over simple web standards and market standard formats like HTML/CSS/JSON/Markdown/etc.
My only complaint is the lack of capitalization on the content, so many tech/devs do this, just don't. Even Sam Altman...
How dare you not capitalize in a capitalist system. /s
Seriously though, just capitalize your sentences.
by rurban on 10/23/23, 6:11 AM
by forgotpwd16 on 10/22/23, 9:30 AM
by sotix on 10/22/23, 3:03 PM
[0] I would be in favor of getting rid of the modern atrocities of website design that frequently make the front page of HN. Simpler, more effective designs without distractions should be boosted.
by ljm on 10/22/23, 11:55 AM
by xyzzy4747 on 10/22/23, 11:36 AM
by crabbone on 10/22/23, 7:53 AM
Also, however way you spin it, mobile is a hostile environment compared to desktop. It's inconvenient to have to deal with tiny screen and defective keyboard. So, any usability defect that also exists on the desktop risks overflowing the cup of patience.
by walteweiss on 10/22/23, 6:36 AM
by zzo38computer on 10/22/23, 8:52 PM
by toriningen on 10/25/23, 4:50 AM
by 28304283409234 on 10/22/23, 9:48 AM
by pyrolistical on 10/22/23, 9:01 AM
You get all the power of templating and minimal cost
by kosolam on 10/22/23, 3:58 PM
by iamafk on 10/22/23, 3:15 PM
by marcrosoft on 10/22/23, 4:26 PM
by Dwedit on 10/22/23, 6:00 AM
<link rel="stylesheet" href="/static/style.css" type="text/css">
Well then...