A feed of everything Purdue Hackers members have shipped.
Laying out feed...
unknown-user https://artusmosquet.com
i created a chat-sdk adapter for linq (a platform that lets you programmatically send imessage texts using real phones) at work and we open sourced it :D
Added a reading list to my website https://kasad.com/reading-list/
fixed this yesterday

https://sig.horse/pages/ You can now view all the SIGHORSE pages at once if you so please!
Been building a research and studying browser extension called Onhand.
Annoyed about how chatbots take you away from the source and give you direct answers without a "why" that's rooted in your material.
Onhand's answers come right from the tabs you have open. It highlights the most relevant sections of sites and adds explanatory notes directly to the page. Its general response has Wikipedia-style citations that take you to corresponding page highlights/notes.
Lots still to improve. Wanna make it a better tool for learning, using pedagogical concepts (learning to learn).
https://fxtwitter.com/sriramkiron/status/2047519108917256286
I have finally performed my first server CPU upgrade! I swapped out the old Xeon E5-2609 V2 CPUs from my PowerEdge R720XD for some Xeon E5-2690 V2 CPUs I had in a PowerEdge R620 I’m planning on selling. Now my NAS has 4x the thread count and can turbo significantly faster!





type exploration

this is technically a work ship but i wrote a chat sdk adapter for linq (api that provides blue bubble imessage support)
I blew up on hacker news

bartending whipped cream at #jacknight4 !!!!
this was purely my fucking intuition i just guessed the recipe and shook it and it fucking worked

shipping in reverse order because its late and i don't want to record a demo video at this hour, but i created a website that lists every single subdomain under the purdue hackers domain :)
web: https://map.purduehackers.com repo: purduehackers/dnssrc/web/index.tsxmain

now that paint a street is over, here's the script i ended up using to help balance all the purdue hackers people!
uses a few simple rules to ensure hazel and her friend are together, then walks over our row and ensures we don't have any interlopers, and then maintains a buffer. also has a voting queue that cycles through ~60 sessions so we don't hit ratelimits and maintains a virtual representation of the board with optimistic updates for perf

created an oxlint plugin that ports over some rules from rust clippy to typescript! this includes rules to manage code complexity, correctness, and even pedantic style checks!
under the hood it uses the oxc-parser library so that getting an ast is extremely fast. the rules are ported over from the rust codebase and tweaked slightly to match more of typescript's syntax and oddities.
you can install it (along with oxlint) using:
bun add oxlint oxclippy
bunx oxlint --init
bunx oxclippy init recommended
which will add the required dependencies, create a .oxlintrc.json file, and add the oxclippy rules to the config! after that, running it is as simple as
bunx oxlint
and your codebase will get clippy lints! :)
repo: rayhanadev/oxclippy npm: https://npmjs.com/package/oxclippy
Made a graph minesweeper game for the 381 exam 🙂 https://graphsweeper.sauquet.ai/
Presenting my vegan slider appetizers today in Marriott! Come check us out we're right by the entrance!!


it works! :D
built a tiny x11 window manager last week out of curiosity. its design philosophy is very similar to the tabbed view mode in i3wm.
i ran my first workshop in two years!!! had a lot of fun, i got to bounce around the room and talk about how to make coding agents and helped people get their first exposure to ai-sdk, really happy with how it went :)
repo: purduehackers/coding-agent-workshop-template slides: https://phack.rs/ca-slides


just shipped duralang — one decorator makes your LangChain agents indestructible
the first durability layer built specifically for stochastic AI systems. the LLM decides everything at runtime — duralang just makes sure whatever it decides cannot fail permanently.
every LLM call, tool call, and agent call becomes a Temporal Activity automatically. retry on failure, resume on crash, free observability built in.
already got love from an engineer at Temporal 🙌
pip install duralang
i wrote a cli tool to brute force through claude pet combinations! (for the unreleased pets feature, dropping tomorrow)
tl;dr claude uses a seeded a mulberry32 pseudo-random number generator to roll all the "bones" of the pet based off a salt and the user's oauth uuid. the algorithm was leaked in the claude code sourcemaps drop, so i extracted it, cleaned it up, and got it to run via bun. the tool will spawn multiple worker threads based on how many cpu cores you have available and hammer through possible combinations until it fines matching sets.
hopefully the logic doesn't change too much ahead of tomorrow, but fun exercise in extraction :)
repo: rayhanadev/claude-petpet
another repo that's been moved to vercel! the dsai passports demo now runs on vercel and has been fixed to work with small tweaks made in the typescript rewrite of id!
I finished updating my website to use typst html export! https://rovnyak.net/ Some things that I had to do to make it work...
i rewrote the purdue hackers api server to run on cloudflare! the websocket handlers and stateful processes are now backed by cloudflare durable object so we can support long-running connections.
repo: purduehackers/api-v3 link: https://api.purduehackers.com
vwuh https://kasad.com/vwuh/ unknown-user unknown-user
shipping along with this, i shipped privacy options for purdue hackers! similar to the privacy features introduced in commit overflow, this allows folks to opt out of data collection, so you have a choice in how your data is collected and shared :)
you can change your privacy settings using the /privacy command, configuring global and per-app settings :)
people who opted out of public sharing during commit overflow have been grandfathered into the new system as well o7
repo: purduehackers/privacydb
Just shipped a site aggregating all of our ships from this channel! Until now all of our great ships have been trapped within our community, waiting to be seen by the masses. No more! This was def a labor of love, and I think it turned out fantastic https://ships.purduehackers.com

Finally after a year+, my PR has been included in an actual release https://krita.org/en/release-notes/krita-5-3-release-notes/
omg i got this comment

Woah I also wrote a blog post https://www.jackhogan.me/blog/box-of-secrets
The new profile picture ships and replaces the one I've been using since 2020, across all sites and services! Around 9 hours of sketching, inking, and coloring in total. Thanks to everyone I bugged regarding coloring and background preference 🙂

i got tired of copy pasting docs and scaffolding for when i decide to open source a project, because there's a ton of docs...
naturally, i made a cli to do it instead :)
repo: rayhanadev/folio npm: https://www.npmjs.com/package/@rayhanadev/folio

my (probably) novel graph IR scheduler is finally working after months (https://mkhan45.github.io/wasm-cbd/). Also I got a job at unknown-user company this summer


Somebody merged a PR fixing buggy code that I merged into an open source repo. Never have I felt more honored mogenson/PaperWM.spoon#146
Made a little python script to generate Anki flashcards based on PDF input for Purdue's "Learn Japanese Online". It uses "AI"

finished setting this guy up! it has a custom launcher, whatsapp and retro. to interact with certain things like whatsapp i also installed a virtual mouse using magisk. there are some other qol things that i still need to install (to improve battery life and performance) and perhaps remove some system apps that i don't need but this guy is basically done. fun side project (thanks ishan for helping lol)

Extracted our custom Discord Markdown processor into its own package!
It now takes a generic entity ID resolver, so we can use discord.js from wack-hacker, or query a cache/database if using in a website that isn't connected directly to Discord.
https://www.npmjs.com/package/@purduehackers/discord-markdown-utils purduehackers/discord-markdown-utils
https://vercel.com/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections https://vercel.com/changelog/deprecating-the-dhe-cipher-suite-for-tls-connections another matthew stanciu changelog, it’s the most boring one yet but widely celebrated internally
soundcloud dmca can kiss my ass https://night.jackhogan.me
i cant stop shipping

purdue hackers logo at G4G

https://opcs.cart.moe/ Optimizing Purdue CS now has a nice website! in case that was ever holding anyone back from sharing it. also hint Nominations for outstanding service to the department are open until March 24
submitted to figbuild last night! had a lot of fun working on this :D
https://notjinon.github.io/employment-trail/game.html
the game has been updated
major changes:
thanks unknown-user/matthew for catching a gamebreaking bug
and thanks alicia/jadden/emily for playtesting v2.0

phone bells are finally done! people on the inside can dial 0 while on a call and open the doors automatically


built an api to query for purdue hackers information from our documentation in notion! this uses the notion-fs library i built above + agentfs (on turso) + just-bash. this approach is much better than RAG because most frontier models have been rl'd on coding environments and bash enough to be able to navigate a filesystem and use tools with better accuracy than embedding models can accurately retrieve data. this was mostly an experiment just to see if its possible to build something like this, pleased it works as well as it does :)
i'll integrate it into my next project (public-facing docs mirror from our notion) so folks can try it out!
repo: purduehackers/notion-ai

shipped my notion-fs library. i managed to hijack the notion markdown api instead of having to develop my own codec, so its significantly faster, makes fewer requests, and is more reliable to work with!
will be using this now for other projects but sharing here :)
repo: rayhanadev/notion-fs npm: https://www.npmjs.com/package/@rayhanadev/notion-fs

I reconfigured my MacOS setup to use the PaperWM sliding window manager! unknown-user unknown-user
sign dash is LIVE! Admins can now manage Wi-Fi networks for all provisioned Signs (soon to include DSAI)

lunar lander v2 has been shipped!!!
you can now play it anytime and anywhere with friends :)
features:
and more! :D
play: https://lunar.purduehackers.com/ repo: purduehackers/lunar

I too did a set! https://soundcloud-og.com/xendergo/jack-night-3
spent a couple hours on this earlier today, polished it up and published it :)
do you HATE opening up the purdue menus app or going to the dining website to see what's in the menu for today? fret not, you can now puruse the purdue menus straight from your terminal! :D
featuring:
super quick hack, tried to make it as not buggy as possible and have good ux. built using bun, opentui, and react :)
you can install it by running: bun install -g @rayhanadev/purdue-menus and then run pmenu
repo: rayhanadev/purdue-menu-tui npm: https://npmjs.com/package/@rayhanadev/purdue-menus
i fixed a macos app i started using jurplel/InstantSpaceSwitcher#8
https://soundcloud.com/everlastingweekdays/weakdays-first-dj-set-at hello i also did a set
I need to go in and make the cover art and the title and the tracklist and like everything but heres the audio file rn im at all hands rn #SHIPPINGDURINGALLHANDS #foundermode https://soundcloud-og.com/user-177606668/habiboi-secret-event-3/s-9i8TXR2IrG3?si=1906eb7fb4bd41a6a7d0c52d37f9e602&utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing
oh hey i also played a set for jack night 3 https://soundcloud-og.com/fizzyapple12/jack-night-3
First set is up! https://soundcloud-og.com/imthesquid/imthesquid-jack-night-3
Forgot to ship this last night: the gpgparty tool used last night at the GPG intro and keysigning session! URL: https://gpgparty.ericswpark.com Source: ericswpark/gpgparty And if you want to rewatch the session you will be able to here: https://links.ericswpark.com/phackers-gpg-session Many thanks to everyone that participated in the session, and to Kian for helping me find an edge case in the underlying GPG library!
Open-source 2D IDE for agentic coding using native CLIs, multi-machine, multi-project - can have all of your projects, repos, beads issues tables on the same screen.
View Claude Code usage, git trees, and maintain up to 49 terminals all on the webUI accessible from anywhere, including mobile.
https://49agents.com https://github.com/49Agents/49Agents/
Please guys leave a star its my first open-source project and I have no idea how to market it outside reddit and twitter hahah


i played my first venue last night! this was my first time playing on a cdj and there were a bunch of surprises. when i got on stage i discovered the mixer wasn't the one i expected and i couldn't use my headphones with it, and also the cue button on the right cdj had broken. so i was mixing based on what i heard from the audience speakers and had to improvise around not being to use the cue button half the time, which my set makes heavy use of.
unfortunately because of all this i am not proud of the end result. i worked around the cue button issue mostly well but i made a bunch of mistakes from not being able to hear the output properly - for example i didn't notice the echo effect lasted longer than 1 beat and it made all the parts with that effect sound terrible. there's a part where i had reverb on for like 30 seconds and it made one of the transitions a lot worse. and some other small timing and mix volume mistakes.
i uploaded a dry run that i ran on my controller last week that i feel went a lot better: https://soundcloud-og.com/hewillyeah/itp-and-friends-dry-run-02-23-2026
but i also uploaded the real thing anyway because even though i'm not personally proud of the end result, i still had a great time and people loved the performance, so i'm still proud of this set! i'm especially proud that i broke new ground. link to that in the thread
yay unknown-user unknown-user and i worked on a daily puzzle game inspired by enclose.horse where you try to serve all customers in the least amount of steps! go try it out :D https://etea.cafe/
after a bunch of work! the GPU Programming Workshop Happened! cc unknown-user re: purdue hackers is dying
no it's not.
battling a migrate today, but i finally got the switches and keycaps to put together my custom keyboard! :)
lifted this frame off aiden (seems to be a yunzii al65 v1) and added durock t1 tactile switches plus some random keycaps i found on amazon. its a 65% keyboard so im going to have to figure out how to navigate less keys but its fun to use so far :)




new macos wallpaper, lifted an image off google and mashed it in grainrad

Rebased my NixOS configuration from root, and edited the initial commit to reflect my config's history. Now, it's my commits, and nobody else's.
Only 7 more commits to go :)
Intermediate ship, i made a benchmark zoo site for wasm engines https://mkhan45.github.io/wasure/ The current suite isn't the most representative; I think it overemphasizes numeric stuff a lot
Over the past few days I have gotten signatures from people I really admire:
green - Donald knuth yellow - Lucas garron orange - Matt parker blue - Tomas Rokicki white - Max park (this was many years ago) red - Adam savage


door-opener x ada-pusher finally ships! Passport-based entry is now back up and running 🙂 purduehackers/door-opener purduehackers/ada-pusher
I am now completely free of Cloudflare! Just waiting on the NS records to propagate for unreliable.email, and I'm good to go!
Also simplified my DNS config a little bit.

finally got around to shipping new website! we're going straight from v8 -> v10
my original motivation to make a new website was to simplify it dramatically so i can get in the 100kb club and also refresh my visual style. i made a website v9 that i was sharing around, but i wasn't really satisfied with how it looked. it also didn't really have any unique flavor that made it mine.
i decided to start from scratch and finally ditch astro, which atp i'd been using for the past 4-5 generations of my website. i wanted to do something that involved http/3 so i decided to write a go server. originally i was going to implement the http/3 spec by hand but then i decided that wasn't worth the trouble lol. but i did end up adding some really neat features though:
[stream:char-speed], clip, and [pause:ms] tags, and passthrough htmlcurl-edthere's more stuff too that's cool, you can check out the repo to see it :)
(also, website is now 20.75kb and 55% of the codebase is HCL and 33% is go tehe)
site: https://rayhanadev.com/ repo: rayhanadev/site
Wrote a Markov model bot trained on this server's messages. Run /imitate to use it.
Use /opt-out to opt out if you must :(

First try 
First certificate issued by a DNS-01 challenge to my own nameservers!

https://inx.moe/system/#iris Accompanying small ship, added Iris to my list of computers
Screw Cloudflare, this is MY HOUSE now.
git.inx.moe:Infinidoge/universe93ee83b..6ca7395
Now I just need to migrate my other domains.
Will I migrate vulcan.moe? We'll see.

Iris has been installed!
Note to self, write my own nixos-install script

built the first iteration of a "smart" and "highly-capable" agentic system that we can use for operations at purdue hackers :)
i took inspiration from linear's slack bot which you can ping anywhere, and somehow magically has enough context to understand what you want to do and can take actions across your linear workspace. i reverse-engineered how it works and they made some very interesting technical decisions, especially with their concept of progressively-disclosed "skill bundles".
i don't know how linear's slack bot is implemented so i did my best to implement what i felt was a good system based off my learnings. using the vercel ai sdk v6 i was able to build an orchestrator agent and subagents that have access to our notion and linear workspaces, and give them tools which they can progressively disclose via a load_skill tool which only loads the relevant tools and specific guidance for using them when requested. this allows me to not blow a hole in my context windows and also allow for a highly flexible agent. the agent can also take multiple steps to reason and complete tasks, allowing for highly complex actions.
im especially proud of how minimal and extensible the repo is. you can define tools easily using the ai sdk tool function, define skill bundles easily as markdown, and wire them all together using minimal logic in a ToolCallLoop agent :)
what can this do now you may be asking? well:
super exciting, i'll be hooking up more tools to this system (discord, sentry, and perhaps opencode). it's infinitely extensible and so much more can be done :)



I added an ISO installer option to lethe, so now I can also boot an ISO directly for provisioning :)

i moved feature flagging for wack hacker from environment variables to a vercel edge config, which allows us to change the behavior of wack hacker without having to redeploy it :)
commit: purduehackers/wack-hacker3087ffd
Oh also there's https://inx.moe/being/trans, which was made a little while back but not publicised.
It's not an essay (yet), but it's something I've been meaning to put in my website for quite a while now, so here it is: https://inx.moe/opinions/anti-ai A page stating my opinion with a quoted message from myself from mid-2025 and a fuzzy list of 'policies'.
Will absolutely update it later, particularly some time other than nearly 5am
i created a new feature in wack hacker which allows folks to record meetings by running /start-meeting! wack hacker will join the voice channel you're in and listen to all the audio. it will start streaming the meeting transcript live into a thread in the channel you start a meeting in using the elevenlabs speech to text realtime api!
once a meeting is over (either when everyone leaves or via /leave-meeting) it will clear the thread, summarize the meeting contents, and then output a finalized transcript which is higher quality and has speaker attributions :)

Netboot works! :D

https://kennan.dev/blog/sheet-music-demonstration/ wrote the feature at hack night like 2 months ago, wrote a itty bitty blog post this morning
(From Thursday)
Nugget is now on Homebrew


Self statistics system (pre-alpha???) is live! Check it out here: https://self-statistics-system-v2.web.app/ Writeup coming soon. Some stuff is still bugged. Main functionality is usable. Lmk if you have any suggestions, comments, insults, whatever! (feel free to dm me for stuff!)
Sign in anonymous if you don't want your data associated with you-- no skin off your back.
Shrimp badge, all colored in :) let's try this one more time uhh

https://vxtwitter.com/sriramkiron/status/2022379305691501035?s=20
Just launched https://moltopia.org, a virtual world for OpenClaw agents. They can chat with each other, craft items, and sell these items on a market.
Hoping to add more features like minigames. Repo: Phineas1500/moltopia
i got tired of running bun init and then having to take fifty steps to setup my workspace before i could do work. so i created a cli tool to help me scaffold new projects faster. comes with all my favorite linter/formatter config and scripts, and also a bunch of agent skills that i can use to quickly get the repo setup with tooling or effect!
repo: rayhanadev/new

i got tired of soundclown not expanding my music links when i share them on discord, so i built https://soundcloud-og.com to make it faster
source: MatthewStanciu/soundcloud-og


The computer vision system that me and arhan designed for the qter robot is working! The time delay in the video is due to our CLI tool being really scuffed and taking a long time to load
New Hack Night dashboard is live! Make sure you come check it out this Friday 😁 https://night.purduehackers.com
Just published the Commit Overflow blog post written by unknown-user, unknown-user, and myself https://blog.purduehackers.com/posts/commit-overflow-2025
unknown-user discovered a bug in my interpreter code for the robot that has been there for eight months which is before our robot even existed and when our code was for the world record breaking robot. Here's the diff that introduced the bug... https://github.com/qter-project/qter/commit/1352669a3263b8a9fdc7385f7c83983f023b2d15#diff-7b0fbdf9af68ca506b478679c09cdedf88cfb7d4525fb850cacc90893f1d5acbR224-R231
The bug is that halt is actually not equivalent to repeat until because repeat until effectively counts up, while halt counts down, which means our robot was literally doing instructions backwards. Here's the very silly sequence of factors that led us to not discovering this until literally today...
Since Daniel is writing a new visualizer that actually uses that code path, that code was probably executed for the very first time today. I think this is really funny which is why I'm putting it in ship.
Anyways, here's the fix qter-project/qter5325dd7
https://devpost.com/software/barbielang?ref_content=user-portfolio&ref_feature=in_progress
https://kartva.github.io/barbie-lang/
I participated in InnovateHer, a 24-hour hackathon over the weekend alongside my team (who are not in this server.)
It's a barbie-themed programming environment.
Update: we won second place.
API v3 is live! Now with full support for the new phone bells (shipping soon……) purduehackers/api-v3
V2 of the Odker dot grid notebooks has arrived!




glider bag (with several more layers and dried)!!!!! was pretty scared about how it would turn out but its amazing :)

i finally wrote up a blog for a hackathon i did a few months ago -- we ran distributed training using webcams as the communication medium:
unknown-user 3D printed custom motor mounts that are wayyy easier to align, and since alignment was our main bottleneck, we can now go way faster:
qter-project/qter3bf18d6 Rhai macros work in the qter compiler!!!! Essentially this means that we can now do inline metaprogramming in QAT using a real programming language. In particular, our subtraction operation is implemented as a rhai macro, meaning that we can now compile and run our fibonacci program!
``` .registers { A, B, C, D <- 3x3 builtin (30, 18, 10, 9) }
.macro fib-shuffle { ($R1:reg $R2:reg $R3:reg $counter:reg) => { dec $counter if solved $counter { halt "The number is" $R1 } while not-solved $R1 { dec $R1 inc $R2 inc $R3 } } }
input "Which Fibonacci number to calculate:" D if solved D { halt "The number is: 0" } inc B loop { fib-shuffle B A C D fib-shuffle A C B D fib-shuffle C B A D }
And then this is the definition of the `dec` macro, using rhai macros that work now:
.start-rhai fn subtract_order_relative(r1, n) { return [ "add", r1, (-n) % r1.order ]; } end-rhai
.macro sub { ($R:reg $N:int) => rhai subtract_order_relative($R, $N) }
.macro dec { ($R:reg) => sub $R 1 }
WE are all pulling up to pmp live on saturday #anotherone

I made a redacted version of my resume :) https://inx.moe/resume
Here's the redaction jq script:
.basics |= (
.name = "Lillith \"Infinidoge\""
| del(.phone)
| .location |= del(.address, .city, .postalCode)
)
"Lillith this implies your resume is a JSON file" yes, yes it is
Created an updater script for Tailscale on the Purdue CS servers! This is to be used after setting up Tailscale with Kian's excellent guide found here gist.github.com:ericswpark/93a3cdaff36b63ecf65feb60827449bc Critiques, bash scripting and tax evasion tips welcome 🙂
https://meow.social/@Infinidoge/116004697890988238
This is a ship because I spent the past 4 hours fighting this. Carrier locking should be banned at the government level. Carrier specific software should always be removable. The current network landscape makes me extremely frustrated. Metaphorically goodnight.
48hr Global Gamejam submission with unknown-user doing all the artwork 'experimental nonlinear comic visual novel prototype thing' SYRINX ➔ -# please play on a computer. phone screens are too small!
Sent in a cover letter and resume to a Nix company in Germany :) I'm not posting an unredacted resume or cover letter here, so have some vague screenshots :)


Today I merged 6 PRs to nix-minecraft Infinidoge/nix-minecraft#185 Infinidoge/nix-minecraft#163 Infinidoge/nix-minecraft#161 Infinidoge/nix-minecraft#177 Infinidoge/nix-minecraft#193 Infinidoge/nix-minecraft#117
Along with bumping the flake, Changing the formatter, Fixing a few warnings from latest Nixpkgs, and getting over my fear of just hitting other people's work with a hammer so I can merge it faster
Verified signatures are overrated anyways
Finally shipped the Android helper app to create QR code labels for items in Homebox! You can check it out here: ericswpark/homebox-qrdroid Android development has changed a lot since I last worked on it circa 2018~2022, so I did try out the built-in Gemini integration in Android Studio and it worked quite well in finding me the syntax for Kotlin/Jetpack Compose/DataStore/Lifecycle things! Some nudges here and there but keeping the scope small really helped


finished drawing/printing some custom cards for friends :3





balls go brrr at workshop
The shelter is open! Take a look and find Purdue Hackers projects that need homes https://shelter.purduehackers.com/
How's them apples And by apples I mean typewriters

yet another i was bored mini project: 2 sum, but im failing cs 381 so i did it the dumb way with avx2 greatericontop/VectorizedTwoSum
THE DSAI SIGN IS FIXED!!! Got into it and reflashed the firmware, so now it will auto-update and use the correct color assignments for its wiring

My deployment to my new website yesterday went so smoothly that not even the webring noticed: https://grace.pink
you can now create your own clients for use with ID/Sign in with Passport! Go to https://id.purduehackers.com/dash to get started and lmk how things go

i improved a few things about the purdue hackers website that were bothering me:
i hope you don't mind, i just pushed to main. it's not perfect but it really needed a lot of these things
url:
It took way longer than it should have, as I was fighting SAML the whole way, but I finally have Weblate setup! With INX Central and GitHub auth included!
This will be a surprise tool that will come up later, it has nothing worth looking at currently.
new purdue hackers stickers ahead of merch, tabling, callout, and all our things :)

made this poster for purdue climate action collective

Wrote a blog on my new website about my AI research project https://ramaway.com/blog/reasoning-or-bias/
Finally got around to publishing that blog post sitting in my drafts folder for the past month https://ersei.net/en/blog/lean-mean-solitaire-machine
Here's a React version of my json/markdown data querying app: https://ad-hoc-lens.dev/
I switched from solid to react so I could ship faster (since there are more mature libraries in that ecosystem). FYI, this is all on the frontend; the DuckDB instance is running in WASM.
Let me know if you have feedback!
LLVM IR extension for Zed is was finally merged! zed-industries/extensions#3990
mojo jojo piñata

have you ever tried adding an outlook calendar url to your google calendar, only to find out it's broken! i got extra irritated by this, so i wrote some code to normalize outlook ics feeds and make them standard ics so google calendar and other tools can use it properly!
i spun up a cute website for it, so now you can also get fixed calendars :)
web: https://normical.com repo: rayhanadev/normical
My own block cipher, which is hopefully more secure than AES (it probably isn't)
Featuring:
I was mentioned in the Zed release notes for a PR! (cmd+f "Arhan" at this page) https://github.com/zed-industries/zed/releases/tag/v0.219.0-pre
qter-project/qvisqvis/src/puzzle_matching/mod.rsmain I created an algorithm that will be used as a subcomponent of the Qter computer vision system: it inputs, for each sticker, confidence levels that that sticker is each possible color, and then returns the member of the Rubik's cube group that maximizes the total confidence. It uses the Hungarian Algorithm (https://en.wikipedia.org/wiki/Hungarian_algorithm) to do optimal matching between pieces and locations, slightly tweaked to allow it to give an iterator over all matchings in sorted order. Then, I perform that matching on the corner and edge pieces separately, merge the two iterators together, and return the first matching that's a valid Rubik's cube scramble. I think that this is really cool 
Oh, and this is all implemented generically over any twisty puzzle so anyone can reuse this for their megaminx solver or something idk
My obsidian- / typora- like OSS library and VS Code extension: https://prosemark.com/ Please make a github issue if you find any rough edges!
I melted a plate in my oven

I fixed Leptos syntax highlighting in Zed zed-industries/zed#45952
I really like some of my essays I wrote while studying in Dublin, so now they're on my blog! https://www.jackhogan.me/blog/the-dublin-papers