Felix Rambles

Another step to taking back control

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.


Tags: software, technology, website

Comments? Tweet  

Programming languages are not a given

14 February 2019 — Felix Pleşoianu

Having just brought a project to a good stopping point, and wanting to rest a little before diving into the next one, no matter how impatient I am, it occurs to me that this blog needs a little love. By pure coincidence, it's Valentine's Day. And because I happen to be in love with the craft of programming, it seems like a good idea to write down a bunch of thoughts that went through my mind a lot recently.

Most programming language research for at least the past decade seems to happen in the rarefied heights of type theory. Hardly anyone can be bothered to spare a thought for the syntax and API of languages programmers have to use in real-world conditions. Never mind the ease of implementing compilers and interpreters that someone will have to, you know, maintain. And so we're stuck with variations on the hoary old C syntax. Even when a daring computer scientist comes along to bring us something like Lua, people balk and go right back to their familiar punctuation soup.

(Speaking of which: don't you dare mock Perl programmers. They at least know to be wary of "line noise" code, and actively try to avoid it. Whereas C code often resembles APL in production.)

I've been interested in programming language implementation for ten years now, though I could never read more than half of SICP even after repeated attempts, and never progressed past interpreters and transpilers. These efforts culminated in a 2016 book, and more recently a 2K-word article, itself the culmination of many attempts, some successful, some failed. You can see the latest results for yourselves. Let me just point out a few things.

We need to think more and deeply about our most important tools. Not just packaging, build and deployment systems: those wouldn't have anything to work with if it wasn't for interpreters and compilers with which to make software in the first place. And communities of practice are lacking. There is an esoteric language wiki and a concatenative language wiki; the Tclers Wiki and the Portland Pattern Repository also have much on (types of) programming languages. All that is good.

However I couldn't seem to find a community of practice for Lisp-like languages, even though it's one of the most numerous families on Earth. Let alone for the more general category of homoiconic languages, or prefix-notation languages. There used to be one for Basic dialects, but it shut down, as that particular family has been dying out.

More importantly, with all the people out there who would benefit from knowing how to program but are afraid of it because reasons, I'd like to see a deliberate community of practice for friendly languages that don't look like programming. Purely declarative languages would help a lot here, but those crashed and burned along with Prolog. There are some visual languages, but they're big systems (and that's a problem, see above), fiddly to work with and give people the wrong idea.

Either way, please spend some time looking into the issue. You could end up doing everyone a big service.

Tags: programming, philosophy

Comments? Tweet  

Gender, sexuality and history

17 January 2019 — Felix Pleşoianu

It's easy to believe in the myth (born from Victorian arrogance) of linear and infinite progress that's all but inevitable. A comforting one, as I was pointing out elsewhere, because if progress is like that it means we don't have to lift a finger for it to happen, and possibly make mistakes that ruin lives. No risk of having to be responsible for bad things on the way there.

This myth most noticeably comes up when it gets to matters of gender and sexuality. We love to think ourselves progressive in those regards. Too bad solid historical evidence proves again and again that in the 19th and especially 20th century western civilization in fact regressed massively.

We have for instance evidence of gay marriage in the year 100 AD, and I mean in Christian Europe, not some distant exotic culture. Even more recently, after it was banned, the secret history of same-sex marriage continued. People of the same sex would even disguise themselves as groom and bride, not so much in the hope they'd fool anyone, but more likely to provide the minister and atendees with plausible deniability. Even while that happened, for the longest time men were still unafraid to show their affection to each other through physical contact... until they no longer were.

And while certain things became, when not forbidden, at least taboo, a wave of revisionism swept the western world, and from there spread all over. Here's for instance How Onna-Bugeisha, Feudal Japan's Women Samurai, Were Erased From History. Then again, the same happened in Europe, as told in a book called “‘We Have Always Fought’: Challenging the ‘Women, Cattle and Slaves’ Narrative” by Kameron Hurley. Not that it's news for anyone in Romania: in my birth city still stands a magnificent statue of Ecaterina Teodoroiu, who enlisted to fight in WW1 despite being a woman, and was field-promoted all the way to lieutenant before falling in battle. While leading a charge, I might add.

Last but not least, while on the topic of gender roles, we have a story from a few years ago about the way in the Ancient world it was acceptable to change them through cross-dressing when needed. Much like in a certain videogame that took the world by storm last spring. You've guessed it, I mean Breath of the Wild. Which isn't at all surprising once you learn that Japanese geisha could easily be men as well as women... (And in fact they still can, as the art never died out.)

We're well into the 21st century now, but instead of the progress we were promised, the world is barely crawling its way back to what used to be normality. Oh well.

Tags: culture, society, history

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.


Tags: website, software, review

Comments? Tweet  

Accepting contributions to open source projects

05 January 2019 — Felix Pleşoianu

Hopefully this doesn't count as subtweeting. A chat conversation I just had caused me to go on a big rant, and to me that's usually a sign it's time for a proper blog post. In this case, about accepting contributions to open source projects.

To be brief: with open source projects, people use up their precious spare time, that they're not getting back, to make a contribution. They can be clumsy. They can be wrong. They're still almost certainly doing it in earnest. The code they submit might be not be how you'd do it. It might have bugs or even be completely broken. Doesn't matter. Be nice! If you have plans to accept it at all, work with the contributor to make their submission acceptable. Even if contributions are closed, kindly explain why.

It's disappointing enough to be told off in the nicest way. They won't offer again, and you've lost a potential contributor for good. I made that mistake. Now all I can do is weep.

Years ago a very enthusiastic college student sent me an extensive patch that wasn't even usable as it was. If memory serves, the code was outright broken. I rolled up my sleeves and made it work. The app was that much better for it. People noticed, too. He was apparently well-known in that particular community. The goodwill earned that way lasted me a long time.

Did it take extra work on my part? Of course. Was it worth more than the kid's? Never! That piece of my app wouldn't exist but for him spurring me on.

More recently someone offered to help me who has a competing product of their own. They went out of their way to help a competitor. And came back with a counter-proposal when the first one didn't work out for me. That's how much effort people are willing to put in when they love what they do. Taking the trouble to accept it was the least I could do. Now there are two applications with that particular capability. The world is richer for it. Everybody won.

Even the most competent surgeon needs assistants willing to work with them, if they are to operate at all. We programmers... are a dime a dozen. And people are fed up with us as it is.

Tags: programming, culture

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.


Tags: blog, software, review

Comments? Tweet  


01 January 2019 — Felix Pleşoianu

I made a terrible miscalculation.

When this blog had just started, the plan was to move old entries to a numbered subdirectory on New Year, and start over. It took me a surprising amount of time to realize that would break all the links so far. Oops!

My next idea was to leave old entries in place and start over in a numbered subdirectory instead. Too bad that would mean the newsfeed in this directory would never update again, leaving readers who are already subscribed to it thinking the blog had been abandoned. Oops again!

(I could set up a redirect, but it's easy to lose track of those and mess up somewhere down the road.)

Good thing it was already decided to slow down as of this year, because I seem to be stuck continuing right here. Oh well. This shouldn't become a problem for another four to five years if my new calculations are correct. And by then this blog will have existed for enough time that rebooting it would make sense anyway.

Until then, I'd like to make 2019 the year when we all become more thoughtful about our online presence, as opposed to spouting half-baked quips on corporate social media designed to keep us enraged, pardon, engaged for the purpose of selling more ad space on our backs. That could mean returning to old-fashioned blogs. Or it could mean innovating on the concept. Hopefully not for the sake of innovation though, because just like books, the now-familiar blog format is damn near close to perfect.

Thanks for sticking with me so far. With any luck, things will only get better.

Tags: blog, philosophy

Comments? Tweet  

Holidays and hopes

25 December 2018 — Felix Pleşoianu

Merry Christmas! As the year winds down, it's traditional to stop for a while and look back, so that we can figure out where we are, not to mention where we can go from here. The moment is arbitrary, yes, but since we must turn a new page anyway, might as well do it around the end-of-year holidays.

Too bad things look pretty damn bad in either direction. 2018 has been yet another terrible year, full of stress and disappointments, both for me and some friends I had to let down. In fact, one of my reasons for starting this blog has been to vent without resorting to tweet storms. (Don't do tweet storms. Please. Get a blog.) And even that rings hollow. Everything does when you're lonely.

Worse, there's every reason to believe things will get worse, perhaps much worse, before they start getting better again. No, 2019 won't break the recent bad streak. On the contrary. Politics, economy and climate, the three horsemen of the new apocalypse, are galloping across the face of the Earth. That many people seem to be waking up at last can only have limited impact by now. We've waited way too long.

So much for hopes. Then again, I always hated the concept of hope. Hope is what you have when you're in deep shit and powerless to do anything about it. In other words, a synonym for delusion.

So much for the holiday spirit, too. I hate myself right now. But it's better than lying to myself, and you, about the future.

What can we do, then? Why, cling to the only things we ever had: live, stick together and be good people. Experience, create, enjoy. Make things as good as we can, for as many people as we can, until we can do no more. Sounds radical? It is! Arguably, it has been for my entire life. And by now we have nothing left to lose.

As for this blog, expect fewer posts and more pictures. Less venting and more joy. Cool things. Geeky things.

Be well and enjoy the celebrations, everyone.

Tags: personal, blog

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.


Tags: blog, software, review

Comments? Tweet  

Not hacker ethics, but human ethics

16 December 2018 — Felix Pleşoianu

Say you're a hacker, and you have this roommate who always locks their room when leaving home. One day they leave without returning an item you need. What do you do?

  1. Pick the lock, recover your item and leave, locking the door again behind you.
  2. Also snoop through their things, but without disturbing or breaking anything.
  3. On top of that, leave them a note pointing out that they need a better lock.

Trick question! The only acceptable answer is, you don't go in even if the door is unlocked. Even if there's a genuine emergency, of the building-on-fire variety, you at least try to call and announce that you were forced to do it by immediate physical danger. Even if you suspect your roommate is a thief who stole your item, you call the police on them. Not because it's what the law says, but because you're a part of society, and society can't function unless we can trust each other at least a little bit. As I was tweeting nearly three weeks ago:

Hey, geeks: if you're at a hacker event and someone next to you leaves their laptop unlocked...

...don't touch it! Would you rifle through their bag, too? After all, they could use a padlock if they wanted privacy.

It's called common courtesy and basic trust. You're welcome.

Which is not a theoretical, but something that happened to me in real life (the laptop part, not the bag part), and contributed to my mistrust in the sort of people who frequent Linux user groups. In particular, their maturity level.

The very concept of "hacker ethics" is a red herring at best, and quite possibly dangerous. Hackers operate in the real world, dealing with real people within a social framework. They're not some special caste exempt from certain rules just because the digital (or virtual if you prefer) is less palpable. If anything, they must be more careful than the rest of us because, much like doctors, they can more easily hurt more people. And there's no Hacker's Oath. Maybe there should be. Then we could talk about a meaningful ethical framework for them.

And please don't serve me the tired excuse that "bad guys don't play by the rules". Precisely! That's part of what makes them bad guys. You can't fight them by becoming one of them any more than you can fight fire with fire.

Rules can and should be broken sometimes. The trick is knowing when not to do it. And too many people who call themselves hackers are just overgrown immature boys, playing with sticks bigger than they can safely control. Let's fix that first.

Tags: society, technology, philosophy

Comments? Tweet