<?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>inportb</title>
	<atom:link href="http://inportb.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://inportb.com</link>
	<description>salty nothings are yummier</description>
	<lastBuildDate>Sun, 08 Jan 2012 06:31:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>agcc.bash: Make Native Android C Programs Using the NDK</title>
		<link>http://inportb.com/2012/01/08/agcc-bash-make-native-android-c-programs-using-the-ndk/</link>
		<comments>http://inportb.com/2012/01/08/agcc-bash-make-native-android-c-programs-using-the-ndk/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 06:28:50 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=893</guid>
		<description><![CDATA[I return to school at noon, but before then, I&#8217;d like to share my evening project: agcc.bash, a rewrite of agcc and agcc2.pl that works with revisions 6 and 7 of the Android NDK. The NDK is a GCC-based cross-compiler that lets you embed object code in a traditional Android app. It also works as...<a href="http://inportb.com/2012/01/08/agcc-bash-make-native-android-c-programs-using-the-ndk/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I return to school at noon, but before then, I&#8217;d like to share my evening project: <a href="http://dl.dropbox.com/u/1213413/htdocs/agcc/agcc.bash">agcc.bash</a>, a rewrite of <a href="http://plausible.org/andy/agcc">agcc</a> and <a href="http://credentiality2.blogspot.com/2011/07/native-android-c-program-using-ndk.html">agcc2.pl</a> that works with revisions 6 and 7 of the Android NDK.</p>
<p>The NDK is a GCC-based cross-compiler that lets you embed object code in a traditional Android app. It also works as a standalone cross-compiler, though it is not advertised as such. It is quite rough when used by itself, and agcc wraps the complexity in a little script. While agcc and agcc2.pl are written in Perl, agcc.bash is a Bash script. It also supports the latest revisions of the NDK, though r7 is slightly buggy.</p>
<p>With agcc.bash, building native Android software feels almost like working with GCC. As a quick example, let&#8217;s try the classic <a href="http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c">hello world</a>:</p>
<blockquote><p>AGCC_NDK=~/android-ndk-r6 ./agcc.bash hello.c -o hello</p></blockquote>
<p>That wasn&#8217;t too exciting&#8230; but what happened there? I have the NDK installed at ~/android-ndk-r6 and I told agcc.bash where to look for it, using the AGCC_NDK environment variable. I then invoked agcc.bash as if it were GCC. Let&#8217;s see what agcc.bash did behind the scenes:</p>
<blockquote><p>AGCC_NDK=~/android-ndk-r6 AGCC_ECHO=yes ./agcc.bash hello.c -o hello</p>
<p>=&gt; ./agcc.bash hello.c -o hello<br />
&lt;= /home/jyio/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -o hello -I/home/jyio/android-ndk-r6/platforms/android-8/arch-arm/usr/include -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DSK_RELEASE -DNDEBUG -UDEBUG -march=armv5te -mtune=xscale -msoft-float -mthumb-interwork -fpic -fno-exceptions -ffunction-sections -funwind-tables -fmessage-length=0 -march=armv5te -mtune=xscale -msoft-float -mthumb-interwork -fpic -fno-exceptions -ffunction-sections -funwind-tables -fmessage-length=0 hello.c -Bdynamic -Wl,-T,/home/jyio/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-dynamic-linker,/system/bin/linker -Wl,&#8211;gc-sections -Wl,-z,nocopyreloc -Wl,&#8211;no-undefined -Wl,-rpath-link=/home/jyio/android-ndk-r6/platforms/android-8/arch-arm -L/home/jyio/android-ndk-r6/platforms/android-8/arch-arm/usr/lib -nostdlib /home/jyio/android-ndk-r6/platforms/android-8/arch-arm/usr/lib/crtend_android.o /home/jyio/android-ndk-r6/platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o -lc /home/jyio/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a -lm -ldl</p></blockquote>
<p>See how it transformed our innocent little command into a monster! This might be overkill for a hello world program, but it provides pretty good support for more complex software such as OpenSSL, cURL, and Python. It would be a good idea to add the NDK toolchain and agcc.bash to $PATH before trying to build a big program. In my case, the toolchain resides in <em>~/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin</em>. If you want to build some software that come with configure scripts, you might start with:</p>
<blockquote><p><strong>CC=agcc.bash</strong> ./configure</p></blockquote>
<p>Do try this at home! Relevant links:</p>
<ul>
<li><a href="http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2">Android NDK r6</a> (or, <a href="http://developer.android.com/sdk/ndk/">the latest version</a>)</li>
<li><a href="http://dl.dropbox.com/u/1213413/htdocs/agcc/agcc.bash">agcc.bash</a></li>
<li><a href="http://dl.dropbox.com/u/1213413/htdocs/agcc/hello.c">hello.c</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2012/01/08/agcc-bash-make-native-android-c-programs-using-the-ndk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sparkler Candles, How Do They Work?</title>
		<link>http://inportb.com/2011/12/10/sparkler-candles-how-do-they-work/</link>
		<comments>http://inportb.com/2011/12/10/sparkler-candles-how-do-they-work/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 04:08:03 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=883</guid>
		<description><![CDATA[I sampled some sparkler candles today. These are narrow cylinders 2.5 mm across and 17 cm long. They burn just like regular candles, but they also sparkle intermittently and relight when blown out. I just had to investigate this strange pyrotechnic device. So I scraped the wax off one of the candles and found some...<a href="http://inportb.com/2011/12/10/sparkler-candles-how-do-they-work/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I sampled some <a href="http://www.wilton.com/store/site/product.cfm?sku=2811-1230">sparkler candles</a> today. These are narrow cylinders 2.5 mm across and 17 cm long. They burn just like regular candles, but they also sparkle intermittently and relight when blown out. I just had to investigate this strange pyrotechnic device.</p>
<div id="attachment_886" class="wp-caption aligncenter" style="width: 550px"><a href="http://inportb.com/wp-content/uploads/2011/12/candle.jpg"><img class="size-full wp-image-886" title="stripped and unstripped candles" src="http://inportb.com/wp-content/uploads/2011/12/candle.jpg" alt="" width="540" height="720" /></a><p class="wp-caption-text">on the left, a stripped candle</p></div>
<p>So I scraped the wax off one of the candles and found some gray flakes (fairy dust!) surrounding the wick. The material could be seen through the thin layer of wax along the entire length of the candle. The sparkling effect suggests that the flakes are metallic. They should also have a low heat capacity and autoignition point, so that even after the flame appears to be extinguished, they are warm enough to continue burning and light the candle again. What are these metallic flakes? I burned a candle to find out.</p>
<div id="attachment_885" class="wp-caption aligncenter" style="width: 535px"><a href="http://inportb.com/wp-content/uploads/2011/12/candle-burn.jpg"><img class="size-large wp-image-885" title="candle-burn" src="http://inportb.com/wp-content/uploads/2011/12/candle-burn-768x1024.jpg" alt="" width="525" height="700" /></a><p class="wp-caption-text">burning the candle</p></div>
<p>The white sparks of light were reminiscent of burning magnesium. Magnesium burns at or above 473 °C (883 °F), which is more than sufficient to ignite the paraffin vapor streaming away from a recently-extinguished candle wick.</p>
<div id="attachment_884" class="wp-caption aligncenter" style="width: 370px"><a href="http://inportb.com/wp-content/uploads/2011/12/mg-burn.jpg"><img class="size-full wp-image-884" title="mg-burn" src="http://inportb.com/wp-content/uploads/2011/12/mg-burn.jpg" alt="" width="360" height="480" /></a><p class="wp-caption-text">magnesium turnings on fire</p></div>
<p>Other metals could be added for a variety of spark colors.</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/12/10/sparkler-candles-how-do-they-work/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Where in the World is Mark Pilgrim?</title>
		<link>http://inportb.com/2011/10/04/where-in-the-world-is-mark-pilgrim/</link>
		<comments>http://inportb.com/2011/10/04/where-in-the-world-is-mark-pilgrim/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 03:22:20 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=869</guid>
		<description><![CDATA[It appears that Mark Pilgrim, the author of one of my favorite Python language resources, has pulled a disappearing act. I wanted to recall a certain page on diveintopython.org, but was instead greeted with a 410 error: Gone The requested resource / is no longer available on this server and there is no forwarding address....<a href="http://inportb.com/2011/10/04/where-in-the-world-is-mark-pilgrim/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>It appears that <a href="http://en.wikipedia.org/wiki/Mark_Pilgrim_(software_developer)">Mark Pilgrim</a>, the author of one of my favorite Python language resources, has pulled a disappearing act. I wanted to recall a certain page on diveintopython.org, but was instead greeted with a 410 error:</p>
<blockquote>
<h3>Gone</h3>
<p>The requested resource<br />
/<br />
is no longer available on this server and there is no forwarding address. Please remove all references to this resource.</p></blockquote>
<p>His other websites, as well as social networking accounts, have also gone:</p>
<ul>
<li><a href="http://diveintopython.org/">Dive Into Python</a></li>
<li><a href="http://diveintopython3.org/">Dive Into Python 3</a></li>
<li><a href="http://diveintohtml5.org/">Dive Into HTML5</a></li>
<li><a href="http://github.com/diveintomark">GitHub</a> (though it seems that someone has re-created the account)</li>
<li><a href="http://twitter.com/diveintomark">Twitter</a></li>
<li><a href="https://plus.google.com/111966606387715428604/posts">Google+</a></li>
<li><a href="http://www.reddit.com/r/IAmA/comments/f545e/i_am_a_fourtime_published_author_i_write_free/">Reddit</a></li>
</ul>
<p>His <a href="http://diveintomark.org/">personal site</a> is missing, too.</p>
<p>Whoa. How does someone just evaporate off the Internet like that? The search continues, but there may be a <a href="http://news.ycombinator.com/user?id=MarkPilgrim">ray of hope</a>&#8230;</p>
<p>Pilgrim has shared an incredible volume of information with Internet users everywhere. I hope he is alright.</p>
<p><strong>Update:</strong></p>
<p><a href="http://twitter.com/ultimatebuster">ultimatebuster</a> pointed me to <a href="http://dl.dropbox.com/u/1213413/markpilgrim.htm">firehose.diveintomark.org</a> [<a href="http://dl.dropbox.com/u/1213413/markpilgrim.xml">ATOM</a>], which contained recent Twitter activity; the site is now inaccessible, so the link points to my personal mirror copy.</p>
<p><a href="http://twitter.com/textfiles">Jason Scott</a> called Pilgrim&#8217;s local police department, and Pilgrim was less than amused&#8230;</p>
<blockquote><p><a href="http://twitter.com/#!/textfiles/status/121429857153462272">I called his police department to ask for a welfare check &#8211; someone had done it 4 minutes before me.</a></p>
<p><a href="http://twitter.com/#!/textfiles/status/121436177298493440">Mark Pilgrim is alive/annoyed we called the police. Please stand down and give the man privacy and space, and thanks everyone for caring.</a></p>
<p><a href="http://twitter.com/#!/textfiles/status/121436401131716608">The communication was specifically verified, it was him, and that&#8217;s that. That was the single hardest decision I&#8217;ve had to make this year.</a></p></blockquote>
<p>&#8230; and that&#8217;s that!</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/10/04/where-in-the-world-is-mark-pilgrim/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Managing A VirtualBox Guest Using Upstart</title>
		<link>http://inportb.com/2011/08/11/managing-a-virtualbox-guest-using-upstart/</link>
		<comments>http://inportb.com/2011/08/11/managing-a-virtualbox-guest-using-upstart/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 20:34:50 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=860</guid>
		<description><![CDATA[With a Windows 7 guest comfortably installed on my Ubuntu host, I turn my attention to making it automatically boot and shutdown with the host. Traditionally, we would use a SysV-style init script that uses VBoxManage/VBoxHeadless to start the guest and VBoxManage to stop it. Upstart seems to be the way to go now, so...<a href="http://inportb.com/2011/08/11/managing-a-virtualbox-guest-using-upstart/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>With a Windows 7 guest <a href="http://inportb.com/2011/08/11/setting-up-a-virtualbox-guest-on-a-headless-linux-host/" title="Setting Up A VirtualBox Guest On A Headless Linux Host">comfortably installed</a> on my Ubuntu host, I turn my attention to making it automatically boot and shutdown with the host. Traditionally, we would use a SysV-style init script that uses VBoxManage/VBoxHeadless to start the guest and VBoxManage to stop it. <a href="http://upstart.ubuntu.com/">Upstart</a> seems to be the way to go now, so let&#8217;s make a configuration file for that. And instead of powering off the guest every time (which should be done using ACPI events), it would be easier and faster to simply save the running state and restore it during the next boot.</p>
<p><span id="more-860"></span>As before, the VM is named <em>mustard</em>, my username is <em>inportb</em>, and this file is called <em>/etc/init/mustard.conf</em>&#8230;</p>
<blockquote><p>description &#8220;mustard VM&#8221;<br />
author &#8220;Jiang&#8221;</p>
<p>start on (local-filesystems and net-device-up IFACE=eth0)<br />
stop on runlevel [016]</p>
<p>console output</p>
<p>respawn<br />
respawn limit 5 10</p>
<p>pre-stop script<br />
 su inportb -c &#8220;VBoxManage controlvm mustard savestate&#8221;<br />
end script</p>
<p>exec su inportb -c &#8220;VBoxHeadless &#8211;startvm mustard&#8221;</p></blockquote>
<p>As soon as the local filesystems are ready and the network is up, Upstart would run VBoxHeadless and monitor the process. Should the process die unexpectedly (such as if someone hits the guest&#8217;s shutdown button by mistake), Upstart would bring it right back up. Furthermore, if some problem keeps terminating the process soon after starting, Upstart would stop trying after 5 bounces in 10 seconds. The &#8220;correct&#8221; way to start and stop the guest, respectively, would be through the host&#8230;</p>
<blockquote><p>sudo start mustard<br />
sudo stop mustard</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/08/11/managing-a-virtualbox-guest-using-upstart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting Up A VirtualBox Guest On A Headless Linux Host</title>
		<link>http://inportb.com/2011/08/11/setting-up-a-virtualbox-guest-on-a-headless-linux-host/</link>
		<comments>http://inportb.com/2011/08/11/setting-up-a-virtualbox-guest-on-a-headless-linux-host/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 19:02:32 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=854</guid>
		<description><![CDATA[VirtualBox comes with a rather nice commandline interface, and here&#8217;s how you&#8217;d work it. The following commands have not changed much since VirtualBox 3.1, and they have just been tested on VirtualBox 4.1. Before we start, here&#8217;re the guest specifications that we&#8217;re looking for&#8230; VM name mustard RAM 1 GiB SATA controller with 20 GiB...<a href="http://inportb.com/2011/08/11/setting-up-a-virtualbox-guest-on-a-headless-linux-host/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>VirtualBox comes with a rather nice <a href="http://www.virtualbox.org/manual/ch07.html">commandline interface</a>, and here&#8217;s how you&#8217;d work it. The following commands have not changed much since VirtualBox 3.1, and they have just been tested on VirtualBox 4.1.</p>
<p><strong>Before we start, here&#8217;re the guest specifications that we&#8217;re looking for&#8230;</strong></p>
<ul>
<li>VM name mustard</li>
<li>RAM 1 GiB</li>
<li>SATA controller with 20 GiB disk at mustard.vdi</li>
<li>IDE controller with CD/DVD at installer.iso</li>
<li>Bridged networking using host adapter eth0</li>
<li>OS Windows 7</li>
</ul>
<p><span id="more-854"></span><strong>Create machine and disk&#8230;</strong></p>
<blockquote><p>VBoxManage createvm -<em></em>-name mustard -<em></em>-ostype Windows7 -<em></em>-register<br />
VBoxManage modifyvm mustard -<em></em>-memory 1024 -<em></em>-acpi on -<em></em>-boot1 dvd -<em></em>-nic1 bridged -<em></em>-bridgeadapter1 eth0<br />
VBoxManage createhd -<em></em>-filename mustard.vdi -<em></em>-size 20480</p></blockquote>
<p><strong>Create SATA controller and attach disk&#8230;</strong></p>
<blockquote><p>VBoxManage storagectl mustard -<em></em>-name &#8220;SATA Controller&#8221; -<em></em>-add sata -<em></em>-controller IntelAhci<br />
VBoxManage storageattach mustard -<em></em>-storagectl &#8220;SATA Controller&#8221; -<em></em>-port 0 -<em></em>-device 0 -<em></em>-type hdd -<em></em>-medium mustard.vdi</p></blockquote>
<p><strong>Create IDE controller and add disc&#8230;</strong></p>
<blockquote><p>VBoxManage storagectl mustard -<em></em>-name &#8220;IDE Controller&#8221; -<em></em>-add ide -<em></em>-controller PIIX4<br />
VBoxManage storageattach mustard -<em></em>-storagectl &#8220;IDE Controller&#8221; -<em></em>-port 0 -<em></em>-device 0 -<em></em>-type dvddrive -<em></em>-medium installer.iso</p></blockquote>
<p>The proprietary version of VirtualBox exports a nifty RDP service that you can use to set up the machine. With VirtualBox 4+, the proprietary extensions come in a separate package. Note that the local and remote mouse cursors are not synchronized, so it may be somewhat difficult to operate. Starting the machine is simple&#8230;</p>
<blockquote><p>VBoxHeadless -<em></em>-startvm mustard</p></blockquote>
<p>After installation, I&#8217;d recommend setting up RDP from within Windows (or SSH in a UNIXy guest), because of the subpar VirtualBox RDP experience. If you want, change the boot order and remove the installer CD/DVD&#8230;</p>
<blockquote><p>VBoxManage modifyvm mustard -<em></em>-boot1 disk<br />
VBoxManage storageattach mustard -<em></em>-storagectl &#8220;IDE Controller&#8221; -<em></em>-port 0 -<em></em>-device 0 -<em></em>-medium emptydrive</p></blockquote>
<p>&#8230; and that&#8217;s that! Since I&#8217;m using an Ubuntu host, my <a title="Managing A VirtualBox Guest Using Upstart" href="http://inportb.com/2011/08/11/managing-a-virtualbox-guest-using-upstart/">next post</a> deals with how to start and suspend this VM during boot and shutdown.</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/08/11/setting-up-a-virtualbox-guest-on-a-headless-linux-host/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kindle2-Turned-Kindle3 Does IRC</title>
		<link>http://inportb.com/2011/06/03/kindle2-turned-kindle3-does-irc/</link>
		<comments>http://inportb.com/2011/06/03/kindle2-turned-kindle3-does-irc/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 16:29:53 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=849</guid>
		<description><![CDATA[One of the improvements in the Amazon Kindle3 OS is the WebKit-based browser. Based on a tip, I tried communicating on Freenode using the Webchat interface. How do you get this particular OS update on a second-generation Kindle? Well, let&#8217;s just say it&#8217;s not officially supported.]]></description>
			<content:encoded><![CDATA[<p>One of the improvements in the Amazon Kindle3 OS is the WebKit-based browser. Based on a tip, I tried communicating on Freenode using the Webchat interface.</p>
<p><a href="http://inportb.com/wp-content/uploads/2011/06/freenode.gif"><img class="aligncenter size-medium wp-image-850" title="freenode" src="http://inportb.com/wp-content/uploads/2011/06/freenode-225x300.gif" alt="" width="225" height="300" /></a></p>
<p>How do you get this particular OS update on a second-generation Kindle? Well, let&#8217;s just say <a href="http://www.reddit.com/r/kindle/comments/hmyo5/hack_to_install_kindle_3x_on_kindle_2_and_dx/">it&#8217;s not officially supported</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/06/03/kindle2-turned-kindle3-does-irc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reblox Build Process</title>
		<link>http://inportb.com/2011/05/26/reblox-build-process/</link>
		<comments>http://inportb.com/2011/05/26/reblox-build-process/#comments</comments>
		<pubDate>Fri, 27 May 2011 01:14:22 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=837</guid>
		<description><![CDATA[Since I&#8217;ve been asked several times to demonstrate how to make a reblox, I decided to put together a little photo tutorial. Enjoy! The Bloxes website features construction images as well, and the process is similar.]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;ve been asked several times to demonstrate how to make a <a title="Bloxes" href="/2011/05/21/bloxes/">reblox</a>, I decided to put together a little photo tutorial. Enjoy!</p>
<div id="attachment_839" class="wp-caption aligncenter" style="width: 285px"><a href="http://inportb.com/wp-content/uploads/2011/05/instruction.jpg"><img class="size-medium wp-image-839" title="instruction" src="http://inportb.com/wp-content/uploads/2011/05/instruction-275x300.jpg" alt="" width="275" height="300" /></a><p class="wp-caption-text">Look at the pretty pictures.</p></div>
<p>The Bloxes website features construction images as well, and the process is similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/05/26/reblox-build-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloxes</title>
		<link>http://inportb.com/2011/05/21/bloxes/</link>
		<comments>http://inportb.com/2011/05/21/bloxes/#comments</comments>
		<pubDate>Sun, 22 May 2011 03:16:11 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=824</guid>
		<description><![CDATA[Bloxes are nifty &#8220;modular adult-sized building blocks.&#8221; They are actually interlocking cardboard boxes that can be used to build things such as furniture. They&#8217;re not exactly inexpensive, and shipping takes a while. Instead of ordering bloxes, I decided to prototype my own on paper just for fun. This design might require some modification for use...<a href="http://inportb.com/2011/05/21/bloxes/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bloxes.com/">Bloxes</a> are nifty &#8220;modular adult-sized building blocks.&#8221; They are actually interlocking cardboard boxes that can be used to build things such as furniture.</p>
<p>They&#8217;re not exactly inexpensive, and shipping takes a while. Instead of ordering bloxes, I decided to <a title="Reblox Build Process" href="/2011/05/26/reblox-build-process/">prototype my own on paper</a> just for fun. This design might require some modification for use with cardboard (in particular, I&#8217;m sure you could figure out how the original design works and apply it to your project).</p>
<p><a href="http://dl.dropbox.com/u/1213413/reblox/reblox.svg"><img class="aligncenter" title="inportbloxes design" src="http://dl.dropbox.com/u/1213413/reblox/reblox.png" alt="" width="256" /></a></p>
<p>If you have the resources, go ahead and roll your own cardboard modules. As usual, it&#8217;s easier said than done&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/05/21/bloxes/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Thoughts on Plasma Netbook, Plasma Mobile, Unity, GNOME Shell, and Xfwm</title>
		<link>http://inportb.com/2011/04/29/thoughts-on-plasma-netbook-plasma-mobile-unity-gnome-shell-and-xfwm/</link>
		<comments>http://inportb.com/2011/04/29/thoughts-on-plasma-netbook-plasma-mobile-unity-gnome-shell-and-xfwm/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 14:38:48 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=820</guid>
		<description><![CDATA[For months, I&#8217;ve been using a Kubuntu 11.04 pre-release on my Lenovo IdeaPad S10-3t, a convertible tablet netbook. In general, the Plasma Netbook interface is reasonably touch-friendly with large buttons that I could easily access with my fingers. It tries to save space by hiding the global application menu behind a button, but I would...<a href="http://inportb.com/2011/04/29/thoughts-on-plasma-netbook-plasma-mobile-unity-gnome-shell-and-xfwm/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>For months, I&#8217;ve been using a Kubuntu 11.04 pre-release on my Lenovo IdeaPad S10-3t, a convertible tablet netbook. In general, the Plasma Netbook interface is reasonably touch-friendly with large buttons that I could easily access with my fingers. It tries to save space by hiding the global application menu behind a button, but I would have liked easier access to the menu. Application support for touch input is rather spotty, as expected, but some software come with plugins to make the touch experience a bit more compelling. For example, Firefox has the Grab and Drag extension and Chromium has chromeTouch. The virtual keyboard (kvkbd) is somewhat awkward, however, so I usually have the keyboard out.</p>
<p><span id="more-820"></span>Ubuntu 11.04 dropped yesterday, and I&#8217;ve taken the opportunity to install some other user interfaces marketed for touch-centric devices. The GTK-based virtual keyboard (onboard) is also inadequate.</p>
<p>Unity has just replaced GNOME on Ubuntu, and Canonical is putting all its support behind it as a mobile platform.</p>
<ul>
<li>It&#8217;s lightweight, and it starts up quickly.</li>
<li>The dock/launcher on the left side supports the &#8220;grab&amp;drag&#8221; gesture for scrolling.</li>
<li>The full application menu can be accessed by a quick tap on the upper-left corner, and has large, finger-friendly buttons.</li>
<li>The dock hides as soon as an application opens, and displays when the user pushes the mouse cursor against the left edge of the screen (or upper-left corner); this is somewhat awkward for touchscreen users.</li>
<li>In fact, there are a number of hover-dependent events that are difficult or impossible to trigger using a touchscreen.</li>
</ul>
<p>GNOME Shell was kicked out in favor of Unity, but it&#8217;s also supposed to be finger-friendly. I had to add a PPA, and the installation completely broke the theming across all GTK applications, but this was expected and understandable.</p>
<ul>
<li>It&#8217;s very accessible without a mouse, and nothing becomes unusable because of specific mouse requirements.</li>
<li>The &#8220;grab&amp;drag&#8221; gesture is well-supported, including for window management; windows could be dragged between virtual desktops.</li>
<li>There&#8217;s also a long-press gesture for accessing context menus.</li>
<li>Virtual desktops are added and removed dynamically; there is always an &#8220;empty&#8221; desktop on the bottom of the list, which creates a new desktop when a window is dropped on it.</li>
<li>The dock on the left scales in size as icons are added and removed from it, so there may be problems with a long list.</li>
</ul>
<p>Plasma Mobile is only a technology preview at this point. It doesn&#8217;t even come with an Xsession script, so I had to run plasma-mobile to start it. The interaction is very smartphone-like, with &#8220;grab&amp;drag&#8221; supported everywhere (including widgets). However, &#8220;everywhere&#8221; is relative because Plasma Mobile does not have an application launcher at all.</p>
<p>Xfwm is my touch-agnostic baseline. I keep XFCE around on a separate partition so I could use Ubuntu+1 on my main partition and have recovery tools if/when it breaks. The touch screen works mostly like a mouse, in this case. Docks are all the rage these days, and XFCE is no exception; it auto-hides under the bottom of the screen, so it&#8217;s also somewhat difficult to reach.</p>
<p>In my opinion, a compelling touchscreen experience must provide, in no particular order:</p>
<ul>
<li>&#8220;grab&amp;drag&#8221; and long-press gestures</li>
<li> a virtual keyboard on par with those of Android and iOS, or a graffiti-like text input mechanism <em>à la</em> PalmOS</li>
<li> multitouch, if possible</li>
<li> differential treatment of screen and mouse inputs, so that the mouse doesn&#8217;t trigger gestures or virtual keyboards and can be used for precision manipulation</li>
</ul>
<p>What do you think is important in a touch interface?</p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/04/29/thoughts-on-plasma-netbook-plasma-mobile-unity-gnome-shell-and-xfwm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World&#8230; Again!</title>
		<link>http://inportb.com/2011/04/13/hello-world-again/</link>
		<comments>http://inportb.com/2011/04/13/hello-world-again/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 16:50:40 +0000</pubDate>
		<dc:creator>Jiang Yio</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inportb.com/?p=795</guid>
		<description><![CDATA[A minor mishap with my current host recently forced me to restore from my incomplete backups. Thankfully, not much was lost, and what remaining [textual] data was scraped off the Google and Bing caches. As far as images go, we&#8217;ll have to see what the Internet Archive Wayback Machine could do for us. At any...<a href="http://inportb.com/2011/04/13/hello-world-again/">&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://updates.clubuptime.com/2011/04/08/dalvz4-emergency-raid-maintenance-2/">minor mishap</a> with <a href="http://www.clubuptime.com/">my current host</a> recently forced me to restore from my incomplete backups. Thankfully, not much was lost, and what remaining [textual] data was scraped off the Google and Bing caches. As far as images go, we&#8217;ll have to see what the Internet Archive Wayback Machine could do for us. At any rate, I&#8217;m not blaming the host, because these things do happen from time to time and I should have paid more attention to redundancy.</p>
<p>During the downtime, EveryDNS/DynDNS kept the DNS service going and Freenode chugged along as usual. The wiki was completely wiped, but I managed to scrape most of the text from caches everywhere; it will be returning shortly, and I&#8217;ll probably need some help moving the cached content to their rightful place.</p>
<p>Until next time <img src='http://inportb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://inportb.com/2011/04/13/hello-world-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

