frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

You probably don't need Oh My Zsh

https://rushter.com/blog/zsh-shell/
53•fla•1h ago•27 comments

“Erdos problem #728 was solved more or less autonomously by AI”

https://mathstodon.xyz/@tao/115855840223258103
337•cod1r•6h ago•204 comments

OLED, Not for Me

https://nuxx.net/blog/2026/01/09/oled-not-for-me/
37•c0nsumer•1h ago•33 comments

Flock Hardcoded the Password for America's Surveillance Infrastructure 53 Times

https://nexanet.ai/blog/53-times-flocksafety-hardcoded-the-password-for-americas-surveillance-inf...
364•fuck_flock•12h ago•122 comments

Maine's black market for baby eels

https://www.pressherald.com/2025/09/09/maines-black-market-for-baby-eels-is-spawning-a-crime-thri...
17•noleary•2h ago•3 comments

JavaScript Demos in 140 Characters

https://beta.dwitter.net
218•themanmaran•10h ago•49 comments

Greenland sharks maintain vision for centuries through DNA repair mechanism

https://phys.org/news/2026-01-eye-greenland-sharks-vision-centuries.html
44•pseudolus•3d ago•9 comments

RTX 5090 and Raspberry Pi: Can it game?

https://scottjg.com/posts/2026-01-08-crappy-computer-showdown/
191•scottjg•10h ago•73 comments

Changes to Android Open Source Project

https://source.android.com/
17•TechTechTech•2d ago•8 comments

How Markdown took over the world

https://www.anildash.com/2026/01/09/how-markdown-took-over-the-world/
197•zdw•11h ago•162 comments

How will the miracle happen today?

https://kk.org/thetechnium/how-will-the-miracle-happen-today/
406•zdw•5d ago•214 comments

Show HN: Rocket Launch and Orbit Simulator

https://www.donutthejedi.com/
113•donutthejedi•10h ago•34 comments

Start your meetings at 5 minutes past

https://philipotoole.com/start-your-meetings-at-5-minutes-past/
52•otoolep•7h ago•65 comments

Show HN: Scroll Wikipedia like TikTok

https://quack.sdan.io
198•sdan•11h ago•52 comments

Robotopia: A 3D, first-person, talking simulator

https://elbowgreasegames.substack.com/p/introducing-robotopia-a-3d-first
40•psawaya•1d ago•16 comments

Scientists discover oldest poison, on 60k-year-old arrows

https://www.nytimes.com/2026/01/07/science/poison-arrows-south-africa.html
109•noleary•1d ago•37 comments

Cloudflare CEO on the Italy fines

https://twitter.com/eastdakota/status/2009654937303896492
458•sidcool•12h ago•652 comments

The rise and fall of the company behind Reader Rabbit (2018)

https://theoutline.com/post/6293/reader-rabbit-history-the-learning-company-zoombinis-carmen-sand...
16•mmcclure•1d ago•2 comments

Favorite Tech Museums

https://aresluna.org/fav-tech-museums/
28•justincormack•4d ago•14 comments

My article on why AI is great (or terrible) or how to use it

https://matthewrocklin.com/ai-zealotry/
94•akshayka•11h ago•139 comments

Show HN: Miditui – a terminal app/UI for MIDI composing, mixing, and playback

https://github.com/minimaxir/miditui
19•minimaxir•1d ago•2 comments

Kagi releases alpha version of Orion for Linux

https://help.kagi.com/orion/misc/linux-status.html
367•HelloUsername•16h ago•255 comments

Deno has made its PyPI distribution official

https://github.com/denoland/deno/issues/31254
36•zahlman•7h ago•24 comments

Show HN: I made a memory game to teach you to play piano by ear

https://lend-me-your-ears.specr.net
441•vunderba•12h ago•162 comments

How to store a chess position in 26 bytes (2022)

https://ezzeriesa.notion.site/How-to-store-a-chess-position-in-26-bytes-using-bit-level-magic-df1...
87•kurinikku•14h ago•75 comments

How to code Claude Code in 200 lines of code

https://www.mihaileric.com/The-Emperor-Has-No-Clothes/
741•nutellalover•1d ago•229 comments

Show HN: Similarity = cosine(your_GitHub_stars, Karpathy) Client-side

https://puzer.github.io/github_recommender/
129•puzer•3d ago•36 comments

Replit (YC W18) Is Hiring

https://jobs.ashbyhq.com/replit
1•amasad•11h ago

Microsoft revealed as company behind controversial data center proposal in MI

https://www.cnbc.com/2026/01/07/microsoft-behind-controversial-data-center-in-michigan-township.html
12•1vuio0pswjnm7•1h ago•0 comments

Show HN: A website that auctions itself daily

https://www.thedailyauction.com/
29•nsomani•1d ago•9 comments
Open in hackernews

JavaScript Demos in 140 Characters

https://beta.dwitter.net
218•themanmaran•10h ago

Comments

dang•10h ago
Related. Others?

Show HN: A Stargate in 140 chars of JavaScript - https://news.ycombinator.com/item?id=25088683 - Nov 2020 (55 comments)

Dwitter – A social network for short JavaScript demos - https://news.ycombinator.com/item?id=13700698 - Feb 2017 (71 comments)

aziis98•10h ago
There are many made with eval-unescape-escape that feel a bit like cheating. Still all very impressive
jsheard•10h ago
The compression tricks used in standalone Javascript demos are significantly more cursed. The meta is to concatenate a compressed binary payload and a HTML/JS decompression stub in the same file, abusing the fact that HTML5 parsers are required to be absurdly tolerant of malformed documents. Nowadays it's done using raw DEFLATE and DecompressionStream, but before that was available they would pack the payload into the pixels of a PNG and use Canvas to extract the data.

Try saving this Normal HTML File and open it in a text/hex editor: https://0b5vr.com/domain/domain.html

senfiaj•10h ago
If it's possible to do with vanilla JS in any environment then it's not cheating.
amiga386•10h ago
It's very cool, but it's also a shame that measuring in characters leads to the metagame of using 97 multi-byte Unicode characters that decode to 194 ASCII characters when reinterpreted. Almost everything is in the format:

    eval(unescape(escape`<<97 wide characters>>`.replace(/u../g,'')))
Can't they just have the same agreement that Ford Prefect had with Mr Prosser? "So, assuming I'm going to use this lossless compression technique to fit 194 characters into a 140 character tweet... how about you just show the 194 characters and say that I fitted into 140 characters?"

I suppose you could make the same argument about size-based competitions at demo parties; the limit is strictly 4096 bytes but everyone + their dog is using Crinkler to compress a 12-20KB executable down to that size. In fact, part of the effort is in aligning data and tweaking constants with Crinkler's algorithm in mind, to make the raw data more amenable to compression! But at least then, it's not a constant compression (turning any 194 ASCII characters into 97 Unicode characters which with embedded decoder makes exactly 140 characters)

fainpul•10h ago
Or simply set the limit in bytes (e.g. 140 bytes of UTF8 encoded text).
jonahx•6h ago
This is the standard (for good reason) in code golf.
musicandpiss•6h ago
thanks for introducing me to code golf.-)
jodrellblank•3h ago
See also: https://code.golf/ for a relatively recent gamified site with rankings
anonzzzies•19m ago
Nice niche golfing languages as well for your continued entertainment!
nightpool•10h ago
if you switch to the beta frontend it has a "compressed" toggle that will do exactly what you're looking for: https://beta.dwitter.net/top
amiga386•10h ago
That's awesome! That's exactly what's needed.
dang•8h ago
We've changed to that URL above from https://www.dwitter.net/top. Thanks!
musicandpiss•6h ago
I have been using Hacker News for 20 years now and this comment is already topping the all time charts of replies.-)
layer8•3h ago
To be fair, 140 bytes (1120 bits) corresponds to 160 ASCII characters, or even 170 characters if you exclude control characters.
lukebechtel•3h ago
(sidebar) love to see a subtle, applicable HHG ref :)
socalgal2•10h ago
I love these but I wish they'd disallow the eval thing. I also which they'd added more shortcuts. Like IIRC they have `s` for `Math.sign` but so if they're going to shorten things they could have gone much further. `globalCompositeOperation` etc...
recursive•9h ago
You have to fix the scoring. Blacklisting eval is whack-a-mole forever. If you switch the scoring to use bytes of UTF-8 encoded text, that pretty much aligns everything. There might still be some use for packing data in string literals, but wholesale source code packing would probably mostly stop.
Lerc•8h ago
You have to keep in mind that for anything like this, the platform has to exist before the ways to game the rules are thought up. To change things after the platform is up and running makes it a moving target and for something like this a fixed target is intrinsically part of the appeal.

Dwitter used the definition of what Twitter at the time used. The solution of https://beta.dwitter.net/ mitigates the lack of accessibility of the encoding, while keeping the fixed target at the same time introducing a new practical target.

The Math.sin css color encoder were concessions to practicality, there has been much discussion as to whether a Dwitter 2 should simply include additional characters required to the same preconfig and let people do it themselves, and let them use the characters for something else if they can think of something.

I'd like something like this just to see how creative people get in doing that. How small can you make a bit of JavaScript that copies every static method of Math to window?

and creativity is the goal here. No matter how people stretch the system, it can't be denied they have been doing so creatively.

leptons•6h ago
I've been on dwitter.net for many years, and I'm fine with eval. The rules are the rules (or lack of rules).
socalgal2•3h ago
Yea, because no one has ever changed any rules. Every sport has changed rules, lots of games have chagned rules. It's kind of irrelevant. Removing eval and adding new shortcuts would just start a new era of creativity.
falloutx•9h ago
It seems like dwitter outlived twitter. Goated site.
varenc•9h ago
TIL that

   js_func`string`
is valid JS and calls `js_func` as a tagged template literal, passing it a TemplateStringsArray. Going to use "console.log`weeee`" in my code now.
jsheard•9h ago
It's not common but few libraries use that to support JSX-like syntax at runtime, without a build step.

e.g. https://github.com/developit/htm and https://lit.dev/docs/components/rendering/

Lerc•7h ago
I recently used the feature in a code embedded image generator so I could have compact images store tiny images in inline code.

https://gisthost.github.io/?8d537c4a3b2331e7c6c45d31f1900330

The Trashcan in that sampler is stored as

    TRASH: Q`!B>#Z>!F>#F:V:V>!>B#^BZfBf3`

decoded to a SVG D path by

    function Q([e]){let c,t,n,d="",l=0,o=c=>e.charCodeAt(l++)-33;for(;l<e.length;d+=t<20?(c=1&t?100:10,"MmLlHhVvCcSsQqTtAaZz"[t]):t<71?t-45+" ":71==t?(n=o(),e.slice(l,l+=n)):(94*(t-72)+o()-1033)/c+" ")t=o();return d}
which can be turned into an image by

    function simpleImage(p="M-22 -22 h44 v44 h-44 Z",w=64,h=w,o={}){let{background:b="#0000",stroke:s="#000f",fill:f="#fffa",thickness:t=w/32,transform:m=[1,0,0,1,0,0],scale:c=1,angle:a=0}=o;const C=new OffscreenCanvas(w,h),X=C.getContext("2d");let P=new Path2D(p);m instanceof DOMMatrix||(m=new DOMMatrix(m));m.translateSelf(w/2,h/2);m.rotateSelf(a);m.scaleSelf(c,c);let T=new Path2D;T.addPath(P,m);P=T;X.fillStyle=b;X.fillRect(0,0,w,h);X.fillStyle=f;X.strokeStyle=s;X.lineWidth=t;X.stroke(P);X.fill(P);return C}


The Sampler contains all of the images in the html file and still comes out to be only 13k. Probably quite a bit less if you removed the ray tracer and scenes.
econ•7h ago
&#128465; is prettier :)
rriley•7h ago
Niiice! I finally understand the origin of this JS syntax used in SQL queries and GraphQL:

sql`SELECT * FROM users WHERE id = ${userId}`

const q = gql` query GetUser { user(id: ${userId}) { name email } } `;

pverheggen•8h ago
Cool site! Reminds me of tsubuyaki processing, which is a similar "code golf that fits in a xeet" type of challenge.

https://xcancel.com/search?q=%23%E3%81%A4%E3%81%B6%E3%82%84%...

lionleaf•8h ago
Fun to see this on HN! :D

Apologies for the quick reboot of the servers. I learned from last time this happened and resized the digitalocean droplet.

alexpadula•7h ago
The website seems to be unresponsive on iPhone safari.
softbuilder•7h ago
Same on Mac FF
leptons•5h ago
Too bad Safari is the only browser engine allowed on iPhone.
econ•6h ago
OT: we should really extend bbcode with a safe scripting language. The hilarious stuff that could happen in threaded discussions. You could have a sub set of safe instructions that get executed automatically, a larger set of instructions that require pressing a button under the comment. (And a button to view the code) Then a 3rd set that triggers permission dialogs for things like loading (1 or n) external data sets. "Uploading" files, loops that run more than 30,1000 or 10k rounds, access to camera/photos, canvas, LLM etc

You start a topic by pasting a dataset or a link to some JSON csv, xml, sql files, etc, then add a description or some other rage bate to start a conversation.

Seems much fun and a great way to start getting into coding.

est•5h ago
svg?
econ•4h ago
It obviously requires a lot of figuring out (by better men than me) but it seems a worthwhile adventure.

The halting problem can just be figured out experimentally in production. Users might need to earn or lose privileges over time as things escalate. Admins might approve a script and allow running it without prompts or pressing the button.

Perhaps entire applications can be written this way. I much enjoyed old php code with discussions in threaded comments. (The cache will save us.)

Reminds me of Richard

https://stackoverflow.com/questions/184618/what-is-the-best-...

someonewithpc•3h ago
> the halting problem can just be figured out experimentally in production That's a wild statement
sshadmand•6h ago
What a cool concept to turn the SM 140 chars concept into a programming demo list! Is there a reverse to this that work to compress a JS script into 140 chars to help show some creative ideas without needing to fully understand the code? Also, how good is AI at generating these in your experiences?
leptons•6h ago
There have been a few "AI" submissions, but they honestly aren't that great.
jedschmidt•6h ago
i went super deep on 140-byte code golfing[1] back when twitter was taking off, and it changed the way i think about code. for a brief while we had a small community collaborating on byte-squeezing techniques[2], and i was constantly amazed at the creativity that this constraint brought about, from mandelbrot renderings to sudoku solvers. possibly the best part was more than a decade later when i found my golfed UUID implementation[3] deep in my employer's codebase.

[1] https://youtu.be/JsAetmgJRss?si=AxIFySX7ktzu5GL5&t=193

[2] https://github.com/jed/140bytes/wiki/Byte-saving-techniques

[3] https://gist.github.com/jed/982883

H3X_K1TT3N•5h ago
Welp, that took up a chunk of my day. This is as far as I got tricking it into doing webgl (it just renders a triangle):

if(!window.g){gc=document.createElement('canvas');g=gc.getContext('webgl');c.parentNode.replaceChild(gc,c);k=Object.keys(g.__proto__);d='void main(){gl_';str = `g395(g41,g318())g310(g41,new Float32Array([0,0.5,0,-0.5,-0.5,0,0.5,-0.5,0]),g46);a=g322(g139)g382(a,'attribute vec3 c;${d}Position=vec4(c,1);}')g313(a);b=g322(g138)g382(b,'${d}FragColor=vec4(1,0,1,0);}')g313(b);d=g320()g302(d,a)g302(d,b)g376(d)g393(d)g435(0,3,g128,0,0,0)g406(0)g404(g12,0,3)`.replace(/g(\d+)/g,"\ng.\${k[$1]}");eval("eval(`"+str+"`)")}

I assume there are far more advanced methods than what I managed to do, so it's probably possible to actually get that to 140 characters.

leptons•5h ago
Most of the amazing stuff on dwitter.net is using plain old fillRect

Clever math does the heavy lifting on dwitter.net

H3X_K1TT3N•5h ago
Yeah, that's fair, but I just wanted to see if I could do it this way (for funsies)
socalgal2•3h ago
not quite the same because no site but several devs post pico8 tweets

https://x.com/search?q=%23postcart%20%23pico8

maybe #tweetcart is a better hash tag

https://x.com/search?q=%23tweetcart

Abishek_Muthian•1h ago
Thanks for sharing, I'm into 8 bit retro games lately and I assumed this pico8 was some playdate emulator for some reason. My ignorance was rectified today.
rsiqueira•3h ago
A small, curated collection of generative sketches written in 140 characters each, using plain JavaScript on dwitter.net.

Fractals: https://www.dwitter.net/h/fractal

Dynamical systems / chaos: https://www.dwitter.net/h/chaos

Strange attractors: https://www.dwitter.net/h/attractor

Spiral-based generative art: https://www.dwitter.net/h/spiral

Fireworks simulation: https://www.dwitter.net/h/fireworks

Procedural scenes: https://www.dwitter.net/h/scene

Wavelets (3D and 2D): https://www.dwitter.net/h/wavelet

And the most popular dweets: https://www.dwitter.net/top/all

kace91•2h ago
I wonder what could be a criteria for demos like this that doesn’t devolve into code golf nor spawns giant files.

I’m not saying that to disparage the content mind you; it is amazing. Just wondering which potential rules could make similar results and “normal”/readable code, as that would be awesome to see.

lionleaf•2h ago
Shadertoy might fit that category? Runs in the browser, are all fragment shaders and without a size limit afaik, but they tend to be small-ish

https://www.shadertoy.com/

tluyben2•1h ago
Nice work; I remember browsing it during covid.

Tried AI for a standalone html page snippet renderer[0].

I tried just feeding it snippets one by one and that worked, but the raymarching ones it could not get going until I gave it the dwitter github repos. Now most, but not all (simple to fix manually though), work.

Also interesting to see Claude is terrible at trying to write the art (the demos itself) and seeing what it tries to do; not surprising given the challenge.

[0] https://claude.ai/public/artifacts/d8b357df-5982-48c6-be58-7...

RyanOD•1h ago
Thinking back to days with The Zen of CSS Design, this is just incredible.

It's the weekend! Take a journey back in time...

https://csszengarden.com/