<?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>musc@&#62; $daniele.rant &#124; Out-Blog &#187; Cross Platform</title>
	<atom:link href="http://www.muscetta.com/category/cross-platform/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muscetta.com</link>
	<description>Superior Dedication - If you try hard enough, you might even get it to work.</description>
	<lastBuildDate>Sun, 18 Jul 2010 15:22:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to convert (and fixup) the RedHat RPM to run on Debian/Ubuntu</title>
		<link>http://www.muscetta.com/2010/06/21/how-to-convert-and-fixup-the-redhat-rpm-to-run-on-debianubuntu/</link>
		<comments>http://www.muscetta.com/2010/06/21/how-to-convert-and-fixup-the-redhat-rpm-to-run-on-debianubuntu/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 20:57:00 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[deb]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[management pack]]></category>
		<category><![CDATA[MP]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[repackage]]></category>
		<category><![CDATA[repackaging]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unsupported]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=505</guid>
		<description><![CDATA[In an earlier post I had shown how I got the Xplat agent running on Ubuntu. I perfected the technique over time, and what follows is a step-by-step process on how to convert and change the RedHat package to run on Debian/Ubuntu. Of course this is still a hack… but some people asked me to [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/">In an earlier post I had shown how I got the Xplat agent running on Ubuntu</a>. I perfected the technique over time, and what follows is a step-by-step process on how to convert and change the RedHat package to run on Debian/Ubuntu. Of course this is still a hack… but some people asked me to detail it a bit more. At the same time, the cross platform team is working to update the <a href="http://scx.codeplex.com/">the source code</a> on codeplex with extra bits that will make more straightforward to grab it, modify it and re-compile it than it is today. Until then, here is how I got it to work.</p>
<p>I assume you have already copied the right .RPM package off the OpsMgr server’s /AgentManagement directory to the Linux box here. The examples below refer to the 32bit package, but of course the same identical technique would work for the 64bit version.</p>
<p>We start by converting the RPM package to DEB format:</p>
<p>root# <b>alien -k scx-1.0.4-258.rhel.5.x86.rpm &#8211;scripts</b></p>
<p>scx_1.0.4-258_i386.deb generated</p>
<p>&#160;</p>
<p>Then we need to create a folder where we will extract the content of the package, modify stuff, and repackage it:</p>
<p>root# <b>mkdir scx_1.0.4-258_i386</b></p>
<p>root# <b>cd scx_1.0.4-258_i386</b></p>
<p>root# <b>ar -x ../scx_1.0.4-258_i386.deb</b></p>
<p>root# <b>mkdir debian</b></p>
<p>root# <b>cd debian</b></p>
<p>root# <b>mkdir DEBIAN</b></p>
<p>root# <b>cd DEBIAN</b></p>
<p>root# <b>cd ../..</b></p>
<p>root# <b>rm debian-binary</b></p>
<p>root# <b>mv control.tar.gz debian/DEBIAN/</b></p>
<p>root# <b>mv data.tar.gz debian/</b></p>
<p>root# <b>cd debian</b></p>
<p>root# <b>tar -xvzf data.tar.gz</b></p>
<p>root# <b>rm data.tar.gz</b></p>
<p>root# <b>cd DEBIAN/</b></p>
<p>root# <b>tar -xvzf control.tar.gz</b></p>
<p>root# <b>rm control.tar.gz</b></p>
<p>Now we have the “skeleton” of the package easily laid out on the filesystem and we are ready to modify the package and add/change stuff to and in it.</p>
<p>&#160;</p>
<p>First, we need to add some stuff to it, which is expected to be found on a redhat distro, but is not present in debian. In particular:</p>
<p>1. You should copy the file “functions” (that you can get from a <strong>redhat/centos box under /etc/init.d</strong>) under the <strong>debian/etc/init.d</strong> folder in our package folder. This file is required/included by our startup scripts, so it needs to be deployed too.</p>
<p>Then we need to chang some of the packacge behavior by editing files under <strong>debian/DEBIAN</strong>:</p>
<p>2. edit the “<strong>control</strong>” file (a file describing what the package is, and does):</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://www.muscetta.com/wp-content/uploads/clip_image0022.jpg" width="624" height="198" /></p>
<p>3. edit the “<strong>preinst</strong>” file (pre-installation instructions): we need to add instructions to copy the “<strong>issue</strong>” file onto “<strong>redhat-release</strong>” (as the SCX_OperatingSystem class will look into that file, and this is hard-coded in the binary, we need to let it find it):</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://www.muscetta.com/wp-content/uploads/clip_image0042.jpg" width="624" height="201" /></p>
<p>these are the actual command lines to add for both packages (DEBIAN or UBUNTU):</p>
<blockquote><p># symbolic links for libaries called differently on Ubuntu and Debian vs. RedHat</p>
<p>ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.6</p>
<p>ln -s /usr/lib/libssl.so.0.9.8 /usr/lib/libssl.so.6</p>
</blockquote>
<p><font color="#777777"></font></p>
<p>the following bit would be Ubuntu-specific:</p>
<blockquote><p>#we need this file for the OS provider relies on it, so we convert what we have in /etc/issue</p>
<p>#this is ok for Ubuntu (“Ubuntu 9.0.4 \n \l” becomes “Ubuntu 9.0.4”)</p>
<p>cat /etc/issue | awk &#039;/\\n/ {print $1, $2}&#039; &gt; /etc/redhat-release</p>
</blockquote>
<p><font color="#777777"></font></p>
<p>while the following bit is Debian-specific:</p>
<blockquote><p>#this is ok for Debian (“Debian GNU/Linux 5.0 \n \l” becomes “Debian GNU/Linux 5.0”)</p>
<p>cat /etc/issue | awk &#039;/\\n/ {print $1, $2, $3}&#039; &gt; /etc/redhat-release</p>
</blockquote>
<p>&#160;</p>
<p>4. Then we edit/modify the “<strong>postinst</strong>” file (post-installation instructions) as follows:</p>
<p>a. remove the 2<sup>nd</sup> and 3<sup>rd</sup> lines which look like the following</p>
<blockquote><p>RPM_INSTALL_PREFIX=</p>
<p>export RPM_INSTALL_PREFIX</p>
</blockquote>
<p>as they are only useful for the RPM system, not DEB/APT, so we don’t need them.</p>
<p>b. change the following 2 functions which contain RedHat-specific commands:</p>
<blockquote><p>configure_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /usr/lib/lsb/install_initd /etc/init.d/scx-cimd</p>
<p>}</p>
<p>start_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; service scx-cimd start</p>
<p>}</p>
</blockquote>
<p>c. We need to change in the Debian equivalents for registering a service in INIT and starting it:</p>
<blockquote><p>configure_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; update-rc.d scx-cimd defaults</p>
<p>}</p>
<p>start_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /etc/init.d/scx-cimd start</p>
<p>}</p>
</blockquote>
<p>5. Modify the “<strong>prerm</strong>” file (pre-removal instructions):</p>
<p>a. Just like “<strong>postinst</strong>”, remove the lines</p>
<blockquote><p>RPM_INSTALL_PREFIX=</p>
<p>export RPM_INSTALL_PREFIX</p>
</blockquote>
<p>b. Locate the two functions stopping and un-installing the service</p>
<blockquote><p>stop_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; service scx-cimd stop</p>
<p>}</p>
<p>unregister_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /usr/lib/lsb/remove_initd /etc/init.d/scx-cimd</p>
<p>}</p>
</blockquote>
<p>c. Change those two functions with the Debian-equivalent command lines</p>
<blockquote><p>stop_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /etc/init.d/scx-cimd stop</p>
<p>}</p>
<p>unregister_pegasus_service() {</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; update-rc.d -f scx-cimd remove</p>
<p>}</p>
</blockquote>
<p>At this point the change we needed have been put in place, and we can re-build the DEB package.</p>
<p>Move yourself in the main folder of the application (the <b>scx_1.0.4-258_i386</b> folder):</p>
<p>root# <b>cd ../..</b></p>
<p>Create the package starting from the folders</p>
<p>root# <b>dpkg-deb &#8211;build debian</b></p>
<p>dpkg-deb: building package `scx&#039; in `debian.deb&#039;.</p>
<p>Rename the package (for Ubuntu)</p>
<p>root# <b>mv debian.deb scx_1.0.4-258_Ubuntu_9_i386.deb</b></p>
<p>Rename the package (for Debian)</p>
<p>root# <b>mv debian.deb scx_1.0.4-258_Debian_5_i386.deb</b></p>
<p>Install it</p>
<p>root# <b>dpkg -i scx_1.0.4-258_Platform_Version_i386.deb</b></p>
<p>All done! It should install and work!</p>
<p>&#160;</p>
<p>Next step would be creating a Management Pack to monitor Debian and Ubuntu. It is pretty similar to what Robert Hearn has described <a href="http://blogs.msdn.com/scxplat/archive/2010/01/05/building-a-centos-management-pack-part-1.aspx">step</a> <a href="http://blogs.msdn.com/b/scxplat/archive/2010/01/15/building-a-centos-management-pack-part-2.aspx">by</a> <a href="http://blogs.msdn.com/b/scxplat/archive/2010/01/18/building-a-centos-management-pack-part-3.aspx">step</a> for CentOS, but with some different replacements of strings, as you can imagine. I have done this but have not written down the procedure yet, so I will post another article on how to do this as soon as I manage to get it standardized and reliable. There is a bit more work involved for Ubuntu/Debian… as some of the daemons/services have different names, and certain files too… but nothing terribly difficult to change so you might want to try it already and have a go at it!</p>
<p>In the meantime, as a teaser, here’s my server’s (<a href="http://www.muscetta.com">http://www.muscetta.com</a>) performance, being monitored with this “hack”:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.muscetta.com/wp-content/uploads/image51.png" width="1018" height="567" /></p>
<p>&#160;</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &quot;AS IS&quot; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &quot;AS IS&quot; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.    <br />THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/06/21/how-to-convert-and-fixup-the-redhat-rpm-to-run-on-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few thoughts on sizing Audit Collection System</title>
		<link>http://www.muscetta.com/2010/03/18/a-few-thoughts-on-sizing-audit-collection-system/</link>
		<comments>http://www.muscetta.com/2010/03/18/a-few-thoughts-on-sizing-audit-collection-system/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 13:07:25 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[ACS]]></category>
		<category><![CDATA[Audit]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[sizing]]></category>
		<category><![CDATA[TSQL]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=495</guid>
		<description><![CDATA[People were already collecting logs with MOM, so why not the security log? Some people were doing that, but it did not scale enough; for this reason, a few years ago Eric Fitzgerald announced that he was working on Microsoft Audit Collection System. Anyhow, the tool as it was had no interface… and the rest [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>People were already collecting logs with MOM, so why not the security log? Some people were doing that, but it did not scale enough; for this reason, a few years ago <a href="http://blogs.msdn.com/ericfitz/">Eric Fitzgerald</a> announced that he was working on <a href="http://lists.jammed.com/loganalysis/2003/10/0024.html">Microsoft Audit Collection System</a>. Anyhow, the tool as it was had no interface… and the rest is history: it has been integrated into System Center Operations Manager. Anyhow, ACS remains a lesser-known component of OpsMgr.</p>
<p>There are a number of resources on the web that is worth mentioning and linking to:</p>
<ul>
<li>SecureVantage ACS Resource Kit <a title="http://www.securevantage.com/Products/ACSResourceKit.aspx" href="http://www.securevantage.com/Products/ACSResourceKit.aspx">http://www.securevantage.com/Products/ACSResourceKit.aspx</a></li>
<li>Securevantage has also some very nice online training “Master Classes” <a title="http://www.securevantage.com/ACSTraining.aspx" href="http://www.securevantage.com/ACSTraining.aspx">http://www.securevantage.com/ACSTraining.aspx</a></li>
<li>Old-ish Overview <a title="http://opsmgr2007.wikidot.com/system:audit-collection-services" href="http://opsmgr2007.wikidot.com/system:audit-collection-services">http://opsmgr2007.wikidot.com/system:audit-collection-services</a></li>
<li>Old-ish post by kevin <a title="http://blogs.technet.com/kevinholman/archive/2008/03/07/acs-internals-part-1.aspx" href="http://blogs.technet.com/kevinholman/archive/2008/03/07/acs-internals-part-1.aspx">http://blogs.technet.com/kevinholman/archive/2008/03/07/acs-internals-part-1.aspx</a></li>
<li><a href="http://blogs.technet.com/momteam/archive/2009/05/08/acs-reports-for-windows-2008-and-windows-2008-r2.aspx"><span style="color: #333333;">ACS Reports for Win2008 </span>http://blogs.technet.com/momteam/archive/2009/05/08/acs-reports-for-windows-2008-and-windows-2008-r2.aspx</a></li>
<li><a title="http://blogs.msdn.com/scxplat/archive/2009/12/17/cross-platform-audit-collection-services-released.aspx" href="http://blogs.msdn.com/scxplat/archive/2009/12/17/cross-platform-audit-collection-services-released.aspx"><span style="color: #333333;">ACS for Cross-Platform </span>http://blogs.msdn.com/scxplat/archive/2009/12/17/cross-platform-audit-collection-services-released.aspx</a></li>
<li>Jimmy Harper’s Custom ACS Reports <a title="http://blogs.technet.com/jimmyharper/archive/2009/12/10/some-custom-acs-reports.aspx" href="http://blogs.technet.com/jimmyharper/archive/2009/12/10/some-custom-acs-reports.aspx">http://blogs.technet.com/jimmyharper/archive/2009/12/10/some-custom-acs-reports.aspx</a></li>
</ul>
<p>and, of course, many more, I cannot link them all.</p>
<p>As for myself, I have been playing with ACS since those early beta days (before <a href="http://blogs.msdn.com/dmuscett/archive/2004/11/18/263280.aspx">I joined Microsoft and before going back to MOM</a>, when I was working in Security), but I never really blogged about this piece.</p>
<p>Since I have been doing quite a lot of work around ACS lately, again, I thought it might be worth consolidating some thoughts about it, hence this post.</p>
<h3>Anatomy of an “Online” Sizing Calculation</h3>
<p>What I would like to explain here is the strategy and process I go thru when analyzing the data stored in a ACS database, in order to determine a filtering strategy: what to keep and what not to keep, by applying a filter on the ACS Collector.</p>
<p>So, the first thing I usually start with is using one of the many “ACS sizer” Excel spreadsheets around… which usually tell you that you need more space than it really is necessary… basically giving you a “worst case” scenario. I don’t know how some people can actually do this from a purely theoretical point of view, but I usually prefer a bottom up approach: I look at the actual data that the ACS is collecting without filters, and start from there for a better/more accurate sizing.</p>
<p>In the case of a new install this is easy – you just turn ACS on, set the retention to a few days (one or two weeks maximum), give the DB plenty of space to make sure it will make it, add all your forwarders… sit back and wait.</p>
<p>Then you come back 2 weeks later and start looking at the data that has been collected.</p>
<h3>What/How much data are we collecting?</h3>
<p>First of all, if we have not changed the default settings, the grooming and partitioning algorithm will create new partitioned tables every day. So my first step is to see how big each “partition” is.</p>
<p>But… what is a partition, anyway? A partition is a set of 4 tables joint together:</p>
<ol>
<li>dtEvent_GUID</li>
<li>dtEventData_GUID</li>
<li>dtPrincipal_GUID</li>
<li>dtSTrings_GUID</li>
</ol>
<p>where GUID is a new GUID every day, and of course the 4 tables that make up a daily partition will have the same GUID.</p>
<p>The <strong>dtPartition</strong> table contains a list of all partitions and their GUIDs, together with their start and closing time.</p>
<p>Just to get a rough estimate we can ignore the space used by the last three tables – which are usually very small – and only use the <strong>dtEvent_GUID</strong> table to get the number of events for that day, and use the stored procedure “sp_spaceused”  against that same table to get an overall idea of how much space that day is taking in the database.</p>
<p>By following this process, I come up with something like the following:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="391"><strong>Partition ID </strong></td>
<td width="64"><strong>Status </strong></td>
<td width="139"><strong>Partition Start Time </strong></td>
<td width="183"><strong>Partition Close Time </strong></td>
<td width="121"><strong>Rows </strong></td>
<td width="163"><strong>Reserved  KB </strong></td>
<td width="96"><strong>Total GB </strong></td>
</tr>
<tr>
<td width="391">9b45a567_c848_4a32_9c35_39b402ea0ee2</td>
<td width="64">0</td>
<td width="139">2/1/2010 2:00</td>
<td width="183">2/1/2010 2:00</td>
<td width="121">29,749,366</td>
<td width="163">7,663,488</td>
<td width="96" valign="bottom">7,484</td>
</tr>
<tr>
<td width="391">8d8c8ee1_4c5c_4dea_b6df_82233c52e346</td>
<td width="64">2</td>
<td width="139">1/31/2010 2:00</td>
<td width="183">2/1/2010 2:00</td>
<td width="121">28,067,438</td>
<td width="163">9,076,904</td>
<td width="96" valign="bottom">8,864</td>
</tr>
<tr>
<td width="391">34ce995b_689b_46ae_b9d3_c644cfb66e01</td>
<td width="64">2</td>
<td width="139">1/30/2010 2:00</td>
<td width="183">1/31/2010 2:00</td>
<td width="121">30,485,110</td>
<td width="163">9,857,896</td>
<td width="96" valign="bottom">9,627</td>
</tr>
<tr>
<td width="391">bb7ea5d3_f751_473a_a835_1d1d42683039</td>
<td width="64">2</td>
<td width="139">1/29/2010 2:00</td>
<td width="183">1/30/2010 2:00</td>
<td width="121">48,464,952</td>
<td width="163">15,670,792</td>
<td width="96" valign="bottom">15,304</td>
</tr>
<tr>
<td width="391">ee262692_beae_4d81_8079_470a54567946</td>
<td width="64">2</td>
<td width="139">1/28/2010 2:00</td>
<td width="183">1/29/2010 2:00</td>
<td width="121">48,980,178</td>
<td width="163">15,836,416</td>
<td width="96" valign="bottom">15,465</td>
</tr>
<tr>
<td width="391">7984b5b8_ddea_4e9c_9e51_0ee7a413b4c9</td>
<td width="64">2</td>
<td width="139">1/27/2010 2:00</td>
<td width="183">1/28/2010 2:00</td>
<td width="121">51,295,777</td>
<td width="163">16,585,408</td>
<td width="96" valign="bottom">16,197</td>
</tr>
<tr>
<td width="391">d93b9f0e_2ec3_4f61_b5e0_b600bbe173d2</td>
<td width="64">2</td>
<td width="139">1/26/2010 2:00</td>
<td width="183">1/27/2010 2:00</td>
<td width="121">53,385,239</td>
<td width="163">17,262,232</td>
<td width="96" valign="bottom">16,858</td>
</tr>
<tr>
<td width="391">8ce1b69a_7839_4a05_8785_29fd6bfeda5f</td>
<td width="64">2</td>
<td width="139">1/25/2010 2:00</td>
<td width="183">1/26/2010 2:00</td>
<td width="121">55,997,546</td>
<td width="163">18,105,840</td>
<td width="96" valign="bottom">17,681</td>
</tr>
<tr>
<td width="391">19aeb336_252d_4099_9a55_81895bfe5860</td>
<td width="64">2</td>
<td width="139">1/24/2010 2:00</td>
<td width="183">1/24/2010 2:00</td>
<td width="121">28,525,304</td>
<td width="163">7,345,120</td>
<td width="96" valign="bottom">7,173</td>
</tr>
<tr>
<td width="391">1cf70e01_3465_44dc_9d5c_4f3700dc408a</td>
<td width="64">2</td>
<td width="139">1/23/2010 2:00</td>
<td width="183">1/23/2010 2:00</td>
<td width="121">26,046,092</td>
<td width="163">6,673,472</td>
<td width="96" valign="bottom">6,517</td>
</tr>
<tr>
<td width="391">f5ec207f_158c_47a8_b15f_8aab177a6305</td>
<td width="64">2</td>
<td width="139">1/22/2010 2:00</td>
<td width="183">1/22/2010 2:00</td>
<td width="121">47,818,322</td>
<td width="163">12,302,208</td>
<td width="96" valign="bottom">12,014</td>
</tr>
<tr>
<td width="391">b48dabe6_a483_4c60_bb4d_93b7d3549b3e</td>
<td width="64">2</td>
<td width="139">1/21/2010 2:00</td>
<td width="183">1/21/2010 2:00</td>
<td width="121">55,060,150</td>
<td width="163">14,155,392</td>
<td width="96" valign="bottom">13,824</td>
</tr>
<tr>
<td width="391">efe66c10_0cf2_4327_adbf_bebb97551c93</td>
<td width="64">2</td>
<td width="139">1/20/2010 2:00</td>
<td width="183">1/20/2010 2:00</td>
<td width="121">58,322,217</td>
<td width="163">15,029,216</td>
<td width="96" valign="bottom">14,677</td>
</tr>
<tr>
<td width="391">0231463e_8d50_4a42_a834_baf55e6b4dcd</td>
<td width="64">2</td>
<td width="139">1/19/2010 2:00</td>
<td width="183">1/19/2010 2:00</td>
<td width="121">61,257,393</td>
<td width="163">15,741,248</td>
<td width="96" valign="bottom">15,372</td>
</tr>
<tr>
<td width="391">510acc08_dc59_482e_a353_bfae1f85e648</td>
<td width="64">2</td>
<td width="139">1/18/2010 2:00</td>
<td width="183">1/18/2010 2:00</td>
<td width="121">64,579,122</td>
<td width="163">16,612,512</td>
<td width="96" valign="bottom">16,223</td>
</tr>
</tbody>
</table>
<p>If you have just installed ACS and let it run without filters with your agents for a couple of weeks, you should get some numbers like those above for your “couple of weeks” of analysis. If you graph your numbers in Excel (both size and number of rows/events per day) you should get some similar lines that show a pattern or trend:</p>
<p><img style="display: inline; border-width: 0px;" title="Trend: Space user by day" src="http://www.muscetta.com/wp-content/uploads/clip_image002.gif" border="0" alt="Trend: Space user by day" width="700" height="291" /></p>
<p><img style="display: inline; border-width: 0px;" title="Trend: Number of events by day" src="http://www.muscetta.com/wp-content/uploads/clip_image004.gif" border="0" alt="Trend: Number of events by day" width="679" height="322" /></p>
<p>So, in my example above, we can clearly observe a “weekly” pattern (monday-to-friday being busier than the weekend) and we can see that – for that environment – the biggest partition is roughly 17GB. If we round this up to 20GB – and also considering the weekends are much quieter – we can forecast 20*7 = 140GB per week. This has an excess “buffer” which will let the system survive event storms, should they happen. We also always recommend having some free space to allow for re-indexing operations.</p>
<p>In fact, especially when collecting everything without filters, the daily size is a lot less predictable: imagine worms “trying out” administrator account’s passwords, and so on… those things can easily create event storms.</p>
<p>Anyway, in the example above, the customer would have liked to keep 6 MONTHS (180days) of data online, which would become 20*180 = 3600GB = THREE TERABYTE and a HALF! Therefore we need a filtering strategy – and badly – to reduce this size.</p>
<p>[edited on May 7th 2010 - if you want to automate the above analysis and produce a table and graphs like those just shown, <a href="http://www.muscetta.com/2010/05/05/audit-collection-services-database-partitions-size-report/">you should look at my following post</a>.]</p>
<h3>Filtering Strategies</h3>
<p>Ok, then we need to look at WHAT actually comprises that amount of events we are collecting without filters. As I wrote above, I usually run queries to get this type of information.</p>
<p>I will not get into HOW TO write a filter here – a collector’s filter is a WMI notification query and it is already described pretty well elsewhere how to configure it.</p>
<p>Here, instead, I want to walk thru the process and the queries I use to understand where the noise comes from and what could be filtered – and get an estimate of how much space we could be saving if filter one way or another.</p>
<p><strong>Number of Events per User</strong></p>
<p>&#8211;event count by User (with Percentages)<br />
declare @total float<br />
select @total = count(HeaderUser) from AdtServer.dvHeader<br />
select count(HeaderUser),HeaderUser, cast(convert(float,(count(HeaderUser)) / (convert(float,@total)) * 100) as decimal(10,2))<br />
from AdtServer.dvHeader<br />
group by HeaderUser<br />
order by count(HeaderUser) desc</p>
<p>In our example above, over the 14 days we were observing, we obtained percentages like the following ones:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="138" valign="bottom"><strong>#evt </strong></td>
<td width="268" valign="bottom"><strong>HeaderUser Account</strong></td>
<td width="125" valign="bottom"><strong>Percent</strong></td>
</tr>
<tr>
<td width="138" valign="bottom">204,904,332</td>
<td width="268" valign="bottom">SYSTEM</td>
<td width="125" valign="bottom">40.79 %</td>
</tr>
<tr>
<td width="138" valign="bottom">18,811,139</td>
<td width="268" valign="bottom">LOCAL SERVICE</td>
<td width="125" valign="bottom">3.74 %</td>
</tr>
<tr>
<td width="138" valign="bottom">14,883,946</td>
<td width="268" valign="bottom">ANONYMOUS LOGON</td>
<td width="125" valign="bottom">2.96 %</td>
</tr>
<tr>
<td width="138" valign="bottom">10,536,317</td>
<td width="268" valign="bottom">appintrauser</td>
<td width="125" valign="bottom">2.09 %</td>
</tr>
<tr>
<td width="138" valign="bottom">5,590,434</td>
<td width="268" valign="bottom">mossfarmusr</td>
<td width="125" valign="bottom">…</td>
</tr>
</tbody>
</table>
<p>Just by looking at this, it is pretty clear that filtering out events tracked by the accounts “SYSTEM”, “LOCAL SERVICE” and “ANONYMOUS”, we would save over 45% of the disk space!</p>
<p><strong>Number of Events by EventID</strong></p>
<p>Similarly, we can look at how different Event IDs have different weights on the total amount of events tracked in the database:</p>
<p>&#8211;event count by ID (with Percentages)<br />
declare @total float<br />
select @total = count(EventId) from AdtServer.dvHeader<br />
select count(EventId),EventId, cast(convert(float,(count(EventId)) / (convert(float,@total)) * 100) as decimal(10,2))<br />
from AdtServer.dvHeader<br />
group by EventId<br />
order by count(EventId) desc</p>
<p>We would get some similar information here:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="114" valign="bottom"><strong>Event ID </strong></td>
<td width="392" valign="bottom"><strong>Meaning </strong></td>
<td width="116" valign="bottom"><strong>Sum of events </strong></td>
<td width="101" valign="bottom"><strong>Percent </strong></td>
</tr>
<tr>
<td width="114" valign="bottom">538</td>
<td width="392" valign="bottom">A user logged off</td>
<td width="116" valign="bottom">99,494,648</td>
<td width="101" valign="bottom">27.63</td>
</tr>
<tr>
<td width="114" valign="bottom">540</td>
<td width="392" valign="bottom">Successful Network Logon</td>
<td width="116" valign="bottom">97,819,640</td>
<td width="101" valign="bottom">27.16</td>
</tr>
<tr>
<td width="114" valign="bottom">672</td>
<td width="392" valign="bottom">Authentication Ticket Request</td>
<td width="116" valign="bottom">52,281,129</td>
<td width="101" valign="bottom">14.52</td>
</tr>
<tr>
<td width="114" valign="bottom">680</td>
<td width="392" valign="bottom">Account Used for Logon by (Windows 2000)</td>
<td width="116" valign="bottom">35,141,235</td>
<td width="101" valign="bottom">9.76</td>
</tr>
<tr>
<td width="114" valign="bottom">576</td>
<td width="392" valign="bottom">Specified privileges were added to a user&#039;s access token.</td>
<td width="116" valign="bottom">26,154,761</td>
<td width="101" valign="bottom">7.26</td>
</tr>
<tr>
<td width="114" valign="bottom">8086</td>
<td width="392" valign="bottom">Custom Application ID</td>
<td width="116" valign="bottom">18,789,599</td>
<td width="101" valign="bottom">5.21</td>
</tr>
<tr>
<td width="114" valign="bottom">673</td>
<td width="392" valign="bottom">Service Ticket Request</td>
<td width="116" valign="bottom">10,641,090</td>
<td width="101" valign="bottom">2.95</td>
</tr>
<tr>
<td width="114" valign="bottom">675</td>
<td width="392" valign="bottom">Pre-Authentication Failed</td>
<td width="116" valign="bottom">7,890,823</td>
<td width="101" valign="bottom">2.19</td>
</tr>
<tr>
<td width="114" valign="bottom">552</td>
<td width="392" valign="bottom">Logon attempt using explicit credentials</td>
<td width="116" valign="bottom">4,143,741</td>
<td width="101" valign="bottom">1.15</td>
</tr>
<tr>
<td width="114" valign="bottom">539</td>
<td width="392" valign="bottom">Logon Failure &#8211; Account locked out</td>
<td width="116" valign="bottom">2,383,809</td>
<td width="101" valign="bottom">0.66</td>
</tr>
<tr>
<td width="114" valign="bottom">528</td>
<td width="392" valign="bottom">Successful Logon</td>
<td width="116" valign="bottom">1,764,697</td>
<td width="101" valign="bottom">0.49</td>
</tr>
</tbody>
</table>
<p>Also, do not forget that ACS provides some report to do this type of analysis out of the box, even if for my experience they are generally slower – on large datasets – than the queries provided here. Also, a number of reports have been buggy over time, so I just prefer to run queries and be on the safe side.</p>
<p>Below an example of such report (even if run against a different environment – just in case you were wondering why the numbers were not the same ones <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ):<img style="display: inline; border-width: 0px;" title="Event Counts ACS Default Report" src="http://www.muscetta.com/wp-content/uploads/image46.png" border="0" alt="Event Counts ACS Default Report" width="1037" height="598" /></p>
<p>The numbers and percentages we got from the two queries above should already point us in the right direction about what we might want to adjust in either our auditing policy directly on Windows and/or decide if there is something we want to filter out at the collector level (here you should ask yourself the question: “if they aren’t worth collecting are they worth generating?” – but I digress).</p>
<p>Also, a permutation of the above two queries should let you see which user is generating the most “noise” in regards to some events and not other ones… for example:</p>
<p>&#8211;event distribution for a specific user (change the @user) &#8211; with percentages for the user and compared with the total #events in the DB<br />
declare @user varchar(255)<br />
set @user = &#039;SYSTEM&#039;<br />
declare @total float<br />
select @total = count(Id) from AdtServer.dvHeader<br />
declare @totalforuser float<br />
select @totalforuser = count(Id) from AdtServer.dvHeader where HeaderUser = @user<br />
select count(Id), EventID, cast(convert(float,(count(Id)) / convert(float,@totalforuser) * 100) as decimal(10,2)) as PercentageForUser, cast(convert(float,(count(Id)) / (convert(float,@total)) * 100) as decimal(10,2)) as PercentageTotal<br />
from AdtServer.dvHeader<br />
where HeaderUser = @user<br />
group by EventID<br />
order by count(Id) desc</p>
<p>The above is particularly important, as we might want to filter out a number of events for the SYSTEM account (i.e. logons that occur when starting and stopping services) but we might want to keep other events that are tracked by the SYSTEM account too, such as an administrator having wiped the Security Log clean – which might be something you want to keep:</p>
<p><img style="display: inline; border-width: 0px;" title="Event ID 517 Audit Log was cleared" src="http://www.muscetta.com/wp-content/uploads/image47.png" border="0" alt="Event ID 517 Audit Log was cleared" width="624" height="409" /></p>
<p>of course the amount of EventIDs 517 over the total of events tracked by the SYSTEM account will not be as many, and we can still filter the other ones out.</p>
<p><strong>Number of Events by EventID and by User</strong></p>
<p>We could also combine the two approaches above – by EventID and by User:</p>
<p>select count(Id),HeaderUser, EventId</p>
<p>from AdtServer.dvHeader</p>
<p>group by HeaderUser, EventId</p>
<p>order by count(Id) desc</p>
<p>This will produce a table like the following one</p>
<p><img style="display: inline; border-width: 0px;" title="SQL Query: Events by EventID and by User" src="http://www.muscetta.com/wp-content/uploads/image48.png" border="0" alt="SQL Query: Events by EventID and by User" width="421" height="458" /></p>
<p>which can be easily copied/pasted into Excel in order to produce a pivot Table:</p>
<p><img style="display: inline; border-width: 0px;" title="Pivot Table" src="http://www.muscetta.com/wp-content/uploads/image49.png" border="0" alt="Pivot Table" width="624" height="419" /></p>
<h3>Cluster EventLog Replication</h3>
<p>One more aspect that is less widely known, but I think is worth showing, is the way that clusters behave when in ACS. I don’t mean all clusters… but if you keep the “eventlog replication” feature of clusters enabled (you should disable it also from a monitoring perspective, but I digress), each cluster node’s security eventlog will have events not just for itself, but for all other nodes as well.</p>
<p>Albeit I have not found a reliable way to filter out – other than disabling eventlog replication altogether.</p>
<p>Anyway, just to get an idea of how much this type of “duplicate” events weights on the total, I use the following query, that tells you how many events for each machine are tracked by another machine:</p>
<p>&#8211;to spot machines that are cluster nodes with eventlog repliation and write duplicate events (slow)</p>
<p>select Count(Id) as Total,replace(right(AgentMachine, (len(AgentMachine) &#8211; patindex(&#039;%\%&#039;,AgentMachine))),&#039;$',&#034;) as ForwarderMachine, EventMachine</p>
<p>from AdtServer.dvHeader</p>
<p>&#8211;where ForwarderMachine &lt;&gt; EventMachine</p>
<p>group by EventMachine,replace(right(AgentMachine, (len(AgentMachine) &#8211; patindex(&#039;%\%&#039;,AgentMachine))),&#039;$',&#034;)</p>
<p>order by ForwarderMachine,EventMachine</p>
<p><img style="display: inline; border-width: 0px;" title="Cluster Events" src="http://www.muscetta.com/wp-content/uploads/clip_image006.jpg" border="0" alt="Cluster Events" width="363" height="221" /></p>
<p>Those presented above are just some of the approaches I usually look into at first. Of course there are a number more. Here I am including the same queries already shown in action, plus a few more that can be useful in this process.</p>
<p>I have even considered building a page with all these queries – a bit like <a href="http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx">those that Kevin is collecting for OpsMgr</a> (we actually wrote some of them together when building the OpsMgr Health Check)… shall I move the below queries on such a page? I though I’d list them here and give some background on how I normally use them, to start off with.</p>
<h3>Some more Useful Queries</h3>
<p>&#8211;top event ids<br />
select count(EventId), EventId<br />
from AdtServer.dvHeader<br />
group by EventId<br />
order by count(EventId) desc</p>
<p>&#8211;event count by ID (with Percentages)<br />
declare @total float<br />
select @total = count(EventId) from AdtServer.dvHeader<br />
select count(EventId),EventId, cast(convert(float,(count(EventId)) / (convert(float,@total)) * 100) as decimal(10,2))<br />
from AdtServer.dvHeader<br />
group by EventId<br />
order by count(EventId) desc</p>
<p>&#8211;which machines have ever written event 538<br />
select distinct EventMachine, count(EventId) as total<br />
from AdtServer.dvHeader<br />
where EventID = 538<br />
group by EventMachine</p>
<p>&#8211;machines<br />
select * from dtMachine</p>
<p>&#8211;machines (more readable)<br />
select replace(right(Description, (len(Description) &#8211; patindex(&#039;%\%&#039;,Description))),&#039;$',&#034;)<br />
from dtMachine</p>
<p>&#8211;events by machine<br />
select count(EventMachine), EventMachine<br />
from AdtServer.dvHeader<br />
group by EventMachine</p>
<p>&#8211;rows where EventMachine field not available (typically events written by ACS itself for chekpointing)<br />
select *<br />
from AdtServer.dvHeader<br />
where EventMachine = &#039;n/a&#039;</p>
<p>&#8211;event count by day<br />
select convert(varchar(20), CreationTime, 102) as Date, count(EventMachine) as total<br />
from AdtServer.dvHeader<br />
group by convert(varchar(20), CreationTime, 102)<br />
order by convert(varchar(20), CreationTime, 102)</p>
<p>&#8211;event count by day and by machine<br />
select convert(varchar(20), CreationTime, 102) as Date, EventMachine, count(EventMachine) as total<br />
from AdtServer.dvHeader<br />
group by EventMachine, convert(varchar(20), CreationTime, 102)<br />
order by convert(varchar(20), CreationTime, 102)</p>
<p>&#8211;event count by machine and by date (distinuishes between AgentMachine and EventMachine<br />
select convert(varchar(10),CreationTime,102),Count(Id),EventMachine,AgentMachine<br />
from AdtServer.dvHeader<br />
group by convert(varchar(10),CreationTime,102),EventMachine,AgentMachine<br />
order by convert(varchar(10),CreationTime,102) desc ,EventMachine</p>
<p>&#8211;event count by User<br />
select count(Id),HeaderUser<br />
from AdtServer.dvHeader<br />
group by HeaderUser<br />
order by count(Id) desc</p>
<p>&#8211;event count by User (with Percentages)<br />
declare @total float<br />
select @total = count(HeaderUser) from AdtServer.dvHeader<br />
select count(HeaderUser),HeaderUser, cast(convert(float,(count(HeaderUser)) / (convert(float,@total)) * 100) as decimal(10,2))<br />
from AdtServer.dvHeader<br />
group by HeaderUser<br />
order by count(HeaderUser) desc</p>
<p>&#8211;event distribution for a specific user (change the @user) &#8211; with percentages for the user and compared with the total #events in the DB<br />
declare @user varchar(255)<br />
set @user = &#039;SYSTEM&#039;<br />
declare @total float<br />
select @total = count(Id) from AdtServer.dvHeader<br />
declare @totalforuser float<br />
select @totalforuser = count(Id) from AdtServer.dvHeader where HeaderUser = @user<br />
select count(Id), EventID, cast(convert(float,(count(Id)) / convert(float,@totalforuser) * 100) as decimal(10,2)) as PercentageForUser, cast(convert(float,(count(Id)) / (convert(float,@total)) * 100) as decimal(10,2)) as PercentageTotal<br />
from AdtServer.dvHeader<br />
where HeaderUser = @user<br />
group by EventID<br />
order by count(Id) desc</p>
<p>&#8211;to spot machines that write duplicate events (such as cluster nodes with eventlog replication enabled)<br />
select Count(Id),EventMachine,AgentMachine<br />
from AdtServer.dvHeader<br />
group by EventMachine,AgentMachine<br />
order by EventMachine</p>
<p>&#8211;to spot machines that are cluster nodes with eventlog repliation and write duplicate events (better but slower)<br />
select Count(Id) as Total,replace(right(AgentMachine, (len(AgentMachine) &#8211; patindex(&#039;%\%&#039;,AgentMachine))),&#039;$',&#034;) as ForwarderMachine, EventMachine<br />
from AdtServer.dvHeader<br />
&#8211;where ForwarderMachine &lt;&gt; EventMachine<br />
group by EventMachine,replace(right(AgentMachine, (len(AgentMachine) &#8211; patindex(&#039;%\%&#039;,AgentMachine))),&#039;$',&#034;)<br />
order by ForwarderMachine,EventMachine</p>
<p>&#8211;which user and from which machine is target of elevation (network service doing &#034;runas&#034; is a 552 event)<br />
select count(Id),EventMachine, TargetUser<br />
from AdtServer.dvHeader<br />
where HeaderUser = &#039;NETWORK SERVICE&#039;<br />
and EventID = 552<br />
group by EventMachine, TargetUser<br />
order by count(Id) desc</p>
<p>&#8211;by hour, minute and user<br />
&#8211;(change the timestamp)&#8230; this query is useful to search which users are active in a given time period&#8230;<br />
&#8211;helpful to spot &#034;peaks&#034; of activities such as password brute force attacks, or other activities limited in time.<br />
select datepart(hour,CreationTime) as Hours, datepart(minute,CreationTime) as Minutes, HeaderUser, count(Id) as total<br />
from AdtServer.dvHeader<br />
where CreationTime &lt; &#039;2010-02-22T16:00:00.000&#039;<br />
and CreationTime &gt; &#039;2010-02-22T15:00:00.000&#039;<br />
group by datepart(hour,CreationTime), datepart(minute,CreationTime),HeaderUser<br />
order by datepart(hour,CreationTime), datepart(minute,CreationTime),HeaderUser</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/03/18/a-few-thoughts-on-sizing-audit-collection-system/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Invoking Methods on the Xplat agent with WINRM</title>
		<link>http://www.muscetta.com/2009/10/26/invoking-methods-on-the-xplat-agent-with-winrm/</link>
		<comments>http://www.muscetta.com/2009/10/26/invoking-methods-on-the-xplat-agent-with-winrm/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 22:32:43 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[invoke]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[winrm]]></category>
		<category><![CDATA[ws-man]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=488</guid>
		<description><![CDATA[So I was testing other stuff tonight, to be honest, but I got pinged on Instant Messenger by my geek friend and colleague Stefan Stranger who pointed me at his request for help here http://friendfeed.com/sstranger/4571f39b/help-needed-on-winrs-or-winrm-and-openwsman-to He wanted to use WINRM or any other command line utility to interact with the Xplat agent, and call methods [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>So I was testing other stuff tonight, to be honest, but I got pinged on Instant Messenger by my geek friend and colleague <a href="http://blogs.technet.com/stefan_stranger/">Stefan Stranger</a> who pointed me at his request for help here <a title="http://friendfeed.com/sstranger/4571f39b/help-needed-on-winrs-or-winrm-and-openwsman-to" href="http://friendfeed.com/sstranger/4571f39b/help-needed-on-winrs-or-winrm-and-openwsman-to">http://friendfeed.com/sstranger/4571f39b/help-needed-on-winrs-or-winrm-and-openwsman-to</a></p>
<p>He wanted to use WINRM or any other command line utility to interact with the Xplat agent, and call methods on the Unix machine from windows. This could be very useful to – for example – restart a service (in fact it is what the RECOVERY actions in the Xplat Management Packs do, btw).</p>
<p>At first I told him I had only tested enumerations – such as on this other post <a title="http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/" href="http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/">http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/</a> … but the question intrigued me, so I check out the help for winrm’s INVOKE verb:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://www.muscetta.com/wp-content/uploads/clip_image0021.jpg" width="650" height="472" /></p>
<p>Which told me that you can pass in the parameters for the method to be called/invoked either as an hashtable @{KEY=”value”;KEY2=”value”}, or as an input XML file. I first tried the XML file but I could not get its format right.</p>
<p>After a few more minutes of trying, I figured out the right syntax.</p>
<p>This one works, for example:</p>
<p><strong>winrm invoke ExecuteCommand http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem?__cimnamespace=root/scx @{command=&quot;ps&quot;;timeout=&quot;60&quot;} -username:root -password:password -auth:basic -r:https://virtubuntu.huis.dom:1270/wsman -skipCACheck -encoding:UTF-8</strong></p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://www.muscetta.com/wp-content/uploads/clip_image0041.jpg" width="634" height="662" /></p>
<p>Happy remote management of your unix systems from Windows <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/10/26/invoking-methods-on-the-xplat-agent-with-winrm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCX Evolutions</title>
		<link>http://www.muscetta.com/2009/07/19/scx-evolutions/</link>
		<comments>http://www.muscetta.com/2009/07/19/scx-evolutions/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 10:31:53 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[management pack]]></category>
		<category><![CDATA[openpegasus]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=475</guid>
		<description><![CDATA[During the beta of the Cross-Platform extensions and of System Center Operations Manager 2007 R2, the product team had promised to eventually release the SCX Providers&#039;source code. Now that this promise has been mantained, and the SCX providers have been released on Codeplex at http://xplatproviders.codeplex.com/ it should be finally possible to entirely build your own [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>During the beta of the Cross-Platform extensions and of System Center Operations Manager 2007 R2, <a href="http://blogs.msdn.com/scxplat/archive/2008/08/11/opsmgr-2007-cross-platform-extensions-beta-refresh.aspx">the product team had promised to eventually release the SCX Providers&#039;source code</a>.</p>
<p>Now that <a href="http://blogs.msdn.com/cellfish/archive/2009/07/09/system-center-opsmgr-x-plat-providers-source-code-available.aspx">this promise has been mantained</a>, and the SCX providers have been released on Codeplex at <a href="http://xplatproviders.codeplex.com/">http://xplatproviders.codeplex.com/</a> it should be finally possible to entirely build your own unsupported agent package, starting from source code, without having to <a href="http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/">modify the original package as I have shown earlier on this blog</a>.<br />
Of course this will still be unsupported by Microsoft Product support, but will eventually work just fine!<br />
This is an extraordinary event in my opinion, as it is not a common event that Microsoft releases code as open source, especially when this is part of one of the product it sells. I suspect we will see more of this as we going forward.</p>
<p>Also, at R2 release time, <a href="http://technet.microsoft.com/en-us/library/dd919155.aspx">some official documentation about buildilng Cross-Plaform Management Packs has been published on Technet</a>.</p>
<p>Anyway, I have in the past posted a number of posts on my blog under this tag <a href="http://www.muscetta.com/tag/xplat/">http://www.muscetta.com/tag/xplat/</a> (I will continue to use that tag going forward) which show/describe how I hacked/modified both the existing MPs AND the SCX agent package to let it run on unsupported distributions (and I think they are still useful as they show a number of techniques about how to test, understand and troubleshoot the Xplat agent a bit. In fact, I have first learned how to understand and <a href="http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/">modify the RedHat MPs to monitor CentOS</a> and eventually even <a href="http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/">modified the RPM package to run on Ubuntu</a> (which also works on <a href="http://www.debian.org/releases/lenny/">Debian 5/Lenny</a>), eventually, as you can see because I am now using it to monitor &#8211; from home, across the Internet &#8211; the machine running this blog:</p>
<p><a title="www.muscetta.com Performance in OpsMgr by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/3734028273/"><img src="http://farm4.static.flickr.com/3142/3734028273_5a0016c352.jpg" alt="www.muscetta.com Performance in OpsMgr" width="500" height="201" /></a></p>
<p>Or even, with or without OpsMgr 2007 R2, <a href="http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/">you could write your own scripts to interact with those providers, by using your favourite Scripting Language</a>.</p>
<p>After all, those experimentations with Xplat got me a fame of being a &#034;Unix expert at Microsoft&#034; (this expression still makes me laugh), <a href="http://twitter.com/dani3l3/status/1972980193">as I was tweeting here</a>:<br />
<a title="Unix expert at Microsoft by Daniele Muscetta, on Twitter" href="http://twitter.com/dani3l3/status/1972980193"><img src="http://farm4.static.flickr.com/3496/3734827286_076702367c.jpg" alt="Unix expert at Microsoft" width="500" height="381" /></a></p>
<p>But really, I have never hidden my interest for interoperability and <a href="http://old.honeynet.org/scans/scan29/sol/dmuscetta/index.html">the fact that I have been using Linux quite a bit in the past</a>, and still do.</p>
<p>Also, one more related information is that the fine people at Xandros have released their <a href="http://www.bridgeways.ca/products.php">Bridgeways Management Packs</a> and at the same time also started their own blog at <a href="http://blog.xplatxperts.com/">http://blog.xplatxperts.com/</a> where they discuss some troubleshooting techniques for the Xplat agent, <a href="http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/">both similar to what I have been writing about here and also</a> &#8211; of course &#8211; <a href="http://blog.xplatxperts.com/xplat-xperts/2009/07/validating-and-troubleshooting-unixlinux-providers.html">specific to their own providers, that are in their XSM namespace</a>.</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/07/19/scx-evolutions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using the SCX Agent with WSMan from Powershell v2</title>
		<link>http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/</link>
		<comments>http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:47:08 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[Get-WSManInstance]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[Test-WSMan]]></category>
		<category><![CDATA[ws-man]]></category>
		<category><![CDATA[wsman]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=473</guid>
		<description><![CDATA[So Powershell v2 adds a nice bunch of Ws-Man related cmdlets. Let’s see how we can use them to interact with OpenPegasus’s WSMan on a SCX Agent. PS C:\maint&#62; test-wsman -computer virtubuntu.huis.dom -port 1270 -authentication basic -credential (get-credential) -usessl cmdlet Get-Credential at command pipeline position 1 Supply values for the following parameters: Credential But we [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>So Powershell v2 adds <a href="http://blogs.msdn.com/wmi/archive/2009/03/26/wsman-enhancements-in-powershell-2-0.aspx" target="_blank">a nice bunch of Ws-Man related cmdlets</a>. Let’s see how we can use them to interact with OpenPegasus’s WSMan on a SCX Agent.</p>
<p>PS C:\maint&gt; <strong>test-wsman -computer virtubuntu.huis.dom -port 1270 -authentication basic -credential (get-credential) -usessl</strong></p>
<p>cmdlet Get-Credential at command pipeline position 1<br />
Supply values for the following parameters:<br />
Credential</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb22.png" border="0" alt="image" width="323" height="252" /></p>
<p>But we do get this error:</p>
<p><span style="color: #ff0000;">Test-WSMan : The server certificate on the destination computer (virtubuntu.huis.dom:1270) has the following errors:<br />
The SSL certificate could not be checked for revocation. The server used to check for revocation might be unreachable.</span></p>
<p><span style="color: #ff0000;">The SSL certificate is signed by an unknown certificate authority.<br />
At line:1 char:11<br />
+ test-wsman &lt;&lt;&lt;&lt;  -computer virtubuntu.huis.dom -port 1270 -authentication basic -credential (get-credential) -usessl<br />
+ CategoryInfo          : InvalidOperation: (:) [Test-WSMan], InvalidOperationException<br />
+ FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.TestWSManCommand</span></p>
<p>The credentials above have to be a unix login. Which we typed correctly. But we still can&#039;t get thru, as the certificate used by the agent is not trusted by our workstation. This seems to be the “usual” issue I first faced when testing SCX with WINRM in beta1. <a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/">At the time I simply dismissed it with the following sentence</a></p>
<blockquote><p>[…] Of course you have to solve some other things such as DNS resolution AND trusting the self-issued certificates that the agent uses, first. Once you have done that, you can run test queries from the Windows box towards the Unix ones by using WinRM. […]</p></blockquote>
<p>and I sincerely thought that it would explain pretty well… but eventually a lot of people got confused by this and did not know what to do, especially for the part that goes about trusting the certificate.  Anyway, <a href="http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/">in the following posts I figured out you could pass the –skipCACheck parameter to WINRM</a>… which solved the issue with having to trust the certificate (which is fine for testing, but I would not use that for automations and scripts running in production… as it might expose your credentials to man-in-the-middle attacks).</p>
<p>So it seems that with the Powershell cmdlets we are back to that issue, as I can’t find a parameter to skip the CA check. Maybe it is there, but with PSv2 not having been released yet, I don&#039;t know everything about it, and the CTP documentation is not yet complete. Therefore, back to trusting the certificate.</p>
<p>Trusting the certificate is actually very simple, but it can be a bit tricky when passing those certs back and forth from unix to windows. So let&#039;s make the process a bit clearer.</p>
<p>All of the SCX-agents certificates are ultimately signed by a key on the Management server that has discovered them, but I don&#039;t currently know where that certificate/key is stored on the management server. Anyway, you can get it from the agent certificate &#8211; as you only really need the public key, not the private signing key.</p>
<p>Use WinSCP or any other utility to copy the certificate off one of the agents.<br />
You can find that in the <strong>/etc/opt/microsoft/scx/ssl</strong> location:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb23.png" border="0" alt="image" width="772" height="219" /></p>
<p>that <strong>scx-host-computername.pem</strong> is your agent certificate.</p>
<p>Copy it to the Management server and change its extension from <strong>.pem</strong> to <strong>.cer</strong>. Now Windows will be happy to show it to you with the usual Certificate interface:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb24.png" border="0" alt="image" width="404" height="472" /></p>
<p>We need to go to the “Certification Path” tab, select the ISSUER certificate (the one called “SCX-Certificate”):</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb25.png" border="0" alt="image" width="813" height="476" /></p>
<p>then go to the “Details” tab, and use the “Copy to File” button to export the certificate.</p>
<p>After you have the certificate in a .CER file, you can add it to the “trusted root certification authorities” store on the computer you are running your powershell tests from.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb26.png" border="0" alt="image" width="792" height="374" /></p>
<p>So after you have trusted it, the same command as above actually works now:</p>
<p>PS C:\maint&gt; <strong>test-wsman -computer virtubuntu.huis.dom -port 1270 -authentication basic -credential (get-credential) -usessl</strong></p>
<p>cmdlet Get-Credential at command pipeline position 1<br />
Supply values for the following parameters:<br />
Credential</p>
<p>wsmid           : http://schemas.dmtf.org/wbem/wsman/identify/1/wsmanidentity.xsd<br />
lang            :<br />
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd<br />
ProductVendor   : Microsoft System Center Cross Platform<br />
ProductVersion  : 1.0.4-248</p>
<p>Ok, we can talk to it! Now we can do something funnier, like actually returning instances and/or calling methods:</p>
<p>PS C:\maint&gt; <strong>Get-WSManInstance -computer virtubuntu.huis.dom -authentication basic -credential (get-credential) -port 1270 -usessl -enumerate http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</strong></p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb27.png" border="0" alt="image" width="836" height="697" /></p>
<p>This is far from exhaustive, but should get you started on a world of possibilities about automating diagnostics and responses with Powershell v2 towards the OpsMgr 2007 R2 Cross-Platform machines. Enjoy!</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing the OpsMgr 2007 R2 SCX Agent on Ubuntu</title>
		<link>http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/</link>
		<comments>http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/#comments</comments>
		<pubDate>Sat, 30 May 2009 12:19:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[cim]]></category>
		<category><![CDATA[deb]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[openpegasus]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[scxcimcli]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[wsman]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=458</guid>
		<description><![CDATA[You know since the beta1 of Xplat I have been busy with modifying the Redhat management pack and monitor CentOS with OpsMgr. Now, CentOS is a distribution that is pretty similar to RedHat, so the RPM package just runs, and it is only a matter of hacking a modified MP. I never went really further [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>You know <a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/" target="_blank">since the beta1 of Xplat I have been busy with modifying the Redhat management pack and monitor CentOS with OpsMgr</a>. Now, CentOS is a distribution that is pretty similar to RedHat, so the RPM package just runs, and <a href="http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/" target="_blank">it is only a matter of hacking a modified MP</a>.</p>
<p>I never went really further in my experiments, mostly due to lack of time… but then yesterday I got a comment to this older post asking about Ubuntu. Of course I know about Ubuntu, and have been using Debian-based distributions for years. I actually even prefer them over RPM-based distributions such as RedHat or SuSE (personal preference). Heck, even this weblog is running on Debian!</p>
<p>Anyway, I never really tried to see if one of the existing RPM packages for RedHat or SuSE could be modified to run on Ubuntu. I will eventually test this on Debian too, but for now I used Ubuntu which tends to have slightly newer packages and libraries, overall. The machine I tested on is a Ubuntu Server 8.04.2. Older/newer versions might slightly differ.</p>
<p>BEWARE THAT ALL THAT FOLLOWS BELOW IS <strong>NOT</strong> SUPPORTED BY MICROSOFT. It is only described here for EXPERIMENTAL (==fun) purpose. DO NOT USE THIS IN A PRODUCTION ENVIRONMENT.</p>
<p>So, you are warned. Now let’s hack it.</p>
<p>The first thing to do is to copy the Redhat agent’s RPM package off your OpsMgr2007 R2 server in the “usual” path “<strong>C:Program FilesSystem Center Operations manager 2007AgentManagementUnixAgents</strong>”. Let’s grab the RHEL5 agent, which is called <strong>scx-1.0.4-248.rhel.5.x86.rpm</strong> in R2 RTM.</p>
<p>First we need to <a href="http://ubuntu.wordpress.com/2005/09/23/installing-using-an-rpm-file/" target="_blank">CONVERT the RPM package to the DEB package format used by Ubuntu, by using the ALIEN package</a>:</p>
<blockquote><p>sudo apt-get update<br />
sudo apt-get install alien<br />
sudo bash<br />
alien -k scx-1.0.4-248.rhel.5.x86.rpm &#8211;scripts<br />
dpkg -i scx_1.0.4-248_i386.deb</p></blockquote>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb15.png" border="0" alt="image" width="628" height="253" /></p>
<p>The converted package will install… but the script execution will fail in a few places – most notably in the generation of the certificate, as it is not able to locate the right openssl libraries, as shown in the screenshot above.</p>
<p>If the libssl.so.6 file cannot be found, you might be missing the “libssl-dev” package, which you can install as follows:</p>
<blockquote><p>apt-get install libssl-dev</p></blockquote>
<p>But even if it is installed, you will find that the files are still missing. This is not really true: actually, the files are there, but on Ubuntu they have a different name than on RedHat, that’s all. You can therefore create hardlinks to the “right” files, so that they are aliased and get found afterwards:</p>
<blockquote><p>cd /usr/lib<br />
ln -s libcrypto.so.0.9.8 libcrypto.so.6<br />
ln -s libssl.so.0.9.8 libssl.so.6</p></blockquote>
<p>So now when installing the package, the certificate generation will work:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb16.png" border="0" alt="image" width="629" height="266" /></p>
<p>You are nearly ready to go. You have to start the service by using the init scripts – the “service” command is RedHat-specific, that will still fail.</p>
<p><strong>/etc/init.d/scx-cimd start</strong> is the “standard” way of starting daemons from init on Unix.</p>
<p>But it still fails, as it seems that the init script provided in the RedHat package is really searching for a file called “functions” which is present on RedHat and on CentOS, which provides re-usable functions for startup scripts to include:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb17.png" border="0" alt="image" width="533" height="78" /></p>
<p>How do you fix this? I just copied the <strong>/etc/init.d/functions</strong> file from a CentOS box to my Ubuntu box.</p>
<p>I copied it via SCP from the CentOS box I have:</p>
<blockquote><p>cd /etc/init.d</p>
<p>scp root@centos.huis.dom:/etc/init.d/functions .</p></blockquote>
<p>You can probably also find and fetch the file from the Internet (both CentOS and RedHat should have accessible repositories with all the files in their distributions, since it is open sourced).</p>
<p>After you have the file in place, the init script will be able to include it, will find the functions it needs, and the daemon/service will now start (even if with minor errors I have not investigated for now, but that don’t seem to be causing troubles):</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb18.png" border="0" alt="image" width="631" height="87" /></p>
<p>and here you can see it is finally running:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb19.png" border="0" alt="image" width="629" height="143" /></p>
<p>So let’s try to issue a few queries <a href="http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/">as shown in a previous posts</a>:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb20.png" border="0" alt="image" width="627" height="630" /></p>
<p>IT WORKS!!!</p>
<p>But… there is a “but”: not all classes actually return instances and values just yet. Most notably the “<strong>SCX_OperatingSystem</strong>” class does not seem to return anything right awy. That is a very important class, because is the one we would use to first discover the Operating System object in the Management Packs. So we need to fix it. The reason why the class does not return anything, is that the SCX provider is looking into the <strong>/etc/redhat-release</strong> file to return what OS version/distribution the machine is running. And the file is obviously not there on Ubuntu.</p>
<p>On all Linuxes there is a similar file, called <strong>/etc/issue</strong>&#8230; which again, we can copy with the other name and trick the provider into working:</p>
<blockquote><p>cd /etc</p>
<p>cp issue redhat-release</p></blockquote>
<p>And NOW, the <strong>SCX_OperatingSystem</strong> Class also returns an instance:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image-thumb21.png" border="0" alt="image" width="635" height="407" /></p>
<p>The next step would be “cooking” an MP to discover Ubuntu. More on this on a later post (maybe). I did not test all classes and their implementation… you can try to poke at them by following <a href="http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/">the instructions and commands on my previous post here</a>. But this should get you started.</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/05/30/installing-the-opsmgr-2007-r2-scx-agent-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Platform in OpsMgr 2007 R2 Release Candidate</title>
		<link>http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/</link>
		<comments>http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 21:55:46 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[cim]]></category>
		<category><![CDATA[openpegasus]]></category>
		<category><![CDATA[openwsman]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[scx]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=431</guid>
		<description><![CDATA[You have heard it all over the place, System Center Operations Manager 2007 R2 has reached the Release Candidate milestone and the RC bits have been made available on connect.microsoft.com. As it is becoming a tradition for me with each new release, I want to take a look at the Unix Monitoring stuff like I [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>You have heard it all over the place, <a href="http://blogs.technet.com/momteam/archive/2009/03/26/system-center-operations-manager-2007-r2-release-candidate-ready-for-download.aspx" target="_blank">System Center Operations Manager 2007 R2 has reached the Release Candidate milestone and the RC bits have been made available on connect.microsoft.com</a>.</p>
<p>As it is becoming a tradition for me with each new release, I want to take a look at the Unix Monitoring stuff like I did since <a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/" target="_blank">beta1 of Xplat</a>, passing thru <a href="http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/" target="_blank">beta2</a>. I am an integration freak and I have always insisted that interoperability is key. I will leave the most obvious “release notes” kind of things out of here, such as saying that there are now agents for the x64 version of linux distro’s, and so on…. you can read this stuff in the release notes already and in a zillion of other places.</p>
<p>Let’s instead look at my first impression ( = I am amazed: this product is really getting awesome) and let’s do a bit of digging, mostly to note what changed since my previous posts on Xplat (which, by the way, is the MOST visited post on this blog I ever published) – of course there is A LOT more that has changed under the hood… but those are code changes, improvements, polishing of the product itself… while that would be interesting from a code perspective, here I am more interested in what the final user (the System Administrator) will ultimately interact with directly, and what he might need to troubleshoot and understand how the pieces fit together to realize Unix Monitoring in OpsMgr.</p>
<p>After having hacked the RedHat MP to work on my CentOS box (as usual), I started to take a look at what is installed on the Linux box. Here are the new services:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ps -Af | grep scx" src="http://www.muscetta.com/wp-content/uploads/image21.png" border="0" alt="ps -Af | grep scx" width="993" height="89" /></p>
<p>You will notice the daemons have changed names and get launched with new parameters.</p>
<p>Of course when you see who uses port 1270 everything becomes clearer:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="netstat -anp | grep 1270" src="http://www.muscetta.com/wp-content/uploads/image22.png" border="0" alt="netstat -anp | grep 1270" width="862" height="75" /></p>
<p>Therefore I can place the two new names and understand that SCXCIMSERVER is the WSMAN implementation, while SCXCIMPROVAGT is the CIM/WBEM implementation.</p>
<p>There is one more difference at the “service” (or “daemon”) level: the fact that there is only ONE init script now: <strong>/etc/init.d/scx-cimd</strong></p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="/etc/init.d/scx-cimd" src="http://www.muscetta.com/wp-content/uploads/image23.png" border="0" alt="/etc/init.d/scx-cimd" width="434" height="70" /></p>
<p>So basically the SCX “Agent” will start and stop as a single thing, even if it is composed of multiple executables that will spawn various processes.</p>
<p>Another difference: if we look in “familiar” locations like <strong>/etc/opt/microsoft/scx/bin/tools/</strong> we see that a number of configuration files is either empty (0 bytes) or missing (<a href="http://contoso.se/blog/?p=276" target="_blank">like the one described on Ander’s blog to enable verbose logging of WSMan requests</a>), when compared to earlier versions:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="/etc/opt/microsoft/scx/conf" src="http://www.muscetta.com/wp-content/uploads/image24.png" border="0" alt="/etc/opt/microsoft/scx/conf" width="550" height="206" /></p>
<p>But that is because I have been told we now have a nice new tool called scxadmin under <strong>/opt/microsoft/scx/bin/tools/</strong> , which will let you configure those things:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="/opt/microsoft/scx/bin/tools/scxadmin" src="http://www.muscetta.com/wp-content/uploads/image25.png" border="0" alt="/opt/microsoft/scx/bin/tools/scxadmin" width="879" height="402" /></p>
<p>Therefore you would enable VERBOSE logging for all components by issuing the command</p>
<blockquote><p><strong>./scxadmin -log-set all verbose</strong></p></blockquote>
<p>and you will bring it back to a less noisy setting of logging only errors with</p>
<blockquote><p><strong>./scxadmin -log-set all errors</strong></p></blockquote>
<p>the logs will be written under <strong>/var/opt/microsoft/scx/log</strong> just like they did before.</p>
<p>Other than this, a lot of the troubleshooting techniques I showed <a href="http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/" target="_blank">in one of my previous posts</a>, like how to query CIM classes directly or thru WSMAN remotely by using winrm – they should really stay the same. I will mention them again here for reference.</p>
<p>SCXCIMCLI is a useful and simple tool used to query CIM directly. You can roughly compare it to <a href="http://technet.microsoft.com/en-us/library/cc180684.aspx" target="_blank">wbemtest.exe</a><strong></strong> in the WIndows world (other than not having a UI). This utility can also be found in <strong>/opt/microsoft/scx/bin/tools</strong></p>
<p>A couple of examples of the most common/useful things you would do with scxcimcli:</p>
<p>1) Enumerate all Classes whose name contains “SCX_” in the <strong>root/scx</strong> namespace (the classes our Management packs use):</p>
<blockquote><p><strong>./scxcimcli nc -n root/scx -di |grep SCX_ | sort</strong></p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="./scxcimcli nc -n root/scx -di |grep SCX | sort" src="http://www.muscetta.com/wp-content/uploads/image26.png" border="0" alt="./scxcimcli nc -n root/scx -di |grep SCX | sort" width="582" height="350" /></p></blockquote>
<p>2) Execute a Query</p>
<blockquote><p><strong>./scxcimcli xq &#034;select * from SCX_OperatingSystem&#034; -n root/scx</strong></p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="./scxcimcli xq &quot;select * from SCX_OperatingSystem&quot; -n root/scx" src="http://www.muscetta.com/wp-content/uploads/image27.png" border="0" alt="./scxcimcli xq &quot;select * from SCX_OperatingSystem&quot; -n root/scx" width="701" height="425" /></p></blockquote>
<p>Also another thing that you might want to test when troubleshooting discoveries, is running the same queries through WS-Man (possibly from the same Management Server that will or should be managing that unix box). I already showed this in the past, it is the following command:</p>
<p><strong>winrm enumerate </strong><strong><span style="color: #800000;">http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</span></strong><strong> -username:root -password:password -r:</strong><strong>https://linuxbox.mydomain.com:1270/wsman</strong><strong> -auth:basic –skipCACheck</strong></p>
<p>but if you launch it that way it will now return an error like the following (or at least it did in my test lab):</p>
<table border="1" cellspacing="0" cellpadding="2" width="761">
<tbody>
<tr>
<td width="759" valign="top">Fault<br />
Code<br />
Value = SOAP-ENV:Sender<br />
Subcode<br />
Value = wsman:EncodingLimit<br />
Reason<br />
Text = UTF-16 is not supported; Please use UTF-8<br />
Detail<br />
FaultDetail = <a href="http://schemas.dmtf.org/wbem/wsman/1/wsman/faultDetail/CharacterSet">http://schemas.dmtf.org/wbem/wsman/1/wsman/faultDetail/CharacterSet</a></p>
<p>Error number:  -2144108468 0x8033804C<br />
The WS-Management service does not support the character set used in the request<br />
. Change the request to use UTF-8 or UTF-16.</td>
</tr>
</tbody>
</table>
<p>the error message is pretty self explanatory: you need to specify the UTF-8 Character set. You can do it by adding the “-encoding” qualifier:</p>
<p><strong>winrm enumerate </strong><strong>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</strong><strong> -username:root -password:password -r:</strong><strong>https://linuxbox.mydomain.com:1270/wsman</strong><strong> -auth:basic –skipCACheck <span style="color: #ff0000;">–encoding:UTF-8</span></strong></p>
<p>Hope the above is useful to figure out the differences between the earlier beta releases of the System Center CrossPlatform extensions and the version built in OpsMgr 2007 R2 Release Candidate.</p>
<p>There are obviously a million of other things in R2 worth writing about (either related to the Unix monitoring or to everything else) and I am sure posts will start to appear on the many, more active, blogs out there (they have already started appearing, actually). I have not had time to dig further, but will likely do so AFTER Easter – as the next couple of weeks I will be travelling, working some of the time (but without my test environment and good connectivity) AND visiting relatives the rest of the time.</p>
<p>One last thing I noticed about the Unix/Cross Platform Management Packs in R2 Release Candidate… their current “release date” exposed by the <a href="http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/" target="_blank">MP Catalog Web Service</a> is the <strong>20th of March</strong>…</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://www.muscetta.com/wp-content/uploads/image28.png" border="0" alt="image" width="550" height="190" /></p>
<p>…which happens to be <a href="http://www.flickr.com/photos/dani3l3/3369447511/" target="_blank">my Birthday</a> &#8211; therefore they must be a present for me! <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmatically Check for Management Pack updates in OpsMgr 2007 R2</title>
		<link>http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/</link>
		<comments>http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 22:10:21 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/</guid>
		<description><![CDATA[One of the cool new features of System Center Operations Manager 2007 R2 is the possibility to check and update Management Packs from the catalog on the Internet directly from the Operators Console: Even if the backend for this feature is not yet documented, I was extremely curious to see how this had actually been [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>One of the cool new features of <a href="http://technet.microsoft.com/en-us/opsmgr/dd239186.aspx">System Center Operations Manager 2007 R2</a> is the possibility to check and update <a href="http://www.microsoft.com/technet/prodtechnol/scp/opsmgr07.aspx">Management Packs from the catalog on the Internet</a> directly from the Operators Console:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb12.png" border="0" alt="Select Management Packs from Catalog" width="640" height="406" /></p>
<p>Even if the backend for this feature is not yet documented, I was extremely curious to see how this had actually been implemented. Especially since it took a while to have this feature available for OpsMgr, I had the suspicion that it could not be as simple as one downloadable XML file, like <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A24CEA3A-1920-4B18-8CF2-8BF78C94C917&amp;displaylang=en">the old MOM2005&#039;s MPNotifier</a> had been using in the past.</p>
<p>Therefore I observed the console&#039;s traffic through the lens of my proxy, and got my answer:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image18.png" border="0" alt="ISA Server Log" width="813" height="58" /></p>
<p>So that was it: a .Net Web Service.</p>
<p>I tried to ask the web service itself for discovery information, but failed:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image19.png" border="0" alt="WSDL" width="653" height="145" /></p>
<p>Since there is no WSDL available, but I badly wanted to interact with it, I had to figure out: what kind of requests would be allowed to it, how should they be written, what methods could they call and what parameters should I pass in the call. In order to get started on this, I thought I could just observe its network traffic. And so I did&#8230; I fired up <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f4db40af-1e08-4a21-a26b-ec2f4dc4190d&amp;displaylang=en">Network Monitor</a> and captured the traffic:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/clip-image0025-thumb.jpg" border="0" alt="Microsoft Network Monitor 3.2" width="640" height="335" /></p>
<p><a href="http://blogs.technet.com/netmon/">Microsoft Network Monitor</a> is beautiful and useful for this kind of stuff, as it lets you easily identify which application a given stream of traffic belongs to, just like in the picture above. After I had isolated just the traffic from the Operations Console, I then saved those captures packets in CAP format and opened it again in <a href="http://www.wireshark.org/">Wireshark</a> for a different kind of analysis &#8211; &#034;Follow TCP Stream&#034;:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/clip-image0027-thumb.jpg" border="0" alt="Wireshark: Follow TCP Stream" width="640" height="450" /></p>
<p>This showed me the reassembled conversation, and what kind of request was actually done to the Web Service. That was the information I needed.</p>
<p>Ready to rock at this point, I came up with <a href="http://www.muscetta.org/Check-MPUpdates.zip"><strong>this Powershell script</strong></a> (to be run in OpsMgr Command Shell) that will:</p>
<p>1) connect to the web service and retrieve the complete MP list for R2 (this part is also useful on its own, as it shows how to interact with a SOAP web service in <a href="http://www.microsoft.com/powershell">Powershell</a>, invoking a method of the web service by issuing a specially crafted POST request. To give due credit, for this part I first looked at <a href="http://users.skynet.be/pascalbotte/rcx-ws-doc/perlpost.htm">this PERL code</a>, which I then adapted and ported to Powershell);</p>
<p>2) loop through the results of the &#034;Get-ManagementPack&#034; opsmgr cmdlet and compare each MP found in the Management Group with those pulled from the catalog;</p>
<p>3) display a table of all imported MPs with both the version imported in your Management Group AND the version available on the catalog:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb13.png" border="0" alt="Script output in OpsMgr Command Shell" width="596" height="480" /></p>
<p>Remember that this is just SAMPLE code, it is not meant to be used in production environment and it is worth mentioning again that OpsMgr2007 R2 this is BETA software at the time of writing, therefore this functionality (and its implementation) might change at any time, and the script will break. Also, at present, the MP Catalog web service still returns slightly older MP versions and it is not yet kept in sync and updated with MP Releases, but it will be ready and with complete/updated content by the time R2 gets released.</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CentOS discovery in OpsMgr2007 R2 beta</title>
		<link>http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/</link>
		<comments>http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 14:51:58 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[management pack]]></category>
		<category><![CDATA[openpegasus]]></category>
		<category><![CDATA[openwsman]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[unsupported]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=361</guid>
		<description><![CDATA[Here we go again. Now that the OpsMgr2007 R2 beta is out, with an improved and revamped version of the System Center Cross Platform Extensions, I faced the issue of how to upgrade my test lab. I have to say that OpsMgr2007 R2 beta release notes explain the known issues, and I had no trouble [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Here we go again. Now that the <a href="http://technet.microsoft.com/en-us/opsmgr/dd239186.aspx" target="_blank">OpsMgr2007 R2 beta is out</a>, with an improved and revamped version of the <a href="http://blogs.msdn.com/scxplat/archive/2008/04/29/announcing-system-center-operations-manager-2007-cross-platform-extensions-and-connectors.aspx" target="_blank">System Center Cross Platform Extensions</a>, I faced the issue of how to upgrade my test lab.</p>
<p>I have to say that OpsMgr2007 R2 beta release notes explain the known issues, and I had no trouble whatsoever upgrading the windows part. It just took its time (I am running virtual machines in my test lab, that don&#039;t have the best performance), but it went smoothly and without a glitch. In a couple of hours I had everything upgraded: databases, RMS, reporting, agents, gateway. All right then. The new purple icons in System Center look cute, and <a href="http://contoso.se/blog/?p=304" target="_blank">the new UI has some great stuff</a>, such as a long-awaited way to update your management packs directly from the Internet, better display of Overrides (kind of what we used to rely on <a href="http://blogs.msdn.com/boris_yanushpolsky/archive/2007/08/09/override-explorer-v3-3.aspx" target="_blank">Override Explorer</a> for)&#8230; and  A LOT more new stuff that I won&#039;t be wasting my Sunday writing about since everybody else has already done it two days ago:</p>
<p><a href="http://twitter.com/opsmgr" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image4.png" border="0" alt="opsmgr aggregated feed on Twitter" width="630" height="480" /></a></p>
<p>Therefore let&#039;s get back to my upgrade, which is a lot more interesting (to me) than the marketing tam-tam <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>As part of the upgrade to R2, I had to first uninstall the Xplat beta refresh bits, which I had installed, including all Unix Management Packs. Including my <a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/" target="_blank">CentOS Management Pack</a> I had <a href="http://blogs.msdn.com/scxplat/archive/2008/05/06/another-first-experience-with-cpe.aspx" target="_blank">improvised</a>.</p>
<p>So this is the new start page of the integrated Discovery Wizard:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb.png" border="0" alt="Discovery Wizard" width="624" height="480" /></p>
<p>Looks nice and integrates the functionality of discovering and deploying Windows machines, SNMP Devices, and Unix/Linux machines.</p>
<p>Of course, my CentOS machine would not be discovered, and showed up as an unsupported platform. Of course my old Management Pack I had hacked together in XPlat Beta 1 did not work anymore. Therefore, I figured out I had to see what changes were there, and how to make it work again (of course it IS possible &#8211; It is NOT SUPPORTED, but I don&#039;t care, as long as it works).</p>
<p>Since the existing agent could not be discovered, the first step I took was logging on the Linux box, un-install the old agent, and install the new one:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb1.png" border="0" alt="XPlat Agent RPM Install on CentOS" width="617" height="480" /></p>
<p>There I tried to discover again, but of course it still failed.</p>
<p>At that point I started taking a look at the new layout of things on the unix side. Most stuff is located in the same directories where beta1 was installed, and there are a bunch of useful commands under <strong>/opt/microsoft/scx/bin/tools</strong>.<br />
You can check out the <a href="http://www.openpegasus.org/" target="_blank">Open Pegasus</a> version used:</p>
<p>[root@centos tools]# <strong>./scxcimconfig &#8211;version<br />
</strong>Version 2.7.0</p>
<p>Let&#039;s take a look at what SCX classes we have available:</p>
<p><strong>./scxcimcli nc -n root/scx -di |grep SCX | sort</strong></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb2.png" border="0" alt="./scxcimcli nc -n root/scx -di |grep SCX | sort" width="640" height="439" /></p>
<p>Nice. That&#039;s the stuff we will be querying over WS-Man from the Management Server.</p>
<p>So let&#039;s look at the OS Discovery, and we test it from the OpsMgr 2007 box:</p>
<p><strong>winrm enumerate </strong><strong>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</strong><strong> -username:root -password:password -r:</strong><strong>https://centos:1270/wsman</strong><strong> -auth:basic -skipCACheck</strong></p>
<p>it returns results:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb3.png" border="0" alt="OS WS-Man Query" width="610" height="480" /></p>
<p>At first I assumed this worked like in Beta1, therefore I exported RedHat management pack and I made my own version of it, replacing the strings it is expecting to find to discover CentOS instead than Redhat.</p>
<p>While the MP was syntactically correct and would import fine, the Discovery wizard still didn&#039;t work.</p>
<p>I took one more look at the discoveries in the MP, and I found there are two more, targeted to Management Server, which is probably what gets used by the Discovery Wizard to understand what kind of agent kit needs to be deployed.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb4.png" border="0" alt="MP XML - Discoveries" width="640" height="472" /></p>
<p>So basically this discovery checks for the returned value from the module to determine if the discovered platform is a supported one:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb5.png" border="0" alt="Discovery Settings" width="640" height="467" /></p>
<p>But how does the module get its data?</p>
<p>Look at the layout of the <strong>/AgentManagement/UnixAgents</strong> folder on the Management Server:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb6.png" border="0" alt="/AgentManagement/unixAgents " width="640" height="291" /></p>
<p>That&#039;s it: <strong>GetOSVersion.sh</strong> &#8211; a shell script. A nice, open, clear text, hackable shell script. Let&#039;s take a look at it:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb7.png" border="0" alt="Discovery Script Hack" width="640" height="392" /></p>
<p>So that&#039;s it, and how my modification looks like. What happens during the discovery wizard is that we probably copy the script over SCP to the box, execute it, look at a number of things, and return the discovery data we need.</p>
<p>If you do those steps manually, you see how the script returns something very similar to a <a href="http://technet.microsoft.com/en-us/magazine/cc983816.aspx" target="_blank">PropertyBag, just like discoveries done by VBScript on Windows machines</a>:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb8.png" border="0" alt="Discovery Script Output" width="640" height="393" /></p>
<p>So after modifying the script&#8230; here we go. The Wizard now thinks CentOS is Red Hat, and can install an agent on it:</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb9.png" border="0" alt="Discovery Wizard" width="548" height="480" /></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb10.png" border="0" alt="Deploying Agent" width="551" height="480" /></p>
<p>Only when the Management Server discovery finally considers the CentOS machine worth managing, then the other discoveries that use WS-Man queries start kicking in, like the old one did, and find the OS objects and all the other hosted objects. In order for this to work you don&#039;t only need to hack the shell script, but to have a hacked MP &#8211; the &#034;regular&#034; Red Har one won&#039;t find CentOS, which is and remains an UNSUPPORTED platform.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.muscetta.com/wp-content/uploads/image-thumb11.png" border="0" alt="CentOS Health Model" width="640" height="454" /></p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION. The solution presented here IS NOT SUPPORTED by Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/11/23/centos-discovery-in-opsmgr2007-r2-beta/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CentOS 5 Management Pack for OpsMgr SCX</title>
		<link>http://www.muscetta.com/2008/05/13/centos-5-management-pack-for-opsmgr-scx/</link>
		<comments>http://www.muscetta.com/2008/05/13/centos-5-management-pack-for-opsmgr-scx/#comments</comments>
		<pubDate>Tue, 13 May 2008 09:43:07 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[management pack]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=277</guid>
		<description><![CDATA[As I mentioned here, I have been testing the SCX beta. Not having one of the &#034;supported&#034; platforms pushed me into playing with the provided Management Packs, and in turn I managed to use the MP for Red Hat Enterprise Linux 5 as a base, and replaced a couple of strings in the discoveries in [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions">As I mentioned here</a>, I have been testing the <a href="http://blogs.msdn.com/scxplat/">SCX</a> beta.</p>
<p>Not having one of the &#034;supported&#034; platforms pushed me into playing with the provided Management Packs, and in turn I managed to use the MP for Red Hat Enterprise Linux 5 as a base, and replaced a couple of strings in the discoveries in order to get a working <a href="http://www.centos.org">CentOS</a> 5 Management Pack.</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.muscetta.com/wp-content/uploads/centos-healthexplorer01-new.jpg" border="0" alt="CentOS_HealthExplorer01_NEW" width="997" height="681" /></p>
<p>I still have not looked into the &#034;hardware&#034; monitors and health model / service model, so those are not currently monitored. But it is a start.</p>
<p>A lot of people have asked me a lot of information and would like to get the file &#8211; both in the blog&#039;s comment, on the newsgroup, or via mail. I am sorry, but I cannot provide you with the file, because it has not been throughly tested and might render your systems unstable, and also because there might be licensing and copyright issues that I have not checked within Microsoft.</p>
<p>Keep also in mind that using CentOS as a monitored platform <strong>is NOT a SUPPORTED scenario/platform for SCX</strong>. I only used it because I did not have a Suse or Redhat handy that day, and because I wanted to understand how the Management Packs using WS-Man worked.</p>
<p>This said, should you wish to try to do the same &#034;MP Hacking&#034; I did,  <a href="http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/">I pretty much explained all you need to know in my previous post and its comments</a>, so that should not be that difficult.</p>
<p>Actually, I still think that the best way to figure out how things are done is by looking at the actual implementation, so I encourage you to look at the management packs and figure out how those work. There are a few mature tools out there that will help you author/edit Management Packs if you don&#039;t want to edit the XML directly: the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6c8911c3-c495-4a03-96df-9731c37aa6d7&amp;DisplayLang=en">Authoring Console</a>, and <a href="http://www.silect.com/solutions/opsmgr_Sol/opsmgr_Sol_studio2007_Lite.html">Silect MP Studio Lite</a>, for example. If you want to delve in the XML details, instead, then I suggest you read the <a href="http://download.microsoft.com/download/7/4/d/74deff5e-449f-4a6b-91dd-ffbc117869a2/OM2007_AuthGuide.doc">Authoring Guide</a> and peek at <a href="http://www.authormps.com/">Steve Wilson&#039;s AuthorMPs.com site</a>.</p>
<p><strong>Disclaimer<br />
</strong>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS PROGRAM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/05/13/centos-5-management-pack-for-opsmgr-scx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing System Center Cross Plaform Extentions</title>
		<link>http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/</link>
		<comments>http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/#comments</comments>
		<pubDate>Sun, 04 May 2008 07:35:48 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[openpegasus]]></category>
		<category><![CDATA[openwsman]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ws-man]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=274</guid>
		<description><![CDATA[I am testing the beta bits of the cross-platform extensions that were released on Microsoft Connect&#160; This post wants to describe my limited testing so far &#8211; I hope this can benefit/help everyone testing the beta for some stuff that might currently not be incredibly clear &#8211; unless you attended the MMS class, at least [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I am testing the beta bits of the cross-platform extensions that were released on <a href="http://connect.microsoft.com/">Microsoft Connect</a>&nbsp; </p>
<p>This post wants to describe my limited testing so far &#8211; I hope this can benefit/help everyone testing the beta for some stuff that might currently not be incredibly clear &#8211; <a href="http://blogs.msdn.com/scxplat/archive/2008/05/01/cross-platform-extensions-overview-session-at-mms.aspx">unless you attended the MMS class</a>, at least <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )  </p>
<p>I started out with <a href="http://download.microsoft.com/download/7/7/6/7762e198-cad4-4fac-9946-e8978e90823c/OpsMgr2007-CrossPlat-WP_CD_April2008.pdf">the White Paper that has been posted on the web, which describes the architecture pretty well</a>, but from a higher level (with diagrams and the like). Then I downloaded the beta bits, which contain another document about setting the thing up. It is pretty well done, to be honest (especially if you consider that it is beta documentation for a beta product!), but it does not really go all the way down to troubleshooting things a lot, yet. I will try to cover some of that here.  </p>
<p>I installed the agent manually &#8211; it’s just a RPM package, not much that can go wrong with that. There is a reason why I did not use the push discovery and deployment of the agent, which you will figure out reading later on. Once installed, I tried to figure out how things were looking like on the linux machine. It is all pretty understandable, after all, if you look around on the machine (documented or not, linux and open source stuff is easy to figure out by reading configuration files and the like, and by searching on the web).  </p>
<p>Basically the “agent” is not properly an &#034;agent&#034; the way the windows agent is, since it does not really &#034;sends&#034; stuff to the Management Server on its own: It consists of a&nbsp; couple of services/daemons, based on existing opensource projects, but configured in their own folder, with their own name, and using different ports than a standard install of those,&nbsp; not to conflict with possible existing ones on those machines.  </p>
<p>The Management Service uses these services remotely (similar to doing agentless monitoring towards a windows box) using these services. The two services are:
<ul>
<li><b>scx-cimd</b> which implements the CIM daemon (<a href="http://www.openpegasus.org">openpegasus.org</a>)  </li>
<li><b>scx-wsmand</b> which implements Ws-Man daemon (<a href="http://www.openwsman.org">openwsman.org</a>)</li>
</ul>
<p>&nbsp;<img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="scx-services commands" src="http://www.muscetta.com/wp-content/uploads/image001.png" width="640" border="0"/> </p>
<p>It is easy to figure out how they are layed out. Even if undocumented, you look at the processes  </p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="SCX processes" src="http://www.muscetta.com/wp-content/uploads/image002.png" width="640" border="0"/>  </p>
<p>and you can figure out WHERE they live (<b>/opt/microsoft/scx/bin/</b>….) and where their configuration files are located (/etc/opt/microsoft/scx/conf …).  </p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="169" alt="SCX Configuration" src="http://www.muscetta.com/wp-content/uploads/image003.png" width="640" border="0"/>  </p>
<p>The files are self explanatory, and the documentation of the opensource projects can be found on the Internet:&nbsp; </p>
<p>for <strong>wsmand</strong> </p>
<ul>
<li>at <a href="http://www.openwsman.org">openwsman.org</a> (for wsmand) </li>
</ul>
<p>for <strong>cimd</strong> </p>
<ul>
<li>at openpegasus site (<a href="http://www.openpegasus.org/documents.tpl?CALLER=doc.tpl&amp;dcat=">http://www.openpegasus.org/documents.tpl?CALLER=doc.tpl&amp;dcat=</a> )  </li>
<li>on the openpegasus wiki (<a href="http://wiki.opengroup.org/pegasus-wiki/doku.php?id=start">http://wiki.opengroup.org/pegasus-wiki/doku.php?id=start</a> )  </li>
<li>at the linux management IBM page <a href="http://www.ibm.com/developerworks/linux/library/os-ltc-systemsmanagement/">http://www.ibm.com/developerworks/linux/library/os-ltc-systemsmanagement/</a>&nbsp; </li>
</ul>
<p>&nbsp; </p>
<p>I still have to delve into them properly as I would like to, but I already figured out a bunch of interesting things by quickly looking at them.  </p>
<p>Agent Communication someone must have decided to “recycle” the <strong>1270</strong> port number that was used in MOM2005 <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Basically openwsman listens as a SSL listener (with basic auth – connected via PAM module with the “regular” unix /etc/passwd users, so you can authenticate as those without having to define specific users for the service). So all that happens is that the Management Server asks things/executes WS-Man queries and commands on this channel. The Management Server connects every time to the agent on port 1270 using SSL, authenticates as “root” (or as the specified &#034;Action Account&#034;) and does its stuff, or asks the agent to do it. So the communication is happening from the Management Server to the agent… not the other way around like it happens with Windows &#034;agents&#034;. That’s why it feels to me more like an “agentless” thing, at least for what concerns the “direction” of traffic and who does the actual querying.  </p>
<p>For the rest, the provided Management Packs have “normal” discoveries and “normal” monitors. Pretty much like the Windows Management Packs often discover thing by querying WMI, here they use WS-Man to run CIM queries against the Unix boxes.  </p>
<p>The Service Model is totally cool to actually *<b>SEE</b>* in action, don’t you think so ?  </p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="654" alt="Service Model" src="http://www.muscetta.com/wp-content/uploads/image004.png" width="451" border="0"/>  </p>
<p>&nbsp; </p>
<p>A few more debugging/troubleshooting information:  </p>
<p>I searched a bit and found the openwsman.org documentation and forum to be useful to figure some things out. For example I banged my head a few times before managing to actually TEST a query from windows to linux using WINRM. <a href="http://openwsman.org/openwsman-users-guide/vista-winrm-over-openwsman-setup">This document helped a lot</a>.  </p>
<p>Of course you have to solve some other things such as DNS resolution AND trusting the self-issued certificates that the agent uses, first. Once you have done that, you can run test queries from the Windows box towards the Unix ones by using WinRM.  </p>
<p>For example, this is how I tested what the discovery for a Linux RedHat Computer type should be returning (I read that by opening the MP in authoring console, as one would usually do for any MP):  </p>
<p><b>winrm enumerate http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/</b><b>SCX_OperatingSystem?__cimnamespace=root/scx</b><b> -username:root -password:password -r:https://centos:1270/wsman -auth:basic</b>  </p>
<p>If you need to test the query directly *<b>ON</b>* the linux box (querying the CIMD instead than WSMAND), the <b>WBEMEXEC</b> utility is packaged with the agent (under <b>/opt/microsoft/scx/bin/tools </b>). It is not as easy as some windows administrators (that have used WBEMTEST or WMI Tools in the past) would hope, but not even that bad. Just to run a few queries to the CIM daemon locally it is not really interactive, so you need to create a XML file that looks like the following (basically you build the RAW request the way the CIMD accepts it):  </p>
<p>&nbsp; </p>
<p>&nbsp; </p>
</p>
<p>&lt;?xml version=&#034;1.0&#034; ?&gt; </p>
<p>&lt;CIM CIMVERSION=&#034;2.0&#034; DTDVERSION=&#034;2.0&#034;&gt; </p>
<p>&lt;MESSAGE ID=&#034;50000&#034; PROTOCOLVERSION=&#034;1.0&#034;&gt; </p>
<p>&lt;SIMPLEREQ&gt; </p>
<p>&lt;IMETHODCALL NAME=&#034;EnumerateInstanceNames&#034;&gt; </p>
<p>&lt;LOCALNAMESPACEPATH&gt; </p>
<p>&lt;NAMESPACE NAME=&#034;root&#034;/&gt; </p>
<p>&lt;NAMESPACE NAME=&#034;scx&#034;/&gt; </p>
<p>&lt;/LOCALNAMESPACEPATH&gt; </p>
<p>&lt;IPARAMVALUE NAME=&#034;ClassName&#034;&gt; </p>
<p>&lt;CLASSNAME NAME=&#034;SCX_OperatingSystem&#034;/&gt; </p>
<p>&lt;/IPARAMVALUE&gt; </p>
<p>&lt;/IMETHODCALL&gt; </p>
<p>&lt;/SIMPLEREQ&gt; </p>
<p>&lt;/MESSAGE&gt; </p>
<p>&lt;/CIM&gt; </p>
<p>&nbsp; </p>
<p>&nbsp; </p>
<p>Once you have made such a file, you can execute the query in the file with the tool like the following:  </p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="296" alt="./wbemexec -d2 query.xml" src="http://www.muscetta.com/wp-content/uploads/image005.png" width="640" border="0"/>  </p>
<p>&nbsp; </p>
<p>As you can see from here, CIMD uses HTTP already. This differs from Windows&#039; WMI that uses RPC/DCOM. In a way, this is much simpler to troubleshoot, and more firewall-friendly.  </p>
<p>&nbsp; </p>
<p>I have not really found an activity or debug log for any of those components, yet… but in the end they are not doing anything ON THEIR OWN, unless asked by the MS…. So the “healthservice” logic is all on the MS anyway. Errors about failed discoveries, permissions of the Action Account user, and anything else will be logged by the HealthService on the Windows machine (the Management Server) that is actually performing monitoring towards the Unix box.  </p>
<p>It really is *<b>just</b>* getting the WMI and WinRM-equivalent layer on linux/Unix up and running– after that, everything is done from windows anyway!  </p>
<p>After this common management infrastructure has been provided, 3<sup>rd</sup> parties will be facilitated in writing *<b>just</b>* MPs, without having to worry about the TRANSPORT of information anymore.  </p>
<p>&nbsp; </p>
<p>As you have probably noticed from the screenshots and commandlines, I don’t have a “real” Redhat Enterprise Linux or “supported” linux distribution… Therefore I started my testing using CentOS 5 (which is very similar to RHEL 5) &#8211; the agent installed fine as you can see, but I was not getting anything really “discovered” &#8211; the MP had only found a “linux computer” but was not finding any “RedHat” or “SuSe” or any other &#034;Operating System&#034; instances… and if you are somewhat familiar with the way <a href="http://technet.microsoft.com/en-us/library/bb309476.aspx">Operations Manager targeting</a> works, <a href="http://blogs.technet.com/momteam/archive/2007/10/31/targeting-series-part-1-differences-between-2005-and-2007.aspx">you would understand that monitors are targeted at object classes</a>. <a href="http://support.microsoft.com/kb/938999">If I don&#039;t have any instance of those objects being discovered, NO MONITORING actually happens</a>, even if the infrastructure is in place and the pieces are talking to each other:  </p>
<p>&nbsp;<img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="93" alt="CentOS not discovered" src="http://www.muscetta.com/wp-content/uploads/image006.png" width="640" border="0"/>  </p>
<p>Therefore my machine was not being monitored.  </p>
<p>In the end, I actually even got it to work, but I had to create a new Management Pack (exporting and modifying the RHEL5 one as a base) that would actually search for different Property values and discover CentOS instead as if it were RedHat:  </p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="140" alt="CentOS Discovered" src="http://www.muscetta.com/wp-content/uploads/image007.png" width="640" border="0"/>&nbsp;</p>
<p>After importing my hacked Management Pack the machine started to be monitored. Here you can see Health Explorer in all of its glory:</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="680" alt="image008" src="http://www.muscetta.com/wp-content/uploads/image008.png" width="999" border="0"/> </p>
<p>Of course this is a hack I made just to have a test setup somewhat working and to familiarize myself with the SCX components. It is not guaranteed that my Management pack actually works on CentOS the way it is supposed to work and that there aren&#039;t other &#8211; more subtle &#8211; differences between RedHat and CentOS that will make it fail. I only modified a couple of Discoveries to let it discover the &#034;Operating System&#034; instance&#8230; everything else should follow, but not necessarily. One difference you see already in the screenshot above is that I am not yet seeing the hardware being monitored, so my hack is already only partially working and <strong>it is definitely something that won&#039;t be supported</strong>, so I cannot provide it here. Also, this is a beta, so I I think that the Management Packs will be re-released with following beta versions, and this change is something that would need to be re-done all over again. Also, the unsupported distribution is the reason why I installed the agent manually in the first place, as the &#034;Discovery Wizard&#034; would not really &#034;agree&#034; to go and let me install the agent remotely on an unsupported &#034;platform!&#034;. </p>
<p>But I could not wait to see this working, <a href="https://www.redhat.com/apps/webform.html?event_type=simple_form&amp;eid=871">while waiting two business days (we are on a weekend!) for confirmation that I am allowed to actually download a 30-day-unsupported-Trial of the &#034;real&#034; RedHat Enteprise Linux</a>, so I cheated <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Disclaimer</strong></p>
<p>The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS INFORMATION.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/05/04/testing-system-center-cross-plaform-extentions/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>A Rant about Openness</title>
		<link>http://www.muscetta.com/2008/05/02/a-rant-about-openness/</link>
		<comments>http://www.muscetta.com/2008/05/02/a-rant-about-openness/#comments</comments>
		<pubDate>Fri, 02 May 2008 08:32:09 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[LiveID]]></category>
		<category><![CDATA[Novell]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WebSite]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/05/02/a-rant-about-openness/</guid>
		<description><![CDATA[It is interesting to see that a bunch of open source projects written on and for the Microsoft platform grows and grows, and also nice to see that a lot of Microsoft employees are very active and aware of the open source ecosystem, rather than being stuck with only what the company makes. Phil Haack, [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>It is interesting to see that a bunch of open source projects written on and for the Microsoft platform grows and grows, and also nice to see that a lot of Microsoft employees are very active and aware of the open source ecosystem, rather than being stuck with <em>only</em> what the company makes. <a href="http://haacked.com/archive/2008/04/09/interview-with-brad-wilson-on-microsoft-and-open-source.aspx">Phil Haack, in a post about an interview to Brad Wilson,&#160; wisely writes</a>: </p>
<blockquote><p>&quot;[...] What I particularly liked about this post was the insight Brad provides on the diverse views of open source outside and inside of Microsoft as well as his own personal experience contributing to many OSS projects. It&#039;s hard for some to believe, but there are developers internal to Microsoft who like and contribute to various open source projects. [...]&quot; </p>
</blockquote>
<p>In fact, being made by Microsoft people or not, the list of open source software on CodePlex keeps growing too. Mentioning CodePlex and interviews, <a href="http://www.microspotting.com/2008/04/sara-ford-open-source">another interesting one is that of Sara Ford, Program Manager for CodePlex posted on Microspotting</a>. But Microspotting is awesome in general. My favorite quote by her: </p>
<blockquote><p>&quot;[...] Hey. My name is Ariel and I&#039;m the person you thought would never work at MSFT [...]&quot;. </p>
</blockquote>
<p>In fact, just as I do, she is <a href="http://www.microspotting.com/">running that blog on WordPress</a>, posting <a href="http://www.flickr.com/photos/ariel/">her photos on Flickr</a>, using a <a href="http://feeds.feedburner.com/microspotting">RSS feed on Feedburner</a> and in general using a bunch of things that are out there that might be seen as &quot;competing&quot; with what Microsoft makes. In fact, this attitude towards other products and vendors on the market is what I am mainly interested in. Should we only use flagship products? Sure, when they help us, but not necessarily. Who cares? People&#039;s blogs are not, as someone would like them to be, a coordinated marketing effort. This is about real people, real geeks, who just want to share and communicate personal ideas and thoughts. I had a blog before being at Microsoft, after all. Obviously I had exposure to competing products. <a href="http://toolbar.netcraft.com/site_report?url=www.muscetta.net">My server was running LAMP on Novell Netware in 2002 &#8211; after which I moved it to Linux</a>. It is not a big deal. And if I try to put things in perspective, in fact, this is turning out to be an advantage. I am saying this, as the latest news about interoperability comes from MMS (Microsoft Management Summit): and that is <a href="http://blogs.msdn.com/scxplat/archive/2008/04/29/announcing-system-center-operations-manager-2007-cross-platform-extensions-and-connectors.aspx">the announcement</a> that <a href="http://edge.technet.com/Media/Operations-Manager-with-Barry-Shilmover/">System Center Operations Manager will monitor Linux natively</a>. I find this to be extremely exciting, and a step in the right direction&#8230; to say it all I am LOVING this!!! But at the same time I see some other colleagues in technical support that are worrying and being scared by this &#8211; &quot;if we do monitor Linux and Unix, we are supposed to have at least some knowledge on those systems&quot;, they are asking. Right. We probably do. At the moment there are probably only a limited number of people that actually can do that, at least in my division. But this is because in the past <a href="http://www.muscetta.com/2006/05/29/specialization-is-bullshit/">they must have sacrificed their own curiosity</a> to <a href="http://www.muscetta.com/2006/11/05/more-on-specialization/">become &quot;experts&quot; in some very narrow and &quot;specialized&quot; thing</a>. <a href="http://www.muscetta.com/2007/12/27/simply-works/">Here we go</a>. On the opposite, I kept using Linux &#8211; even when other &quot;old school&quot; employees would call me names. All of a sudden, someone else realizes my advantage.&#160; &#8230;but <a href="http://blogs.msdn.com/johnmont/archive/2008/04/11/popfly-on-moonlight.aspx">a lot of geeks already understood the power of exploration</a>, and won&#039;t stop defining people by easy labels. Another cool quote I read the other day is what <a href="http://jimmy.schementi.com/">Jimmy Schementi</a> has written in his Flickr profile: </p>
<blockquote><p>&quot;[...] I try to do everything, and sometimes I get lucky and get good at something [...]&quot;. </p>
</blockquote>
<p>Reading on his blog it looks like he also gave up on trying to write a Twitter plugin for <strike>MSN</strike>Live Messenger (or maybe he never tried, but at least <a href="http://www.muscetta.com/2007/10/01/facebook-implemented-a-usersetstatus-api/">I wanted to do that</a>, instead) and <a href="http://blog.jimmy.schementi.com/2008/04/pidgin-and-twitter.html">wrote it for Pidgin instead</a>.&#160; Why did he do that ? I don&#039;t know, I suppose because it was quicker/easier &#8211; and there were API&#039;s and code samples to start from.</p>
<p>The bottom line, for me, is that geeks are interested in figuring out cool things (no matter what language or technology they use) and eventually communicating them. They tend to be pioneers of technologies. They try out new stuff. Open Source development is a lot about agility and &quot;trying out&quot; new things. Another passage of <a href="http://howsoftwareisbuilt.com/2008/04/08/interview-with-brad-wilson-software-developer-officelabs-microsoft/">Brad&#039;s interview</a> says: </p>
<blockquote><p>&quot;[...] That&#039;s true&#8211;the open source projects I contribute to tend to be the &#034;by developer, for developer&#034; kind, although I also consume things that are less about development [...] Like one tool that I&#039;ve used forever is the GIMP graphics editor, which I love a lot&quot;. </p>
</blockquote>
<p>That holds true, when you consider that a lot of these things are not really mainstream. Tools made &quot;by developer, for developer&quot; are usually a sort of experimental ground. Like <a href="http://www.twitter.com">Twitter</a>. Every geek is talking about Twitter these days, but <a href="http://twitter.com/Carnage4Life/statuses/799199971">you can&#039;t really say that it is mainstream</a>. Twitter has quite a bunch of interesting aspects, though, and that&#039;s why geeks are on it. Twitter lets me keep up-to-date quicker and better (and with a personal, conversational touch) even better than RSS feeds and blogs do. Also, there are a lot of Microsofties on Twitter. And the cool thing is that yo can really talk to everybody, at any level. Not just everybody &quot;gets&quot; blogs, social networks, and microblogging. Of course you cannot expect everybody to be on top of the tech news, or use experimental technologies. So in a way stuff like Twitter is &quot;by geeks, for geeks&quot; (not really just for developers &#8211; there&#039;s a lot of &quot;media&quot; people on Twitter). Pretty much in the same way, a lot of people I work with (at direct contact, everyday) only found out about LinkedIN during this year (2008!). I joined Orkut and LinkedIN in 2004. Orkut was in private beta, back then. A lot of this stuff never becomes mainstream, some does. But it is cool to discover it when it gets born. How long did it take for Social Networking to become mainstream? So long that when it is mainstream for others, I have seen it for so long that I am even getting tired of it.</p>
<p>For some reason, geeks love to be pioneers. This is well expressed in a <a href="http://blogs.msdn.com/chris_pratley/archive/2008/04/28/my-new-gig-is-office-labs.aspx">digression by Chris Pratley</a>:</p>
<blockquote><p>&quot;[...] some of them we will be putting out on officelabs.com for the general public (you folks!) to try so we can understand how &quot;normal&quot; people would use these tools. Now of course, as we bloggers and blog-readers know, we&#039;re not actually normal &#8211; you could even debate whether the blogosphere is more warped than the set of Microsoft employees, who comprise an interesting cross-section of job types, experiences, and cultures. But I digress. [...]&quot;</p>
</blockquote>
<p>But I have been digressing, too, all along. As usual. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/05/02/a-rant-about-openness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Popfly Virtual Earth Mashup on Moonlight</title>
		<link>http://www.muscetta.com/2008/04/12/popfly-virtual-earth-mashup-on-moonlight/</link>
		<comments>http://www.muscetta.com/2008/04/12/popfly-virtual-earth-mashup-on-moonlight/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 08:44:02 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[popfly]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/04/12/popfly-virtual-earth-mashup-on-moonlight/</guid>
		<description><![CDATA[Installed moonlight on Ubuntu from source by following these instructions (there are some typo&#039;s but they are understandable and correctable). All in all, even being still under heavy development, what Miguel de Icaza has achieved (with moonlight, just like with mono) is amazing. After I posted the above picture on Flickr, John Montgomery was amazed [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<div class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2401024181/"><img class="flickr-photo" src="http://farm3.static.flickr.com/2215/2401024181_d9b74faf81.jpg" alt="Popfly Virtual Earth Mashup on Moonlight" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2401024181/"></a></span></p>
</div>
<p class="flickr-yourcomment">Installed <a href="http://go-mono.org/moonlight">moonlight</a> on Ubuntu from source by following <a href="http://www.nino-net.org/2008/02/29/moon-use-silverlight-plugin-in-ubuntu-710">these instructions</a> (there are some typo&#039;s but they are understandable and correctable).</p>
<p>All in all, even being still under heavy development, what Miguel de Icaza has achieved (with moonlight, just like with <a href="http://go-mono.org">mono</a>) is amazing.</p>
<p>After I posted the above picture on Flickr, John Montgomery was amazed to see <a href="http://www.popfly.com/">PopFly</a> (his creature) working on moonlight, and <a href="http://blogs.msdn.com/johnmont/archive/2008/04/11/popfly-on-moonlight.aspx">he linked to me from his blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/04/12/popfly-virtual-earth-mashup-on-moonlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ca(p)tching Cats and Dogs</title>
		<link>http://www.muscetta.com/2008/03/09/captching-cats-and-dogs/</link>
		<comments>http://www.muscetta.com/2008/03/09/captching-cats-and-dogs/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 08:36:22 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Asirra]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/03/09/captching-cats-and-dogs/</guid>
		<description><![CDATA[I read on Jeff Atwood&#039;s blog about most strong Captcha having been defeated. Also, on top of visitors getting annoyed by it, the Captcha plugin I am using has gone unmantained lately. And, one way or another, I am getting comment spam again. Which is something I really hate as you know what I would [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I read on <a href="http://www.codinghorror.com/blog/archives/001067.html">Jeff Atwood&#039;s blog about most strong Captcha having been defeated</a>. Also, on top of visitors getting annoyed by it,  <a href="http://www.boriel.com/2006/05/27/bye-bye-captcha/">the Captcha plugin I am using has gone unmantained</a> lately. And, one way or another, I am getting comment spam again. Which is something I really hate as you know <a href="http://www.43things.com/things/view/13248/transmit-spammers-to-a-deserted-island-where-they-can-cannibalize-each-other">what I would love to do to spammers</a>&#8230;</p>
<p>I am seriously considering giving <a href="http://research.microsoft.com/asirra/">Asirra</a> a try. It is an interesting project from Microsoft Research for an HIP (Human Interaction Proof) that uses info from <a href="http://www.petfinder.com/">petfinder.com</a> to let users set apart pictures of dogs from those of cats. There is also a <a href="http://research.microsoft.com/asirra/WordPressPlugin/">WordPress plugin</a>, in the best and newest &#034;<a href="http://www.microsoft.com/opensource/interop/default.mspx">we want to interoperate</a>&#034; fashion that we are finally getting at Microsoft (this has always been the way to go, IMHO, and BTW).</p>
<p>Anyway, what do you think ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/03/09/captching-cats-and-dogs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Using Live ID to authenticate to WordPress</title>
		<link>http://www.muscetta.com/2007/11/02/using-live-id-to-authenticate-to-wordpress/</link>
		<comments>http://www.muscetta.com/2007/11/02/using-live-id-to-authenticate-to-wordpress/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 21:39:23 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[LiveID]]></category>
		<category><![CDATA[Passport]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WebSite]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/11/02/using-live-id-to-authenticate-to-wordpress/</guid>
		<description><![CDATA[Yesterday I&#039;ve been hacking a bit with the Windows Live ID SDK and I wrote a very small and simple plugin for WordPress that enables you to login in to WordPress with your passport Live ID. I had read in various places that such a plugin would be welcome&#8230; I looked around and found none [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I&#039;ve been hacking a bit with the <a href="http://msdn2.microsoft.com/en-us/library/bb676633.aspx">Windows Live ID SDK</a> and I wrote a very small and simple plugin for <a href="http://www.wordpress.org/">WordPress</a> that enables you to login in to WordPress with your <span style="text-decoration: line-through;">passport</span> Live ID.<br />
I had read <a href="http://wordpress.org/extend/ideas/topic.php?id=689">in various</a> <a href="http://microsoft.blognewschannel.com/archives/2007/08/17/windows-live-id-cardspace-info-cards-available-for-websites">places</a> that such a plugin would be welcome&#8230; I looked around and found none yet (if anyone has instead already written something like this and I missed it I will happily waste the simple stuff I did  for something more advanced/well written&#8230; just let me know <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).<br />
I took a look at <a href="http://mvolo.com/blogs/serverside/archive/2007/08/12/IIS-Authentication-plugin-for-the-Wordpress-PHP-blogging-engine.aspx">a similar experiment</a>, and eventually even found that there is <a href="http://verselogic.net/projects/wordpress/wordpress-openid-plugin">some conceptually similar plugin written to work with OpenID</a>. The wordpress openid plugin is much more complex and much more advanced than what I did, tough. It will let you log in with just ANY OpenID user, it will automatically create a user for you on that wordpress installation and associate it with your ID, even just for the purpose of commenting, etc.</p>
<p>But in my blog I don&#039;t require or need people to actually log in to do anything. I actually like anonymous/free comment. A CAPTCHA takes care of spammers and I am fine with it so far. Probably for a big site with a lot of users it might make sense, but for my blog so far it doesn&#039;t. But there&#039;s one thing for which this is instead useful: I have always been worried, when logging in through HTTP (thus, without SSL) to my blog from networks I don&#039;t manage or completely trust, that my password could be sniffed over the wire and stolen. Live ID solves my problem by letting Microsoft validate my identity: I have associated my Live ID to the blog&#039;s main user account(=myself), the one writing this post. So the plugin in its current form <a href="http://www.muscetta.com/wp-content/plugins/liveauth/auth.php">is used as a replacement of the login form</a> (the <a href="http://www.muscetta.com/wp-login.php">standard wp-login.php wordpress form</a> CAN still be used if you like, of course, you just don&#039;t HAVE to. Also the use of xmlrpc will still require local user/pwd combination.). Anyway, this new form will authenticate you thorugh Live ID and then check if your Live ID is associated to any local user. If it is, it will log you on to wordpress with that account. Otherwise it will inform you that you are successfully logged on to passport Live, but unfortunately there is no corresponding local account for you, and that it would need to be set up. Setting it up is as difficult as adding a line to the database&#8230; probably adding a form or a property page would be nice, but in my case I just did it with a query:</p>
<p>INSERT INTO `wordpress`.`wp-usermeta` (<br />
`umeta_id` ,<br />
`user_id` ,<br />
`meta_key` ,<br />
`meta_value`<br />
)<br />
VALUES (<br />
NULL , &#039;1&#039;, &#039;LiveID&#039;, &#039;f11fa1d3e82c68776f94a3a5c459b70b&#039;<br />
);</p>
<p>which adds an extra &#034;property&#034; for the first user (admin) called &#039;LiveID&#039; which contains your Live ID (the one above is not my real one, in case you were wondering). When you are authenticated by LiveID and you get back this value, the plugin checks in this table which WordPress userid in the database has been associated with this Live ID and &#8211; if it finds one &#8211; it authenticates you as that user. Of course you should not have duplicates.</p>
<p>My code is mostly based on <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8BA187E5-3630-437D-AFDF-59AB699A483D&amp;displaylang=en">the SDK PHP Sample</a>, with some modification to integrate it in WordPress as a plugin. Of course I removed the file that is used as &#034;user database&#034; and used wordpress DB instead.</p>
<p>There&#039;s a ton of things that could be improved. I just did not put any more effort and time in it. As you might know if you read this blog, I am not a full time developer. Actually I shouldn&#039;t write code at all for work and I am mainly considered an &#034;infrastructure&#034; guy. Anyway, I would like to code more and even if I am not supposed to, I always try to find stimulating situations that require a bit of integration, thinking out of the box, some scripting, etc&#8230;</p>
<p><strong>[updated: november 3rd 2007]</strong> You can download the sample plugin &#034;AS-IS&#034; here: <strong><a href="http://www.muscetta.com/wp-content/uploads/liveauth.zip">liveauth.zip</a></strong> . This has only been tested and only works with WordPress 2.3.x serie (but should also work with earlier versions &#8211; not tested) <a href="http://www.muscetta.com/wp-content/uploads/liveauth.zip"><br />
</a><br />
<strong>[updated: march 30th 2008]</strong> <a href="http://wordpress.org/development/2008/03/wordpress-25-brecker/">WordPress 2.5</a> has changed the way the authentication cookie is generated, therefore here is an updated version of the plugin that works with the new secure cookies: <strong><a href="http://www.muscetta.com/wp-content/uploads/liveauth02.zip">liveauth02.zip</a></strong><br />
I should really invest some more time in this and clear up the code. I should also make an interface to make the configuration easier, and maybe make a version that works on both 2.3 and 2.5 branches. I am not sure when I will have time for that, though&#8230;</p>
<p><strong>[updated: april 20th 2008]</strong> I have released version 0.3c of the plugin which now finally includes a simple configuration page, and should work on both WordPress 2.3 (and older) and on the 2.5 brach. Please visit the new Windows <strong><a href="http://www.muscetta.com/live-id-wordpress-plugin/">Live ID Authentication WordPress Plugin Page</a></strong>.<a href="http://www.muscetta.com/wp-content/uploads/liveauth.zip"><br />
</a></p>
<p><strong>Disclaimer:</strong><br />
The information in this weblog is provided &#034;AS IS&#034; with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my own personal opinion. All code samples are provided &#034;AS IS&#034; without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.<br />
THIS WORK IS NOT ENDORSED AND NOT EVEN CHECKED, AUTHORIZED, SCRUTINIZED NOR APPROVED BY MY EMPLOYER, AND IT ONLY REPRESENT SOMETHING WHICH I&#039;VE DONE IN MY FREE TIME. NO GUARANTEE WHATSOEVER IS GIVEN ON THIS. THE AUTHOR SHALL NOT BE MADE RESPONSIBLE FOR ANY DAMAGE YOU MIGHT INCUR WHEN USING THIS PROGRAM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/11/02/using-live-id-to-authenticate-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Live Photo Gallery and Flickr</title>
		<link>http://www.muscetta.com/2007/10/25/live-gallery-and-flickr/</link>
		<comments>http://www.muscetta.com/2007/10/25/live-gallery-and-flickr/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 10:48:21 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/25/live-gallery-and-flickr/</guid>
		<description><![CDATA[I actually read this (Live Photo Gallery  allowing you to post to Flickr) a couple of days ago in an internal mail, and &#8211; even tough I Love Flickr - I have been extremely quiet and cautious and I did not blog about it. In fact I felt like waiting about blogging this GREAT new, because I [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I actually read this (<a href="http://get.live.com/betas/photogallery_betas">Live Photo Gallery</a>  allowing you to post to <a href="http://www.flickr.com">Flickr</a>) a couple of days ago in an internal mail, and &#8211; even tough I Love <a href="http://www.flickr.com/photos/dani3l3">Flickr</a> - I have been extremely quiet and cautious and I did not blog about it. In fact I felt like waiting about blogging this GREAT new, because I thought that it was internal-only, confidential information, and I was worried that someone would tell me off <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>In the end it turns out that I did not have to wait or be worried, since <a href="http://blogs.msdn.com/pix/archive/2007/10/18/do-you-use-flickr-then-check-out-windows-live-photo-gallery-beta.aspx">the cat was already out of the bag</a>!!!</p>
<p>[As a side note, it happens a lot of times that stuff gets public much earlier than when I actually read that internally. In those internal communication it very often is still considered "confidential" when the whole world is speaking about it.... I don't get this whole "confidentiality" thing in these days of <a href="http://www.gapingvoid.com/Moveable_Type/archives/001607.html">porous membranes</a>...]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/10/25/live-gallery-and-flickr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.Net Framework CODE is going to be available!</title>
		<link>http://www.muscetta.com/2007/10/04/net-framework-code-is-going-to-be-available/</link>
		<comments>http://www.muscetta.com/2007/10/04/net-framework-code-is-going-to-be-available/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 06:01:11 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[MS Italy Blogs]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/04/net-framework-code-is-going-to-be-available/</guid>
		<description><![CDATA[I am amazed and excited to read that Microsoft has decided to release the source code of the .Net libraries. Scott Guthrie writes: &#034;[...] One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I am amazed and excited to <a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">read that Microsoft has decided to release the source code of the .Net libraries</a>.</p>
<p>Scott Guthrie writes:</p>
<blockquote><p><em>&#034;[...] One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and to easily enable debugging support in them. [...] VS 2008 will include support to automatically retrieve the appropriate .NET Framework source files on demand from Microsoft.  This means that the source code for the ASP.NET GridView and BaseDataBoundControl classes above do not have to already be installed on the machine before we started the debugger.  Instead, when we use F11 to step into their implementation VS can automatically download the source files from Microsoft and open it within the IDE. [...]&#034;</em></p></blockquote>
<p>WOW. This is so cool, and a further step in the right direction.</p>
<p>Thanks to <a href="http://blogs.technet.com/alead_msft/archive/2007/10/03/codice-sorgente-delle-librerie-del-framework-net-aperto.aspx">Alessandro</a> for having picked this up, as I read it on his blog, and I thought it was an information worth spreading!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/10/04/net-framework-code-is-going-to-be-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook implemented a user.setStatus API!</title>
		<link>http://www.muscetta.com/2007/10/01/facebook-implemented-a-usersetstatus-api/</link>
		<comments>http://www.muscetta.com/2007/10/01/facebook-implemented-a-usersetstatus-api/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 08:55:20 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/01/facebook-implemented-a-usersetstatus-api/</guid>
		<description><![CDATA[Finally, you CAN change your Facebook status programmatically in a way that is supported! Some months ago Christian discovered a hack to change your Facebook status. Some other people also used it and extended it. I also ported it to C# and made a winform using its unofficial method. Suddenly after, Facebook asked us to [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Finally, <a href="http://developers.facebook.com/documentation.php?v=1.0&amp;doc=extperms">you CAN change your Facebook status programmatically in a way that is supported</a>!</p>
<p>Some months ago <a href="http://nexdot.net/blog/2007/04/20/updating-facebook-status-using-php">Christian discovered a hack to change your Facebook status</a>. <a href="http://blakebrannon.com/2007/08/18/how-to-sync-facebook-status-with-twitter">Some other people also used it and extended it</a>. <a href="http://www.muscetta.com/2007/08/03/facebook-statetray">I also ported it to C# and made a winform using its unofficial method</a>.<br />
Suddenly after, <a href="http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name">Facebook asked us to take down the code</a>, as it violated their terms of service.</p>
<p><a href="http://www.muscetta.com/2007/09/06/facebook-status-change-is-not-a-crime">It has taken a while</a>, <a href="http://www.techcrunch.com/2007/09/06/facebook-opening-up-but-on-its-own-terms/">some struggles</a>, but now they finally recognized the need for <a href="http://adrianspender.com/blog/2007/05/21/federated-status">federated status</a>, and implemented a <strong>user.setStatus</strong> API.</p>
<p><a href="http://www.twitter.com/">Twitter</a> is the first to pick it up, so now <a href="http://twittersweet.com/2007/9/30/integration-between-twitter-and-facebook-status">you can update twitter and have your status propagate in Facebook</a>!</p>
<p>Well done, guys!</p>
<p>When I&#039;ll have some time I might think of rewriting my app using the SUPPORTED method, maybe finally writing that <a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=51b24ec1-ec28-4526-b7fe-9d1e6c7fc802">Live Messenger plugin</a>&#8230; it would be nice <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
When I&#039;ll have time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/10/01/facebook-implemented-a-usersetstatus-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Test from WordPress 2.3</title>
		<link>http://www.muscetta.com/2007/09/26/test-wp-23/</link>
		<comments>http://www.muscetta.com/2007/09/26/test-wp-23/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 19:11:55 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/26/test-wp-23/</guid>
		<description><![CDATA[Blog works, all the plugin work too. I will *only* have to re-write a whole bunch on SQL queries for my .Net frontend that is now broken. I&#039;ll do that at one stage, now I can&#039;t be asked.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Blog works, all the plugin work too. I will *only* have to re-write a whole bunch on SQL queries for <a href="http://www.muscetta.com/2007/05/30/this-blog-in-c/">my .Net frontend</a> that is now broken. I&#039;ll do that at one stage, now I can&#039;t be asked.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/26/test-wp-23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu on Virtual PC 2007</title>
		<link>http://www.muscetta.com/2007/09/26/ubuntu-on-virtual-pc-2007/</link>
		<comments>http://www.muscetta.com/2007/09/26/ubuntu-on-virtual-pc-2007/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 17:30:34 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/26/ubuntu-on-virtual-pc-2007/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } Ubuntu on Virtual PC 2007, uploaded by Daniele Muscetta on Flickr. This was a VMWare &#034;virtual appliance&#034; with Ubuntu that I was using for testing. As I mostly use Virtual PC [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css">    .flickr-photo { border: solid 2px #000000; }  .flickr-yourcomment { }  .flickr-frame { text-align: left; padding: 3px; }  .flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<p class="flickr-frame"><a href="http://www.flickr.com/photos/dani3l3/1442745259/" title="photo sharing"><img src="http://farm2.static.flickr.com/1258/1442745259_35ae73bd8c.jpg" alt="Ubuntu on Virtual PC 2007" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1442745259/">Ubuntu on Virtual PC 2007</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span>
</p>
<p class="flickr-yourcomment">This was a VMWare &#034;virtual appliance&#034; with Ubuntu that I was using for testing. As I mostly use Virtual PC or Virtual Server, I found it annoying having to switch to VMWare player to use that specific machine, and I could not be asked to install a new one. So I converted the .VMDK to .VHD format (the other way around than it is described on <a href="http://www.techlog.nl/archive/2007/08/29/convert_virtual_disks_from_vhd">this article</a> ).</p>
<p>After that, I had to change GRUB&#039;s configuration to inform it that the SCSI disk (/dev/sda1) was all of a sudden become an IDE one (/dev/hda1), and then I also had to reconfigure X.</p>
<p>After that it runs like a charme!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/26/ubuntu-on-virtual-pc-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Live Install on 2003 Server ?</title>
		<link>http://www.muscetta.com/2007/09/13/windows-live-install-on-2003-server/</link>
		<comments>http://www.muscetta.com/2007/09/13/windows-live-install-on-2003-server/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 18:40:31 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/13/windows-live-install-on-2003-server/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } I used to have Windows Live Writer and Windows Live Messenger on my Windows 2003 Server box. Now, this new fantastic integrated setup says it won&#039;t install on this operating system. [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css">    .flickr-photo { border: solid 2px #000000; }  .flickr-yourcomment { }  .flickr-frame { text-align: left; padding: 3px; }  .flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<p class="flickr-frame"><a href="http://www.flickr.com/photos/dani3l3/1367258774/" title="photo sharing"><img src="http://farm2.static.flickr.com/1182/1367258774_0fb46fdf80.jpg" alt="Windows Live Install on 2003 Server ?" class="flickr-photo" /></a></p>
<p>I used to have <a href="http://get.live.com/betas/writer_betas">Windows Live Writer</a> and <a href="http://get.live.com/betas/messenger_betas">Windows Live Messenger</a> on my <a href="http://www.microsoft.com/windowsserver2003/default.mspx">Windows 2003 Server</a> box. Now, <a href="http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!224.entry">this new fantastic integrated setup</a> says it won&#039;t install on this operating system. Ridiculous. You read the release notes, and in fact it only says Windows XP and Vista.</p>
<p>I see.</p>
<p>Well, I happen to use a Windows 2003 Server at home &#8211; the same machine for day to day use (like writing this post or checking private email) and doing some study/testing. I don&#039;t have loads of machines. I don&#039;t actually have money for a new machine (even if I would really need a new one to test stuff).<br />
I try to do more with less.</p>
<p>Well, if this does not install, what am I supposed to do ?<br />
I want to chat with people, which means I&#039;ll keep using <a href="http://www.pidgin.im">Pidgin</a> on this machine. That way I also have my GTalk, ICQ and Yahoo buddies all in one place. And it eats up much less memory that the &#034;real&#034; live messenger. And without advertisements. How nice.</p>
<p>I am sorry when my employer does this kind of stupid things. This is not interoperability. It does not even work on OUR operating systems!</p>
<p>As for Windows Live Writer, <a href="http://haacked.com/archive/2007/07/29/cleanup-the-crap-that-windows-live-writer-injects-with-this.aspx">read Phil&#039;s post</a>. It seems like FrontPage, all over again.<br />
For writing this post I&#039;ve used <a href="http://www.flickr.com">Flickr</a>.<br />
Since I happen to post quite a bunch of photos or images on my blog, I find it ideal. The ONLY thing Flickr is missing, when used as a blogging tool, is the ability to post tags/categories too. Otherwise it would be perfect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/13/windows-live-install-on-2003-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ITPro vs. Dev: there is no such a thing.</title>
		<link>http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/</link>
		<comments>http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 19:05:49 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/</guid>
		<description><![CDATA[Dave Winer wisely writes: [...] I&#039;ve been pushing the idea that every app should be a platform for a long time, that in addition to a user interface, every app should have a programmatic interface. For me the idea came from growing up using Unix in the 70s, where every app is a toolkit and [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.scripting.com/stories/2007/09/10/shouldEveryAppBeAPlatform.html">Dave Winer wisely writes</a>:</p>
<blockquote><p><em>[...] I&#039;ve been pushing the idea that every app should be a platform for a long time, that in addition to a user interface, every app should have a programmatic interface. For me the idea came from growing up <strong>using Unix</strong> in the 70s, <strong>where every app is a toolkit and the operating system is a scripting language</strong>. Wiring things together is an integral part of being a Unix user. It&#039;s why programmers like Unix so much [...]</em></p></blockquote>
<p>It is entirely true. The limits are blurry, IMHO. In the Unix world it is common to find full-fledged &#034;applications&#034; which have been written by the ground up by people that were doing SysAdmin tasks, and those &#034;applications&#034; are usually just&#8230; scripts. Simple shell scripts, or something more evolved (PERL, PHP, Python) it does not really matter.</p>
<p>I am so tired of the division traditionally made in the Microsoft world between &#034;Developers&#034; and &#034;IT Professionals&#034;. We even have separate sites for the two audiences: <a href="http://msdn.microsoft.com">MSDN</a> and <a href="http://technet.microsoft.com">Technet</a>. There are separate &#034;TechED&#034; events: for&#034;<a href="http://www.mseventseurope.com/teched/07/developers/Content/Pages/Default.aspx">Devs</a>&#034; and for &#034;<a href="http://www.mseventseurope.com/teched/07/itforum/Content/Pages/Default.aspx">IT Pros</a>&#034;. There are blogs that are divided among the two &#034;audiences&#034;&#8230;</p>
<p>There aren&#039;t two different audiences, really. There are people, with various degrees of expertise. There is no such a thing as a &#034;developer&#034; if he doesn&#039;t know a bit how the underlying system works. His code is gonna suck. And there is not such a thing such a &#034;IT Pro&#034; that builds and integrates and manages systems if he does not have the palest idea of how things work &#034;behind the GUI&#034;. He&#039;s gonna screw things up regardless of how many step-by-step (click-by-click ?) procedures you spoon feed him.</p>
<p>That&#039;s why automation and integration are best done by people who know how to write a bit code.</p>
<p>The <a href="http://www.microsoft.com/powershell">PowerShell</a> <a href="http://blogs.msdn.com/PowerShell/">folk</a> GET IT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Facebook status change is not a crime</title>
		<link>http://www.muscetta.com/2007/09/06/facebook-status-change-is-not-a-crime/</link>
		<comments>http://www.muscetta.com/2007/09/06/facebook-status-change-is-not-a-crime/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 21:34:19 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Blackhat]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[TechCrunch]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/06/facebook-status-change-is-not-a-crime/</guid>
		<description><![CDATA[TechCrunch has been speaking to Christian about his PHP code that he had to pull down, my C# code I had to pull down (about which I also posted a comment this week), and the others who did. you can read what they wrote about it at http://www.techcrunch.com/2007/09/06/facebook-opening-up-but-on-its-own-terms/<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>TechCrunch has been speaking to Christian about <a href="http://www.nexdot.net/blog/2007/04/20/updating-facebook-status-using-php/">his PHP code that he had to pull down</a>, <a href="http://www.muscetta.com/2007/08/03/facebook-statetray/">my C# code I had to pull down</a> (about which <a href="http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name/">I also posted a comment this week</a>), and <a href="http://blakebrannon.com/2007/08/18/how-to-sync-facebook-status-with-twitter/">the others who did</a>. you can read what they wrote about it at <a href="http://www.techcrunch.com/2007/09/06/facebook-opening-up-but-on-its-own-terms/">http://www.techcrunch.com/2007/09/06/facebook-opening-up-but-on-its-own-terms/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/06/facebook-status-change-is-not-a-crime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#039;s nice to see things called by their real name</title>
		<link>http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name/</link>
		<comments>http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 10:45:18 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blackhat]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[Risk]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name/</guid>
		<description><![CDATA[Facebook Terms of Service state that it is forbidden to &#034;[...] use automated scripts to collect information from or otherwise interact with the Service or the Site [...]&#034; For this reason, I had to pull down the code of the small application I had previously released, which was &#034;logging&#034; into the mobile web application &#034;pretending&#034; [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.facebook.com/terms.php">Facebook Terms of Service</a> state that it is forbidden to <em>&#034;[...] use automated scripts to collect information from or otherwise interact with the Service or the Site [...]&#034;</em></p>
<p>For this reason, <a href="http://www.muscetta.com/2007/08/03/facebook-statetray">I had to pull down the code of the small application I had previously released</a>, which was &#034;logging&#034; into the mobile web application &#034;pretending&#034; to be a mobile browser and change your status. Big deal!!!</p>
<p>I am quite sure there are a lot of people writing &#034;official&#034; applications (that is using the &#034;platform API&#034; and so on) that are collecting A LOT of information about users who install their applications. They are being sent the info about the visitors by facebook, they are storing them, they might do whatever they please with (study it, sell it to spammers, to marketers, to making-money-assholes) and nobody will ever notice because it is on their servers and nobody can check that.</p>
<p>But a script that changes your status from remote &#8211; since this is not a functionality they CHOSE to expose in their API &#8211; then THAT is a big issue. Doh!<br />
It&#039;s just plain ridiculous, but that&#039;s it.</p>
<p>Sure, the <a href="http://www.facebook.com/developers/tos.php">terms of service for app developers</a> say a bit more in this regard:</p>
<blockquote><p><em>[...]<br />
4) Except as provided in Section 2.A.6 below, <strong>you may not continue to use, and must immediately remove from any Facebook Platform Application and any Data Repository in your possession or under your control, any Facebook Properties not explicitly identified as being storable indefinitely in the Facebook Platform Documentation within 24 hours after the time at which you obtained the data, or such other time as Facebook may specify to you from time to time</strong>;</em></p>
<p><em>5) You may store and use indefinitely any Facebook Properties that are explicitly identified as being storable indefinitely in the Facebook Platform Documentation; provided, however, that except as provided in Section 2.A.6 below, you may not continue to use, and must immediately remove from any Facebook Platform Application and any Data Repository in your possession or under your control, any such Facebook Properties: (a) if Facebook ceases to explicitly identify the same as being storable indefinitely in the Facebook Platform Documentation; (b) upon notice from Facebook (including if we notify you that a particular Facebook User has requested that their information be made inaccessible to that Facebook Platform Application); or (c) upon any termination of this Agreement or of your use of or participation in Facebook Platform;<br />
[...]<br />
You will not directly or indirectly sell, export, re-export, transfer, divert, or otherwise dispose of any Facebook Properties to any country (or national thereof) without obtaining any required prior authorizations from the appropriate government authorities;<br />
[...]</em></p></blockquote>
<p>Are we sure everybody is playing by these rules, when every facebook &#034;application&#034; really runs on the developer&#039;server ? How do you know that they are really storing only what you want them to store, and deleting what you want them to delete ? Everybody knows how difficult it is to really &#034;delete&#034; digital content once it has come into existance&#8230; who knows how many copies of this database/social graph are floating around ?</p>
<p>Of course that is not an issue because people don&#039;t talk about it enough. But a script that changes your status &#8211; now, THAT is a very terrible thing.</p>
<p>I just don&#039;t get this &#034;politically correctness&#034;. It must be me.</p>
<p>Oh, no&#8230; look! It&#039;s not only me!<br />
I had read <a href="http://www.25hoursaday.com/weblog/2007/08/21/FacebookTheSocialGraphRoachMotel.aspx">this post of Dare</a>, but I problably had overlooked the last bit of it&#8230;. because he did point out this Hypocrisy going on:</p>
<blockquote><p><em>[...]<br />
Or (5) the information returned by FQL about a user contains no contact information (no email address, no IM screen names, no telephone numbers, no street address) so it is pretty useless as a way to utilize one’s friends list <strong>with applications besides Facebook</strong> since there is no way to cross-reference your friends using any personally identifiable association that would exist in another service. </em></p>
<p><em>When it comes to contact lists (i.e. the social graph), Facebook is a roach motel. Lots of information about user relationships goes in but there’s no way for users or applications to get it out easily. Whenever an application like FacebookSync comes along which helps users do this, it is </em><em><a href="http://fsbsoftware.com/">quickly shut down for violating their Terms of Use</a>. Hypocrisy? Indeed.<br />
[...]</em></p></blockquote>
<p>He then insists <a href="http://www.25hoursaday.com/weblog/2007/09/02/PutTheUserInControlOtherwiseThingsFallApart.aspx">in a more recent post in calling things by their </a><a href="http://www.25hoursaday.com/weblog/2007/09/02/PutTheUserInControlOtherwiseThingsFallApart.aspx">name</a>:</p>
<blockquote><p><em>[...]<br />
I will point out that 9 times out of 10 when you hear geeks talking about social network portability or similar buzzwords they are really talking about sending people spam because someone they know joined some social networking site. I also wonder how many people realize that these fly-by-night social networking sites that they happily hand over their log-in credentials to so they can spam their friends also share the list of email addresses thus obtained with services that resell to spammers?<br />
[...]<br />
how do you prevent badly behaved applications like Quechup from taking control away from your users? At the end of the day your users might end up thinking you sold their email addresses to spammers when in truth it was the insecure practices of the people who they’d shared their email addresses with that got them in that mess. This is one of the few reasons I can understand why Facebook takes such a hypocritical approach. <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[...]</em></p></blockquote>
<p>Thanks, Dare, for mentioning Hypocrisy. Thanks for calling things by their name. I do <em><strong>understand</strong></em> their approach, I just <em><strong>don&#039;t agree</strong> </em>with it.</p>
<p>I did pull my small application off the Internet because I have a family to mantain and I don&#039;t want to have legal troubles with Facebook. Sorry to all those that found it handy. No, I cannot even give that to you per email. It&#039;s gone. I am sorry. For the freedom of speech, especially, I am sorry.</p>
<p>I will change my status more often on <a href="http://twitter.com/dani3l3">Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/03/its-nice-to-see-things-called-by-their-real-name/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My lost Facebook Appz! doh!</title>
		<link>http://www.muscetta.com/2007/08/25/my-lost-facebook-appz-doh/</link>
		<comments>http://www.muscetta.com/2007/08/25/my-lost-facebook-appz-doh/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 18:58:44 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[43places]]></category>
		<category><![CDATA[43things]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/25/my-lost-facebook-appz-doh/</guid>
		<description><![CDATA[I am just figuring out that on this post of the 26th of July I mentioned I was trying to write a simple facebook application. I am not realizing I never wrote anything about it anymore. I did not spend a lot of time figuring out all the possibilities, and indeed I have not looked [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I am just figuring out that <a href="http://www.muscetta.com/2007/07/26/facebook-development/">on this post of the 26th of July I mentioned I was trying to write a simple facebook application</a>. I am not realizing I never wrote anything about it anymore. I did not spend a lot of time figuring out all the possibilities, and indeed I have not looked into it anymore since then, but that very night I did write something. Not just one application, but TWO (copycat) very simple applications: <a href="http://www.facebook.com/apps/application.php?id=2911759627">my43places</a> and <a href="http://www.facebook.com/apps/application.php?id=2849529788">my43things</a>, that pull into your profile the data about the things you want to do you entered in <a href="http://www.43things.com">43things.com</a> and the places you want to visit you entered in <a href="http://www.43places.com">43places.com</a>, respectively.</p>
<p>They are very simple: you enter your user name and they connect to their <a href="http://www.43things.com/about/view/web_service_api">REST web service</a>, extract the information about your places and/or goals, and show them as a list in a box in your profile.</p>
<p>I don&#039;t know why I did not blog about them before&#8230; maybe I thought they were too simple ? Well, they are, but, seriously: who cares? <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/25/my-lost-facebook-appz-doh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Projects and Microsoft</title>
		<link>http://www.muscetta.com/2007/08/24/open-source-projects-and-microsoft/</link>
		<comments>http://www.muscetta.com/2007/08/24/open-source-projects-and-microsoft/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 12:16:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/24/open-source-projects-and-microsoft/</guid>
		<description><![CDATA[This CNet article about CodePlex has some VERY interesting points: [...] Bayarsaikhan has posted the top 25 most active open-source projects on Microsoft&#039;s Codeplex site. Looking at the list, it looks like Microsoft developers spend their time doing much the same as the rest of the Java/other world: play games and make the Web world pretty [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://news.com.com/8301-10784_3-9761998-7.html">This CNet article about CodePlex</a> has some VERY interesting points:</p>
<blockquote><p><em>[...] Bayarsaikhan </em><a href="http://www.plentyofcode.com/2007/08/most-active-open-source-projects-in.html" class="external-link"><font color="#0048c0"><em>has posted</em></font></a><em> the top 25 most active open-source projects on </em><a href="http://www.codeplex.com/"><font color="#20328e"><em>Microsoft&#039;s Codeplex</em></font></a><em> site. Looking at the list, it looks like Microsoft developers spend their time doing much the same as the rest of the Java/other world: play games and make the Web world pretty with AJAX. You can see the top project interests below in the Codeplex tag cloud.</em></p>
<p><em>Codeplex is interesting to me for several reasons, but primarily because it demonstrates something that I&#039;ve argued for many years now: </em><a href="http://asay.blogspot.com/2005/06/windows-as-open-source-platform.html" class="external-link"><font color="#0048c0"><em>open source on the Windows platform is a huge opportunity for Microsoft</em></font></a><em>. It is something for the company to embrace, not despise.</em></p>
<p><em>And it does several things well (better than Sourceforge, in my opinion) [...]</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/24/open-source-projects-and-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tafiti</title>
		<link>http://www.muscetta.com/2007/08/23/tafiti/</link>
		<comments>http://www.muscetta.com/2007/08/23/tafiti/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 15:30:57 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tree]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/23/tafiti/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } Tafiti, uploaded by Daniele Muscetta on Flickr. www.tafiti.com/#p=0&#38;q=%22Daniele%20Muscetta%22 Try it out.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css">      .flickr-photo { border: solid 2px #000000; }  .flickr-yourcomment { }  .flickr-frame { text-align: left; padding: 3px; }  .flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<p class="flickr-frame"><a href="http://www.flickr.com/photos/dani3l3/1214899138/" title="photo sharing"><img src="http://farm2.static.flickr.com/1085/1214899138_6ca27a6f53.jpg" alt="Tafiti" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1214899138/">Tafiti</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment"><a href="http://www.tafiti.com/#p=0&amp;q=%22Daniele%20Muscetta%22">www.tafiti.com/#p=0&amp;q=%22Daniele%20Muscetta%22</a></p>
<p>Try it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/23/tafiti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching for myself on various search engines</title>
		<link>http://www.muscetta.com/2007/08/21/searching-for-myself-on-various-search-engines/</link>
		<comments>http://www.muscetta.com/2007/08/21/searching-for-myself-on-various-search-engines/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 15:06:53 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/21/searching-for-myself-on-various-search-engines/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } Searching for myself on Yahoo Image Search, uploaded by Daniele Muscetta on Flickr. Here I start a quick comparison of what search engines actually find about me. I am glad to [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css">    .flickr-photo { border: solid 2px #000000; }  .flickr-yourcomment { }  .flickr-frame { text-align: left; padding: 3px; }  .flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<p class="flickr-frame"><a href="http://www.flickr.com/photos/dani3l3/1193676111/" title="photo sharing"><img src="http://farm2.static.flickr.com/1142/1193676111_fe92e2a2cc.jpg" alt="Searching for myself on Yahoo Image Search" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1193676111/">Searching for myself on Yahoo Image Search</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">Here I start a quick comparison of what search engines actually find about me.<br />
I am glad to read that <a href="http://blogs.msdn.com/livesearch/archive/2007/07/27/three-new-features-in-live-search-images.aspx">Live Search can find Jimi Hendrix&#039;s face</a>, and <a href="http://googlesystem.blogspot.com/2007/05/restrict-google-image-results-to-faces.html">Google can spot those portraits of Paris Hilton</a>.<br />
Unfortunately I am not as famous as them, so not enough people have tagged me. Not on &#034;normal&#034; web pages or newspaper.</p>
<p>Yahoo did a great/smart thing buying Flickr.<br />
It gets people doing the TAGGING for them.<br />
So the results are accurate for pretty much everything.</p>
<p>Ok granted. All of these pictures are coming out of Flickr.<br />
But while that is a limitation, it is also its power.</p>
<p>This is also why I was able to search for &#034;blackberries&#034; the other day and find the thing I was searching for, that is FRUIT that grows spontaneously in the woods, rather than a bunch of stupid mobile telephones.<br />
try: <a href="http://images.search.yahoo.com/search/images?p=blackberry+OR+fruit">images.search.yahoo.com/search/images?p=blackberry+OR+fruit</a></p>
<p>Doing the same search on Google:</p>
<p><a href="http://www.flickr.com/photos/dani3l3/1193676585/" title="Photo Sharing"><img width="500" src="http://farm2.static.flickr.com/1345/1193676585_fc3a384f94.jpg" alt="Searching for myself on Google Image Search" height="375" /></a></p>
<p>Ok this is not all from flickr anymore, they actually have the rest of the web in their database. Most of them are pictures I made &#8211; granted. But only one OF me, and definitely not the first one. Ninth position.</p>
<p>try the blackberry serch <a href="http://images.google.com/images?svnum=10&amp;q=blackberry+OR+fruit">images.google.com/images?svnum=10&amp;q=blackberry+OR+fruit</a></p>
<p>And now Live Search:</p>
<p><a href="http://www.flickr.com/photos/dani3l3/1194542156/" title="Photo Sharing"><img width="500" src="http://farm2.static.flickr.com/1427/1194542156_d7d7943ba7.jpg" alt="Searching for myself on Live Image Search" height="375" /></a></p>
<p>Same as Google: images from everywhere. Less images than Google. Most of them made by me (not all). An actual picture of myself is in 9th position.</p>
<p>my blackberry search here finds a lot of fruit&#8230;</p>
<p><a href="http://www.flickr.com/photos/dani3l3/1193796857/"><img width="500" src="http://farm2.static.flickr.com/1211/1193796857_2087868666.jpg" alt="blackberry_live" height="375" /></a></p>
<p>strangely enough, there&#039;s an IPhone among them!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/21/searching-for-myself-on-various-search-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Mobile is not working for Italy</title>
		<link>http://www.muscetta.com/2007/08/21/facebook-mobile-is-not-working-for-italy/</link>
		<comments>http://www.muscetta.com/2007/08/21/facebook-mobile-is-not-working-for-italy/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 09:04:01 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/21/facebook-mobile-is-not-working-for-italy/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } Facebook mobile is not working from mobile operators not in the US, I suppose. I can&#039;t even log on to m.facebook.com with my WIndows Mobile SmartPhone. I can&#039;t send status updates [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css">    .flickr-photo { border: solid 2px #000000; }  .flickr-yourcomment { }  .flickr-frame { text-align: left; padding: 3px; }  .flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<p class="flickr-frame"><a href="http://www.flickr.com/photos/dani3l3/1192155232/" title="photo sharing"><img src="http://farm2.static.flickr.com/1341/1192155232_2852c73935.jpg" alt="Facebook Mobile is not working for Italy" class="flickr-photo" /></a></p>
<p>Facebook mobile is not working from mobile operators not in the US, I suppose.<br />
I can&#039;t even log on to m.facebook.com with my WIndows Mobile SmartPhone.<br />
I can&#039;t send status updates through SMS.</p>
<p>I can&#039;t even send them by mail, or I get the following back:</p>
<p><a href="http://www.flickr.com/photos/dani3l3/1191285337/"><img width="416" src="http://farm2.static.flickr.com/1047/1191285337_ba494d53ef_o.jpg" alt="Facebook Mobile is not working for Italy" height="447" /></a></p>
<p>So, now, I am updating <a href="http://twitter.com/dani3l3">Twitter</a>.<br />
Twitter can be updated with an SMS even from Europe. Or it can be updated with a bot running GTalk. Very easy, can do it from everywhere.</p>
<p>I then wrote a small command line application (<a href="http://www.muscetta.com/2007/08/03/facebook-statetray/">based on the same &#034;hack&#034; as the one described before</a>) that runs every five minutes from the scheduler on my server and keeps the two in sync.</p>
<p>I wrote it in C# as a Console application because that&#039;s usually what I do when I want it to run it both on my windows machines and/or on my Linux server (with <a href="http://www.mono-project.com/">MONO</a>). I already used this approach in the past and I found it to be successful. As long as you keep the application simple enough and check out <a href="http://www.go-mono.com/docs">the documentation for the implemented classes on mono</a>, it runs without modification both on windows on the &#034;real&#034; .Net framework and on Mono on Linux. i just copy the executable and I am ready to go.<br />
Not this time, though.<br />
I am hitting what seems to be a bug in mono. I might be able to find a workaround, but I haven&#039;t had the time to dig in the issue yet.<br />
I posted some <a href="http://www.gotmono.com/cgi-bin/yabb/YaBB.pl?board=news;action=display;num=1180633385">info about this on this forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/21/facebook-mobile-is-not-working-for-italy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated RSS Feed for this blog</title>
		<link>http://www.muscetta.com/2007/08/16/updated-rss-feed-for-this-blog/</link>
		<comments>http://www.muscetta.com/2007/08/16/updated-rss-feed-for-this-blog/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 17:50:59 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/16/updated-rss-feed-for-this-blog/</guid>
		<description><![CDATA[I got tired of using FeedBurner, really. So I made a much more flexible and &#034;Complete&#034; integrated feed that includes posts on this blog, my photos on Flickr, my Status Changes on Facebook and Twitter. Please update your aggregator if you were using the old feed (which still works btw, but will keep having less [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I got tired of using FeedBurner, really. So I made <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=3N_Inh9M3BGojZTankartA&amp;_render=rss">a much more flexible and &#034;Complete&#034; integrated feed</a> that includes posts on this blog, my photos on Flickr, my Status Changes on Facebook and Twitter. Please update your aggregator if you were using the old feed (which still works btw, but will keep having less information in it).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/16/updated-rss-feed-for-this-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Live ID Web Authentication 1.0 SDK !</title>
		<link>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/</link>
		<comments>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 14:28:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[LiveID]]></category>
		<category><![CDATA[Passport]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/</guid>
		<description><![CDATA[Check this out: Windows Live ID Team has published on the web the SDK that lets you liveID (or &#034;passport&#034;)-enable your applications! http://msdn2.microsoft.com/en-us/library/bb676633.aspx There are even code samples in six different languages: C#, Java, PHP, Python, Ruby e Perl! You can download them from http://go.microsoft.com/fwlink/?LinkId=91761 Wow! Having time, it would be cool to write a [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Check this out:</p>
<p>Windows Live ID Team has published on the web the SDK that lets you liveID (or &#034;passport&#034;)-enable your applications!</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/bb676633.aspx">http://msdn2.microsoft.com/en-us/library/bb676633.aspx</a></p>
<p>There are even code samples in six different languages: C#, Java, PHP, Python, Ruby e Perl! You can download them from <a href="http://go.microsoft.com/fwlink/?LinkId=91761">http://go.microsoft.com/fwlink/?LinkId=91761</a></p>
<p>Wow! Having time, it would be cool to write a WordPress plugin using Passport authentication to authenticate/identify users that want to comment&#8230; mumble mumble&#8230;.. <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Interoperability. Wow.</p>
<p>More info at the Live ID starting Page: <a href="http://dev.live.com/blogs/liveid/archive/2006/05/18/8.aspx">http://dev.live.com/blogs/liveid/archive/2006/05/18/8.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/16/windows-live-id-web-authentication-10-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do developers tend to forget about people behind proxy servers ?</title>
		<link>http://www.muscetta.com/2007/08/13/why-do-developers-tend-to-forget-about-people-behind-proxy-servers/</link>
		<comments>http://www.muscetta.com/2007/08/13/why-do-developers-tend-to-forget-about-people-behind-proxy-servers/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 11:38:49 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Proxy]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/13/why-do-developers-tend-to-forget-about-people-behind-proxy-servers/</guid>
		<description><![CDATA[I know this is a very common issue. I keep finding way too many software that claim to interact with Web 2.0 sites or services, and connect here or there&#8230;. still forgetting one basic simple rule, that is: letting people use a proxy. Most programmers for some reasons just assume that since they are directly [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I know this is a very common issue.</p>
<p>I keep finding way too many software that claim to interact with Web 2.0 sites or services, and connect here or there&#8230;. still forgetting one basic simple rule, that is: letting people use a proxy.</p>
<p>Most programmers for some reasons just assume that since they are directly connected to the internet, everybody is. Which isn&#039;t always the case. Most companies have proxies and will only let you out to port 80 &#8211; by using their proxy.</p>
<p>&#8230;which in turn is one of the reasons why most applications now &#034;talk&#034; and tunnel whatever application protocol on top of HTTP&#8230; still a lot of softwares simply &#034;forget&#034; or don&#039;t care proving a simple checkbox &#034;use proxy&#034;, which will translate in two or three extra lines of code&#8230; three lines which I personally usually include in my projects, when I am not even a *developer*!! (but that might explain why I *think* of it&#8230; I come from a security and networking background <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>I thought of writing this post after having read <a href="http://geekswithblogs.net/technetbytes/archive/2007/08/11/114573.aspx">this post by Saqib Ullah</a>.</p>
<p>Anyway. I keep finding this thing over and over again. Both in simple, hobbyist, sample and/or in complex, big, expensive enterprise software. Last time I got pissed off about a piece of code missing this feature was some days ago when testing <a href="http://www.codeplex.com/FacebookToolkit">http://www.codeplex.com/FacebookToolkit</a>. The previous time was during Windows Vista beta-testing (I had found a similar issue in beta2, and had it fixed for RC1.)</p>
<p>Actually, I am being polite saying it is &#034;missing a feature&#034;. To be honest I think missing this &#034;feature&#034; would have to be considered a bug: every piece of software using HTTP *should* include the possibility to pass thorugh proxy (also, don&#039;t forget about  AUTHENTICATED proxies), or the purpose of using HTTP in the first place is defeated!!</p>
<p>Developers!!! You have to remember people ARE behind proxies !!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/13/why-do-developers-tend-to-forget-about-people-behind-proxy-servers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook API and WinForm experiment</title>
		<link>http://www.muscetta.com/2007/08/02/facebook-api-and-winform-experiment/</link>
		<comments>http://www.muscetta.com/2007/08/02/facebook-api-and-winform-experiment/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 14:24:26 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/02/facebook-api-and-winform-experiment/</guid>
		<description><![CDATA[While testing with the Facebook API, I started creating a WinForm using the Facebook Toolkit. What I had in mind was a simple program that would run on my PC, maybe minimized in the system tray, that would let me update my status in a click, thorugh the day, without having to log on to [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>While testing with the <a href="http://developers.facebook.com/documentation.php">Facebook API</a>, I started creating a WinForm using the <a href="http://www.codeplex.com/FacebookToolkit">Facebook Toolkit</a>.</p>
<p>What I had in mind was a simple program that would run on my PC, maybe minimized in the system tray, that would let me <a href="http://www.facebook.com/statusupdates/?ref=tn">update my status</a> in a click, thorugh the day, without having to log on to the website. Most of the day I am busy working, and I don&#039;t really have time to go surf and check Facebook&#8230; but I like the possibility for people to hear how I am doing. Changing the status would keep them up to date, and would keep my profile current.</p>
<p>As I figured out afterwards, their API does not yet let you change your status yet.</p>
<p><a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=51b24ec1-ec28-4526-b7fe-9d1e6c7fc802">There are other people asking for this possibility</a>&#8230; but then I went further searching on the Internet, and I found this blog: <a href="http://www.nexdot.net/blog/2007/04/20/updating-facebook-status-using-php/">http://www.nexdot.net/blog/2007/04/20/updating-facebook-status-using-php/</a>. </p>
<p>I just hacked together a small WinForm written in C# that reimplements this idea.</p>
<p><a href="http://www.flickr.com/photos/dani3l3/986527032/" title="Photo Sharing"><img width="500" src="http://farm2.static.flickr.com/1050/986527032_6dd64a6f5a.jpg" alt="Facebook StateTray" height="66" /></a></p>
<p>I indeed would like to thank Christian for the idea, and my friend and colleague Pierluigi for his precious help with the regular expressions <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>At the moment it has terrible things such as hardcoded passwords in it, but as soon as I will have time to polish the code a bit, I will post it.</p>
<p>One more thing I would like to do with it is turning it from a standalone application into a <a href="http://msdn2.microsoft.com/en-us/library/aa905655.aspx">Live Messenger Add-In</a>, so that it synchronizes my messenger status with the one of Facebook. When I will have time for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/02/facebook-api-and-winform-experiment/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The &quot;WOW&quot; starts *NOW*!</title>
		<link>http://www.muscetta.com/2007/07/27/the-wow-starts-now/</link>
		<comments>http://www.muscetta.com/2007/07/27/the-wow-starts-now/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 05:21:48 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/07/27/the-wow-starts-now/</guid>
		<description><![CDATA[I&#039;m speechless. Read it on your own: http://www.microsoft.com/opensource/ . Wow.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I&#039;m speechless. Read it on your own: <a href="http://www.microsoft.com/opensource/">http://www.microsoft.com/opensource/</a> . Wow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/07/27/the-wow-starts-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook development</title>
		<link>http://www.muscetta.com/2007/07/26/facebook-development/</link>
		<comments>http://www.muscetta.com/2007/07/26/facebook-development/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 13:30:56 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[popfly]]></category>
		<category><![CDATA[Risk]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/07/26/facebook-development/</guid>
		<description><![CDATA[I have been quite hooked into Facebook for the last couple of days, figuring out what it can and cannot do. It can do a lot. The possibility to inject code and brand new application into it is absolutely awesome. PopFly lets you create mashups and even custom blocks, and I liked that too. But [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I have been quite hooked into <a href="http://www.facebook.com">Facebook</a> for the last couple of days, figuring out what it can and cannot do. It can do a lot. The possibility to inject code and brand new application into it is absolutely awesome.</p>
<p><a href="http://www.popfly.ms">PopFly</a> lets you create mashups and even custom blocks, and I liked that too. But you have to use fancy-shiny <a href="http://silverlight.net/">Silverlight</a> (which is very cool indeed, but probably not *always* necesary) and you can only create blocks using Javascript. Sure, as someone as already written, <a href="http://www.paulgraham.com/web20.html">the meaning of AJAX is &#034;javascript now works&#034;.</a> I can understand (even if I don&#039;t know them for sure) the reasons behind certain choices. But I find it limiting. Maybe it is because I don&#039;t like Javascript. It must be it. </p>
<p>Facebook, instead, empowers you to inject code into their social networking framework. Any code. In whatever language you like. They started it in PHP, but you can plug-in whatever you like: Java, Ruby, Perl&#8230;. you can even have your application running on your own server, still providing a seamless experience inside of facebook. This opens up to millions of possibilities, and I got fascinated by that.</p>
<p>At the same time, the paranoid part of myself has been thinking to the security implications of it. This open platform is cool, but it also sounds like a framework for cross-site-scripting (XSS) attacks. Sure, you can &#034;report&#034; an application made by a third party that does something weird&#8230; but who will really notice if all that happens under the hood is that your cookies get stolen (and someone accesses your bank account) ? Will you figure it out it has happenend because <a href="http://en.wikipedia.org/wiki/Dancing_pigs">you wanted to see the &#034;dancing pigs&#034;</a> loaded in your profile ? Or will you figure it out at all ?</p>
<p>This said, I set aside my fear for a while and I delved into coding. What I did learn in the last couple of years, having slowly moved away from security engagements, is to relax. When I was working costantly with security I was a lot more paranoid. Now I case much less, and I live a lot more.</p>
<p>So I developed a couple of quick and simple apps running from this very server into Facebook, and I started using thePHP5 library they provide, so to be able to follow the examples first and figure out how it was working.</p>
<p>Now I also want to take a look at the <a href="http://www.nikhilk.net/FacebookNET.aspx">.NET library for facebook </a>when I have time. It sounds cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/07/26/facebook-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook</title>
		<link>http://www.muscetta.com/2007/07/23/facebook/</link>
		<comments>http://www.muscetta.com/2007/07/23/facebook/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 20:55:32 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/07/23/facebook/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } Facebook_Daniele, uploaded by Daniele Muscetta on Flickr. Yet another social networking. I am on there too, now. http://www.facebook.com/p/Daniele_Muscetta/742258687 Ah, and by the way, I really find it incredible that every time [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<style type="text/css"> .flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } </style>
<p class="flickr-frame"> 	<a href="http://www.flickr.com/photos/dani3l3/845705282/" title="photo sharing"><img src="http://farm2.static.flickr.com/1052/845705282_9df1428a68.jpg" class="flickr-photo" alt="Facebook_Daniele" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/845705282/">Facebook_Daniele</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment"> 	Yet another social networking. I am on there too, now.<br />
<a href="http://www.facebook.com/p/Daniele_Muscetta/742258687">http://www.facebook.com/p/Daniele_Muscetta/742258687</a></p>
<p>Ah, and by the way, I really find it incredible that every time I invite some people to a new social networking site (it has happened for all of them), it happens that  some (many) of the persons I have invited reply to me or call me asking me &#034;is this really sent by you ?&#034; &#034;it looked like spam&#034; &#034;what is this thing&#034; and the like.</p>
<p>Come on, guys, we are in year 2007, you still don&#039;t know what social networking is&#8230; especially if you work in IT you are sort of a dinosaur, you know?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/07/23/facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IronPython and Visual Studio Shell</title>
		<link>http://www.muscetta.com/2007/06/08/ironpython-and-visual-studio-shell/</link>
		<comments>http://www.muscetta.com/2007/06/08/ironpython-and-visual-studio-shell/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 17:47:03 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/06/08/ironpython-and-visual-studio-shell/</guid>
		<description><![CDATA[I read on the IronPython Mailing List about this cool integration with Visual Studio Shell! Also, further in the same thread, you can find out that the current CTP of ASP.NET (ASP.NET Futures) also includes ironPython integration. Look at this:<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://lists.ironpython.com/pipermail/users-ironpython.com/2007-June/005045.html">I read on the IronPython Mailing List about this cool integration with Visual Studio Shell</a>! Also, further in the same thread, you can find out that <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9323777E-FE78-430C-AD92-D5BE5B5EAD98&amp;displaylang=en">the current CTP of ASP.NET (ASP.NET Futures) also includes ironPython integration</a>. Look at this:</p>
<p><a href="http://msdn2.microsoft.com/en-us/vstudio/bb510103.vss_IronPython_large.jpg" title="IronPython running in VS Shell" rel="lightbox[188]"><img src="http://farm2.static.flickr.com/1213/536136720_869f05cb29.jpg" alt="IronPython running in VS Shell" height="389" width="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/06/08/ironpython-and-visual-studio-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where did I leave that old JavaScript book ?</title>
		<link>http://www.muscetta.com/2007/06/05/where-did-i-leave-that-old-javascript-book/</link>
		<comments>http://www.muscetta.com/2007/06/05/where-did-i-leave-that-old-javascript-book/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 19:51:13 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/06/05/where-did-i-leave-that-old-javascript-book/</guid>
		<description><![CDATA[When testing out PopFly, I figured out I *really* need to know JavaScript better than I do, in order to build &#034;blocks&#034;. And I don&#039;t just need it for PopFly, of course, but in general -&#160;because these days it is ubiquitous, and it is being used so much on the Web. One more thing on&#160;my [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>When testing out <a href="http://www.popfly.ms/">PopFly</a>, I figured out I *really* need to know JavaScript better than I do, in order to build &#034;blocks&#034;. And I don&#039;t just need it for PopFly, of course, but in general -&nbsp;because these days it is ubiquitous, and it is being used so much on the Web. One more thing on&nbsp;my to-do list. <a href="http://www.codinghorror.com/blog/archives/000857.html">Jeff seems to agree</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/06/05/where-did-i-leave-that-old-javascript-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This blog in C#</title>
		<link>http://www.muscetta.com/2007/05/30/this-blog-in-c/</link>
		<comments>http://www.muscetta.com/2007/05/30/this-blog-in-c/#comments</comments>
		<pubDate>Wed, 30 May 2007 10:18:21 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/05/30/this-blog-in-c/</guid>
		<description><![CDATA[I have been busy trying to write a new frontend for this blog that uses .Net. I already blogged about it here. In the last couple of weeks I have been adding stuff &#8211; permalinks using mod_rewrite, I finally show the comments properly, I have added categories and category archives (as in http://www.muscetta.net/dotnet/tag/coding). There is [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I have been busy trying to write <a href="http://www.muscetta.net/dotnet/Blog.aspx">a new frontend for this blog that uses .Net</a>. I already blogged about it <a href="http://www.muscetta.com/2007/05/01/wordpressnet/">here</a>. In the last couple of weeks I have been adding stuff &#8211; permalinks using mod_rewrite, I finally show the comments properly, I have added categories and category archives (as in <a href="http://www.muscetta.net/dotnet/tag/coding">http://www.muscetta.net/dotnet/tag/coding</a>). There is even an <a href="http://www.muscetta.net/dotnet/Feed.aspx">RSS Feed</a>.</p>
<p>The layout is still crap, but I sort of like it being so light weight, so that is not on my priority list so far. Moreover, I am a crap designer.</p>
<p>Before that, tough, I still have to add important functionalities like the possibility to POST comments (which needs a new CAPTCHA, etc, so it will take me a while), and I am having issues with text encoding (it does not show the accented characters properly, yet).</p>
<p>But I am having fun doing it.</p>
<p>[Edit of December 2009 - I killed the above experiment. I had fun doing it, but there is not time for all, it needs a lot of work to keep it running/update it with every wordpress update, and mod_mono is wasting too many resources on the server.]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/05/30/this-blog-in-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microsoft Popfly</title>
		<link>http://www.muscetta.com/2007/05/19/microsoft-popfly/</link>
		<comments>http://www.muscetta.com/2007/05/19/microsoft-popfly/#comments</comments>
		<pubDate>Sat, 19 May 2007 07:26:24 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[popfly]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/05/19/microsoft-popfly/</guid>
		<description><![CDATA[You can build complex web-mashups in minutes. Read on an interesting review at programmableweb.com and, obviously, more info at the official site http://www.popfly.ms<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.popfly.ms" title="Microsoft Popfly"><img src="http://farm1.static.flickr.com/204/504146344_4b0ad07f51.jpg" alt="Microsoft Popfly" height="375" width="500" /></a></p>
<p>You can build complex web-mashups in minutes.</p>
<p>Read on <a href="http://blog.programmableweb.com/2007/05/19/microsoft-popfly/">an interesting review at programmableweb.com</a> and, obviously, more info at the <a href="http://www.popfly.ms">official site http://www.popfly.ms</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/05/19/microsoft-popfly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress.Net</title>
		<link>http://www.muscetta.com/2007/05/01/wordpressnet/</link>
		<comments>http://www.muscetta.com/2007/05/01/wordpressnet/#comments</comments>
		<pubDate>Tue, 01 May 2007 08:14:41 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/05/01/wordpressnet/</guid>
		<description><![CDATA[WordPress.Net, uploaded by Daniele Muscetta on Flickr. It has been quite a while that I wanted to experiment a bit more with ASP.Net but I don&#039;t have a windows machine on the internet. Not one that performs enough anyway. My server runs linux. I have had mono running on it for a while, but its [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><!-- .flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } --></p>
<div class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/479584212/"><img class="flickr-photo" src="http://farm1.static.flickr.com/222/479584212_c5acb5300c.jpg" alt="WordPress.Net" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/479584212/">WordPress.Net</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
</div>
<p class="flickr-yourcomment">It has been quite a while that I wanted to experiment a bit more with <a href="http://www.asp.net">ASP.Net</a> but I don&#039;t have a windows machine on the internet. Not one that performs enough anyway. My server runs linux. I have had <a href="http://www.mono-project.com">mono</a> running on it for a while, but its support was not complete with the <a href="http://www.debian.org/releases/sarge">old release of Debian</a>, so part of my mono and mod_mono installation were a custom compile and they were breaking from time to time, each time some library got updated. So I did run a &#034;Hello World&#034; page with it, but nothing more, because it was a bit of a mess to mantain and, moreover, because I had not yet figured out how to have it connect with mysql instead than with MS SQL Server.<br />
Also, I did not have any real project or idea to implement in my mind.</p>
<p>Now that I have upgraded to <a href="http://www.debian.org/releases/etch">Debian Etch</a>, mono support seems to be much more out-of-the-box and stable on this release. I also got an idea of what to do with it, so I finally gave it a try.</p>
<p>As a starter, I am trying to re-publish my blog, historically running at <a href="http://www.muscetta.com">www.muscetta.com</a>, on my other <a href="http://www.muscetta.net">muscetta.NET</a> domain (it makes sense to use a .NET domain, right?). But this is not a new site, it is a republish of the same content, but done using C# &#8211; just pointing at the same wordpress&#039; mysql database. Connection to MySQL is done with <a href="http://dev.mysql.com/doc/refman/5.1/en/connector-net-ref-mysqlclient.html">MySql.Data (the ADO.Net driver for MySQL)</a>.</p>
<p>I still need to implement a lot of things/features, such as comment posting (you can only read them now), some layout/styling/framing to make it look nicer, some sidebar/blogroll, feeds, and a many other things. I am not aiming at a complete rewrite (for example I won&#039;t do an administrative interface or a webservice so far), but just a republish/frontend to the visitors.<br />
I don&#039;t know when I will have time to continue writing it, but all in all I am glad it works so far, and I had fun doing it.</p>
<p>Writing ASP.Net for mono on linux in the absence of Frontpage server extentions and WebDAV and the remote debugger is proving slightly more challenging than just dragging and dropping controls in Visual Studio and let it do a lot of work with you. You have to write the code, upload it, and see if it works. No debugging, no intellisense. Just the hard old way of trial and error, which makes development slower, but you learn a hell of a lot more that way. Of course you need  to keep the <a href="http://msdn2.microsoft.com/en-us/Library">MSDN library</a> handly <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>[Edit of December 2009 - I killed the above experiment. I had fun doing it, but there is not time for all, it needs a lot of work to keep it running/update it with every wordpress update, and mod_mono is wasting too many resources on the server.]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/05/01/wordpressnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everybody loves T-Shirts, Etch.</title>
		<link>http://www.muscetta.com/2007/04/14/everybody-loves-t-shirts-etch/</link>
		<comments>http://www.muscetta.com/2007/04/14/everybody-loves-t-shirts-etch/#comments</comments>
		<pubDate>Sat, 14 Apr 2007 18:29:22 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/04/14/everybody-loves-t-shirts-etch/</guid>
		<description><![CDATA[An old photo of Joshua in his Debian T-Shirt has been used (with permission) by Holger Levsen in his presentation of http://www.debian-community.org/ given at FOSDEM 2007. You can check out the slides here: http://layer-acht.org/slides/20070225-debian-community.org-prelaunch.pdf and download a video here: http://meetings-archive.debian.net/pub/debian-meetings/2007/fosdem/ And yes, I feel very &#034;debiany&#034; today. In fact I just finished upgrading my server [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>An old photo of Joshua in his Debian T-Shirt has been used (with permission) by Holger Levsen in his presentation of <a href="http://www.debian-community.org/">http://www.debian-community.org/</a> given at FOSDEM 2007.<br />
You can check out the slides here: <a href="http://layer-acht.org/slides/20070225-debian-community.org-prelaunch.pdf">http://layer-acht.org/slides/20070225-debian-community.org-prelaunch.pdf</a><br />
and download a video here: <a href="http://meetings-archive.debian.net/pub/debian-meetings/2007/fosdem/">http://meetings-archive.debian.net/pub/debian-meetings/2007/fosdem/</a></p>
<p>And yes, I feel very &#034;debiany&#034; today. In fact I just finished upgrading my server from <a href="http://www.debian.org/releases/sarge/">Sarge</a> to <a href="http://www.debian.org/releases/etch/">Etch</a> and it went very smoothly, even if I had to reconfigure / migrate some settings &#8211; for example moving all the virtual server configuration from Apache 1.3 to 2.x &#8230; but it was about time for me to move my ass off 1.3! Among other things I am quite glad now I can use mod_mono and have it update with apt-get, instead than having my own compiled version with all sort of broken dependencies&#8230; also, it performs better &#8211; faster, and takes up the same amount of resources, which I would not have believed and I was in fact slightly concerned about. Nothing to be worried about, it turns out.</p>
<p>Some other guy was pointing me out today all the other improvements in the desktop-feature-space. I would not know, I am a runlevel-2 guy when it comes to linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/04/14/everybody-loves-t-shirts-etch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MOM 2005 Alerts to RSS feed</title>
		<link>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/</link>
		<comments>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 18:07:00 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/</guid>
		<description><![CDATA[I am an RSS Addict, you know that.So I wanted an RSS Feed to show MOM Alerts. I have been thinking of it for a while, last year (or was it the year before?). It seemed like a logical thing to me: alerts are created (and can be resolved &#8211; that is, expire), generally get [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I am an RSS Addict, you know that.So I wanted an RSS Feed to show MOM Alerts. I have been thinking of it for a while, last year (or was it the year before?).<br />
It seemed like a logical thing to me: alerts are created (and can be resolved &#8211; that is, expire), generally get sorted by the date and the time when they have been created, the look pretty much like a list. Also, many people like to receive mail notification when new alerts are generated.<br />
So, if the alert can be sent to you (push), you could also get to it(pull).<br />
Pretty much the same deal with receiving a mail or reading a newsgroup, or syndicating a feed.</p>
<p>At the time I looked around but it seemed like no one had something like this already done.<br />
So I wrote a very simple RSS feed generator for MOM Alerts.<br />
I did it quite an amount of time ago, just as an exercise.<br />
Then, after a while, I figured out that the <a href="http://www.microsoft.com/technet/mom/2005/downloads/tools/reskit.mspx">MOM 2005 Resource Kit</a> had been updated to include such a utility!</p>
<p>Wow, I thought, they finally added what I have been thinking for a while. Might it be because I mentioned it on an private Mailing list ? Maybe. Maybe not. Who cares. Of course, if it is included in the resource kit it must be way cooler than the one I made, I though.<br />
I really thought something along these lines, but never actually had the time to try it out.<br />
I think I just sort of assumed it must have been cooler than the one I made, since it was part of an official package, while I am not a developer. So I basically forgot about the one I wrote, dismissing it as being crap without looking too much into it anymore.<br />
Until today.<br />
Today I actually tried to use the alert to RSS tool included in the resource kit, because a customer asked if there was any other way to get notified, other than receiving notification or using the console (or the console notifier).<br />
So I looked at the resource kit&#039;s Alert-to-RSS Utility.<br />
My experience with it:<br />
1) it is provided in source code form &#8211; which is ok if it was ALSO provided as source. Instead it is ONLY provided as source, and most admins don&#039;t have Visual Studio installed or don&#039;t know how to compile from the command line;<br />
2) Even when they wanted to compile it, it includes a bug which makes it impossible to compile &#8211; solution <a href="http://groups.google.it/group/microsoft.public.mom/browse_thread/thread/79257d4472479fe0/2c21222bb33cb163?lnk=st&#038;q=MOM+Alert+RSS&#038;rnum=1#2c21222bb33cb163">in this newsgroup discussion</a>;<br />
3) if you don&#039;t want to mess about with code since you are using a resource Kit tool (as opposed to something present in the SDK) you can even get it already compiled by someone from somewhere on the net, but that choice is about trust.</p>
<p>Anyway, one way or another, after it is finally set up&#8230;. surprise surprise!!!<br />
It does NOT show a LIST of alerts (as I was expecting).<br />
It shows a summary of how many alerts you have. basically it is an RSS feed made of a single item, and this single item tells you how many alerts you have. What is one supposed to do with such a SUMMARY? IMHO, it is useless the way it is. It is even worse than one of those feed that only contains the excerpt of the article, rather than the full article.<br />
Knowing that I have 7 critical errors and 5 warning without actually knowing ANYTHING of them is pointless.<br />
It might be useful for a manager, but not for a sysadmin, at least.</p>
<p>So I thought my version, even if coded crap, might be useful to someone because it gives you a list of alerts (those that are not resolved) and each one of them tells you the description of the alert, the machine tat generated it, and includes links to the actual alert in the web console, so you can click, go there, and start troubleshooting from within your aggregator!<br />
My code does this. Anyway, since I am a crap coder, since I wrote it in only fifteen minutes more than a year ago, and since I don&#039;t have time to fix it and make it nicer&#8230; it has several issues, and could be improved in a million ways, in particular for the following aspects:</p>
<ol>
<li>is currently depends on the SDK Database views &#8211; it could use the MOM Server API&#039;s or the webservice instead;</li>
<li>it uses SQL Security to connect to the DB &#8211; by default MOM does not allow this &#8211; it is suggested for the SQL instance hosting &#034;OnePoint&#034; to only use Windows Integrated Authentication.. so to make my code work you have to switch back to Mixed mode, and create a login in SQL that has permission to read the database. This is due to the fact that I&#039;ve coded this in five minutes and I don&#039;t know how to use delegation &#8211; if I was able to use delegation, I would&#8230; so that the end user accessing IIS would be the one connecting to the DB. If anybody wants to teach me how to do this, I will be most grateful.</li>
<li>it could accept parameters as URL variables, so to filter out only events for a specific machine, or a specific resolution state, etc etc</li>
<li>At present it uses <a href="http://rss-net.sourceforge.net/">RSS.Net</a> to generate the feed. It could made independent from it, but I don&#039;t really see why, and I quite like that library.</li>
</ol>
<p>The code is just an ASP.Net page and its codebehind, no need to compile, but of course you need to change a couple of lines to match your webconsole address.<br />
Also, you need to get <a href="http://rss-net.sourceforge.net/">RSS.NET</a> and copy its library (RSS.Net.dll) in the /bin subfolder of the website directory where you place the RSSFeed generator page. I see that I wrote this with version 0.86, but any version should do, really.</p>
<p>Here is what it will look like:</p>
<p><a title="Photo Sharing" href="http://www.flickr.com/photo_zoom.gne?id=430556283&#038;size=o"><img width="500" height="375" alt="AlertToRSS" src="http://farm1.static.flickr.com/173/430556283_6eb615a080.jpg" /></a></p>
<p>And here&#039;s the code of the page (two files):</p>
<p><strong>Default.aspx</strong></p>
<p>&lt;%@ Page Language=&#034;C#&#034; AutoEventWireup=&#034;true&#034; CodeFile=&#034;Default.aspx.cs&#034; Inherits=&#034;_Default&#034; %&gt;</p>
<p><strong>Default.aspx.cs</strong></p>
<p>using System;<br />
using System.Data;<br />
using System.Data.SqlClient;<br />
using System.Configuration;<br />
using System.Web;<br />
using Rss;</p>
<p>public partial class _Default : System.Web.UI.Page<br />
{<br />
protected void Page_Load(object sender, EventArgs e)<br />
{<br />
string webconsoleaddress = &#034;<a href="http://192.168.0.222:1272/AlertDetail.aspx?v=a&#038;sid=">http://192.168.0.222:1272/AlertDetail.aspx?v=a&#038;sid=&#034;</a> // must change to match your address</p>
<p>// Inizializza il Feed<br />
RssChannel rssChannel = new RssChannel();<br />
rssChannel.Title = &#034;MOM Alerts&#034;<br />
rssChannel.PubDate = DateTime.Now;<br />
rssChannel.Link = new Uri(&#034;<a href="http://192.168.0.222:1272/rss/">http://192.168.0.222:1272/rss/&#034;);</a> // must change to match your address<br />
rssChannel.LastBuildDate = DateTime.Now;<br />
rssChannel.Description = &#034;Contains the latest Alerts&#034;</p>
<p>// query &#8211; you might want to change the severity<br />
string mySelectQuery = &#034;SELECT ComputerName, Name, Severity, TimeRaised, RepeatCount, GUID FROM dbo.SDKAlertView WHERE Severity &gt; 10 AND ResolutionState &lt; 255&#034;</p>
<p>// SQL Connection – must change SQL server, user name and password<br />
SqlConnection conn = new SqlConnection(&#034;Data Source=192.168.0.222;Initial Catalog=OnePoint;User ID=rss;Password=rss&#034;);<br />
SqlDataReader rdr = null;</p>
<p>try<br />
{<br />
conn.Open();<br />
SqlCommand cmd = new SqlCommand(mySelectQuery, conn);<br />
rdr = cmd.ExecuteReader();<br />
while (rdr.Read())<br />
{<br />
RssItem rssItem = new RssItem();<br />
string titleField = rdr[1].ToString();<br />
rssItem.Title = titleField;<br />
string url = webconsoleaddress + rdr[5];<br />
rssItem.Link = new Uri(url.ToString());<br />
string description = &#034;&lt;![CDATA[ &lt;p&gt;&lt;a xhref=\"" + rssItem.Link + "\"&gt;" + rdr[1] + &#034; &lt;/a&gt;&lt;/p&gt;&lt;br&gt;&#034; + &#034;&lt;br&gt;Computer: &#034; + rdr[0] + &#034;&lt;br&gt;Repeat Count: &#034; + rdr[4] + &#034;&lt;BR&gt;Original ALert Time: &#034; + rdr[3];<br />
rssItem.Description = description;<br />
rssChannel.Items.Add(rssItem);<br />
}</p>
<p>// Finalizza il feed<br />
RssFeed rssFeed = new RssFeed();<br />
rssFeed.Channels.Add(rssChannel);<br />
Response.ContentType = &#034;text/xml&#034;<br />
Response.ExpiresAbsolute = DateTime.MinValue;<br />
rssFeed.Write(Response.OutputStream);<br />
}<br />
finally<br />
{<br />
if (rdr != null)<br />
{<br />
rdr.Close();<br />
}</p>
<p>if (conn != null)<br />
{<br />
conn.Close();<br />
}<br />
}<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Out-Flickr!!</title>
		<link>http://www.muscetta.com/2007/01/10/out-flickr/</link>
		<comments>http://www.muscetta.com/2007/01/10/out-flickr/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 15:02:28 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/01/10/out-flickr/</guid>
		<description><![CDATA[This is soooo cool! An &#034;Out-Flickr&#034; script for PowerShell: http://abhishek225.spaces.live.com/blog/cns!13469C7B7CE6E911!285.entry<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>This is soooo cool! An &#034;Out-Flickr&#034; script for PowerShell:</p>
<p><a href="http://abhishek225.spaces.live.com/blog/cns!13469C7B7CE6E911!285.entry">http://abhishek225.spaces.live.com/blog/cns!13469C7B7CE6E911!285.entry</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/01/10/out-flickr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgraded to WordPress 2</title>
		<link>http://www.muscetta.com/2006/11/20/upgraded-to-wordpress-2/</link>
		<comments>http://www.muscetta.com/2006/11/20/upgraded-to-wordpress-2/#comments</comments>
		<pubDate>Mon, 20 Nov 2006 20:49:49 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2006/11/20/upgraded-to-wordpress-2/</guid>
		<description><![CDATA[It was a snap. I thought it would be much worse. My bad. It was very easy. As soon as I have some more time I need to try with another blog I manage &#8211; now that one has several plugins and several hacks I did to the code myself and it might result trickier&#8230;. [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>It was a snap. I thought it would be much worse. My bad. It was very easy.<br />
As soon as I have some more time I need to try with another blog I manage &#8211; now that one has several plugins and several hacks I did to the code myself and it might result trickier&#8230;. let&#039;s see. Maybe I am worrying for nothing (it would not be unusual).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/11/20/upgraded-to-wordpress-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Email talk on Port25</title>
		<link>http://www.muscetta.com/2006/11/20/email-talk-on-port25/</link>
		<comments>http://www.muscetta.com/2006/11/20/email-talk-on-port25/#comments</comments>
		<pubDate>Mon, 20 Nov 2006 12:06:13 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2006/11/20/email-talk-on-port25/</guid>
		<description><![CDATA[Interesting interview to Eric Allman on Port25. He talks of the future of email, of SenderID, of sendmail&#8230; of openness and interoperation. Very interesting. With the change in licensing of SenderID, let&#039;s how quick this gets picked up by Wietse Venema&#8230;<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://port25.technet.com/archive/2006/11/17/sendmail-sender-id-and-25-years-of-email-sam-interviews-eric-allman.aspx">Interesting interview to Eric Allman on Port25</a>.<br />
He talks of the future of email, of SenderID, of sendmail&#8230; of openness and interoperation.<br />
Very interesting.<br />
With the change in licensing of SenderID, <a href="http://www.imc.org/ietf-mxcomp/mail-archive/msg04103.html">let&#039;s how quick this gets picked up by Wietse Venema</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/11/20/email-talk-on-port25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft-Novell deal</title>
		<link>http://www.muscetta.com/2006/11/05/microsoft-novell-deal/</link>
		<comments>http://www.muscetta.com/2006/11/05/microsoft-novell-deal/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 08:39:24 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=148</guid>
		<description><![CDATA[[aka: Linux is less Free and more O$$ every day] News of this Microsoft-Novell deal are all over the web. I&#039;d like to comment by cross-posting: this post in particular hides a pearl of wisdom: &#034;[...] But what does this mean to the end user?&#160; Probably not very much.&#160; SLED&#160;aficionados will continue to praise Novell [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>[aka: Linux is less Free and more O$$ every day]</p>
<p><a href="http://blogs.zdnet.com/BTL/?p=3878">News of</a> <a href="http://community.zdnet.co.uk/blog/0,1000000567,10004431o-2000331777b,00.htm">this Microsoft-Novell</a> <a href="http://news.com.com/2061-10795_3-6132156.html">deal are</a> <a href="http://www.internetfinancialnews.com/financialblogtalk/news/ifn-6-20061103MicrosoftandNovellViolatetheGPL.html">all over the web</a>.</p>
<p>I&#039;d like to comment by cross-posting: <a href="http://blogs.zdnet.com/BTL/?p=3878">this post</a> in particular hides a pearl of wisdom:</p>
<p><em>&#034;[...] But what does this mean to the end user?&nbsp; Probably not very much.&nbsp; </em></p>
<p><em>SLED&nbsp;aficionados will continue to praise Novell while espousing the virtues of free Linux&nbsp;– pretending all the while&nbsp;that Novell is not just as anxious to turn a profit on enterprise versions of their Linux products as Microsoft is to push its Windows wares.&nbsp; </em> </p>
<p><em>Others in the Linux camp will criticize Novell as a &#039;turncoat&#039; to the Linux movement — never mind that everyone&nbsp;pushing their&nbsp;own Linux distribution is desperately trying to make money off of the open source software movement [...]&#034;</em>  </p>
<p>But this is something you could see a long time ago. I even fell in the trap at the beginning <a href="http://www.muscetta.com/Novell_review.htm">when I started looking at Novell&#039;s move in the Linux and Open Source market</a>&#8230;. but <a href="http://www.zone-h.org/content/view/3512/31/">they did not fool me for long</a>&nbsp;. In the second article&nbsp;I wrote: </p>
<p><em>&#034;[...] There are people who might not like this. I even understand it. An I am not referring to Microsoft. I am referring to people who love and advocate free software. This behavior does not look fair. It looks like the competition to Microsoft is trying to use all possible weapons to regain market, using (and abusing) open source software they did not create in the first place. This might be true, but to those who might not agree, being idealistic about linux&#8230; I have to say that unfortunately the dream of &#039;complete freedom&#039; of software has already vanished. Haven&#039;t you noticed it already ? It would be great, in theory, but talking of IT is rather obviously talking of a market, rather than of just a hobby. And a market is where companies play. After all, RedHat is charging money for its up2date, while WindowsUpdate is still for free&#8230; &#8230;you might say that other distributions don&#039;t charge people for the updates&#8230; but for how long is it really going to last? Companies have stepped in, and they are going to stay. I am not trying in any way to defend their position. I am just making an analysis of this phenomenon. [...]&#034;</em></p>
<p>And that was already three years ago.</p>
<p><a href="http://www.beppegrillo.it/eng/2006/10/adopt_a_penguin.html">Still you get people insisting on free software, and how companies should use it to stop paying Microsoft</a>. Yeah, right. And to start paying IBM or Novell. They&#039;ll always pay someone anyway.</p>
<p>I stepped out of the dream and started working at Microsoft when I realized this.</p>
<p>I also still use FREE-OSS (like Debian or Gentoo Linux Distros) for myself. But companies can&#039;t really depend on those. Their mentality requires them to pay someone to do things. And this is not that terrible. It actually keeps the market going and it gives me a job after all. Why should I despise it ?</p>
<p>It&#039;s a shame that people don&#039;t see things in advance, they sometimes are even hard to figure them out when they are already old. Some other people instead do look around and see things when they are preparing to happen. They are probably those that keep their eye open. Even if not directly related to open source,&nbsp;<a href="http://blogs.msdn.com/roberdan/archive/2006/10/07/Anche-se-mi-pu_2600_ograve_3B00_-far-piacere_2C00_-son-stufo-di-sentirmi-chiamare-_2600_quot_3B00_Visionario_2600_quot_3B00_-_2800_Roberdan_2900_.aspx">Roberdan wrote this concept in Italian here</a>:</p>
<p><em>&#034;[...] ma perchè dicono che ho una visione? perchè sembra che io sappia esattamente come andranno le cose, che veda quello che accadrà tra 1 mese, tra 1 anno o tra 10 anni. Chiaramente dal punto di vista tecnologico, ma anche organizzativo. Avrò quindi poteri soprannaturali?? Sarò un fenomeno paranormale come Alberto Sordi? (e quindi riuscirò a monetizzare questa facoltà mettendomi a fare il santone? <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#8230;.o SEMPLICEMENTE&#8230; </em></p>
<p><em>Semplicemente ho gli occhi aperti? una bocca e due orecchie per cui ascolto il doppio di quanto parlo? Un istinto non ancora represso e ingabbiato nei meandri della moderna società del lavoro? Secondo me si. </em> </p>
<p><em>Volete essere dei visionari? Aprite gli occhi, non fermatevi a guardare la goccia che cade dal vostro naso, non arrendetevi all&#039;evidenza. Scavate. Se non capite fate domande. Se avete dubbi confrontatevi, SE VOLETE CAMBIARE QUALCOSA CAMBIATELO [...]&#034;</em>  </p>
<p>It&#039;s a shame it is not written in English, but &#8211; hey, he was probably referring to an Italian audience. I love Italy, but Italian readers should really move their asses and learn english. He probably thinks different so he addresses them in writing in Italian&#8230; as of me, I just don&#039;t care anymore (I have probably never&nbsp;done) about those little italians who can&#039;t read english. Those who can&#039;t&nbsp;read my posts in english are probably also the same people that need to be spoon-fed and told everything, those who can&#039;t figure it out themselves. And when they can&#039;t figure it out themselves, that usually also means they take themselves too seriously&#8230; so why bother ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/11/05/microsoft-novell-deal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Capsule</title>
		<link>http://www.muscetta.com/2006/10/12/time-capsule/</link>
		<comments>http://www.muscetta.com/2006/10/12/time-capsule/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 07:26:15 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2006/10/12/time-capsule/</guid>
		<description><![CDATA[Yahoo has done it again. Yet another cool photographic site: Time Capsule. They show every day that they really GET the community thing. Thumbs up for them. On a side note, I honestly ignore why do you need to UPLOAD photos there and you can&#039;t just LINK or REFERENCE photos you&#039;ve already uploaded on Flickr [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Yahoo has done it again. Yet another cool photographic site: <a href="http://timecapsule.yahoo.com/capsule.php">Time Capsule</a>.<br />
They show every day that they really GET the community thing. Thumbs up for them.</p>
<p>On a side note, I honestly ignore why do you need to UPLOAD photos there and you can&#039;t just LINK or REFERENCE photos you&#039;ve already uploaded on Flickr (isn&#039;t it a site they bought ?). So I don&#039;t see the effort in any INTEGRATION here. I don&#039;t get why. If I had a photo platform like Flickr I would use its Web API to let registered users just &#034;PASS OVER&#034; some pictures from one site to the other.</p>
<p>But, hey&#8230;. regardless&#8230;..it looks really COOL. It really does. More cool than actually USEFUL (it reminds me of <a href="http://www.securityfocus.com/columnists/159">Intrusion Detection Systems</a>&#8230; but I digress), but that&#039;s how this amount of community things are. It&#039;s not useful for your business, but it is good for your heart.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/10/12/time-capsule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google has pissed me off this week!</title>
		<link>http://www.muscetta.com/2006/10/07/google-has-pissed-me-off-this-week/</link>
		<comments>http://www.muscetta.com/2006/10/07/google-has-pissed-me-off-this-week/#comments</comments>
		<pubDate>Sat, 07 Oct 2006 08:05:16 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Risk]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=142</guid>
		<description><![CDATA[Now I pretty much liked GMail and Google in general. But this time they REALLY pissed me off! I will tell you that I am not a google-hater even if I work for a competing company. Of course not everything that Google does is wonderful, but some of their services are really cool and useful [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Now I pretty much liked GMail and Google in general. But this time they REALLY pissed me off! I will tell you that I am not a google-hater even if I work for a competing company. Of course not everything that Google does is wonderful, but some of their services are really cool and useful and I have never denied to say they rocked when I felt they did. <br />In general, people seem to love them, and their stock value shows it (with the launch of &#034;Code Search&#034; this week <a href="http://asert.arbornetworks.com/2006/10/static-code-analysis-using-google-code-search/">they made a lot of people scream &#034;how cool is this&#034;</a> so that they got back from&nbsp;just under 400&nbsp;dollars to 417!). But that&#039;s not the issue. That is cool, that works. It&#039;s ok they make money if they make cool tools. It&#039;s fine for me. </p>
<p>In fact i consider GMail&nbsp;as being&nbsp;one of the best interface for reading mail that exist&nbsp;out there &#8211; I love &#034;tagging&#034; (oops: it&#039;s called &#034;labelling&#034; in their syntax), speed of search through messages (even tough Outlook 2007 is faster on indexed content, but still you have to buy it and install it on your PC)&#8230; I also especially love the way it shows THREADING&#8230; so that I moved pretty much EVERY mailing list I read on their account: </p>
<p><a title="Photo Sharing" href="http://www.flickr.com/photos/dani3l3/262797621/"><img height="193" alt="Ma come se fa ?" src="http://static.flickr.com/96/262797621_6754165d10.jpg" width="500"/></a> <br />(ok, they could do better with the localized version of &#034;Re:&#034; in replies&#8230;. in Italian a lot of broken MUA&#039;s translate that into &#034;R:&#034; and that isn&#039;t understood by GMail and will make it think it is another thread&#8230;. but that&#039;s a minor issue, and also one that every MUA handling threading has &#8211; including &#034;mutt&#034; &#8211; the real problem is the broken MUAs sending the &#034;R:&#034; in the first place. But&nbsp;I digress too much&#8230;.).</p>
<p>I also keep GMail continuosly opened in a browser during the day because a lot of informative mail and that sent by friends goes there.&nbsp;This to say that&nbsp;I <strong>do</strong> get a lot of their ads (that is &#8211; the point of having such an application, for them&#8230;). <a href="http://mailcall.spaces.live.com/blog/cns!CC9301187A51FE33!4043.entry?_c11_blogpart_blogpart=blogview&amp;_c=blogpart#permalink">On the contrary, Windows Live Mail reduced its ads to show only one&#8230; not to annoy you too much</a>. <br />But the ads in GMail were not *really* a problem (I don&#039;t read them anyway, I just plain IGNORE THEM).</p>
<p>But&nbsp;this week they REALLY pissed me off. They REALLY have. And here is the reason: <br />I have been using a script for MONTHS to backup my database (the one powering THIS blog) and send it &#034;off-site&#034; to my GMail mailbox. Pretty much something like a lot of other people do, described in various <a href="http://www.varlinux.org/vl/html/modules/stories/article.php?storyid=6920">articles</a> and <a href="http://blog.netnerds.net/2006/04/backup-wordpress-to-gmail/">blog posts</a>. Then I was labelling them with a rule, so that I could access my backups easily in case I needed them.</p>
<p>Now I don&#039;t know if this violates their <a href="http://mail.google.com/gmail/help/terms_of_use.html">terms of use</a> in any way&#8230; because I am not really using it as storage with those programs that circulated at one stage that had &#034;reverse engineered&#034; it. Those were bypassing the web interface altogether so people did use it as storage with a program without having to see their ads. That was the issue, I think.&nbsp;In my case,&nbsp;I am just sending MAILS to myself. One per day. I also delete the old ones every now and then, and they are not even huge in sized (attachments of 40 to 50KB so far!!)&#8230; anyway, I know a lot of people that store documents and all sort of stuff even in their corporate mailboxes in Outlook (then maybe index them with <a href="http://www.microsoft.com/windows/desktopsearch/default.mspx">Windows Desktop Search</a> of Google Desktop to find it back)&#8230; I was only doing the same with GMail. I don&#039;t see the big issue here&#8230;.. they might think otherwise&#8230;. but from what happens I don&#039;t think that&#039;s the issue.</p>
<p>Anyway, now it&#039;s been three or four days that my backup mail gets rejected. My SMTP Server gets told: </p>
<p>host gmail-smtp-in.l.google.com[66.249.83.27] said: <br /><em>550-5.7.1 Our system has detected an unusual amount of unsolicited<br />550-5.7.1 mail originating from your IP address. To protect our <br />550-5.7.1 users from spam, mail sent from your IP address has been <br />550-5.7.1 rejected. Please visit <br />550-5.7.1 <a href="http://www.google.com/mail/help/bulk_mail.html">http://www.google.com/mail/help/bulk_mail.html</a> to review <br />550 5.7.1 our Bulk Email Senders Guidelines. <br /></em></p>
<p>Now for fuck&#039;s sake. You know how much I hate SPAMMERS and <a href="http://www.43things.com/things/view/13248">what I would like to do with them</a>. But I also know that it does happen to end up in RBLs and such sometimes. Fine. But&nbsp;GIVE ME&nbsp;a way to tell you that I am NOT one!&nbsp;If you go to the link above, all you find is a form where you can specify that mail that ended up in your &#034;junk&#034; folder actually wasn&#039;t spam. Yeah, right.&nbsp;In my case it does not even go into my &#034;junk&#034; folder! How am I supposed to give me the original header that arrived to THEM if I only have the one sent by my mailserver ? They just blacklisted my mail server&#039;s IP Address! As they say, I even have an SPF record, I always use the same address, etc&#8230;. <br />So I tried to fill in the form, the day after I also tried to contact their <a href="mailto:abuse@google.com">abuse@google.com</a> and <a href="mailto:abuse@gmail.com">abuse@gmail.com</a> addresses. <br />Still nothing. <br />They even tell you (in the automated reply when you contact &#034;abuse&#034;: <br /><em>&#034;[...] For privacy and security reasons, we may not reveal the final outcome of an abuse case to the person who reported it. [...]&#034;.<br /></em>How great. How am I supposed to know if they even READ my complaint ? </p>
<p>You anti-spam people at GMail: <strong>&#034;I am NOT a fucking spammer!!!!!&#034;</strong>. I &#039;haven&#039;t found a better way to tell ya this, you know, than writing it on my blog&#8230; this is just RIDICULOUS!</p>
<p>But to date my mails still get dropped. I&#039;ll probably have to send my backups somewhere else. At this point they pissed me off so much that I am also seriously considering getting back to use my own mailserver also for receiving and reading my mailing lists. Then I won&#039;t get ads there. <br />Afzetterij! <br />(I hope you have some dutch guy on board at Google, as &#034;Google Translate&#034; does not translate from/to dutch yet&#8230;. )</p>
<p>
<strong>Edited on October, 8th </strong>- While GMail REJECTS those mails (it SAYS it is not accepting them), Hotmail simply DROPS them (that is: it does not even SAY it is not accepting them): </p>
<p><em>to=<dani3l3 @hotmail.com>, relay=mx4.hotmail.com[65.54.245.104], delay=3, status=sent (250  &lt;20061008061010.GA19807@muscetta.com> Queued mail for delivery)</dani3l3></em></p>
<p>This way you THINK it is going to be delivered, but it NEVER shows up in your inbox. I don&#039;t know who&#039;s behaving the worst&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/10/07/google-has-pissed-me-off-this-week/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Post from Windows Live Writer</title>
		<link>http://www.muscetta.com/2006/08/20/post-from-windows-live-writer/</link>
		<comments>http://www.muscetta.com/2006/08/20/post-from-windows-live-writer/#comments</comments>
		<pubDate>Sun, 20 Aug 2006 19:55:42 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=128</guid>
		<description><![CDATA[This is a test post written from Windows Live Writer Beta!! Now&#8230; maybe it&#039;s just me&#8230; I have refused to use editors to post to my blog in the past and kept sticking with the default web interface&#8230; but this one looks very nice!<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>This is a test post written from <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a> Beta!! Now&#8230; maybe it&#039;s just me&#8230; I have refused to use editors to post to my blog in the past and kept sticking with the default web interface&#8230; but this one looks very nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/08/20/post-from-windows-live-writer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How programs can teach each other</title>
		<link>http://www.muscetta.com/2006/08/20/how-programs-can-teach-each-other/</link>
		<comments>http://www.muscetta.com/2006/08/20/how-programs-can-teach-each-other/#comments</comments>
		<pubDate>Sun, 20 Aug 2006 19:23:55 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=126</guid>
		<description><![CDATA[This article shows an intersting (interesting because it is simple but effective!) approach to train SpamAssassing Bayesian spam filter by leveraging the training data in Thunderbird bayesian filter. Basically you can use a program to teach another program how to work better! This paradigm is cool!<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.idealog.us/2004/12/howto_spamassas.html">This article</a> shows an intersting (interesting because it is simple but effective!) approach to train SpamAssassing Bayesian spam filter by leveraging the training data in Thunderbird bayesian filter. Basically you can use a program to teach another program how to work better!<br />
This paradigm is cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/08/20/how-programs-can-teach-each-other/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts, Blogs, and Ruby with .Net</title>
		<link>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/</link>
		<comments>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 11:14:29 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=115</guid>
		<description><![CDATA[For those who have not seen it yet, Mischa Kroon has a nice blog post about interoperability between Ruby and the .Net framework. It provides several links and things to think about. If you are into .Net, or Ruby, or both, or simply interested about how things can interoperate, give it a read.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>For those who have not seen it yet, <a href="http://bloggingabout.net/blogs/mischa/archive/2006/05/14/12184.aspx">Mischa Kroon has a nice blog post about interoperability between Ruby and the .Net framework</a>.</p>
<p>It provides several links and things to think about. If you are into .Net, or Ruby, or both, or simply interested about how things can interoperate, give it a read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/06/09/thoughts-blogs-and-ruby-with-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#039;ve reached 200 photos on Flickr&#8230;.</title>
		<link>http://www.muscetta.com/2006/04/25/ive-reached-200-photos-on-flickr/</link>
		<comments>http://www.muscetta.com/2006/04/25/ive-reached-200-photos-on-flickr/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 17:55:29 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=106</guid>
		<description><![CDATA[&#8230;.and now I would LOVE a Pro Account. Only I am not sure I will actually purchase one. Why ? Because even if it&#039;s cheap, I really have to save every penny or I&#039;ll get covered in debts. I just don&#039;t make it. So far, just not to loose visibility of the old pictures I&#039;ve [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>&#8230;.and now I would LOVE a <strong>Pro</strong> Account.<br />
Only I am not sure I will actually purchase one. Why ? Because even if it&#039;s cheap, I really have to save every penny or I&#039;ll get covered in debts. I just don&#039;t make it.</p>
<p>So far, just not to loose visibility of the old pictures I&#039;ve posted there, I&#039;ve decided to cross-post the photos that are on Flickr to <a href="http://spaces.msn.com/dani3l376/">my MSN Space</a>. Check them out there&#8230;. (I am still in the process of posting them, as I write this, so that is not complete yet, but it will eventually be).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/04/25/ive-reached-200-photos-on-flickr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Story</title>
		<link>http://www.muscetta.com/2006/03/11/flickr-story/</link>
		<comments>http://www.muscetta.com/2006/03/11/flickr-story/#comments</comments>
		<pubDate>Sat, 11 Mar 2006 19:00:20 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=97</guid>
		<description><![CDATA[Haven&#039;t posted in a while, and won&#039;t write much this time either. The truth is that I have been too busy lately &#8211; working, family, and beta testing Windows Vista. But that&#039;s another story and I might have time to tell yuo that another time I get time and will to blog. What I wanted [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Haven&#039;t posted in a while, and won&#039;t write much this time either. The truth is that I have been too busy lately &#8211; working, family, and <a href="http://www.microsoft.com/windowsvista/default.aspx">beta testing Windows Vista</a>. But that&#039;s another story and I might have time to tell yuo that another time I get time and will to blog.</p>
<p>What I wanted to write now, instead, is a link to an <a href="http://www.usatoday.com/tech/products/2006-02-27-flickr_x.htm?POE=TECISVA">article</a> I just read and wanted to share, which is quite interesting as it tells a bit of the <a href="http://www.usatoday.com/tech/products/2006-02-27-flickr_x.htm?POE=TECISVA">story of how Flickr has born</a>. Quite interesting.</p>
<p>Especially, the two things I linked here make you think of the &#034;top-down&#034; vs. &#034;bottom-up&#034; kind of approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/03/11/flickr-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr to MSN Spaces now WORKS!</title>
		<link>http://www.muscetta.com/2006/01/15/flickr-to-msn-spaces-now-works/</link>
		<comments>http://www.muscetta.com/2006/01/15/flickr-to-msn-spaces-now-works/#comments</comments>
		<pubDate>Sun, 15 Jan 2006 09:42:27 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[MSN]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=92</guid>
		<description><![CDATA[What I was complaining about in this post is now solved and you can finally post to your MSN Spaces blog your flickr photos! Dare explains here how to set it up.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>What I was complaining about <a href="http://www.muscetta.com/2006/01/08/flickr-to-blog-to-msn-spaces/trackback/">in this post</a> is now solved and you can finally post to your <a href="http://spaces.msn.com">MSN Spaces</a> blog your flickr photos!<br />
<a href="http://www.25hoursaday.com/weblog/Trackback.aspx?guid=69c76437-d015-49ed-b381-3d798c1705b4">Dare explains here</a> how to set it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/01/15/flickr-to-msn-spaces-now-works/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flickr to Blog to MSN Spaces ?</title>
		<link>http://www.muscetta.com/2006/01/08/flickr-to-blog-to-msn-spaces/</link>
		<comments>http://www.muscetta.com/2006/01/08/flickr-to-blog-to-msn-spaces/#comments</comments>
		<pubDate>Sun, 08 Jan 2006 20:19:12 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Live]]></category>
		<category><![CDATA[MSN]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=90</guid>
		<description><![CDATA[Dare Obasanjo described on his blog a while ago how to configure some blog tools to use the MetaBlog API towards MSN Spaces. Flickr says it supports the same API but I&#039;ve not been able to post from Flickr to MSN Space&#8230;. Has anyone succeeded in doing this ? I did not even get any [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.25hoursaday.com/weblog/Trackback.aspx?guid=30625275-9604-49e3-9314-39d27a5649fb">Dare Obasanjo described on his blog a while ago how to configure some blog tools to use the MetaBlog API towards MSN Spaces</a>.<br />
Flickr says it supports the same API but I&#039;ve not been able to post from Flickr to MSN Space&#8230;.</p>
<p>Has anyone succeeded in doing this ? <a href="http://www.flickr.com/forums/help/15606/">I did not even get any meaningful reply on Flickr Forum&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2006/01/08/flickr-to-blog-to-msn-spaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RSS a sloppy format, but successful</title>
		<link>http://www.muscetta.com/2005/05/05/rss-a-sloppy-format-but-successful/</link>
		<comments>http://www.muscetta.com/2005/05/05/rss-a-sloppy-format-but-successful/#comments</comments>
		<pubDate>Thu, 05 May 2005 15:34:07 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">/?p=42</guid>
		<description><![CDATA[http://www.onlamp.com/pub/a/onlamp/2005/04/22/bosworth.html RSS is a sloppy format. That why is working so well and succeeding. Wow, cool, like it happened for the web. Yep, that&#039;s also a sloppy format, in fact, I agree on this one. Sloppy or not&#8230; who really cares ? Best things in life are usually SIMPLE. What is happening with RSS feeds [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.onlamp.com/pub/a/onlamp/2005/04/22/bosworth.html">http://www.onlamp.com/pub/a/onlamp/2005/04/22/bosworth.html</a></p>
<p>RSS is a sloppy format.<br />
That why is working so well and succeeding.<br />
Wow, cool, like it happened for the web.<br />
Yep, that&#039;s also a sloppy format, in fact, I agree on this one.<br />
Sloppy or not&#8230; who really cares ?<br />
Best things in life are usually SIMPLE.</p>
<p>What is happening with RSS feeds in building a logical network of links between content, which is more efficient than the web it runs on.</p>
<p>I like that.<br />
I like that a lot.</p>
<p>A couple of years ago I in fact pushed my friends of a couple of sites to push their information with RSS feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2005/05/05/rss-a-sloppy-format-but-successful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux / Windows Rant</title>
		<link>http://www.muscetta.com/2004/06/18/linux-windows-rant/</link>
		<comments>http://www.muscetta.com/2004/06/18/linux-windows-rant/#comments</comments>
		<pubDate>Fri, 18 Jun 2004 22:27:10 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">/?p=27</guid>
		<description><![CDATA[Linux was free software as freedom of speech. Then people started using it for free as in free beer. &#034;Wow, it&#039;s for free, let&#039;s use it!&#034; Some people were enthousiast for they actually liked the platform better than the commercial alternative. Those people were doing it for a cause, and they were sharing their software [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Linux was free software as freedom of speech.<br />
Then people started using it for free as in free beer.<br />
&#034;Wow, it&#039;s for free, let&#039;s use it!&#034;<br />
Some people were enthousiast for they actually liked the platform better than the commercial alternative. Those people were doing it for a cause, and they were sharing their software with the community. We do understand and respect choices.<br />
But some other people stepped in, who thought it was ok to take a lot and do their political games in the linux scene, and make a &#039;commercializazion&#039; of it all happen.<br />
At this point it means just jumping from a vendor to another. I mean, it&#039;s free market, already before if you wanted you could go to an alternative. Why *PAY* fat companies for commercial linux support ? If you choose linux for you like it, I respect your choice, and I also use it. I like to think that different OSes have different specialized tasks in an enterprise and they can coexists happily.</p>
<p>Microsoft Platform of Operating Systems is the most targeted because it is more widespread and used (each hous has at least a windows PC!). There *ARE* bugs in other software too, of course, and just as many, as complexity grows. But Linux boxes are (so far) less widespread and still coming out of the underground where customization made them hard target for automated tools.<br />
So this has given this &#039;perception&#039; of higher linux security because we have not seen major worms on that platform yet. Yet.</p>
<p>But when competitors such as RedHat and Novell/SuSE step in, and then try to standardize the platform for easiness of management and support&#039;s sake, it will come: we will get a windows clone (linux+gnome or kde&#8230; we&#039;ll see them fused soon now that novell/suse/ximian is under one umbrella i bet), just as easy to break as the original used to be, for things become configured and placed in predictable ways, and the platform is more widespread, so the exploiting can be automated at that point. I am talking of the plague of last years: Worms.</p>
<p>Does it really make sense to pass from a commercial entity to another, pretending it is *still* free ? Are you really sure it still is free ? I bet it isn&#039;t. And Microsoft is working damn hard to make its code more secure, and secured by default.<br />
Run your linux servers too, if you like them, *INTEGRATE* the two worlds to get the best of both <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Windows Services for Unix 3.5 TOTALLY ROCKS !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2004/06/18/linux-windows-rant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OrKuT</title>
		<link>http://www.muscetta.com/2004/05/10/orkut/</link>
		<comments>http://www.muscetta.com/2004/05/10/orkut/#comments</comments>
		<pubDate>Mon, 10 May 2004 08:56:25 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Orkut]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">/?p=24</guid>
		<description><![CDATA[I have been invited on Orkut. It is cool. It simply totally rocks. BESA says it is taking my soul !! &#8211; ROTFL<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I have been invited on <a target="_blank" href="http://www.orkut.com/">Orkut</a>. It is cool. It simply totally rocks.<br />
<a target="_blank" href="http://www.itvc.net/details.asp?ID=64">BESA</a> says it is taking my soul !! &#8211; ROTFL</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2004/05/10/orkut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
