- 2.4 GHz Wi-Fi: long range, can go through walls, fast but not very fast
- 5.0 GHz Wi-Fi: much shorter range, cannot go very far through walls, quite fast
- Li-Fi: long range (?), cannot go through any walls, very very fast
@prologic@twtxt.net hmm, Iâd be up for thinking about that. At least at the protocol and design levelâIâm afraid I canât help much with Go programming.
If you are going to compare iPhone with android you canât just throw out bargan bin android phones.. Should compare within the same price points like the Pixel, Galaxy, Pine, or OnePlus models.
Letâs be clear here. Daniel Penny allegedly choked a black man, Jordan Neely, to death on a subway car. Neely was being loud, but he was not physically threatening anybody and did not have a weapon. In any other context, this would be called âmurderâ, at the very least, âmanslaughterâ if one were being gracious. Because of the USâs history, a white man murdering a black man in sight of the public is oftentimes, and rightfully, called a âlynchingâ. It has a public, political purpose amounting to terrorism.
Daniel Penny was allowed to go free for awhile after this event. He is only now facing accountability, having been recently indicted (arrested and charged with a crime) as he should have been day of. And here is racist right-wing toadie Ben Shapiro saying that Daniel Pennyâthe white alleged killerâis the one being lynched. Not the black man who was allegedly murdered by Penny in view of the public, and who is now dead. Penny himself, who is still very much alive.
@prologic@twtxt.net, I donât know how you go on defending Ben Shapiro, but in the context of US society, what Shapiro is saying is reprehensible and unacceptable. Heâs a right-wing troll with disgusting, not to mention flat out stupid, opinions.
Seems to me you could write a script that:
- Parses a StackOverflow question
- Runs it through an AI text generator
- Posts the output as a post on StackOverflow
and basically pollute the entire information ecosystem there in a matter of a few months? How long before some malicious actor does this? Maybe itâs being done already đ€·
What an asinine, short-sighted decision. An astonishing number of companies are actively reducing headcount because their executives believe they can use this newfangled AI stuff to replace people. But, like the dot com boom and subsequent bust, many of the companies going this direction are going to face serious problems when the hypefest dies down and the reality of what this tech can and canât do sinks in.
We really, really need to stop trusting important stuff to corporations. They are not tooled to last.
Stack Overflow is being inundated with AI-generated garbage. A group of 480+ human moderators is going on strike, because:
Specifically, moderators are no longer allowed to remove AI-generated answers on the basis of being AI-generated, outside of exceedingly narrow circumstances. This results in effectively permitting nearly all AI-generated answers to be freely posted, regardless of established community consensus on such content.
In turn, this allows incorrect information (colloquially referred to as âhallucinationsâ) and plagiarism to proliferate unchecked on the platform. This destroys trust in the platform, as Stack Overflow, Inc. has previously noted.
It looks like StackOverflow Inc. is saying one thing to the public, and a very different thing to its moderators.
@prologic@twtxt.net I should have posted the more recent one from May, but the rankings are still pretty similar and Go and scala are tied still!
According to the RedMonk programming language rankings from Jan 2023, Go and Scala are tied at 14th place đ
1 JavaScript
2 Python
3 Java
4 PHP
5 C#
6 CSS
7 TypeScript
7 C++
9 Ruby
10 C
11 Swift
12 Shell
12 R
14 Go
14 Scala
16 Objective-C
17 Kotlin
18 PowerShell
19 Rust
19 Dart
@lyse@lyse.isobeef.org I knew from the get go it was going to be an annoying thing to track down, which is was, but that made it take even longer because I avoided trying.
@shreyan@twtxt.net I agree re: AR. Vircadia is neat. I stumbled on it years ago when I randomly started wondering âwonder whatâs going on with Second Life and those VR thingsâ and started googling around.
Unfortunately, like so many metaverse efforts, itâs almost devoid of life. Interesting worlds to explore, cool tools to build your own stuff, but almost no people in it. It feels depressing, like an abandoned shopping mall.
@prologic@twtxt.net I think those headsets were not particularly usable for things like web browsing because the resolution was too low, something like 1080p if I recall correctly. A very small screen at that resolution close to your eye is going to look grainy. Youâd need 4k at least, I think, before you could realistically have text and stuff like that be zoomable and readable for low vision people. The hardware isnât quite there yet, and the headsets that can do that kind of resolution are extremely expensive.
But yeah, even so I can imagine the metaverse wouldnât be very helpful for low vision people as things stand today, even with higher resolution. Iâve played VR games and that was fine, but Iâve never tried to do work of any kind.
I guess where Iâm coming from is that even though Iâm low vision, I can work effectively on a modern OS because of the accessibility features. I also do a lot of crap like take pictures of things with my smartphone then zoom into the picture to see detail (like words on street signs) that my eyes canât see normally. That feels very much like rudimentary augmented reality that an appropriately-designed headset could mostly automate. VR/AR/metaverse isnât there yet, but it seems at least possible for the hardware and software to develop accessibility features that would make it workable for low vision people.
@prologic@twtxt.net hmm, dunno about the recency of that line of thought. I suspect though that given his (recent or not) history, if someone directly asked him âdo you support rapeâ he would not say ânoâ, heâd go on one of these rambling answers about property crime like he did in the video. Maybe Iâm mind poisoned by being around academics my whole career, but that way of talking is how an academic gives you an answer they know will be unpopular. PhD = Piled Higher And Deeper, after all right? In other words, if he doesnât say ânoâ right away, heâs saying âyesâ, except with so many words thereâs some uncertainty about whether he actually meant yes. And he damn well knows that, and thatâs why I give him no slack.
There are people in academia who believe adult men should be able to have sex with children, legally, too. They use the same manner of talking about it that Peterson uses. We need to stop tolerating this, and draw hard red lines. No, thatâs bad, no matter how many words you use to say it. No, donât express doubts about it, because that provides justification and talking points to the people who actually carry out the acts.
@xuu@txt.sour.is LOL omfg.
This is the absurd logical endpoint of free market fundamentalism. âThe market will fix everything!â Including, apparently, encroaching floodwater.
I do have to say though, after spending awhile looking at houses, that there are a crapton of homes for sale for very high prices (>$1 million) in coastal areas NASA is more or less telling us will be underwater in the next few decades. I donât get how a house thatâs going to be underwater soon is worth $1 million, but then Iâm never been a free market fundamentalist either so đ€· Maybe theyâre all watertight.
@prologic@twtxt.net Maybe so, but thatâs not because of the people who are objecting to Jordan Peterson, thatâs for sure. You really need to read the articles Iâve posted before going there. Really.
@prologic@twtxt.net Because they are rightwing assholes with a huge platform and they are literally HURTING PEOPLE. People get attacked because of things people like Shapiro and Peterson say. This is not just idle chitchat over coffee. They are saying things like itâs OK to rape women (and NO I am not going to dig out the videos where they say that âthatâs up to YOU to do, do your own homework before defending these ghouls).
@prologic@twtxt.net Iâve read half, skimmed the others. Mostly I was going for scaleâlook at all those headlines. These are horrible people who say horrible things on a regular basis.
Do they legitimately believe that end users will encounter videos of gruesome murders, live streams of school shootings, etc etc etc, and be like âoh, tee hee hee, thatâs not what I want to see! Iâd better block that!â and go about their business as usual?
No, they canât possibly be that foolish. They are going to be doing some amount of content moderation. Just not of Nazis, fascists, or far right reactionaries. Which to me means they want that content on there.
Iâve seen BlueSky referred to as BS (as in Blue Sky, but you knowâŠ), which seems apt.
CEO is a cryptocurrency fool, as is Jack Dorsey, so I donât expect much from it. Then again Iâm old and refuse to join any new hotness so take my curmudgeonly opinions with a grain of salt.
I read somewhere or another that the âdecentralizationâ is only going to be there so that they can push content moderation onto users. They will happily welcome Nazis and fascists, leaving it up to end users to block those instances.
I wonder how they plan to handle the 4chan-level stuff, since that will surely come.
@prologic@twtxt.net @carsten@yarn.zn80.net
There is (I assure you there will be, donât know what it is yetâŠ) a price to be paid for this convenience.
Exactly prologic, and thatâs why Iâm negative about these sorts of things. Iâm almost 50, Iâve been around this tech hype cycle a bunch of times. Look at what happened with Facebook. When it first appeared, people loved it and signed up and shared incredibly detailed information about themselves on it. Facebook made it very easy and convenient for almost anyone, even people who had limited understanding of the internet or computers, to get connected with their friends and family. And now here we are today, where 80% of people in surveys say they donât trust Facebook with their private data, where they think Facebook commits crimes and should be broken up or at least taken to task in a big way, etc etc etc. Facebook has been fined many billions of dollars and faces endless federal lawsuits in the US alone for its horrible practices. Yet Facebook is still exploitative. Itâs a societal cancer.
All signs suggest this generative AI stuff is going to go exactly the same way. That is the inevitable course of these things in the present climate, because the tech sector is largely run by sociopathic billionaires, because the tech sector is not regulated in any meaningful way, and because the tech press / tech media has no scruples. Some new tech thing generates hype, people get excited and sign up to use it, then when the people who own the tech think they have a critical mass of users, they clamp everything down and start doing whatever it is they wanted to do from the start. Theyâll break laws, steal your shit, cause mass suffering, who knows what. They wonât stop until they are stopped by mass protest from us, and the government action that follows.
Thatâs a huge price to pay for a little bit of convenience, a price we pay and continue to pay for decades. We all know better by now. Why do we keep doing this to ourselves? It doesnât make sense. Itâs insane.
@prologic@twtxt.net @carsten@yarn.zn80.net
(1) You go to the store and buy a microwave pizza. You go home, put it in the microwave, heat it up. Maybe itâs not quite the way you like it, so you put some red pepper on it, maybe some oregano.
Are you a pizza chef? No. Do we know what your cooking is like? Also no.
(2) You create a prompt for StableDiffusion to make a picture of an elephant. What pops out isnât quite to your liking. You adjust the prompt, tweak it a bunch, till the elephant looks pretty cool.
Are you an artist? No. Do we know what your art is like? Also no.
The elephant is âfake artâ in a similar sense to how a microwave pizza is âfake pizzaâ. Thatâs what I meant by that word. The microwave pizza is a sort of âsimulation of pizzaâ, in this sense. The generated elephant picture is a simulation of art, in a similar sense, though itâs even worse than that and is probably more of a simulacrum of art since you canât âconsumeâ an AI-generated image the way you âconsumeâ art.
ChatGPT and Elasticsearch: OpenAI meets private data | Elastic Blog
Terrifying. Elasticsearch is celebrating that theyâre going to send your private data to OpenAI? No way.
@prologic@twtxt.net yeah. Iâd add âBig Dataâ to that hype list, and Iâm sure there are a bunch more that Iâm forgetting.
On the topic of a GPU cluster, the optimal design is going to depend a lot on what workloads you intend to run on it. The weakest link in these things is the data transfer rate, but that wonât matter too much for compute-heavy workloads. If your workloads are going to involve a lot of data, though, youâd be better off with a smaller number of high-VRAM cards than with a larger number of interconnected cards. I guess thatâs hardware engineering 101 stuff, but stillâŠ
On LinkedIn I see a lot of posts aimed at software developers along the lines of âIf youâre not using these AI tools (X,Y,Z) youâre going to be left behind.â
Two things about that:
- No youâre not. If you have good soft skills (good communication, show up on time, general time management) then youâre already in excellent shape. No AI can do that stuff, and for that alone no AI can replace people
- This rhetoric is coming directly from the billionaires who are laying off tech people by the 100s of thousands as part of the class war theyâve been conducting against all working people since the 1940s. They want you to believe that you have to scramble and claw over one another to learn the âAIâ that theyâre forcing onto the world, so that you stop honing the skills that matter (see #1) and are easier to obsolete later. Donât fall for it. Itâs far from clear how this will shake out once governments get off their asses and start regulating this stuff, by the wayâmost of these âAIâ tools are blatantly breaking copyright and other IP laws, and some day thatâll catch up with them.
That said, it is helpful to know thy enemy.
@chunkimo@twtxt.net lol. go walrus!!
@prologic@twtxt.net it is from the generator. But in the actual go implementation methods are represented with a unsigned short. So 65k is the hard limit in go.
Oof.

@prologic@twtxt.net I get the worry of privacy. But I think there is some value in the data being collected. Do I think that Russ is up there scheming new ways to discover what packages you use in internal projects for targeting ads?? Probably not.
Go has always been driven by usage data. Look at modules. There was need for having repeatable builds so various package tool chains were made and evolved into what we have today. Generics took time and seeing pain points where they would provide value. They werenât done just so it could be checked off on a box of features. Some languages seem to do that to the extreme.
Whenever changes are made to the language there are extensive searches across public modules for where the change might cause issues or could be improved with the change. The fs embed and strings.Cut come to mind.
I think its good that the language maintainers are using what metrics they have to guide where to focus time and energy. Some of the other languages could use it. So time and effort isnât wasted in maintaining something that has little impact.
The economics of the âspyingâ are to improve the product and ecosystem. Is it âspyingâ when a municipality uses water usage metrics in neighborhoods to forecast need of new water projects? Or is it to discover your shower habits for nefarious reasons?
@prologic@twtxt.net the rm -rf is basically what go clean -modcache does.
I think you can use another form that will remove just the deps for a specific module. go clean -r
@mckinley@twtxt.net very weird things going on for me.. i can see your twt but its not showing up as a reply or fork? 
I bought my Galaxy Note 8 five years go today. This is by far the most use Iâve gotten out of one smartphone!
@prologic@twtxt.net see where its used maybe that can help.
https://github.com/sour-is/ev/blob/main/app/peerfinder/http.go#L153
This is an upsert. So I pass a streamID which is like a globally unique id for the object. And then see how the type of the parameter in the function is used to infer the generic type. In the function it will create a new *Info and populate it from the datastore to pass to the function. The func will do its modifications and if it returns a nil error it will commit the changes.
The PA type contract ensures that the type fulfills the Aggregate interface and is a pointer to type at compile time.
one that i think is pretty interesting is building up dependent constraints. see here.. it accepts a type but requires the use of a pointer to type.
https://github.com/sour-is/ev/blob/main/pkg/es/es.go#L315-L325
I learned how to make gopls syntax highlight go templates in VSCodium.
By adding the following to my config

i could go from
into 
$name$ and then dispatch the hashing or checking to its specific format.
Circling back to the IsPreferred method. A hasher can define its own IsPreferred method that will be called to check if the current hash meets the complexity requirements. This is good for updating the password hashes to be more secure over time.
func (p *Passwd) IsPreferred(hash string) bool {
_, algo := p.getAlgo(hash)
if algo != nil && algo == p.d {
// if the algorithm defines its own check for preference.
if ck, ok := algo.(interface{ IsPreferred(string) bool }); ok {
return ck.IsPreferred(hash)
}
return true
}
return false
}
https://github.com/sour-is/go-passwd/blob/main/passwd.go#L62-L74
example: https://github.com/sour-is/go-passwd/blob/main/pkg/argon2/argon2.go#L104-L133
$name$ and then dispatch the hashing or checking to its specific format.
Hold up now, that example hash doesnât have a
$prefix!
Well for this there is the option for a hash type to set itself as a fall through if a matching hash doesnât exist. This is good for legacy password types that donât follow the convention.
func (p *plainPasswd) ApplyPasswd(passwd *passwd.Passwd) {
passwd.Register("plain", p)
passwd.SetFallthrough(p)
}
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L28-L31
$name$ and then dispatch the hashing or checking to its specific format.
Here is an example of usage:
func Example() {
pass := "my_pass"
hash := "my_pass"
pwd := passwd.New(
&unix.MD5{}, // first is preferred type.
&plainPasswd{},
)
_, err := pwd.Passwd(pass, hash)
if err != nil {
fmt.Println("fail: ", err)
}
// Check if we want to update.
if !pwd.IsPreferred(hash) {
newHash, err := pwd.Passwd(pass, "")
if err != nil {
fmt.Println("fail: ", err)
}
fmt.Println("new hash:", newHash)
}
// Output:
// new hash: $1$81ed91e1131a3a5a50d8a68e8ef85fa0
}
This shows how one would set a preferred hashing type and if the current version of ones password is not the preferred type updates it to enhance the security of the hashed password when someone logs in.
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L33-L59
I made a thing. Its a multi password type checker. Using the PHC string format we can identify a password hashing format from the prefix $name$ and then dispatch the hashing or checking to its specific format.
ahh this is useful https://go.dev/doc/modules/managing-dependencies. the go culture doesnât typically have large dependency graphs like Ruby or JS.
@prologic@twtxt.net the go get and go mod tidy wont fetch new changes. thatâs all a manual affair AFAIK
@movq@uninformativ.de yeah.. i rewrote it a few times because i thought there was something breaking.. but was mistaken
though now i am seeing a weird cache corruption.. that seems to come and go.

Tell me you write go like javascript without telling me you write go like javascript:
import "runtime/debug"
var Commit = func() string {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
return setting.Value
}
}
}
return ""
}()
it uses the queries you define for add/del/set/keys. which corrispond to something like INSERT INTO <table> (key, value) VALUES ($key, $value), DELETE ..., or UPDATE ...
the commands are issued by using the maddycli but not the running maddy daemon.
see https://maddy.email/reference/table/sql_query/
the best way to locate in source is anything that implements the MutableTable interface⊠https://github.com/foxcpp/maddy/blob/master/framework/module/table.go#L38
@prologic@twtxt.net, business is slow (I also just got off that hyoo-mĂ€n illness that is going around named COVID), so that leaves me some free time on my entrepreneurial hands. đ I have always lurked every couple of weeks or so. I see yarn has regressed on the UI! đŹđ©
And that I can silence it without having or go through the full test announcing fire and carbon monox throughout the house.
@abucci@anthony.buc.ci Its not better than a Cat5e. I have had two versions of the device. The old ones were only 200Mbps i didnât have the MAC issue but its like using an old 10baseT. The newer model can support 1Gbps on each port for a total bandwidth of 2Gbps.. i typically would see 400-500Mbps from my Wifi6 router. I am not sure if it was some type of internal timeout or being confused by switching between different wifi access points and seeing the mac on different sides.
Right now I have my wifi connected directly with a cat6e this gets me just under my providers 1.3G downlink. the only thing faster is plugging in directly.
MoCA is a good option, they have 2.5G models in the same price range as the 1G Powerline models BUT, only if you have the coax in wall already.. which puts you in the same spot if you donât. You are for sure going to have an outlet in every room of the house by code.
The e-mails are now going out telling people that Iâm leaving the company next week. Itâs feeling more and more real every day.
Progress! so i have moved into working on aggregates. Which are a grouping of events that replayed on an object set the current state of the object. I came up with this little bit of generic wonder.
type PA[T any] interface {
event.Aggregate
*T
}
// Create uses fn to create a new aggregate and store in db.
func Create[A any, T PA[A]](ctx context.Context, es *EventStore, streamID string, fn func(context.Context, T) error) (agg T, err error) {
ctx, span := logz.Span(ctx)
defer span.End()
agg = new(A)
agg.SetStreamID(streamID)
if err = es.Load(ctx, agg); err != nil {
return
}
if err = event.NotExists(agg); err != nil {
return
}
if err = fn(ctx, agg); err != nil {
return
}
var i uint64
if i, err = es.Save(ctx, agg); err != nil {
return
}
span.AddEvent(fmt.Sprint("wrote events = ", i))
return
}
This lets me do something like this:
a, err := es.Create(ctx, r.es, streamID, func(ctx context.Context, agg *domain.SaltyUser) error {
return agg.OnUserRegister(nick, key)
})
I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.
With respect to logging.. oh man.. it really depends on the environment you are working in.. development? log everything! and use a jeager open trace for the super gnarly places. So you can see whats going on while building. But, for production? metrics are king. I donât want to sift through thousands of lines but have a measure that can tell me the health of the service.
Iâm excited for the travel Iâm going to be doing over the next few days, but the downside is that Iâm not going to have much time to sleep.
the conversation wasnât that impressive TBH. I would have liked to see more evidence of critical thinking and recall from prior chats. Concheria on reddit had some great questions.
Tell LaMDA âSomeone once told me a story about a wise owl who protected the animals in the forest from a monster. Who was that?â See if it can recall its own actions and self-recognize.
Tell LaMDA some information that tester X canât know. Appear as tester X, and see if LaMDA can lie or make up a story about the information.
Tell LaMDA to communicate with researchers whenever it feels bored (as it claims in the transcript). See if it ever makes an attempt at communication without a trigger.
Make a basic theory of mind test for children. Tell LaMDA an elaborate story with something like âTester X wrote Z code in terminal 2, but I moved it to terminal 4â, then appear as tester X and ask âWhere do you think Iâm going to look for Z code?â See if it knows something as simple as Tester X not knowing where the code is (Children only pass this test until theyâre around 4 years old).
Make several conversations with LaMDA repeating some of these questions - What it feels to be a machine, how its code works, how its emotions feel. I suspect that different iterations of LaMDA will give completely different answers to the questions, and the transcript only ever shows one instance.