In more frustrating news, I did something to my primary laptop, and now it crawls along like a 2005 Celeron trying to run Windows Vista.
My laptop is nothing too special (a Lenovo powered by an i7-1255U (4+8) @ 4.70 GHz with integrated “Iris Xe” graphics), but I’ve been running Manjaro Linux (with KDE Plasma) on it for the past couple of years, and apart from the odd pamac / pacman / “Add Remove Software” inconsistency (or Plasma widget issue), it’s been running pretty well.
Then, a few days ago, it started bugging about updates, and yesterday it added complaints about an unsupported kernel, so I finally pulled the trigger on it, and boy do I regret it.
I initially kept having issues downloading all of the updates (it was trying to download some kind of non-existent Quake-related library, which I had to remove), and I also had issues getting rid of the unsupported 7.1 kernel (due to some “meta” packages that had been installed), but in the end, I resolved both issues, got the kernel removed and the updates installed, and everything seemed fine after the post-update reboot… for about 10 minutes.
And that’s when the machine just decided to start moving at 1/3 speed: typing, moving the cursor, changing windows - everything started acting like it was 2008.
When I first tried to diagnose it, top showed kwin_wayland eating 50% of the CPU, and plasmashell another 10%, but it wasn’t consistent (they both came and went). I disabled all of the desktop effects, which helped some, as did blanking my plasma config (setting my desktop back to default), but things are still noticeably laggier than they were a few days ago.
Someone online suggested freeing up 25% space total on my root drive (which typically runs 90-95% full), so I’ve been cleaning up (and offloading) as much as I can. If that doesn’t work and I don’t find a solution by the end of the week, I’ll probably have to backup my data, wipe the machine clean, and start fresh. 🙃
Google’s Genie 4 World Model Adds Audio, More Realistic Worlds
An anonymous reader quotes a report from TechCrunch: Google DeepMind released its newest world model, Genie 4, in research preview on Tuesday. The latest model generates the most photorealistic and interactive worlds yet, allowing users to type prompts mid-simulation to change the scene. The model also generates real-time audio that matches the simulat … ⌘ Read more
Anduril Partners With Qualcomm to Build Laptops On US Soil
Longtime Slashdot reader fadethepolice writes: Anduril, arguing that its manufacturing capabilities are directly applicable to laptop manufacturing, is starting a project for a fully 100% U.S.-sourced laptop. The computer will use a Qualcomm Snapdragon SoC. I did not see any information about the OS, but I’m assuming that, given the type of processor, this w … ⌘ Read more
Steam Scream Fest V is here with discounts on spooky games
Steam Scream Fest V has arrived and with it lots of discounts on various different types of games that will make you need fresh pants.
Read the full article on GamingOnLinux. ⌘ Read more
KWin-Type Introduced To Address KDE Wayland Usability Gap For Auto-Typing Text
Open-source developer Jason Donenfeld known for his work on WireGuard announced today the release of kwin-type. KWin-type is a new Wayland-compatible program for auto-typing text from the standard input under the KWin Wayland compositor… ⌘ Read more
Google Support Pages Start Defaulting to AI Chatbots
Google is beginning to replace traditional support articles with “Ask Google Help,” a Gemini-powered interface that summarizes documentation and lets users troubleshoot through a chatbot. 9to5Google reports: “Ask Google Help” will display a condensed version of the support article with direct troubleshooting steps, with the user then able to type in queries to have Gemin … ⌘ Read more
‘Human Vs. Robot’ Cage Match Was Illegal, Says California
“A human defeated two of the three robots he faced in a cage fight recently held in San Francisco,” reports the Los Angeles Times, noting that videos of the event drew more than 10 million views on YouTube.
But “the humans behind that fight could face a battle of their own — the legal type — if they want to hold another event like ‘Human Vs. Robot,’ the Sept. … ⌘ Read more
Compose Key 🫠 So, no more Ctrl+Shift+U's for or having to remember Unicode like a chimp
@movq@www.uninformativ.de It is such a relief !! I can finally type my Ç, œ, à, ê, é …etc without breaking a sweat. xD
Compose Key 🫠 So, no more Ctrl+Shift+U's for or having to remember Unicode like a chimp
@aelaraji@aelaraji.com I love the Compose Key. 😃 Want that “o” with the slash in it? Type Compose + o + / and there you go: ø. I use it all the time. Also for stuff like → arrows or ™.
Firefox 158 Now Available With JPEG-XL Support By Default
Firefox 158 is now available with JPEG XL image support enabled by default, making .jxl images a standard part of the browser rather than an experimental feature. The release also adds JPEG XL to Firefox’s default image Accept header, improves Smart Window form filling, and brings new CSS typed-arithmetic support for developers. Phoronix reports: At long last, … ⌘ Read more
@zyak@twtxt.z85b.xyz yeah, I totally get it. Especially after the insane type of weather we’ve been getting lately… but hey, soak in as much sunlight while you still can, we might start longing for that instead of storm and rain in a couple of months from now 😆
After 40 Years, Microsoft Excel Will Add Single-Cell Lists and Arrays
Microsoft’s senior product manager for Excel acknowledges that “Throughout Excel’s 40-year history, you’ve only been able to put one value per cell.” But that’s now changing with arrays in cells (as well as nested arrays) and lists.
“You can create a list by selecting Insert > List or pressing Ctrl+J, then typing or pasting items separated b … ⌘ Read more
There’s a New Way to Break RSA Encryption
“Signature forgery.” It’s a new way to break RSA keys — and it doesn’t require factoring. Ars Technica reports on new research using classical computing to “reduce the current RSA security level to an unacceptably low threshold” and lower the required computing resources by orders of magnitude.
There’s “a gap in current RSA-type security assumptions,” according to a paper co-authored by Univer … ⌘ Read more
Scientists Discover Mysterious New X-Ray Objects ‘Unlike Any They Have Seen Before’
An anonymous reader quotes a report from Space.com: NASA’s Chandra X-ray Observatory has found a brand new type of an otherwise familiar object – compact binary systems that steal gas from other stars, but which do so while emitting very low-energy X-rays but copious amounts of ultraviolet. Chandra spotted 8 … ⌘ Read more
System76 Launches The Thelio Mira AI With AMD Ryzen + NVIDIA Or AMD Graphics
System76 today unveiled their newest desktop computer as the Thelio Mira AI. The System76 Thelio Mira AI is designed for multi-GPU AI training, model fine-tuning, AI inferencing, computer vision and image generation tasks on tthe AI side. Or with its AMD Ryzen 9000 series CPU and NVIDIA/AMD GPU options is also a good candidate for simulations and other HPC-type workloads… ⌘ Read more
AMD Posts New GCC Compiler Patch For Extended Load Optimization
It’s nice seeing a new GNU Compiler Collection (GCC) patch out of AMD today that is a general optimization for the x86_64 compiler code and not exclusively tied to their Zen processors. It’s an Extended Load Optimization to benefit code where there is a narrower type and then an arithmetic type with a wider type… ⌘ Read more
CoolerControl app for Linux v5.0 brings a big overhaul
Managing various types of coolers under Linux has never looked sleeker! The latest CoolerControl v5.0.0 release is out now.
Read the full article on GamingOnLinux. ⌘ Read more
Roku’s 24/7 AI Slop Channel Is Even Worse Than Expected
A new streaming TV channel shows films made with genAI, reports Engadget. “Fairground AI Creator TV” is free — and supported with ads — describing its material as “AI Cinema”:
“AI-generated” can make it sound as though someone typed a sentence into a machine and came back five minutes later to find a finished movie. Fairground’s catalog shows why that desc … ⌘ Read more
Cancer Deaths Attributable to Alcohol Rose 58% Over the Last 33 Years
CNN reports that alcohol “may play a greater role in death from numerous types of cancers in the United States than previously known, according to a new study.”
“While it’s true that overall cancer mortality has declined, we found the percentage of cancer deaths proportionally attributable to alcohol rose over 58% in people 20 and ol … ⌘ Read more
After 50 Years, Physicists May Have Finally Found a Particle Made of Pure Force
Gluons are the quantum ‘Gorilla Glue’ involved in binding quarks together, ScienceAlert reminds us. But for nearly 50 years, physicists have hunted for “glueballs”, exotic particles predicted by this theory of the strong interaction — the only type of particle in nature composed entirely of force mediators:
Now, a … ⌘ Read more
Linux 7.3 Ready With CXL Type-2 Driver Support For AMD Solarflare NICs
With the mainline Linux 7.2 kernel there is now the basic support in place for CXL Type-2 accelerator drivers within the CXL core subsystem code. The first in-tree Type-2 driver with the Linux kernel is for the new AMD Solarflare NIC hardware… ⌘ Read more
New AMD Low-Power Core & Unified Intel/AMD CPU Core Type Handling In Linux 7.3
Covered first on Phoronix back in June was an AMD Linux patch for introducing a new “low power” CPU core type to complement their typical “performance” cores and their “efficiency” cores like with Zen 4C/5C. That low power core is presumed for some Zen 6 clients and that integration is now merged for Linux 7.3 as well as unifying the Intel/AMD CPU core type handling… ⌘ Read more
Linux 7.3 binfmt_misc To Allow BPF Programs To Dynamically Choose Execution Environments
The Linux kernel’s binfmt_misc functionality allows non-native/custom files to ne run directly such as for Windows EXE files to be handled by Wine or JAR files to be handled by the Java runtime. For the upcoming Linux 7.3 merge window, the miscellaneous binary formats support is being extended so a binary type can be matched programmatically and the interpreter determined on a per-exec basis. BPF programs can also then be atta … ⌘ Read more
Typomagical is a typing spell-building bullet heaven that will make you panic
Blending the very different worlds of typing games with survivor-like bullet heavens, Typomagical will make you sweat as you frantically type spells.
Read the full article on [GamingOnLinux](https://www.gamingonlinux.com/2026/08/typomagical-is-a-spell-building-typing-bullet-heaven-th … ⌘ Read more
Popular Steam Deck accessory brand JSAUX announced controller-focused brand Voidjoy
Voidjoy is a new spin-off brand from JSAUX, that plan to bring various types of controllers and addons for existing controllers.
Read the full article on [GamingOnLinux](https://www.gamingonlinux.com/2026/08/popular-steam-deck-accessory-brand-jsaux-announced-controller-fo … ⌘ Read more
Google’s Gemini Can Now Stomp Around as a Humanoid Robot
Google DeepMind’s Gemini Robotics 2 combines vision, language, and action models to control multiple types of robots, including humanoids performing tasks such as organizing shelves, tying bags, and replacing lightbulbs. “It’s another milestone in our path towards really getting towards what we call like physical AGI, which means we get a robot to do anything tha … ⌘ Read more
@david@daiwei.me if you have some weekend home type place, with no Internet, getting TV through an antenna and a DVBT box, my recommendation is to just buy some old Dell monitor with HDMI to 3.5mm audio output built in, so you can connect speakers to it.
Doesn’t have to be Dell, but you can often just buy one of those from your employer, for under $25 here.
Were this sadly makes much less sense, in with Internet TV services. Those usually need a dedicated TV app to function and while that can be replaced with a $200 TV box, that some providers force you to rent, thus making you pay more for your Internet TV forever - this also means giving up the “archive app”, that gives you access to all the on demand content, included in the price of your mandatory TV license. None of these overpriced boxes come with it, as they’d mauch rather make you pay, for yet another subscription service instead.
So yes, you can kinda do it with an Internet TV too, assuming you trust the expensive box to not spy on you, but in that case you’re mostly just paying a whole lot more, for a lot less, than you would be, with the LG TV.
AMD “Low Power” CPU Core Type Patches Queued Ahead Of Linux 7.3
Last month I wrote bout new AMD Linux patches introducing a new “low power” CPU core type as an alternative to their standard performance cores and dense efficiency cores. That work now is poised to land with the upcoming Linux 7.3 kernel… ⌘ Read more
@movq@www.uninformativ.de Type hints are just… so weird.
Why.
Python’s numeric types complex, float and int are not subtypes of each other, but to support common use cases, the type system contains a straightforward shortcut: when an argument is annotated as having type float, an argument of type int is acceptable; similar, for an argument annotated as having type complex, arguments of type float or int are acceptable.
https://typing.python.org/en/latest/spec/special-types.html#special-cases-for-float-and-complex
@david@daiwei.me Oh, really? I thought I’ve posted compose view screenshots before. Anyway. Glad you like it as much as I do. :-)
The update interval has always been one second. I just didn’t remember and thus tried to time it by watching the preview update while typing. It felt like roughly under two seconds, but apparently my inner clock was off. After taking the screenshot and then examining it more closely, I noticed that the interval is stated right in the UI. :-D So, I just amended my message and didn’t bother taking a new screenshot. I figured I just leave it alone and see who spots the change, if at all. And, of course, you found the easter egg. Congrats, mate! 8-)
I really think I should go back to Java.
Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.
Rust is also exhausting. They’re constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you can’t rely on anything. Often times, you need the latest Rust nightly compiler.
Go is … I don’t like it. And huge binaries.
I like C as a language, but it’s too fragile. I want to have a proper HashMap every now and then.
None of the above have good GUI libraries, at least not on Linux.
And then there’s Java. This is my fractal renderer that I wrote over 17 years ago:
https://movq.de/v/fcd3c4e557/vid-1784121825.mp4
It’s fast. It has a GUI with custom widgets and those weren’t even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file I’m using in the video was compiled in 2010.
Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.
The JVM ramp-up times have improved considerably:
https://movq.de/v/e7314e521e/vid-1784121998.mp4
This isn’t like the Dark Ages anymore. Might even be usable for some CLI tools.
The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() … I couldn’t have made my TUI framework in Java, but then again, I wouldn’t have needed to because Swing already exists and it just works.
Hurray, I can now press gg instead of g to go to the top in tt. Much better! :-) Other multi-key combinations are also easily possible now.
I should probably write a real article about this at some point, but here we go. The only downside with my new key binding system is that it breaks tview’s established pattern. You’ve got an InputHandler(), that is implemented using WrapInputHandler(…). It typically then directly implements the switching logic depending on the key press. Something like this:
func (w *Widget) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
// WrapInputHandler allows for intercepting key events with SetInputCapture(…)
// from the outside for customization. This handles the default key bindings.
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
w.scrollUp()
return // we already handled the event, stop processing
case 'j':
w.scrollDown()
return
}
}
}
// We didn't handle the key event. Maybe the parent
// widget knows what to do with it.
if handler := w.parent.InputHandler(); handler != nil {
handler(event, setFocus)
}
})
}
From the outside, you can intercept and either stop or continue the widget’s original key handling with a potentially rewritten key event using SetInputCapture(…):
w := NewWidget()
// customized or additional key bindings
w.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Key() {
case tcell.KeyUp:
// Rewrite the event, so the "cursor up" key is an alias
// for the vim key binding "k", that is handled by the
// wrapped input handler above. (I know, I know, this is a
// completely unrealistic example, why would anyone use
// cursor keys when there are vim key bindings available?!)
return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'q':
app.Stop()
// we already handled the event, do not pass it
// to the wrapped input handler above
return nil
case 'r':
toggleMessageReadStatus()
return nil
}
}
}
// we didn't handle the event, pass it to the wrapped
// input handler above
return event
}
Since they all expect a single key, I’ve noticed that using multiple dedicated KeyBindings of mine on these different levels kinda breaks multi-key handling with common prefixes. The outer-most KeyBinding captures the prefix, but it can’t transfer it to the inner one if not handled by the outer one. At least not without some more (potentially ugly) changes. So, I now have to work with just a single KeyBindings object for the entire widget chain (if it consists of multiple other widgets or the regular input handler and input capture are in the game). The outside needs to register all its key bind customizations or extensions at the same level that the original widget handles its default ones. Doable by exposing the widget’s KeyBindings instance, but not pretty. You always have to keep this in mind.
With the KeyBindings, it will look like that:
type Widget struct {
parent tview.Primitive
// make it available to children or the outside either by
// direct field access or by providing a getter method
KeyBindings *bind.KeyBindings
}
func NewWidget() *Widget {
w := &Widget{KeyBindings: &bind.KeyBindings{}}
w.KeyBindings. // default key bindings
Bind0(bind.KeySequence('k', w.scrollUp).
Bind0(bind.KeySequence('j', w.scrollDown)
return w
}
func (w *Widget) InputHandler() InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
// also note the missing support for focus transfer at the moment
event = w.KeyBindings.Capture(event)
if event == nil {
return
}
if handler := w.parent.InputHandler(); handler != nil {
handler(event, setFocus)
}
}
}
And then from the outside, or in a child widget:
w := NewWidget()
w.KeyBindings. // additional or customized key bindings
Bind1(bind.KeySequence(tcell.KeyUp), func(*tcell.EventKey) *tcell.EventKey {
return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
}).
Bind0(bind.KeySequence('q'), app.Stop).
Bind0(bind.KeySequence('r'), toggleMessageReadStatus)
When directly working with tview primitives that are not part of custom widget implementations, the following works well so far:
textView := tview.NewTextView().
SetWordWrap(true).
SetText("…")
SetScrollable(true)
textView.SetInputCapture((&bind.KeyBindings{}).
Bind0(bind.KeySequence('q'), app.Stop).
Bind1(bind.KeySequence('g', 'g'), func(*tcell.EventKey) *tcell.EventKey {
return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
}).
Capture)
I need to sleep on this some more.
Also, writing very long messages like this one is really not all that fun in tt’s editor. I should absolutely provide a way to shell out to vim.
(Took me about one and a half hours to compose, holy crap. But not only because of not using vim. Although, that might have saved me a quarter hour or so for sure. Proof-reading this message also uncovered quite a few bugs in my real documentation. So, that’s a big win!) Good night!
@GabesArcade@gabesarcade.com The no-JS part is one thing, but you also have to disable the (nowadays common) forced-HTTP-to-HTTPS-redirect, because those old browsers can’t do modern crypto. And make sure that your webserver serves the correct page even if no Host header is sent by the client. And don’t even think about serving UTF-8 or even just putting utf-8 in the content type. 😅 And for the JPEG thumbnails I pass a special flag to ImageMagick so that IBM Web Explorer from OS/2 won’t trip. 🤣 And always use link rel="stylesheet" for CSS, because some browsers render inlined CSS as literal text. And … probably more that I forgot by now. 😂
@david@daiwei.me Not sure, actually. Let’s see. Those are the ones where I still have the original disks (or have bought them on eBay again):
- SuSE Linux 6.4 (it’s a massive 7 CD distro with a huge manual, best thing ever)
- OS/2 2.1
- OS/2 Warp 3 (red and blue spine because
$reasons)
- OS/2 Warp 4
- PC DOS 7
- MS-DOS 6.22
- Windows 3.1
- Windows for Workgroups 3.11
- Windows 95 C
- Windows 98
- Windows NT 4 Workstation (still in the mail, though 😅)
- Windows 2000
- Windows XP Professional (last Windows I ever used on my private PCs)
(Plus a few “classic” office products as can be seen here: https://movq.de/blog/postings/2024-05-23/0/POSTING-en.html )
Vulkan Adds Extension For OCP’s Microscaling MX Formats To Help Machine Learning
Vulkan 1.4.356 is out today and it’s interesting for the lone new extension debuting: VK_EXT_shader_ocp_microscaling_types. The VK_EXT_shader_ocp_microscaling_types is for enabling the Open Compute Project’s Microscaling MX data types to help with machine learning workloads with Vulkan… ⌘ Read more
@movq@www.uninformativ.de Yeah. The thunderstorm was supposed to hit us, sneak north and south around us, directly pay us a vistit again, miss us to the north, directly hit us, and now it’s back to a northern diversion. The thunder heavily roars in the distance at the moment. It’s down to just 10 liters. A mate just got a wet laundry, though, and had to mob up a – luckily – just tiny flood.
As I type, the first drops begin to fall.
Linux 8250/16550 UART Serial Driver Seeing Some Modernization Work In 2026
The Linux 8250 serial driver as the universal/legacy driver for 8250 and 16550 type serial ports has been seeing some modernization work recently with a number of 8250 serial patches having now been merged for the Linux 7.2 kernel… ⌘ Read more
Canonical’s Upcoming AI Tool: Talk to Ubuntu Instead of Typing
This week the Ubuntu desktop’s director of engineering announced they’re bringing speech-to-text dictation to Ubuntu Desktop, aiming for an experience “that feels like a natural part of the desktop while respecting user privacy and running entirely on local hardware.”
“Speech recognition has become a common feature on modern platforms, and we think it … ⌘ Read more
Users Cry Foul After AMD Stripped Memory Crypto From Its Consumer CPUs
An anonymous reader quotes a report from Ars Technica: A decade ago, AMD added a protection to its high-end CPUs to protect them against cold boot attacks and other types of physical exploits that siphon sensitive data out of the connected memory chips. Short for Transparent Secure Memory Encryption, TSME encrypts the entire conten … ⌘ Read more
Jennifer Lopez Reveals the Oscar-Winning Movie Type She Can’t Stand
Jennifer Lopez was asked to name the worst movie she has watched, and her answer was an Oscar-winning film. She then spoke about the genre she prefers. She added that the slow-moving movies aren’t her type. While she enjoys some films in that style, the movie she stated remains on her dislike list. Jennifer Lopez […]
The post [Jennifer Lopez Reveals the Oscar-Winning Movie Type She Can’t Stand] … ⌘ Read more
The trendy underwear women should avoid. And the type they should try
Here are the best fabrics to look out for when buying your next pair of undies. ⌘ Read more
QuiznessDesk, Tuesday, June 09
Is the Tropic of Cancer north or south of the equator?
What type of dogs are commonly kept by Inuit communities?
Which cartoon character lives at 1313 Webfoot Walk?
Perhaps it was a case of shocking luck that Anthony Starr was cast as both Jethro West and Van West in what classic New Zealand TV series?
Which band released the 1999 comeback single `Maria`?
Which historical figure opened the 1936 Olympic Games?
Niue is a self-governing coral island in free associat … ⌘ Read more
Meurtre de Lyhanna: les violences faites aux enfants, «priorité» en trompe-l’oeil de Darmanin
S’il présente ses «excuses» pour les dysfonctionnements de la justice dans cette affaire, le garde des Sceaux évoque surtout des sanctions à venir contre des magistrats. Il refuse d’examiner sa responsabilité politique. Et balaye la question des moyens alloués à ce type d’enquête, pourtant cruciale. ⌘ Read more
QuiznessDesk, Friday, June 05
Which of the following large lakes is not in North America? Michigan, Huron or Victoria?
What type of animal is a Bombay Duck?
New Zealander Wendy Jarnet holds the title of having the world’s largest collection of paraphernalia related to what back-of-the-alphabet safari mammal?
Which `P` is the book of the Bible that comes after Job and before Proverbs?
Which of the following is not one of the standard playing pieces in the game of Monopoly? Ship, Hat or Bike?
By … ⌘ Read more
The untapped potential of New Zealand’s $1b fibre sector
The almost billion-dollar New Zealand fibre industry has “untapped potential”, according to new research.
The Future of Fibre Aotearoa research maps NZ’s diverse fibre types together as a connected sector for the first time. ⌘ Read more
Elixir v1.20 released: now a gradually typed language
Article URL: https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/
Comments URL: https://news.ycombinator.com/item?id=48388324
Points: 79
# Comments: 14 ⌘ Read more
不知道手里的 Type-C 数据线是什么线?用 WhatCable 一查便知[macOS]
你的抽屉里塞满了看起来一模一样的 Type-C 数据线,有的充电速度飞快,有的却慢得像蜗牛爬。有的可以接 8K 显示器,有的只能 1080。有的传输数据飞快…接口上的标识根本说明不了什么,每一条 Type-C 数据线都不一样。@Appinn WhatCable 是一款可以帮助你识别 Ty ⌘ Read more
@movq@www.uninformativ.de It’s the “Lyse types the entire HTML by hand” generator. Yes, no kidding. I write articles so rarely, that I can do that once in a while. It’s fun to some degree, but also not.
After some time, I finally recorded some Vim macros to insert <b>…</b>, <var>…</var>, <span class=s>…</span> etc. around the tokens. This helped a little bit. But I was still questioning my mental state doing it like that. I also had to fix a bunch of the end tags by hand, because the word movement wasn’t enough or the end movement went too far. Quite the annoying process for sure.
But I think the HTML looks a wee bit nicer and is maybe even semantically a little bit better than having only <span>s everywhere. I find the <span class="whatever"> just soo awfully long. Of course, I never look at the code again, but knowing, that e.g. there is a <b> and it saves so many bytes in comparison, makes me happy. It is a more elegant solution in my opinion. Not by much, but better nonetheless. It’s a matter of simplicity. Admittedly, even I can’t avoid the <span>s alltogether. Oh well. On the other hand, I’m sure that this does not make any difference whatsoever. I bet, nobody and nothing, like a screenreader, analyzes the HTML for that, where this would be truly useful.
Oh! Maybe text browsers, though. It just occurred to me while composing this reply. :-) Haha, I lost my bet quickly. w3m picks up at least the <b> for keywords and builtin types, <u> for filenames and <i> for comments. Yey. No different styles for <var> and <mark>, unfortunately. elinks only renders the bold. It’s cool that I had the right intuition right from the beginning, despite being unable to pinpoint it. :-)
All the <span> hell with common syntax highlighters is a downer for me that keeps me from looking more into them. If I wrote more articles, I might rig something up with Pygments. At least that’s somehow positively connotated in my brain. Not sure if it actually deserves it, but I dealt with that in some loose form (can’t even remember) years and years ago. Apparently, it wasn’t too terrible.
To prepare the table of contents, I used grep and sed with some manual intervention in the end. The entire process can be improved. Absolutely.
You wrote your own site generator, didn’t you?
Best Sleep Trackers of 2026: Oura, Whoop, and Eight Sleep
I tested the top sleep wearables for every type of sleeper, including devices from Oura, Whoop, and Eight Sleep. ⌘ Read more
Keychron K2 HE Concrete Edition Review: Rock-Solid Typing
Keychron’s K2 HE Concrete Edition sounds like a cute gimmick, but as I discovered, there’s a really solid keyboard beyond the absurd choice of materials. ⌘ Read more