State of the Terminal
https://gpanders.com/blog/state-of-the-terminal/ [gpanders.com]
2024-04-30 04:31
tags:
development
systems
text
tty
unix
It’s only been in the last couple of years that I’ve begun to dig deep into the inner workings of how terminal emulators, and the applications that run inside of them, really work. I’ve learned that there is a lot of innovation and creative problem solving happening in this space, even though the underlying technology is over half a century old1.
I’ve also found that many people who use terminal based tools (including shells like Bash and editors like Vim) know very little about terminals themselves, or some of the modern features and capabilities they can support.
In this article, we’ll discuss some of the problems that terminal based applications have historically had to deal with (and what the modern solutions are) as well as some features that modern terminal emulators support that you may not be aware of.
source: Dfly
Multiply - A Book About Calculators I Helped Create
https://benjamin.computer/posts/2022-08-17-calculators.html [benjamin.computer]
2024-03-15 20:07
tags:
book
design
hardware
math
retro
Now, by trade I’m a software engineer and a trainee scientist - I’ve never designed a book before. However, I’m no stranger to graphic design, having done a variety of things before now. But a book is a new proposition with different challenges. There was a lot of work ahead. But where to begin?
source: Dfly
Okay, Color Spaces
https://ericportis.com/posts/2024/okay-color-spaces/ [ericportis.com]
2024-03-11 07:53
tags:
graphics
visualization
Which brings us to the first point: color spaces are all constructs. People just make them up! Useful ones are constructed in order to do useful things, but there’s no, like, One True Fundamental Color Space.
All of this is to say: color spaces can’t really be “right” (or “wrong.”) They can only be useful.
source: Dfly
Huffman Codes – How Do They Work?
https://two-wrongs.com/huffman-codes-how-do-they-work [two-wrongs.com]
2024-03-11 07:50
tags:
compression
intro-programming
a history of the tty
https://computer.rip/2024-02-25-a-history-of-the-tty.html [computer.rip]
2024-03-11 07:44
tags:
article
hardware
retro
text
tty
It’s one of those anachronisms that is deeply embedded in modern technology. From cloud operator servers to embedded controllers in appliances, there must be uncountable devices that think they are connected to a TTY.
source: Dfly
The Garden of Computational Delights
https://arbesman.net/computationaldelights/ [arbesman.net]
2023-08-06 22:17
tags:
essay
links
tech
web
Beneath the utilitarian purpose of computation, computing is also a source of delight and wonder. Software is not just databases and mail merges or SaaS and spreadsheets; it’s creative coding and simulated cities, code poetry and bulletin board systems. It’s websites that dazzle and iPhone apps that make the heart sing. And it’s sometimes even spreadsheets, coerced to dance and do all manner of weirdness. All of these approaches to computing are what am collecting here, and bundling under the term “garden of computational delights.” This is a list of places that collect or catalyze sources for being enraptured by the web, programming, and the wider world of computing. Or, as per Tim Hwang and Omar Rizwan, this is a garden of all the different places you might discover where “the computer is a feeling.”
source: Dfly
Shamir Secret Sharing
https://max.levch.in/post/724289457144070144/shamir-secret-sharing [max.levch.in]
2023-08-06 21:38
tags:
auth
c
crypto
development
programming
security
unix
It’s 3am. Paul, the head of PayPal database administration carefully enters his elaborate passphrase at a keyboard in a darkened cubicle of 1840 Embarcadero Road in East Palo Alto, for the fifth time. He hits Return. The green-on-black console window instantly displays one line of text: “Sorry, one or more wrong passphrases. Can’t reconstruct the key. Goodbye.”
This is the story of a catastrophic software bug I briefly introduced into the PayPal codebase that almost cost us the company (or so it seemed, in the moment.)
Today, should you try to read up the programmer’s manual (AKA the man page) on getpass, you will find it has been long declared obsolete and replaced with a more intelligent alternative in nearly all flavors of modern Unix.
source: Dfly
Architecture and Simulation of the Z1 Computer
http://zuse-z1.zib.de/ [zuse-z1.zib.de]
2023-07-29 19:47
tags:
hardware
retro
This collection shows technical drawings of the Z1 reconstruction. The Z1 built in 1938 was Konrad Zuse’s first computing machine. It was a mechanical machine and was destroyed during World War II. From 1987 to 1989 Zuse reconstructed the Z1 from his memory.
The Z1 consisted of different functional units, e.g. the input unit, the output unit, the memory units, and the addition unit. Each of this unit was built for a specific purpose and all units were connected. With an interactive and freely movable 3D simulation the functionality of the Z1 adder is demonstrated and explained. You can calculate with it by entering numbers and observe how the adder operates with the processes emphasized by color highlighting. The simulation is based on the original patent plans by Konrad Zuse.
source: Dfly
Strange Adventures: a film list
http://www.johncoulthart.com/feuilleton/2023/01/16/strange-adventures-a-film-list/ [www.johncoulthart.com]
2023-01-27 18:24
tags:
fiction
future
links
movies
retro
Presenting the list I mentioned earlier in which I highlight a number of worthwhile science-fiction films (also some TV productions) that aren’t the usual Hollywood fare. I’ve spent the past few years watching many of these while searching for more. This isn’t a definitive collection, and it isn’t filled with favourites; I’ve deliberately omitted a number of popular films that would count as such. It’s more a map of my generic tastes, and an answer to a question that isn’t always spoken aloud in discussions I’ve had about SF films but which remains implicit: “Okay, if you dislike all this stuff then what do you like?” I tend to like marginal things, hybrids, edge cases, the tangential, the unusual and the experimental.
Just the stills make for interesting browsing.
source: Dfly
In Defense of Interactive Graphics
https://www.vis4.net/blog/2017/03/in-defense-of-interactive-graphics/ [www.vis4.net]
2021-03-10 03:36
tags:
design
ux
web
Knowing that the majority of readers doesn’t click buttons does not mean you shouldn’t use any buttons. Knowing that many many people will ignore your tooltips doesn’t mean you shouldn’t use any tooltips. All it means is that you should not hide important content behind interactions. If some information is crucial, don’t make the user click or hover to see it (unless you really want to). But not everything is crucial and 15% of readers isn’t nobody. So there is a lot we can do with interaction, and I am going to point out three examples below.
source: Dfly
XTerm: It's Better Than You Thought
https://aduros.com/blog/xterm-its-better-than-you-thought/ [aduros.com]
2021-01-18 01:49
tags:
admin
swtools
x11
Some useful config options showing off flexibility beyond the basics.
source: Dfly
Wireless is a trap
https://www.benkuhn.net/wireless/ [www.benkuhn.net]
2020-06-15 03:36
tags:
networking
turtles
wifi
I used to be an anti-wire crusader. I hated the clutter of cables, and my tendency to unconsciously chew on them if they got anywhere near my face. But running into bug after tricky wireless bug—mostly while trying to make my video calls work better—I’ve apostasized. The more I’ve learned about wifi, Bluetooth and related protocols, the more I’m convinced that they’re often worse, on net, than wires.
This starts off with the usual, but then there’s some real wtf.
Qt included a component which would poll for networks every 30 seconds whenever a “network access manager” was instantiated, causing pretty much any Qt app using the network to degrade your wifi for ~5 out of every 30 seconds. There were already multiple bug reports for this issue, one of which was declared “closed” by an engineer because they allowed users to use an environment variable to disable the polling.
source: Dfly
Hot Air and High Winds: A Love Letter to the Fantasy Airship
https://www.eurogamer.net/articles/2020-02-08-hot-air-and-high-winds-a-love-letter-to-the-fantasy-airship [www.eurogamer.net]
2020-03-18 03:06
tags:
flying
gaming
retro
I’ve had a bit of a thing for airships since I was in my teens. I loved - and love - all airships, but it was the great steampunk contraptions of wood and cloth and wrought iron that had me most under their spell. Where the ‘ship’ is taken literally and a creaking old galleon is slung implausibly and enchantingly beneath bulging balloons. Games love them too - they’re most associated with JRPGs, although I think it must have been in Super Mario Bros 3 that I first encountered them. But the airship that really sparked my love affair was in a much more obscure place. Does anyone remember the Fantastic Worlds expansion pack for Civilization 2? Anyone remember the airship units? I do. For some reason that unit captivated me. I loved it, in all its tiny, pixellated glory. I couldn’t find a picture of it. Sorry. Take my word for it, though: that was a good airship.
source: Dfly
Announcing NetBSD 9.0
https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html [www.netbsd.org]
2020-02-15 23:52
tags:
netbsd
release
This release brings significant improvements in terms of hardware support, quality assurance, security, along with new features and hundreds of bug fixes.
source: Dfly
Autocomplete as an interface
https://www.benkuhn.net/autocomplete [www.benkuhn.net]
2020-01-16 02:04
tags:
development
programming
ux
I’m used to thinking of autocomplete as a convenience tool that saves you a few keystrokes, but it’s much more than that. Good autocompletion has become a driving factor in which tools I choose. If I were writing a sophisticated user interface today—say, a programming language or a complex application—autocompletion is one of the primary constraints I would design it around. It’s that important.
source: Dfly
It was 20 years ago today
http://boston.conman.org/2019/12/04.1 [boston.conman.org]
2019-12-09 06:09
tags:
development
web
It’s amzing to think I’ve been doing this whole blog thing for a whole twenty years.
But despite all the code changes, the actual storage format has not changed one bit in all twenty years.
source: Dfly
Teletext’s creative legacy lives on
https://wepresent.wetransfer.com/story/teletext-creative-legacy/ [wepresent.wetransfer.com]
2019-12-09 06:06
tags:
design
graphics
networking
retro
text
Like Walkmans and VHS recorders, teletext now seems impossibly quaint. But designer and writer Craig Oldham explains that not only was Teletext a revolutionary technology in its prime, its creative legacy lives on with a new generation of artists who love its creative limits.
source: Dfly
Celebrating 50 Years of Unix
https://www.bell-labs.com/var/articles/celebrating-50-years-unix/ [www.bell-labs.com]
2019-10-19 17:28
tags:
retro
unix
A lot of this folklore (including the gremlin) is going to be on display at the Unix 50 event. The archivists at Bell Labs have outdone themselves by pulling together a massive collection of artifacts taken from the labs where Unix was developed for over 30 years. I was able to photograph a few of these artifacts last year, but so much more will be exhibited at this event — including several items from the personal archives of some attendees.
Plus quite a few more links at https://www.bell-labs.com/unix50/
source: Dfly
What Remains Technical Breakdown
http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/ [www.dustmop.io]
2019-09-22 18:19
tags:
gaming
graphics
lisp
programming
retro
What Remains is a narrative adventure game for the 8-bit NES video game console, and was released in March 2019 as a free ROM, playable in emulator. It was created by a small team, Iodine Dynamics, over the course of two years of on and off development. It’s currently in the hardware phase as a limited batch of cartridges are being created from all recycled parts.
The game plays out over 6 stages, wherein the player walks around multiple scenes with 4-way scrolling maps, speaking to NPCs, collecting clues, learning about their world, playing mini-games, and solving simple puzzles. As the primary engineer on this project, I faced a lot of challenges in bringing the team’s vision to reality. Given the significant restrains of the NES hardware, making any game is difficult enough, let alone one with as much content as What Remains. Only by creating useful subsystems to hide and manage this complexity were we able to work as a team to complete the game.
Herein is a technical breakdown of some of the pieces that make up our game’s engine, in the hopes that others find it useful or at least interesting to read about.
source: Dfly
Beginner Problems With TCP & The socket Module in Python
https://blubberquark.tumblr.com/post/186695350125/beginner-problems-with-tcp-the-socket-module-in [blubberquark.tumblr.com]
2019-08-12 00:15
tags:
intro-programming
networking
python
Your operating system will deceive you and re-assemble the string you sock.recv(n) differently from the ones you sock.send(data). But here is the deceptive part. It will work sometimes, but not always. These bugs will be difficult to chase. If you have two programs communicating over TCP via the loopback device in your operating system (the virtual network device with IP 127.0.0.1), then the data does not leave your RAM, and packets are never fragmented to fit into the maximum size of an Ethernet frame or 802.11 WLAN transmission. The data arrives immediately because it’s already there, and the other side gets to read via sock.recv(n) exactly the bytestring you sent over sock.send(data). If you connect to localhost via IPv6, the maximum packet size is 64 kB, and all the packets are already there to be reassembled into a bytestream immediately! But when you try to run the same code over the real Internet, with lag and packet loss, or when you are unlucky with the multitasking/scheduling of your OS, you will either get more data than you expected, leftover data from the last sock.send(data), or incomplete data.
Not strictly a python problem, either.
source: Dfly