<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rough Book &#187; Operating Systems</title>
	<atom:link href="http://vivin.net/category/nerdy-stuff/computers-nerdy-stuff/operating-systems-computers-nerdy-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivin.net</link>
	<description>random musings of just another computer nerd</description>
	<lastBuildDate>Wed, 02 May 2012 18:20:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Implementing pinch-zoom and pan/drag in an Android view on the canvas</title>
		<link>http://vivin.net/2011/12/04/implementing-pinch-zoom-and-pandrag-in-an-android-view-on-the-canvas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2011/12/04/implementing-pinch-zoom-and-pandrag-in-an-android-view-on-the-canvas/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 23:21:49 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Programming and Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[dragging]]></category>
		<category><![CDATA[gestures]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[pan]]></category>
		<category><![CDATA[panning]]></category>
		<category><![CDATA[pinch-zoom]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[zoom]]></category>
		<category><![CDATA[zooming]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1806</guid>
		<description><![CDATA[I was trying to get pinch-zoom and panning working on an Android view today. Basically I was trying to implement the same behavior you see when you use Google Maps (for example). You can zoom in and pan around until the edge of the image, but no further. Also, if the image is fully zoomed [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to get pinch-zoom and panning working on an Android view today. Basically I was trying to implement the same behavior you see when you use Google Maps (for example). You can zoom in and pan around until the edge of the image, but no further. Also, if the image is fully zoomed out, you can&#8217;t pan the image. Implementing the pinch-zoom functionality was pretty easy. I found <a href="http://stackoverflow.com/questions/5216658/pinch-zoom-for-custom-view" title="Pinch Zoom on Android">an example on StackOverflow</a>. I then wanted to implement panning (or dragging) as well. However, I wasn&#8217;t able to easily find examples and tutorials for this functionality. I started with <a href="http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-5-implementing-the-drag-gesture/1789?tag=content;siu-container" title="Drag">this example</a> that comes from the third edition of the <a href="http://pragprog.com/book/eband3/hello-android" title="Hello, Android!">Hello, Android!</a> book but I didn&#8217;t get too far. So I started playing around a little bit with the events and started writing some code from scratch (using the example from <i>Hello, Android!</i>) so that I could have a better idea of what was happening.</p>
<p>As I mentioned before, getting zoom to work was pretty easy. Implementing panning/dragging was the hard part. The major issues I encountered and subsequently fixed were the following:</p>
<ol>
<li>Panning continues indefinitely in all directions.</li>
<li>When you zoom and then pan, stop, and then start again, the view jerks to a new position instead of panning from the existing position.</li>
<li>Excessive panning towards the left and top can be constrained, but panning towards the right and bottom is not so easily constrained.</li>
</ol>
<p>Once I fixed all the problems, I figured that it would be nice to document it for future reference, and I also think it would be a useful resource for others who have the same problem. Now a little disclaimer before I go any further: I&#8217;m not an Android expert and I&#8217;m really not that great with graphics; I just started it learning to program for Android this semester for one of my Masters electives. So there might be a better way of doing all this, and if there is, please let me know! Also, if you want to skip all the explanations and just see the code, you can <a href = "http://vivin.net/2011/12/04/implementing-pinch-zoom-and-pandrag-in-an-android-view-on-the-canvas/8/">skip to the last page</a>.</p>
<p><span id="more-1806"></span></p>
<p>Let&#8217;s start with the simple stuff first, that is implementing pinch-zoom. To implement pinch-zoom, we make use of the <a href="http://developer.android.com/reference/android/view/ScaleGestureDetector.html" title="ScaleGestureDetector"><span class="code-snippet">ScaleGestureDetector</span></a> class. This class helps you detect the pinch-zoom event. Using it is pretty simple:</p>
<pre class="brush: java">
public class ZoomView extends View {

    private static float MIN_ZOOM = 1f;
    private static float MAX_ZOOM = 5f;

    private float scaleFactor = 1.f;
    private ScaleGestureDetector detector;

    public ZoomView(Context context) {
        super(context);
        detector = new ScaleGestureDetector(getContext(), new ScaleListener());
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        detector.onTouchEvent(event);
        return true;
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        canvas.save();
        canvas.scale(scaleFactor, scaleFactor);

        // ...
        // your canvas-drawing code
        // ...

        canvas.restore();
    }

    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            scaleFactor *= detector.getScaleFactor();
            scaleFactor = Math.max(MIN_ZOOM, Math.min(scaleFactor, MAX_ZOOM));
            invalidate();
            return true;
        }
    }
}
</pre>
<p>Your view class has four private members: <span class="code-snippet">MIN_ZOOM</span>, <span class="code-snippet">MAX_ZOOM</span>, <span class="code-snippet">detector</span>, and <span class="code-snippet">scaleFactor</span>. The first two are static constants that define the maximum and minimum zoom allowed. The third is of type <span class="code-snippet">ScaleGestureDetector</span> and does all the heavy lifting as far as zooming is concerned. The fourth member holds the scaling factor i.e., a number that represents the amount of &#8220;zoom&#8221;.</p>
<p>Now what does this do?</p>
<p>In the constructor, you initialize the detector. The constructor to <span class="code-snippet">ScaleGestureDetector</span> takes two parameters: the current context, and a listener. Our listener is defined inside the class <span class="code-snippet">ScaleListener</span> which extends the abstract class <span class="code-snippet">ScaleGestureDetector.SimpleOnScaleGestureListener</span>. Inside the <span class="code-snippet">onScale</span> method, we get the current scale factor from the detector. We then check to see if it is greater or smaller than our upper and lower bounds. If so, we make sure that it we limit the value to be between those bounds. We then call <span class="code-snippet">invalidate()</span> which forces the canvas to redraw itself.</p>
<p>The actual scaling happens inside the <span class="code-snippet">onDraw</span> method. There, we save the canvas, set its scaling factor (which is the one we got from the detector), draw anything we need to draw, and then restore the canvas. What happens now is that anything you draw on the canvas is now scaled by the scaling factor. This is what gives you the &#8220;zoom&#8221; effect.</p>
<br /><a href="http://vivin.net/?p=1806#comments" title="Comments on &quot;Implementing pinch-zoom and pan/drag in an Android view on the canvas&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1806" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1806&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2011/12/04/implementing-pinch-zoom-and-pandrag-in-an-android-view-on-the-canvas/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1806" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1806" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1806&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>vivin.net is back&#8230; mostly</title>
		<link>http://vivin.net/2011/09/19/vivin-net-is-back-mostly/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2011/09/19/vivin-net-is-back-mostly/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 16:58:26 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nerdy Stuff]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[my website]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1764</guid>
		<description><![CDATA[So I&#8217;m sure you&#8217;ve noticed that this website was down for a while. It went down about three weeks ago when one of the (two) hard-drives on my server died due to bad sectors; it was eight years old. I didn&#8217;t panic (too much), because my WordPress database was on the main drive, which is [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m sure you&#8217;ve noticed that this website was down for a while. It went down about three weeks ago when one of the (two) hard-drives on my server  died due to bad sectors; it was eight years old. I didn&#8217;t panic (too much), because my WordPress database was on the main drive, which is still alive. However, my home directory was on the bad drive and I hadn&#8217;t backed up in a while (sigh), and so I lost some images that I had uploaded. What baffled me were my WordPress uploads. I was sure that I had installed WordPress on my main drive, but when I went to search for it, I couldn&#8217;t find any trace of the install. Due to this, I&#8217;ve lost a few images and I&#8217;m not sure if I&#8217;ll be able to replace them unfortunately. Oh well. </p>
<p>Also, I must bid farewell to a dear and old friend: my webserver enterprise. I set up my webserver almost 10 years ago (running FreeBSD of course), and she has been serving me faithfully for all this time. Over the years I&#8217;ve dealt with all kinds of disasters and I&#8217;ve been able to keep her running. However, after this latest disaster I&#8217;ve realized that I just don&#8217;t have the time to maintain and administer a server anymore; it&#8217;s hard to do with a full-time job and with a full-load at school (did I mention that I am doing my Masters?). Therefore, I&#8217;ve moved my site over to dreamhost. The cool thing is that they also offer shell access too, which in my opinion is absolutely indispensable. It took me a little while to migrate my WordPress installation over (I had to work out a few kinks), but now it looks like everything is running smoothly.</p>
<p>On that note, I&#8217;m looking forward to less server-administration and more blogging!</p>
<br /><a href="http://vivin.net/?p=1764#comments" title="Comments on &quot;vivin.net is back&#8230; mostly&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1764" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1764&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2011/09/19/vivin-net-is-back-mostly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1764" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1764" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1764&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Rooting the G2</title>
		<link>http://vivin.net/2010/10/07/rooting-the-g2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2010/10/07/rooting-the-g2/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 00:14:58 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Assembly]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nerdy Stuff]]></category>
		<category><![CDATA[Programming and Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[emmc]]></category>
		<category><![CDATA[g2]]></category>
		<category><![CDATA[kernel drivers]]></category>
		<category><![CDATA[kernel modules]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mmc]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[rooting]]></category>
		<category><![CDATA[xda developers]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1583</guid>
		<description><![CDATA[As some of you may already be aware, it appears that the G2 has some sort of &#8220;magic restore&#8221; (it&#8217;s not a rootkit) function that causes all changes to /system to be reverted. This means that you cannot remove any bundled bloatware. Even more troubling, it looks like the phone will perform the restore while [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you may already be aware, it appears that the G2 has some sort of &#8220;magic restore&#8221; (it&#8217;s not a rootkit) function that causes all changes to <code>/system</code> to be reverted. This means that you cannot remove any bundled bloatware. Even more troubling, it looks like the phone will perform the restore while it is running (i.e, you don&#8217;t need a reset). I haven&#8217;t turned on my G2, so this is what I&#8217;ve heard from people at <a href="http://forum.xda-developers.com/showthread.php?p=8511729">XDA Developers</a>. You can get temporary root on the devices, but after a little while (some people say minutes, others say hours; experiences seem to vary) root is lost. So it is possible that something is performing the restore while the phone is running.</p>
<p>Helpful folks on XDA Developers have posted<a href="http://omapworld.com/iNAND_e_MMC_4_41_IF_data_sheet_v1_0%5B1%5D.pdf"> the datasheet</a> to the eMMC and another kind soul (damnoregonian) was able to get the value of the CSD register (the register that seems to control the behavior of the MMC): <strong><code>d00f00320f5903fffffffdff924040c8</code></strong>.</p>
<p><strong><code>WP_GRP_SIZE[36:32]</code></strong> and <strong><code>WP_GRP_ENABLE[31:31]</code></strong> seem to be the bits that control the write-protect (per the datasheet). Currently these seem to be set to the default values per the data sheet (11111b and 1b). Clearing the bits should (theoretically) turn off the write protection. The value to do that would be <strong><code>d00f00320f5903fffffffde0124040c8</code></strong>. The CSD node is R/O and so you cannot echo to it directly. The only way to do it would be to write a kernel module/driver that writes to the register. Apparently the kernel exports a function called <strong><code>mmc_send_csd</code></strong>, and so one should be able to write to this register.</p>
<p>I&#8217;m tempted to write a kernel module that does just that. But since working at Intel I haven&#8217;t written any kernel drivers. Also while I did write drivers at Intel, I pretty much made modifications to what others before me had written, and so I never wrote one from scratch. I&#8217;m going to see if I can start on something this weekend&#8230; wish I was still in college&#8230; I had a lot more time then!</p>
<p>If this works (and that&#8217;s a big if), there&#8217;s still the issue of restores being done while the phone is in operation. That could cause a lot of inconsistency. So this might be a partial solution.</p>
<p>Either way, I&#8217;m sure someone will come up with a way to root the phone. But if there&#8217;s nothing by next Friday, I&#8217;m going to return the phone.</p>
<p><strong>UPDATE</strong></p>
<p>Someone posted updated <a href="http://www.jedec.org/standards-documents/docs/jesd84-a441">specs</a>. It looks like those bits are read-only. Bummer. Also, this from T-Mobile&#8217;s website:</p>
<blockquote>
<p>Bellevue, Wash. — Oct. 7, 2010</p>
<p>As pioneers in Android-powered mobile devices, T-Mobile and HTC strive to support innovation.  The T-Mobile G2 is a powerful and highly customizable Android-powered smartphone, which customers can personalize and make their own, from the look of their home screen to adding their favorite applications and more. </p>
<p>The HTC software implementation on the G2 stores some components in read-only memory as a security measure to prevent key operating system software from becoming corrupted and rendering the device inoperable. There is a small subset of highly technical users who may want to modify and re-engineer their devices at the code level, known as “rooting,” but a side effect of HTC’s security measure is that these modifications are temporary and cannot be saved to permanent memory.  As a result the original code is restored.</p></blockquote>
<p>Well, T-Mobile. How about you provide us technical users a way to root our devices? What you&#8217;re doing is stupid. You&#8217;re going against everything Android stands for. If I can&#8217;t root it, I think I will return my phone and get a Vibrant instead. I would have expected this from Apple or Verizon. But not from you. Very disappointing.</p>
<br /><a href="http://vivin.net/?p=1583#comments" title="Comments on &quot;Rooting the G2&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1583" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1583&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2010/10/07/rooting-the-g2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1583" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1583" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1583&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Unboxing my new T-Mobile G2 Android Phone</title>
		<link>http://vivin.net/2010/10/06/my-new-t-mobile-g2-android-phone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2010/10/06/my-new-t-mobile-g2-android-phone/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 07:17:23 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nerdy Stuff]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cell phone]]></category>
		<category><![CDATA[g1]]></category>
		<category><![CDATA[g2]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[mobile phone]]></category>
		<category><![CDATA[mytouch]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[pda]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[t-mobile]]></category>
		<category><![CDATA[unboxing]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1563</guid>
		<description><![CDATA[My wife called me at work today and told me that my new phone just came in the mail . It&#8217;s the new G2 by HTC, which is supposed to be the successor to the G1. The specs on this phone are: 3.7 inch WVGA capacitive touch screen 5 megapixel camera with auto-focus and flash [...]]]></description>
			<content:encoded><![CDATA[<p>My wife called me at work today and told me that my new phone just came in the mail <img src='http://vivin.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . It&#8217;s the new G2 by HTC, which is supposed to be the successor to the G1. The specs on this phone are:</p>
<ul>
<li>3.7 inch WVGA capacitive touch screen</li>
<li>5 megapixel camera with auto-focus and flash</li>
<li>Qualcomm MSM7230 800MHz processor</li>
<li>4GB ROM</li>
<li>512MB RAM</li>
<li>GPS/aGPS</li>
<li>WiFi</li>
<li>Bluetooth</li>
<li>Android 2.2</li>
<li>Runs on T-Mobile&#8217;s 4G/HSPA+ network</li>
<li>Slide-out keyboard</li>
</ul>
<p><span id="more-1563"></span></p>
<p>I was a little concerned about the 800Mhz clock-speed, but after doing some research it turns out that the phone more than makes up for it with better hardware acceleration. Either way, it&#8217;s not like I can&#8217;t overclock it <img src='http://vivin.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>For having a slideout keyboard, the phone is actually not very bulky. It also looks very slick and clean (no where near as bulky as the G1). I&#8217;ve been using the on-screen keyboard on the MyTouch for little over a year now and I have to say that I haven&#8217;t gotten used to it (I missed the physical keyboard on the G1). Even after a year of using it, my typing is still error-prone and not as fast. That&#8217;s why I was pretty excited about the slide-out keyboard on the G2. I tried typing on it and it doesn&#8217;t feel too bad. The keys seem to be slightly more widely spaced than is comfortable and so there might to be opportunities for fat-fingering. But I think it&#8217;s a matter of getting used to it.</p>
<p>I haven&#8217;t turned on the thing yet and so I don&#8217;t have any pictures of it turned on. I&#8217;m going to wait until they have some GhostArmor for it. Until then I&#8217;m keeping it safe in its box and I will be using my MyTouch. Apparently the G2 runs stock Android 2.2, so it shouldn&#8217;t be any different from any other devices that run stock Android 2.2 (like the Nexus One). Without further ado, here are some pictures (you can click on them to get a larger version):</p>
<div style="text-align: center;">
<div style="display: inline-block; margin-right: 5px;">
<div id="attachment_1550" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0197.jpg"><img class="size-medium wp-image-1550  " title="The G2 in its box" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0197-300x201.jpg" alt="The G2 in its box" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">The G2 in its box</p></div>
</div>
<div style="display: inline-block;">
<div id="attachment_1551" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0202.jpg"><img class="size-medium wp-image-1551  " title="The G2 and its box, side-by-side" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0202-300x201.jpg" alt="The G2 and its box, side-by-side" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">The G2 and its box, side-by-side</p></div>
</div>
</div>
<div style="text-align: center;">
<div style="display: inline-block; margin-right: 5px;">
<div id="attachment_1553" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0209.jpg"><img class="size-medium wp-image-1553 " title="Front of G2 - I" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0209-300x201.jpg" alt="Front of G2 - I" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Front of G2 - I</p></div>
</div>
<div style="display: inline-block;">
<div id="attachment_1552" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0207.jpg"><img class="size-medium wp-image-1552 " title="Front of G2 - II" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0207-300x201.jpg" alt="Front of G2 - II" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Front of G2 - II</p></div>
</div>
</div>
<div style="text-align: center;">
<div style="display: inline-block; margin-right: 5px;">
<div id="attachment_1555" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0216.jpg"><img class="size-medium wp-image-1555 " title="Back of G2 - I" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0216-300x201.jpg" alt="Back of G2 - I" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Back of G2 - I</p></div>
</div>
<div style="display: inline-block;">
<div id="attachment_1556" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0217.jpg"><img class="size-medium wp-image-1556 " title="Back of G2 - II" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0217-300x201.jpg" alt="Back of G2 - II" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Back of G2 - II</p></div>
</div>
</div>
<div style="text-align: center;">
<div style="display: inline-block; margin-right: 5px;">
<div id="attachment_1558" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0221.jpg"><img class="size-medium wp-image-1558 " title="G2 with keyboard exposed - I" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0221-300x201.jpg" alt="G2 with keyboard exposed - I" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">G2 with keyboard exposed - I</p></div>
</div>
<div style="display: inline-block;">
<div id="attachment_1557" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0220.jpg"><img class="size-medium wp-image-1557 " title="G2 with keyboard exposed - II" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0220-300x201.jpg" alt="G2 with keyboard exposed - II" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">G2 with keyboard exposed - II</p></div>
</div>
<p><i>Note: The white patches on the keyboard are not a defects; they are air bubbles under the protective plastic-cover</i>
</div>
<div style="text-align: center;">
<div style="display: inline-block; margin-right: 5px;">
<div id="attachment_1561" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0229.jpg"><img class="size-medium wp-image-1561  " title="G2 and accessories - I (L-R: charger, USB cable, Stereo headset)" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0229-300x201.jpg" alt="G2 and accessories - I (L-R: charger, USB cable, Stereo headset)" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">G2 and accessories - I (L-R: charger, USB cable, Stereo headset)</p></div>
</div>
<div style="display: inline-block;">
<div id="attachment_1559" class="wp-caption aligncenter" style="width: 250px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a href="http://vivin.net/wp-content/uploads/2010/10/DSC_0222.jpg"><img class="size-medium wp-image-1559   " title="G2 and accessories - II (L-R: USB cable, Stereo headset, charger)" src="http://vivin.net/wp-content/uploads/2010/10/DSC_0222-300x201.jpg" alt="G2 and accessories - II (L-R: USB cable, Stereo headset, charger)" width="240" height="161" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">G2 and accessories - II (L-R: USB cable, Stereo headset, charger)</p></div>
</div>
</div>
<br /><a href="http://vivin.net/?p=1563#comments" title="Comments on &quot;Unboxing my new T-Mobile G2 Android Phone&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1563" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1563&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2010/10/06/my-new-t-mobile-g2-android-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0197-150x150.jpg" />
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0197.jpg" medium="image">
			<media:title type="html">The G2 in its box</media:title>
			<media:description type="html">The G2 in its box</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0197-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0202.jpg" medium="image">
			<media:title type="html">The G2 and its box, side-by-side</media:title>
			<media:description type="html">The G2 and its box, side-by-side</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0202-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0209.jpg" medium="image">
			<media:title type="html">Front of G2 &#8211; I</media:title>
			<media:description type="html">Front of G2 - I</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0209-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0207.jpg" medium="image">
			<media:title type="html">Front of G2 &#8211; II</media:title>
			<media:description type="html">Front of G2 - II</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0207-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0216.jpg" medium="image">
			<media:title type="html">Back of G2 &#8211; I</media:title>
			<media:description type="html">Back of G2 - I</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0216-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0217.jpg" medium="image">
			<media:title type="html">Back of G2 &#8211; II</media:title>
			<media:description type="html">Back of G2 - II</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0217-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0221.jpg" medium="image">
			<media:title type="html">G2 with keyboard exposed &#8211; I</media:title>
			<media:description type="html">G2 with keyboard exposed - I</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0221-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0220.jpg" medium="image">
			<media:title type="html">G2 with keyboard exposed &#8211; II</media:title>
			<media:description type="html">G2 with keyboard exposed - II</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0220-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0229.jpg" medium="image">
			<media:title type="html">G2 and accessories &#8211; I (L-R charger, USB cable, Stereo headset)</media:title>
			<media:description type="html">G2 and accessories - I (L-R charger, USB cable, Stereo headset)</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0229-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2010/10/DSC_0222.jpg" medium="image">
			<media:title type="html">G2 and accessories &#8211; II (L-R charger, USB cable, Stereo headset)</media:title>
			<media:description type="html">G2 and accessories - II (L-R charger, USB cable, Stereo headset)</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2010/10/DSC_0222-150x150.jpg" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1563" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1563&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Downtime and System Upgrade</title>
		<link>http://vivin.net/2010/07/24/downtime-and-system-upgrade/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2010/07/24/downtime-and-system-upgrade/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 03:01:03 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[computer hardware]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[hard-drives]]></category>
		<category><![CDATA[my website]]></category>
		<category><![CDATA[system upgrade]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1531</guid>
		<description><![CDATA[Sorry for the downtime. My webserver had a failing hard-drive and I figured that while I was replacing the hard-drive, I would upgrade the entire machine as well. The box was a Pentium 4 1.4Ghz with 512MB of RAM that I hadn&#8217;t upgraded since I first built it in 2002. Now it&#8217;s been upgraded to [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry for the downtime. My webserver had a failing hard-drive and I figured that while I was replacing the hard-drive, I would upgrade the entire machine as well. The box was a Pentium 4 1.4Ghz with 512MB of RAM that I hadn&#8217;t upgraded since I first built it in 2002. Now it&#8217;s been upgraded to a Pentium 4 2.4Ghz (hyper-threaded) with 1GB of RAM. Building from source will be a lot faster now! The whole upgrade process took a while because I was also in the process of upgrading another one of my machines and that took for EVER (some issues with shorting). Finally I had to install FreeBSD (version 8.0) on the new hard-drive as well as Apache, PHP, MySQL, WordPress etc. After I have everything set up, I&#8217;m going to make sure that I image the hard-drive so that I can restore it from backup easily. </p>
<br /><a href="http://vivin.net/?p=1531#comments" title="Comments on &quot;Downtime and System Upgrade&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1531" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1531&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2010/07/24/downtime-and-system-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1531" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1531" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1531&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Download ShapeWriter APK</title>
		<link>http://vivin.net/2010/06/22/download-shapewriter-apk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2010/06/22/download-shapewriter-apk/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 16:43:34 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Nerdy Stuff]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android 2.1]]></category>
		<category><![CDATA[apk]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[mytouch]]></category>
		<category><![CDATA[shapewriter]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1522</guid>
		<description><![CDATA[I tried to install ShapeWriter from the Android Marketplace yesterday and couldn&#8217;t find it (I was trying to reinstall it after flashing my phone with Cyanogenmod 5.0.8). After searching the interwebs, I found out that it had been removed from the marketplace on June 20th indefinitely (supposedly for QA issues). Luckily I had backed up [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to install <a href="http://shapewriter.com">ShapeWriter</a> from the Android Marketplace yesterday and couldn&#8217;t find it (I was trying to reinstall it after flashing my phone with <a href="http://www.cyanogenmod.com/home/cyanogenmod-5-0-8-has-landed">Cyanogenmod 5.0.8</a>). After searching the interwebs, I found out that it had been removed from the marketplace on June 20th indefinitely (supposedly for QA issues). Luckily I had backed up the app using <a href="http://www.rerware.com/Android/default.aspx">MyBackup Pro</a> and still had the APK, so I was able to reinstall it. I&#8217;m putting the APK up here for anyone who needs to reinstall ShapeWriter.</p>
<p><a href="http://vivin.net/pub/shapewriter/com.shapewriter.android.softkeyboard.apk">Download ShapeWriter APK</a></p>
<br /><a href="http://vivin.net/?p=1522#comments" title="Comments on &quot;Download ShapeWriter APK&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1522" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1522&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2010/06/22/download-shapewriter-apk/feed/</wfw:commentRss>
		<slash:comments>150</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1522" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1522" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1522&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>GitHub broke my scp</title>
		<link>http://vivin.net/2010/03/09/github-broke-my-scp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2010/03/09/github-broke-my-scp/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 15:44:08 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1466</guid>
		<description><![CDATA[I set up git on my FreeBSD box so that I can commit my code to GitHub. Today I tried to scp some stuff over and I was met with this rather unhelpful message: vivin@serenity ~/Projects/code $ scp -r vivin@www.vivin.net:~/code/agnostic . Password: ps: Process environment requires procfs(5) Initializing new SSH agent... vivin@serenity ~/Projects/code $ I [...]]]></description>
			<content:encoded><![CDATA[<p>I set up <a href="http://en.wikipedia.org/wiki/Git_%28software%29">git</a> on my FreeBSD box so that I can commit my code to <a href="http://github.com/">GitHub</a>. Today I tried to scp some stuff over and I was met with this rather unhelpful message:</p>
<pre>
vivin@serenity ~/Projects/code
$ scp -r vivin@www.vivin.net:~/code/agnostic .
Password:
ps: Process environment requires procfs(5)
Initializing new SSH agent...

vivin@serenity ~/Projects/code
$
</pre>
<p>I fixed the procfs problem by adding the following to my <em>/etc/fstab</em>:</p>
<pre class="brush: php">
proc                    /proc           procfs  rw              0       0
linproc                 /compat/linux/proc      linprocfs       rw      0       0
</pre>
<p>and then running:</p>
<pre>
vivin@enterprise ~
$ sudo mount /compat/linux/proc

vivin@enterprise ~
$ sudo mount /proc
</pre>
<p>So I try to scp again and I get:</p>
<pre>
vivin@serenity ~/Projects/code
$ scp -r vivin@www.vivin.net:~/code/agnostic .
Password:
Initializing new SSH agent...

vivin@serenity ~/Projects/code
$
</pre>
<p>WTF? Then I remembered making some changes to my <em>.bashrc</em> to be able to commit to github:</p>
<pre class="brush: php">
function start_agent {
  echo &quot;Initializing new SSH agent...&quot;
  /usr/bin/ssh-agent | sed &#039;s/^echo/#echo/&#039; &gt; &quot;${SSH_ENV}&quot;
  echo succeeded
  chmod 600 &quot;${SSH_ENV}&quot;
  . &quot;${SSH_ENV}&quot; &gt; /dev/null
  /usr/bin/ssh-add;
}

# Source SSH settings, if applicable
if [ -f &quot;${SSH_ENV}&quot; ]; then
  . &quot;${SSH_ENV}&quot; &gt; /dev/null
  #ps ${SSH_AGENT_PID} doesn&#039;t work under cywgin
  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ &gt; /dev/null || {
    start_agent;
  }
else
  start_agent;
fi
</pre>
<p>I pulled all that out of my <em>.bashrc</em> and made a separate shell script for it. After I did that, scp started working again. I had no idea that calling scp would actually run <em>.bashrc</em></p>
<br /><a href="http://vivin.net/?p=1466#comments" title="Comments on &quot;GitHub broke my scp&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1466" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1466&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2010/03/09/github-broke-my-scp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1466" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1466" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1466&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Trying out ChromeOS from a VMWare image</title>
		<link>http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 17:27:02 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1140</guid>
		<description><![CDATA[I was pretty excited when I saw the VMWare image for ChromeOS up for download. I immediately downloaded it to try it out. The zip file I got from gdgt has a vmdk file but no vmx file. I created one from scratch to try ChromeOS out (I&#8217;ve made a new zip with the vmdk [...]]]></description>
			<content:encoded><![CDATA[<p>I was pretty excited when I saw the VMWare image for ChromeOS up for download. I immediately downloaded it to try it out. The zip file I got from <a href="http://lifehacker.com/5408932/chrome-os-virtual-machine-build-ready-for-your-testing">gdgt</a> has a <em>vmdk</em> file but no <em>vmx</em> file. I created one from scratch to try ChromeOS out (I&#8217;ve made a new zip with the <em>vmdk</em> and the <em>vmx</em>. The link is at the end of this post.). It&#8217;s not too bad. The OS boots up really quick. The login screen is pretty spartan (look at the screenshots I have). You login with your Google/Gmail username and password. When you login, it opens up the Chrome browser. I wasn&#8217;t able to get anything else running other than the browser. Also, when I first logged in, Chrome complained that the security certificate for Gmail had been revoked. But I was able to login when I typed in the address for Gmail in again. The default tabs seem to be GMail and Google Calendar. I&#8217;m assuming that because it&#8217;s such an early build, you&#8217;re not able to try out the other stuff. Maybe there&#8217;s a way; I didn&#8217;t play around with it too much. There is a <em>Date and Time settings</em> menu that&#8217;s available from the browser, where you can set a few other options, like your proxy, SSL options, home page, and a few other advanced settings.<br />
<span id="more-1140"></span><br />
<strong>Update</strong></p>
<p>I was having a conversation with <a href="http://twitter.com/syalam">Sheehan</a> over twitter and I made a comment that &#8220;Chrome OS is doing the kiosk thing all over again&#8221;. I guess that&#8217;s true to an extent. ChromeOS will be running on approved hardware with an SSD. You&#8217;re probably not going to be able to install anything on the machine and everything seems to be a webapp. What this means is that <em>all</em> your data is online. To be honest, I don&#8217;t find very much use for that, but then again, I&#8217;m not part of the target market. I think this might be useful for people who are on-the-go and who need access to their data from anywhere in the world (well, anywhere in the world with an internet connection). I use my machine for a variety of things; mainly development. Since I also like to tinker with it from time to time, I&#8217;m always installing stuff on it. Google will need a very strong marketing campaign so that consumers understand <em>exactly</em> what they&#8217;re getting. They won&#8217;t be able to install applications (maybe webapps?) and they won&#8217;t be able to save arbitrary files to the machine. I wonder what this means for the online experience. What if they&#8217;re trying to download some sort of file? Where would they save it? Would Google provide online storage for the users? It&#8217;s a major paradigm shift. Like I mentioned before, your machine turns into a kiosk or a thin-client. Maybe some people won&#8217;t mind using one, but I view my machine as something much more and so I don&#8217;t think I will be satisfied.</p>
<p><strong>ChromeOS <em>.vmx</em> file for the <em>.vmdk</em></strong></p>
<pre class="brush: php">
.encoding = &quot;UTF-8&quot;
displayName = &quot;Chrome OS&quot;
guestOS = &quot;other&quot;
memsize = &quot;512&quot;

ethernet0.present= &quot;true&quot;
ethernet0.startConnected = &quot;true&quot;
ethernet0.virtualDev = &quot;e1000&quot;
ethernet0.connectionType = &quot;nat&quot;
ethernet0.addressType = &quot;generated&quot;
ethernet0.generatedAddress = &quot;00:0c:29:cd:8d:e6&quot;
ethernet0.generatedAddressOffset = &quot;0&quot;

usb.present = &quot;true&quot;

sound.present = &quot;false&quot;
sound.autodetect = &quot;true&quot;
sound.virtualDev = &quot;es1371&quot;
sound.fileName = &quot;-1&quot;
sound.startConnected = &quot;true&quot;

ide0:0.present = &quot;true&quot;
ide0:0.fileName=&quot;chrome-os-0.4.22.8-gdgt.vmdk&quot;
ide0:0.deviceType = &quot;disk&quot;
ide0:0.mode = &quot;persistent&quot;
ide0:0.redo = &quot;&quot;
ide0:0.writeThrough = &quot;false&quot;
ide0:0.startConnected = &quot;false&quot;

virtualHW.version = &quot;3&quot;
config.version = &quot;8&quot;

floppy0.present = &quot;false&quot;
</pre>
<p><strong>I&#8217;m no longer seeding the torrent. I suggest <a href="http://lifehacker.com/5408932/chrome-os-virtual-machine-build-ready-for-your-testing">downloading</a> the <em>vmdk</em> from gdgt (sign-up required, but just make a fake profile &#8211; no verification is performed) and using <a href = "http://vivin.net/pub/chrome-os/chrome-os.0.4.22.8-vivin.net.vmx">this</a> <em>vmx</em> file with it.</strong></p>

<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os/' title='ChromeOS Login Screen'><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-150x150.png" class="attachment-thumbnail" alt="ChromeOS Login Screen" title="ChromeOS Login Screen" /></a>
<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os-1/' title='ChromeOS Login Screen'><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-1-150x150.png" class="attachment-thumbnail" alt="ChromeOS Login Screen" title="ChromeOS Login Screen" /></a>
<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os-2/' title='Chrome browser in ChromeOS'><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-2-150x150.png" class="attachment-thumbnail" alt="Chrome browser in ChromeOS" title="Chrome browser in ChromeOS" /></a>
<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os-3/' title='Google calendar in ChromeOS'><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-3-150x150.png" class="attachment-thumbnail" alt="Google calendar in ChromeOS" title="Google calendar in ChromeOS" /></a>
<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os-4/' title='Date and Time settings'><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-4-150x150.png" class="attachment-thumbnail" alt="Date and Time settings" title="Date and Time settings" /></a>
<a href='http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/screenshot-chrome-os-5/' title='Date and Time, and other settings '><img width="150" height="150" src="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-5-150x150.png" class="attachment-thumbnail" alt="Date and Time, and other settings" title="Date and Time, and other settings" /></a>

<br /><a href="http://vivin.net/?p=1140#comments" title="Comments on &quot;Trying out ChromeOS from a VMWare image&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1140" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1140&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2009/11/20/trying-out-chromeos-from-a-vmware-image/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-150x150.png" />
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS.png" medium="image">
			<media:title type="html">ChromeOS Login Screen</media:title>
			<media:description type="html">ChromeOS Login Screen</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-1.png" medium="image">
			<media:title type="html">ChromeOS Login Screen</media:title>
			<media:description type="html">ChromeOS Login Screen</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-1-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-2.png" medium="image">
			<media:title type="html">Chrome browser in ChromeOS</media:title>
			<media:description type="html">Chrome browser in ChromeOS</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-2-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-3.png" medium="image">
			<media:title type="html">Google calendar in ChromeOS</media:title>
			<media:description type="html">Google calendar in ChromeOS</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-3-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-4.png" medium="image">
			<media:title type="html">Date and Time settings</media:title>
			<media:description type="html">Date and Time settings</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-4-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-5.png" medium="image">
			<media:title type="html">Date and Time, and other settings</media:title>
			<media:description type="html">Date and Time, and other settings</media:description>
			<media:thumbnail url="http://vivin.net/wp-content/uploads/2009/11/Screenshot-Chrome-OS-5-150x150.png" />
		</media:content>
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1140" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1140&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Flu shot and bizarre network issues</title>
		<link>http://vivin.net/2009/10/27/flu-shot-and-bizarre-network-issues/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2009/10/27/flu-shot-and-bizarre-network-issues/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 22:49:34 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[flu]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[vaccine]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1042</guid>
		<description><![CDATA[This last weekend I had drill and the medics gave us the seasonal-flu mist-vaccine. It&#8217;s the one where they squirt gooey, inactive virus up your nose. I&#8217;ve had the vaccine before without any adverse side-effects. Yeah, not this time. I got the shot on Saturday and I was fine on Sunday. Not so on Monday. [...]]]></description>
			<content:encoded><![CDATA[<p>This last weekend I had drill and the medics gave us the seasonal-flu mist-vaccine. It&#8217;s the one where they squirt gooey, inactive virus up your nose. I&#8217;ve had the vaccine before without any adverse side-effects. Yeah, not this time. I got the shot on Saturday and I was fine on Sunday. Not so on Monday. I woke up a few times in the middle of the night with a bit of a fever, but I figured that it would just go away. Yeah, didn&#8217;t happen. On Monday morning I felt like I had been run over by a semi. My throat felt like I had swallowed bits of broken glass. Needless to say, I didn&#8217;t go to work. I was bedridden most of the day, but towards the end I felt a little better. I tried to get a little work done but I wasn&#8217;t too successful since I had a hard time concentrating.<br />
<span id="more-1042"></span><br />
By around seven or eight in the evening I was checking my email and I realized that Gmail wasn&#8217;t picking up any mail from vivin.net. I thought that courier-imap might not be running, but it was. Gmail complained that the connection was timing out. Odd, because I hadn&#8217;t made any changes at all recently other than an <em>fsck</em> after a power failure. I decided to try out the POP3 tester over <a href="http://www.wormly.com/test_pop3_mail_server">here</a> and I also got a timeout error. However, when I did a command-line test of the POP3 server like so:</p>
<pre class="brush: php">
openssl s_client -connect localhost:995
</pre>
<p>Everything seemed fine. Furthermore, this problem seemed to be limited to both my FreeBSD servers. My Linux box seemed to be running fine. I tried a bunch of things. I restarted both machines, restarted the network interfaces, made sure firewalls weren&#8217;t running, reset my router&#8230; nothing seemed to work. Every time I tested the connection to the machines (using this awesome tool <a href="http://www.uptimeinspector.com/test-server-connection.html">here</a>), the connections would time out. What was even stranger was that a <em>netstat</em> showed connections to be in a SYN_RCVD state, which meant that the box had accepted the connection. It&#8217;s just that the response wasn&#8217;t getting out. Eventually I was so desperate that I decided to reinstall FreeBSD on one of the machines. I also posted to a BSD forum asking for help. I figured that next evening I could probably fix it after work.</p>
<p>Well, next morning I still felt terrible, but it wasn&#8217;t so bad. My throat wasn&#8217;t hurting as much and I didn&#8217;t have that much of a headache so I was able to work from home. Oh, and the installation had completed. I set everything up quickly and gave it a whirl. Nope. Same problem. Yeah, I was getting pretty frustrated and annoyed at this point. I went so far as to contemplate wiping my beloved FreeBSD off both machines and putting Linux on there. I updated my post at the forum and I checked on it periodically throughout the day as I kept working. Finally, a kind soul popped in to help me out. He helped me troubleshoot using <em>tcpdump</em> and I was able to confirm that the machine was responding to the incoming connection, but it wasn&#8217;t going out. Finally, he asked me to check the routing information. I&#8217;m not that well-versed with that so I didn&#8217;t see the problem until he pointed it out. The routing information was all wrong!</p>
<p>See, I have two network interfaces on the box. One for my internal network, and one pointing to the outside world. The one pointing to the outside world is statically configured, whereas the one for my internal network picks up its configuration from my AirPort Extreme router. What was happening was that <em>dhclient</em> was overwriting the route information. So when the machine tried to respond back, it saw its default route as the internal router, and <em>not</em> my modem! I had to update my <em>dhclient.conf</em> and force the router address to the correct one:</p>
<pre class="brush: php">
backoff-cutoff 2;
initial-interval 1;
retry 10;
select-timeout 0;
timeout 30;

interface &amp;quot;vr0&amp;quot; {
   supersede routers 209.x.y.54;
   supersede host-name &amp;quot;enterprise&amp;quot;;
   supersede domain-name &amp;quot;xxxx.xxx&amp;quot;;
   request subnet-mask,
           domain-name-servers;

   require subnet-mask,
           domain-name-servers;
}
</pre>
<p>The important line here is the one that says <em>supersede routers 209.x.y.54;</em> (I&#8217;ve hidden the actual numbers from teh hax0rs). This tells the <em>dhclient</em> to override the router information that it gets from the DHCP server. Once I did this, everything started working again. My thanks to <em>jggimi</em> at <a href = "http://www.daemonforums.org/showthread.php?t=3936">DaemonForums</a>!</p>
<br /><a href="http://vivin.net/?p=1042#comments" title="Comments on &quot;Flu shot and bizarre network issues&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1042" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1042&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2009/10/27/flu-shot-and-bizarre-network-issues/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1042" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1042" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1042&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Ubuntu 9.04 (Jaunty Jackalope) and Windows 7 dual-boot</title>
		<link>http://vivin.net/2009/10/23/ubuntu-9-04-jaunty-jackalope-and-windows-7-dual-boot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2009/10/23/ubuntu-9-04-jaunty-jackalope-and-windows-7-dual-boot/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 07:28:41 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[dual-boot]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[smart]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1039</guid>
		<description><![CDATA[In my previous post I talked about the problems I had while installing Ubuntu and Windows 7 on my Alienware m7700 laptop. It took me about three days of hair-pulling before I was finally able to get it to work. First, I burnt a new copy of the ISO for Ubuntu 9.04. Then, I enabled [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://vivin.net/2009/10/21/ubuntu-and-win7-problems/" target="_blank">previous post</a> I talked about the problems I had while installing Ubuntu and Windows 7 on my Alienware m7700 laptop. It took me about three days of hair-pulling before I was finally able to get it to work. First, I burnt a new copy of the ISO for Ubuntu 9.04. Then, I enabled RAID on my system. I put the disks into <em>stripe</em> mode (the FastTrak Promise 378 does not support JBOD). This time, I got past the COMRESET error (<em>ata3: COMRESET failed (errno=-16)</em>) and was able to boot into the LiveCD. However, my joy was short-lived. The install would terminate (around the 40% mark) with the following message:</p>
<blockquote><p>[Errno 5] Input/output error</p>
<p>This is often due to a faulty CD/DVD disk or drive, or a faulty hard disk. It may help to clean the CD/DVD, to burn the CD/DVD at a lower speed, to clean the CD/DVD drive lens (cleaning kits are often available from electronics suppliers), to check whether the hard disk is old and in need of replacement, or to move the system to a cooler environment.</p></blockquote>
<p><span id="more-1039"></span><br />
Fun stuff. So then, I burnt myself <em>another</em> copy of the install CD, making sure to burn this one at the lowest speed (1x) and then verifying the image. I also made sure that the MD5 sums on the ISO matched the one on the Ubuntu website. This time when I booted up, the install proceeded along further before dying at 78% with the same error. I restarted the installation multiple times only to see it fail at the same point. I started wondering if it was a problem with the hard-drive. Since the drive is SMART enabled, I decided to run some tests on it. From the LiveCD, I started up the terminal and installed <em>smartmontools</em> through apt-get (<em>sudo apt-get install smartmontools</em>). I then got some errors about unfulfilled dependencies and postfix (strange), but <em>smartmontools</em> seem to be installed so I didn&#8217;t think much of it. I followed the instructions at <a href="http://www.cyberciti.biz/tips/linux-find-out-if-harddisk-failing.html" target="_blank">this site</a> and tested my hard-drive. I even ran the long test which took about two hours to complete. The tests passed. At this point I was at my wit&#8217;s end. It wasn&#8217;t the image, the CD, or the hard-drive. It had to be a hardware problem. Was it the drive itself?</p>
<p>Finally I figured it out. It was mostly due to blind luck/intuition that I was able to figure it out. I vaguely remembered trying to install FreeBSD a few years ago and running into a problem with ACPI. So when the LiveCD booted up, I hit F6 and checked the first three options (acpi=off, noapic, nolapic). This time, the installation went without a hitch and now I&#8217;m able to dual-boot between Windows 7 and Ubuntu 9.04!</p>
<br /><a href="http://vivin.net/?p=1039#comments" title="Comments on &quot;Ubuntu 9.04 (Jaunty Jackalope) and Windows 7 dual-boot&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1039" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1039&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2009/10/23/ubuntu-9-04-jaunty-jackalope-and-windows-7-dual-boot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1039" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1039" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1039&#38;type=feed" medium="image" />
	</item>
	</channel>
</rss>

