December 20, 2024
And this is why personal websites are the best
This is a mirror of my tweets in an attempt to follow the indieweb movement.
December 20, 2024
And this is why personal websites are the best
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
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.
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.
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
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.
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
Uint8Array
s 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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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?
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.)
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.
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.
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.
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.
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.
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!
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.
July 21, 2024
You don’t need to know how to implement all the data structures, that’s what (software) libraries and Wikipedia are for (and for that matter, book libraries too). However, it is useful to have an idea of what’s available and when to use it.
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.
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.
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.
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!
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
Hereās a thing I never would have imagined possible: an LLM embedded into a font.
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.
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.
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.
July 18, 2024
WTF!?
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.
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.
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.
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.
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.
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.
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.
July 17, 2024
I want to order a pizza. Ā· Lunaās Blog is a clear example of the uneeded complexity around things that should be as easy as a few taps.
February 13, 2024
The delights of putting smart in things that shouldnt be
February 12, 2024
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.
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 10, 2024
After reading Embed Slides, YouTube Videos, and More by Adrian Roselli i finally decided to replace my youtube embeds with click-to-load widgets.
January 10, 2024
Since WHATWG HTML is versionless, and since it essentially only takes one browser implementation to get into WHATWG HTML, and since the people approving PRs to WHATWG HTML seem to be the same ones adding features to Safari and Chrome, perhaps the best way to stay on top of HTML today is to look at Chrome āintent to shipā announcements and Safari feature releases.
January 8, 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 instead of messing with any device/computer I want to plug this ethernet adapter into I now have a normal USB ethernet adapter with just one extra solder connection :)
From Making an USB Ethernet adapter work [SR9700] by Martijn Braam
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.
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 4, 2024
One of the best ways to learn how something works, though, is to build it yourself. And plus, we gotta keep those ādays since last JavaScript frameworkā memes going. So letās write our own modern JavaScript framework!
From Letās learn how modern JavaScript frameworks work by building one by Nolan Lawson
I also liked Use web components for what theyāre good at
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.
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.
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.
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
, arole
, 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.
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.