Felix Rambles

Another step to taking back control

More, bigger, pointless

19 July 2019 — Felix Pleşoianu

These days, humanity celebrates 50 years from the first Moon landing. Half a century since creatures of this Earth set foot on another celestial body. Inevitably, people in my line of work remember and celebrate one particular hero of that story: Margaret Hamilton, who led the software team and coined the term "software engineer" to describe what she did... because she was literally the first one.

And you know what? I think most modern programmers feel woefully inadequate compared to her.

You've probably heard the joke. I tweeted it myself just recently. It goes like this: the Apollo Guidance Computer had 4K of RAM and a CPU running at 2MHz, and they went to the Moon with it. The smartphone in your back pocket is millions of times more powerful and crashes trying to render a large web page.

Of course, it's nowhere near so simple. The circumstances were different, and highly specific. Moreover, we are doing hugely important work with computers today that wouldn't have been possible 25 years ago, much less 50. Such as putting together the data from countless telescopes the world over to image a giant black hole in a distant galaxy (an effort also led by a woman, by the way).

However, the sheer enormity of what NASA achieved in 1969, and the absurd discrepancy between said achievement and the humble computer that played a part in it can't help but amaze us. We stand in awe at the dizzying perspective. And there are a few lessons to learn from it.

Read more...

Tags: software, philosophy, science

Comments? Tweet  

Websites, links and bookmarks

18 July 2019 — Felix Pleşoianu

Last autumn, in a fit of inspiration, I created Clinklog, a static website generator optimized for linklogs and microblogs. As of this writing, it hasn't been updated in six months, simply because it does everything its two users need (one of them being me), with no known bugs. Still can't believe how easy it is to use, and how well it does the job. Other people seem interested as well, though nobody wrote back yet. Oh well.

Clinklog was inspired by two pieces of software. One is BashBlog, that powers these ramblings you're reading right now. The other is Shaarli, an online bookmark manager that I've know about for even longer yet never got around to trying. Until now. It looks like this:

Screenshot of a web app showing a list of links with tags and timestamps.

or sometimes like this:

Screenshot of a web app showing links and notes in the style of an old newspaper.

and no, you can't have a link; mine is friends-only. But you should try it yourself. It only requires PHP 5.6 and 7-8 megabytes of disk space, data excepted.

Read more...

Tags: website, software

Comments? Tweet  

Freedom and responsibility in software

24 June 2019 — Felix Pleşoianu

In today's news, the world of free software discovers that freedom entails responsibility, and reacts in typical male fashion: by panicking.

Which reminds me that I spent years exploring the concept of freedom in my stories, and no matter how I looked at it, one conclusion imposed itself every time: there is no freedom without belonging. If you don't belong anywhere, that doesn't make you free, but adrift. Conversely, if you belong where you are, are you really a prisoner? It's not like you'd leave even if the door was wide open.

This, by the way, is why I find the Stockholm Syndrome a dubious notion at best. It's predicated on a gung-ho conception of freedom that only flies in Hollywood movies. And we all know what happens every time a certain world superpower tries to force this brand of "freedom" on other, older countries.

Freedom, you see, is a political concept by definition. Yet for the longest time free software fanatics tried to pretend their creations were these idealized, abstract shapes adorning marble halls of intellectual purity. Anyone can use the software for any purpose, and we're not liable for anything!

You'd expect that kind of attitude from the gun-toting libertarian who rebranded free software as open source. But no, freedom zero is right there at the top of the General Public License as originally published in 1984. Oh wait, it was written by a lawyer. Minimizing liability is what they do for a living.

How appealing to cocky young programmers who were taught that cynicism was a sign of intelligence. And they bought it wholesale, because it spared them from having to show empathy. Empathy hurts, you know. Lots of bad stuff happening these days. Lots of bad people happening, too.

Well, now they're using all that "neutral", "unbiased" software we filled the world with to spread hate, perpetuate injustice or snatch innocent victims. And we can't revoke all those licenses, pretty much by design. That, too, seemed like a good idea at the time.

Guess it's time to figure out something else then. Before the consequences catch up with us.

Tags: software, freedom, politics

Comments? Tweet  

Chrome for Android and privacy

29 March 2019 — Felix Pleşoianu

A worrying toot crossed my Mastodon timeline the other day:

I think some people may not know that Google does Man In The Middle shit by default in mobile Chrome? They basically download everything to their servers and then send "optimized" to the client. SSL? HTTPS? Forget it.

There was an opt-out header which website owner could set but they're removing it.

This company doesn't know what privacy is. Or security.

No shit!? Could this be why Chrome takes so damn long to open even the lightest websites, with the phone two feet away from my home router? I went ahead and installed FOSS Browser from F-Droid. Sure enough, every single site I tried in it loads incredibly fast. Incredibly. I can't even see them loading. Not even text-based browsers move like that.

What the hell, Google? I thought you were only doing that with URLs, to provide suggestions, and I had disabled that misfeature. That was a serious privacy breach already. This? This is vile.

Some "helpful" dude in the replies claims that Chrome asks permission to do it on first run. Funny how I never saw that dialog. Oh wait, it's because I got my phone second-hand (in mint condition, mind). And I've seen tech support people tap right through license acceptance and such before handing a device to the buyer. A lot of people will never see the question at all! And most others won't understand it because to them it's just programmer gobbledygook.

Way back in the day, Opera Mobile provided a similar service when phones and networks were a lot less powerful, and actually needed it. Only they explained how the whole thing worked upfront, in plain English, and gave people a big warning: "if you don't trust us, don't use our service". Really, that's what it said.

Funny how I always trusted them. Unlike Google, who just proved themselves even less trustworthy than they already were. And that takes effort nowadays.

Tags: software, technology, website

Comments? Tweet  

Accessibility and the larger issue

10 March 2019 — Felix Pleşoianu

As the meme goes, "I don't know how to explain to you that you should care about other people." It's a good way to introduce this article a friend boosted earlier about the catastrophic state of website accessibility. Short version: it's worse than even cynical old me would have expected. And not because web developers haven't heard of WAI-ARIA: it turns out pages with accessibility markup are more likely to have issues.

How is that even possible? Not to speculate, but ARIA attributes are tricky to use right, and can't replace good old semantic HTML. And there was a time last decade when web designers would make every element a div styled from CSS. When called out they'd ask, "what does it matter? looks all the same, doesn't it?" They were so surprised when I pointed out that web crawlers don't apply any stylesheets, and couldn't make sense of the result if they did. That all their "SEO" tricks (scare quotes very much intentional) don't hold a candle to this one thing Wikipedia is doing. What thing? I showed them the front page with styles disabled. Lo and behold, it looked almost unchanged. Still perfectly organized and readable. Some less important links were left for the end. Which is exactly where they logically belong if you're trying to read the content from top to bottom. As the original post says:

Selfishly, I’d love a future where it's commonplace for interview candidates to be selected not only because of their JavaScript prowess, but also because they can offer a sound explanation of why using a button element is important.

But that's just scratching the surface. Because, you see, most people don't actually need a screen reader. They are, however, begging for good contrast, or the ability to enlarge the text without making the page they're reading explode into a mess of broken little boxes scattered everywhere. Or in my case, scrollbars wide enough that a 40-year-old with a $10 mouse can actually hit them reliably.

At least desktop GUIs encourage applications to follow certain common guidelines, so people don't have to mentally switch tracks every time they Alt-Tab. Which is why many stick to software native to their operating system. But there's a snake in that Garden of Eden, too.

Read more...

Tags: software, technology, website

Comments? Tweet  

Weasel CMS: compact, modest, silly

13 January 2019 — Felix Pleşoianu

I love crafting microsites by hand. When they click together, results can be uniquely satisfying. But a couple of times I caught myself copy-pasting a small navigation bar into a handful of pages. Which is a sign I'm going the wrong way. By that point, server-side includes are a band-aid: it's time to use a proper CMS.

Trouble is, I have this rule never to use a content management system bigger than the content I expect to put in, and most of them are at least several megabytes in size nowadays. Exceptions are usually the kind that don't have a control panel, thus missing the whole point of, you know, managing content. (Sorry, fluffy. Been there, done that, had to tear up my t-shirt to take it off. There's value in being visual. Coming from me, that means something.)

As it happens, there's an exception: Weasel CMS. Proper review after the cut.

Screenshot of a minimal website with a dark color scheme and elegant two-column design.

Read more...

Tags: website, software, review

Comments? Tweet  

French style blogging via PluXML

02 January 2019 — Felix Pleşoianu

After discovering Bludit last month and falling in love with content management systems again, I wanted to see what else still existed in a market so utterly dominated by one product that installing anything else on your website is an act of defiance. There are many, many similar products backed by a database server, which is a problem for many reasons. Not nearly as many use flat files for storage, making the selection a lot more manageable. Even fewer are remotely interesting. One however kept my attention for long enough to write this: PluXML

(Screenshot of a website with colorful header and Lorem Ipsum text.)

Proper review after the cut.

Read more...

Tags: blog, software, review

Comments? Tweet  

Blogging with Bludit

23 December 2018 — Felix Pleşoianu

You know that feeling when you start playing with a piece of software on a whim, and the next thing you know hours have passed, yet you're still not done? That's what happened to me with Bludit this morning.

I was shopping around for photoblogging software (long story), and because there's a bewildering amount of content management systems out there, narrowed it down to apps that don't require a database server. That left no more than a handful of search results to check out. One of them looked good enough to test.

Screenshot of a blog homepage in white, gray and red, with cursive fonts.

Here's what happened next. Proper review after the cut.

Read more...

Tags: blog, software, review

Comments? Tweet  

Open source, the perpetual substitute

12 October 2018 — Felix Pleşoianu

There's a big problem with free and open source software, and nobody seems willing to talk about it: the entire movement is fundamentally one of followers and not innovators. How else could it be? The GNU project, that gave birth to the whole thing, was explicitly launched to make replacements for proprietary software. The Linux kernel was a reaction to Minix, an educational operating system. All the big apps, like LibreOffice or GIMP, were meant right from the start as clones and/or replacements of expensive, industry-dominant software. Even desktop environments like KDE and XFCE were initially blatant copies of their commercial predecessor CDE.

Show me one piece of open source anyone's actually heard of that's original and trailblazing rather than a me-too. Heck, even most games in the field are derivative. That titles like FreeCiv and Super Tux Kart surpass their originals in every way is simply a result of so many years in development.

That's the one big advantage of open source, apart from the freedom it offers: not being driven by commercial interests, it can keep getting improvements for a long time. Don't let version numbers fool you: DOSbox, for instance, stalled at 0.74, but that means it had seventy four major releases! Chrome cheated shamelessly, and is only now getting close. But is that enough of a selling point? Time and again, people prove willing to put up with any amount of shoddiness in software. Even bugs that destroy all their data simply aren't enough to make them look for alternatives.

Sure, open source has won. In the web server space, nobody in their right mind would use a proprietary operating system, unless office politics force them to. The GNU Compiler Collection is still at the core of Mac OS X (along with other open source components). The Python programming language now powers pretty much everything that's not system or enterprise software. And so on, and so forth.

Speaking of the Python programming language, now that's an example of open source innovation. So is WordPress, the software behind nearly a third of all websites. But how many people not in the business have heard of either? They're infrastructure, designed to fade into the background and let people work. You'll say that's true in other areas... but for instance I know exactly who manufactures the public lighting for my city. And the tramways. And the metro. So should you.

Only in computing we find it normal to treat everything as a black box. And that's why we never learned to truly take advantage of software freedom. Even those who understand its importance have mostly been concerned with playing catch-up. And "we have everything the big players do" is a pathetic, shameful selling point.

"Look at us! We're not totally lame! Please love us! No, don't leave..."

Now Microsoft has bought GitHub just as we were moving towards a "post-open source" era. And open source replacements can't seem to get much traction at all.

Nor will they, not ever, unless we learn to blaze our own, new trails for a change.

Tags: software, philosophy

Comments? Tweet  

Introducing Clinklog

16 September 2018 — Felix Pleşoianu

Exactly a week ago, I announced my new project: a static website generator optimized for microblogs and linklogs. As of yesterday, it's complete enough to generate its own homepage. That's an important milestone. Doubly so as it turned out to work flawlessly under real-world conditions, however briefly. It does take a little thinking to use, at least at first, but that suits me fine. Still quick and easy enough.

Oh, there's plenty more to be done. Existing features to finish; more of them to add; documentation to write (not necessarily in that order). If you're impatient enough to start using it, beware that defaults can and will change. The schema, too; hopefully in a way that can be applied to existing databases with a second call to clinklog init. I'd hate having to start from scratch after just releasing this first version. After all, one of my design goals is to allow for stable websites, that can continue to accumulate new content for a long time to come.

The downside to that is posts not getting their own files, but only a slot in the corresponding monthly archive, which in turn means permalinks change if you bump a post (or item, in Clinklog parlance) to the top. Not so permanent after all. It remains to be seen how much I'll have to do that in practice.

First, however, to make some progress, so there will be more to post about, both here and on Clinklog. See you around.

Tags: blog, software

Comments? Tweet  

Fun with static website generators

09 September 2018 — Felix Pleşoianu

Oops. Haven't posted here in over a week, and while I don't exactly have a quota, this is even less often than expected.

Having now used BashBlog for long enough to know what it can and can't do, and being satisfied that it can provide a path forward for my long-form blogging, I started thinking about the way Twitter is going down and Mastodon could become literally illegal this Wednesday if the European Union's "copyright reform" law passes as proposed. Which in turn reminded me of an older idea for a static website generator different from the hundreds of others out there.

It started with my use of manually edited RSS, which is easy enough but kinda clumsy, because the format simply wasn't designed with that in mind. Then there were the experiments to reimagine my big webcomic list, which ended up staying a single long document. It was simply not worth the trouble to make anything fancier. Especially after all this time.

Still, the ability to quickly and comfortably post links or quips remains important. As I wrote over nine years ago, microblogging had to be invented. And most existing solutions are overcomplicated, largely because they insist on being social.

Far as I'm concerned, being social on the web means having a newsfeed people can follow.

Which brings me back to RSS. Why not Atom? Because RSS is more flexible: items don't require a title or link, making them useful for mixed content. They even have a concept of a permalink for the item itself, distinct from whatever it's pointing at. And my primary use case just so happens to be a linklog.

So as of yesterday I've been working on a static website generator that runs from the command line, like many others out there, but designed around the capabilities of RSS. How I'll make room for it in my established workflow remains to be seen. So far it looks like a solid concept at least. And the web needs a new vision.

Wish me luck.

Tags: blog, software, social-media

Comments? Tweet  

On helping people

26 August 2018 — Felix Pleşoianu

There are two kinds of people you're likely to meet who are unskilled in a game or craft.

The newbie is genuinely just starting out, and hasn't learned the ropes yet. That makes them prone to asking silly questions, and making silly mistakes. But you can't possibly miss their interest, or fail to notice their progress after a while.

Now the noob (sometimes spelled with zeroes instead in a parody of leet speak), is someone who never actually learns. They may have been at it for a while, but never got anywhere, despite obvious efforts.

It's an important difference, you see, because while the newbie may have difficulties, needing some things explained multiple times, or in different ways, they still want to learn. Whereas the noob isn't just failing to, but actively rejecting any clue that may be coming their way. You know how knowledge often springs from unlikely sources, when least expected? It takes a special kind of dedication to dodge it all.

For decades now, too much software has been written for the exclusive benefit of noobs. You can tell because it offers no way forward, no path for improvement, and definitely no option for experts, which is what newbies turn into sooner or later.

If you give them half a chance.

Oh, you can go too far in the other direction, too. My own software could be more helpful to newbies. In my defense, it's hard to write genuinely helpful software (as opposed to the kind that pats you on the head condescendingly). My guides and tutorials do a much better job of it. Or so people who read them have told me.

Speaking of which: another thing I've learned in life is to never try and help someone unless they ask for help. You're a lot more likely to make a big mess. If they seem to need assistance yet failing to ask for it for whatever reason, let them know you are there. Carefully, though, lest you turn into Clippy. Remember Clippy? Is that the IT you want?

Choose wisely who you help, and how. Life is short.

Read more...

Tags: education, software

Comments? Tweet  

Why bother walking?

24 August 2018 — Felix Pleşoianu

There's a story I like to tell, because it's illustrative of so many attitudes in the modern world.

Had to meet somebody once to discuss some business. We picked a place halfway between my home and their office. When I learned how close it really was from the meeting place, I offered to just walk the rest of the way and spare them a trip. We're talking a 15-minute walk.

They insisted to come over as agreed. They were very late. Turns out they spent 20 minutes just looking for a parking spot. (Par for the course around here, really. They should have known.)

It would have been literally faster for me to just walk over than it was for them to drive the same distance, everything considered. But they thought it was unacceptable for someone to walk when a car was available. Even after all the fuss, they still held that it had been the right thing to do.

No, this isn't about car culture, even though it's destroying our cities (and the environment). It's about programmers. More and more, people are asking, why bother optimizing when computers are so powerful? Why bother minimizing dependencies when we have package managers and containers? And all too often, we end up with more trouble on our hands than our tools were supposed to save. More work. More wasted time.

But sure, let's keep doing everything in the fanciest possible way. After all, we have all that fancy stuff, might as well use it.

Everywhere. All the time. Whether it fits or not.

Don't you dare complain about your commute.

Tags: software, philosophy

Comments? Tweet  

Choosing your platform

21 August 2018 — Felix Pleşoianu

This morning, my friend fluffy asked why I'm not using their new CMS Publ for this blog. That's an excellent question, in fact. Here:

  • I tried the Publ approach already: my old CMS was designed on the same principle. It worked horribly for my needs, trapping this website in a rigid way of doing things it took over a year to break free from. Being able to easily move a page around isn't enough.
  • I'm not sure how to set up a Python app on my cPanel account, and it definitely wouldnd't work on my other cPanel account where I'm going to need a blog. This is mostly just a trial run after all.
  • Nowadays I simply have a different idea of what a website should be and how to structure one. Even my continued use of wikis is more of a legacy thing.

If you're just setting out to make (or remake) a website, do try out Publ; fluffy's a much better programmer than I am, and may have managed to avoid the trap described above. Besides, you might not know what you need until you try it. Web apps are tools, and tools shape what we make with them, in more than one way.

This can lead to beautiful discoveries. It can just as easily be constricting. Choose your platform wisely.

Tags: website, software

Comments? Tweet  

Too simple

16 August 2018 — Felix Pleşoianu

After writing yesterday's post, I realized that 1000 articles in one BashBlog instance would be a problem after all, but not for the reason other users thereof seem to think. Rather, the bottleneck would be having to deal with over 2000 files in one folder, none of which you can move without breaking things. It seems, then, that the ideal time to archive the whole thing and start again would be one year if you post once or twice a week, or a month if you post thrice a day. Which just so happens to coincide with how blog archives are traditionally organized. With BashBlog, you just have to do it manually. But that's as simple as shuffling around some files, one folder at a time, and on the plus side you're in control the entire time.

It seems there are downsides to radical simplicity after all. But on the flipside, those downsides open up new possibilities. You just have to go with the flow and figure out how best to use each tool at your disposal. That's why you have more than one after all.

Speaking of which: is a hammer too simple? A screwdriver? A cleaver? A pair of pliers? Radical simplicity has been the default state of tools ever since we started using tools. The creators of Unix still remembered this principle. Those who came after them? Not so much. Modern computing has skewed our perception of what "simple" means, and that's why it's all such a mess today.

Tags: blog, philosophy, software

Comments? Tweet  

Unmaintained does not mean obsolete

15 August 2018 — Felix Pleşoianu

There's a mentality going around, especially in open source circles, that if a piece of software hasn't had a release in recent months, that must mean it's broken, insecure and incapable of talking to newer systems. And that's just nuts.

BashBlog, the software generating this web page, hasn't had a release since the spring of 2016. So? Do you have any trouble reading right now? Anything else wrong with it? Perhaps a security issue? Could have one, if I was using one of the supported 3rd-party services, which I don't. As for other complaints people have, judge for yourself:

"BashBlog should start using the HTML5 document type."

Why? Has the XHTML standard been deprecated in the past year or two? I didn't think so. Leave good enough alone.

"But... but... modern markup such as <header> and <footer>."

Why, you think search engines can't figure out what you mean by <div class="header">? And it's still perfectly valid markup.

"There's no pagination! What happens once you have 1000 posts listed on the archive page?"

Then your archive page will still be not much bigger than 150 kilobytes. That's a little bigger than my webcomic list, and tiny compared to most webpages today. To keep it from growing even more, you can always move the existing blog to another directory, then start anew. And no, you won't have to do that too often. If you post once per day, 1K posts will take 33 months to accumulate. That's nearly three years.

Sure, there are small additions I'm tempted to make, like screen reader hints or adding rel="tag" to the appropriate links. But are they worth the trouble? Clean, functional markup helps screen readers more than you think, and again, search engines can likely guess what it means when a page name begins with "tag". Similarly, OpenGraph metadata would be useful, but plenty of apps and services also read Twitter cards in a pinch. Hardly ideal, but it works.

If you worry about maintaining a piece of software, adding new features is a surefire way to also introduce new bugs. In other words, to require even more maintenance shortly. Make sure to weigh the costs versus benefits first.

P.S. (a few days later) Here's a very similar thought recently expressed by the founder of write.as, a service I've been paying attention to as of late.

Tags: blog, software

Comments? Tweet