<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9180045564676310264</id><updated>2012-02-16T12:38:32.122-05:00</updated><category term='hamradio'/><category term='rosettacode'/><category term='proggit'/><category term='tcl'/><category term='geshi'/><category term='haskell'/><category term='stepmania'/><category term='grlug'/><category term='perl'/><title type='text'>Stuff and stuff</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default?start-index=101&amp;max-results=100'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>269</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5841828682867131491</id><published>2011-07-03T10:41:00.001-04:00</published><updated>2011-07-03T10:41:21.446-04:00</updated><title type='text'>Test</title><content type='html'>Test&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5841828682867131491?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5841828682867131491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2011/07/test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5841828682867131491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5841828682867131491'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2011/07/test.html' title='Test'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3787826709190996785</id><published>2010-05-18T08:49:00.001-04:00</published><updated>2010-05-18T08:49:47.993-04:00</updated><title type='text'>Miscellaneous things on my mind today</title><content type='html'>Thinking some more about that markov-&gt;ANN mapping, and wondering if&lt;br/&gt;there'd be a better way to represent the signals from the inputs to&lt;br/&gt;the first layer. Ideally, that'd involve getting the symbols to&lt;br/&gt;correspond to a value on a meaningful range, rather than a set of&lt;br/&gt;discrete values.  Let's say I wanted to make that integer range&lt;br/&gt;[0,2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3787826709190996785?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3787826709190996785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3787826709190996785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3787826709190996785'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today_18.html' title='Miscellaneous things on my mind today'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1622686208990530318</id><published>2010-05-10T16:45:00.001-04:00</published><updated>2010-05-10T16:45:36.469-04:00</updated><title type='text'>Miscellaneous things on my mind today</title><content type='html'>It occurs to me two fic geeks might find reading through the TVTropes pages for their favorite pieces of fiction a romantic way to spend an afternoon.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Pondering a message passing communication system tuned for bulk data (parcel) transfer. Use an addressing system like email's: To:username@example.com&lt;br/&gt;&lt;br/&gt;Sender, relay and recipient nodes operate on a load-sharing basis similar to BitTorrent. Where with email, a sender has a single SMTP target, this system might have multiple such targets, each of which serve as feeders for the destination recipient(s). Relaying nodes may cease feeding once either all recipients' nodes have full copies of the parcel, or once a TTL metric has been met.&lt;br/&gt;&lt;br/&gt;Sender-signing should be explicitly supported, both as a means of ham/spam separation and as a means of authentication/accounting where necessary.&lt;br/&gt;&lt;br/&gt;Parcel bodies should be compressed and encrypted by default.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Just got the geek necessities&lt;br/&gt;The simple geek necessities&lt;br/&gt;Don't worry 'bout your food or your hygiene...&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;If you're standing on Four Corners, and you do something that's a crime under each state's law, which state's prosecution takes priority?&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;I don't think backprop is relevant to the HMM-&gt;ANN mapping, because ANN construction is done as a component of its training, and weight adjustments are done incrementally as each node gains experience, by the node itself. No final "result fitness" observation is done, because the from-map ANN inherently evolves the same way the HMM would.&lt;br/&gt;&lt;br/&gt;Actually, looking at it further, what I have in mind could be considered a variation of a "cascading neural network", except the weights aren't fixed on node creation. Also, I don't see reference to any types of networks that allow for deconstruction of nodes.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;I like this way of posting my thoughts; it keeps me from being the uber-spammer on the social networks I'm in. Plus, it's like a serialization of free association in a palatable form.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Hm. German. shadenfrau. Heh.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Need to start carrying my 3e/PF books around. Or PDFs thereof.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Barcamp presentation ideas: 1) Rosetta Code and programming chrestomathy. 2) Wikis and more effective cross-referencing.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;I once had a conversation with a guy I think might have been high, where we thoroughly enjoyed a conversation that didn't keep a single context and topic for longer than three sentences.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1622686208990530318?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1622686208990530318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today_10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1622686208990530318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1622686208990530318'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today_10.html' title='Miscellaneous things on my mind today'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6793520235906258944</id><published>2010-05-09T13:23:00.001-04:00</published><updated>2010-05-09T13:23:21.730-04:00</updated><title type='text'>To learn, to Create, to Think</title><content type='html'>To learn: Surround yourself with people who know more than you. Can't find any? Try another topic. Whatever you do, don't stop.&lt;br/&gt;&lt;br/&gt;To create: Think about different things at the same time.&lt;br/&gt;&lt;br/&gt;To think: You'll have to figure this one out on your own.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6793520235906258944?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6793520235906258944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/to-learn-to-create-to-think.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6793520235906258944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6793520235906258944'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/to-learn-to-create-to-think.html' title='To learn, to Create, to Think'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-609387935377558695</id><published>2010-05-07T16:37:00.001-04:00</published><updated>2010-05-07T16:37:29.878-04:00</updated><title type='text'>Miscellaneous things on my mind today.</title><content type='html'>There's a striking similarity between hidden markov models and neural networks. For a 1st-order HMM, you could map it to a 4-layer (1 input, 1 output, 2 hidden) feed-forward ANN by having a single input (what symbol you're facing), making every known symbol a 2nd-layer node, with a simple input value of 0/1 (the first layer's node signals the input of the corresponding second layer depending on which symbol corresponds to that node). Use the set of known symbols for the 3rd layer as well, and the mapped weights from the 2nd to the 3rd layer corresponds to the state change probability in the HMM.&lt;br/&gt;&lt;br/&gt;I don't think this is necessarily an efficient way to do it, but I think it might be an exact mapping. Cool. :)&lt;br/&gt;&lt;br/&gt;If you want a second-order Markov model, use two nodes in your input layer, and use S1,S2 pairs for your 2nd layer, with a single-symbol set for your third. Definitely not a space-efficient way to do it, but also an exact mapping. If, after training (you have to get your symbol set from somewhere, which means you're going to grow your ANN as you build your symbol set), you're comfortable with the idea, you can cull your absolute weakest relationships from your 2nd-order set.  Only cull as space limitations force you to, or you'll lose weak-but-significant relationships.&lt;br/&gt;&lt;br/&gt;A 3rd-order Markov model would have three input nodes, and use S1,S2,S3 tuples for the 2nd layer, and a single-symbol set for the third. Again, cull as required.&lt;br/&gt;&lt;br/&gt;For particularly interesting results, you can use a three-dimensional matrix I1 going to a 1st-order ANN mapping, I1 and I2 going to the 2nd-order ANN mapping, I1, I2 and I3 going to the 3rd-order ANN mapping, and map to the same output node for all three orders. (Or higher orders, if you have unbelievable processing and storage capability...)&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;I'm happy.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;If every piece of software got as much detail-oriented attention to it as Toyota's code is getting right now, but *before* disaster struck, there'd be millions of happier developers out there, software wouldn't suck as much and development and debugging tools would be absolutely incredible (far beyond anything I've even heard of, including things like valgrind, lint and VS2010's rather impressive debugging aid feature set) as a result of finding ways to reduce developer time spent in analysis and bugfixing. If software were nearly as difficult to consider "ready for release" as hardware is, I think you'd see something akin to Moore's Law occur in software utility. (As a mixed metric of performance and feature set.)&lt;br/&gt;&lt;br/&gt;People got used to mediocre software. They hate it, but they got used to it. As a result, software pricing models more or less standardized around writing mediocre software, and people get sticker shock when they hit a requirement for non-mediocre software. Put another way: "Fast, well, cheap" -- except that popular priority heavily weighs toward fast and cheap.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&lt;br/&gt;Flashbacks to Ender's Game when I accidentally try to call CString::GetBugger(). See also, Start-&gt;Run-&gt;%APPDADA% instead of %APPDATA%. Dargo, resolve his %APPDADA% for him!&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-609387935377558695?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/609387935377558695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/609387935377558695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/609387935377558695'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/miscellaneous-things-on-my-mind-today.html' title='Miscellaneous things on my mind today.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-736385761164591130</id><published>2010-05-06T16:42:00.001-04:00</published><updated>2010-05-06T16:42:54.804-04:00</updated><title type='text'>Things on my mind today...</title><content type='html'>Prime words. If one were to present thousands of people with the words in the dictionary, and ask them to replace the word with a small set of simpler words with near-identical resulting meaning, would a set of fundamental, or "prime" words result? What would they be?  Some circular definitions might result, but their presence might help identify fundamental concepts.&lt;br/&gt;&lt;br/&gt;What happens if you could influence the Shadow ships' pilot with LSD or PCP? (If you haven't seen through Season 4, don't bother guessing. If you don't know what I'm talking about, then nothing's spoiled.)&lt;br/&gt;&lt;br/&gt;What happens if a vampire or lycanthrope bites a bio-tech vehicle?&lt;br/&gt;&lt;br/&gt;I need to make a habit of going to work earlier so I can get enough hours in before early afternoon. OTOH, I've got a ton of vacation hours saved up, and that would be a worthwhile way to spend them. :)&lt;br/&gt;&lt;br/&gt;I broke someone's nerd-o-meter today. I feel good.&lt;br/&gt;&lt;br/&gt;I seem to be discovering something akin to alchemy and herbal remedies, but using fast and processed foods for ingredients. That can't be a good sign.&lt;br/&gt;&lt;br/&gt;SanDisk seems to have abandoned the SD+USB product area. [trope]BigNo[/trope].&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-736385761164591130?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/736385761164591130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/things-on-my-mind-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/736385761164591130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/736385761164591130'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/things-on-my-mind-today.html' title='Things on my mind today...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6032388501702862592</id><published>2010-05-03T11:04:00.001-04:00</published><updated>2010-05-03T11:04:26.473-04:00</updated><title type='text'>Dave, my mind is going. I can feel it.</title><content type='html'>Gotta do some thought-out codin'&lt;br/&gt;but my heart is all a'flutter.&lt;br/&gt;Wrote a line of code&lt;br/&gt;but I can't write out another.&lt;br/&gt;Gotta get my brain in gear&lt;br/&gt;but it's slippin like it's butter.&lt;br/&gt;If I don't seee Firefly soon,&lt;br/&gt;I'll be drinkin' like a Mudder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6032388501702862592?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6032388501702862592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/05/dave-my-mind-is-going-i-can-feel-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6032388501702862592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6032388501702862592'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/05/dave-my-mind-is-going-i-can-feel-it.html' title='Dave, my mind is going. I can feel it.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8473568344338728633</id><published>2010-04-27T04:33:00.001-04:00</published><updated>2010-04-27T04:33:16.467-04:00</updated><title type='text'>There's one kind of argument I particularly hate to have</title><content type='html'>...and that's rationalizing. Typically, it occurs when the person I'm arguing with has a gut feeling about what's Right, but can't maintain a logical defense of the position. I can chip away each path of apparent logic they use in defense of a position, one at a time, and then they'll come up with some new path, or switch back to an old path with a different tact.&lt;br/&gt;&lt;br/&gt;What's frustrating about it is that it tells me there isn't a logical &lt;em&gt;basis&lt;/em&gt; behind the defense of their position, but an emotional one, and logic is simply the mechanism being used to defend it. That means that they're exceedingly unlikely to ever change positions, unless and until that emotional basis is identified and resolved. That's pretty difficult to do when the person holding the position can't acknowledge the basis behind their core position.&lt;br/&gt;&lt;br/&gt;The particular argument inspiring this rant was my expressed frustrations that AdBlock Plus is overly aggressive, and blocks the queries that build Amazon referral links--I was going to use those links in-line in on-wiki citations and user-recommended resource links. With ABP running, one gets a big, fat, red "Unable to retrieve data" blob of text. I'll have to mod the MW extension to deal with the error case.&lt;br/&gt;&lt;br.&gt;I can understand wanting to block distracting and attention-grabbing advertising content. Blocking referral-building and search AJAX queries strikes me as going rather far, and smells of anti-commercialization intent rather than simply consumer protection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8473568344338728633?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8473568344338728633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/there-one-kind-of-argument-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8473568344338728633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8473568344338728633'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/there-one-kind-of-argument-i.html' title='There&amp;#39;s one kind of argument I particularly hate to have'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3333804338837936605</id><published>2010-04-24T20:56:00.001-04:00</published><updated>2010-04-24T20:56:04.444-04:00</updated><title type='text'>HSV remixing some of my photos</title><content type='html'>Tried some simple stuff on one photo, liked the results, tried it on several more.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4549660008/" title="[HSV Rmx] Cosplay - AWA14 - L and Misa Amane by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4068/4549660008_a8749e4e01.jpg" width="375" height="500" alt="[HSV Rmx] Cosplay - AWA14 - L and Misa Amane" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4549660006/" title="[HSV Rmx] Cosplay - AWA15 - Lara Croft by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4059/4549660006_7d36115bfa.jpg" width="375" height="500" alt="[HSV Rmx] Cosplay - AWA15 - Lara Croft" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4549660002/" title="[HSV Rmx] Me by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4064/4549660002_0f2de40af0.jpg" width="500" height="375" alt="[HSV Rmx] Me" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4549659978/" title="[HSV Rmx] Hair grows by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4044/4549659978_68c5c0df1a.jpg" width="375" height="500" alt="[HSV Rmx] Hair grows" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-- &lt;br /&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3333804338837936605?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3333804338837936605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/hsv-remixing-some-of-my-photos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3333804338837936605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3333804338837936605'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/hsv-remixing-some-of-my-photos.html' title='HSV remixing some of my photos'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4068/4549660008_a8749e4e01_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8196140706292090878</id><published>2010-04-21T15:26:00.001-04:00</published><updated>2010-04-21T15:26:58.720-04:00</updated><title type='text'>2.5" -&gt; 3.5" internal bay adapter</title><content type='html'>I know 2.5" -&gt; 3.5" bay adapters exist, but do any exist that allow you to put multiple 2.5" devices in the same 3.5" bay? I'm specifically pondering replacing a single 3.5" spinning disk drive (my root disk) with two 2.5" drives (one for root, and a small SSD to put mysqld on; I'm disk-bound, and the lifetime and safety of the data is less interesting than the speed it can be manipulated at.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8196140706292090878?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8196140706292090878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/25-35-internal-bay-adapter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8196140706292090878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8196140706292090878'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/25-35-internal-bay-adapter.html' title='2.5&amp;quot; -&amp;gt; 3.5&amp;quot; internal bay adapter'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8039628899680727935</id><published>2010-04-20T13:02:00.001-04:00</published><updated>2010-04-20T13:02:00.826-04:00</updated><title type='text'>Yup. That StumbleUpon surge changed things a bit.</title><content type='html'>Not in a way they haven't been changed before, mind you.  Every now and again, there's enough of a traffic surge that the traffic never fully dies back to near-original levels, even if the referrals aren't coming from StumbleUpon any more.&lt;br/&gt;&lt;br/&gt;Usually, it's a combination of two things: 1) a steady trickle of referrals from dozens of forums like Stack Overflow, Reddit and language-specific phpBB installs. 2) A lot more people add "rosetta code" or "rosetta" to their search queries; I get the impression that this method of learning how to do stuff is getting more popular.&lt;br/&gt;&lt;br/&gt;So, yeah, the ambient traffic appears to have permanently bumped up a notch. This has happened three times before, that I can think of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8039628899680727935?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8039628899680727935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/yup-that-stumbleupon-surge-changed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8039628899680727935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8039628899680727935'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/yup-that-stumbleupon-surge-changed.html' title='Yup. That StumbleUpon surge changed things a bit.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3839686967207966698</id><published>2010-04-19T20:24:00.001-04:00</published><updated>2010-04-19T20:24:44.059-04:00</updated><title type='text'>[TSoC] Automated virtual plays - machinema for the social web</title><content type='html'>Ok, so here's the thought: Take a social medium like Twitter or blogging, and take such things as stage plays.&lt;br/&gt;&lt;br/&gt;Tie each Twitter or blog account to a character in the play.  Now, how do you automate it?&lt;br/&gt;&lt;br/&gt;I see three pieces that need to be addressed to cover each member cast:&lt;br/&gt;(character)&lt;br/&gt;(service)&lt;br/&gt;-(account)&lt;br/&gt;--(contacts/friends)&lt;br/&gt;&lt;br/&gt;I see four bits of information that need to be conveyed for each active line:&lt;br/&gt;&lt;br/&gt;(trigger time)&lt;br/&gt;(service)&lt;br/&gt;(who is the message directed at)&lt;br/&gt;(the message)&lt;br/&gt;&lt;br/&gt;Now, think about this. How would you organize this data?&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3839686967207966698?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3839686967207966698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/tsoc-automated-virtual-plays-machinema.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3839686967207966698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3839686967207966698'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/tsoc-automated-virtual-plays-machinema.html' title='[TSoC] Automated virtual plays - machinema for the social web'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3803197496993503935</id><published>2010-04-12T09:32:00.001-04:00</published><updated>2010-04-12T09:32:55.355-04:00</updated><title type='text'>[TSoc] Abusing TinyURL, bit.ly, and your browser--making the work someone else's problem.</title><content type='html'>So, lately, I've had a few ideas for simple, interesting websites, and there's one thing they have in common--they have no server-side state. Server-side state means you need a database, and databases don't scale easily or cheaply.&lt;br/&gt;&lt;br/&gt;So here's basis behind one of the ideas: http://www.translationparty.com&lt;br/&gt;&lt;br/&gt;TranslationParty works by taking your English phrase, using JavaScript to call into Google Language Tools to convert it to Japanese, repeats the process back to English, and back to Japanese--on and on until it finds "equilibrium", or is confident the phrase will never reach it.  Of course, it only works with English-Japanese translation. You'll notice, though, that it uses an identifier to allow it to recall previous "parties". I can show you one I just created a moment ago, by having you click on this link: http://translationparty.com/#7180967&lt;br/&gt;&lt;br/&gt;They're storing the seed phrases in a database, so that visitors can refer back to them. That's fine, I suppose, but that database is eventually going to get large and expensive, and most of the past seed phrases will have been forgotten about in the mean time.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I showed TranslationParty to a couple folks last night, and they noticed it only did English-Japanese translation. I'd just hit on the idea of doing something like TranslationParty, but using virtualhosts to allow language selection.&lt;br/&gt;&lt;br/&gt;en.ja.example.com would behave largely like the existing TranslationParty site.&lt;br/&gt;ja.en.example.com would start with Japanese as the seed language, rather than English.&lt;br/&gt;en.de.example.com would bounce between English and German&lt;br/&gt;de.fr.example.com would bounce between German and French.&lt;br/&gt;&lt;br/&gt;So, $1.$2.example.com would start with $1 as the seed language, and #2 as the intermediate language.&lt;br/&gt;&lt;br/&gt;Problem is, I wouldn't want to store that database. It's largely a waste of server resources, considering most of it would be forgotten ten minutes after it was created. The obvious solution is to store the seed phrase as an HTTP GET parameter. http://en.ja.example.com/?seed=What%20lies%20in%2the%2deepest%20regions%20ones%20our%2memory would have "What lies in the deepest regions of ones memory" as the seed phrase, and be equivalent to http://translationparty.com/#7181046 ...&lt;br/&gt;&lt;br/&gt;Now, that's a long, nasty URL, not suitable for copying and pasting in polite company, but it means that I don't need a database for these things. Besides, that's what bit.ly and tinyURL are for, right?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3803197496993503935?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3803197496993503935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/tsoc-abusing-tinyurl-bitly-and-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3803197496993503935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3803197496993503935'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/tsoc-abusing-tinyurl-bitly-and-your.html' title='[TSoc] Abusing TinyURL, bit.ly, and your browser--making the work someone else&amp;#39;s problem.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8495788787867365567</id><published>2010-04-06T03:29:00.001-04:00</published><updated>2010-04-06T03:29:06.688-04:00</updated><title type='text'>I'm a DLL?</title><content type='html'>&lt;a href="http://www.bbspot.com/News/2004/10/extension_quiz.php"&gt;&lt;img&lt;br /&gt;src="http://www.bbspot.com/Images/News_Features/2004/10/file_extensions/dll.jpg" width="300" height="90"&lt;br /&gt;border="0" alt="You are .dll You are dynamic.  You are constantly in danger of bringing down the house, because you don't play well with others."&gt;&lt;br&gt;Which File Extension are You?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8495788787867365567?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8495788787867365567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/i-dll.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8495788787867365567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8495788787867365567'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/i-dll.html' title='I&amp;#39;m a DLL?'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4922826123177801834</id><published>2010-04-04T18:11:00.001-04:00</published><updated>2010-04-04T18:11:10.083-04:00</updated><title type='text'>What we owe Apple and Mac users</title><content type='html'>I tend to hate Apple software; it's overly simplistic and makes too many assumptions about what I need to do. I tend to hate Apple hardware; it's good stuff, but you pay too much for it.&lt;br/&gt;&lt;br/&gt;However, they've got one heck of a marketing budget, and they manage to make their products mainstream, or, at least, 'hip.' That's something I can appreciate. Why? Because if it weren't for Apple making their hardware and software hip, there wouldn't be the demand for lookalikes and workalikes that leads to products I *do* want to use to become available.&lt;br/&gt;&lt;br/&gt;(Yes, the Newton was a failure, but Palm followed up on the concept and made a device I enjoyed using for years.)&lt;br/&gt;&lt;br/&gt;Consider the iPod. MP3 players had already been around for a while, but they weren't big sellers. Along somes the iPod, which takes the MP3 player market by storm, and drives the expensive little lossy-audio playback device into popularity. People discover the convenience of having a few thousand songs in their pocket, and show off to their friends. Their friends like the feature set, but balk at the price tag. Along come the products by other manufacturers and vendors, with similar functionality[1] and a lower price tag, and those friends buy. Apple made the MP3 player popular.&lt;br/&gt;&lt;br/&gt;The iPod went through a few iterations. It added video, then it added video.&lt;br/&gt;&lt;br/&gt;Now we consider the iPhone. Smartphones have been around for far longer than the iPhone, but I normally only heard about them being used by big corporate and institutional types. You didn't get them unless you had a financially-driven need for them, so they were only marketed to the organizations with pockets. Along comes Apple, with their iPhone and their marketing budget, and it *sells*, despite being an open-developer-unfriendly platform. Same as with the iPod, they show their friends this cool stuff, friends want something like it, and so you get things like Android and Windows Mobile[2] getting bought at cell phone retailers all over the place. Meanwhile, people got used to touch screens and video interfaces thanks to things like the iPod Touch, so adding a phone to the feature set doesn't seem too odd.&lt;br/&gt;&lt;br/&gt;Now look at the iPad. Everyone teases it. I don't want one, because I don't like the development environment. Everyone teased iPod, too. Tablet PCs are nothing really new, either; they've been around for over a decade. The first one I remember seeing had an 80486 processor, and it was used for mobile logistical record keeping. It ran Windows 3.1, and had handwriting recognition. More recently, HP and other PC vendors have been selling laptop/tablet convertibles. My mother had one. It's kinda fun to use. Yes, they were never really popular. That's why people keep expecting the iPad to fail. They forget that MP3 players weren't popular before the iPod, and that smartphones weren't core culture until the iPhone. I don't know if it's a marketing budget, superb planning or superb timing, but Apple tends to take a known concept and get it to sell.&lt;br/&gt;&lt;br/&gt;I expect the iPad will sell nicely. It's like a supersized cross between an iPhone and iPod Touch, with the phone features pulled.  What with the requisite technologies for AR getting better and better, I suspect I know where Apple would like to go next.[3]&lt;br/&gt;&lt;br/&gt;[1] Greater in some areas, lesser in others. I don't want to debate it.&lt;br/&gt;[2] Yes, Windows Mobile has been around for a while. I didn't say it was *created* as a response to the iPhone.&lt;br/&gt;[3] And a brief plug for an anime I've been enjoying lately. &lt;a href="http://en.wikipedia.org/wiki/Denn%C5%8D_Coil"&gt;Dennō Coil&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4922826123177801834?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4922826123177801834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/what-we-owe-apple-and-mac-users.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4922826123177801834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4922826123177801834'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/what-we-owe-apple-and-mac-users.html' title='What we owe Apple and Mac users'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6149174824118047904</id><published>2010-04-02T17:13:00.001-04:00</published><updated>2010-04-02T17:13:41.310-04:00</updated><title type='text'>[question] Testing Virtualized XP installs with more than two CPUs.</title><content type='html'>So Windows XP Pro allows the user to run at most two physical processors, but each such processor can have as many cores as you like. That's great for quad-core and above processors, if the operating system is running directly on top of the hardware.&lt;br/&gt;&lt;br/&gt;So what if you have a quad-core or dual-quad-core system, you're running some virtualization package (KVM, VMWare Server, whatever), and you want your guest XP Pro instance to have more than two cores?  On QEMU+KVM, there's no way to lump virtual CPUs as cores on a virtual physical processor, and there doesn't appear to be one on VMWare ESX Server, either. So how would you do it?&lt;br/&gt;&lt;br/&gt;The particular scenario, in this case, is automated testing of software that's supposed to run on XP Pro with systems between four and eight cores.  While it stands to reveal interesting bugs, running it on only two cores is non-optimal.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6149174824118047904?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6149174824118047904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/question-testing-virtualized-xp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6149174824118047904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6149174824118047904'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/question-testing-virtualized-xp.html' title='[question] Testing Virtualized XP installs with more than two CPUs.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1151008994216721833</id><published>2010-04-02T00:34:00.001-04:00</published><updated>2010-04-02T00:34:33.110-04:00</updated><title type='text'>Quote from my boss from a couple minutes ago</title><content type='html'>Working late tonight, wrapping things up. Boss just gave me this little gem:&lt;br/&gt;&lt;br/&gt;I don't know if I said it&lt;br/&gt;So you'll have to have to ignore the repeat&lt;br/&gt;But I need to make sure I said it&lt;br/&gt;...I forgot what I was going to say.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1151008994216721833?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1151008994216721833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/04/quote-from-my-boss-from-couple-minutes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1151008994216721833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1151008994216721833'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/04/quote-from-my-boss-from-couple-minutes.html' title='Quote from my boss from a couple minutes ago'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1678980282573924882</id><published>2010-03-26T12:46:00.001-04:00</published><updated>2010-03-26T12:46:55.477-04:00</updated><title type='text'>[TSoC] [UPS, USB, X10] X10 UPS and USB power supplies.</title><content type='html'>Observations:&lt;br/&gt;* X10 was once used to allow remote control of power outlets. It operated by adding a small set of pulsed high-frequency modulations on top of your home's internal AC. Take a peek at it with an oscilloscope some time; it's pretty cool.&lt;br/&gt;* UPS devices report themselves well over USB, but that takes up one of a computer's external USB ports.&lt;br/&gt;* In most systems I've seen and built, there are spare USB headers left on the board after building a system.&lt;br/&gt;&lt;br/&gt;Proposal:&lt;br/&gt;Taking these three in context, consider having a UPS self-report its status by doing a controlled modulation of its AC output. Have a computer's power supply be capable of receiving and interpreting these signals. Have that power supply plug into a spare USB header on the motherboard, to provide those communications onward to the system.&lt;br/&gt;&lt;br/&gt;Benefits:&lt;br/&gt;* Avoid using an external USB port&lt;br/&gt;* Allow multiple computers powered off of the same UPS to be simultaneously aware of their power source's state.&lt;br/&gt;&lt;br/&gt;Drawbacks:&lt;br/&gt;* AC output of UPS can't be a perfect sine wave, much as that would be ideal. (Though most output a stepped approximation, anyway.)&lt;br/&gt;* Requires that the PC's power supply be able to interpret the signals.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1678980282573924882?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1678980282573924882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/tsoc-ups-usb-x10-x10-ups-and-usb-power.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1678980282573924882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1678980282573924882'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/tsoc-ups-usb-x10-x10-ups-and-usb-power.html' title='[TSoC] [UPS, USB, X10] X10 UPS and USB power supplies.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5582794407537339671</id><published>2010-03-25T18:10:00.001-04:00</published><updated>2010-03-25T18:10:33.330-04:00</updated><title type='text'>For the last time, no, I Won't be a fan of "Google Fiber for Grand Rapids"</title><content type='html'>(This is going out to a whole bunch of places, not just Facebook.)&lt;br/&gt;&lt;br/&gt;I Won't become a fan of Google Fiber for Grand Rapids, for a couple reasons. Let's start with the big one: I don't want my Internet traffic primarily channeled by a company whose primary revenue source stems from figuring out how to show me the ads I'm most likely to click on.  That's a very, very direct incentive for them to do traffic analysis and directly watch the sites I visit so that they can figure out what I'm interested in, and thus what I might buy, and thus what ads to show me.&lt;br/&gt;&lt;br/&gt;No, AdBlock doesn't fix things; avoiding being shown ads wouldn't stop the incentive for analysis any more than a boycott on Wendy's for serving meat helps PETA.&lt;br/&gt;&lt;br/&gt;I'm sorry, but I'm just not interested. Even if they promise not to do privacy-invasive things, they ultimately can't help it; it makes too much business sense for them to set up a transparent HTTP proxy and build up their Analytics and Adsense statistical bases. *I* would, if I were them. If they don't, then they're stupid; they would be ignoring the opportunity to blend together geographical and demographic awareness into their ad business, and sell localized Adsense ads with better accuracy than the ones you already see. (From Jenison, I get offers to "meet singles in Kalamazoo" ... Kalamazoo is a long ways away from me, but happens to be where the other end of this DSL connection sits.)&lt;br/&gt;&lt;br/&gt;So, no, I'm not a fan of Google Fiber.&lt;br/&gt;&lt;br/&gt;The second reason I won't become a fan of Google Fiber is the same reason I don't plaster my car with bumper stickers; I don't care to broadcast my taste, appreciation, like or dislike of every single cause, organization or business that flies across my radar.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5582794407537339671?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5582794407537339671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/for-last-time-no-i-won-be-fan-of-fiber.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5582794407537339671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5582794407537339671'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/for-last-time-no-i-won-be-fan-of-fiber.html' title='For the last time, no, I Won&amp;#39;t be a fan of &amp;quot;Google Fiber for Grand Rapids&amp;quot;'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7416546502797853217</id><published>2010-03-20T21:39:00.001-04:00</published><updated>2010-03-20T21:39:19.757-04:00</updated><title type='text'>[TSoC] A different kind of cell phone service</title><content type='html'>Anyone notice that cell providers these days tend to not charge roaming fees? Anyone notice that their phone itself might report itself as roaming as often as not, without it making a practical difference?  What about pre-paid phones? How many of those aren't tied to a particular network at all?&lt;br/&gt;&lt;br/&gt;If a cell service provider can provide phone service that costs the same whether you're on their towers or not, what's to stop a towerless cell provider from providing service using a phone that doesn't care whether it's connected to the service provider via CDMA, GSM or an encrypted SIP connection tunneled across Wifi or WiMAX?  Heck, any of the existing SIP/IAX2 trunking providers could potentially expand into that arena, and people wouldn't necessarily require a POTS phone number to call or be called. (Though, rather than calling a Skype ID, someone could simply call me at phone.michael.mol.name.)&lt;br/&gt;&lt;br/&gt;Admittedly, toggling between cell and 802.11abgn radios will reduce battery life, and the phone would have to be a tad smarter to manage more of the service provider hand-offs itself, but that price is already being paid by smartphone owners.&lt;br/&gt;&lt;br/&gt;Ordinarily, I'd be one of those arguing back "you can take my landline out of my cold, dead hands", but I've somehow managed to never have a landline to my name, nor one that people call when they want to reach me since before I even turned 18. With the drop in landline usage, and the pervasive increase in mobile phone usage, it strikes me as imminently doable.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7416546502797853217?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7416546502797853217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/tsoc-different-kind-of-cell-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7416546502797853217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7416546502797853217'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/tsoc-different-kind-of-cell-phone.html' title='[TSoC] A different kind of cell phone service'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4936046019429559259</id><published>2010-03-19T16:59:00.001-04:00</published><updated>2010-03-19T16:59:18.282-04:00</updated><title type='text'>Have I fallen so far?</title><content type='html'>I once commanded legions of GI Joe action figures; they would march to their death at my guidance and whim. Have I fallen so far?&lt;br/&gt;&lt;br/&gt;Water once obeyed my guidance, flowing through pipe, hose and tube before sprinkling me amidst glorious sunshine. Have I fallen  so far?&lt;br/&gt;&lt;br/&gt;The sands themselves once moved aside under my machinations; the formation rivers, gorges, dams and lakes occurred at my influence. Have I fallen so far?&lt;br/&gt;&lt;br/&gt;The frozen wastelands would strip themselves bare, the ice and snow forming men as tall as taller than I was. Have I fallen so far?&lt;br/&gt;&lt;br/&gt;The trees would shed their leaves, simply for my joy and benefit. Have I fallen so far?&lt;br/&gt;&lt;br/&gt;Yes, I have fallen, but the world has turned up-side down. It is now my role to serve those who will come after me. I have risen far.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4936046019429559259?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4936046019429559259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/have-i-fallen-so-far.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4936046019429559259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4936046019429559259'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/have-i-fallen-so-far.html' title='Have I fallen so far?'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5123382668598765230</id><published>2010-03-18T14:59:00.001-04:00</published><updated>2010-03-18T14:59:31.687-04:00</updated><title type='text'>[Photography] 16:9</title><content type='html'>I want to get into photographing at a 16:9 aspect ratio.&lt;br/&gt;&lt;br/&gt;When composing for 4:3, the rule of thumb is to divide your image into a 3x3 grid, and keep a distinct element of the picture in each grid component.  I suspect that, in a 16:9 aspect ratio, the composition rule might best change to 5x3. I already know how I'd want to use the six extra grid squares in various centered and offset scenarios.&lt;br/&gt;&lt;br/&gt;Anyone know of anamorphic lenses for photography? I haven't upgraded from my FujiFilm Finepix yet, so I'm pretty flexible as far as compatibility...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5123382668598765230?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5123382668598765230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/photography-169.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5123382668598765230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5123382668598765230'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/photography-169.html' title='[Photography] 16:9'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6256372614155327993</id><published>2010-03-18T14:47:00.001-04:00</published><updated>2010-03-18T14:47:17.919-04:00</updated><title type='text'>[Linux, libvirt, kvm, snapshots] Piecing together an open-source equivalent of VMWare Workstation</title><content type='html'>Well, first, I should mention I've been spending a lot of time in KVM lately; paycheck depends on being able to code on Windows, and I don't have any hardware I want to put Windows on the bare metal of.  libvirt+KVM works nicely as a virtual machine, and some parts of its feature set rival that of VMWare Workstation right out of the box.  For example, the latest version of Workstation I have access to doesn't support direct access to PCI devices. KVM does (though I haven't played with it).  Of course, there are things that Workstation does better than libvirt+kvm, as well.  Let's see what's missing:&lt;br/&gt;&lt;br/&gt;* Snapshots, full clones, linked clones&lt;br/&gt;* Resize guest display to match viewer viewport. (I had to resort to some XML editing in order to get a video device I could make larger than 1024x768, and that's still not as nice as having the guest framebuffer resize automagically)&lt;br/&gt;* Drag-and-drop between guest and host.&lt;br/&gt;* Application-in-host (Workstation calls this "Fusion", and it's awesome if you need it. I still need to send that fruit basket to the couple developers who wrote that feature.)&lt;br/&gt;* Suspend guest VM.&lt;br/&gt;* Has D3D9 acceleration (for Windows guests on Windows hosts, which wouldn't work for me anyway), which is better than the no-graphics-hardware-acceleration I face with libvirt+kvm. (There is an SDL client, but libvirt's dynamic privilege toying with PolicyKit doesn't manage to get it to work on my system.)&lt;br/&gt;&lt;br/&gt;Things that libvirt+KVM does better than Workstation (at least as of the latest version I have access to)&lt;br/&gt;* Will give as many as 16 virtual processors to a guest.&lt;br/&gt;* The VM definition file is XML, and well-documented on their website; manual tweaks are pretty easy.&lt;br/&gt;* Has the ability to not affix a MAC address to a guest. While this causes Windows guests to destroy old NICs and create new ones every time you reboot, it will make cloning much easier.&lt;br/&gt;&lt;br/&gt;So let's see what we can do about the things that libvirt+kvm doesn't quite do on it own yet.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;D3D9 Acceleration&lt;/strong&gt;&lt;br/&gt;Not going to happen; host doesn't have Windows.  On the other hand, I &lt;em&gt;can&lt;/em&gt; put in another video card and give a guest VM direct access to it. I haven't tried it, but it could work, so long as I don't allow the host's X server to use that card.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Susped guest VM&lt;/strong&gt;&lt;br/&gt;Not going to happen until there's a to specify a file to hold a RAM image, at least. (I could easily see them mmaping that file, too; it seems like a perfectly kosher way to leverage the x86 MMU on 64-bit systems.) No such option exists, currently.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Application-in-host&lt;/strong&gt;&lt;br/&gt;On Windows and Linux guests both, this requires some awareness of and integration with the guest window manager.  There are probably VNC servers that can handle that individually, and there are already VNC servers for both guest operating systems that will serve up individual windows. If you put a VNC client on the host in Listen mode, you could find a way to have every launched application connect to that client. It'd require some real script-fu in the guest, though, and there's also the problem that VNC doesn't support drag-and-drop between clients. (And typically isn't aware of it at &lt;em&gt;all&lt;/em&gt;...)&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Drag-and-drop between guest and host&lt;/strong&gt;&lt;br/&gt;That'd require some extension to the VNC protocol, so I can't do that right now. (OTOH, it would be a very, very good general enhancement to the protocol!)&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Resize guest display to match viewer viewport&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;VMWare uses the same core protocol between its viewing interface and its virtualized video card, and its viewing interface supports the viewport and guest triggering each other to resize. (Admittedly, I don't know for certain that the viewport-triggers-guest event is communicated using the same channel.)  It seems likely that it could be done, but will require an extension to the VNC protocol.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Snapshots, full clones, linked clones&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Some of this is something I might actually be able to do soonish (and I'll certainly be working on it!)  Linux has LVM, which, at the very least, will let me take a snapshot of a base volume, and do copy-on-write for maintaining things. I don't know that it will let me take a snapshot of a snapshot, though, or give me simultaneous r/w access to multiple snapshots of the same base view. If it does, that would put it pretty close to VMWare Workstation's capability. If not, it puts me closer to VMWare Server's. VMWare Workstation allows you to take a snapshot after running on a snapshot, which gives you base-&gt;snapshot-&gt;snapshot, and you can choose to run any of those you like without affecting the others. It also allows you to create a linked clone of any of them, which amounts to creating a snapshot that you can run at the same time as you run a snapshot from that tree.  VMWare Server, on the other hand, only has two states for a VM: current snapshot, and current state. In VMWare Server, you can always replace your current snapshot with your current state ("Take snapshot") or your current state with your current snapshot ("Revert to snapshot"), but that's it.&lt;br/&gt;&lt;br/&gt;Notice I'm not talking about VMWare Server ESX*; that beast's snapshot model is a little closer to Workstation's.&lt;br/&gt;&lt;br/&gt;Out of all of these things, the snapshots and clones are the part I need to work on the most. Right now, snapshots and clones are pretty much the same thing; copy the disk image, copy the XML file, and modify the XML file to point to the copied disk image's location.  That gets pretty expensive, diskwise, pretty fast.  LVM's copy-on-write should help with that a &lt;em&gt;lot&lt;/em&gt;.  So would a filesystem with built-in deduplication, but ext4 (what I'm running on right now) doesn't have that. (I can think of a bunch of other reasons a filesystem with built-in deduplication would be awesome, too. Maybe I'll brainstorm on some different performance tradeoff option ideas in the near future.)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6256372614155327993?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6256372614155327993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/linux-libvirt-kvm-snapshots-piecing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6256372614155327993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6256372614155327993'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/linux-libvirt-kvm-snapshots-piecing.html' title='[Linux, libvirt, kvm, snapshots] Piecing together an open-source equivalent of VMWare Workstation'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5189500655464422029</id><published>2010-03-16T02:03:00.001-04:00</published><updated>2010-03-16T02:03:50.136-04:00</updated><title type='text'>[Techtalk Tuesday] Bittorrent and swarm stability</title><content type='html'>I don't know if I've blogged on this before, but it's been on my mind a while. I've noticed that Bittorrent swarms tend to be unstable.&lt;br/&gt;&lt;br/&gt;Bittorrent chops up the data into multiple pieces, and then the various clients in the swarm play mix and match until they have all the pieces they need for a full copy.  Then (if they're well behaved) they stick around for a bit longer and give more copies of the pieces to other members of the swarm.&lt;br/&gt;&lt;br/&gt;When a client joins the swarm, it gets a mapping of all the pieces in the swarm, and a listing of who has copies of which pieces.  It then asks whoever it can for the pieces it still needs to complete its copy.&lt;br/&gt;&lt;br/&gt;The problem I've observed is that if one piece has copies in more clients than another piece, then that first piece will tend to be copied to more clients still, simply by being more available, while that rarer piece becomes more relatively rare.  This causes data distribution in swarms to grow "clumpy", with the availability gap between the most common and the least common piece growing wider and wider. If the only copies of a piece exist on swarm members which already have full copies, and those members drop out, then the swarm can't form more complete copies until someone with a full copy rejoins the swarm.  Meanwhile, the rest of the swarm members copy from each other until they're all not-quite-complete, but don't get any farther than that.&lt;br/&gt;&lt;br/&gt;What I'd like to suggest are three changes to the Bittorrent swarm behavior, both on the "server" and "client" side of the connection.&lt;br/&gt;&lt;br/&gt;The change to the client is pretty simple; look at the map of available pieces and nodes, and try to grab the rarest ones first.  Even if the client is misbehaved and doesn't plan on contributing to the health of the swarm, it still makes sense to grab the rarest pieces before they may disappear.&lt;br/&gt;&lt;br/&gt;The first change to the server is a bit trickier, and would require support from the client.  If the client asks for piece A, the server should give it piece A--after it gives it piece B, which is currently rare in the swarm, and it knows the client doesn't already have it.&lt;br/&gt;&lt;br/&gt;Aside from requiring the client to recognize that the data it was handed wasn't initially the data it asked for, I can see one other problem with the latter approach.  If the client is already asking for piece B from another node, then getting a copy of piece B from the node from which it asked for piece A is a waste of time and bandwidth.  It could inform the server which pieces it's grabbing, but that would also be loss to efficiency.  A compromise might be met where the swarm would only support slipping in pieces from the rarest N% set of pieces, and so the client would only be inclined to report any from that set that it was already grabbing. &lt;br/&gt;&lt;br/&gt;Varying the client's pull pattern to either fall within, overlap with, fall near or be distant from that N% segment each have their advantages and disadvantages, but I'm not sure which would outweigh the others. On one hand, avoiding the N% bracket is a destabilizing influence on the swarm, but saves incident overhead.  On the other hand, favoring the N% bracket means the client grabs the rarest packets quickly, but increases the incident overhead. Favoring just outside the N% bracket means avoiding the incident overhead, but destabilizes the swarm, and makes the assumption that there are a number of "slipping" seeders.&lt;br/&gt;&lt;br/&gt;The second change to the seeder side would be to *proactively* push data to other clients, based on observed connectivity--to some extent, each client is aware of the bandwidth and uptime of other clients.  If a client is observed to have a lot of bandwidth available to it, or is observed to be a stable member at a lower level of bandwidth, it makes sense for the swarm to push rarer pieces to places where they can be copied from more quickly. (For the stable, low-bandwidth clients, this had the added benefit of reducing their particular risk of missing out on rare pieces even more.)&lt;br/&gt;&lt;br/&gt;Just some thoughts...&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5189500655464422029?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5189500655464422029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/techtalk-tuesday-bittorrent-and-swarm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5189500655464422029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5189500655464422029'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/techtalk-tuesday-bittorrent-and-swarm.html' title='[Techtalk Tuesday] Bittorrent and swarm stability'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6259161580896507527</id><published>2010-03-15T16:12:00.001-04:00</published><updated>2010-03-15T16:12:05.669-04:00</updated><title type='text'>Memetic Mutation</title><content type='html'>We're no strangers to memes&lt;br/&gt;You know the rules, and so do I&lt;br/&gt;A full mutation's what I'm thinking of&lt;br/&gt;You wouldn't get this from any other guy&lt;br/&gt;I just gotta tell you what I'm thinking&lt;br/&gt;Gotta make you lose the game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6259161580896507527?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6259161580896507527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/memetic-mutation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6259161580896507527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6259161580896507527'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/memetic-mutation.html' title='Memetic Mutation'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3684142730494499839</id><published>2010-03-15T13:40:00.001-04:00</published><updated>2010-03-15T13:40:56.224-04:00</updated><title type='text'>Unqualified domains</title><content type='html'>So I've got a home network and my own bind install.  Let's say my local domain is x, so dodo might be dodo.x, alice might be alice.x, and whiterabbit would be whiterabbit.x.  If I ping alice.x or alice.x, they both resolve to the same IP address.&lt;br/&gt;&lt;br/&gt;Now let's throw another domain in the mix, accessible over VPN.  This domain is also unqualified, and let's call it y, and say it has hosts alpha, beta and gamma, for alpha.y, beta.y and gamma.y.&lt;br/&gt;&lt;br/&gt;Now, in Windows, I can tell the system to try resolving unqualified domains with a domain of x first, followed by y.  That way, I can ping alpha, and it resolves to alpha.y, and I can ping whiterabbit, and it resolves to whiterabbit.x.&lt;br/&gt;&lt;br/&gt;Under Linux, when I try to ping gamma, it doesn't resolve, but when I try to ping gamma.y, it does. Under a Windows VM routed through the same machine, pinging gamma resolves to the same thing as gamma.y. How do I get the Linux host to exhibit the same behavior? (No, I'm not going to route the host's DNS through the Windows guest.)&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3684142730494499839?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3684142730494499839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/unqualified-domains.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3684142730494499839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3684142730494499839'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/unqualified-domains.html' title='Unqualified domains'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4414539483471646176</id><published>2010-03-14T04:07:00.001-04:00</published><updated>2010-03-14T04:07:44.141-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stepmania'/><title type='text'>[StepMania] I've still got it. [blogging] LJ and ping.fm</title><content type='html'>So I fired up StepMania again on Saturday. It'd been over a year since I'd played. Life's been busy, opportunity slim, the pad needed tuning, and opportunity has been slim.&lt;br/&gt;&lt;br/&gt;I dropped into stepmania a couple weeks ago and got the compile issue resolved; they gave me a revision to update to that worked great.  Saturday, I tuned the pad.&lt;br/&gt;&lt;br/&gt;Fired up StepMania, and all was good.&lt;br/&gt;&lt;br/&gt;I gave a run through a few DDR 2nd mix and DDR 3rd mix songs, Franka Potente's "Believe", and a couple variants of Sonic the Hedgehog songs. (Most of those songs make pretty good hard techno. I'd venture a guess it's because of the hardware they were originally written to play from.)&lt;br/&gt;&lt;br/&gt;I've discovered that the only thing that really stops me from getting a good score on a five-foot song is how many songs I played leading up to it; my read speed and agility are good, but I need to work on my endurance so I can get more songs out.&lt;br/&gt;&lt;br/&gt;I also need to work on breathing while I dance; three breaths for a 120s song is probably not a healthy rate. This is supposed to be &lt;em&gt;aerobic&lt;/em&gt; exercise, not &lt;em&gt;an&lt;/em&gt;aerobic.&lt;br/&gt;&lt;br/&gt;In other news, I've finally got posting to LJ working decently.  I write to my post-by-email address, copy the message body into a text editor, replace n (or rn, if I'm on a Windows box) with &lt;br/&gt;, and paste that into ping.fm.  Then I send the original message.&lt;br/&gt;&lt;br/&gt;Conveniently, this gives me a place to put draft posts, even though I'm using ping.fm. Very nice.&lt;br/&gt;&lt;br/&gt;(And while LJ strips my email signature, I leave it in for the ping.fm posts. I like it. That's why it's my signature.)&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4414539483471646176?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4414539483471646176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/stepmania-i-still-got-it-blogging-lj.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4414539483471646176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4414539483471646176'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/stepmania-i-still-got-it-blogging-lj.html' title='[StepMania] I&amp;#39;ve still got it. [blogging] LJ and ping.fm'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5788497847297433138</id><published>2010-03-13T20:27:00.001-05:00</published><updated>2010-03-13T20:27:59.177-05:00</updated><title type='text'>Applying StumbleUpon to code.</title><content type='html'>While I don't know any of the specifics behind StumbleUpon's recommendation and rating systems, I've observed a large number of up-trends and down-trends of StumbleUpon referral traffic while watching Rosetta Code's analytics.  Based on my observations of how traffic flow works, I suspect the same system could be adapted to random-walking code bases.&lt;br/&gt;&lt;br/&gt;Why would you want to random-walk a code base? I can think of a couple reasons. First, you're bored, stuck or stalled, and you need a distraction from the function you're working on. Second, perhaps you need to familiarize yourself with the code base a bit better better by randomly jumping around to different files, classes and functions.&lt;br/&gt;&lt;br/&gt;Here are a few ways to identify a place in code, thinking strictly from a C++ perspective. (Other languages have their own ideal ways of thinking about code at a component level):&lt;br/&gt;* File::Line&lt;br/&gt;* Class&lt;br/&gt;* Function&lt;br/&gt;&lt;br/&gt;At a slightly broader perspective (from a Visual Studio perspective. Other development environments have their own terminology):&lt;br/&gt;* Project&lt;br/&gt;* Solution&lt;br/&gt;&lt;br/&gt;Getting meta:&lt;br/&gt;* Bug report&lt;br/&gt;* Bug comment&lt;br/&gt;&lt;br/&gt;Of course, a line in a file probably exists in association with a class, and with a function. So you would likely have an implicit relationship there. A class or function is likely to have a relationship with a project and solution (or several, if the file it exists in is shared among multiple projects). So there are more implicit relationships.  A bug report may have some association with one of the other location identifiers. More implicit relationships.&lt;br/&gt;&lt;br/&gt;So that's the content side of things.  What about the user side of things?&lt;br/&gt;&lt;br/&gt;StumbleUpon is Yet Another Social Network. You have contacts whose likes and dislikes affect where their recommendation algorithm sends you, and your likes and dislikes affect their browsing experience.&lt;br/&gt;&lt;br/&gt;While the "social networking is going to solve all your business problems" fad went away with the dot-com bust, there's still some value in positional association. Let's say you've got a project development team of four people, and they all tend to work on the same product or product component. Or maybe you've got a company with thirty developers, and they're all working on the same gigantic codebase. That's akin to StumbleUpon's contacts.&lt;br/&gt;&lt;br/&gt;While they're random-walking through their codebase, the developers' individual interests and disinterests would draw each others' attention to various parts of the code base, not as something to direct their focus on, but as something to let their brains passively absorb and toy with while they're taking a step back from the draining problem they're already focused on.&lt;br/&gt;&lt;br/&gt;Anyway, just a thought.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5788497847297433138?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5788497847297433138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/applying-stumbleupon-to-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5788497847297433138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5788497847297433138'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/applying-stumbleupon-to-code.html' title='Applying StumbleUpon to code.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3341827125315885287</id><published>2010-03-12T00:47:00.001-05:00</published><updated>2010-03-12T00:47:26.399-05:00</updated><title type='text'>Hardware RNGs</title><content type='html'>Generation of good random data is hard. Even operating systems have a tricky time doing it.  Tools like puttygen implore you to move your mouse around a lot while it's generating a key, in order to add entropy to the system.  Generating a gpg key has similar problems, except that the tool discards data given to it that's not random &lt;em&gt;enough&lt;/em&gt;, and this drains the kernel of entropy used to feed the internal PRNG. (Read the man page; it warns you about it.)  If you're on Linux, and you want to see this in action, do something like this:&lt;br/&gt;&lt;br/&gt;"cat /dev/urandom"&lt;br/&gt;&lt;br/&gt;You'll get a flood of garbage data, then a trickle, then it will stop. You've drained the kernel's entropy pool. Move your mouse around (you're not doing this on some server, &lt;em&gt;right?&lt;/em&gt;), and you'll see the trickle resume.&lt;br/&gt;&lt;br/&gt;So you can get good random numbers by reverse-biasing a diode and listening for thermal noise, but you only get those numbers at a low rate.&lt;br/&gt;&lt;br/&gt;That has to be the most trivially parallelizeable hardware problem I've read of in ages.  How many millions of &lt;em&gt;transistors&lt;/em&gt; can we fit in a 1mm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3341827125315885287?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3341827125315885287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/hardware-rngs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3341827125315885287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3341827125315885287'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/hardware-rngs.html' title='Hardware RNGs'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-9036801088562387957</id><published>2010-03-11T02:14:00.001-05:00</published><updated>2010-03-11T02:14:26.018-05:00</updated><title type='text'>So the new campaign world...</title><content type='html'>I'm building a new campaign world. I don't know that I'll be able to fully describe this without pics, but here goes:&lt;br/&gt;&lt;br/&gt;(Note, this isn't a final description, even of the parts I'm describing. Things are subject to change.)&lt;br/&gt;&lt;br/&gt;Premise: The material plane is formed by the intersection of several other planes. The intersection is caused by a loop of (something) that acts somewhat like a gravitational field in a multidimensional space, drawing all the planes together, with the strongest point of intersection following the ring. (Not the interior of the ring, but the ring edge itself.)  The ring itself is deep underground. (How deep? I dunno. Deep enough for dwarves to get at it, anyway.)&lt;br/&gt;&lt;br/&gt;Whenever I talk about the ring, I'm talking about the actual torus itself, not the entire region it encompasses.  Also, N, for now, is 20. I may scale it up or down. I don't know. "I" needs to be calculated based on the concept of the inverse cube law mentioned below, but I don't feel like doing the calcs right now.&lt;br/&gt;&lt;br/&gt;There are six primary zones, relating to the ring:&lt;br/&gt;* A2 -- Region 0-I miles from the ring.&lt;br/&gt;* A1 -- Region I-2I miles from the ring.&lt;br/&gt;* B -- Region 2I-(N-2I) miles from the ring.&lt;br/&gt;* C1 -- Region (N-2I)-(N-I) miles from the ring.&lt;br/&gt;* C2 -- Region N-(N-I) miles from the ring.&lt;br/&gt;* D -- Region greater than N miles from the ring.  There are two of these, one on the outer side of the ring, and one circular region on the inside of the ring, a sort of interior dead zone.&lt;br/&gt;&lt;br/&gt;Notable artifacts of this:&lt;br/&gt;&lt;br/&gt;* Magic is strengthened in proximity to the ring, though the strengthening effect fades according to an inverse-cubed law. (See "inverse square law", and bump it up a dimension)&lt;br/&gt;&lt;br/&gt;Region D: magic has faded to uselessness, and the material plane has faded to void. Not space, not vacuum, just void. No rules of physics apply there. Some who've touched it are said to have ascended, while most are never heard from again.&lt;br/&gt;&lt;br/&gt;Region C2: the material plane takes on a strong form of the chaos property. (It's been a while since I read the old 3.0 D&amp;D splatbooks, but I remember there being a chaos plane or some such.)  These are known as the "outer strangelands."&lt;br/&gt;&lt;br/&gt;Region C1: the material plane takes on a weak form of the chaos property. These are known as the "inner strangelands."&lt;br/&gt;&lt;br/&gt;Region A2: the material plane takes on the strong form of the "wild magic" property.&lt;br/&gt;&lt;br/&gt;Region A1: the material plane takes on the weak form of the "wild magic" property.&lt;br/&gt;&lt;br/&gt;Region B: the material plane behaves normally.&lt;br/&gt;&lt;br/&gt;* Climate varies greatly near the ring&lt;br/&gt;&lt;br/&gt;Region A1: Small, adjacent regions have very, very different climates. Storms are common as these incompatible climates mix at their boundaries.&lt;br/&gt;Region A2: As with A1, but the climate regions are much larger.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Other notable things about the ring:&lt;br/&gt;&lt;br/&gt;There are two tall mountains on the "south east" corner.  One of them I've nicknamed "nattie" for the time being.  Deep in the core of Nattie is an area where the hypermagic ring is twisted into a Gordian knot, leading to stronger localized effects.  Closer to the ring's center is another mountain, which I've nicknamed "Everest."  At an altitude fairly close to Nattie's peak, the "sun" (some bright light source; I haven't figured out exactly how hot it is) follows the hypermagic ring as something like a track.  Day and night in the world are simply the sweeping of Everest's shadow as one, large sundial. The "dead zone" region at the center of the ring also casts a shadow; the lack of remotely consistent physics prevents light from traversing it.  As a result, most of the world has two periods of darkness for every cycle of the sun.&lt;br/&gt;&lt;br/&gt;There is one small anomaly at the "north west" corner.  Dwarves dug deep under the surface of the world, and managed to intentionally create a loop twist of their own in one spot on the hypermagic ring.  The hypermagic ring would very much prefer to remain circular, and so it will untwist itself eventually, given the chance.  When that happens, all sorts of things will happen. That's not a key specified plot point, by the way; it's just a fact of the world. You make your own plots; I'm just defining the world at a static point.&lt;br/&gt;&lt;br/&gt;There is one ocean covering the "south west" quadrant of the world, lined with a short region of hills followed by a mountain range. (The same mountain range that contains Nattie, Everest and the Dwarven magic project.  The ocean extends from the outer C2 through the outer C1, B, A2, A1, inner A1, inner A2 and into the inner B regions.&lt;br/&gt;&lt;br/&gt;The oceanic section of the A2 and A1 regions are considered perilous, and almost nobody crosses it except in times of emergency. Think of it like the dead region of wind flow near the equator as feared by wind-powered sailors hundreds of years ago, except that instead of a lack of motive energy, magic just goes wonky there.&lt;br/&gt;&lt;br/&gt;Instead, trade between the south and west edges of the ocean follows two primary routes.  One that sticks to the outer B region, and one that sticks to the inner B region.  The Inner Sea is relatively crowded, with privateers and pirates, but also a large number of coastal trade points.  The Outer Sea is fairly empty, but there's no room for error; if you have problems, or if you run low on supplies, you're either going to have to cross the A1/A2 regions to get to the Inner sea where you might find help, or you're going to be lucky enough to be near shore or "Atlantis" (nickname, natch) the island city that spans from the outer B region to the outer A2, used as a nigh-lawless research, trade and pirate stronghold.&lt;br/&gt;&lt;br/&gt;At the border of outer B and outer A1, on the ocean shores, are the two largest port cities.  The Inner Sea has ports that are far more numerous and dispersed.&lt;br/&gt;&lt;br/&gt;...and that's all I have figured out for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-9036801088562387957?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/9036801088562387957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/so-new-campaign-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/9036801088562387957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/9036801088562387957'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/so-new-campaign-world.html' title='So the new campaign world...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3466240783017829661</id><published>2010-03-11T00:01:00.001-05:00</published><updated>2010-03-11T00:01:38.413-05:00</updated><title type='text'>Putting together a new campaign world</title><content type='html'>I put together the premise behind a new "sandbox"-style campaign, along with the geologic, botanic and economic portions of the map. Need to do the demographic portion, still, as well as follow the intersections into the other planes. Then comes the political, followed by finishing the biome and building the NPC cast. I'm going to need HTML, CSS, JS and transparent PNGs to tie this all together, legibly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3466240783017829661?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3466240783017829661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/putting-together-new-campaign-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3466240783017829661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3466240783017829661'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/putting-together-new-campaign-world.html' title='Putting together a new campaign world'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3663502552829433144</id><published>2010-03-10T19:07:00.001-05:00</published><updated>2010-03-10T19:07:46.124-05:00</updated><title type='text'>I have a feeling the table code is going to break horribly.</title><content type='html'>&lt;table width="160" border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt; &lt;td valign="bottom" align="CENTER" &gt;&lt;br /&gt;&lt;div style="font:Arial, Helvetica, sans-serif; font-size:12px"&gt;&lt;a href="http://editorialcartoonists.com/cartoon/display.cfm/83100"&gt;&lt;img  border = "0"  width="150" height="102" src="http://editorialcartoonists.com/cartoons/SteinE/2010/SteinE20100310_thm.jpg" alt = "Cartoon by Ed Stein Justice Served" &gt;&lt;/a&gt;&lt;br&gt;(&lt;a href="http://editorialcartoonists.com/cartoon/display.cfm/83100" style="color:#CC6731 "&gt;click here to view&lt;/a&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="top"&gt;&lt;div  style="font:Arial, Helvetica, sans-serif; font-size:12px"&gt;&lt;strong&gt;Ed Stein&lt;br&gt;Self&lt;br&gt;&lt;/strong&gt;Mar 10, 2010&lt;br&gt; &lt;/div&gt;&lt;div style="font:Arial, Helvetica, sans-serif; font-size:10px"&gt;&lt;a href="http://editorialcartoonists.com" style="color:#CC6731"&gt;EditorialCartoonists.com&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3663502552829433144?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3663502552829433144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/i-have-feeling-table-code-is-going-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3663502552829433144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3663502552829433144'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/i-have-feeling-table-code-is-going-to.html' title='I have a feeling the table code is going to break horribly.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-208355534872716528</id><published>2010-03-09T00:40:00.001-05:00</published><updated>2010-03-09T00:40:17.941-05:00</updated><title type='text'>So I've put in nearly 3000 miles on my car in the last two weeks.</title><content type='html'>Two solid runs of 1000 miles, a solid(ish) run of about 450 miles, and, just Monday morning, a solid run of about 300 miles.&lt;br /&gt;&lt;br /&gt;I think she (the car) likes it; she didn't give me a single complaint. I like driving distance. I'm looking forward to putting more miles on her at the right opportunities.&lt;br /&gt;&lt;br /&gt;I have a family member who's pushing her car (A '91) to hit the 500k mark, and it's almost there. My 1996 Buick Regal has about 130k on it, but I'm not pushing for a mile marker, I'm pushing for 2016, when it will be 20 years old. Theoretically, it'd be eligible for a Michigan historical vehicle license.  I bet I can still have her running as well as she is today. I get anywhere from 26 to 38 mpg, depending on road conditions and how I drive, but I haven't tracked my mileage too closely.&lt;br /&gt;&lt;br /&gt;I like my car. We work well together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-208355534872716528?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/208355534872716528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/so-i-put-in-nearly-3000-miles-on-my-car.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/208355534872716528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/208355534872716528'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/so-i-put-in-nearly-3000-miles-on-my-car.html' title='So I&amp;#39;ve put in nearly 3000 miles on my car in the last two weeks.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6302881268838474604</id><published>2010-03-08T22:23:00.001-05:00</published><updated>2010-03-08T22:23:41.362-05:00</updated><title type='text'>Magnetized gorillapod</title><content type='html'>So my brother asked me if I could cross a camera &lt;a href="http://www.flickr.com/photos/28208534@N07/sets/72157620071707617/"&gt;magmount&lt;/a&gt; with my &lt;a href="http://joby.com/gorillapod"&gt;gorillapod&lt;/a&gt;, and I've been considering how to do that.&lt;br/&gt;&lt;br/&gt;The tricky part is replacing a gorillapod foot with a magnet.  My current though is to take the existing foot off the link chain, put the head of a bolt in the recess left behind, and secure the bolt by filling the recess with some sort of ceramic or plaster.  Then I'd screw on one of &lt;a href="http://www.kjmagnetics.com/proddetail.asp?prod=MM-D-20"&gt;these&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;The only thing I really don't like about it is that, compared to my existing magmount, which uses one of &lt;a href="http://www.kjmagnetics.com/proddetail.asp?prod=MM-RC-32"&gt;these&lt;/em&gt; rubber feet, the magnetized gorillapod is going to be &lt;em&gt;hell&lt;/em&gt; on surfaces I attach it to; K&amp;J doesn't make the rubber feet for the right size of magnet, and I &lt;em&gt;definitely&lt;/em&gt; don't need the 75lb of surface force provided by their 32mm mounting magnets, which is the smallest size they offer the rubber feet for. (I use one of those 32mm magnets as the basis to my existing magmount, and that's more than enough to keep my camera affixed to the top of my car while &lt;a href="http://www.flickr.com/photos/28208534@N07/sets/72157620130506918/"&gt;driving&lt;/a&gt; down the &lt;a href="http://www.youtube.com/watch?v=iuDTjoFPNvM"&gt;freeway&lt;/a&gt;. (By the way; the reactions you get from people when you start drivingdown the road with what looks like a DSLR on top of your camera can be hilarious; the magmount is low profile enough to not be obvious. I should paint the camera orange/black or something so people get the idea that it's supposed to be there.)  So I've got two things to resolve before I build it.  First, how to make plaster (or some better material equally as cheap to get/make/use.) Second, How to put a protective coating on the magnets so they don't scratch painted surfaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6302881268838474604?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6302881268838474604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/magnetized-gorillapod.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6302881268838474604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6302881268838474604'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/magnetized-gorillapod.html' title='Magnetized gorillapod'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7177252990430501124</id><published>2010-03-08T00:34:00.001-05:00</published><updated>2010-03-08T00:34:41.028-05:00</updated><title type='text'>The problem I see with IPETEE</title><content type='html'>So I just stumbled across &lt;a href="http://newteevee.com/2008/07/09/the-pirate-bay-wants-to-encrypt-the-entire-internet/"&gt;this article&lt;/a&gt;.  It's funny, cause I gave it some thought a few months ago, and there are a few problems with end-to-end encryption as a means of concealment.&lt;br/&gt;&lt;br/&gt;First, activity indicates activity.  So you connect to a tracker that manages prohibited data. Prohibited how? Doesn't matter.  Whether encrypted or not, you have a connection between you and a server managing prohibited data.&lt;br/&gt;&lt;br/&gt;Ok, fine. You jump that hurdle by using something like Tor.&lt;br/&gt;&lt;br/&gt;Second, there's more than just data, there's metadata.  So you don't know what exactly is in a TCP or UDP stream, but you can learn things about it, just the same. What do you know about the packet size? Time between packets? Is a constant data rate maintained? How long does the connection last? Certain types of traffic aren't bandwidth-sensitive, but rather latency-sensitive. VOIP is going to have a distinct pattern. Torrenting is going to have a specific pattern. It's techniques like these that allow forensic specialists to detect hidden TrueCrypt volumes.&lt;br/&gt;&lt;br/&gt;Third, encryption doesn't eliminate the data, it just obscures it, and not perfectly. Even aside from the possibility of cracking the encryption key, it's possible to guesstimate what kind of data an encrypted bitstream represents. I've read of that being used on encrypted hard drives, for example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7177252990430501124?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7177252990430501124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/problem-i-see-with-ipetee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7177252990430501124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7177252990430501124'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/problem-i-see-with-ipetee.html' title='The problem I see with IPETEE'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7660881401131003327</id><published>2010-03-04T23:20:00.001-05:00</published><updated>2010-03-04T23:20:15.339-05:00</updated><title type='text'>Ground drove my computer loopy.</title><content type='html'>So I've spent the last seven hours trying to get my desktop to boot something, anything, that's a full operating system. For much of the time, the system was hanging randomly between POST and loading the boot sector, and for much of the rest of the time, it was consistently hanging when I tried to load a Linux kernel. I even wound up going so far as to flash my BIOS, because I couldn't think of anything else to try that made any sort of sense.&lt;br/&gt;&lt;br/&gt;The flash upgrade had gotten me to the point where I could at least load boot sectors again, and I was able to run memtest off of live CDs, but I couldn't seem to boot into 32-bit or 64-bit Linux, either my installed version or from a couple Xubuntu live CDs.&lt;br/&gt;&lt;br/&gt;I was beginning to suspect some sort of weird flash corruption that was preventing me from using graphics card features, or possibly from switching to protected mode or x64 mode. (I don't know how memtest86+ works, as far as accessing all 8GB of my RAM. I'm pretty sure the BIOS is still in Real mode when it runs its initial sweep, but maybe it's bouncing back and forth between Real and Protected during POST.)&lt;br/&gt;&lt;br/&gt;The thought of &lt;em&gt;another&lt;/em&gt; outlay to continue having a nice computer at home was not appealing.&lt;br/&gt;&lt;br/&gt;Finally, a few minutes ago, I realized something. I had two relatively new pieces of hardware attached to the computer: An APC UPS and a powered USB hub. I disconnected the USB connection between the UPS and the computer, and disconnected the hub, and rebooted the computer.  The 32-bit Xubuntu live CD came right up. Huh.  Reboot, throw in the 64-bit Xubuntu live CD, and *that* came right up. Huh.&lt;br/&gt;&lt;br/&gt;I haven't tried booting off my hard disk yet, and I think that'll require some grub command-line magic to deal with device reordering stemming from the BIOS upgrade and CMOS changes. However, I think it's ultimately workable.&lt;br/&gt;&lt;br/&gt;What I &lt;em&gt;think&lt;/em&gt; happened is that the connection of the UPS and the powered hub to the computer via USB led to a ground loop that was messing with the internals of the USB controller on the motherboard.  See, the powered hub isn't plugged into the UPS; it's a fair bit away from the computer, and I'll have to run an extension cord to get the UPS's power to it.  As long as the operating system didn't try to do too much with that USB controller, things worked fine. That meant I could get into BIOS and tweak things, and it meant I could get into grub and memtest without too much trouble. Well, sortof. Remember how, before the flash upgrade, the system would hang at a random point between POST and loading the bootloader. I think the flash upgrade may have changed part of how it dealt with the USB controller, with the newer version inadvertently working around some of the ground-loop-induced weirdness.&lt;br/&gt;&lt;br/&gt;So, yeah. A little more experience for those weird situations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7660881401131003327?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7660881401131003327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/ground-drove-my-computer-loopy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7660881401131003327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7660881401131003327'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/ground-drove-my-computer-loopy.html' title='Ground drove my computer loopy.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-526793287718458612</id><published>2010-03-04T01:48:00.001-05:00</published><updated>2010-03-04T01:48:45.838-05:00</updated><title type='text'>Depth perception and optics</title><content type='html'>It's often an assumption that two or more vision sources are required for depth perception. That's not strictly true; on one hand, there's simple experience that can teach a monocular person to recognize distances.&lt;br/&gt;&lt;br/&gt;On the other hand, there's this idea I had...&lt;br/&gt;&lt;br/&gt;*sidetrack*&lt;br/&gt;It stemmed from thinking about image stacking in HDR photos.  Image stacking is simply taking several photos of the same object, where the only change between them is a known, measured characteristic of the photograph recording.  Typically, in HDR, it's your exposure adjustment, or how much light you demand your camera collect before saving off the frame. Since your camera's sensor can only precisely measure a finite range of light levels, taking several frames where you move that range around allows you to increase the amount of detail you've captured in bright and dark areas.&lt;br/&gt;&lt;br/&gt;However, image stacking needn't *only* be done with exposure adjustments.  The concept of stacking applies for any variable you can measurably control while observing a scene, and it just happens that exposure adjustment is the most immediately useful setting to vary.&lt;br/&gt;*end sidetrack*&lt;br/&gt;&lt;br/&gt;*second sidetrack*&lt;br/&gt;And now a brief bit about aperture width and depth-of-field.  A camera's aperture is the hole that allows light to pass through and land on its sensor.  It's &lt;em&gt;exactly&lt;/em&gt; analogous to your pupil.  The larger your pupil, the more light passes through and lands on your retina. The smaller your pupil, the less light lands on your retina.&lt;br/&gt;&lt;br/&gt;One weird side effect of optics and aperture size, though, has to do with focusing.  With a narrow aperture (such as when you're outside on a bright, snow-covered day), your depth-of-field is very large, meaning that you can see near objects in focus just as well as you can see distant objects, with no additional effort on the part of your lens. (either that of your eye or of your camera)  On the other hand, when the aperture is very wide (Indoors, lights off, etc.), the depth of field is very narrow. That means that you (or your camera) need to adjust the configuration of your lens in order to focus on near or distant objects, regardless of whether you have one or two eyes.&lt;br/&gt;&lt;br/&gt;All this boils down to one interesting fact: You can know &lt;em&gt;where&lt;/em&gt; your field of focus is if you know your aperture size and your lens configuration.&lt;br/&gt;*end second sidetrack*&lt;br/&gt;&lt;br/&gt;What all this means is that you could take several images, each with known aperture and lens characteristics, and learn how far away objects in the scene are simply by observing how in-focus each area of your scene for each known field of focus.&lt;br/&gt;&lt;br/&gt;So, yes, you could have calculable measured distances to objects in your scene simply by stacking images of that scene where you know the focus range of each of those snaps.&lt;br/&gt;&lt;br/&gt;Honestly, though, I think this applies more to machine vision than human vision.  It's also probably &lt;em&gt;most&lt;/em&gt; useful right now for telescopes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-526793287718458612?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/526793287718458612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/depth-perception-and-optics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/526793287718458612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/526793287718458612'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/depth-perception-and-optics.html' title='Depth perception and optics'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4610294772636913323</id><published>2010-03-04T00:57:00.001-05:00</published><updated>2010-03-04T00:57:48.048-05:00</updated><title type='text'>A quick note and idea on fuel efficiency...</title><content type='html'>...because it's been churning in my head since last Tuesday, and I haven't written it out yet.&lt;br/&gt;&lt;br/&gt;When I was driving to South Carolina and back, I discovered I was going 80mph without pushing the car's engine much at all. (The amount of work I was asking the engine to do might have kept me going 55 or 60mph, normally. Maybe 65mph on the average downgrade on I-77.)  It took me a while, but I finally came up with a plausible reason this happened.&lt;br/&gt;&lt;br/&gt;I had merged onto the freeway, found myself embedded in a large pack of big-rigs semis, hadn't settled into traffic enough to set cruise, and had to move to get out of the way of traffic shifts to let &lt;em&gt;another&lt;/em&gt; batch of traffic merge in.  I signaled, changed lanes to the left and accelerated--and felt my jaw drop when I saw I was effortlessly going 80mph.&lt;br/&gt;&lt;br/&gt;What I &lt;em&gt;think&lt;/em&gt; happened was that the sparse pack of semis (and filler of smaller vehicles) spanning three lanes had caused the volume of air covering I-77 to be moving roughly uniform in line with traffic, not too far from the speed of traffic.  In effect, the traffic had created its own wind tunnel, and you didn't have to be dangerously close to the back-end of a semi to get a drafting effect.&lt;br/&gt;&lt;br/&gt;So what would happen if you took a long stretch of road (such as an under-river or through-mountain tunnel) and set up blowers pushing air in in the direction of traffic flow? Given the reduction in air drag, how much would you save on fuel economy? Would the energy involved in maintaining a 15mph tail wind in dense-traffic areas be greater than the aggregate saved energy in vehicle fuel?  How much of an impact on local pollution would it have? By pulling energy from the electrical grid rather than car engines, you can move the atmospheric cost of energy generation away from areas where it could cause health problems. (Places with high pollution due to vehicle emissions might find that useful...)&lt;br/&gt;&lt;br/&gt;Anyway, it was an interesting experience, and leads to a lot of interesting questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4610294772636913323?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4610294772636913323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/quick-note-and-idea-on-fuel-efficiency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4610294772636913323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4610294772636913323'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/quick-note-and-idea-on-fuel-efficiency.html' title='A quick note and idea on fuel efficiency...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7329615578603484814</id><published>2010-03-03T14:25:00.001-05:00</published><updated>2010-03-03T14:25:03.428-05:00</updated><title type='text'>I finally realized why shutter glasses make sense.</title><content type='html'>A shutter glasses system allows the video source to provide two video channels, one for each eye.  That lets you have stereovision, so you get depth perception for whatever you're watching.&lt;br/&gt;&lt;br/&gt;So do polarized light systems like IMAX's linearly-polarized glasses, and Real3D's circularly-polarized glasses.&lt;br/&gt;&lt;br/&gt;So why do shutter glasses make sense?  There's nothing about the concept that limits you to two video channels.  You could have four, or eight, or even sixteen, once the technology's chronometric precision increases enough. It's time-division multiplexing for the visual field.&lt;br/&gt;&lt;br/&gt;That's going to have major, major implications for video games.  No more splitscreen forcing you to have only half or a quarter of your normal visual field; you and your three buddies can each have the full frame to themselves.&lt;br/&gt;&lt;br/&gt;It might even give rise to a new form of cinema, one where both the protagonist's and antagonist's stories are told at the same time, but the viewer has to choose which one they're watching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7329615578603484814?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7329615578603484814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/i-finally-realized-why-shutter-glasses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7329615578603484814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7329615578603484814'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/i-finally-realized-why-shutter-glasses.html' title='I finally realized why shutter glasses make sense.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8107608358814884856</id><published>2010-03-01T12:53:00.001-05:00</published><updated>2010-03-01T12:53:53.028-05:00</updated><title type='text'>Software vs hardware RAID</title><content type='html'>There are three common types of RAID implementations: "hardware"(high-end RAID cards), BIOS-level software(low-end RAID cards) and system daemon-level software(such as the md daemon on Linux).&lt;br/&gt;&lt;br/&gt;The RAID support that comes built-in with your motherboard is *probably* software RAID implemented in your system BIOS.  Most small RAID cards have their functionality implemented in on-card BIOS that gets loaded when the system boots. As with system-software RAID setups like md, these RAID setups consume your system CPU and RAM as they churn to perform the calculations associated with your RAID configuration, including things like ECC and parity calculations.&lt;br/&gt;&lt;br/&gt;All of this is best-known as "software" RAID.&lt;br/&gt;&lt;br/&gt;The funky thing? "Hardware" RAID is also done in software, albeit software that executes on a dedicated processor on your RAID card. (As opposed to your system CPU.) You upgrade this software whenever you upgrade the firmware on the card.&lt;br/&gt;&lt;br/&gt;So here's what I'd like to see...An Open Source hardware RAID card. All it would amount to is a multi-port SATA controller connected to an onboard CPU, passing data back to the host operating system via the PCIe bus.&lt;br/&gt;&lt;br/&gt;The firmware would be built by, well, I dunno. The folks who like md, but don't like running it on their core system. The folks who want to play around with experimental RAID configurations and ideas. The folks who want to try putting LVM into "hardware." There are plenty of possibilities.&lt;br/&gt;&lt;br/&gt;Put a fallback firmware set on the card, in case of flash upgrade failure, to avoid bricking the thing.&lt;br/&gt;&lt;br/&gt;I'd hit that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8107608358814884856?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8107608358814884856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/03/software-vs-hardware-raid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8107608358814884856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8107608358814884856'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/03/software-vs-hardware-raid.html' title='Software vs hardware RAID'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4384151676182423006</id><published>2010-02-27T16:59:00.001-05:00</published><updated>2010-02-27T16:59:27.045-05:00</updated><title type='text'>Loving "Baccano!"</title><content type='html'>Things I love about it.&lt;br/&gt;&lt;ul&gt;&lt;li&gt;The characters are colorful -- "Yeah, that was impossible. At least we did the next best thing, stealing the entrance!" "Guns? Guns? I hear guns! This is getting exciting! This is getting exciting!"&lt;/li&gt;&lt;li&gt;The dialog is a blast -- "YesYesYesYesYesNoNoNo, Still no, Hell No!"&lt;/li&gt;&lt;li&gt;The animation is excellent -- See Ladd Russo's initial fight in the dining car.&lt;/li&gt;&lt;li&gt;The story presentation is a blast -- Three stories presented concurrently, containing some common characters. Many scenes get revisited from different characters' perspectives. Most of the story is presented out of chronological order; if it weren't different parts of the stories would spoil parts of other stories.&lt;/li&gt;&lt;/ul&gt;Other notable components:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Set in the late 1920s/early 1930s.&lt;/li&gt;&lt;li&gt;There's a lot of violence. You may or may not enjoy it.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4384151676182423006?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4384151676182423006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/loving_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4384151676182423006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4384151676182423006'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/loving_27.html' title='Loving &amp;quot;Baccano!&amp;quot;'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3846784981925965701</id><published>2010-02-26T15:13:00.001-05:00</published><updated>2010-02-26T15:13:57.812-05:00</updated><title type='text'>A realization...</title><content type='html'>Rather than get a new domain for each idea I may or may not complete, I should get one short domain, and set up all those ideas on subdomains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3846784981925965701?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3846784981925965701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/realization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3846784981925965701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3846784981925965701'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/realization.html' title='A realization...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1966514152756925123</id><published>2010-02-24T23:47:00.001-05:00</published><updated>2010-02-24T23:47:24.363-05:00</updated><title type='text'>HDR of a Charleston alleyway</title><content type='html'>My second HDR result from the trip this past weekend. I don't have any more bracketed sets, so that's the last HDR from that trip.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4386750780/" title="An alley in Charleston. by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4008/4386750780_bb12387bea.jpg" width="375" height="500" alt="An alley in Charleston." /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1966514152756925123?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1966514152756925123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/hdr-of-charleston-alleyway.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1966514152756925123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1966514152756925123'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/hdr-of-charleston-alleyway.html' title='HDR of a Charleston alleyway'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4008/4386750780_bb12387bea_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6759604001626689172</id><published>2010-02-24T17:35:00.001-05:00</published><updated>2010-02-24T17:35:40.694-05:00</updated><title type='text'>Other interesting pictures from this past weekend.</title><content type='html'>Click through for descriptions on Flickr.&lt;lj-cut&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4377503283/" title="The USS Yorktown by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4042/4377503283_1e9c6a5edf.jpg" width="500" height="375" alt="The USS Yorktown" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4377482623/" title="Water Fountain timestop by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2740/4377482623_c8cab999b4.jpg" width="500" height="375" alt="Water Fountain timestop" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4378220648/" title="DSCF9920 by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2731/4378220648_3782181051.jpg" width="500" height="375" alt="DSCF9920" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4377467501/" title="DSCF9919 by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2714/4377467501_cd5b972721.jpg" width="500" height="375" alt="DSCF9919" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4378197268/" title="DSCF9911 by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4014/4378197268_ecdca66fc3.jpg" width="500" height="375" alt="DSCF9911" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4384444879/" title="The Roomba luck dragon. by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4007/4384444879_6bdc66324d.jpg" width="500" height="375" alt="The Roomba luck dragon." /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4385264010/" title="Dig In! (1/3) by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2688/4385264010_5e1c1cfca4.jpg" width="500" height="375" alt="Dig In! (1/3)" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6759604001626689172?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6759604001626689172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/other-interesting-pictures-from-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6759604001626689172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6759604001626689172'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/other-interesting-pictures-from-this.html' title='Other interesting pictures from this past weekend.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4042/4377503283_1e9c6a5edf_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4558665581991697067</id><published>2010-02-24T12:43:00.001-05:00</published><updated>2010-02-24T12:43:13.852-05:00</updated><title type='text'>My first HDR that only sucks a little bit.</title><content type='html'>&lt;a href="http://www.flickr.com/photos/28208534@N07/4384503377/" title="Church tower and three flags by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4052/4384503377_e1017a5a6a_b.jpg" width="768" height="1024" alt="Church tower and three flags" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4558665581991697067?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4558665581991697067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/my-first-hdr-that-only-sucks-little-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4558665581991697067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4558665581991697067'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/my-first-hdr-that-only-sucks-little-bit.html' title='My first HDR that only sucks a little bit.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4052/4384503377_e1017a5a6a_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8663812970077324644</id><published>2010-02-18T23:46:00.001-05:00</published><updated>2010-02-18T23:46:33.737-05:00</updated><title type='text'>Mix tapes for driving.</title><content type='html'>So I'm making a pair of 90-minute-per-side mix tapes for driving, for listening to during a 15 hour drive.&lt;br/&gt;&lt;br/&gt;Yes, tapes. My laptop's being repaired, and I don't have any other decent audio player device at the moment.&lt;br/&gt;&lt;br/&gt;To make these tapes, I created a playlist of songs in Rhythmbox that I would be willing to listen to. I don't know how many are there, or how many minutes' worth of music is there.  Suffice it to say it's a lot.  I also threw in &lt;em&gt;all&lt;/em&gt; of the ads and callsign announcements from &lt;a href="http://en.wikipedia.org/wiki/Streets_of_SimCity"&gt;Streets of SimCity&lt;/a&gt;, because they give me a chuckle.  I have the playlist playing in Shuffle mode, and I have a dual-tape deck sitting between my computer and stereo syste, configured to continuously record, looping through all four sides of tape.&lt;br/&gt;&lt;br/&gt;When I wake up, I'll pop the tapes out. They'll have six hours worth of music on them, and I won't really know what's on there and when.&lt;br/&gt;&lt;br/&gt;This will be interesting...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8663812970077324644?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8663812970077324644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/mix-tapes-for-driving.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8663812970077324644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8663812970077324644'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/mix-tapes-for-driving.html' title='Mix tapes for driving.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6371671961850804996</id><published>2010-02-17T19:18:00.001-05:00</published><updated>2010-02-17T19:18:22.335-05:00</updated><title type='text'>Picked up a Wiimote today.</title><content type='html'>Picked up a Wiimote today. I don't have a wii. I want to see if I can get it working as a mouse.&lt;br/&gt;&lt;br/&gt;The mapping I have in mind:&lt;br/&gt;&lt;br/&gt;&lt;ul&gt;&lt;li&gt;As long as the trigger is being held, its motion will affect the mouse cursor's position. When the trigger isn't being held, the mouse cursor's position isn't affected.&lt;/li&gt;&lt;li&gt;The D-pad will be up/down and left/right scroll events.&lt;/li&gt;&lt;li&gt;The A button will be the Left mouse button. That leaves buttons 1 and 2 for Right and Middle.&lt;/li&gt;&lt;/ul&gt;Hopefully, that will cover most use cases. I don't &lt;em&gt;really&lt;/em&gt; care for having the right and middle buttons there, but I prefer the D-pad for scroll events more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6371671961850804996?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6371671961850804996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/picked-up-wiimote-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6371671961850804996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6371671961850804996'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/picked-up-wiimote-today.html' title='Picked up a Wiimote today.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6064678428966590923</id><published>2010-02-15T14:42:00.001-05:00</published><updated>2010-02-15T14:42:00.656-05:00</updated><title type='text'>A notice to the DIY folks.</title><content type='html'>I don't normally go for the chain letters, but this one is worth bringing attention to.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;strong&gt;Don’t let this happen to you.&lt;/strong&gt;&lt;br/&gt;Women often receive warnings about protecting themselves at the mall and in dark parking lots, etc.  This is the first warning I have seen for men.   I wanted to pass it on in case you haven’t heard about it.  This will only become more commonplace.&lt;br/&gt;&lt;br/&gt;A ‘heads up’ for those men who may be regular Lowe’s, Home Depot, or Costco customers.  This one caught me by surprise.  Over the last month I became a victim of a clever scam while out shopping.  Simply going out to get supplies has turned out to be quite traumatic.  Please, don’t be naive enough to think it couldn’t happen to you or your friends.&lt;br/&gt;&lt;br/&gt;How the scam works:&lt;br/&gt;&lt;br/&gt;Two seriously good-looking 20-something girls come over to your car as you are packing your shopping bags into the trunk.  They both start wiping your windshield with a rag and Windex, with their breasts almost falling out of their skimpy T-shirts.  It is impossible not to look.  When you thank them and offer them a tip, they say ‘No’ and instead ask you for a ride to McDonald’s.  You agree and they get into the back seat.  On the way, they start undressing.  Then one of them climbs over into the front seat and starts crawling all over you, while the other one steals your wallet.&lt;br/&gt;  &lt;br/&gt;I had my wallet stolen November 4th, 9th, 10th, twice on the 15th, 17th, 20th, 24th, &amp; 29th.  Also December 1st &amp; 4th, twice on the 8th, 16th, 23rd, 26th &amp; 28th, three times last Monday and very likely &lt;br/&gt;again this upcoming weekend.  So tell your friends to be careful. What a horrible way to take advantage of men.&lt;br/&gt;&lt;br/&gt;Warn your friends to be vigilant.&lt;br/&gt;&lt;br/&gt;P.S. Wal-Mart has wallets on sale for $2.99 each.  I found cheaper ones for $1.99 at K Mart.  Also, you’ll never get to eat at McDonald’s.  I’ve already lost 11 pounds just running back and forth to Lowe’s, Home Depot, and Costco.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6064678428966590923?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6064678428966590923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/notice-to-diy-folks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6064678428966590923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6064678428966590923'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/notice-to-diy-folks.html' title='A notice to the DIY folks.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1854161412915554901</id><published>2010-02-15T00:26:00.001-05:00</published><updated>2010-02-15T00:26:57.831-05:00</updated><title type='text'>Adaptive keyboard layout</title><content type='html'>This idea came up as a result of a lot of ruminations on data compression, and more specifically on huffman encoding.&lt;br/&gt;&lt;br/&gt;Now, I'm a QWERTY touch typist. I can get by just fine on a blank Das Keyboard, if you give me a QWERTY layout.  I realize, of course, that a lot of folks prefer DVORAK; having your more-frequently-used keys on home-row has to be great.&lt;br/&gt;&lt;br/&gt;Even as a QWERTY touch-typist, I think there may be room for improvement.  Consider the advantage Dvorak offers, with the most-frequently-used keys on home row.  That &lt;em&gt;only&lt;/em&gt; works under an assumed use case, which may or may not be accurate depending on anything from your locale to how you normally use a computer.&lt;br/&gt;&lt;br/&gt;Let's say your keyboard kept a running record of your last twenty-thousand keystrokes. Every time you pressed a non-modifier key, it would push that key on to the queue, pop the twenty-thousand-and-first key off, and then run the entire buffer through huffman encoding.&lt;br/&gt;&lt;br/&gt;The keyboard now has an internal representation of which characters you use most frequently, in the form of a huffman tree.  Because it knows its own physical form factor, it can estimate the cost of each key on the board based on how much travel there is from home row to that key.&lt;br/&gt;&lt;br/&gt;Simply sort the key cost in ascending order, and then walk through the huffman tree, assigning each character encountered to the least-cost key remaining.&lt;br/&gt;&lt;br/&gt;You now have a possible keyboard layout optimized specifically for &lt;em&gt;you&lt;/em&gt; and your use case.&lt;br/&gt;&lt;br/&gt;For me, what I'd like the keyboard to do (at that point) would be to sit tight unless it discerns that a cost reduction threshold would be crossed; say, 10% cost reduction compared to my current activity and use case.  At that point, it should beep at me, or flash a little light. Once I acknowledge, the keyboard layout would change.&lt;br/&gt;&lt;br/&gt;Of course, something like this would depend on a visual feedback mechanism; I would have to be able to quickly see what the keys were remapped to. Under normal circumstances, the rearrangements shouldn't be much, and most of the layout would remain the same. I should only need to note that two or three keys (not key pairs, mind you) changed places.&lt;br/&gt;&lt;br/&gt;I'd want to switch away from typing my password in, though; someone could get a lot closer to guessing it by noticing one or two strange characters that are closer to my home row than for most.&lt;br/&gt;&lt;br/&gt;There's also the round-robin key buffer, which I think may be necessary for preventing old keystrokes from polluting the huffman tree.  Perhaps simply randomizing which key in the buffer is replaced would be sufficiently optimal for the purpose, rather than storing keystrokes in order.&lt;br/&gt;&lt;br/&gt;I think I could get used to a keyboard like that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1854161412915554901?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1854161412915554901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/adaptive-keyboard-layout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1854161412915554901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1854161412915554901'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/adaptive-keyboard-layout.html' title='Adaptive keyboard layout'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8652128217649977825</id><published>2010-02-14T15:45:00.001-05:00</published><updated>2010-02-14T15:45:59.963-05:00</updated><title type='text'>LOLCODE and GAFFERS</title><content type='html'>Someone once asked me if Rosetta Code would accept &lt;a href="http://en.wikipedia.org/wiki/LOLCODE"&gt;LOLcode&lt;/a&gt; as a language. I told them that if they could provide a working implementation of the language, and examples that executed correctly with that implementation, that it was fine by me.&lt;br/&gt;&lt;br/&gt;We never did see any submissions of LOLcode, but that's beside the point; it's technically possible, because a working implementations &lt;a href="http://lolcode.com/faq"&gt;do exist&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;The reason I'm remembering this today is the &lt;a href="http://rosettacode.org/wiki/Category_talk:Gaffers"&gt;discussion&lt;/a&gt; of a language named &lt;a href="http://rosettacode.org/wiki/Category:Gaffers"&gt;GAFFERS&lt;/a&gt; that's recently shown up on the site.  There was question of whether or not the language was a hoax, as one of the editors didn't turn up any reliable references while looking it up. I dug into the information provided and didn't find anything to back it up. It appears to have simply been a prank by a vandal. (Not a particularly good one, either; if they'd at least have gone to the trouble of creating convincing-looking references, I might have been amused and impressed.)&lt;br/&gt;&lt;br/&gt;If the LOLCODE want to try their hand at getting a decent task coverage on Rosetta Code, they're welcome to. Just follow the steps for &lt;a href="http://rosettacode.org/wiki/Rosetta_Code:Add_a_Language"&gt;adding a language&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;If whoever is behind GAFFERS wants to, well, they've got to show an implementation first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8652128217649977825?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8652128217649977825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/lolcode-and-gaffers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8652128217649977825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8652128217649977825'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/lolcode-and-gaffers.html' title='LOLCODE and GAFFERS'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5629314472438754967</id><published>2010-02-14T11:42:00.001-05:00</published><updated>2010-02-14T11:42:11.454-05:00</updated><title type='text'>Things I hate about posting to Facebook.</title><content type='html'>I use ping.fm to get most of what I write to places where people prefer to read it.  Pretty much all of the services ping.fm will post to support a decent subset of HTML, embedding of Flash applets, etc.&lt;br/&gt;&lt;br/&gt;Except Facebook. And that's not entirely ping.fm's fault.&lt;br/&gt;&lt;br/&gt;With Facebook, I can't post a "note" (Called a blog entry anywhere else) that has text content, followed by an embedded video, followed by text content. At best, ping.fm can convert that to a video post with attached text.  At worst, it'll show up as the raw HTML data for embedding the video.  I've found I prefer the latter approach, because there's *no* other way to embed multiple videos.&lt;br/&gt;&lt;br/&gt;Also, Facebook's HTML subset is &lt;em&gt;ridiculously&lt;/em&gt; limited, almost as bad as Slashdot JE's. (At least FB allows inline images!)  That means that simple formatting instructions that might otherwise have worked fine, like the "div" blocks that were (and maybe still are? I stopped using them) used by places like blogthings get defanged and look as ugly as embedded flash videos.  No, I don't want to add an app to show that particular survey. No, I don't want to add an app for the "which character/what personality type/what are your politics" widgets. Facebook app privacy is so ridiculously poor, I can't even refuse to add the stupid things in defense of my own privacy; Farmville and Mafia Wars already have access to my profile information, just because my contacts added them.&lt;br/&gt;&lt;br/&gt;You think Google is a privacy threat? At least a savvy person can use them while not giving them data, thanks to their preference towards open protocols and open APIs. With Facebook, use it or lose it. I got a Facebook account to deal with all the invites I was getting. It's also the de-facto way of staying in passive touch with people you've known from the past; the modern replacement of the Rolodex.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5629314472438754967?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5629314472438754967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/things-i-hate-about-posting-to-facebook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5629314472438754967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5629314472438754967'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/things-i-hate-about-posting-to-facebook.html' title='Things I hate about posting to Facebook.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5389262500734590355</id><published>2010-02-14T11:09:00.001-05:00</published><updated>2010-02-14T11:09:59.593-05:00</updated><title type='text'>I love being a geek...</title><content type='html'>&lt;!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } A:link { so-language: zxx } --&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:26:14 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;I found part of the source of our communication problem!&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:26:30 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/BuffySpeak"&gt;&lt;font size="3"&gt;http://tvtropes.org/pmwiki/pmwiki.php/Main/BuffySpeak&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:36:41 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;:)&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:37:12 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;"BuffySpeak" should be our clarity codeword from now on. It'll drive T nuts. :D&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:37:29 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;lol&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:37:35 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;thas almost enough reason to do it :)&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:37:42 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;probably drive me more nuts though&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:38:30 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;Hey, it's faster than "You're using too many unresolved pronouns!" or "Linker error: symbol 'thing' is ambiguous."&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:38:53 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;Hey, I like the 2nd&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:39:03 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;I imagine that P would fall in love with it&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:39:17 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;*chortle*&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:39:24 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;I love being a geek.&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:39:44 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;chortle?&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:39:47 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;seriously?&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:39:52 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;I havent heard that in years&lt;/font&gt;&lt;br&gt;&lt;font color="#062585"&gt;&lt;font size="2"&gt;(10:39:59 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#062585"&gt;&lt;font size="3"&gt;&lt;b&gt;***Mike&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;double-checks the definition.&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:40:07 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;er.&lt;/font&gt;&lt;br&gt;&lt;font color="#062585"&gt;&lt;font size="2"&gt;(10:40:11 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#062585"&gt;&lt;font size="3"&gt;&lt;b&gt;***Mike&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;inverted that one.&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:40:20 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;What's 1/chortle?&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:40:33 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;You know, reversing the amplitude, but not the sign?&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:40:34 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;Umm, you used it correctly. its just obscure afaik&lt;/font&gt;&lt;br&gt;&lt;font color="#cc0000"&gt;&lt;font size="2"&gt;(10:40:43 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#cc0000"&gt;&lt;font size="3"&gt;&lt;b&gt;J:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;um, no idea&lt;/font&gt;&lt;br&gt;&lt;font color="#204a87"&gt;&lt;font size="2"&gt;(10:41:15 AM) &lt;/font&gt;&lt;/font&gt;&lt;font color="#204a87"&gt;&lt;font size="3"&gt;&lt;b&gt;Mike:&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;font size="3"&gt;ROFLMAO, I suppose, except it wasn't quite that strong.&lt;/font&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5389262500734590355?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5389262500734590355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/i-love-being-geek.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5389262500734590355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5389262500734590355'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/i-love-being-geek.html' title='I love being a geek...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8126489098996074226</id><published>2010-02-13T11:55:00.001-05:00</published><updated>2010-02-13T11:55:21.354-05:00</updated><title type='text'>Loving "Baccanno!"</title><content type='html'>I'm loving &lt;a href="http://www.animenewsnetwork.com/encyclopedia/anime.php?id=7492"&gt;Baccanno!&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;"That was our first kiss!"&lt;br/&gt;"Wait, you two have been an item for ten years, and he never kissed you?  I mean there's gentlemanly, and then there's stupid! Hey! I'm talking about you, too, 'princess!'"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8126489098996074226?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8126489098996074226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/loving.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8126489098996074226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8126489098996074226'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/loving.html' title='Loving &amp;quot;Baccanno!&amp;quot;'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6104203076923100862</id><published>2010-02-12T16:40:00.001-05:00</published><updated>2010-02-12T16:40:14.525-05:00</updated><title type='text'>Why having been a tutor does not mean you communicate well.</title><content type='html'>I tutored computer subjects in community college for about five years. I figured that being able to teach people how to do things in one-on-one sessions made me a good communicator.&lt;br/&gt;&lt;br/&gt;It didn't, and doesn't.&lt;br/&gt;&lt;br/&gt;As a tutor, my chief strategy was to provide the student with all the bits and pieces of information &lt;em&gt;required&lt;/em&gt; to build an understanding of what they were trying to do, but to systematically avoid actually connecting the dots for them. I found that that system worked very well for the students who wanted an understanding, not just a grade. (Which of those two types of students were normally the ones to come in for tutoring is a topic best avoided.)&lt;br/&gt;&lt;br/&gt;It's only taken me three years of real-world experience to realize that while that coworkers aren't students, and I need to &lt;em&gt;explain&lt;/em&gt; my thought process, rather than &lt;em&gt;teach&lt;/em&gt; it.&lt;br/&gt;&lt;br/&gt;In fact, that's probably a good habit to get into outside of work, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6104203076923100862?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6104203076923100862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/why-having-been-tutor-does-not-mean-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6104203076923100862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6104203076923100862'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/why-having-been-tutor-does-not-mean-you.html' title='Why having been a tutor does not mean you communicate well.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6597582839762761999</id><published>2010-02-12T14:26:00.001-05:00</published><updated>2010-02-12T14:26:26.099-05:00</updated><title type='text'>So I finally sent my laptop in for repairs.</title><content type='html'>I'd worn out my alt key, my wifi chipset seemed to be overheating, and the display was exhibiting these annoyances:&lt;br/&gt;&lt;br/&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/klwvstK6SPU&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/klwvstK6SPU&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/3767294249/" title="DSCF6238.JPG by mikemol, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3440/3767294249_8bd585d0c8.jpg" width="500" height="375" alt="DSCF6238.JPG" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/3767294627/" title="DSCF6239.JPG by mikemol, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3468/3767294627_0d8a8bbf43_b.jpg" width="1024" height="768" alt="DSCF6239.JPG" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Before sending it in, I put on a blank install of xubuntu, a weak password, auto-login, and had Firefox automatically start, maximized, with a local homepage including a complete description of the problems, and localized playback (which I tested without network access) of the above photos and video. I also explained some things they could skip, being merely cosmetic fixes, and told them not to bother putting Windows back on if it was going to be a hassle for them. (I didn't have a restore CD to provide.)&lt;br/&gt;&lt;br/&gt;Since all the problems I've been seeing are based in hardware, they should be able to either fix it or declare it a lost cause.  If they declare it a lost cause, my warranty says I'm supposed to get a replacement or check to go towards a replacement, so it's no skin off my teeth.&lt;br/&gt;&lt;br/&gt;It'll be interesting to see what happens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6597582839762761999?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6597582839762761999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/so-i-finally-sent-my-laptop-in-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6597582839762761999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6597582839762761999'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/so-i-finally-sent-my-laptop-in-for.html' title='So I finally sent my laptop in for repairs.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3440/3767294249_8bd585d0c8_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3642721802425837528</id><published>2010-02-11T09:38:00.001-05:00</published><updated>2010-02-11T09:38:33.677-05:00</updated><title type='text'>Awsome. Just awesome!</title><content type='html'>I predicted &lt;a href="http://www.physorg.com/news185091432.html"&gt;this&lt;/a&gt; five years ago, while chatting with some Computer Club members.&lt;br /&gt;&lt;br /&gt;Well, not &lt;em&gt;exactly&lt;/em&gt; this. They're using Pentium-class cores, where our discussion compared i686 and i386 cores.&lt;br /&gt;&lt;br /&gt;I'm torn on their using a 32-bit core as a base, though. I spend enough time on 4GB+ PCs that I loathe the idea of dropping back to a 32-bit memory model, though; There really is an advantage to having more than 4GB of directly-addressable address space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3642721802425837528?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3642721802425837528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/awsome-just-awesome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3642721802425837528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3642721802425837528'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/awsome-just-awesome.html' title='Awsome. Just awesome!'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2665652349664509461</id><published>2010-02-10T22:13:00.001-05:00</published><updated>2010-02-10T22:13:34.176-05:00</updated><title type='text'>Benefits of tech support</title><content type='html'>Years and years ago, I was The phone support tech for a dial-up ISP. For the past few years, I've done phone support for the software I help write.&lt;br/&gt;&lt;br/&gt;While doing phone tech support can be a grating, humiliating, degrading experience, if you do it right, it can also be incredibly rewarding; I just came across a couple Thank You notes that were sent to that ISP years ago, addressed to me. A couple years ago, one of the people I helped as part of my current job sent the company a fruit basket.&lt;br/&gt;&lt;br/&gt;Whatever you do in life, if you're helping someone as a matter of course, chances are it's a worthwhile habit. If you're lucky, they'll remind you of that fact.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2665652349664509461?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2665652349664509461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/benefits-of-tech-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2665652349664509461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2665652349664509461'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/benefits-of-tech-support.html' title='Benefits of tech support'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5690095324462689408</id><published>2010-02-08T17:08:00.001-05:00</published><updated>2010-02-08T17:08:23.757-05:00</updated><title type='text'>Ok, this song is stuck in my head.</title><content type='html'>Now it can be stuck in your head, too.&lt;br/&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cHcVU5cGUNE&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/cHcVU5cGUNE&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5690095324462689408?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5690095324462689408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/ok-this-song-is-stuck-in-my-head.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5690095324462689408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5690095324462689408'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/ok-this-song-is-stuck-in-my-head.html' title='Ok, this song is stuck in my head.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3979311366624060382</id><published>2010-02-08T12:09:00.001-05:00</published><updated>2010-02-08T12:09:09.808-05:00</updated><title type='text'>Watched Avatar again yesterday...</title><content type='html'>...And was mildly disappointed at one point.&lt;br/&gt;&lt;br/&gt;At the point, a researcher is trying to teach Jake Sully the intricacies of the Na'vi language.  It goes something like this:&lt;br/&gt;&lt;br/&gt;Researcher: (Na'vi)&lt;br/&gt;Jake Sully: (Na'vi) (incorrectly pronounced)&lt;br/&gt;Researcher: (repeats)&lt;br/&gt;Jake Sully: (repeats), looks up with an exasperated grin.&lt;br/&gt;Researcher: "Literally, it means 'I see you,' but it's not just 'I see you before me', but 'I see into you.'"&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;While a well-spent ten-seconds of film, I think that would have been a heck of lot funnier/more interesting/whatever as:&lt;br/&gt;&lt;br/&gt;Researcher: (Na'vi)&lt;br/&gt;Jake Sully: (Na'vi) (incorrectly pronounced)&lt;br/&gt;Researcher: (repeats)&lt;br/&gt;Jake Sully: (repeats), looks up with an exasperated grin.&lt;br/&gt;Researcher: "Literally, it means 'I see you,' but it's not just 'I see you before me', but 'I see into you.' Like 'grok.'"&lt;br/&gt;Jake Sully: "'Grok?'"&lt;br/&gt;&lt;br/&gt;(And would have had a nice side-effect of catapulting 'grok' back into popular awareness...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3979311366624060382?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3979311366624060382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/watched-avatar-again-yesterday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3979311366624060382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3979311366624060382'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/watched-avatar-again-yesterday.html' title='Watched Avatar again yesterday...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8249861088751521879</id><published>2010-02-06T15:16:00.001-05:00</published><updated>2010-02-06T15:16:24.787-05:00</updated><title type='text'>"real men just upload their important stuff on ftp, and let the rest of the world mirror it ;) "</title><content type='html'>&lt;a href="http://groups.google.com/group/linux.dev.kernel/msg/76ae734d543e396d?pli=1"&gt;Thus spake Linus Torvalds&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;I've been thinking about a recurring issue...Namely that none of RCo's remote backup targets are very good. My home system has a problem remaining alive for any extended duration, and I don't have any other good prospective places to I can trust to send the data. (No offense to anyone who's offered, but it's hard for me to totally trust someone I've never met in person.*)&lt;br/&gt;&lt;br/&gt;I may have hit on a novel solution, but I want to run it past a bunch of people (namely, you), before I do something this crazy.&lt;br/&gt;&lt;br/&gt;Step 1: Take backup on server&lt;br/&gt;Step 2: Compress backup to tarball.&lt;br/&gt;Step 3: Encrypt tarball using a GPG and a long, long public key.&lt;br/&gt;Step 4: Build a torrent.&lt;br/&gt;Step 5: Add torrent to RSS feed.&lt;br/&gt;Step 6: Anyone who wants to help can point their torrent client at the RSS feed. Data's encrypted, so I don't have to worry. With enough seeder boxes out there, there can be several full copies out there.&lt;br/&gt;&lt;br/&gt;Bonus: Server data migration happens much, much faster. :)&lt;br/&gt;&lt;br/&gt;* Yes, this is me we're talking about, and I realize the irony.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8249861088751521879?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8249861088751521879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/men-just-upload-their-important-stuff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8249861088751521879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8249861088751521879'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/men-just-upload-their-important-stuff.html' title='&amp;quot;real men just upload their important stuff on ftp, and let the rest of the world mirror it ;) &amp;quot;'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2128887453395254103</id><published>2010-02-05T13:53:00.001-05:00</published><updated>2010-02-05T13:53:48.131-05:00</updated><title type='text'>Cool trick of the day: "Uploading" URLs.</title><content type='html'>I know this works on Windows 7. I don't know about Vista or XP. I also don't know if the file dialog Firefox uses on Linux duplicates the behavior.&lt;br/&gt;&lt;br/&gt;So you want to upload a file to some web form. Click Browse, that traditional file upload dialog pops up.&lt;br/&gt;&lt;br/&gt;Into the "Filename" field, type (or paste) the full URL to the file you want to upload.  For example, if the file already exists on Flickr or some other site, and you have the URL to the file at that location, paste it here.&lt;br/&gt;&lt;br/&gt;Click Open; the dialog will appear to hang for a bit, but that's because it's downloading the file to your local system.  When the dialog disappears, the path to its local location will appear in the upload field.&lt;br/&gt;&lt;br/&gt;Proceed with however you would normally use the web form; the file was already copied to your local system, Firefox knows where it is, and it will be uploaded when you submit the form.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2128887453395254103?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2128887453395254103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/cool-trick-of-day-urls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2128887453395254103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2128887453395254103'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/cool-trick-of-day-urls.html' title='Cool trick of the day: &amp;quot;Uploading&amp;quot; URLs.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7123078348527173917</id><published>2010-02-03T13:12:00.001-05:00</published><updated>2010-02-03T13:12:37.081-05:00</updated><title type='text'>So the EFF is doing a fundraiser, hosted by Adam Savage.</title><content type='html'>They're &lt;a href="http://www.eff.org/calendar/2010/02/10/effs-20th-birthday-with-adam-savage"&gt;hosting it&lt;/a&gt; at the &lt;a href="http://www.dnalounge.com/"&gt;DNA Lounge&lt;/a&gt;. What they don't mention is that the Jamie Zawinski works there.  &lt;a href="http://www.jwz.org/"&gt;Who's he?&lt;/a&gt; The guy who maintains the &lt;a href="http://www.jwz.org/xscreensaver/screenshots/"&gt;XScreenSavers&lt;/a&gt; package.&lt;br/&gt;&lt;br/&gt;Man, I wish I could be in SF next week.&lt;br/&gt;&lt;br/&gt;EFF, Adam Savage, but best of all? JWZ. His screensavers package was the reason I dropped gaming on my Win95 box over a decade ago and switched to Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7123078348527173917?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7123078348527173917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/so-eff-is-doing-fundraiser-hosted-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7123078348527173917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7123078348527173917'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/so-eff-is-doing-fundraiser-hosted-by.html' title='So the EFF is doing a fundraiser, hosted by Adam Savage.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2355012391709186693</id><published>2010-02-03T01:37:00.001-05:00</published><updated>2010-02-03T01:37:11.783-05:00</updated><title type='text'>Linux answers the greatest of questions.</title><content type='html'>&lt;pre&gt;shortcircuit@dodo~&lt;br /&gt;01:35:48 $ whoami&lt;br /&gt;shortcircuit&lt;br /&gt;shortcircuit@dodo~&lt;br /&gt;01:35:50 $ who&lt;br /&gt;shortcircuit tty7         2010-01-30 18:29 (:0)&lt;br /&gt;shortcircuit pts/0        2010-02-02 20:32 (:0.1)&lt;br /&gt;shortcircuit pts/1        2010-02-03 01:28 (:0.1)&lt;br /&gt;shortcircuit pts/3        2010-02-03 01:30 (:0.1)&lt;br /&gt;shortcircuit@dodo~&lt;br /&gt;01:35:52 $ whois shortcircuit&lt;br /&gt;No whois server is known for this kind of object.&lt;br /&gt;shortcircuit@dodo~&lt;br /&gt;01:35:55 $ whatis shortcircuit&lt;br /&gt;shortcircuit: nothing appropriate.&lt;br /&gt;shortcircuit@dodo~&lt;br /&gt;01:35:57 $ &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2355012391709186693?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2355012391709186693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/linux-answers-greatest-of-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2355012391709186693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2355012391709186693'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/linux-answers-greatest-of-questions.html' title='Linux answers the greatest of questions.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2837633698294903771</id><published>2010-02-02T16:03:00.001-05:00</published><updated>2010-02-02T16:03:19.640-05:00</updated><title type='text'>That's going to smart.</title><content type='html'>I wonder how many businesses are using Google Apps, as well as legacy web systems that only work with IE 6. Quoth an email I got from them today:&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Dear Google Apps admin,​&lt;br/&gt;&lt;br/&gt;In order to continue to improve our products and deliver more sophisticated features and performance, we are harnessing some of the latest improvements in web browser technology.  This includes faster JavaScript processing and new standards like HTML5.  As a result, over the course of 2010, we will be phasing out support for Microsoft Internet Explorer 6.0 as well as other older browsers that are not supported by their own manufacturers.&lt;br/&gt;&lt;br/&gt;We plan to begin phasing out support of these older browsers on the Google Docs suite and the Google Sites editor on March 1, 2010.  After that point, certain functionality within these applications may have higher latency and may not work correctly in these older browsers. Later in 2010, we will start to phase out support for these browsers for Google Mail and Google Calendar.&lt;br/&gt;&lt;br/&gt;Google Apps will continue to support Internet Explorer 7.0 and above, Firefox 3.0 and above, Google Chrome 4.0 and above, and Safari 3.0 and above.&lt;br/&gt;&lt;br/&gt;Starting this week, users on these older browsers will see a message in Google Docs and the Google Sites editor explaining this change and asking them to upgrade their browser.  We will also alert you again closer to March 1 to remind you of this change.&lt;br/&gt;&lt;br/&gt;In 2009, the Google Apps team delivered more than 100 improvements to enhance your product experience.  We are aiming to beat that in 2010 and continue to deliver the best and most innovative collaboration products for businesses.&lt;br/&gt;&lt;br/&gt;Thank you for your continued support!&lt;br/&gt;&lt;br/&gt;Sincerely,&lt;br/&gt;&lt;br/&gt;The Google Apps team&lt;br/&gt;&lt;br&gt;Email preferences: You have received this mandatory email service announcement to update you about important changes to your Google Apps product or account.&lt;br/&gt;&lt;br/&gt;Google Inc.&lt;br/&gt;1600 Amphitheatre Parkway&lt;br/&gt;Mountain View, CA 94043&lt;/em&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2837633698294903771?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2837633698294903771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/that-going-to-smart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2837633698294903771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2837633698294903771'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/that-going-to-smart.html' title='That&amp;#39;s going to smart.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-654717574736584356</id><published>2010-02-01T20:06:00.001-05:00</published><updated>2010-02-01T20:06:43.024-05:00</updated><title type='text'>WaitForSingleObject</title><content type='html'>Coworker: "I've got a wait open, so when you're done there."&lt;br/&gt;Me: "WaitForSingleObject?"&lt;br/&gt;Coworker: "Yeah."&lt;br/&gt;Me, to boss: "He's got a handle on you."&lt;br/&gt;Boss: *facepalm*&lt;br/&gt;Coworker: *grabs a large piece of equipment*&lt;br/&gt;Me: *ducks*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-654717574736584356?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/654717574736584356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/02/waitforsingleobject.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/654717574736584356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/654717574736584356'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/02/waitforsingleobject.html' title='WaitForSingleObject'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4964354820911292673</id><published>2010-01-31T17:48:00.001-05:00</published><updated>2010-01-31T17:48:41.488-05:00</updated><title type='text'>Ok, what was the name of that thing?</title><content type='html'>While it's a crossword, it's more a specific type of crossword, without clues to what the words are except knowing their length.&lt;br/&gt;&lt;br/&gt;Consider an NxN square, where no cells are blocked, and every row and column contains a whole word.&lt;br/&gt;&lt;br/&gt;There's a specific name for those; they're notable because there are few known solutions for each N. I can't remember the name!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4964354820911292673?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4964354820911292673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/ok-what-was-name-of-that-thing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4964354820911292673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4964354820911292673'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/ok-what-was-name-of-that-thing.html' title='Ok, what was the name of that thing?'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7910640965034128954</id><published>2010-01-28T10:54:00.001-05:00</published><updated>2010-01-28T10:54:21.245-05:00</updated><title type='text'>Wait, what?</title><content type='html'>I'd just received a .hack//SIGN OST 1 audio CD.  I love the music, but...&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4311070187/" title="Log spectrum of Yuki Kajiura's &amp;quot;Fake Wings&amp;quot; by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4068/4311070187_7b5c1b9b5e_o.png" width="864" height="368" alt="Log spectrum of Yuki Kajiura's &amp;quot;Fake Wings&amp;quot;" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This is a zoomed in view of a particular part of the spectrum, as shown in Audacity. It's a solid, loud 16kHz present through nearly all of the song. At the volume I was listening at, it was painful!&lt;br/&gt;&lt;br/&gt;I doubt it's an encoding artifact; The CD was ripped to FLAC. Here, I imported the FLAC into Audacity.&lt;br/&gt;&lt;br/&gt;I don't know if the master was like this, or if I wound up buying a counterfeit disc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7910640965034128954?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7910640965034128954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/wait-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7910640965034128954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7910640965034128954'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/wait-what.html' title='Wait, what?'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3929946362070567763</id><published>2010-01-27T14:28:00.001-05:00</published><updated>2010-01-27T14:28:05.534-05:00</updated><title type='text'>Note to self: Check these out later.</title><content type='html'>&lt;a href="http://www.projectrho.com/rocket/rocket3i.html"&gt;http://www.projectrho.com/rocket/rocket3i.html&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.irrationaldesigns.com/TSOD/products.html"&gt;http://www.irrationaldesigns.com/TSOD/products.html&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.brokenthorn.com/Resources/OSDev7.html"&gt;http://www.brokenthorn.com/Resources/OSDev7.html&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.project-euh.com/word_up/"&gt;http://www.project-euh.com/word_up/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3929946362070567763?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3929946362070567763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/note-to-self-check-these-out-later.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3929946362070567763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3929946362070567763'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/note-to-self-check-these-out-later.html' title='Note to self: Check these out later.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6306824138164499909</id><published>2010-01-27T12:11:00.001-05:00</published><updated>2010-01-27T12:11:33.260-05:00</updated><title type='text'>Colonel Panic!</title><content type='html'>Most of us who've used Linux for any significant length of time have had a kernel panic. Lately, those events have probably been while in X, making accessing the actual details of the event difficult if you haven't memorized the magic SysRq keys (assuming your kernel was compiled with the relevant support).&lt;br/&gt;&lt;br/&gt;A couple workarounds are available to deal with this; You can set up a serial console so that system messages get dumped via good old RS-232 to another machine, or even a console on your parallel port so that the messages get printed.&lt;br/&gt;&lt;br/&gt;Don't try that last unless you don't mind going through a ton of paper, and have ways of dealing with the printer noise.&lt;br/&gt;&lt;br/&gt;It occurred to me, a few days ago, that x86 systems have a (very) small amount of non-volatile RAM, battery backed by the same battery that keeps your computer from losing time when you power cycle it.&lt;br/&gt;&lt;br/&gt;While that amount of memory is very, very small, it may be large enough to hold a Panic message; That'd be a nice place for me to be able to look to investigate why my computer randomly hard-locked one evening while I was away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6306824138164499909?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6306824138164499909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/colonel-panic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6306824138164499909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6306824138164499909'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/colonel-panic.html' title='Colonel Panic!'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2043409037747826176</id><published>2010-01-26T12:56:00.001-05:00</published><updated>2010-01-26T12:56:25.067-05:00</updated><title type='text'>Some mnemonics for "ls" parameters</title><content type='html'>It can be a pain remembering all the different options to "ls", but I've found that most of my needs (outside of simple "ls" or "ls -l") fall into one of these three, easy-to-remember mnemonics:&lt;br/&gt;&lt;br/&gt;ls -ltr # Sort by time, reversed, show more details.&lt;br/&gt;ls -Ssh # Show and sort by human-readable size.&lt;br/&gt;ls -Ssl # show and sort by human readable size, but show more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2043409037747826176?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2043409037747826176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/some-mnemonics-for-parameters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2043409037747826176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2043409037747826176'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/some-mnemonics-for-parameters.html' title='Some mnemonics for &amp;quot;ls&amp;quot; parameters'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-4157677995781905846</id><published>2010-01-26T01:12:00.001-05:00</published><updated>2010-01-26T01:12:39.797-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rosettacode'/><title type='text'>Graphic background doubles nicely as a desktop background</title><content type='html'>&lt;a href="http://www.flickr.com/photos/28208534@N07/4306030258/" title="Multilingual Background by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4071/4306030258_be9960f0f9.jpg" width="500" height="500" alt="Multilingual Background" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This is one of the images I came up with as a component for images on fundraising items. However, I happen to think it makes an awesome background image. It's made for tiling, not stretching. Enjoy.&lt;br/&gt;&lt;br/&gt;(Sorry, I'm keeping the 300dpi version for myself...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-4157677995781905846?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/4157677995781905846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/graphic-background-doubles-nicely-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4157677995781905846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/4157677995781905846'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/graphic-background-doubles-nicely-as.html' title='Graphic background doubles nicely as a desktop background'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4071/4306030258_be9960f0f9_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5576949219917019638</id><published>2010-01-25T21:41:00.001-05:00</published><updated>2010-01-25T21:41:52.088-05:00</updated><title type='text'>Fast track to a massive parallel computer</title><content type='html'>The vast majority of people who will read this have Adobe Flash installed.  (Most will probably have Adblock or Flashblock installed, which has relevance, but not that much)&lt;br/&gt;&lt;br/&gt;I've been thinking about parallel computation for for a while, and looking at different ways to do it.  The best explicitly-known parallel computation setup out there are the @home projects like SETI@Home and folding@Home. These projects divide their workload into chunks, pass those chunks around, and programs running on volunteers' computers take these chunks, chew on them and pass them back.&lt;br/&gt;&lt;br/&gt;A few weeks ago, I had the idea that someone could distribute an @home-style client as a flash applet using the one distribution mechanism many of us already hate--website banner ads. Have a flash applet distributed via advertising networks that:&lt;br/&gt;&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Connects to a central server&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Grabs a data chunk&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chews on it&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Uploads the results to the central server&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;&lt;br/&gt;Flash already allows applets to pull remote files and perform GET requests. (I don't know about POST, though.) All that remains is grabbing and running the workload, and have a server that can verify that the workload results are uncorrupted. (i.e. not tampered with.)&lt;br/&gt;&lt;br/&gt;Yes, this results in spinning an end-user's processors more than they would be otherwise, which may cost them a few more cents per month on their electric bill, or a notable reduction in their laptop's battery life. It would be helpful if Flash had a mechanism to change applet resource consumption based on system power state and/or user preferences. Still, yes, it's coopting a user's computer to do something they didn't explicitly agree to. Someone else can deal with the ethics; I'm just spouting an idea.&lt;br/&gt;&lt;br/&gt;Also, yes, a large number of pages are only loaded for a very short period of time; The amount of time required to process a chunk of work may well require more time than the page will be loaded (and, thus, more time than the applet will be running).  There's a workaround for that, too.  First, Flash allows applets from any given domain to store a configurable amount of non-volatile data on the user's machine; That could be used as a data store for intermediate state. Second, the applet could wait a couple minutes before beginning the number crunch, looking for times when a page is left loaded for an extended duration. (Quite likely on sites like Youtube, Pandora and others with streaming media.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5576949219917019638?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5576949219917019638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/fast-track-to-massive-parallel-computer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5576949219917019638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5576949219917019638'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/fast-track-to-massive-parallel-computer.html' title='Fast track to a massive parallel computer'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5535526663747898608</id><published>2010-01-25T13:05:00.001-05:00</published><updated>2010-01-25T13:05:59.797-05:00</updated><title type='text'>Turning down Maven</title><content type='html'>I've gotten a couple invites to Maven. I ignored the first, then replied to the second with this:&lt;br/&gt;&lt;br/&gt;&lt;em&gt;I appreciate the offer, but reading through just this email, it strikes me as an Amway equivalent where the product is professional services, not hard goods.  Roughly intriguing, as that's something I can do, but I've known a bit too much about such pyramid product-selling systems.  Eventually, there's nobody left that the tail-end guy would want to bring into the system, meaning all he gets is selling his own time (minus a cut to the Maven system). With the focus on knowledge-based sales, that pool gets even narrower.&lt;br/&gt;&lt;br/&gt;I won't be joining; You don't need to send me any more invitations. Thank you for the offer.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5535526663747898608?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5535526663747898608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/turning-down-maven.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5535526663747898608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5535526663747898608'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/turning-down-maven.html' title='Turning down Maven'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-739231350662456910</id><published>2010-01-22T02:44:00.001-05:00</published><updated>2010-01-22T02:44:38.829-05:00</updated><title type='text'>It's all fun and games...</title><content type='html'>A friend of mine (related to another friend of mine) who has a glass eye has this to say:&lt;br/&gt;&lt;br/&gt;"It's all fun and games until someone loses an eye--and then it's hilarious!"&lt;br/&gt;&lt;br/&gt;He's nice to have on the gun range, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-739231350662456910?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/739231350662456910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/it-all-fun-and-games.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/739231350662456910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/739231350662456910'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/it-all-fun-and-games.html' title='It&amp;#39;s all fun and games...'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7519566973479714699</id><published>2010-01-19T21:03:00.001-05:00</published><updated>2010-01-19T21:03:45.193-05:00</updated><title type='text'>Pics on the wing</title><content type='html'>No, &lt;em&gt;pics&lt;/em&gt; on the wing, not pigs.&lt;br/&gt;&lt;br/&gt;Anyway, I took this while flying from ATL to MDW.  Came out really neat; I don't know why or how. I like it, though.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4282553474/" title="A Component of the wing by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2682/4282553474_522844684a.jpg" width="500" height="375" alt="A Component of the wing" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Complete set from that flight is &lt;a href="http://www.flickr.com/photos/28208534@N07/sets/72157623104661865/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7519566973479714699?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7519566973479714699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/pics-on-wing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7519566973479714699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7519566973479714699'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/pics-on-wing.html' title='Pics on the wing'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2682/4282553474_522844684a_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5450539291311435888</id><published>2010-01-19T17:15:00.001-05:00</published><updated>2010-01-19T17:15:16.230-05:00</updated><title type='text'>Looking for a keyboard/mouse combo device</title><content type='html'>I'm looking for a decent, wired keyboard/mouse combo device.  I'd love one of &lt;a href="http://pckeyboards.stores.yahoo.net/en104wh.html"&gt;these&lt;/a&gt;, but they're prohibited at the office. (The noise is apparently too distracting.)  I have one of &lt;a href="http://www.logitech.com/index.cfm/keyboards/keyboard/devices/3616"&gt;these&lt;/a&gt;, and I like it, but I don't care to be replacing or charging batteries on a keyboard I'm continually using.&lt;br/&gt;&lt;br/&gt;Ideas or recommendations?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5450539291311435888?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5450539291311435888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/looking-for-keyboardmouse-combo-device.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5450539291311435888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5450539291311435888'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/looking-for-keyboardmouse-combo-device.html' title='Looking for a keyboard/mouse combo device'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2632211363545716221</id><published>2010-01-18T15:56:00.001-05:00</published><updated>2010-01-18T15:56:02.721-05:00</updated><title type='text'>I didn't realize how much of a loser I was until Google spelled it out for me.</title><content type='html'>&lt;a href='http://cheezburger.com/View.aspx?aid=3081619200'&gt;&lt;img src='http://images.cheezburger.com/completestore/2010/1/18/129083030512223265.jpg' id='_r_a_3081619200' title='It's lonely liking Crystal Clear.' alt='It's lonely liking Crystal Clear.' /&gt;&lt;/a&gt;&lt;br /&gt;moar &lt;a href='http://icanhascheezburger.com'&gt;funny pictures&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2632211363545716221?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2632211363545716221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/i-didn-realize-how-much-of-loser-i-was.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2632211363545716221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2632211363545716221'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/i-didn-realize-how-much-of-loser-i-was.html' title='I didn&amp;#39;t realize how much of a loser I was until Google spelled it out for me.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-9160616855541966621</id><published>2010-01-17T02:03:00.001-05:00</published><updated>2010-01-17T02:03:23.381-05:00</updated><title type='text'>"Ghost in the Shell: Standalone Complex 2nd Gig" and "Toccata &amp; Fugue in D Minor"</title><content type='html'>I think one could create an interesting AMV that took GitS:SAC 2nd Gig, the corresponding Tachikomatic Days episodes, and mapped them to Bach's Toccata &amp; Fugue in D Minor.&lt;br/&gt;&lt;br/&gt;If I were to do it, I think the &lt;em&gt;way&lt;/em&gt; I would map it would be based on how you can see the piece played by an organist:&lt;br/&gt;&lt;br/&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_FXoyr_FyFw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_FXoyr_FyFw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;Parts of the song that had more significant use of the right hand would map more greatly to Section  9, their actions and their influences, parts that had more significant use of the left hand would map more greatly to Hideo Kuze and his actions and influences, while parts that had more significant use of the foot pedals would map more greatly to the actions of Kazunda Gouda and his actions and influences.&lt;br/&gt;&lt;br/&gt;There are a couple parts that &lt;em&gt;only&lt;/em&gt; have high note components, and those, of course, would need to map to the comic relief of Tachikomatic Days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-9160616855541966621?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/9160616855541966621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/in-shell-standalone-complex-2nd-gig-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/9160616855541966621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/9160616855541966621'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/in-shell-standalone-complex-2nd-gig-and.html' title='&amp;quot;Ghost in the Shell: Standalone Complex 2nd Gig&amp;quot; and &amp;quot;Toccata &amp;amp; Fugue in D Minor&amp;quot;'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2347653635870781615</id><published>2010-01-02T03:37:00.001-05:00</published><updated>2010-01-02T03:37:58.257-05:00</updated><title type='text'>New Year's Resolution(s)</title><content type='html'>&lt;p&gt;Get that check to Woodstock, and in the hands of its intended recipient.&lt;/p&gt;&lt;p&gt;Accomplish at least &lt;em&gt;some&lt;/em&gt; of the goals &lt;a href="http://rosettacode.org/blog/2010/01/2009-in-retrospect-foggy-glance-towards-2010.html"&gt;I noted&lt;/a&gt; for Rosetta Code for 2010.&lt;/p&gt;&lt;p&gt;Build a NAS box for off-box backups of dodo.&lt;/p&gt;&lt;p&gt;Find my Slayers DVDs.&lt;/p&gt;&lt;p&gt;Get a &lt;a href="http://mmol-6453.livejournal.com/213900.html"&gt;NexusBot&lt;/a&gt; dev team running.  Avoid contention over choice of programming language.&lt;/p&gt;&lt;p&gt;Solidify some more of my thoughts and ideas for &lt;a href="http://mmol-6453.livejournal.com/206024.html"&gt;image and video editing and compositing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Make an AMV or two.&lt;/p&gt;&lt;p&gt;Give up trying to get JT and RL to come back to coffee. (Dunno what we did to scare them off...)&lt;/p&gt;&lt;p&gt;Get some more anime-tolerant friends to attend the weekly get-togethers.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2347653635870781615?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2347653635870781615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2010/01/new-year-resolutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2347653635870781615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2347653635870781615'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2010/01/new-year-resolutions.html' title='New Year&amp;#39;s Resolution(s)'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7537938300402029274</id><published>2009-12-25T04:53:00.001-05:00</published><updated>2009-12-25T04:53:01.383-05:00</updated><title type='text'>Best Christmas Eve Ever</title><content type='html'>My brother is in town. We watched a bunch of movies together. I introduced him to &lt;a href="http://www.imdb.com/title/tt0114814/"&gt;The Usual Suspects&lt;/a&gt;, he then introduced me to &lt;a href="http://www.imdb.com/title/tt0284978/"&gt;Cypher&lt;/a&gt;, to which I responded with &lt;a href="http://www.imdb.com/title/tt0851578/"&gt;Paprika&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Coincidentally, that turns out to be an &lt;em&gt;awesome&lt;/em&gt; sequence if you like mysteries and plots that twist your brain into pretzels. It's like the hard-liquor cocktail of mystery/thrillers. Watched in that order, those movies' themes flow into each other; The first two have someone unseen pulling the strings, while the latter two make it difficult for the character to discern what's real and what's not. (Paprika takes this to extremes...)&lt;br/&gt;&lt;br/&gt;I need to show him &lt;a href="http://www.imdb.com/title/tt0118929/"&gt;Dark City&lt;/a&gt; next if I still have the BD from Netflix. I expect doing all &lt;em&gt;four&lt;/em&gt; of those in a marathon session would be like a &lt;a href="http://en.wikibooks.org/wiki/Bartending/Cocktails/Pan_Galactic_Gargle_Blaster"&gt;Pan Galactic Gargleblaster&lt;/a&gt;.  I'd probably throw Dark City somewhere between Cypher and Paprika in the sequence; It shares some of the 'unseen strings' characteristics with Cypher, albeit not quite so dense, and some of the uncertainty about reality, albeit not as dense as that of Paprika.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7537938300402029274?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7537938300402029274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/best-christmas-eve-ever.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7537938300402029274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7537938300402029274'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/best-christmas-eve-ever.html' title='Best Christmas Eve Ever'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-8661080430328898084</id><published>2009-12-22T00:37:00.001-05:00</published><updated>2009-12-22T00:37:58.833-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rosettacode'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='proggit'/><category scheme='http://www.blogger.com/atom/ns#' term='tcl'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Techtalk Tuesday: Nexus bot</title><content type='html'>This was an idea I've been chewing on for a while, now, and something I've been thinking about doing.  Simply put, it's a chat room bridge, but it's not that simple.&lt;br/&gt;&lt;br/&gt;Normally, I sit in rosettacode, haskell, proggit, perl, tcl and any number of other channels, ready to offer insight or assistance, or even just observe, if someone mentions Rosetta Code. What Would Be Nice would be if I could just sit in rosettacode, and let a bot handle it for me.&lt;br/&gt;&lt;br/&gt;The general sequence might go as follows:&lt;br/&gt;&lt;br/&gt;proggit - * soandso thinks Rosetta Code needs better algorithms&lt;br/&gt;rosettacode - &lt;nexusbot&gt; &lt;proggit&gt; * soandso thingks Rosetta Code needs better algorithms&lt;br/&gt;proggit - &lt;jubilee&gt; soandso: What are you looking for?&lt;br/&gt;rosettacode - &lt;nexusbot&gt; &lt;proggit&gt; &lt;#jubilee&gt; soandso: What are you looking for?&lt;br/&gt;rosettacode &lt;shortcircuit&gt; nexusbot: soandso: Did you see this category? (some url)&lt;br/&gt;proggit - &lt;nexusbot&gt; &lt;shortcircuit&gt; soandso: Did you see this category? (some url)&lt;br/&gt;&lt;br/&gt;Nexusbot has to perform several complicated behaviors there, so let's look at them.&lt;br/&gt;&lt;br/&gt;First:&lt;br/&gt;* soandso thinks Rosetta Code needs better algorithms&lt;br/&gt;&lt;br/&gt;"Rosetta Code" matches one of nexusbot's highlight rules for forwarding to rosettacode, so nexusbot relays the message to rosettacode, thinks of it as a "connection", and associates soandso as a primary for that connection, with a most recent related activity timestamp attached to his association with the connection.&lt;br/&gt;&lt;br/&gt;Next:&lt;br/&gt;&lt;jubilee&gt; soandso: What are you looking for?&lt;br/&gt;&lt;br/&gt;soandso is associated with a current connection (and that association hasn't timed out), and jubilee just said something to him.  nexusbot associates jubilee with soandso, and, through soandso, to the relay to rosettacode. jubilee is attached to the relay with his own related activity timestamp, copied from soandso's.&lt;br/&gt;&lt;br/&gt;rosettacode - &lt;shortcircuit&gt; nexusbot: soandso: Did you see this category? (some url)&lt;br/&gt;&lt;br/&gt;shortcircuit addresses nexusbot, and indicates he's addressing soandso through nexusbot. Nexusbot sees that soandso is associated with a connection between rosettacode and proggit, associates shortcircuit with that connection (along with a recent activity timestamp), and passes shortcircuit's message along to proggit&lt;br/&gt;&lt;br/&gt;Each time someone triggers a highlight, they're considered a primary for the connection that highlight creates (or would create, if it exists already), and their "recent related activity" timestamp is updated.  Each time someone talks to a primary for a connection, they're also associated with the connection, and their "recent related activity" timestamp is set to that of the primary's.&lt;br/&gt;&lt;br/&gt;Whenever a primary or secondary talks, their communications are relayed across the connection, but their RRAs are not updated.&lt;br/&gt;&lt;br/&gt;When a primary's RRA grows old past a certain point, they're disassociated from the connection.  When all of a connection's primaries are gone, the connection is ended.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;There are a couple scenarios this logic doesn't quite resolv. What if jubilee is a channel champion, someone who talks to everyone, and who everyone talks to?  It's probable that his side of a conversation with someone else would leak across the channel.  What if someone talks to a secondary on a related subject, but he doesn't trigger a hilight keyword? Well, that line would be lost.&lt;br/&gt;&lt;br/&gt;No solution is perfect.&lt;br/&gt;&lt;br/&gt;Now to deal with the Big Brother concerns. Ideally, nexusbot would only be in a channel if he were legitimately asked to be there. That means only a /invite, and preferably checking to see if the user who sent the invite is, in fact, in the destination channel. Ideally, nexusbot would only be in a channel until he were asked to leave. That means no autojoin after a /kick.&lt;br/&gt;&lt;br/&gt;There's also the consideration that it should let someone who's in authority in the channel know they're there and what they are, and offer a command set to control the bot's behavior in the channel.&lt;br/&gt;&lt;br/&gt;Random braindump of possible commands:&lt;br/&gt;&lt;br/&gt;HILIGHT LIST/ADD/REMOVE [#channel] -- lists, adds or removes a hilight rule, optionally associated with a channel. Lists include who requested the hilight rule, and when.&lt;br/&gt;&lt;br/&gt;RATELIMIT GET/SET -- get or set the maximum number of lines per minute.&lt;br/&gt;&lt;br/&gt;LINEBUFFER GET/SET -- get or set the size of the buffer for queuing lines if the ratelimit is hit.&lt;br/&gt;&lt;br/&gt;REPLYMODE USER/HIGHLIGHT/CHANNEL/AUTO +/- b/m/v -- treat connections derived from highlights or associated with particular remote channels as channels themselves, and allow some channel modes like +/- m to be applied to them. Likewise, allow user modes like +/- b and v to be associated with remote users.  AUTO means having the bot automatically sync its remote user modes (as they apply in that channel) with the channel's mute, voice and bans.&lt;br/&gt;&lt;br/&gt;Ideally, only channel members with +O or +o would have access to the setter commands.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-8661080430328898084?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/8661080430328898084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/techtalk-tuesday-nexus-bot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8661080430328898084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/8661080430328898084'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/techtalk-tuesday-nexus-bot.html' title='Techtalk Tuesday: Nexus bot'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6863846326422651268</id><published>2009-12-21T10:29:00.001-05:00</published><updated>2009-12-21T10:29:00.201-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grlug'/><title type='text'>Frameworking realtime communications</title><content type='html'>While looking into flexible ways of writing an IRC bot(the nature of which will probably be in a "Tech Tuesday" post for tomorrow; It's a comm routing bot, so don't complain about IRC != IM quite yet.), I tried using IM libraries.  I started with libpurple, because I use Pidgin &lt;em&gt;all&lt;/em&gt; the time. That was utter failure, as I couldn't find enough organized documentation to even write a &lt;em&gt;stub&lt;/em&gt; quickly.&lt;br/&gt;&lt;br/&gt;Then I tried playing with &lt;a href="http://telepathy.freedesktop.org/wiki/"&gt;telepathy&lt;/a&gt;.  I wasn't able to get it to work in the few minutes I had left that evening, but I did learn a few things.&lt;br/&gt;&lt;br/&gt;First, it's &lt;em&gt;awesomely&lt;/em&gt; flexible, and there are tools that exist that allow a GUI user to essentially interact with it the same way your program might, which let me immediately dive in and try testing some capabilities.&lt;br/&gt;&lt;br/&gt;Second, it's missing a decent IRC backend. The closest was "haze", which I couldn't get to connect to more than one IRC network at a time. Turns out Haze is just a glue module between Telepathy and libpurple, and the one-IRC-connection-at-a-time thing is a libpurple limitation. (I'm glad I didn't waste my time thoroughly studying the libpurple header files; It wouldn't have done what I needed, anyway.)  I &lt;em&gt;might&lt;/em&gt; be able to use multiple libpurple instances, but I don't know how safe that would be; libpurple uses a common filesystem location, I don't have control over it through Telepathy, and I can't trust it to be multi-instance safe in its access patterns.&lt;br/&gt;&lt;br/&gt;Telepathy is interesting because it allows multiple connections, any of which routed through any number of connection modules. One could conceivably create a program that talks to fifteen different networks using one or as many protocols.&lt;br/&gt;&lt;br/&gt;Darn cool.  I wish it had better support for IRC as a client (and maybe as a server...who knows what kinds of options that opens up?).  Support for things like identi.ca and Twitter would be pretty cool as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6863846326422651268?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6863846326422651268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/frameworking-realtime-communications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6863846326422651268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6863846326422651268'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/frameworking-realtime-communications.html' title='Frameworking realtime communications'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7729540002280776444</id><published>2009-12-20T02:29:00.001-05:00</published><updated>2009-12-20T02:29:10.211-05:00</updated><title type='text'>Computer cable rerouting and bundling (and pics)</title><content type='html'>I rerouted some cabling, replacing a hodgepodge of miscellaneous SATA cables with a bunch 90-degree-ended cables I'd bought from Digi-Key.&lt;br/&gt;&lt;br/&gt;This is the best I can do for now, until I get another SATA controller (so I can use SATA instead of PATA fo that bottom drive) and replace the power supply with one with modular cables.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4199552130/" title="Cable rerouting by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2491/4199552130_9bed64d75e.jpg" width="375" height="500" alt="Cable rerouting" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;&lt;lj-cut&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4198798893/" title="Poking around the inside of my computer by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2612/4198798893_73526aefe2.jpg" width="375" height="500" alt="Poking around the inside of my computer" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4198798443/" title="Nighttime blues by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2653/4198798443_d58f92d625.jpg" width="375" height="500" alt="Nighttime blues" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;In a pinch, I also wound up using some blue electrical tape to bind a coil of some other cable.  I wrapped it sticky-side out, then doubled over and wrapped it sticky-side in.  Net effect is that it's just rubbery plastic, no sticky adhesive anywhere.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4199551140/" title="electrical tape for temporary binding by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2509/4199551140_fcb89708e2.jpg" width="500" height="375" alt="electrical tape for temporary binding" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7729540002280776444?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7729540002280776444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/computer-cable-rerouting-and-bundling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7729540002280776444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7729540002280776444'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/computer-cable-rerouting-and-bundling.html' title='Computer cable rerouting and bundling (and pics)'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2491/4199552130_9bed64d75e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-872028966131317073</id><published>2009-12-18T16:17:00.001-05:00</published><updated>2009-12-18T16:17:45.906-05:00</updated><title type='text'>Bass by phase modulation.</title><content type='html'>I want to take two 50KHz synced tone sources, invert them, then phase modulate so that the difference between the two represents my actual signal.&lt;br/&gt;&lt;br/&gt;I'm really seeking to produce a high power signal in the 0-50Hz range, but the phase modulation approach has three advantages. First, the high carrier frequency can be deadened and insulated much more easily than a pure low frequency signal. Second, the emitting devices don't necessarily need to be as large as a corresponding cone. Third, they don't need to be directly attached, as with bass shakers, making seating and such easier to manage.&lt;br/&gt;&lt;br/&gt;The first problem with the phase modulation approach is the carrier signal; You don't want it to be within the audible range of any human or other hearing animal.&lt;br/&gt;&lt;br/&gt;The biggest up-front problem, though, is managing the positioning of the interference nodes. Having a high carrier frequency solves part of the problem by reducing the distance between the nodes.  The smaller the distance, the lower the likelyhood of a positive node being in one ear, and a negative node in the other. (Wouldn't want to scramble your brains, now, would we?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-872028966131317073?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/872028966131317073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/bass-by-phase-modulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/872028966131317073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/872028966131317073'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/bass-by-phase-modulation.html' title='Bass by phase modulation.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5990094571021522551</id><published>2009-12-14T15:01:00.001-05:00</published><updated>2009-12-14T15:01:03.304-05:00</updated><title type='text'>QOTD</title><content type='html'>"I went back in after I wrote them and added all sorts of weasel words. It sort of saps the punch from the statements, but it's one of those things I've learned that I have to do to avoid the more egregious forms of willful misunderstanding. " -- &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2009/12/14/9936347.aspx"&gt;Raymond Chen&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;"Willful misunderstanding" ... That's an issue I've been contemplating for a few months, now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5990094571021522551?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5990094571021522551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/qotd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5990094571021522551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5990094571021522551'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/qotd.html' title='QOTD'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5449863319908443991</id><published>2009-12-14T10:19:00.002-05:00</published><updated>2009-12-14T12:03:51.264-05:00</updated><title type='text'>Reboots and Automatic Updates</title><content type='html'>I couldn't check last week, as I was out of the office sick, but someone had asked if anyone's system had done an uncommanded reboot in response to automatic updates.&lt;br /&gt;&lt;br /&gt;I thought I'd go through my workstation's event log, and I've found a two interesting log entries, so far:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation Ready: The following updates are downloaded and ready for installation. This computer is currently scheduled to install these updates on ‎Wednesday, ‎December ‎09, ‎2009 at 3:00 AM: &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;- Windows Malicious Software Removal Tool x64 - December 2009 (KB890830)&lt;/span&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation Ready: The following updates are downloaded and ready for installation. This computer is currently scheduled to install these updates on ‎Wednesday, ‎December ‎09, ‎2009 at 3:00 AM: &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;- Cumulative Security Update for Internet Explorer 8 for Windows 7 for x64-based Systems (KB976325)&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;- Windows Malicious Software Removal Tool x64 - December 2009 (KB890830)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, I have Windows set up to download &lt;span style="font-style: italic;"&gt;only&lt;/span&gt;.  It's supposed to wait for my confirmation before I install.  Notice that those two events include the phrase, "&lt;span style="font-weight: bold;"&gt;This computer is currently scheduled to install these updates on Wednesday, December 09, 2009 at 3:00AM&lt;/span&gt;" ... I didn't tell Windows it could do that. Or, at least, that's not what the normal interface indicated it was set up to do. (I don't make a habit of digging through Administration Tools and tweaking things, as I don't know the full impact of most of what's in there.)&lt;br /&gt;&lt;br /&gt;Without finding the setting that automatically schedules updates for next-day installs, even when you tell it to download and wait for confirmation, the only obvious solution is&lt;br /&gt;&lt;br /&gt;The only solution to uncommanded reboots, as far as I can see, is to tell it to not even &lt;span style="font-style: italic;"&gt;download&lt;/span&gt; the updates unless instructed. Not as convenient as having it download in the background, but it saves you the hassle of having a machine reboot on its own, leaving you scratching your head as to why.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok, something reset my Windows Update preferences.  I just checked again, and it was set to "Install Automatically."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5449863319908443991?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5449863319908443991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/reboots-and-automatic-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5449863319908443991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5449863319908443991'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/reboots-and-automatic-updates.html' title='Reboots and Automatic Updates'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-7251347406054018035</id><published>2009-12-12T00:44:00.001-05:00</published><updated>2009-12-12T00:44:03.523-05:00</updated><title type='text'>Coax and Engrish</title><content type='html'>A few quick photos I took this evening.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4177700814/" title="Coax 1 - Light by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2558/4177700814_2218bd0286.jpg" width="500" height="375" alt="Coax 1 - Light" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4177700014/" title="Coax 2 - Dark by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2573/4177700014_64aa036f35.jpg" width="500" height="375" alt="Coax 2 - Dark" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4177699266/" title="Coax 3 by mikemol, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2624/4177699266_13fa301a7f.jpg" width="500" height="375" alt="Coax 3" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/28208534@N07/4176939355/" title="Some Engrish by mikemol, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4001/4176939355_108226257c.jpg" width="500" height="375" alt="Some Engrish" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-7251347406054018035?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/7251347406054018035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/coax-and-engrish.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7251347406054018035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/7251347406054018035'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/coax-and-engrish.html' title='Coax and Engrish'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2558/4177700814_2218bd0286_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2063509945963963983</id><published>2009-12-11T23:55:00.001-05:00</published><updated>2009-12-11T23:55:50.383-05:00</updated><title type='text'>Remote control</title><content type='html'>@coderjoe: You don't keep the remote for the receiver over here any more?&lt;br/&gt;&lt;br /&gt;Me: I haven't seen it in a week and a half...&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2063509945963963983?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2063509945963963983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/remote-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2063509945963963983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2063509945963963983'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/remote-control.html' title='Remote control'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5672683639569582681</id><published>2009-12-09T23:33:00.001-05:00</published><updated>2009-12-09T23:33:42.632-05:00</updated><title type='text'>A very simple idea for a browser extension</title><content type='html'>DOM-walking shortcut keys: hjkl.  If you've used vi or Google Reader, you probably know where I'm going with this.&lt;br/&gt;&lt;br/&gt;H: Switch focus and highlight to parent DOM node.&lt;br/&gt;J: Switch focus and highlight to previous sibling DOM node.&lt;br/&gt;K: Switch focus and highlight to next sibling DOM node.&lt;br/&gt;L: Switch focus and highlight to first child DOM node.&lt;br/&gt;&lt;br/&gt;Something like that would make browsing most blogs' and forums' comment sections &lt;em&gt;much&lt;/em&gt; more convenient.&lt;br/&gt;&lt;br/&gt;It's simple enough I'd probably do it if I knew how to make a Firefox extension. :-|&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5672683639569582681?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5672683639569582681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/very-simple-idea-for-browser-extension.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5672683639569582681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5672683639569582681'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/very-simple-idea-for-browser-extension.html' title='A very simple idea for a browser extension'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-2895662891876128738</id><published>2009-12-09T21:54:00.001-05:00</published><updated>2009-12-09T21:54:09.904-05:00</updated><title type='text'>Hypoallergenic detergent</title><content type='html'>So we now have one of those front-loading washers that uses a lot less water.  Problem is, even using the "extra wash" and "second rinse" cycles without soap, I still have to put it through a &lt;em&gt;second&lt;/em&gt; run of the above to get all of the soap out, and we're already using less than the normal amount of soap specified in all the directions.&lt;br/&gt;&lt;br/&gt;More details on the washer: It supports a normal wash, rinse, spin-dry sequence, same as any other.  It also supports an "extra wash" and a "2nd rinse".  I usually run loads with "extra wash" and "2nd rinse" enabled, to get more water through to dilute out the soap.&lt;br/&gt;&lt;br/&gt;Why is it important to get all the soap out?  It gives my grandmother hives.  We're using "Hypoallergenic Purex UltraConcentrate h.e", and even with five soap-free rinses (one normal run with extra wash and 2nd rinse enabled, one soap-free run with the same), there's still enough soap remaining to cause allergic reactions.&lt;br/&gt;&lt;br/&gt;Does anyone know of something &lt;em&gt;more&lt;/em&gt; hypoallergenic than the stuff we're already using?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-2895662891876128738?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/2895662891876128738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/hypoallergenic-detergent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2895662891876128738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/2895662891876128738'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/hypoallergenic-detergent.html' title='Hypoallergenic detergent'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-5753477047853173514</id><published>2009-12-09T00:20:00.001-05:00</published><updated>2009-12-09T00:20:59.091-05:00</updated><title type='text'>Vinegar, Venom and salt</title><content type='html'>Vinegar, venom and salt&lt;br/&gt;I'm counting all your faults&lt;br/&gt;When the time is right&lt;br/&gt;The pen could write&lt;br/&gt;And joy would come to a halt&lt;br/&gt;&lt;br/&gt;Vinegar, venom and salt&lt;br/&gt;They're quite the painful thoughts&lt;br/&gt;I see the fool&lt;br/&gt;I see the tool&lt;br/&gt;Words can be quite the assault&lt;br/&gt;&lt;br/&gt;Vinegar, venom and salt&lt;br/&gt;They must be kept in a vault&lt;br/&gt;Padlocked, lost key&lt;br/&gt;No-exit, you see&lt;br/&gt;Void the words and their poisonous waltz.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-5753477047853173514?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/5753477047853173514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/vinegar-venom-and-salt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5753477047853173514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/5753477047853173514'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/vinegar-venom-and-salt.html' title='Vinegar, Venom and salt'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1086256267747063590</id><published>2009-12-08T22:33:00.001-05:00</published><updated>2009-12-08T22:33:30.367-05:00</updated><title type='text'>Looking at a longer Winter in Michigan</title><content type='html'>We're looking at having a longer winter here in Michigan.&lt;br/&gt;You see, there are only two seasons here: "Winter" and "Under Construction"&lt;br/&gt;They're talking about losing federal dollars for road maintenance, as Michigan can't put up the matching dollars.&lt;br&gt;So we're looking at the road maintenance budget being cut to less than half.&lt;br/&gt;The "Under Construction" season would thus be shortened.&lt;br/&gt;Ergo, we're looking at having a longer winter here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1086256267747063590?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1086256267747063590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/looking-at-longer-winter-in-michigan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1086256267747063590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1086256267747063590'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/looking-at-longer-winter-in-michigan.html' title='Looking at a longer Winter in Michigan'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-938707529147353995</id><published>2009-12-08T15:24:00.001-05:00</published><updated>2009-12-08T15:24:19.416-05:00</updated><title type='text'>GPG and signed email</title><content type='html'>I've started using GPG to sign my email.  It was easy; Install FireGPG and generate a key.&lt;br/&gt;&lt;br/&gt;In order to send signed emails, FireGPG contact's GMail's SMTP server directly.  Fair enough, but that got me thinking...What about having an SMTP server that &lt;em&gt;only&lt;/em&gt; delivered signed emails where the signature checked out against some public keyring, and the signer wasn't marked as unauthorized due to abusive behavior? You could have an anonymous relay that operated in that fashion.&lt;br/&gt;&lt;br/&gt;Add in a "X-Server-GPG-Signature" header in the email, and an email provider using such a technique could garner a decent reputation, and thus get more or less a pass by any anti-spam filters in the next stage of the email relay.&lt;br/&gt;&lt;br/&gt;I'm sure the idea isn't new. I suspect, though, that all that's needed are a few seed SMTP servers that operate in this fashion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-938707529147353995?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/938707529147353995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/gpg-and-signed-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/938707529147353995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/938707529147353995'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/gpg-and-signed-email.html' title='GPG and signed email'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1304338570384379522</id><published>2009-12-08T13:20:00.001-05:00</published><updated>2009-12-08T13:20:55.516-05:00</updated><title type='text'>Two puffs every four hours and a vaccine</title><content type='html'>So all the crap that's in my lungs is dead, but there's still a lot down there. Plain old albuterol inhaler is going to increase coughing and accelerate getting all that crap out. Codeine cough syrup apparently keeps me awake, so some numbing agent from the Novocaine family will help me sleep at night instead.&lt;br/&gt;&lt;br/&gt;Meanwhile, I also got the H1N1 vaccine.  Whether or not I'm just getting over H1N1 (they just don't test for it any more; Tests come back positive in Kent County more often than not), the vaccine is a good move for me avoiding carrying something that could infect my grandmother.  I specifically asked my doctor about whether or not I could take the vaccine, and, as it turns out, high fever is the disqualifier, and I'm already over that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1304338570384379522?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1304338570384379522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/two-puffs-every-four-hours-and-vaccine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1304338570384379522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1304338570384379522'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/two-puffs-every-four-hours-and-vaccine.html' title='Two puffs every four hours and a vaccine'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1870174843941953934</id><published>2009-12-08T04:32:00.001-05:00</published><updated>2009-12-08T04:32:13.516-05:00</updated><title type='text'>Techtalk Tuesday -- Video editing and image compositing</title><content type='html'>So I've been thinking about video editing, Linux, and how much I hate Cinelerra.&lt;br/&gt;&lt;br/&gt;Now, I don't know a lot about the internals and features of existing video editing tools, but I at least know some of the basics. First, you produce a series of images at a rate intended give the illusion of movement. Let's look at a single point in time, and ignore the animation side of the equation.  Let's also focus on visual (as opposed to auditory) factors.&lt;br/&gt;&lt;br/&gt;You have source images, you have filters and other transformations you want to apply to them in a particular order, and you want to output them into a combined buffer representing the full visualization of the frame.&lt;br/&gt;&lt;br/&gt;Let's break it down a bit further, along the lines of the "I know enough to be dangerous" areas.&lt;br/&gt;&lt;br/&gt;Raster image data has several possible variations, aside from what is being depicted. It may have a specific color space, be represented in binary using different color models (RGB vs YUV vs HSL vs HSV), may have additional per-pixel data (like an alpha channel) thrown in, and the subpixel components can have different orderings(RGB vs RBG), sizes(8bpp to 32bpp), and even formats (integer, floats of various sizes and multiplier/mantissa arrangements). ICC color profiles fit in there somewhere, too, but I'm not sure where. There's even dpi, though not a lot of folks pay attention to that in still imagery, much less video.  Oh, don't forget stride (empty space often left as padding at the end of an image data row, to take advantage of performance improvements related to byte alignment.).&lt;br/&gt;&lt;br/&gt;Now let's look at how you might arrange image transformations. The simplest way to do it might me to organize the entire operation set as an unbalanced tree, merging from the outermost leafs inward. (Well, that's the simplest way I can visualize it, at least).  Each node would have a number of children equal to the number of its inputs. A simple filter would have one input, so it would have one child.  Any more inputs, and you have a compositing node.  An alpha merge, binary (XOR/OR/AND) or arithmetic(subtract, add, multiply, etc) merge would be two-arity, while a mask merge might be three-arity.&lt;br/&gt;&lt;br/&gt;Fortunately, all of this is pretty simple to describe in code. You only need one prototype for all of your image operations:&lt;br/&gt;&lt;br/&gt;void imageFunc(in ConfigParams, in InputCount, in BUFFER[InputCount], out BUFFER,)&lt;br/&gt;{&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;An image source would have an InputCount of 0; It gets its data from some other location, specified by ConfigParams.&lt;br/&gt;&lt;br/&gt;So assuming you were willing to cast aside performance in the interests of insane levels of flexibility (hey, i love over-engineering stuff like this; Be glad I left out the thoughts on scalar filter inputs, vector-to-scalar filters, multiple outputs (useful for deinterlacing), and that's not even fully considering mapping in vector graphics.), you probably want to be able to consider all that frame metadata. Make it part of your BUFFER data type.&lt;br/&gt;&lt;br/&gt;One needs to make sure to match input and output formats as much as possible, and minimize glue-type color model and color space conversions. For varying tradeoffs of performance to accuracty, you could up-convert lower-precision image formats to larger range and higher-precision ones, assuming downstream filters supported those higher-precision ones. Given modern CPU and GPU SIMD capabilities, that might even be a recommended baseline for stock filters.&lt;br/&gt;&lt;br/&gt;Additionally, it *might* be possible to use an optimizing compiler for the operation graph. From rearranging mathematically-equal filters and eliminating discovered redundancy to building filter machine code based on types and op templates. But that's delving into domain-specific language design, and not something I want to think too hard about at 4AM.  In any case, it would likely be unwise to expose all but the most advanced users to the full graph, instead allowing the user interface to map more common behaviors to underlying code.&lt;br/&gt;&lt;br/&gt;There's also clear opportunity for parallelism, in that the tree graph, being processed leaf-to-root, could have a thread pool, with each thread starting from a different leaf.&lt;br/&gt;&lt;br/&gt;That's an image compositor.  Just about any image editing thing you could want to do can be done in there.  One exception I can think of are stereovision video, though the workaround for that is to lock-mirror the tree and have the final composite a map-and-join. (If you want to apply different fiters to what each eye sees, you're an evil, devious ba**ard. I salute you, and hope to see it.)  Another is gain-type filtering, where a result from nearer the tree root could be used deeper in the tree (such as if you wanted to dynamically avoid clipping due to something you were doing, or if you simply wanted to reuse information you lost due to subsequent filtering or compositing steps). Still another is cross-branch feeding; I can think of a few interesting effects you could pull off with somethig like that.  There's also layering and de-layering of per-pixel components.&lt;br/&gt;&lt;br/&gt;As a bonus, it's flexible enough that you could get rid of that crap compisitor that's been sitting at the core of the GIMP for the past twenty years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1870174843941953934?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1870174843941953934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/techtalk-tuesday-video-editing-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1870174843941953934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1870174843941953934'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/techtalk-tuesday-video-editing-and.html' title='Techtalk Tuesday -- Video editing and image compositing'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-299316389029874973</id><published>2009-12-07T17:00:00.001-05:00</published><updated>2009-12-07T17:00:06.460-05:00</updated><title type='text'>Flu</title><content type='html'>My grandmother clipped this out of some county newsletter and left it for me:&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;How do I know if I have the H1N1 flu?&lt;/span&gt;&lt;br style="font-style: italic;"&gt;&lt;br style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;The symptoms of this influenza virus are similar to just about every 'flu' bug out there.&amp;nbsp; Common effects are a cough, sore throat, headache, fever and chills, severe fatigue with body aches.&amp;nbsp; Some people are over the fever and chills phase in about 2 to 3 days while others suffer for more than a week.&amp;nbsp; Complications can occur days into the illness when lower chest congestion progresses to pneumonia.&amp;nbsp; This is a secondary bacterial infection that comes about because the immune system is so taxed fighting the flu it cannot fend off the bacterial pneumonia.&amp;nbsp; This disease is so prevalent that hospitals and the health department have stopped testing specifically for H1N1 2009. It is always coming back positive, so if you have the above symptoms you are presumed to have H1N1 influenza.&lt;/span&gt;&lt;br style="font-style: italic;"&gt;&lt;br&gt;(Yeah, whoever wrote that article needs to work on their language skills.)&lt;br&gt;&lt;br&gt;Cough, sore throat, fever and chills, severe fatigue with body aches. All there, at one point or another in the last two weeks. Pneumonia last week.&lt;br&gt;&lt;br&gt;Doctor's appointment tomorrow, because I &lt;span style="font-style: italic;"&gt;hate&lt;/span&gt; the idea of missing a third week of work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-299316389029874973?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/299316389029874973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/flu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/299316389029874973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/299316389029874973'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/flu.html' title='Flu'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1470169747854646196</id><published>2009-12-06T15:48:00.001-05:00</published><updated>2009-12-06T15:48:24.852-05:00</updated><title type='text'>Thinking about backups.</title><content type='html'>Thinking about backups.&lt;br/&gt;&lt;br/&gt;I've got a 3TB RAID5 volume (three 1.5TB disks) that reads between 150-200MB/s, but only writes at 25-50MB/s.&lt;br/&gt;&lt;br/&gt;I would &lt;em&gt;like&lt;/em&gt; to have full backup capacity of all 3TB of data, but the question becomes "how"?&lt;br/&gt;&lt;br/&gt;If we assume that the reason for the slow write speed to the software RAID 5 array stems from parity calculation, then it stands to reason that a RAID 0 array wouldn't suffer the same speed limitation.  Additionally, a RAID 0 array of two 1.5TB disks would hit a 3TB volume size, as opposed to requiring a third disk as in RAID 5.&lt;br/&gt;&lt;br/&gt;I'm considering having a second, weaker box run software RAID0, and do a nightly rsync from primary box to the backup box. A dedicated 1Gb/s link would facilitate the copy.&lt;br/&gt;&lt;br/&gt;If a drive in the RAID0 array fails, I replace it, rebuild and re-run the backup. If a drive in the RAID5 array fails, I replace it and rebuild. If the rebuild kills a drive and the RAID5 fails, I've got a backup. Meanwhile, I've got an isolated power supply, reducing the number of single points of failure. I'm using fewer drives in the backup machine, reducing cost. I'm reusing older hardware for the backup machine, reducing cost.&lt;br/&gt;&lt;br/&gt;Tricky part is figuring out offsite backups from there, but my data isn't &lt;em&gt;that&lt;/em&gt; valuable yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1470169747854646196?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1470169747854646196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/thinking-about-backups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1470169747854646196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1470169747854646196'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/thinking-about-backups.html' title='Thinking about backups.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-6077127669371134397</id><published>2009-12-06T15:05:00.001-05:00</published><updated>2009-12-06T15:05:52.568-05:00</updated><title type='text'>IR-&gt;Bluetooth-&gt;IR</title><content type='html'>You know what would be nice to have? A near-proximity IR-&gt;Bluetooth-&gt;IR adapter.&lt;br/&gt;&lt;br/&gt;By "near-proximity", I mean having it &lt;em&gt;attached&lt;/em&gt; to the original IR transmitting device, have an IR sensor, convert that to a 2KHz 1-bit bitstream, send that via BT to a receiver that converts it back to an IR transmission near whatever device needs to receive it.&lt;br/&gt;&lt;br/&gt;Two significant problems remain: Bulk and power.  For bulk, one could take advantage of paper-ICs or other film integration. (When I was a kid, I saw &lt;a href="http://en.wikipedia.org/wiki/Thick_film_technology"&gt;thick-film ICs&lt;/a&gt; dating back to the 70s. They may have been around longer than that.)&lt;br/&gt;&lt;br/&gt;For power, I don't know. Probably the best way to go about it is to leech off the existing remote control's battery pack. I can think of a couple ways one might do that without interfering with the remote's internal expectations of its power source.&lt;br/&gt;&lt;br/&gt;Of course, you &lt;em&gt;could&lt;/em&gt; just build the thing into a lithium battery pack, rechargeable via USB, and tout it as both a range and life extension of the remote.  Lithium power density is such that you might be able to pack the lithium, charging circuitry and bt transmitter in the space of a couple AA batteries. Some mechanical finagling and shoe-horning might be necessary to fit different battery compartment configurations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-6077127669371134397?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/6077127669371134397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/ir.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6077127669371134397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/6077127669371134397'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/ir.html' title='IR-&amp;gt;Bluetooth-&amp;gt;IR'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-3238067558796541898</id><published>2009-12-06T00:18:00.001-05:00</published><updated>2009-12-06T00:18:17.649-05:00</updated><title type='text'>Tis the Season to Barter</title><content type='html'>So my router was dropping 70-80% of packets, making it nightmarish trying to do anything via SSH.  I called up a friend and asked him to pick up a cheap router from Best Buy, along with some new CAT6 ends (These are a *lot* nicer than the crap ones that took me 45 minutes apiece to do badly...).&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Of course, an order like that comes to about $70, and I don't have that laying around in cash.  PayPal was inconvenient for technical reasons, so we came up with a convenient solution...I just bought an equal amount of stuff from his Amazon wishlist, and am having it shipped directly to his registered address.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-3238067558796541898?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/3238067558796541898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/tis-season-to-barter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3238067558796541898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/3238067558796541898'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/tis-season-to-barter.html' title='Tis the Season to Barter'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9180045564676310264.post-1780955532677592029</id><published>2009-12-04T15:41:00.001-05:00</published><updated>2009-12-04T15:41:45.560-05:00</updated><title type='text'>Migrating from a solid disk to software RAID.</title><content type='html'>So I've now got three 1.5TB disks in RAID 5, the array is assembled and running on bootup, and is mounted as my /home. Previously, I was using a 1TB drive for /home.&lt;br /&gt;&lt;br /&gt;(I'm going to abbreviate this, including only the steps that worked, and initially omitting some of the excruciatingly long retries)&lt;br /&gt;&lt;br /&gt;After installing the three disks into the machine, my first step was using Ubuntu's Palimpset Disk Utility to build the software RAID device. That took about seven hours, unattended.&lt;br /&gt;&lt;br /&gt;The next step was copying my old /home filesystem to the new RAID array, using dd. That took about nine hours, unattended.&lt;br /&gt;&lt;br /&gt;The next step was expanding the filesystem and tuning some parameters. ext3 isn't aware of the size of the block device it sits on, but it does remember a similar value related to that of the device it was created on. I had to use resize2fs to expand it from having sat on a 1TB volume to occupying a 3TB volume.&lt;br /&gt;&lt;br /&gt;I looked at tune2fs and enabled a few options, including dir_index (I have a few folders with thousands of files in them), sparse_super (That saved a *lot* of disk space) and uninit_bg (Supposed to speed up fsck).  I didn't read the man page clearly, and didn't discover until afterwards that by enabling uninit_bg, I'd given tune2fs the go-ahead to convert my filesystem from ext3 to ext4. Oh well...Seems to be working, and there are a few features of ext4 (such as extents) that I expect will come in handy.&lt;br /&gt;&lt;br /&gt;The next step was to reboot and ensure that I could mount the array after rebooting; I didn't want some screw-up on my part to lead to all that time being wasted* by failing a RAID volume.  After establishing I could mount it, it came time to modify mdadm.conf. and seeing that the array would come up on bootup.  After that, all that was left was modifying /etc/fstab to mount the RAID volume at /home, rebooting, and restoring compressed tarballs and such from my overflow drive.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;/dev/md0              2.8T  1.2T  1.4T  47% /home&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I've gone from having 8GB free on /home to having 1.4TB free.  Can't complain. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@dodo:/home/shortcircuit# dd if=/dev/md0 of=/dev/null&lt;br /&gt;10985044+0 records in&lt;br /&gt;10985043+0 records out&lt;br /&gt;5624342016 bytes (5.6 GB) copied, 27.5768 s, 204 MB/s&lt;br /&gt;18288001+0 records in&lt;br /&gt;18288000+0 records out&lt;br /&gt;9363456000 bytes (9.4 GB) copied, 46.1469 s, 203 MB/s&lt;br /&gt;22992060+0 records in&lt;br /&gt;22992059+0 records out&lt;br /&gt;11771934208 bytes (12 GB) copied, 57.7066 s, 204 MB/s&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Getting over 200MB/s in raw streaming read.  Can't complain about that, either; I only read at about 70MB/s when pulling from a single (mostly) idle disk that's not part of the array.&lt;br /&gt;&lt;br /&gt;Of course, it's not as good as I'd get with a hardware RAID card, but it's a heck of a lot better than I'd get otherwise.  My comparative write speed sits down at about 25MB/s when dd'ing from a USB drive to the md0 device. I probably should have tried testing the write speed while reading from /dev/zero before putting the filesystem in place, but the bonnie disk benchmark at least gives some non-destructive results:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-&lt;br /&gt;                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--&lt;br /&gt;Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP&lt;br /&gt;dodo            16G 38025  73 38386   8 25797   5 47096  85 161903  16 353.8   0&lt;br /&gt;                    ------Sequential Create------ --------Random Create--------&lt;br /&gt;                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--&lt;br /&gt;              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP&lt;br /&gt;                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++&lt;br /&gt;dodo,16G,38025,73,38386,8,25797,5,47096,85,161903,16,353.8,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For ext4 on top of the software RAID5 volume (consisting of three Seagate ST31500541AS), I get 38MB/s sequential output, 161MB/s sequential input, and 353 random seeks per second.  Little to no difference between per-character writing and block writing.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-&lt;br /&gt;                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--&lt;br /&gt;Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP&lt;br /&gt;dodo            16G 50964  96 61461  15 29468   6 49902  87 84502   6 202.1   0&lt;br /&gt;                    ------Sequential Create------ --------Random Create--------&lt;br /&gt;                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--&lt;br /&gt;              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP&lt;br /&gt;                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For ext3 on top of a single disk (a Seagate ST3500630AS), I get 51M/s sequential per-character write, 61M/s sequential block write, 50M/s sequential character read,  84M/s sequential block read, and 202 random seeks per second.&lt;br /&gt;&lt;br /&gt;Long and short of it, a single block disk kicks my software RAID5 volume's butt for sequential write, but the software RAID5 blows away the single disk for sequential reads, and gets a 50% improvement over the single disk's random seek rate.&lt;br /&gt;&lt;br /&gt;One thing I find particularly interesting about this is that the three disks in the RAID volume are 5900 RPM spindle speed, while that single disk is 7200 RPM spindle speed. I suppose having three heads is better than one. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9180045564676310264-1780955532677592029?l=michael-mol.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michael-mol.blogspot.com/feeds/1780955532677592029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://michael-mol.blogspot.com/2009/12/migrating-from-solid-disk-to-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1780955532677592029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9180045564676310264/posts/default/1780955532677592029'/><link rel='alternate' type='text/html' href='http://michael-mol.blogspot.com/2009/12/migrating-from-solid-disk-to-software.html' title='Migrating from a solid disk to software RAID.'/><author><name>Michael Mol</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_hI8X5isxu-o/SdUdBymQDEI/AAAAAAAAAC4/uc0OFTvxQME/S220/9.gif'/></author><thr:total>0</thr:total></entry></feed>
