Felix Rambles

Another step to taking back control

Browser bookmarks, the buried bounty

23 September 2018 — Felix Pleşoianu

I have too many browser bookmarks.

Comes with the territory, you see. Between relatively varied interests and too much time spent online, it was inevitable that over the years I'd end up bookmarking lots and lots of pages. That wouldn't be a problem... if I ever went back to them. And that hardly ever happens.

When the issue first became apparent, my first idea was to try a social bookmarking service. Those are fun at least: you get to see how many other people bookmarked the same page (without knowing of each other), and who else tags their bookmarks the same way you do. Which in turn can lead to finding more cool web pages.

Trouble is, my choice at the time was Magnolia. When the service's one server crashed hard with no backup, starting over elsewhere suddenly looked like a terrible proposition. Sure enough, bigger brands also shut down since then.

So what else is there? A couple of years ago I tried to put some semblance of order in my still-private collection and see what was there. After all, it's no different than rifling through a box of old photos, right? Well, thanks to a horrid user interface, I deleted an entire folder of links with no recourse. Luckily it was indeed just cute animal photos, but that soured me on the whole idea again.

About 18 months ago I became aware of a little web app called Shaarli, that would have been a dream come true in the past. But after being burned by security issues, from spammers to crackers, yet another live web app is the last thing I want on my sites, even if it was easy to find it a good place.

Meanwhile, the link catalog on my gamedev wiki has been shaping up nicely, especially once I got it out of the gilded cage called WordPress. Yet more links can be found in the newsletter, where they served as discussion starters over the past few years. And there's still more of them buried in my browser's bookmark manager.

Not all of them should be public, of course. Going to figure something out about those. A few can go in the "see also" section of various special interest pages already on my website. As for the rest... it remains to be seen.

One thing is certain: the bookmark managers still used in browsers today were designed back when the web was tiny, and never reconsidered since then. They simply don't cut it anymore. Find a better home for all those links while you can.

Tags: website, 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  

Ramblings about Java

12 September 2018 — Felix Pleşoianu

So, the other day me and a bunch of other people were discussing programming languages on Discord. We happen to have a very knowledgeable person in that group, who pointed us at an epic rant they wrote some three years ago (it seems) on why Java is bad for you. Having some experience with the language myself, that resonated with me.

One place where I disagree with Mr. Mallett: the thought of prototyping software in Java is terrifying to me. Spending hours thinking how to formulate something in hundreds of lines of code just to throw it out? In Python, I spend that time thinking what to formulate, exactly. The code is often a one-liner. No, seriously. Java, with its endless chains of public static void eeny meeny miny moe... is anthithetical to experimentation.

Also, is it a surprise that Java is slower than C++? It's running in a virtual machine, FFS! Sure, it uses JIT compilation to make native code... for parts of your program... after noticing certain patterns. It works great for specific things, such as running the same script repeatedly in a simple interpreter. But take it out of its comfort zone, and you might just as well code in Lua. The same thing happens with Javascript, which can rival native code in highly contrived applications written by the same people who made the VM and compiler. Gee, thanks. And yes, I was naive too once.

Moving on, if you think Java programmers are ignorant, try PHP programmers. I once had to teach a former colleague that when a script keeps running out of memory, it just might be from too many database queries with not a call to mysql_free_result. Surprise, dear young programmers! Your computers do not, in fact, have unlimited resources, and the garbage collector can't take care of everything. And speaking of PHP, that's another terrible language for beginners, because while it's easy to pick up it also teaches you nothing about the hardware that will struggle to run your code, while encouraging terrible coding practices, regarding security in particular.

Oh by the way: I'm pretty sure interfaces in Java were meant to enforce type discipline. Like Pascal before it, it's a language designed to protect people from themselves by leaving them handcuffed in the path of a flash flood. Which is exactly why teachers love it: many teachers, you see, think their students are mentally challenged subhumans who can't possibly be allowed to do their own thing.

Except, of course, in Java you can easily just declare everything as an Object and make the language dynamically typed in essence.

I'd better stop before this gets too long. Go read the original rant.

Tags: programming, education

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  

Thoughtfulness is radical

01 September 2018 — Felix Pleşoianu

I've recently taken to writing down my thoughts in a little paper notebook before posting them to Twitter or Mastodon. A6 pages are just the right size, and it forces me to think hard before blurting out my thoughts online, possibly hurting someone. Hadn't realized what a special thing it was until someone snarkily replied to my suggestion that long-form blogging is due for a comeback by asking, "why not go back to hand-written letters while we're at it?"

Speaking of which: it's essentially impossible to post something on the Diaspora network without getting at least one snarky or angry reply. Sometimes entire flamewars in the comments, that you can only watch helplessly, unless you delete your original post altogether. Turing forbid you actually try to defend or clarify your position, or otherwise interact with the oh-so-smart techie brodudes you've just riled up. It happens elsewhere, too, but only in that particular online neighborhood does it seem to be the norm.

In 2018, giving yourself some time to consider your next words is a radical act.

Let's do it, then. Let's show people what it was like before the tweetstorm had replaced taking the time to formulate a coherent discourse. I'm not talking academic levels of intellectual rigor. Just a modicum of consideration. For your audience. For your ideas. For yourself.

Amazing what difference it makes when you have a literal filter. Handwriting is more laborious, and serves as a first draft, too. And if you notice your draft swelling beyond tweet size, you know it's time to hunker down and write a proper blog post. Don't have a blog? Use a pastebin, and post just the link on social media. Better yet, do yourself a favor and get a proper home on the web. One people can choose when to visit, instead of hearing you trumpet over the rooftops, whether they feel like it or not at the moment.

You don't have to turn off your smartphone. You don't have to give up immediacy. You won't die of boredom if your gratification is a little less than instant.

The internet wants you to be a Pinocchio on Pleasure Island. You know how that ends.

Tags: blog, philosophy, 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