<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>whose blog? mine.</description><title>weekends are for leisure</title><generator>Tumblr (3.0; @alanszlosek)</generator><link>http://blog.alanszlosek.com/</link><item><title>It Starts with Florida</title><description>&lt;p&gt;Just read the Nov/Dev 2011 Audobon magazine article, &lt;a href="http://www.audubonmagazine.org/articles/conservation/life-support"&gt;Life Support&lt;/a&gt;, about the improving state of Everglades since the author&amp;#8217;s previous visit 10 years ago. I won&amp;#8217;t go into the details of the article. Nor will I pretend to have a solution for that region. However, the article conjured up some environmentally-related memories from growing up in Florida, so here goes:&lt;/p&gt;

&lt;p&gt;As a child I was frequently puzzled by the fact that nobody knew exactly what to do with their old engine oil. Most people I knew dumped it in some far-away back corner of their property. They&amp;#8217;d even joke about it probably not being the best thing to do, but they&amp;#8217;d then comment on the low quantity and low frequency. And of course, I&amp;#8217;ve done the same on many occasions. After all, I was in charge of mowing the lawn, which necessitate oil changes and removal of old gasoline from the previous season. I&amp;#8217;d dump it reluctantly, because there didn&amp;#8217;t seem to exist any alternative.&lt;/p&gt;

&lt;p&gt;In 2001, when I bought my first vehicle I began to change my own oil. While purchasing oil and a filter I asked an employee at Discount Auto Parts about used oil. He told me there was a large blue container in the back that I could dump it in. Finally!&lt;/p&gt;

&lt;p&gt;Truth be told, I have no clue what engine oil really does to the soil, or the organisms living in the soil, or the water table below. But that doesn&amp;#8217;t matter. The possibility never sat well with me. I was just happy I didn&amp;#8217;t have to play the cognitive dissonance game with myself. No more wanting to care about the environment while potentially damaging it and then deciding I&amp;#8217;m not that big of a hippie after all. That sort of behavior (mental gymnastics) doesn&amp;#8217;t help anybody. Moving on &amp;#8230;&lt;/p&gt;

&lt;p&gt;A few years after high school I saw a classmate who&amp;#8217;d been living in a larger city after college. She had a job with some sort of environmental consultant. The news of that made me happy, but the way she described her job ruined my mood. I&amp;#8217;m paraphrasing, but I recall her describing it as &amp;#8220;making sure people get to use their land in the way they want&amp;#8221;. I&amp;#8217;m not sure whether my face showed my disappointment, but I felt horrible nonetheless.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s so much danger in letting everyone have free-reign over their land. A piece of property comes with plants and animals that depend on it, in numbers hard to comprehend. The world is complex, and it&amp;#8217;s at our mercy. Not enough of us are considerate.&lt;/p&gt;

&lt;p&gt;However, property-rights would be a lot easier to debate about if it weren&amp;#8217;t for these problems:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;It&amp;#8217;s hard to educate or inform others without being abrasive&lt;/li&gt;
&lt;li&gt;It&amp;#8217;s hard to suppress the desire to stand your ground when another person suggests you might be in the wrong&lt;/li&gt;
&lt;li&gt;It&amp;#8217;s hard to make a person care&lt;/li&gt;
&lt;li&gt;As humans we often think we&amp;#8217;re the most important things on the earth, even though we&amp;#8217;re not endangered in any way (but from ourselves)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;We&amp;#8217;d make much more progress if these four items weren&amp;#8217;t such huge barriers.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/21506665546</link><guid>http://blog.alanszlosek.com/post/21506665546</guid><pubDate>Sat, 21 Apr 2012 10:08:00 -0700</pubDate><category>apathy</category><category>audobon</category><category>florida</category><category>nature</category><category>environment</category><category>oil</category></item><item><title>Tag stripping not sufficient to prevent JavaScript injections</title><description>&lt;p&gt;In the PHP world, solely relying upon PHP&amp;#8217;s strip_tags() function to protect your web application from JavaScript injections is a bad idea. If you do, you may be vulnerable in even the most recent browsers (I tested in Chrome 17.0.963.83, Firefox 9.0.1 and Internet Explorer 9). There may be parallels in other languages too, so beware.&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll be vulnerable if the following are true:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;You&amp;#8217;ve got a webapp that accepts user input&lt;/li&gt;
&lt;li&gt;You use strip_tags() or similar to sanitize fields&lt;/li&gt;
&lt;li&gt;You don&amp;#8217;t explicitly remove less-than or greater-than characters from those fields (PHP&amp;#8217;s strip_tags won&amp;#8217;t remove a partial &amp;#8220;&amp;lt;script&amp;#8221; tag)&lt;/li&gt;
&lt;li&gt;Values from two or more of these fields are printed close to each other in the output HTML, with little or no markup between them&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The fourth item is tricky &amp;#8230; The markup between the field values must not contain any quotes (the quotes would prematurely close the script tag injection attempt). In other words, it&amp;#8217;s possible for an opening SCRIPT tag to be constructed using values from two subsequent user-input fields.&lt;/p&gt;

&lt;p&gt;Granted, the vulnerability only arises if markup is formatted in a very specific way, but it&amp;#8217;s worth taking another look at your code. See this gist with &lt;a href="https://gist.github.com/2230435"&gt;example HTML&lt;/a&gt; for what it looks like to your browser.&lt;/p&gt;

&lt;p&gt;I submitted a &lt;a href="http://code.google.com/p/chromium/issues/detail?id=120672"&gt;Chromium bug report&lt;/a&gt;, but it&amp;#8217;s something they&amp;#8217;re not interested in fixing.&lt;/p&gt;

&lt;p&gt;Guess we&amp;#8217;re on our own.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/20077489479</link><guid>http://blog.alanszlosek.com/post/20077489479</guid><pubDate>Wed, 28 Mar 2012 13:58:00 -0700</pubDate><category>programming</category><category>javascript injection</category></item><item><title>How to GitHub: Fork, Branch, Track, Squash and Pull Request</title><description>&lt;a href="http://gun.io/blog/how-to-github-fork-branch-and-pull-request/"&gt;How to GitHub: Fork, Branch, Track, Squash and Pull Request&lt;/a&gt;: &lt;p&gt;Oh thank god! Branching I understood, but was clueless when it came to pushing up a specific branch.&lt;/p&gt;

&lt;p&gt;Rebasing too … reminds me of how we badly need a separate dev environment at work. Ugh.&lt;/p&gt;

&lt;p&gt;In all, a wonderful tutorial that helps you play along with others while programming.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/20050064999</link><guid>http://blog.alanszlosek.com/post/20050064999</guid><pubDate>Tue, 27 Mar 2012 21:36:00 -0700</pubDate><category>git</category><category>github</category><category>programming</category></item><item><title>Why French Parents Are Superior by Pamela Druckerman - WSJ.com</title><description>&lt;a href="http://online.wsj.com/article/SB10001424052970204740904577196931457473816.html"&gt;Why French Parents Are Superior by Pamela Druckerman - WSJ.com&lt;/a&gt;: &lt;p&gt;No, I’m far from having kids, but this was insightful nonetheless. Some noteworthy paragraphs:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;One of the keys to this education is the simple act of learning how to wait. It is why the French babies I meet mostly sleep through the night from two or three months old. Their parents don’t pick them up the second they start crying, allowing the babies to learn how to fall back asleep. It is also why French toddlers will sit happily at a restaurant. Rather than snacking all day like American children, they mostly have to wait until mealtime to eat. (French kids consistently have three meals a day and one snack around 4 p.m.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And (Pauline is the child):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;When Pauline tried to interrupt our conversation, Delphine said, “Just wait two minutes, my little one. I’m in the middle of talking.” It was both very polite and very firm. I was struck both by how sweetly Delphine said it and by how certain she seemed that Pauline would obey her. Delphine was also teaching her kids a related skill: learning to play by themselves. “The most important thing is that he learns to be happy by himself,” she said of her son, Aubane.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Amen to learning to be happy by oneself. I’m paraphrasing, but I once heard this and really like it: &lt;em&gt;&lt;strong&gt;Being alone is different than being lonely&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;American parents want their kids to be patient, of course. We encourage our kids to share, to wait their turn, to set the table and to practice the piano. But patience isn’t a skill that we hone quite as assiduously as French parents do. We tend to view whether kids are good at waiting as a matter of temperament. In our view, parents either luck out and get a child who waits well or they don’t.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It closes with an illustration that Americans often don’t say “no” with enough conviction. When my dad reprimanded us, he meant it and we knew it. It’s a wonderful thing in retrospect.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/17899314080</link><guid>http://blog.alanszlosek.com/post/17899314080</guid><pubDate>Sun, 19 Feb 2012 12:08:00 -0800</pubDate><category>parenting</category></item><item><title>Not certain</title><description>&lt;p&gt;Watched a 2005 Oregon PBS special about forest management last night. &lt;a href="http://www.opb.org/programs/oregonstory/rethinking_the_forests/"&gt;Link here&lt;/a&gt;. Saw some old guys with lots of land and trees managing it with intelligence. They don&amp;#8217;t clear-cut. They have a clue about genetics so they save the best trees and sell the others. Made me think: &lt;em&gt;Damn that looks like fun, rewarding work!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Especially the bits involving data collection. One guy kept detailed logs and found that his trees put on mass much faster later in life, but most loggers harvest before that point. I&amp;#8217;d love to pay attention and keep those kinds of numbers. The data loving techie in me is thinking: GPS for each tree, monitoring CO2 and other levels around my property. Of course, I wouldn&amp;#8217;t want the financial pressure of that being my only source of income. Luckily I&amp;#8217;ve been a telecommuting programmer for years &amp;#8230; been fortunate.&lt;/p&gt;

&lt;p&gt;The downside is that I like living in the city. Love the density, the energy, the white noise, the grocery store 1.5 blocks away, the access to varied restaurants and lattes, the ability to walk for hours and see new parts of town. And of course, I don&amp;#8217;t enjoy driving.&lt;/p&gt;

&lt;p&gt;Something to think about.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/15953616053</link><guid>http://blog.alanszlosek.com/post/15953616053</guid><pubDate>Mon, 16 Jan 2012 09:31:00 -0800</pubDate></item><item><title>A dispatch from the Moose Ear Diner</title><description>&lt;p&gt;Completed &lt;a href="http://store.steampowered.com/app/31270/"&gt;Puzzle Agent&lt;/a&gt; recently. It was such a fun game and luckily the sequel went on sale a few days after I finished it. The puzzles were a balanced mix of 10-second teasers, those where your only hope is to jump in and work through possible solutions, and those where you really need to pay attention.&lt;/p&gt;

&lt;p&gt;Aside from the puzzles, the other aspects of the game are no slouch either. The story draws you in and has quite a few surprises. The art work is simple, high quality, and infused with a playful sense of humor. Can&amp;#8217;t wait to start the sequel.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/14139046473</link><guid>http://blog.alanszlosek.com/post/14139046473</guid><pubDate>Mon, 12 Dec 2011 16:00:01 -0800</pubDate><category>games</category><category>puzzle agent</category></item><item><title>The Thin Man</title><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Thin_Man_(film)"&gt;The Thin Man&lt;/a&gt; is a great movie. It&amp;#8217;s filled with lovable characters, great pacing and a great plot. And of course I must mention the hilarious, witty protagonists. Luckily it&amp;#8217;s only the first in a six-part film series. Looking forward to the rest!&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/13456919113</link><guid>http://blog.alanszlosek.com/post/13456919113</guid><pubDate>Mon, 28 Nov 2011 08:40:40 -0800</pubDate><category>movies</category></item><item><title>Character encodings in practice</title><description>&lt;p&gt;Building upon Joel&amp;#8217;s post on &lt;a href="http://www.joelonsoftware.com/articles/Unicode.html"&gt;Unicode&lt;/a&gt;, here are some real-world tips relating to character encodings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use them by name&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Always explicitly specify which encoding you want (perhaps UTF-8). Don&amp;#8217;t assume the language or library/tool you&amp;#8217;re using will make the right decision for you. If you value your time, don&amp;#8217;t ignore this recommendation, otherwise you&amp;#8217;ll likely spend lots more time patching things up in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A tale to drive this home&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Until very recently, MySQL&amp;#8217;s default charset was latin1. Our legacy code didn&amp;#8217;t specify an encoding in PHP&amp;#8217;s connection to MySQL, in our HTML, nor in our HTTP headers. And web browsers default to god knows what (&amp;#8220;it depends&amp;#8221;).&lt;/p&gt;

&lt;p&gt;When the time came to export some table data to XML I ran into issues of invalid UTF-8 characters. I knew there were special characters in some text fields introduced by Microsoft Word copy-pasters, so I figured flipping the switch to UTF-8 would help. NOPE!&lt;/p&gt;

&lt;p&gt;It appears that having failed to specify an encoding in the past caused special characters (fancy double-quotes, crosses, long dashes, etc) to be stored in MySQL in a fashion that doesn&amp;#8217;t satisfy the UTF-8 format. Shit!&lt;/p&gt;

&lt;p&gt;So I had to come up with a batch of find-and-replace regex patterns to turn those characters into proper UTF-8 or their HTML entities.&lt;/p&gt;

&lt;p&gt;So please, do the following:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Choose an encoding and stick to it&lt;/li&gt;
&lt;li&gt;Save your text files in that encoding&lt;/li&gt;
&lt;li&gt;Set the character encoding in your HTML&lt;/li&gt;
&lt;li&gt;Send the Content-type header with charset from your webserver&lt;/li&gt;
&lt;li&gt;Change the configuration defaults for &lt;a href="http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf8-in-my-cnf"&gt;MySQL&lt;/a&gt; or your DBMS&lt;/li&gt;
&lt;li&gt;Check and set the default for each of your databases (note I said database not DBMS)&lt;/li&gt;
&lt;li&gt;Check and specify the encoding for your tables and text fields&lt;/li&gt;
&lt;li&gt;Make sure you specify the encoding when you create or alter tables in the future&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Don&amp;#8217;t convert blindly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you failed to do the above at one point in time, you may have content in your database that isn&amp;#8217;t valid UTF-8 (assuming you want to convert to that to prevent further issues).&lt;/p&gt;

&lt;p&gt;Users that copy and paste from Microsoft Word are likely the source of this problem, but don&amp;#8217;t blame them or Word. Blame the programmer responsible!&lt;/p&gt;

&lt;p&gt;Your task now is to convert those invalid UTF-8 byte strings into something more usable. You may be able to convert many to their HTML entities, but you probably want to convert alphabetical characters to their valid UTF-8 representation to ensure the text remains easily searchable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don&amp;#8217;t convert blindlier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have to convert your table definitions and data to UTF-8 (from something like MySQL&amp;#8217;s latin1), be careful. There&amp;#8217;s a great post by the Wordpress crew of what it entails (multi-stage process, to intermediate binary column types first), but it didn&amp;#8217;t cover this troublesome gotcha: &lt;em&gt;If MySQL finds characters it can&amp;#8217;t convert to UTF-8 it&amp;#8217;ll truncate the rest of the field data&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MySQL will gladly go through the motions with you as you convert from latin1 to UTF-8. It&amp;#8217;ll issue warnings that something went wrong during the conversion. But it will still &lt;strong&gt;truncate&lt;/strong&gt; your data at any character that&amp;#8217;s not valid UTF-8. Instantly your article text will go from 10234 bytes to 145. There&amp;#8217;s probably a valid technical reason why it doesn&amp;#8217;t error out altogether, but all I know is I now have to re-populate tons of data from backups.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/12286678261</link><guid>http://blog.alanszlosek.com/post/12286678261</guid><pubDate>Thu, 03 Nov 2011 09:20:00 -0700</pubDate><category>mysql</category><category>character encoding</category><category>utf-8</category><category>programming</category></item><item><title>node.js FTP server</title><description>&lt;p&gt;Got to use node.js for a work project recently. We needed an FTP server with special user authentication that would run custom code after a file was uploaded. There was one node.js FTP server implementation on github, so I forked it and started rounding out the basic functionality. My fork is &lt;a href="https://github.com/alanszlosek/nodeftpd"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The first significant change I made was to encapsulate the data connection logic. File lists and file contents are transferred over the data connection (FTP commands and responses over the control connection). I quickly found that some clients are super eager to send you data and will do so once a passive data connection is made, even before the FTP server tells them it&amp;#8217;s ok to do so. This was especially problematic for file uploads over passive data connections. Without a workaround for these aggressive clients, the flow looked something like this:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Receive PASV command from client&lt;/li&gt;
&lt;li&gt;Start listening on a port and tell client which port to connect to&lt;/li&gt;
&lt;li&gt;Receive STOR command from client, stating it&amp;#8217;s going to upload a file&lt;/li&gt;
&lt;li&gt;Attach data listener to data connection that saves incoming data to file&lt;/li&gt;
&lt;li&gt;On data connection end event, make sure file data has been written&lt;/li&gt;
&lt;li&gt;Close the file&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Due to the asynchronous nature of node.js, data often arrived between steps 3 and 4, before a data event listener had been attached. Some of the file chunks were falling through the cracks and the saved file was incomplete.&lt;/p&gt;

&lt;p&gt;Also regarding the above flow, ensuring that all data had been written to disk before we attempted to close file was &amp;#8230; well &amp;#8230; convoluted. Maybe a solution could be found using fs.createWriteStream, but I&amp;#8217;m still happier with what I&amp;#8217;ll outline next.&lt;/p&gt;

&lt;p&gt;Once I found out that data was falling through the cracks I did some searching and found that setting up a buffering data handler was a common solution to a common problem. Good to know! With a persistent data buffer in place things became much easier, like so:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Receive PASV command from client&lt;/li&gt;
&lt;li&gt;Start listening on a port and tell client which port to connect to&lt;/li&gt;
&lt;li&gt;Once we get hint of a connection (socket connect event), listen for data events and push each data chunk onto a stack&lt;/li&gt;
&lt;li&gt;Receive STOR command from client, stating it&amp;#8217;s going to upload a file&lt;/li&gt;
&lt;li&gt;On data connection end, open file&lt;/li&gt;
&lt;li&gt;Loop over buffered data&lt;/li&gt;
&lt;li&gt;Save each buffered chunk before moving to next chunk&lt;/li&gt;
&lt;li&gt;Close the file&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;It&amp;#8217;s less than ideal to buffer each uploaded file in memory first, but it works and is simple. Success!&lt;/p&gt;

&lt;p&gt;In addition to the above, I&amp;#8217;ve encapsulated things further in my forked repo. The FTP server object itself emits some additional events which you can listen for. My goal was to encapsulate the basic FTP functionality and provide a way to take special actions when:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;A user connects&lt;/li&gt;
&lt;li&gt;A user attempts to log in (listen for these events and handle authentication yourself)&lt;/li&gt;
&lt;li&gt;User uploads a file&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Hopefully someone with a slightly different use-case will come along and take things the rest of the way.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/10779328293</link><guid>http://blog.alanszlosek.com/post/10779328293</guid><pubDate>Wed, 28 Sep 2011 14:41:49 -0700</pubDate><category>node.js</category><category>ftp</category><category>programming</category><category>javascript</category></item><item><title>Nature: Is that Skunk?</title><description>&lt;a href="http://video.pbs.org/video/1168758029"&gt;Nature: Is that Skunk?&lt;/a&gt;: &lt;p&gt;Caught an episode of Nature last night. Great as always. Spotted skunks …. my, what a coat! You can watch the full episode, just click the title of this post.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/9577571999</link><guid>http://blog.alanszlosek.com/post/9577571999</guid><pubDate>Mon, 29 Aug 2011 22:19:00 -0700</pubDate><category>nature</category><category>skunks</category></item><item><title>Lume Cabinet Lock Hint</title><description>&lt;p&gt;If you play the game &lt;a href="http://store.steampowered.com/app/105100/"&gt;Lume&lt;/a&gt; you may get stuck at the cabinet lock. If so, don&amp;#8217;t go to any other sites or you&amp;#8217;ll accidentally see the answers like I did! Here&amp;#8217;s a hint, instead.&lt;/p&gt;

&lt;p&gt;You found the &amp;#8220;9#&amp;#8221; clue, right? Go back to where you can see that clue on the screen. Everything you need for the lock is right there. That&amp;#8217;s all I&amp;#8217;ll say.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/9393637342</link><guid>http://blog.alanszlosek.com/post/9393637342</guid><pubDate>Thu, 25 Aug 2011 16:46:00 -0700</pubDate><category>games</category><category>lume</category></item><item><title>Photo</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lpxczjPfm81qiv55to1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://blog.alanszlosek.com/post/8909296203</link><guid>http://blog.alanszlosek.com/post/8909296203</guid><pubDate>Sun, 14 Aug 2011 08:42:55 -0700</pubDate></item><item><title>I’m curious about i.am FIRST: Science is Rock and Roll. It...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpu4oirPM61qiv55to1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I’m curious about &lt;a href="http://abc.go.com/shows/iam-first-science-is-rock-and-roll"&gt;i.am FIRST: Science is Rock and Roll&lt;/a&gt;. It will air this Sunday night at 7pm on ABC. I was mostly speechless during the segment of &lt;a href="http://sciencefriday.com/"&gt;Science Friday&lt;/a&gt; that featured Dean Kamen and will.i.am. I have to confess that I actually teared-up out of joy.&lt;/p&gt;

&lt;p&gt;This week there was also news of a &lt;a href="http://en.wikipedia.org/wiki/Cosmos:_A_Personal_Voyage"&gt;COSMOS&lt;/a&gt; sequel that will be airing on FOX. So glad a chance is being taken and the effort is being made to inspire and educate such a broad audience.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/8837078574</link><guid>http://blog.alanszlosek.com/post/8837078574</guid><pubDate>Fri, 12 Aug 2011 14:50:42 -0700</pubDate><category>science</category><category>robotics</category><category>education</category></item><item><title>Didn't build a heater</title><description>&lt;p&gt;I didn&amp;#8217;t expect learning of variations in Core 2 Duo processors and sockets while fixing my mom&amp;#8217;s laptop to lead to interest in building a new PC, but that&amp;#8217;s what happened. Shopping for parts takes too much time but I powered through, eventually narrowed it down, and made some purchases. Wanted something quiet and efficient (80 Plus Gold power supply, fanless graphics card, Core i5&amp;#160;2400, 8G RAM). Kristen mentioned Bioshock as a game I might like which gave me a performance-related goal.&lt;/p&gt;

&lt;p&gt;The new desktop machine means my laptop will mostly sit idle, but since a stand-up desk is my preferred work setup I&amp;#8217;m fine with that. In the process I&amp;#8217;ll be retiring several ATA drives, the old computer case I&amp;#8217;ve had for 10 years, and have now entered the realm of 64-bit operating systems, Intel VT for qemu and quad-core processors. My laptop was dual-core, so it&amp;#8217;s not a huge leap, but at least now I can run Folding more effectively.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m finding Steam&amp;#8217;s &amp;#8220;free weekend&amp;#8221; promos on newish games to be quite enjoyable. I&amp;#8217;ve never been able to play games this new and it&amp;#8217;s nice to have something mindless to do for a few hours on weekends, even if it is poking around a first-person shooter. As for games I&amp;#8217;ve purchased for more concentrated play: &lt;a href="http://store.steampowered.com/app/105100/"&gt;Lume &lt;/a&gt;and &lt;a href="http://store.steampowered.com/app/40700/"&gt;Machinarium&lt;/a&gt;, in addition to the new Sam &amp;#8216;n Max series and the Monkey Island re-releases.&lt;/p&gt;

&lt;p&gt;To close on a more somber note, I hope these money-spending detours are over because I feel I should get back to learning and creating. It&amp;#8217;s been a two month hiatus / dry spell. No drumline music, no code outside of work. Sigh.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/8546109803</link><guid>http://blog.alanszlosek.com/post/8546109803</guid><pubDate>Fri, 05 Aug 2011 22:00:00 -0700</pubDate><category>gaming</category><category>steam</category><category>pc building</category></item><item><title>Notables</title><description>&lt;p&gt;I finally finished fixing up my mom&amp;#8217;s laptop. Several mis-diagnoses later, and it&amp;#8217;s back with the original fan, new processor, new thermal compound, fast maxed-out RAM, new battery, and new install of Windows 7. Whew. One CAN buy laptop processors on Ebay if one pays attention.&lt;/p&gt;

&lt;p&gt;The past few months have also taught me that some Amazon sellers will sneak a knock-off product to your doorstep. I attribute this to malice, and not a listing mis-match. Ugh.&lt;/p&gt;

&lt;p&gt;In an effort to remove friction from writing music I&amp;#8217;m finally going to purchase Sibelius. It&amp;#8217;ll integrate nicely with Virtual Drumline, and will hopefully make it easier to get into the habit of writing at least a few notes a day. The goal is to make some progress every day but more specifically I want to benefit from idle-time problem solving that brains tend to do.&lt;/p&gt;

&lt;p&gt;Still extremely torn about whether I&amp;#8217;m going to teach drumline this year. Forty-hours a week, plus 1-2 practices a week, and having to make up lost work time is NOT an option anymore. Makes me miserable. There is a discussion to be had with my boss, but part of me would rather direct that energy towards writing music or recreation.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/7292480926</link><guid>http://blog.alanszlosek.com/post/7292480926</guid><pubDate>Tue, 05 Jul 2011 21:47:16 -0700</pubDate><category>drumline</category><category>life</category><category>computer repair</category><category>composing</category></item><item><title>Teaching</title><description>&lt;p&gt;Recently I became aware that while teaching I sometimes go on and on for far too long. It usually happens when I realize a student isn&amp;#8217;t &amp;#8220;getting it&amp;#8221; after a period of time, after the rest of the group has moved on. I address them personally, repeat the nugget on information, and then I may go into the &amp;#8220;why&amp;#8221; portion of what I&amp;#8217;m talking about, after which I may go into variations that might be helpful to think about, and then I may go back to the original point and re-iterate.&lt;/p&gt;

&lt;p&gt;Annoying, right? Yeah. I need to chill. I should instead present one nugget/view/solution/technique and be done with it. It&amp;#8217;s best to give the student some breathing room because they&amp;#8217;re already a bit stressed if I&amp;#8217;m addressing them one-on-one.&lt;/p&gt;

&lt;p&gt;If I don&amp;#8217;t back off, I run the risk of making the student feel incapable, or upset, or maybe they&amp;#8217;ll just turn off. No good.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/6831040158</link><guid>http://blog.alanszlosek.com/post/6831040158</guid><pubDate>Thu, 23 Jun 2011 10:00:06 -0700</pubDate><category>teaching</category><category>drumming</category><category>drumline</category></item><item><title>Bossypants</title><description>&lt;p&gt;Couldn&amp;#8217;t pass up Tina Fey&amp;#8217;s new book, &lt;em&gt;Bossypants&lt;/em&gt;. I&amp;#8217;ll start by saying that 30 Rock is the best comedy show on network television. And I&amp;#8217;d be right. The Office faded fast. Family Guy got old after the 1st season. The Simpsons was probably good 10 years ago (though I was never a huge fan). But I don&amp;#8217;t want to write about TV.&lt;/p&gt;

&lt;p&gt;So yes, Tina Fey&amp;#8230; Heard her interview on Fresh Air and I had to buy her book. If you like Tina Fey, you&amp;#8217;ll enjoy it. I&amp;#8217;m especially glad she specifically writes about this 30 Rock line &amp;#8230; it&amp;#8217;s one of the all-time greats:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Never go with a hippie to a second location.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just amazing. The line is credited to Scott Burritt. I will love him forever, if I can remember his name.&lt;/p&gt;

&lt;p&gt;30 Rock is filled with serious fucking words to live by.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/6773949697</link><guid>http://blog.alanszlosek.com/post/6773949697</guid><pubDate>Tue, 21 Jun 2011 17:46:00 -0700</pubDate><category>books</category><category>hippies</category><category>tina fey</category><category>30 rock</category></item><item><title>BeagleBoard-xM Update</title><description>&lt;p&gt;I didn&amp;#8217;t know the Angstrom card that shipped with my board would boot into X using DVI-D as the output. Decided to try it yesterday given my serial cable woes (more on that below), and it worked.  Ethernet, USB keyboard and mouse, but didn&amp;#8217;t test audio. So the board appears to be functioning properly.&lt;/p&gt;

&lt;p&gt;Prior to testing the Angstrom card I tried an Android 2.3 image from TI made for the beagleboard, but it failed during the last steps. It booted to a GUI, but the clock obviously didn&amp;#8217;t run, and it didn&amp;#8217;t respond to input. Guessing it crashed, but I&amp;#8217;ll have to investigate further over serial.&lt;/p&gt;

&lt;p&gt;Regarding serial cables &amp;#8230; I went to &lt;a href="http://www.freegeek.org"&gt;FreeGeek&lt;/a&gt; to look for some. This was actually my second trip since my first trip I was focused on finding the exact cable and hadn&amp;#8217;t considered slicing and re-wiring until recently. The cables I found would have worked if all 9 pins in each cable had wires connected to them, but they didn&amp;#8217;t. No doubt the cables are made in this way to save on manufacturing costs. A cable is made for a specific purpose and/or device, which may only use 3 or 4 of the pins. Unfortunately I was unable to find the right combination amongst the cables I picked up, so I was unable to construct a straight-through cable. So after 1.5 weeks of hoping and searching, trying to go the quick, dirty and cheap route, I ordered one. Should arrive Wednesday.&lt;/p&gt;

&lt;p&gt;I should note that I didn&amp;#8217;t exhaust ALL of my options, and probably should have picked up something like &lt;a href="http://www.pccables.com/cgi-bin/orders6.cgi?action=Showitem&amp;amp;partno=07120&amp;amp;rsite=07120"&gt;this&lt;/a&gt; to do the wiring from. 9 pins, 9 wires, easy access. Now I know.&lt;/p&gt;

&lt;p&gt;All of this makes me wonder whether it&amp;#8217;s possible to write a serial port device driver that acts as a proxy. For instance: if I only had a serial extension cable but need something else, could I create or use a proxy serial port driver to remap the pins? Would have to investigate further. It sounds like a good idea, but there&amp;#8217;s probably some protocol or hardware limitation that makes it impossible.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/6693482561</link><guid>http://blog.alanszlosek.com/post/6693482561</guid><pubDate>Sun, 19 Jun 2011 10:32:00 -0700</pubDate><category>beagleboard</category><category>linux</category></item><item><title>Wooah there, horsey</title><description>&lt;p&gt;Lately, the thing I&amp;#8217;ve wanted to yell most at people is &amp;#8220;pay attention!&amp;#8221; It should probably be prefixed by &amp;#8220;slow down!&amp;#8221; People don&amp;#8217;t read. They don&amp;#8217;t listen to what others say. They don&amp;#8217;t pay attention to the details. They apparently think they&amp;#8217;re effective at multi-tasking at light-speed.&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/6523837800</link><guid>http://blog.alanszlosek.com/post/6523837800</guid><pubDate>Tue, 14 Jun 2011 09:26:31 -0700</pubDate><category>people</category><category>life</category></item><item><title>Velocity of Disappointment</title><description>&lt;p&gt;I continue to like Merlin Mann&amp;#8217;s podcasts. A few weeks ago I stumbled upon &lt;a href="http://5by5.tv/b2w"&gt;Back to Work&lt;/a&gt;. Being familiar with You Look Nice Today I figured it had to be good, so I jumped in without a clue what it was about. Turns out to be centered on:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;fear&lt;/li&gt;
&lt;li&gt;happiness&lt;/li&gt;
&lt;li&gt;no-fluff life hacks&lt;/li&gt;
&lt;li&gt;creative work&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;In episode 14, some things that really struck a chord with me were related to job unhappiness. It&amp;#8217;s hard to describe my current situation to people. Most people don&amp;#8217;t seem to get it. They seem to assume that programming is programming, and that if I enjoy programming, I should be happy programming. &lt;strong&gt;No&lt;/strong&gt;. You wouldn&amp;#8217;t question a construction worker that prefers framing over roofing, would you?&lt;/p&gt;

&lt;p&gt;Another reason I commonly give is that &amp;#8220;the work isn&amp;#8217;t challenging&amp;#8221;. But this feels like a better explanation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;It doesn&amp;#8217;t provide the types of challenges I&amp;#8217;m looking for.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here a great comparison for clarifying one&amp;#8217;s use of the word &amp;#8220;challenging&amp;#8221;: &lt;em&gt;difficult versus stimulating&lt;/em&gt;. Both are important, but different.&lt;/p&gt;

&lt;p&gt;Writing JavaScript for a user interfaces doesn&amp;#8217;t stimulate me. It probably stimulates 99% of the other web programmers, but not me. And it&amp;#8217;s plenty challenging. There are many things to think about, to enhance, to design for maximum usability. But no, it doesn&amp;#8217;t fulfill me. And that&amp;#8217;s related to another thing worth mentioning:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I&amp;#8217;m not good at it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Merlin says the ultimate sweet spot is finding something that is challenging (fulfilling) that you&amp;#8217;re ALSO pretty good at. That&amp;#8217;s what I&amp;#8217;m shooting for.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s all for now. I&amp;#8217;ll leave you with some mostly unrelated notable quotes from the episode:&lt;/p&gt;

&lt;p&gt;&amp;#8220;Don&amp;#8217;t wanna crush your dream catcher.&amp;#8221;&lt;/p&gt;

&lt;p&gt;&amp;#8220;If you own more than two self-help books you need to stop buying them.&amp;#8221;&lt;/p&gt;

&lt;p&gt;And regarding chronic self-helpers: &amp;#8220;Is it possible that what you&amp;#8217;re really scared of is change?&amp;#8221;&lt;/p&gt;

&lt;p&gt;&amp;#8220;You shouldn&amp;#8217;t be drinking more if you have to pee.&amp;#8221;&lt;/p&gt;</description><link>http://blog.alanszlosek.com/post/6321656650</link><guid>http://blog.alanszlosek.com/post/6321656650</guid><pubDate>Wed, 08 Jun 2011 08:52:00 -0700</pubDate><category>podcast</category><category>merlin mann</category></item></channel></rss>

