HackerTrans
トップ新着トレンドコメント過去質問紹介求人

siraben

2,805 カルマ登録 7 年前
https://github.com/siraben

Vanderbilt CS and math. Yale CS.

Email me! siraben [at] siraben.dev

投稿

Full Reverse Engineering of the TI-84 Plus Operating System

siraben.github.io
149 ポイント·投稿者 siraben·先月·24 コメント

Show HN: Nonograms – Friends-only puzzle room with replays and leaderboards

nonograms.siraben.dev
5 ポイント·投稿者 siraben·5 か月前·2 コメント

Cygwin cross-compilation support added to Nixpkgs

github.com
2 ポイント·投稿者 siraben·10 か月前·0 コメント

コメント

siraben
·12 時間前·議論
I use croc instead of magic wormhole as of a year ago now. In my testing the throughput is higher than magic wormhole because it uses multiple TCP connections to transfer the files.
siraben
·一昨日·議論
This is very cool! I'd like to see a version for theorem proving/equational reasoning as well because I think the ideas behind reasoning about functional programs and proving properties about them are just many cases of rule-applying but people don't staring at equations or jump straight to a theorem prover, whereas a visual interface might make the transition a lot easier.
siraben
·18 日前·議論
I got a bootable NixOS iso down to 91 MB. Pointed Claude at the Nixpkgs repo and asked it to strip things aggressively and inspect the build closure iteratively.

But the resulting ISO:

- has no network

- can't switch configurations

- doesn't have a text editor

https://gist.github.com/siraben/a8fce9912891d85e1ec3cf74081b...
siraben
·先月·議論
Yes, to type a TI-BASIC program you have to go through the calculator menus which directly insert the tokenized input into the buffer.

The weird thing about TI-BASIC is how seemingly innocent changes in the input can cause huge performance regressions e.g. https://siraben.github.io/ti84p-re/sub-tibasic-for-paren.htm...

  For(I,1,N
  If 0
  1
  End
is much slower than

  For(I,1,N)
  If 0
  1
  End
siraben
·先月·議論
It's highly likely that the original implementation language was assembly. The code is very idiomatic.

Regarding source build, I think reverse engineering it to the point where you can reconstruct the source is possibly legally problematic, so I don't plan to do this, but maybe for certain subsystems like MathPrint (equation display) which was especially fun to RE. I have a PR up for it and it will be live at

https://siraben.github.io/ti84p-re/mathprint
siraben
·先月·議論
The plans are heavily subsidized by the AI companies so I didn't end up needing to do API usage or buy another subscription. I have ChatGPT Pro and Claude Code Max.
siraben
·先月·議論
Thanks for the feedback, fixing.
siraben
·先月·議論
This was made collaboratively by me directing coding agents at the binary, using Ghidra MCP extensively, disassembly and also dynamic analysis with an emulator. I don't have a writeup of the process but it was definitely not fully automatable (I wish though). I might prepare a blog post with transcripts and session history and things I learned along the way.

Broad takeaways:

- Ghidra MCP is not a silver bullet. Lots of opportunities for mis-decoding especially on older instruction sets (e.g. conflating code + data), which requires user input to flag data layout/structs.

- Agents still need a lot of user direction otherwise the RE production is just kind of a random walk. With Z80 it's decent at reading code but I expect that it has much worse performance than reading x86 or ARM for instance. The TI-84+ has a bunch of hardware quirks as well.

- GPT 5.5 is better than Opus 4.8 at RE. Opus 4.8 loves plausible-sounding RE'd logic without any checking. The gold standard is actually dynamically executing the binary and comparing the logic against the prose.

- Maintaining consistency in style and prose is a PITA across the wiki. Hard to reconcile prose <-> code. Can be somewhat mitigated by agent loops.

Was also in discussions with people in the TI calculator programming space who helped provide guidance as well. We previously did not have a catalogue of every subsystem in TI-OS yet alone most subroutines in the OS.
siraben
·3 か月前·議論
Without installing anything, this can also be reproduced with a shell script that uses a Nix shebang to specify the cross compilers.

https://gist.github.com/siraben/cb0eb96b820a50e11218f0152f2e...
siraben
·6 か月前·議論
browsh and carbonyl[0] are such lifesavers on airplane wifi. I find that carbonyl has even better chromium rendering than browsh.

[0] https://github.com/fathyb/carbonyl
siraben
·8 か月前·議論
See also: https://en.wikipedia.org/wiki/List_of_Germanic_and_Latinate_...
siraben
·9 か月前·議論
croc's throughput was also a lot better for me. I think this is due to them using multiplexed TCP streams.
siraben
·10 か月前·議論
Archive link in case it gets taken down: https://archive.is/8MdtL
siraben
·10 か月前·議論
My favorite aspect of kitty is the infinite scrollback. My scrollback is 10000 lines long and scrollback buffer itself can store 1 GB worth of history.[0] When you hit a certain shortcut, you can use any pager to search through the scrollback. It's all very fast.

[0] https://github.com/siraben/dotfiles/blob/84225d914acd226863e...
siraben
·4 年前·議論
For CS, it was SICP. I read it in high school (accompanied with the lecture series[0]) and it lead to me learning about functional and logic programming, compilation, algorithms and data structures and more. It was more than enough to prepare myself for university, and even in my third year some topics have not been covered to the depth they are in SICP!

For math, it was Gödel, Escher, Bach. I was into mathematics in high school as well, but did not have a proper teacher at the time so I was stuck on trying to absorb some of the more technical undergraduate texts in abstract algebra. However, GEB was at the right level and had a nice layman explanation of the 2nd incompleteness theorem, along with beautiful exposition into philosophy, computer science, math, art, music and cognition. I enjoyed it so much I even wrote a compiler for the programming language in the book to C.[1] The exposition on formal reasoning also got me started in learning the Coq theorem prover, which I continue to use to this day.

[0] https://www.youtube.com/watch?v=2Op3QLzMgSY&list=PLE18841CAB...

[1] https://github.com/siraben/meta-yacc