Latest inklings
"Stop SOPA Ireland" banner for non-WordPress users
If you’ve visted my site recently, you’ll have noticed the banner for Stop SOPA Ireland. There’s a banner you can use if your site runs on WordPress, but if, like me, you use something else, you’re out of luck.
<style type="text/css" media="screen">
#sopa_menubar {
display: block;
width: 100%;
background: black;
overflow: hidden;
padding: 0.75ex 0;
}
#sopa_menubar ul, #sopa_menubar li {
margin: 0;
padding: 0;
list-style: none;
}
#sopa_menubar a {
color: silver;
text-decoration: none;
float: right;
margin: 0 2ex;
display: block;
padding: 0.5ex 0;
}
#sopa_menubar li.sopa_title {
float: left;
margin: 0 2ex;
padding: 0.5ex 0;
}
#sopa_menubar a.sopa_sign {
background: #5F9B3F no-repeat;
border-radius: 20px;
color: white;
padding: 0.5ex 3ex;
box-shadow: inset 0 0 0 1px RGBA(0, 0, 0, 0.3),
inset 0 0 0 2px RGBA(255, 255, 255, 0.2);
background-image: -webkit-linear-gradient(top, #74b74a 0%, #5f9b3f 100%);
background-image: linear-gradient(top, #74b74a 0%, #5f9b3f 100%);
}
#sopa_menubar a.sopa_sign strong {
text-shadow: 1px 1px 1px RGBA(0, 0, 0, 0.5);
}
</style>
<div id="sopa_menubar">
<ul>
<li class="sopa_title"><strong>I SUPPORT STOP SOPA IRELAND!</strong></li>
<li><a class="sopa_sign" href="http://stopsopaireland.com/"><strong>Sign the petition</strong></a></li>
<li><a href="http://wordpress.org/extend/plugins/stop-sopa-ireland/">Download the menubar</a></li>
<li><a href="http://www.tjmcintyre.com/2012/01/irelands-sopa-faq.html">FAQ</a></li>
</ul>
</div>
Throw that in the top of your page under the <head> tag, and you should be good to go.
It’s not perfect, and your pre-existing CSS rules may interfere with it, but, with luck it should work just fine.
Keeping this here for future reference for the next time I go to FOSDEM. This time around, I’m staying at Scandic Grand Place, which was recommended to me by a trustworthy source, and I’m told it has decent Wi-Fi to boot!
Diagrams summarising the relationships in analysis and probability. The ones on distributions and conjugate priors are probably the most immediately useful to me, but there’s lot of good things there.
Implements consistent hashing in Python (using md5 as hashing function).
Documentation for RFC authors
DCHK- and IRIS-related links
Canabalt for the C64. I was wondering how feasible this would be, and my guesses were pretty accurate: sacrifice smooth scrolling at lower speeds and ditch parallax. Otherwise, it’s near perfect! My only complaint is that I know it’s possible for the SID to do a more faithful rendition of the, admittedly bloody good, rendition in the conversion.
Update (2012-01-14): Listening to it again, I think I know why it’s not quite right. It sounds like it’s using just two channels, which would explain why it’s not quite as faithful as it might be. Crushing that much into two channels is far from trivial!
And here’s the talk’s site too, with slides and the like.
A cubic kite that’s part of part of an art installation. Here’s what the creator has to say:
It’s a trilogy! No actually the kite in this video is one of three kites which are now part of an installation at Castle Quay in Jersey. There are two large kites (like the one in the video) and a smaller kite. We filmed the smaller kite flying, but it didn’t make the final cut.
A seriously cool HTML presentation framework!
Transmitting data from memory to CPU (and back) faster than a plain memcpy()
I don’t quite believe the speed claim, but it looks like a decent alternative to lzo.
This package implements a general-purpose JavaScript parser/compressor/beautifier toolkit. It is developed on NodeJS, but it should work on any JavaScript platform supporting the CommonJS module system (and if your platform of choice doesn’t support CommonJS, you can easily implement it, or discard the exports.* lines from UglifyJS sources).
The tokenizer/parser generates an abstract syntax tree from JS code. You can then traverse the AST to learn more about the code, or do various manipulations on it.
[P]erhaps the most valuable effect of TDD is just a side effect of upfront unit testing: it relieves schedule pressure and allows teams to delay the point at which code can be called done.
TL;DR: If you’ve private methods in your code, ask yourself if you might be violating the single responsibility principle. If you are, factor them out into a separate class; if you’re not, then why are they hidden?
I don’t currently have any need for vector clocks, but there’s a monolithic system in work I’ll be breaking up some time in the new year, and yeah…
Event-based programming has been highly touted in recent years as the best way to write highly concurrent applications. Having worked on several of these systems, we now believe this approach to be a mistake. Specifically, we believe that threads can achieve all of the strengths of events, including support for high concurrency, low overhead, and a simple concurrency model. Moreover, we argue that threads allow a simpler and more natural programming style.
We examine the claimed strengths of events over threads and show that the weaknesses of threads are artifacts of specific threading implementations and not inherent to the threading paradigm. As evidence, we present a user-level thread package that scales to 100,000 threads and achieves excellent performance in a web server. We also refine the duality argument of Lauer and Needham, which implies that good implementations of thread systems and event systems will have similar performance. Finally, we argue that compiler support for thread systems is a fruitful area for future research. It is a mistake to attempt high concurrency without help from the compiler, and we discuss several enhancements that are enabled by relatively simple compiler changes.
I’ve always thought this paper had a somewhat deceptive title.
If we think about what makes science work; effective communication, continual testing and refinement, public criticism of claims and ideas; the things that make up good science, and mean that I had a laptop to write this talk on this morning, that meant the train and taxi I caught actually run, that, more seriously a significant portion of the people in this room did not in fact die in childhood. If we look at these things then we see a very strong correspondence with good practice in software development. High quality and useful documentation is key to good software libraries. You can be as open source as you like but if no-one can understand your code they’re not going to use it. Controls, positive and negative, statistical and analytical are basically unit tests. Critique of any experimental result comes down to asking whether each aspect of the experiment is behaving the way it should, has each process been tested that a standard input gives the expected output. In a very real sense experiment is an API layer we use to interact with the underlying principles of nature.
Good stuff, and it mentions dexy!
Promises to be less horrible and more pythonic than imaplib. Might be worth a look.
imaplib is probably one of the most horrible and inscrutable parts of the Python standard libraries, not least because IMAP itself is horrible and inscrutable, if very, very useful. This will (probably) help me work with it.
On this page you will find on display a number of mini languages which demonstrate various techniques in design and implementation of programming languages. The languages are implemented in Objective Caml.
[…]
The languages are not meant to compete in speed or complexity with their bigger cousins from the real world. On the contrary, they are deliberately very simple, as each language introduces only one or two new basic ideas. You should find the source code useful if you want to learn how things are done.
I stumbled across this when I was looking for information on Levy’s call-by-push-value, but there’s many other interesting toy interpreters on the page too.
I don’t have one, but it’d be cool if I did!
There are some nice recipes in there.
Nice compendium of various forms of fallacious reasoning based off of the misuse of words.
- I have a flawed and incomplete understanding of what it feels like to work for me.
- My success—and that of my people—depends largely on being the master of obvious and mundane things, not on magical, obscure, or breakthrough ideas or methods.
- Having ambitious and well-defined goals is important, but it is useless to think about them much. My job is to focus on the small wins that enable my people to make a little progress every day.
- One of the most important, and most difficult, parts of my job is to strike the delicate balance between being too assertive and not assertive enough.
- My job is to serve as a human shield, to protect my people from external intrusions, distractions, and idiocy of every stripe—and to avoid imposing my own idiocy on them as well.
- I strive to be confident enough to convince people that I am in charge, but humble enough to realize that I am often going to be wrong.
- I aim to fight as if I am right, and listen as if I am wrong—and to teach my people to do the same thing.
- One of the best tests of my leadership—and my organization—is “what happens after people make a mistake?”
- Innovation is crucial to every team and organization. So my job is to encourage my people to generate and test all kinds of new ideas. But it is also my job to help them kill off all the bad ideas we generate, and most of the good ideas, too.
- Bad is stronger than good. It is more important to eliminate the negative than to accentuate the positive.
- How I do things is as important as what I do.
- Because I wield power over others, I am at great risk of acting like an insensitive jerk—and not realizing it.
I know I’d fail on many if not all of these, but they’re all properties I’d like to see in any boss of mine.