#introductions Researching new ways to write software that make it easier for newcomers to understand rather than for insiders to maintain. Systems that build easy, reward curiosity, encourage lots of forks, encourage deleting unused features, make society more anti-fragile. http://akkartik.name/about
Current project: a zero-dependency Assembly language for x86; Linux without GNU. https://github.com/akkartik/mu/blob/master/subx/Readme.md
(Previous intro: https://mastodon.social/@akkartik/99088307836858546)
My new Assembly syntax is now 4/5ths bootstrapped in itself. Just one phase left: https://github.com/akkartik/mu/pull/34
The previous phase took 7 weeks, but what's a factor of 7 between friends 😄
Some LoC stats (total, and excluding comments/tests):
Similarly, some executable sizes:
Today I learned that the reason we mostly encode [CARRIAGE RETURN + LINE FEED] and not [LINE FEED + CARRIAGE RETURN] has to do with teletype machines (these were typewriters hooked up to computers that supported input and output). Because CR is moving the print head about 8 inches right-to-left, and LF is scrolling the paper down ~1/4", LF took less time. If you sent CR/LF to certain models of teletype it could do the LF *during* the CR, saving a little time.
We use the word "boilerplate" a lot at work. It's such a strange phrase that seems like it's probably traveled far from its original meaning, so I looked up what that meaning was.
It goes back to newspapers. Large advertisers and content syndicates would distribute ready-to-go printing plates to local newspapers that could easily just go onto the press and be ready to print without any modification. These plates resembled rolled steel that was used to make boilers.
Here's an example program that strides through the heap dereferencing pointers until it segfaults. I was expecting it to segfault when it hits the program break, but it seems to segfault long before.
To the extent undistracted deep work is a well-posed concept at all, the biggest disruptor of it is not social media but the need to make money. Every waldenponding evangelist I know is rich enough or securely-incomed enough to not be distracted by money-making.
I just had an interesting chat (https://github.com/akkartik/mu/pull/19) with a contributor to SubX, my bootstrapped Assembly syntax. In response:
a) SubX now has sandbox branches where people can reimplement existing features.
b) I'll be publishing in-progress work. In the past wanting to keep HEAD passing tests has caused changes to accumulate for weeks at a time. Now they'll start getting feature branches like https://github.com/akkartik/mu/pull/23
Each PR at https://github.com/akkartik/mu/pulls now has context and instructions.
My new Assembly syntax is making progress towards being self-hosted. It can now create ELF binaries with data, opcodes and immediate/displacement operands. What's left:
a) Packing mod/reg/rm operands and scale/index/base operands into single bytes. (ETA: 2 days)
b) Handling string literals. (ETA: 1 week)
c) Support for labels. (ETA: ???. 3 months, if past history is any guide.)
Then: Goodbye C! Goodbye dependencies I don't understand! Hello, *true* collaboration.
There is something about writing the statement 'import time' that makes me feel supremely powerful.
Thousands of programmers have spent countless hours abstracting the complexities of time such that now I can just import a library and leverage all of their hard work for myself with little understanding.
I am truly a blind, idiot god. Feel the power of my ignorance!
the enterprise software omphalous:
design software to reflect organizational structure
Tired: Good design is about decomposing systems into components, each designed to hide a single major design choice. 
Wired: Since design mirrors the communication structure of the creating organization , good design is about decomposing the organization into teams, then encapsulating each team's services behind interfaces.
In the last few months:
- Tumblr purged adult content (and a bunch of stuff it misindentified).
- Flickr purged free storage above a limit of 1000 photos/account.
- Myspace deleted 12 years' worth of music.
And Google+ only has two weeks left before Google pulls its plug.
Back up your accounts!
And if you can, consider donating to the Internet Archive. https://archive.org
I put up another blog post on a subject I've been thinking about a lot lately: http://www.ianbicking.org/blog/2019/03/open-source-doesnt-make-money-by-design.html