10 interesting stories served every morning and every evening.




1 1,742 shares, 81 trendiness

Discord will require a face scan or ID for full access next month

Posts from this au­thor will be added to your daily email di­gest and your home­page feed.

Discord an­nounced on Monday that it’s rolling out age ver­i­fi­ca­tion on its plat­form glob­ally start­ing next month, when it will au­to­mat­i­cally set all users’ ac­counts to a teen-appropriate” ex­pe­ri­ence un­less they demon­strate that they’re adults.

For most adults, age ver­i­fi­ca­tion won’t be re­quired, as Discord’s age in­fer­ence model uses ac­count in­for­ma­tion such as ac­count tenure, de­vice and ac­tiv­ity data, and ag­gre­gated, high-level pat­terns across Discord com­mu­ni­ties. Discord does not use pri­vate mes­sages or any mes­sage con­tent in this process,” Savannah Badalich, Discord’s global head of prod­uct pol­icy, tells The Verge.

Users who aren’t ver­i­fied as adults will not be able to ac­cess age-re­stricted servers and chan­nels, won’t be able to speak in Discord’s livestream-like stage” chan­nels, and will see con­tent fil­ters for any con­tent Discord de­tects as graphic or sen­si­tive. They will also get warn­ing prompts for friend re­quests from po­ten­tially un­fa­mil­iar users, and DMs from un­fa­mil­iar users will be au­to­mat­i­cally fil­tered into a sep­a­rate in­box.

Direct mes­sages and servers that are not age-re­stricted will con­tinue to func­tion nor­mally, but users won’t be able to send mes­sages or view con­tent in an age-re­stricted server un­til they com­plete the age check process, even if it’s a server they were part of be­fore age ver­i­fi­ca­tion rolled out. Badalich says those servers will be obfuscated” with a black screen un­til the user ver­i­fies they’re an adult. Users also won’t be able to join any new age-re­stricted servers with­out ver­i­fy­ing their age.

Discord’s global age ver­i­fi­ca­tion launch is part of a wave of sim­i­lar moves at other on­line plat­forms, dri­ven by an in­ter­na­tional le­gal push for age checks and stronger child safety mea­sures. This is not the first time Discord has im­ple­mented some form of age ver­i­fi­ca­tion, ei­ther. It ini­tially rolled out age checks for users in the UK and Australia last year, which some users fig­ured out how to cir­cum­vent us­ing Death Stranding’s photo mode. Badalich says Discord immediately fixed it af­ter a week,” but ex­pects users will con­tinue find­ing cre­ative ways to try get­ting around the age checks, adding that Discord will try to bug bash as much as we pos­si­bly can.”

It’s not just teens try­ing to cheat the sys­tem who might at­tempt to dodge age checks. Adult users could avoid ver­i­fy­ing, as well, due to con­cerns around data pri­vacy, par­tic­u­larly if they don’t want to use an ID to ver­ify their age. In October, one of Discord’s for­mer third-party ven­dors suf­fered a data breach that ex­posed users’ age ver­i­fi­ca­tion data, in­clud­ing im­ages of gov­ern­ment IDs.

If Discord’s age in­fer­ence model can’t de­ter­mine a user’s age, a gov­ern­ment ID might still be re­quired for age ver­i­fi­ca­tion in its global roll­out. According to Discord, to re­move the new teen-by-default” changes and lim­i­ta­tions, users can choose to use fa­cial age es­ti­ma­tion or sub­mit a form of iden­ti­fi­ca­tion to [Discord’s] ven­dor part­ners, with more op­tions com­ing in the fu­ture.”

The first op­tion uses AI to an­a­lyze a user’s video selfie, which Discord says never leaves the user’s de­vice. If the age group es­ti­mate (teen or adult) from the selfie is in­cor­rect, users can ap­peal it or ver­ify with a photo of an iden­tity doc­u­ment in­stead. That doc­u­ment will be ver­i­fied by a third party ven­dor, but Discord says the im­ages of those doc­u­ments are deleted quickly — in most cases, im­me­di­ately af­ter age con­fir­ma­tion.”

Badalich also says af­ter the October data breach, Discord immediately stopped do­ing any sort of age ver­i­fi­ca­tion flows with that ven­dor” and is now us­ing a dif­fer­ent third-party ven­dor. She adds, We’re not do­ing bio­met­ric scan­ning [or] fa­cial recog­ni­tion. We’re do­ing fa­cial es­ti­ma­tion. The ID is im­me­di­ately deleted. We do not keep any in­for­ma­tion around like your name, the city that you live in, if you used a birth cer­tifi­cate or some­thing else, any of that in­for­ma­tion.”

Badalich goes on to ex­plain that the ad­di­tion of age as­sur­ance will mainly im­pact adult con­tent: A ma­jor­ity of peo­ple on Discord are not nec­es­sar­ily look­ing at ex­plicit or graphic con­tent. When we say that, we’re re­ally talk­ing about things that are truly adult con­tent [and] age in­ap­pro­pri­ate for a teen. So, the way that it will work is a ma­jor­ity of peo­ple are not go­ing to see a change in their ex­pe­ri­ence.”

Even so, there’s still a risk that some users will leave Discord as a re­sult of the age ver­i­fi­ca­tion roll­out. We do ex­pect that there will be some sort of hit there, and we are in­cor­po­rat­ing that into what our plan­ning looks like,” Badalich says. We’ll find other ways to bring users back.”

...

Read the original on www.theverge.com »

2 636 shares, 32 trendiness

Why is the sky blue?

Let’s start by ask­ing our­selves: what color SHOULD the sky be?

Or, one step fur­ther back, what color should any­thing be?

And the an­swer is: the color of any­thing is due to the wave­length of pho­tons com­ing from that thing and hit­ting your eye.

These side­notes are op­tional to read, but I’ll use them for giv­ing the fuller tech­ni­cal de­tails when I’ve ab­bre­vi­ated things in the main body of the text.

In this case, the color you see is de­ter­mined by the wave­lengths of light en­ter­ing your eye since (1) you may be see­ing a pure fre­quency, but in al­most all cases, (2) you’re see­ing many fre­quen­cies, which your brain in­ter­prets as a sin­gle color.

For in­stance, the sen­sa­tion of turquoise at a spe­cific point can be caused by (a) pho­tons of wave­length 500nm em­a­nat­ing from that point, (b) a spe­cific combo of pho­tons of wave­lengths 470nm and 540nm, or (c) (mostly re­al­is­ti­cally) pho­tons of a huge num­ber of wave­lengths, prob­a­bly peak­ing some­where around 500nm.

In the text, I am a bit fast and loose with the dif­fer­ence.

When sun­light hits Earth’s at­mos­phere, most col­ors of pho­tons pass through un­en­cum­bered. But blue pho­tons have a ten­dency to ric­o­chet around a lot.

This causes them to dis­perse all through­out the at­mos­phere. They dis­perse so far and wide, and are so nu­mer­ous, that you can look at any part of the sky on a clear af­ter­noon and, at that mo­ment, blue pho­tons will be shoot­ing from that point straight to your eyes.

Therefore the sky is blue.

Most col­ors of light pass through the at­mos­phere rel­a­tively un­en­cum­bered. You only see them when you look at the sun, where they con­tribute to the white­ness of the sun’s light. Blue, how­ever, bounces around a lot, get­ting spread all over the sky. Because blue pho­tons hit our eye­balls from every an­gle of the sky, the whole sky ap­pears blue.

This is true and all, but it kicks the can down the road. Why blue? Why not red?

In short, it’s be­cause blue and vi­o­let have the clos­est fre­quen­cies to a resonant fre­quency” of ni­tro­gen and oxy­gen mol­e­cules’s elec­tron clouds.

There’s a lot there, so we’ll un­pack it be­low. But first, here’s an (interactive) demo.

This demo is a sim­pli­fi­ca­tion. In re­al­ity, 99.999% of pho­tons pass through (neither scat­ter­ing nor ab­sorb­ing), even at the res­o­nant fre­quency. Pretty bor­ing to watch!

When a pho­ton passes through/​near a small mol­e­cule (like N or O, which make up 99% of our at­mos­phere), it causes the elec­tron cloud around the mol­e­cules to jiggle”. This jig­gling is at the same fre­quency as the pho­ton it­self — mean­ing vi­o­let pho­tons cause faster jig­gling than red pho­tons.

In any case, for rea­sons due the in­ter­nal struc­ture of the mol­e­cule, there are cer­tain res­o­nant fre­quen­cies of each mol­e­cule’s elec­tron cloud. As the elec­tron clouds vi­brate closer and closer to these res­o­nant fre­quen­cies, the vi­bra­tions get larger and larger.

The stronger the elec­tron cloud’s os­cil­la­tions, the more likely a pass­ing pho­ton (a) is de­flected in a new di­rec­tion rather than (b) passes straight through.

For both N and O, the low­est res­o­nant fre­quency is in the ul­tra­vi­o­let range. So as the vis­i­ble col­ors in­crease in fre­quency to­wards ul­tra­vi­o­let, we see more and more de­flec­tion, or scattering”.

Scattering” is the sci­en­tific term of art for mol­e­cules de­flect­ing pho­tons. Linguistically, it’s used some­what in­con­sis­tently. You’ll hear both blue light scat­ters more” (the sub­ject is the light) and atmospheric mol­e­cules scat­ter blue light more” (the sub­ject is the mol­e­cule). In any case, they means the same thing 🤷‍♂️

In fact, vi­o­let is 10x more likely to scat­ter than red.

Math talk: scat­ter­ing in­creases pro­por­tional to the FOURTH power of the fre­quency. So higher fre­quency light means WAY more scat­ter­ing.

So why is­n’t the sky vi­o­let? Great ques­tion – we’ll cover that in a sec.

I just want to point out two other things that (a) you can see in the demo above, and (b) are use­ful for later in this ar­ti­cle.

First, when light gets re­ally close to — and even­tu­ally ex­actly at — the res­o­nant fre­quency of the mol­e­cule’s elec­tron cloud, it gets ab­sorbed far more than scat­tered! The pho­ton sim­ply dis­ap­pears into the elec­tron cloud (and the elec­tron cloud bumps up one en­ergy level). This is­n’t im­por­tant for un­der­stand­ing the color of Earth’s sky… but there are other skies out there 😉

Second, did you no­tice that even red scat­ters some? Like, yes, blue scat­ters 10x more. But the sky is ac­tu­ally every color, just mostly blue/​vi­o­let. This is why the sky is light blue. If white light is all vis­i­ble col­ors of light mixed to­gether equally, light blue is all vis­i­ble col­ors mixed to­gether — but bi­ased to­wards blue.

What would the sky look like if it was only blue? Check it out.

I’ll just end by say­ing, this dy­namic (where scat­ter­ing in­creases sharply with the fre­quency of light) ap­plies to far more than just N and O. In fact, any small gaseous mol­e­cule — car­bon diox­ide, hy­dro­gen, he­lium, etc. — would pref­er­en­tially scat­ter blue, yield­ing a blue sky at day.

As you saw above, vi­o­let scat­ters more than blue. So why is­n’t the sky pur­ple? The dumb but true an­swer is: our eyes are just worse at see­ing vi­o­let. It’s the very high­est fre­quency of light we can see; it’s ri­i­ight on the edge of our per­cep­tion.

But! — if we could see vi­o­let as well as blue, the sky would ap­pear vi­o­let.

We might as well tackle the ele­phant in the room: if we could see ul­tra­vi­o­let (which is the next higher fre­quency af­ter vi­o­let), would the sky ac­tu­ally be ul­tra­vi­o­let?

And the an­swer is not re­ally. If we could see UV, the sky would be a UV-tinted vi­o­let, but it would­n’t be over­whelm­ingly ul­tra­vi­o­let. First, be­cause the sun emits less UV light than vis­i­ble light. And sec­ond, some of that UV light is ab­sorbed by the ozone layer, so it never ever reaches Earth’s sur­face.

You can see both of those ef­fects in the so­lar ra­di­a­tion spec­trum chart:

The sun emits the most vis­i­ble light, with UV fre­quen­cies falling off very steeply. Augmenting this ef­fect is that the ozone layer in par­tic­u­lar ab­sorbs a lot of UV be­fore it can reach Earth’s sur­face.

Why is the sun­set red?

So the ob­vi­ous next ques­tion is why is the sky red at dusk and dawn?

It’s be­cause the sun­light has to travel through way more at­mos­phere when you’re view­ing it at a low an­gle, and this ex­tended jaunt through the at­mos­phere gives am­ple op­por­tu­nity for al­lll the blue to scat­ter away — and even a good deal of the green too!

Simply put, the blue pho­tons (and to a lesser de­gree, the green) have ei­ther (a) gone off into space or (b) hit the earth some­where else be­fore they reach your eyes.

When the sun is on the hori­zon (e.g. sun­rise or sun­set), the pho­tons it emits travel through 40x as much at­mos­phere to reach your eyes as they would at mid­day. So blue’s 10x propen­sity to scat­ter means it’s sim­ply gone by the time it would’ve reached your eyes. Even green is sig­nif­i­cantly damp­ened. Red light, which hardly scat­ters at all, just cruises on through.

Again, you can play with this and see for your­self 😎

The an­swer to this ques­tion is the sec­ond of three domains” you should un­der­stand in or­der to have a work­ing model of at­mos­phere color. The physics are dif­fer­ent from the small-mol­e­cule scat­ter­ing above.

Clouds are made up of a huge num­ber of tiny wa­ter droplets. These droplets are so small (around .02 mil­lime­ters in di­am­e­ter) that they re­main float­ing in the air. But com­pared to small gas mol­e­cules like N and O, these droplets are enor­mous. A sin­gle wa­ter droplet may be 100 tril­lion HO mol­e­cules!

So, it’s not as sim­ple as the pho­tons cause the hun­dreds of tril­lions of elec­trons to jig­gle”. Instead, it’s more like the light has en­tered a very tiny prism or glass bead.

In a prism, white light can re­flect around, bounce off ex­te­rior or in­te­rior sur­faces, and even re­flect dif­fer­ently de­pend­ing on fre­quency — cre­at­ing a rain­bow ef­fect.

The droplet is just as com­plex. Some of the pho­tons hit­ting the droplet bounce off the sur­face. Some en­ter it, bounce around in­side once, twice, etc. — and leave again. Perhaps a few are ab­sorbed. As with a prism, dif­fer­ent wave­lengths of light will re­flect at dif­fer­ent an­gles. The specifics aren’t im­por­tant — you should just get the gen­eral gist.

So what­ever white (or slightly yel­low­ish) light that came from the di­rec­tion of the sun is leav­ing in many ran­dom di­rec­tions. Think of every color, shoot­ing off in dif­fer­ent di­rec­tions! And then mul­ti­ply that by a quadrillion droplets! In sum, you just see every fre­quency of pho­ton com­ing from every part of the cloud.

And that means the cloud is white!

This idea that the tiny droplets that com­prise clouds scales up. Anything larger that light can en­ter — driz­zle, rain­drops, hail — will also tend to­wards white.

But that raises the ques­tion — what about things in be­tween tiny mol­e­cules (N, O) and the rel­a­tively enor­mous prism-like droplets? How do those things act?

Well, the dust in the sky of Mars is a great ex­am­ple 😉

Why is the sky on Mars red?

The an­swer to this ques­tion is the third of three domains” you should un­der­stand in or­der to have a work­ing model of at­mos­phere color. The physics are dif­fer­ent from both the small-mol­e­cule scat­ter­ing and large-droplet prism-dy­nam­ics above.

The Martian sky is red be­cause it’s full of tiny, iron-rich dust par­ti­cles that ab­sorb blue — leav­ing only red to scat­ter.

Yeah, yeah, I hear you. This an­swer is can-kick­ing! Dust, schmust. Why does it ab­sorb blue?”, you de­mand.

OK, so the an­swer is ac­tu­ally fairly straight­for­ward. And it gen­er­al­izes. Here’s the rule: when­ever you have solid par­ti­cles in the at­mos­phere (very small ones, ap­prox­i­mately the size of the wave­length of vis­i­ble light), they gen­er­ally tend to turn the air warm col­ors — red, or­ange, yel­low.

If you live in an area with wild­fires, you’ve prob­a­bly seen this ef­fect here on Earth!

To re­ally un­der­stand the rea­son, let’s back up and talk about some chem­istry.

Compared to tiny gas mol­e­cules, solid par­ti­cles tend to have a much wider range of light fre­quen­cies that they ab­sorb.

For in­stance, we dis­cussed how N and O have spe­cific res­o­nant fre­quen­cies at which they hun­grily ab­sorb UV pho­tons. Move slightly away from those fre­quen­cies, and ab­sorp­tion drops off a cliff.

But even for a tiny dust nanopar­ti­cle, there are many con­stituent mol­e­cules, each in slightly dif­fer­ent con­fig­u­ra­tions, each be­ing jos­tled slightly dif­fer­ently by its neigh­bors. Consequently, the con­stituent mol­e­cules all have slightly dif­fer­ent pref­er­ences of which fre­quency to ab­sorb.

Because the peak” ab­sorp­tion of the mol­e­cules is usu­ally vi­o­let or ul­tra­vi­o­let (as it is with small gases), blues/​vi­o­lets will make it to the sur­face much less than or­anges/​reds.

Approximate light ab­sorp­tion from Martian dust as a func­tion of wave­length

Of course, a rea­son­able ques­tion is why are blue and vi­o­let ab­sorbed so strongly by these dust par­ti­cles?

Well, those are the only pho­tons with enough en­ergy to bump the dust mol­e­cules’s elec­trons up to a new en­ergy state.

So, the ex­act specifics de­pend on the mol­e­cules in ques­tion, but gen­er­ally, the level of en­ergy needed to bump up the elec­tron en­ergy state in a dust or smog par­ti­cle’s mol­e­cules cor­re­sponds to vi­o­let or UV pho­tons.

This is ac­tu­ally true of solids in gen­eral, not just at­mos­pheric dust or aerosols. If you’ve ever heard that pur­ple was the color of kings” or that the pur­ple dye of an­tiq­uity was worth its weight in gold, it’s true! To get some­thing pur­ple, you’d need to find a ma­te­r­ial whose elec­trons were ex­cited by low-en­ergy red pho­tons, but had no use for higher-en­ergy vi­o­let pho­tons.

So this is why the Martian sky is red — and why reds and browns are more com­mon in na­ture (for solid things, at least) than pur­ple and blue.

Why is the Martian sun­set blue?

It’s less fa­mous than the red day­time sky of Mars, but the Martian sun­set is blue!

Martian sun­set photo taken by the Spirit rover.

In the last sec­tion, we talked about Martian dust ab­sorb­ing vi­o­let/​blue. But the dust also scat­ters light — which it can do to­tally un­re­lated to how it ab­sorbs (remember, since pho­tons can — and usu­ally do — cruise straight through a mol­e­cule, scat­ter­ing and ab­sorb­ing can have their own in­ter­est­ing fre­quency-de­pen­dent char­ac­ter­is­tics. They don’t sim­ply sum to 100%)

Small at­mos­pheric par­ti­cles, like dust and smog, are equal-op­por­tu­nity scat­ter­ers. The ab­solute prob­a­bil­ity they’ll scat­ter a pho­ton does not change sig­nif­i­cantly with the pho­ton’s wave­length. However, dif­fer­ent-fre­quency pho­tons can be more or less likely to scat­ter in dif­fer­ent di­rec­tions.

For our pur­poses, it suf­fices to know that Martian dust — like many at­mos­pheric par­ti­cles of sim­i­lar size — gen­er­ally scat­ters blue light closer to the di­rec­tion it was al­ready go­ing. Red light has a higher prob­a­bil­ity of de­flect­ing at a greater an­gle.

Because red light de­flects MORE and blue light LESS when scat­ter­ing off dust par­ti­cles, the area di­rectly around the sun will be blue — even though more blue is ab­sorbed en route.

When mol­e­cules de­flect pho­tons only a tiny an­gle, it’s called forward scat­ter­ing”. Forward scat­ter­ing is the most pro­nounced for larger par­ti­cles, like dust or smog aerosols. It’s ac­tu­ally so strong on Mars that even at mid­day, red light does­n’t fill the sky evenly — the sky op­po­site the sun is no­tice­ably darker!

But blue’s ten­dency to for­ward-scat­ter more di­rectly against Martian dust means the Martian sun­set has a blue halo.

At the be­gin­ning of this ar­ti­cle, I said be­ing able to pre­dict some­thing is a good mea­sure of how well you un­der­stand it. Let’s do that now. Let’s build a model for pre­dict­ing the sky color on new plan­ets/​moons, or dur­ing dif­fer­ent sce­nar­ios on our own planet.

Here are the three gen­eral rules of thumb we’ve al­ready talked about.

Atmospheric gases tend to be much, much smaller than the wave­lengths of vis­i­ble light. In these cases, they tend to pref­er­en­tially scat­ter blue/​vi­o­let/​UV. This means that gaseous at­mos­pheres are usu­ally blue or blue-green.

Uranus: up­per at­mos­phere is 98% hy­dro­gen and he­lium. We don’t have pic­tures from the sur­face.

Neptune: up­per at­mos­phere is 99% hy­dro­gen and he­lium. We don’t have pic­tures from the sur­face.

This is pleas­ingly true for Earth, Uranus, and Neptune.

You may re­call Neptune as look­ing like a much darker, richer blue. However, more re­cent analy­sis by Patrick Irwin shows the true color is very likely closer to what’s shown here.

It’s also worth not­ing that Neptune and Uranus’s blue color is made no­tice­ably richer by the red-ab­sorb­ing methane in their at­mos­pheres.

When vis­i­ble light hits par­ti­cles that are in the ball­park of its own wave­length, things get more com­pli­cated and can dif­fer on a case-by-case ba­sis.

These par­ti­cles are typ­i­cally ei­ther:

Haze: solid par­ti­cles formed by chem­i­cal re­ac­tions in the at­mos­phere

All three sig­nif­i­cantly dusty/​hazy at­mos­pheres in our so­lar sys­tem hold to this rule!

Titan’s sky is or­ange due to a haze of tholins (organic mol­e­cules)

Venus’s sky is yel­low to a haze of sul­furous com­pounds

When vis­i­ble light hits clouds of droplets (or ice crys­tals) that are much big­ger than light’s wave­length, the droplets act akin to a vast army of float­ing prisms, send­ing out all col­ors in all di­rec­tions.

Consequently, clouds tend to ap­pear white, gray, or de­sat­u­rated hues.

Venus: high-al­ti­tude clouds of sul­fu­ric acid (!). The tan/​or­ange is from the afore­men­tioned haze.

Putting it all to­gether

The largest and most com­plex at­mos­phere in our so­lar sys­tem is Jupiter. But we know enough to start mak­ing some smart guesses about it!

QUIZ: look­ing at this pic­ture, what can you say about Jupiter’s at­mos­phere? Answers be­low the im­age, so take a guess be­fore scrolling 😉

Here’s a com­par­i­son of how a ba­sic guess — in­formed by our sim­plis­tic model — com­pares to sci­en­tific con­sen­sus.

Clouds, prob­a­bly of ice be­cause of cold­ness

Small at­mos­pheric mol­e­cules. But po­ten­tially a chem­i­cally odd haze, if some­thing ab­sorbed the vis­i­ble spec­trum pretty strongly?

The Galileo probe that de­scended into Jupiter en­tered one of these spots. It’s most sur­pris­ing find­ing was how dry Jupiter’s at­mos­phere seemed to be. But know­ing it fell be­tween where the clouds were, this makes to­tal sense. Instead of ice crys­tals, it found hy­dro­gen and he­lium.

...

Read the original on explainers.blog »

3 530 shares, 23 trendiness

jim11662418/ESP8266_WiFi_Analog_Clock: Uses an ESP8266 module and an Arduino sketch to display the local time on a inexpensive analog quartz clock.

This pro­ject uses an WEMOS D1 Mini ESP8266 mod­ule and an Arduino sketch to con­nect to a NTP (Network Time Protocol) server to au­to­mat­i­cally re­trieve and dis­play the lo­cal time on a in­ex­pen­sive ana­log quartz clock. The ESP8266 re­con­nects to the NTP server every 15 min­utes which keeps the clock ac­cu­rate. The clock also au­to­mat­i­cally ad­justs for day­light sav­ings time.

WEMOS D1 Mini ESP8266 Module with EERAM IC and Components on a Piece of Perfboard

I’m us­ing an ana­log clock with a quartz move­ment I found at my lo­cal Walmart for $3.88. Whatever ana­log clock you de­cide to use, its quartz move­ment will need to be mod­i­fied so that it can be con­trolled by the ESP8266 mod­ule. Open up the move­ment (most of them snap to­gether with­out any fas­ten­ers), dis­con­nect the in­ter­nal coil of the Lavet step­ping mo­tor from its quartz os­cil­la­tor and then sol­der a wire to each of the coil’s leads to make con­nec­tions for the ESP8266. If you search around on the web you’ll find ar­ti­cles show­ing how oth­ers have done it. Be care­ful when work­ing with the coil. The coil’s wires are typ­i­cally thin­ner than a hu­man hair and ex­tremely frag­ile.

The sketch: AnalogClock.ino should be (I hope) clear enough, but here, in brief, is a sum­mary of how it op­er­ates. Ten times each sec­ond the ESP8266 com­pares the time dis­played on the ana­log clock to the ac­tual time re­trieved from an NTP server. If the ana­log clock lags be­hind the ac­tual time, the ESP8266 ad­vances the clock’s sec­ond hand un­til the clock agrees with the ac­tual time. If the time dis­played on the ana­log clock is ahead of the ac­tual time, the ESP8266 sim­ply waits un­til the ac­tual time catches up with the ana­log clock since it can’t move the clock’s hands back­wards.

The ESP8266 ad­vances the ana­log clock’s sec­ond hand by gen­er­at­ing bipo­lar pulses, al­ter­nately pos­i­tive and neg­a­tive to the clock’s Lavet mo­tor coil. Because of dif­fer­ences in clock mech­a­nisms, you may need to in­crease or de­crease the PULSETIME con­stant in the sketch by few mil­lisec­onds to make your mech­a­nism step re­li­ably. Experimentally, I found that 30 mil­lisec­onds works best for my move­ment.

The biggest prob­lem with us­ing these cheap ana­log clocks for a pro­ject like this is that the clocks don’t pro­vide any type of feed­back to in­di­cate the po­si­tion of the clock’s hands. Thus if power is in­ter­rupted to the ESP8266 con­trol­ling the clock, the ESP8266 forgets” where the clock’s hands are po­si­tioned. To get around this prob­lem, the po­si­tions of the hour, minute and sec­ond hands are stored in a Microchip 47L04 Serial EERAM (4Kbit SRAM with EEPROM backup) and up­dated each sec­ond as the clock’s hands po­si­tions change. If power is in­ter­rupted, the ESP8266 can re­trieve the last po­si­tion of the clock’s hands from the EERAM when power is reap­plied.

The very first time that the sketch is run, the user will be di­rected to a sim­ple web page (see be­low) served by the ESP8266 which is used to tell it where the ana­log clock’s hands are ini­tially po­si­tioned. From that point on, the ESP8266 will use the data stored in the EERAM to remember” the po­si­tions of the clock’s hands.

Once the ESP8266 fin­ishes its ini­tial­iza­tion and starts op­er­a­tion, it serves a sim­ple web page show­ing the clock’s sta­tus. The sta­tus page can op­tion­ally show a graphic im­age rep­re­sent­ing the clock’s Face drawn us­ing Scalable Vector Graphics, or HTML Canvas, or no im­age at all.

Analog Clock Status Page Using Scalable Vector Graphics to Draw the Clock Face

Analog Clock Status Page Using the HTML Canvas Element to Draw the Clock Face

...

Read the original on github.com »

4 497 shares, 21 trendiness

Notifications are delayed

...

Read the original on www.githubstatus.com »

5 349 shares, 15 trendiness

Incident with Issues, Actions and Git Operations

...

Read the original on www.githubstatus.com »

6 326 shares, 35 trendiness

A Benchmark for Evaluating Outcome-Driven Constraint Violations in Autonomous AI Agents

...

Read the original on arxiv.org »

7 323 shares, 38 trendiness

Discord Alternatives, Ranked

I’ve been run­ning a Discord server for about four and a half years now. When I started stream­ing dur­ing the pando, I had no idea that I would end up build­ing a com­mu­nity. Hell, I’d never even used Discord be­fore. I only knew what it was be­cause I had to stop my stu­dents from us­ing it.

Don’t like read­ing? Click here for the fi­nal scores.

But folks kept ask­ing for one. My view­ers ex­pected a com­mu­nity hub in which peo­ple who found their way to my Twitch streams could find each other, even when I was not live. As the whole stream­ing thing was it­self an ex­per­i­ment in re­mote learn­ing for me, this seemed a nat­ural ex­ten­sion. So now, I have some mileage on me as a com­mu­nity mod­er­a­tor. I’m in­ti­mately fa­mil­iar with the fea­tures Discord of­fers, and all the ar­gu­ments against us­ing it. I’m sen­si­tive to them, FOSS dork that I am. I’m also keenly sen­si­tive to the ar­gu­ments about data loss in­side of a for­ever-chat. In fact, I’m so sen­si­tive to it that I even tried to ad­dress the prob­lem in some small way.

But Discord, like all freemium ser­vices, is a risk. At any mo­ment their ad­ver­tis­ing model could be­come in­tol­er­a­ble, or their pol­icy about us­ing my data to train AI could change, or their pric­ing could get out of con­trol, or some other rent-seek­ing non­sense com­mon to in­ter­net ser­vices try­ing to stretch their profit mar­gin.

I need an exit strat­egy. Anyone us­ing Discord needs an exit strat­egy. The trick is to find a land­ing spot that users will tol­er­ate, and that al­lows the com­mu­nity to con­tinue in some fash­ion. Change is loss, and that is ex­cru­ci­at­ingly true for com­mu­nity plat­forms. Any switch comes with an at­tri­tion rate, mean­ing the des­ti­na­tion bet­ter be worth the cost in head­count.

For this rea­son, and for an­other pro­ject, I’ve been deeply re­search­ing Discord al­ter­na­tives for the bet­ter part of a year. Some of my col­leagues may think me a bit ob­sessed about the im­por­tance of a chat app,” but I’m con­vinced that the com­mu­ni­ca­tion mech­a­nism for on­line com­mu­ni­ties is crit­i­cal to their suc­cess. Choosing a new one could be the a mat­ter of life and death for the com­mu­nity. This is a de­ci­sion we have to get right the first time.

So here, humbly sub­mit­ted, are my rank­ings of many of the Discord-like al­ter­na­tives for main­tain­ing on­line com­mu­ni­ties.

I’ve ar­rived at five broad cat­e­gories in which an on­line com­mu­nity plat­form needs to per­form.

Functionality: can it do every­thing re­quired of a plat­form for build­ing, or­ga­niz­ing, and sus­tain­ing a com­mu­nity?

Openness: what ac­cess is there to all the tool’s fea­tures and code with­out pay­ment?

Security: how se­cure are the server and user data against com­mon threats?

Safety: what fea­tures are avail­able to mod­er­ate the com­mu­nity and pro­tect it from ma­li­cious or un­wanted be­hav­ior?

Decentralization: how re­liant is the ser­vice on sin­gle points of fail­ure?

These will be eval­u­ated on a scale from 1-5, with 5 be­ing the best” for each cri­te­rion.

I’ve done my best to con­sider mul­ti­ple use cases and threat mod­els in these scores. I am, how­ever, a flawed, bi­ased meat­sack with lim­ited vis­i­bil­ity. I may not have pre­dicted your needs pre­cisely. I may have omit­ted your fa­vorite op­tion. If so, I hope you’ll af­ford me some grace. I did the best I could.

Oh, and I’m not touch­ing Slack or Teams. Reasons should be ob­vi­ous.

We’ll start with Discord as a base­line.

As a prod­uct, Discord is very, very good. It serves its pur­pose with an ab­solutely min­i­mum of fric­tion—both from a user and ad­min­is­tra­tor per­spec­tive. Even with­out pay­ing, the fea­tures out of the box are well-con­sid­ered and help­fully im­ple­mented. What is the prod­uct, any­way? Sometimes it seems like Discord them­selves don’t re­ally know. While they bris­tle at be­ing called a Slack clone,” there’s a rea­son many com­pa­nies (especially tech star­tups) choose Discord as both their in­ter­nal team com­mu­ni­ca­tion tool, as well as their cus­tomer en­gage­ment tool. Some truly be­nighted groups even choose to doc­u­ment their prod­uct with it.

Whatever Discord thinks it is, the pur­pose of a sys­tem is what it does, and Discord builds on­line com­mu­ni­ties. Say what you want about the com­pany, the closed na­ture, the in­creas­ingly-icky ad model, the core of Discord con­tin­ues to work well for bring­ing peo­ple to­gether in quasi-pub­lic on­line spaces. The medium of real-time text, aka in­stant mes­sag­ing, aka IRC-again-but-not-IRC, has be­come a de­fault, but one not with­out lim­i­ta­tions. For ex­am­ple, what does this do to your heart rate:

Right?! We’ve em­braced im­me­di­acy at the ex­pense of depth. Also, in Discord’s case, ac­ces­si­bil­ity. Searching Discord is a proper dis­as­ter. While mes­sages are more or less per­ma­nent, it is by no means easy to find them again, weeks/​months/​years later.

But let’s get into the cri­te­ria be­fore this be­comes a trea­tise on the na­ture of the mod­ern web.

As men­tioned, Discord is highly func­tional—for what it does. But its lim­i­ta­tions do start to grate as time goes on. Online com­mu­ni­ties have a pre­dictable life­cy­cle, in which the ex­cite­ment of the early days is well-served by real-time chat. The memes are fly­ing; peo­ple are ex­cited to meet each other; the fu­ture holds bound­less pos­si­bil­i­ties. The space will cat­e­go­rize and frag­ment, try­ing to or­ga­nize the chaos. Over time, most of the mes­sages come from a core group of con­trib­u­tors, with more oc­ca­sional ar­rivals and ques­tions from new­com­ers. This is as it should be. But what hap­pens to the his­tory of that com­mu­nity as it heads up the scroll? How does the past use­fully in­form the fu­ture?

Discord has made some af­for­dances for this with Forum” type chan­nels. Even so, the past is hard to ex­plore.

Discord is not open, so not much to say on that front.

Discord mes­sages are not end-to-end en­crypted. Pretty fa­mously, Discord will give up your data for law en­force­ment. Although they’ve re­cently added end-to-end en­cryp­tion for video and au­dio, the im­ple­men­ta­tion is clunky. And of course, all the text data in a Discord server is un­en­crypted. But hey, at least they sup­port MFA?

Safety, in the sense of Trust and Safety,” may be Discord’s great­est strength. I have greatly ap­pre­ci­ated all the mod­er­a­tion tools at my dis­posal. Even a mod­estly sized server like mine (~3000 users) would be im­pos­si­ble to man­age with­out au­to­matic word catch­ing, gran­u­lar per­mis­sions on chan­nels and roles, and mul­ti­ple re­sponse op­tions in­clud­ing time­outs, kicks, and bans. Discord also has a very in­volved on­board­ing flow that makes cer­tain there is an agree­ment to com­mu­nity rules be­fore users can par­tic­i­pate.

And need we even men­tion de­cen­tral­iza­tion here? If Discord fails, your com­mu­nity goes dark.

Best for: com­mu­ni­ties who value se­crecy above all.

I love Signal. Like, a lot. I’m a daily user and a donor. I’ve even con­vinced most of my friends and fam­ily to use it as our pri­mary mode of text com­mu­ni­ca­tion. And yes, I’ve or­ga­nized a com­mu­nity with it—one for which pri­vacy was (at the time) of para­mount im­por­tance. I am deeply fa­mil­iar with all ad­van­tages and draw­backs of Signal.

As a se­cure chat, Signal does just fine. Well, bet­ter than fine from a cryp­tog­ra­phy per­spec­tive. It is the gold stan­dard in end-to-end en­crypted com­mu­ni­ca­tions for good rea­son. But the strongest cryp­tog­ra­phy in the world is mean­ing­less for a com­mu­nity if the plat­form is un­us­able. Fortunately, that’s not the case for Signal. Emoji re­ac­tions, stick­ers, (some) for­mat­ted text, and even voice/​video calls make it an in­dis­pens­able tool for se­cure com­mu­ni­ca­tions that feel fa­mil­iar and fea­ture-filled enough for normies. Nobody will be to­tally lost mov­ing from an­other chat app to Signal.

If you’re look­ing for noth­ing but chat, Signal is fan­tas­tic. But many as­pects of com­mu­nity-build­ing on­line are sim­ply un­avail­able here. To start, there are only group chats. There is no con­ver­sa­tion thread­ing or chan­nels to keep con­ver­sa­tions or­ga­nized. You can have mul­ti­ple chats, but that gets messy quickly.

I can’t even pin posts. In fact, post search­a­bil­ity is a lim­ited fea­ture by de­sign. Most group chats en­able dis­ap­pear­ing mes­sages. That’s great to pre­vent in­crim­i­nat­ing ev­i­dence from pil­ing up; it’s ter­ri­ble for re­view­ing what a com­mu­nity dis­cussed pre­vi­ously.

Also ab­sent: gran­u­lar roles in each chat, or any­thing re­sem­bling mod­er­a­tion tools. As an ad­min, I can only ban users for un­wanted be­hav­ior. I can nei­ther au­to­mat­i­cally pre­vent ha­rass­ment nor pro­vide a more mea­sured re­sponse than the ban­ham­mer.

I should men­tion that al­most all these trade­offs are ac­cepted lim­i­ta­tions in ser­vice of Signal’s pri­mary ob­jec­tives.

On the point of de­cen­tral­iza­tion, Signal has none. As Meredith Whitaker re­cently wrote, all Signal app traf­fic flows through the same cloud in­fra­struc­ture, much of which de­pends on AWS.

If your com­mu­ni­ty’s threat model is such that elim­i­nat­ing all pos­si­ble points of ev­i­dence col­lec­tion against you mat­ters above all else, Signal is the clear win­ner. Maintaining that level of op­er­a­tional se­cu­rity nat­u­rally comes at the cost of some other crea­ture com­forts a com­mu­nity could come to covet.

I did­n’t set out to al­lit­er­ate the hell out of that sen­tence, but I did­n’t stop it ei­ther.

Best for: com­mu­ni­ties who value in­de­pen­dence over all, with se­cu­rity/​pri­vacy a run­ner-up.

Oh, Matrix. You are the foot­ball that I, in my zigzag-stripe shirt, keep try­ing to kick. In the­ory, the Matrix pro­to­col and Element, its flag­ship client, should be the ideal for de­cen­tral­ized, en­crypted com­mu­ni­ca­tions. Using Element feels a whole lot like us­ing Discord. Heck, it can even bridge com­mu­ni­ca­tions from Discord and other plat­forms. Sadly, as time goes on, the nicks from the rough edges start to ac­cu­mu­late.

Before go­ing fur­ther, we need to de­fine some terms. Matrix is the fed­er­ated, en­crypted mes­sag­ing pro­to­col pub­lished and main­tained by the Matrix Foundation. Synapse is their reference im­ple­men­ta­tion” server tech­nol­ogy writ­ten in Python. Synapse is the most com­mon way folks start their own Matrix servers. There are other server im­ple­men­ta­tions, now in­clud­ing Synapse Pro,” which I guess is a par­tial rewrite of Synapse in Rust? Element is the first-party client that users would use to con­nect to Matrix. They need an ac­count on a server, and of course ma­trix.org is the flag­ship Matrix server where the vast ma­jor­ity of users have their ac­counts. But you can point Element at any Matrix server to log in, as long as you have an ac­count on that server.

Confused yet? If users are un­will­ing to se­lect a Mastodon server, do you think they’d be will­ing to put up with this?

Ah, but I get ahead of my­self. Let’s start with what’s good.

Matrix uses a sim­i­lar end-to-end cryp­tog­ra­phy scheme to Signal. Rooms” (chats, chan­nels) are not en­crypted by de­fault, but they can be made so. There have been noted is­sues with the pre­vi­ous cryp­tog­ra­phy li­brary used by Element, but the newer vodozemac li­brary is in much bet­ter shape. Of course, not all Matrix clients use the new hot­ness.

A given Matrix server can cre­ate mul­ti­ple rooms (channels), and even group them into spaces” such that they ap­pear quite sim­i­lar to Discord servers.

Inside the rooms, things feel fa­mil­iar. We have threads, emoji re­acts, and mes­sage search (sorta). On some clients (but not Element), there is the pos­si­bil­ity of cus­tom emoji.

And that’s…it. Element promises more, like na­tive video con­fer­enc­ing, but heaven help you if you’re try­ing to self-host it. It is tech­ni­cally pos­si­ble, but by no means sim­ple.

Technically pos­si­ble, but by no means sim­ple” aptly de­scribes up the en­tire Matrix ex­pe­ri­ence, ac­tu­ally.

I ran a pri­vate Matrix server for about a year and a half. Why pri­vate? In two pub­lic Matrix rooms I had joined—in­clud­ing the room for Synapse ad­mins—I ex­pe­ri­enced a com­mon at­tack in which troll ac­counts spam the room with CSAM ma­te­r­ial. Horrible, but not just for the par­tic­i­pants and ad­mins in the room. Through the magic of fed­er­a­tion, every server who has a user par­tic­i­pat­ing in the room now has a copy of the CSAM ma­te­r­ial, and has to take ac­tion to re­move it. This re­quires a man­ual curl re­quest on the server it­self, be­cause Synapse has an ap­palling lack of mod­er­a­tion tools. It’s so bad that, with­out third-party tool­ing, you can’t even ban a user out­right from a server; you have to man­u­ally ban them from every sin­gle room.

Then came September 2, 2025. The out­a­geof ma­trix.org caused by drive fail­ures was not an in­dict­ment of Matrix’s data­base man­age­ment or re­cov­ery process—in fact, I was quite im­pressed with their re­sponse. But it did put the lie to Matrix’s de­cen­tral­iza­tion for me. Almost none of my friends could use Matrix, even though I was host­ing my own server. The on­board­ing pipeline (especially via Element) is so fo­cused on the flag­ship server, I dare­say it com­prises the plu­ral­ity of Matrix ac­counts. It’s not easy to get any sta­tis­tics for all Matrix users, but that is my guess. How decentralized” is that, re­ally? Just be­cause some­thing can be de­cen­tral­ized does­n’t make it so.

I’m prob­a­bly a lit­tle too close to this one. I so badly wanted Matrix to work, and I tried to make it work for my pur­poses for a long time. Ultimately, the pain points over­came the ben­e­fits. But if you care most about an in­ter­sec­tion of mes­sage en­cryp­tion, fed­er­a­tion, and de­cen­tral­iza­tion, and you’re will­ing to put in quite a lot of ad­min time, Matrix can be a vi­able com­mu­nity chat plat­form.

Best for: com­mu­ni­ties that want a smooth Slack-like ex­pe­ri­ence and are will­ing to pay for in­de­pen­dence

What if you could self-host Slack? That’s ba­si­cally the Rocket. Chat ex­pe­ri­ence. It’s slick, easy to get set up, and loaded with in­te­gra­tions. All of this comes, as you might ex­pect, at a price. While there is an open source” Community Edition, its fea­ture­set is lim­ited, and you may quickly find your­self look­ing at the paid plans for ad­di­tional fea­tures or sup­port. Rocket.Chat is one of sev­eral plat­forms that fol­low this freemium model. I don’t re­ally be­grudge them this ap­proach, but it can be frus­trat­ing for a com­mu­nity just find­ing its feet. To their credit, they do of­fer dis­counts for open source pro­jects, not-for-prof­its, and other or­ga­ni­za­tions on a per-re­quest ba­sis.

Rocket. Chat does sup­port end-to-end en­crypted com­mu­ni­ca­tions. Key man­age­ment can be a lit­tle clunky, but I was im­pressed it had the fea­ture at all.

Be aware, how­ever, that these cen­trally-man­aged ser­vices will of course al­low ad­min­is­tra­tors to au­dit mes­sages. That is a doc­u­mented part of the mod­er­a­tion flow for Rocket. Chat. If you de­mand anonymity or an in­abil­ity for ad­min­is­tra­tors to view your mes­sages what are you do­ing in that com­mu­nity? Rocket.Chat might not be right for you.

I’ll quickly men­tion why I gave it a score of 3 on de­cen­tral­iza­tion. Seems a bit high, right? Until re­cently, Rocket. Chat sup­ported Matrix fed­er­a­tion. Since October 2025, it has pur­sued a na­tive fed­er­a­tion scheme that would al­low sep­a­rate Rocket.Chat in­stances to share rooms and DMs across server bound­aries. This, al­though not open source, is ex­tremely com­pelling.

I re­ally en­joyed my ex­per­i­men­ta­tion with Rocket. Chat, and found my­self think­ing se­ri­ously about it as an al­ter­na­tive to where I was. The cost is just steep.

Best for: A split be­tween fo­rums and real-time chat

I’ve been play­ing with Zulip for a bit now, and I still don’t re­ally know what to make of it. From one per­spec­tive, it has a bit of an iden­tity cri­sis, un­sure of whether it’s a fo­rum or a chat plat­form. From an­other per­spec­tive, this dual iden­tity is its great­est strength: real-time when you want it, asyn­chro­nous when you don’t.

Zulip is self-hostable, with some caveats. As the plans and pric­ing de­tail, any­thing be­yond 10 users starts cost­ing some cash. It adds up quickly. Seemingly every­thing can be done in a self-hosted man­ner, you’re at the mercy of some truly byzan­tine doc­u­men­ta­tion.

While there is great func­tion­al­ity to be found, it comes at a rather steep price for or­ga­ni­za­tions of any size—whether ad­min­is­tra­tive over­head, or just plain cash for the man­aged ser­vices. Although to their credit, they do of­fer a com­mu­nity plan with many of those higher-tier fea­tures avail­able for qual­i­fy­ing or­ga­ni­za­tions.

One fea­ture you won’t find any­where is end-to-end en­cryp­tion. The de­vel­op­ers seem rather against the idea. Multi-factor au­then­ti­ca­tion must be en­abled in the con­fig files, not the ad­min fron­tend—hardly ideal.

Unless I’m miss­ing it, there do not ap­pear to be any se­ri­ous con­tent mod­er­a­tion tools in Zulip. The com­mu­nity mod­er­a­tion toolkit is, in my opin­ion, the barest of es­sen­tials. Nearly all of these ca­pa­bil­i­ties are re­ac­tive, not proac­tive. It seems the ex­pec­ta­tion is good-faith par­tic­i­pa­tion, with those agree­ments and guar­an­tees han­dled else­where. Having been on the wrong end of ma­li­cious in­tent, I don’t feel safe enough with these tools.

Lastly, on de­cen­tral­iza­tion, it’s mostly a miss. Even for self-hosted plans, any­thing above the free tier re­quires a zulip.com ac­count for plan man­age­ment. And fed­er­a­tion? Forget about it. Although every Zulip server can tech­ni­cally host mul­ti­ple Zulip in­stances, they don’t in­ter­act with one an­other.

If any­thing, writ­ing this overview has left me more con­fused about Zulip than when I be­gan. I just don’t know where it fits, or who can af­ford these prices for a grow­ing com­mu­nity.

Best for: Fortune 100s and gov­ern­ments

Take a look at the front page of the Mattermost web­site, and you’ll get an idea of the kind of or­ga­ni­za­tion they ex­pect to be us­ing this thing. Odds are, your nascent on­line com­mu­nity ain’t that. While the soft­ware may su­per­fi­cially look like some of these oth­ers, its in­ten­tion is en­tirely other. Community build­ing is not what’s go­ing on here. Rather, Mattermost’s ob­jec­tive is highly-fo­cused, in­te­grated work­flows that in­volve hu­man com­mu­ni­ca­tion along­side ma­chine au­toma­tion. Business op­er­a­tions are what…mat­ter most.

Mattermost de­scribes it­self as Open core,” and the core is…rather tiny. Even when in­stalling the self-hosted ver­sion, you’ll soon need a rather ex­pen­sive li­cense for real work. Starting at $10/user is a clear in­di­ca­tor of the in­tended cus­tomer base. It ain’t me, that’s for sure.

Mattermost prides it­self on a cer­tain kind of se­cu­rity—specif­i­cally, the reg­u­la­tory kind. Configurations for all man­ner of com­pli­ance regimes are pro­vided in the doc­u­men­ta­tion. Normal se­cu­rity is pre­sent as well, in­clud­ing MFA. Not so much end-to-end en­cryp­tion, al­though men­tion is made of en­crypt­ing the PostgreSQL data­base. That’s novel, al­though not a so­lu­tion to the prob­lem ad­dressed by E2EE.

I hon­estly don’t think Mattermost’s de­vel­op­ers are ca­pa­ble of imag­in­ing a pos­i­tive ar­gu­ment for an au­dit-re­sis­tant ap­pli­ca­tion. This thing is de­signed for mon­i­tor­ing user ac­tiv­ity six ways from Sunday.

Consequently, safety” in the way we’ve de­fined it here is ab­sent from Mattermost’s con­cep­tion of the uni­verse. If you’re log­ging on to a Mattermost server, about a thou­sand other trust mech­a­nisms are in place to guar­an­tee you won’t act like a doo­fus on this app.

Hardly a point to men­tion­ing de­cen­tral­iza­tion here, be­yond the pos­si­bil­ity of self-host­ing. Ultimately though, you only get what your li­cense key al­lows, and since the server is only open core, Mattermost it­self is quite the point of fail­ure.

Best for: any­thing but real-time chat, re­ally.

I’m gonna be hon­est: I kind of love Discourse. I’m not sure I have a rea­son to de­ploy it, but I want to. Everything Joan Westenberg writes in this piece in praise of Discourse res­onates with me. Community for the long-haul? Transparency in gov­er­nance? Built-in sys­tems for es­tab­lish­ing hu­man trust?

But Discourse has one sig­nif­i­cant dif­fer­ence from every­thing else on this list: it is pri­mar­ily a fo­rum, not a real-time chat app. I’m not say­ing that’s a bad thing, nec­es­sar­ily, but it sure is dif­fer­ent. If your com­mu­nity ex­pects in­stan­ta­neous com­mu­ni­ca­tion, Discourse may be a big ad­just­ment. Or it might not be suf­fi­cient on its own for your needs.

But what does it do well? Forums! It’s very easy to nav­i­gate cat­e­gories and top­ics. The UI pro­vides clear sig­nals for when some­thing hap­pened. Oh, and search is sim­ple.

Maybe the best way to think of Discourse is as an anti-Dis­cord. It’s every­thing Discord is­n’t: asyn­chro­nous, open source, and self-hostable.

Discourse is 100% open source. I’m run­ning it right now in my home­lab, with ac­cess to all the plu­g­ins and fea­tures I’d ex­pect, cost­ing me only the time it took to in­stall.

I was ad­di­tion­ally quite im­pressed with the mod­er­a­tion tools. Not only are they plenty of tools to track user ac­tiv­ity, but the mod­er­a­tion de­ci­sions are pub­lic by de­fault. This is a good thing! The com­mu­nity can hold its lead­ers ac­count­able for up­hold­ing their end of the bar­gain: to act in good faith in sup­port of the com­mu­nity.

One area in which it fal­ters a bit is, of course, end-to-end en­cryp­tion. Very few of these tools en­able it, and when they do, it can be clunky. It’s en­tirely pos­si­ble that the right op­tion for a com­mu­nity is one of these and Signal for sen­si­tive, out-of-band com­mu­ni­ca­tions.

If you start to look around, you’ll no­tice Discourse fora every­where. There’s a good rea­son for that! The soft­ware is rock solid for what it is. And maybe your com­mu­nity needs its depth of fea­tures more than it needs in­stan­ta­neous mes­sag­ing.

Best for: Appreciating how much work it takes to make one of these work

Stoat, née Revolt, was meant to be an open source Discord al­ter­na­tive. Recently, they re­ceived a cease-and-de­sist re­gard­ing the name Revolt, and re­named to a…weasel.

Anyway this thing is so far from be­ing ready for prime time, I only in­clude it here to call out the pro­ject. I wish them the best and hope for good things, es­pe­cially since you can self-host the server. But a lack of sta­bil­ity and fea­tures pre­vent this from be­ing use­ful for any­thing be­yond ex­per­i­men­ta­tion. Maybe some­day.

The Tool is Not the Community

Choosing a plat­form on which to build a com­mu­nity is just the be­gin­ning. It’s vi­tally im­por­tant, yet in­suf­fi­cient to a com­mu­ni­ty’s suc­cess. Tools do not make a cul­ture; the peo­ple en­gag­ing on it do. Most of my time build­ing the cul­ture of TTI has not been a tech­ni­cal en­deavor. What we have—and I think it’s pretty spe­cial—has lit­tle to do with Discord’s fea­ture­set. It just hap­pens to be where the peo­ple are. The op­tions pre­sented to you here al­low you to seek a path that aligns with your ob­jec­tives, prin­ci­pals, and needs at a purely me­chan­i­cal level. The rest de­pends on the hu­man el­e­ment.

...

Read the original on taggart-tech.com »

8 302 shares, 15 trendiness

Hard-braking events as indicators of road segment crash risk

We strive to cre­ate an en­vi­ron­ment con­ducive to many dif­fer­ent types of re­search across many dif­fer­ent time scales and lev­els of risk.

We strive to cre­ate an en­vi­ron­ment con­ducive to many dif­fer­ent types of re­search across many dif­fer­ent time scales and lev­els of risk.

We es­tab­lish a pos­i­tive as­so­ci­a­tion be­tween hard-brak­ing events (HBEs) col­lected via Android Auto and ac­tual road seg­ment crash rates. We con­firm that roads with a higher rate of HBEs have a sig­nif­i­cantly higher crash risk and sug­gest that such events could be used as lead­ing mea­sures for road safety as­sess­ment.

Traffic safety eval­u­a­tion has tra­di­tion­ally re­lied on po­lice-re­ported crash sta­tis­tics, of­ten con­sid­ered the gold stan­dard” be­cause they di­rectly cor­re­late with fa­tal­i­ties, in­juries, and prop­erty dam­age. However, re­ly­ing on his­tor­i­cal crash data for pre­dic­tive mod­el­ing pre­sents sig­nif­i­cant chal­lenges, be­cause such data is in­her­ently a lagging” in­di­ca­tor. Also, crashes are sta­tis­ti­cally rare events on ar­te­r­ial and lo­cal roads, so it can take years to ac­cu­mu­late suf­fi­cient data to es­tab­lish a valid safety pro­file for a spe­cific road seg­ment. This spar­sity paired with in­con­sis­tent re­port­ing stan­dards across re­gions com­pli­cates the de­vel­op­ment of ro­bust risk pre­dic­tion mod­els. Proactive safety as­sess­ment re­quires leading” mea­sures: prox­ies for crash risk that cor­re­late with safety out­comes but oc­cur more fre­quently than crashes. In From Lagging to Leading: Validating Hard Braking Events as High-Density Indicators of Segment Crash Risk”, we eval­u­ate the ef­fi­cacy of hard-brak­ing events (HBEs) as a scal­able sur­ro­gate for crash risk. An HBE is an in­stance where a ve­hi­cle’s for­ward de­cel­er­a­tion ex­ceeds a spe­cific thresh­old (-3m/s²), which we in­ter­pret as an eva­sive ma­neu­ver. HBEs fa­cil­i­tate net­work-wide analy­sis be­cause they are sourced from con­nected ve­hi­cle data, un­like prox­im­ity-based sur­ro­gates like time-to-col­li­sion that fre­quently ne­ces­si­tate the use of fixed sen­sors. We es­tab­lished a sta­tis­ti­cally sig­nif­i­cant pos­i­tive cor­re­la­tion be­tween the rates of crashes (of any sever­ity level) and HBE fre­quency by com­bin­ing pub­lic crash data from Virginia and California with anonymized, ag­gre­gated HBE in­for­ma­tion from the Android Auto plat­form.

To val­i­date the util­ity of this met­ric, we an­a­lyzed 10 years of pub­lic crash data along­side ag­gre­gated HBE mea­sure­ments. The im­me­di­ate ad­van­tage of HBEs is the den­sity of the sig­nal. Our analy­sis of road seg­ments in California and Virginia re­vealed that the num­ber of seg­ments with ob­served HBEs was 18 times greater than those with re­ported crashes. While crash data is no­to­ri­ously sparse — re­quir­ing years to ob­serve a sin­gle event on some lo­cal roads — HBEs pro­vide a con­tin­u­ous stream of data, ef­fec­tively fill­ing the gaps in the safety map.

HBEs are ob­served on 18x more road seg­ments com­pared to re­ported crashes.

The core ob­jec­tive was to de­ter­mine if a high fre­quency of HBEs causally links to a high rate of crashes. We em­ployed neg­a­tive bi­no­mial (NB) re­gres­sion mod­els, a stan­dard ap­proach in the Highway Safety Manual (HSM), to ac­count for a higher de­gree of vari­ance than is typ­i­cally found in crash data.Our model struc­ture con­trolled for var­i­ous con­found­ing fac­tors, in­clud­ing:Dy­nam­ics: Presence of ramps and change in the num­ber of lanes.The re­sults demon­strated a sta­tis­ti­cally sig­nif­i­cant as­so­ci­a­tion be­tween HBE rates and crash rates across both states. Road seg­ments with higher fre­quen­cies of hard brak­ing con­sis­tently ex­hib­ited higher crash rates, a re­la­tion­ship that holds true across dif­fer­ent road types, from lo­cal ar­te­ri­als to con­trolled-ac­cess high­ways.

Crash Rate vs. HBE rate for dif­fer­ent types of roads in California and Virginia.

The re­gres­sion analy­sis also quan­ti­fied the im­pact of spe­cific in­fra­struc­ture el­e­ments. For in­stance, the pres­ence of a ramp on a road seg­ment was pos­i­tively as­so­ci­ated with crash risk in both states, likely due to the weav­ing ma­neu­vers re­quired for merg­ing.

To vi­su­al­ize the prac­ti­cal ap­pli­ca­tion of this met­ric, we ex­am­ined a free­way merge seg­ment in California con­nect­ing Highway 101 and Highway 880. Historical data in­di­cates this seg­ment has an HBE rate ap­prox­i­mately 70 times higher than the av­er­age California free­way, and av­er­ag­ing a crash every six weeks for a decade.

Freeway merge seg­ment in California Bay Area with one crash every six weeks and a 70x higher than av­er­age HBE rate.

When an­a­lyz­ing the con­nected ve­hi­cle data for this lo­ca­tion, we found that it ranked in the top 1% of all road seg­ments for HBE fre­quency. The HBE sig­nal suc­cess­fully flagged this out­lier with­out re­ly­ing on the decade of crash re­ports it took to sta­tis­ti­cally con­firm the risk. This align­ment val­i­dates HBEs as a re­li­able proxy ca­pa­ble of iden­ti­fy­ing high-risk lo­ca­tions even in the ab­sence of long-term col­li­sion his­tory.

Validating HBEs as a re­li­able proxy for crash risk trans­forms a raw sen­sor met­ric into a trusted safety tool for road man­age­ment. This val­i­da­tion sup­ports the use of con­nected ve­hi­cle data for net­work-wide traf­fic safety as­sess­ment, of­fer­ing en­hanced spa­tial and tem­po­ral gran­u­lar­ity. While these re­sults in­di­cate util­ity for road seg­ment risk de­ter­mi­na­tion, they do not draw con­clu­sions about lo­ca­tion-in­de­pen­dent dri­ving be­hav­ior risk.The Mobility AI team at Google Research is work­ing with Google Maps Platform to ex­ter­nal­ize these HBE datasets as a part of Roads Management Insights of­fer­ing. By in­te­grat­ing these high-den­sity sig­nals, trans­porta­tion agen­cies can ac­cess ag­gre­gated, anonymized data that is sub­stan­tially more fresh and that cov­ers a wider breadth of the road net­work com­pared to tra­di­tional crash sta­tis­tics. This al­lows for the iden­ti­fi­ca­tion of high-risk lo­ca­tions us­ing lead­ing in­di­ca­tors rather than re­ly­ing solely on lag­ging and sparse col­li­sion records.

While this study con­firms that HBEs are a ro­bust lead­ing in­di­ca­tor of crash risk, there are op­por­tu­ni­ties to fur­ther re­fine this sig­nal. We are cur­rently in­ves­ti­gat­ing mech­a­nisms to spa­tially clus­ter ho­moge­nous road seg­ments to re­duce data spar­sity even fur­ther. Addressing these lim­i­ta­tions will en­able the tran­si­tion from risk iden­ti­fi­ca­tion to tar­geted en­gi­neer­ing, where high-den­sity data in­forms spe­cific in­fra­struc­ture in­ter­ven­tions rang­ing from sig­nal tim­ing ad­just­ments and im­proved sig­nage to the geo­met­ric re­design of high-risk merge lanes.

This work was a col­lab­o­ra­tive ef­fort in­volv­ing re­searchers from Google and Virginia Tech. We thank our co-au­thors Shantanu Shahane, Shoshana Vasserman, Carolina Osorio, Yi-fan Chen, Ivan Kuznetsov, Kristin White, Justyna Swiatkowska, and Feng Guo. We also ap­pre­ci­ate the con­tri­bu­tions of Aurora Cheung, Andrew Stober, Reymund Dumlao, and Nick Kan in trans­lat­ing this re­search into prac­ti­cal ap­pli­ca­tions.

Introducing GIST: The next stage in smart sam­pling

Gemini pro­vides au­to­mated feed­back for the­o­ret­i­cal com­puter sci­en­tists at STOC 2026

Comparison graphs for California and Virginia show­ing the cor­re­la­tion be­tween HBE rates and crash rates by road type.

Line graph ti­tled Crash Segments” show­ing the num­ber of road seg­ments with crashes from 2016 to 2025.

Street view and aer­ial map of the Highway 101 and 880 merge with ar­rows and crash warn­ing icons in­di­cat­ing an in­ter­sec­tion with high crash rate.

...

Read the original on research.google »

9 281 shares, 8 trendiness

Irish man with valid US work permit held in ICE detention for five months

An Irish man has spent five months in US Immigration and Customs Enforcement de­ten­tion and faces de­por­ta­tion de­spite hav­ing a valid work per­mit and no crim­i­nal record.

Seamus Culleton was a model im­mi­grant” who had be­come the vic­tim of a capri­cious and in­ept sys­tem, said his lawyer, Ogor Winnie Okoye.

Originally from County Kilkenny, Culleton is mar­ried to a US cit­i­zen and runs a plas­ter­ing busi­ness in the Boston area. While buy­ing sup­plies at a hard­ware store on 9 September 2025 he was ar­rested in a ran­dom im­mi­gra­tion sweep, ac­cord­ing to Okoye, of BOS Legal Group in Massachusetts.

Culleton en­tered the US in 2009 on a visa waiver pro­gramme and over­stayed the 90 day-limit but, af­ter mar­ry­ing a US cit­i­zen and ap­ply­ing for law­ful per­ma­nent res­i­dence, he ob­tained a statu­tory ex­emp­tion that al­lowed him to work, Okoye told the Guardian. He had a work-ap­proved au­tho­ri­sa­tion that is tied to a green card ap­pli­ca­tion,” she said.

Culleton’s de­ten­tion pre­vented him from at­tend­ing the fi­nal in­ter­view in October, she said. It’s in­ex­plic­a­ble that this man has been in de­ten­tion. It does not make sense. There’s no rea­son why the gov­ern­ment should­n’t just re­lease him and al­low him to at­tend the in­ter­view that will con­firm his le­gal sta­tus.”

After be­ing held in ICE fa­cil­i­ties near Boston and in Buffalo, New York, he was flown to a fa­cil­ity in El Paso, Texas, where he is shar­ing a cell with more than 70 men. Culleton said the de­ten­tion cen­tre was cold, damp and squalid, and there were fights over in­suf­fi­cient food — “like a con­cen­tra­tion camp, ab­solute hell”, he told the Irish Times, which first re­ported the story on Monday.

Culleton said that when he was ar­rested he was car­ry­ing a Massachusetts dri­ving li­cence and a valid work per­mit is­sued as part of an ap­pli­ca­tion for a green card that he ini­ti­ated in April 2025. He has a fi­nal in­ter­view re­main­ing.

When asked at the Buffalo fa­cil­ity to sign a form agree­ing to de­por­ta­tion, Culleton said he re­fused and in­stead ticked a box ex­press­ing a wish to con­test his ar­rest, which he in­tended to do on the grounds that he was mar­ried to a US cit­i­zen, Tiffany Smyth, and had a valid work per­mit.

At a November hear­ing a judge ap­proved his re­lease on a $4,000 bond, which Smyth paid, but au­thor­i­ties con­tin­ued to de­tain Culleton, ini­tially with­out ex­pla­na­tion.

When his at­tor­ney ap­pealed to a fed­eral court, two ICE agents said that in Buffalo Culleton had signed doc­u­ments agree­ing to be de­ported. Culleton said he did not agree and that the sig­na­tures were not his. My whole life is here. I worked so hard to build my busi­ness. My wife is here.”

The judge noted ir­reg­u­lar­i­ties in ICEs court doc­u­ments but sided with the agency. Under US law Culleton can­not ap­peal but he wants hand­writ­ing ex­perts to ex­am­ine the sig­na­tures and be­lieves a video of his in­ter­view with ICE in Buffalo would prove he re­fused to sign de­por­ta­tion doc­u­ments.

Previous high-pro­file cases in­volv­ing peo­ple from Ireland in­clude Cliona Ward, who had a green card but was de­tained by ICE for 17 days over a crim­i­nal record from more than 20 years ago. A vis­it­ing Irish tech worker who over­stayed his visa by three days and agreed to de­por­ta­tion was jailed for about 100 days.

Culleton told the Irish Times he did not know what would hap­pen next and that the un­cer­tainty was psychological tor­ture”. Facility of­fi­cials tried to get him to sign a de­por­ta­tion or­der last week but he re­fused, he said.

Okoye said the US gov­ern­ment had dis­cre­tionary power to re­lease her client and was act­ing in an in­ept and capri­cious man­ner to­wards an im­mi­grant who was fol­low­ing the green card process. He’s never been ar­rested. He’s mar­ried to a US cit­i­zen. He owns his own busi­ness. He’s es­tab­lished a life here. He’s done every­thing right.”

Smyth said she had en­dured five months of heart­break, stress, anx­i­ety and anger. I would never wish this on any­one or their fam­ily. I am still pray­ing for a mir­a­cle every day.”

After a video call with her hus­band on Sunday night — their first in five months — Smyth told Culleton’s fam­ily in Ireland he had lost weight and hair and had sores and in­fec­tions. There’s no hy­giene there. He’s been ask­ing for an­tibi­otics for the last four weeks,” his sis­ter, Caroline Culleton, told RTÉ. The de­tainees were sel­dom al­lowed out for ex­er­cise or air, she said.

It’s heart­break­ing. We’ve talked about what he en­dures phys­i­cally but what about his men­tal health? How will he deal with this when he gets out? What long-term ef­fect it has on him?”

Last week the Irish gov­ern­ment said the num­ber of Irish cit­i­zens seek­ing con­sular as­sis­tance about de­por­ta­tion from the US jumped from 15 in 2024 to 65 last year.

...

Read the original on www.theguardian.com »

10 266 shares, 28 trendiness

TrevorS/voxtral-mini-realtime-rs

Streaming speech recog­ni­tion run­ning na­tively and in the browser. A pure Rust im­ple­men­ta­tion of Mistral’s Voxtral Mini 4B Realtime model us­ing the Burn ML frame­work.

The Q4 GGUF quan­tized path (2.5 GB) runs en­tirely client-side in a browser tab via WASM + WebGPU. Try it live.

# Download model weights (~9 GB)

uv run –with hug­ging­face_hub \

hf down­load mis­tralai/​Vox­tral-Mini-4B-Re­al­time-2602 –local-dir mod­els/​vox­tral

# Transcribe an au­dio file (f32 SafeTensors path)

cargo run –release –features wgpu,cli,hub” –bin vox­tral-tran­scribe — \

–audio au­dio.wav –model mod­els/​vox­tral

# Or use the Q4 quan­tized path (~2.5 GB)

cargo run –release –features wgpu,cli,hub” –bin vox­tral-tran­scribe — \

–audio au­dio.wav –gguf mod­els/​vox­tral-q4.gguf –tokenizer mod­els/​vox­tral/​tekken.json

# Build WASM pack­age

wasm-pack build –target web –no-default-features –features wasm

# Generate self-signed cert (WebGPU re­quires se­cure con­text)

openssl req -x509 -newkey ec -pkeyopt ec_­paramgen_curve:prime256v1 \

-keyout /tmp/voxtral-key.pem -out /tmp/voxtral-cert.pem \

-days 7 -nodes -subj /CN=localhost”

# Start dev server

bun serve.mjs

Open https://​lo­cal­host:8443, ac­cept the cer­tifi­cate, and click Load from Server to down­load the model shards. Record from your mi­cro­phone or up­load a WAV file to tran­scribe.

Hosted demo on HuggingFace Spaces if you want to skip lo­cal setup.

The up­stream mis­tral-com­mon li­brary left-pads au­dio with 32 si­lence to­kens (at 12.5 Hz). After the mel/​conv/​re­shape pipeline, this cov­ers only 16 of the 38 de­coder pre­fix po­si­tions with si­lence — the re­main­ing 22 con­tain ac­tual au­dio. The f32 model han­dles this fine, but Q4_0 quan­ti­za­tion makes the de­coder sen­si­tive to speech con­tent in the pre­fix: au­dio that starts im­me­di­ately with speech (mic record­ings, clips with no lead­ing si­lence) pro­duces all-pad to­kens in­stead of text.

The left padding is in­creased to 76 to­kens, which maps to ex­actly 38 de­coder to­kens of si­lence and cov­ers the full stream­ing pre­fix. See src/​au­dio/​pad.rs for de­tails.

No sync GPU read­back — All ten­sor reads use in­to_­da­ta_a­sync().await

# Native (default fea­tures: wgpu + na­tive-to­k­enizer)

cargo build –release

# With all fea­tures

cargo build –release –features wgpu,cli,hub”

# WASM

wasm-pack build –target web –no-default-features –features wasm

# Unit + in­te­gra­tion tests (requires GPU for full suite)

cargo test –features wgpu,cli,hub”

# Lint

cargo clippy –features wgpu,cli,hub” — -D warn­ings

cargo clippy –no-default-features –features wasm –target was­m32-un­known-un­known — -D warn­ings

# E2E browser test (requires Playwright + model shards)

bunx play­wright test tests/​e2e_browser.spec.ts

GPU-dependent tests (model layer shapes, Q4 mat­mul, WGSL shader cor­rect­ness) are skipped in CI since GitHub Actions run­ners lack a GPU adapter. These tests run lo­cally on any ma­chine with Vulkan, Metal, or WebGPU sup­port.

The GGUF file must be split into shards of 512 MB or less to stay un­der the browser’s ArrayBuffer limit:

split -b 512m mod­els/​vox­tral-q4.gguf mod­els/​vox­tral-q4-shards/​shard-

The dev server and E2E test dis­cover shards au­to­mat­i­cally from mod­els/​vox­tral-q4-shards/.

Coming soon: ac­cu­racy (WER) and in­fer­ence speed bench­marks across na­tive and browser tar­gets.

...

Read the original on github.com »

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

If you like 10HN please leave feedback and share

Visit pancik.com for more.