What code has stood out to you for being elegant and efficient? Why or why not?
It was, IIRC, only 3 C++ classes and just a few hundred lines of code. It outsourced much of the distribution, task running, and disk-access tasks to other Google infrastructure, and only focused on running the computation, collecting results for each key, and distributing to the reducers.
The current (as of ~2012, so not that current anymore) version of MapReduce is much faster and more reliable, but there's a certain elegance to starting a trillion-dollar industry with a few hundred lines of code.
There was another doozy, also by Jeff Dean, in the current (again, as of 2012) MapReduce code. It was an external sorting algorithm, and like most external sorts, it worked by writing a bunch of whole-machine-RAM sized temporary files and then performing an N-way merge. But how did it sort the machine's RAM? Using the STL qsort() function, of course! But how do you sort ~64GB of data efficiently using a standard-library function? He'd written a custom comparator that compared whole records at a time, using IIRC compiler intrinsics that compiled down into SIMD instructions and did some sort of Duff's-Device like unrolling to account for varying key lengths. It was a very clever mix of stock standard library functions with highly-optimized, specialized code.
[1] Think I read it in the Python Cookbook, 2nd Edition, which is a very good book, BTW.
I think quite a few languages adopted it as their default sort.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
A lot of other code he writes as well.
It's not overly clever, but it's incredibly clear and easy to understand.
Perhaps they just followed in the footsteps of the masters, but whatever the reason, the code is, in opinion, incredibly nice to work with.
[1] http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-...
[2] https://github.com/id-Software/DOOM-3/blob/master/neo/game/a...
It looks like Github doesn't explicitly set tab-size so it defaults to 8. 4 seems to work better.
[1]: http://stackoverflow.com/questions/8833953/how-to-change-tab...
[2]: https://github.com/id-Software/DOOM-3/blob/master/neo/game/a...
That's really an example of how arbitrary human thought processes are. When you release the constraint that your code has to have some human-comprehensible analog, you might arrive at interesting results.
Shifting an IEEE754 floating point number does not have that effect.[0] The fact that it doesn't do that is the source of the "mystery" of fast inverse square root.
[0] https://gist.github.com/jessedhillon/386fa964e822e529f6c1
Merge sorted iterables using min heap:
def merge(*iterables):
'''Merge multiple sorted inputs into a single sorted output.
>>> list(merge([1,3,5,7], [0,2,4,8], [5,10,15,20], [], [25]))
[0, 1, 2, 3, 4, 5, 5, 7, 8, 10, 15, 20, 25]
'''
_heappop, _heapreplace, _StopIteration = heappop, heapreplace, StopIteration
_len = len
h = []
h_append = h.append
for itnum, it in enumerate(map(iter, iterables)):
try:
next = it.next
h_append([next(), itnum, next])
except _StopIteration:
pass
heapify(h)
while _len(h) > 1:
try:
while 1:
v, itnum, next = s = h[0]
yield v
s[0] = next() # raises StopIteration when exhausted
_heapreplace(h, s) # restore heap condition
except _StopIteration:
_heappop(h) # remove empty iterator
if h:
# fast case when only a single iterator remains
v, itnum, next = h[0]
yield v
for v in next.__self__:
yield v
If I'm not wrong, this is written by Raymond Hettinger and it's always a pleasure to read/use his code. while (*p++ = *q++);The original source code was solid and well documented in the parts I’ve seen, but the remarkable thing to me is the way they distribute it: it comes as a single ANSI C file and a single matching header, which they refer to as the “amalgamation”. It therefore works just about anywhere, has no packaging or dependency hell issues, can be be incorporated into any build process in moments, and can be statically linked and fully optimised.
x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 );
// what the fuck?
y = * ( float * ) &i;Specifically, the way it manages traces (lj_trace.c, lj_record.c) is really elegant. It's not much code, but it's the best available tracing JIT compiler and manages traces quite elegantly IMO.
Mike Pall is legitimately a genius.
A second choice would not be so much code, but an algorithm: Thompson constructions for regular expressions.
factorial 0 = 1
factorial n = n * factorial (n - 1)
one of my favorite intermediate recursive function is powerset
A truly elegant solution to state management.
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xsSymfony is clean and modular but because of its scope not as Elegant, the code is excellent its just very large and does a lot of things.
My favorite Erlang program
21 Nov 2013
The other day I got a mail from Dean Galvin from Rowan
University. Dean was doing an Erlang project so he asked
“What example program would best exemplify Erlang”.
...
The Universal Server
Normally servers do something. An HTTP server responds to HTTP requests
and FTP server responds to FTP request and so on. But what about a Universal
Server?
surely we can generalize the idea of a server and make a universal server that
which we can later tell to become a specific sever.
Here’s my universal server:
universal_server() ->
receive
{become, F} ->
F()
end.
...then I set up a gossip algorithm to flood the network with become messages.
Then I had an empty network that in a few seconds would become anything
I wanted it to do.
a process in erlang, is nothing but a tail-recursive function. the moment it stops being so - it dies. so here it morphes into F; which can be passed in.more at http://joearms.github.io/2013/11/21/My-favorite-erlang-progr...
Unsurprisingly, these were games:
1) A C64 "SnakeByte-like" game, whose exact name I forgot. It was written entirely in BASIC 2.0 (so you could list and read the source code), and with me having no C64 manual, and no English, it was a true revelation. So much fun and beauty emerging from such a concise, approachable program!
2) An ancient five-in-a-row implementation, I think in BASIC again or maybe Pascal. I remember the shock after seeing how simple the code was, compared to its (surprisingly good) playing strength and speed. My github user name, "piskvorky", is an echo of this old experience :-)
The underlying appeal seems to be a combination of simple, elegant rules giving rise to complex and fun behaviour. That, to me, is elegance.
http://www.worldofbooks.com/catalog/product/view/id/2366045/...
https://github.com/0intro/plan9
> A Professor of Computer Science gave a paper on how he uses Linux to teach his undergraduates about operating systems. Someone in the audience asked 'why use Linux rather than Plan 9?' and the professor answered: Plan 9 looks like it was written by experts; Linux looks like something my students could aspire to write.
But see also the HN thread :
Code which every programmer must read before dying
[1] https://en.wikipedia.org/wiki/SSH_Communications_Security
append_dl(A - B, B - C, A - C).Well, not the most elegant, but a very elegant piece of code, solves the Towers of Hanoi puzzle in a few ingenious lines (Python as shown):
def printMove(disk,src,dest):
print("Move disk %d from %s to %s" % (disk,src,dest))
def moveDisk(disk,src, dest, using):
if disk >= 1:
moveDisk(disk-1,src,using,dest)
printMove(disk,src,dest)
moveDisk(disk-1,using,dest,src)
count = 3
moveDisk(count,'A','B','C')
Result: Move disk 1 from A to B
Move disk 2 from A to C
Move disk 1 from B to C
Move disk 3 from A to B
Move disk 1 from C to A
Move disk 2 from C to B
Move disk 1 from A to BMuch of the NetBSD code base.
Pick a hack by Oleg Kiselyov.
The Commodore KERNAL.
Probably not that efficient in terms of raw CPU grunt though...
imul 0x01010101Code is a tool that is used to solve problems. Sometimes the most elegant solution to a problem doesn't involve writing code, but involves examining a business process and changing the work flow a bit to avoid needing to code something...or rewording an item in the user interface so that certain code isn't anymore needed.
Sometimes rather than being a drone and just churning out whatever code you're told, the bravest and most elegant solution to a problem is figuring out a way to avoid it altogether.
This is the hardworking lazy programmer's most elegant code.