Tuesday, November 14, 2023
A windy day. The leaves clattering down out of trees surprisingly late. The sun down behind the hills by 4pm. The cat dissatisfied.
Video version of the zig and guile pdf
[https] posted by acdw on November 30, 2023
Why code in Python+C if you can code in Lisp+Zig?
[https] posted by acdw on November 30, 2023
[https] posted by acdw on November 29, 2023
[https] posted by acdw on November 29, 2023
why do I feel like the answer is "don't use coding assistants"
[https] posted by acdw on November 29, 2023
whisky: A modern Wine wrapper for macOS built with SwiftUI
[https] posted by dozens on November 29, 2023
[https] posted by dozens on November 29, 2023
Writing Documentation for Your House
[https] posted by dozens on November 29, 2023
jaq: A jq clone focussed on correctness, speed, and simplicity
[https] posted by dozens on November 29, 2023
[https] posted by acdw on November 29, 2023
Awesome Technical on the Dell Wyse 3040
[https] posted by wsinatra on November 28, 2023
The text and the code go hand in hand
[https] posted by dozens on November 28, 2023
[https] posted by acdw on November 28, 2023
[http] posted by SpindleyQ on November 27, 2023
Friendship ended with Obsidian/LaTeX, now Typst is my best friend
[https] posted by acdw on November 27, 2023
If Scheme numbers were like the rest of Scheme
[https] posted by acdw on November 27, 2023
getting started with technical writing
[https] posted by acdw on November 27, 2023
[https] posted by dozens on November 26, 2023
In the Valley of the Shadow of Planned Obsolesense
[https] posted by piusbird on November 26, 2023
someone else wrote Pius's Docker Rant
[https] posted by piusbird on November 26, 2023
As a citizen of a country that still is within the European Union, I am probably legally required to make fun of the United Kingdom, and Brexit is only one in an ever-growing list of reasons why I might want to do that. But there is one thing that I cannot complain about, and that is their government's website.
I could not find it anymore, but a while ago, I read a blog post about someone watching someone else use a PSP to access GOV.UK on some free Wi-Fi to do whatever business you might have on your government's website. They used that as an example of how good Web design allows accessibility, even to people whose only device might have an incredibly limited browser and who still need to fill out governement forms online. My own experience with browsing the web on a PSP teaches me that accessing any website nowadays is extremely difficult, but I am willing to believe that blog post because GOV.UK's design sounds like it could actually fit on a PSP, or at least still be readable.
GOV.UK's design system causes the website to often be listed on lists of "brutalist websites", due to the design being all about clearly displaying what people are looking for, unlike what most heavily monetized blogs or most web apps do now.
But we're not here to talk about website design of course. Another interesting and much more relevant part of the UK governement website is that they have feeds, and a lot of them. Integrating the UK transport accident investigation branches into https://tilde.town/~lucidiot/itsb/ was trivial, just pick the right filters and get your tailored Atom feed. I have started to randomly stumble upon the feeds of other UK public bodies, and I think I'll have to soon spend more time trying to list all the feeds they have because there's a lot to discover. A lot of feeds, of XML namespaces, of relationships to European projects, and probably more.
Let's just start with this rather simple feed: you can get updates on the current national terrorist threat level set by the MI5. I was both surprised at the fact that that's a feed, a feed that only gets updated at most twice a year, and at the fact that they have a separate threat level set for Northern Ireland. I'm fairly sure having a separate Vigipirate level in France for Corsican independentists would just be a self-fulfilling prophecy, causing them to attack more.
I naively hope the UK someday stops all its political bullshit, but only so they can keep feeding me more feeds, and inspire other countries to do the same.
Fraunces, an "Old Style" wonky font
[https] posted by acdw on November 25, 2023
[https] posted by dozens on November 25, 2023
we didn't do sekret santa last year cause "we forgot" and this year it falls unto me. Welcome back to "THE RETURN OF" Glorious Trainwrecks Sekret Satan 2023!
This year I'd like to start by addressing a query people have asked about the Sekret Santa event, because it seems a lot of you had this concern:
Q. I haven't finished a previous year's Sekret Santa, is it still okay for me to enter again this year?
A. It IS okay! please do not feel bad about entering Sekret Santa even if you couldn't finish a previous one.
We're all doing this for free, and it seems unreasonable to force someone to finish an overdue assignment without pay. this is meant to be fun, not a job.
if you didn't finish an old santa, then that is what happened and we must simply move on and accept it.
"ALL DEBTS ARE FORGIVEN"
All previously unfinished santas have been forgiven. You are now free of your debt.
I used to have a recurring nightmare where my teachers tracked me down and forced me to do all the homework I never completed. Let's not make that nightmare a reality.
Onward!
The Instructions:
Step 1: Post your list in the comments below. A short list of what you want your game to include. There are a few additional constraints to this this year, (see below)
Step 2: On 8 December, You will be told your recipient, and you will be tasked with making a game for them. You will also be invited to one of two discord servers where you can talk about developing your project without your recipient knowing! unless I forget this part! it's my first year running this
Step 3: Then you will submit your games before the soft deadline of 5th january OR ANY TIME AFTER!! I'm not the boss of you!
Additional Constraints on lists:
I noticed in recent years lists were frequently becoming longer, more complicated, and highly specific. people were treating the list like they were commissioning a specific dream game, which is not how we want this to work, or fun for the list's recipient to make something that might be out of their remit to actually make.
Instead of enforcing rules on how much you're allowed to request, I instead wanted to just make people aware of this and determine the fairness and length of their list using their own intuition. (recommended about 4, 5, or 6 bullet points)
try and avoid requesting a specific genre, and remember to allow your recipient to play fast and loose with what you put on your list. it's their game, and you may be surprised by the end result not resembling what you had in mind! that's part of the fun!
Good luck!!!
Extending a language - writing powerful macros in Scheme
[https] posted by acdw on November 22, 2023
[https] posted by acdw on November 22, 2023
Email obfuscation: What still works in 2023?
[https] posted by acdw on November 22, 2023
[https] posted by dozens on November 22, 2023
[https] posted by acdw on November 21, 2023
IMAX Still Runs on PalmPilot Operating System
[https] posted by dozens on November 21, 2023
Amulet is a free Lua-based audio/visual toolkit suitable for small games and experimentation.
[https] posted by dozens on November 21, 2023
HOW TO DRAW A DUCK IN GROFF WITH GREMLIN AND PIC
[https] posted by dozens on November 20, 2023
rss "should be used for so much more than just blog posts and statuses"
[https] posted by acdw on November 20, 2023
~brennen is a fellow townie who plays the long game. His blog exists since 1997, and although the posting frequency has lowered, it is still active today. Look at the archive and be amazed.
In the middle of an IRC conversation, I mentioned how I was only reading the blog articles of my friends that I spot in my feedreader, right after mentioning I read 40 of brennen's posts. He proceeded to build an Atom feed with every single post from his website all the way to November of 2020, which is as of writing still available here. If you want to stress test your feedreader, or how much you like to read blog posts, add this feed. Don't expect it to be updated though since it was generated manually just once.
I went through every single of the 1960 entries of this special feed in just one month, and I read the other few dozen posts that were posted in the years since. It was really fun to follow along as ~brennen grows up. He told me he thought the older entries were embarrassing, and I can understand that since I also feel shame at things I put up online when I was younger, most of which I have deleted ever since. But going through all of his posts was fascinating. I wasn't laughing at young him or thinking any less of present him. I was just watching someone growing up a decade earlier than me, in a different country, with a different culture. I believe there is some great historical value in this online diary, just like how historians are studying the past by reading diaries. I hope ~brennen carries on with this great undertaking and continues shoving random tidbits of his life into this website. This is the World Wide Web at its finest: humans just being human.
[https] posted by acdw on November 19, 2023
Sketchbook: Is My Toddler a Stochastic Parrot?
[https] posted by dozens on November 17, 2023
classic dos games in the browser with full controller support
[https] posted by dozens on November 17, 2023
a tiny clojure interpreter cc m455
[https] posted by acdw on November 17, 2023
[https] posted by dozens on November 17, 2023
[https] posted by acdw on November 17, 2023
Previously: reading: master and commander
After thinking for a while that I should pick up more of this series (apparently for five years), I bought copies of the following:
I’m through the first two and about halfway into The Mauritius Command.
These remain really strange and wonderful books. They cycle through subtle and complicated human relationships, absurdly specific sailing nerdery, comedy, tragedy, violence, the machinery of empire.
Every bit worth the time, so far.
Numbat, a programming system with dimensions as types
[https] posted by acdw on November 16, 2023
The Revenge of the Hot Water Bottle
[https] posted by dozens on November 15, 2023
[https] posted by dozens on November 15, 2023
the small website discoverability crisis
[https] posted by acdw on November 15, 2023
[https] posted by dozens on November 15, 2023
[https] posted by acdw on November 14, 2023
You should be using e25519 keys
[https] posted by wsinatra on November 14, 2023
[https] posted by dozens on November 14, 2023
You should track your finances in TOML
[https] posted by dozens on November 13, 2023
don't use RSA for ssh no more mkay
[https] posted by acdw on November 13, 2023
Last time, I posted about the incredible amount of RSS feeds the NHC vomits. While trying to delve into those feeds, particularly the ones dubbed as GIS feeds that use GML, I found an XML namespace meant to describe cyclones. Way to make your feeds way more epic!
With the help of the NHC's example files, published solely to help developers work with their feeds, and GIS RSS feeds documentation page, I cobbled together an XSD to better document this namespace.
<rss version="2.0" xmlns:nhc="https://www.nhc.noaa.gov/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" https://www.nhc.noaa.gov https://envs.net/~lucidiot/rsrsss/xsd/nhc.xsd " > <channel> <!-- ... --> <item> <!-- ... --> <nhc:Cyclone> <nhc:center>38.43317, -82.02346</nhc:center> <nhc:type>TROPICAL STORM</nhc:type> <nhc:name>FLORIDA MAN</nhc:name> <nhc:wallet>EP3</nhc:wallet> <nhc:atcf>EP872023</nhc:atcf> <nhc:datetime>11:11 AM PDT Wed Jan 25</nhc:datetime> <nhc:movement>NE at 54 mph</nhc:movement> <nhc:pressure>984 mb</nhc:pressure> <nhc:wind>115 mph</nhc:wind> <nhc:headline>...FLORIDA MAN MESSES UP THE TOWN OF HURRICANE, WV...</nhc:headline> </nhc:Cyclone> </item> </channel> </rss>
Note that in this example, I am using the xsi:schemaLocation
attribute to tell any XML schema validators where the XSD for the nhc
namespace is located. This can help you if you are using an XML editor to write your RSS feeds, or want some automatic validation of the validity of your feeds with namespaces and features that go beyond the W3C Feed Validation Service. Let's have a look at all those new XML elements:
<nhc:Cyclone>
<nhc:center>
<nhc:type>
<nhc:name>
<nhc:wallet>
The storm wallet: Back before hurricane forecasting became computerized, all of the hurricane data was stored in binders, called wallets. There are five wallets for each of the three areas of responsibility of the NHC and the CPHC.
Storm wallets are numbered with two letters representing the area of responsibility, followed by a digit from 1 to 5 matching the storm advisory number. The two-letter codes for areas of responsibility are:
<nhc:atcf>
Storm identifier in the ATCF software. This is the software used for hurricane forecasting ever since it became computerized. It can be used to find the raw data from that software on the NHC's public file server.
ATCF IDs begin with a two-letter code for the area of responsibility, followed by a two-digit storm number and the four-digit year in which the storm occurs. The two-letter codes for areas of responsibility are:
AT
code for storm wallets.Storm numbers 01 to 30 are supposed to be unique storm numbers per season. Storm numbers 80 to 89 are used for training purposes and should be ignored when trying to process real ATCF data. Storm numbers 90 to 99 are areas of interest to forecasters that may not actually be storms and may be reused in the same season.
I recommend using storm numbers between 80 and 89 if you want to mess around and create fake storms, since those are explicitly designated as training or testing data that should be discarded. Also note that storm numbers 31 to 79 are not assigned, and that they assume there will never be more than 30 storms in one year. I'm sure climate change will fix that.
<nhc:datetime>
%I:%M %p %Z %a %b %d
. The commonly used timezones are CDT on the Atlantic reports, PDT on Eastern Pacific reports, and HDT on Central Pacific reports.<nhc:movement>
The direction and speed of movement of the storm, expressed as a cardinal direction and a speed, usually in the form [direction] at [speed] mph
. The direction can be a cardinal (N, S, E, W), intercardinal (NE, SE, SW, etc.) or secondary intercardinal direction (WNW, ESE, etc.). Speeds are non-negative integers, and always in miles per hour.
Note that this is a manually written value, not necessarily intended for machine consumption, and that nothing prevents other values from being set. Other known values include Stationary
and Nearly stationary
.
<nhc:pressure>
[pressure] mb
.<nhc:wind>
[speed] mph
.<nhc:headline>
…
, U+2026).All of the child elements of <nhc:Cyclone>
are required.
And as with most of the XML namespaces that I showcase on this feed, I added support for it on the XSLT that allows this feed to be displayed on most modern web browsers without RSS support. View this post in your browser and admire the additional hurricane information available!
[https] posted by dozens on November 12, 2023
meow5: A stack-based pure inlining concatenative programming language written in NASM assembly
[http] posted by dozens on November 12, 2023
Eli shoutout by Piper Haywood on manuelmoreale's People & Blogs
[https] posted by dozens on November 11, 2023
[https] posted by acdw on November 11, 2023
Statickle: Static site generator in a Tcl script
[https] posted by dozens on November 10, 2023
Hackers is a quick & punchy print-and-play card drafting & hand management card game
[https] posted by dozens on November 10, 2023
astro: bollux inspired gemini browser using shell script
[https] posted by dozens on November 10, 2023
[https] posted by piusbird on November 10, 2023
[https] posted by acdw on November 10, 2023
5 metrically equivalent coding fonts (plus more features)
[https] posted by acdw on November 10, 2023
Obligatory D&D Basketball Post cc: archangelic
[https] posted by dozens on November 10, 2023
postmarks - a single-user bookmarking website designed to live on the Fediverse
[https] posted by dozens on November 09, 2023
shuttlecraft - a single user activitypub server
[https] posted by dozens on November 09, 2023
[https] posted by acdw on November 08, 2023
Solarpunk Prompts Podcast Season 2
[https] posted by dozens on November 07, 2023
[https] posted by acdw on November 07, 2023
we ended up putting down the dog this weekend.
he was really a once in a lifetime dog. sometimes another dog will do something weird or unexpected, and i don’t know what their motivation is for doing that. but this dog never did anything that wasn’t motivated by love. all he ever wanted was to be with his people, and to cuddle up with them and love on them. he was the sweetest, most gentle dog.
it’s definitely weird and sad that he’s gone. but it’s also kind of alarming at how normal it is already for him to be gone.
the hardest part was actually making the decision to do it, and the days leading up to it. that’s when i felt a lot of grief. but also i feel like i had already spent a lot of time during the last year mourning the dog he used to be. he stopped being quite as active and had a hard time getting around. and he often preferred to spend time alone which, as i mentioned above, was very unlike his usual social, loving self. he had shifted at some point from being my best friend to being a sort of roommate.
he became a sort of walking ghost, haunting the house with his pacing, and with the memory of who he used to be. who we used to be together.
we invited our longtime house call vet to our house to manage the death. we’ve been friends (us and the doctor, and the doctor and our dog) for twelve years or longer. dog had had a rough morning that day. pacing, agitated, restless. he had just settled down when the doctor arrived. we gathered around and shared stories and had a few laughs and shed a lot of tears. he gave dog a sedative shot, and dog immediately conked out. he usually resists sedation really hard. but he was ready to rest i guess. once he was all the way out, the doctor gave him a small injection, and he was gone within like sixty seconds. it was really fast, and it was really peaceful and gentle.
i miss him a lot. i’m afraid of forgetting him because i don’t have an especially good memory.
[https] posted by dozens on November 06, 2023
the ultimate oldschool pc font pack
[https] posted by acdw on November 06, 2023
[https] posted by acdw on November 06, 2023
A FORTH in 422 bytes — the smallest real programming language ever as of yet.
[https] posted by dozens on November 06, 2023
Sixel, short for "six pixels", is a bitmap graphics format supported by terminals
[https] posted by dozens on November 05, 2023
The NOAA's National Hurricane Center and Central Pacific Hurricane Center are two distinct official bodies responsible for watching out for cyclones around North America. There used to also be an Eastern Pacific Hurricane Center, with the NHC being solely responsible for the Atlantic side of things, but those two got merged. The CPHC's website got merged with the NHC's, but they remain distinct entities, perhaps for redundancy if one of them loses to a cyclone.
The NHC provides a myriad of feeds, with an RSS button available on the header of every webpage, but the list of feeds it links to is quite hard to read. Feed autodiscovery is supported, with 11 of their feeds listed as <link />
tags. Among this hodgepodge of feeds, you'll find:
That's a lot. Most of these feeds are divided by region (Atlantic, Central Pacific or East Pacific, per WMO conventions), and by "storm wallet". A storm wallet is a large binder or collection of binders that forecasters used to archive all of their data into once each cyclone dissipates, numbered 1 to 5, to match the maximum advisory level reached. In the case of those feeds, this means each storm wallet is actually the current advisory level for the storm. Some feeds also have versions in Spanish, updated by their Puerto Rico office when they feel like it.
To make it slightly easier for feed aficionados (afeedcionados?) to figure out what they might be interested in, I wrote a terrible script to build an OPML file listing every available feed. You can access it and add it to your feed reader here; feel free to remove the likely numerous duplicates from your reader afterwards.
Note that some of these feeds include a <gml:Point>
element in the items describing weather systems, but it isn't wrapped within a <georss:where>
element, making those feeds invalid. This strangeness is what made me have a deeper look into GeoRSS in the first place, leading to the series of articles I posted in the last few weeks.
[https] posted by dozens on November 04, 2023
Why You Should Write Your Own Static Site Generator
[https] posted by dozens on November 04, 2023
Mercedes copywriters really deserve it all
[https] posted by acdw on November 03, 2023
[https] posted by acdw on November 03, 2023
[https] posted by acdw on November 03, 2023
How much flour would it take to turn Lake Superior into bread?
[https] posted by dozens on November 02, 2023
Mastering the curl command line with Daniel Stenberg (3hr 40m (!!) video)
[https] posted by dozens on November 02, 2023
I designed my own keyboard layout (was it worth it?)
[https] posted by acdw on November 02, 2023
[https] posted by acdw on November 01, 2023
[https] posted by wsinatra on October 31, 2023
[https] posted by wsinatra on October 31, 2023
[https] posted by acdw on October 30, 2023
NoiSQL — Generating Music With SQL Queries
[https] posted by dozens on October 30, 2023
2023-10-29 14:04
okay, so, a few posts ago, i fucked with people's rss feeds because my brain is indecisive, and changed my posts from a flat directory to a year-based directory, but i think i prefer the flat directory more for simplicity lol, so i've moved back to a flat directory of posts, which, of course, comes along with messing with rss feeds again.
feel free to unfollow my feed if you dislike this or just delete and re-add my feed url.
this is mostly because i like the simple-but-readable url format that comes along with this approach, i guess.
i also plan on still using the whole yyyy-mm-dd hh:mm
format, but i plan on
converting it to something like Friday, October 2nd, 2023
or something, so it
reads nicer on screen readers than a list of numbers.
anyway, that's another blog post i've managed to get up while people are sleeping while i'm only half asleep and not completely drained.
have a good one.
I have covered nearly everything about GeoRSS, but not exactly everything. I promise, someday I’ll be posting about something else, but for today, we’ll have to delve deep into the mess that is geolocation.
If I ask you to give me something that will precisely point at some place, any place in the world, including the middle of the ocean, you’re likely to give me so-called GPS coordinates. Those actually are WGS 84 coordinates. They represent a location on Earth, assuming the Earth is a perfect ellipsoid (a sphere, but slightly squished at the poles), whose center is the planet’s center of mass. But there are a lot of other ways to produce coordinates. Even now that GPS coordinates are ubiquitous, many other systems are still in use, for historic reasons, due to technological constraints, or for an increased precision.
Let’s start with a simple one. How do you represent coordinates in three dimensions? We did see earlier that GeoRSS has <georss:elev>
to set the elevation in meters, but what if you are trying to represent a line that is sloped? For example, you are making your own Strava and want to show that you went up and down a hill. Your track won’t be perfectly at sea level, it will have an altitude that changes with each point. You need some way to include the altitude along with the latitude and longitude. In a geospatial database, the typical GPS coordinate system in use is numbered EPSG:4326; store this number next to your coordinates and the database knows you are speaking in WGS 84. But if you want to add a third coordinate for altitudes, you will have to use a different version of the system numbered EPSG:4979. It’s the same as GPS, but there’s a third axis for a height, starting from the ellipsoid defined by WGS 84, and measured in meters.
Let’s go further. With all the hype around a bunch of space agencies trying to build a moon space station and two moon bases and sending rovers and all, we have to start thinking about an equivalent of GPS for other planets, and a way to refer to places on any planet. Fortunately, space agencies have had this problem a long time ago, and they have their solutions.
If you define your own geographic coordinate system, you can make your own ellipsoid to describe the shape of the planet, set the origin point (the 0° north 0° east point), and define how altitudes are expressed if you want to have a third dimension. On top of that, you can define a projection to flatten your planet, but that’s a whole another can of worms and I won’t deal with that here. You could define a coordinate system for the moon, with an ellipsoid that has the size and shape of the Moon, centered on the Moon’s center of mass, and define wherever you want your origin point to be. And you can do the same thing for basically anything, assuming you can somehow trick geospatial databases into bending a spheroid hard enough to fit your needs.
And that’s what the IAU did. Those are the same people who said Pluto isn’t a planet, so I don’t know if you can really trust them, but I haven’t seen any other coordinate system for other planets that was in widespread use within the space industry. There are lots of coordinate systems and projections for planets and moons, including some for Earth because we clearly needed more. For the Moon, you’ll have to use IAU2000:30100, aka Moon 2000. This doesn’t mean the Moon is Y2K-ready, it just means this was adopted by the IAU in 2000. Moon 2000 is defined in a geospatial database like so:
GEOGCS["Moon 2000", DATUM["D_Moon_2000", SPHEROID["Moon_2000_IAU_IAG", 1737400.0, 0.0]], PRIMEM["Greenwich", 0], UNIT["Decimal_Degree", 0.0174532925199433]]
The PRIMEM
specifies the primary meridian, at 0°; it is called Greenwich even though it definitely doesn’t exist on the Moon, because nobody cares about its name. We also don’t specify anywhere what the actual location of the origin point is, because databases don’t care about that either. The UNIT
specifies that we are using decimal degrees for coordinates, with the long number being the multiplier to convert degrees to radians. Those are almost always present in most coordinate systems.
What matters for the Moon is the SPHEROID
, with its two parameters, the semi-major axis and the inverse flattening. A spheroid is just another name for an ellipsoid.
In a sphere, the semi-major axis is the radius. In an ellipsoid, that would be the largest radius, as opposed to the semi-minor axis. The inverse flattening defines how hard you should squish the sphere to get an ellipsoid, so it allows calculating the semi-minor axis. Here, we have 1737400
as the semi-major axis, which matches the radius of the Moon in meters, and 0
as the inverse flattening, meaning this is a perfect sphere.
Remember how I mentioned in a previous post that GML is designed to represent anything about geospatial data? You can check out the GML representation of Moon 2000 if you wish to be spooked.
So let’s say we have some Moon 2000 coordinates, for example Tranquility Base, at 0.6875°, 23.433333°. How do you put that into GeoRSS?
Since databases don’t care one bit whether what you are doing makes any sense, you could convert directly from Moon 2000 to WGS 84. That would make the database assume that your coordinates are just on a very weirdly-shaped Earth. Since coordinates are in degrees, the size of the Earth doesn’t matter, and the coordinates will remain unchanged after this conversion; maybe with some slight changes to account for the differently-shaped ellipsoid. You are now in some weird place in Democratic Republic of the Congo.
To do the proper conversion, you will need to do some trigonometry. Your Moon 2000 coordinates and the Moon 2000 spheroid are related to the center of mass of the Moon. WGS 84 is the same for Earth. Knowing the distance between the Earth and the Moon’s centers of masses, and knowing the position of the Moon on the Earth’s surface at a given date and time, it should be possible to get the offset in degrees to add to the latitude and longitude to said position to get the position of your target on Earth, as well as the altitude from Earth.
That’s a mess, and you can do something easier than that: just make it someone else’s problem. GeoRSS GML lets you set a different coordinate system using the srsName
attribute. And if you are using any amount of dimensions other than two, you can use srsDimension
as well.
Here is an example of one of the telescopes of the VLT, the same that I mentioned in my post about circles in GeoRSS, but using a third dimension in its coordinates instead of the <georss:elev>
tag:
<georss:where> <gml:Point srsName="urn:ogc:def:crs:EPSG:9.0:4979" srsDimension="3"> <gml:pos>-24.62759969859908 -70.40503541618583 2635</gml:pos> </gml:Point> </georss:where> <georss:featureName>Antu, VLT-UT1</georss:featureName> <georss:featureTypeTag>telescope</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag>
To specify that I am using EPSG:4979, I am using the srsName
attribute with a URN, specifically an OGC URN, which defined that def:crs:
defines a coordinate reference system. EPSG
says the authority defining this system is the EPSG, 9.0
is the version number of their Geodetic Parameter database, and 4979
is the identifier of the system within that database.
I am also using srsDimension
, which allows specifying how many dimensions the coordinate system has. While this could be guessed from the coordinate system, this allows feed parsers and validators to know that they should expect coordinates of this amount of dimensions without having to know about coordinate systems, which can simplify implementations. Perhaps you can just send the srsName
verbatim to some other software library specialized in coordinate systems.
And here is Tranquility Base! Since the IAU2000
coordinate systems and projections do not have a URN, I am instead using a URL to the GML definition of the coordinate system I want.
<georss:where> <gml:Point srsName="https://spatialreference.org/ref/iau2000/30100/gml/"> <gml:pos>0.6875 23.433333</gml:pos> </gml:Point> </georss:where> <georss:featureName>Tranquility Base</georss:featureName> <georss:featureTypeTag>landing-site</georss:featureTypeTag> <georss:relationshipTag>used-as-example</georss:relationshipTag>
srsName
The spatial reference system used for this geometry. This should be either a URN for a common system, for example urn:ogc:def:crs:EPSG:<version>:<identifier>
, where <version>
is the version number of the EPSG database of spatial reference systems, and <identifier>
is the number of the system. For EPSG:4979
, you could use urn:ogc:def:crs:EPSG:9.0:4979
. For an SRS that does not have a URN, or has a custom definition, you can use a URL that points to the definition of this SRS in GML. For IAU2000:30100
, you could use https://spatialreference.org/ref/iau2000/30100/gml/
.
The W3C Feed Validation Service allows this attribute, but does not perform any validation on its value.
srsDimension
The number of dimensions of this spatial reference system. Since the default is the 2-dimensional WGS 84 (EPSG:4326), you will always need to set srsName
along with this. This is always implied by the system you are using, but this makes it easier to validate your data since a GeoRSS validator does not have to know how the SRS defined, or understand the concept of SRS, to be able to tell if you put the right amount of coordinates in your data.
You can set both of these attributes on <gml:Point>
, <gml:LineString>
, <gml:LinearRing>
, <gml:Envelope>
, <gml:Polygon>
or <gml:CircleByCenterPoint>
. You can also set these directly on <gml:pos>
and <gml:posList>
, but the XSD for the GeoRSS GML Application Profile says that "It is expected that this attribute will be specified at the direct position level only in rare cases".
While the W3C Feed Validation Service supports this attribute, it only validates that it is a valid positive integer, not that it matches the specified SRS, or that the coordinates specified in the geometries match this attribute. It also does not allow this attribute on <gml:pos>
or <gml:posList>
.
Everything I've learned building the fastest Arm desktop
[https] posted by dozens on October 28, 2023
[https] posted by acdw on October 27, 2023
Getting my library cards onto my phone the hard way
[https] posted by piusbird on October 27, 2023
Raku is surprisingly good for CLIs
[https] posted by dozens on October 27, 2023
EDN is to clojure what JSON is to JavaScript?
[https] posted by dozens on October 26, 2023
Spellcaster - a lost spoken programming language for teaching for the Apple II and C64
[https] posted by SpindleyQ on October 26, 2023
[https] posted by acdw on October 26, 2023
[https] posted by acdw on October 26, 2023
piusbird said to linkbudz this
[https] posted by dozens on October 26, 2023
faircamp: static site generator for audio producers
[https] posted by dozens on October 26, 2023
[https] posted by dozens on October 26, 2023
[https] posted by acdw on October 25, 2023
[https] posted by acdw on October 25, 2023
Old pinball machines are amazingly complex (video)
[https] posted by dozens on October 25, 2023
feedi: A personal news reader and Mastodon client
[https] posted by dozens on October 25, 2023
Notes on running containers with bubblewrap
[https] posted by dozens on October 24, 2023
mpv create playlists of videos from Invidious with emacs (video)
[https] posted by dozens on October 24, 2023
I will fucking haymaker you if you mention Agile again
[https] posted by acdw on October 24, 2023
[https] posted by dozens on October 23, 2023
[https] posted by acdw on October 23, 2023
How To Make A CPU: 1) Get a rock.
[https] posted by dozens on October 23, 2023
[https] posted by acdw on October 23, 2023
In yet another incredibly niche blog post, I described GeoRSS GML. While working on this, I got quite confused by circles, eenough to decide to just remove any mention of circles in all of the previous GeoRSS posts.
The OGC standard, which is the only currently active standard, and the original archived pages for GeoRSS Simple and GeoRSS GML do not define any specific element to describe a circle. If you want to represent a circle, you can do so using the <georss:radius> element, which will create a buffer around a point.
<!-- GeoRSS Simple --> <gml:point>-24.62759969859908 -70.40503541618583</gml:point> <georss:radius>14.74038882</gml:radius> <georss:featureName>Antu, VLT-UT1</georss:featureName> <georss:featureTypeTag>telescope</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> <georss:elev>2635</georss:elev> <!-- GeoRSS GML --> <georss:where> <gml:CircleByCenterPoint> <gml:pos>-24.62759969859908 -70.40503541618583</gml:pos> </gml:CircleByCenterPoint> </georss:where> <georss:radius>14.74038882</gml:radius> <georss:featureName>Antu, VLT-UT1</georss:featureName> <georss:featureTypeTag>telescope</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> <georss:elev>2635</georss:elev>
However, the XSD defining the GeoRSS GML Profile and the one for GeoRSS Simple, both include ways to specify a circle separately. The OGC standard has links to the schemas and does not state that those schemas are not non-normative, as many other specifications do. That means that in theory, it is completely legal to use them.
<georss:circle>
<gml:CircleByCenterPoint>
<georss:where>
element. This should have a <gml:pos>
element to specify the coordinates of the center point of the circle, and a <gml:radius>
element to specify the radius.<gml:radius>
uom
attribute to specify the unit of measurement, which is by default m
to represent meters.uom
m
for meters, cm
for centimeters, [ft_i]
for feet (international definition) or [ft_us]
for U.S. feets. It is highly likely that most systems will only support meters.<!-- GeoRSS Simple --> <georss:circle>-24.62759969859908 -70.40503541618583 14.74038882</georss:circle> <georss:featureName>Antu, VLT-UT1</georss:featureName> <georss:featureTypeTag>telescope</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> <georss:elev>2635</georss:elev> <!-- GeoRSS GML --> <georss:where> <gml:CircleByCenterPoint> <gml:pos>-24.62759969859908 -70.40503541618583</gml:pos> <gml:radius uom="m">14.74038882</gml:radius> </gml:CircleByCenterPoint> </georss:where> <georss:featureName>Antu, VLT-UT1</georss:featureName> <georss:featureTypeTag>telescope</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> <georss:elev>2635</georss:elev>
The GeoRSS documentation on ArcGIS Online mentions supports for circles on GeoRSS Simple, but excludes them from GeoRSS GML. I would therefore advise against trying to use a CircleByCenterPoint
. It is likely that the few GeoRSS implementations out there will only support <georss:circle>
, if they support circles at all.
The W3C Feed Validation Service does not support circles in either its GeoRSS Simple validator nor its GeoRSS GML validator.
Circles were probably either added before <georss:radius>
was introduced, or added, then partially removed when someone noticed <georss:radius>
could already do the job. Another possibility is that circles and curves are far less supported by GIS software than linear geometries, so they wouldn't be that usable anyway. This raises interesting questions: what happens if you use a circle, but also add a radius around it? Do you get a larger circle? Is the radius ignored? Does it become an approximation of a circle as a polygon, as is common with GIS software that doesn't support circles? Those questions will definitely remain unanswered, as with most things about RSS, the answer of most organizations nowadays will be "who cares?". This is why we can't have nice things.
[http] posted by dozens on October 21, 2023
Every Ultramarathon packing list I found on Google was cluttered with cookie consent banners, email capture forms, ads, and marketing fluff. After running the Des Plaines River 50-Mile Ultra, I’ve decided to publish a cleaner version that genuinely informs you about what to pack instead of enticing you to click on various distractions.
This list is based on my own experience. I welcome your insights in the comments.
I assume you already know how to dress for an ultra if you’re running a 50-miler, but I’ll share some personal insights:
In the beginning was the command line (pdf)
[https] posted by acdw on October 21, 2023
consider itch.io as a replacement for bandcamp
[https] posted by dozens on October 20, 2023
attn: acdw | audiozine submissions
[https] posted by dozens on October 20, 2023
Jessica the Wizard Eats a Third Horse
[https] posted by dozens on October 20, 2023
blamscamp: a bandcamp-like player for hosting/selling music on itch.io
[https] posted by dozens on October 20, 2023
[https] posted by acdw on October 20, 2023
okay i guess i’m putting this here because this is apparently the closest thing i have to a public facing personal blog these days.
this post is nominally about bandcamp.
bandcamp.com is one of the greatest sites on the internet right now for music discovery. and maybe for artists? i don’t know that much about that part because i am merely a consumer. but for listening and discovery, it’s better than spotify, soundcloud, and youtube all put together.
that said, bandcamp was recently sold to songtradr who immediately laid off 50% of bandcamp including most of the bandcamp union leaders + members. which is probably legally pretty questionable. i’m curious to see what happens because of that.
anyway, my personal opinion is that bandcamp will probably now start to stagnate, if not to actually roll back features and support. which is to say, i think this is the beginning of the end for bandcamp.
and so! here’s what i think listeners and supporters need to do now sooner than later.
go purchase the music you currently enjoy on bandcamp and download it.
install yt-dlp
and start archiving stuff currently
on bandcamp. (note: i haven’t actually tried doing this with
yt-dlp
. i’ve just read in a couple of different threads
that say this is possible.)
now, what’s next.
well in the long term, i’m looking forward to watching the progress DJ Sundog and ajroach42 will make on Aural Isle, which will be an open source, community driven alternative to bandcamp created as part of the Mountain Town Technology project.
in the short term, i recommend itch.io
now i know what you’re saying. but dozens! you say. itch is for publishing video games!
yes, yes it is. but it is also a platform for publishing and distributing books (e.g. Books and Bone, which i own. (links below)), zines, comics, software and applications (aseprite and the tiled map editor, for example, are sold in itch), and albums and soundtracks.
now, i just learned about blamscamp by blackle, which is a free bundler for uploading music and presenting it in a beautiful bandcamp-like webplayer. the github page provides a written guide, a video guide on youtube, a link to a collection of albums on itch using blamscamp, and a link to the online tool. i tried it out myself by bundling up season one of my tilde podcast and i found the whole process ridiculously easy. (caveat: i have uploaded a bunch of projects to itch before, so i have the advantage of familiarity with the platform.) i wasn’t able to actually upload it though because the file was too big.
but anyway. that’s what i think we should be doing now. at the very least, start uploading your projects to bandcamp AND to itch.
i have found the itch community extremely creative and supportive and welcoming, which is another reason i think you should consider using the platform for music. two adorable projects that i know of—bitsy and decker—use itch forums as their official community platform.
references and links:
PiCoSteveMo: a month long Pico-8 jam based on the works of Stephen King
[https] posted by dozens on October 19, 2023
Making friends for fun and profit (Dinosaur Comics!)
[https] posted by acdw on October 19, 2023
[https] posted by dozens on October 19, 2023
CISA guides for removing systems from things like Shodan
[https] posted by wsinatra on October 19, 2023
Vulnerability scanning for IaC
[https] posted by wsinatra on October 19, 2023
Nikto2: a web server vulnerability scanner
[https] posted by wsinatra on October 19, 2023
A distributed vulnerability database for Open Source
[https] posted by wsinatra on October 19, 2023
[https] posted by wsinatra on October 19, 2023
A video of Mark Twain from 1909
[https] posted by dozens on October 19, 2023
[https] posted by wsinatra on October 18, 2023
Joker is a small interpreted dialect of Clojure written in Go. It is also a Clojure(Script) linter.
[https] posted by dozens on October 18, 2023
Choose Your Own Adventure with recutils, graphviz, and groff
[https] posted by dozens on October 18, 2023
[https] posted by m455 on October 17, 2023
A gentle introduction to Lambda Calculus and scheme
[https] posted by acdw on October 17, 2023
[https] posted by acdw on October 17, 2023
Political speech is something I shy away from. But, of course, that is political.
Sometimes there are things that you can’t ignore. There are, perhaps, many such things…right now there is one that I’m particularly close to, close enough that I am made to look because I am in some way directly implicated in it.
I am Jewish. I was raised so, and live so today.
Being raised a Jew I was constantly taught to “never forget.”
There seems to have been a forgetting.
A genocide is being perpetrated against Palestinians. I refuse to let that happen in my name, in the name of Judaism.
That genocide is being conducted by a state that is happy to wear Jewishness as a shield against scrutiny. By a state that confuses “power” for “safety.”
No one is safe unless everyone is safe.
The actions taken by the State of Israel aren’t actions taken to ensure safety. They are actions taken to build power.
Power and safety are not the same thing. I don’t claim to have great political insight, but I am confident in that assessment.
Knowing how to resist this consolidation of power, or any state wielding power for that matter, is difficult…but no one is safe unless everyone is safe and we’ll struggle to build and hold any kind of safety while power remains the goal of states.
Tikkun olam means “to repair the world,” and is a central teaching in Judaism. That is what we shouldn’t forget.
From what I can tell two effective groups on the ground right now are Medical Aid for Palestine and Palestine Children’s Relief Fund.
Building Bitsy – A Little Engine for Little Games, Worlds, and Stories (video)
[https] posted by dozens on October 16, 2023
wizardnet bookvault: some books and stuff
[https] posted by dozens on October 16, 2023
Bitsyfest exhibit is now open at Museum of Screens
[https] posted by dozens on October 16, 2023
guile hoot, scheme webassembly thing hits 0.1.0
[https] posted by eli_oat on October 16, 2023
Checkpoints and Autosaves, technically a parenting book but has lots of cool stuff
[https] posted by piusbird on October 16, 2023
zx: scripting in javascript without the hassle of node.js
[https] posted by dozens on October 16, 2023
[https] posted by piusbird on October 16, 2023
[https] posted by acdw on October 15, 2023
IKEA-Manual, a dataset consisting of 102 IKEA objects paired with assembly manuals
[https] posted by dozens on October 15, 2023
In this fourth post explaining GeoRSS, I'll be talking about GeoRSS GML, the second "serialization" of the format. GeoRSS Simple is meant to be easily translated into GeoRSS GML so that your typical RSS feed developer can more easily understand GeoRSS, and geospatial experts can use a format they are more acquainted with: GML.
GML is an enormous XML schema designed to express any geospatial data under the sun. Geometries, features, coordinate reference systems, units of measurement, time, sensor measurements, data re-fetched automatically over the network, assigning coordinates to images, etc.
The language is not meant to be used alone, as supporting all of it is equivalent to implementing nearly every bit of geospatial software out there. Instead, GML profiles are defined, which are subsets of GML that are relevant to your needs, and are then used in application schemas, which define the specific XML format you are using that will contain some of that GML profile in it.
GeoRSS is an application schema using a dedicated GML profile that severely restricts GML so that we don't become too insane. You are limited to four geometries, one less that the five we saw in GeoRSS Simple: points, lines, boxes, and polygons. You do have access to some extra options though, and we'll look into that soon enough.
Here is an example I wrote previously for a single point in GeoRSS Simple, but rewritten for GeoRSS GML:
<rss version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" > <channel> <item> <!-- ... --> <georss:where> <gml:Point> <gml:pos>-33.8735580 151.2344385</gml:pos> </gml:Point> </georss:where> <georss:featureName>Boat Syndication Australia</georss:featureName> <georss:featureTypeTag>shop</georss:featureTypeTag> <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> <georss:elev>5.25</georss:elev> <georss:floor>0</georss:floor> <georss:radius>4.5</georss:radius> </item> </channel> </rss>
The only two differences are that there is now a new gml
namespace, and that the georss:point
element has been replaced with a georss:where
element to hold the point defined with GML. And now for the examples of other geometry types, which you would now place inside of the georss:where
:
<!-- Part of Haaldersbroekerdwarsstraat, a long street name in the Netherlands --> <gml:LineString> <gml:posList>52.4718867,4.8277792 52.4721926,4.8275892 52.4729501,4.8270419</gml:posList> </gml:LineString> <!-- Some random grass not so far away from there --> <gml:Envelope> <gml:lowerCorner>52.5662344 4.7976189</gml:lowerCorner> <gml:upperCorner>52.5676983 4.8013674</gml:upperCorner> </gml:Envelope> <!-- A building called ESPRESSO at the Very Large Telescope, because astronomers need coffee to go through the night --> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList> -24.6273416 -70.4045081 -24.6273922 -70.4044894 -24.6274264 -70.4046014 -24.6274789 -70.4045820 -24.6276119 -70.4045330 -24.6275341 -70.4042780 -24.6274634 -70.4043041 -24.6274763 -70.4043463 -24.6273109 -70.4044074 -24.6273416 -70.4045081 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon>
<georss:where>
<georss:point>
.<gml:pos>
<gml:posList>
<gml:Point>
<gml:pos>
element to indicate its coordinates.<gml:LineString>
<gml:posList>
to list the coordinates of each point.<gml:Polygon>
<gml:exterior>
ring. GeoRSS GML forbids any interior rings, since the GeoRSS Simple <georss:polygon>
does not support interior rings, so the exterior ring is always alone.<gml:exterior>
<gml:LinearRing>
.<gml:LinearRing>
<gml:LineString>
, but there has to be at least four points, and the first and last coordinates must be equal, so that the line string forms a ring.a website can be just a bunch of files
[https] posted by dozens on October 15, 2023
autumn lisp game jam starts 10/20!
[https] posted by acdw on October 14, 2023
Dotfiles: Best Way to Store in a Bare Git Repository
[https] posted by dozens on October 13, 2023
Scheme and WASM live stream from System Crafters
[https] posted by acdw on October 13, 2023
continuing the calendar theme with the Thumb calendar
[http] posted by acdw on October 13, 2023
[http] posted by acdw on October 13, 2023
[http] posted by SpindleyQ on October 12, 2023
[https] posted by acdw on October 12, 2023
[https] posted by dozens on October 12, 2023
WordPress now offers official support for ActivityPub
[https] posted by dozens on October 11, 2023
[https] posted by acdw on October 11, 2023
DISCWORLD reading order generator
[https] posted by acdw on October 11, 2023
[https] posted by dozens on October 10, 2023
Hoot is a scheme -> WebAssembly toolchain from the spritely institute
[https] posted by dozens on October 10, 2023
Internet Archive Command Line Tool
[https] posted by acdw on October 10, 2023
[https] posted by acdw on October 10, 2023
I revisit this thought:
the ironies of a bunch of hyperliterates using a giant text machine to bootstrap text into a thing that exceeds the bounds of comprehension and then totally overwhelms all the tools of literacy itself
I’ve spent most of my life enmeshed in language, with words as my main power, and also a lot of time dwelling on the insufficiency of language to what life is really like. These days the latter sometimes feels like the main thing about words. Or at least the main thing about the dominant culture of words, the technology and system of them.
The tools of literacy — I don’t exactly mean to run them down. We just live in a time when, for whole classes of human, a kind of hypertrophied literacy has enmeshed and eclipsed the experience of reality. This isn’t so much new as it’s just newly vast, encompassing, interconnected. The language machine is so big, so ramified, that the sheer mathematical accumulation of its products now feeds deafening oceans of noise back into the workings. Whether by this I mean the outputs of machine learning or the behavior of a few billion minds over-saturated with internet bullshit: I’m not sure it even matters.
We’ve all had our part in building this, and you can get endlessly meta about the endless meta of it, which is part of how it exceeds the bounds of comprehension. All of that is… Not really how I want to spend my time. I don’t have any grand thesis here, or at least I don’t have any grand prescription.
There was a time when I was a big word fish in a small word pond, I guess. Somewhere along the way the contemporary internet happened and also I got a job where being a big word fish was a basic prerequisite. Circa now: Sweet Christ am I ever weary of paragraphs. There’s something useful in knowing that, if I don’t chase my own tail about it too much.
[https] posted by acdw on October 09, 2023
In yet another post of my series on geographical information in RSS, I introduced GeoRSS, and in particular GeoRSS Simple, its simpler version. I only showed a fourth way to add a point to your feeds, but some feeds might need to reference more than just a single point. GeoRSS Simple lets you go further with a few extra types of geometry:
<georss:line>
<georss:box>
<georss:polygon>
Here are some examples of each of those tags:
<!-- Part of Haaldersbroekerdwarsstraat, a long street name in the Netherlands --> <georss:line>52.4718867,4.8277792 52.4721926,4.8275892 52.4729501,4.8270419</georss:line> <!-- Some random grass not so far away from there --> <georss:box>52.5662344 4.7976189 52.5676983 4.8013674</georss:box> <!-- A building called ESPRESSO at the Very Large Telescope, because astronomers need coffee to go through the night --> <georss:polygon> -24.6273416,-70.4045081 -24.6273922,-70.4044894 -24.6274264,-70.4046014 -24.6274789,-70.4045820 -24.6276119,-70.4045330 -24.6275341,-70.4042780 -24.6274634,-70.4043041 -24.6274763,-70.4043463 -24.6273109,-70.4044074 -24.6273416,-70.4045081 </georss:polygon>
You can only specify one of these geometries at once, along with all the optional elements that I described in the previous post. Those new shapes enable some new interesting use cases for feeds:
<georss:line>
.<georss:line>
to show where the shadow of the eclipse will be moving on the Earth's surface. Maybe with a <georss:radius>
as the radius of the shadow to do some buffering and not only show the center of that shadow.<channel>
including the location of the weather station, or the area where the reports apply.<georss:polygon>
around the circumference of each featured building.<georss:point>
with a <georss:radius>
to show the precision, or as a <georss:polygon>
showing a triangle of the receivers that detected the signal.<georss:point>
when a stop is skipped or moved, a <georss:line>
when a line gets rerouted, etc.You can probably use any of the geoportals out there, the websites that list open geographical data mostly from governments, and get plenty more ideas for GeoRSS feeds.
And since we are now done with GeoRSS Simple, we'll look at GeoRSS GML next time.
[https] posted by dozens on October 08, 2023
[https] posted by dozens on October 08, 2023
[https] posted by acdw on October 08, 2023
NEW Cellular Automata (invidious)
[https] posted by dozens on October 07, 2023
Loving Common Lisp, or the Savvy Programmer’s Secret Weapon (online book)
[https] posted by dozens on October 07, 2023
Stuff happened this week:
Created a sale / bundle on itch for the first time ever! In honor of Halloween Month, SPOOKERS! and Vumpire! are half off all month long! https://itch.io/s/103645/spookerween
Also itch published Best Leaves! Girafferific!, the companion to There Is A Giraffe Who Wants The Best Leaves But Their Neck Is Too Short. Only 2 years after the original was published. No time like the present! https://dozens.itch.io/best-leaves
Published a convoluted recfile-to-html blog workflow that I’ve
been using for my consume
blog. It ain’t much. And at the
same time, it’s kind of a lot. But it suits me just fine! For I too am
not that much, and also kind of a lot. https://git.tilde.town/dozens/consump
Published List of Lists RPG, the rpg where everything is just a list. https://dozensanddragons.neocities.org/52
Watched a spooky movie marathon 👻👻👻 highlights include Alien (1979) and No One Will Save You (2023)
Played a cute Pico-8 game, Gordy and the Monster Moon https://twinbeard.itch.io/gordy-and-the-monster-moon https://tilde.town/~dozens/consume/index.html#182
Dog sitting a large puppy for the weekend. My two small senior dogs are toleranting it well.
The care and training of your Pet Rock
[https] posted by acdw on October 05, 2023
youtube will block adblockers even more soon :(
[https] posted by acdw on October 05, 2023
heckin cool stuff (generative art and more)
[https] posted by acdw on October 05, 2023
Vegetarianism .... in the GENES!?
[https] posted by acdw on October 05, 2023
[https] posted by acdw on October 04, 2023
The perfect mutt command for clearing out 30K crontab emails on tilde.town
[https] posted by wsinatra on October 03, 2023
PicoCalc: A Fully-Functional Pico-8 Clone of VisiCalc
[https] posted by dozens on October 03, 2023
Forget emacs and vim, the clear winner of the editor wars it Textreme-2
[https] posted by dozens on October 03, 2023
[https] posted by acdw on October 03, 2023
vilmibm's buenos aires travelogue
[https] posted by dozens on October 03, 2023
YAML config file? Pain? Try Lua
[https] posted by dozens on October 02, 2023
US pizza spinning acrobatic trials (invidious)
[https] posted by dozens on October 02, 2023
~alliesanders posted on feels at 2023-10-01 at 14:50 and described a complicated feeling they are having that seems to circle around layoffs at work, feeling responsible for their coworkers, and wanting to have a cozy house that allows for comfort and rest.
I think each of these situations (corporate work, caring for others, cozy home) all describe wanting to feel safe and cared for. And wanting to provide safety and comfort for others.
I have been slowly reading House of Leaves (Danielewski) off and on. For a couple of years now honestly. One day I’ll finish it! It is a labyrinthine and deeply layered work with wild tangents including how echoes create and define physical space and psychological safety, a feeling of place and position. And also including haunted houses.
The haunted house is an enduring archetype in horror, be it in print, film, or in your own dreams, because it plays to the primeval desires to be inside, and to keep the outside out.
To seek the safety of the light of the campfire from that which is outside it. To seek the safety of a home from that which is outside it. To seek the safety of a family or tribe from outsiders.
To suddenly feel like a stranger or an intruder in your own house it a terrible feeling that strikes to the core. A haunting asserts that you are not the rightful owner of the house, and indeed you do not belong here. You are an intruder. A trespasser.
The oldest surviving English poem speaks of Grendel the Night Visitor who stalks the great mead hall and robs its inhabitants of the safety promised by the indoors. The beast effectively turns the hall inside out, so that its inside is full of outsideness, wildness, and fear. And its inside is nowhere. Stag Heart is the original haunted house.
Today every corporation is a Stag Heart. Because a corporation is a haunted house.
It is very possible to feel at home working for a corporation. It fills you with purpose and with a feeling of belonging and of protection from being hungry or unhoused. But by definition, you are not the owner of this house. It is not obligated to protect you. In fact it is obligated to harm you if need be in the interest of its true owners, the shareholders.
I have from time to time experienced the chill of such a haunting. The ghosts of the shareholders asserting their dominance and reminding us all that we are only here by their blessing. Making us to feel like unwelcome strangers in our house.
And so I’m not surprised in the least when ~alliesanders transitions from talking about layoffs and work stress to talking about wanting their home to be cozy and comforting. On a primal level they are feeling the strange “outsideness” inherent to their working life, and are retreating indoors to the safety and protection of their actual home.
~alliesanders posted on feels at 2023-10-01 at 14:50 and described a complicated feeling they are having that seems to circle around layoffs at work, feeling responsible for their coworkers, and wanting to have a cozy house that allows for comfort and rest.
I think each of these situations (corporate work, caring for others, cozy home) all describe wanting to feel safe and cared for. And wanting to provide safety and comfort for others.
I have been slowly reading House of Leaves (Danielewski) off and on. For a couple of years now honestly. One day I’ll finish it! It is a labyrinthine and deeply layered work with wild tangents including how echoes create and define physical space and psychological safety, a feeling of place and position. And also including haunted houses.
The haunted house is an enduring archetype in horror, be it in print, film, or in your own dreams, because it plays to the primeval desires to be inside, and to keep the outside out.
To seek the safety of the light of the campfire from that which is outside it. To seek the safety of a home from that which is outside it. To seek the safety of a family or tribe from outsiders.
To suddenly feel like a stranger or an intruder in your own house it a terrible feeling that strikes to the core. A haunting asserts that you are not the rightful owner of the house, and indeed you do not belong here. You are an intruder. A trespasser.
The oldest surviving English poem speaks of Grendel the Night Visitor who stalks the great mead hall and robs its inhabitants of the safety promised by the indoors. The beast effectively turns the hall inside out, so that its inside is full of outsideness, wildness, and fear. And its inside is nowhere. Stag Heart is the original haunted house.
Today every corporation is a Stag Heart. Because a corporation is a haunted house.
It is very possible to feel at home working for a corporation. It fills you with purpose and with a feeling of belonging and of protection from being hungry or unhoused. But by definition, you are not the owner of this house. It is not obligated to protect you. In fact it is obligated to harm you if need be in the interest of its true owners, the shareholders.
I have from time to time experienced the chill of such a haunting. The ghosts of the shareholders asserting their dominance and reminding us all that we are only here by their blessing. Making us to feel like unwelcome strangers in our house.
And so I’m not surprised in the least when ~alliesanders transitions from talking about layoffs and work stress to talking about wanting their home to be cozy and comforting. On a primal level they are feeling the strange “outsideness” inherent to their working life, and are retreating indoors to the safety and protection of their actual home.
[https] posted by dozens on October 02, 2023
Using Farcaster protocol for .plan-style daily notes
[https] posted by dozens on October 02, 2023
[https] posted by acdw on October 02, 2023
openbsd webzine: september 2023
[https] posted by dozens on October 02, 2023
[https] posted by acdw on October 01, 2023