Stream

This is a mirror of my tweets in an attempt to follow the indieweb movement.

December 7, 2024

There is a cognitive bias known as the curse of knowledge, which occurs when one assumes that others possess the same level of knowledge during communication.

This phenomenon is quite common in software development. People who have experience writing certain types of code and those who don’t often struggle to communicate effectively, even if they share the same theoretical foundation (algorithms, programming languages, or domain knowledge). The reason for this lies in the significant flexibility of software engineering; there are multiple ways to implement the same functionality, each with its own set of challenges.

To eliminate such communication barriers, various technical fields have developed their own set of idioms or design patterns. New projects built on these practices can avoid a lot of unnecessary trouble. The same is true for the field of databases; however, due to its niche nature and high degree of commercialization, knowledge circulated among the public is very scarce, and engineering practices are scattered across various open-source projects.

In this article, I will build a SQL IR from scratch based on my own best practices, which will facilitate the progressive sharing of some design considerations.

From What I Talk About When I Talk About Query Optimizer (Part 1): IR Design

December 7, 2024

To break from talking about actual DNS features, check out this little snippet instead:

dig +short TXT {0..92}.vid.demo.servfail.network | sed 's/[" ]*//g' | base64 -d | mpv -

Requires bind-tools, mpv. If it doesn’t work, try adding @8.8.8.8 just after dig, or replace mpv with ffplay

From SERVFAIL: the first 100 days

December 6, 2024

You have a unique voice that others donā€™t have. Not everyone learns best from the top teacher out there, not everyone enjoys the writing of the most prolific blogger you know, and not everyone uses the most popular app for their problem. You donā€™t know who might benefit from what you offer, and you wonā€™t know until you go for it!

From Ship it anyway

December 6, 2024

But they should not be afraid! Libraries are not magic. They are just code someone else wrote. After all, I pasted the entirety of is-number above, and nothing in there is too mysterious. And beyond librariesā€”languages are not magic, operating systems are not magic, nothing is magic. Dig into the source code and you will find code you can read and understand.

If you are a proponent of tiny libraries, I encourage you to overcome your fear and try writing the code yourself. You are more capable than you think.

From Micro-libraries need to die already | Ben Visness

December 6, 2024

But this stuff right hereā€”adding things that never happened to a pictureā€”thatā€™s immoral because confusion and deception is the point of this product. There are only shady applications for it. Looking at a lot of the examples here I canā€™t tell whatā€™s real without inspecting themā€”the crashed motorcycle has a bicycle tire for example but man I would never look this closely in most situations.

So right now I think this stuff should be straight up illegal.

From No oneā€™s ready for this

December 4, 2024

Communities function like that Tamagotchi. You canā€™t play with them until you feed them and care for them. Unless you keep those health and happiness meters high, they will not behave in the ways youā€™d like them to, potentially undermining your efforts and investments.

This goes for any community. Whether it is one you created and managed for your product or open source project or one that previously existed (though especially the latter).

One of the fun aspects of the Tamagotchi was that it could be unpredictable. They had personalities and they evolved in stages, which also affected their behavior. You had to invest time and effort to care for the Tamagotchi, but the outcome was unpredictable because the personality was intrinsic to the specific Tamagotchi and not something you could control.

In much the same way communities tend to have a personality. Existing communities will have already established one that you need to invest time to understand and adapt to.

Instead of tracking the outputs, track the inputs. What are the activities we did to foster the community this month?

Done right, community efforts can pay off immensely

From Remote Synthesis | Community is a Tamagotchi

December 3, 2024

File over app is a self-guaranteeing promise. If files are in your control, in an open format, you can use those files in another app at any time. Not an export. The exact same files. Itā€™s good practice to test this with any self-proclaimed file-over-app app you use.

ā€œStainless steelā€ is a self-guaranteeing promise. You can test it yourself on any tool that makes this promise, and the stainlessness of the steel cannot be withdrawn.

Terms and policies are not self-guaranteeing. A company may promise the privacy of your data, but those policies can change at any time. Changes can retroactively affect data you have spent years putting into the tool. Examples: Google, Zoom, Dropbox, Tumblr, Slack, Adobe, Figma.

A self-guaranteeing promise about privacy gives you proof that the tool cannot access your data in the first place.

Encoding values into a governance structure is not self-guaranteeing. Given enough motivation, the corporate structure can be reversed. The structure is not in your hands. Example: OpenAI.

From Self-guaranteeing promises ā€” Steph Ango

December 2, 2024

However, these tools arenā€™t necessarily faster because theyā€™re using a faster language. They could just be faster because 1) theyā€™re being written with performance in mind, and 2) the API surface is already settled, so the authors donā€™t have to spend development time tinkering with the overall design. Heck, you donā€™t even need to write tests! Just use the existing test suite from the previous tool.

In my career, Iā€™ve often seen a rewrite from A to B resulting in a speed boost, followed by the triumphant claim that B is faster than A. However, as Ryan Carniato points out, a rewrite is often faster just because itā€™s a rewrite ā€“ you know more the second time around, youā€™re paying more attention to perf, etc.

In the world of Node.js scripts, we donā€™t get the benefits of the bytecode cache at all. Every time you run a Node script, the entire script has to be parsed and compiled from scratch. This is a big reason for the reported perf wins between JavaScript and non-JavaScript tooling.

Most developers ignore the fact that they have the skills to debug/fix/modify their dependencies. They are not maintained by unknown demigods but by fellow developers.

This breaks down if JavaScript library authors are using languages that are different (and more difficult!) than JavaScript. They may as well be demigods!

For another thing: itā€™s straightforward to modify JavaScript dependencies locally. Iā€™ve often tweaked something in my local node_modules folder when Iā€™m trying to track down a bug or work on a feature in a library I depend on. Whereas if itā€™s written in a native language, Iā€™d need to check out the source code and compile it myself ā€“ a big barrier to entry.

That said, I donā€™t think that JavaScript is inherently slow, or that weā€™ve exhausted all the possibilities for improving it. Sometimes I look at truly perf-focused JavaScript, such as the recent improvements to the Chromium DevTools using mind-blowing techniques like using Uint8Arrays as bit vectors, and I feel that weā€™ve barely scratched the surface.

I also think that, as a community, we have not really grappled with what the world would look like if we relegate JavaScript tooling to an elite priesthood of Rust and Zig developers. I can imagine the average JavaScript developer feeling completely hopeless every time thereā€™s a bug in one of their build tools. Rather than empowering the next generation of web developers to achieve more, we might be training them for a career of learned helplessness. Imagine what it will feel like for the average junior developer to face a segfault rather than a familiar JavaScript Error.

From Why Iā€™m skeptical of rewriting JavaScript tools in ā€œfasterā€ languages | Read the Tea Leaves

December 1, 2024

The truth is that there is kind of a lot of detail to all of it. But also, detail ultimately just means it is a slog. x86 has a scrillion opcodes to implement, win32 has scrillion APIs, but the path from zero to a scrillion starts with a step like any other.

“Good things happen when I try hard to chase my sense of excitement, ignoring impulses to produce legible outcomes.” I think that observation about legibility really reached me. I went through a period in the past where I found I was only reading books that I felt like I ought to be reading and had ultimately been killing my enjoyment of reading, and I was trying to recover that feeling about programming.

Also, had I known I would need to implement some of MMX, would I have even started this project? Not even sure. I have seen it observed that sometimes not knowing how hard something will be is an important help to actually just starting to try.

I have sometimes thought about this: what are the chances of someone having both the low-level skill set needed to usefully contribute, and also the need to emulate an old Windows program? This is to me one of the best things about the internet, where even if such a person is a one in a billion chance, we have a few billion people around on here.

From Tech Notes: retrowin32, two years in

November 30, 2024

The year is 2005. You’re blasting a pirated mp3 of “Feel Good Inc” and chugging vanilla coke while updating your website.

Itā€™s just a simple change, so you log on via FTP, edit your style.css file, hit save - and reload the page to see your changes live.

Now listen, I really donā€™t want to go back to doing live updates in production. That can get painful real fast. But I think itā€™s amazing when the files you see in your code editor are exactly the same files that are delivered to the browser. No compilation, no node process, no build step. Just edit, save, boom.

Funnily enough, many build tools advertise their superior ā€œDeveloper Experienceā€ (DX). For my money, thereā€™s no better DX than shipping code straight to the browser and not having to worry about some cryptic node_modules error in between.

So, can we all ditch our build tools soon? Probably not.

From Going Buildless | Max Bƶck

November 30, 2024

You see, people on the Web think conventions are boring. That regular controls need to be reinvented and redesigned. They donā€™t believe there are any norms.

Anyway, with Appleā€™s betrayal, I think itā€™s fair to say thereā€™s no hope for this tradition to continue.

From In Loving Memory of Square Checkbox @ tonsky.me

November 30, 2024

I donā€™t necessarily believe that everyone can have a job or even a career that makes them spring out of bed in the morning and gives them creative satisfaction in their day-to-day. Ultimately we live under late-stage capitalism, and I certainly couldnā€™t afford my house (or indeed any house) if I dedicated my life to, say, running choirs.

So I get my creative energy and joy from elsewhere. Iā€™m fiercely protective of my free time, even if itā€™s just spent horizontal on the sofa playing video games. When the working day is done, I have creative pursuits that bring me joy and put art into the world in their own little way.

Art is in the weird and wonderful websites I make occasionally, which bring people (including myself!) a moment of joy when they land on them.

In a world of shit, creativity for creativityā€™s sake is radical.

I cant stress enough that last quote, So i will quote it again

In a world of shit, creativity for creativityā€™s sake is radical.

From The art in everyday life - localghost

November 30, 2024

There is no reason for AI generated output to be shared with humans online. There’s already so much on the internet created by humans ā€” so much that not only would I never be able to see it all, I will never understand just how much there is. All of us use our creativity to make things and share them with others in the hope for human connection. Badge saying “Created by a human with a heart”

From “Created by a human” badges - cadence’s weblog (personal blog)

November 29, 2024

Weā€™ve built incredible general-purpose computing devices with processing power to run circles around the big desktops I learned to program on. But the way we interface with them locks them up as devices for consumption, not creation.

Itā€™s not because I canā€™t use my phone for theseā€”I have! People usually like to bash iOS, saying things like, ā€œitā€™s just not possible to write the apps to do all this in the first placeā€¦ā€ but for me, all the apps actually exist! I drafted this whole post in a markdown app on my phone. Blink Shell gives me a whole Linux environment to build code, even on iOS. Tailscale lets me build a website at home and access it anywhere. GitHub, Gmail, and Google Docs all have mobile apps.

Rather, the reason I donā€™t is because itā€™s so unsatisfying. The disconnect between my speed of thought and my speed of action is grating, making it impossible to get into anything resembling a flow state. Like a runner stuck on a crowded sidewalk, Iā€™m constantly frustrated by the sputtering pace of progress.

From What if typing on phones was fast? ā€“ Jake Zimmerman

November 29, 2024

Robin Sloan coined these type of apps as home-cooked. Following his analogy, technically I am a professional chef but at home Iā€™m creating dishes that no one else has to like. All the stuff I have to care about at work - UX best practices, what our Community wants, or even the preferences of my bosses and colleagues re: code style and organisation can be left behind. Iā€™m free to make my own messed-up version of an apricot chicken toasted sandwich, and itā€™s delicious.

From Home-cooked web apps

November 29, 2024

Perhaps most well-known today for its jarringly out-of-place high-octane soundtrack by the inimitable Tim Follin, the game makes you play bizarre minigames to reveal a drawing, and then ā€” in traditional Pictionary fashion ā€” you have to guess what was drawn, against the clock.

A community quickly formed around ā€œCSS crimesā€, making all sorts of wonderful things by pushing the platformā€™s capabilities to the limit. Blackleā€™s CSS Puzzle Box remains one of the most impressive creations on the site. I took part in this phenomenon too, making a zoetrope that shows your browserā€™s refresh rate, a demoscene-esque twister, a recreation of the Star Wars opening sequence, a light hypnotic induction replicating the siteā€™s UI, and more.

With the easter egg drawings starting to show up, people naturally started enquiring about the possibility of submitting their own

Iā€™ve given a lot of thought to why the Pictionary bot in particular was so popular, and I think it ultimately comes down to the ā€œyes, andā€ posting culture of Cohost. This could have just been a bot posting drawings from the original NES game. But people latched onto it and made their own game out of it. People loved it so much they wanted to contribute back to it, for no other reward than getting to share their work with their friends. People formed a community around it, and Iā€™m so grateful that they did.

From The NES Pictionary Bot, In Memoriam Ā· Lunaā€™s Blog

I cant get over the main theme of the game, but a beautiful tale of how internet could still be a nice and beautiful place to share and hangout with others

November 29, 2024

Cheff kiss

November 29, 2024

And in that traffic, Iā€™ve started recognizing people I see every day. We donā€™t talk. Thereā€™s no handshake. Itā€™s not like weā€™ve technically ever met. We just happen to be in the same dense traffic at the same time on a regular basis.

From More Human Than Human - Geoff Graham

November 29, 2024

Iā€™ve enjoyed working with some of the most brilliant web engineers. All of them enjoy a good challenge. They want an excuse to flex some development muscle and show what they can do. In more than one case, the idea of using an existing tool, resource, platform, whatever, led to all-out shoutiong matches driven not by what the user wants, but by the unwillingness to back down from a challenge.

From ā€œWhere the people areā€ - Geoff Graham

November 28, 2024

Not in the notification feed, not in any sort of hover pop-over, no growth-hacking ā€œput follow buttons everywhereā€ nonsense, you basically had to visit someoneā€™s profile to follow them. It made the act of following much more intentional.

I want people to follow me naturally because they enjoy my posts in particular

From Online following and Starter Packs Ā· Lunaā€™s Blog

November 27, 2024

This is culture surveillance. No one notices, no one consents. But itā€™s not about catching criminals. Itā€™s about catching vibes. A constant feed of whatā€™s popping off in real-time.

From Note from September 30, 2024 | Chase McCoy

November 26, 2024

And it validates something Iā€™ve been complaining about ever since the concept of ā€œApp Storesā€ came up: this isnā€™t about user convenience, but about controlling the whole experience and keeping people in your app. Itā€™s ā€œtime spent in appā€ KPIs over and over again.

Speech recognition and speech synthesis is something we already have on the platform level. An app running on the platform should integrate with these instead of competing. As a user, I have spent a lot of time setting up my environment to fit my needs. And I spent time and money to install and buy solutions I like to use for various tasks. Apps should recognise my efforts to cater the experience to my wants and needs and not offer me a lesser experience and sell it as innovation.

From Kirby apps and regressive enhancements | Christian Heilmann

November 26, 2024

Having been in a startup situation where literally everything was deleted, you begin to understand that it ainā€™t all about the code we write. The ā€œoutputsā€; all the code, the designs, the processes, the testsā€”theyā€™re ultimately fleeting. It might be our choice, it might not, but itā€™ll all be replaced or removed in time.

But the relationships you make, the impact you have in colleagues’ & customers’ lives, and the growth that occurs in your professional journey outlasts any fork in the road.

From All code is fleeting | Trys Mudford

November 20, 2024

Good defaults make things easier to teach. They point to what the layout method is designed for. Flexbox is really designed for putting things into a line and distributing spare space. So that initial behaviour of putting all your things in a row is a great starting point for whatever you might want to do. It may be all you need to do. Itā€™s not difficult as a teacher to then unpack how to add space inside or outside items, align them, or make it a column rather than a row. Step by step, from the defaults.

From Masonry and good defaults ā€“ Rachel Andrew

November 19, 2024

Call me oldschool, or even stupid, but I find everything a lot more rewarding when I put some effort into it. Using a pen for writing feels good. Music sounds deeper from the spinning on the turntable record. The time it takes to develop an analogue camera film makes a picture more memorable. But all this is a story for another article.

From Combating mental AI fog | pawelgrzybek.com

November 18, 2024

Am I an analog girly, or am I just a snob?

Probably both. I feel like the more experienced and ā€œdeepā€ I get into tech, the more I retreat intoā€¦ low-tech. I enjoy pen and paper. I have fun with my typewriter. I want DVDs instead of streaming. I like using a point and shoot camera instead of just my phoneā€™s camera.

I like not relying on the internet or some level of availability to be entertained or to do tasks. I like owning the things I own, and not thinking about what algorithms are watching me back. I like not being interrupted by notifications when Iā€™m doing something.

From Analog girly

November 18, 2024

The result is bloated websites built by framework developers. And you can’t blame all the new developers for that. When all the job postings require framework experience, people joining the web dev world focus on becoming framework experts.

A dev knowing the web platform will produce great websites regardless of the tech stack. At the end, there’s “just” web stuff below all the framework magic, right?

From On being a “JavaScript framework developer”…

July 26, 2024

localghost.dev has a new theme! In search of a little project over the merrineum that didnā€™t require me to learn anything and therefore use my brain, I remembered there was a stylesheet hidden in the themes directory of my website that I hadnā€™t finished. The theme: teenage personal websites in the early 00s. It was a lot of fun to build, and really nostalgic to recreate the websites of my youth. Think impossibly tiny fonts, blocky layouts with a sidebar full of assorted crap, and grungey photoshop brushes. (But this time with CONTAINER QUERIES.)

A screenshot of my new theme, with a purple background and two boxes - sidebar and content - scrunched up against the left hand side of the page. The font is very small. The header image has assorted grungy patterns on it with a distorted cursive font that says ’localghost’.

From Remembering the early 00s teen website scene - localghost

July 25, 2024

For example, the word stress is slowly disappearing from the workerā€™s lexicon, while words like anxiety are ramping up. Because itā€™s in capitalismā€™s best interest to convince you that whatā€™s wrong is coming from inside you, rather than what the system is doing to you.

From Robin Rendle ā€” Stop calling yourself an IC

July 25, 2024

Right now Iā€™m working on something, a big piece with no clear edge. I donā€™t really know what it is yet ā€” or where itā€™s going ā€” but for days Iā€™ll leave it alone and wait for inspiration to strike. Iā€™ll wait for a characterā€™s name or an event to tumble out of the ether or hop right into my lap. Iā€™ll wait for a scene to take shape or a paragraph to be whittled down. But progress has been glacially slow on this project because thatā€™s just not how work works.

So if design has taught me anything itā€™s this: Donā€™t wait. Just keep noodling. Creativity isnā€™t a thing that you are, or a thing that you will be temporarily in the future. Creativity isnā€™t luck, either.

Creativity is simply a byproduct of work.

From Robin Rendle ā€” Creativity is the byproduct of work

July 25, 2024

I donā€™t share this kind of anxiety. I mean, I would if my business was entirely dependent on Google but boy trusting any of these platforms in the first place was the real problem there. The whole point of the web is that weā€™re not supposed to be dependent on any one company or person or community to make it all work and the only reason why we trusted Google is because the analytics money flowed in our direction.

Like, sure all these websites could make a business model on web advertising and being on the front page of a Google search could mean piles of cash but under the hood this broke the web in such a way that Google became the front-door of the whole internet.

From Robin Rendle ā€” Instability

July 25, 2024

This, I realize now, is 1. dumb and 2. cruel.

Itā€™s anti-worker and anti-union and it takes away peopleā€™s autonomy to chase a healthy work environment. Companies are allowed (and expected!) to pivot when their business model doesnā€™t work and yet workers are not granted the same privilege when they find themselves at a gig thatā€™s underpaying them or putting them on useless busy work or hurling them into a toxic work environment.

You owe them nothing because thatā€™s what the money is for. Your company is not a family, you are not letting anyone down.

From Robin Rendle ā€” Job Hoppinā€™

July 25, 2024

The best onboarding experiences guide people as they interact, instead of explaining things in narrative form.

Thereā€™s only one catch here: I almost exclusively hate onboarding experiences. Theyā€™re slow and patronizing, they get in the way, and they often try to explain around their overly complex UI instead of simply…making the UI less complicated.

Most folks takes the laziest approach possible and you can see it everywhere: apps of every kind and ilk are chockablock full of annoying popups and guides and things you have to dismiss before you can use the product itself. We all hate those.

From Robin Rendle ā€” Longboarding

July 25, 2024

Much of the concern and criticism of AI we are seeing at the moment relates specifically to the challenges with the largest LLMs, particularly when used as a proverbial sledgehammer. Considering the MVM approach as an alternative is one way to navigate forward in a balanced, pragmatic and mindful way. We would love to hear from anyone trying something similar, or different!

From MVM - Minimal Viable Model

July 24, 2024

Itā€™s easy to think of places like Twitter (I refuse to call it X) as a right-wing, hateful, misogynist platform (it absolutely can be), but itā€™s also worth highlighting the other side of it - the digital relationships tools like Twitter have allowed us to form.

Despite all of the drama that often happens on social networks, Iā€™m so grateful to all of the people I have met through these channels. I could make a muuuuch longer list highlighting all the people Iā€™ve met online and sincerely value as ā€˜realā€™ friends, but for now let me just say how much I value you all - readers of this blog, subscribers of my newsletter, people that randomly email me, interactions on social networks, and all the amazing clients.

From Digital tools may create life long relationships ā€“ Anton Sten ā€“ Product Designer

July 22, 2024

During the rest of the flight I wrote PySkyWiFi. PySkyWiFi is a highly simplified version of the TCP/IP protocol that squeezes whole HTTP requests through an airmiles account, out of the plane, and down to a computer connected to the internet on the ground. A daemon running on this ground computer makes the HTTP requests for me, and then finally squeezes the completed HTTP responses back through my airmiles account, up to me on my plane.

This meant that on my next flight I could technically have full access to the internet, via my airmiles account. Depending on network conditions on the plane I might be able to hit speeds of several bytes per second.

When I was done with all of this I used PySkyWiFi to load the homepage of my blog using curl, tunneling the data via a GitHub Gist. Several minutes later I got a response back. I scrolled around the HTML and reflected that this had been both the most and least productive flight of my life.

From PySkyWiFi: completely free, unbelievably stupid wi-fi on long-haul flights | Robert Heaton

July 22, 2024

Imagine you post and make new friends on an online network for more than a decade ā€“ and suddenly, your account gets suspended for no apparent reason. And there is nothing you can do about it.

Or imagine the online community you were an active part of for years just closes down and all user data gets deleted after a few months. And there is nothing you can do about it.

Or imagine that a site you poured all your thoughts and writing into decides overnight that it might be a good idea to sell access to all user data to a company that is training their large language model with it. And again, there is nothing you can do about it.

Now imagine a place where you actually own your content, your connections, and your online identity.

And now, imagine that this place is your personal website, under your own domain name, under your control.

This is the basic idea behind the IndieWeb.

From Welcome to the IndieWeb Ā· Matthias Ott ā€“ User Experience Designer

July 22, 2024

What makes RSS so powerful is that it is an open format. RSS is one of the reasons the blogosphere grew so rapidly and it is the reason why podcasting exploded: because this open format allowed everyone to participate by simply publishing a feed anywhere on the web, without being restricted by platform requirements, closed APIs, and paywalls. And this superpower is also why RSS is having a renaissance today: it allows everyone to subscribe to, share, syndicate, and cross-post content on the open web.

RSS already is the cornerstone of many open technology systems like podcasting, which canā€™t be owned and controlled by any one company. As Anil Dash notes, this alone is radical, because it is the triumph of exactly the kind of technology that’s supposed to be impossible: open and empowering tech that allows people to have ownership over their work and their relationship with their audience.

From We ā¤ļø RSS Ā· Matthias Ott ā€“ User Experience Designer

July 22, 2024

So, feel free to stop by any time and stay as long as you like. I wonā€™t track you, make you look at ads, ask you to download my app, harass you with popups, suggest you sign up for my newsletter or push you through a sales funnel. Enjoy the garden, and the peace šŸ’.

From My own little patch

July 22, 2024

Sit with that for a second, you can write a desktop application with no tooling, launch it from your phone to the internet for free, and seconds later install it on any computer. You donā€™t have to ask permission, or jump through any App Store hoops. You can write a thing, push it to the internet, and then immediately use the thing. Even better, you can send the link to your friends and they can immediately use the thing. Thatā€™s the power of the web.

From Desktop progressive web applications | Trys Mudford

July 21, 2024

So models know everything about all the things. But it’s not enough. They don’t know how to act human.

So they need to study every online human conversation. They need social media. But social media is a walled garden ā€” you can’t just walk up and scrape every Facebook post, every Instagram image ā€” not after those guys already did it. And besides, maybe copyright does apply to them after all!

So they make deals with the social media platform’s owners to access its subjects’ data. Here’s every platform I can find that has publicly announced AI training:

That’s all there is. After these deals finalise, there will be no more available training data on the internet. It’s all been absorbed. Whatever the state of AI models is in a year or two, they cannot get any better after that, as there simply will not be any more data to train on.

From The internet has run out of training data - cadence’s weblog (personal blog)

July 21, 2024

After the main hubbub subsided, I was let in early on the fun. It ended up being the best gift of all to see such an amusing event in internet history caused on my behalf by my better half.

From Surprise for a programmer on Birthday

July 21, 2024

As a web developer, having a quick go-to web stack to build projects like this is essential. So many times Iā€™ve had project ideas of grandeur, only to get stalled immediately in the technical architecture because I didnā€™t have the right tools on-hand to get started.

But not this time. My muscle memory for Astro + Vue hosted on github + vercel has become strong enough that these things faded away into the background, letting me focus on the core functionality.

If you donā€™t have this at-hand, I recommend going into real prototype mode and using something like codepen.

From Takeaways from a Weekend Project

July 21, 2024

ā€Did you catch the game last night?ā€

I donā€™t know who talks like that, but it seems to be the right type of thing to use as an example here.

In the age of remote work, there are a lot of culture-building moments like that lost behind the screen divide. So, in similar fashion to remote leadership, building strong remote-based company cultures takes a concerted effort.

From The Concentrated Water Cooler

July 20, 2024

Yup, thatā€™s right; they were prepared to throw their own WebKit and Safari teams under the bus and remove Web Push, the Badging API, and all the other work those teams had done. They were happy to destroy many EU businesses that relied on PWAs, and harm those users. They were fine with sneaking in anti-competitive behaviour while blaming the very legislation that is designed to open competition.

From Bruce Lawson’s personal siteĀ  : Happy DMA day to all! Where we are, and what comes next

July 20, 2024

Some people need AI Smart Cooking technology to get a perfect bowl of rice, but I am OK with a cheap IKEA pot with a lid. Some need 3D teeth tracking with AI to preserve good oral hygiene, but I am happy with my dumb brush. I absolutely donā€™t need any ChatGPT-driven features built into my mouse. Naively, I thought I would turn off this feature and carry on. So naive I was!

From From Logitech MX Master 3S to Apple Magic Trackpad ā€” my honest review (of the AI hype) | pawelgrzybek.com

July 20, 2024

“Great stuff”! Really! Let’s go out and take every file, image, and other resource accessible on the internet and reuse it to make some money.

Let’s visit all these paid media services, “Save as” their content, remove watermarks, polish it and then sell it under our names. And let’s automate this process! And then let’s talk about the social contract…

From Web content, the social contract and copyrights | Stefan Judis Web Development

July 19, 2024

Discovering and playing Bokunatsu (and watching Timā€™s 6 hour magnum opus of a review) has given me a deep appreciation for the timelessness of art and media.

A game from 24 years ago, deeply steeped in a culture that isnā€™t my own, has managed to create in me a sense of warm nostalgia. Its soundscapes remind me of home, but also make me long for a place Iā€™ve never been.

Itā€™sĀ also worth appreciating the meta aspect of the journey I went on to discover and experience this game, all because of a link in a newsletter. This is why the web is so special, and itā€™s what an AI will never do: unearth a lost gem.

When writing in his diary at the end of each in-game day, Boku reflects on ā€œthe most wonderful day in which nothing happened.ā€ Let this be a reminder that there is magic waiting to be found in the mundane.

From Boku no Natsuyasumi | Chase McCoy

July 19, 2024

Contrast the above mega-corporate phone system with the simple and direct experience youā€™ll get when calling a typical small business:

  • Phone call answered by a human being
  • Provides the required information/support
  • Done.

That is 1,000,000,000 times better than being treated like cattle in some limited, over-engineered, automated telephone service.

From Why Automated Phone Systems SUCK | Perishable Press

July 19, 2024

The solution that most improved passenger happiness was to increase the distance between the arrival terminal and baggage reclaim, such that, although the delay between arriving and receiving baggage was largely the same, it was spent actively moving; passengers were not feeling like they were wasting their time passively waiting around.

This was a great example of if you canā€™t make something actually fast, make it seem fast enough.

From Burberry X Google Hackathons | Robin Osborne

July 17, 2024

Years on and I feel that weā€™ve gone down a path where creativity is second to efficiency and that we often look at ready made solutions or reusing what exists. Tools like Squarespace and Wix offer pre-designed templates and drag and drop builders mean anyone can build a site without writing any code but weā€™ve come to a point where everything looks the same

We have deadlines to meet and weā€™re looking to cut costs so the process has become more about efficiency over creativity in my mind.

From Decline of web craftsmanship | Website and blog of Front-end developer and web designer, Dan Davies

July 17, 2024

It was about improvisation. How a lot of things we do every day are - to some extent, made up! From how we greet each other, to how we respond to an unexpected phone call. None of it is planned. We don’t create some sort of crazy scalable distributed architecture to deal with these things: They’re licks.

While we’re thinking of the perfect solution, the original problem is still there. Users don’t see your research, users don’t see the architecture meetings, users don’t see the ether. The only thing they see is the problem. And guess what? The problem is still there.

From Do things that don’t scale - Duarte O.Carmo

July 17, 2024

So in order to be found on google you have to pay them. Which means that if I, as someone who searches, am looking for something I end up at the website with the largest marketing budget. Not necessarily at the website with the best content. Thatā€™s bad. That very bad. But it gets worse.

From Google search is corrupt āš’ Nerd

July 17, 2024

the world needs more recreational programming. like, was this the most optimal or elegant way to code this?

no, but it was the most fun to write.

But my favorite kinds of projects are the ones that are just for the fun of it.

From Side projects should be fun - Matt Steele

July 17, 2024

ā€œHey, we need to do this or weā€™re going to hit a wall.ā€ Well, weā€™re not hitting any walls so I guess we donā€™t need to do this. And then we hit a wall.

Any working system can become invisible to the point where the system loses value because itā€™s working.

From Squeaky Wheel Gets the Grease - Snook.ca

July 17, 2024

The internet today is a lot like my Seattle experience. The ā€œFor Youā€ pages on the various social networks are spot on with regards to what I like, and they help me get more into the things that I like. But those arenā€™t really ā€œsocialā€ networks as much anymore. Theyā€™re content networks. Itā€™s things, not connections. Yes, some connections do happen, but the mediums are geared towards what content will keep you around.

I feel like the internet of the past was more like my Chicago experience. I made random internet friends who Iā€™m still friends with from over a decade ago. Thereā€™s little pockets here and there on Discord (hello, nerds) and other more chat-oriented spaces, but itā€™s not what it once was.

the point is that there isnā€™t a big central place now to find or interact with friends unless you really put a lot of effort into it.

From Seattle and the internet

July 17, 2024

ā€œIn web development, a lot of decisions are driven by the fear of looking dumb. People are worried about appearing unsophisticated and unwilling to say this is ā€œtoo complicated and we should do something simpler even though itā€™s not super sexyā€œā€

Peer pressure is the ultimate evil. New developers are especially prone to thinking ā€œseniorsā€ will make fun of them for picking some tech stack that doesnā€™t look complex:

People use our app because they need it. If you happen to build something people need, and you are able to find customers in a way thatā€™s sustainable, youā€™ll have success.

From Simplicity

July 17, 2024

But I need to remember, now and again, that Apple is a corporation, and corporations arenā€™t people, and they canā€™t love you back. You wouldnā€™t love GE or Exxon or Comcast ā€”Ā and you shouldnā€™t love Apple. Itā€™s not an exception to the rule: there are no exceptions.

Apple doesnā€™t care about you personally in the least tiny bit, and if you were in their way somehow, they would do whatever their might ā€” effectively infinite compared to your own ā€” enables them to deal with you.

From inessential: Corporations Are Not To Be Loved

July 17, 2024

But, whose user is it anyway? That’s irrelevent. The ultimate goal is to provide a good and accessible experience to the user. The way email clients and senders are handling this right now takes focus away from that goal and the engineering effort is instead put into tricking the other party’s code to do what you want.

Its always the same game of mouse and cat around different topics like with ads when the user is not the one in control.

From Whose user is it anyway?

February 13, 2024

The delights of putting smart in things that shouldnt be

February 12, 2024

Im a sucker for this kind of content of “lets build a cpu in the most random places” or “this thing is turing complete”. Love it.

February 12, 2024

It always amazes me the kind of things that you can do with redstone.

January 13, 2024

Maybe im in a nostalgia train, but i love the idea that a group of fans are trying to recreate and let you experience how things worked in the past.

January 13, 2024

On the fringes of the internet, where things are small and specialized (even when theyā€™re grim or shocking), thereā€™s something far more captivating than the sanitized, controlled environments weā€™ve established on the modern web. And it is still very much out there, and I believe it is growing.

From Reversing the boring web by The History of the Web

January 13, 2024

JavaScript in the address bar, as a protocol for a URL, was possible virtually from day one of the language, effectively creating JavaScript URLs.

[…] And pretty early on, people realized that these JavaScript URLs were also bookmarkable, just like any other URL.

And, crucially, easily shareable as links.

From Wait, whatā€™s a bookmarklet? by The History of the Web

A little history of bookmarklets, something that i really like and even shared in my posts

January 13, 2024

More software running as a kernel space driver? What could go wrong?

January 13, 2024

When I say ā€œI donā€™t know where everyone went,ā€ I know everyoneā€™s out there surfing the web, of course, but it feels like itā€™s a different place now. When the algorithms are determining everything we should be seeing, itā€™s a much less personal internet. The ā€œFor Youā€ pages of the world are right, I am interested in that content, but Iā€™m not seeing it from my friends, or that one author I like, or that random blog I found when I was learning about an obscure hobby.

From I miss human curation by Cassidy Williams

I also found myself mourning in the last weeks the old communities that i had on the internet.

January 12, 2024

Over the past year or so, I’ve been working with other BlueSCSI developers to add Wi-Fi functionality to their open-hardware SCSI device, enabling Wi-Fi support for old Macs and other vintage computers going back some 36 years.

From Adding Wi-Fi to the Macintosh Portable by Joshua Stein

I always like this kind of posts bringing old tech to modern life with open source (hard/soft)ware

January 8, 2024

Inicio de argenteam con mensaje de despedida al dia 08/01/2024

Hoy me entere de esta horrible noticia, de las pocas ultimas comunidades que aun sobrevivian en internet frente al avance industrial y de jardines privados. Sin embargo, me hicieron conocer este relato.

January 7, 2024

So when I teach about HTML I always start with the elements that are obviously interactive. I show them the multitude of UX layers of a link, I show them the layers and layers of UX that are added to a well considered form. I show them what happens on a phone when you use an input with a default text type instead of the proper type of email. First we need to get people exited about HTML by showing all the free yet complex layers of UX you get when you use the interactive elements properly. And then, when they do understand the interactive elements, when theyā€™re really excited and they ask for more, show them the more obscure UX patterns.

From The UX of HTML by Vasilis Van Gemert

January 6, 2024

A few weeks ago, I stumbled upon a very cool research project around using the sound of touch gestures on your face to create new interactions with interfaces.

After reading the paper, I decided to try and recreate something similar using JavaScript. I’ve experimented with using sound data and machine learning in the past and the result was quite successful, however, I had never thought about working with more subtle sounds like the ones this research is focusing on.>

From Control UIs using wireless earbuds and on-face interactions by Charlie Gerard

Almost all of Charlie’s interactions are amazing, and this isnt the exception.

January 6, 2024

So in this article Iā€™m digging into what JSX is, where it comes from and how one might go about using it as a simple server-side HTML template engine.

From Using JSX on the server as a template engine by Evert Pot

I also found myself making my own JSX Factory for a personal project recently for a similar use-case

January 6, 2024

I spent almost all of this year working on projects for other people. While I am proud of the work I did, and enjoyed it, thereā€™s still something special about making tools for yourself. Does anyone else in the world want to make their websites in a weird dialect of Lua? Maybe not. But I do, and thatā€™s enough.

Try building something for yourself. Try writing code for you, and you alone. Donā€™t worry about whether it will look good on your resumĆ© or attract lots of stars on GitHub. Just write something that feels good to you. Explore a weird idea and see where it takes you.

Who knowsā€”maybe someday other people will like it too.

From I made JSX for Lua (because I hate static sites) by Ben Visness

I dont share some of the thoughts, but i always like this thing of doing something for you because its fun.

January 6, 2024

This began as a quick-and-dirty experiment to visualize the UK National Minimum Wage in real-time, inspired by Blake Fall-Conroyā€™s Minimum Wage Machine.

Then I added the US Federal Minimum Wage, since a sizeable proportion of this blogā€™s readership are US-based. Did you know the US also has a Youth Minimum Wage? I didnā€™t.

Then I got curious, and added some CEOs for comparison. The vast disparity is nothing new to me, but seeing it like this…

Itā€™s fucking sobering.

From Minimum Wage Clock by Luna

I LOVE THIS. Similar to my Comparate con Forbes Argentina but so much better. It has a real sense of time is worth.

January 4, 2024

Shared state isn’t all doom and gloom. It causes problems when you have asynchronous or threaded code and unclear access patterns.

But your database is a repository of shared state and that works great. The cache in your networking layer is a type of shared state. Works fine. State management libraries popular in modern app development are all about sharing state and they can be fantastic.

What gives?

Explicitly declared state dependencies with strict guidelines around access patterns make all the difference. If a compiler or linter can enforce those patterns, even better.

From Avoid spooky action at a distance by Swizec Teller

January 4, 2024

When you’re spitballing at a meeting and it all fits together and makes so much sense, nobody knows you’ve written 5 deep articles about this topic exploring it from all sorts of directions. They just see a fuckin’ genius who can anticipate their arguments, has answers ready, and has a proposal that stands up to scrutiny.

From Why write by Swizec Teller

January 2, 2024

Tech is not neutral. It can’t be. It is always the sum total of human decisions, priorities, and tradeoffs, deployed to meet certain ends and desires, and particularly capitalistic interests. AI is far from being an exception to the rule. And in this case, any desire for image generation models to be able to represent me is going to butt heads with another incentive: the desire to avoid shocking users with body horror.

Successive model retrainings have made rendering humans much more accurate, and tighter restrictions on prompts have made it much harder to generate body horror, even intentionally. As a consequence, non-normative bodies are also incredibly difficult to generate, even when the engine is fed hyperspecific prompts.

It is something of an amusing curiosity that some AI models were perplexed by a giraffe without spots. But it’s these same tools and paradigms that enshrine normativity of all kinds, sanding away the unusual. As tech continues to charge headfirst into AI hype, this is going to have far-reaching, yet largely invisible to the mainstream, consequences to anyone on the wrong side of that normativity. Better hope you have spots.

From I’m a Spotless Giraffe. by Ben Myers

December 31, 2023

Pessimistically, I believe the app promotes homogeneity, based on the reel formulas I see creators using. They are all the same, and it’s not the fault of creators. It’s the fault of the product itself.

More often that not it’s the fault of the need for unlimited growth, whether it’s news users or monthly recurring revenue. I suspect some poor product manager is doing what they have to do to drive more people to pay to play.

Not everyone wants to pay though. One of the reasons we might post to social media is to share with the world, in hopes of finding like-minded people, not necessarily to sell anything. How do we find those like-minded people if we only see what an app forces us to see instead of discovering it organically?

From Instagram killed creativity with the removal of recent hashtags by Stephanie Stimac

December 31, 2023

To avoid shitty logic, you need to know what’s happening in your code. If there’s “magic” anywhere in the mix, you have a black box with no obvious cause and effect. This means that what you think is happening and what actually happens start to diverge.

Software is built by humans and humans make mistakes. Therefore, software should be everything but magic. It shouldn’t be overly concise and clever ā€” it should be explicit and predictable. It shouldn’t make assumptions ā€” it should throw errors.

Make the final product magical, not the software that runs it.

From Magical Software Sucks by Hristiyan Dodov

December 31, 2023

Like one day Iā€™ll stumble on a website thatā€™s gloriously corpo in the best possible way: smart typesetting, clean imagery, plain copy. The blog posts are pristine, helpful, perfunctory. Itā€™s a business card, really. Perfect. I get it. But despite my jealousy of how clean and straightforward they are, within twenty seconds Iā€™ve forgotten about them.

I want weirder, more broken websites!

And a personal website should capture that thing weā€™re all trying to avoid, as cheesy as it sounds: that we are a poem and not software.

From I am a poem I am not software by Robin Rendle

December 31, 2023

But modern websites are not worthy. Theyā€™re slow, hard to navigate, and plagued with visual crap; pop-ups, bad typography, newsletter modals, and everything else imaginable. And thatā€™s just the baseline. When I use a website on my phone I likely wonā€™t trust it to show me the same information, I wonā€™t trust interactions when I click buttons or fill in forms or even when I try to navigate elsewhere.

I donā€™t even trust the back button any more.

When I find a website that doesnā€™t hijack the scroll, or a website with pleasantly sized text, or a website that loads in under 300ms then it makes me bolt upright in my chair. I wonder at what tech theyā€™re using under the hood, what kind of conversations they had in those rooms, I try to imagine what kind of grueling process the team went through to make something so quiet and simple. All the things they had to say no to.

From Why are websites embarrassing? by Robin Rendle

December 30, 2023

Iā€™m not sure why, but we seem more willing to spend money on good fruit jam than on good software. I notice that I spend less on personal software than I do on groceries and many basic things. Yet software is one of the few things I pay for that truly gives me leverage. Consider its cost per use. Independent makers of quality software go out of their way to make apps that are better for you. They take a principled approach to making tools that donā€™t compromise your privacy, and donā€™t lock you in. Independent software makers are people you can talk to. Like quality jam from the farmerā€™s market, you might become friends with the person who made it ā€” theyā€™ll listen to your suggestions and your complaints. If you want to live in a world with more than a handful of software makers, then spend a bit more on quality independent software. It deserves your hard-earned cash.

From Quality software deserves your hardā€‘earned cash by Steph Ango

December 29, 2023

My friend, all tech is political. All technology either reinforces or fights against existing social systems. In a modern capitalist society, nearly all technology requires ethical concessions. But that doesnā€™t mean we should just give up and support obviously bad shit.

From I follow you for tech, not politics by Chris Ferdinandi

December 29, 2023

Then I explained that if you want to make this span behave like a real link, you have to add a tabindex, a role, CSS to style it, javascript to give it a :visited state, much, much, much more javascript to give it a context menu that makes sense (which is impossible to do right, because every browser has a different context menu for a link), and then youā€™ll have to test if this ā€œlinkā€ shows up in the list of links in a screen reader. I donā€™t think it does. There are so many hidden layers of UX in this simple HTML element. And these layers of UX are the details that matter, of you ask me. These details are why everybody should care about HTML.

From Letā€™s reinvent the wheel by Vasilis Van Gemert

December 29, 2023

As Jeremy illustrated in his talk Of Time And the Web, itā€™s easy to overlook the profound positive changes that can happen over larger timescales. Things we take for granted today, like the eradication of a disease like smallpox, are actually things that we would have considered ā€œtoo good to be trueā€ just a few years earlier. In much the same way, every little step we take, every decision we make, can add up to make a profound difference.

From No Borders by Matthias Ott

December 28, 2023

Whether it’s Slack, email, Twitter replies (or literally any text communication), many conversations just die. There’s no “thank you!” or “talk later!” to wrap things up. Apparently, it’s okay to just move the human interaction off the todo list.

From Conversation closure by Stefan Judis

December 28, 2023

The Chrome Developer ā€œblogā€ homepage is a perfect example of the awfulness of modern web dev: A page that is updated maybe once a week is dynamically client-side generated A page that has almost no interactivity needs 109 requests (mostly JavaScript) to load A page with maybe 400 words of text requires 1.3MB plus 10MB for resources

A 70KB RSS file provides more value and is more readable A blog without an RSS feed isnā€™t a blog. Find another word.

From An RSS Feed for the Google Chrome Developer Blog by Cross Dominant

December 28, 2023

So I went to work to explore this idea of checking if a number is odd or even by only using comparisons to see how well it works in a real world scenario.

From 4 billion if statements by Andreas Karlsson

This is the kind of stuff i want to read about. People doing things just for fun.

December 16, 2023

If buying isn’t owning, piracy isn’t stealing

December 8, 2023

I like how piracy came full circle from something illegal to being the source of preservation.