It's not like I tweet much these days anyway, but for those leaving Twitter—which I hope some day we all do—I'm on Cohost as aysamanra and on Mastodon as aysamanra@sometimes.when.computer.
Because it involves repeatedly stabbing an object many thousands of times, cross-stitch is arguably the most Klingon craft. (The text is a Klingon phrase meaning, "It is a good day to die.")
You can think of Matzo as something like Tracery (tracery.io) but with more of a "programming language" structure. Here is one example that contrasts a Tracery program with the equivalent Matzo program: github.com/aisamanra/matz…
My plan is to reimplement all three more cleanly and maintainably. So far, I've only reimplemented Matzo, but you can find it here: github.com/aisamanra/matzo
Over the last decade, I've made three major attempts to write programming languages for producing random text. Here's the first: Matzo, a simple dynamically typed language for random strings.
@aaronmblevin I haven't used it as much as I should, but I love that there are efforts like search.marginalia.nu out there to try to address this problem.
@thingskatedid@snep__ebooks@Argorak Oh, I should finish the drawing code and properly release this tool! After this tweet, I went back and did some reimplementation, so I've got a WIP Rust version of the DSL for these now: github.com/aisamanra/apic…
None of the things described here are "new", just old ideas put together in a particular way. Still: I generally feel like no existing language has "solved" error-handling: they've just found rough local maxima. This is trying to push the design space a bit.
I also did some experimental non-square "cross-stitch-ish" substrates, which I generated via Ruby code. This was my first attempt at a "tri-stitch" design.
For example, here's a custom earring tree I made for my partner @rhiannonstone, inspired by several others that weren't quite what she wanted. (Stained birch plywood—neither she nor I like the look of untreated laser-cut wood; I think it looks tacky.)
One thing I did in 2021 was finally buy myself a home laser-cutter. I've definitely gotten more jaded about tech over time, but it's pretty magical to be able to start with a drawing or a snippet of code and quickly turn it into a physical object.
@josecalderon Be careful! It turns out of you keep following the pipeline you go past "Haskeller that hates breaking changes" and get to "ex-Haskeller."
I was thinking of this today because of this talk where my cartoonist avatar makes a guest appearance, but I've been told by several people they've used the cartoon in their own talks: christine.website/talks/nixos-pa…
I'm pleased that my little Nix cartoon from last year has gotten popular, but it's still a little surreal to go to a stranger's web site and see my poorly-drawn cartoonist avatar looking back at me.
@ntcomplete It's like open source, but without the annoying part where people open semi-related issues or low-quality pull requests against the stuff you built.
@ntcomplete The shared infrastructure thing was great. I built a pretty expansive zipline network over near Mountain Knot City, and it was weirdly satisfying whenever I got a notification about other people using those ziplines.
@ntcomplete It was my first exposure to a Kojima game: pop culture osmosis told me it would have tons of cutscenes, but I had no idea how solid and effective all the actual mechanics would be. Planning and executing deliveries was just so engaging and interesting all the way through for me.
@Ptival I've only lightly skimmed Seven Sketches in Compositionality—I should definitely go back and actually read it. That said, I do think that what I'm doing here is probably more of an aesthetic effort than actually, like, trying to do much analysis or anything of the graphs.
@rngcntr I'm going to be rewriting it entirely—it's currently Haskell, which is a language that bit-rots pretty aggressively, and I want to rewrite it in something that's less of a moving target—but my unfinished prototype of the input language is on Github: github.com/aisamanra/apic…
@TechLloyd Not quite yet—those were done by hand—but that's what I plan to implement! I've got a textual format I can parse already; I just need to finish the drawing code.
The post about Apicius in particular is here, and it includes a little bit of detail about the textual language I was working on from which to generate these: journal.librarianofalexandria.com/backburner-mon…
A good consequence of this was making me realize which projects I'm most excited to return to. I think top of the list is Apicius, my sadly-neglected recipe graph effort, so I've already started dusting off its code.
Well, I finished my little September effort: 25 blog posts, posted daily, each about a project I've neglected but not given up on. Here's the final list, grouped by category:
@cmarshl It's also nice 'cause it's helping me remember which ones I'm more excited about returning to. I've already written some of these posts and thought, "Wait, why haven't I been working on this lately, this rules."
These posts are just short overviews of things I've started and want to finish some day. Most—about ⅔ of the planned list—are software, but some are tabletop games or video games I'd like to write, as well.
What with [gestures at the state of the world] I've had a hard time focusing on projects lately. So instead, every day this month I'm writing about a different unfinished project I'd like to return to some day: journal.librarianofalexandria.com/backburner-mon…
@aaronmblevin I switched schools when I was 7. I made that choice mid-summer, so it wasn't announced at my old school or anything. Years later, I started at a middle school with a lot of classmates from that old school, and one of them walked up to me and shouted, "Getty! I thought you died!"
…also yes, because of the realities of copyright law, I could not set this video to the ideal music, but you can still chant 'koyaanisqatsi' aloud as you watch it for the best experience.
It's honestly not the best video—the first part is marred by an unfortunate windshield bug, and the timing of the trip means you can't even see Portland at the end because it's too dark—but it was still fun to put together.
I recently made a San Francisco→Portland drive where, on a whim, I mounted a camera on my dash. Here's that 9½ hour/635 mile drive compressed into 9 minutes: youtube.com/watch?v=jb61wE…
Also, I should include this in the post itself: all the relevant source code is online, including source that isn't directly included in the post! I've collected it in this repo here: github.com/aisamanra/post…
After this, I plan to write a few more technical posts focusing on generating vector images, and then write at least one more post about abstract strategies and approaches I've used to make generative artwork.
✏️The first post in a new series: "In Praise of Netpbm", where I demonstrate how to create procedural pixel art with no library support in basically any programming language: journal.infinitenegativeutility.com/how-i-do-gener…
@acfoltzer Two fun facts: 1. the first version of this I made had Gendo's human eyes still visible, an image which will now haunt my dreams 2. this image's filename is `gato-ikari.jpg`
@BowToChris There's a fun blog post about the ligature features in fonts which uses them to create a novelty font, and it describes a different way of achieving the same effect which could in theory be more programmatic, as well: pixelambacht.nl/2015/sans-bull…
@BowToChris Because there were a lot of diacritic forms, I actually used a little Python script to create the first version of them (by modifying the XML structure of the SVG files) and then adjusted the size and position manually for each one.
@BowToChris I'd be happy to write up something more thorough if you want the full steps, but the short form is 1. draw glyphs in Inkscape 2. import into FontForge and adjust sizing 3. use FontForge's GSUB interface (usually for font-specific ligatures) to replace glyphs with joined versions.
Experimenting with a generator for random poetic forms. My goal is a system that can (at least in theory) generate the sonnet, the villanelle, and the triolet.
…yes, I know, this tweet is not a groan-worthy programming joke like 90% of my other recent tweets, but I'm sure I'll be back with more terrible posts soon.
@alexbiehl_@kowainik I think that's a good idea. I've added a redirect note to the README and archived the repository. If you've got other places I should redirect to and/or other notes I should include, I'd be happy to do so: just let me know!
@theg5prank It's only a slight exaggeration to say that realizing I could include a tiny cartoonist avatar being snide is the reason I actually drew this.
…I was gonna also add a crying angel labeled "The Unix Way" but if I actually worked on this cartoon any more the irony exposure would have become lethal.
I've decided the next big thing will be Boomer-style political cartoons but about programming, so I'm gonna get in on the ground floor of this terrible trend.
@josecalderon Don't feel left out! Haskell will have its own opportunity to be gutted whenever the all the crуptоcurrеncу pyramid schemes finally collapse.
(…I made this joke in a Slack I'm in and the response there was, "Why are you like this?" I figured that meant it was awful enough to unleash on The Public, as well.)
@ntcomplete I do flip through a physical printout of the rules, so there's a non-zero amount of paper-crinkling in the video. That's an ASMR thing too, right?
On a very different note, I recently recorded an actual play session of Ex Novo, a solo city-building tabletop game, if "watch someone roll dice to invent a city for an hour" happens to be your jam: youtube.com/watch?v=6t_sl3…
This post is inspired by William Cook's "On Understanding Data Abstraction, Revisited", a useful definitional reference. I figure I cite it regularly enough that I might as well have a convenient post I can point at!
(You might notice that both these account names end in -anra, and that's because they're both agentive nouns in an old conlang I created, because I am still, at heart, a corny nerd.)
I recently decided I wanted to publicly share more rough, unfinished art, so rather than inundate this account with it, I ended up making an alt: @uzhdanra
@mjsottile I used it on a Python project recently and it was mostly pretty nice. My one piece of advice is to use `check-untyped-defs`: without that option, MyPy won't type-check the bodies of functions that don't themselves have declared argument types, which is… surprising.
@mjsottile Have you tried an external type-checker like MyPy? It of course won't address performance, but it might help with the correctness parts. At the very least, it does give you a proper type-checked optional type.
@josecalderon@johnregehr The most popular Haskell JSON library is named after Jason's father Aeson, who depending on the source either was killed and subsequently resurrected by his daughter-in-law (Ovid's Metamorphoses) or died from drinking bull's blood (the Bibliotheca of Pseudo-Apollodorus).
@josecalderon Coming soon: the Tantalus theorem prover, which should start yielding fruitful results any day now. It can be installed with an associated build tool, Sisyphus, on a rolling release schedule.
@microliza You know how everyone cares deeply about Rust error-handling because it's a shallow but important interface they have to deal with all day, so they write their own error-handling crate which is 90% bikeshedding and 10% making slightly different tradeoffs than the others?
@josecalderon People are working on various other ActivityPub-compatible tools, as well, and I think the conjunction of those can win people over in a way that Mastodon by itself won't. I love Mastodon, but to many people it's just "like Twitter but with fewer people and less discoverability."
@josecalderon One thing that I've considered is that more people might move to Mastodon as more and more interesting things become available via ActivityPub. For example: what about a paper-discussion blog (sort of like LtU) but with commenting done entirely via your ActivityPub account?
I've realized that the phrasing here makes it sound like this is a solo project, which isn't true! Parts of this were also written by @moltarx, whom I have somehow tricked into writing Python for this. (Typed Python, but still.)
N.b. that I'm not much of a web programmer, and LC is not a terribly serious project! I'm building it for me, maybe some friends. I'd be happy if other people end up using it, but to borrow Robin Sloan's metaphor, LC is a home-cooked meal: robinsloan.com/notes/home-coo…
I've been working on a self-hosted bookmarking service, which I'm calling Lament Configuration. It's still immature, but today it hit my threshold for "minimum basic features": git.infinitenegativeutility.com/getty/lament-c…
This is also the first post I've written with my newly-migrated blog—I've switched from a homebrew blog to WriteFreely, which means you can also follow and interact with it via Mastodon or other ActivityPub-enabled systems.
@SlackHQ Is there any way to switch back to the old UI? I've got half a decade's worth of muscle memory that's useless with the new one (since e.g. you moved the @ button) and the new UI has lots of useless clutter which takes up valuable screen space on my smaller laptop screen.
@thingskatedid@sw17ch If you go from C to NewSqueak (the Rob Pike one—"A language for communicating with mice"—not the SmallTalk one) to Limbo to Go you can see a clear gradual syntactic evolution, which is fun.
@thejonanshow I live in Portland and work on the @sorbet_ruby project—if you're interested in a talk on that topic (whether at the next event, or to keep in your pocket for another event) I'd be happy to give one!
@thumphriees I keep thinking about writing my "I-used-to-write-Haskell-now-I'm-employed-writing-C++-and-Ruby" post, and haven't more out of laziness than out of smoke-aversion. I mean, I survived both "GEB is overrated" and "QuickCheck uses typeclasses badly"; I think I can survive this one.
@jckarter@munificentbob@jseakle Oh, you're absolutely right! Well, there we go: 4.1.2 in the C89 standard and 7.1.3 in the C99 standard both dictate that naming functions `toilet` is undefined behavior.
@jckarter@munificentbob@jseakle I haven't dug deeper than just a quick perusal, but it looks like in C89 reserved identifiers were reserved regardless of includes, but in C99 they're usually reserved "…in the same name space if any of its associated headers is included."
@overfull_hitbox@johnregehr It's sort of like that proverb about 'for want of a nail' except it turns out that all the events of Twin Peaks were just for want of a light.
@josecalderon I had temporarily forgotten that Goya was a food brand and assumed that your local supermarket must have a whole section of Francisco Goya prints.
@SlackHQ Is there an option to turn off the new WYSIWYG editor? It takes up more screen space, is clunkier and more awkward to use for editing, and is in general a significant step back in usability from the previous system.
@ChadScherrer 'Pidgin' is absolutely not a term for informal communication: a pidgin is specifically a language that results from contact between speakers of two or more languages that combines grammar and vocabulary from those languages into a simplified language for common communication.
@thumphriees One of my blogs I've already moved to writefreely, which is written in Go using a fork of blackfriday but by default doesn't turn on footnotes. I think the underlying library does, though; I might enable it in my build and see how it works out.
@thumphriees I've found Markdown implementations that feature footnotes in both Rust and Go, and I've considered rewriting my blog to one of those. Even a modicum more stability than I get from GHC/Haskell packages would be a weight off my mind.
@johnregehr@johnwvilk@overfull_hitbox@dril The Fifth Element was heavily inspired by the style of French scifi comics in general and The Incal in particular (to the degree that the publishers tried to sue Lec Besson.) So if you've seen that, you definitely know the French Scifi Comics Look.
@johnregehr@johnwvilk@overfull_hitbox@dril The first one—The Incal—was inspired by the pre-work Jodo and Moebius did for Dune, so big parts of it are Dune With The Serial Numbers Filed Off. I like them, but they're not to everyone's taste. Quintessential 80's-Heavy-Metal-magazine comics, with all that that implies.
@johnregehr@overfull_hitbox@dril Bill told me that he'd finally watched the Jodorowsky's Dune documentary, so I showed up at Galois a few weeks ago and with basically no explanation handed him a stack of Jodorowsky comics. (I don't know what I could have explained. "Hey, you're gonna have a weird time"?)
@johnregehr@overfull_hitbox@dril He's bizarre. (He did a Kickstarter a few years back for his movie Poesía Sin Fin, and one backer reward was "poetic money": bills he made that feature his own face and some of his poetry. I really should remember where I put mine so I can frame and display them.)
@overfull_hitbox@dril I love the corny ridiculous choice to make everyone refer to contemporary things as "paleo-whatever" so that everyone swears by "Paleo-Christ." I forget whether it's in Metabarons or The Incal that there's an offhand comment about "…the economic theories of Paleo-Marx."
(It's a rough homemade reproduction of Funranium Labs' Black Blood of the Earth, but made via repeated coffee infusions instead of via cold distillation. Back-of-the-envelope calculations suggest they have comparable caffeine strengths, a level scientists call "hooboy".)
This week's project: thrice-brewed cold brew. It's cold brew, filtered by Büchner funnel and used as substrate for more cold brew, and then once more. It's tasty and very, very strong.
This is my cynical money-making idea for every tech company that tries to unilaterally foist redesigns on users: pay to avoid the redesigns. $1/mo to avoid the algorithmic timeline, $2/mo to get square avatars and stars back.
If Slack wanted to make a huge pile of cash, they could offer a "Slack Classic" plan where you pay money to opt out of all the ways they've made Slack worse since like 2016.
@SlackHQ In general, I find many recent Slack changes (such as this intrusive message, or the way channels with unsent messages are reordered) make the experience of using Slack significantly worse, and I don't see why these can't be easily and trivially disabled via configuration.
@SlackHQ I understand displaying the local time/notification status for DMs is useful in some contexts, but I'd really like the ability to turn this off. Can you please offer this as a configuration option?
Many classic D&D spells are named after the wizards who invented them, like Tenser's Floating Disk, Mordekainen's Faithful Hound, and Mіke's Hаrd Lemonade.
@markwvh It's super cool! I haven't looked at the code in depth, but I poked at it a bit. (Also coincidentally, the author is also a coworker of mine at the new job, albeit on a different team than mine, which is funny.)
@GentlyPress I'm not terribly far into it, but at least what I've watched so far of Craig of the Creek is cute and fun (and made by Steven Universe alums!) I don't know where it streams, though.
@microliza@aaronmblevin They both are—darcs is the original one, and pijul builds on a category-theoretic refomulation of the theory of patches, but having fixed the fact that darcs sometimes had exponential merges in the worst cases.
@SlackHQ As of recently, Slack will move channels to a "Drafts" section when they contain typed-but-unsent messages. I find this VERY frustrating: I'd prefer channels stay in a single fixed place in the sidebar. Is there any chance we can get an option to disable it?
@morabbin All these changes—and more I haven't entirely described—can in aggregate produce accents, which over time can become different dialects, and over a larger time-scale even result in different languages!
@morabbin But again, because these changes can act in contradictory ways (adding sounds or removing them, changing them in one direction or another) they can naturally result in two communities producing different or even opposite changes.
@morabbin (It also could get reinforced negatively: if you really hate the people who say "jus'", you might deliberately pronounce it clearly to distinguish yourself from them. Think of explicitly-cultivated posh accents here!)
@morabbin This gets reinforced by social processes: if you spend time around the people who say "jus'", then you might adopt that pronunciation. If you were born in that community, you might learn the language with those pronunciations!
@morabbin But changes like those can add up over time, and then be reinforced socially: if several people in the same speaker community produce the same sound changes, then it becomes a social norm in that group that "just" is always said as "jus'".
@morabbin I phrased those changes as pursuing goals ('make it easier to say') but these usually happen without us thinking about them. If I'm talking quickly to a friend, in doing so I might unconsciously drop a few sounds from the words I'm saying.
@morabbin On the other hand, you might also streamline the pronunciation of a word by dropping sounds and making words shorter, like pronouncing "just" as "jus'" or "going to" as "gonna". So: some changes can lengthen words, other can shorten them!
@morabbin Sometimes, we add sounds to a word to make it easier or clearer to pronounce: e.g. some dialects pronounce "athlete" or "film" with extra vowels, because consonant clusters like "thl" and "lm" are tricky to both say and hear!
@morabbin That's a pretty big question, but to handwave a lot: lots of abstract forces act on how we pronounce words, sometimes acting in contradictory ways or producing different results, and those forces applied en masse can result in accents.
@overfull_hitbox@johnregehr (Incidentally, I'd definitely avoid the BBC adaptation of The City & The City. I felt like it pretty heavily missed the point of the book, and the graphic design—where it tried to make text look 'foreign' by sprinkling random diacritics throughout English text—was infuriating.)
@johnregehr@overfull_hitbox OTOH, I can also see arguments for The City & The City (which is really approachable: basically just crime fiction in a slightly odd setting) and Embassytown (which is my hands-down favorite Miéville, and is a scifi book with a lot of interesting—if farfetched—language stuff.)
@johnregehr@overfull_hitbox My first was The Scar, 'cause I didn't realize there was an ordering to those books (to whatever degree it matters) and it was good first Miéville, I think. That whole series is corny and overstuffed in a way that (at least mostly) works.
@markwvh I'm glad you enjoyed it! I wrote it in part because I wanted to understand it more clearly myself, and writing an explanation is a great way of clarifying your own thinking, so I'm happy it's comprehensible to others, too!
@overfull_hitbox My whole deal on the internet is that I take existing jokes and make them worse by making them about Haskell. This is also my whole deal off the internet, too.
@thepelicanpoems@TheZoneCast That's awesome! I'm glad it went well. If you do end up playing again, I'm always open to feedback or tweaks, but the fact that it's fun is I think the most important thing!
@johnregehr I think I woke up shortly before we passed through Green River! I was disappointed that the timing wasn't right to get good views of western Utah. There were still some beautiful views from the train, but it was too dark to see anything from Elko NV through to Helper UT.
@thepelicanpoems@TheZoneCast Awesome! Let me know how it goes! I haven't done any playtesting at all yet, so I'd be interested to know what works and what doesn't, or whether there were any adjustments needed to make it flow or unclear spots in the rules.
To weigh in on @josecalderon's thread about Galois internships: I worked there for six (very enjoyable!) years, during which I wrote Haskell, C, C++, Python, Scala, OCaml, Rust, and assembly. Galois is definitely not just Haskell! twitter.com/josecalderon/s…
I have decided, however, that all my future blog posts will use Argument By Alliteration. "You think you've solved this problem, but you've just moved from Function Fracas into Object Oblivion."
I'm not saying it's wrong: there's a valuable argument to be made along these lines! But this post doesn't make it. It just has some alliteration and a snide Perlis quote as a lazy mic drop.
This post is being shared approvingly by people I like and respect. I must be missing something, because all I see here is a premise without rationale or evidence: trevorjim.com/the-monadic-mo…
@ntcomplete My real-life high school French class actually had more teacher turnover than Defense Against the Dark Arts. I took three years and had six teachers, IIRC.
@josecalderon@ChariseeChiw A few years ago, there was a weekend where they had to do weekend power maintenance at the Commonwealth Building, which meant we had a semi-mandatory Galois ice cream party in order to eat all the Klondike bars so they wouldn't melt over the weekend. It was a good party.
@theg5prank the new trendy thing among silicon valley designers is "microdosing notifications", where you make notifications that so subtle they unobtrusively enter your unconscious mind instead of derailing your train of thought by notifying you
These screenshots should clarify what I mean: the new notification icons are muddy and hard to see. It's impossible to understate what a step backwards this is in clarity and usability.
It's a long shot, but please let me know if anyone makes a browser extension or whatnot to change @SlackHQ's favicons back to the old style. The new activity notifications are annoyingly subtle and difficult to see.
[cw: alcohol] (When I use Cointreau instead of Cherry Heering, I also swap the amaro for Hiver Amer—an amazing cinnamon-and-bitter-orange amaro—which is strong enough that I reduce its proportion and balance it with demerera syrup. I call this one a "Nakatomi Christmas".)
[cw: alcohol] The actual cocktail which inspired the Hans Gruber uses Amaro Albano, but I usually use Amaro Lucano (along with High West Double Rye and Oban for the whiskeys.)twitter.com/silentbicycle/…IesYDYi0
@paul_pearce@xexd …I don't know why it's coming up more now, but it's definitely one of those subjects that people—especially Haskell programmers—don't totally understand but nonetheless like to propose as a universal solution to every problem. (See also: category theory.)
@paul_pearce@xexd Sequent calculus (as well as proof theory in general) shows up prominently in branches of programming language theory, in part because sequent calculus is a useful formalism for describing type systems. (It showed up a lot for me during grad school.)
If you're interested in creating custom playbooks, you should also be able to easily modify those documents: they're still a tiny bit finicky, but they are mostly written in terms of high-level macros suitable to any DW playbook.
I'm doing some Dungeon World hacking, so I now have (syntax-highlighted!) LaTeX versions of all the core playbooks. I put them up here, in case anyone would find that useful: github.com/aisamanra/dw-p…
I've been generating these images with a tiny Rust library I've written. Since it's a library intended to support plotting, I naturally named it gunpowder_treason.
@overfull_hitbox@ckolderup This is pretty spectacular. (And maybe more than you know—I don't even think I've talked to you about my love of rhyme and metrical schemes and poetic forms in general.)
I got an AxiDraw yesterday. Right now I'm just futzing with simple geometric designs, but it's really satisfying to see my quick little programs being drawn onto a page.
@blingdomepiece It didn't give me that option today—or if it did, I couldn't find it after a minute of poking around—so I figured I might as well get rid of them once and for all. (Or, at least, until Twitter changes their CSS again.)
Alternate plan: let Twitter become unusable, allowing "in case you missed this" and "your friend liked" and "promoted tweet" to grow until it engulfs any reason for you to be here, then join Mastodon.
I opened up Web Twitter and roughly a third of my timeline was other people's favs. I've now updated my custom CSS to fix this. Here it is, in case you, too, want to make Twitter vaguely more usable.
I should mention (on account of general renewed Mastodon interest) that I'm also there as keweddji@mastodon.social where I toot more informally but still sporadically.
@silentbicycle@josecalderon I've used Linux consistently for the past decade and haven't had videoconferencing problems since 2011 or so, at least if I was willing to use Chrome for it. (For a while, Hangouts didn't support Firefox, and its current FF support is still a bit buggier.)
…if you're not familiar with what I'm talking about, you should absolutely read Borges' essay about it alamut.com/subj/artiface/… and at least flip through a few pages of Wilkins' book describing it archive.org/details/AnEssa…
Proposal: encode John Wilkins' Real Character in Unicode, and treat ZWJ-joined sequences of these code points as having emoji presentation. Now we can have emoji for any concept that Wilkins could express.
I'm not gonna tweet too much No Man's Sky stuff, but I am gonna show off the map I've been making to keep track of which systems I've visited in which order.
@cmrdpm And prepositions often change their meaning based on the case of the noun that follows them, so the preposition 'in' when used with a noun in the ablative form means "in, at, among": the ablative form of 'regnum' is 'regno'.
@cmrdpm The unmarked subject form is the 'nominative', and it's used as both subject and object of the verb esse 'to be' (sort of like the English "It is I!") So 'caper' and 'ingeniator' are both nominative nouns.
@cmrdpm Most of the forms above are the 'genitive', which is like a possessive. So 'regnum' means 'kingdom', but 'regni' means 'of [the] kingdom'; 'firmitas' means 'reliability', but 'firmitatis' means 'of reliability'. (There's no 'the' in Latin, so it's just inferred from context.)
@cmrdpm Latin has a system called "noun case" where the way the way that nouns work grammatically is encoded in the ending of the noun. English does this for pronouns ('he' versus 'him' versus 'his') but Latin does this for every noun, in several predictable ways.
@cmrdpm There's a neuter ending in Latin which is often -um, so I wondered if there was precedent for using 'caprum' as a gender-neutral variant, but I haven't found an example yet, and 'caprum' is also an accusative variant of the masculine form 'caper', so I should keep looking.
@cmrdpm I should double-check when I'm home with my books, though, just to see! There might be better translations of some of the words that have a more accurate, general sense that I'm also not thinking of now.
@cmrdpm So I might rephrase it as 'caper ingeniator firmitatis in regno animalium est', which is more like, "The goat is the SRE among the animal kingdom", and that's a fair bit less ambiguous.
@cmrdpm My first pass would be 'caper ingeniator firmitatis situs regni animalium est' but I'm not a huge fan of this because of its branching ambiguity: "engineer of the reliability of the site of the kingdom of the animals" could mean a lot of ambiguous things!
@cmrdpm The animal kingdom is 'regnum animalium' (kingdom of the animals), and goat is either 'caper' or 'capra', which differ by gender, so I'm going to do the shitty classical thing and default to male for this translation.
@cmrdpm It's worth noting, however, that 'ingeniator' has a somewhat more restrictive meaning than the more generic 'engineer': it's more of an architect. There's not a great general translation: alternatives might be 'architectus' and 'machinator'.
@cmrdpm So, my instinct is that SRE would be 'ingeniator firmitatis situs', although I should note that 'ingeniator' is, IIRC, a Medieval Latin word and doesn't show up in classical sources. This is something like 'engineer of the durability/reliability of the site'.
@cmrdpm I know (or at least think I remember, as it's been a while) a moderate amount of Latin and would be happy to help out! Did you have a specific thing you wanted translated?
Thus young Getty learned an important lesson: don't pursue aesthetics and novelty at the cost of clarity. He promptly forgot that lesson and got really into constructed languages and functional programming.
My On-Brand Childhood Story is probably that I taught myself cursive in 1st grade and then tried to use it exclusively, and my teacher then patiently explained that it didn't matter how pretty my cursive was, none of my classmates could read cursive yet.
@overfull_hitbox (I'm also unsure about "shit", but I know that an earlier draft of Quenya—when it was still "Qenya"—used the word 'muk' for 'feces', so that's a starting point from which I could do some semi-motivated etymological handwaving.)
@overfull_hitbox This one's gonna take a lot of work; I'm just trying to figure out the right Sindarin word for 'gender', and I haven't even gotten started on 'smacks' yet.
@sclv@acfoltzer But that's my point: it's not that trying to draw these connections together is a bad idea, or that he was wrong for trying. It's admirable and inspiring that he tried, but I still think it's important to point out where it didn't succeed, and how it could still be done better!
@sclv@acfoltzer …where Hofstadter starts to talk about whether an alien would appreciate the music of Bach or Cage more. If he had stopped and listened to what Cage was trying to say, I think he would have come to a different conclusion about the subjectivity of aesthetics and culture.
@sclv@acfoltzer But I think the places where it falls down are illustrative, because of the way that they weaken the whole book around them. I didn't get into it in the post, but his misunderstanding of John Cage, in my mind, completely undermines part of the following section…
@sclv@acfoltzer Part of the reason I wanted to be critical here is because I admire what it's trying to do, which is why I wish it landed more often. I think there's an intellectual and emotional core to the book that's both ambitious and worthwhile.
@chrisamaphone And there's absolutely a place in the world for the kind of book that you can age or mature out of, because those books are often about introducing things that get people inspired, and the greatest thing about GEB is just how inspiring it is and has been to people.
@chrisamaphone I hope I didn't come across as too negative about the book overall, because there is still a lot to like in and about it! I think had I read it about a year before it would have hit me much more positively, because it does cover a lot of topics I love.
But I also rarely see criticism of it, and so I wanted to lay out fairly and cogently the problems I think the book has. I hope I didn't come across too harsh: I tried to emphasize that the book has strengths as well as weaknesses.
As with many of my posts, this is a personal opinion, and one that I don't necessarily expect others to share! I understand the book is widely loved, and I don't want to imply that people are "wrong" for liking it.
(As a general rule, I apologize for all my tweets, because they are universally awful, but this one is especially bad because it reminds people about Other M.)
I've pitched my new idea for a Python-inspired GHC extension to several people at this point, and some of them appeared to be only moderately disgusted with me.
@aaronmblevin@NaleagDeco I've fallen out of being an active contributor (as I switched jobs and therefore don't use Matterhorn at work any longer) but I'm still pretty familiar with most of the codebase and would be happy to help out with whatever you're looking at!
I still endorse the overall thrust of the post, but when read in light of current conversations, I think it reads too much like a lamentation. I still love the Rust language and community, and the proposals under discussion—even as I dislike them—don't "ruin" Rust.
I don't know that I'm going to edit the post, but after thinking about this all day I think I hit the wrong tone. I had an earlier draft that tried to be even-handed that I felt was lackluster, but I think I went too far in the other direction. twitter.com/aisamanra/stat…
@tsion And that's one reason why I wanted to draw a line specifically at `try fn`, because I think there is precedent and momentum for making changes in that direction.
@tsion All of these are absolutely motivated changes, and I think I'd have advocated for them in the language team's position! They also all complicate reasoning in the large in order to make it faster to program in the small.
@tsion (That latter example actually came up at my last job when I was teaching someone Rust: lifetime elision let them write some simple pieces of code they wanted, but then confused them when they had to internalize both lifetimes and what Rust was doing when it let you omit them.)
@tsion Or even making lifetime elision smarter and smarter: again, a change that's motivated and does make programming in Rust easier, but also a change that complicates the overall mental model that's required of Rust's semantics.
@tsion Which is to say, you can have two identical binding sites in two functions that bind variables with different types and may or may not move the name, because you need to have a larger contextual view of the match in question to know whether it's using auto-`ref` or not.
@tsion Another thing I removed was the recent changes to `match` semantics to automatically include `ref` and deref. I think this is overall a good change, but I admit I was conflicted about it for very similar reasons: it requires more contextual knowledge from a programmer.
@tsion And so I tried to be a bit forceful in how I stated things, because I was afraid that walking back the point too much would result in the wrong takeaway, but I do agree that there's some not-useful doomsday-saying and I definitely drifted that way in my rhetoric here.
@tsion A lot of the early feedback I got was that it felt too scattered and didn't end up addressing either point I was trying to make in a really robust way, so I removed it and rephrased things in a clearer but less nuanced way.
@tsion I actually had an earlier version of this draft where I had several paragraphs at the end pointing to the recent "Listening and Trust" post and talking about how this is a difference of priorities, and not a lack of faith in the core team or the language in general.
(…hilariously, the reason my phone cannot reliably open most URLs is not because it lacks a browser—it's a dumbphone from 2013, after all!—but because of expired SSL certs.)
…I know this is My Own Fault for being an Insufferable Stodgy Luddite, but it's still annoying to learn I can't use my insurance's roadside assistance because they text you a URL and my dumbphone cannot open URLs.
I've written far too many posts in the past where I would accidentally introduce errors into code snippets as I tried to rename variables or refactor pieces for readability. This tool makes it easier to find those problems!
My newest post was written with an as-yet unreleased program I'm working on: a simple tool to stitch text and source code snippets into documents as well as build and test the source code used.
✏️ a quick blog post explaining what structural type systems are, and how you can use them to achieve an effect similar to duck typing in dynamic languages: blog.infinitenegativeutility.com/2018/5/structu…
I have an account on the Rust Internals list, which means I get a neat weekly summary email of all the ways people want to make error-handling in Rust worse.
Someone has helpfully responded to this tweet to let me know that symbolic computation didn't originate with Haskell. It's pretty great when people correct things I didn't actually say.
Today I got to introduce coworkers to the Data.Number.Symbolic module from the `numbers` package, and it's a pretty cool package, so, uh, y'all should also be familiar with it:
@GentlyPress (It treats happiness and sadness as opposites, but treats anger as being the opposite of patience, and pleasure as the opposite of "complaint".)
@GentlyPress (This tangentially reminds me of the Lojban language, an invented "logical" language based on predicate calculus, which has a hilariously fiddly system for representing emotions using 39 root emotions modified by 8 optional levels of acuity and 6 optional domains.)
@GentlyPress (It seems especially weird because that game is heavily concerned with the notion of "opposite" emotions in a kind of boiled-down simplified way, so e.g. Sad and Powerful are treated as opposites: the more Sad you are, the less Powerful you are, and vice versa.)
@GentlyPress There's a tabletop game that I know of that uses an emotion wheel (namely, The Veil, the cyberpunk PbtA game) and it has six points which go Mad-Peaceful-Sad-Joyful-Scared-Powerful. Its wheel doesn't seem right to me, but it's interesting as a point of comparison.
@cattheory It turns out that @d_christiansen remembered my joke when he was starting his postdoc and asked me if he could use it, so the fact that the prover is named Pudding is in fact directly because of that tweet!
Some Sunday afternoon yak-shaving: a quick-and-dirty `dmenu` application launcher using XDG Desktop Entries instead of using stuff from $PATH: github.com/aisamanra/dmes… (written hastily, largely untested, requires Python 3.6 or later)
Here's my go at an #artvsartist: I'm Getty, and when I'm not making bad jokes about Haskell and Rust, I bounce between ink, paint, pixels, vectors, and block-printing.
@hikikomorphism (And the former notion is a lot more interesting to me as a concept to explore than the latter, although I guess maybe it would have been harder to emphasize on TV and would have had fewer opportunities for angsty voiceovers.)
@hikikomorphism (Maybe I'm misremembering, but I felt like the book painted the city split as a culturally ingrained consensus that the citizens only faintly thought about, and this adaptation plays it as a sinister draconian split with scary posters everywhere warning about "Bréach".)
@hikikomorphism I love the book, but this adaptation makes a bunch of changes that feel weird and unnecessary to me while not really capturing much of what I liked about the book. I've only seen the first episode and I'm gonna keep watching out of curiosity, but I'm not a fan so far.
…the "next time" segment at the end of the episode raised the stakes: it depicted the word 'now' written as "ИÖW". I do not know which graphic designer was responsible, but they Must Be Stopped.
I have many complaints so far about the TV adaptation of The City & The City, but I absolutely cannot stand how they use random accents to make English text look 'foreign'. One poster in the background says, I quote, "Áre wé mén ör lémönšž?"
@itblumenfeld …I didn't realize until I presented mine at Galois that I actually failed to put a mistake in one of the equations. It turns out, it's actually very hard to force yourself to put mistakes into stuff you know very well, much less egregious mistakes!
…it strikes me that the only reason I've drawn commutative diagrams for the past three years or so was to make incorrect parodies of them. I can't recall now the last time I've drawn a category-theoretic diagram that properly commuted.
(Dr. Launchbury has of course seen this painting—he claimed to be flattered, but he was amused the most by the cyclical commutative diagram that shows up in one corner.)
I had hoped to surreptitiously replace Einstein at night without telling people, but I procrastinated, and only just brought it in last week as a parting gift. Anyway—that's the story of my mediocre, ridiculous parody painting.
I wanted to lampoon this painting, so I did what any reasonable person would do: I painted my own snarky parody of it, complete with incorrect equations, but instead of depicting Einstein, it depicted Galois co-founder and Haskell Committee member John Launchbury.
It also was covered in equations—because science means equations, right?—many of which were of dubious relevance to Einstein, incorrect, or both. For a while, my coworkers had post-it notes with corrections all over the print.
Silly story: a few years back, we at Galois got some new wall art, including a print of a painting of Einstein. I wasn't a huge fan of this painting! It was corny and kitschy, and I dislike that reductive "Einstein = generic smart guy" symbolism in general.
Earlier today I was saying something The Little Prince, and a coworker had misheard and thought I was talking about The Prince, and was consequently very, very confused.
Due to a lunchtime bookstore trip, my collection of Esperanto translations of English literature now includes a copy of 'Winnie-La-Pu' in addition to 'Alicio en Mirlando' and 'La Hobito'.
my plan is to photoshop a scooby-doo screencap so that someone pulls the mask off of a commutative diagram and underneath it's UML, and then haskell programmers will begin throwing medium-to-large-sized pebbles at me in public
(To be fair, if you think `charter` is bad and unnecessary, you should see the other thing I just put on Github: a program that adds `new-` to certain arguments and then execs into `cabal`, because I am a lazy, lazy human being.)
Many caveats: it has some weird personal assumptions, is written in a not-super-robust way, is missing several useful features, and is basically a less-flexible `hi`. I'm happy to expand on it if people'd find it useful, though!
This is a Hacky Personal Tool that I mostly created for my own use, but in case others are interested, I've put `charter`, my home-grown command-line `cabal init` replacement, on Github: github.com/aisamanra/char…
@sw17ch 🎵 So it's finally here, evaluating for you 🎵 If you know the terms, you can compute it too 🎵 Calculate some outputs if you want to clap 🎵 As we take you through this dee-kay rap!
In Haskell, the `$` operator is often used to apply an expression to a following do-notation block. Using `$ do` in your code is sometimes referred to as "paying your do's."
my four-year-old son Grungpbo wouldn't switch to Haskell because he wanted to keep programming in Scheme and when I bribed him with type safety he said "Would you rather have type safety or be happy" and turned back to his editor
@pike7464@galois …this reminds me that I never actually merged my ridiculous heavy-metal-style-font logo for Salty into master; it's still stuck on the ltl_patterns branch: github.com/GaloisInc/salt…
@d6 Oh, definitely! I'm putting together some playtest materials for a rough first go, but I'll definitely post some links once I'm confident I've smoothed out a few design issues.
Delve is a more granular, tactics-focused hack of Hero Kids, a classic-D&D-style RPG designed for a very young target audience which consequently has some robust, elegant, lightweight rules for that sort of game: herokidsrpg.blogspot.com
I haven't been posting much about my personal non-technical stuff lately, but right now I'm hacking together a lightweight grid-maps-and-dice-rolling tabletop game I'm calling Delve, and I'm pretty happy with how the materials look so far.
Yesterday I tried using psutils to put together a booklet, and found that the version of psnup that ships with most distros has had a blatant argument-handling logic bug that looks like it's been there since 1995.
@shelfuu (I don't remember if you had my Jalapeño Cream Sauce while you were in PDX, but it's a sauce I make that's a variation on a cheddar-and-jack Mornay, using cream and sour cream instead of just milk for richness and flavor, and adding diced jalapeños and other spices for a kick.)
@shelfuu (If you add the cheese while the sauce is on the burner, the cheese tends to turn stringier. This also applies when making a Mornay sauce—that is, a Béchamel with cheese—which would be a workable Alfredo substitute, but still taste and feel qualitatively different.)
@shelfuu "Fettuccine all'Alfredo" was originally just pasta tossed with parmesan and melted butter, but lots of places started adding cream to make it richer: a modern preparation can be made by melting butter, adding cream, stirring, then removing from heat & adding grated parmesan.
@shelfuu Tedious pedant here! The phrase "white sauce" usually refers to a béchamel sauce, which is milk thickened with roux, whereas "Alfredo sauce" (as it's understood in most commercial contexts) is usually cream thickened with butter and parmesan.
"Ah!" said the doctor. "I know just the thing to cheer you up. Go into town tonight and see Death, Destroyer of Worlds, come here for the destruction of these men." "But Doctor," protested Oppenheimer,
@n1nj4@ffee_machine Docs is good at the collaborative editing part, but it's merely alright at the brainstorming part. Wave would let you start basically with a chat conversation and seamlessly switch to document editing, whereas "chatting" in a Google Doc is… awkward.
Tonight's project was to try to create random sky images in the style of Steven Universe's backgrounds. I'm still fiddling and want to introduce more striking colors, but I'm already happy with the direction. (Rust+Cairo.)
@mkawia @RustDevLuke @Dropbox I can't speak to Dropbox Paper, which I haven't used, but w/r/t Google Docs, it can do this but doesn't encourage the same smooth workflow. It's great for the collaborative editing part, but it doesn't have the same affordances to make the brainstorming part smooth.
…but as far as I can tell, all of the developers positioned it as "Email But Better!", which it wasn't, and that (coupled with, y'know, Google) meant that it could never grow into the useful and worthwhile tool it could have been.
It was one of the best systems I've used to do collaborative, media-rich brainstorming, and to then gradually turn that unstructured brainstorming into a shared, cohesive document.
@theg5prank I also got several people to unfollow me, although I have no idea if it was because of this tweet or because I made fun of cryptocurrencies earlier. Odds are 50/50.
@theg5prank This got an early, semi-nonsensical quote-tweet from some kind of accelerationist cosplay account, which I assume was what led them all here. I've been giving Twitter's block feature a pretty good workout today.
@vrika I looked on their issue tracker, and someone had brought this up last year. The devs did some complaining about how "people are too sensitive" and how "slavery is over, get over it", and pretty quickly closed the issue. I'm not sure it'd be worth trying to reopen it.
I really thought Godot looked interesting, but the fact that a decision like this didn't get shut down right away speaks so ill of their developer community that now I don't want to have anything to do with it.
I can't believe that in 2018 people think it's acceptable to create systems that not only use "master"/"slave" terminology, but literally use them as keywords: docs.godotengine.org/en/3.0/tutoria…
A person I TA'ed for in grad school (and whom I haven't talked to since) just sent me an email about some kind of ІCO he's involved with, and the whole thing just reads like cryptο bro Lorem Ipsum.
@Blaisorblade There's a bit more detail here, down under the "inheritances" section, and it also describes the third way to use them, where you combine functions that might fail in order to get a definition-by-cases-ish syntax: brej.org/blog/?p=238
@Blaisorblade Almost like a union, except changes to the original unions will also reflect in the "inheritances" created with that union. In that sense, it works sort of like inheritance of fields in OO languages, but exposed as an operator instead of a feature on class definitions.
@Blaisorblade I only posted one-third of the possible uses for "inheritances", and one of the others makes more sense with the name: if you use the `|` operator on hash maps, you get a hash-map-like object that inherits its keys and values from the constituent hash maps.
@raudelmil I mean, to be totally fair to the language, it's not intended for structured programs that are bigger than one file of a hundred or so lines at most, so including a feature that's useful in small limited circumstances might not be inherently a bad idea?
@tsion When I started reading your tweet, I had immediately started thinking of docs.perl6.org/type/Junction, which are yet another way of combining several dynamic values into a single value. Apparently Perl 6 likes those a lot.
@psygnisfive Apparently when you do it with hash maps, it's literally a union; when you do it with functions, it will call the first one, and if it fails, call the second, &c, for a sort of dynamic definition-by-cases mechanism.
I learned today that 1. Plymouth—the software for showing graphical loading animations while a Linux system boots—has its own custom scripting language, and 2. that scripting language has some ideas that are… uh, well…
w/r/t my recent comments about wanting the proposed throw/catch for Rust to be macros: @withoutboats pointed out to me that `catch` wouldn't work as a macro because it needs to work on the AST after all other macros have expanded twitter.com/withoutboats/s…
@withoutboats To a first approximation, I'd argue that pervasive features should be syntax, and convenient-but-not-as-widespread features should be macros if possible. A major factor in my opinion here is that I'm not yet sold that throw/catch sugar would be as pervasive as if/else or even ?.
@withoutboats I don't think macros are inherently better, either: there are trade-offs between the two. Rather, I think a feature like this should be, if possible, at least prototyped as a macro or compiler plugin, even if it doesn't live as one forever.
@withoutboats I don't disagree, but I also think the reason that ? was so well-received was BECAUSE it was a macro first. With try!, people could discover in practice 1. why the operation was useful and 2. why it was too heavyweight as a macro and needed a better syntax.
I said this in tweet form last week, but I tried to expand out my thoughts about why I'd be more comfortable with the Rust try/catch pre-RFC if it were macro-like instead of using new syntax: internals.rust-lang.org/t/pre-rfc-catc…
@ijks_w (The macro/plugin approach also has the advantage that non-rustc tooling around Rust—like, say, syntax highlighters—wouldn't need to change in order to support these new features.)
@ijks_w …and I think I'd be more comfortable if those were included to look at their practical use, and if they turn out to still have major ergonomic issues, to scrap them in favor of syntax, instead of going straight for new built-in syntax.
@ijks_w I think `?` was definitely a step up, but it also made me happy that it was only created after the problems with `try!` became apparent. I'm less convinced that e.g. `throw!` or `#[catch]` would have the same problems…
The fact that try/catch don't introduce "magic", but rather just desugar to plain Rust, is exactly why I think they shouldn't be new language features. Unlike many languages, Rust has a good macro system. I wish they'd use it for this.
It might be my Scheme background speaking, but proposals like this one for new built-in syntax that could easily just be macros make me very disappointed: internals.rust-lang.org/t/pre-rfc-catc…
Recently, Jira updated their UI to include a lot of opaque icons. Luckily, this icon had not one but two pieces of tooltip text to explain what it means.
It's a fun game in lots of ways, but my absolute favorite thing about Splatoon 2 is the excellent graphic design work they do with nonsense writing that nonetheless looks totally believable.
OCaml's syntax (like all syntaxes) has some corners I don't really care for; Reason cleans those up and introduces some of its own. I think it might be an improvement overall, but I don't feel strongly about it.
Today I wrote a small OCaml program and then ported it to Reason. (I have OCaml experience, none with Reason.) My overall verdict is that they're both good and I have no strong preference between them.
@ijks_w This is true, but at the same time, there's an enviable kind of skill in creating logos as clunky and awkward and ill-considered as GNU project logos.
LRT: I'm in no way good at logo design, but I've tossed together some simple logos for various projects—both mine and others—and I like to think I'm reasonably not terrible at it.
@mrkgrnao@plt_dril (Oh, no defense needed! I know exactly what you mean—I've done it a few times myself! e.g. this one twitter.com/aisamanra/stat… There's both fun and art in figuring out how to repurpose the phrasing and context while keeping it recognizably "a dril tweet".)
@mrkgrnao (I think I might have phrased the text of the tweet in a snarkier way than I intended; I should be clear that I also love the dril accounts, and @plt_dril is wonderful.)
Why is it that novelty topic-specific twitter accounts are always dril parodies? There are plenty of jokes out there from non-dril twitter users that you can borrow the format of.
On a somewhat related tangent: my favorite chengyu, or Chinese four-character idiom, is 畫蛇添足 (huà shé tiān zú), which means "draw a snake and add legs," and refers to ruining something by adding too much to it.
@trannosaurusma Be my guest! (…I'm nervous about telling my mother that people are borrowing her interpretation, though. It might encourage her to get deeper into literary interpretation.)
(This came up because she didn't cook any of the dishes at dinner, and then claimed that her lack of contribution was the best part of the dinner and therefore "…just like the Emperor's new clothes", and offered the previous explanation when we asked what she meant.)
My family story from this holiday season is that my mother believes the moral of 'The Emperor's New Clothes' is that "…the best clothes are the ones that don't exist."
@Jyrinx Or sometimes even more benefit: I didn't go into it, but the briefly-mentioned Hedgehog gives you test-case shrinking "for free" in part by not trying to have a one-size-fits-all generator for a type, but rather relying on extra data passed into generation functions.
@Jyrinx This makes sense, but even then, sometimes I prefer using explicit functions or dictionaries. I could write a generator for a new data structure with `Arbitrary a => Gen (Foo a)`, but I could just as easily use `Gen a -> Gen (Foo a)` and get similar benefit.
I emphasize in the post, but I should emphasize here: this is meant to be descriptive and not prescriptive. I want to explain my thinking and principles, but I also don't for a moment think mine is the One True Style.
tiny brain: cross-compilers galaxy brain: using a custom kernel to automatically execute ARM binaries using QEMU in Docker containers universe brain: tricking Docker build with an sh shim to execute ARM binaries using QEMU in Docker containers
This is a fun blog post in part because you can mentally pair each section, in sequence, with a corresponding expanding brain picture: resin.io/blog/building-…
@thumphriees Please let me know if you find or create this, because I would absolutely use it. (…relatedly, I should start using a 'typeclass-free' Github badge on all my repos.)
@shelfuu@acfoltzer (I should cook a wider variety of things on a regular basis, because as it stands about 98% of the tomato paste I buy ends up as a vodka cream sauce constituent.)
@acfoltzer@shelfuu I've got cans of tomato paste from two brands in my cupboard right now, and it doesn't look like either has added sugar, but OTOH, they both have the word "organic" on the label, so probably a notch above Hunts.
(In theory, light-hearted software is great, but in practice, that light-heartedness is either put there by marketing departments, or by programmers—two of the groups I trust least to be entertaining.)
The bad Firefox advertizing thing brings up my two biggest software pet peeves: I never want software to do something without my explicit intention, and I never want my tools to entertain me or otherwise introduce unnecessary levity.
@ndm_haskell@Blaisorblade@jtdaugherty Which is why the question on my mind wasn't, "Can we make HLint hints more universal?"—which is a very good goal!—but rather, "Can we somehow prevent this unnecessary maintenance work by somehow emphasizing that not everyone is going to appreciate the same hints?"
@ndm_haskell@Blaisorblade@jtdaugherty FWIW, this entire thread started because another library maintainer I know was complaining about having to close "drive-by PRs" where people would blindly apply HLint suggestions and try to contribute them back.
@jtdaugherty@Blaisorblade@ndm_haskell That is: all hints should be opt-in by default, and the tool can (upon first use) explicitly ask the user about whether they want all hints on, even contentious ones, or some subset thereof.
@jtdaugherty@Blaisorblade@ndm_haskell I think there's a reasonable assumption when coming to a linter-like tool that the defaults are going to reflect some standard consensus. If that's not the case, then maybe hlint should fail without an explicit configuration step.
@dackerman@mrkgrnao I don't know what "devil's steelvocate" is supposed to mean here, but I don't agree that it's "simpler" for values of "simple" that I care about, regardless of how familiar arrows are.
@pasiphae_goals Oh, that's good to know! (I briefly tried using HLint years ago, and nnever adopted it as a habit, so this was a second newer exploration.)
@mrkgrnao This is true, and also I'm being a little bit snarky by tying my two comments above together—my real problem with Arrow-the-typeclass is that it's too big and tries to abstract too many things, and not that any one operation it exposes is necessarily bad.
I know that tastes differ and all, but I feel like hlint's suggestion here—importing a new module for a more opaque higher-order typeclass method—is significantly worse than just using a lambda.
@d_christiansen (Estas lerte, ke Unicode reprezentas flagemoĝiojn kun sekvoj de alfabetaj signoj konforme laŭ regionaj normoj kiel ISO-3166—ekzemple, la signo 🇺🇸 estas 🇺+🇸—sed tiu ĉi elekto estas problema por flagoj kiel la Esperanto-flago, kio ne estas flago de lando!)
@d_christiansen Mi ankaǔ lastatempe trovis, ke Unicode ne havas verdan stelon, sed ĝi havas verdan koron! Mi pensas, ke 💚 estas nuntempe la plej konvena esperantemoĝio.
I made a mediocre joke and I thought my coworker was mashing the keyboard to express frustration at the joke, but it turned out she had just accidentally tapped her Yubikey.
"The committee, formed at the '87 FPCA conference, was tasked with creating an open standard for a non-strict, purely functional language. This has made a lot of people very angry and been widely regarded as a bad move."
@iximeow At one point, I considered naming a twitter client after the one featured in this game mockup, but that seemed perhaps a tiny bit tacky. (…also, I never actually wrote the Twitter client so it was a moot point anyway.) twitter.com/bonerman_inc/s…
@d_christiansen Mi ne nun lernas malnovnordlandan, sed mi volas fari ĝin. Mi legis iomete malnovnordlandan gramatikon kaj estas tradukinta malgrandajn tekstojn—kiel mi estis faranta, kiam mi trovis 'fámennr'—sed mi ne akiris la konvenajn librojn aŭ rimedojn por ĝin lerni.
@d_christiansen Estas stulta ŝercaĵo: mi trovis la vorton 'fámennr' en vortaro kun la angla traduko 'having few followers', kaj mi estis iomete amuzata, ke la angla traduko povas havi du sencojn je tvitera kunteksto. (Mi pensas, ke nek senco estas komplete vera por mi.)
@mcclure111 From quick experiments, it looks like Ruby treats it not as whitespace but as an identifier character. GHC does treat it as whitespace, and it looks especially great given that Haskell is indentation-sensitive:
Oedipus then approached the Sphinx, who posed her infamous riddle: "What is that which walks on one leg in the morning, two legs in the afternoon, two legs in the evening, and one vertical and one horizontal leg at night?"
ICYMI: I made a #TheZoneCast-inspired Twitter bot that creates new D&D spells by replacing one letter in the names of existing spells: twitter.com/grammarian_rin…
@Blaisorblade @trannosaurusma @pigworker For what it's worth, as I am the author of the post in question: I am pretty sure I deeply agree with Conor on these topics, and only really disagree on how to talk about said topics. I'd definitely never want to throw out Curry-Howard!
@DanielRecker@tsion@TheZoneCast I've seen people use @TheZoneCast's items in their own campaign before, but I don't know if they had official stance on that. My guess is that, as long as it's your own campaign and not, like, an adventure you're selling, you're probably fine?
Their example was casting the spell Cause Fear as Cause Bear. Anyway, I was shocked there wasn't a Twitter bot for these, so I made one: twitter.com/grammarian_rin…
In @TheZoneCast's D&D game, they had a magic item called the Ring of the Grammarian. It allowed you to modify by one letter the name of a spell you were casting, with a corresponding change in effect.
@joshbohde As a Lúcio main, I sometimes struggle with the striated nature of many of the walls, but that does not mean that a smooth space would suffice to save me.
Tonight someone added me as a friend in Overwatch because I made a joke about how Genji is the most Deleuzean hero. (Genji is, after all, the hero who has a body without organs.)
There are definitely tradeoffs to this new API, but it's nice to update configuration from within an application without clobbering careful comments and config formatting choices.
I've pushed a new version of my INI-parsing library with a new bidirectional API. With this API, you can parse a file to a value, modify the value, then reserialize to INI retaining existing comments/whitespace/structure/&c for minimal diffs: hackage.haskell.org/package/config…
I'm using the tweet I criticized here as a jumping-off point, but I want to be clear that what I take issue with is the broader rhetorical tendency, not just a few specific tweets: twitter.com/aisamanra/stat…
@thumphriees sounds like your mistake is leaving yourself room. your tweets cant get worse if they're already as bad as humanly possible. man_tapping_head.jpg
@BenjaminSelfrid I could always go over to Mastodon, where I post semi-regularly and where I've never even gotten close to the 500-character toot limit.
…I mean—in all honesty, I've never wanted to tweet 280 characters, but there have been a lot of situations in which I wished I could tweet about 160 characters.
@d_christiansen@JonSterling It's wonderfully smoky. …I've heard stories of people smelling large pots of lapsang souchong and mistaking it for the smell of actual fire.
@freebroccolo@JonSterling I've got an account I rarely post on and only follow a few people, but I do check it daily and definitely enjoy it a lot more than Twitter.
@Friends_Table For #inktober days 7–10: the rest of the Overwatch characters I play regularly. (Also a stark illustration of how bad I am at drawing lips.)
@plaidfinch I looked into doing this once, and IIRC the answer was to do so in the Lab color space, then go through a series of conversions to get RGB.
@glaebhoerl@thumphriees I think that microlens is more about dependency-management, and lens-family-core is closer to what you're describing. It's still compatible…
@bcjbcjbcj@steveklabnik This offer sadly only lasts for the duration of the words in the tweet, but that'll be fixed when we get non-lexical ass kicking lifetimes.
@shelfuu@acfoltzer FWIW: I tried melatonin and it was sometimes helpful, usually neutral, sometimes Bad. This isn't a common reaction, but it's not unheard of.
@thumphriees@Apple (…'thunderstorm' and 'large', respectively. …although it's been so long since I practiced my hanzi I can't actually read most of the rest.)
@tsion@deech@donsbot But I think the goal is good—and indeed, I used it last week because I wanted to accessibly format Rust code I was putting into a blog post.
@tsion@deech@donsbot I think (with one exception last week) I last used rustfmt when it was much less mature, and ran into a pathological case pretty quickly.
@deech@donsbot But I haven't tried scalafmt, and I also haven't tried rustfmt or hindent in years, so maybe my opinion is just out of date at this point?
@deech@donsbot I would never balk at a project that mandated autoformatting code, but my personal issue is I've never found one that produced code I loved.
@theg5prank This is true and several of my coworkers do so. Fucked up but true. (I think the *** ligature, where the center * is raised, is the worst.)
@itblumenfeld@aaronmblevin …well, also I had a hell of a time getting people willing to sit down and learn the rules, much less play with me. So there's that, too.
@itblumenfeld@aaronmblevin Yeah; it ended up being still vaguely interesting to play in 3–4 dimensions, but for 5+ even a small "board" had too many axes of freedom.
@aaronmblevin (…during undergrad, I wrote up some rules for and a Python implementation of n-dimensional chess variants. They honestly weren't that fun.)
@shelfuu@sw17ch …this tweet has been a topical joke about the almost-8-yr-old comatogenic hit track 'fireflies' by owl city, thank you for your attention
@1HaskellADay@atticusbones Not yet; I'm still mostly just experimenting, but once I've nailed down a few of the details I'm unsure about, I'll put it on Github!
@atticusbones There's also a built-in operation for "mirroring" a block of code, so this is the same code with numbers changed and a call to `horizontal`.
@whitequark I took that screenshot in surf, which I knew wasn't great at rendering, but I had never bothered to compare just how bad. …it's pretty bad.
@DanielleSucher I was trying to figure out if this meant there exists a movie version of Pierre Menard, which sounds difficult to do but also maybe amazing?
@dysinger@JMerritt I should be clear that I'm 100% for decentralization! I'm concerned about the "let's stop pulling from Hackage entirely" kind of approach.
@JMerritt@dysinger I think I'd feel differently if this weren't being proposed as a breaking change: like, it'd be easiest to just… stick with the status quo.
@JMerritt@dysinger This is true, but it's a pretty massive duplication of work and makes authorship fuzzy. I don't see how it's a desirable situation at all.
@mattoflambda@mxavier@taylorfausak Oh wow, I had no idea this was open-sourced at all. It clearly wasn't written for non-FPCo people to run, but I suppose that could be fixed.
@mxavier@taylorfausak So it would feel weird to me to talk to them saying, "Hey, I don't use thing thing, but I want to have a say in what you're doing with it."
@mxavier@taylorfausak I personally haven't—mostly 'cause I use neither Stack nor Stackage, and am mostly concerned that they don't break my side of the ecosystem.
@mxavier@taylorfausak I see that as fundamentally different from a single for-profit entity having a similar level of control over a package ecosystem.
@mxavier@taylorfausak There's not a formal process, but you or I could express interest and become a trustee. It's not just a single group with a single goal.
@mxavier@taylorfausak Hackage trustees are already volunteers, though, from a wide variety of organizations. (e.g. one of my coworkers is one in his free time.)
@mxavier@taylorfausak Stackage-the-piece-of-software is, but that's not why people use Stackage—it's the curated version sets, and how are those 'forkable'?
@taylorfausak I don't see Stackage as being particularly novel outside of the package-set curation, and my impression was that that process was closed.
@taylorfausak So in short, the Hackage model is more open, and also WT has historically been a community player in a way that I don't trust FPCo to be.
@taylorfausak Then there's comments like the one that inspired this thread, where someone at FPCo casually suggests making a divisive ecosystem change.
@taylorfausak Also, things like the "haskell-lang" effort makes me skeptical of FPCo's ability to make concessions to community goals at odds with theirs.
@taylorfausak The way I see it: Hackage is a public, open source project maintained by WT; Stackage is a closed project that FPCo has direct control over.
@a_cowley@dysinger …especially given that so much of the discussion about Stack[age] has been consciously moved outside of previous community discussions fora.
@a_cowley@dysinger And I'm not sure of the right recourse for me as a Haskell-but-not-Stack user to communicate this. (…I mean, aside from tweeting about it.)
@a_cowley@dysinger But with a decision like the one floated above, that would stop being true: the Haskell ecosystem would be split between Stack/non-Stack.
@a_cowley@dysinger For my own part, I'm not a Stack/Stackage user, and right now, that's not a problem: Stack-users and non-Stack-users can still coexist fine!
@a_cowley@dysinger I'm not totally sure. I don't think they've been awful about it, but then discussions like the one that prompted this thread give me pause.
@joeranweiler I suspect that there are fewer of these than you might hope, largely because the GNU assembly syntax has no merits relative to anything. 🎤⬇️
@plaidfinch@kmett And this extension means adding fields/functionality to record-field-as-expression that has no sensible analogue in record-field-as-pattern.
@plaidfinch@kmett IIRC there ware some difficult corner cases to it, on account of GHC reusing the `HsRecFields` type for both expressions and patterns.
@joeranweiler Coincidentally, Grindy Hellscape is the name of my favorite post-metal band, 70's art-house movie, and off-brand Tony Hawk knockoff game.
…part of the reason I sought it out was I'd just read about the 'Semiotic Standard' used in the set design for Alien wharferj.wordpress.com/2012/05/25/ron…
#shithnsays "French and Italian […] are considered romance languages, because among other things they sound pretty." news.ycombinator.com/item?id=9495283