Pinned toot

I've been hacking unix systems since the mid-80s in a good way, and I try to stay in the unix/free software/open source software world as much as possible.

I build far too many workflows that mix bash, python, awk, sed and golang together to drag data from odd places, polish it up, and put the results somewhere where the sun does shine. With possibly less input safety than is needed ...

For money, I do infosec. For fun, I play Elite:Dangerous and help run the in-universe radio station

I also live somewhere that isn't in your timezone, have a family that just wants their tech to work, and look forward to owning electric vehicles.

@natecull That sounds a little like Datasette's goals, although technically more limited.

you may not like it, but this is what peak projection performance looks like

I still find incredible that 1) they cheated IN THE MOST WIDELY POPULATED STATISTICS COMPETITION IN THE WORLD and expected nobody to notice 2) of all the competitions, they picked the one to cheat from that was from a charity that tries to help dogs not getting killed …

Golden ... ?

(Yes, the obvious one is missing you perverts)

Dammit - I never really noticed that the basic space station in Elite:Dangerous is a cuboctahedron, not a dodecahedron like it used to be in the 1984 original ...
Now I feel like such a fool ...

Random Numbers From Outer Space

Need a random number? Sure, you could just roll a die, but if you do, you might invite laughter from nearby quantum enthusiasts. If it’s truly, unpredictably random numbers you need, look no farther than the background ra…

Original tweet :

Femtolisp: a lightweight, robust, scheme-like lisp implementation

"...a purely symbolic gesture...

This project began with an attempt to write the fastest lisp interpreter I could in under 1000 lines of C. It snowballed from there as I kept trying to see if I could add powerful features with minimal code. At the same time I assembled a library of some of my favorite C code (by myself and others) to use as a base for a standard library. This includes ios, a replacement for parts of C's stdio that adds more flexible features.

Before you say "oh no, another lisp", consider the following: femtolisp is about 150kb, is very self-contained, and has the following features:

* vectors, strings, gensyms
* backquote
* exceptions
* printing and reading circular/shared structure
* all values can be printed readably
* prettyprinting
* hash tables
* support for directly using C data types ala Python's ctypes
* equal and ordered comparison predicates that work on circular structure
* proper tail recursion
* io and memory streams with utf8 support
* highly compatible with Scheme, including some R6RS features
* simple, well-organized, powerful API with as few functions as possible
* compacting GC
and... is fast, ranking among the fastest non-native-compiled Scheme implementations. It achieves this level of speed even though many primitives (e.g. filter and for-each) are written in the language instead of C. femtolisp uses a bytecode compiler and VM, with the compiler written in femtolisp. Bytecode is first-class, can be printed and read, and is "human readable" (the representation is a string of normal low-ASCII characters).

femtolisp is a simple, elegant Scheme dialect. It is a lisp-1 with lexical scope. The core is 12 builtin special forms and 33 builtin functions.

A primary design goal is to keep the code concise and interesting. I strive to have each concept implemented in just one place, so the system is easy to understand and modify. The result is high reliability, because there are fewer places for bugs to hide. You want a small core of generically useful features that work really well (for example, see torture.scm).

Almost everybody has their own lisp implementation. Some programmers' dogs and cats probably have their own lisp implementations as well. This is great, but too often I see people omit some of the obscure but critical features that make lisp uniquely wonderful. These include read macros like #. and backreferences, gensyms, and properly escaped symbol names. If you're going to waste everybody's time with yet another lisp, at least do it right damnit.

Another design goal is to avoid spurious novelties. Many others offering their own "shiny new" lisp dialects get carried away and change anything that strikes their fancy. These changes have no effect except incompatibility, and often make the language worse because the new design was not as carefully thought out and has not stood the test of time. For example, how does it help to remove backquote? One design changes the syntax of quote. Some systems disallow dotted lists. (I've seen all three of these.) What's the point? Implementers wave the banner of "simplicity", yet wedge in all kinds of weird implicit behaviors and extra evaluation rules.

Lately a surprising amount of FUD has been spread about proper tail recursion. I agree that not every language needs it, but I would like to refute the idea that it makes interpreters slow. Look at the "tiny" subdirectory or the "interpreter" branch to see a pure s-expr interpreter with efficient proper tail calls. All you have to do is keep track of whether you're in tail position, which can be done very cheaply. These interpreters are difficult to beat for speed, yet they have lexical scope and proper tail calls.

This project is mostly a matter of style. Look at the code and you'll understand.

This is what I do for fun, because it is the exact opposite of the kind of thing people will pay for: an obscure implementation of a programming language everybody hates."

HN discussion:

#Lisp #Scheme



@nitox You should also try tmux-cssh, then. It allows you to connect to several other machines simulatenously and in parallel:

Ever since I noticed the M key is just the W key flipped, using my Mac gives me the same grinding feeling as when I see terrible kerning.

Caffeine is a very poor substitute for motivation.

Fun fact: Australia doesn’t have a robust definition of what does and doesn’t technically qualify as a religion, we only have a few results from test cases.

Looking forward to the Satanists taking on Morrison’s Religious Freedom laws!

It is imperative that you find A Field Guide to Roadside Wildflowers At Full Speed.

It's freely available online.

You will understand why.

Wikipedia is a hot mess of inconsistency that still somehow manages to hold itself together ... just ...

That was an entertaining journey to arrive at an existential question - what is utmp for?

Wow. #Opera can't make money with its web browser anymore, so it's selling predatory loans to low-income people in Africa and then sending text messages to their contacts when they don't pay. :opera:

It's probably time to uninstall Opera if you use it!

All of your network can be simulated within the ruleset of a sufficiently advanced load-balancer ...

Show more

A bunch of technomancers in the fediverse. Keep it fairly clean please. This arcology is for all who wash up upon it's digital shore.