<?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-5328807984633140449</id><updated>2012-02-16T10:49:42.706-08:00</updated><category term='dslr'/><category term='debian fai'/><category term='snippet'/><category term='cracking'/><category term='css'/><category term='sysadmin'/><category term='camera'/><category term='photography'/><category term='security'/><category term='html'/><category term='howto'/><category term='apple'/><category term='passwords'/><category term='os x'/><category term='hacking'/><category term='code'/><category term='bash'/><category term='utility'/><category term='humor'/><title type='text'>Bashed Up Bits</title><subtitle type='html'>Systems administration topics, small hacks, bash tools and toys, and observations on working with information.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default?start-index=26&amp;max-results=25'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-2503839563615716147</id><published>2012-02-13T17:42:00.000-08:00</published><updated>2012-02-13T17:42:29.527-08:00</updated><title type='text'>Opinion: Should I use Linux, Mac, or Windows?</title><content type='html'>&lt;blockquote class="tr_bq"&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;"A craftswoman never blames her tools."&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;For most, whether or not you can get your work done well on a certain platform is all that matters.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;To me, the three major operating platforms are tools that all have strengths and weaknesses. In the same way that I wouldn't use my nice chisels to loosen a laptop screw, I wouldn't use a MacBook for writing code for our Linux infrastructure. I am more efficient doing that work on Linux itself.&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-top: 8px;"&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;At the same time, I shoot photos and video, and do some writing to take a break from IT. I've tried doing that work using the included tools on all three platforms. I find the Mac platform the most efficient and trouble-free for that work. I can do the work on Linux as well, but Linux has frustrating workflow gaps - especially regarding video.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 8px;"&gt;&lt;span style="background-color: #f6f6ef; color: black; font-family: Verdana; font-size: 12px;"&gt;At work, even though we have a heterogenous server environment, we communicate using Microsoft Office, SharePoint, and Lync. My opinion of those tools does not matter. &amp;nbsp;We chose them for communication and therefore I need them to work well. Thus, at work I use Windows 7 with PuTTY, Gnu Screen, and several Linux VMs to do my Linux systems engineering. At home I use a MacBook with iLife and a Linux VM. These two setups let me use the three PC platforms for the workflows for which they seem best suited. [1]&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f6f6ef; color: #828282; font-family: Verdana; font-size: 12px; margin-top: 8px;"&gt;&lt;span style="color: black;"&gt;I think it's missing the point to debate which is the one true platform. We all have things we want to do, things we want to create. In my experience, the question is not "which platform is better in general?", it's "on which platform can I most easily get my work done?". If my current platform no longer works well, I try the others. In the end, I'm paid more for getting more work done in less time, so the efficiency of a platform for that work decides the question.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f6f6ef; color: #828282; font-family: Verdana; font-size: 12px; margin-top: 8px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f6f6ef; color: #828282; font-family: Verdana; font-size: 12px; margin-top: 8px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f6f6ef; color: #828282; font-family: Verdana; font-size: 12px; margin-top: 8px;"&gt;&lt;span style="color: black;"&gt;[1] Note that there are &lt;b&gt;six &lt;/b&gt;major&lt;b&gt;&amp;nbsp;&lt;/b&gt;personal computing platforms today, Linux, Mac, Windows, iOS, Android, and Web, so the landscape is actually more complex. Many tasks that were once the purview of the desktop/laptop platforms have been reimplemented with better workflows on the web and mobile platforms. Some people I know find a decent browser sufficient for all the personal computing tasks they need or want to do. Others use only their iPads for everything.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-2503839563615716147?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/2503839563615716147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2012/02/opinion-should-i-use-linux-mac-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2503839563615716147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2503839563615716147'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2012/02/opinion-should-i-use-linux-mac-or.html' title='Opinion: Should I use Linux, Mac, or Windows?'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-626894184946070689</id><published>2012-02-03T07:16:00.000-08:00</published><updated>2012-02-03T07:34:11.081-08:00</updated><title type='text'>Shell one liner to analyze sendmail mail queue for mail "bomb" sources</title><content type='html'>If your sendmail server gets "bombed" by some sender, one task you may need to do is to find the most common patterns in the massive pile up of mail in your queues. This one liner counts Subject, To, and From fields from the qf files, and then counts the list. With the double sort, it's a bit on the inefficient side, but it may help you anyway.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;find /local/apps/mail/spool/mqueue -type f -name "qf*" -exec cat {} \; \&lt;br /&gt;| awk -F: '/From|To|Subject/ {for(k=2;k&amp;lt;=NF;++k)printf $k; print "\n"}' \&lt;br /&gt;| sort \&lt;br /&gt;| uniq -c \&lt;br /&gt;| sort -n&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;I have broken line across multiple lines for clarity by escaping the ends. You may want to paste the sections in to one line for convenience. In that case drop the trailing '\'s.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-626894184946070689?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/626894184946070689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2012/02/one-liner-for-analyzing-sendmail-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/626894184946070689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/626894184946070689'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2012/02/one-liner-for-analyzing-sendmail-mail.html' title='Shell one liner to analyze sendmail mail queue for mail &quot;bomb&quot; sources'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-5570073295234837049</id><published>2012-01-20T15:03:00.000-08:00</published><updated>2012-01-20T15:03:20.087-08:00</updated><title type='text'>"cmore": Colorized text paging using vim...</title><content type='html'>&lt;br /&gt;&lt;div&gt;Sometimes, I want colorized syntax and nice navigation for paging. We can use vim to provide this service. This assumes your terminal client supports the terminal type "xterm-color". If you need another color terminal type, customize accordingly.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Install all of the&amp;nbsp;standard&amp;nbsp;vim packages&lt;/li&gt;&lt;li&gt;Add&amp;nbsp;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;alias cmore="TERM=xterm-color vim -R -"&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: 13px;"&gt; &lt;/span&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;to your &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;~/.profile&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #222222; font-family: Times, 'Times New Roman', serif;"&gt;Add the following [1] to your &lt;/span&gt;&lt;span style="color: #222222; font-family: 'Courier New', Courier, monospace;"&gt;~/.vimrc&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"&gt;syntax on&lt;/span&gt;&lt;br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;" /&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"&gt;hi Comment ctermfg=Blue guifg=Blue&lt;/span&gt;&lt;br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;" /&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222;"&gt;hi String ctermfg=LightRed guifg=LightRed&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Reload your profile: &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;source ~/.profile&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Usage: &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;cat some.script.sh | cmore&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;It's vim in read-only mode, so use &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;:q &lt;/span&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;to quit.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;[1] I found the default colors to be too dark.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-5570073295234837049?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/5570073295234837049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2012/01/cmore-colorized-text-paging-using-vim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/5570073295234837049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/5570073295234837049'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2012/01/cmore-colorized-text-paging-using-vim.html' title='&quot;cmore&quot;: Colorized text paging using vim...'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-6259663727543397713</id><published>2012-01-19T14:49:00.000-08:00</published><updated>2012-01-20T15:04:05.984-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Intellectual Property Hack: Use copyright law and patent law together.</title><content type='html'>Perhaps this is feasible, perhaps not.&lt;br /&gt;&lt;br /&gt;For an invention, first patent it, then copyright everything about it - renderings, 3D files, specifications, design documents, build process documents, manufacturing process documents, exploded views, parts lists, etc - whatever is allowed by your country's copyright laws. Someone could build it after the patent expires, but they may have a hard time communicating about the invention without creating a derivative work. Copyright protection in the U.S.A. potentially extends to over 100 years.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-6259663727543397713?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/6259663727543397713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2012/01/intellectual-property-hack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6259663727543397713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6259663727543397713'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2012/01/intellectual-property-hack.html' title='Intellectual Property Hack: Use copyright law and patent law together.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-7662926535391315798</id><published>2011-12-31T15:23:00.000-08:00</published><updated>2011-12-31T15:24:27.634-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Delete or Change Workplaces and Schools On Facebook Timeline (1/2012 edition)</title><content type='html'>Have a school or workplace in your Timeline you want to get rid of or change? Here is the method that worked for me.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Log into Facebook.&lt;/li&gt;&lt;li&gt;Click Profile.&lt;/li&gt;&lt;li&gt;On your Timeline, click "Update Info".&lt;/li&gt;&lt;li&gt;Under "Work and Education", click the "Edit" button in the upper right hand corner of the section.&lt;/li&gt;&lt;li&gt;Each workplace and school will get a box.&lt;/li&gt;&lt;li&gt;In the upper right-hand portion of each box, there is an "Edit" link and a small "x".&lt;/li&gt;&lt;li&gt;Click the "x" and confirm your choice to delete a workplace or school. Click "Edit" to change the workplace or school.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-7662926535391315798?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/7662926535391315798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/12/delete-or-change-workplaces-and-schools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/7662926535391315798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/7662926535391315798'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/12/delete-or-change-workplaces-and-schools.html' title='Delete or Change Workplaces and Schools On Facebook Timeline (1/2012 edition)'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-3162664393538070686</id><published>2011-11-09T06:50:00.000-08:00</published><updated>2011-11-09T06:50:56.610-08:00</updated><title type='text'>GT-S5230 Star/Tocco Lite - How to use the on screen keypad during a call</title><content type='html'>I use a Samsung GT-S5230 Star (Tocco Lite) phone on AT&amp;amp;T.&amp;nbsp; I finally figured out how to access the onscreen keypad during a phone call. When you are in a call, press the in-call function button on the right side of the phone. Then press the call button. This is the left-most button on the row of three physical buttons on the front of the phone. Then press the return button. This is the middle of button in that row of buttons. Finally press "keypad" on the touchscreen.&amp;nbsp; It will bring up the keypad inside the call. What a pain. Anyone know of an easier solution?&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-3162664393538070686?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/3162664393538070686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/11/gt-s5230-startocco-lite-how-to-use-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3162664393538070686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3162664393538070686'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/11/gt-s5230-startocco-lite-how-to-use-on.html' title='GT-S5230 Star/Tocco Lite - How to use the on screen keypad during a call'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-7443456642335437704</id><published>2011-09-25T14:52:00.000-07:00</published><updated>2011-10-09T19:37:30.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dslr'/><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><title type='text'>Getting pictures in focus with a DSLR (digital SLR) in a nutshell.</title><content type='html'>Higher-end cameras have a number demarcated by the letter "F" that one can set to change the size of the opening (called the iris) that lets light onto the sensor. High numbers make the iris smaller. Optical physics aside, the higher the number, the more of the picture will be in focus &lt;i&gt;and&lt;/i&gt; the more light you will need. Likewise, the higher the shutter speed, the more will be frozen in time and the more light you will need as well. So, if you want to capture something that moves fast and have it completely in focus, you need a ton of light, a high F number and a high shutter speed number. Note that a particular lens only supports a particular range of F numbers (called F-stops). You don't have a huge amount of light usually. So you have to find ways to compromise and/or cheat. One way to do this is to use a flash, but that can scare butterflies. Another way is to set the camera to do more processing. This number is demarcated by "ISO". My SLR goes from 200 ISO to 1600 ISO, if I recall correctly. New ones go to 12500! The higher the number, the less light you need, and the more you rely on the camera processor and the quality of the light sensor. Thus to get a nervous butterfly on a cloudy evening, you need to higher-end camera so that you can set the shutter speed, F-stop, and ISO numbers really high, and &lt;i&gt;still&lt;/i&gt; get a photo that's not grainy.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-7443456642335437704?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/7443456642335437704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/09/getting-pictures-in-focus-with-dslr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/7443456642335437704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/7443456642335437704'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/09/getting-pictures-in-focus-with-dslr.html' title='Getting pictures in focus with a DSLR (digital SLR) in a nutshell.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-2953162898624767507</id><published>2011-09-14T10:48:00.000-07:00</published><updated>2011-09-14T10:52:48.903-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='passwords'/><category scheme='http://www.blogger.com/atom/ns#' term='cracking'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>A note of caution: Password Checking Sites.</title><content type='html'>&amp;nbsp; Recently, several people have sent me links to check the strength of my password like this:&amp;nbsp;&lt;a href="https://www.grc.com/haystack.htm"&gt;https://www.grc.com/haystack.htm&lt;/a&gt;. There is a saying today that if you are not paying for a product, you &lt;b&gt;are &lt;/b&gt;the product. Since I haven't seen any independent organization that has audited the code of these sites to prove that they are not also collecting passwords, we must trust that they do not keep copies the entered passwords or their hashes. Either these sites all have a large amount of altruism, or they are creating the most precise rainbow tables [1] available on the market. &amp;nbsp;There's nothing like doing statistical analysis on a general rainbow table with real passwords to hone its accuracy. Placing blind trust in a 3rd party with one's passwords is never a good idea. I don't think any bank representative would recommend typing one's account password into an un-audited website to check its strength.&lt;br /&gt;&lt;div&gt;&amp;nbsp; If you run one of these sites and have had such an audit, please let send me a link to the audit and a link to the organization that did the audit. I will include them here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[1] Rainbow tables are conveniently structured databases of known password information used for efficiently cracking passwords.&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Rainbow_table"&gt;http://en.wikipedia.org/wiki/Rainbow_table&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;keywords: hacking, cracking, passwords, security&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-2953162898624767507?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/2953162898624767507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/09/note-of-caution-password-checking-sites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2953162898624767507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2953162898624767507'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/09/note-of-caution-password-checking-sites.html' title='A note of caution: Password Checking Sites.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-8338096591123540193</id><published>2011-08-01T11:56:00.000-07:00</published><updated>2011-09-01T14:44:44.800-07:00</updated><title type='text'>How do I convert spaces to underscores in file names and directory names on Linux?</title><content type='html'>Have you ever wanted to change all the spaces to underscores in a directory? &amp;nbsp;After going through various methods, the following is the most reliable way that I have found for bash users. Note, that there are many ways to accomplish this task. These examples should be typed in as a &lt;i&gt;single line&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;find . -depth -maxdepth 1 -name "* *" -exec sh -c 'mv "${0}" "${0// /_}"' {} \;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that &lt;i&gt;'-maxdepth 1'&lt;/i&gt; changes spaces to underscores for files, directories, and links in the current directory. Changing that number to 2 or more will change spaces to underscores two or more levels deep in the current file system tree in addition to the current directory. Leaving out &lt;i&gt;-maxdepth 1&lt;/i&gt; will change spaces to underscores in the &lt;b&gt;entire&lt;/b&gt; tree.&lt;br /&gt;&lt;br /&gt;Note also that the '.' means &lt;i&gt;start in the current directory&lt;/i&gt;. You can certainly put other paths in place of the dot. &amp;nbsp;You can even put what is called a &lt;i&gt;globbing pattern&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;find music*&amp;nbsp;-depth -maxdepth 1 -name "* *" -exec sh -c 'mv "${0}" "${0// /_}"' {} \;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;will process only files, directories, and links that begin with &lt;i&gt;music&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-8338096591123540193?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/8338096591123540193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/08/how-do-i-convert-spaces-to-underscores.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/8338096591123540193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/8338096591123540193'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/08/how-do-i-convert-spaces-to-underscores.html' title='How do I convert spaces to underscores in file names and directory names on Linux?'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-4979421810739125611</id><published>2011-07-28T08:24:00.000-07:00</published><updated>2011-07-28T08:48:22.880-07:00</updated><title type='text'>"Link is not ready" when downloading stage2.img in RHEL/CentOS 5 kickstart install - or watch those typos!</title><content type='html'>I recently had a kickstart install of a HP blade BL460c G1 that would get part way through booting into the kickstart process but fail when loading the stage2.img file. It seemed to load updates.img and product.img fine.&lt;br /&gt;&lt;br /&gt;It was late in a 12 hour day in the data center. I couldn't figure it out. I updated the firmware. Same issue. The machine was fine booting from PXE into the HP diagnostic and firmware images, but not fine once inside the RHEL 5.6 install.&amp;nbsp; After much head scratching and Googling, I found this:&lt;br /&gt;&lt;br /&gt;RHEL 5.4 kickstart occasionally fails on HP BL460 G1 and G6 blades&lt;br /&gt;&lt;br /&gt;https://bugzilla.redhat.com/show_bug.cgi?id=547746&lt;br /&gt;&lt;br /&gt;which, lacking a conclusion, didn't help.&lt;br /&gt;&lt;br /&gt;I gave up. &lt;br /&gt;&lt;br /&gt;Went home. Got a good night's sleep. Went back to the data center the next morning.&lt;br /&gt;&lt;br /&gt;Changed to a different release (5.5) in the kickstart and PXE boot file. Same issue.&lt;br /&gt;&lt;br /&gt;I got suspicious about the kickstart file. The RHEL install goes on the PXE network configuration (DHCP) until it gets to parsing the kickstart. Then it reconfigures the network according to what's in the kickstart. I had a static network configuration in the kickstart. I had checked it the day before, but didn't notice anything.&lt;br /&gt;&lt;br /&gt;But this time I saw the issue. I had not defined the gateway in the static configuration. Once I defined it, the machine installed normally.&lt;br /&gt;&lt;br /&gt;Lessons learned? &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;12h days don't necessarily mean more productivity. Any progress can easily be killed by fatigue-induced errors. If your admins are working 12h days, you either need more admins or you need to stop what you are doing to evaluate why your infrastructure requires 12h days. Fatigue will bite you.&amp;nbsp; I will be evaluating our infrastructure.&lt;/li&gt;&lt;li&gt;If your infrastructure requirements allow DHCP (ours do not in this case), use it. Simplicity prevents errors. In this case, the "network" line in the kickstart would have simply said '--bootproto dhcp' and I would not have had to worry about the other change points (gateway, ip, etc.).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-4979421810739125611?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/4979421810739125611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/07/link-is-not-ready-when-downloading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4979421810739125611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4979421810739125611'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/07/link-is-not-ready-when-downloading.html' title='&quot;Link is not ready&quot; when downloading stage2.img in RHEL/CentOS 5 kickstart install - or watch those typos!'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-2795393000767738620</id><published>2011-07-08T10:03:00.000-07:00</published><updated>2011-09-01T14:35:48.197-07:00</updated><title type='text'>How do you add music to the YouTube AudioSwap library?</title><content type='html'>&lt;h3&gt;[Updated] So you want to add your new music (to which you can prove you own the copyright ;-) to YouTube's Audioswap library...&lt;/h3&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;[Update] Boooo!&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; color: #222222;"&gt;Horatiu Indrei&lt;/span&gt;&amp;nbsp;emailed to say that Rumblefish told him that they are "&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: inherit;"&gt;no longer accepting music submissions for AudioSwap".&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;Please email if you know of anyone at Google that can provide the list of&amp;nbsp;&lt;/span&gt;distributors&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;from which they license AudioSwap content. Thanks!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Someone asked me how to add their music to YouTube's AudioSwap library. YouTube licenses music from distributors which have distribution contracts with artists or publishers. According to this &lt;a href="http://youtube-global.blogspot.com/2008/12/add-music-to-your-videos-using.html"&gt;article&lt;/a&gt; on YouTube's blog, one such distributor is &lt;a href="http://musiclicensingstore.com/"&gt;Rumblefish&lt;/a&gt;. The Music Snob blog has two articles on Rumblefish's licensing process (&lt;a href="http://www.themusicsnob.com/2008/09/03/music-licensing-brand-marketing-rumblefish/"&gt;[1]&lt;/a&gt;, &lt;a href="http://www.themusicsnob.com/2008/09/04/music-licensing-rumblefish/"&gt;[2]&lt;/a&gt;). I haven't tried this process, yet. Your mileage may vary.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-2795393000767738620?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/2795393000767738620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/07/how-do-you-add-music-to-youtube.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2795393000767738620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2795393000767738620'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/07/how-do-you-add-music-to-youtube.html' title='How do you add music to the YouTube AudioSwap library?'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-8931844620478203100</id><published>2011-07-06T19:08:00.000-07:00</published><updated>2011-07-08T08:23:23.595-07:00</updated><title type='text'>IT is the craft of optimizing business workflow.</title><content type='html'>&lt;p&gt;Three flows comprise business, product, information, and money. The fundament task of IT is to reduce or eliminate friction in these flows. Money friction is any part of a business process that costs time or money. Product friction is any part that delays a product or wastes material. Information friction is any part that impedes the conveyance of information needed to complete the process or make a decision. Toyota calls these frictions "muda" or waste.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-8931844620478203100?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/8931844620478203100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/07/it-is-craft-of-optimizing-business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/8931844620478203100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/8931844620478203100'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/07/it-is-craft-of-optimizing-business.html' title='IT is the craft of optimizing business workflow.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-1693748209362875700</id><published>2011-06-26T13:57:00.000-07:00</published><updated>2011-07-06T19:40:09.882-07:00</updated><title type='text'>Calorie Count Comment</title><content type='html'>&lt;h3&gt;Calorie Count's Food Log interface uses the wrong measurement... &lt;/h3&gt;&lt;p&gt;To lose a pound a week, one needs to use 500 kcals more per day than one consumes. 1lb fat = ~3500kcals.  3500kcal/7days = 500kcals/day.  On a given day, all that matters is this delta. A hard maximum calorie intake per day is irrelevant. The current Food Log has one eat to a daily maximum calorie limit that one sets in one's diet preferences. This is incorrect, in my opinion.&lt;br /&gt;&lt;p&gt;I think they should redesign the food log meter so that it only tracks one's delta between daily caloric burn rate and current calories consumed. This interface would warn when the *delta* approaches the minimum delta to maintain the desired weekly weight loss (generally 500kcal/day).&lt;br /&gt;&lt;p&gt;In one's preferences, instead of setting a daily calorie cap, one would only set how pounds/week they want to lose. The food log meter would calculate the daily caloric delta from this value. With this interface, if someone does an activity, they get immediate feedback that they can eat more. It would also allow for people to splurge on another day during the week, if they cut another day short.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-1693748209362875700?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/1693748209362875700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/06/calorie-count-comment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/1693748209362875700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/1693748209362875700'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/06/calorie-count-comment.html' title='&lt;a href=&apos;http://caloriecount.about.com&apos;&gt;Calorie Count&lt;/a&gt; Comment'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-2663105139744330747</id><published>2011-05-31T11:45:00.000-07:00</published><updated>2011-07-06T19:32:58.083-07:00</updated><title type='text'>Linux command line to find all open files...</title><content type='html'>&lt;h3&gt;Useful for restoring deleted files that might be held in memory by a running process:&lt;/h3&gt;&lt;pre&gt;find /proc -type l -wholename "/proc/*/fd/*" -exec ls -l {} \; | egrep -v '.*-&gt;.*:.*'&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Have you ever accidentally deleted an active apache log file while investigating an issue? Backups are useless since the last one was the night before. You may be in luck, though! If there is a running process holding that file in memory, you can get the in-memory copy of the file from /proc on Linux. Run the above command to list files currently held in memory by processes. To restore, copy the "symlink" back to its original location.  This will get you the file in the state that the particular process has in memory. The &lt;pre&gt;egrep&lt;/pre&gt;strips out sockets, devices, etc.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-2663105139744330747?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/2663105139744330747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/05/linux-command-line-to-find-all-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2663105139744330747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/2663105139744330747'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/05/linux-command-line-to-find-all-open.html' title='Linux command line to find all open files...'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-192167599828062957</id><published>2011-04-11T07:54:00.000-07:00</published><updated>2011-07-06T19:33:34.950-07:00</updated><title type='text'>How Can I Have My Parents Or Grandparents Use The Internet And Manage Photos Without A Computer?</title><content type='html'>&lt;h3&gt;Background: A technology-ambivalent Baby-Boomer parent wants internet and photo printing, but hates computers:&lt;/h3&gt;&lt;p&gt;Recently someone asked me about how to enable a technology-ambivalent parent to access email and web from home and manage their photos without a computer. They live in a suburban area and don't want expensive internet service. They want to do email/web and store/print photos of their grandchildren, but not much more.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;One solution:&lt;/h3&gt;&lt;p&gt;I think the following solution may work for this situation. The critical piece is the HP iPad App. This application allows direct printing to an HP Photo printer with no intermediary computer. Internet and photo management comes through the iPad, which maximizes ease of use and minimizes security issues, in my opinion.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A 3G &lt;a href='http://www.apple.com/ipad/'&gt;iPad&lt;/a&gt; - You can get inexpensive internet access from AT&amp;T or Verizon. No contracts.&lt;/li&gt;&lt;li&gt;Ipad2 &lt;a href='http://store.apple.com/us/product/MC531ZM/A'&gt;Camera kit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.steves-digicams.com/knowledge-center/best-cameras-for-grandparents.html'&gt;"Grandparent-friendly" camera&lt;/a&gt; with SD Card media&lt;/li&gt;&lt;li&gt;HP Photosmart wireless &lt;a href='http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02532765&amp;tmp_task=useCategory&amp;lc=en&amp;dlc=en&amp;cc=us&amp;lang=en&amp;product=3857218#N31'&gt;photo printer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;HP iPrint Photo Print &lt;a href='http://www8.hp.com/us/en/products/smart-phones-handhelds-calculators/mobile-apps/app_details.html?app=tcm:245-799204&amp;platform=tcm:245-799197'&gt;iPad application&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Secured wireless access point (Use Cisco LinkSys or Netgear with WPA2/AES Shared Key) - only for the printer, no internet, one-time setup and connection to iPad&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Note: You pay for simplicity and ease of use. This solution is not cheap, but for those who don't want to be "family tech support," I think it will minimize support costs more than any other solution. Regarding Android, the application is key. If HP or another vendor provides an Android printing application for their photo-capable printers, they will enable a similar stack on Android.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-192167599828062957?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/192167599828062957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/04/how-can-i-have-my-parents-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/192167599828062957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/192167599828062957'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/04/how-can-i-have-my-parents-or.html' title='How Can I Have My Parents Or Grandparents Use The Internet And Manage Photos Without A Computer?'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-4669044545103397550</id><published>2011-04-05T13:27:00.000-07:00</published><updated>2011-07-06T19:34:36.393-07:00</updated><title type='text'>Using Google and Bing in Systems Administration - A Brief Note.</title><content type='html'>&lt;h3&gt;Use both search engines&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Although Microsoft and Google claim that they do not alter search results to promote their interests, they do. It's not necessarily a bad tactic [1]. Just be aware of the behavior.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;General Steps&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;If you have a general problem, troubleshoot until you have a specific issue/question.&lt;/li&gt;&lt;li&gt;If you cannot figure out the answer, run it through both Google and Bing.&lt;/li&gt;&lt;li&gt;If you get results, it's either known configuration problem or a known issue with your product. Hopefully there will be a solution.&lt;/li&gt;&lt;li&gt;If you get no results, you can generally assume that you are making a common configuration mistake, the solution to which is considered so self-evident that user community of your product doesn't feel it's worth writing up. Re-read your manuals, guides, and tutorials.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;See the &lt;a href="http://xkcd.com/627/"&gt;XKCD flowchart&lt;/a&gt; for a similar process for family IT problem resolution.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;No Results At All&lt;/h3&gt;&lt;p&gt;If you get no results on a specific issue search for a product that is specific to a particular domain, it is worth just searching for the product itself. In my professional opinion, if you get no results for the general search, your use of the product might be risky for your organization, depending on your specific circumstances of course. If you get empty searches in Google and Bing, the product is not used by enough users to have been blogged about or to have been the subject of a forum post. Also, it's not well known enough that anyone has cared to review it. You may have trouble hiring administrators for the product, and, if the company has bad tech support, you have no other support options.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Notes&lt;/h3&gt;[1] For example, if Google truly feels its cloud apps are better than Microsoft's, they should list theirs first. Otherwise, they are not acting in their customers' best interests (from their point view). Likewise, for Microsoft.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-4669044545103397550?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/4669044545103397550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/04/using-google-and-bing-in-systems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4669044545103397550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4669044545103397550'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/04/using-google-and-bing-in-systems.html' title='Using Google and Bing in Systems Administration - A Brief Note.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-6307293562700713813</id><published>2011-03-04T12:49:00.000-08:00</published><updated>2011-07-06T19:35:19.517-07:00</updated><title type='text'>How to fix this ssh error from a Cisco switch: ssh_rsa_verify: RSA modulus too small: 512 &lt; minimum 768 bits</title><content type='html'>&lt;h3&gt;Problem&lt;/h3&gt;&lt;pre&gt;ssh user@cisco_switch&lt;br /&gt;&lt;/pre&gt;returns:&lt;br /&gt;&lt;pre&gt;ssh_rsa_verify: RSA modulus too small: 512 &lt; minimum 768 bits&lt;br /&gt;key_verify failed for server_host_key&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Solution&lt;/h3&gt;&lt;p&gt;The modulus of the ssh RSA key pair &lt;i&gt;on the switch&lt;/i&gt; is too small. If you have access, generate a new key pair on the switch with a larger modulus.&lt;/p&gt;&lt;h3&gt;Procedure&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Login with ssh protocol version 1 (&lt;i&gt;ssh space dash one&lt;/i&gt;): &lt;pre&gt;ssh -1 user@cisco_switch&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;(On the switch): &lt;pre&gt;enable&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;(On the switch): Authenticate to "Privileged Exec Mode" mode on the switch.&lt;/li&gt;&lt;li&gt;(On the switch): &lt;pre&gt;conf t&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;(On the switch): &lt;pre&gt;crypto key generate rsa general-keys modulus 1024&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;(On the switch): Press enter to accept that the current key pair for the switch will be replaced.&lt;/li&gt;&lt;/ol&gt;You now should be able to log into the switch with ssh protocol version 2.&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-6307293562700713813?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/6307293562700713813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2011/03/how-to-fix-this-ssh-error-from-cisco.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6307293562700713813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6307293562700713813'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2011/03/how-to-fix-this-ssh-error-from-cisco.html' title='How to fix this ssh error from a Cisco switch: ssh_rsa_verify: RSA modulus too small: 512 &lt; minimum 768 bits'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-978798839399911115</id><published>2010-11-02T13:26:00.000-07:00</published><updated>2011-07-06T19:35:56.811-07:00</updated><title type='text'>Lingo: Destructive Buy-in</title><content type='html'>&lt;h3&gt;Lingo: Destructive Buy-in&lt;/h3&gt;&lt;i&gt;Definition&lt;/i&gt;: Enough buy-in from employees and/or management to approve an idea or project, but not enough buy-in to execute it successfully.&lt;br /&gt;&lt;br /&gt;Origin: Corporate lore from a now-defunct biotech firm in MA, USA. First seen in an early Scott Adams interview in the form "destructive agreement".&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-978798839399911115?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/978798839399911115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/11/lingo-destructive-buy-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/978798839399911115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/978798839399911115'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/11/lingo-destructive-buy-in.html' title='Lingo: Destructive Buy-in'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-3796470022177188040</id><published>2010-07-14T07:59:00.000-07:00</published><updated>2011-07-06T19:36:28.522-07:00</updated><title type='text'>What package owns what file?</title><content type='html'>&lt;h3&gt;What to do if you need to install or build a package on Linux and it wants a missing file/library/etc...&lt;/h3&gt;&lt;p&gt;Have you ever tried to install package or some vendor software, only to find that the install fails due to a missing library? Here is a collection of methods for finding the package that contains the missing file.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Red Hat Enterprise Linux/CentOS&lt;/h3&gt;&lt;h3&gt;Using yum&lt;/h3&gt;&lt;pre&gt;yum whatprovides /full/path/to/missing/filename&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Note: In all of these processes, fill in the actual filename and path for which you are looking.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Using rpmfind site&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Browse to http://rpm.pbone.net/index.php3/stat/2/simple/2&lt;/li&gt;&lt;li&gt;Enter filename or /full/path/to/missing/filename in the search box (start with just the filename)&lt;/li&gt;&lt;li&gt;Check boxes of rpm-based distributions in which you want to search&lt;/li&gt;&lt;li&gt;Click search&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Debian/Ubuntu&lt;/h2&gt;&lt;h3&gt;apt-file&lt;/h3&gt;&lt;pre&gt;sudo aptitude install apt-file&lt;br /&gt;sudo apt-file update&lt;br /&gt;apt-file search filename&lt;br /&gt;&lt;/pre&gt;or&lt;br /&gt;&lt;pre&gt;apt-file search /full/path/to/missing/filename&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Using Debian's website&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Browse to http://www.debian.org/distrib/packages&lt;/li&gt;&lt;li&gt;Scroll to the bottom to the section called "Search the contents of packages"&lt;/li&gt;&lt;li&gt;Enter a single argument into the search field, either filename or /full/path/to/missing/filename&lt;/li&gt;&lt;li&gt;Select your distribution&lt;/li&gt;&lt;li&gt;Select the machine architecture for which you need the missing file&lt;/li&gt;&lt;li&gt;Click "Search"&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-3796470022177188040?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/3796470022177188040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/07/what-package-owns-what-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3796470022177188040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3796470022177188040'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/07/what-package-owns-what-file.html' title='What package owns what file?'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-970091338576144172</id><published>2010-06-18T13:11:00.003-07:00</published><updated>2011-07-06T19:38:42.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><title type='text'>How to build a basic Firefox package for Debian Lenny or Ubuntu 64-bit.</title><content type='html'>Do you run Debian 5 or 8.04+ Ubuntu on a 64-bit chip? Do you want a new Firefox as a 64-bit application? Here are some build instructions to create a basic package (no menu integration, etc.) from the Firefox source. If you want to add Flash, put the 64-bit beta plugin files into  your home directory, e.g. ~/.mozilla, or the file tree specified by the option:&lt;br /&gt;&lt;pre&gt;ac_add_options --with-default-mozilla-five-home=&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Download source&lt;/h3&gt;&lt;a href='http://releases.mozilla.org/pub/mozilla.org/firefox/releases/'&gt;Firefox source&lt;/a&gt;&lt;br /&gt;I will use 3.5.9.&lt;br /&gt;&lt;h3&gt;Unpack&lt;/h3&gt;Change to your workspace directory.&lt;br /&gt;&lt;pre&gt;mkdir src&lt;br /&gt;cd src&lt;br /&gt;tar jxvf ../firefox-3.5.9.source.tar.bz2&lt;br /&gt;cd ..&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Prepare for building&lt;/h3&gt;&lt;pre&gt;sudo aptitude install build-essential libidl-dev autoconf2.13 xorg-dev gcc g++ libgtk2.0-dev libnotify-dev libnotify-dev-gtk2.10 libnotifymm-dev libiw-dev libcurl4-gnutls-dev&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Prepare ~/.mozconfig&lt;/h3&gt;Put the following in ~/.mozconfig. Edit as needed. This file contains the build and configuration options used by Mozilla's Firefox build process. As documented here, this process will create a package that installs the new Firefox into /usr/local/apps/firefox-3.5.9-1. NOTE: update the version string in the prefix and default-mozilla-five-home to reflect the version you are building.&lt;br /&gt;&lt;pre&gt;mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@&lt;br /&gt;ac_add_options --enable-application=browser&lt;br /&gt;mk_add_options MOZ_CO_PROJECT=browser&lt;br /&gt;mk_add_options MOZ_MAKE_FLAGS="-j4"&lt;br /&gt;ac_add_options --disable-tests&lt;br /&gt;ac_add_options --prefix=/usr/local/apps/firefox-3.5.9-1&lt;br /&gt;ac_add_options --enable-optimize&lt;br /&gt;ac_add_options --enable-official-branding&lt;br /&gt;ac_add_options --enable-canvas&lt;br /&gt;ac_add_options --enable-strip&lt;br /&gt;ac_add_options --enable-xinerama&lt;br /&gt;ac_add_options --with-default-mozilla-five-home=/usr/local/tmp/firefox-3.5.9-1/lib/firefox-3.5&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Build it&lt;/h3&gt;&lt;pre&gt;mkdir -p package/firefox3.5_3.5.9-1_amd64&lt;br /&gt;&lt;/pre&gt;Note the package name, firefox3.5. This will keep it from stepping on system packages.&lt;br /&gt;&lt;pre&gt;cd src&lt;br /&gt;make -f client.mk clean &amp;&amp; make -f client.mk build &amp;&amp; make -f client.mk DESTDIR="`pwd`/../package/firefox3.5_3.5.9-1_amd64/" install&lt;br /&gt;&lt;/pre&gt;It takes ~15 minutes to build from scratch on an quad core Intel machine with 6GB of RAM.&lt;br /&gt;&lt;h3&gt;Make the package&lt;/h3&gt;&lt;pre&gt;cd ../package/firefox3.5_3.5.9-1_amd64/&lt;br /&gt;mkdir DEBIAN&lt;br /&gt;cd DEBIAN&lt;br /&gt;&lt;/pre&gt;Create a file called "control" with the following contents. Edit the package name and version as needed. Use your own credentials for the maintainer field.&lt;br /&gt;&lt;pre&gt;Package: firefox3.5&lt;br /&gt;Version: 3.5.9-1&lt;br /&gt;Architecture: amd64&lt;br /&gt;Maintainer: First Last &amp;#60;name@somedomain&amp;#62;&lt;br /&gt;Installed-Size: 90372&lt;br /&gt;Depends: fontconfig, psmisc, procps, debianutils (&gt;= 1.16), libc6 (&gt;= 2.7-1), libglib2.0-0 (&gt;= 2.12.0), libgtk2.0-0 (&gt;= 2.12.0), libnspr4-0d (&gt;= 1.8.0.10), libstdc++6 (&gt;= 4.1.1), xulrunner-1.9 (&gt;= 1.9.0.3-1)&lt;br /&gt;Suggests: xulrunner-1.9-gnome-support, latex-xft-fonts, xfonts-mathml, ttf-mathematica4.1, xprint, mozplugger, libkrb53&lt;br /&gt;Conflicts:&lt;br /&gt;Replaces:&lt;br /&gt;Provides:&lt;br /&gt;Section: web&lt;br /&gt;Priority: optional&lt;br /&gt;Description: lightweight web browser based on Mozilla&lt;br /&gt;&lt;/pre&gt;* Get size&lt;br /&gt;&lt;pre&gt;cd ..&lt;br /&gt;du -sk usr&lt;br /&gt;cd DEBIAN&lt;br /&gt;&lt;/pre&gt;* Edit "control" file to fill the output of the above du command into the Installed-Size: field.&lt;br /&gt;* Create the "md5sums" file&lt;br /&gt;&lt;pre&gt;cd ..&lt;br /&gt;DIRS=`/bin/ls -1 | grep -v DEBIAN` &amp;&amp; find $DIRS -type f -exec md5sum {} \; &gt; ./DEBIAN/md5sums&lt;br /&gt;cd DEBIAN&lt;br /&gt;&lt;/pre&gt;* Create "postinst" file with following content&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;if [ ! -d /usr/local/tmp ]&lt;br /&gt;then&lt;br /&gt;  mkdir -p /usr/local/tmp&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "################################################"&lt;br /&gt;echo ""&lt;br /&gt;echo "Run: /usr/local/apps/firefox-3.5.9-1/bin/firefox"&lt;br /&gt;echo ""&lt;br /&gt;echo "################################################"&lt;br /&gt;&lt;/pre&gt;Make the script executable&lt;br /&gt;&lt;pre&gt;chmod a+xr postinst&lt;br /&gt;&lt;/pre&gt;Create the package file&lt;br /&gt;&lt;pre&gt;cd ../..&lt;br /&gt;dpkg -ba firefox3.5_3.5.9-1_amd64&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Install firefox&lt;/h3&gt;&lt;pre&gt;sudo dpkg -i firefox3.5_3.5.9-1_amd64.deb&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Make a Launcher icon&lt;/h3&gt;&lt;h3&gt;Gnome:&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Right click on "Applications" menu&lt;/li&gt;&lt;li&gt;Choose "Edit Menu"&lt;/li&gt;&lt;li&gt;Click on "Internet"&lt;/li&gt;&lt;li&gt;Click on "New Item"&lt;/li&gt;&lt;li&gt;Name: Firefox3.5&lt;/li&gt;&lt;li&gt;Command: /usr/local/apps/firefox-3.5.9-1/bin/firefox&lt;/li&gt;&lt;li&gt;Comment: Firefox Browser, version 3.5.9&lt;/li&gt;&lt;li&gt;Click on OK&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;KDE:&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Right click on desktop and choose "Create New"&lt;/li&gt;&lt;li&gt;Choose "Link to Application..."&lt;/li&gt;&lt;li&gt;Name the link "Firefox3.5"&lt;/li&gt;&lt;li&gt;Click the Application tab&lt;/li&gt;&lt;li&gt;Click the icon&lt;/li&gt;&lt;li&gt;Chose a good web browser icon&lt;/li&gt;&lt;li&gt;Description: Firefox Browser, version 3.5.9&lt;/li&gt;&lt;li&gt;Command: /usr/local/apps/firefox-3.5.9-1/bin/firefox&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;li&gt;Open a terminal window&lt;/li&gt;&lt;li&gt;Run: sudo cp ~/Desktop/Firefox3.5.desktop /usr/share/applications/&lt;br /&gt;&lt;/ol&gt;&lt;h3&gt;References&lt;/h3&gt;[1] &lt;a href='http://markshroyer.com/blog/2009/07/firefox-35-debian-amd64.html'&gt;http://markshroyer.com/blog/2009/07/firefox-35-debian-amd64.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-970091338576144172?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/970091338576144172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/06/how-to-build-simple-firefox-package-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/970091338576144172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/970091338576144172'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/06/how-to-build-simple-firefox-package-for.html' title='How to build a basic Firefox package for Debian Lenny or Ubuntu 64-bit.'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-152758883322445488</id><published>2010-05-21T11:37:00.001-07:00</published><updated>2010-05-24T06:57:09.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Methods to Generate a Random digit from 0 to 9 in bash</title><content type='html'>&lt;pre&gt;echo "${RANDOM}" | cut -c 3 | grep .&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Note that sometimes you will get nothing...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A more sophisticated way to do this is to use modular arithmatic:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;digit="${RANDOM}" &amp;&amp; let "digit %= 10" &amp;&amp; echo $digit&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This will always return a value. Note that the first version is essentially 100-999 mod 100.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-152758883322445488?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/152758883322445488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/05/pretty-good-method-to-generate-random.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/152758883322445488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/152758883322445488'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/05/pretty-good-method-to-generate-random.html' title='Methods to Generate a Random digit from 0 to 9 in bash'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-4112360374685889784</id><published>2010-05-20T11:02:00.000-07:00</published><updated>2010-05-21T08:05:16.586-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippet'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Rough Sed and Awk Code to Convert a CSV file to a sortable Mediawiki table</title><content type='html'>&lt;pre&gt;echo -e "3,4,5,5\n4,5,6,8" | sed "s/$/\n-/" | sed -e "s/,/\n/g" | sed -e "s/^/|/" | awk 'BEGIN {&lt;br /&gt;    print "{|class=\"wikitable sortable\" style=\"vertical-align:top; background:lightblue;\"\n!key value!!col 1!!col 2!!col 3\n|-"&lt;br /&gt;    }&lt;br /&gt;    {&lt;br /&gt;    print&lt;br /&gt;    }&lt;br /&gt;    END {&lt;br /&gt;    print "|}"&lt;br /&gt;    }&lt;br /&gt;  '&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-4112360374685889784?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/4112360374685889784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/05/rough-sed-and-awk-code-to-convert-csv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4112360374685889784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/4112360374685889784'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/05/rough-sed-and-awk-code-to-convert-csv.html' title='Rough Sed and Awk Code to Convert a CSV file to a sortable Mediawiki table'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-3008696033626217399</id><published>2010-04-20T07:03:00.000-07:00</published><updated>2010-05-22T06:45:52.933-07:00</updated><title type='text'>Local-link Address (LLA, 169.254.0.0/16) networking on Debian/Ubuntu Linux How To</title><content type='html'>&lt;h3&gt;Instructions for connecting external IP devices to the second NIC on a Debian/Ubuntu box using Local-link Address networking (169.254.0.0/16)&lt;/h3&gt;&lt;p&gt;e.g. connecting a Axis 206M camera.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Install on the Debian/Ubuntu PC:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dhcp3-server&lt;/li&gt;&lt;li&gt;avahi-autoipd&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To configure dhcpd, add the following lines to /etc/dhcp3/dhcpd.conf:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;subnet 169.254.0.0 netmask 255.255.0.0 {&lt;br /&gt;  range 169.254.8.2 169.254.8.20;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Add a route to 255.255.255.255 to the second NIC in order to send UDP broadcast traffic to it.  This is accomplished by the last two lines below in /etc/network/interfaces:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;% cat /etc/network/interfaces&lt;br /&gt;auto lo eth0 eth1&lt;br /&gt;iface lo inet loopback&lt;br /&gt;address 127.0.0.1&lt;br /&gt;netmask 255.0.0.0&lt;br /&gt;iface eth0 inet dhcp&lt;br /&gt;iface eth1 inet dhcp&lt;br /&gt;post-up route add -net 255.255.255.255 netmask 255.255.255.255  metric 99 dev eth1&lt;br /&gt;post-down route del -net 255.255.255.255 netmask 255.255.255.255  metric 99 dev eth1 &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-3008696033626217399?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/3008696033626217399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/04/local-link-address-lla-1692540016.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3008696033626217399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/3008696033626217399'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/04/local-link-address-lla-1692540016.html' title='Local-link Address (LLA, 169.254.0.0/16) networking on Debian/Ubuntu Linux How To'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-6934985072494504096</id><published>2010-04-11T11:46:00.000-07:00</published><updated>2010-04-11T11:46:58.127-07:00</updated><title type='text'>Error Building ffmpeg: 32-bit absolute addressing is not supported for x86-64</title><content type='html'>&lt;h2&gt;A quick note... &lt;/h2&gt;&lt;br /&gt;&lt;p&gt;If you are getting the following error on Mac OS X 10.6 with XCode 3.2.1, while compiling ffmpeg with software scaling (libswscale):&lt;br /&gt;&lt;pre&gt;32-bit absolute addressing is not supported for x86-64&lt;br /&gt;&lt;/pre&gt;then you need to pass &lt;br /&gt;&lt;pre&gt;--arch=x86_64 &lt;br /&gt;&lt;/pre&gt;to "configure"&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;-Adam&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-6934985072494504096?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/6934985072494504096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/04/error-building-ffmpeg-32-bit-absolute.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6934985072494504096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6934985072494504096'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/04/error-building-ffmpeg-32-bit-absolute.html' title='Error Building ffmpeg: 32-bit absolute addressing is not supported for x86-64'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5328807984633140449.post-6575233594359180888</id><published>2010-03-09T20:46:00.000-08:00</published><updated>2010-05-21T21:52:02.267-07:00</updated><title type='text'>Relatively Reliable Ram Drive Server</title><content type='html'>&lt;h3&gt;Idea:Relatively Reliable Ram Disk Server&lt;/h3&gt;&lt;br /&gt;&lt;b&gt;Two commodity servers&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Parts (for each)&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MB with at least 8 DIMM slots &lt;/li&gt;&lt;li&gt;Two 10G ethernet cards for storage&lt;/li&gt;&lt;li&gt;SATA RAID&lt;/li&gt;&lt;li&gt;Four smallish enterprise drives:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Two drives in a mirrored pair for OS&lt;/li&gt;&lt;li&gt;Two drives for backing store&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;32GB or 64GB of ECC RAM&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Parts for file server node&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bonded pair of 1G or 10G cards&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;b&gt;Building&lt;/b&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make a large RAM disk on each (leave 2GB for OS)&lt;/li&gt;&lt;li&gt;On one machine:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Share the RAM disk with the other machine via one crossover network (one of the 10G cards on each machine) via iSCSI&lt;/li&gt;&lt;li&gt;Share pair of backing drives via iSCSI &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;On other machine (file server)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Using md, on each, mirror the iSCSI RAM disk to the local RAM disk.&lt;/li&gt;&lt;li&gt;Make a filesystem (ext2) on mirrored RAM disk&lt;/li&gt;&lt;li&gt;Share RAM filesystem via NFS and SAMBA.&lt;/li&gt;&lt;li&gt;Combine iSCSI drives and local drives into RAID 0+1 backing store.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Make journaled filesytem on backing store disk. &lt;/li&gt;&lt;li&gt;Mount backing store&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Put each server on a sizable independent UPS with a serial/USB monitor to smooth out uptime (5h-10h)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Configure serial trigger from UPS such that if the AC cuts on either of them the file server will stop sharing and run rsnapshot backup to the backing store.&lt;/li&gt;&lt;li&gt;Run rsnapshot to flush the RAM filesystems every 30 minutes.&lt;/li&gt;&lt;li&gt;Configure RAM disk startup and shutdown&lt;/li&gt;&lt;ul&gt;&lt;li&gt;On shutdown have file server to rsnapshot RAM disk to backing store before coming down.&lt;/li&gt;&lt;li&gt;On start up check uptime on other server to see if it went down as well.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If so, have file server rsnapshot to RAM disk before starting file sharing services.&lt;/li&gt;&lt;li&gt;If not, have file server recover RAM disk from mirror.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;Note: If you have the file server on a 10G network with three 10G cards, you could share the RAM disk itself as an iSCSI target and use dd to back it off to the backing store.&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;© 2012 Adam Keck&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5328807984633140449-6575233594359180888?l=www.bashedupbits.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.bashedupbits.com/feeds/6575233594359180888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.bashedupbits.com/2010/03/ram-storage-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6575233594359180888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5328807984633140449/posts/default/6575233594359180888'/><link rel='alternate' type='text/html' href='http://www.bashedupbits.com/2010/03/ram-storage-server.html' title='Relatively Reliable Ram Drive Server'/><author><name>Adam Keck</name><uri>http://www.blogger.com/profile/05667639074146674799</uri><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/-g8jSpOJLw5g/Tv-bTqDT5FI/AAAAAAAAAQA/-oWeJK_7X8M/s220/DSC_8979.jpg'/></author><thr:total>0</thr:total></entry></feed>
