news
Programming and Standards
-
Dark Reading ☛ CSS: The Hidden Threat Lurking in Your Inbox
While HTML is the structure that powers web pages, Cascading Style Sheets (CSS) address design and presentation of the page. From the text to colors and tags to images, CSS manages how a page is displayed. And according to Gareth Heyes, Web security researcher at PortSwigger, it can be weaponized because of its multiple capabilities.
"It's almost like a programming language now," Heyes says. "CSS was on the back burner and largely ignored. [Now] CSS and HTML alone — no JavaScript, no attachments — are enough to build a working keylogger" stealing sensitive and confidential user information.
-
Sandor Dargo ☛ C++26: #embed
If you’ve ever needed to ship a binary file — a certificate, a small image, a default configuration — inside a C++ program, you know the ritual. You find or write a tool that converts the file into a C array, you wire it into your build system, and you pray that nobody forgets to re-run the conversion after updating the original file.
C++26 ends this with #embed (P1967R14 by JeanHeyd Meneide). Think of it as #include for binary data — a preprocessor directive that turns a file into a comma-separated sequence of integer constant expressions, directly at compile time, with no external tools.
-
Adam Johnson ☛ Git: exclude commits by an author in git log with --perl-regexp
git log has an --author option to limit the output to commits from matching authors:
$ git log --author=<pattern>
But there’s no option to invert the filter and show commits from all authors except those matching a pattern.
Instead, you can build the negation into the pattern itself, using a regular expression with a negative lookahead, enabled with the --perl-regexp option: [...]
-
Dmitri Sotnikov ☛ (iterate think thoughts): Painting with Gaussians
Last year I built an edge-aware pixelation tool to turn images into pixel art by deforming a grid so that it follows image edges instead of naively using a fixed grid over the picture. Using an edge adapter grid bent to inform the color and brightness of the pixels worked well for keeping edges crisp and preserving details.
I later realized the same edge information could also be applied in a context of digital painting. A painting program has to figure out where to put brush strokes, how big should they be, and which direction should they flow in. Much of that is already encoded in the edges since they mark the boundaries between regions. These are the contours around areas of objects that a brush would trace, and their absence indicates generally flat areas where a few broad strokes should suffice.
-
LWN ☛ b4 0.16.0 released
Konstantin Ryabitsev has announced the release of version 0.16.0 of the b4
software-development tool. The biggest change is the addition of
bug-tracking support: [...]
-
Python
-
Juha-Matti Santala ☛ D is for dictionaries - Python A to Z
Dictionary is a data structure in Python that in other contexts and languages is called an associative array, akey-value store or a map. It’s a handy and efficient data structure for when you need to store and retrieve a value based on a key.
This is a 101 level introduction to dictionaries.
-
-
Java/Golang
-
University of Toronto ☛ Looking at the memory map of a Go 1.27 program on Linux
Many years ago I wrote an entry about a deep dive into the Linux OS memory use of a simple Go 1.11 program. For reasons of my own, I'm returning to this in Go 1.27rc2, because these days Go can tell us much more information about memory usage. As before, I'll use this very simple program: [...]
-
Jan Skriver Sørensen ☛ Perils of migration off oh-my-zsh
ABANDONING OH-MY-ZSH MADE me realize it provided a lot more convenience and niceties than I first realized. Originally I chose oh-my-zsh for no other reason than it being a drop-in replacement for the, at that time, defunct prezto. Fact of the matter was that I didn’t really use any of the plugins and none of the shortcuts, so after being influenced by some blog posts and quite a few reddit comments dissing oh-my-zsh and praising the benefits of moving away from the big old and slow framework, I figured I’d just abandon it also.
Now, some things need to be set up manually. This was obvious as a zsh installation from brew doesn’t do anything but the bare and limited defaults of zsh.
-
Filip Roséen ☛ A shell exclamation mark is not for yelling. Be lazy.
You and I are probably very different; my choice of editor is likely to make you cringe just thinking about it, and your favorite programming language is statistically — definitely — not mine.
There is however one thing (and maybe that's the only thing) we all have in common; we are a bunch of lazy bastards.
-
-
Standards/Consortia
-
Tomasz Kramkowski ☛ Stop Sending Me Your Errors
If your email system cannot generate a useful text/plain version of the email, then it doesn't help anyone to tell them that. If scenario 1 sounded desirable to you, you could instead use HTML comments to give the victims of your HTML email more or less an equivalently confusing experience, without ignoring the RFC or pissing off random [Internet] nobodies.
-
APNIC ☛ IETF 126 in space
The initial effort to standardize this technology relied on store-and-forward communications via the Bundle Protocol, undertaken primarily by NASA’s Jet Propulsion Laboratory (JPL). This work was subsequently taken up within the IETF by the Delay-Tolerant Networking (DTN) Working Group. The DTN Working Group built upon the Interplanetary Internet concepts (originally developed by IPNSIG) to support communications where continuous end-to-end connectivity cannot be assumed.
Unlike traditional networks that rely on immediate, continuous paths between sender and receiver, DTN revived a store/forward practice which was common in the ad-hoc message relay networks in use in the 1980s. The Bundle Protocol (RFC 4838) included: [...]
-