<?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-2295159894467617520</id><updated>2011-07-07T16:49:34.818-04:00</updated><category term='linux'/><category term='new-car-saga'/><category term='speed'/><category term='zfs'/><category term='hacks'/><category term='python'/><category term='programming'/><category term='opensolaris'/><category term='statistics'/><category term='ubuntu'/><category term='hardware'/><category term='programs'/><category term='electronics'/><category term='money'/><title type='text'>Craig Younkins' Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-4739186174601515984</id><published>2010-07-03T21:55:00.008-04:00</published><updated>2010-07-04T19:14:12.254-04:00</updated><title type='text'>Asynchronous Communication</title><content type='html'>What do text messaging, email, and voicemail have in common? They're all asynchronous forms of communication.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By asynchronous I mean that the stream of communication is intermittent and not constant. There may be minutes or hours in between messages in the conversation. When you email or leave someone a voicemail, you realize that the person you are contacting will likely take a while to get back to you. The very minimum most people expect someone to get back with one of these methods is around 5 minutes, and people typically estimate it will take around a day. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Contrast this with a synchronous method of communication such as the phone or instant messaging, where the stream of communication is expected to stay quick, with messages being passed back and forth within seconds. With phone calls or speaking with someone in person, there is usually the expectation that the other person will reply as soon as the speaker is finished their sentence.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I often harp on text messaging because text input on mobile devices is slow and because carriers really overcharge for texts. A bare-minimum voice connection on Verizon's EV-DO network uses 38.4 kbits/sec. In one second of voice communication&lt;span&gt;&lt;span&gt;, 38,400 bits (4,915 bytes) are transmitted over the air. Each SMS text message is 1120 bits (140 bytes), regardless of the character encoding. After doing the math, we can see that 1 second of voice communication is the data equivalent of 35 full-length text messages. If you don't have a text message plan, Verizon charges $0.25 per sent text message. For 35 text messages, that's $8.75. Imagine if your voice plan cost &lt;i&gt;$8.75 per second, or $525 per minute! &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;But despite its slow conversation pace and high cost, text messaging remains a very popular method of communication in teens and young adults. After speaking with numerous people, I found that most do not disagree with my two biggest gripes. And yet they still text. Perhaps one reason why is because it is asynchronous. People can carry on multiple asynchronous conversations at the same time, or multiple asynchronous conversations and a synchronous one. People will text at the meal table or when hanging out with friends because they can maintain the synchronous conversation with the people they are physically with, and still chat with someone who isn't there. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Both asynchronous and synchronous communication methods have their benefits. Synchronous communication allows for a conversation to happen quickly with a lot of back and forth, so it's great for people to coordinate real-time events such as meeting places or to explain something clearly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Asynchronous communication allows for fewer interruptions. A synchronous conversation generally derails the thought process of the recipient and tears them away from whatever they were doing. Your boss comes by, "Got a minute?" or your wife calls to check in. Either way, whatever you were working on gets put on hold and you shift focus to the conversation initiator. This also results in switching to a different context, which can impede your workflow. An asynchronous conversation on the other hand occurs on &lt;i&gt;your&lt;/i&gt; time. You decide when to check your email and when to respond to your voicemail. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next time you need something from your husband/wife, consider sending them an email instead of interrupting their work, assuming the need isn't urgent. Also consider that these are not cut and dry categories. If you keep your email open or have your email client pop up with a notification when you receive a new email, your email becomes more synchronous. Maybe you need it to be that way, or maybe you don't. If you don't, you could reduce interruptions by turning notifications off or closing your email, allowing you to focus on your current task.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What do you think? Is there a difference in these communication methods? Do you like to text? Why?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-4739186174601515984?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/4739186174601515984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=4739186174601515984' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/4739186174601515984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/4739186174601515984'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2010/07/asynchronous-communication.html' title='Asynchronous Communication'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-1588036769839061218</id><published>2010-03-26T20:09:00.003-04:00</published><updated>2010-03-26T20:35:13.500-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>PyCon 2010 Highlights</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I recently attended the fantastic PyCon in Atlanta, GA. It was awesome to see what people were doing with Python and what improvements people were proposing; the Python community is really powerful, and everyone wants to see the language evolve. I learned a ton and had a *great* time.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Top three videos from PyCon that I highly recommend you watch:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blip.tv/file/3332776"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Guido's Q&amp;amp;A&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; - At 29:30, Guido makes some comments about functional languages saying he admires them from afar and is interested in what they can contribute to Python.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  color: rgb(51, 51, 51); line-height: 20px; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;a href="http://blip.tv/file/3332807"&gt;Relentlessly Pursuing Opportunities With Python, or why the AIs will Spare Us All&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  color: rgb(51, 51, 51); line-height: 20px; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  color: rgb(51, 51, 51); line-height: 20px; "&gt;&lt;a href="http://pycon.blip.tv/file/3254256/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Understanding the Python GIL&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-1588036769839061218?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/1588036769839061218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=1588036769839061218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1588036769839061218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1588036769839061218'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2010/03/pycon-2010-highlights.html' title='PyCon 2010 Highlights'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-4565312680343056172</id><published>2009-07-08T22:30:00.009-04:00</published><updated>2009-07-10T18:31:24.188-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='new-car-saga'/><title type='text'>JD Power Dependability Study Boxplots Per Automaker</title><content type='html'>I'm currently searching for a new car, and one of the things that is most important to me is reliability. So I decided to write a little python script to scrape all the statistics from JD Power's website for my own analysis.&lt;br /&gt;&lt;br /&gt;While the system is currently being revamped to include data from more sources and persist data in a SQLite database, it will be available here shortly. One of the more interesting things I've done already is create &lt;a href="http://en.wikipedia.org/wiki/Boxplot"&gt;boxplots&lt;/a&gt; (also known as box-and-whisker plots) of all the data derived from the Vehicle Dependability Study for each automaker. Data was collected from the "Overall Dependability" score for every car of every year for each automaker and put into &lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt; to make boxplots.&lt;br /&gt;&lt;br /&gt;Essentially, these plots show the ranges in dependability scores as well as their general distributions. Each whisker and side of the box is a quartile, with the red line in the middle representing the median. Outliers are marked by plus signs. Higher scores are better.&lt;br /&gt;&lt;br /&gt;Because the study is about problems in the first three years of ownership, data includes cars as old as 2001 models and as new as 2006 models. The number of data points for each automaker varies. The data is not guaranteed accurate, though I have no reason to doubt it.&lt;br /&gt;&lt;br /&gt;JD Power on the Vehicle Dependability Study:&lt;br /&gt;&lt;blockquote&gt;"&lt;b&gt;Overall Dependability:&lt;/b&gt; Taken from the Vehicle Dependability Study (VDS), which looks at owner-reported problems in the first 3 years of new-vehicle ownership, this score is based on problems that have caused a complete breakdown or malfunction of any component, feature, or item (i.e., components that stop working or trim pieces that break or come loose)."&lt;/blockquote&gt;I hope you find the plots as interesting as I did!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BmqOax3CJoE/SlVXKaJy5FI/AAAAAAAAAVw/b6MJXrBwOXI/s1600-h/overallDependabilityUntil2008Results1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 501px; height: 177px;" src="http://3.bp.blogspot.com/_BmqOax3CJoE/SlVXKaJy5FI/AAAAAAAAAVw/b6MJXrBwOXI/s400/overallDependabilityUntil2008Results1.png" alt="" id="BLOGGER_PHOTO_ID_5356283168157787218" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BmqOax3CJoE/SlVe0NN_CNI/AAAAAAAAAV4/HTOT0wSdLUQ/s1600-h/overallDependabilityUntil2008Results2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 501px; height: 177px;" src="http://3.bp.blogspot.com/_BmqOax3CJoE/SlVe0NN_CNI/AAAAAAAAAV4/HTOT0wSdLUQ/s400/overallDependabilityUntil2008Results2.png" alt="" id="BLOGGER_PHOTO_ID_5356291582821599442" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-4565312680343056172?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/4565312680343056172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=4565312680343056172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/4565312680343056172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/4565312680343056172'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/07/jd-power-dependability-study-boxplots.html' title='JD Power Dependability Study Boxplots Per Automaker'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BmqOax3CJoE/SlVXKaJy5FI/AAAAAAAAAVw/b6MJXrBwOXI/s72-c/overallDependabilityUntil2008Results1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-5774991687310913599</id><published>2009-04-11T22:03:00.008-04:00</published><updated>2009-04-13T10:33:47.261-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zfs'/><category scheme='http://www.blogger.com/atom/ns#' term='opensolaris'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>OpenSolaris and ZFS: Hardware</title><content type='html'>Having heard that &lt;a href="http://opensolaris.org/os/community/zfs/docs/zfs_last.pdf"&gt;ZFS is the last word in filesystems&lt;/a&gt;, and after talking to a few people who have implemented it, I decided to take the plunge and set up a test system with intentions of replacing my current Linux fileserver with it.&lt;br /&gt;&lt;br /&gt;Solaris (and OpenSolaris) is pretty picky about hardware, but at least there's a &lt;a href="http://www.sun.com/bigadmin/hcl/"&gt;hardware compatibility database&lt;/a&gt; that is OK to navigate. Here's the hardware I ended up buying:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813121328"&gt;Intel S3200SHV motherboard&lt;/a&gt; - $200&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819115206&amp;amp;Tpk=e7400"&gt;Intel Core 2 Duo E7400&lt;/a&gt; - $110&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822145233"&gt;Hitachi Deskstar 1TB drives&lt;/a&gt; x 3 - $85 each&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817139005&amp;amp;Tpk=corsair%20650tx"&gt;Corsair TX650 PSU&lt;/a&gt; - $80 after MIR&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820134881"&gt;4GB Kingston ECC memory&lt;/a&gt; - $50&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16827136152"&gt;LG SATA DVD drive&lt;/a&gt; - $25&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;These, in combination with some hardware I already had, such as a Seagate OS drive and an Antec Three Hundred case, made up my system.&lt;br /&gt;&lt;br /&gt;The biggest decision to make was the motherboard. The S3200SHV was a great choice because it incorporated Intel Gigabit LAN, the Core 2 Duo architecture, and 6 SATA ports. Onboard video was a good thought, but I came to find out it doesn't work in OpenSolaris 2008.11 (more on this later). Intel LAN is important because it's known to work well with OpenSolaris and be very fast. I know the ICH9R bus will be supported and is also very fast.&lt;br /&gt;&lt;br /&gt;It has turned out to be pretty good hardware, and I also didn't spend too much.&lt;br /&gt;&lt;br /&gt;Which brings us to the one big problem: OpenSolaris 2008.11 does not support the integrated graphics in the S3200SHV. Short version: Buy an Nvidia graphics card. On to the long version... So the graphical installation doesn't work? Well, I can just use the text mode installer right? Uh, no. There is no text mode installer. &gt;_&lt; OK. Intel's OS compatibility guide for the S3200SHV says there is a fix once you get it installed. Googling for a solution, I found you can install it using the GUI using X11 tunneling over SSH.&lt;br /&gt;&lt;br /&gt;You can use the GUI installer over SSH by booting the text console, logging in (jack/jack) and assuming the root role (su, with password 'opensolaris'). After this you must start the SSH service and SSH from another *nix machine with the -X flag to forward X11. Then execute 'pfexec gui-install' to launch the installer. Sweet, it's installed to disk. On a side note, it's kind of cool that I can install an OS over SSH with X11 tunneling. But should I have to? NO!&lt;br /&gt;&lt;br /&gt;Intel's OS compatibility guide states that for Solaris 10, one must:&lt;br /&gt;&lt;br /&gt;"Edit /usr/bin/X11/Xserver and use the following arguments to make color depth not larger than 16 bit: SERVERARGS="-depth 16 -fbbpp 16""&lt;br /&gt;&lt;br /&gt;So I rebooted, entered text mode, and followed that simple instruction to change the color depth. Still no luck after rebooting again, so I gave up and ordered a cheap PCIe graphics card from Newegg which was supported from the start.&lt;br /&gt;&lt;br /&gt;Hoping that my compatibility issues have all been resolved, I pushed forward with configuration.&lt;br /&gt;&lt;br /&gt;If you managed to get the integrated graphics working, please leave me a comment or shoot me an email!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-5774991687310913599?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/5774991687310913599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=5774991687310913599' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/5774991687310913599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/5774991687310913599'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/04/opensolaris-and-zfs-hardware.html' title='OpenSolaris and ZFS: Hardware'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-7595116718452056147</id><published>2009-02-27T16:50:00.008-05:00</published><updated>2009-03-02T12:20:22.376-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Replacing The Battery In My MX1000</title><content type='html'>The battery capacity of my beloved Logitech MX1000 mouse had deteriorated over time. It was lasting only 2-3 days tops before the charge level would turn red, its lowest level. So I decided to find out how I could replace the internal, "non-replaceable" battery.&lt;br /&gt;&lt;br /&gt;As it turns out, doing so isn't too bad. There are &lt;a href="http://eviltyrant.com/blog/?p=914"&gt;multiple&lt;/a&gt; &lt;a href="http://www.vk2k.com/Logitech-MX1000-Battery/"&gt;sites&lt;/a&gt; available with instructions. While they are OK instructions, I have a few comments.&lt;br /&gt;&lt;br /&gt;I ordered an &lt;a href="http://www.eastcoastphoto.com/nav/itempage.asp?itemid=6244&amp;trng=fglecf"&gt;NP-120 camera battery&lt;/a&gt; to replace the one inside the MX1000. Before we put in the new battery, we decided to take apart the old one. Inside the blue casing of the original battery, the three wires are soldered to a small circuit board. It was easy to unsolder the wires, and this allowed us to use the full length of the wire. Having more wire to work with made things a lot easier, because there isn't a lot of room to play with.&lt;br /&gt;&lt;br /&gt;It is generally not a good idea to expose batteries to heat, so why would you think to put a very hot soldering iron to it? We came up with a better idea. We cut small strips of brass which we bent into U shapes and soldered the battery wires to the brass plates. Then we put the bent brass plates up against the battery contacts, and held them in place using self-fusing silicon tape. This kind of tape may also be known as "self-vulcanizing tape" although I believe the use of that word is incorrect. The tape isn't sticky at all, but has a layer of plastic which you peel off, allowing the tape to fuse to itself. Before you try to put the battery in the mouse, it is a very good idea to check the contacts by connecting a voltmeter to the socketed end that plugs into the PCB. As usual, red is positive and black is negative.&lt;br /&gt;&lt;br /&gt;We ran into more problems when we tried to put the battery back in. It appeared that our tape arrangement had added too much thickness to the battery, and it wouldn't fit very well in the casing. Putting it back together might go well for a bit, but we found it was simply too much when we tried to fit the whole mouse back together. Since we didn't want to change our arrangement of the battery contact, we decided to get rid of the entire battery holder and hot glue the battery to the inside top of the mouse. This ended up working &lt;span style="font-weight:bold;"&gt;quite&lt;/span&gt; well, and the mouse fit together with a snap.&lt;br /&gt;&lt;br /&gt;The result is a much better performing MX1000. The battery now lasts a solid 7 days before needing a recharge, and I'm quite happy with that. If I ever need to, I can replace the battery again for $10 and get more life out of a great mouse.&lt;br /&gt;&lt;br /&gt;Like hardware hacking? You might try &lt;a href="http://cyounkins.blogspot.com/2009/02/hacking-toner-drums-to-get.html"&gt;hacking your toner drums to get more life out of them&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-7595116718452056147?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/7595116718452056147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=7595116718452056147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/7595116718452056147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/7595116718452056147'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/02/replacing-battery-in-my-mx1000.html' title='Replacing The Battery In My MX1000'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-8015692110343060709</id><published>2009-02-12T21:08:00.007-05:00</published><updated>2009-02-13T12:54:10.297-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Brasero Or: How I Learned To Stop Burning Coasters And Love K3B</title><content type='html'>Whenever I burn a CD from an ISO, I md5sum the CD to confirm the data was written correctly. Using the beauty of Linux, I can md5sum the cdrom device directly using &lt;font&gt;"md5sum /dev/cdrom"&lt;/font&gt;.&lt;br /&gt;&lt;br /&gt;One day I was trying to burn &lt;a href="http://www.opensolaris.com/get/index.jsp"&gt;OpenSolaris 2008.11&lt;/a&gt; to check out the awesomeness of ZFS. After I burned the disk using Brasero, I tried to md5sum it. I was greeted with a rather strange error: "md5sum: /dev/cdrom: Input/output error". Input/output error? Is my drive going bad? I presumed it was the media. I put in another CD of the same brand and tried again. Nope. The batch of media was pretty old, so I decided to try another brand/batch. Maybe it's my drive? Five coasters later...&lt;br /&gt;&lt;br /&gt;At this point I'm starting to think this is a software issue. Was there an update in 8.10 that made this not work? No, it worked on other disks. Googling, I came to &lt;a href="http://www.sun.com/bigadmin/features/articles/burn_iso_images.jsp"&gt;this page&lt;/a&gt; at BigAdmin which describes the symptoms perfectly.&lt;br /&gt;&lt;br /&gt;As it turns out, Brasero was burning the ISO using track-at-once. The problem with this is, as quoted from BigAdmin:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BmqOax3CJoE/SZTePYbotWI/AAAAAAAAAP8/d49IB4UKFDA/s1600-h/K3B_DAO.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_BmqOax3CJoE/SZTePYbotWI/AAAAAAAAAP8/d49IB4UKFDA/s320/K3B_DAO.png" alt="" id="BLOGGER_PHOTO_ID_5302107017159685474" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"the last block may be confused with the lead out area, and some drives will not read it properly. Thus your MD5 checksums will fail. You can pad the last blocks using the -pad option of cdrecord, but your checksums still might not match as you have added additional data to the CD that was not present in the original ISO image."&lt;br /&gt;&lt;br /&gt;The solution? Make sure to set the record mode to disc-at-once (session-at-once may also work) in your CD burning software. I simply could not find this setting in Brasero, so I installed K3B and found it easily under "Writing Mode". Lesson learned.&lt;br /&gt;&lt;br /&gt;Has this ever happened to you? Leave a comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-8015692110343060709?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/8015692110343060709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=8015692110343060709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/8015692110343060709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/8015692110343060709'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/02/brasero-or-how-i-learned-to-stop.html' title='Brasero Or: How I Learned To Stop Burning Coasters And Love K3B'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BmqOax3CJoE/SZTePYbotWI/AAAAAAAAAP8/d49IB4UKFDA/s72-c/K3B_DAO.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-1219841652901393101</id><published>2009-02-11T23:00:00.016-05:00</published><updated>2009-02-12T18:48:11.656-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><title type='text'>Hacking Toner Drums To Get Your Money's Worth</title><content type='html'>There has been a recent trend in consumer printers that really annoys me: Printers that lie to the user and report that they are out of ink or toner when they are not.&lt;br /&gt;&lt;br /&gt;A couple days ago the toner light started flashing on my relatively new Brother HL-2140 laser printer. It had printed less than 500 pages since I bought it, and I really wasn't too impressed with the starter drum. In addition, the last pages I printed left no indication that the toner was running out. I had heard rumors that there was a way to trick the printer into thinking that the toner drum was full, thus enabling me to continue to print. I pulled information from multiple sites, so I will summarize here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Turn off printer, unplug&lt;/li&gt;&lt;li&gt;Take out the drum&lt;/li&gt;&lt;li&gt;Find the holes / areas used for detecting how much toner is left.&lt;/li&gt;&lt;li&gt;Cover found holes with something opaque. A small piece of paper and transparent tape works well, as does black electrical tape.&lt;/li&gt;&lt;li&gt;Put the drum back in&lt;/li&gt;&lt;li&gt;Plug in and turn on printer&lt;/li&gt;&lt;/ol&gt;The holes I reference are probably symmetrical across the drum and may have an optical lens visible. I believe that with my printer, a light or laser is shown through these two holes, sensing if the toner level is below the hole alignment. It is for this reason, and the assumption that this worked on my printer, that I believe the color of whatever used to cover the holes is irrelevant so long as it is opaque.&lt;br /&gt;&lt;br /&gt;After doing this to my own printer, the toner light went off, I continued to print about 30 some pages just fine, and everything seems to be working. I've heard of people getting quite a bit more life out of their toner drums using this method, but I'm ordering a new drum to be on the safe side.&lt;br /&gt;&lt;br /&gt;Photos of what I did on both ends of the drum:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BmqOax3CJoE/SZRfNa3zukI/AAAAAAAAAPY/hGHzwD2clm4/s1600-h/P1010001.JPG"&gt;&lt;img style="cursor: pointer; width: 240px; height: 179px;" src="http://3.bp.blogspot.com/_BmqOax3CJoE/SZRfNa3zukI/AAAAAAAAAPY/hGHzwD2clm4/s320/P1010001.JPG" alt="" id="BLOGGER_PHOTO_ID_5301967345478253122" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BmqOax3CJoE/SZRf5hg8wII/AAAAAAAAAPg/VdXoX5T3BUo/s1600-h/P1010002.JPG"&gt;&lt;img style="cursor: pointer; width: 240px; height: 179px;" src="http://1.bp.blogspot.com/_BmqOax3CJoE/SZRf5hg8wII/AAAAAAAAAPg/VdXoX5T3BUo/s320/P1010002.JPG" alt="" id="BLOGGER_PHOTO_ID_5301968103175667842" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BmqOax3CJoE/SZRgBWCkzAI/AAAAAAAAAPo/KBlsz15qvMY/s1600-h/P1010003.JPG"&gt;&lt;img style="cursor: pointer; width: 240px; height: 180px;" src="http://4.bp.blogspot.com/_BmqOax3CJoE/SZRgBWCkzAI/AAAAAAAAAPo/KBlsz15qvMY/s320/P1010003.JPG" alt="" id="BLOGGER_PHOTO_ID_5301968237534432258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did this work for you? Do you know more about how the printer senses the ink level? Leave a comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-1219841652901393101?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/1219841652901393101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=1219841652901393101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1219841652901393101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1219841652901393101'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/02/hacking-toner-drums-to-get.html' title='Hacking Toner Drums To Get Your Money&apos;s Worth'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BmqOax3CJoE/SZRfNa3zukI/AAAAAAAAAPY/hGHzwD2clm4/s72-c/P1010001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-7188473378681441300</id><published>2009-02-04T22:41:00.005-05:00</published><updated>2009-02-12T18:47:43.802-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Hackett and Bankwell: A Comic About Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BmqOax3CJoE/SYpkl8NvnJI/AAAAAAAAAPQ/v1wtgerixBc/s1600-h/HackettTux.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 166px; height: 158px;" src="http://3.bp.blogspot.com/_BmqOax3CJoE/SYpkl8NvnJI/AAAAAAAAAPQ/v1wtgerixBc/s320/HackettTux.png" alt="" id="BLOGGER_PHOTO_ID_5299158514536520850" border="0" /&gt;&lt;/a&gt;Quite a while ago at the Ubuntu MD Team's release party for Intrepid Ibex, &lt;a href="http://www.swiftstaffing.com/"&gt;Ron Swift&lt;/a&gt; showed the group something really cool: The first issue of an educational comic about Linux called "&lt;a href="http://www.hackettandbankwell.com/"&gt;Hackett and Bankwell&lt;/a&gt;." The first issue covers the adventures of characters Woody Hackett (tux) and Jerome Bankwell as they help a documentary production studio install and use Ubuntu. The thing is... it's really &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; dorky. No, seriously! Check out the first issue in PDF form &lt;a href="http://www.intarwebz.com/wp-content/uploads/2008/11/hackett_and_bankwell_1_ebook.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Hackett and Bankwell Worldwide, related characters, names, and all related indicia are trademarks and copyrights of  &lt;a href="http://www.intarcorp.com/about"&gt;Intarcorp LTD&lt;/a&gt;, licensed by Intarcorp LTD. Image copyright Intarcorp LTD.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-7188473378681441300?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/7188473378681441300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=7188473378681441300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/7188473378681441300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/7188473378681441300'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2009/02/hackett-and-bankwell-comic-about-linux.html' title='Hackett and Bankwell: A Comic About Linux'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BmqOax3CJoE/SYpkl8NvnJI/AAAAAAAAAPQ/v1wtgerixBc/s72-c/HackettTux.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-8988578058750053612</id><published>2008-12-31T12:07:00.005-05:00</published><updated>2009-02-12T18:47:13.116-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='speed'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Supposed Ubuntu Speedups - Concurrency=shell, readahead profile</title><content type='html'>After seeing &lt;a href="http://lifehacker.com/5098369/more-ubuntu-kung-fu"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Lifehacker&lt;/span&gt; blog&lt;/a&gt; about a number of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Ubuntu&lt;/span&gt; speedups, I decided to test some of them to see their actual effectiveness.&lt;br /&gt;&lt;br /&gt;The test machine was a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Lenovo&lt;/span&gt; T61 with a Core 2 Duo T7500 @ 2.2 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ghz&lt;/span&gt; and 3GB RAM. All boot times are from the grub menu (started when I pressed enter to start the boot) to the appearance of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;login&lt;/span&gt; screen. I started with a completely fresh installation of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Ubuntu&lt;/span&gt; 8.10 which I updated and rebooted 3 times. The default settings are "concurrency=none" in /etc/init.d/rc, but I'm unsure of the default &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;readahead&lt;/span&gt; settings&lt;code&gt;&lt;/code&gt;. It's possible Ubuntu tries to create a profile after installation, but I have no proof of that, so I assume there is no profile.&lt;br /&gt;&lt;br /&gt;The results:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No modifications (concurrency=none, no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;readahead&lt;/span&gt; profile) - &lt;span style="font-weight: bold;"&gt;29.8 sec&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Concurrency=shell, no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;readahead&lt;/span&gt; profile - &lt;span style="font-weight: bold;"&gt;29.2 sec&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Concurrency=shell, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;readahead&lt;/span&gt; profile - &lt;span style="font-weight: bold;"&gt;28.7 sec&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Concurrency=none, rebuilt &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;readahead&lt;/span&gt; profile - &lt;span style="font-weight: bold;"&gt;29.2 sec&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Also keep in mind all timings are subject to human error. &lt;span style="font-weight: bold;"&gt;My conclusion is that there are no &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;notable&lt;/span&gt; improvements from implementing these tweaks, even with a dual core processor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is my full action log:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install 8.10&lt;/li&gt;&lt;li&gt;Update&lt;/li&gt;&lt;li&gt;Restart x 2&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart, timed boot - 30.0 sec&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.6 sec&lt;/li&gt;&lt;li&gt;Set concurrency=shell in /etc/init.d/rc&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.9 sec&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.1 sec&lt;/li&gt;&lt;li&gt;Restart, added "profile" to end of grub line&lt;/li&gt;&lt;li&gt;Timed boot for profile creation - 1 min, 27.7 sec (This is normal)&lt;/li&gt;&lt;li&gt;Restart, timed boot - 28.7 sec&lt;/li&gt;&lt;li&gt;Restart, timed boot - 27.9 sec&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.6 sec&lt;/li&gt;&lt;li&gt;Set concurrency=none in /etc/init.d/rc&lt;/li&gt;&lt;li&gt;Restart, added "profile" to end of grub line&lt;/li&gt;&lt;li&gt;Timed boot for profile creation - 1 min, 29.1 sec (This is normal)&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.3 sec&lt;/li&gt;&lt;li&gt;Restart, timed boot - 29.1 sec&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/2295159894467617520-8988578058750053612?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/8988578058750053612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=8988578058750053612' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/8988578058750053612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/8988578058750053612'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2008/12/supposed-ubuntu-speedups.html' title='Supposed Ubuntu Speedups - Concurrency=shell, readahead profile'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-3681512796350100850</id><published>2008-11-01T22:08:00.006-04:00</published><updated>2008-11-01T22:36:32.485-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='speed'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu boot times - CD vs USB flash drive</title><content type='html'>New with Ubuntu 8.10 "Intrepid Ibex" is the ability to create a bootable USB flash drive with a persistent filesystem.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BmqOax3CJoE/SQ0MW1DzfUI/AAAAAAAAALI/oJQ_lwcypEc/s1600-h/Usb-creator.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 306px; height: 320px;" src="http://2.bp.blogspot.com/_BmqOax3CJoE/SQ0MW1DzfUI/AAAAAAAAALI/oJQ_lwcypEc/s320/Usb-creator.png" alt="" id="BLOGGER_PHOTO_ID_5263877125805669698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I compared the time to start from when I pressed enter for "Try Ubuntu" until the desktop had loaded with the panel, icons, and wallpaper. Here's what I found:&lt;br /&gt;&lt;br /&gt;USB flash drive: 1:44&lt;br /&gt;CD: 2:40&lt;br /&gt;&lt;br /&gt;That's a pretty significant improvement in speed! Also, since there's no CD to spin up, anything requiring data off the drive occurs with much less lag. Of course, your results may vary. Transfer speeds on flash drives do vary. I found that my Cruzer Micro 2GB was much faster than a PNY Attache 1GB.&lt;br /&gt;&lt;br /&gt;This is so great, one of my flash drives will probably be dedicated to it. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-3681512796350100850?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/3681512796350100850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=3681512796350100850' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/3681512796350100850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/3681512796350100850'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2008/11/ubuntu-boot-times-cd-vs-usb-flash-drive.html' title='Ubuntu boot times - CD vs USB flash drive'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BmqOax3CJoE/SQ0MW1DzfUI/AAAAAAAAALI/oJQ_lwcypEc/s72-c/Usb-creator.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2295159894467617520.post-1823772043990419642</id><published>2008-10-09T18:34:00.010-04:00</published><updated>2009-09-01T19:11:35.142-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programs'/><title type='text'>Amazon S3 upload script</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BmqOax3CJoE/SQ0Q_ogSOpI/AAAAAAAAALQ/i2AfvRUfDxM/s1600-h/Screenshot.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 263px; height: 276px;" src="http://4.bp.blogspot.com/_BmqOax3CJoE/SQ0Q_ogSOpI/AAAAAAAAALQ/i2AfvRUfDxM/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5263882224856611474" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;I want to share with you a script I've been hacking on to quickly and easily upload files to Amazon's S3 service. &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://cyounkins-blogger.s3.amazonaws.com/upload_to_s3.py"&gt;upload_to_s3.py&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; takes the name of the bucket as a parameter, and a list of files to upload from standard in. It is intended to run in the background, and communicates to the user by libnotify/pynotify. When it's done uploading, the clipboard is set with the url(s) to the file(s).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Please note that before using &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://cyounkins-blogger.s3.amazonaws.com/upload_to_s3.py"&gt;upload_to_s3.py&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;, you must enter your S3 access key and secret access key in the script.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Example usage:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: verdana;"&gt;cd /directory/with/media/files/&lt;br /&gt;find | grep -v ".svn" | python /path/to/update_s3.py&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;The script requires Amazon's &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134&amp;amp;categoryID=47"&gt;S3 Library for REST in Python&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;. As of version 2007-11-05, I had to follow user &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;uuorld&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;'s suggestion to modify line 295:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: verdana;"&gt;"I found that changing the line&lt;br /&gt;headers['Date'] = time.strftime("%a, %d %b %Y %X GMT", time.gmtime())&lt;br /&gt;to&lt;br /&gt;headers['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime())&lt;br /&gt;resolved some issues I was having with different locales using 24 or 12-hour clocks."&lt;/blockquote&gt;&lt;span style="font-family:verdana;"&gt;Big thanks go out to Adrian Holovaty for his script that I hacked on quite a bit. See his blog post &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.holovaty.com/blog/archive/2006/04/07/0927"&gt;here&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;As always, please feel free to email me comments or suggestions about the code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0RKWAKfbI/AAAAAAAAALY/pish4Jp3e-w/s1600-h/Screenshot-Edit+Action-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 282px; height: 320px;" src="http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0RKWAKfbI/AAAAAAAAALY/pish4Jp3e-w/s320/Screenshot-Edit+Action-1.png" alt="" id="BLOGGER_PHOTO_ID_5263882408868609458" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;I'm using this script to incorporate right click uploading into Thunar. Here's how I'm doing it:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Edit -&gt; Configure Custom Action - &gt; New&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* Name: "Upload to S3 random"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* Command: `echo %f | python "/path/to/upload_to_s3.py" bucket`   (You need to change the path and the bucket. Do not include the backticks.)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* Icon -&gt; Action Icons -&gt; gtk-go-up&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;* Appearance conditions -&gt; All except directories&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Unfortunately, I don't believe you can use a custom action to upload multiple files using this script because Thunar space delimits the paths. When your paths have spaces, you can no longer separate each file.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;Enjoy!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;It seems S3 has become more strict about the headers required in file upload, so this script needs a minor patch to add the Content-Length header. In the conn.put call, add &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;'Content-Length': len(filedata)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;to the data dictionary.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: verdana;"&gt;&lt;/blockquote&gt;&lt;h1 style="margin-bottom: 0px; margin-top: 0px; font-family: verdana;"&gt;&lt;/h1&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2295159894467617520-1823772043990419642?l=cyounkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyounkins.blogspot.com/feeds/1823772043990419642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2295159894467617520&amp;postID=1823772043990419642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1823772043990419642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2295159894467617520/posts/default/1823772043990419642'/><link rel='alternate' type='text/html' href='http://cyounkins.blogspot.com/2008/10/amazon-s3-upload-script.html' title='Amazon S3 upload script'/><author><name>Craig Younkins</name><uri>http://www.blogger.com/profile/14055638590602723748</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_BmqOax3CJoE/SQ0Vjk4dgaI/AAAAAAAAALk/vlmp3BlQh-g/S220/43TQ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BmqOax3CJoE/SQ0Q_ogSOpI/AAAAAAAAALQ/i2AfvRUfDxM/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
