<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title type="text">Asheeshworld</title>
<subtitle type="html"><![CDATA[

]]></subtitle>
<id>http://www.asheesh.org/index.atom</id>
<link rel="alternate" type="text/html" href="http://www.asheesh.org" />
<link rel="self" type="application/atom+xml" href="http://www.asheesh.org/index.atom" />


<author>
<name>Asheesh Laroia</name>
<uri>http://www.asheesh.org/index.atom</uri>
<email>asheeshworld++@asheesh.org</email>
</author>
<rights>http://creativecommons.org/licenses/by-sa/3.0/us/</rights>
<generator uri="http://pyblosxom.sourceforge.net/" version="1.4.3 01/10/2008">
PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008
</generator>

<updated>2011-12-26T22:21:15Z</updated>
<!-- icon?  logo?  -->

<entry>
<title type="html">Short key IDs are bad news (with OpenPGP and GNU Privacy Guard)
</title>
<category term="/note/debian" />
<id>http://www.asheesh.org/2011/12/26/short-key-ids-are-bad-news</id>
<updated>2011-12-26T22:21:15Z</updated>
<published>2011-12-26T22:21:15Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/debian/short-key-ids-are-bad-news.html" />
<content type="html">&lt;p&gt;&lt;b&gt;Summary&lt;/b&gt;: It is important that we (the Debian community that relies on OpenPGP through
GNU Privacy Guard) stop using short key IDs. There is no vulnerability in OpenPGP and GPG.
However, using short key IDs (like 0x70096AD1) is
fundementally insecure; it is easy to generate collisions for short key IDs.
We should &lt;i&gt;always use 64-bit&lt;/i&gt; (or longer) key IDs, like: 0x37E1C17570096AD1
or 0xEC4B033C70096AD1.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;TL;DR&lt;/b&gt;: This now gives two results: &lt;tt&gt;gpg --recv-key 70096AD1&lt;/tt&gt;
&lt;/p&gt;
&lt;h3 id=&quot;w_some-background-and-my-two-keys&quot;&gt;Some background, and my two keys&lt;/h3&gt;
&lt;p&gt;Years ago, I read
&lt;a href=&quot;http://www.debian-administration.org/users/dkg/weblog/48&quot;&gt;dkg&apos;s instructions&lt;/a&gt;
on migrating the Debian OpenPGP infrastructure. It told me that the time and
effort I had spent getting my key into the strong set wasn&apos;t as useful as I
thought it had been.
&lt;/p&gt;&lt;p&gt;I felt deflated. I had put in quite a bit of effort over the years to strongly-connect my
key to a variety of signatures, and I had helped people get their own keys into
the strong set this way. If I migrated off my old key and revoked it, I&apos;d be abandoning some
people for whom I was their only link into the strong set. And what fun it was
to first become part of the strong set! And all the eyebrows I raised when I told
people I was going meet up with people I met on a website called
&lt;a href=&quot;http://www.biglumber.com/&quot;&gt;Biglumber&lt;/a&gt;... I even made it my
&lt;a href=&quot;https://www.facebook.com/0x70096AD1&quot;&gt;Facebook.com user ID&lt;/a&gt;. So if I had to generate a
new key, I decided I had better really love the short key ID.
&lt;/p&gt;&lt;p&gt;But at that point,
I already felt pretty attached to the number 0x70096AD1. And I couldn&apos;t come up with
anything better. So that settled it: no key upgrade
until I had a new key whose ID is the same as my old key.
&lt;/p&gt;&lt;p&gt;That dream has become a reality. Search for my old key ID, and you get two keys!
&lt;pre&gt;$ gpg --keyserver pgp.mit.edu --recv-key 0x70096AD1
gpg: requesting key 70096AD1 from hkp server pgp.mit.edu
gpg: key 70096AD1: public key &quot;Asheesh Laroia &amp;lt;asheesh@asheesh.org&amp;gt;&quot; imported
gpg: key 70096AD1: public key &quot;Asheesh Laroia &amp;lt;asheesh@asheesh.org&amp;gt;&quot; imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 2
gpg:               imported: 2  (RSA: 1)
&lt;/pre&gt;
&lt;p&gt;I also saw it as an opportunity: I know that cryptography tools are tragically easy
to mis-use. The use of 32-bit key IDs is fundamentally incorrect -- too little entropy.
Maybe shocking people by creating two &quot;identical&quot; keys will help speed the transition
away from this mis-use.
&lt;/p&gt;
&lt;h3 id=&quot;w_a-neat-stunt-abusing-refresh-keys&quot;&gt;A neat stunt abusing --refresh-keys&lt;/h3&gt;
&lt;p&gt;Thanks to a GNU Privacy Guard bug, it is super easy to get my
new key. Let&apos;s say that, like many people, you only have my old key
on your workstation:
&lt;pre&gt;$ gpg --list-keys | grep 70096AD1
pub   1024D/70096AD1 2005-12-28
&lt;/pre&gt;
&lt;p&gt;Just ask GPG to refresh:
&lt;pre&gt;$ gpg --keyserver pgp.mit.edu --refresh-keys
gpg: refreshing 1 key from hkp://pgp.mit.edu
gpg: requesting key 70096AD1 from hkp server pgp.mit.edu
gpg: key 70096AD1: public key &quot;Asheesh Laroia &amp;lt;asheesh@asheesh.org&amp;gt;&quot; imported
gpg: key 70096AD1: &quot;Asheesh Laroia &amp;lt;asheesh@asheesh.org&amp;gt;&quot; not changed
gpg: Total number processed: 2
gpg:               imported: 1  (RSA: 1)
gpg:              unchanged: 1
gpg: no ultimately trusted keys found
&lt;/pre&gt;
&lt;p&gt;You can see that it set out to refresh just 1 key. It did that by querying
the keyserver for the &lt;i&gt;short ID&lt;/i&gt;. The keyserver provided two hits for that
query. In the end, GPG refreshes one key and actually &lt;i&gt;imports&lt;/i&gt; a new key
into the keyring!
&lt;/p&gt;&lt;p&gt;Now you have two:
&lt;pre&gt;$ gpg --list-keys | grep 70096AD1
pub   1024D/70096AD1 2005-12-28
pub   4096R/70096AD1 2011-03-11
&lt;/pre&gt;
&lt;p&gt;There is a
&lt;a href=&quot;https://bugs.g10code.com/gnupg/issue1340&quot;&gt;bug&lt;/a&gt; filed in GNU Privacy Guard about this.
It has a patch attached. There is, at the moment, no plan for a new release.
&lt;/p&gt;
&lt;h3 id=&quot;w_a-faster-attack-but-nothing-truly-new&quot;&gt;A faster attack, but nothing truly new&lt;/h3&gt;
&lt;p&gt;My friend &lt;a href=&quot;http://endeavour.zapto.org&quot;&gt;Venkatesh&lt;/a&gt; tells me there is an apocryphal old Perl script that
could be used to generate key ID collisions.
Here in the twenty-first century, l33t h4x0rz like Georgi Guninski are
&lt;a href=&quot;http://seclists.org/fulldisclosure/2011/Sep/207&quot;&gt;trying to create collisions&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;In May 2010, &quot;halfdog&quot; posted a note to the full-disclosure list that generates PGP keys 
with chosen short key IDs. I haven&apos;t benchmarked or tested that tool, but I have used a 
different tool (private for now) that can generate collisions in a similar fashion.
It takes about 3 hours to loop through all key IDs on a dinky little netbook.
&lt;/p&gt;&lt;p&gt;You don&apos;t have to use any of these tools. You can just rent time on an elastic
computing service or a botnet, or your own personal computer, and generate keys
until you have a match.
&lt;/p&gt;&lt;p&gt;I think that it&apos;s easy to under-estimate the seriousness of this problem: tools
like the &lt;a href=&quot;http://pgp.cs.uu.nl/&quot;&gt;PGP Key Pathfinder&lt;/a&gt; should be updated to only
accept 64-bit (or longer) key IDs if we want to trust their output.
&lt;/p&gt;
&lt;h3 id=&quot;w_my-offer-i-will-make-you-a-key&quot;&gt;My offer: I will make you a key&lt;/h3&gt;
&lt;p&gt;I&apos;ve been spending some time wondering: What sort of exciting demonstration
can I create to highlight that this is a real problem? Some ideas I&apos;ve had:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; Publish a private/public key pair whose key ID is the same as Phil Zimmerman&apos;s, original author of PGP
&lt;/li&gt;&lt;li&gt; Publish a private/public key pair whose key ID is the same as Werner Koch&apos;s, maintainer of GNU Privacy Guard
&lt;/li&gt;&lt;li&gt; Publish a set of public keys that mimic the entire PGP strong set, except where I control the private key of all these keys
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The last one would be extremely amusing, and would be a
hat-tip to some work discussed in Raph Levien&apos;s 
&lt;a href=&quot;http://video.google.com/videoplay?docid=-5092930485716426869&quot;&gt;Google Tech Talk about Advogato&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;For now, here is my offer: If you send me a request signed with a key in the strong
set, I will create a 4096-bit RSA public/private key pair whose 32-bit key ID is &lt;i&gt;one greater&lt;/i&gt;
than yours. So if you are 0x517DD4E4 I will generate 0x517DD4E5.
&lt;/p&gt;&lt;p&gt;I will post the keys here, along a note about who requested it, and instructions on how
to import them into your keyring. (Note: I will politely decline to create a new key whose 32-bit key ID would create a collision; 
apologies if your key ID is just one away from someone else&apos;s.)
&lt;/p&gt;&lt;p&gt;P.S. The prize for best sarcastic retort goes to Ian Jackson. He said, &quot;I should go and create a lot of keys with your key ID. I&apos;ll set the real name to &apos;Not Asheesh Laroia&apos; so everyone is totally clear about what is going on.&quot;
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">Learning baritone again (for the Russian Nonsemble)
</title>
<category term="/note/music" />
<id>http://www.asheesh.org/2011/12/26/russian-nonsemble</id>
<updated>2011-12-26T06:46:17Z</updated>
<published>2011-12-26T06:46:17Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/music/russian-nonsemble.html" />
<content type="html">&lt;p&gt;In fifth and sixth grade, I used to play the baritone horn. A few weekends ago,
I played a show with the Russian Nonsemble. Look for me in a blue shirt and tie:
&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/pub/image/music/img-photo-87130.jpg&quot; width=&quot;500&quot; height=&quot;373&quot; /&gt;
&lt;/p&gt;&lt;p&gt;When I joined the Brighton public school system in fifth grade, other students had been
playing musical instruments for a year. I tried a few different options, and I
settled on the baritone. Maybe I really liked the sound, or how buzzing works with
a mouthpiece and combines with the entire horn. Maybe I was suggestible and accepted
something that the band needed.
&lt;/p&gt;&lt;p&gt;I learned the instrument on bass clef, which was its own oddity. It was a little confusing
to use bass clef in band and treble clef in chorus, but I managed. (Maybe this exercise
taught me something about the concept of equivalence.)
&lt;/p&gt;&lt;p&gt;There is something relaxing about playing the baritone: I am not keeping
the melody. The tone quality I send out is not, at least in a fifth grade
band, make or break the performance. One downside is that, with the highly
repetitious lines, it can be easy to get lost.
&lt;/p&gt;&lt;p&gt;Early in the sixth grade, our band director asked for volunteers to learn
the French horn. Steve Marler picked it up for the musical challenge. I picked
it up because I was willing to fill an institutional need.
&lt;/p&gt;&lt;p&gt;It was a lot of fun to play French horn. Well, it was a challenge, at least.
Every single group performance setting I had for the French horn -- from
sixth grade through high school, through the Johns Hopkins concert band --
there was someone sitting next to me who was a full notch better at me.
It was disheartening, to be honest.
&lt;/p&gt;&lt;p&gt;I stopped playing horn somewhere in college. For a while I played mellophone
in the Johns Hopkins pep band, but that wound down eventually.
&lt;/p&gt;&lt;p&gt;About a year ago, my friend Irina invited me to be part of a band,
for which she lent me a baritone.
&lt;/p&gt;&lt;p&gt;Halfway through the concert you see above,
I began to do more than just read the music. I listened to the sound of the band
and looked at my bandmates, making &lt;i&gt;bom-pom&lt;/i&gt; sounds on the horn while bobbing
up and down with the rhythm of the song we were playing.
&lt;/p&gt;&lt;p&gt;Thanks to Jess Schumann for taking the picture!
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">Computer fraud and abuse by Universal Music Group
</title>
<category term="/note/corporations" />
<id>http://www.asheesh.org/2011/12/17/illegal-takedowns</id>
<updated>2011-12-17T22:48:32Z</updated>
<published>2011-12-17T22:48:32Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/corporations/illegal-takedowns.html" />
<content type="html">&lt;p&gt;It seems that Universal Music Group
willfully misrepresented its copyright interest and probably
violated its service contract with YouTube. By my understanding
of the Computer Fraud and Abuse Act, UMG likely took actions
that &lt;a href=&quot;http://ilt.eff.org/index.php/Computer_Fraud_and_Abuse_Act_%28CFAA%29&quot;&gt;exceed authorized access&lt;/a&gt;,
subjecting it to criminal prosecution. (I am just a computer enthusiast
and not a lawyer, so I welcome corrections from others.)
&lt;/p&gt;&lt;p&gt;The emerging details, reported by Wired.com&apos;s Threat Level blog,
are &lt;a href=&quot;http://www.wired.com/threatlevel/2011/12/youtube-universal-megaupload/&quot;&gt;as follows&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;YouTube said Friday that Universal Music abused the video-sharing site’s piracy filters when it employed them to take down a controversial video of celebrities and pop superstars singing and praising the notorious file-sharing service Megaupload.&lt;/blockquote&gt;
&lt;p&gt;In particular, Google created a system for antipiracy that is being abused
by UMG:
&lt;/p&gt;
&lt;blockquote&gt;“Our partners do not have the right to take down videos from YT unless they own the rights to them or they are live performances controlled through exclusive agreements with their artists, which is why we reinstated it,” Google-owned YouTube said.&lt;/blockquote&gt;
&lt;p&gt;I look forward to a speedy criminal prosecution of the employees
or board of Universal Music Group. If that is not feasible,
perhaps the organization itself should be
&lt;a href=&quot;http://www.asheesh.org/note/corporations/behind-bars-draft.html&quot;&gt;put behind bars&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;Even if Megaupload.com fails in its own lawsuit against UMG,
I eagerly await the criminal prosecution of UMG as in
&lt;a href=&quot;http://www.wired.com/threatlevel/2011/07/swartz-arrest/&quot;&gt;another case where Federal prosecutors had to get involved&lt;/a&gt;.
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">Twisted high scores
</title>
<category term="/note/software" />
<id>http://www.asheesh.org/2011/12/12/twisted-high-scores</id>
<updated>2011-12-12T07:44:56Z</updated>
<published>2011-12-12T07:44:56Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/software/twisted-high-scores.html" />
<content type="html">&lt;p&gt;Living in the Boston area, I&apos;ve had the chance to spend time with
the lovely maintainers of the &lt;a href=&quot;http://twistedmatrix.com/&quot;&gt;Twisted project&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;Twisted is an event-driven network programming framework in Python. It&apos;s also
a community of people for whom software is never good enough -- and they&apos;re right.
&lt;/p&gt;&lt;p&gt;I visited the &lt;a href=&quot;http://labs.twistedmatrix.com/2011/12/november-sprint-report.html&quot;&gt;Twisted November sprint&lt;/a&gt;
at the Smarterer.com office a few weeks ago and reviewed a ticket. So now I am
on the
&lt;a href=&quot;http://twistedmatrix.com/highscores/?time=2011-11-01&quot;&gt;Twisted high scores list&lt;/a&gt;
for November!
&lt;/p&gt;&lt;p&gt;It was one of the most rewarding short periods of time I&apos;ve ever spent
contributing to an open source project. I took someone&apos;s contribution
and turned it into a patch, and also gave some feedback. This counted as
reviewing a ticket, for which I was immediately and strongly socially
rewarded: J.P. (exarkun) turned  to me and say, &quot;Thanks for contributing
to Twisted. An IRC bot pinged me with a note saying my ticket review
was complete. And now I appear in the high scores list for November!
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">Vertical
</title>
<category term="/note/bike" />
<id>http://www.asheesh.org/2011/12/05/vertical</id>
<updated>2011-12-05T07:04:41Z</updated>
<published>2011-12-05T07:04:41Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/bike/vertical.html" />
<content type="html">&lt;p&gt;After the
&lt;a href=&quot;http://meetup.bostonpython.com/events/37948602/&quot;&gt;November Python Project Night&lt;/a&gt;,
&lt;a href=&quot;http://www.flickr.com/photos/paulproteus/6208418008/in/set-72157627810249912/&quot;&gt;Noah&lt;/a&gt;
and I unlocked our bicycles.
&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://asheesh.org.nyud.net/pub/image/bike/vertical.jpg&quot; width=&quot;600&quot; height=&quot;900&quot; /&gt;
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">The OOT Killer
</title>
<category term="/note/debian" />
<id>http://www.asheesh.org/2011/11/28/oot-killer</id>
<updated>2011-11-28T06:33:41Z</updated>
<published>2011-11-28T06:33:41Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/debian/oot-killer.html" />
<content type="html">&lt;p&gt;Commitments require care, and recently I have been suffering from the delusion
that making more commitments will make me more able to achieve them.
&lt;/p&gt;&lt;p&gt;When overcommit reaches a certain point, the OOT (out of time) killer comes and
reaps time from whatever it finds, often with disappointing consequences.
&lt;/p&gt;&lt;p&gt;(See also: &lt;a href=&quot;http://linux-mm.org/OOM_Killer&quot;&gt;OOM Killer&lt;/a&gt;.)
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">How To Put Corporations in Jail and Prison (draft)
</title>
<category term="/note/corporations" />
<id>http://www.asheesh.org/2011/11/10/behind-bars-draft</id>
<updated>2011-11-10T17:20:38Z</updated>
<published>2011-11-10T17:20:38Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/corporations/behind-bars-draft.html" />
<content type="html">&lt;p&gt;In the U.S., some crimes carry jail or prison terms for the persons who commit them. Some of the persons
who commit these crimes are so-called &quot;natural persons&quot; -- people like you and me. Some of them
are corporations. This brief essay explains how and why to apply prison sentences to these artificial persons.
&lt;/p&gt;&lt;p&gt;I am not a lawyer. I do live in a country with laws, and I worry that these &quot;artificial persons&quot; can skirt
the law by being structured to avoid jail time. So I propose this draft, and I am interested in feedback.
&lt;/p&gt;
&lt;h3 id=&quot;w_1-a-brief-summary-of-jail-and-prison&quot;&gt;1. A brief summary of jail and prison&lt;/h3&gt;
&lt;p&gt;First, let us review life for natural persons when they are convicted of a crime with a prison term.
Prisoners may find themselves in a minimum-security institution, where they are given some small
degree of autonomy, limited (but non-zero) access to communication systems like postal mail,
telephones, and in-person visits, and are put to work. Persons who commit violent crimes and constitute
a risk to other inmates may be incarcerated in a medium- or high-security facility; in these,
inmates are carefully tracked and intensive barriers and check-points prevent too-great movement.
&lt;/p&gt;&lt;p&gt;It can be disruptive for a person to find himself or herself behind bars, but it is a disruption
that the legal system is willing to make so that the public can enjoy a law-abiding society.
&lt;/p&gt;&lt;p&gt;Life in prisons is still &lt;i&gt;life&lt;/i&gt;: inmates may always eat, drink water, think to
themselves, and (as far as I know) make written notes to themselves. Many famous activists have spent
time in jail or prison and gone on to continue their careers. Prisoners in low-security
facilities may enjoy lots of communication with other persons, so long as it does not require
the use of communication technology.
&lt;/p&gt;&lt;p&gt;Persons spending time in prison may continue to own property outside of the prison.
Their ability to use it while incarcerated is minimal to nonexistent, but they may have bank accounts,
investments, or other financial instruments that appreciate in value.
&lt;/p&gt;
&lt;h3 id=&quot;w_2-how-the-structure-of-corporations-makes-law-enforcement-harder&quot;&gt;2. How the structure of corporations makes law enforcement harder&lt;/h3&gt;
&lt;p&gt;Now that we have a concept of what prison is like, let us carefully consider what it means to
be a corporation. Corporations are legal constructions, created to
achieve a specific end. They have a primary place of business where individual natural persons meet
to do work to help the corporation achieve those ends. Most corporations are created for the
private profit of their founders.
&lt;/p&gt;&lt;p&gt;The corporation is, fundamentally, a legally-approved
veil over the collective activity of individual persons.
This corporate veil limits the &lt;i&gt;financial&lt;/i&gt; liability for its Directors; if the corporation owes
rent on its property, for example, the Directors are not responsible personally for this debt.
Virtually all actions of corporations are about the transfer of money. The existence of
this structure is widely-considered a good, efficient thing.
&lt;/p&gt;&lt;p&gt;Some actions of a corporation go beyond the transfer of money; some actions are criminal.
At the moment, individual natural persons who commit crimes as part of their
duties to the corporation may find themselves in court and possibly in jail. This can
flow all the way up the chain to the Directors.
&lt;/p&gt;&lt;p&gt;But if an employee is asked by her manager to commit a crime for the private
inurement of the corporation, she is the one most at-risk for criminal proceedings.
If a corporation profits from check fraud, the fines may be smaller than the profits
earned.
&lt;/p&gt;&lt;p&gt;The incentives are mis-aligned: if an investor calculates that the financial punishment for
breaking the law will not hurt the corporation, he might urge the corporation to flout
the law. The result might be dramatically increased profits with a side-effect of
an employee or a Director in jail.
&lt;/p&gt;&lt;p&gt;There is an elegant solution to this problem: when an agent for the corporation commits a
crime with a jail term, the corporation should spend some time incarcerated as well.
This brings us to the final part: the mechanics of applying jail and prison terms to
corporations.
&lt;/p&gt;
&lt;h3 id=&quot;w_3-how-to-put-companies-behind-bars&quot;&gt;3. How to put companies behind bars&lt;/h3&gt;
&lt;p&gt;Rather than painstakingly identify the employees most responsible for lawbreaking
within a corporation, it may be simpler to put the corporation behind bars.
Practically speaking, this means moving the primary place of business of the
corporation to a jail or prison.
&lt;/p&gt;&lt;p&gt;In this regime, when a company is in jail, the employees must go to the jail
and subject themselves to the standard restrictions of the jail as they go about
their business. If the company has committed a violent offense (perhaps
the calculated murder of citizens who live near its place of toxic waste dumping),
then while employees are contributing their time to the corporation, they
would be subject to highly-secured perimeter fences and close supervision.
&lt;/p&gt;&lt;p&gt;Just like a natural person, the corporation can continue its life while in prison.
It may have limited access to communication technology, but (depending on
the security level of the facility) employees will be able to take notes
on paper, send checks in the mail, plan the corporation&apos;s future actions, and possibly
attend meetings with each other. If this is not enough to maintain the
corporation&apos;s activities, it should have considered that before committing
criminal acts.
&lt;/p&gt;&lt;p&gt;One downside to this system is that as corporations are increasingly convicted
of crimes, their employees could fill up our already-stretched prison capacity.
This, and other practical problems, are easy to address if you consider the
spirit of this proposal. The restrictions of prison life could be applied by
sending jail wardens to corporate headquarters, where employees are scrutinized
and restricted under the same rules as they would be in prison. The warden
can be responsible for ensuring limits on communication technology use are
enforced.
&lt;/p&gt;&lt;p&gt;It can be disruptive for a corporation to find itself
behind bars, but it is a disruption
that the legal system should be willing to make so that the public can enjoy a law-abiding society.
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">Work on important problems
</title>
<category term="/note/reflection" />
<id>http://www.asheesh.org/2011/11/03/important-problems</id>
<updated>2011-11-03T04:40:14Z</updated>
<published>2011-11-03T04:40:14Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/reflection/important-problems.html" />
<content type="html">&lt;p&gt;A friend pointed me to a
&lt;a href=&quot;http://www.cs.virginia.edu/~robins/YouAndYourResearch.html&quot;&gt;transcript&lt;/a&gt;
of Richard Hamming&apos;s motivational
speech, &quot;You and your research.&quot; In the speech, Hamming (the famous inventor of
the Hamming code, an early and vital error-correction algorithm) discusses points
that make a researcher generate &lt;i&gt;important&lt;/i&gt; results for the field. (&lt;strike&gt;I think it was Blake who sent me the link.&lt;/strike&gt; I seem to have no idea how I found it initially.)
&lt;/p&gt;&lt;p&gt;I&apos;ll now take a moment and mis-quote Hamming, pretending he&apos;s giving advice to activists rather
than scientists:
&lt;/p&gt;
&lt;blockquote&gt;
If you do not work on an important problem, it’s unlikely you’ll do important work. It’s
perfectly obvious. Great activists have thought through, in a careful way, a number of
important problems in their field, and they keep an eye on wondering how to attack
them. Let me warn you, ‘important problem’ must be phrased carefully. The three
outstanding problems in physics, in a certain sense, were never worked on while I was at
Bell Labs. By important I mean guaranteed a Nobel Prize and any sum of money you
want to mention. We didn’t work on (1) time travel, (2) teleportation, and (3) antigravity.
They are not important problems because we do not have an attack. It’s not the
consequence that makes a problem important, it is that you have a reasonable attack.
That is what makes a problem important. When I say that most activists don’t work on
important problems, I mean it in that sense. The average activist, so far as I can make
out, spends almost all his time working on problems which he believes will not be
important and he also doesn’t believe that they will lead to important problems.
&lt;/blockquote&gt;
&lt;p&gt;He tells great stories, and you should read the transcript. Here, however,
is a summary of his points:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; A handful of people do excellent science repeatedly. It does not boil down to pure luck (though luck does remain important). Courage and hard-work are huge factors.
&lt;/li&gt;&lt;li&gt; As you grow older, you will be tempted to only work on large problems. Instead, Shannon urges us to &quot;continue to plant the little acorns from which the mighty oak trees grow.&quot;
&lt;/li&gt;&lt;li&gt; Necessity is the mother of invention. When you have a resource constraint, you will be forced to address it, perhaps in a novel and generally-useful way.
&lt;/li&gt;&lt;li&gt; Be committed to your research question, not your current results. Take note of the places where your data disagree with your theory. You&apos;ll need those places later.
&lt;/li&gt;&lt;li&gt; When you see a good attack, drop everything and focus on it until you find out if it will work.
&lt;/li&gt;&lt;li&gt; If you work with your office as an open door, within a decade you will know where the field has moved-to in a way that closed-door workers will not.
&lt;/li&gt;&lt;li&gt; When solving a problem, consider how it can be &quot;characteristic of a class&quot; of problem rather than just one isolated problem.
&lt;/li&gt;&lt;li&gt; You must become good at presenting (&quot;selling&quot;) your work as well as your motivations.
&lt;/li&gt;&lt;li&gt; Avoid the personality defect of wanting total control. This prevents other people from helping you. Generally, learn how to use the system. That includes being willing to &lt;i&gt;appear to conform&lt;/i&gt;.
&lt;/li&gt;&lt;li&gt; Avoid the personality defect of excessive ego assertion. &quot;Which do you want to be? The person who changes the system or the person who does first−class science?&quot;
&lt;/li&gt;&lt;li&gt; Gain the personality boon of seeing the positive side of things, even constraints. Especially self-set constraints.
&lt;/li&gt;&lt;li&gt; Know thyself.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The Q&amp;A, and the full speech, get the blood pumping. &lt;a href=&quot;http://www.cs.virginia.edu/~robins/YouAndYourResearch.html&quot;&gt;Give it a read&lt;/a&gt;.
&lt;/p&gt;</content>
</entry>

<entry>
<title type="html">RFBP: Request for birthday present/package
</title>
<category term="/note/debian" />
<id>http://www.asheesh.org/2011/10/23/rfbp</id>
<updated>2011-10-23T23:55:19Z</updated>
<published>2011-10-23T23:55:19Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/debian/rfbp.html" />
<content type="html">&lt;p&gt;There is a program that I love: &lt;tt&gt;bb&lt;/tt&gt;.
&lt;/p&gt;&lt;p&gt;&lt;tt&gt;bb&lt;/tt&gt; is a demo of the famous ASCII Art library, aalib.
&lt;/p&gt;
&lt;center&gt;&lt;pre&gt;     dT8  8Tb     
    dT 8  8 Tb    
   dT  8  8  Tb   
&amp;lt;PROJECT&amp;gt;&amp;lt;PROJECT&amp;gt;
 dT    8  8    Tb 
dT     8  8     Tb
&lt;/pre&gt;
&lt;/center&gt;

&lt;tt&gt;bb&lt;/tt&gt; is a demo-scene-type program that shows how &lt;em&gt;awesome&lt;/em&gt;
automatic ASCII art is. The personalities of the people who made &lt;tt&gt;bb&lt;/tt&gt;
shine through. It&apos;s surely one of my favorite programs in Debian, up there
with alpine. It&apos;s been in Debian since 1998.

&lt;p&gt;&lt;tt&gt;bb&lt;/tt&gt; has a serious bug, however:
&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=123150&quot;&gt;BB&apos;s &quot;graphics&quot; freeze when music starts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&apos;s the issue.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;tt&gt;bb&lt;/tt&gt; uses libmikmod to play sound.
&lt;/li&gt;&lt;li&gt; Back in the twentieth century, many of us thought it would be cool to have applications play sound through a system service called &lt;a href=&quot;http://www.tux.org/~ricdude/EsounD.html&quot;&gt;EsounD&lt;/a&gt;. To enable that, the libmikmod maintainers added the ability for libmikmod to send audio to that daemon.
&lt;/li&gt;&lt;li&gt; libmikmod detects if your system uses esound, and if so, sends sound there by default.
&lt;/li&gt;&lt;li&gt; libmikmod&apos;s esound support is broken, and &lt;tt&gt;bb&lt;/tt&gt; half-crashes (as per #123150) when it gets used.
&lt;/li&gt;&lt;li&gt; Today, nearly everyone&apos;s sound output goes through pulseaudio, which supports ALSA as well as the old esound protocol for backwards-compatibility.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;So if your system (like most GNU/Linux systems) uses pulseaudio for sound, then
&lt;tt&gt;bb&lt;/tt&gt; is broken. That means every Ubuntu user and most desktop Debian users can&apos;t use it.&lt;/p&gt;
&lt;p&gt;There are a few possible fixes, depending on where you&apos;d want to solve the problem. If you just
want bb to run on your own machine, without recompiling anything, you can adjust pulseaudio&apos;s configuration
(in /etc/pulse/default.pa) to disable esound support. If you want to do that, just comment out this line:&lt;/p&gt;
&lt;pre&gt; load-module module-esound-protocol-unix&lt;/pre&gt;
&lt;p&gt;We could also possibly patch &lt;tt&gt;bb&lt;/tt&gt; so that it asks libmikmod not to use its esound &quot;support.&quot;&lt;/p&gt;
&lt;p&gt;I think the smarter thing to do is to adjust libmikmod. Since its esound support seems to be just plain broken,
it should be removed. At very least, it should not be the default when ALSA output is available. There
&lt;i&gt;is&lt;/i&gt; a new upstream release of libmikmod, maybe the esound output is fixed.&lt;/p&gt;
&lt;p&gt;In Debian, libmikmod is
&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628162&quot;&gt;orphaned&lt;/a&gt;.
When a package is orphaned,
it means that a new person must step in and &lt;i&gt;adopt&lt;/i&gt; the package.
Debian packages need ongoing care
and commitment to fix issues and make changes like this that benefit the users.&lt;/p&gt;
&lt;p&gt;In this case, you&apos;d need to understand some C and be willing to maintain a shared library.
Maintaining a library in Debian requires attention to detail, but it is quite doable. Since you would be adopting an existing package, most of the work is already done for you.
I would also be quite willing to answer questions. If you&apos;re not a Debian developer, I would happily sponsor uploads of this package
into Debian so that the fixes are part of the distribution.&lt;/p&gt;
&lt;p&gt;So: who will maintain libmikmod and fix &lt;tt&gt;bb&lt;/tt&gt;? Could it be you?&lt;/p&gt;
&lt;p&gt;It would make a &lt;a href=&quot;http://www.asheesh.org/note/event/2011-bday.html&quot;&gt;really great birthday present&lt;/a&gt;
if the amazing &lt;tt&gt;bb&lt;/tt&gt; program worked in the next Debian release. Leave a comment if you
have questions or are interested!&lt;/p&gt;
&lt;p&gt;P.S. In a pinch, I can be convinced to maintain libmikmod myself, but I think this is a great opportunity for someone new to Debian to make a big difference.&lt;/p&gt;
</content>
</entry>

<entry>
<title type="html">Herbert&apos;s Birthday is October 21
</title>
<category term="/note/event" />
<id>http://www.asheesh.org/2011/10/20/2011-bday</id>
<updated>2011-10-20T16:31:08Z</updated>
<published>2011-10-20T16:31:08Z</published>
<link rel="alternate" type="text/html" href="http://www.asheesh.org/note/event/2011-bday.html" />
<content type="html">&lt;p&gt;So if you want to come to 
&lt;a href=&quot;http://maps.google.com/maps?q=november,ma,us&quot;&gt;November&lt;/a&gt;
(91 Belmont St, #2, 02143) on Fri Oct 21, at 7:30 PM, there will be snacks and drinks.
&lt;/p&gt;&lt;p&gt;My beloved stuffed dog will be nine human years old, which is 
plenty old!
&lt;/p&gt;&lt;p&gt;If you bring things, potluck-style, that will make things super great. You
can show up without potluck-type things, too.
&lt;/p&gt;&lt;p&gt;Representative photos of Herbert:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.flickr.com/photos/skyfaller/20181995/&quot;&gt;A young Herbert&apos;s trip to the District of Columbia&lt;/a&gt; (look below the house)
&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.flickr.com/photos/keenduck/1414164219/&quot;&gt;A young Herbert&apos;s trip to Boston&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.flickr.com/photos/keenduck/1439028820/&quot;&gt;Herbert promotes vegetarianism on the quad at Hopkins&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.flickr.com/photos/joi/917308278/&quot;&gt;Romantic Herbert near the Bay&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.flickr.com/photos/rubin110/5155773147/&quot;&gt;Extreme San Francisco Herbert, 1.5y ago&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Herbert has no need for material posessions, so gifts will be roundly
rejected. Herbert and I are tourists in the dunya.
&lt;/p&gt;&lt;p&gt;Also, I will be showing a music video once per hour. Mostly R.E.M. with
maybe a sprinkling of They Might Be Giants. Bad Religion, too? Who knows.
&lt;/p&gt;&lt;p&gt;You are all quite invited to invite people I would like!
&lt;/p&gt;&lt;p&gt;Yours truly,
&lt;/p&gt;&lt;p&gt;-- Asheesh.
&lt;/p&gt;&lt;p&gt;P.S. Herbert&apos;s birthday is one day after mine.
&lt;/p&gt;&lt;p&gt;P.P.S. ZIP code matters!
&lt;/p&gt;</content>
</entry>
</feed>

