<?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>borisSCHEIMAN // &#187; C#</title>
	<atom:link href="http://www.bscheiman.org/category/programming/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bscheiman.org</link>
	<description>Lifestyle, hobbies, work, rage...</description>
	<lastBuildDate>Wed, 08 Dec 2010 20:20:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Detecting hardware type (MonoTouch)</title>
		<link>http://www.bscheiman.org/2010/08/30/detecting-hardware-type-monotouch/</link>
		<comments>http://www.bscheiman.org/2010/08/30/detecting-hardware-type-monotouch/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 03:24:22 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[MonoTouch]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=199</guid>
		<description><![CDATA[The MonoTouch wiki lists a snippet used to detect which hardware is being used at runtime &#8211; but it hasn&#8217;t been updated since iPhone 3G. This means no iPhone 3GS, iPhone 4 or iPad.
Code after the break; Kudos to the MonoTouch team!
UPDATE: Added iPhoneSimulator, iPhone4Simulator and  [...]]]></description>
			<content:encoded><![CDATA[<p>The MonoTouch wiki <a href="http://wiki.monotouch.net/HowTo/Device/Detect_the_Hardware_Type">lists a snippet</a> used to detect which hardware is being used at runtime &#8211; but it hasn&#8217;t been updated since iPhone 3G. This means no iPhone 3GS, iPhone 4 or iPad.</p>
<p>Code after the break; Kudos to the MonoTouch team!</p>
<p><strong>UPDATE</strong>: Added iPhoneSimulator, iPhone4Simulator and iPadSimulator.<br />
<strong>ANOTHER UPDATE</strong>: Fixed some identifiers. Sorry about that.</p>
<p><span id="more-199"></span></p>
<pre class="brush: csharp; title: ; notranslate">

using System;
using System.Runtime.InteropServices;
using MonoTouch.Foundation;
using MonoTouch.UIKit;

namespace YourNamespace {
	public class DeviceHardware {
		public const string HardwareProperty = &quot;hw.machine&quot;;

		public enum HardwareVersion {
			iPhone,
			iPhone3G,
			iPhone3GS,
			iPhone4,
			iPod1G,
			iPod2G,
			iPod3G,
			iPad,
			iPhoneSimulator,
			iPhone4Simulator,
			iPadSimulator,
			Unknown
		}

		[DllImport(MonoTouch.Constants.SystemLibrary)]
		static internal extern int sysctlbyname([MarshalAs(UnmanagedType.LPStr)] string property, IntPtr output, IntPtr oldLen, IntPtr newp, uint newlen);

		public static HardwareVersion Version {
			get {
				var pLen = Marshal.AllocHGlobal(sizeof(int));
				sysctlbyname(DeviceHardware.HardwareProperty, IntPtr.Zero, pLen, IntPtr.Zero, 0);

				var length = Marshal.ReadInt32(pLen);

				if (length == 0) {
					Marshal.FreeHGlobal(pLen);

					return HardwareVersion.Unknown;
				}

				var pStr = Marshal.AllocHGlobal(length);
				sysctlbyname(DeviceHardware.HardwareProperty, pStr, pLen, IntPtr.Zero, 0);

				var hardwareStr = Marshal.PtrToStringAnsi(pStr);
				var ret = HardwareVersion.Unknown;

				if (hardwareStr == &quot;iPhone1,1&quot;)
					ret = HardwareVersion.iPhone;
				else if (hardwareStr == &quot;iPhone1,2&quot;)
					ret = HardwareVersion.iPhone3G;
				else if (hardwareStr == &quot;iPhone2,1&quot;)
					ret = HardwareVersion.iPhone3GS;
				else if (hardwareStr == &quot;iPhone3,1&quot;)
					ret = HardwareVersion.iPhone4;
				else if (hardwareStr == &quot;iPad1,1&quot;)
					ret = HardwareVersion.iPad;
				else if (hardwareStr == &quot;iPod1,1&quot;)
					ret = HardwareVersion.iPod1G;
				else if (hardwareStr == &quot;iPod2,1&quot;)
					ret = HardwareVersion.iPod2G;
				else if (hardwareStr == &quot;iPod3,1&quot;)
					ret = HardwareVersion.iPod3G;
				else if (hardwareStr == &quot;i386&quot;) {
					if (UIDevice.CurrentDevice.Model.Contains(&quot;iPhone&quot;))
						ret = UIScreen.MainScreen.Bounds.Height * UIScreen.MainScreen.Scale == 960 || UIScreen.MainScreen.Bounds.Width * UIScreen.MainScreen.Scale == 960 ? HardwareVersion.iPhone4Simulator : HardwareVersion.iPhoneSimulator;
					else
						ret = HardwareVersion.iPadSimulator;
				}

				Marshal.FreeHGlobal(pLen);
				Marshal.FreeHGlobal(pStr);

				return ret;
			}
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2010/08/30/detecting-hardware-type-monotouch/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Trafico en el iPhone</title>
		<link>http://www.bscheiman.org/2010/03/21/trafico-en-el-iphone/</link>
		<comments>http://www.bscheiman.org/2010/03/21/trafico-en-el-iphone/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 02:44:34 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Trafico]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=168</guid>
		<description><![CDATA[Hace varios meses publique como ver el trafico en el iPhone, usando el navegador Safari. Esto llego a ser muy molesto ya que despues de hacer varios cambios, los usuarios tenian camaras inservibles&#8230; en fin, fue un desmadre.
Ahora regreso con una aplicacion nativa para el iPhone cuyo nombre es muy  [...]]]></description>
			<content:encoded><![CDATA[<p>Hace varios meses publique como ver el trafico en el iPhone, usando el navegador Safari. Esto llego a ser muy molesto ya que despues de hacer varios cambios, los usuarios tenian camaras inservibles&#8230; en fin, fue un desmadre.</p>
<p>Ahora regreso con una aplicacion nativa para el iPhone cuyo nombre es muy creativo y original: &#8220;Trafico.&#8221; Esta aplicacion te permite ver el trafico en varias zonas del D.F. y en otras ciudades de la republica. El link del AppStore es el siguiente: <a href="http://www.tinyurl.com/traficomex">http://www.tinyurl.com/traficomex</a>. Si quieres ver screenshots, entra al AppStore. <img src='http://www.bscheiman.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2010/03/21/trafico-en-el-iphone/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Compiling Mono SVN on Slicehost/Rackspace Cloud</title>
		<link>http://www.bscheiman.org/2010/01/31/compiling-mono-svn-on-slicehost/</link>
		<comments>http://www.bscheiman.org/2010/01/31/compiling-mono-svn-on-slicehost/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 05:33:23 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[boris]]></category>
		<category><![CDATA[bscheiman]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[scheiman]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=161</guid>
		<description><![CDATA[The following should do the trick. This is an update from my old Mono script. Disclaimer: If your system explodes, your cat dies, or anything else happens because of this script, I am not to blame. If everything works though, I&#8217;m always here. Hugs.

]]></description>
			<content:encoded><![CDATA[<p>The following should do the trick. This is an update from my old <a href="http://www.bscheiman.org/2009/03/18/compiling-mono-22-on-slicehost/">Mono</a> script. Disclaimer: If your system explodes, your cat dies, or anything else happens because of this script, I am not to blame. If everything works though, I&#8217;m always here. Hugs.</p>
<p><span id="more-161"></span></p>
<pre class="brush: plain; title: ; notranslate">

#!/bin/bash

TOPDIR=$(pwd)
BUILDDIR=$TOPDIR/build
DLDDIR=$TOPDIR/downloads

export PATH=/usr/local/bin:$PATH

echo &quot;installing prerequisites&quot;
sudo apt-get install -y build-essential bison gawk
sudo apt-get install -y libglib2.0-dev
sudo apt-get install -y libpng12-dev libx11-dev libfontconfig1-dev
sudo apt-get install -y libfreetype6-dev libjpeg62-dev libtiff4-dev
sudo apt-get install -y libungif4-dev libexif-dev libcairo2-dev
sudo apt-get install -y libpango1.0-dev libgtk2.0-dev libglade2-dev
sudo apt-get install -y libgnome2-dev libgnomecanvas2-dev libgnomeui-dev
sudo apt-get install -y libgnomeprint2.4-dev libgnomeprintui2.4-dev
sudo apt-get install -y libpanel-applet2-dev libgtksourceview-dev
sudo apt-get install -y libgtkhtml3.14-dev
sudo apt-get install -y intltool
sudo apt-get install -y desktop-file-utils apache2-threaded-dev subversion libtool

echo &quot;uninstalling platform mono packages&quot;
sudo apt-get remove 'mono-*' libgdiplus

mkdir -p $BUILDDIR
cd $BUILDDIR

rm -rf libgdiplus
rm -rf mono
rm -rf mono-tools
rm -rf mono-debugger
rm -rf xsp
rm -rf mod_mono

echo
echo &quot;downloading mono packages&quot;
echo

cd $BUILDDIR

svn co svn://anonsvn.mono-project.com/source/trunk/libgdiplus
svn co svn://anonsvn.mono-project.com/source/trunk/mono
svn co svn://anonsvn.mono-project.com/source/trunk/mcs
svn co svn://anonsvn.mono-project.com/source/trunk/mono-tools
svn co svn://anonsvn.mono-project.com/source/trunk/mono-debugger
svn co svn://anonsvn.mono-project.com/source/trunk/xsp
svn co svn://anonsvn.mono-project.com/source/trunk/mod_mono

cd $BUILDDIR

echo
echo &quot;building and installing mono packages&quot;
echo
cd $BUILDDIR

cd libgdiplus
./autogen.sh --prefix=/usr/local
make
sudo make install
cd $BUILDDIR

cd mono
cd mono
cd mini
perl -i -pe 'last if eof' mini-amd64.h
perl -i -pe 'last if eof' mini-amd64.h
echo &quot;#define MONO_ARCH_NOMAP32BIT&quot; &gt;&gt; mini-amd64.h
echo &quot;#endif&quot; &gt;&gt; mini-amd64.h
cd ..
cd ..
./autogen.sh --prefix=/usr/local --with-large-heap=yes --with-xen_opt=yes
sudo make uninstall
make get-monolite-latest
make EXTERNAL_MCS=false
sudo make install
cd $BUILDDIR

cd mono-tools
./autogen.sh --prefix=/usr/local
sudo make uninstall
make
sudo make install
cd $BUILDDIR

cd mono-debugger
./autogen.sh --prefix=/usr/local
sudo make uninstall
make
sudo make install
cd $BUILDDIR

cd xsp
./autogen.sh --prefix=/usr/local
sudo make uninstall
make
sudo make install
cd $BUILDDIR

cd mod_mono
./autogen.sh --prefix=/usr/local
sudo make uninstall
make
sudo make install
cd $BUILDDIR

echo
echo &quot;done&quot;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2010/01/31/compiling-mono-svn-on-slicehost/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Optimization</title>
		<link>http://www.bscheiman.org/2009/01/06/optimization/</link>
		<comments>http://www.bscheiman.org/2009/01/06/optimization/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 21:18:04 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=32</guid>
		<description><![CDATA[I needed to optimize a function for my neural network. How hard could it be? It&#8217;s only one function, and it&#8217;s &#60;5 lines at that&#8230;
After spawning a huge thread, I&#8217;m left to wonder: why didn&#8217;t I continue learning ML after my functional languages class? Blargh!
Benchmarks after the break&#8230;
C#:
Max  [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to optimize a function for my neural network. How <a href="http://stackoverflow.com/questions/412019/code-optimizations">hard could it be</a>? It&#8217;s only one function, and it&#8217;s &lt;5 lines at that&#8230;</p>
<p>After spawning a huge thread, I&#8217;m left to wonder: why didn&#8217;t I continue learning ML after my functional languages class? Blargh!</p>
<p>Benchmarks after the break&#8230;<span id="more-32"></span></p>
<p>C#:</p>
<pre class="prettyprint"><code><span class="typ">Max</span><span class="pln"> deviation </span><span class="kwd">is</span><span class="pln"> </span><span class="lit">0.001663983</span><span class="pln">
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> Sigmoid1</span><span class="pun">()</span><span class="pln"> took </span><span class="lit">1646.613</span><span class="pln"> ms
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> Sigmoid2</span><span class="pun">()</span><span class="pln"> took </span><span class="lit">237.352</span><span class="pln"> ms

C:

</span></code><code><span class="typ">Max</span><span class="pln"> deviation </span><span class="kwd">is</span><span class="pln"> </span><span class="lit">0.001664</span><span class="pln">
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> sigmoid1</span><span class="pun">:</span><span class="pln"> </span><span class="lit">628</span><span class="pln"> ms
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> sigmoid2</span><span class="pun">:</span><span class="pln"> </span><span class="lit">157</span><span class="pln"> ms</span></code><code><span class="str">

F#:

</span></code><code><span class="typ">Max</span><span class="pln"> deviation </span><span class="kwd">is</span><span class="pln"> </span><span class="lit">0.001664</span><span class="pln">
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> sigmoid1</span><span class="pun">:</span><span class="pln"> </span><span class="lit">588.843700</span><span class="pln"> ms
</span><span class="lit">10</span><span class="pun">^</span><span class="lit">7</span><span class="pln"> iterations </span><span class="kwd">using</span><span class="pln"> sigmoid2</span><span class="pun">:</span><span class="pln"> </span><span class="lit">156.626700</span><span class="pln"> ms

</span></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2009/01/06/optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows XP Registry Hacks</title>
		<link>http://www.bscheiman.org/2008/09/25/windows-xp-registry-hacks/</link>
		<comments>http://www.bscheiman.org/2008/09/25/windows-xp-registry-hacks/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 23:45:32 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[sp3]]></category>
		<category><![CDATA[windows xp]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=19</guid>
		<description><![CDATA[I finally graduate in about 2 months. However, much to my dismay, I have to finish my social volunteer work. No, I didn&#8217;t do anything weird &#8211; it&#8217;s just a graduation requisite. I&#8217;ve been working at my university&#8217;s computer division, so I&#8217;ve had to format anywhere between 4 and 15 laptops every day.  [...]]]></description>
			<content:encoded><![CDATA[<p>I finally graduate in about 2 months. However, much to my dismay, I have to finish my social volunteer work. No, I didn&#8217;t do anything weird &#8211; it&#8217;s just a graduation requisite. I&#8217;ve been working at my university&#8217;s computer division, so I&#8217;ve had to format anywhere between 4 and 15 laptops every day. Yes. Every. Single. Day.</p>
<p>Unfortunately, most of the laptops are Dell C610s &#8211; in other words, 1GHz, 256MB RAM and they&#8217;re running Windows XP. You can probably tell that it&#8217;s very fun to optimize each system. (I&#8217;m proud of myself, they run pretty nicely for the low specs they&#8217;re sporting&#8230;)</p>
<p>With this in mind, I decided to code a .NET 3.5 application (free, of course) that does the job for me and also manages to be fully extensible through the use of a text-based hack database.</p>
<p>If you&#8217;re interested in downloading it, give it a go <a href="http://www.vector6.com.mx/apps/RegistryHacker.zip">here</a>. Read more if you&#8217;re interested in some of the example hacks, as well as the database specification.</p>
<p><span id="more-19"></span></p>
<p>The app itself has many, many hacks, but here are some of them just to get your attention:</p>
<ul>
<li>StartUpDelay (Speeds up startup)</li>
<li>MenuShowDelay (Faster start menu)</li>
<li>WaitToKillAppTimeout, HungAppTimeout (Speeds up shutdown)</li>
<li>SuperFetch</li>
<li>UDMA66 Mode</li>
<li>Large system cache</li>
<li>&#8230;and many more</li>
</ul>
<p>The format, per se, is the following:</p>
<p>Name<br />
Description<br />
Root value (Depends on type of hack: <a href="#registry">Registry</a>, <a href="#command">Command</a> or <a href="#profile">Profile</a>)<br />
Argument<br />
Value<br />
; (End of entry)</p>
<p>Here&#8217;s an example of 3 different entries in the regs.dat file, with comments in square brackets:</p>
<p><a name="registry">Registry entry:</a></p>
<p>Registry: Modify StartUpDelay [Name]<br />
It just removes the unnecessary wait time after a system startup before Indexing Service. (40000ms) [Description]<br />
HKEY_LOCAL_MACHINESystemCurrentControlSetControlContentIndex [In the case of a registry entry, the full tree]<br />
StartupDelay [Registry key]<br />
40000 [Registry value. If it's numerical, it's a DWORD - else, it'll get written as a String]<br />
;</p>
<p><a name="command">Command entry:</a></p>
<p>Services: Disable alerter service [Name]<br />
&#8216;Nuff said. [Description]<br />
Command [Root value, leave as "Command" for command]<br />
sc.exe [Actual command]<br />
config &#8220;alerter&#8221; start= disabled [Parameters]<br />
;</p>
<p><a name="profile">Profile entry: (aka, .ini files)</a></p>
<p>Profile: Set LocalLoadHigh [Name]<br />
Speeds up Windows XP boot times. Load all info needed for your programs into upper memory by default, and it will free up the maximum amount of conventional memory possible. (the first 640K) [Description]<br />
Profilesystem.ini386Enh [In the case of a Profile, it has to be like this: Profile&lt;.ini file [in Windows dir]&gt;&lt;section&gt;]<br />
LocalLoadHigh [Argument]<br />
1 [Value]<br />
;</p>
<p>If you add anything to the regs.dat file, please post it as a comment so everyone can benefit. Thanks, and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2008/09/25/windows-xp-registry-hacks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iBrainer</title>
		<link>http://www.bscheiman.org/2008/09/01/ibrainer/</link>
		<comments>http://www.bscheiman.org/2008/09/01/ibrainer/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 02:52:04 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/?p=18</guid>
		<description><![CDATA[Shameless plug:
iBrainer is now ready for public use. Feel free to give it a try, either on download.com or iBrainer.net
In a nutshell: fix your MP3 collection in a snap. No more Unknown Artist or fixing tags yourself.
I might be biased, but I use it all the time &#8212; and I&#8217;m loving it!
]]></description>
			<content:encoded><![CDATA[<p>Shameless plug:</p>
<p>iBrainer is now ready for public use. Feel free to give it a try, either on download.com or <a title="iBrainer: manage your mp3 collection" href="http://www.ibrainer.net">iBrainer.net</a></p>
<p>In a nutshell: fix your MP3 collection in a snap. No more Unknown Artist or fixing tags yourself.</p>
<p>I might be biased, but I use it all the time &#8212; and I&#8217;m loving it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2008/09/01/ibrainer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genpuid troubles</title>
		<link>http://www.bscheiman.org/2008/01/02/genpuid-troubles/</link>
		<comments>http://www.bscheiman.org/2008/01/02/genpuid-troubles/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 23:08:02 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/2008/01/02/genpuid-troubles/</guid>
		<description><![CDATA[Since there is no managed or open source way to get a PUID for MusicBrainz (Thank you, thank you MusicIP&#8230;), you have to call it as an external process. However, since Windows makes all the console-based executables have a character set of SBCSCodePageEncoding, accents get messed up.
After several  [...]]]></description>
			<content:encoded><![CDATA[<p>Since there is no managed or open source way to get a PUID for MusicBrainz (Thank you, thank you MusicIP&#8230;), you have to call it as an external process. However, since Windows makes all the console-based executables have a character set of SBCSCodePageEncoding, accents get messed up.</p>
<p>After several hours of smashing my head against the wall and venting on GTalk w/ <a href="http://themonkeysgrinder.blogspot.com/" title="Scott Peterson" target="_blank">scottp</a>, I finally got it to work:</p>
<p>Encoding.UTF8.GetString(ProcessObj.StandardOutput.CurrentEncoding.GetBytes(&#8220;yadda yadda&#8221;));</p>
<p>And now it all works. Yay! iBrainz is almost finished&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2008/01/02/genpuid-troubles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with MusicBrainz</title>
		<link>http://www.bscheiman.org/2007/11/15/working-with-musicbrainz/</link>
		<comments>http://www.bscheiman.org/2007/11/15/working-with-musicbrainz/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 02:02:39 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/2007/11/15/working-with-musicbrainz/</guid>
		<description><![CDATA[I decided that while I&#8217;m on winter break, instead of doing something useful like.. I don&#8217;t know, finally getting some rest, I&#8217;ll code yet another MusicBrainz client. Yes, yet another project. Picard sucks and the MBTagger is being discontinued quite soon, so&#8230;
I stumbled upon Scott Peterson&#8217;s  [...]]]></description>
			<content:encoded><![CDATA[<p>I decided that while I&#8217;m on winter break, instead of doing something useful like.. I don&#8217;t know, finally getting some rest, I&#8217;ll code yet another <a href="http://www.musicbrainz.org" target="_blank">MusicBrainz</a> client. Yes, yet another project. Picard sucks and the MBTagger is being discontinued quite soon, so&#8230;</p>
<p>I stumbled upon Scott Peterson&#8217;s awesome <a href="http://themonkeysgrinder.blogspot.com/" title="Scott Peterson" target="_blank">MusicBrainz-Sharp</a> library and I&#8217;ve been talking to him re: some issues it has, but so far it&#8217;s been great help. Kudos to you, Scott!</p>
<p>Suggestions,  comments, etc? Feel free to leave a comment!</p>
<p>(And here I thought MBTagger/Picard were slow&#8230; and it&#8217;s MusicBrainz.Org forcing you to do 1 query per second. Is it time to implement a separate server cache? Hrm&#8230; Maybe.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2007/11/15/working-with-musicbrainz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open-Source GPS</title>
		<link>http://www.bscheiman.org/2007/10/07/open-source-gps/</link>
		<comments>http://www.bscheiman.org/2007/10/07/open-source-gps/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 02:59:12 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/2007/10/07/open-source-gps/</guid>
		<description><![CDATA[Being sick of all the commercial GPS solutions out there, I&#8217;ve decided to start coding my own GPS solution &#8211; with autorouting and all! Let&#8217;s see how this goes&#8230;
So far I&#8217;ve already coded the NMEA/GPS integration. Took me about 30m to write it up; should be fun.  IMO the hardest part will be getting  [...]]]></description>
			<content:encoded><![CDATA[<p>Being sick of all the commercial GPS solutions out there, I&#8217;ve decided to start coding my own GPS solution &#8211; with autorouting and all! Let&#8217;s see how this goes&#8230;</p>
<p>So far I&#8217;ve already coded the NMEA/GPS integration. Took me about 30m to write it up; should be fun.  IMO the hardest part will be getting the maps to work. Any takers on reverse engineering Destinator/TomTom/etc formats?</p>
<p>Once it&#8217;s finished, it should work on all .NET enabled platforms &#8211; standard and/or Mono-based. I&#8217;ll be supporting Windows Mobile as the standard mobile platform for development.</p>
<p>Drop me a line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2007/10/07/open-source-gps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I miss Visual Basic</title>
		<link>http://www.bscheiman.org/2007/08/19/i-miss-visual-basic/</link>
		<comments>http://www.bscheiman.org/2007/08/19/i-miss-visual-basic/#comments</comments>
		<pubDate>Sun, 19 Aug 2007 23:03:36 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.bscheiman.org/2007/08/19/i-miss-visual-basic/</guid>
		<description><![CDATA[I stopped using VB about 6 years ago, after VB6 was launched. Having since moved to PHP/Perl/C# and such, I miss one of its functions. Sure, VB programmers are spoiled &#8211; everything&#8217;s coded in. What I can&#8217;t understand is why VB.NET has an InputBox and C# doesn&#8217;t.
Anyway&#8230; this code snippet should  [...]]]></description>
			<content:encoded><![CDATA[<p>I stopped using VB about 6 years ago, after VB6 was launched. Having since moved to PHP/Perl/C# and such, I miss one of its functions. Sure, VB programmers are spoiled &#8211; everything&#8217;s coded in. What I can&#8217;t understand is why VB.NET has an InputBox and C# doesn&#8217;t.</p>
<p><span id="more-8"></span>Anyway&#8230; this code snippet should help. I know this is available through Google, but I wanted to have it here for the hell of it.</p>
<p>Once you have added a reference to Microsoft.VisualBasic.dll (Solution Explorer -&gt; Add Reference -&gt; .NET -&gt; Microsoft.VisualBasic), you can just call it this way:</p>
<p><em> <code> String result = Microsoft.VisualBasic.Interaction.InputBox(Prompt, Title, Default, XPos, YPos);</code></em></p>
<p>It sure comes in handy when you don&#8217;t want to create a whole new form just for user interaction&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bscheiman.org/2007/08/19/i-miss-visual-basic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

