<?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>Nico.Berlee.nl</title>
	<atom:link href="http://nico.berlee.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://nico.berlee.nl</link>
	<description>a digital portfolio</description>
	<lastBuildDate>Sat, 21 Jan 2012 21:31:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Sharepoint using Kerberos on Windows 2008</title>
		<link>http://nico.berlee.nl/sharepoint-using-kerberos-on-windows-2008/</link>
		<comments>http://nico.berlee.nl/sharepoint-using-kerberos-on-windows-2008/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 20:41:13 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Network-/System Administration]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/?p=57</guid>
		<description><![CDATA[Sharepoint 2007 has two authentication protocols it can use internally. NTLM and Kerberos. Default it&#8217;s using NTLM since it is more or less plug and play. Kerberos is the more advanced authentication protocol since it allows the credentials be delegated across other trusted servers or services. I&#8217;m not going to tell you to always use [...]]]></description>
				<content:encoded><![CDATA[<p>Sharepoint 2007 has two authentication protocols it can use internally. NTLM and Kerberos. Default it&#8217;s using NTLM since it is more or less plug and play. Kerberos is the more advanced authentication protocol since it allows the credentials be delegated across other trusted servers or services. I&#8217;m not going to tell you to always use kerberos, but I am a big fan of the authentication protocol, especially when delegating credentials using an ISA 2006 server. If you want more information about the NTLM limitations and why kerberos is a better protocol you might want to google for double hop.</p>
<p>So I configured my new Sharepoint 2007 farm to use kerberos using <a href="http://technet.microsoft.com/en-us/library/cc263449.aspx">Configure Kerberos authentication (Office SharePoint Server)</a> and I ran into some undocumented problems. I got 401 errors when trying to access some Sharepoint urls on the internal network. This was because I configured more than one url binding on an IIS website. Even though i configured both SPN&#8217;s on the service account that was running the Sharepoint application, it was not working using IIS 7 and kerberos. Kerberos will only work on one URL in the binding list, which ever you will try to access first. In order to fix this you have to create a new IIS website using the extend web application function in Sharepoint Central Administration. I was not able to figure out if this is an IIS 7 bug or that this is &#8216;by design&#8217;. Configuring multiple SPNs on one service account however, is not a problem.</p>
<p>The second kerberos problem I ran into gave me more trouble to find out what is going wrong. Kerberos constrained delegation from the ISA to the sharepoint site was not working. I was a bit puzzled by this because <a href="http://support.microsoft.com/kb/262177">kerberos logging</a> didn&#8217;t have a clear answer. It gave me a Kerberos Pre-Authentication Error. As expected ticking the box on the service account &#8216;Do not require Kerberos preauthentication&#8217; didn&#8217;t gave me a solution.</p>
<p>The problem is that IIS 7 has a new feature called Kernel Mode Authentication. Kernel Mode Authentication uses the SPNs on the computer account, even if the application pool runs on a different service account. This is a problem when you are running a Sharepoint farm with more than one frontend webserver. Since SPNs can only be registered once as you already now.<br />
So even if you are running a Sharepoint Farm on one server, consider it best practise to disable Kernel Mode Authentication, on all sharepoint related websites in IIS that have kerberos authentication enabled, including Office Server Web Services. You can disable Kernel Mode Authentication in the IIS MMC on the website select Authentication -&gt; Windows Integrated Authentication -&gt; Advanced Settings.</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/sharepoint-using-kerberos-on-windows-2008/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AjaxBerlee 1.3a WordPress Theme</title>
		<link>http://nico.berlee.nl/ajaxberlee-13-wordpress-theme/</link>
		<comments>http://nico.berlee.nl/ajaxberlee-13-wordpress-theme/#comments</comments>
		<pubDate>Sat, 19 May 2007 14:26:36 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[page-loading]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/ajaxberlee-13-wordpress-theme/</guid>
		<description><![CDATA[CHANGES FEATURE: Better visitor experience when clicking on a link/search or commenting. Especially when the server or the connection is slow. It is configurable in the WP Admin Panel. Thanks to Vijayendra Mohanty for suggesting it FEATURE: You can now disable the Left-Sidebar to have a bigger main column. Thanks to Becky Lai for the [...]]]></description>
				<content:encoded><![CDATA[<p><strong>CHANGES</strong></p>
<ul>
<li>FEATURE: Better visitor experience when clicking on a link/search or commenting. Especially when the server or the connection is slow. It is configurable in the WP Admin Panel. Thanks to Vijayendra Mohanty for suggesting it</li>
<li>FEATURE: You can now disable the Left-Sidebar to have a bigger main column. Thanks to Becky Lai for the idea that is showed on <a href="http://www.sockparade.com">www.sockparade.com</a></li>
</ul>
<p><span id="more-56"></span></p>
<ul>
<li>FEATURE: About text and link is configurable in WordPress Admin Panel
</li>
<li>ENHANCEMENT: The number of Recent Posts in the Slide Ticker is now configurable.
</li>
<li>ENHANCEMENT: The post tags are now also in the post itself.
</li>
<li>ENHANCEMENT: Code for the WP Ajax Connector Framework is now in it own files.. It also has its own Admin Panel page.
</li>
<li>ENHANCEMENT: The comment submit button is immediately disabled when your clicked on it, so double clicks because the visitor is inpatient can not occur.
</li>
<li>ENHANCEMENT: History (back and forward navigation) in Internet Explorer finally works! It was really a pain to get the workaround working right with a minimum amount of coding&#8230;</li>
<li>BUGFIX: An error message can be displayed if something went wrong with the comment submitting.<br />Merged the commenting code of WordPress 2.2 which should be backwards compatible.</li>
<li>BUGFIX: Double title in Categories when not using widgets. Thanks to Martin BÃ¶ttinger for reporting it. I failed to notice it <img src='http://nico.berlee.nl/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
<li>BUGFIX: Image preloading didn&#8217;t really loaded all images on a very fast visitor pc.</li>
<li>BUGFIX: Anchors should now be working right (not getting a 404 page not found anymore)</li>
<li>VISUAL: Changed the bullet.gif so It won&#8217;t contain a dot inside&#8230; Didn&#8217;t really like it <img src='http://nico.berlee.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Sorry, no notes on 1.3 to 1.3a I was too busy fixing bugs and lost track of all the changes committed <img src='http://nico.berlee.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Upgrade note:<br />
If you are updating from 1.2, please note that some files have been renamed! Also, if you enabled the Slide Ticker on your site, please go to the WP Admin Panel -&gt; Presentation -&gt; AjaxBerlee Options and change the value of the Slide Ticker to a number, for example 15.<br />
You also might want to change the about text since it is now controlled in the WP Admin Panel</p>
<p><a href='http://nico.berlee.nl/files/2007/06/ajaxberlee13a.zip' title='Download AjaxBerlee 1.3a'>Download AjaxBerlee 1.3a</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/ajaxberlee-13-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>165</slash:comments>
		</item>
		<item>
		<title>AjaxBerlee 1.2 WordPress Theme</title>
		<link>http://nico.berlee.nl/ajaxberlee-12-wordpress-theme/</link>
		<comments>http://nico.berlee.nl/ajaxberlee-12-wordpress-theme/#comments</comments>
		<pubDate>Tue, 08 May 2007 14:05:32 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[page-loading]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/ajaxberlee-12-wordpress-theme/</guid>
		<description><![CDATA[Please use the latest version! FEATURE: Configurable options in WordPress Admin Panel! SUPPORT: WordPress Widget support ENHANCEMENT: Made the TextSlider code much nicer. And works much better now. ENHANCEMENT: Replaced WordPress functions for the theme that where deprecated in WordPress 2.1 and no longer supported. This means there no WordPress 2.0 support anymore in this [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Please use the latest version!</strong><br />
<a href='http://nico.berlee.nl/files/2007/05/themeoptions.jpg' title='Click to view'><img src='http://nico.berlee.nl/files/2007/05/themeoptions.thumbnail.jpg' class='right' alt='Theme options' /></a></p>
<ul>
<li>FEATURE: Configurable options in WordPress Admin Panel!</li>
<li>SUPPORT: WordPress Widget support</li>
<li>ENHANCEMENT: Made the TextSlider code much nicer. And works much better now.</li>
</ul>
<p><span id="more-55"></span></p>
<ul>
<li>ENHANCEMENT: Replaced WordPress functions for the theme that where deprecated in WordPress 2.1 and no longer supported. This means there no WordPress 2.0 support anymore in this theme!</li>
<li>ENHANCEMENT: When one of the membership options under General Option (in WordPress Panel) is set an Login/Logout Register/Site Admin will appear on the left sidebar. (when not using widgets)</li>
<li>ENHANCEMENT: When a blog is accessible with more than one URL, it will all be redirected to the blog URL defined in WP-admin since the Ajax functions must obey the Same Origin Policy:  http://www.mozilla.org/projects/security/components/same-origin.html</li>
<li>BUGFIX: Fixed timing issue only occourred with Internet Explorer with a # link&#8230; Because it executed the javascript faster than the page could load&#8230; This would bring up an Navigation cancelled dialog box.</li>
<li>BUGFIX: Some characters in the title with accent or circumflexes or just a plane &#8216; quote would be displayed as HTML character entities. (for example &quot; &amp; &lt; &gt;)</li>
<li>BUGFIX: Images with a space in the URL are not preloaded.</li>
<li>BUGFIX: An URL to an external page containing your blog url as a parameter are treated like an internal page. Resulting in a 404 Page not found.</li>
</ul>
<p><strong>Installation</strong></p>
<p>It&#8217;s pretty straight forward, just put the whole directory AjaxBerlee (and content in it of course) to the wp-content/themes. After that, goto Presentation -&gt; Current Theme Options and select the options you like.</p>
<p><strong>Big Tip</strong><br />
Use WordPress Widgets! You can download it from <a href="http://automattic.com/code/widgets">http://automattic.com/code/widgets</a> after that copy the widgets from the plugins/widgets to the widgets directory on the webserver and active them.This allows you to use all components in the sidebar that currently statically exists, to use them very dynamically!</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/ajaxberlee-12-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>AjaxBerlee 1.1 WordPress Theme</title>
		<link>http://nico.berlee.nl/ajaxberlee-11-wordpress-theme/</link>
		<comments>http://nico.berlee.nl/ajaxberlee-11-wordpress-theme/#comments</comments>
		<pubDate>Fri, 04 May 2007 15:00:19 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[page-loading]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/ajaxberlee-11-wordpress-theme/</guid>
		<description><![CDATA[Please use the latest version! A minimal, simple, crisp, clear and light 3 column design. This plugin independent theme highlights the excerpt of the latest article on the home page. AjaxBerlee is based on the Brajeshwar theme, but itâ€™s much faster and it comes with interesting AJAX features such as Instant Comment, Instant Search, Page [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Please use the latest version!</strong></p>
<p>A minimal, simple, crisp, clear and light 3 column design. This plugin independent theme highlights the excerpt of the latest article on the home page.<span id="more-47"></span></p>
<p>AjaxBerlee is based on the Brajeshwar theme, but itâ€™s much faster and it comes with interesting AJAX features such as Instant Comment, Instant Search, Page and Image preloading and an article slider.</p>
<p><strong>Changes</strong></p>
<ul>
<li>Loads of little code enhancements in the WP Ajax Connector Framework to make it more robust and better compatible with Firefox</li>
<li>Preloading of images when a visitor hover over an article link that contains images</li>
<li>Navigation on the front page (older articles)</li>
<li>Merged some of the code of Brajeshwar 7.2.2</li>
<li>Added support for some plug-ins&#8230; See TIPS in ReadMe.txt</li>
</ul>
<p><strong>Compatibility</strong><br />
AjaxBerlee Theme and the WP Ajax Connector Framework are compatible with WordPress:</p>
<ul>
<li>WordPress 2.0.x</li>
<li>WordPress 2.1.x (tested up to 2.1.3)</li>
<li>WordPress-MU (tested up to 1.2.1)</li>
</ul>
<p>Tested on browsers:</p>
<ul>
<li>Internet Explorer 6 &amp; 7</li>
<li>Firefox 2.0.0.3</li>
<li>Opera 9.20</li>
</ul>
<p><strong>Please the latest version!</strong></p>
<p><strong>Common Problem!</strong><br />
It&#8217;s very important that you fill in the right WordPress and Blog address in the WordPress Admin Panel under options:<br />
<img src='http://nico.berlee.nl/files/2007/05/url.gif' alt='URL options in WordPress Admin Panel' /></p>
<p>While this sounds a bit obvious, when your site is www.berlee.nl please double check this value in the Admin Panel to see if it really says http://www.berlee.nl and not http://berlee.nl because that results in a unbrowseable website</p>
<p>Because of security issues Ajax request works only from the url that is configured in the WordPress Admin Panel.</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/ajaxberlee-11-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Faster deployment of new PC&#8217;s using GSS 2</title>
		<link>http://nico.berlee.nl/faster-deployment-of-new-pcs-using-gss-2/</link>
		<comments>http://nico.berlee.nl/faster-deployment-of-new-pcs-using-gss-2/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 14:55:26 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Network-/System Administration]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[pxe_boot]]></category>
		<category><![CDATA[Symantec]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/faster-deployment-of-new-pcs-using-gss-2/</guid>
		<description><![CDATA[When you have a fine Symantec Ghost Solution Suite deployment environment, it could still be a pain to deploy new computers. These are the steps you probably have to do: Boot with PXE boot Write down the last four MAC digits Change the computer name in the ghost console configuration Clone the new pc&#8217;s with [...]]]></description>
				<content:encoded><![CDATA[<p>When you have a fine Symantec Ghost Solution Suite deployment environment, it could still be a pain to deploy new computers. These are the steps you probably have to do:<br />
<span id="more-40"></span></p>
<ul>
<li>Boot with PXE boot</li>
<li>Write down the last four MAC digits</li>
<li>Change the computer name in the ghost console configuration</li>
<li>Clone the new pc&#8217;s with a configuration template (for domain etc)</li>
</ul>
<p>Especially step 2 and 3 are time consuming&#8230; This started me to think about a solution. The easiest way was to ask for a computer name during PXE boot and give that computer name as a parameter to NGCTDOS.exe (which is the Ghost Console client for dos). NGCTDOS then would deliver the computer name to the ghost console.</p>
<p>Nice huh? Except for one thing&#8230; there is no such parameter. I asked this question on the Symantec Forum and Nigel Bree (a really great Principal Software Engineer for the Ghost Solution Suite) <a href="https://forums.symantec.com/syment/board/message?board.id=109&amp;message.id=3335">kindly replied</a> it would be a fairly natural extension.</p>
<p>This started me to think about other ways to get this done, without a pain. I came up with a solution involving ghconfig (which is part of the PXE boot image), change.com (a 19 year old text replacing utility of 737 bytes!) and <a href="http://home.mnet-online.de/horst.muc/ui.htm">wbat</a>.exe (a dialog box utility by Horst Schaeffer).</p>
<p><img src="http://nico.berlee.nl/files/2007/04/new-pc-boot.gif" alt="Network boot, asking if itâ€™s a new pc?" width="360" height="200" class="centered" /></p>
<p>The end result is a dialog box with mouse support, which asks for 15 seconds for a computer name. If no input is given during that period or cancel is pressed, the Ghost Console Client will behave as a normal Ghost Console dos client. If a computer name is entered, the computer name will be set after the ghost image process.</p>
<p>If you also want to speed up your new pcâ€™s deployment process, follow the following steps:</p>
<ol>
<li>Go to the ghost console and pick a Machine configuration. <a href='http://nico.berlee.nl/files/2007/04/gss2-replacecompname.gif' title='Ghost Solution Suite 2 - Replace Computer name'><img src='http://nico.berlee.nl/files/2007/04/gss2-replacecompname.thumbnail.gif' alt='Ghost Solution Suite 2 - Replace Computer name' class='centered' /></a>Change the computer name in REPLACE (in capitals). Change other settings to the settings you want on your new pc&#8217;s.<br />
<a href='http://nico.berlee.nl/files/2007/04/gss2-exportcompconf.gif' title='Ghost Solution Suite 2 - Export Computer Configuration'><img src='http://nico.berlee.nl/files/2007/04/gss2-exportcompconf.thumbnail.gif' alt='Ghost Solution Suite 2 - Export Computer Configuration' class='centered' /></a><br />
Export the configuration, and name the file: ghregupd.reg</li>
<li>Download <a href="http://nico.berlee.nl/wp-content/uploads/ghost-console-new-pc.zip" title="Download files for in the PXE image">ghost-console-new-pc.zip</a> and unpack the zip file</li>
<li>Open the 3Com Boot Image Editor (which is part of the 3Com Boot services on the Ghost install CD)<br />
<a href='http://nico.berlee.nl/files/2007/04/3cbs-bie.gif' title='3Com Boot Image Editor'><img src='http://nico.berlee.nl/files/2007/04/3cbs-bie.thumbnail.gif' alt='3Com Boot Image Editor' class='centered' /></a><br />
Edit the sys pxe file that was created by the Ghost Boot Wizard<br />
<a href='http://nico.berlee.nl/files/2007/04/3cbs-bie2.gif' title='Boot Image Editor'><img src='http://nico.berlee.nl/files/2007/04/3cbs-bie2.thumbnail.gif' alt='Boot Image Editor' class='centered' /></a><br />
Place the just unpacked files (from the downloaded zip file) in the root of the boot image. And put ghregupd.reg in the GHOST directory.</li>
</ol>
<p>You are done.</p>
<p>Please note that if you are now deploying new pcâ€™s the pcâ€™s will appear in the folder New Computers on the Ghost Console initially with their MAC addresses. But after you run a successful task with the following steps:</p>
<ul>
<li>Clone</li>
<li>Execute Command in Ghost Boot Partition: ghconfig.exe /a</li>
<li>Configuration Refresh</li>
<li>(Optionally packages, but absolutely <b>not</b> Configuration!)</li>
</ul>
<p>The computer names will magically appear.</p>
<p>Please note that because Ghost Console is normally in charge of creating or resetting the computer domain account. This means that the new computers are probably not a domain member. You can fix this by running a configuration task with a configuration template afterwards.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/faster-deployment-of-new-pcs-using-gss-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Force clients to choose the right Symantec Ghost Console</title>
		<link>http://nico.berlee.nl/force-clients-to-choose-the-right-symantec-ghost-console/</link>
		<comments>http://nico.berlee.nl/force-clients-to-choose-the-right-symantec-ghost-console/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 21:00:13 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Network-/System Administration]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/force-clients-to-choose-the-right-symantec-ghost-console/</guid>
		<description><![CDATA[So, you have a great Symantec Ghost deployment solution to deploy your standardized sysprep image. On every physical (office) location you have a dedicated Ghost Console because the Ghost Console isn&#8217;t build for concurrent multi-user access and it would probably flood your backbone fiber if you only had one Ghost Console. So here you are, [...]]]></description>
				<content:encoded><![CDATA[<p>So, you have a great Symantec Ghost deployment solution to deploy your standardized sysprep image. On every physical (office) location you have a dedicated Ghost Console because the Ghost Console isn&#8217;t build for concurrent multi-user access and it would probably flood your backbone fiber if you only had one Ghost Console.</p>
<p><span id="more-33"></span>So here you are, faced with a problem. You only want to maintain one image, but that image contains a Ghost Console membership certificate, which means if you are going to deploy that image using other Ghost Consoles, clone tasks will fail, because all computers will contact the Ghost Console on which the image is created.</p>
<p>Luckily Ghost Clients can discover a console. This works as follows according to the <a href="http://service1.symantec.com/SUPPORT/ghost.nsf/ppfdocs/2002101612025325">Symantec Knowledge base</a>:</p>
<blockquote><p>Ghost Clients find the Console using two methods. First, Method 1 is tried, and if that fails, Method 2 is attempted.</p>
<p><strong>Method 1: Multicast</strong><br />
The client sends a Multicast packet to an address and port number that the Console is expecting. All Consoles register their interest in this traffic by sending IGMP (Internet Group Management Protocol) messages. Properly configured routers and switches pass this traffic to the Console. Ensuring that the routers will pass Multicast traffic is usually all that is necessary to get this method working.</p>
<p><strong>Method 2: WINS</strong><br />
Details of this method are shown below for your interest. However, this method relies on a WINS infrastructure existing and working between the networks in question. Usually, if you can browse a computer in the remote site using My Network Places in Windows Explorer, then this method COULD work.</p></blockquote>
<p>This means that if your routers are only passing multicast traffic to the VLANs they suppose to, it should work if you delete the pubkey.crt during the mini setup sysprep install of the new clients. You can do this by creating a <a href="http://support.microsoft.com/kb/238955" title="cmdlines.txt in sysprep setup">cmdlines.txt in the i386$oem$ directory</a>. The content of cmdlines.txt could be something like this:</p>
<pre>[Commands] 
"c:\windowssystem32\wscript.exe c:\sysprep\InSysprep.vbs"</pre>
<p>Â In that same sysprep directory create a file called InSysprep.vbs with the following content:</p>
<pre>Set objFS = CreateObject("Scripting.FileSystemObject") 
objFS.DeleteFile "C:\Program Files\Symantec\Ghost\pubkey.crt", True</pre>
<p>This will delete the membership with the console during the Sysprep Mini-Setup. Since the ghost client service isn&#8217;t started when the Mini-Setup runs, Ghost Client will search for a Ghost Console the first time it will boot up Windows successfully.<br />
In an Ideal world, this would be enough to encourage clients to pick the right console. But I ensure you, when you are ghosting a lot of clients at the same time, some will fallback to the 2th method of server discovery&#8230;. WINS&#8230;</p>
<p>So what can we do about that? Well, the answer is simple. Use a Firewall.. If you have the luxury of layer 4 Routers use them to block <a href="http://service1.symantec.com/SUPPORT/ghost.nsf/ppfdocs/2002101612025325" title="Symantec Knowledge base">Ghost Client traffic (NOTE: port 1346 and 1347 are switched in stage 2 and 3)</a> between VLANs to Ghost Consoles.</p>
<p>If not, please don&#8217;t download the first personal firewall you can find! Use build in Windows tools. IPSec is build into Windows since 2000. The interface is a bit overcomplicated, so I will use ipseccmd to show you how to only allow Ghost Clients that are on subnets you define. Ipseccmd is part of the support tools that can be downloaded from microsoft:</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&amp;displaylang=en">Windows XP SP2 Support Tools</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&amp;displaylang=en">Windows 2003 SP1 Support Tools</a></li>
<li><a href="http://www.microsoft.com/windows2000/downloads/servicepacks/sp4/supporttools.mspx">Windows 2000 Support Tools</a></li>
</ul>
<p>Run the following commands on your ghost consoles after you have installed the Support Tools (or extracted the ipseccmd.exe from the support tools):</p>
<pre>ipseccmd.exe -w REG -p "Ghost Console Clients" -r "Block all Ghost Clients on non defined subnets" -f *=0:1345:UDP -f *+0:1347:UDP -f *+0:1347:TCP -n BLOCK -lan 
ipseccmd.exe -w REG -p "Ghost Console Clients" -r "Allowed Ghost Clients on based on a subnet" -f 10.1.0.0/255.255.0.0=0:1345:UDP -f 10.1.0.0/255.255.0.0+0:1347:UDP -f 10.1.0.0/255.255.0.0+0:1347:TCP -n PASS -lan 
ipseccmd.exe -w REG -p "Ghost Console Clients" -x</pre>
<p>The first ipseccmd line blocks all Ghost Client traffic to the console. The Second line needs to be repeated for every subnet you want to allow. In this example only allows clients in the subnet 10.1.0.0/255.255.0.0 to connect to that ghost console&#8230; replace it for your allowed subnets&#8230;. The last line is there to tell IPSec to enable the rules.</p>
<p>If you screwed up, you can always run:</p>
<pre>ipseccmd.exe -w REG -p "Ghost Console Clients" -o -y</pre>
<p>To clear and disable the IPSec rules.</p>
<p>If the clients on the same subnet as the console and they are not suppose to be connecting the Ghost Console, the first and second line are different because they need to disable multicast discovery:</p>
<pre>ipseccmd.exe -w REG -p "Ghost Console Clients" -r "Block all Ghost Clients on non defined subnets" -f *+0:1345:UDP -f *+0:1347:UDP -f *+0:1347:TCP -n BLOCK -lan 
ipseccmd.exe -w REG -p "Ghost Console Clients" -r "Allowed Ghost Clients on based on a subnet" -f 10.1.0.0/255.255.0.0+0:1345:UDP -f 10.1.0.0/255.255.0.0+0:1347:UDP -f 10.1.0.0/255.255.0.0+0:1347:TCP -n PASS -lan</pre>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/force-clients-to-choose-the-right-symantec-ghost-console/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symantec Ghost Console networkcard detection update</title>
		<link>http://nico.berlee.nl/symantec-ghost-console-networkcard-detection-update/</link>
		<comments>http://nico.berlee.nl/symantec-ghost-console-networkcard-detection-update/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 22:21:39 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Network-/System Administration]]></category>
		<category><![CDATA[broadcom]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[networkcard]]></category>
		<category><![CDATA[Symantec]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/symantec-ghost-console-networkcard-detection-update/</guid>
		<description><![CDATA[When you install new computers in your corporate network with Symantec Ghost, choosing the right dos networkcard template could be a pain when you didn&#8217;t update your drivers that Ghost use for booting using the virtual partition in dos.Â  Major networkchip vendors like Broadcom or Intel are releasing every 2 months a new chip model [...]]]></description>
				<content:encoded><![CDATA[<p>When you install new computers in your corporate network with Symantec Ghost, choosing the right dos networkcard template could be a pain when you didn&#8217;t update your drivers that Ghost use for booting using the virtual partition in dos.Â  Major networkchip vendors like Broadcom or Intel are releasing every 2 months a new chip model along with a driver update&#8230;<span id="more-32"></span></p>
<p>So you finally download, unpacked and updated your <a href="http://www.broadcom.com/support/ethernet_nic/driver-sla.php?driver=570x-DOSNDIS2" title="Download DOS NDIS2 driver">Broadcom BCM57xx</a>Â or <a href="http://downloadfinder.intel.com/scripts-df-external/license_agr.aspx?url=/4239/eng/PRODOS.exe&amp;ProductID=62&amp;agr=Y&amp;sType=&amp;PrdMap=&amp;DwnldId=4239&amp;strOSs=All&amp;OSFullName=All+Operating+Systems&amp;lang=eng" title="Download DOS NDIS2 drivers">Intel Pro 100/1000</a>Â NDIS2 drivers using <a href="http://service1.symantec.com/SUPPORT/ghost.nsf/docid/2000011211551725" title="Symantec Ghost Knowledge base on how to update/add/modify networkcard templates">Ghost Boot Wizard</a>Â but Ghost doesn&#8217;t suggest / autoselectÂ your just updated drivers like it does with the default shipped ones! What&#8217;s that all about?</p>
<p>In order to detect networkcards, Symantec ghost needsÂ to know on a per driver bases the PCI device IDs. PCI device IDs are normally stored in inf that are packedÂ with the drivers. Those inf filesÂ tells Windows for which device the drivers are and how to install them. I have extracted the PCI device IDs from the inf&#8217;s and formatted them into the Ghost file format.</p>
<p>If you updated the BCM57XX driver go to the directory: C:DocumentsÂ AndÂ SettingsAllÂ UsersApplication DataSymantecGhostTemplateBCM57XX (some directories might be hidden) or if you added a template replace the last directory by the template name of the template you added.</p>
<p>Edit the mcassist.cfg and replace all the PCI-TAG lines with the following lines: (these are based on the Broadcom BCM57XX 9.81 driver:</p>
<pre>PCI-TAG = 14e4 1600 : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 1601 : Broadcom BCM5750A1M$ 
PCI-TAG = 14e4 1644 : Broadcom BCM5700$ 
PCI-TAG = 14e4 1645 : Broadcom BCM5701$ 
PCI-TAG = 14e4 1646 : Broadcom BCM5702$ 
PCI-TAG = 14e4 1647 : Broadcom BCM5703$ 
PCI-TAG = 14e4 1648 : Broadcom BCM5704$ 
PCI-TAG = 14e4 1653 : Broadcom BCM5705$ 
PCI-TAG = 14e4 1654 : Broadcom BCM5705A2$ 
PCI-TAG = 14e4 1658 : Broadcom BCM5750$ 
PCI-TAG = 14e4 1659 : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 165D : Broadcom BCM5705M$ 
PCI-TAG = 14e4 165E : Broadcom BCM5705MA2$ 
PCI-TAG = 14e4 1668 : Broadcom BCM5714$ 
PCI-TAG = 14e4 1669 : Broadcom BCM5714S$ 
PCI-TAG = 14e4 166A : Broadcom BCM5780$ 
PCI-TAG = 14e4 166B : Broadcom BCM5714S$ 
PCI-TAG = 14e4 166e : Broadcom BCM5705F$ 
PCI-TAG = 14e4 1672 : Broadcom BCM5750A1M$ 
PCI-TAG = 14e4 1673 : Broadcom BCM5750A1DMOBILE$ 
PCI-TAG = 14e4 1676 : Broadcom BCM5750$ 
PCI-TAG = 14e4 1677 : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 1677 : Broadcom BCM5750$ 
PCI-TAG = 14e4 1678 : Broadcom BCM5714$ 
PCI-TAG = 14e4 1679 : Broadcom BCM5714S$ 
PCI-TAG = 14e4 167A : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 167B : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 167C : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 167D : Broadcom BCM5750$ 
PCI-TAG = 14e4 167E : Broadcom BCM5750A1F$ 
PCI-TAG = 14e4 167F : Broadcom BCM5750A1F$ 
PCI-TAG = 14e4 1693 : Broadcom BCM5750A1M$ 
PCI-TAG = 14e4 1696 : Broadcom BCM5705A2$ 
PCI-TAG = 14e4 169A : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 169B : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 169c : Broadcom BCM5788$ 
PCI-TAG = 14e4 169d : Broadcom BCM5789$ 
PCI-TAG = 14e4 16a6 : Broadcom BCM5702$ 
PCI-TAG = 14e4 16a7 : Broadcom BCM5703$ 
PCI-TAG = 14e4 16A8 : Broadcom BCM5704S$ 
PCI-TAG = 14e4 16C6 : Broadcom BCM5702$ 
PCI-TAG = 14e4 16C7 : Broadcom BCM5703$ 
PCI-TAG = 14e4 16DD : Broadcom BCM5789$ 
PCI-TAG = 14e4 16F7 : Broadcom BCM5750A1$ 
PCI-TAG = 14e4 16FD : Broadcom BCM5750A1M$ 
PCI-TAG = 14e4 16FF : Broadcom BCM5750B0M$ 
PCI-TAG = 14e4 170D : Broadcom BCM5901$ 
PCI-TAG = 14e4 170E : Broadcom BCM5901$</pre>
<p>If you updated theÂ Intel Pro 100Â driver go to the directory: C:DocumentsÂ AndÂ SettingsAllÂ UsersApplication DataSymantecGhostTemplateIntel Pro 100Â (some directories might be hidden) or if you added a template replace the last directory by the template name of the template you added.</p>
<p>Edit the mcassist.cfg and replace all the PCI-TAG lines with the following lines: (these are based on theÂ Intel Prodos 11.2Â driver:</p>
<pre>PCI-TAG = 8086 1037 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 103C : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 103D : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 103E : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 2459 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 245D : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1059 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1050 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1051 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1052 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1053 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1054 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1055 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1056 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1057 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1064 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1065 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1066 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1067 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1068 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1069 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 106A : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 106B : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 27DC : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1091 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1092 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1093 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1094 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1095 : Intel(R) PRO/100 Adapter$ 
PCI-TAG = 8086 1029 : Intel(R) PRO/100 M Mobile Connection$ 
PCI-TAG = 8086 1059 : Intel(R) PRO/100 M Mobile Connection$ 
PCI-TAG = 8086 1031 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1032 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1033 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1034 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1035 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1036 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1038 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 1039 : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 103A : Intel(R) PRO/100 VE Network Connection$ 
PCI-TAG = 8086 103B : Intel(R) PRO/100 VM Network Connection$ 
PCI-TAG = 8086 1229 : Intel(R) 82557 Based Adapter$ 
PCI-TAG = 8086 2449 : Intel(R) PRO/100E Adapter$</pre>
<p>If you updated the Intel Pro 1000 driver go to the directory: C:DocumentsÂ AndÂ SettingsAllÂ UsersApplication DataSymantecGhostTemplateIntel Pro 1000 (some directories might be hidden) or if you added a template replace the last directory by the template name of the template you added.</p>
<p>Edit the mcassist.cfg and replace all the PCI-TAG lines with the following lines: (these are based on the Intel Prodos 11.2 driver:</p>
<pre>PCI-TAG = 8086 1000 : Intel Pro 1000$ 
PCI-TAG = 8086 1001 : Intel Pro 1000$ 
PCI-TAG = 8086 1004 : Intel Pro 1000$ 
PCI-TAG = 8086 1008 : Intel Pro 1000$ 
PCI-TAG = 8086 1009 : Intel Pro 1000$ 
PCI-TAG = 8086 100C : Intel Pro 1000$ 
PCI-TAG = 8086 100D : Intel Pro 1000$ 
PCI-TAG = 8086 100E : Intel Pro 1000$ 
PCI-TAG = 8086 100F : Intel Pro 1000$ 
PCI-TAG = 8086 1010 : Intel Pro 1000$ 
PCI-TAG = 8086 1011 : Intel Pro 1000$ 
PCI-TAG = 8086 1012 : Intel Pro 1000$ 
PCI-TAG = 8086 1013 : Intel Pro 1000$ 
PCI-TAG = 8086 1015 : Intel Pro 1000$ 
PCI-TAG = 8086 1016 : Intel Pro 1000$ 
PCI-TAG = 8086 1017 : Intel Pro 1000$ 
PCI-TAG = 8086 1018 : Intel Pro 1000$ 
PCI-TAG = 8086 1019 : Intel Pro 1000$ 
PCI-TAG = 8086 101D : Intel Pro 1000$ 
PCI-TAG = 8086 101E : Intel Pro 1000$ 
PCI-TAG = 8086 1013 : Intel Pro 1000$ 
PCI-TAG = 8086 1018 : Intel Pro 1000$ 
PCI-TAG = 8086 1019 : Intel Pro 1000$ 
PCI-TAG = 8086 101D : Intel Pro 1000$ 
PCI-TAG = 8086 101E : Intel Pro 1000$ 
PCI-TAG = 8086 1026 : Intel Pro 1000$ 
PCI-TAG = 8086 1027 : Intel Pro 1000$ 
PCI-TAG = 8086 1028 : Intel Pro 1000$ 
PCI-TAG = 8086 1049 : Intel Pro 1000$ 
PCI-TAG = 8086 104A : Intel Pro 1000$ 
PCI-TAG = 8086 104B : Intel Pro 1000$ 
PCI-TAG = 8086 104C : Intel Pro 1000$ 
PCI-TAG = 8086 104D : Intel Pro 1000$ 
PCI-TAG = 8086 105E : Intel Pro 1000$ 
PCI-TAG = 8086 105F : Intel Pro 1000$ 
PCI-TAG = 8086 1060 : Intel Pro 1000$ 
PCI-TAG = 8086 1075 : Intel Pro 1000$ 
PCI-TAG = 8086 1076 : Intel Pro 1000$ 
PCI-TAG = 8086 1077 : Intel Pro 1000$ 
PCI-TAG = 8086 1078 : Intel Pro 1000$ 
PCI-TAG = 8086 1079 : Intel Pro 1000$ 
PCI-TAG = 8086 107A : Intel Pro 1000$ 
PCI-TAG = 8086 107B : Intel Pro 1000$ 
PCI-TAG = 8086 107C : Intel Pro 1000$ 
PCI-TAG = 8086 107D : Intel Pro 1000$ 
PCI-TAG = 8086 107E : Intel Pro 1000$ 
PCI-TAG = 8086 107F : Intel Pro 1000$ 
PCI-TAG = 8086 108A : Intel Pro 1000$ 
PCI-TAG = 8086 108B : Intel Pro 1000$ 
PCI-TAG = 8086 108C : Intel Pro 1000$ 
PCI-TAG = 8086 1097 : Intel Pro 1000$ 
PCI-TAG = 8086 1098 : Intel Pro 1000$ 
PCI-TAG = 8086 109A : Intel Pro 1000$ 
PCI-TAG = 8086 10A4 : Intel Pro 1000$ 
PCI-TAG = 8086 10B5 : Intel Pro 1000$ 
PCI-TAG = 8086 10B9 : Intel Pro 1000$ 
PCI-TAG = 8086 10BA : Intel Pro 1000$ 
PCI-TAG = 8086 10BB : Intel Pro 1000$ 
PCI-TAG = 8086 10BC : Intel Pro 1000$ 
PCI-TAG = 8086 10C4 : Intel Pro 1000$ 
PCI-TAG = 8086 10C5 : Intel Pro 1000$</pre>
<p>After you are done editing the files, restart the Ghost Console. Now your Intel or Broadcom chipbased networkcard are getting recognized again!</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/symantec-ghost-console-networkcard-detection-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Writing my own Google Gadgets</title>
		<link>http://nico.berlee.nl/writing-my-own-google-gadgets/</link>
		<comments>http://nico.berlee.nl/writing-my-own-google-gadgets/#comments</comments>
		<pubDate>Sun, 07 Jan 2007 03:19:08 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[loading_speed]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/writing-my-own-google-gadgets/</guid>
		<description><![CDATA[Because I had some spare time, I took a good look at theÂ Google Personalized Homepage&#8230; It looks very much the same as Live.com at first sight (although loading speed of Google is much better). Be amazed about the tremendious amount of items and gadgets you can add. The great thing about is is that google [...]]]></description>
				<content:encoded><![CDATA[<p>Because I had some spare time, I took a good look at theÂ Google Personalized Homepage&#8230; It looks very much the same as Live.com at first sight (although loading speed of Google is much better). Be amazed about the tremendious amount of items and gadgets you can add.<br />
<span id="more-31"></span><br />
<img width="370" src="http://nico.berlee.nl/files/2007/01/googlepersonal.png" alt="Google Personalized Homepage" height="267" /></p>
<p>The great thing about is is that google let you write your own gadgets if you can&#8217;t find what you are looking for. Take the hello world example on <a href="http://www.google.com/apis/gadgets/docs-home.html">http://www.google.com/apis/gadgets/docs-home.html</a>Â and modify it to fit your needs. If want to adjust the height of the plugin take further look in the API&#8230; It is really very easy&#8230;</p>
<p>I made two gadgets I want to share with you. The first one is <a href="http://www.google.com/ig/add?synd=open&amp;source=ggyp&amp;moduleurl=http://nico.berlee.nl/files/2007/01/3fm-live.xml" title="Add it to your Google Homepage">aÂ 3FM Live radio stream player</a> (Dutch) I created it because when I start my computer, I do that because I want to figure something out, and don&#8217;t want to be bothered by going to a website for webradio (that&#8217;s a secondary goal)</p>
<p>The second gadget has something to do with the first one. When you have webradio on a page, you want to keep hearing it after you click on a link on the Google Homepage&#8230; <a href="http://www.google.com/ig/add?synd=open&amp;source=ggyp&amp;moduleurl=http://nico.berlee.nl/files/2007/01/newwindow.xml" title="Add it to your Google Homepage">Open links in a new window</a> helps with that. As it contains a smallÂ javascript that forces the browser to open every link in a new tab/window. Note, after you add it click on the OK link. You can drag and this gadget, but you have to reload the website, because if you don&#8217;t, the gadget won&#8217;t work.</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/writing-my-own-google-gadgets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AdSense and AJAX: Not a happy combination</title>
		<link>http://nico.berlee.nl/adsense-and-ajax-not-a-happy-combination/</link>
		<comments>http://nico.berlee.nl/adsense-and-ajax-not-a-happy-combination/#comments</comments>
		<pubDate>Sun, 22 Oct 2006 20:05:38 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/adsense-and-ajax-not-a-happycombination/</guid>
		<description><![CDATA[After releasing my AjaxBerlee WordPress theme George and Milan&#8217;Che reported problems with Google&#8217;s AdSense. This left me with a problem. Because new page requests in my theme are parsed over the old ones. AdSense works as follows. The Mediapartners-Google spider indexes the site, when visitor now requests one of your pages it will load the [...]]]></description>
				<content:encoded><![CDATA[<p>After releasing my <a href="http://nico.berlee.nl/ajaxberlee-wordpress-theme-released/">AjaxBerlee</a> WordPress theme George and Milan&#8217;Che reported problems with Google&#8217;s <a href="https://www.google.com/adsense/">AdSense</a>. This left me with a problem. Because new page requests in my theme are parsed over the old ones.<span id="more-29"></span></p>
<p>AdSense works as follows. The Mediapartners-Google spider indexes the site, when visitor now requests one of your pages it will load the external JavaScript from the Google domain. In that JavaScript the text advertise is displayed.</p>
<p>So far so good. An AJAXified page will initially display the AdSense advertise very well (because the pages are <a href="http://nico.berlee.nl/my-improved-website-response-with-ajax/">backwards compatible</a>). The visitor clicks on a link and now only a part of the page get reloaded, but not the AdSense advertise. Because it&#8217;s possible to load an JavaScript into JavaScript, but its not possible to reload JavaScript into JavaScript (for scripts that aren&#8217;t build for it).</p>
<p>I suspected that Google had some kind of a refresh function build in where I could specify which URL the currently displayed AJAXified site was. So when you click on an AJAXified link, the Ajax JavaScript calls a Google refresh function. (this is actually how the <a href="http://www.google.com/analytics/">Google Analytics</a> support works in the AJAX JavaScript)</p>
<p>I was surprised to find out that there was not such a function in the AdSense JavaScript. So I tried to find out how AJAXified sites like <a href="http://maps.google.com">Google Maps</a> and <a href="http://www.gmail.com/">GMail</a> works with AdSense. Well, actually, they don&#8217;t!</p>
<p>GMail has some uses some AJAX function to display realtime new incoming messages, but the actually displaying of mail goes thru frames and plain old loading of pages! And Google Maps actually doesn&#8217;t use AdSense at all&#8230; Well, they do, but its parsed into the page and doesn&#8217;t use external JavaScript at all, as described above.</p>
<p>I found <a href="http://www.jguru.com/forums/view.jsp?EID=1305379">one workaround by Kevin Cho</a> who used an iframe. In that iframe the AdSense got loaded with the keywords of that page specially dedicated for AdSense for that site. You need to type these manually, which is a hell of a job if you have a lot of pages. And it&#8217;s probably against the <a href="https://www.google.com/adsense/support/bin/topic.py?topic=8423">Program Policies</a> which are very clear about cloaking.</p>
<p>I decided not to implement that workaround because of the Program Policies violation. But I will publish a modified ajax.js that is compatible with AdSense but does not have the enhanced page loading.</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/adsense-and-ajax-not-a-happy-combination/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>AjaxBerlee WordPress theme released</title>
		<link>http://nico.berlee.nl/ajaxberlee-wordpress-theme-released/</link>
		<comments>http://nico.berlee.nl/ajaxberlee-wordpress-theme-released/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 00:24:42 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://nico.berlee.nl/ajaxberlee-wordpress-themereleased/</guid>
		<description><![CDATA[Please use the latest version! With proud I present to you &#8230;.. my theme. I finally decided it&#8217;s works good enough to be used by others. My theme is based on brajeshwar with some small visual adjustments. The biggest changes are under the hood: Instant Search (Gives you results when you type!) Instant Comment (Page [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Please use the latest version!</strong></p>
<p>With proud I present to you &#8230;.. my theme. I finally decided it&#8217;s works good enough to be used by others.<span id="more-28"></span> My theme is based on <a href="http://www.brajeshwar.com">brajeshwar</a> with some small visual adjustments. The biggest changes are under the hood:</p>
<ul>
<li>Instant Search (Gives you results when you type!)</li>
<li>Instant Comment (Page does not reloaded when you submit your comment)</li>
<li>Advanced Ajax page loading see <a href="http://nico.berlee.nl/my-improved-website-response-with-ajax/">My improved website response with Ajax</a> and <a href="http://nico.berlee.nl/solved-latency-problems-with-ajax/">Solved latency problems with Ajax</a></li>
</ul>
<p>All driven by my own build <a href="http://nico.berlee.nl/ajax-javascript-libraries/">very light weighted framework</a> which I will release hopefully later this week separately with a howto to adapt it to your own WordPress theme.</p>
<p>I released the theme and framework under <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>.<br />
<strong>Please the latest version!</strong><br />
Please read the readme.txt before putting it on your site.<br />
AjaxBerlee depends on a modified pagesnav version of Adi Sieker which you can download <a href="http://nico.berlee.nl/wp-content/uploads/wp-pagesnav.zip">here</a></p>
<p><em><strong>Note: for everyone whole I going to change things in the theme: Please go to line 26 of ajax.php and put // before ClientCache();</strong></em></p>
<p><em>This will prevent the browser of displaying and old cached version of the theme (the content of WordPress is in any case up to date!)</em></p>
<p>TIP: Google Analytics support is build in. Take a look at footer.php:<br />
Remove on line 7 &lt;!&#8212; and &#8212;&gt;<br />
Remove on line 11 &amp; 13 /* and */<br />
And fill your UA number from Google analytics on line 12.</p>
]]></content:encoded>
			<wfw:commentRss>http://nico.berlee.nl/ajaxberlee-wordpress-theme-released/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>
