@arj Eh, who really needs that fancy-shmancy "userspace" anyway...sounds like a scheme by Big CPU to sell more operating modes.
@tedu I think it might be time to lawyer up -- looks like they're infringing on patented Honk hydration technology!
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/product-mixer/core/src/main/scala/com/twitter/product_mixer/core/pipeline/recommendation/RecommendationPipelineBuilder.scala#L438
Every article about AI this week is like "Today, there's not yet a human who has eaten hot wings so hot that they spontaneously burst into flame. But, as we develop hotter and hotter sauces, we must confront the fact that one day — and that day may come very soon — one of the guests on Hot Ones will become The Inhuman Torch from Marvel Comics and annihilate the eastern seaboard in an all-consuming flame. We must prepare for that inevitable future."
@cks Or alternately, getent services 548
. (Assuming glibc, anyway.)
...and indeed, it's catching on!
https://fosstodon.org/@axboe/110079223973321590
Now we just need @monsieuricon to cook up some sort of lkml<->fediverse bridge for backwards compatibility.
HourlyWolves present:
#wolf #bot
@GeoffWozniak I assume we'll be getting some sort of explanation here once the dust settles?
@tedu But it's like 1.5 Scaramuccis!
@monsieuricon @chockenberry I'm almost tempted enough by this to create an account with one of these LLM things just to see what "...in the style of Bill the Cat" does to its output...
@th @Ange Though I should note that since I'm not actually running BSD I produced that via the version in the bsd-games package, which appears to be slightly different than OpenBSD's, at least: https://man.openbsd.org/bcd.6
(And which I'm only aware of due to this dredging up a memory of a @tedu blog post from a while back: https://flak.tedunangst.com/post/improving-bcd)
@Ange @th
________________________________________________
/A LA BSD'S BCD(6), PERHAPS? |
|] ] ] ] ]]]] ] ]] |
| ] ] ] ] ] ] |
| ] ] ] ] |
|]11]1111111111111111111]111111111111111111111111|
|22222]]22]2]2222222222222]2222222222222222222222|
|33]333333333]3333]333333333333333333333333333333|
|4444444]44444]4444444444444444444444444444444444|
|55555555555555]5]555]555555555555555555555555555|
|666666666666666]66666666666666666666666666666666|
|77777777]7777777777]7777]7]777777777777777777777|
|88888888]88888]8]]8888]888]888888888888888888888|
|999999999999999999999]99999999999999999999999999|
|________________________________________________|
@grawity @cks @gnomon GNU grep has included optimizations based on detecting its stdout being /dev/null
since 2016, FWIW...
I've heard a few people claim that GPT-style AI has helped them write more code. I'd be about a million times more impressed if it helped them write *better* code. The world really really really doesn't need even larger quantities of mediocre code.
@barrelshifter In my experience it's basically okay when strictly constrained to the common C usage pattern of "only when combined with static
" -- effectively macros plus type-checking.
Anything beyond that (extern inline
and such that tend to pop up in C++? ugh...) is an abomination to be shunned with extreme prejudice IMO.
@colinianking I'm not sure offhand what the *nix/FOSS world's equivalent of the Oscars is, but I would like to nominate stress-ng's --ignite-cpu
for "Best Command-line Flag".
@cks I dunno, IMO this seems like it may be a situation where the time for non-violent solutions has passed.
@palmer Yeah, spring seats were my first thought...good luck!
@palmer Damn, just the right side then too? That's an interesting sort of stance...oog. Maybe you can just sorta shim it back up with some cardboard or something, like a rocky table with uneven legs.
@palmer Lowered front end?
@tedu Who said anything about computing it?? My program counters are determined by pure spur-of-the-moment artistic inspiration.
@tedu But calling through a function pointer implies saving a return address -- way too much performance overhead!
To really just do pc = address
as efficiently as possible you need GNU C:
$ cat goto.c
void dontlook(void* p)
{
goto *p;
}
$ gcc -O2 -Wall -o - -S goto.c
.file "goto.c"
.text
.section .text.unlikely,"ax",@progbits
.globl dontlook
.type dontlook, @function
dontlook:
.LFB0:
.cfi_startproc
jmp *%rdi
.cfi_endproc
.LFE0:
.size dontlook, .-dontlook
.ident "GCC: (GNU) 12.2.0"
.section .note.GNU-stack,"",@progbits
@tedu Well, however miraculously, in the time that's elapsed since I posted that Mr. Pinboard has smiled upon me with a reply to my support email (maybe I should frame it, like a Knuth check or something) and assuaged some concerns, so out of some combination of laziness and convenience I'll probably continue using that for the foreseeable future.
I'll definitely keep an eye on inks though (I do see one fresh new commit!) and maybe play around with it a bit to have something on hand as a fallback plan if things in Pinboardland take another turn for the worse...
With Pinboard disappointingly crumbling into (as far as I can tell) complete abandonware running (to the extent that it does) on pure technological inertia, I find myself in search of a new bookmarking system.
Given the general track record of third-party services, whether large or small, at this point I have little faith in any of them not eventually just sort of waltzing off into oblivion without warning, so...self-hosted it is, I guess?
Seeing as I've been pretty happy with honk and a link-saver in a similar style sounds appealing, I'm eyeing inks with some interest. The main thing I think I'd miss is archiving. @tedu -- any chance it might grow some sort of integration with https://web.archive.org/save? It seems like something I could maybe attempt to kludge together myself, but seeing as my go/web app skills are somewhere between meager and nonexistent I'm not sure how well it'd turn out.
Do not seize the day. This will startle the day and may cause it to become aggressive and give you a nasty bite.
Instead approach the day calmly without making eye contact, pet it gently, and slowly enfold it in a careful embrace
If the day shows any signs of resistance to being engaged with, it is likely to turn on you. Back off and return to bed.
@petersanchez And after reading the explanation here -- instead of letting the abusers win and taking down the service entirely, couldn't that problem have been solved with...a firewall rule?
Irritation of the day:
$ pip3 search dtschema
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead.
Bleh, no thanks.
While I find python a mostly-tolerable language (for some small tasks, anyway), I'm very glad that I typically only use it for fairly standalone, stdlib-only kinds of programs and hence rarely have to interact with its package management ecosystem.
@jxs That's a lot of bytes...good thing it compresses well!
XKCD today hitting a close relative of the sailing wisdom "if you can't tie knots, tie lots": https://xkcd.com/2738/
...and now after looking at it a moment longer than I did at the time, I discovered that the shifter cable had in fact not broken, but merely popped out of its little retainer bracket fork.
Annoying that I could in fact have easily fixed it on the side of the road and avoided a lot of headache, but glad that I procrastinated on ordering the replacement parts I wrongly thought I'd need (and that it was ultimately trivial to fix).
@blmt @th @bhtooefr @cynicalsecurity It's less er, ambitious (I guess) than OCP, but the Open19 initiative is roughly along those lines -- ~rack-level PSUs distributing 12VDC to servers with blind-mate connectors for power & network, all in standard 19" racks.
(I'm not personally involved in the project itself, but I work on the Open19 hardware my employer operates.)
a paxos meme from my students for you
@simon @amyhoy
But how could you ever trust that data? You are asking for *facts* but the system is optimized to produce *believable answers* which are not at all the same thing.
Suppose the system optimizes its march to the goal by just making up some numbers that subtly (or not so subtly) tilt the data one way or another. Now you've built a black box to confirm your biases.
And the black box, by its nature, cannot "show its work" without lying.
@palmer Eh, no shame -- they're hard enough to find in reasonable shape regardless of transmission (I got pretty lucky when I found mine, and it still took 6 months or so of searching).
@palmer Yeah, for a minute I could still engage the odd-numbered gears, and thought maybe I could limp it home on just those, but then "three-speed transmission" quickly became "zero-speed transmission"...
@palmer Car twin! (Though I can't blame the road for mine, just a plain old component failure.)
Weekend adventures: cross-country skiing was fun, but after a shifter cable gave out on the highway on the way back, the ensuing 3-hour flatbed ride home was less so. Back into the garage for the car! (This time it should be re-emerging in less than 10 months though.)
@djm Don't think I saw the usual call for testing on the mailing list for this one, any particular reason that didn't happen?
@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})