<?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>Andrew Jorgensen &#187; Technology</title>
	<atom:link href="http://andrew.jorgensenfamily.us/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrew.jorgensenfamily.us</link>
	<description>It&#039;s better than bad, it&#039;s good!</description>
	<lastBuildDate>Mon, 12 Sep 2011 18:01:27 +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>Surcharging</title>
		<link>http://andrew.jorgensenfamily.us/2011/08/surcharging/</link>
		<comments>http://andrew.jorgensenfamily.us/2011/08/surcharging/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 20:52:27 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=762</guid>
		<description><![CDATA[Square charges a flat 2.75% as of this post, so let&#8217;s say someone wants to pay you $100 but you don&#8217;t want to be the one to take the hit for using a credit card. How do you arrive at &#8230; <a href="http://andrew.jorgensenfamily.us/2011/08/surcharging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Square – Accept credit card payments with your mobile phone" href="https://squareup.com/">Square</a> charges a <a title="Square - Pricing" href="https://squareup.com/pricing">flat 2.75%</a> as of this post, so let&#8217;s say someone wants to pay you $100 but you don&#8217;t want to be the one to take the hit for using a credit card. How do you arrive at the correct value for the surcharge?</p>
<p>You could add 2.75% to arrive at $102.75, but then when Square takes their cut you only get $99.92. You lost 8¢! That&#8217;s because 2.75% of $102.75 is more than $2.75. So let&#8217;s get our maths in a row and fix it!</p>
<p>We&#8217;re looking for the value x such that x-x*2.75%=y where y is the amount you want to end up with. Simplify that using algebra and you get x*97.25%=y or rather x=y*1/97.25% or x=y*102.8277635%. For you folks without a % on your calculator that&#8217;s x=y*1.028277635.</p>
<p><a href="http://www.wolframalpha.com/input/?i=x=y*1/0.9725"><img class="alignnone size-full wp-image-777" title="x=y*1/0.9725" src="http://andrew.jorgensenfamily.us/files/2011/08/square-total.gif" alt="" width="100" height="37" /></a></p>
<p>The generalized solution for finding what you should surcharge, compared to what you are being surcharged is x=1/(1-y)-1.</p>
<p><a href="http://www.wolframalpha.com/input/?i=plot+x%3D1%2F%281-y%29-1%2Cy%3D0.0275+from+x%3D0+to+5+y%3D0+to+1"><img class="alignnone size-full wp-image-783" title="x=1/(1-y)-1" src="http://andrew.jorgensenfamily.us/files/2011/08/surcharge-plot.gif" alt="" width="393" height="300" /></a></p>
<p>In the $100 range we can drop some of those extra digits to arrive at a surcharge of 2.83%. Since we rounded up this keeps you safe in the $1,000 range too.</p>
<p>Of cource it&#8217;s easier to calculate a surcharge of 3%, but that makes you a bit of a jerk. On the other hand you could take the 8¢ hit and call it even, or go down to 2% and share the cost more evenly.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2011/08/surcharging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backing up your Nexus One without root</title>
		<link>http://andrew.jorgensenfamily.us/2010/12/backup-nexus-one-no-root/</link>
		<comments>http://andrew.jorgensenfamily.us/2010/12/backup-nexus-one-no-root/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 02:34:21 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=680</guid>
		<description><![CDATA[Rooting your phone is a pain, especially if you have all the latest updates installed so that the known exploits don&#8217;t work. But the only reason I wanted to root my Nexus One was to make a full backup so &#8230; <a href="http://andrew.jorgensenfamily.us/2010/12/backup-nexus-one-no-root/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Rooting your phone is a pain, especially if you have all the latest updates installed so that the known exploits don&#8217;t work.  But the only reason I wanted to root my Nexus One was to make a full backup so that I could restore it after giving CyanogenMod a try.  You can create a full backup without root privileges.  Note that this very likely requires an unlocked bootloader (I can&#8217;t verify as mine is already unlocked).  This is a quick howto and as such will presume you have a level of expertise.</p>
<p>If you haven&#8217;t already done so&#8230;</p>
<p>Download <a href="http://developer.htc.com/google-io-device.html#s2">fastboot</a> for your platform from HTC.</p>
<p>Shut down your device and hold the trackball button down while you boot up again.  This will put the device in fastboot mode (the one with three skateboarding androids).  Plug in via USB.</p>
<p><em>This will delete your data! Do some other kinds of backups and sync your data w/ Google first!</em></p>
<blockquote><p><code>fastboot oem unlock</code></p></blockquote>
<p>Follow the prompts on screen to unlock your bootloader and technically void your warranty.</p>
<p>Now on to making a full backup&#8230;</p>
<p>Ensure you have enough space on your microSD card (my backup took around 300MB).</p>
<p>Download a <a href="http://mirror1.kanged.net/recoveries/">recovery image</a> that does backups.  Make sure you get one that&#8217;s correct for your device (one with <a href="http://mirror1.kanged.net/recoveries/recovery-clockwork-passion.img">passion</a> in the name for the Nexus One).  <a href="http://mirror1.kanged.net/recoveries/recovery-clockwork-passion.img.md5sum.txt">Checksum</a> it to make sure it downloaded correctly.  Get into the bootloader again.</p>
<blockquote><p><code>fastboot boot recovery.img</code></p></blockquote>
<p>This boots the custom recovery <em>without</em> flashing it.  When it&#8217;s done booting use the menu it shows you to do a full Nandroid backup and then reboot.  It will take a couple minutes.</p>
<p>When you want to restore your backup repeat this procedure but select restore instead of backup in the recovery menu.  Restore takes longer than backup, be patient.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2010/12/backup-nexus-one-no-root/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using osc build to make a jail on openSUSE</title>
		<link>http://andrew.jorgensenfamily.us/2010/03/osc-build-jail/</link>
		<comments>http://andrew.jorgensenfamily.us/2010/03/osc-build-jail/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 23:52:45 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=565</guid>
		<description><![CDATA[Before I start let me say that there may be easier or more direct ways to do this.  This has the advantage of being pretty easy for me to do.  I&#8217;m not going to discuss why you might want to &#8230; <a href="http://andrew.jorgensenfamily.us/2010/03/osc-build-jail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Before I start let me say that there may be easier or more direct ways to do this.  This has the advantage of being pretty easy for me to do.  I&#8217;m not going to discuss why you might want to do this, or what a jail is, etc..</p>
<p>You can get the most recent osc and build tools from the openSUSE:Tools repository.  You will also need an account on the build service.</p>
<p>Create an empty directory<br />
<code>mkdir jail/</code></p>
<p>Go into that directory and create a dummy RPM .spec file<br />
<code>cd jail/</code><br />
<code>vim jail.spec</code></p>
<blockquote>
<pre>Name:           jail
Version:        0
Release:        0
Summary:        Jail
License:        Jail
Group:          Jail
BuildRequires:  vim gdb glib2-devel zypper
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description

%prep

%build

%install

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)

%changelog</pre>
</blockquote>
<p>The <code>BuildRequires:</code> tag is where you specify which packages you want installed in your jail, what I have listed there is just an example.</p>
<p>Also create an empty .osc directory (this prevents an ugly bug where the jail tries to delete itself)<br />
<code>mkdir .osc/</code></p>
<p>You&#8217;ll need to be logged in to OBS if you aren&#8217;t already<br />
<code>osc ls</code><br />
Enter your credentials at the prompts</p>
<p>If for some reason that didn&#8217;t work you may need to put your password into your .oscrc file<br />
<code>vim ~/.oscrc</code><br />
Toward the bottom&#8230;</p>
<blockquote>
<pre>[https://api.opensuse.org]
user=&lt;YOUR USERNAME&gt;
pass=&lt;YOUR PASSWORD&gt;</pre>
</blockquote>
<p>If your password changed you may need to delete any lines that say <code>passx=&lt;GARBAGE&gt;</code>, or manipulate your GNOME Keyring.</p>
<p>Now you should be ready to build a jail</p>
<blockquote><pre>osc build --local-package --root=&lt;/path/to/new/jail&gt; --alternative-project=openSUSE:&lt;VERSION&gt; &lt;ARCH&gt;</pre>
</blockquote>
<p><code>&lt;VERSION&gt;</code> is, for example, <code>11.2</code><br />
<code>&lt;ARCH&gt;</code> is only needed if you want a different arch (<code>i586</code> on an <code>x86_64</code> machine)<br />
<code>&lt;/path/to/new/jail&gt;</code> is where you want the tool to put your jail (not the directory you&#8217;re in!), I use <code>/var/tmp/jail</code><br />
You may be prompted for your root password<br />
When the jail is built (assuming it worked) it will fail complaining about an empty package, ignore that and get on with your life: you only wanted a jail, not a package.</p>
<p>At this point you can chroot into your jail<br />
<code>sudo chroot /path/to/new/jail</code><br />
or if you are changing architectures&#8230;<br />
<code>sudo linux32 chroot /path/to/new/jail﻿﻿</code></p>
<p>Yay, you&#8217;re done!</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2010/03/osc-build-jail/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mono Appliance for VirtualPC</title>
		<link>http://andrew.jorgensenfamily.us/2009/07/mono-appliance-for-virtualpc/</link>
		<comments>http://andrew.jorgensenfamily.us/2009/07/mono-appliance-for-virtualpc/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 00:48:26 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=503</guid>
		<description><![CDATA[With the release of Mono 2.4.2 we are introducing an appliance image for Virtual PC. This makes a lot of sense for Mono as one of our favorite target user groups is .NET developers looking to get an application running &#8230; <a href="http://andrew.jorgensenfamily.us/2009/07/mono-appliance-for-virtualpc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With the release of Mono 2.4.2 we are introducing an appliance image for Virtual PC.  This makes a lot of sense for Mono as one of our favorite target user groups is .NET developers looking to get an application running on Linux. Many of these developers use Virtual PC.</p>
<p>All three of our appliance images (LiveCD, VMware, and now VirtualPC) contain exactly the same packages, etc.  In fact our <code>.vhd</code> is actually just the <code>.vmdk</code> from the VMware appliance built in <a href="http://susestudio.com/">SUSE Studio</a> and converted using <code>qemu-img</code> (requires a recent version, possibly unreleased).  And actually the <code>.vmdk</code> we provide boots just fine under other VMs such as <a href="http://www.qemu.org/">QEMU</a> and <a href="http://www.virtualbox.org/">VirtualBox</a>.  Linux can be nice that way.</p>
<p>We hope this will make Mono even easier for .NET developers to use but you may want to use VMware anyway.  The VirtualPC appliance has some problems:</p>
<ul>
<li>There are no &#8220;VM Additions&#8221;.  They exist but they are not open source and IIRC the ones that exist don&#8217;t work on a recent Linux.  So no handy stuff like drag-and-drop or mouse-in-mouse-out.</li>
<li>Things can be a bit slow / choppy at times.  This clears up after a while or maybe after a reboot.  Not sure what&#8217;s going on there.</li>
<li>We added some kernel parameters to make things run a little better: <code>noreplace-paravirt i8042.noloop clock=pit</code>.  <a href="http://beyondfocus.com/">Joseph Hill</a> dug these up on the Internet somewhere.</li>
<li>On the new <em>Windows Virtual PC</em> (the one for Windows 7) you don&#8217;t get a network device by default.  As far as I can tell we&#8217;re the only project shipping a <code>.vmc</code> configuration file with our <code>.vhd</code> anyway so the expectation seems to be that you will configure your own VM.</li>
</ul>
<p>Find this and other fine Mono products at <a href="http://go-mono.com/mono-downloads/">http://go-mono.com/mono-downloads/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2009/07/mono-appliance-for-virtualpc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Grandstream HandyTone 503</title>
		<link>http://andrew.jorgensenfamily.us/2009/06/grandstream-handytone-503/</link>
		<comments>http://andrew.jorgensenfamily.us/2009/06/grandstream-handytone-503/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 17:20:43 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=492</guid>
		<description><![CDATA[My current SIP ATA is the HT503 from GrandStream. I bought it because if I&#8217;m going to use VoIP at all at home I need to have a reliable fallback, at least until all my ducks (ISP, router, QoS, ATA, &#8230; <a href="http://andrew.jorgensenfamily.us/2009/06/grandstream-handytone-503/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My current SIP ATA is the <a href="http://grandstream.com/products/ht_series/ht503/ht503.html">HT503</a> from GrandStream.  I bought it because if I&#8217;m going to use VoIP at all at home I need to have a reliable fallback, at least until all my ducks (ISP, router, QoS, ATA, etc.) are in a row.  And realistically I&#8217;m probably going to be paying huge monthly fees to Qwest for nothing but local phone service for the rest of my life.</p>
<p><img src="http://andrew.jorgensenfamily.us/files/2009/06/ht503.jpg" alt="ht503" title="ht503" width="374" height="289" class="alignnone size-full wp-image-493" /></p>
<p>The HT503 has an FXS and an FXO so that it sits between our phones and our land-line.  This means I can pick up the phone and place a call on the public switched telephone network (PSTN) or on the Internet depending on how I dial.  It also means that calls coming in from the Internet or the PSTN all ring the same phones.  Thus I can try VoIP (and get my wife to try it) without disrupting our lives.  (It can also do fun things like let me call in from the Internet and place a local call on my land-line but I don&#8217;t use those features.)</p>
<p>The dark side to this story is that my first HT503 completely failed it&#8217;s firmware upgrade and would not boot at all.  Two more shipping charges later I had another HT503 which I upgraded far more carefully.  Why would any embedded device not have some fail-safe recovery method?  Dunno.</p>
<p>To add insult to injury when I finally got the new device configured I found that it would not dial on the PSTN reliably.  I tried to tweak settings to get it working but I failed and had to pull the plug.  Months later I saw that there had been many firmware revisions since my last try so with renewed confidence I upgraded and tried again.  Sadly I got the same result: when I&#8217;d dial a ten-digit phone number I would get a message from Qwest that I had dialed wrong.</p>
<p>It turns out this was actually my fault (sort of).  Recently central Utah was moved to ten-digit dialing to accommodate a new area code they decided to overlay on the same region.  I decided it would be nice to have the device do the right thing when a seven-digit number was dialed, so I programmed the dial-plan to add 801 to the front of any seven-digit number.  It turns out, though, that GrandStream dial-plans are not interpreted the way I thought they were.  For some reason when I dialed a ten-digit number the device would truncate the number and slap 801 on the front resulting in a new, wrong, ten-digit number (801-801-5550 if I dialed 801-555-0123).  I still don&#8217;t know how to write the correct dial-plan for this.  After dropping the seven-digit rule everything works.</p>
<p>Actually there was one more brief problem where an incoming PSTN call would ring but when the person answering the call picked up they would hear a busy tone and the caller would continue to hear ringing.  That problem went away.  I&#8217;m not sure if I did something to fix it.  When the HT503 makes a connection between it&#8217;s FXO and it&#8217;s FXS it does so by having the one port call the other on the local loopback interface.  The answer to this mystery may be in that architecture somewhere.  One thing it means is that if you select a lossy codec for both interfaces it seems to actually encode and decode the audio even though it&#8217;s on the same device.</p>
<p>Overall I&#8217;m actually going to hazard recommending this device.  It&#8217;s compact, affordable, full of great features, and so far (apart from my own mistakes) has been very reliable.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2009/06/grandstream-handytone-503/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mono 2.4 Appliance</title>
		<link>http://andrew.jorgensenfamily.us/2009/03/mono-24-appliance/</link>
		<comments>http://andrew.jorgensenfamily.us/2009/03/mono-24-appliance/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 17:17:16 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=455</guid>
		<description><![CDATA[I am very pleased to announce the availability of the Mono 2.4 VMware Appliance and LiveCD. The new image is based on openSUSE 11.1 and every known appliance-specific bug has been fixed. There are many software updates as well: Banshee &#8230; <a href="http://andrew.jorgensenfamily.us/2009/03/mono-24-appliance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am very pleased to announce the availability of the Mono 2.4 VMware Appliance and LiveCD.  The new image is based on openSUSE 11.1 and every known appliance-specific bug has been fixed.  There are many software updates as well:</p>
<ul>
<li>Banshee 1.4.3</li>
<li>gbrainy 1.1</li>
<li>GNOME Do 0.8.1.3</li>
<li>MonoDevelop 2.0</li>
<li>Monsoon 0.20</li>
<li>Tasque 0.1.8</li>
<li>Tomboy 0.14.0</li>
</ul>
<p>By some accounts this is definitely the best Mono Appliance release yet.  Get if from the <a href="http://www.go-mono.com/mono-downloads/">mono downloads</a> page and <a href="http://mono-project.com/Bugs">report any bugs you find</a>.</p>
<p><img src="http://andrew.jorgensenfamily.us/files/2009/03/mono-appliance-24.png" alt="Screenshot" title="Screenshot" width="450" height="338" class="alignnone size-full wp-image-468" /></p>
<p>If you have a nice open source .NET (or ASP.NET) application you&#8217;d like to see added to the appliance please leave a comment.</p>
<p><a href="http://susestudio.com"><img title="Built with SUSE Studio" src="http://susestudio.com/images/built-with-web.png" width="120" height="30" alt="Built with SUSE Studio"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2009/03/mono-24-appliance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sound in VMware with openSUSE 11.1</title>
		<link>http://andrew.jorgensenfamily.us/2009/02/sound-in-vmware-with-opensuse-111/</link>
		<comments>http://andrew.jorgensenfamily.us/2009/02/sound-in-vmware-with-opensuse-111/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 15:18:56 +0000</pubDate>
		<dc:creator>Andrew Jorgensen</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://andrew.jorgensenfamily.us/?p=448</guid>
		<description><![CDATA[Solved: I noticed the other day that Scott Reeves, who works just down the hall from me, owned most of SUSE&#8217;s PulseAudio bugs. He gave me the answer to this perplexing problem. The cause is the new &#8220;glitch free&#8221; code &#8230; <a href="http://andrew.jorgensenfamily.us/2009/02/sound-in-vmware-with-opensuse-111/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><strong>Solved</strong>: I noticed the other day that Scott Reeves, who works just down the hall from me, owned most of SUSE&#8217;s PulseAudio bugs.  He gave me the answer to this perplexing problem.  The cause is the new &#8220;<a href="http://0pointer.de/blog/projects/pulse-glitch-free.html">glitch free</a>&#8221; code in pulse (ironic? yes!) which can be disabled by adding <code>tsched=0</code> to the <code>load-module module-hal-detect</code> line in <code>/etc/pulse/default.pa</code>.</em></p>
<blockquote><p><code>load-module module-hal-detect tsched=0</code></p></blockquote>
<p>I need help!  For the Mono 2.4 VMware Appliance we have upgraded to openSUSE 11.1 but for some reason audio plays to fast.  It seems to have something to do with PulseAudio.  If we remove pulse then audio plays at a normal rate but then Moonlight doesn&#8217;t play audio at all.  If we can&#8217;t get this all fixed before release we will have to revert to openSUSE 11.0.</p>
<p>Sound in Linux has never been great and it never will be if we don&#8217;t work through these problems and plunge forward.  If you care about Mono or openSUSE or PulseAudio or VMware please help me fix this bug.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrew.jorgensenfamily.us/2009/02/sound-in-vmware-with-opensuse-111/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

