Lately, I've been
wasting spending time doing code golf at the (very informal) Anarchy Golf server.
I don't claim to be any sort of expert on the topic, but here are some recent entries I've made, explained.
For those not
in the know, the goal in code golf is to write the shortest possible program in language X that accomplishes a task Y.
The golf server has a set of test inputs, and your program needs to produce output matching the corresponding reference outputs in order to be accepted.
I was recently talked into taking on the role of the negligent MediaWiki administrator for the esoteric programming languages wiki. As a consequence, I have now a local copy of the XML dump of the wiki contents (that anyone can download). To celebrate Easter in the traditional manner, then, I've spent some time computing statistics of the link graph of the wiki.
Recently, there was some idle discussion on #esoteric on the topic of reserved identifiers in C and POSIX. The discussion further progressed to a thought experiment on whether it would be possible to write useful programs in C if the standard (or POSIX) reserved all identifiers, i.e., using only identifiers defined by the standard, in a legal manner.
The following program is a rudimentary brainfuck (sans input) interpreter that is at least mostly valid C, yet uses no user-defined identifiers (after preprocessing).
This is a gamified extension of the x86 opcode mnemonic generator. Playing should, hopefully, be self-explanatory.
| tags: photo
As a sequel to part 1, let's look at more... alternative ways of rendering a composite image.
Have you ever wondered how Intel comes up with such high-quality mnemonics as
VPCLMULHQLQDQ, and many more besides?
Well, wonder no more!
Here is an entirely automatic generator for you to make as many new opcodes as you please.
| tags: photo
Continuing on the fringes of photography, here are some initial results from an experiment involving long-term time-lapse photos.
To summarize, I've taken (with a phone) a picture of the Aalto University main building, from two different angles, (almost) every morning when arriving at work. So far, there are approximately 28 pictures from both angles, from 2014-02-11 to 2014-03-25. I'm still collecting more, and thinking about how to post-process the images, but here are some quick blends.
Quite some time ago (late 2011) I got sufficiently bored to poke and prod the firmware of a ZTE ZXDSL 931WIIA brand VDSL2 device, primarily to find out if it had a usable telnet interface and/or a convenient way to run arbitrary code. I always meant to write up a description of what was hiding under this particular rock, but never got around to. Well, here we (belatedly) are.
Most things in the following are likely to be — more or less — particular to the exact model and firmware version (
ZXDSL931WIIA_ElisaV2.8.2a_Z40_FI) I have.
The model is probably discontinued by now, but perhaps the illustrated principles may be helpful for someone.
If you still have one, don't try any of this at home if you're very attached to the device.
Finally, the approach taken is a very "manual" one (GNU binutils, dd, etc.), and more intelligent tools could well make it simpler.
tl;dr? There is a telnet interface (in this version), with hardcoded ZTE "debugging" username:password pairs, allowing for full root shell access.
| tags: photo
Not really a sequel of Adventures in Macroland, Part 1 but... here's a macroSD card. (In other words, just got an IR remote for the camera, for shake-free shutter, and was itching to test it out.)
| tags: photo
Having recently come into possession of a DSLR, and with the weather being like this (i.e., wet), I've been thinking up what kind of photos I could take, at home, that I couldn't have taken with the old non-interchangeable lens camera. One such category is macrophotography with a reversed lens mounted in front of a regular one.
| tags: web
After a long time of sporadic idle thinking about it, it is finally time to reorganize this spectacular web presence. The previous hierachical organization of stuff was p. arbitrary, and anyway there's not that much content in here, so I've chosen to go with a chronological ordering combined with a flat set of tags. Since the end result bears some facial similarity to (sigh) "a blog", and I can't think of a better word, I'll call it that. Just don't let that lead you to expect regular (or irregular) updates more than, say, once a year.
Regarding the existing content, I've shamelessly mangled them into "blog posts", complete with faked-in approximate dates of creation (or last update). This is certainly not a cheap attempt to make it look like I'd've been keeping a blog for a while now.