<?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>jcarle.com</title>
	<atom:link href="http://www.jcarle.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jcarle.com</link>
	<description>The musings of a developer</description>
	<lastBuildDate>Mon, 21 Mar 2011 16:53:22 +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>Fixing Dreamweaver CS5&#8242;s Mixed Case JavaScript Events for XHTML</title>
		<link>http://www.jcarle.com/2011/01/25/fixing-dreamweaver-cs5s-mixed-case-javascript-events-for-xhtml/</link>
		<comments>http://www.jcarle.com/2011/01/25/fixing-dreamweaver-cs5s-mixed-case-javascript-events-for-xhtml/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 17:54:35 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=306</guid>
		<description><![CDATA[I was hoping that the Adobe development team would have fixed this by now but it seems that they do not use their own products. At least, certainly not for standards compliant work. In a revisit to my original article on fixing the issue with CS4, here is an updated tag library that you can [...]]]></description>
			<content:encoded><![CDATA[<p>I was hoping that the Adobe development team would have fixed this by now but it seems that they do not use their own products. At least, certainly not for standards compliant work. In a revisit to my original article on <a href="http://www.jcarle.com/2009/06/22/fixing-dreamweaver-cs4s-javascript-events-for-xhtml/">fixing the issue with CS4</a>, here is an updated tag library that you can use to stop Dreamweaver CS5 from changing your correct onmouseover events to the improper onMouseOver mixed cased version.</p>
<p><span id="more-306"></span>Download the <a href="http://www.jcarle.com/wp-content/uploads/2011/01/HTML.zip">HTML Tag Library</a> and overwrite the existing one which you’ll find by default in &#8220;C:\Program Files\Adobe\Adobe Dreamweaver CS5\configuration\TagLibraries&#8221; on x86 systems and in &#8220;C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS5\configuration\TagLibraries&#8221; on x64 systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2011/01/25/fixing-dreamweaver-cs5s-mixed-case-javascript-events-for-xhtml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trusting Network Shares with Visual Studio 2010 / .NET Framework v4.0</title>
		<link>http://www.jcarle.com/2011/01/20/trusting-network-shares-with-visual-studio-2010-net-framework-v4-0/</link>
		<comments>http://www.jcarle.com/2011/01/20/trusting-network-shares-with-visual-studio-2010-net-framework-v4-0/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 21:10:28 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=298</guid>
		<description><![CDATA[If you are like me and you store all your code on a server, you will have likely learned about trusting a network share using CasPol.exe. However, when moving from Visual Studio 2008 (.NET Framework 2.0/3.0/3.5) over to Visual Studio 2010 (.NET Framework 4.0), you may find yourself scratching your head. If you are used [...]]]></description>
			<content:encoded><![CDATA[<p>If you are like me and you store all your code on a server, you will have likely learned about trusting a network share using CasPol.exe. However, when moving from Visual Studio 2008 (.NET Framework 2.0/3.0/3.5) over to Visual Studio 2010 (.NET Framework 4.0), you may find yourself scratching your head.</p>
<p><span id="more-298"></span>If you are used to using the Visual Studio Command Prompt to quickly get to CasPol, you may find that some of your projects will not seem to respect your new FullTrust settings. The reason is that, unless you are carefully paying attention, the Visual Studio Command Prompt defaults to adding the .NET Framework 4.0 folder to its path. If your project is still running under .NET Framework 2.0/3.0/3.5, it will require setting CasPol for those versions as well. Just a note, I have also personally had more success with using 1 as a code group instead of 1.2.</p>
<p>To trust a network share for all versions of the .NET Framework, simply call CasPol for each version using the full path as below:</p>
<pre class="brush: bash; title: ; notranslate">
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CasPol -m -ag 1 -url file://YourSharePath\* FullTrust
C:\Windows\Microsoft.NET\Framework\v4.0.30319\CasPol -m -ag 1 -url file://YourSharePath\* FullTrust
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2011/01/20/trusting-network-shares-with-visual-studio-2010-net-framework-v4-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Communicating multi-byte integers across platforms</title>
		<link>http://www.jcarle.com/2011/01/06/communicating-multi-byte-integers-across-platforms/</link>
		<comments>http://www.jcarle.com/2011/01/06/communicating-multi-byte-integers-across-platforms/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 05:36:35 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[.NET Framework]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=292</guid>
		<description><![CDATA[Developing applications that communicate between different platforms can quickly hit ground if multi-byte integers are sent without taking the proper byte order into account. We often forgotten to watch for this as most of us stick to a single platform during development. Thankfully, the .NET Framework has taken all the guesswork out with a pair [...]]]></description>
			<content:encoded><![CDATA[<p>Developing applications that communicate between different platforms can quickly hit ground if multi-byte integers are sent without taking the proper byte order into account. We often forgotten to watch for this as most of us stick to a single platform during development. Thankfully, the .NET Framework has taken all the guesswork out with a pair of simple methods.</p>
<p><span id="more-292"></span></p>
<p>Before transmitting integers over the wire, a quick call to <a href="http://msdn.microsoft.com/en-us/library/system.net.ipaddress.hosttonetworkorder.aspx">IPAddress.HostToNetworkOrder()</a> will change the byte order to the communications standard of significant byte first. Receiving integers also requires a single call to <a href="http://msdn.microsoft.com/en-us/library/system.net.ipaddress.networktohostorder.aspx">IPAddress.NetworkToHostOrder()</a> to ensure the proper value is understood from the incoming bytes.</p>
<p>Read over the “<a href="http://www.codeguru.com/Cpp/Cpp/cpp_mfc/bits/article.php/c6803/">Sockets Byte-Ordering Primer</a>” article over at <a href="http://www.codeguru.com/">codeguru.com</a> and the “<a href="http://www.developer.com/net/csharp/article.php/3331571">Converting &#038; Sending Sockets Data with a Leading Length Value</a>” article over at <a href="http://www.developer.com/">developer.com</a> for some great in-depth explanations on the matter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2011/01/06/communicating-multi-byte-integers-across-platforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing FreePBX 2.8 with Asterisk 1.8 on CentOS 5.5</title>
		<link>http://www.jcarle.com/2010/12/17/installing-freepbx-2-8-with-asterisk-1-8-on-centos-5-5/</link>
		<comments>http://www.jcarle.com/2010/12/17/installing-freepbx-2-8-with-asterisk-1-8-on-centos-5-5/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 22:51:49 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=279</guid>
		<description><![CDATA[FreePBX has become quite popular over the last few years. Unfortunately, the documentation has not quite caught up to the popularity. At the time of this writing, most of the documentation available was for older versions of CentOS, FreePBX and/or Asterix. Below I have outlined the steps required to get FreePBX 2.8 working with Asterisk [...]]]></description>
			<content:encoded><![CDATA[<p>FreePBX has become quite popular over the last few years. Unfortunately, the documentation has not quite caught up to the popularity. At the time of this writing, most of the documentation available was for older versions of CentOS, FreePBX and/or Asterix. Below I have outlined the steps required to get FreePBX 2.8 working with Asterisk 1.8 on CentOS 5.5.</p>
<p><span id="more-279"></span><br />
If you are reading this as after having followed the steps in my previous article <a href="http://www.jcarle.com/2010/12/06/installing-centos-5-5-with-linux-integration-services-2-1-on-hyper-v-r2/">Installing CentOS 5.5 with Linux Integration Services 2.1 on Hyper-V R2</a> or if you have not selected the following package groups during your installation of CentOS, make sure you do so now by using the following commands.</p>
<h3>Preparations</h3>
<p>You will need five different passwords.</p>
<p><em>PASSWORD1</em> &#8211; Your root password.<br />
<em>PASSWORD2</em> &#8211; Used for the asterisk database user.<br />
<em>PASSWORD3</em> &#8211; Used for the FreePBX administrator.<br />
<em>PASSWORD4</em> &#8211; Used for Flash Operator Panel.<br />
<em>PASSWORD5</em> &#8211; Used for the Asterisk Recording Interface.</p>
<h3>Requirements</h3>
<pre class="brush: bash; title: ; notranslate">
yum groupinstall &quot;DNS Name Server&quot;
yum groupinstall &quot;Web Server&quot;
yum groupinstall &quot;Mail Server&quot;
yum groupinstall &quot;MySQL Database&quot;
yum groupinstall &quot;Development Tools&quot;
</pre>
<p>Once you are sure that the needed package groups are installed, you will want to install the prerequisites as follows.</p>
<pre class="brush: bash; title: ; notranslate">
yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel
yum install gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel
yum install openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox
</pre>
<p>Make sure you also have wget installed.</p>
<pre class="brush: bash; title: ; notranslate">
yum install wget
</pre>
<p>Next you will setup named.</p>
<pre class="brush: bash; title: ; notranslate">
echo &quot;options {&quot; &gt;&gt; /var/named/chroot//etc/named.conf
echo &quot; directory \&quot;/var/named\&quot;;&quot; &gt;&gt; /var/named/chroot//etc/named.conf
echo &quot; dump-file \&quot;/var/named/data/cache_dump.db\&quot;;&quot; &gt;&gt; /var/named/chroot//etc/named.conf
echo &quot; statistics-file \&quot;/var/named/data/named_stats.txt\&quot;;&quot; &gt;&gt; /var/named/chroot//etc/named.conf
echo &quot;};&quot; &gt;&gt; /var/named/chroot//etc/named.conf
echo &quot;include \&quot;/etc/rndc.key\&quot;;&quot; &gt;&gt; /var/named/chroot//etc/named.conf
cd /var/named/chroot//etc/
chmod 640 named.conf
chgrp named named.conf
ln -s /var/named/chroot//etc/named.conf /etc/named.conf
</pre>
<p>You will want to adjust the security settings as per your requirements but for the simplicity of this article, we are going to turn off Security-Enhanced Linux and open the firewall fully. </p>
<pre class="brush: bash; title: ; notranslate">
echo &quot;SELINUX=disabled&quot; &gt; /etc/selinux/config
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -X
/etc/init.d/iptables save
</pre>
<p>LAME is required for Asterisk’s audio related functions. You will want to download LAME to a source directory, compile and then install it.</p>
<pre class="brush: bash; title: ; notranslate">
cd /usr/src
wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz?ts=1292626574&amp;use_mirror=cdnetworks-us-1
tar zxvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure
make
make install
</pre>
<p>You can optionally remove the source once you have installed LAME.</p>
<pre class="brush: bash; title: ; notranslate">
cd ..
rm -fr lame-3.98.4
rm lame-3.98.4.tar.gz
</pre>
<p>Before continuing, insure that all packages are up to date and then reboot.</p>
<pre class="brush: bash; title: ; notranslate">
yum update
reboot
</pre>
<h3>Installing Asterisk 1.8</h3>
<p>Get Asterisk 1.8 and extract it to its own source folder.</p>
<pre class="brush: bash; title: ; notranslate">
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz
tar xvfz asterisk-1.8-current.tar.gz
cd asterisk-1.8.0
contrib/scripts/get_mp3_source.sh
./configure
make menuconfig
</pre>
<p>The last command will launch the source configuration manager. The only portions you will want to install are app_mysql, app_saycountpl, cdr_mysql, format_mp3, res_config_mysql and EXTRAS-SOUNDS-EN-GSM (which can be found in the Extra Sound Packages sub-menu). Save your selections and exit.  Now compile the source and install.</p>
<pre class="brush: bash; title: ; notranslate">
make
make install
</pre>
<p>You can optionally remove the source directory once you have installed Asterisk.</p>
<pre class="brush: bash; title: ; notranslate">
cd ..
rm -fR asterisk-1.8.0
rm asterisk-1.8-current.tar.gz
</pre>
<h3>Installing FreePBX 2.8</h3>
<p>Get FreePBX 2.8 and extract it to its own source folder.</p>
<pre class="brush: bash; title: ; notranslate">
cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.8.0.tar.gz
tar xvfz freepbx-2.8.0.tar.gz
cd freepbx-2.8.0
</pre>
<p>Start MySQL, create the asterisk databases and run the initial SQL setup scripts.</p>
<pre class="brush: bash; title: ; notranslate">
/etc/init.d/mysqld start
chkconfig mysqld on
mysqladmin create asterisk
mysqladmin create asteriskcdrdb
mysql asterisk &lt; SQL/newinstall.sql
mysql asteriskcdrdb &lt; SQL/cdr_mysql_table.sql
</pre>
<p>Start the MySQL command line.</p>
<pre class="brush: bash; title: ; notranslate">
mysql
</pre>
<p>Define the user and password for each of the databases.</p>
<pre class="brush: sql; title: ; notranslate">
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'PASSWORD2';
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'PASSWORD2';
flush privileges;
\q
</pre>
<p>Change the MySQL user to root.</p>
<pre class="brush: bash; title: ; notranslate">
mysqladmin -u root password 'PASSWORD1'
</pre>
<p>Create the Asterisk user and set folder permissions.</p>
<pre class="brush: bash; title: ; notranslate">
useradd -c &quot;Asterisk PBX&quot; -d /var/lib/asterisk asterisk
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/lib/php/session/
</pre>
<p>Update the Apache configuration file.</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/httpd/conf/httpd.conf
</pre>
<p>Change <em>User apache</em> and <em>Group apache</em> to <em>User asterisk</em> and <em>Group asterisk</em>.</p>
<p>Change <em>AllowOverride None</em> to <em>AllowOverride All</em>.</p>
<p>Update ServerName to use your server&#8217;s FQDN.</p>
<p>Start Apache.</p>
<pre class="brush: bash; title: ; notranslate">
/etc/init.d/httpd start
chkconfig httpd on
</pre>
<p>Start Asterisk. </p>
<pre class="brush: bash; title: ; notranslate">
./start_asterisk start
</pre>
<p>Configure FreePBX.</p>
<pre class="brush: bash; title: ; notranslate">
./install_amp --username=asteriskuser --password=PASSWORD2
</pre>
<p>The next series of prompts will give you default values within square brackets which you can accept by hitting enter. If you wish to change a value, simply type it and hit enter after.</p>
<pre class="brush: plain; title: ; notranslate">
[asteriskuser]
</pre>
<p>This is the database user you specified earlier.</p>
<pre class="brush: plain; title: ; notranslate">
[PASSWORD2]
</pre>
<p>This is the password for the database user.</p>
<pre class="brush: plain; title: ; notranslate">
[localhost]
</pre>
<p>Use the default value.</p>
<pre class="brush: plain; title: ; notranslate">
[admin]
</pre>
<p>The username for the FreePBX administrator.</p>
<pre class="brush: plain; title: ; notranslate">
[amp111]
</pre>
<p>The password for the FreePBX administrator. It is important to change this. (Use PASSWORD3 you prepared earlier.)</p>
<pre class="brush: plain; title: ; notranslate">
[/var/www/html]
</pre>
<p>Use the default value.</p>
<pre class="brush: plain; title: ; notranslate">
[xx.xx.xx.xx]
</pre>
<p>The public IP that will be used.</p>
<pre class="brush: plain; title: ; notranslate">
[passw0rd]
</pre>
<p>The Flash Operator Panel password. It is important to change this. (Use PASSWORD4 you prepared earlier.)</p>
<pre class="brush: plain; title: ; notranslate">
[extensions]
</pre>
<p>Use the default value.</p>
<pre class="brush: plain; title: ; notranslate">
[/var/lib/asterisk/bin]
</pre>
<p>Use the default value.</p>
<pre class="brush: plain; title: ; notranslate">
[/usr/local/sbin]
</pre>
<p>Use the default value.</p>
<p>Change the Asterisk Recording Interface password and turn on user authentication for the web interface by editing the amportal.conf file.</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/amportal.conf
</pre>
<p>Change the ARI_ADMIN_PASSWORD entry to update the ARI password.</p>
<pre class="brush: plain; title: ; notranslate">
ARI_ADMIN_PASSWORD=PASSWORD5
</pre>
<p>Change the AUTHTYPE entry to database to enable authentication.</p>
<pre class="brush: plain; title: ; notranslate">
AUTHTYPE=database
</pre>
<p>Optionally, you can turn off the FOP completely by changing the following settings.</p>
<pre class="brush: plain; title: ; notranslate">
FOPRUN=false
FOPDISABLE=true
</pre>
<p>Save and exit.</p>
<p>Add FreePBX to the boot process.</p>
<pre class="brush: bash; title: ; notranslate">
echo &quot;/usr/local/sbin/amportal start&quot; &gt;&gt; /etc/rc.local
</pre>
<p>You can ensure that the administrator user has the proper password in the database by navigating to the Administrators tab, choosing the admin user and clicking on the Update password link. Once your password has been updated, logout by clicking the link at the top right of the page.</p>
<p>Finally, reboot the server one last time.</p>
<pre class="brush: bash; title: ; notranslate">
reboot
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2010/12/17/installing-freepbx-2-8-with-asterisk-1-8-on-centos-5-5/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Installing CentOS 5.5 with Linux Integration Services 2.1 on Hyper-V R2</title>
		<link>http://www.jcarle.com/2010/12/06/installing-centos-5-5-with-linux-integration-services-2-1-on-hyper-v-r2/</link>
		<comments>http://www.jcarle.com/2010/12/06/installing-centos-5-5-with-linux-integration-services-2-1-on-hyper-v-r2/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 05:51:13 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=208</guid>
		<description><![CDATA[Hyper-V R2 brings some powerful virtualization to the table for those of us who do not have either the skills or the desire to work with virtual machineware. Most fans of Hyper-V are also likely to be well versed in Windows and may often lack the knowledge to rummage through Linux. Although there are many [...]]]></description>
			<content:encoded><![CDATA[<p>Hyper-V R2 brings some powerful virtualization to the table for those of us who do not have either the skills or the desire to work with virtual machineware. Most fans of Hyper-V are also likely to be well versed in Windows and may often lack the knowledge to rummage through Linux. Although there are many resources available regarding Linux on Hyper-V, I felt that most assumed the reader had intimate knowledge with Linux, which is often not the case.</p>
<p>For Windows administrators new to Linux who wish to provide virtualized services to their end-users, my recommendation is to stick to CentOS 5.5. Being a close derivative of Red Hat Enterprise Linux (RHEL), the officially supported distribution by Microsoft, installation of the Integration Components is simplified and stability is matched to what is found when running RHEL.</p>
<p><span id="more-208"></span></p>
<h3>Requirements</h3>
<p>You will need the CentOS 5.5 x64 installation DVD ISO (CentOS-5.5-x86_64-bin-DVD-1of2.iso) which can be found at <a href="http://isoredirect.centos.org/centos/5/isos/x86_64/">http://isoredirect.centos.org/centos/5/isos/x86_64/</a>.</p>
<p>You will also need the Linux Integration Services 2.1 ISO (LinuxIC v21.iso) available through the Microsoft Download Center at <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551</a>.</p>
<h3>Initial virtual machine Settings</h3>
<p>To create the initial virtual machine, you will need to use the Legacy Network Adapter and limit yourself to a single CPU. You will also want to take time to decide how large of a VHD to allocate ahead of time as expanding a Linux partition can be a little complicated. Personally, I find 20GB to be sufficient for small, single purpose Linux virtual machines.</p>
<p><img class="size-full wp-image-209 alignnone" title="CentOS-HyperV-Settings-01" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Settings-01.png" alt="" width="726" height="680" /></p>
<h3>Installing CentOS 5.5</h3>
<p>After booting from the CentOS ISO, you are presented with the choice to do a graphical or a text mode installation. To choose the text mode installation (as used here), simply type &#8220;linux text&#8221; at the boot: prompt and hit enter.</p>
<p><img class="alignnone size-full wp-image-211" title="CentOS-HyperV-Setup-01" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-01.png" alt="" width="640" height="480" /></p>
<p>To navigate throughout the next portion of the text mode installation, use the Tab key to navigate between fields and the Space key to select options or hit buttons.</p>
<p>You will be asked if you would like to do a media test. You can safely skip this.</p>
<p><img class="alignnone size-full wp-image-212" title="CentOS-HyperV-Setup-02" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-02.png" alt="" width="640" height="400" /></p>
<p>The initial welcome screen to the installation process.</p>
<p><img class="alignnone size-full wp-image-213" title="CentOS-HyperV-Setup-03" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-03.png" alt="" width="640" height="400" /></p>
<p>Choose your language as appropriate.</p>
<p><img class="alignnone size-full wp-image-214" title="CentOS-HyperV-Setup-04" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-04.png" alt="" width="640" height="400" /></p>
<p>And your keyboard.</p>
<p><img title="CentOS-HyperV-Setup-05" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-05.png" alt="" width="640" height="400" /></p>
<p>You must then partition your VHD for Linux. As you will be starting off with a fresh VHD, you can simply choose &#8220;Use free space on selected drives and create default layout.&#8221; and continue with OK.</p>
<p><img class="alignnone size-full wp-image-216" title="CentOS-HyperV-Setup-06" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-06.png" alt="" width="640" height="400" /></p>
<p>Be sure to hit No to continue as hitting Yes will simply bring you back to the previous screen.</p>
<p><img class="alignnone size-full wp-image-217" title="CentOS-HyperV-Setup-07" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-07.png" alt="" width="640" height="400" /></p>
<p>As long as you have properly configured your virtual machine to use the <strong>Legacy</strong> Network Adapter, you will be presented with the opportunity to have the installation configure it for you.</p>
<p><img class="alignnone size-full wp-image-218" title="CentOS-HyperV-Setup-08" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-08.png" alt="" width="640" height="400" /></p>
<p>Check the &#8220;Enable IPv4 support&#8221; option and hit OK to continue.</p>
<p><img class="alignnone size-full wp-image-219" title="CentOS-HyperV-Setup-09" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-09.png" alt="" width="640" height="400" /></p>
<p>Switch to the &#8220;Manual address configuration&#8221; option and enter your IP address and netmask as appropriate.</p>
<p><img class="alignnone size-full wp-image-220" title="CentOS-HyperV-Setup-10" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-10.png" alt="" width="640" height="400" /></p>
<p>Continue on by entering your default gateway (usually your router or your network&#8217;s default route). If you have internal DNS servers for your network, enter them here or alternatively, you can use <a href="http://www.opendns.com/">OpenDNS</a>.</p>
<p><img class="alignnone size-full wp-image-221" title="CentOS-HyperV-Setup-11" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-11.png" alt="" width="640" height="400" /></p>
<p>The name of your virtual machine is defined here as the hostname.</p>
<p><img class="alignnone size-full wp-image-222" title="CentOS-HyperV-Setup-12" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-12.png" alt="" width="640" height="400" /></p>
<p>Select your time zone and continue.</p>
<p><img class="alignnone size-full wp-image-223" title="CentOS-HyperV-Setup-13" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-13.png" alt="" width="640" height="400" /></p>
<p>Be sure to choose a secure root password as the root user has complete access to the entire virtual machine and SSH is enabled on first boot.</p>
<p><img class="alignnone size-full wp-image-224" title="CentOS-HyperV-Setup-14" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-14.png" alt="" width="640" height="400" /></p>
<p>For a bare minimum installation, uncheck all of the packages, check &#8220;Customize software selection&#8221; and hit OK.</p>
<p><img title="CentOS-HyperV-Setup-15" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-15.png" alt="" width="640" height="400" /></p>
<p>Uncheck all package groups and continue. Anything you require can later be installed by yum anyway.</p>
<p><img class="alignnone size-full wp-image-226" title="CentOS-HyperV-Setup-16" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-16.png" alt="" width="640" height="400" /></p>
<p>Installation will begin once you continue past this screen.</p>
<p><img class="alignnone size-full wp-image-227" title="CentOS-HyperV-Setup-17" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-17.png" alt="" width="640" height="400" /></p>
<p>Once installation is complete, you will be required to reboot.</p>
<p><img class="alignnone size-full wp-image-228" title="CentOS-HyperV-Setup-18" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-18.png" alt="" width="640" height="400" /></p>
<p>After rebooting, you will be ready to login. At this point, I recommend connecting via SSH in order to copy and paste commands.</p>
<p><img title="CentOS-HyperV-Setup-19" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Setup-19.png" alt="" width="640" height="400" /></p>
<h3>Preparing to install the Linux Integration Components</h3>
<p>The first thing that must be done is to update all the base packages and upgrade the kernel to the latest version. Simply run a &#8220;yum update&#8221;, then reboot.</p>
<pre class="brush: bash; title: ; notranslate">
yum update
reboot
</pre>
<p>You will need to install the required &#8220;kernel-devel&#8221;, &#8220;gcc&#8221;, &#8220;make&#8221; and &#8220;perl&#8221; packages to compile and install the Linux Integration Components. Also, I suggest installing the VIM text editor.</p>
<pre class="brush: bash; title: ; notranslate">
yum install kernel-devel
yum install gcc
yum install make
yum install perl
yum install vim-enhanced.x86_64
</pre>
<h3>Installing the Linux Integration Components</h3>
<p>Attach the Linux Integration Services ISO. Once attached, you will need to mount the cdrom. You must then copy and compile the source in a temporary folder. Finally, you will be able install the Linux Integration Components. &#8220;make&#8221; will compile the source, then &#8220;make install&#8221; will install the compiled drivers.</p>
<pre class="brush: bash; title: ; notranslate">
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp -rp /mnt/cdrom /opt/linux_ic
umount /mnt/cdrom
cd /opt/linux_ic
make
make install
</pre>
<p>The time synchronisation component is not compatible with CentOS, therefore you will need to install &#8220;adjtimex&#8221;.</p>
<pre class="brush: bash; title: ; notranslate">
yum install adjtimex
</pre>
<p>You will need to shutdown the virtual machine in order to enable the Synthetic Network Adapter and increase the number of CPUs allocated. To do so, run the shutdown command.</p>
<pre class="brush: bash; title: ; notranslate">
shutdown -h -t 0 0
</pre>
<p>Change the settings in Hyper-V once the virtual machine has completely shutdown.</p>
<p><img class="alignnone size-full wp-image-210" title="CentOS-HyperV-Settings-02" src="http://www.jcarle.com/wp-content/uploads/2010/12/CentOS-HyperV-Settings-02.png" alt="" width="726" height="680" /></p>
<p>Start the virtual machine and log in. You will need to reconfigure the network adapter as &#8220;eth0&#8243; will have disapeared and a new adapter, &#8220;seth0&#8243;, will have taken its place.</p>
<p>The easiest way to do this is to edit the MAC address in the &#8220;eth0&#8243; backup file to match the MAC address of the Network Adapter as displayed in the virtual machine settings in Hyper-V, then copy the backup file as &#8220;seth0&#8243; and restart the network service. Don&#8217;t forget to also update the DEVICE line use &#8220;seth0&#8243;.</p>
<pre class="brush: bash; title: ; notranslate">
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0.bak
(edit DEVICE and HWADDR)
(save and exit)
rm -f ifcfg-seth0
mv ifcfg-eth0.bak ifcfg-seth0
service network restart
</pre>
<p>If all went well, you will find yourself with a bare minimum install of CentOS 5.5 running the latest kernel and version 2.1 of the Linux Integration Services. Fully virtualized and synthetic. You can now enjoy the many benefits of Hyper-V Linux such as the ability to shutdown the virtual machine without the root password.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2010/12/06/installing-centos-5-5-with-linux-integration-services-2-1-on-hyper-v-r2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The majority of internet users still use archaic resolutions</title>
		<link>http://www.jcarle.com/2010/04/27/the-majority-of-internet-users-still-use-archaic-resolutions/</link>
		<comments>http://www.jcarle.com/2010/04/27/the-majority-of-internet-users-still-use-archaic-resolutions/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 14:16:57 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=191</guid>
		<description><![CDATA[It has become the unsaid consensus over the years that NETMARKETSHARE is an accurate source for up to date data regarding the real world happenings of the internet. For me, the most important information they track is screen resolution. With the flood of new internet connected mobile devices, the revolution that was brought on by [...]]]></description>
			<content:encoded><![CDATA[<p>It has become the unsaid consensus over the years that <a href="http://marketshare.hitslink.com/">NETMARKETSHARE</a> is an accurate source for up to date data regarding the real world happenings of the internet. For me, the most important information they track is screen resolution. With the flood of new internet connected mobile devices, the revolution that was brought on by netbooks and the never ending wave of new monitor shapes and sizes, you cannot help but feel lost when you are doing your site design mock ups. Do you make your site wide? Do you make it narrow? What can users see vertically when they first open the page? Using a bit of excel kung-fu, I spliced up their <a href="http://marketshare.hitslink.com/report.aspx?qprid=17">resolution statistics</a> and came up with the following table.</p>
<p><span id="more-191"></span><br />
<img class="size-full wp-image-193 alignleft" title="CRT" src="http://www.jcarle.com/wp-content/uploads/2010/04/CRT.jpg" alt="" width="200" height="200" /></p>
<table style="margin: 0em 0em 3em 0em;" border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>Width</th>
<th>Users Supported</th>
<th>Height</th>
<th>Users Supported</th>
</tr>
<tr>
<td>800</td>
<td>96%</td>
<td>600</td>
<td>96%</td>
</tr>
<tr>
<td>1024</td>
<td>93%</td>
<td>768</td>
<td>89%</td>
</tr>
<tr>
<td>1152</td>
<td>64%</td>
<td>800</td>
<td>55%</td>
</tr>
<tr>
<td>1280</td>
<td>61%</td>
<td>900</td>
<td>32%</td>
</tr>
<tr>
<td>1366</td>
<td>27%</td>
<td>1024</td>
<td>21%</td>
</tr>
<tr>
<td>1440</td>
<td>21%</td>
<td>1050</td>
<td>11%</td>
</tr>
<tr>
<td>1600</td>
<td>12%</td>
<td>1080</td>
<td>5%</td>
</tr>
<tr>
<td>1680</td>
<td>10%</td>
<td>1200</td>
<td>3%</td>
</tr>
<tr>
<td>1920</td>
<td>4%</td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<p>As you can see, if you want to hit the majority of the market comfortably, you still have to design for 1024 x 768 resolutions. My general rule of thumb for that resolution is a 960 x 560 viewport design. When you account for scrollbars and an explosion of adware toolbars, that is usually what you have left to work with.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2010/04/27/the-majority-of-internet-users-still-use-archaic-resolutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Updates Downloader 2.50 Build 1000 Released</title>
		<link>http://www.jcarle.com/2010/03/15/windows-updates-downloader-2-50-build-1000-released/</link>
		<comments>http://www.jcarle.com/2010/03/15/windows-updates-downloader-2-50-build-1000-released/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 03:21:01 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=189</guid>
		<description><![CDATA[Another build of the Windows Updates Downloader, version 2.50 Build 1000, has been published. An issue with incorrectly saved proxy port information has been corrected.]]></description>
			<content:encoded><![CDATA[<p>Another build of the <a title="Windows Updates Downloader" href="http://www.windowsupdatesdownloader.com/">Windows Updates Downloader</a>, version 2.50 Build 1000, has been published.</p>
<p>An issue with incorrectly saved proxy port information has been corrected.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2010/03/15/windows-updates-downloader-2-50-build-1000-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office 2010 kills Visual Studio 2008</title>
		<link>http://www.jcarle.com/2009/11/30/office-2010-kills-visual-studio-2008/</link>
		<comments>http://www.jcarle.com/2009/11/30/office-2010-kills-visual-studio-2008/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 17:57:13 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=180</guid>
		<description><![CDATA[My movie induced optimism for Office 2010 was quickly shattered this week after trying out the beta on my box. Having followed the best practice of uninstalling Office 2007 and rebooting before installing the beta, I was not prepared for the days of frustration that would ensue. After several hang dumps and a few days [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-185 alignright" title="microsoft-office2010" src="http://www.jcarle.com/wp-content/uploads/2009/11/microsoft-office2010.jpg" alt="microsoft-office2010" width="150" height="130" />My <a href="http://www.youtube.com/watch?v=VUawhjxLS2I">movie</a> induced optimism for Office 2010 was quickly shattered this week after trying out the beta on my box. Having followed the best practice of uninstalling Office 2007 and rebooting before installing the beta, I was not prepared for the days of frustration that would ensue. After several hang dumps and a few days of futzing around, it was discovered that installing Office 2010 corrupts the Visual Studio Web Authoring Component. A <a href="http://www.google.com/search?hl=en&amp;q=%22Office+2010%22+%22Visual+Studio+2008%22+freezing">quick search of Google</a> also confirmed that this was a recurring issue with others as well. <a href="http://geekswithblogs.net/hinshelm/archive/2009/07/19/office-2010-gotcha-2-visual-studio-2008-locks.aspx">Martin Hinshelwood </a>suggests repairing the installation. However with the prolific use of Visual Studio 2008 internally, I fail to understand how such glaring fault was allowed to slip through for a public beta. My suggestion is to uninstall Office 2010, go back to Office 2007 and wait for the next beta. This is a milestone that is obviously too early to be public.</p>
<p><span id="more-180"></span></p>
<hr />
<em style="font-size: 1.2em;">Note: Here&#8217;s the dump from the hang.</em></p>
<pre style="padding-left: 30px;">0:000&gt; kb
ChildEBP RetAddr  Args to Child
0045d00c 75d30962 00000003 0045d05c 00000001 ntdll!NtWaitForMultipleObjects+0x15
0045d0a8 772f162d 0045d05c 0045d0d0 00000000 KERNELBASE!WaitForMultipleObjectsEx+0x100
0045d0f0 76e303da 00000003 fffde000 00000000 kernel32!WaitForMultipleObjectsExImplementation+0xe0
0045d144 76e3066e 00000044 73c6c9c8 00000096 user32!RealMsgWaitForMultipleObjectsEx+0x14d
0045d160 73a6813d 00000002 73c6c9c8 00000000 user32!MsgWaitForMultipleObjects+0x1f
0045d1d4 73a68e78 0045d1f4 ffffffff 00000000 msi!MsiUIMessageContext::RunInstall+0x2a9
0045d214 73a68d60 00000000 0045d8b0 00000000 msi!RunEngine+0xe2
0045d2c0 73a68c3a 0045d8b0 0045d854 00000000 msi!ConfigureOrReinstallFeatureOrProduct+0x265
0045d2fc 73a68bc0 0045d8b0 0045d854 000003a6 msi!MsiReinstallFeatureW+0x93
0045d5dc 73a586e9 0045d8b0 0045d854 0045d90c msi!ProvideComponent+0x2c5
0045d9c0 73a58c6c 0045da28 00000000 0045dbd0 msi!ProvideComponentFromDescriptor+0x236
0045db8c 5ef6f40c 5e9bf1c0 5e9bf210 00000000 msi!MsiProvideQualifiedComponentExW+0x1e2
WARNING: Stack unwind information not available. Following frames may be wrong.
0045e038 5ea0e5a9 5e4f6f40 0045e058 5ea0e563 FPEDITAX!DllUnregisterServer+0xea68a
0045e044 5ea0e563 5e4f6f40 00000001 00000000 FPEDITAX+0xfe5a9
0045e058 5ea0e54f 5e4f6f40 00000001 00000000 FPEDITAX+0xfe563
0045e068 5ea0e263 5e4f6f40 00000002 5e912608 FPEDITAX+0xfe54f
00000000 00000000 00000000 00000000 00000000 FPEDITAX+0xfe263

0:000&gt; du 0045d8b0
0045d8b0  "{90120000-0021-0000-0000-0000000"
0045d8f0  "FF1CE}"</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2009/11/30/office-2010-kills-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 is now in stores</title>
		<link>http://www.jcarle.com/2009/10/22/windows-7-is-now-in-stores/</link>
		<comments>http://www.jcarle.com/2009/10/22/windows-7-is-now-in-stores/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 01:50:06 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=170</guid>
		<description><![CDATA[Back in July, general availability for Windows 7 was announced to be forthcoming on October 22nd. The great Windows team led by Steven Sinofsky have delivered on that promise. Windows 7 is now in stores. All editions are now available for purchase from any and all reputable vendors. Be sure to check out the Windows [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-176 alignright" style="padding: 0px 16px 16px 0px;" title="Windows 7" src="http://www.jcarle.com/wp-content/uploads/2009/10/windows7_v_web.png" alt="Windows 7" width="150" height="93" /><a href="http://windowsteamblog.com/blogs/windows7/archive/2009/06/02/the-date-for-general-availability-ga-of-windows-7-is.aspx">Back in July</a>, general availability for <a href="http://www.microsoft.com/windows/windows-7/">Windows 7</a> was announced to be forthcoming on October 22nd. The great Windows team led by <a href="http://www.microsoft.com/presspass/exec/ssinofsky/">Steven Sinofsky</a> have delivered on that promise. Windows 7 is <a href="http://www.microsoft.com/presspass/presskits/windows7/default.aspx?contentId=Launch_Keynote">now in stores</a>. All editions are now available for purchase from any and all reputable vendors. Be sure to check out the <a href="http://en.wikipedia.org/wiki/Windows_7_editions">Windows 7 editions</a> comparative on Wikipedia to see which edition is best suited to your needs. Savings of over $200 are available when you purchase the <a href="http://store.microsoft.com/microsoft/Windows-7-Home-Premium-Upgrade-Family-Pack/product/87DFFF11">Windows 7 Home Premium Upgrade Family Pack</a> as well. The never ending list of <a href="http://www.microsoft.com/windows/windows-7/compare/top-ten-reasons.aspx">great features and improvements</a> make this one version of Windows you do not want to miss out on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2009/10/22/windows-7-is-now-in-stores/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Improved ASP JSON utility updated</title>
		<link>http://www.jcarle.com/2009/10/04/improved-asp-json-utility-updated/</link>
		<comments>http://www.jcarle.com/2009/10/04/improved-asp-json-utility-updated/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 01:46:01 +0000</pubDate>
		<dc:creator>Jean-Sebastien Carle</dc:creator>
				<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://www.jcarle.com/?p=166</guid>
		<description><![CDATA[Back in July of this year, I released an improved version of Tuğrul Topuz&#8217;s aspjson utility. Based on some feedback of my release, I decided to revisit the slowly growing list of unfixed issues in the original version. I have addressed all of them and included them with my own fixes. Download the ASPJSON 2.11 [...]]]></description>
			<content:encoded><![CDATA[<p>Back in July of this year, I released <a href="http://www.jcarle.com/2009/07/20/improved-asp-json-utility/">an improved version of Tuğrul Topuz&#8217;s aspjson utility</a>. Based on some feedback of my release, I decided to revisit the slowly growing <a href="http://code.google.com/p/aspjson/issues/list">list of unfixed issues</a> in the original version. I have addressed all of them and included them with my own fixes.</p>
<p>Download the <a href='http://www.jcarle.com/wp-content/uploads/2009/10/JSON.asp'>ASPJSON 2.11</a> source</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jcarle.com/2009/10/04/improved-asp-json-utility-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

