The Missing Links
Even if people don't go out as much these days, physical addresses are still very much recognizable to us. Although they're not perfect information, give me a city, a street name and a number and I may be able to find that location you wanted to share with me. This is an important part of public spaces, anyone can share a reference to a place with another person. We're also familiar with phone numbers, although we're not so sure about them. First, they were very much associated with physical ad...
Read post
Community home-made automations for Discord
Niche communities have an upside to being niche: you can (and maybe should) explore options that don't need to scale very much. My own experience with organising people around a small hobby has revolved around tabletop role-playing games (TTRPGs) in my country and city. If you never heard of TTRPGs, all you need to know is that they're the tabletop predecessor of computer RPGs, you can play them face-to-face but also online. For this hobby, the most recent community initiative I've been involved...
Read post
The Long Tail making a comeback on TikTok
When e-commerce began to flourish, the concept of the Long Tail was used to describe how digital businesses can focus on a wide variety of products or services with almost no customers. The basic idea is that you can leverage the scale of the internet to make money by selling to many tiny groups of consumers. Since they are under-served, you can attract a lot of these niche groups and profit from the almost infinite length of the Long Tail. The obvious example is Amazon. Everything that is too o...
Read post
Don't let your events go to waste
We may not talk much about how people sit on the fence of environmental issues, but we're probably aware that we're letting ourselves fall short. Specially when it envolves people who do have the means to make better decisions in how we affect our environment. We still organise our work and our holidays around consuming fossil fuels. We still eat more meat per person than humanity ever has. And we still use too many occasions as an excuse to generate paper and plastic bits that inevitably end up...
Read post
Advent of Deno, Typescript and Code
Advent of Code is a seasonal series of daily programming puzzles that can be solved in any language you choose to use. People can enjoy taking part in this yearly event in many ways: as a speed contest, interview prep, company training, university coursework, practice problems, or to challenge each other. In 2021 I decided to give it a go for the first time, as I believe it's the kind of thing you can only understand by engaging with the event. I expected it to be difficult to keep up with the c...
Read post
Crafting events in people's screens
No matter when you came to be online, you've had the opportunity to encounter what I like to call digital craftsmanship. Building cool online experiences is not a lost art. You may have recently heard of Wordle, a simple web game made by a developer as a gift for a loved one. It has been a huge success and is therefore an easy example to reach for, but massive adoption is not what digital craftsmanship is about. The internet reaches almost everyone through massified channels and commodified cont...
Read post
Scaling socket.io across multiple nodes
Real-time web interactions are an interesting challenge that stays relevant as developers gravitate between single-page applications, server-rendered pages and everything in between. Websockets are a possible solution for interacting live with your users, specially if server sent events are not enough and polling at some sustainable interval is too slow. One popular client-server library built on top of NodeJS and Express is Socket.io, which not only implements websockets but also falls back nea...
Read post
The mixed bags of online events
I imagine that a lot of people have experienced much more online events in the past year. Now, alongside the wide variety that events offer by their very diverse nature, there are also a lot of different tech solutions that people reach for when putting their event together. I've seen online events that are very e-mail driven while others rely on live chat. Some are pretty much just a video playlist published at a specific time while others focus on interacting with the audience at the lowest st...
Read post
Passwords cross all boundaries, how can we manage them?
Passwords are a great solution and a huge problem. People use them every day, not only as a way to claim ownership of services and products, but also to share that access with other people they trust. Passwords are great because they stand outside everything. You're not forced to have service A in order to access service B. Passwords are portable, platform agnostic and not tied to a particular identity. Allow me to stress this aspect because you'll not hear it mentioned by corporations that are ...
Read post
Pseudonymity: are we to walk down digital streets with our names tattooed on our foreheads?
When we arrive late to a meeting where people expect us to say something, most of us listen for a while before trying to contribute. Eventually, we may realize that the meeting has progressed far beyond what we are able or willing to understand fully. And yet there's a need to come together, so what do we say? Some people can be the first to speak out by disregarding what they don't know and focusing on the obvious potential solutions. By doing so, they can derail the rest of the meeting, specia...
Read post
I tried very hard not to like my first Macbook
Due to personal circumstances that forced me to pull the trigger on my decision to eventually get a good ultrabook, I recently got the M1 Macbook Air. I'm quite happy with it, but not so happy with having purchased it. It was a combination of being pressed for time and having few viable options for my country of Portugal. Readers of this blog already know a few of the problems I have with Apple and I usually do like to vote with my wallet. Nevertheless, this laptop matches very well with what I ...
Read post
Hybrid events and my first FOSDEM
Events moving towards online has become one of the definitive trends of the decade. Not that people want to stay home, but once we've been forced to, the advantages become evident. Any event can reach out beyond its usual physical time and space to bring more people together. Even if nothing can beat the hallway track of a fully-present context, I don't believe the online facet of large events can just go away now, specially when video-on-demand allows us to go back to any content we'd like to w...
Read post
iOS devs working as unpaid salesmen for Apple
One of the ways through which Apple has posted new records in their services revenue is by having you buy a developer account and then forcing you to make other people buy developer accounts. How does that work? Well, let's turn this around and say that you're not a developer in any shape or form. Your job is, I don't know, geologist or something. You're the president of the geology society in your country. And every year you have a couple of meet-ups that involve a few thousands associates, st...
Read post
PHP Upgrade Story: Four Lessons Learned
Back at the day job, we have your usual PHP code base that runs a lot of the business and we needed an upgrade from 5 to 7. Business involves a variety of small to large services plus different one-time projects that may require maintenance. So, upgrading had to be a gradual process of isolating a domain that could be upgraded, making/testing changes and benchmarking PHP performance. I've already written about a specific challenge with database encoding that was probably the most difficult and t...
Read post
My Love Story with Podcasts
Playable on-demand broadcasts (podcasts) are a simple case of people using open technologies to come together over a new medium that should be accessible to everyone. They are my favorite example not only of how useful RSS feeds can be, but also of the evolution towards audio files that are small, sound good and can be easy to catalog. Pretty much anyone with a laptop can record a podcast, the challenge as always is distribution. But the thing about just having a file that people want to listen ...
Read post
Our online lives lack context, they should also lack friction
It's an understatement to say that humans are complicated creatures. How we function depends on more than facts and feelings. We also respond to what is left unsaid and we act according to how we imagine that we'll be perceived by others. Even without other people, we still don't exist in a vacuum, inevitably we are influenced by time and space. Like all biological creatures, we have cycles that are naturally sensitive to the time of day. And, if you step through a doorway, that change in space...
Read post
Do hybrid app frameworks focus on the right problems?
If we could start counting mobile apps on the stores, we would probably see that many of them are, first and foremost, a branding exercise that the current open web cannot satisfy. Institutions want you to have their icon on your pocket and to push notifications into your lock screen. And given how adoption of the internet has been based on ignorance of how it works, people don't know and don't care about the difference between Android, iOS and the web. I mean, users implicitly care about the di...
Read post
Reduce method in JavaScript arrays: useful but maybe hard to review?
One of the best things about JavaScript nowadays is that you can just type "MDN" next to whatever you want to know in your search box and you will get very nice documentation from the Mozilla Developer Network. However, if you go through Array.prototype.reduce(), your initial impression may be "I guess I understand how it works, but what is this good for? Adding numbers, I guess?" So let's take a quick overview on how to reduce an array. Let's say I have a bunch of errors that I want to display ...
Read post
Why I use Vim and suck at it
About half a dozen years ago, I was between jobs and had a whole month of August to invest in whatever I wanted to do. So I decided that some of that time should go into learning some coding tool, some skill that could pay-off on the long term. I chose Vim for several reasons, the main one being ergonomics. For me, this is the question of "how is it even possible to consider coding every day for hours?" There are fundamental issues of back and wrist pain that everyone experiences at least once i...
Read post
How Slack kind of taught me how to make my first bot
Despite having its flaws, real-time chat has become an essential part of my day job. In particular, the mix of features Slack offers was there for us when we needed them. However, it's software aimed at corporations, specially in terms of pricing. Small companies frequently need to involve outside contacts and getting priced per user is a weird reminder that your bill goes up if some friend of the company says "hi". Ironically, the free tier is less stressful and more flexible than having to pay...
Read post
PHP Upgrade Story: No Data Left Behind
Adjacent problems that weigh you down as you tackle some tech challenge are often as important as that specific tech. I have a PHP upgrade story from version 5 to 7 that illustrates this, showing just another way legacy code can cause issues for years. But it's not really about PHP code, as the codebase was mostly compatible to make the jump from 5.4 to 7.x (eventually 7.3). And when I say mostly compatible, this part of the story is really just about going between the two MySQL extensions, from...
Read post