Quantcast
Channel: [In]effective Theory
Browsing index pages (53 articles)

P = NP doesn't matter

For the last half-century, every practicing programmer has explored the space of efficient algorithms, trying to find ways to make computers be useful, faster. In the United States, there were about...

View Article


Wraith: A Bananagrams™ Variant

First, for those who haven't heard of Bananagrams: it's Scrabble without the board. At any time each person has an equal number of pieces as any other player, and the first player to finish using all...

View Article


Haskell functors versus "real" functors

Haskell's Functor type class is inspired by the notion of a functor from category theory, but expresses a rather more limited concept.A category, conceptually, is a set of "objects" that are linked by...

View Article

Autodetecting correct quote direction in TeX

\(\small\TeX\) annoyingly lacks the ability to automatically detect whether a straight quote (") should be rendered as a left quote (“) or a right quote (”). Instead, it treats straight quotes in the...

View Article

Restoring Clipping Region in R Graphics

R's default graphics package (bundled with all installations) is a powerful enough low-level tool, but it's often not immediately obvious how to accomplish certain ends. In particular, although most...

View Article


gron: a 500-line tron clone (OpenGL demo for go)

The impression one gets from reading the golang-nuts mailing list is that about half of all go code is tied up in web services, and the other half is re-implementations of JSON (usually not fully...

View Article

Contextual error reporting in Haskell

The conventional error-reporting mechanism in Haskell is using Either String as a monad. A successful operation will yield Right val, and if there is an error, Left err will be returned instead. This...

View Article

Switched to Hakyll

I've migrated this entire site to Hakyll, which (almost) entirely replaces the hacky mess of shell scripts that previously glued things together. Aside from an excuse to use haskell more, Hakyll's...

View Article


Nothing to hide: Why privacy matters

Q. Do you subscribe to any papers?A. Yes.Q. What papers?...A. I used to get a Cronaca Sovversiva.[Defense objects]COURT. What is your objection?DEFENSE. My objection is that the question is immaterial;...

View Article


Cold-boot attacks are overrated

Since the publication of Lest We Remember in 2008, "cold-boot attacks" where the attacker can read the RAM of a recently shut-down computer have been considered the bane of full-disk encryption (along...

View Article

Some kernel hacking: dumping physical memory

In the good old days, /dev/mem provided direct read/write access to physical memory on linux. This was a fun toy, but also enormously helpful for writers of rootkits, so it's since been restricted by...

View Article

Congressional Word Count

The congressional record - dating back to 1994 - is available for download from the government printing office, in both PDF form and HTML - not the pinnacle of machine-readability, but good enough to...

View Article

Trivial HTTP Proxy in Go

One nice aspect of Go's standard http library is that the asymmetry between the client and the server is kept to a minimum. For example the same Request object is used for both, with (nearly) identical...

View Article


Battery mode with custom systemd targets

Systemd's targets are essentially glorified runlevels: they're the chosen mechanism for easily grouping various services together, and succinctly describing the mode of operation of a system. Like all...

View Article

Visualizing audio hacks

The other day, an interesting hack came up on #archlinux:echo "main(i){for(i=0;;i++)putchar(((i*i>>8&46&i>>8))^i&i>>13);}" | gcc -x c - && ./a.out | aplay It's a...

View Article


Resizing a LUKS-encrypted partition

Since gparted does not support encryption, the resizing process for LUKS-encrypted partitions has to be completely manual. It looks scarier than it is, since the sizes of the partition, the encrypted...

View Article

Injecting code into a running program

This trick may not be widely applicable - it's rarely the case (at least in my experience) that it's too difficult or inconvenient to shut a program down, and its behaviour must be modified live....

View Article


Weechat isn't lightweight

Weechat is often billed as the not-so-fat cousin to irssi. I'm not entirely sure where people got the idea that irssi was bloated, but it's out there, and it creates a niche that weechat supposedly...

View Article

Quirk of resolv.conf

I'm jotting this down here so I don't forget it - I've been bit for the third time by this same not-quite-bug which is almost impossible to debug if you don't already know what's causing it.The DNS...

View Article

Linking raw data with C code

Generally speaking, the unix design philosophy dictates that one use external files for most resources (images, help files, etc...). This is good advice when possible, but it's sometimes just much...

View Article
Browsing index pages (53 articles)


Latest Images