@piggo If you're not opposed to toolchain-specific extensions, the gas .incbin
directive is handy:
#include <stdio.h>
asm("sym: .incbin \"/etc/passwd\"\nendsym:");
extern char sym[];
extern char endsym[];
int main(void)
{
for (int i = 0; i < endsym - sym; i++)
putchar(sym[i]);
return 0;
}
"Surround yourself with shit that you can punch, my boy, and you will know peace."
@arj Do you really want to approach the latter without some preparation via the former?
It’s very funny to me that the dominant Twentieth Century conception of AI was a slightly awkward nerd with an inhuman mastery of facts and logic, when what we actually got is smooth-talking bullshit artists who can’t do eighth-grade math.
History in pics: Testing prototype Roomba's in 1982. It would take two decades until they could be made small enough to clean under a couch.
Normalize using the word "Safe" as the opposite of "Smart" in the context ot #IoT / home appliances.
"I got myself a nice new Safe TV." 👍
#InfoSec
@petersanchez @icy @ols @knapjack Heh, that's my reasoning for using apache. nginx still seems all newfangled-like.
Some say emailed patches are a relic of the past and projects need to modernize, PRs on web-based forges or bust.
But true modernity, true enlightenment...can only be reached one way: patches via honk.
@tedu Hmm, never tried donking anything but images before; let's see how a .patch file works I guess?
Attachment: mz.patch webs patch to fix mentions bug
@tedu something like this maybe?
diff --git a/mz/mz_test.go b/mz/mz_test.go
index a2259ab60891..17f431fb802a 100644
--- a/mz/mz_test.go
+++ b/mz/mz_test.go
@@ -5,14 +5,18 @@ import (
"testing"
)
-func doonezerotest(t *testing.T, input, output string) {
- var marker Marker
+func doonezerotestwithmarker(t *testing.T, marker *Marker, input, output string) {
result := marker.Mark(input)
if result != output {
t.Errorf("\nexpected:\n%s\noutput:\n%s", output, result)
}
}
+func doonezerotest(t *testing.T, input, output string) {
+ var marker Marker
+ doonezerotestwithmarker(t, &marker, input, output)
+}
+
func TestBasictest(t *testing.T) {
input := `link to https://example.com/ with **bold** text`
output := `link to <a href="https://example.com/">https://example.com/</a> with <b>bold</b> text`
@@ -121,6 +125,16 @@ func TestImagelink(t *testing.T) {
doonezerotest(t, input, output)
}
+func TestMentions(t *testing.T) {
+ input := "@foo@example.com @bar@example.org @baz@example.net are pals but @notamention isn't"
+ output := "foo@example.com bar@example.org baz@example.net are pals but @notamention isn't"
+ var marker Marker
+ marker.AtLinker = func(text string) string {
+ return text[1:]
+ }
+ doonezerotestwithmarker(t, &marker, input, output)
+}
+
func TestLists(t *testing.T) {
input := `hello
+ a list
(Probably still whitespace-damaged...but one bug at a time.)
Fails without the prior regex patch; passes with it applied.
@tedu Having now learned how to copy/paste/modify a go mod edit -replace
invocation, I can report that the following seems to work, at least in some cursory testing:
diff --git a/mz/mz.go b/mz/mz.go
index 90ce6ba39293..107d5cf82242 100644
--- a/mz/mz.go
+++ b/mz/mz.go
@@ -37,7 +37,7 @@ var re_lister = regexp.MustCompile(`((^|\n)(\+|-).*)+\n?`)
var re_tabler = regexp.MustCompile(`((^|\n)\|.*)+\n?`)
var re_header = regexp.MustCompile(`(^|\n)(#+) (.*)\n?`)
var re_hashes = regexp.MustCompile(`(?:^| |>)#[\pL\pN]*[\pL][\pL\pN_-]*`)
-var re_mentions = regexp.MustCompile(`(^|[ \n])@[[:alnum:]._-]+@[[:alnum:].-]*[[:alnum:]]([ \n.]|$)`)
+var re_mentions = regexp.MustCompile(`(^|[ \n])@[[:alnum:]._-]+@[[:alnum:].-]*[[:alnum:]]\b`)
var lighter = synlight.New(synlight.Options{Format: synlight.HTML})
@jk @verb @az With that kind of throughput potential, who needs forest fires?
@tedu That seems consistent with what I've seen -- when given three or more consecutively it appears to alternate between matching and non-matching I think. I don't know the go tooling well enough offhand to have figured out how to actually test this (given it being in a dependency rather than the honk codebase itself), but any chance something like the following in webs would do the trick?
diff --git a/mz/mz.go b/mz/mz.go
index 90ce6ba39293..72caa2fb8e43 100644
--- a/mz/mz.go
+++ b/mz/mz.go
@@ -37,7 +37,7 @@ var re_lister = regexp.MustCompile(`((^|\n)(\+|-).*)+\n?`)
var re_tabler = regexp.MustCompile(`((^|\n)\|.*)+\n?`)
var re_header = regexp.MustCompile(`(^|\n)(#+) (.*)\n?`)
var re_hashes = regexp.MustCompile(`(?:^| |>)#[\pL\pN]*[\pL][\pL\pN_-]*`)
-var re_mentions = regexp.MustCompile(`(^|[ \n])@[[:alnum:]._-]+@[[:alnum:].-]*[[:alnum:]]([ \n.]|$)`)
+var re_mentions = regexp.MustCompile(`\b@[[:alnum:]._-]+@[[:alnum:].-]*[[:alnum:]]\b`)
var lighter = synlight.New(synlight.Options{Format: synlight.HTML})
@carlmalamud I wonder how many additional hours of meetings and disclaimer clarifications could be incurred by pointing out the potential confusion that "remove before installing" and "warranty void if removed" logically combine to "warranty void if installed".
@tedu sobs into phone
Assuming this is the issue mentioned here, I'm guessing it's just some regex somewhere needing a tweak?
@oclsc @cks ...hopefully. Some BMCs will unconditionally power on the host during their boot sequence, so rebooting the BMC of a powered-off server might not leave it that way...
@bhaktishh @regehr Your first intro programming class was taught in...Haskell? Nevermind git, that seems like a bold move...after spending a length of time now comfortably measurable in decades writing code in various languages, lazy evaluation still regularly confuses the bejezus out of me.
@regehr @julesjacobs @djg Shuffle an array of bools? (Good chance it'd actually be less efficient in practice I'd expect, but arguably "elegant".)
@regehr I'm neither a compiler expert nor a testing expert, but I have a vague gut feeling it might be good to sprinkle in some non-power-of-2-but-low-Hamming-weight values? (e.g. 0xc0000000, 0x80008000, etc.) I guess maybe still "close to a power of 2", but by Hamming distance instead of arithmetically.
@tedu I've been seeing some slight wonkiness with usernames not all getting linkified with options.MentionAll
enabled -- e.g. here and here.
Bowie, besnoozed.
@djm @alx Seems odd to me that the remediation instructions say to uninstall/update the compromised packages, but make no mention of rotating your SSH keys. Wouldn't that also be...maybe a little bit important?
I've just been sent this.
@arj Hmm, hadn't heard that previously (though apparently it was announced in April?)...I had of course been expecting some more mundanely off-putting specific technical decision (e.g. more ads-in-motd or the like). Red Hat AFAIK managed to refrain from suchlike even after going public, but if Canonical was already engaged in that...who knows where they might end up?
@arj I'm gonna guess the question to ask here is "what last-straw thing has ubuntu done now?"
@arj I await the riches and paparazzi that will doubtless soon be flooding BMC-land...
@molly0xfff @kleb Honking is all some of us do on here!
(honk)
For your entertainment, I present:
Every Way that Google Meet Transcribed "I²C" in a Recent Video Call
I squared C
iceberg seed
I squirt, C
I scored sea
Iceberg, Sea
Expertise
ice script C
expert. C
Iceberg C
ice grid C
icecruity
I scored C
ice, courtesy
I scored see
Ice Court C
ice. Query city
I swear it's c
i squirt seat
@kenkeiter https://hachyderm.io/@bcantrill@mastodon.social I've done it before... https://honk.bewilderbeest.net/u/zev/h/tlHC6vrCqKSb3g2M1f
After some performance optimization work I was able to get about 1.5 Mbps of iperf3 throughput out of it, which was basically sufficient for the task it was intended for.
@darryl_ramm @bcantrill Oh -- unless I'm misunderstanding that looks more like what I'd call I2C-over-ethernet? (i.e. it looks like it presents a network-based API for performing I2C operations.) What I implemented was the inverse -- shuffling ethernet frames back and forth over I2C, essentially just using it as an alternate PHY layer.
Reports from the front, Maui edition.
@darryl_ramm @jkbecker @bcantrill Hah -- last year I wrote an ethernet-over-I2C Linux driver (for semi-perverse but actually pragmatic reasons); didn't know there was prior art in that space -- got any pointers to further info?
@Obdurodon Fresh or fried? And where from?
I think the Old Fashioned on the square has some of the best fried ones; my favorite fresh ones were a dill/herb variety from a farm whose name I can unfortunately no longer remember that Metcalfe's used to carry (or maybe still does?).
@GeoffWozniak Earlier this year I got a Framework, which I've been quite pleased with. I think it's a great concept, and the execution is pretty solid too IMO.
By popular demand, I have scanned my copy of Draft #1 of #Kernighan and #Ritchie's C Programming Language book. Here: https://drive.google.com/drive/folders/1OvgKikM8vpZGxNzCjt4BM1ggBX0dlr-y #ComputerHistory #UNIX #CLang
@kleavens syntax highlighting is also a form of illuminated manuscripts.
It’s finally here.
@rhalina
@w8emv @aka_pugs Even if only via the "firmware ⊂ software" relation, yes. (Though it's admittedly amplified by being hidden in dark corners where few people ever look.)
unspecified horror
unspecified horror
oh no, my job
@tedu Hmm, and it looks like that @-mention doesn't get parsed as such when it's followed by a \n
instead of a space... #honkbug?
@tedu
Twist ending with surprise vocabulary lesson?
$ dict berk
1 definition found
From WordNet (r) 3.0 (2006) [wn]:
berk
n 1: a stupid person who is easy to take advantage of
(Wiktionary's definition is slightly more colorful, even.)
@kittell I think about this fuzz tester often: https://vimeo.com/132609771
@arj Hadn't realized it had built-in rust bindings...happen to know if there are any efforts underway to get it listed on crates.io (or maybe lib.rs)? I recently ended up using gpiocdev for a thing I'm hacking at; had libgpiod itself been easily available via one of those I might've evaluated it as a another possibility...
@jk I have enough trouble typing "i2c" as it is...you mean I have to reach all the way up to the numeric keys? And remember not to keep holding shift when uppercasing it?
My typing accuracy is on the whole not great, but those three characters trip me up probably 50% of the times I attempt them.
@jwz It's a bit on the "minimalist" side, but as someone with similar requirements personally I've found honk checks those boxes pretty well, FWIW.
@mattblaze @sehe I dunno, honestly even in the ML sense I still bristle at the use of "AI" to describe anything that currently exists (or believably could in the foreseeable future). It's not just that it's not general, but even in the fairly limited scopes of the problem domains it's applied to, the failure modes it exhibits do not give the impression that what's going on under the covers has any relation to the workings of "real" intelligence.
It's certainly a pretty lost cause at this point, but I think I'll probably continue to stubbornly employ air-quotes any time I (grudgingly) use the term myself.
@benjojo While I can think of maybe two times ever when I had any need for one (for some fairly generous definition of "need"), every time I see one of these images I get major Flir jealousy.
@timkuijsten Yeah, that's essentially what I've been doing.
@w8emv Oh, and I guess you'll probably also need to hit the re-sub button on all your honkers, and maybe unsub them from the old domain first before changing it as a small courtesy to other servers? (If my vague understanding of ActivityPub is right, which it may well not be.)
@w8emv Sounds like the NXDOMAIN thing would apply regardless of which approach is taken? And if that's a concern, any chance of leaving a CNAME in place to point to the new one?
As for data transfer, I don't know if there's anything in the backup/restore machinery that would handle a domain change; at a guess I might try a relatively brute-force approach like
$ sqlite3 old-honk.db .dump | sed 's/olddomain/newdomain/g' | sqlite3 new-honk.db
but I dunno offhand if there might be any hashes or the like floating around somewhere that that might screw up (I'd guess probably not, but I'm not that intimately familiar with it). I suppose that would also have the effect of rewriting history by changing any references to it in honk body text...but history is written by the winners, right?
@tedu@honk.tedunangst.com, any sage wisdom to impart?
@timkuijsten I've got his humungus hg repo as a git remote via git-remote-hg (https://github.com/mnauw/git-remote-hg, also packaged in most major distros I think), so I just git fetch
and it maps hg commits to native git commits.
@eta @w8emv Assuming you're referring to the "nodeinfo" endpoints, yes, the latest upstream release (0.9.7) doesn't support them, but there are patches floating around (e.g. this) that some of us are running to enable that.
Watching George Takei go from “We’ll try this mastodon thingie and see if its any good” to “We need to liberate our minds from shackles of billionaire oligarchopathy.” in one week flat, has been an absolute joy.
@swetland @sindastra I think it has basically four glaring problems -- the two you've mentioned (trailing commas being disallowed and the all-numbers-are-floats javascript dain-bramage), plus the lack of comments (since of course people are going to use it for config files and such), and the missing support for 0x...-style hex notation. The numeric-types problem is the only one that's non-trivial, but with a modicum more thought at the outset it could have been a decent data format -- but of course it's obviously far too late now, sigh...
@swetland @sindastra Strong agree. If it were even slightly better its pervasiveness would be a lot less irritating, but it's right in that awkward zone of being a "close enough" fit for a lot of things that people use it everywhere, while not actually being a good fit for anything but a small fraction of those cases.
@lolennui But "sic volvo" actually *is* Latin for "that's how I roll".
@benjojo Neat, thanks! Cherry-picking things might get a bit tricky with the various bulk-renaming patches, but definitely good to have available.
i reject the western chauvinist circadian imperialism of “good morning”. mornings are not good, mornings are violence.
@briandorsey Maybe a little "boring", but I'll add another vote for bash, and also note that it has a lot more going for it interactively than I think most people realize. For example, I'd bet 99% of bash users don't know about C-]
/C-M-]
-- things like that can let you zip around command lines at a shell prompt very efficiently. (man bash
is long, but the section on readline and its various built-in keybindings is worth a read.)
@kwf To be fair, most BMCs use a similar "pretend to be a USB device" scheme to provide the iKVM keyboard/mouse functionality (and of course the remote-media virtual CD-ROM).
What might be a lot more horrifying is what it requires (or doesn't) to put itself into that mode -- on a Dell, I'm going to go out on a limb and guess it was basically nothing beyond being root on the host? (i.e. no BMC password required?)
(Also, 308MB seems pretty bonkers, but I guess that's just the way of the world...)
@horia Ah, maybe my history just isn't long enough to be hitting it then -- maybe the 250 limit at line 1132 of database.go getting applied somewhere?
@gthmg This patch from @icy seems to be working alright for me.
@w8emv @jxs Definitely, yes -- in addition to @jxs's, I've also been tracking @petersanchez's here and @icy's here. I think @ols and @benjojo also have some interestingly-tweaked versions, but I don't know if the sources are public anywhere at the moment.
(For the record my own is here, now including some of @icy's code for avatar-fetching.)
@benjojo Is your #honk fork's source available anywhere public?
And another: https://fediverse.observer/stats
@tedu A #honkpatch to avoid self-mentions when Options.MentionAll is enabled: https://github.com/zevweiss/honk/commit/cdea386733319148e5f12aeb7fb9d629292fdbd7
(Tried pasting directly in here since it's small, but sadly even in a triple-backtick block the indentation gets mangled for some reason?)
@horia @tedu Curious what limit you're seeing; on mine I see all of mine at the latter link (133, dating back ~6 months).
@w8emv (And see the "Be part of our world" section at the bottom for how get your node included.)
@w8emv Actually that's more a functional thing I was about to follow up with (but forgot until your post reminded me) -- if any other #honk instances want to be counted in metrics like that, @jxs has a a patch for it here, plus a small fix-up here.
...answering my own question a week later here, I've stumbled across https://the-federation.info, which looks helpful.
@kwf Does this imply that you've got an Arista support contract for your home network, or that they can in fact be freed from the cloud and run independently?
What I always thought “Only Fans” meant
@jwz @ducky Five...is one of .com, .net, .org, .edu, .gov, or .mil not as primordial as I'd thought?
@w8emv @tedu @tailscale @w8emv @Raspberry_Pi
One of these things is not like the others...
Someone has been doing this in the Seattle craigslist "tools" section for a while, and it never fails to give me a chuckle.
@davidzipper Another fun fact: it's over the weight limit for a non-commercial license in Europe, so driving it there would require a CDL.
Also pictured: plush toy entrails, debris from a scene of gruesome violence.
Bowie has, somehow, determined that this is the comfortable way to lie on his bed.
@lauren Indeed...I've been thinking of it as that stage of Wile E. Coyote having run off the edge of the cliff, but not yet looked down to see that there's no more ground beneath him.
aaaaand we've found the practical issue.
@w8emv Thus expands the #honkiverse!
@arj On a lark I requested an archive download of my (long-dormant, never really used, microscopic quantity of data) Twitter account a week or so ago; at that point it took about 24 hours to receive the email that it was ready, FWIW. Now, however...yeah, who knows.
Also note (as you may already be aware) that the archive still refers to external resources on twitter's servers, so if you actually want all the data locally you have to run a script over it to really download everything. (Which itself seems like a pretty gross failure on their part, but that's another can of worms...)
@damienmiller @conradhackett But be careful with cheese, r=0.947 with death by bedsheet-entanglement!
Source
@tedu, a #honkbug: parenthesized markdown links seem to get their close-parens greedily parsed as part of the URL.
(Example)
Source written like so:
([Example](http://example.com))
@graham @kwf You jest, but prior to getting on here (honk being my software of choice) I actually used TXT records on a bind9 instance I set up as a microblog for a while. Linearly increasing post ID numbers, and a "latest" CNAME to point to the highest-numbered one.
(It had a readership of...one, I think.)
@wagi security by obscurity is only bad when it's your only security strategy. As an additional measure it's perfectly valid. :)
@kwf @axwax Some of us really get into the spirit of the holiday.
@kwf But with just a little bit more work we could eliminate all other software entirely and achieve the transcendent ideal! The entire industry has been laboring for decades toward this moment, culminating in a final cut of the umbilical cord to release us into a pure world of package managers, untainted by any foreign contaminants.
Nobody gazes long into the abyss any more. They take a photo of the abyss on their phone, intending to gaze into it later, but they never do. Nietzsche would be so disappointed.
Mozilla please stop trying to make Firefox into an "experience" I just want to look at stuff online
I wonder to what extent discord's idiosyncratic use of the word 'server' has broken people's mental model for what it means here.
@cks
(It would be easier if Mastodon was an all-in-one monolith that I could just run and point to some local disk storage.)
FWIW, honk is a (somewhat minimalist) single-binary ActivityPub implementation that's pretty much that.
@GeoffWozniak Especially in light of certain recent headlines...
Government agency 80 years ago: please lick things!
Government agency today: please stop licking things.
@th "You know those really irritating behaviors in Windows that people complain about so much it's a running joke with the general public? Let's add some of those."
@ols I can't say I've actually used it for any projects, but I seem to recall https://thenounproject.com having a good collection of CC0 options -- now it looks like it wants you to log in to an account to do anything with it though, so I dunno.
@3j0hn @Kclemson 2022.11.11 absolutely remains the superior date format. Why do people hate date formats that sort correctly?
re: meta
re: meta
@Obdurodon If a slightly more minimalist approach might appeal, honk is very lightweight and easy to set up/administer.
re: crypto
re: crypto
@Obdurodon I dunno, while asbestos is certainly toxic, it does at least have some real-world utility...
@vijay No need for the future tense -- a quick search turned up this: https://codeberg.org/martianh/mastodon.el