<?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/"
	>

<channel>
	<title>Tech Haus</title>
	<atom:link href="http://techha.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://techha.us</link>
	<description>House of Tech</description>
	<lastBuildDate>Tue, 28 Sep 2010 14:14:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PowerCLI Quick One-liner: List VMs, Current Datastore, and Total HD size</title>
		<link>http://techha.us/2010/09/powercli-quick-one-liner-list-vms-current-datastore-and-total-hd-size/</link>
		<comments>http://techha.us/2010/09/powercli-quick-one-liner-list-vms-current-datastore-and-total-hd-size/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 14:14:50 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techha.us/2010/09/powercli-quick-one-liner-list-vms-current-datastore-and-total-hd-size/</guid>
		<description><![CDATA[I wrote this quick one-liner when I was tasked to perform an audit of our VMs in a specified cluster to determine if they could be moved to a different LUN. The current setup, although functional, doesn’t truly utilize our Clarion’s two types of drives effectively (SATA, SCSI). This script is just the first step [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this quick one-liner when I was tasked to perform an audit of our VMs in a specified cluster to determine if they could be moved to a different LUN. The current setup, although functional, doesn’t truly utilize our Clarion’s two types of drives effectively (SATA, SCSI). This script is just the first step in our plan to reclaim the various LUNs and implement a more cost-effective layout.</p>
<p>Note that this may not be a true one-liner as it requires a few variables that I have stored in my profile:</p>
<h3>Code</h3>
<p><font face="Consolas" color="#c0c0c0">[<font color="#00ff00">vSphere PowerCLI</font>] D:\&gt; $HDPrimarySize = @{       <br />&gt;&gt;&#160;&#160;&#160;&#160; Name = &quot;Primary HD Size (GB)&quot;       <br />&gt;&gt;&#160;&#160;&#160;&#160; Expression = { $_.HardDisks[0].CapacityKB / 1MB }       <br />&gt;&gt; }       <br />&gt;&gt; $HDSecondarySize = @{       <br />&gt;&gt;&#160;&#160;&#160;&#160; Name = &quot;Secondary HD Size(GB)&quot;       <br />&gt;&gt;&#160;&#160;&#160;&#160; Expression = { $_.HardDisks[1].CapacityKB / 1MB }       <br />&gt;&gt; }       <br />&gt;&gt; $TotalHD = @{       <br />&gt;&gt;&#160;&#160;&#160;&#160; Name = &quot;Total HD Capacity&quot;       <br />&gt;&gt;&#160;&#160;&#160;&#160; Expression = { ($_.HardDisks[1].CapacityKB / 1MB) + ($_.HardDisks[0].CapacityKB / 1MB)}       <br />&gt;&gt; }       <br />&gt;&gt;</font></p>
<p><font face="Consolas" color="#c0c0c0">[<font color="#00ff00">vSphere PowerCLI</font>] D:\&gt; get-cluster MyCluster | get-vm | select Name, @{N=”Datastore”;E={Get-Datastore –VM $_}},$TotalHD | sort Datastore | Export-CSV vms.csv</font></p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2010/09/powercli-quick-one-liner-list-vms-current-datastore-and-total-hd-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity + vmware-unity-helper = Parallels for Ubuntu</title>
		<link>http://techha.us/2010/08/unity-vmware-unity-helper-parallels-for-ubuntu/</link>
		<comments>http://techha.us/2010/08/unity-vmware-unity-helper-parallels-for-ubuntu/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 15:32:22 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techha.us/2010/08/unity-vmware-unity-helper-parallels-for-ubuntu/</guid>
		<description><![CDATA[Technorati Tags: VMware,Unity,Ubntu A friend of mine has parallels for OSX on his macbook. It is fairly cool – having a Windows-only program appear to be running natively in OSX. With parallels, there’s no need to dual boot – just use your favorite OS (OSX) and your favorite windows apps seamlessly. This enabled my co-worker [...]]]></description>
			<content:encoded><![CDATA[<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:41852dee-b736-4189-9518-f87c33987dc4" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/VMware" rel="tag">VMware</a>,<a href="http://technorati.com/tags/Unity" rel="tag">Unity</a>,<a href="http://technorati.com/tags/Ubntu" rel="tag">Ubntu</a></div>
<p>A friend of mine has parallels for OSX on his macbook. It is fairly cool – having a Windows-only program appear to be running natively in OSX. With parallels, there’s no need to dual boot – just use your favorite OS (OSX) and your favorite windows apps seamlessly. This enabled my co-worker to open up VMware’s vSphere Infrastructure Client from within OSX – something that normally takes a ton of configuration and hacking to accomplish.</p>
<p>I was a little jealous that my Ubuntu 10.04 LTS couldn’t do the same… or could it?</p>
<p>I recently passed my VMware Certified Professional 4 exam and as part of the congratulatory package from VMware, I received a copy of VMware Workstation 7 for free. I choose the Linux flavor because that’s what I prefer to use as my primary OS. I fired up a VM of XP, and started tinkering around when I came upon the Unity feature. For supported VMs with VMware tools installed, Unity will allow you to interact with the guest OS/programs as if they were native to the host. Behold!</p>
<p><a href="http://techha.us/wp-content/uploads/2010/08/Screenshot.png"><img title="Screenshot" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="139" alt="Screenshot" src="http://techha.us/wp-content/uploads/2010/08/Screenshot_thumb.png" width="244" border="0" /></a> </p>
<p>(That’s the XP system information window sitting on top of a Linux console running top, on top of the Windows Live Writer program)</p>
<p>Unfortunately, to get to this point, I had to manually start the XP VM, then wait for VMware tools to start up before I was able to manually click the Unity button. It’s a boring, repetitive process – so like most things, I decided to see if I could script it somehow.</p>
<h1>Enter vmware-unity-helper</h1>
<p>I came upon the vmware-unity-helper tool somewhere in the VMware Communities. The question was asked, “How can I get a VM to automatically start with my OS” and the unity helper tool was mentioned in passing. A bit of Googling later and I had my answer.</p>
<p><font face="Courier" color="#ffffff" size="2">vmware-unity-helper &#8211;run /path/to/vmx-file/vm.vmx &quot;c://path//to//program.exe&quot;</font></p>
<p>This command will attempt to run the specified program in the VM specified by the vmx configuration file. If the VM isn’t running, it will automatically start it, and when VMware tools starts up, the program is run.</p>
<p>To make my life a little easier, I created a <strong>very</strong> simple bash script that would run the vSphere client.</p>
<p><a href="http://techha.us/wp-content/uploads/2010/08/Screenshot1.png"><img title="Screenshot1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="246" alt="Screenshot1" src="http://techha.us/wp-content/uploads/2010/08/Screenshot1_thumb.png" width="496" border="0" /></a></p>
<p>After marking the script as executable, I can now run it and have the Infrastructure Client running “natively” in Ubuntu!</p>
<p><a href="http://techha.us/wp-content/uploads/2010/08/Screenshot11.png"><img title="Screenshot-1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="183" alt="Screenshot-1" src="http://techha.us/wp-content/uploads/2010/08/Screenshot1_thumb1.png" width="323" border="0" /></a></p>
</p>
<p>The only downside is that I can’t seem to fully maximize the windows… they seem to only maximize to the top portion of the screen. It may be related to guest resolution, but I’m not certain. For now, manually resizing is sufficient for my needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2010/08/unity-vmware-unity-helper-parallels-for-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sudo for Powershell</title>
		<link>http://techha.us/2010/05/sudo-for-powershell/</link>
		<comments>http://techha.us/2010/05/sudo-for-powershell/#comments</comments>
		<pubDate>Tue, 25 May 2010 16:51:21 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techha.us/?p=129</guid>
		<description><![CDATA[Today I discovered I had written a script that required admin rights (restarting a Windows service). I began looking into options for the Linux equivalent of sudo and came upon these two pages: Link 1, Link 2. Both describe simplified ways of trying to launch an app from an elevated account (notepad, powershell, etc). However, [...]]]></description>
			<content:encoded><![CDATA[<p>Today I discovered I had written a script that required admin rights (restarting a Windows service). I began looking into options for the Linux equivalent of sudo and came upon these two pages: <a title="Link 1" href="http://tsukasa.jidder.de/blog/2008/03/15/scripting-sudo-with-powershell" target="_blank">Link 1</a>, <a title="Link 2" href="http://www.ainotenshi.org/%E2%80%98sudo%E2%80%99-for-powershell-sorta" target="_blank">Link 2</a>. Both describe simplified ways of trying to launch an app from an elevated account (notepad, powershell, etc). However, there were a few things missing. First, if I want to run an elevated powershell script I had to run</p>
<pre>sudo powershell</pre>
<p>, then once in the elevated prompt, cd to the directory and run the script</p>
<pre>.\services.ps1</pre>
<p>This obviously isn&#8217;t ideal &#8211; and the one source had a few mistakes with how the actual passed file was called (it didn&#8217;t deal well with the &#8220;.\&#8221; portion of a passed script.</p>
<p>I made some changes, added comments, and updated to allow for powershell scripts to be run with a simple flag &#8220;-ps&#8221;</p>
<p>Here&#8217;s the code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
</pre></td><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">## sudo.ps1</span>
<span style="color: #008000;">#</span>
<span style="color: #008000;"># Authors: pezhore, mrigns, This guy: http://tsukasa.jidder.de/blog/2008/03/15/scripting-sudo-with-powershell,</span>
<span style="color: #008000;">#             other powershell peoples</span>
<span style="color: #008000;">#</span>
<span style="color: #008000;"># Sources:</span>
<span style="color: #008000;">#       http://tsukasa.jidder.de/blog/2008/03/15/scripting-sudo-with-powershell</span>
<span style="color: #008000;">#       http://www.ainotenshi.org/%E2%80%98sudo%E2%80%99-for-powershell-sorta</span>
<span style="color: #008000;">#</span>
<span style="color: #008000;"># Version:</span>
<span style="color: #008000;">#       1.0     Initial version</span>
<span style="color: #008000;">#       1.1     added -ps flag, cleaned up passed $file/$script full path</span>
<span style="color: #008000;">#       1.2     Comments</span>
<span style="color: #008000;">#       1.3     Fixed passing working directory to powershell/auto closing</span>
&nbsp;
<span style="color: #0000FF;">param</span><span style="color: #000000;">&#40;</span>
        <span style="color: #000000;">&#91;</span><span style="color: #0000FF;">switch</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$ps</span><span style="color: pink;">,</span>               <span style="color: #008000;"># Switch for running args as powershell script</span>
        <span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$file</span><span style="color: pink;">,</span>             <span style="color: #008000;"># Script/Program to run</span>
        <span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$arguments</span> <span style="color: pink;">=</span> <span style="color: #000080;">$args</span> <span style="color: #008000;"># Arguments to program/script</span>
     <span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #008000;"># Find our powershell full path</span>
<span style="color: #800080;">$powershell</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">get-command</span> powershell<span style="color: #000000;">&#41;</span>.definition
&nbsp;
<span style="color: #008000;"># Get current directory</span>
<span style="color: #800080;">$dir</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">get-location</span>
&nbsp;
<span style="color: #008000;">#If we're running this as a elevated powershell script</span>
<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$ps</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
&nbsp;
        <span style="color: #008000;"># Script verification</span>
        <span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span>System.IO.File<span style="color: #000000;">&#93;</span>::Exists<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;$(get-location)\$file&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
                <span style="color: #008000;"># Set the $script to full path of the ps script</span>
                <span style="color: #800080;">$script</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">get-childitem</span> <span style="color: #800080;">$file</span><span style="color: #000000;">&#41;</span>.fullname
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #008000;"># Create a powershell process</span>
        <span style="color: #800080;">$psi</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">new-object</span> System.Diagnostics.ProcessStartInfo <span style="color: #800080;">$powershell</span>
&nbsp;
        <span style="color: #800080;">$psi</span>.WorkingDirectory <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-Location</span>
&nbsp;
        <span style="color: #008000;"># Combine the script and its arguments</span>
        <span style="color: #800080;">$sArgs</span> <span style="color: pink;">=</span> <span style="color: #800080;">$script</span> <span style="color: pink;">+</span> <span style="color: #800000;">&quot; &quot;</span> <span style="color: pink;">+</span> <span style="color: #800080;">$arguments</span>
&nbsp;
        <span style="color: #008000;"># Set the arguments to be the ps script and it's arguments</span>
        <span style="color: #800080;">$psi</span>.Arguments <span style="color: pink;">=</span> <span style="color: #800000;">&quot;-noexit -command set-location $dir; $sArgs&quot;</span>
&nbsp;
        <span style="color: #008000;"># Magic to run as elevated</span>
        <span style="color: #800080;">$psi</span>.Verb <span style="color: pink;">=</span> <span style="color: #800000;">&quot;runas&quot;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008000;"># We're running something other than a powershells script</span>
<span style="color: #0000FF;">else</span> <span style="color: #000000;">&#123;</span>
&nbsp;
        <span style="color: #008000;"># File verification</span>
        <span style="color: #0000FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span>System.IO.File<span style="color: #000000;">&#93;</span>::Exists<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;$(get-location)\$file&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
                <span style="color: #008000;"># Get full path</span>
                <span style="color: #800080;">$file</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #008080; font-weight: bold;">get-childitem</span> <span style="color: #800080;">$file</span><span style="color: #000000;">&#41;</span>.fullname
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #008000;"># Same as above, create proccess/working directory/arguments/runas</span>
        <span style="color: #800080;">$psi</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">new-object</span> System.Diagnostics.ProcessStartInfo <span style="color: #800080;">$file</span>
        <span style="color: #800080;">$psi</span>.Arguments <span style="color: pink;">=</span> <span style="color: #800080;">$arguments</span>
        <span style="color: #800080;">$psi</span>.Verb <span style="color: pink;">=</span> <span style="color: #800000;">&quot;runas&quot;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008000;"># Start the process</span>
<span style="color: #000000;">&#91;</span>System.Diagnostics.Process<span style="color: #000000;">&#93;</span>::Start<span style="color: #000000;">&#40;</span><span style="color: #800080;">$psi</span><span style="color: #000000;">&#41;</span></pre></td></tr></table></div>

<p>I added an alias in my profile and sudo was born:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008080; font-weight: bold;">New-Alias</span> <span style="color: #008080; font-style: italic;">-name</span> sudo <span style="color: #800000;">'d:\git-code\Powershell\ps_misc\sudo.ps1'</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://techha.us/2010/05/sudo-for-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun thing of today: Powershell and VMware &#8211; Part 1</title>
		<link>http://techha.us/2010/05/fun-thing-of-today-powershell-and-vmware-part-1/</link>
		<comments>http://techha.us/2010/05/fun-thing-of-today-powershell-and-vmware-part-1/#comments</comments>
		<pubDate>Wed, 19 May 2010 15:15:33 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://techha.us/?p=119</guid>
		<description><![CDATA[Today&#8217;s fun thing: utilizing powershell to test stuff in VMware. There are a few cool things I have been able to piece together with Powershell and VMware -hopefully some of those will make it into a brief series. I wrote two scripts to help with testing the various VLANs that were necessary for our VMs. [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s fun thing: utilizing powershell to test stuff in VMware. There are a few cool things I have been able to piece together with Powershell and VMware -hopefully some of those will make it into a brief series.</p>
<div>I wrote two scripts to help with testing the various VLANs that were necessary for our VMs. (Really less scripts and more basic functions)</div>
<h2>Function 1: PowerCLI</h2>
<pre><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-weight: normal; line-height: 18px; font-size: 12px; white-space: pre;">$vm = get-vm testVM
$VLANs = "3","5","08","09","11","18","22","35","59","106","112","201","202","222"
foreach ($vlan in $VLANs){
     $vm |Get-NetworkAdapter|Set-NetworkAdapter -networkname "VLAN $vlan" -Confirm:$false
     write-host "Press any key to continue..."
     $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}</span></pre>
<h2>Function 2: Testing VM</h2>
<pre>$VLANs = "3","5","08","09","11","18","22","35","59","106","112","201","202","222"
foreach ($vlan in $VLANS) {
     .\set-StaticIP.ps1 -ip 10.10.$vlan.254 -gtw 10.1.$vlan.254
     start-sleep 5
     $ping = new-object System.Net.NetworkInformation.Ping
     $rslt = $ping.send("10.10.3.3")
     if ($rslt.status.tostring() -eq "Success"){
          write-host "Vlan $vlan tested ok"
     }
     else {​
          write-host "Vlan $vlan ping test failed"
     }
     write-host "Press any key to continue..."
     $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}</pre>
<h2>Script 1: set-StaticIP.ps1</h2>
<pre>param(  [string]$ip,
     [string]$mask = "255.255.255.0",
     [string]$gtw = "192.168.1.254",
     [string]$dns1 = "192.168.1.1",
     [st​ring]$dns2
     )
$NICs = Get-WMIObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "TRUE"}
Foreach($NIC in $NICs) {
     if ($ip){
          $no = $NIC.EnableStatic($ip, $mask)
     }
     $no = $NIC.SetGateways($gtw)
     if($dns2){
          $dns ="$dns1,$dns2"
     }
     $no = $NIC.SetDNSServerSearchOrder($dns)
     $no = $NIC.SetDynamicDNSRegistration("FALSE")
}</pre>
<h2>Explanation</h2>
<div id="_mcePaste">Function1 is started first using PowerCLI (after connecting to the appropriate ESX host). It configures the specified VM&#8217;s network adapter to be on the first VLAN, then pauses. After the vmnic is configured properly, Function2 is run on the testVM in powershell. This utilizes the set-StaticIP.ps1 script and configures the IP address to match the specified VLAN, then attempts a ping against MSIDI001 (This machine should be pingable from all the testing VLANS. If the ping is successful, it is indicated that the VLAN tested ok, if not, the failure is stated. After the result is noted, any key is pressed in PowerCLI to set the vmnic to the next VLAN. After it has been configured, any key is pressed in Fuction2 to set the new IP for testVM (the ping test then takes place on this new VLAN). This is repeated until all VLANs have been tested.</div>
<div>This is much quicker than manually assigning IPs or setting VLAN membership in VMware&#8217;s Infrastructure Client.</div>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2010/05/fun-thing-of-today-powershell-and-vmware-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mashups</title>
		<link>http://techha.us/2009/07/mashup/</link>
		<comments>http://techha.us/2009/07/mashup/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 19:24:53 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[mashup]]></category>

		<guid isPermaLink="false">http://techha.us/?p=114</guid>
		<description><![CDATA[Sorry for the incredibly lack of updates lately. Between an extended 4th of July vacation and craziness at work/home, I&#8217;ve been a bit swamped. Switching gears a bit from purely tech topics, I&#8217;d like to devote an entry to mashups. For those not in the know, mashups are the result of skillful merging of two [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry for the incredibly lack of updates lately. Between an extended 4th of July vacation and craziness at work/home, I&#8217;ve been a bit swamped.</p>
<p>Switching gears a bit from purely tech topics, I&#8217;d like to devote an entry to mashups. For those not in the know, mashups are the result of skillful merging of two or more distinct songs into a single musical piece. Sometimes the merger does little more than add a different beat, however skilled DJs can create songs that are virtually new creations of their own right.</p>
<p>There are several examples of excellent mashup collections, most notably the &#8220;<a href="http://www.bootieusa.com/bestofbootie2008/">Best of Bootie</a>&#8221; (2008), a yearly collection of mashups from across the world. The music is often available for free to download. I myself haven&#8217;t had the pleasure of attending a Bootie mashup event, but the CDs and various mp3s are perhaps a decent substitute. Just today I came upon a few new sites that offer free mashup downloads. <a href="http://www.mashuptown.com">Mashuptown</a> is a semiweekly blog that posts individual tracks as well as full albums from mashup artists. There&#8217;s a place for producers to submit their mashups. I found <a href="http://www.totom.dj/index.php?2009/06/19/82-dylan-mashed">Dylan Mashed</a> on Mashuptown recently and its been playing since.</p>
<p><a href="http://www.bootieusa.com/blog/">Bootie USA</a> is yet another blog that showcases mashups on a regular basis. Every month, Bootie USA releases their Top10 for the month &#8211; like DJ Lobsterdust&#8217;s &#8220;Hot Maus&#8221;(Van Halen vs. Deadmau5).</p>
<p>Mashups are an intriguing emerging trend in music and offer a unique listening experience.</p>
<p>I&#8217;m working on some more techie stuff for the future, but for now, head out to your nearest mashup site and snag some music.</p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/07/mashup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android VPN &#8211; VPNC</title>
		<link>http://techha.us/2009/06/android-vpn-vpnc/</link>
		<comments>http://techha.us/2009/06/android-vpn-vpnc/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 16:18:29 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[G1]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://techha.us/?p=83</guid>
		<description><![CDATA[I work in the IT department and we&#8217;re just rolling out Cisco VPN (with dongles) to replace our older ISA VPN. Seeing as my G1 is the first &#8220;smart&#8221; phone I&#8217;ve ever owned, I thought I&#8217;d get it setup to VPN in to work (So I could use the Android App Remote RDP). Unfortuantely it [...]]]></description>
			<content:encoded><![CDATA[<p>I work in the IT department and we&#8217;re just rolling out Cisco VPN (with dongles) to replace our older ISA VPN. Seeing as my G1 is the first &#8220;smart&#8221; phone I&#8217;ve ever owned, I thought I&#8217;d get it setup to VPN in to work (So I could use the Android App <a href="http://www.cyrket.com/package/org.toremote.serversmanager">Remote RDP</a>). Unfortuantely it didn&#8217;t appear to be a simple app available to accomplish this feat. About two weeks ago, I stumbled upon <a href="http://ubergeeky.com/blog/110-connect-to-cisco-vpn-from-android">this page</a> which described how to configure vpn for Android. Using those directions (with help from the xda developer&#8217;s forum <a href="http://forum.xda-developers.com/showpost.php?p=3814574&amp;postcount=27">here</a>) I was able to get VPN&#8217;ed into work, and RDP&#8217;ed to my workstation. Here&#8217;s what I did.</p>
<h3>Requirements</h3>
<ul>
<li>A rooted G1 with the tun module available (I used <a href="http://jf.andblogs.net/2009/05/24/jfv151-images-are-out/">JF 1.51</a>)</li>
<li>JF&#8217;s Terminal Emulator (included with JF 1.51)</li>
<li>Remote RDP</li>
<li>Linux knowledge (optional)</li>
</ul>
<h3>Setup</h3>
<ol>
<li>Download the Get-a-Robot VPNC bz2 file from <a href="http://code.google.com/p/get-a-robot-vpnc/downloads/list">google code</a></li>
<li>Extract the archive (if on Linux you can use bunzip2, in Windows 7-zip works well) to a known folder. I extracted to c:\android-vpn\
<ul>
<li> Note: I did the bulk of this on Windows, but if you&#8217;re smart you can translate this to Linux</li>
</ul>
</li>
<li>Open <strong>vpnc.conf</strong> located in <strong>./data/data/org.codeandroid.vpnc/etc/vpnc/</strong></li>
<li>Edit the file with information from your Cisco .pcf file. Below is the mapping of variables for <span style="color: #993300;">vpnc.conf</span> to <strong>YourFile.pcf</strong>.
<ul>
<li><span style="color: #993300;">IPSec gateway</span> = <strong>Host</strong></li>
<li><span style="color: #993300;">IPSec ID</span> =<strong>GroupName</strong></li>
<li><span style="color: #993300;">IPSec secret</span> = <strong>GroupPwd</strong> (or if GroupPwd is blank, you&#8217;ll have to decrypt the <strong>enc_GroupPwd</strong> variable as shown below)</li>
<li><span style="color: #993300;">Xauth username</span> = Your login username</li>
<li><span style="color: #993300;">Xauth password</span><span style="color: #000000;"> </span>= Nothing. Leave this blank to have VPNC prompt you for your password every time.</li>
</ul>
<p>My vpnc.conf file (sanitized and with the wrong username):</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-87" title="vpnc_config" src="http://techha.us/wp-content/uploads/2009/06/vpnc_config.PNG" alt="vpnc_config" width="397" height="156" /></p>
</li>
<li>Edit the <strong>vpnc-script</strong> and change the first line from <span style="color: #3366ff;"><em>#!/system/bin/bash</em></span> to <span style="color: #3366ff;"><em>#!/system/bin/sh</em></span></li>
<li>Open a command prompt and push the files using <strong>adb push x:\path\to\data /</strong>, copying the edited script and config file to the root of your G1.<strong><img class="aligncenter size-full wp-image-90" title="vpnc_push" src="http://techha.us/wp-content/uploads/2009/06/vpnc_push.PNG" alt="vpnc_push" width="677" height="274" /></strong></li>
<li>Mount the microSDHC card and create a new folder in its root called vpnc.</li>
<li>Create two files: <strong>go</strong> and <strong>prep<br />
</strong>go should contain this one line:<br />
<em><span style="color: #c0c0c0;"><code>/data/data/org.codeandroid.vpnc/bin/vpnc /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc.conf --script /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-script --pid-file /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-pid --no-detach --debug 1</code></span></em><strong> </strong></p>
<p><strong> </strong>prep contains a few lines:<br />
<em><span style="color: #c0c0c0;"><code>modprobe tun<br />
lsmod<br />
mkdir /dev/net<br />
ln -s /dev/tun /dev/net/tun</code></span></em></li>
<li>Unmount the microSDHC card and then fire up terminal emulator &#8211; we need to chmod a few files to make things work.<br />
<em><span style="color: #c0c0c0;"><code>chmod 777 /data/data/org.codeandroid.vpnc/bin/vpnc<br />
chmod 777 /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-script</code></span></em></li>
</ol>
<h3>Starting the VPN</h3>
<ol>
<li>In Terminal Emulator type <strong>su</strong> to get root access (Approve if it prompts you to grant permission)</li>
<li>As root (designated by the &#8220;#&#8221; prompt) run <strong>cd /sdrom/vpnc</strong></li>
<li>Run <strong>sh prep</strong> (Note: this is only required once each time you reboot your phone)</li>
<li>To start the VPN, run <strong>sh go</strong>. It will prompt your for your password, then attempt to connect:<br />

<div class="ngg-galleryoverview" id="ngg-gallery-2-83">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://techha.us/2009/06/android-vpn-vpnc/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://techha.us/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=2&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-12" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/vpnc/vpnc_prep.png" title=" " class="shutterset_set_2" >
								<img title="vpnc_prep" alt="vpnc_prep" src="http://techha.us/wp-content/gallery/vpnc/thumbs/thumbs_vpnc_prep.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-11" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/vpnc/vpnc_login.png" title=" " class="shutterset_set_2" >
								<img title="vpnc_login" alt="vpnc_login" src="http://techha.us/wp-content/gallery/vpnc/thumbs/thumbs_vpnc_login.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-14" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/vpnc/vpnc_setup.png" title=" " class="shutterset_set_2" >
								<img title="vpnc_setup" alt="vpnc_setup" src="http://techha.us/wp-content/gallery/vpnc/thumbs/thumbs_vpnc_setup.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-10" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/vpnc/vpnc_connected.png" title=" " class="shutterset_set_2" >
								<img title="vpnc_connected" alt="vpnc_connected" src="http://techha.us/wp-content/gallery/vpnc/thumbs/thumbs_vpnc_connected.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

</li>
<li>You can then click the back button to leave the vpn connection running and fire up Remote<br />
<img class="aligncenter size-full wp-image-99" title="vpnc_remote" src="http://techha.us/wp-content/uploads/2009/06/vpnc_remote.png" alt="vpnc_remote" width="480" height="320" /></li>
<li>To close the VPN, reopen Terminal Emulator, and if it&#8217;s still up and running, send the interrupt (ctrl-c) by clicking and holding the mouse ball, then pressing &#8216;c&#8217;</li>
<li>If the vpn is not still running, you can find the process ID number by running <strong>ps</strong> and looking for <strong>/data/data/org/codeandroid.vpnc/bin/vpnc</strong>.<br />
<img class="aligncenter size-full wp-image-109" title="vpnc_kill" src="http://techha.us/wp-content/uploads/2009/06/vpnc_kill1.png" alt="vpnc_kill" width="480" height="320" /></li>
<li>Kill the process by running <strong>kill -9 [pid]</strong>, (in our example <strong>kill -9 1896</strong>)</li>
</ol>
<h3>Final Thoughts</h3>
<p>Although this isn&#8217;t ideal for an extended VPN connection, if combinded with tethering (something I&#8217;m working on next), it could become quite powerful. For quick checks, this works quite well.</p>
<p>Sources:<br />
<a href="http://forum.xda-developers.com/showpost.php?p=3814574&amp;postcount=27">xda-developer&#8217;s forum</a><br />
<a href="http://ubergeeky.com/blog/110-connect-to-cisco-vpn-from-android">Uber Geeky post</a><br />
<a href="http://code.google.com/p/get-a-robot-vpnc/">Get-A-Robot-VPNC Google Code Page</a></p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/06/android-vpn-vpnc/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New theme</title>
		<link>http://techha.us/2009/06/new-theme/</link>
		<comments>http://techha.us/2009/06/new-theme/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 20:37:20 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[der tech haus]]></category>

		<guid isPermaLink="false">http://techha.us/?p=73</guid>
		<description><![CDATA[After looking around for a while, I think I&#8217;ve settled on this theme: TarouMag. Clean, slightly techie-ish, and green &#8211; I like green. I had to do a tiny bit of work with the logo using Paint.NET, my all-time favorite image editor. I think I may do a brief write up on that program as [...]]]></description>
			<content:encoded><![CDATA[<p>After looking around for a while, I think I&#8217;ve settled on this theme: <a href="http://topwpthemes.com/taroumag/">TarouMag</a>. Clean, slightly techie-ish, and green &#8211; I like green. I had to do a tiny bit of work with the logo using <a href="http://www.getpaint.net/">Paint.NET</a>, my all-time favorite image editor. I think I may do a brief write up on that program as part of my continuing series App of the [unit of time].</p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/06/new-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating G1 Apps to SD</title>
		<link>http://techha.us/2009/06/migrating-g1-apps-to-sd/</link>
		<comments>http://techha.us/2009/06/migrating-g1-apps-to-sd/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 15:37:55 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[G1]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://techha.us/?p=33</guid>
		<description><![CDATA[After adding yet another app to my G1 I recieved my first &#8220;Low Disk Space&#8221; warning. I decided to see what options exist for moving the apps from internal storage to the SD card and found a few how-tos out there that describe the process. I ended up following the A2SD guide, with little problem. [...]]]></description>
			<content:encoded><![CDATA[<p>After adding yet another app to my G1 I recieved my first &#8220;Low Disk Space&#8221; warning. I decided to see what options exist for moving the apps from internal storage to the SD card and found a <a href="http://forums.tmonews.com/index.php?topic=7003.0"><strong>few</strong></a> <a href="http://code.google.com/p/android-roms/wiki/A2SD"><strong>how-tos</strong></a> out there that describe the process. I ended up following the <a href="http://code.google.com/p/android-roms/wiki/A2SD">A2SD</a> guide, with little problem.</p>
<p>The first step is to repartition your microSDHC card from one large Fat32 partition into two partitions: the first remains Fat32, the second is formated ext2. Since I don&#8217;t have a Linux box at work (and I was hoping to get this done over my lunch break), I fired up a VM and ran <a href="http://gparted.sourceforge.net/">GParted</a>, an open source Linux live CD that we use at work for resizing VM partitions. Using GParted, I was able to shrink the Fat32 partition from 4GB down to 3GB, and created the necessary ext2 partition from the remaining space. I should note that I used the phone as an microSDHC reader &#8211; it was on and functioning the entire time.</p>
<p>Since the Android SDK was already installed, the next step was relatively simple to complete. I fired up the command prompt on my Windows 7 box, and ran <strong><span style="font-family: Courier;">adb shell</span></strong> (this opens the shell on the phone).</p>
<p>To make sure the partition was correctly set, I ran <span style="font-family: Courier;"><strong>busybox df -h</strong></span> and verified that the ext2 partition was showing up in the mount table.</p>
<p><img class="alignnone size-full wp-image-70" title="App2SD_VerifyPartition" src="http://techha.us/wp-content/uploads/2009/06/App2SD_VerifyPartition.png" alt="App2SD_VerifyPartition" width="676" height="342" /></p>
<p>Since I only want to move the apps (not their cache) to the microSDHC card, I only had to run one command <span style="font-family: Courier;"><strong>busybox cp -a /data/app /system/sd</strong></span>. This copies all the existing app data from the phone storage over to the microSDHC card.</p>
<p>The next step didn&#8217;t appear to work for me&#8230; but for completeness sake:</p>
<p>I then booted my phone into the JF Recovery mode by shutting down my phone, then starting it up holding the <strong>Power </strong>and<strong> Home</strong> buttons. I pressed <strong>Alt-X</strong> to get to the phone&#8217;s terminal and ran the following commands:</p>
<p><span style="font-family: Courier;"><strong>mount data</strong></span><br />
<span style="font-family: Courier;"><strong>rm -rf /data/app</strong></span><br />
<span style="font-family: Courier;"><strong>ln -s /system/sd/app /data/app<br />
reboot</strong></span></p>
<p>I&#8217;m not sure what the first command does (mounts whatever device is mapped to <strong>data</strong> in the mountd.conf file I&#8217;d assume). The second command removes all apps from the phone. The next command creates a <a href="http://en.wikipedia.org/wiki/Symbolic_link">symlink</a> from the microSDHC partition to the directory Android is expecting the apps to be located. Lastly, the phone is rebooted.</p>
<p>When I did these steps, it didn&#8217;t take &#8211; the applications were still on my phone memory (as evidenced by the free space available). As I think back, I may have forgotten to mount data (but one would assume I would have gotten some errors while trying to delete the contents of /data/app. I verified the apps were still located in phone memory by once again plugging my phone in via USB and running <strong><span style="font-family: Courier;">adb shell</span></strong>. I reran the last three commands above (from <strong>rm -rf</strong> through to <strong>reboot</strong>) and everything had successfully moved off to the microSDHC card.</p>
<p>Now I&#8217;m running over 70 apps, and the phone actually appears to be responding faster.</p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/06/migrating-g1-apps-to-sd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PostBot: App of the [Unit of Time]</title>
		<link>http://techha.us/2009/06/postbot/</link>
		<comments>http://techha.us/2009/06/postbot/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 12:46:57 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[App of the...]]></category>

		<guid isPermaLink="false">http://techha.us/2009/06/app-of-the-insert-time-frame-here/</guid>
		<description><![CDATA[Today&#8217;s app is PostBot for android phones. I&#8217;ll be reviewing it on my G1. Postbot is designed to allow remote updating of wordpress blogs. Configuration Pretty straight forward&#8230; from the phone configuration. I didn&#8217;t realize that remote posting had to be enabled on the wordpress blog itself (although it sort of makes sense). Unfortunately the [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s app is PostBot for android phones. I&#8217;ll be reviewing it on my G1. Postbot is designed to allow remote updating of wordpress blogs.</p>
<p><strong>Configuration</strong><br />
Pretty straight forward&#8230; from the phone configuration. I didn&#8217;t realize that remote posting had to be enabled on the wordpress blog itself (although it sort of makes sense). Unfortunately the only indication that something was amiss was a very brief pop up java exception that hinted at checking the admin page.</p>
<p>Once I enabled remote posting, everything went swimmingly.</p>
<p><strong>Features</strong><br />
I haven&#8217;t fully utilized everything yet, but basic posting is fairly straight forward. You can add new categories &#8211; something that&#8217;s prettty cool (when it works). I had some timeout issues despite having 3 bars on the edge network.</p>
<p>In theory there&#8217;s also picture uploading, but I haven&#8217;t messed around with that too much.</p>
<p><strong>Screen Shots</strong></p>

<div class="ngg-galleryoverview" id="ngg-gallery-1-24">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://techha.us/2009/06/postbot/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://techha.us/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=1&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-2" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_basicpost.png" title="Basic functionality includes title and body text." class="shutterset_set_1" >
								<img title="postbot_basicpost" alt="postbot_basicpost" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_basicpost.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_choosecategory.png" title="Categories available are pulled from your wordpress site." class="shutterset_set_1" >
								<img title="postbot_choosecategory" alt="postbot_choosecategory" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_choosecategory.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_menu.png" title="Various options are available under the New/Edit post menu." class="shutterset_set_1" >
								<img title="postbot_menu" alt="postbot_menu" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_menu.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_selectpicture.png" title="Attaching a photo only allows for gallery photos. As of the version I tested, there wasn't functionality for pulling a new picture directly from the camera." class="shutterset_set_1" >
								<img title="postbot_selectpicture" alt="postbot_selectpicture" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_selectpicture.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-6" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_postwithpic.png" title="A picture is attached to this post." class="shutterset_set_1" >
								<img title="postbot_postwithpic" alt="postbot_postwithpic" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_postwithpic.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_saveorsubmit.png" title="You can either save or submit the post. Note that saving only saves to the camera memory, it doesn't upload as a draft." class="shutterset_set_1" >
								<img title="postbot_saveorsubmit" alt="postbot_saveorsubmit" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_saveorsubmit.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-9" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_submittingpost.png" title="PostBot offers insight into the post submitting process, including the progression of uploading media." class="shutterset_set_1" >
								<img title="postbot_submittingpost" alt="postbot_submittingpost" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_submittingpost.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-1" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_allposts.png" title="All submitted and saved posts are saved to the phone, this could be an issue depending on where they save the posts." class="shutterset_set_1" >
								<img title="postbot_allposts" alt="postbot_allposts" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_allposts.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-5" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://techha.us/wp-content/gallery/postbot/postbot_posted.png" title="This is how the post turned out on Tech Haus." class="shutterset_set_1" >
								<img title="postbot_posted" alt="postbot_posted" src="http://techha.us/wp-content/gallery/postbot/thumbs/thumbs_postbot_posted.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p><strong>Vertict</strong><br />
This might change as I start to use PostBot more often, but for right now I&#8217;m giving it an arbitrary 3 nickels out of a possible goose (pretty devent app). We&#8217;ll see if the time outs extend to posting new messages, or if any issues arrise from media manipulation.</p>
<p>Also, it&#8217;s worth noting that this entire post was typed up on my G1 using PostBot.</p>
<p><strong>Links<br />
</strong><a href="http://nickthecook.wordpress.com/">Developer&#8217;s blog</a><br />
<a href="http://www.cyrket.com/package/org.hopto.group18.postbot">Cyrket Page</a></p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/06/postbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>G1 InvisibleSHIELD Review</title>
		<link>http://techha.us/2009/06/g1-invisibleshield-review/</link>
		<comments>http://techha.us/2009/06/g1-invisibleshield-review/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 04:03:42 +0000</pubDate>
		<dc:creator>pezhore</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[G1]]></category>
		<category><![CDATA[invisibleShield]]></category>
		<category><![CDATA[Zagg]]></category>

		<guid isPermaLink="false">http://techha.us/?p=21</guid>
		<description><![CDATA[I purchased the Developer's G1 the second week in May 2009. I quickly installed Jesusfreke's cupcake build and started playing around with it. I also began looking at the various protective coverings (skins, cases, etc) to keep my G1 in immaculate condition. I settled on the Zagg InvisibleSHIELD...]]></description>
			<content:encoded><![CDATA[<p>I purchased the Developer&#8217;s G1 the second week in May 2009. I quickly installed Jesusfreke&#8217;s cupcake build and started playing around with it. I also began looking at the various protective coverings (skins, cases, etc) to keep my G1 in immaculate condition. I settled on the <a href="http://www.zagg.com/invisibleshield/t-mobile-g1-cases-screen-protectors-covers-skins-shields.php">Zagg InvisibleSHIELD</a> due in part to its claim to a &#8220;Military grade&#8221; scratch resistant cover. Price seemed a tiny bit steep ($26), but I figured if it managed to do the job and was as durable as other reviews claimed &#8211; it&#8217;d be worth it.</p>
<p>Judging from the reviews I found Zagg is one of three main types of skins currently available for the G1. The other two options are the RealCoolSkins and the BodyGuardz. Doing some preliminary research, the RCS and BG are made from a 3M product, whereas the Zagg is its own proprietary formula for its skin. The biggest complaint across the board is how difficult it is to properly install. As one reviewer put it, &#8220;You need the patience of a kindergarten teacher, and the hands of a surgeon.&#8221;</p>
<p>I have worked with <a href="http://pezhore.com/mywiki/wiimod">tedious</a> <a href="http://pezhore.com/mywiki/GameCubeMod">projects</a> in the <a href="http://pezhore.com/mywiki/EeePcLaptop">past</a>, so I assumed I could handle it. It arrived roughly 4 days after I ordered it online. Install time clocked in at roughly an hour and a half. The corners were a pain to install, but I was able to hold them in place using plastic wrap.  Some small bubbles were present immediately following the install, but as other reviews said &#8211; the bubbles disappeared. slight &#8220;orange peel&#8221; was visible in the days since.</p>
<p>I&#8217;ve attempted to purposely scratch the back, and couldn&#8217;t. There are some left over pieces from the install and I attempted to use my exacto knife to cut the scraps&#8230; only with significant pressure could I cut through. If my phone goes up against something like an exacto knife &#8211; nothing will protect it.<br />
<strong>Evaluation<br />
</strong>Was it worth the money? Hells yes. I&#8217;m no longer worried about keeping my phone in a separate pocket from my keys. The touchscreen isn&#8217;t impaired by the skin, and the overall glossy look seems to actually add to the aesthetics.</p>
]]></content:encoded>
			<wfw:commentRss>http://techha.us/2009/06/g1-invisibleshield-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

