HNHacker News
TopNewBestAskShowJobs

technomancy

3,634 karma · joined February 21, 2007

Hacker-errant, design and sell DIY keyboard kits: http://atreus.technomancy.us

Coding in Clojure, Fennel, and Lua.

submissionscomments
technomancy··on Elite for Emacs
Not as much "moving away from Clojure" as "haven't needed to write any server-side code in a long time". I would still use Clojure for that, unless it was a socket-level cluster thing where BEAM would work better.

Lua is a great fit for this for several reasons. Mainly it's because I want to make it a game where you can learn to program, and teaching beginners Clojure is incredibly difficult. Lua's relentless simplicity really shines here. Teaching tables is a snap, and trying to teach lists, vectors, hashes, and structs in Racket makes my kids' heads swim. Secondly because the of in-game programming, you need sandboxing, and Lua has excellent facilities for this. And Lua's speed and access to the LÖVE game framework make it the best choice for games that I've found.

Lua has its problems, but in the context of games 90% of them can be summed up with "you had a nil where you didn't expect it" which is something Clojure is quite bad at too. I would say in some senses it's been liberating to work on a codebase that doesn't need to interact with the madness of the web, and being able to count my dependencies on one hand (and read through their sources exhaustively) is wonderful.

What were you trying to do on itch.io that didn't work?

technomancy··on Elite for Emacs
I'm working on a spaceflight game that features trading and can be operated from a text interface, though it features graphics by default. My vision is to be a bit more story-based than the procedurally-generated or MMO-type games would be, but it might be what you're looking for: https://technomancy.itch.io/bussard

It features programming as one of its core mechanics on top of the piloting features. I made a trailer for it here: https://p.hagelb.org/bussard-1.3.webm

My goal for the next beta is to make it so you can purchase an upgrade for your ship's computer in-game that would allow you to connect to it from an external program like Emacs over the nREPL protocol: https://gitlab.com/technomancy/jeejah You start the game without an autopilot routine, but eventually you find/write one, and at that point you can play from Emacs or Vim or the CLI or whatever. Right now the external connection only provides you with a REPL, but the protocol is extensible, and I plan to add features that would allow you to run more of a HUD-style REPL in your client of choice.

technomancy··on Elite for Emacs
Can you give an example from the code of how this shows the power of lisp? From reading the article it sounds like it's a port from the C version.
technomancy··on Facebook disabling messaging in its mobile web app to push people to Messenger
The other way to solve this is to set your birthday to an incorrect date; that way you don't have to feel bad about not saying thanks.
technomancy··on BBC Micro:bit computer now available to all for £13
No. The point is being able to do development live without needing to upload a new image every time you want to try something new.
technomancy··on BBC Micro:bit computer now available to all for £13
The point is you want to be able to program on the board rather than having it be useless without attaching it to a PC. For that you need both IO and an onboard compiler or interpreter.

MicroPython is right out; it would almost fit Lua, but as it is it looks like your only option for independent development would be Forth.

technomancy··on Out-Of-Box Exploitation: A Security Analysis of OEM Updaters
Using an OEM OS is the computing equivalent of "don't put that in your mouth; you don't know where it's been".
technomancy··on Thai government to MITM all internet communications
I live in Thailand; I'm extremely skeptical that it's going to happen. The most likely explanation is that a few powerful generals feel like this must happen and proudly announce their plans, and technical teams responsible for actually doing it feel too intimidated to explain to the generals why it's impossible, so they just agree to it hoping that the dictatorship will be out of power before the implementation could happen.

As someone from /r/Thailand put it, "I'm hoping incompetence and indifference would save the day once again, as it has many times in the past." They can't withdraw it now without losing face, but they can let it just wither and become forgotten over a few years.

technomancy··on Microscheme: scheme for the Arduino
There's a form of faux-garbage-collection: you can wrap any form in `free!` and the heap pointer will be reset when that form finishes: http://microscheme.org/documentation#memman

This would be awful for general-purpose programming, but on a device with only 2.5kb of RAM to begin with you can usually pre-allocate anything that needs to survive that reset. I use this in my keyboard firmware's outer loop: http://atreus.technomancy.us/firmware2

technomancy··on Jury in Oracle v. Google finds in Google's favour
I'm not so sure about that; I believe "it is right" implies the existence of a moral right. That may not have been the direct intent of the parent comment, but it definitely follows from that claim.
technomancy··on Coding without Google
I've been working on a game recently, (https://technomancy.itch.io/bussard) and I've been struck with how refreshingly simple and self-contained it can be compared to a web service. I can still count all my dependencies on one hand instead of pulling in a huge intertangled graph of them, and I nearly always find that when I run into problems, they are of my own making instead of being thrust upon me by 3rd parties.

Granted I need reference documentation for the engine (love2d in my case), and I occasionally consult the Lua stdlib documentation (which I get from apt-get), but that's about it.

technomancy··on Coding without Google
I think the difficulty of debugging just depends on the problem. If your problem is largely composing third-party libraries and services, then yes, it's extremely difficult to do when disconnected. But in my experience if it's mostly code you control, and you're iterating on the design and flow of the execution, then being online is mostly just a distraction.
technomancy··on Nix as OS X Package Manager
> just needs a better UX

Luckily guix is a better UX for nix. =)

technomancy··on How to become the sole owner of your PC [pdf]
Why would you switch to a system that relies on NDA-protected chips when there are free ones available like the BeagleBone?
technomancy··on Reason: A new interface to OCaml
Normally the easy answer is to turn off Javascript, but in this case it makes the whole thing completely fail to render. For a site that's just showing you some text.

Some days you just can't win.

technomancy··on Umberto Eco and His Legacy in Open-World Games
Well, speaking of Italians, Dante is another great example. Reading a translation of the comedy that attempts to preserve the meter and/or rhyme is completely different from reading a prose translation.
technomancy··on Cargo: predictable dependency management
Passwords are usually under the complexity threshold of copyrightability, but keypairs aren't.

But secrets can have many other kinds too, like accidentally publishing code which is under a restrictive license.

technomancy··on New GNU Emacs website
Weird; I've never needed to do anything more than "export TERM=xterm-256colors" provided I was using a high-color terminal emulator to begin with.
technomancy··on New GNU Emacs website
I used to be bothered by this, and then I realized for every thing I wanted to do in the terminal, 5 minutes of searching would usually find a superior UI to do the same task in an Emacs-native way that I could effortlessly customize, rebind keys, add hooks for, and rewrite functionality live. About the only exception I can think for this is htop; M-x proced does most of the same things but doesn't look as nice doing it.
technomancy··on Cargo: predictable dependency management
> If you publish secrets, it's not crates.io's responsibility to help you hide that mistake

If you publish secrets, you're causing crates.io to perform copyright violations. It's not just about helping you hide the mistake, but about helping to stop further violations.

You shouldn't need to resort to a formal DMCA request to stop copyright violations.

technomancy··on We asked 15,000 people how they're learning to program
I wonder how much of this is because they are simply new to the field. Front-end stuff is more immediate, and immediacy is appealing. Back-end stuff has you spending less time worrying about compatibility headaches and all the non-problem-solving rabbit trails, but if you haven't spent a lot of time programming, you might not realize this and just assume that the level of headaches doesn't vary much.
technomancy··on Why aren’t we using SSH for everything? (2015)
Apparently since the last time I checked, git actually includes a helper script that allows you to use `gpg-agent` to decrypt your creds in an analogous way to how `ssh-agent` works. It requires a bit of setup since for some reason it's disabled by default, and it's a bit more moving parts (GPG key plus username/password instead of a single keypair) but it's a lot better than it used to be.

I hope this pattern catches on for services other than git.

technomancy··on Why aren’t we using SSH for everything? (2015)
It's not as simple as you make it out to be. HTTPS git still has no consistent way to cache credentials, so you're stuck either keeping it in plaintext on disk or re-authenticating every time you push.

Even though client TLS certs are technically supported by a handful of services, there's nothing for HTTPS that matches the security and convenience of ssh-agent. It has a long way to go to catch up to where SSH was ten or fifteen years ago.

technomancy··on Why aren’t we using SSH for everything? (2015)
> leave you with no upsides.

Not even close.

While TLS technically supports client-side certs, all extant implementations of it are unbearably clunky to use, completely ignored by all vendors. Meanwhile the tooling around SSH keys (like ssh-agent) is seamlessly integrated with your OS and works so well that it's easy to forget it even exists.

Browser vendors completely dropped the ball on this; they dropped it so hard it continues to hurt even after all these years.

technomancy··on Ubuntu on Windows
> I find it especially offensive that ex-open source and ex-Linux users

The thing is, from an "open source" perspective, what they're doing is great and totally legit. From a free software perspective, it has a lot of potential to be suspicious and troubling. If all you care about is "the best technology; yay" rather than user freedoms, your concerns are moot.

technomancy··on Why Lisp is now an acceptable scripting language
Minor nit-pick; the terms here are backwards. Nearly all lisps support explicit partial evaluation, but not many support currying, which is implicit.
technomancy··on Why Lisp is now an acceptable scripting language
> With a Lisp you can evaluate your code in real time in your editor.

Technically there's nothing about Lisp that makes it uniquely suited for this; it's just that people developing tooling for most other languages have a tragic lack of imagination. Smalltalk, Forth, Factor, and to a degree Lua all support the same styles idiomatically, while Racket is a lisp, but it discourages this style.

technomancy··on The Immobile Masses: Why Traffic Is Awful and Public Transit Is Worse
Singapore's income taxes are low, but they tax newly purchased vehicles at significantly over 100%.
technomancy··on LuaJIT 2.0 intellectual property disclosure (2009)
Oh interesting. I heard that CloudFlare was going to take over, but that may just have been about "we will handle paying the salary of the right person once they are found".
technomancy··on Critical Software Update for Kindle E-Readers
I don't know if this is still true, but I read a number of years ago that the Kindle hardware was sold at under cost and subsidized by the "sales" of DRMed content. I've got an early-gen Kindle with no content actually purchased from Amazon on it; it's a really nice arrangement.
← PreviousPage 4 of 34Next →