<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>tactical vim</title>
	<atom:link href="https://tacticalvim.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://tacticalvim.wordpress.com</link>
	<description>nerdy bits &#38; pieces</description>
	<lastBuildDate>Fri, 27 Jan 2012 21:59:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tacticalvim.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://secure.gravatar.com/blavatar/cfa3e2b949a2e9a12dd5e3b8a8aa4843?s=96&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Fbuttonw-com.png</url>
		<title>tactical vim</title>
		<link>https://tacticalvim.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://tacticalvim.wordpress.com/osd.xml" title="tactical vim" />
	<atom:link rel='hub' href='https://tacticalvim.wordpress.com/?pushpress=hub'/>
		<item>
		<title>normalize phone JPG files based on EXIF data</title>
		<link>https://tacticalvim.wordpress.com/2011/11/12/normalize-phone-jpg-files-based-on-exif-data/</link>
		<comments>https://tacticalvim.wordpress.com/2011/11/12/normalize-phone-jpg-files-based-on-exif-data/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 16:14:01 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cellphones]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[exif]]></category>
		<category><![CDATA[jhead]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[jpg]]></category>
		<category><![CDATA[normalize]]></category>
		<category><![CDATA[photon]]></category>
		<category><![CDATA[rename]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=468</guid>
		<description><![CDATA[I recently decided to switch to Sprint (from T-Mobile, their network is awful here in San Antonio) and picked up the Motorola Photon 4G (great phone btw) which finally has a decent naming convention for mobile pics. For years I&#8217;ve been at the mercy of various HTC, Samsung and LG devices which randomly choose different [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=468&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently decided to switch to Sprint (from T-Mobile, their network is awful here in San Antonio) and picked up the <a href="http://forum.xda-developers.com/forumdisplay.php?f=1220" target="_blank">Motorola Photon 4G</a> (great phone btw) which finally has a decent naming convention for mobile pics. For years I&#8217;ve been at the mercy of various HTC, Samsung and LG devices which randomly choose different conventions &#8211; in my mind, naming them by date/time is the best way to go and the Photon pleases me. Time to fix all the old (couple hundred) pics I like keeping on my phone to the Photon&#8217;s convention.</p>
<p>I <a href="http://neverfear.org/blog/view/148/Rename_all_jpeg_files_by_their_exposure_date_Bash" target="_blank">found a script</a> which introduced me to <a href="http://www.sentex.net/~mwandel/jhead/" target="_blank">JHead</a> so I built upon it &#8211; I quickly realized that all my EXIF date headers were whacked out too, all the various cameras stored them differently (using &#8216;:&#8217; vs. &#8216;/&#8217; vs. &#8216;-&#8217; as field separators). This script fixes all that and resets the EXIF header date/time to jheads default.</p>
<p><strong>MAKE A BACKUP OF YOUR PICS FIRST</strong></p>
<p><pre class="brush: bash;">
#!/bin/bash
# normalizeJPEG.sh
#
# requires &quot;jhead&quot; (yum/apt-get install jhead)
# normalize JPG files based on their EXIF header - handy for loads of pics
# taken with different cameras (several phones, e.g.) that store the EXIF
# dates in different formats and name the files differently.
#
# Result: YYYY-MM-DD_HH-MM-SS_###.jpg (where ### is random 100-999)
# 
# This script also updates date/timestamp on disk, then reverse updates the
# EXIF header from that stamp to normalize your headers DATE/TIME field
#
# Original: http://neverfear.org/blog/view/148/Rename_all_jpeg_files_by_their_exposure_date_Bash
 
for file in *.jpg *.jpeg *.JPG *.JPEG; do
  if [ ! -e &quot;$file&quot; ]; then
    continue
  fi
  echo &quot;Inspecting $file&quot;
  JPGDT=`jhead &quot;$file&quot; | grep &quot;Date/Time&quot;`
  JPGFC=`jhead &quot;$file&quot; | grep &quot;Date/Time&quot; | wc -l`
  if [ $JPGFC -gt 1 ]; then
    echo &quot;Found too many results for: $file&quot;
    continue
  elif [ $JPGFC -eq 0 ]; then
    echo &quot;No valid headers found.&quot;
    continue
  else
      BASE=`echo $JPGDT | awk '{ printf(&quot;%s %s&quot;,$3,$4) }' | sed -e 's/\([0-9][0-9]\).\([0-9][0-9]\).\([0-9][0-9]\) \([0-9][0-9]\).\([0-9][0-9]\).\([0-9][0-9]\)/\1-\2-\3 \4:\5:\6/'`
      BASE=`date -d &quot;$BASE&quot; +&quot;%Y-%m-%d_%H-%M-%S&quot;`
      RND=$[($RANDOM%899)+100]
      if [ ! -e &quot;${BASE}_${RND}.jpg&quot; ]; then
        echo &quot;New file: ${BASE}_${RND}.jpg&quot;
        mv &quot;$file&quot; &quot;${BASE}_${RND}.jpg&quot;
        jhead -ft &quot;${BASE}_${RND}.jpg&quot;
        jhead -dsft &quot;${BASE}_${RND}.jpg&quot;
      fi
  fi
done
</pre></p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/android/'>Android</a>, <a href='https://tacticalvim.wordpress.com/category/cellphones/'>Cellphones</a>, <a href='https://tacticalvim.wordpress.com/category/desktop/'>Desktop</a>, <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/scripting/'>Scripting</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/android/'>Android</a>, <a href='https://tacticalvim.wordpress.com/tag/bash/'>bash</a>, <a href='https://tacticalvim.wordpress.com/tag/exif/'>exif</a>, <a href='https://tacticalvim.wordpress.com/tag/jhead/'>jhead</a>, <a href='https://tacticalvim.wordpress.com/tag/jpeg/'>jpeg</a>, <a href='https://tacticalvim.wordpress.com/tag/jpg/'>jpg</a>, <a href='https://tacticalvim.wordpress.com/tag/normalize/'>normalize</a>, <a href='https://tacticalvim.wordpress.com/tag/photon/'>photon</a>, <a href='https://tacticalvim.wordpress.com/tag/rename/'>rename</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/468/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=468&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2011/11/12/normalize-phone-jpg-files-based-on-exif-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>thunderbird LDAP autocomplete with Active Directory</title>
		<link>https://tacticalvim.wordpress.com/2011/10/22/thunderbird-ldap-autocomplete-with-active-directory/</link>
		<comments>https://tacticalvim.wordpress.com/2011/10/22/thunderbird-ldap-autocomplete-with-active-directory/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 14:42:09 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[thunderbird]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=453</guid>
		<description><![CDATA[The core problem is that the autocomplete while composing emails in Thunderbird uses a different LDAP filter than when you&#8217;re just looking in the address book. Depending on how your Exchange/Active Directory admins set up the attributes &#8211; and the design of the login names, we have 3 different styles in my company &#8211; you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=453&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The core problem is that the autocomplete while composing emails in <a href="http://www.mozilla.org/en-US/thunderbird/" target="_blank">Thunderbird</a> uses a different <a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol" target="_blank">LDAP</a> filter than when you&#8217;re just looking in the address book. Depending on how your <a href="http://technet.microsoft.com/en-us/library/bb123715.aspx" target="_blank">Exchange/Active Directory</a> admins set up the attributes &#8211; and the design of the login names, we have 3 different styles in my company &#8211; you may &#8220;miss&#8221; finding people depending on how you type parts of their name.</p>
<p>Once your LDAP server is set up in Thunderbird it will have preferences based on the name you gave it; I&#8217;ll use <em>MYSERVER</em> below, replace with your correct name.</p>
<ol>
<li>Open the Thunderbird Preferences, select the <strong>Advanced -&gt; General</strong> tab</li>
<li>Click <strong>Config Editor</strong> (dismiss the warning if it appears)</li>
<li>Rightmouse click and chose <strong>New -&gt; String Value</strong> to add these items (so repeat the process for each pair below):</li>
<p><pre class="brush: plain; gutter: false; wrap-lines: false;">
Preference name: ldap_2.servers.MYSERVER.attrmap.DisplayName
Preference value: displayName

Preference name: ldap_2.servers.MYSERVER.autoComplete.commentFormat
Preference value: [displayName]

Preference name: ldap_2.servers.MYSERVER.autoComplete.nameFormat
Preference value: [displayName]

Preference name: ldap_2.servers.MYSERVER.autoComplete.filterTemplate
Preference value: (|(mail=*%v*)(displayName=*%v*)(givenName=*%v*)(sn=*%v*)(cn=*%v*))
</pre>
</ol>
<p>Now you know, and knowing is half the battle. (<a href="http://www.gametrailers.com/user-movie/all-gi-joe-psas/326701" target="_blank">Go Joe</a>!)</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/desktop/'>Desktop</a>, <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/active-directory/'>active directory</a>, <a href='https://tacticalvim.wordpress.com/tag/autocomplete/'>autocomplete</a>, <a href='https://tacticalvim.wordpress.com/tag/email/'>email</a>, <a href='https://tacticalvim.wordpress.com/tag/exchange/'>exchange</a>, <a href='https://tacticalvim.wordpress.com/tag/ldap/'>ldap</a>, <a href='https://tacticalvim.wordpress.com/tag/thunderbird/'>thunderbird</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/453/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=453&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2011/10/22/thunderbird-ldap-autocomplete-with-active-directory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>google music manager &#8220;connection to service failed&#8221;</title>
		<link>https://tacticalvim.wordpress.com/2011/07/23/google-music-manager-connection-to-service-failed-2/</link>
		<comments>https://tacticalvim.wordpress.com/2011/07/23/google-music-manager-connection-to-service-failed-2/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 14:26:27 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[failed]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[gmm]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google music manager]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=446</guid>
		<description><![CDATA[Google has released their Linux desktop app for uploading to Google Music &#8211; unfortunately it doesn&#8217;t seem to work correctly out of the box on Fedora 13/14/15, openSUSE 11.4 and maybe others. The app is looking for a SSL cert bundle in one location only which isn&#8217;t present where it thinks: $ strace -f -o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=446&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Google has released their Linux desktop app for uploading to <a href="http://www.google.com/support/music/bin/answer.py?answer=1229970" target="_blank">Google Music</a> &#8211; unfortunately it doesn&#8217;t seem to work correctly out of the box on Fedora 13/14/15, openSUSE 11.4 and maybe others. The app is looking for a SSL cert bundle in one location only which isn&#8217;t present where it thinks:</p>
<p><code>$ strace -f -o debug.file google-musicmanager<br />
$ cat debug.file |  egrep -i "(certificate|bundle)"<br />
22324 open("/etc/ssl/certs/ca-certificates.crt", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)<br />
</code><br />
To fix, symlink from the real bundle to where GMM expects it to be:</p>
<p><strong>Fedora 13</strong>:<br />
<code># mkdir -p /etc/ssl/certs<br />
# ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt<br />
</code><br />
<strong>Fedora 14 / 15</strong>:<br />
<code># ln -s /etc/ssl/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt</code></p>
<p><strong>openSUSE 11.4</strong>:<br />
<code># ln -s /usr/share/kde4/apps/kssl/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt<br />
...or:<br />
# ln -s /usr/share/claws-mail/tools/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt</code></p>
<p>There&#8217;s a <a href="http://www.google.com/support/forum/p/Google+Apps/thread?tid=04c2edc54f5f8b73&amp;hl=en" target="_blank">thread on the forums</a> for people having problems on multiple platforms.</p>
<p>(updated with comment feedback on other releases, thanks!)</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/desktop/'>Desktop</a>, <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/connection/'>connection</a>, <a href='https://tacticalvim.wordpress.com/tag/failed/'>failed</a>, <a href='https://tacticalvim.wordpress.com/tag/fedora/'>fedora</a>, <a href='https://tacticalvim.wordpress.com/tag/gmm/'>gmm</a>, <a href='https://tacticalvim.wordpress.com/tag/google/'>google</a>, <a href='https://tacticalvim.wordpress.com/tag/google-music-manager/'>google music manager</a>, <a href='https://tacticalvim.wordpress.com/tag/manager/'>manager</a>, <a href='https://tacticalvim.wordpress.com/tag/music/'>music</a>, <a href='https://tacticalvim.wordpress.com/tag/opensuse/'>opensuse</a>, <a href='https://tacticalvim.wordpress.com/tag/ssl/'>ssl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/446/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=446&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2011/07/23/google-music-manager-connection-to-service-failed-2/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>compile python bytecode at RPM build time</title>
		<link>https://tacticalvim.wordpress.com/2011/06/30/compile-python-bytecode-at-rpm-build-time/</link>
		<comments>https://tacticalvim.wordpress.com/2011/06/30/compile-python-bytecode-at-rpm-build-time/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 15:01:49 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[bytecode]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=434</guid>
		<description><![CDATA[From the world of quick hacks &#8211; I needed to rebuild the Puppet RPM from the EPEL folks for a customer, they need it deployed at kickstart time with custom configs (hundreds of servers). Using the EPEL source RPM the &#8220;yumhelper.py&#8221; file wasn&#8217;t getting compiled into .pyc and .pyo objects on a standard RHEL 5 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=434&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From the world of quick hacks &#8211; I needed to rebuild the <a href="http://www.puppetlabs.com/" target="_blank">Puppet</a> RPM from the <a href="http://fedoraproject.org/wiki/EPEL" target="_blank">EPEL</a> folks for a customer, they need it deployed at kickstart time with custom configs (hundreds of servers). Using the EPEL source RPM the &#8220;yumhelper.py&#8221; file wasn&#8217;t getting compiled into .pyc and .pyo objects on a standard RHEL 5 system (which I&#8217;ve seen before with <a href="http://mysql-python.sourceforge.net/" target="_blank">MySQL-python</a> RPMs).</p>
<p>The quick hack was to simply run Python&#8217;s <em>compileall</em> module on it:</p>
<p><pre class="brush: bash;">
%install
rm -rf %{buildroot}
ruby install.rb --destdir=%{buildroot} --quick --no-rdoc

# Precompile python modules to avoid selinux issues later
python -mcompileall %{buildroot}%{ruby_sitelibdir}/puppet/provider/package
python -O -mcompileall %{buildroot}%{ruby_sitelibdir}/puppet/provider/package
</pre></p>
<p>Is it ugly and dirty? Yes. Does it work? Yes. Problem solved, walk away and get other work done.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/servers/'>Servers</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/bytecode/'>bytecode</a>, <a href='https://tacticalvim.wordpress.com/tag/compile/'>compile</a>, <a href='https://tacticalvim.wordpress.com/tag/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/tag/puppet/'>puppet</a>, <a href='https://tacticalvim.wordpress.com/tag/python/'>python</a>, <a href='https://tacticalvim.wordpress.com/tag/rpm/'>rpm</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/434/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=434&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2011/06/30/compile-python-bytecode-at-rpm-build-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>online regex testers</title>
		<link>https://tacticalvim.wordpress.com/2011/01/15/online-regex-testers/</link>
		<comments>https://tacticalvim.wordpress.com/2011/01/15/online-regex-testers/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 22:28:55 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[egrep]]></category>
		<category><![CDATA[ereg]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[pcre]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[posix]]></category>
		<category><![CDATA[preg]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regexp]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=428</guid>
		<description><![CDATA[I finally got around to creating a site that links all the regex testers I use now and again to work with patterns while I&#8217;m doing mod_rewrite rules, (e)grep work, nginx location matches and things like that. Enjoy! RegEx Testers &#8211; Collection of browser based RegEx testers I claim no ownership to the code, just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=428&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I finally got around to creating a site that links all the regex testers I use now and again to work with patterns while I&#8217;m doing mod_rewrite rules, (e)grep work, nginx location matches and things like that. Enjoy!</p>
<p><a href="http://regex.tacticalvim.com/">RegEx Testers</a> &#8211; Collection of browser based RegEx testers</p>
<p>I claim no ownership to the code, just a handy way to find it all quickly.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/links/'>Links</a>, <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/scripting/'>Scripting</a>, <a href='https://tacticalvim.wordpress.com/category/servers/'>Servers</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/egrep/'>egrep</a>, <a href='https://tacticalvim.wordpress.com/tag/ereg/'>ereg</a>, <a href='https://tacticalvim.wordpress.com/tag/grep/'>grep</a>, <a href='https://tacticalvim.wordpress.com/tag/java/'>java</a>, <a href='https://tacticalvim.wordpress.com/tag/javascript/'>javascript</a>, <a href='https://tacticalvim.wordpress.com/tag/mod_rewrite/'>mod_rewrite</a>, <a href='https://tacticalvim.wordpress.com/tag/pcre/'>pcre</a>, <a href='https://tacticalvim.wordpress.com/tag/php/'>php</a>, <a href='https://tacticalvim.wordpress.com/tag/posix/'>posix</a>, <a href='https://tacticalvim.wordpress.com/tag/preg/'>preg</a>, <a href='https://tacticalvim.wordpress.com/tag/regex/'>regex</a>, <a href='https://tacticalvim.wordpress.com/tag/regexp/'>regexp</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/428/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/428/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/428/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=428&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2011/01/15/online-regex-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>RHCS 5 NFS cluster node not releasing TCP 2049 on relocate</title>
		<link>https://tacticalvim.wordpress.com/2010/08/28/rhcs-5-nfs-cluster-node-not-releasing-tcp/</link>
		<comments>https://tacticalvim.wordpress.com/2010/08/28/rhcs-5-nfs-cluster-node-not-releasing-tcp/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 17:20:46 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rhcs]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[udp]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=416</guid>
		<description><![CDATA[Imagine if you will you have a 2 node Red Hat NFS Cluster; each node is RHEL5.4 64bit and they share a SAN LUN for the data. The primary interface on each server is HA failover bonded (bond0, eth0+eth1) and there is a standard floating cluster resource IP for NFS. The cluster configuration is set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=416&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Imagine if you will you have a 2 node Red Hat NFS Cluster; each node is RHEL5.4 64bit and they share a SAN LUN for the data. The primary interface on each server is HA failover bonded (bond0, eth0+eth1) and there is a standard floating cluster resource IP for NFS. The cluster configuration is set up with standard Red Hat tools and NFS has static ports defined in /etc/sysconfig/nfs in order to work through a firewall. So far so good, right? Very by the book, best practices &#8211; nothing funky or strange used in the server or cluster setup.</p>
<p>The core of the problem is when the clients are using TCP to mount the exported NFSv4 share; on a cluster service relocate to the other node the newly-passive node retains a 2049/tcp (nfs daemon) ESTABLISHED connection using the now-missing cluster IP to the clients even though that&#8217;s technically impossible (as far as I&#8217;m aware). The &#8220;solution&#8221; was to move to using UDP when mounting from the clients as we were unable to figure out what was happening (and more importantly how to fix it). Any clues as to why are welcome, details below.</p>
<p><span id="more-416"></span></p>
<p>Cluster IP: 1.1.1.10<br />
Client IP: 2.2.2.100</p>
<p>Starting out, NFS service is running on node-A, node-A has the cluster IP aliased as bond0:0 and the SAN mounted. The NFS client is connected via NFSv4 TCP to the cluster IP and things are working just fine. In our netstat on node-A we see:</p>
<p><code> 1.1.1.10:2049    2.2.2.2.100:915    ESTABLISHED</code></p>
<p>Everything is as it should be. On node-A run a standard &#8216;<em>clusvcadm -r nfs-svc -m node-B</em>&#8216; command to move NFS over to node-B; in both syslogs of node-A and node-B you see the proper messages &#8211; NFS being stopped, IP being released/moved, SAN unmounted/mounted and so forth. On the NFS client you see a few syslog messages about the NFS server not responding, then it comes back OK and everything is fine. Basically, NFS relocate to node-B works fine.</p>
<p><strong>However</strong>, back on node-A which no longer owns the cluster IP 1.1.1.10 you still see in the netstat a connection on 2049! A quick &#8216;rcpinfo -p&#8217; confirms it&#8217;s still nfsd on that port.</p>
<p><code>1.1.1.10:2049    2.2.2.2.100:915    ESTABLISHED</code></p>
<p>Of course on node-B you see the same thing as that&#8217;s correct. The 10 million dollar question is why is it still showing up on node-A? As soon as the IP went away that should have gotten flushed&#8230; if you simply restart nfsd the connection state on node-A turns to FIN_WAIT1 and it eventually times out. The cluster IP does not show up as an interface on node-A any longer to be clear, just in netstat.</p>
<p>And here is where it becomes important &#8211; if this TCP phantom 2049 connection is still on node-A and you now relocate the NFS service back to node-A (so it gets that cluster IP again), all clients stall and die with the NFS mount whether or not that phantom connection is in ESTABLISHED or FIN_WAIT1 state. Only when that phantom connection finally disappears from node-A can the NFS clients regain their NFS mount &#8211; this is on the order of 5 to 15 minutes.</p>
<p>We tested this back and forth a number of times, ensuring it wasn&#8217;t firewall related and it was repeatable as a problem and not just some fluke. At the end of many hours the only workable solution was to move the clients to UDP and avoid the problem completely. I really want to know what&#8217;s broken and how to fix it.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/servers/'>Servers</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/cluster/'>cluster</a>, <a href='https://tacticalvim.wordpress.com/tag/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/tag/nfs/'>nfs</a>, <a href='https://tacticalvim.wordpress.com/tag/redhat/'>redhat</a>, <a href='https://tacticalvim.wordpress.com/tag/rhcs/'>rhcs</a>, <a href='https://tacticalvim.wordpress.com/tag/tcp/'>tcp</a>, <a href='https://tacticalvim.wordpress.com/tag/udp/'>udp</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/416/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=416&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2010/08/28/rhcs-5-nfs-cluster-node-not-releasing-tcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>psa: fedoraproject.org SSL cert expired, yum updates failing</title>
		<link>https://tacticalvim.wordpress.com/2010/07/31/psa-fedoraproject-org-ssl-cert-expired-yum-updates-failing/</link>
		<comments>https://tacticalvim.wordpress.com/2010/07/31/psa-fedoraproject-org-ssl-cert-expired-yum-updates-failing/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 14:08:02 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[expired]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[outage]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=412</guid>
		<description><![CDATA[Hey y&#8217;all, a quick public service announcement &#8211; the wildcard certificate for *.fedoraproject.org expired this morning which is in turn causing site problems and yum updates to fail. Please see the mailing list post here: Outage: SSL Cert &#8211; 2010-07-31 12:00 UTC Which points to the corresponding ticket here: SSL Certificate for https://admin.fedoraproject.org expired 31.07.2010 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=412&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hey y&#8217;all, a quick public service announcement &#8211; the wildcard certificate for *.fedoraproject.org expired this morning which is in turn causing site problems and yum updates to fail. Please see the mailing list post here:</p>
<p><a href="http://www.spinics.net/lists/fedora-announce/msg03522.html">Outage: SSL Cert &#8211; 2010-07-31 12:00 UTC<br />
</a></p>
<p>Which points to the corresponding ticket here:</p>
<p><a href="https://fedorahosted.org/fedora-infrastructure/ticket/2300">SSL Certificate for https://admin.fedoraproject.org expired 31.07.2010 14:17</a></p>
<p><span id="more-412"></span></p>
<blockquote><p>
[14:22:21]  mmcgrath: time to wake-up!<br />
[14:22:42]  mmcgrath: the SSL certificate from admin.fedoraproject.org expired&#8230;<br />
[14:23:34]  mmcgrath: I thought, we would have setup Nagios checks for such things?<br />
[14:23:57]  mmcgrath: alternatively, I recommend: &#8220;yum install x509watch&#8221; on the Fedora Infrastructure servers :P<br />
[14:28:33]  rsc: we do or did, I know because I set it up<br />
[14:30:02]  mmcgrath: then you missed either admin.fedoraproject.org or the people getting the e-mails are cheerfully ignoring them?<br />
[14:30:02]  marek: ping<br />
[14:30:13] -!- gvarisco has joined #fedora-admin<br />
[14:30:32]  hi there ;) &#8211; already aware of the *.fedoraproject.org cert expiring today?<br />
[14:30:36]  nope it wasn&#8217;t happening<br />
[14:30:38]  gvarisco: yes<br />
[14:30:41]  oki<br />
[14:30:42]  jesus fucking christ<br />
[14:30:57]  we&#8217;re going to have to deal with this stupid bull shit all weekend too because I suspect no one at RH&#8217;s going to be able to get a cert till monday<br />
[14:31:02]  fuck fucking fuck fuck fuck.<br />
[14:31:56]  CodeBlock: ping<br />
[14:32:14] -!- mmcgrath changed the topic of #fedora-admin to: Yes, the ssl certs have expired.
</p></blockquote>
<p>Fear not, engineers are at work.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/expired/'>expired</a>, <a href='https://tacticalvim.wordpress.com/tag/fedora/'>fedora</a>, <a href='https://tacticalvim.wordpress.com/tag/outage/'>outage</a>, <a href='https://tacticalvim.wordpress.com/tag/ssl/'>ssl</a>, <a href='https://tacticalvim.wordpress.com/tag/yum/'>yum</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/412/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=412&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2010/07/31/psa-fedoraproject-org-ssl-cert-expired-yum-updates-failing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>mmlistarc.sh: quickly set all mailman list archives private</title>
		<link>https://tacticalvim.wordpress.com/2010/06/27/mmlistarc-sh-quickly-set-all-mailman-list-archives-private/</link>
		<comments>https://tacticalvim.wordpress.com/2010/06/27/mmlistarc-sh-quickly-set-all-mailman-list-archives-private/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 07:00:42 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[config.pck]]></category>
		<category><![CDATA[list archives]]></category>
		<category><![CDATA[mailman]]></category>
		<category><![CDATA[private]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=408</guid>
		<description><![CDATA[Here&#8217;s a quick script to change all your mailman archive settings to private; useful if you have dozens of privates lists and didn&#8217;t realize that even though the list was locked down, the archives were left open to the world. The script is based on an older mailing list post by Daniel Clark. I highly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=408&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick script to change all your mailman archive settings to private; useful if you have dozens of privates lists and didn&#8217;t realize that even though the list was locked down, the archives were left open to the world. The script is based on an older <a href="http://mail.python.org/pipermail/mailman-users/2007-February/055670.html">mailing list post</a> by Daniel Clark.</p>
<p><pre class="brush: bash;">
#!/bin/bash

# http://mail.python.org/pipermail/mailman-users/2007-February/055670.html

DDB=/usr/lib/mailman/bin/dumpdb
MCL=/usr/lib/mailman/bin/config_list
DBH=/var/lib/mailman/lists

echo &quot;mlist.archive_private = 1&quot; &gt; /tmp/mmlistarc.dat

for direc in ${DBH}/* ; do
  if [ -f $direc/config.pck ]; then
    listname=${direc##*/}
    echo &quot;$listname before, after&quot;
    $DDB $direc/config.pck | grep -i archive_private
    if [ ! -f $direc/config.pck.backup ]; then
      cp -a $direc/config.pck $direc/config.pck.backup
    fi
    $MCL -i /tmp/mmlistarc.dat $listname
    $DDB $direc/config.pck | grep -i archive_private
  fi
done 

rm -f /tmp/mmlistarc.dat

exit 0
</pre></p>
<p>I highly advise making a complete backup of all your configs first, can&#8217;t be too safe.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/scripting/'>Scripting</a>, <a href='https://tacticalvim.wordpress.com/category/servers/'>Servers</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/bash/'>bash</a>, <a href='https://tacticalvim.wordpress.com/tag/config-pck/'>config.pck</a>, <a href='https://tacticalvim.wordpress.com/tag/list-archives/'>list archives</a>, <a href='https://tacticalvim.wordpress.com/tag/mailman/'>mailman</a>, <a href='https://tacticalvim.wordpress.com/tag/private/'>private</a>, <a href='https://tacticalvim.wordpress.com/tag/shell/'>shell</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/408/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/408/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/408/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=408&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2010/06/27/mmlistarc-sh-quickly-set-all-mailman-list-archives-private/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>sslkeygen.sh: complete SSL cert creation helper script</title>
		<link>https://tacticalvim.wordpress.com/2010/06/20/sslkeygen-sh-complete-ssl-cert-creation-helper-script/</link>
		<comments>https://tacticalvim.wordpress.com/2010/06/20/sslkeygen-sh-complete-ssl-cert-creation-helper-script/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 08:56:51 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[crt]]></category>
		<category><![CDATA[csr]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[exim]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[x509]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=403</guid>
		<description><![CDATA[Here&#8217;s a handy shell script for creating SSL certs for use in things like Apache, Exim, Dovecot, etc &#8211; it can handle creating a local certificate authority to self-sign as well if you aren&#8217;t using an official CA. In typical usage one would run makekey, makecsr and send server.csr to a CA to get signed. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=403&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a handy shell script for creating SSL certs for use in things like Apache, Exim, Dovecot, etc &#8211; it can handle creating a local certificate authority to self-sign as well if you aren&#8217;t using an official CA. In typical usage one would run makekey, makecsr and send server.csr to a CA to get signed. After receiving server.crt back, run makedh and makepem to make a nice single PEM file that can be used with most software.</p>
<p><pre class="brush: bash;">
#!/bin/sh

if [ $# -lt 2 ]; then
  echo &quot;This script takes 2 params&quot;
  echo
  echo &quot;$0 &lt;mode&gt; &lt;key filename&gt;&quot;
  echo
  exit 1
fi

SERVER=$2

case &quot;$1&quot; in
  makeca)
    /usr/bin/openssl genrsa -des3 -out ca.key 4096
    /usr/bin/openssl req -new -x509 -days 1825 -key ca.key -out ca.crt
    ;;
  makekey)
    /usr/bin/openssl genrsa -des3 2048 &gt; ${SERVER}.key.encrypted
    /usr/bin/openssl rsa -in ${SERVER}.key.encrypted -out ${SERVER}.key
    ;;
  makecsr)
    if [ ! -f ${SERVER}.key ]; then
      echo &quot;${SERVER}.key missing, run \&quot;$0 makekey\&quot; first.&quot;
      exit 1
    fi
    /usr/bin/openssl req -new -key ${SERVER}.key -out ${SERVER}.csr
    ;;
  signcrt)
    if [ ! -f ca.key ] || [ ! -f ca.crt ]; then
      echo &quot;ca.key missing, run \&quot;$0 makeca\&quot; first.&quot;
      exit 1
    fi
    if [ ! -f ${SERVER}.csr ]; then
      echo &quot;${SERVER}.csr missing, run \&quot;$0 makecsr\&quot; first.&quot;
      exit 1
    fi
    /usr/bin/openssl x509 -req -days 1825 -in ${SERVER}.csr -CA ca.crt \
      -CAkey ca.key -set_serial 01 -out ${SERVER}.crt
    ;;
  makedh)
    /bin/dd if=/dev/urandom of=ssldh.rand count=1 2&gt;/dev/null
    /usr/bin/openssl gendh -rand ssldh.rand 512 &gt; ${SERVER}.dh
    ;;
  makepem)
    if [ ! -f ${SERVER}.key ]; then
      echo &quot;${SERVER}.key missing, run \&quot;$0 makekey\&quot; first.&quot;
      exit 1
    fi
    if [ ! -f ${SERVER}.crt ]; then
      echo &quot;${SERVER}.crt missing, obtain from CA or run \&quot;$0 signcrt\&quot; first.&quot;
      exit 1
    fi
    cat ${SERVER}.key &gt; ${SERVER}.pem
    cat ${SERVER}.crt &gt;&gt; ${SERVER}.pem
    ;;
  *)
    echo
    echo $&quot;Usage: $0 {makeca|makekey|makecsr|signcrt|makedh|makepem} &lt;key filename&gt;&quot;
    echo
    exit 2
esac

exit 0
</pre></p>
<p>Enjoy!</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/category/scripting/'>Scripting</a>, <a href='https://tacticalvim.wordpress.com/category/servers/'>Servers</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/apache/'>apache</a>, <a href='https://tacticalvim.wordpress.com/tag/certificate/'>certificate</a>, <a href='https://tacticalvim.wordpress.com/tag/crt/'>crt</a>, <a href='https://tacticalvim.wordpress.com/tag/csr/'>csr</a>, <a href='https://tacticalvim.wordpress.com/tag/dovecot/'>dovecot</a>, <a href='https://tacticalvim.wordpress.com/tag/exim/'>exim</a>, <a href='https://tacticalvim.wordpress.com/tag/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/tag/openssl/'>openssl</a>, <a href='https://tacticalvim.wordpress.com/tag/ssl/'>ssl</a>, <a href='https://tacticalvim.wordpress.com/tag/x509/'>x509</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/403/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=403&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2010/06/20/sslkeygen-sh-complete-ssl-cert-creation-helper-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
		<item>
		<title>fix your MyTouch 3G Slide messed up SD card</title>
		<link>https://tacticalvim.wordpress.com/2010/06/06/fix-your-mytouch-3g-slide-messed-up-sd-card/</link>
		<comments>https://tacticalvim.wordpress.com/2010/06/06/fix-your-mytouch-3g-slide-messed-up-sd-card/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 11:44:35 +0000</pubDate>
		<dc:creator>troyengel</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Cellphones]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[fat32]]></category>
		<category><![CDATA[lba]]></category>
		<category><![CDATA[microsd]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[mytouch]]></category>
		<category><![CDATA[parted]]></category>
		<category><![CDATA[slide]]></category>

		<guid isPermaLink="false">http://tacticalvim.wordpress.com/?p=394</guid>
		<description><![CDATA[The same sort of problem I had with the G1 (see fix your G1 Android messed up SD card), my new MyTouch 3G Slide 8gig SD card would not mount on my linux laptop. After following the wrong trail thinking it was something wrong with HAL/udev/Nautilus it turns out to be the same as before [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=394&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The same sort of problem I had with the G1 (see <a href="/2008/11/11/fix-your-g1-android-messed-up-sd-card/">fix your G1 Android messed up SD card</a>), my new MyTouch 3G Slide 8gig SD card would not mount on my linux laptop. After following the wrong trail thinking it was something wrong with HAL/udev/Nautilus it turns out to be the same as before &#8211; bad SD card format.</p>
<p>This time the problem is the card is shipped with a type &#8216;b&#8217; partition (W95 FAT32) and not a type &#8216;c&#8217; partition (W95 FAT32 LBA). To solve this is the same process as the previous post, repeated here for clarity:</p>
<p><strong>NOTE</strong>: please, be sure you&#8217;re working on the SD card and not your hard drive</p>
<p><strong>Step 1</strong>: power off the phone and remove the microSD card from the slot. Now insert this microSD chip into one of the larger SD cards (this did not come with the phone &#8211; I have a bunch of these from other microSD cards, if you don&#8217;t have one I&#8217;m sure one of your coworkers does).</p>
<p><strong>Step 2</strong>: insert the SD card into a reader, and if you&#8217;re lucky it will mount fine &#8211; mine did. This allowed me to copy off all the pre-loaded content that T-Mobile had given me, but really isn&#8217;t that important. If the card doesn&#8217;t mount then you really can&#8217;t do this part. Make sure to unmount the card before proceeding.</p>
<p><strong>Step 3</strong>: figure out the linux block device name of your card; this will depend on the card reader you have &#8211; there is no one name I can give you. In my case I was using a builtin reader in the laptop, the device was /dev/mmcblk0p1 &#8211; in many cases it will show up as a scsi disk such as /dev/sdc or something. How you get this info easily is one of two ways &#8212; if the card mounted, then just type &#8220;df -h&#8221; and it&#8217;s listed right there. If it didn&#8217;t mount in the above step, then look at /var/log/messages to get the name the linux kernel gave to this device.</p>
<p><strong>Step 4</strong>: start &#8216;parted&#8217; with the name of this device *without* the partition name. If the &#8216;df -h&#8217; above gave you /dev/sdc1, then you remove the &#8217;1&#8242; (partition) and the device itself is /dev/sdc. In my case, the system put a &#8220;p1&#8243; on the end which I removed which left me with /dev/mmcblk0. I started parted then like so:</p>
<p><code></p>
<pre>
    # parted /dev/mmcblk0
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print
    Model: SD SU08G (sd/mmc)
    Disk /dev/mmcblk0: 7948MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type     File system  Flags
     1      4194kB  7948MB  7944MB  primary  fat32
</pre>
<p></code></p>
<p><strong>Step 5</strong>: after ensuring you&#8217;re actually using the SD card (check the output, type &#8216;print&#8217;) type the command &#8220;mklabel&#8221;. The parted tool will warn you that you are about to destroy the content, say Yes. Then it will ask you for the name of the label &#8211; type &#8220;msdos&#8221; as that is the proper answer for this SD card.</p>
<p><code></p>
<pre>
    (parted) mklabel
    New disk label type? msdos
    Warning: The existing disk label on /dev/mmcblk0 will be destroyed and all data
    on this disk will be lost. Do you want to continue?
    Yes/No? Yes
</pre>
<p></code></p>
<p><strong>Step 6</strong>: type &#8220;print&#8221; to show the partition table (it will be blank), what you&#8217;re looking for is the size of the card as parted sees it. This is a line that looks like:</p>
<p><code></p>
<pre>
    (parted) print
    Model: SD SU08G (sd/mmc)
    Disk /dev/mmcblk0: 7948MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start  End  Size  Type  File system  Flags
</pre>
<p></code></p>
<p><strong>Step 7</strong>: type the appropriate &#8216;mkpartfs&#8217; command using the above disk size to make it one single big fat16 partition, like so:</p>
<p><code></p>
<pre>
    (parted) mkpartfs primary fat32 0 7948MB
</pre>
<p></code></p>
<p>Tip: type &#8220;print&#8221; again and it should show one partition taking the whole disk.</p>
<p><code></p>
<pre>
    (parted) print
    Model: SD SU08G (sd/mmc)
    Disk /dev/mmcblk0: 7948MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start  End     Size    Type     File system  Flags
     1      512B   7948MB  7948MB  primary  fat32        lba
</pre>
<p></code></p>
<p><strong>Step 8</strong>: type &#8220;quit&#8221; to leave parted.</p>
<p><strong>Step 9</strong>: type &#8220;mkfs.vfat /dev/mmcblk0p1&#8243; (or /dev/sdc1, or whatever the proper device name is of your block device and partition you just made) to quickly make the filesystem on it.</p>
<p><code></p>
<pre>
    # mkfs.vfat /dev/mmcblk0p1
</pre>
<p></code></p>
<p><strong>Step 10</strong>: mount the SD card (just take it out and stick it back in in most modern Linux like Fedora or Ubuntu) and copy the old content back onto the card, if needed. I have uploaded the contents of my Slide SD card (unmodified) for everyone who wants the original content:</p>
<p><a href="http://www.megaupload.com/?d=4GPF7WO5">MyTouch 3G Slide SD Card</a><br />
(megaupload.com, MD5: 88079181eb7f29df58cb7056a2ee7342  SlideSD.zip)</p>
<p>Unzip that back onto your reformatted card and it&#8217;s &#8220;factory&#8221; new.</p>
<br />Filed under: <a href='https://tacticalvim.wordpress.com/category/android/'>Android</a>, <a href='https://tacticalvim.wordpress.com/category/cellphones/'>Cellphones</a>, <a href='https://tacticalvim.wordpress.com/category/linux/'>Linux</a> Tagged: <a href='https://tacticalvim.wordpress.com/tag/android/'>Android</a>, <a href='https://tacticalvim.wordpress.com/tag/fat32/'>fat32</a>, <a href='https://tacticalvim.wordpress.com/tag/lba/'>lba</a>, <a href='https://tacticalvim.wordpress.com/tag/linux/'>Linux</a>, <a href='https://tacticalvim.wordpress.com/tag/microsd/'>microsd</a>, <a href='https://tacticalvim.wordpress.com/tag/mount/'>mount</a>, <a href='https://tacticalvim.wordpress.com/tag/mytouch/'>mytouch</a>, <a href='https://tacticalvim.wordpress.com/tag/parted/'>parted</a>, <a href='https://tacticalvim.wordpress.com/tag/slide/'>slide</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tacticalvim.wordpress.com/394/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tacticalvim.wordpress.com/394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tacticalvim.wordpress.com/394/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tacticalvim.wordpress.com&amp;blog=9625601&amp;post=394&amp;subd=tacticalvim&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://tacticalvim.wordpress.com/2010/06/06/fix-your-mytouch-3g-slide-messed-up-sd-card/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/07c6494de6c1ce5459ef33bd63b60d2b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troyengel</media:title>
		</media:content>
	</item>
	</channel>
</rss>
