<?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</title>
	<atom:link href="http://www.muscetta.com/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, 11 Mar 2012 18:49:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>The memory remains</title>
		<link>http://www.muscetta.com/2012/03/11/the-memory-remains/</link>
		<comments>http://www.muscetta.com/2012/03/11/the-memory-remains/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 18:44:24 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=538</guid>
		<description><![CDATA[This was my granddad&#039;s typewriter &#8211; a very heavy Olivetti Editor &#8211; that I used to observe with great interest (almost fascination) when I was a kid. My granddad used to write official letters on it and do some administration work in his not-so-late years but after he went with pension. When I was a [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="The memory remains" href="http://www.flickr.com/photos/dani3l3/6973234107/"><img src="http://farm8.staticflickr.com/7046/6973234107_cfdae5f88d.jpg" alt="The memory remains" /></a></p>
<p>This was my granddad&#039;s typewriter &#8211; a very heavy Olivetti Editor &#8211; that I used to observe with great interest (almost fascination) when I was a kid. My granddad used to write official letters on it and do some administration work in his not-so-late years but after he went with pension. When I was a little kid, it was some sort of &#034;sacred&#034; device we had at home, belonging to the grown-up, serious world &#8211; nothing to play with, covered with austerity. It was easy to get the paper jammed in it, the ink ribbon tangled up, the letterheads stuck, if not used with care.</p>
<p>And yet I was granted the privilege to use it, as my granddad had a lot of patience with me &#8211; and he let me learn to type on it, years before home and personal computers began to be readily available to us: I remember him helping me out to &#034;publish&#034; my &#034;books&#034; (like: unique copies of two/three pages fantasy stories I had invented myself when I was about 7 or 8 years old). Those don&#039;t even exist anymore, if not in my memory.</p>
<p>When my grandpa and grandma died, my mum and her brother started looking at their things &#8211; had to see the house they were living in, kept some objects, sold others, donated other ones&#8230; as it happens in those situations.</p>
<p>Nobody really wanted this, and it is a pretty useless piece of technology in these days of smartphones and tablet and devices&#8230; but I kept it for a while, until we relocated to the USA, at least (and I would not even know where to keep it today)&#8230;</p>
<p>With it, a piece of my history was finished off and it left me with spinning thoughts in my mind, like those you get after finishing a book or a good movie that made you think&#8230; and you are not quite sure that story really is finished.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2012/03/11/the-memory-remains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APM in OpsMgr 2012: for Dev and for Ops</title>
		<link>http://www.muscetta.com/2012/02/05/apm-in-opsmgr-2012-for-dev-and-for-ops/</link>
		<comments>http://www.muscetta.com/2012/02/05/apm-in-opsmgr-2012-for-dev-and-for-ops/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 16:57:09 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2012]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2012]]></category>
		<category><![CDATA[APM]]></category>
		<category><![CDATA[AVIcode]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[MOF]]></category>
		<category><![CDATA[system center]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=537</guid>
		<description><![CDATA[I recently wrote a couple of technical posts about the object model we have chosen for APM in OpsMgr 2012 and how to author granular alerting rules for APM in XML. That’s more the type of post that pertains on the momteam blog. This one you are reading now, instead, is more “philosophical” than technical [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I recently wrote a couple of technical posts about <a href="http://blogs.technet.com/b/momteam/archive/2012/01/14/apm-object-model.aspx">the object model we have chosen for APM in OpsMgr 2012</a> and <a href="http://blogs.technet.com/b/momteam/archive/2012/01/23/custom-apm-rules-for-granular-alerting.aspx">how to author granular alerting rules for APM in XML</a>. That’s more the type of post that pertains on the momteam blog. </p>
<p>This one you are reading now, instead, is more “philosophical” than technical – I think that, going forward, I’ll keep more of this distinction by posting my rants here on my personal blog, as they are only partially related to the products and more about my point of view on things. The reasons explained below are just those that I perceive and what drives me – I don’t mean in any way to be speaking on behalf of my company, our strategists or product planners.</p>
<p>I have heard statements from customers such as “AVIcode is a developer tool” or “APM is for QA/Test environments – if you need it in production you have not done your QA work well”and similar statements. <a href="http://social.technet.microsoft.com/Forums/en-US/operationsmanageravicode/thread/ee6393a0-9784-4ac5-bd4d-64dffc4adc4a">People asked why we did bring together the two, for example, on the TechNet forums</a>. Sure, it can be useful to employ such a tool also in a development and QA/test environment… but why not in production? With frequent deployments that the agile business demands, change control alone can’t slow down the business and sometimes bad things happen anyway – so we need solid monitoring to keep an eye on the behavior and performance on the system, exposed in a way that can quickly pinpoint where issues might be – be them in the infrastructure or in the code – in a way that enables people to efficiently triage and resolve them. <a href="http://blogs.msdn.com/b/sergkanz/archive/2011/09/13/cut-the-monitoring-price-application-monitoring-investments.aspx">Sergey points out how APM in OpsMgr 2012 is much easier to setup, simpler to configure and cheaper to maintain</a> than the standalone AVIcode product ever was, and hints at the fact that a comprehensive solution encompassing both “traditional” systems management approach as well as Application Performance Monitoring is a good one. It is a good one, in its simplest form, because we have a simplified, unified and more cost-effective infrastructure. It is a good one – I add – because we can extract a lot of useful information from within the applications, only when those are running; when they are down altogether, APM is not very useful on its own, when it is not complemented by “traditional” OS and platform checks: before I wonder if my application is slow, I’d better ask “is IIS actually up and running? is my application running at all?”. Operations Manager has been historically very good, with its management packs, in answering those questions. APM adds the deep application perspective to it, to provide rich data that Developers and Operations need to have an overall picture of what is going on in their systems and applications.</p>
<p>In my opinion, in this world of continuous services improvement and cloud services, IT management is tearing down the walls between what traditionally has been two separate worlds of “Operations” (Ops) teams and Development (Dev) teams. So, while people ask why we brought what was more of a Developer tool into a pure System Management tool, it is clear to me that those areas are converging, and <a href="http://www.computerworld.com.au/article/406856/new_relic_now_monitors_server_performance/">even other vendors who start from the opposite approach (APM) eventually go “back to the basics” and begin implementing server-level systems management such as showing disk space and CPU utilization</a>, meaning that, whatever your starting point was or has been, everybody wants and feels the need to bring those two worlds and disciplines together.</p>
<p>This line of thoughts has even been given a name: “DevOps”.</p>
<p><a href="http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/">What is this DevOps things anyway</a> is one famous post that can be found on the web, where Stephen Nelson-Smith writes:</p>
<blockquote><p>[…] On most projects I’ve worked on, the project team is split into developers, testers, release managers and sysadmins working in separate silos. From a process perspective this is dreadfully wasteful. It can also lead to a &#039;lob it over the wall&#039; philosophy &#8211; problems are passed between business analysts, developers, QA specialists and sysadmins […] The Devops movement is built around a group of people who believe that the application of a combination of appropriate technology and attitude can revolutionize the world of software development and delivery […] these people understand the key point &#8211; we’re all on the same side! All of us &#8211; developers, testers, managers, DBAs, network technicians, and sysadmins &#8211; are all trying to achieve the same thing: the delivery of great quality, reliable software that delivers business benefit to those who commissioned it. […]</p>
</blockquote>
<p><a href="http://www.slideshare.net/jedi4ever/devops-the-war-is-over-if-you-want-it">DevOps – the war is over if you want it</a> is a presentation by Patrick Debois which I also encourage you to check out, as it is also very evocative thru images:</p>
<blockquote><p><a href="http://www.slideshare.net/jedi4ever/devops-the-war-is-over-if-you-want-it"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="The War is over if you want it" border="0" alt="The War is over if you want it" src="http://www.muscetta.com/wp-content/uploads/image52.png" width="240" height="180" /></a></p>
</blockquote>
<p><a href="http://www.apmdigest.com/devops-6-steps-for-improved-collaboration">DevOps – 6 steps for improved collaboration</a></p>
<blockquote><p>[…] The DevOps movement is a modern push from the software industry to instill better interaction and productivity between development (Dev) and IT operations (Ops). Instead of throwing applications “over the fence” blindly to operations, a fluid and much more effective DevOps process inserts transparency, efficiency and ownership into the art of developing, releasing and the production use of critical applications. It also binds the two traditionally siloed teams together. […]</p>
</blockquote>
<p>Last but not least, <a href="http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr">10+ Deploys Per Day: Dev and Ops Cooperation at Flickr</a> (another presentation from a conference) is a real-world example of a large scale web site (Flickr) and how those practices are adopted.</p>
<p>When it comes to the DevOps ideas and concepts within Microsoft products, for what I can see, some customers really “get“ it, and would like to see more in this sense. For example I found <a href="http://readsource.co.uk/2011/07/29/devops-tooling-the-microsoft-ghetto/">this interesting blog post by James Dawson</a>:</p>
<blockquote><p>[…] The bulk of my work revolves around the Microsoft platform and to put it bluntly it is very much a second class citizen in terms of the available tooling.</p>
<p>Now I’ve fanned the flames, let me put some context around that. I don’t mean that as a criticism, in fact I view the status quo as an entirely natural result given where the movement grew out of and, to be frank, the mindset of the typical Microsoft IT shop. In a Microsoft environment there tends to be far greater reliance on big vendor products, whereas in the Linux/BSD world it is far more common to integrate a series of discrete tools into a complete tool chain that meets the needs for a given scenario. […]</p>
</blockquote>
<p>I think James is right when saying this: he “gets” it, but we also have a vast user base of more “traditional” enterprise customers where the concepts have not been digested and understood yet. When it comes to traditional enterprises, what sometimes happens is well explained <a href="http://podcasts.infoworld.com/d/application-development/devops-gets-developers-and-admins-the-same-page-173460">in this other article by Paul Krill</a>:</p>
<blockquote><p>[…] To protect the infrastructure, IT ops can put in place processes that seem almost draconian, causing developers to complain that these processes slow them down, says Glenn O&#039;Donnell, an analyst at Forrester Research. Indeed, processes such as ITIL (IT Infrastructure Library) that provide a standardized way of doing things, such as handling change management, can become twisted into bureaucracy for its own sake. But sometimes, people &quot;take a good idea too far, and that happens with ITIL, too.&quot; […]</p>
</blockquote>
<p>And I think that is exactly one of the reasons why, even if many of our teams “get” it, we need to talk more of the DevOps culture in those places where it hasn’t arrived yet, so that these integrated products are more successful and can help them solve problems – because some of these customers haven’t yet realized that it takes a culture shift before these new tools can be adopted. DevOps does not have critical mass today, but could have it tomorrow. Even Gartner says: </p>
<blockquote><p>[…] by 2015, DevOps will evolve from a niche strategy employed by large cloud providers into a mainstream strategy employed by 20% of the Global 2000 organizations”. […]</p>
</blockquote>
<p>So, back to suggesting that Microsoft produces more of this “goodness”, <a href="http://readsource.co.uk/2011/07/29/devops-tooling-the-microsoft-ghetto/">James again writes</a>:</p>
<blockquote><p>[…] I want to see the values espoused by DevOps spread far and wide, including the quietest backwaters of corporate IT, where Windows, Office and IE 6 reign supreme. To that end, the Microsoft infrastructure community needs to take a similar approach as the .NET community did and start bringing some of the goodness that we see in the Linux world to the Microsoft platform in a way that facilitates adoption for all and actually takes advantage of the platform’s innate richness and strengths. […]</p>
</blockquote>
<p>So do I. And, for what I can tell, we <em>are</em> actually trying to bridge gaps and push the culture shift – integrating APM in OpsMgr is definitely an effort in this direction. But it might take some time. Is it too an “utopian” a vision? I don’t think it is; I think we can get there. But it will take some time. As <a href="http://www.cmcrossroads.com/cm-articles/275-articles/13914-five-predictions-for-2011">this other article</a> was saying:</p>
<blockquote><p>[…] The DevOps approach is so radical <a href="http://www.agileweboperations.com/what-devops-means-for-enterprises">it will take some time to cross the chasm</a>, and indeed it will be actively resisted by many organizations where it threatens traditional delivery models and organizational structures. […]</p>
</blockquote>
<p>Let’s get Dev and Ops talking to each other, also in the Enteprise! I am all for it.</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. If you want to see the official info from my employer about the topic above, go to <a title="http://www.microsoft.com/presspass/presskits/cloud/default.aspx" href="http://www.microsoft.com/presspass/presskits/cloud/default.aspx">http://www.microsoft.com/presspass/presskits/cloud/default.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2012/02/05/apm-in-opsmgr-2012-for-dev-and-for-ops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A couple of OpsMgr / APM Posts</title>
		<link>http://www.muscetta.com/2012/01/24/a-couple-of-opsmgr-apm-posts/</link>
		<comments>http://www.muscetta.com/2012/01/24/a-couple-of-opsmgr-apm-posts/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 21:30:14 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center Operations Manager 2012]]></category>
		<category><![CDATA[APM]]></category>
		<category><![CDATA[AVIcode]]></category>
		<category><![CDATA[opsmgr2012]]></category>
		<category><![CDATA[scom]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=534</guid>
		<description><![CDATA[Just some shameless personal plug here, pointing out that I recently wrote two technical posts on the momteam blog about the APM feature in Operations Manager 2012 – maybe you want to check them out: APM object model – describes the object model that gets created by the APM Template/Wizard when you configure .NET application [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Just some shameless personal plug here, pointing out that I recently wrote two technical posts on the momteam blog about the APM feature in Operations Manager 2012 – maybe you want to check them out:</p>
<ol>
<li><a href="http://blogs.technet.com/b/momteam/archive/2012/01/14/apm-object-model.aspx">APM object model</a> – describes the object model that gets created by the APM Template/Wizard when you configure .NET application monitoring </li>
<li><a href="http://blogs.technet.com/b/momteam/archive/2012/01/23/custom-apm-rules-for-granular-alerting.aspx">Custom APM Rules for Granular Alerting</a> – explains how you can leverage management pack authoring techniques to create alerting rules with super-granular criteria’s (building beyond what the GUI would let you do) </li>
</ol>
<p>Hope you find them useful – if you are one of my “OpsMgr readers” <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.muscetta.com/wp-content/uploads/wlEmoticon-smile3.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2012/01/24/a-couple-of-opsmgr-apm-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operations Manager 2012 Release Candidate is out of the bag!</title>
		<link>http://www.muscetta.com/2011/11/10/operations-manager-2012-release-candidate-is-out-of-the-bag/</link>
		<comments>http://www.muscetta.com/2011/11/10/operations-manager-2012-release-candidate-is-out-of-the-bag/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 17:25:44 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[OpsMgr2012]]></category>
		<category><![CDATA[System Center Operations Manager 2012]]></category>
		<category><![CDATA[APM]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[opsmgr2012]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2011/11/10/operations-manager-2012-release-candidate-is-out-of-the-bag/</guid>
		<description><![CDATA[Go read the announcement at http://blogs.technet.com/b/server-cloud/archive/2011/11/10/system-center-operations-manager-2012-release-candidate-from-the-datacenter-to-the-cloud.aspx This is the first public release since I am part of the team (I started in this role the day after the team had shipped Beta) and this is the first release that contains some direct output of my work. It feels so good! Documentation has also been refreshed [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Go read the announcement at <a title="http://blogs.technet.com/b/server-cloud/archive/2011/11/10/system-center-operations-manager-2012-release-candidate-from-the-datacenter-to-the-cloud.aspx" href="http://blogs.technet.com/b/server-cloud/archive/2011/11/10/system-center-operations-manager-2012-release-candidate-from-the-datacenter-to-the-cloud.aspx">http://blogs.technet.com/b/server-cloud/archive/2011/11/10/system-center-operations-manager-2012-release-candidate-from-the-datacenter-to-the-cloud.aspx</a></p>
<p>This is the first public release since I am part of the team (I started in this role the day after the team had shipped Beta) and this is the first release that contains some direct output of my work. <strong>It feels so good!</strong></p>
<p>Documentation has also been refreshed – it starts here <a title="http://technet.microsoft.com/en-us/library/hh205987.aspx" href="http://technet.microsoft.com/en-us/library/hh205987.aspx">http://technet.microsoft.com/en-us/library/hh205987.aspx</a></p>
<p>The part specifically about the APM feature is here <a title="http://technet.microsoft.com/en-us/library/hh457578.aspx" href="http://technet.microsoft.com/en-us/library/hh457578.aspx">http://technet.microsoft.com/en-us/library/hh457578.aspx</a></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/11/10/operations-manager-2012-release-candidate-is-out-of-the-bag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repost: Useful SetSPN tips</title>
		<link>http://www.muscetta.com/2011/10/19/repost-useful-setspn-tips/</link>
		<comments>http://www.muscetta.com/2011/10/19/repost-useful-setspn-tips/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 15:51:35 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[kerberos]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[setspn]]></category>
		<category><![CDATA[SPN]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2011/10/19/repost-useful-setspn-tips/</guid>
		<description><![CDATA[I just saw that my former colleague (PFE) Tristan has posted an interesting note about the use of SetSPN “–A” vs SetSPN “–S”. I normally don’t repost other people’s content, but I thought this would be useful as there are a few SPN used in OpsMgr and it is not always easy to get them [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I just saw that my former colleague (PFE) Tristan has posted an interesting note about the use of SetSPN “–A” vs SetSPN “–S”. I normally don’t repost other people’s content, but I thought this would be useful as there are a few SPN used in OpsMgr and it is not always easy to get them all right… and you can find a few tricks I was not aware of, by reading his post. </p>
<p>Check out the original post at <a href="http://blogs.technet.com/b/tristank/archive/2011/10/10/psa-you-really-need-to-update-your-kerberos-setup-documentation.aspx">http://blogs.technet.com/b/tristank/archive/2011/10/10/psa-you-really-need-to-update-your-kerberos-setup-documentation.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/10/19/repost-useful-setspn-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A month in a new life</title>
		<link>http://www.muscetta.com/2011/08/19/a-month-in-a-new-life/</link>
		<comments>http://www.muscetta.com/2011/08/19/a-month-in-a-new-life/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 00:50:19 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=529</guid>
		<description><![CDATA[Hey, I have just realized that I have been in my new PM role for a month already – time flies! If you are one of my OpsMgr readers, in case you haven’t noticed, I have been silent here but I have published a post on the momteam blog – check it out: http://blogs.technet.com/b/momteam/archive/2011/08/12/application-performance-monitoring-in-opsmgr-2012-beta.aspx If [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Hey, I have just realized that I have been in my new PM role for a month already – time flies!</p>
<p>If you are one of my OpsMgr readers, in case you haven’t noticed, I have been silent here but I have published a post on the momteam blog – check it out: <a title="http://blogs.technet.com/b/momteam/archive/2011/08/12/application-performance-monitoring-in-opsmgr-2012-beta.aspx" href="http://blogs.technet.com/b/momteam/archive/2011/08/12/application-performance-monitoring-in-opsmgr-2012-beta.aspx">http://blogs.technet.com/b/momteam/archive/2011/08/12/application-performance-monitoring-in-opsmgr-2012-beta.aspx</a></p>
<p>If you are one of those few readers interested in following what I do, instead – I can tell you that I am loving the new job. Lot to do, of course, and that also applies to&#160; the private sphere – did you know that relocating to another continent takes some energy and effort? &#8211; but we are settling in nicely and things are going very smooth overall.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/08/19/a-month-in-a-new-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I have been chosen; Farewell my friends&#8230;</title>
		<link>http://www.muscetta.com/2011/07/07/i-have-been-chosen-farewell-my-friends/</link>
		<comments>http://www.muscetta.com/2011/07/07/i-have-been-chosen-farewell-my-friends/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 05:45:32 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[alien]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[farewell]]></category>
		<category><![CDATA[goodbye]]></category>
		<category><![CDATA[HC]]></category>
		<category><![CDATA[Health Check]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[OpsMgr health Check]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=526</guid>
		<description><![CDATA[I have been in Premier Field Engineering for nearly 7 years (it was not even called PFE when I joined &#8211; it was just &#34;another type of support&#34;&#8230;) and I have to admit that it has been a fun, fun ride: I worked with awesome people and managed to make a difference with our products [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I have been in Premier Field Engineering for nearly 7 years (it was not even called PFE when I joined &#8211; it was just &quot;another type of support&quot;&#8230;) and I have to admit that it has been a fun, fun ride: I worked with awesome people and managed to make a difference with our products and services for many customers &#8211; directly working with some of those customers, as well as indirectly thru the OpsMgr Health Check program &#8211; the service I led for the last 3+ years, which nowadays gets delivered hundreds of times a year around the globe by my other fellow PFEs.</p>
<p>But it is time to move on: I have decided to go thru a big life change for me and my family, and I won&#039;t be working as a Premier Field Engineer anymore as of next week.</p>
<p><strong><em>But don&#039;t panic &#8211; I am staying at Microsoft! </em></strong></p>
<p>I have actually never been closer to Microsoft than now: we are packing and moving to Seattle the coming weekend, and on July 18th I will start working as a Program Manager in the Operations Manager product team, in Redmond. I am hoping this will enable me to make a difference with even more customers.</p>
<p>Exciting times ahead &#8211; wish me luck!</p>
<p><a href="http://www.muscetta.com/wp-content/uploads/Farewell.wmv"><img class="size-medium wp-image-528" title="Farewell my friends" alt="Farewell my friends, I go on to a better place" src="http://www.muscetta.com/wp-content/uploads/Farewell_IMG-300x169.jpg" width="383" height="238" /></a></p>
<p><strong><em>&#160;</em></strong></p>
<p><strong><em>That said – PFE is hiring!</em></strong> If you are interested in working for Microsoft – we have open positions (<em>including my vacant position in Italy</em>) for almost all the Microsoft technologies. Simply visit <a title="http://careers.microsoft.com" href="http://careers.microsoft.com/">http://careers.microsoft.com</a> and search on “PFE”.</p>
<p>As for the OpsMgr Health Check, don&#039;t you worry: it will continue being improved &#8211; I left it in the hands of some capable colleagues: <a href="http://blogs.technet.com/b/itpcfmgt/archive/2011/06/07/i-blogger-si-raccontano-bruno-gabrielli.aspx" target="_blank">Bruno Gabrielli</a>, <a href="http://blogs.technet.com/b/stefan_stranger/" target="_blank">Stefan Stranger</a> and <a href="http://www.scom2k7.com/" target="_blank">Tim McFadden</a> &#8211; and they have a plan and commitment to update it to OpsMgr 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/07/07/i-have-been-chosen-farewell-my-friends/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.muscetta.com/wp-content/uploads/Farewell.wmv" length="1522545" type="video/asf" />
		</item>
		<item>
		<title>Improved ACS Partitions Query</title>
		<link>http://www.muscetta.com/2011/05/04/improved-acs-partitions-query/</link>
		<comments>http://www.muscetta.com/2011/05/04/improved-acs-partitions-query/#comments</comments>
		<pubDate>Wed, 04 May 2011 07:10:36 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[ACS]]></category>
		<category><![CDATA[Audit]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[TSQL]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=524</guid>
		<description><![CDATA[This has been sitting on my hard drive for a long time. Long story short, the report I posted at Permanent Link to Audit Collection Services Database Partitions Size Report had a couple of bugs: it did not consider the size of the dtString_XXX tables but only the size of dtEvent_XXX tables – this would [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>This has been sitting on my hard drive for a long time. Long story short, the report I posted at <a title="Permanent Link to Audit Collection Services Database Partitions Size Report" href="http://www.muscetta.com/2010/05/05/audit-collection-services-database-partitions-size-report/">Permanent Link to Audit Collection Services Database Partitions Size Report</a> had a couple of bugs:</p>
<ol>
<li>it did not consider the size of the dtString_XXX tables but only the size of dtEvent_XXX tables – this would still give you an idea of the trends, but it could lead to quite different SIZE calculations</li>
<li>the query was failing on some instances that have been installed with the wrong (unsupported) Collation settings.</li>
</ol>
<p>I fixed both bugs, but I don’t have a machine with SQL 2005 and Visual Studio 2005 anymore… so I can’t rebuild my report – but I don’t want to distribute one that only works on SQL 2008 because I know that SQL2005 is still out there. This is partially the reason that held this post back.</p>
<p>Without waiting so much longer, therefore, I decided I’ll just give you the fixed query. Enjoy <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.muscetta.com/wp-content/uploads/wlEmoticon-smile2.png" alt="Smile" /></p>
<pre style="color: #000000; background: #ffffff;"><span style="color: #696969;">--Query to get the Partition Table</span>
<span style="color: #696969;">--for each partition we launch the sp_spaceused stored procedure to determine the size and other info</span>

<span style="color: #696969;">--partition list</span>
<span style="color: #800000; font-weight: bold;">select</span> PartitionId<span style="color: #808030;">,</span>Status<span style="color: #808030;">,</span>PartitionStartTime<span style="color: #808030;">,</span>PartitionCloseTime
<span style="color: #800000; font-weight: bold;">into</span> <span style="color: #808030;">#</span>t1
<span style="color: #800000; font-weight: bold;">from</span> dbo<span style="color: #808030;">.</span>dtPartition <span style="color: #800000; font-weight: bold;">with</span> <span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">nolock</span><span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">order</span> <span style="color: #800000; font-weight: bold;">by</span> PartitionStartTime <span style="color: #800000; font-weight: bold;">Desc</span> 

<span style="color: #696969;">--sp_spaceused holder table for dtEvent</span>
<span style="color: #800000; font-weight: bold;">create</span> <span style="color: #800000; font-weight: bold;">table</span> <span style="color: #808030;">#</span>t2 <span style="color: #808030;">(</span>
    PartitionId nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">rows</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    reserved nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">data</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    index_size nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">unused</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS
<span style="color: #808030;">)</span>

<span style="color: #696969;">--sp_spaceused holder table for dtString</span>
<span style="color: #800000; font-weight: bold;">create</span> <span style="color: #800000; font-weight: bold;">table</span> <span style="color: #808030;">#</span>t3 <span style="color: #808030;">(</span>
    PartitionId nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">rows</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    reserved nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">data</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    index_size nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS<span style="color: #808030;">,</span>
    <span style="color: #800000; font-weight: bold;">unused</span> nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">Collate</span> SQL_Latin1_General_CP1_CI_AS
<span style="color: #808030;">)</span>

<span style="color: #800000; font-weight: bold;">set</span> nocount <span style="color: #800000; font-weight: bold;">on</span>

<span style="color: #696969;">--vars used for building Partition GUID and main table name</span>
<span style="color: #800000; font-weight: bold;">declare</span> @partGUID nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">declare</span> @tblName nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">declare</span> @tblNameComplete nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">declare</span> @schema nvarchar<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">DECLARE</span> @vQuery NVARCHAR<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">MAX</span><span style="color: #808030;">)</span>

<span style="color: #696969;">--cursor</span>
<span style="color: #800000; font-weight: bold;">declare</span> <span style="color: #800000; font-weight: bold;">c</span> <span style="color: #800000; font-weight: bold;">cursor</span> <span style="color: #800000; font-weight: bold;">for</span>
    <span style="color: #800000; font-weight: bold;">select</span> PartitionID <span style="color: #800000; font-weight: bold;">from</span> <span style="color: #808030;">#</span>t1
<span style="color: #800000; font-weight: bold;">open</span> <span style="color: #800000; font-weight: bold;">c</span>
<span style="color: #800000; font-weight: bold;">fetch</span> <span style="color: #800000; font-weight: bold;">next</span> <span style="color: #800000; font-weight: bold;">from</span> <span style="color: #800000; font-weight: bold;">c</span> <span style="color: #800000; font-weight: bold;">into</span> @partGUID

<span style="color: #696969;">--start cursor usage</span>
<span style="color: #800000; font-weight: bold;">while</span> @@FETCH_STATUS <span style="color: #808030;">=</span> <span style="color: #008c00;">0</span>
<span style="color: #800000; font-weight: bold;">begin</span>

<span style="color: #696969;">--tblName - first usage for dtEvent</span>
<span style="color: #800000; font-weight: bold;">set</span> @tblName <span style="color: #808030;">=</span> <span style="color: #0000e6;">'dtEvent_'</span> <span style="color: #808030;">+</span> @partGUID

<span style="color: #696969;">--retrieve the schema name</span>
<span style="color: #800000; font-weight: bold;">SET</span> @vQuery <span style="color: #808030;">=</span> <span style="color: #0000e6;">'SELECT @dbschema = TABLE_SCHEMA from INFORMATION_SCHEMA.tables where TABLE_NAME = '</span><span style="color: #0000e6;">''</span> <span style="color: #808030;">+</span> @tblName <span style="color: #808030;">+</span> <span style="color: #0000e6;">''</span><span style="color: #0000e6;">''</span>
<span style="color: #800000; font-weight: bold;">EXEC</span> sp_executesql @vQuery<span style="color: #808030;">,</span>N<span style="color: #0000e6;">'@dbschema nvarchar(max) out, @dbtblName nvarchar(max)'</span><span style="color: #808030;">,</span>@schema <span style="color: #800000; font-weight: bold;">out</span><span style="color: #808030;">,</span> @tblname

<span style="color: #696969;">--tblNameComplete</span>
<span style="color: #800000; font-weight: bold;">set</span> @tblNameComplete <span style="color: #808030;">=</span> @schema <span style="color: #808030;">+</span> <span style="color: #0000e6;">'.'</span> <span style="color: #808030;">+</span> @tblName

<span style="color: #800000; font-weight: bold;">INSERT</span> <span style="color: #808030;">#</span>t2
    <span style="color: #800000; font-weight: bold;">EXEC</span> sp_spaceused @tblNameComplete

<span style="color: #696969;">--tblName - second usage for dtString</span>
<span style="color: #800000; font-weight: bold;">set</span> @tblName <span style="color: #808030;">=</span> <span style="color: #0000e6;">'dtString_'</span> <span style="color: #808030;">+</span> @partGUID

<span style="color: #696969;">--retrieve the schema name</span>
<span style="color: #800000; font-weight: bold;">SET</span> @vQuery <span style="color: #808030;">=</span> <span style="color: #0000e6;">'SELECT @dbschema = TABLE_SCHEMA from INFORMATION_SCHEMA.tables where TABLE_NAME = '</span><span style="color: #0000e6;">''</span> <span style="color: #808030;">+</span> @tblName <span style="color: #808030;">+</span> <span style="color: #0000e6;">''</span><span style="color: #0000e6;">''</span>
<span style="color: #800000; font-weight: bold;">EXEC</span> sp_executesql @vQuery<span style="color: #808030;">,</span>N<span style="color: #0000e6;">'@dbschema nvarchar(max) out, @dbtblName nvarchar(max)'</span><span style="color: #808030;">,</span>@schema <span style="color: #800000; font-weight: bold;">out</span><span style="color: #808030;">,</span> @tblname

<span style="color: #696969;">--tblNameComplete</span>
<span style="color: #800000; font-weight: bold;">set</span> @tblNameComplete <span style="color: #808030;">=</span> @schema <span style="color: #808030;">+</span> <span style="color: #0000e6;">'.'</span> <span style="color: #808030;">+</span> @tblName

<span style="color: #800000; font-weight: bold;">INSERT</span> <span style="color: #808030;">#</span>t3
    <span style="color: #800000; font-weight: bold;">EXEC</span> sp_spaceused @tblNameComplete

<span style="color: #800000; font-weight: bold;">fetch</span> <span style="color: #800000; font-weight: bold;">next</span> <span style="color: #800000; font-weight: bold;">from</span> <span style="color: #800000; font-weight: bold;">c</span> <span style="color: #800000; font-weight: bold;">into</span> @partGUID
<span style="color: #800000; font-weight: bold;">end</span>
<span style="color: #800000; font-weight: bold;">close</span> <span style="color: #800000; font-weight: bold;">c</span>
<span style="color: #800000; font-weight: bold;">deallocate</span> <span style="color: #800000; font-weight: bold;">c</span>

<span style="color: #696969;">--select * from #t2</span>
<span style="color: #696969;">--select * from #t3</span>

<span style="color: #696969;">--results</span>
<span style="color: #800000; font-weight: bold;">select</span> <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>PartitionId<span style="color: #808030;">,</span>
    <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>Status<span style="color: #808030;">,</span>
    <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>PartitionStartTime<span style="color: #808030;">,</span>
    <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>PartitionCloseTime<span style="color: #808030;">,</span>
    <span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">rows</span><span style="color: #808030;">,</span>
    <span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>reserved<span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>reserved<span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #808030;">+</span> <span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>reserved<span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>reserved<span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">as</span> <span style="color: #0000e6;">'reservedKB'</span><span style="color: #808030;">,</span>
    <span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">data</span><span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">data</span><span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #808030;">+</span> <span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">data</span><span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">data</span><span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #800000; font-weight: bold;">as</span> <span style="color: #0000e6;">'dataKB'</span><span style="color: #808030;">,</span>
    <span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>index_size<span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>index_size<span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #808030;">+</span> <span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span>index_size<span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span>index_size<span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">as</span> <span style="color: #0000e6;">'indexKB'</span><span style="color: #808030;">,</span>
    <span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">unused</span><span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">unused</span><span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #808030;">+</span> <span style="color: #800000; font-weight: bold;">CAST</span><span style="color: #808030;">(</span><span style="color: #800000; font-weight: bold;">LEFT</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">unused</span><span style="color: #808030;">,</span><span style="color: #bb7977; font-weight: bold;">LEN</span><span style="color: #808030;">(</span><span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span><span style="color: #800000; font-weight: bold;">unused</span><span style="color: #808030;">)</span><span style="color: #808030;">-</span><span style="color: #008c00;">3</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">AS</span> <span style="color: #800000; font-weight: bold;">NUMERIC</span><span style="color: #808030;">(</span><span style="color: #008c00;">18</span><span style="color: #808030;">,</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span> <span style="color: #800000; font-weight: bold;">as</span> <span style="color: #0000e6;">'unusedKB'</span>
<span style="color: #800000; font-weight: bold;">from</span> <span style="color: #808030;">#</span>t1
<span style="color: #800000; font-weight: bold;">join</span> <span style="color: #808030;">#</span>t2
<span style="color: #800000; font-weight: bold;">on</span> <span style="color: #808030;">#</span>t2<span style="color: #808030;">.</span>PartitionId <span style="color: #808030;">=</span> <span style="color: #808030;">(</span><span style="color: #0000e6;">'dtEvent_'</span> <span style="color: #808030;">+</span> <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>PartitionId<span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">join</span> <span style="color: #808030;">#</span>t3
<span style="color: #800000; font-weight: bold;">on</span> <span style="color: #808030;">#</span>t3<span style="color: #808030;">.</span>PartitionId <span style="color: #808030;">=</span> <span style="color: #808030;">(</span><span style="color: #0000e6;">'dtString_'</span> <span style="color: #808030;">+</span> <span style="color: #808030;">#</span>t1<span style="color: #808030;">.</span>PartitionId<span style="color: #808030;">)</span>
<span style="color: #800000; font-weight: bold;">order</span> <span style="color: #800000; font-weight: bold;">by</span> PartitionStartTime <span style="color: #800000; font-weight: bold;">desc</span>

<span style="color: #696969;">--cleanup</span>
<span style="color: #800000; font-weight: bold;">drop</span> <span style="color: #800000; font-weight: bold;">table</span> <span style="color: #808030;">#</span>t1
<span style="color: #800000; font-weight: bold;">drop</span> <span style="color: #800000; font-weight: bold;">table</span> <span style="color: #808030;">#</span>t2
<span style="color: #800000; font-weight: bold;">drop</span> <span style="color: #800000; font-weight: bold;">table</span> <span style="color: #808030;">#</span>t3</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/05/04/improved-acs-partitions-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s play these three cards!</title>
		<link>http://www.muscetta.com/2011/05/03/lets-play-these-three-cards/</link>
		<comments>http://www.muscetta.com/2011/05/03/lets-play-these-three-cards/#comments</comments>
		<pubDate>Tue, 03 May 2011 16:58:03 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[cards]]></category>
		<category><![CDATA[comedy]]></category>
		<category><![CDATA[illusions]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[tarots]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=522</guid>
		<description><![CDATA[What does the population need, in order not to think to their day to day reality? a Romantic Fairy Tale http://www.officialroyalwedding2011.org/ a new Saint http://www.giovannipaoloii.va/ an Evil Guy to defeat http://www.whitehouse.gov/blog/2011/05/02/osama-bin-laden-dead &#160; Three cards have been played in a single weekend. Welcome back to the Middle Ages, or welcome to Dreamworld. [Note: To give due [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>What does the population need, in order not to think to their day to day reality?</p>
<ol>
<li>a Romantic Fairy Tale <a href="http://www.officialroyalwedding2011.org/">http://www.officialroyalwedding2011.org/</a> </li>
<li>a new Saint <a href="http://www.giovannipaoloii.va/">http://www.giovannipaoloii.va/</a> </li>
<li>an Evil Guy to defeat <a href="http://www.whitehouse.gov/blog/2011/05/02/osama-bin-laden-dead">http://www.whitehouse.gov/blog/2011/05/02/osama-bin-laden-dead</a>       <br />&#160; </li>
</ol>
<p>Three cards have been played in a single weekend.</p>
<p>Welcome back to the Middle Ages, or welcome to Dreamworld.</p>
<p><a href="http://www.muscetta.com/wp-content/uploads/tarocchi.jpg" rel="lightbox"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Tarots" border="0" alt="Tarots" src="http://www.muscetta.com/wp-content/uploads/tarocchi_thumb.jpg" width="600" height="340" /></a></p>
<p>[Note: To give due credits, this was posted by my friend Valentina in Italian at <a href="http://www.bastet.it/intheskywithdiamonds/2011/05/02/e-giochiamoci-queste-tre-carte/">http://www.bastet.it/intheskywithdiamonds/2011/05/02/e-giochiamoci-queste-tre-carte/</a> - I thought it was worth spreading it a bit more and I asked her permission to translate it and republish it here]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/05/03/lets-play-these-three-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If not now, when?</title>
		<link>http://www.muscetta.com/2011/02/14/if-not-now-when/</link>
		<comments>http://www.muscetta.com/2011/02/14/if-not-now-when/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 20:33:00 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=519</guid>
		<description><![CDATA[The great majority of women In Italy is working both inside and outside home, they produce wealth, they look for a job ( one out of two succeeds), they study and make sacrifices to assert themselves in the chosen profession, they take care of their relations and look after children, husbands and aged parents. Quite [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/dani3l3/5442543068/"><img src="http://farm5.static.flickr.com/4074/5442543068_9b2b5ec509.jpg" alt="If not now, when?" /></a><br />
</p>
<p>The great majority of women In Italy is working both inside and outside home, they produce wealth, they look for a job ( one out of two succeeds), they study and make sacrifices to assert themselves in the chosen profession, they take care of their relations and look after children, husbands and aged parents.<br />
Quite a few are engaged in public issues, in parties, in trade unions, in enterprises, in organisations and in voluntary services with the aim that the society they are living in might become richer, more civilized and welcoming. They have consideration and respect for themselves and for liberty and dignity achieved by the women who built our democratic nation, worth to be mentioned on occasion of the 150 th Celebration of Italian Unity.<br />
This rich and important life experience is being deleted by the image of women constantly and indecently represented as bare objects of sexual exchange, in newspapers, advertisements and television programs. This in no longer bearable.<br />
A wide-spread attitude offers to young people the idea of reaching glamorous goals and easy money by giving up their beauty and intelligence to the one in power , who is willing to pay back with public funds and positions.<br />
This way of thinking and the consequent behaviours are polluting social life and the models of civil ethic and religious awareness. Inadvertently we crossed the bounds of decency. <br />
The model of man-woman relation exhibited by one of the highest State Authorities deeply affects our lifestyles and culture justifying detrimental behaviour to women’s dignity and to the institutions.<br />
Those who want to keep silence, support, justify and reduce the ongoing events to private matters, should take responsibility also in front of the international community.<br />
We are asking all women, without any distinction, to protect the value of our dignity and we are telling to men: If not now, when? It’s time to proof friendship to women.</p>
<p><a href="http://senonoraquando13febbraio2011.wordpress.com/" rel="nofollow">senonoraquando13febbraio2011.wordpress.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2011/02/14/if-not-now-when/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpsMgr Agents and Gateways Failover Queries</title>
		<link>http://www.muscetta.com/2010/12/23/opsmgr-agents-and-gateways-failover-queries/</link>
		<comments>http://www.muscetta.com/2010/12/23/opsmgr-agents-and-gateways-failover-queries/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 13:44:38 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[TSQL]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2010/12/23/opsmgr-agents-and-gateways-failover-queries/</guid>
		<description><![CDATA[The following article by Jimmy Harper explains very well how to set up agents and gateways’ failover paths thru Powershell http://blogs.technet.com/b/jimmyharper/archive/2010/07/23/powershell-commands-to-configure-gateway-server-agent-failover.aspx . This is the approach I also recommend, and that article is great – I encourage you to check it out if you haven’t done it yet! Anyhow, when checking for the actual failover [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>The following article by Jimmy Harper explains very well how to set up agents and gateways’ failover paths thru Powershell <a title="http://blogs.technet.com/b/jimmyharper/archive/2010/07/23/powershell-commands-to-configure-gateway-server-agent-failover.aspx" href="http://blogs.technet.com/b/jimmyharper/archive/2010/07/23/powershell-commands-to-configure-gateway-server-agent-failover.aspx">http://blogs.technet.com/b/jimmyharper/archive/2010/07/23/powershell-commands-to-configure-gateway-server-agent-failover.aspx</a> . This is the approach I also recommend, and that article is great – I encourage you to check it out if you haven’t done it yet!</p>
<p>Anyhow, when checking for the actual failover paths that have been configured, the use of Powershell suggested by Jimmy is rather slow – especially if your agent count is high. In the Operations Manager Health Check tool I was also using that technique at the beginning, but eventually moved to the use of SQL queries just for performance reasons. Since then, we have been using these SQL queries quite successfully for about 3 years now.</p>
<p>But this the season of giving&#8230; and I guess SQL Queries can be a gift, right? Therefore I am now donating them as Christmas Gift to the OpsMrg community <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.muscetta.com/wp-content/uploads/wlEmoticon-smile1.png" /></p>
<p>Enjoy – and Merry Christmas!</p>
<p>&#160;</p>
<pre style="background: #ffffff; color: #000000"><span style="color: #696969">--GetAgentForWhichServerIsPrimary</span>
<span style="color: #800000; font-weight: bold">SELECT</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Agent<span style="color: #808030">,</span>TargetBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Server
<span style="color: #800000; font-weight: bold">FROM</span> Relationship <span style="color: #800000; font-weight: bold">R</span> <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity SourceBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>SourceEntityID <span style="color: #808030">=</span> SourceBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity TargetBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>TargetEntityID <span style="color: #808030">=</span> TargetBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">WHERE</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>RelationshipTypeId <span style="color: #808030">=</span> dbo<span style="color: #808030">.</span>fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceCommunication<span style="color: #808030">(</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">not</span> <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.GatewayManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">not</span> <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName <span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId <span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.ManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #0000e6">'0'</span>

<span style="color: #696969">--GetAgentForWhichServerIsFailover</span>
<span style="color: #800000; font-weight: bold">SELECT</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Agent<span style="color: #808030">,</span>TargetBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Server
<span style="color: #800000; font-weight: bold">FROM</span> Relationship <span style="color: #800000; font-weight: bold">R</span> <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity SourceBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>SourceEntityID <span style="color: #808030">=</span> SourceBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity TargetBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>TargetEntityID <span style="color: #808030">=</span> TargetBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">WHERE</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>RelationshipTypeId <span style="color: #808030">=</span> dbo<span style="color: #808030">.</span>fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceSecondaryCommunication<span style="color: #808030">(</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">not</span> <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.GatewayManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">not</span> <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.ManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #0000e6">'0'</span>

<span style="color: #696969">--GetGatewayForWhichServerIsPrimary</span>
<span style="color: #800000; font-weight: bold">SELECT</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Gateway<span style="color: #808030">,</span> TargetBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Server
<span style="color: #800000; font-weight: bold">FROM</span> Relationship <span style="color: #800000; font-weight: bold">R</span> <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity SourceBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>SourceEntityID <span style="color: #808030">=</span> SourceBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity TargetBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>TargetEntityID <span style="color: #808030">=</span> TargetBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">WHERE</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>RelationshipTypeId <span style="color: #808030">=</span> dbo<span style="color: #808030">.</span>fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceCommunication<span style="color: #808030">(</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.GatewayManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #0000e6">'0'</span>

<span style="color: #696969">--GetGatewayForWhichServerIsFailover</span>
<span style="color: #800000; font-weight: bold">SELECT</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">As</span> Gateway<span style="color: #808030">,</span> TargetBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Server
<span style="color: #800000; font-weight: bold">FROM</span> Relationship <span style="color: #800000; font-weight: bold">R</span> <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity SourceBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>SourceEntityID <span style="color: #808030">=</span> SourceBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">JOIN</span> BaseManagedEntity TargetBME
<span style="color: #800000; font-weight: bold">ON</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>TargetEntityID <span style="color: #808030">=</span> TargetBME<span style="color: #808030">.</span>BaseManagedEntityID
<span style="color: #800000; font-weight: bold">WHERE</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>RelationshipTypeId <span style="color: #808030">=</span> dbo<span style="color: #808030">.</span>fn_ManagedTypeId_MicrosoftSystemCenterHealthServiceSecondaryCommunication<span style="color: #808030">(</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> SourceBME<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> DisplayName
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedEntityGenericView <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> MonitoringClassId <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> ManagedTypeId
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>ManagedType <span style="color: #800000; font-weight: bold">WITH</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">NOLOCK</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">where</span> TypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.GatewayManagementServer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> IsDeleted <span style="color: #808030">=</span><span style="color: #0000e6">'0'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">AND</span> <span style="color: #800000; font-weight: bold">R</span><span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #0000e6">'0'</span>

<span style="color: #696969">--xplat agents</span>
<span style="color: #800000; font-weight: bold">select</span> bme2<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> XPlatAgent<span style="color: #808030">,</span> bme<span style="color: #808030">.</span>DisplayName <span style="color: #800000; font-weight: bold">as</span> Server
<span style="color: #800000; font-weight: bold">from</span> dbo<span style="color: #808030">.</span>Relationship <span style="color: #800000; font-weight: bold">r</span> <span style="color: #800000; font-weight: bold">with</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">nolock</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">join</span> dbo<span style="color: #808030">.</span>RelationshipType rt <span style="color: #800000; font-weight: bold">with</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">nolock</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">on</span> <span style="color: #800000; font-weight: bold">r</span><span style="color: #808030">.</span>RelationshipTypeId <span style="color: #808030">=</span> rt<span style="color: #808030">.</span>RelationshipTypeId
<span style="color: #800000; font-weight: bold">join</span> dbo<span style="color: #808030">.</span>BasemanagedEntity bme <span style="color: #800000; font-weight: bold">with</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">nolock</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">on</span> bme<span style="color: #808030">.</span>basemanagedentityid <span style="color: #808030">=</span> <span style="color: #800000; font-weight: bold">r</span><span style="color: #808030">.</span>SourceEntityId
<span style="color: #800000; font-weight: bold">join</span> dbo<span style="color: #808030">.</span>BasemanagedEntity bme2 <span style="color: #800000; font-weight: bold">with</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">nolock</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">on</span> <span style="color: #800000; font-weight: bold">r</span><span style="color: #808030">.</span>TargetEntityId <span style="color: #808030">=</span> bme2<span style="color: #808030">.</span>BaseManagedEntityId
<span style="color: #800000; font-weight: bold">where</span> rt<span style="color: #808030">.</span>RelationshipTypeName <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.SystemCenter.HealthServiceManagesEntity'</span>
<span style="color: #800000; font-weight: bold">and</span> bme<span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #008c00">0</span>
<span style="color: #800000; font-weight: bold">and</span> <span style="color: #800000; font-weight: bold">r</span><span style="color: #808030">.</span>IsDeleted <span style="color: #808030">=</span> <span style="color: #008c00">0</span>
<span style="color: #800000; font-weight: bold">and</span> bme2<span style="color: #808030">.</span>basemanagedtypeid <span style="color: #800000; font-weight: bold">in</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">SELECT</span> DerivedTypeId
<span style="color: #800000; font-weight: bold">FROM</span> DerivedManagedTypes <span style="color: #800000; font-weight: bold">with</span> <span style="color: #808030">(</span><span style="color: #bb7977; font-weight: bold">nolock</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">WHERE</span> BaseTypeId <span style="color: #808030">=</span> <span style="color: #808030">(</span><span style="color: #800000; font-weight: bold">select</span> managedtypeid
<span style="color: #800000; font-weight: bold">from</span> managedtype <span style="color: #800000; font-weight: bold">where</span> typename <span style="color: #808030">=</span> <span style="color: #0000e6">'Microsoft.Unix.Computer'</span><span style="color: #808030">)</span>
<span style="color: #800000; font-weight: bold">and</span> DerivedIsAbstract <span style="color: #808030">=</span> <span style="color: #008c00">0</span><span style="color: #808030">)</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/12/23/opsmgr-agents-and-gateways-failover-queries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got Orphaned OpsMgr Objects?</title>
		<link>http://www.muscetta.com/2010/12/17/got-orphaned-opsmgr-objects/</link>
		<comments>http://www.muscetta.com/2010/12/17/got-orphaned-opsmgr-objects/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 20:56:18 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[agents]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[orphan]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=516</guid>
		<description><![CDATA[Have you ever wondered what would happen if, in Operations Manager, you’d delete a Management Server or Gateway that managed objects (such as network devices) or has agents pointing uniquely to it as their primary server? The answer is simple, but not very pleasant: you get ORPHANED objects, which will linger in the database but [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Have you ever wondered what would happen if, in Operations Manager, you’d <strong>delete</strong> a Management Server or Gateway that managed objects (such as network devices) or has agents pointing uniquely to it as their primary server?</p>
<p>The answer is simple, but not very pleasant: you get ORPHANED objects, which will linger in the database but you won’t be able to “see” or re-assign anymore from the GUI.</p>
<p>So the first thing I want to share is a query to determine IF you have any of those orphaned agents. Or even if you know, since you are not able to &#034;see&#034; them from the console, you might have to dig their name out of the database. Here&#039;s a query I got from a colleague in our reactive support team:</p>
<p><code><br />
<span style="color: #808080; font-style: italic;">-- Check for orphaned health services (e.g. agent).</span><br />
declare @DiscoverySourceId uniqueidentifier;<br />
<span style="color: #993333; font-weight: bold;">SET</span> @DiscoverySourceId <span style="color: #66cc66;">=</span> dbo.fn_DiscoverySourceId_User<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;<br />
<span style="color: #993333; font-weight: bold;">SELECT</span> TME.<span style="color: #66cc66;">[</span>TypedManagedEntityid<span style="color: #66cc66;">]</span>, HS.PrincipalName<br />
<span style="color: #993333; font-weight: bold;">FROM</span> MTV_HealthService HS<br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> dbo.<span style="color: #66cc66;">[</span>BaseManagedEntity<span style="color: #66cc66;">]</span> BHS <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> BHS.<span style="color: #66cc66;">[</span>BaseManagedEntityId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> HS.<span style="color: #66cc66;">[</span>BaseManagedEntityId<span style="color: #66cc66;">]</span><br />
<span style="color: #808080; font-style: italic;">-- get host managed computer instances</span><br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> dbo.<span style="color: #66cc66;">[</span>TypedManagedEntity<span style="color: #66cc66;">]</span> TME <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> TME.<span style="color: #66cc66;">[</span>BaseManagedEntityId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> BHS.<span style="color: #66cc66;">[</span>TopLevelHostEntityId<span style="color: #66cc66;">]</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> TME.<span style="color: #66cc66;">[</span>IsDeleted<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> dbo.<span style="color: #66cc66;">[</span>DerivedManagedTypes<span style="color: #66cc66;">]</span> DMT <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> DMT.<span style="color: #66cc66;">[</span>DerivedTypeId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> TME.<span style="color: #66cc66;">[</span>ManagedTypeId<span style="color: #66cc66;">]</span><br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> dbo.<span style="color: #66cc66;">[</span>ManagedType<span style="color: #66cc66;">]</span> BT <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> DMT.<span style="color: #66cc66;">[</span>BaseTypeId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> BT.<span style="color: #66cc66;">[</span>ManagedTypeId<span style="color: #66cc66;">]</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> BT.<span style="color: #66cc66;">[</span>TypeName<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> N<span style="color: #ff0000;">'Microsoft.Windows.Computer'</span><br />
<span style="color: #808080; font-style: italic;">-- only with missing primary</span><br />
<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">OUTER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> dbo.Relationship HSC <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> HSC.<span style="color: #66cc66;">[</span>SourceEntityId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> HS.<span style="color: #66cc66;">[</span>BaseManagedEntityId<span style="color: #66cc66;">]</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> HSC.<span style="color: #66cc66;">[</span>RelationshipTypeId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> dbo.fn_RelationshipTypeId_HealthServiceCommunication<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> HSC.<span style="color: #66cc66;">[</span>IsDeleted<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> DiscoverySourceToTypedManagedEntity DSTME <span style="color: #993333; font-weight: bold;">WITH</span><span style="color: #66cc66;">(</span>nolock<span style="color: #66cc66;">)</span><br />
<span style="color: #993333; font-weight: bold;">ON</span> DSTME.<span style="color: #66cc66;">[</span>TypedManagedEntityId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> TME.<span style="color: #66cc66;">[</span>TypedManagedEntityId<span style="color: #66cc66;">]</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> DSTME.<span style="color: #66cc66;">[</span>DiscoverySourceId<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> @DiscoverySourceId<br />
<span style="color: #993333; font-weight: bold;">WHERE</span> HS.<span style="color: #66cc66;">[</span>IsAgent<span style="color: #66cc66;">]</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><br />
<span style="color: #993333; font-weight: bold;">AND</span> HSC.<span style="color: #66cc66;">[</span>RelationshipId<span style="color: #66cc66;">]</span> <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span>;</code></p>
<p>Once you have identified the agent you need to re-assign to a new management server, this is doable from the SDK. Below is a powershell script I wrote which will re-assign it to the RMS. It has to run from within the OpsMgr Command Shell.<br />
You still need to change the logic which chooses which agent &#8211; this is meant as a starting base&#8230; you could easily expand it into accepting parameters and/or consuming an input text file, or using a different Management Server than the RMS&#8230; you get the point.</p>
<div class="dp-highlighter">
<ol class="dp-rb">
<li class="alt">$mg = (get-managementgroupconnection).managementgroup</li>
<li>$mrc = Get-RelationshipClass | where {$_.name –like <span class="string">&#034;*Microsoft.SystemCenter.HealthServiceCommunication*&#034;</span>}</li>
<li class="alt">$cmro = <span class="keyword">new</span>-object Microsoft.EnterpriseManagement.Monitoring.CustomMonitoringRelationshipObject($mrc)</li>
<li>$rms = (get-rootmanagementserver).HostedHealthService</li>
<li class="alt"></li>
<li>$deviceclass = $mg.getmonitoringclass(“HealthService”)</li>
<li class="alt">$mc = Get-connector | where {$_.Name –like “*MOM Internal Connector*”}</li>
<li></li>
<li class="alt">Foreach ($obj <span class="keyword">in</span> $mg.GetMonitoringObjects($deviceclass))</li>
<li>{</li>
<li class="alt"><span class="preprocessor">    #the next line should be changed to pick the right agent to re-assign </span></li>
<li>    <span class="keyword">if</span> ($obj.DisplayName -match <span class="string">&#039;dsxlab&#039;</span>)</li>
<li class="alt">    {</li>
<li>                Write-host $obj.displayname</li>
<li class="alt">                $imdd = <span class="keyword">new</span>-object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalMonitoringDiscoveryData</li>
<li>                $cmro.SetSource($obj)</li>
<li class="alt">                $cmro.SetTarget($rms)</li>
<li>                $imdd.Add($cmro)</li>
<li class="alt">                $imdd.Commit($mc)</li>
<li>    }</li>
<li class="alt">}</li>
</ol>
<p><textarea class="originalCode" style="display: none;">$mg = (get-managementgroupconnection).managementgroup&lt;br /&gt; $mrc = Get-RelationshipClass | where {$_.name –like &#034;*Microsoft.SystemCenter.HealthServiceCommunication*&#034;}&lt;br /&gt; $cmro = new-object Microsoft.EnterpriseManagement.Monitoring.CustomMonitoringRelationshipObject($mrc)&lt;br /&gt; $rms = (get-rootmanagementserver).HostedHealthService&lt;/p&gt; &lt;p&gt;$deviceclass = $mg.getmonitoringclass(“HealthService”)&lt;br /&gt; $mc = Get-connector | where {$_.Name –like “*MOM Internal Connector*”}&lt;/p&gt; &lt;p&gt;Foreach ($obj in $mg.GetMonitoringObjects($deviceclass))&lt;br /&gt; {&lt;br /&gt; #the next line should be changed to pick the right agent to re-assign&lt;br /&gt; if ($obj.DisplayName -match &#039;dsxlab&#039;)&lt;br /&gt; {&lt;br /&gt; Write-host $obj.displayname&lt;br /&gt; $imdd = new-object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalMonitoringDiscoveryData&lt;br /&gt; $cmro.SetSource($obj)&lt;br /&gt; $cmro.SetTarget($rms)&lt;br /&gt; $imdd.Add($cmro)&lt;br /&gt; $imdd.Commit($mc)&lt;br /&gt; }&lt;br /&gt; }&lt;/p&gt; &lt;p&gt;</textarea></p>
</div>
<p>Similarly, you might get orphaned network devices. The script below is used to re-assign all Network Devices to the RMS. This script is actually something I have had even before the other one (yes, it has been sitting in my &#034;digital drawer&#034; for a couple of years or more&#8230;) and uses the same concept &#8211; only you might notice that the relation&#039;s source and target are &#034;reversed&#034;, since the relationships are different:</p>
<ul>
<li>the Management Server (source) &#034;manages&#034; the Network Device (target)</li>
<li>the Agent (source) &#034;talks&#034; to the Management Server (target)</li>
</ul>
<p>With a bit of added logic it should be easy to have it work for specific devices.</p>
<div class="dp-highlighter">
<ol class="dp-rb">
<li class="alt">$mg = (get-managementgroupconnection).managementgroup</li>
<li></li>
<li class="alt">$mrc = Get-RelationshipClass | where {$_.name –like <span class="string">&#034;*Microsoft.SystemCenter.HealthServiceShouldManageEntity*&#034;</span>}</li>
<li></li>
<li class="alt">$cmro = <span class="keyword">new</span>-object Microsoft.EnterpriseManagement.Monitoring.CustomMonitoringRelationshipObject($mrc)</li>
<li>$rms = (get-rootmanagementserver).HostedHealthService</li>
<li class="alt"></li>
<li>$deviceclass = $mg.getmonitoringclass(“NetworkDevice”)</li>
<li class="alt"></li>
<li>Foreach ($obj in $mg.GetMonitoringObjects($deviceclass))</li>
<li class="alt"></li>
<li>{</li>
<li class="alt">                Write-host $obj.displayname</li>
<li>                $imdd = <span class="keyword">new</span>-object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalMonitoringDiscoveryData</li>
<li class="alt">                $cmro.SetSource($rms)</li>
<li>                $cmro.SetTarget($obj)</li>
<li class="alt">                $imdd.Add($cmro)</li>
<li></li>
<li class="alt">                $mc = Get-connector | where {$_.Name –like “*MOM Internal Connector*”}</li>
<li></li>
<li class="alt">                $imdd.Commit($mc)</li>
<li>}</li>
</ol>
<p><textarea class="originalCode" style="display: none;">$mg = (get-managementgroupconnection).managementgroup&lt;/p&gt; &lt;p&gt;$mrc = Get-RelationshipClass | where {$_.name –like &#034;*Microsoft.SystemCenter.HealthServiceShouldManageEntity*&#034;}&lt;/p&gt; &lt;p&gt;$cmro = new-object Microsoft.EnterpriseManagement.Monitoring.CustomMonitoringRelationshipObject($mrc)&lt;br /&gt; $rms = (get-rootmanagementserver).HostedHealthService&lt;/p&gt; &lt;p&gt;$deviceclass = $mg.getmonitoringclass(“NetworkDevice”)&lt;/p&gt; &lt;p&gt;Foreach ($obj in $mg.GetMonitoringObjects($deviceclass))&lt;/p&gt; &lt;p&gt;{&lt;br /&gt; Write-host $obj.displayname&lt;br /&gt; $imdd = new-object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalMonitoringDiscoveryData&lt;br /&gt; $cmro.SetSource($rms)&lt;br /&gt; $cmro.SetTarget($obj)&lt;br /&gt; $imdd.Add($cmro)&lt;/p&gt; &lt;p&gt; $mc = Get-connector | where {$_.Name –like “*MOM Internal Connector*”}&lt;/p&gt; &lt;p&gt; $imdd.Commit($mc)&lt;br /&gt; }&lt;/p&gt; &lt;p&gt;</textarea></p>
</div>
<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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/12/17/got-orphaned-opsmgr-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does anyone have a new System Center sticker for me?</title>
		<link>http://www.muscetta.com/2010/11/27/does-anyone-have-a-new-system-center-sticker-for-me/</link>
		<comments>http://www.muscetta.com/2010/11/27/does-anyone-have-a-new-system-center-sticker-for-me/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 12:19:21 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[xplat]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[sticker]]></category>
		<category><![CDATA[system center]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=515</guid>
		<description><![CDATA[I got this sticker last APRIL at MMS2010 in JUST ONE COPY, and I waited till I got a NEW laptop in SEPTEMBER to actually use that&#8230; It also took a while to stick it on properly (other than to re-install the PC as I wanted&#8230;),  but this week they told me that, for an error, [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/5204066237/"><img src="http://farm5.static.flickr.com/4091/5204066237_8de87d0899.jpg" alt="Does anyone have a new System Center sticker?" /></a></p>
<p>I got this sticker last APRIL at MMS2010 in JUST ONE COPY, and I waited till I got a NEW laptop in SEPTEMBER to actually use that&#8230;<br />
It also took a while to stick it on properly (other than to re-install the PC as I wanted&#8230;),  but this week they told me that, for an error, I got given the wrong machine (they did it all themselves, tho - I did not ask for any specific one) and this one needs to be replaced!!!!</p>
<p>This is WORSE than any hardware FAILure, as the machine just works very well and I was expecting to keep it for the next two years <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Can anyone be so nice to send me one of those awesome stickers again? <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/2010/11/27/does-anyone-have-a-new-system-center-sticker-for-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inversely Proportional</title>
		<link>http://www.muscetta.com/2010/11/17/inversely-proportional/</link>
		<comments>http://www.muscetta.com/2010/11/17/inversely-proportional/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 13:42:34 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=514</guid>
		<description><![CDATA[Some time ago I was reading www.caffeinatedcoder.com/book-review-the-c-programming-la&#8230; [...] Since a good portion of the C# books are between the 500 and 1000 page range, it was refreshing to read a book that was less than 200 pages. Partly this is because when the book was published the surface area of the reusable API was a [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/5135380596/"><img src="http://farm5.static.flickr.com/4027/5135380596_3e5ae05b0d.jpg" alt="Inversely Proportional" /></a></p>
<p>Some time ago I was reading <a rel="nofollow" href="http://www.caffeinatedcoder.com/book-review-the-c-programming-language/">www.caffeinatedcoder.com/book-review-the-c-programming-la&#8230;</a></p>
<blockquote><p>[...] Since a good portion of the C# books are between the 500 and 1000 page range, it was refreshing to read a book that was less than 200 pages. Partly this is because when the book was published the surface area of the reusable API was a small fraction of what it is now. However, I also wonder if there was an expectation of disciplined conciseness in technical writing back in the late 80’s that simply no longer exists today. [...]</p></blockquote>
<p>I think this is a very important point. But then, again, it was no secret &#8211; this was written in the <a rel="nofollow" href="http://www.trunix.org/programlama/c/CProgrammingLanguage/preface1.html">Preface to the first edition of that book</a>:</p>
<blockquote><p>[...] is not a &#034;very high level&#034; language, nor a &#034;big&#034; one, and is not specialized to any particular area of application. But its absence of resrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages. [...]</p></blockquote>
<p>I think it all boils down to simplicity, as Glenn Scott says in <a rel="nofollow" href="http://glennsc.com/start-a-revolution-with-confident-simplicity">glennsc.com/start-a-revolution-with-confident-simplicity</a></p>
<blockquote><p>[...] To master this technique you need to adopt this mindset that your product is, say, simple and clean, and you just know this, and you are confident and assured of this. There is no urgent need to “prove” anything. [...]</p></blockquote>
<p>Another similar book on a (different) programming language, is <a rel="nofollow" href="http://www.ruby-doc.org/docs/ProgrammingRuby/">&#034;Programming Ruby, the pragmatic programmer&#039;s guide&#034;</a> which starts with</p>
<blockquote><p>[...] This book is a tutorial and reference for the Ruby programming language. Use Ruby, and you&#039;ll write better code, be more productive, and enjoy programming more. [...] As Pragmatic Programmers we&#039;ve tried many, many languages in our search for tools to make our lives easier, for tools to help us do our jobs better. Until now, though, we&#039;d always been frustrated by the languages we were using. [...]</p></blockquote>
<p>Of course that language is simple and sweet, very expressive, and programmers are seen as having to be &#034;pragmatic&#034;. No nonsensical, incredibly complex cathedrals (in the language itself and in the documentation) &#8211; but quick and dirty things that just WORK.</p>
<p>But way too often, the size of a book is considered a measure for its quality and depth.<br />
I recently read on Twitter about an upcoming &#034;Programming Windows Phone 7&#034; book that would be more than a thousand pages in size: <a rel="nofollow" href="http://twitter.com/#!/MicrosoftPress/status/27374650771">twitter.com/#!/MicrosoftPress/status/27374650771</a></p>
<p>I mean: I do understand that there are many API&#039;s to take a look at and the book wants to be comprehensive&#8230;but&#8230;. do they really think that the sheer *size* of a book (&gt;1000 pages) is an advantage in itself? it might actually scare people away, for how I see things. But it must be me.</p>
<p>In the meantime the book has been released and can be dowloaded from here <a rel="nofollow" href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx">blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-&#8230;</a></p>
<p>I have not looked at it yet &#8211; when I will have time to take a look at it I&#039;ll be able to judge better&#8230;</p>
<p>for now I only incidentally noticed that a quick search for <a rel="nofollow" href="http://www.amazon.com/Professional-iPhone-iPod-touch-Programming/dp/0470251557#_">books</a> about <a rel="nofollow" href="http://www.amazon.com/gp/product/0321503619?ie=UTF8&amp;tag=shinthin-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321503619#_">programming</a> the <a rel="nofollow" href="http://www.amazon.com/Beginning-iPhone-Development-Exploring-SDK/dp/1430216263#_">iPhone/iPad</a> returns books that are between 250 and 500 pages maximum&#8230;</p>
<p>And yet simplicity CAN be known to us, and some teams really &#034;Get it&#034;: take Powershell, for example &#8211; it is a refreshing example of this: the <a rel="nofollow" href="http://blogs.msdn.com/b/powershell/">official powershell blog</a> has a subtitle of &#034;changing the world, one line at the time&#034; &#8211; that&#039;s a strong statement&#8230; but in line with the empowerment that simplicity enables. In fact, Bruce Payette&#039;s book &#034;Powershell in Action&#034; is also not huge.<br />
I suppose it must be a coincidence. Or maybe not.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/11/17/inversely-proportional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft.Linux.RHEL.5.LogicalDisk.DiskBytesPerSecond Type Mismatch</title>
		<link>http://www.muscetta.com/2010/10/22/microsoft-linux-rhel-5-logicaldisk-diskbytespersecond-type-mismatch/</link>
		<comments>http://www.muscetta.com/2010/10/22/microsoft-linux-rhel-5-logicaldisk-diskbytespersecond-type-mismatch/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 14:18:58 +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[cast]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[iostat]]></category>
		<category><![CDATA[null]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[scx]]></category>
		<category><![CDATA[syssstat]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[typemismatch]]></category>
		<category><![CDATA[ws-man]]></category>
		<category><![CDATA[wsman]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=513</guid>
		<description><![CDATA[I have had the following in my notes for a while… and I have not blogged in a while (been too busy) so I decided to blog it today, before the topic gets too old and starts stinking &#160; It all started when a customer showed me an Alert he was seeing in his environment [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I have had the following in my notes for a while… and I have not blogged in a while (been too busy) so I decided to blog it today, before the topic gets too old and starts stinking <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.muscetta.com/wp-content/uploads/wlEmoticon-smile.png" /></p>
<p>&#160;</p>
<p>It all started when a customer showed me an Alert he was seeing in his environment from some XPlat workflow. The alert looks like the following:</p>
<p><strong>Generic Performance Mapper Module Failed Execution      <br /></strong>Alert Description Source: RLWSCOM02.domain.dom     <br />Module was unable to convert parameter to a double value     <br />Original parameter: &#039;$Data///*[local-name()=&quot;BytesPerSecond&quot;]$&#039;     <br />Parameter after $Data replacement: &#034;     <br />Error: 0&#215;80020005     <br />Details: Type mismatch.     <br />One or more workflows were affected by this.     <br />Workflow name: Microsoft.Linux.RHEL.5.LogicalDisk.DiskBytesPerSecond.Collection     <br />Instance name: /     <br />Instance ID: {4F6FA8F5-C56F-4C9B-ED36-12DAFF4073D1}     <br />Management group: DataCenter     <br />Path: <a href="console:execute?viewname=Microsoft.SystemCenter.StateView&amp;viewtarget=378a23ca-03a7-1809-71fd-083539b7f171&amp;viewtargettype=ea99500d-8d52-fc52-b5a5-10dcd1e9d2bd">RLWSCOM02.domain.dom</a>\<b>RLWSCOM02.domain.dom</b> Alert Rule: <a href="console:action?rulesettings">Generic Performance Mapper Module Runtime Failure</a> Created: 6/28/2010 11:30:28 PM</p>
<p>&#160;</p>
<p>First I stumbled into this forum post which mentions he same symptom <a href="http://social.technet.microsoft.com/Forums/en-US/crossplatformgeneral/thread/62e0bf3e-be6f-4218-a37b-f1e66f02aa49">http://social.technet.microsoft.com/Forums/en-US/crossplatformgeneral/thread/62e0bf3e-be6f-4218-a37b-f1e66f02aa49</a> &#8211; but when looking at the resolution, the locale on the customer machine was good (== set to US settings), so I concluded that it was not the same root cause. </p>
<p>&#160;</p>
<p>Then I looked at what that rule was supposed to do, and queried the same CIM class both remotely thru WS-Man and locally via CIM, and concluded that my issue was that certain values were returning as NULL while we were expecting to see a number on the Management Server – therefore the Type Mismatch!</p>
<p><a href="http://www.muscetta.com/2009/03/27/cross-platform-in-opsmgr-2007-r2-release-candidate/" target="_blank">I have explained</a> previously <a href="http://www.muscetta.com/2009/06/01/using-the-scx-agent-with-wsman-from-powershell-v2/" target="_blank">how to run CIM</a> queries <a href="http://www.muscetta.com/2009/10/26/invoking-methods-on-the-xplat-agent-with-winrm/" target="_blank">against the XPlat agent</a>; in this case it was the following one:</p>
<p><strong>winrm enumerate http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_FileSystemStatisticalInformation?__cimnamespace=root/scx -username:scomuser -password:password -r:https://rllspago01.domain.dom:1270/wsman -auth:basic –skipCACheck -skipCNCheck</strong></p>
<p>&#160;</p>
<p><strong>SCX_FileSystemStatisticalInformation</strong></p>
<p>AverageDiskQueueLength = null</p>
<p>AverageTransferTime = null</p>
<p>BytesPerSecond = null</p>
<p>Caption = File system information</p>
<p>Description = Performance statistics related to a logical unit of secondary storage</p>
<p>ElementName = null</p>
<p>FreeMegabytes = 4007</p>
<p>IsAggregate = false</p>
<p>IsOnline = true</p>
<p>Name = /</p>
<p>PercentBusyTime = null</p>
<p>PercentFreeSpace = 55</p>
<p>PercentIdleTime = null</p>
<p>PercentUsedSpace = 45</p>
<p>ReadBytesPerSecond = null</p>
<p>ReadsPerSecond = null</p>
<p>TransfersPerSecond = null</p>
<p>UsedMegabytes = 3278</p>
<p>WriteBytesPerSecond = null</p>
<p>WritesPerSecond = null</p>
<p>&#160;</p>
<p>See the NULLs ? Those are our issue.</p>
<p>Now, before you continue reading, I will tell you that I have investigated this also internally, and apparently we have just (in <a href="http://support.microsoft.com/kb/2251525/" target="_blank">Cumulative Update 3</a>) changed this behaviour in our XPlat modules, so that when NULL is returned, we consider it to be ZERO. Good or bad that is, it will at least take care of the error. But if you don’t get any data from the Unix system… well, you are not getting any data – so that might cause a surprise later on when you go and look at those charts and expect to see your disk “performance counters” but in fact all you have is a bunch of ZERO’s (how very interesting!). So, basically, the fix in CU3 suppresses the symptom, but does not address the cause.</p>
<p>So, let’s see what is actually causing this, as you might well want to get those statistics, or probably you would not be monitoring that server!</p>
<p>I looked at the <strong>Cimd.log</strong> (set to verbose) only says the following (basically not much: is getting info for 3 partitions… and the provider code is working)</p>
<p>2010-09-01T08:38:32,796Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] BaseProvider::EnumInstances()</p>
<p>2010-09-01T08:38:33,359Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] Object Path = //rllspago01.domain.dom/root/scx:SCX_FileSystemStatisticalInformation</p>
<p>2010-09-01T08:38:33,359Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] BaseProvider::EnumInstances() &#8211; Calling DoEnumInstances()</p>
<p>2010-09-01T08:38:33,359Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] DiskProvider DoEnumInstances</p>
<p>2010-09-01T08:38:33,359Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] DiskProvider GetDiskEnumeration &#8211; type 3</p>
<p>2010-09-01T08:38:33,360Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] BaseProvider::EnumInstances() &#8211; <strong>DoEnumInstances() returned &#8211; 3</strong></p>
<p>2010-09-01T08:38:33,360Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] BaseProvider::EnumInstances() &#8211; Call ReturnDone</p>
<p>2010-09-01T08:38:33,360Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.providers.diskprovider:5964:3086830480] BaseProvider::EnumInstances() &#8211; return OK</p>
<p>2010-09-01T08:38:33,360Z Trace&#160;&#160;&#160;&#160;&#160; [scx.core.provsup.cmpibase.singleprovider.DiskProvider:5964:3086830480] SingleProvider::EnumInstances() -<strong> Returning &#8211; 0</strong></p>
<p>&#160;</p>
<p>but it still did not give me an idea as to why we would not get data for those “counters”. A this point I stopped using complex troubleshooting techniques and simply turned intuition on, and tried with some help from a search engine: <a title="http://www.bing.com/search?q=How+do+I+find+out+Linux+Disk+utilization" href="http://www.bing.com/search?q=How+do+I+find+out+Linux+Disk+utilization">http://www.bing.com/search?q=How+do+I+find+out+Linux+Disk+utilization</a>&#160;</p>
<p>the results I got all mentioned that on Linux you would use the “<strong>iostat</strong>” command.</p>
<p>So I tried to use and… lol and behold: the <strong>iostat</strong> commend was NOT INSTALLED on that machine!</p>
<p>Guess what? We installed it (it is included in the “<strong>sysstat</strong>” package for RedHat linux, so a simple “<strong>yum install sysstat</strong>” took care of this) and the counters started working!</p>
<p>Hope that is useful to some.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/10/22/microsoft-linux-rhel-5-logicaldisk-diskbytespersecond-type-mismatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Way</title>
		<link>http://www.muscetta.com/2010/07/18/microsoft-way/</link>
		<comments>http://www.muscetta.com/2010/07/18/microsoft-way/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 15:09:52 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[myself]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[picture]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=511</guid>
		<description><![CDATA[In the last couple of weeks we have been driving thru America from the east coast (New York) to the west coast (Seattle). I figured out I needed to show my family the Microsoft campus too. Of course they know I work at Microsoft&#8230; but having only seen the office of a subsidiary &#8211; the [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm5.static.flickr.com/4095/4802822777_810c1f9165.jpg" alt="Microsoft Way" /></p>
<p>In the last couple of weeks we have been driving thru America from the east coast (New York) to the west coast (Seattle).</p>
<p>I figured out I needed to show my family the Microsoft campus too. Of course they know I work at Microsoft&#8230; but having only seen the office of a subsidiary &#8211; the one in Rome, with about 250 people at its max &#8211; might not have given them (especially the kids) an idea of the actual size of the company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/07/18/microsoft-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpsMgr Event IDs Spreadsheet</title>
		<link>http://www.muscetta.com/2010/06/22/opsmgr-event-ids-spreadsheet/</link>
		<comments>http://www.muscetta.com/2010/06/22/opsmgr-event-ids-spreadsheet/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 16:28:23 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[EventID]]></category>
		<category><![CDATA[eventlog]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[opsmgr]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=510</guid>
		<description><![CDATA[I work in support (mostly with System Center Operations Manager, as you know), and I work with event logs every day. The following are typical situations: I get a colleague or a customer telling me “I am having a problem and the SCOM agent is showing 21037 events and 20002 events.&#160; What’s wrong with it?”&#160;&#160;&#160; [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I work in support (mostly with System Center Operations Manager, as you know), and I work with event logs every day. The following are typical situations:</p>
<ol>
<li>I get a colleague or a customer telling me “I am having a problem and the SCOM agent is showing 21037 events and 20002 events.&#160; What’s wrong with it?”&#160;&#160;&#160; </li>
<li>I want to tune an OpsMgr environment and reduce load on the database by turning off a few event collections, as my friend Kevin Holman suggests here <a href="http://blogs.technet.com/kevinholman/archive/2009/11/25/tuning-tip-turning-off-some-over-collection-of-events.aspx">http://blogs.technet.com/kevinholman/archive/2009/11/25/tuning-tip-turning-off-some-over-collection-of-events.aspx</a> . </li>
<li>I am analyzing, sorting and grouping Events with Powershell like I have written on my blog lately <a href="http://www.muscetta.com/2009/12/16/opsmgr-eventlog-analysis-with-powershell/">http://www.muscetta.com/2009/12/16/opsmgr-eventlog-analysis-with-powershell/</a> but I can’t read those long descriptions properly. </li>
<li>I exported an EVT from a customer environment and I load it on a machine that does not have OpsMgr message DLLs installed – all I see are EventIDs and type (Warning, Error) – but no real description – and I still want to figure out what those events are trying to tell me. </li>
</ol>
<p>Getting to the point: I, like everyone – don’t have every OpsMgr event memorized.</p>
<p>This is why I thought of building this spreadsheet, and I hope it might come in handy to more people.</p>
<p>The spreadsheet contains an “AllEvents” list – and then the same events are broken down by event source as well:</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_image0023.jpg" width="678" height="49" /></p>
<p>When you want to search for an events (in one of the situations described above) just open up the spreadsheet, go to the “AllEvents” tab, hit <strong>CTRL+F</strong> (“Find”) and type in the Event ID you are searching for:</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_image0043.jpg" width="448" height="196" /></p>
<p>And this will take you to the row containing the event, so you can look up its description:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://www.muscetta.com/wp-content/uploads/clip_image0061.jpg" width="625" height="163" /></p>
<p>The description shows the event standard text (which is in the message DLL, therefore is the part you will not see if opening an EVT on another machine that does not have OpsMgr installed), and where the event parameters are (%1, %2, etc – which will be the strings you see in the EVT anyway).</p>
<p>That way you can get an understanding of what the original message would have looked like on the original machine.</p>
<p>This is just one possible usage pattern of this reference. It can also be useful to just read/study the events, learning about new ones you have never encountered, or remembering those you HAVE seen in the past but did not quite remember. And of course you can also find other creative ways to use it.</p>
<p><a href="http://cid-aaf797a1484e6150.office.live.com/view.aspx/Public/OpsMgr%5E_EventIDs.xlsx"><strong>You can get it from here</strong></a>.</p>
<p>&#160;</p>
<p>A few last words to give due credit: this spreadsheet has been compiled by using Eventlog Explorer (<a href="http://blogs.technet.com/momteam/archive/2008/04/02/eventlog-explorer.aspx">http://blogs.technet.com/momteam/archive/2008/04/02/eventlog-explorer.aspx</a> ) to extract the event information out of the message DLLs on a OpsMgr2007 R2 installation. That info has been then copied and pasted in Excel in order to have an “offline” reference. Also I would like to thank Kevin Holman for pointing me to Eventlog Explorer first, and then for insisting I should not keep this spreadsheet in my drawer, as it could be useful to more people!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/06/22/opsmgr-event-ids-spreadsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Audit Collection Services Database Partitions Size Report</title>
		<link>http://www.muscetta.com/2010/05/05/audit-collection-services-database-partitions-size-report/</link>
		<comments>http://www.muscetta.com/2010/05/05/audit-collection-services-database-partitions-size-report/#comments</comments>
		<pubDate>Wed, 05 May 2010 21:45:31 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></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[report]]></category>
		<category><![CDATA[reporting]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=499</guid>
		<description><![CDATA[A number of people I have talked to liked my previous post on ACS sizing. One thing that was not extremely easy or clear to them in that post was *how* exactly I did one thing I wrote: […] use the dtEvent_GUID table to get the number of events for that day, and use the [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>A number of people I have talked to liked <a href="http://www.muscetta.com/2010/03/18/a-few-thoughts-on-sizing-audit-collection-system/">my previous post on ACS sizing</a>. One thing that was not extremely easy or clear to them in that post was *how* exactly I did one thing I wrote:</p>
<blockquote><p><em>[…] 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 […]</em></p></blockquote>
<p>To be completely honest, I do not expect people to do this manually a hundred times if they have a hundred partitions. In fact, I have been doing this for a while with a script which will do the looping for me and run that sp_spaceused for me a number of time. I cannot share that script, but I do realize that this automation is very useful, therefore I wrote a “stand-alone” SQL query which, using a couple of temporary tables, produces a similar type of output. I also went a step further and packaged it into a SQL Server Reporting Services Report for everyone’s consumption. The report should look like the following screenshot, featuring a chart and the table with the numerical information about each and every partition in the database:</p>
<p><a href="http://www.muscetta.com/wp-content/uploads/image50.png" rel="lightbox[499]"><img style="display: inline; border: 0px;" title="ACS Partitions Report" src="http://www.muscetta.com/wp-content/uploads/image_thumb1.png" border="0" alt="ACS Partitions Report" width="640" height="351" /></a></p>
<p><a href="http://cid-aaf797a1484e6150.office.live.com/self.aspx/Public/ACSPartitionsReport.zip">You can download the report from here</a>.</p>
<p>You need to upload it to your report server, and change the data source to the shared Data Source that also the built-in ACS Reports use, and it should work.</p>
<p><strong>[NOTE/UPDATE May 4th 2011: This report has a few bugs. I have posted the updated query on <a href="http://www.muscetta.com/2011/05/04/improved-acs-partitions-query/">http://www.muscetta.com/2011/05/04/improved-acs-partitions-query/</a> . I am sorry I can't provide a ready made report with the fix right now. Make sure you understand this and don't implement it without testing.]</strong></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/05/05/audit-collection-services-database-partitions-size-report/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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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>Sara with the ultimate Toy Camera</title>
		<link>http://www.muscetta.com/2010/03/07/sara-with-the-ultimate-toy-camera/</link>
		<comments>http://www.muscetta.com/2010/03/07/sara-with-the-ultimate-toy-camera/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 09:18:18 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Camera]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[foto]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[portrait]]></category>
		<category><![CDATA[ritratto]]></category>
		<category><![CDATA[sara]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=490</guid>
		<description><![CDATA[I have had a &#034;new year&#039;s resolution&#034; post in draft for more than two months&#8230; since we now reached march, I have wasted it &#8211; not much point anymore posting it. One thing that was NOT written in that post but that did work out, tho: I smoked one last cigarette on the 31st of [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="Sara with the ultimate Toy Camera" href="http://www.flickr.com/photos/dani3l3/4413336146/"><img src="http://farm3.static.flickr.com/2720/4413336146_639b358234.jpg" alt="Sara with the ultimate Toy Camera" /></a></p>
<p>I have had a &#034;new year&#039;s resolution&#034; post in draft for more than two months&#8230; since we now reached march, I have wasted it &#8211; not much point anymore posting it.<br />
One thing that was NOT written in that post but that did work out, tho: I smoked one last cigarette on the 31st of december and I decided to quit smoking. So far so good.<br />
I also have a draft of a technical post sitting there for a long time&#8230; I&#039;ll eventually finish it at one stage.<br />
I thought I&#039;d post a picture of my beautiful little girl, instead, in the meantime.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2010/03/07/sara-with-the-ultimate-toy-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpsMgr Eventlog analysis with Powershell</title>
		<link>http://www.muscetta.com/2009/12/16/opsmgr-eventlog-analysis-with-powershell/</link>
		<comments>http://www.muscetta.com/2009/12/16/opsmgr-eventlog-analysis-with-powershell/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 10:17:35 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[eventlog]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=489</guid>
		<description><![CDATA[The following technique should already be understood by any powersheller. Here we focus on Operations Manager log entries, even if the data mining technique shows is entirely possibly – and encouraged &#8211; with any other event log. Let’s start by getting our eventlog into a variable called $evt: PS&#160; &#62;&#62; $evt = Get-Eventlog “Operations Manager” [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>The following technique should already be understood by any powersheller. Here we focus on Operations Manager log entries, even if the data mining technique shows is entirely possibly – and encouraged <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  &#8211; with any other event log.</p>
<p>Let’s start by getting our eventlog into a variable called $evt:</p>
<p><strong>PS&#160; &gt;&gt; $evt = Get-Eventlog “Operations Manager”</strong></p>
<p>The above only works locally in POSH v1.</p>
<p>In POSH v2 you can go remotely by using the “-computername” parameter:</p>
<p><strong>PS&#160; &gt;&gt; $evt = Get-Eventlog “Operations Manager” –computername RMS.domain.com</strong></p>
<p>Anyhow, you can get to this remotely also in POSHv1 with this other more “dotNET-tish” syntax:</p>
<p><strong>PS &gt;&gt; $evt = (New-Object System.Diagnostics.Eventlog -ArgumentList &quot;Operations Manager&quot;).get_Entries()</strong></p>
<p>you could even export this (or any of the above) to a CLIXML file:</p>
<p><strong>PS &gt;&gt; (New-Object System.Diagnostics.Eventlog -ArgumentList &quot;Operations Manager&quot;).get_Entries() | export-clixml -path c:\evt\Evt-OpsMgr-RMS.MYDOMAIN.COM.xml</strong></p>
<p>and then you could reload your eventlog to another machine:</p>
<p><strong>PS&#160; &gt;&gt; $evt = import-clixml c:\evt\Evt-OpsMgr-RMS.MYDOMAIN.COM.xml</strong>     </p>
<p>whatever way you used to populate your $evt&#160; variable, be it from a “live” eventlog or by re-importing it from XML, you can then start analyzing it:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Entrytype -match &quot;Error&quot;} | select EventId,Source,Message | group eventid </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />1510 4509&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=4509; Source=HealthService; Message=The constructor for the managed module type &quot;Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.GroupCalculatio.     <br />&#160;&#160; 15 20022&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=20022; Source=OpsMgr Connector; Message=The health service {7B0E947B-2055&#8230;     <br />&#160;&#160;&#160; 3 26319&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=26319; Source=OpsMgr SDK Service; Message=An exception was thrown while p&#8230;     <br />&#160;&#160;&#160; 1 4512&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=4512; Source=HealthService; Message=Converting data batch to XML failed w&#8230; </p>
<p>the above is functionally identical to the following:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Entrytype -eq 1} | select EventID,Source,Message | group eventid </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />1510 4509&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=4509; Source=HealthService; Message=The constructor for the managed modul&#8230;     <br />&#160;&#160; 15 20022&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=20022; Source=OpsMgr Connector; Message=The health service {7B0E947B-2055&#8230;     <br />&#160;&#160;&#160; 3 26319&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=26319; Source=OpsMgr SDK Service; Message=An exception was thrown while p&#8230;     <br />&#160;&#160;&#160; 1 4512&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=4512; Source=HealthService; Message=Converting data batch to XML failed w&#8230; </p>
<p>Note that Eventlog Entries’ type is an ENUM that has values of 0,1,2 – similarly to OpsMgr health states – but beware that their order is not the same, as shown in the following table:</p>
<table border="1" cellspacing="0" cellpadding="2" width="342">
<tbody>
<tr>
<td valign="top" width="71"><strong>Code</strong></td>
<td valign="top" width="137"><strong>OpsMgr States</strong></td>
<td valign="top" width="132"><strong>Events EntryType</strong></td>
</tr>
<tr>
<td valign="top" width="71">0</td>
<td valign="top" width="137">Not Monitored</td>
<td valign="top" width="132">Information</td>
</tr>
<tr>
<td valign="top" width="71">1</td>
<td valign="top" width="137">Success</td>
<td valign="top" width="132">Error</td>
</tr>
<tr>
<td valign="top" width="71">2</td>
<td valign="top" width="137">Warning</td>
<td valign="top" width="132">Warning</td>
</tr>
<tr>
<td valign="top" width="71">3</td>
<td valign="top" width="137">Critical</td>
<td valign="top" width="132">&#8211;</td>
</tr>
</tbody>
</table>
<p>Let’s now look at Information Events (Entrytype –eq 0)</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Entrytype -eq 0} | select EventID,Source,Message | group eventid </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />4135 2110&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=2110; Source=HealthService; Message=Health Service successfully transferr&#8230;     <br />1548 21025&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=21025; Source=OpsMgr Connector; Message=OpsMgr has received new configura&#8230;     <br />4644 7026&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7026; Source=HealthService; Message=The Health Service successfully logge&#8230;     <br />1548 7023&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7023; Source=HealthService; Message=The Health Service has downloaded sec&#8230;     <br />1548 7025&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7025; Source=HealthService; Message=The Health Service has authorized all&#8230;     <br />1548 7024&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7024; Source=HealthService; Message=The Health Service successfully logge&#8230;     <br />1548 7028&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7028; Source=HealthService; Message=All RunAs accounts for management gro&#8230;     <br />&#160;&#160; 16 20021&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=20021; Source=OpsMgr Connector; Message=The health service {7B0E947B-2055&#8230;     <br />&#160;&#160; 13 7019&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=7019; Source=HealthService; Message=The Health Service has validated all &#8230;     <br />&#160;&#160;&#160; 4 4002&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=4002; Source=Health Service Script; Message=Microsoft.Windows.Server.Logi&#8230; </p>
<p>&#160;</p>
<p>And “Warning” events (Entrytype –eq 2):</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Entrytype -eq 2} | select EventID,Source,Message | group eventid </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />1511 1103&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=1103; Source=HealthService; Message=Summary: 1 rule(s)/monitor(s) failed &#8230;     <br />&#160; 501 20058&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=20058; Source=OpsMgr Connector; Message=The Root Connector has received b&#8230;     <br />&#160;&#160;&#160; 5 29202&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=29202; Source=OpsMgr Config Service; Message=OpsMgr Config Service could &#8230;     <br />&#160; 421 31501&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=31501; Source=Health Service Modules; Message=No primary recipients were &#8230;     <br />&#160;&#160; 18 10103&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=10103; Source=Health Service Modules; Message=In PerfDataSource, could no&#8230;     <br />&#160;&#160;&#160; 1 29105&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {@{EventID=29105; Source=OpsMgr Config Service; Message=The request for management p&#8230; </p>
<p>&#160;</p>
<p>&#160;</p>
<p>Ok now let’s see those event 20022, for example… so we get an idea of which healthservices they are referring to (20022 indicates&quot; “hearthbeat failure”, btw):</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.eventid -eq 20022} | select message </strong></p>
<p>Message    <br />&#8212;&#8212;-     <br />The health service {7B0E947B-2055-C12A-B6DB-DD6B311ADF39} running on host webapp3.domain1.mydomain.com and s&#8230;     <br />The health service {E3B3CCAA-E797-4F08-860F-47558B3DA477} running on host SERVER1.domain2.mydomain.com and serving&#8230;     <br />The health service {E3B3CCAA-E797-4F08-860F-47558B3DA477} running on host SERVER1.domain2.mydomain.com and serving&#8230;     <br />The health service {E3B3CCAA-E797-4F08-860F-47558B3DA477} running on host SERVER1.domain2.mydomain.com and serving&#8230;     <br />The health service {52E16F9C-EB1A-9FAF-5B9C-1AA9C8BC28E3} running on host DC4WK3.domain1.mydomain.com and se&#8230;     <br />The health service {F96CC9E6-2EC4-7E63-EE5A-FF9286031C50} running on host VWEBDL2.domain1.mydomain.com and s&#8230;     <br />The health service {71987EE0-909A-8465-C32D-05F315C301CC} running on host VDEVWEBPROBE2.domain2.mydomain.com&#8230;.     <br />The health service {BAF6716E-54A7-DF68-ABCB-B1101EDB2506} running on host XP2SMS002.domain2.mydomain.com and serving mana&#8230;     <br />The health service {30C81387-D5E0-32D6-C3A3-C649F1CF66F1} running on host stgweb3.domain3.mydomain.com and&#8230;     <br />The health service {3DCDD330-BBBB-B8E8-4FED-EF163B27DE0A} running on host VWEBDL1.domain1.mydomain.com and s&#8230;     <br />The health service {13A47552-2693-E774-4F87-87DF68B2F0C0} running on host DC2.domain4.mydomain.com and &#8230;     <br />The health service {920BF9A8-C315-3064-A5AA-A92AA270529C} running on host FSCLU2 and serving management group Pr&#8230;     <br />The health service {FAA3C2B5-C162-C742-786F-F3F8DC8CAC2F} running on host WEBAPP4.domain1.mydomain.com and s&#8230;     <br />The health service {3DCDD330-BBBB-B8E8-4FED-EF163B27DE0A} running on host WEBDL1.domain1.mydomain.com and s&#8230;     <br />The health service {3DCDD330-BBBB-B8E8-4FED-EF163B27DE0A} running on host WEBDL1.domain1.mydomain.com and s&#8230; </p>
<p>&#160;</p>
<p>or let’s look at some warning for the Config Service:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Eventid -eq 29202} </strong></p>
<p>&#160;&#160; Index Time&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EntryType&#160;&#160; Source&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; InstanceID Message    <br />&#160;&#160; &#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#160;&#160; &#8212;&#8212;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;- &#8212;&#8212;-     <br />5535065 Dec 07 21:18&#160; Warning&#160;&#160;&#160;&#160; OpsMgr Config Ser&#8230;&#160;&#160; 2147512850 OpsMgr Config Service could not retrieve a cons&#8230;     <br />5543960 Dec 09 16:39&#160; Warning&#160;&#160;&#160;&#160; OpsMgr Config Ser&#8230;&#160;&#160; 2147512850 OpsMgr Config Service could not retrieve a cons&#8230;     <br />5545536 Dec 10 01:06&#160; Warning&#160;&#160;&#160;&#160; OpsMgr Config Ser&#8230;&#160;&#160; 2147512850 OpsMgr Config Service could not retrieve a cons&#8230;     <br />5553119 Dec 11 08:24&#160; Warning&#160;&#160;&#160;&#160; OpsMgr Config Ser&#8230;&#160;&#160; 2147512850 OpsMgr Config Service could not retrieve a cons&#8230;     <br />5555677 Dec 11 10:34&#160; Warning&#160;&#160;&#160;&#160; OpsMgr Config Ser&#8230;&#160;&#160; 2147512850 OpsMgr Config Service could not retrieve a cons&#8230; </p>
<p>Once seen those, can you remember of any particular load you had on those days that justifies the instance space changing so quickly that the Config Service couldn’t keep up?</p>
<p>&#160;</p>
<p>Or let’s group those events with ID 21025 by hour, so we know how many Config recalculations we’ve had (which, if many, might indicate <a href="http://blogs.technet.com/kevinholman/archive/2009/10/05/what-is-config-churn.aspx">Config Churn</a>):</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Eventid -eq 21025} | select TimeGenerated | % {$_.TimeGenerated.ToShortDateString()} | group </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />&#160;&#160; 39 12/7/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/7/2009, 12/7/2009, 12/7/2009, 12/7/2009&#8230;}     <br />&#160; 203 12/8/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/8/2009, 12/8/2009, 12/8/2009, 12/8/2009&#8230;}     <br />&#160; 217 12/9/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/9/2009, 12/9/2009, 12/9/2009, 12/9/2009&#8230;}     <br />&#160; 278 12/10/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/10/2009, 12/10/2009, 12/10/2009, 12/10/2009&#8230;}     <br />&#160; 259 12/11/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/11/2009, 12/11/2009, 12/11/2009, 12/11/2009&#8230;}     <br />&#160; 224 12/12/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/12/2009, 12/12/2009, 12/12/2009, 12/12/2009&#8230;}     <br />&#160; 237 12/13/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/13/2009, 12/13/2009, 12/13/2009, 12/13/2009&#8230;}     <br />&#160;&#160; 91 12/14/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/14/2009, 12/14/2009, 12/14/2009, 12/14/2009&#8230;} </p>
<p>&#160;</p>
<p>Event ID 21025 shows that there is a new configuration for the Management Group.</p>
<p>Event ID 29103 has a similar wording, but shows that there is a new configuration for a given Healthservice. These should normally be many more events, unless your only health Service is the RMS, which is unlikely…</p>
<p>If we look at the event description (“message”) in search for the name (or even the GUID, as both are present) or our RMS, as follows, then they should be the same numbers of the 21025 above:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.Eventid -eq 29103} | where {$_.message -match &quot;myrms.domain.com&quot;} | select TimeGenerated | % {$_.TimeGenerated.ToShortDateString()} | group </strong></p>
<p>Count Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Group    <br />&#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8211;     <br />&#160;&#160; 39 12/7/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/7/2009, 12/7/2009, 12/7/2009, 12/7/2009&#8230;}     <br />&#160; 203 12/8/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/8/2009, 12/8/2009, 12/8/2009, 12/8/2009&#8230;}     <br />&#160; 217 12/9/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/9/2009, 12/9/2009, 12/9/2009, 12/9/2009&#8230;}     <br />&#160; 278 12/10/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/10/2009, 12/10/2009, 12/10/2009, 12/10/2009&#8230;}     <br />&#160; 259 12/11/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/11/2009, 12/11/2009, 12/11/2009, 12/11/2009&#8230;}     <br />&#160; 224 12/12/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/12/2009, 12/12/2009, 12/12/2009, 12/12/2009&#8230;}     <br />&#160; 237 12/13/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/13/2009, 12/13/2009, 12/13/2009, 12/13/2009&#8230;}     <br />&#160;&#160; 91 12/14/2009&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {12/14/2009, 12/14/2009, 12/14/2009, 12/14/2009&#8230;} </p>
<p>&#160;</p>
<p>Going back to the initial counts of events by their IDs, when showing the errors the counts above had spotted the presence of a lonely 4512 event, which might have gone undetected if just browsing the eventlog with the GUI, since it only occurred once.</p>
<p>Let’s take a look at it:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.eventid -eq 4512} </strong></p>
<p>&#160;&#160; Index Time&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EntryType&#160;&#160; Source&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; InstanceID Message    <br />&#160;&#160; &#8212;&#8211; &#8212;-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#160;&#160; &#8212;&#8212;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;- &#8212;&#8212;-     <br />5560756 Dec 12 11:18&#160; Error&#160;&#160;&#160;&#160;&#160;&#160; HealthService&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3221229984 Converting data batch to XML failed with error &#8230; </p>
<p>Now, when it is about counts, Powershell is great.&#160; But sometimes Powershell makes it difficult to actually READ the (long) event messages (descriptions) in the console. For example, our event ID 4512 is difficult to read in its entirety and gets truncated with trailing dots…</p>
<p>we can of course increase the window size and/or selecting only THAT one field to read it better:</p>
<p><strong>PS&#160; &gt;&gt; $evt | where {$_.eventid -eq 4512} | select message </strong></p>
<p>Message    <br />&#8212;&#8212;-     <br />Converting data batch to XML failed with error &quot;Not enough storage is available to complete this operation.&quot; (0x8007000E) in rule &quot;Microsoft.SystemCenter.ConfigurationService.CollectionRule.Event.ConfigurationChanged&quot; running for instance &quot;RMS.MYDOMAIN.COM&quot; with id:&quot;{04F4ADED-2C7F-92EF-D620-9AF9685F736F}&quot; in management group &quot;SCOMPROD&quot; </p>
<p>Or, worst case, if it still does not fit, we can still go and search for it in the actual, usual eventlog application… but at least we will have spotted it!</p>
<p>&#160;</p>
<p>The above wants to give you an idea of what is easily accomplished with some simple one-liners, and how it can be a useful aid in analyzing/digging into Eventlogs.</p>
<p>All of the above is ALSO be possible with Logparser, and it would actually be even less heavy on memory usage and it will be quicker, to be honest! </p>
<p>I just like Powershell syntax a lot more, and its ubiquity, which makes it a better option for me. Your mileage may vary, of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/12/16/opsmgr-eventlog-analysis-with-powershell/feed/</wfw:commentRss>
		<slash:comments>2</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>2</slash:comments>
		</item>
		<item>
		<title>Sara&#039;s</title>
		<link>http://www.muscetta.com/2009/10/13/saras/</link>
		<comments>http://www.muscetta.com/2009/10/13/saras/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 18:35:10 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[baby]]></category>
		<category><![CDATA[child]]></category>
		<category><![CDATA[grandmother]]></category>
		<category><![CDATA[granny]]></category>
		<category><![CDATA[kid]]></category>
		<category><![CDATA[sara]]></category>
		<category><![CDATA[women]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=485</guid>
		<description><![CDATA[Sara, my granny, is very old, and very sick. I was afraid she wouldn&#039;t even have lived long enough to meet Sara, my daughter. She has Alzheimer, Osteoporosis, and a million other diseases; She had a heart attack two months ago, then another one, and also a stroke. She can&#039;t walk anymore, she can&#039;t see [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/3994262626/"><img src="http://farm3.static.flickr.com/2664/3994262626_4b9bd1cf93.jpg" alt="Sara's" /></a></p>
<p class="flickr-yourcomment">Sara, my granny, is very old, and very sick.<br />
I was afraid she wouldn&#039;t even have lived long enough to meet Sara, my daughter.</p>
<p>She has Alzheimer, Osteoporosis, and a million other diseases; She had a heart attack two months ago, then another one, and also a stroke. She can&#039;t walk anymore, she can&#039;t see much anymore, her whole body is giving up. The doctors now say that she probably won&#039;t live much more than another month.</p>
<p>But she made it to meet newborn Sara, even if the encounter has been somewhat different than I might have hoped earlier on.</p>
<p>&#034;what a cute baby! is he a boy?&#034;<br />
&#034;no, granny, this is Sara, your grand-grand-daughter, and she&#039;s called Sara, just like you&#8230;&#034;<br />
&#034;Oh, how nice! This is a honor for me&#8230; you called her like me? how sweet of you!&#034;</p>
<p>Of course we had told her this earlier, but she forgets things.<br />
In a way it is nice to make her happy and give her this honor multiple times, but at the same time it isn&#039;t.</p>
<p>She does not understand what surrounds her anymore and most of the time she is in a dream-like state. Some old people have this, but their dreams are good, and they become just like young kids with visions that make them even happy at times.<br />
But those dreams she&#039;s having are obviously bad ones, as she sighs and puffs and seems to be having a very hard time. And a lot of fear.<br />
She is too afraid of letting go: after she dreamed a couple of times of my granddad and her mum (in the dream they were calling her to come and join with him in heaven), she is even afraid of falling asleep. And with little sleep she gets even more confused and depressed. And fearful. In a vicious circle.</p>
<p>She does have some moments of lucidity, and you can have short conversations with her, even if these moments tend to be shorter and shorter. And when they happen they even frighten her &#8211; I suppose because she realizes how she is the rest of the time.</p>
<p>But inevitably, five minutes later she will ask you again the same question:</p>
<p>&#034;who is that cute baby I see over there?&#034;<br />
&#034;dear granny, this is Sara, your grand-grand-daughter; she&#039;s called just like you&#034;<br />
&#034;Oh how nice. This is a honor for me&#8230;.&#034;</p>
<p>She has lived so long, has had bad and good times, and done many good things, as well as many mistakes just like anyone does a lifetime.<br />
Seeing her suffer is heart-breaking for us all.<br />
I hope her suffering stops and her fears abandon her and that she might find her well deserved peace.</p>
<p>Amen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/10/13/saras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS&gt; Get-Milk</title>
		<link>http://www.muscetta.com/2009/09/17/ps-get-milk/</link>
		<comments>http://www.muscetta.com/2009/09/17/ps-get-milk/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 13:00:08 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[baby]]></category>
		<category><![CDATA[cmdlet]]></category>
		<category><![CDATA[daughter]]></category>
		<category><![CDATA[Get-Milk]]></category>
		<category><![CDATA[red]]></category>
		<category><![CDATA[sara]]></category>
		<category><![CDATA[TShirt]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=483</guid>
		<description><![CDATA[I printed a tshirt for Sara with a baby-friendly Powershell cmdlet (&#034;Get-Milk&#034;). She already seems to be wondering what script she can write with it.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="Get-Milk" href="http://www.flickr.com/photos/dani3l3/3924854309/"><img src="http://farm3.static.flickr.com/2659/3924854309_7c1f7952c0.jpg" alt="PS&gt; Get-Milk" /></a></p>
<p>I printed a tshirt for Sara with a baby-friendly Powershell cmdlet (&#034;Get-Milk&#034;).<br />
She already seems to be wondering what script she can write with it.</p>
<p><a href="http://www.flickr.com/photos/dani3l3/3924854309/"><img src="http://farm4.static.flickr.com/3536/3924858247_a2da4f9fb9.jpg" alt="PS&gt; Get-Milk" width="500" height="333" /></a></p>
<p><a href="http://www.flickr.com/photos/dani3l3/3924854309/"><img src="http://farm4.static.flickr.com/3449/3925641880_aab0165f75.jpg" alt="PS&gt; Get-Milk" width="500" height="333" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/09/17/ps-get-milk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The mystery of the lost registry values</title>
		<link>http://www.muscetta.com/2009/09/10/mistery-of-lost-registry-values/</link>
		<comments>http://www.muscetta.com/2009/09/10/mistery-of-lost-registry-values/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 14:53:44 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Monad]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[StdRegProvider]]></category>
		<category><![CDATA[vbscript]]></category>
		<category><![CDATA[Wbem]]></category>
		<category><![CDATA[WMI]]></category>
		<category><![CDATA[Wow]]></category>
		<category><![CDATA[Wow32]]></category>
		<category><![CDATA[Wow64]]></category>
		<category><![CDATA[Wow6432Node]]></category>
		<category><![CDATA[wrapper]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=481</guid>
		<description><![CDATA[During the OpsMgr Health Check engagement we use custom code to assess the customer’s Management group, as I wrote here already. Given that the customer tells us which machine is the RMS, one of the very first things that we do in our tool is to connect to the RMS’s registry, and check the values [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>During the OpsMgr Health Check engagement we use custom code to assess the customer’s Management group, <a href="http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/">as I wrote here already</a>. Given that the customer tells us which machine is the RMS, one of the very first things that we do in our tool is to connect to the RMS’s registry, and check the values under <strong>HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup </strong>to see which machine holds the database. It is a rather critical piece of information for us, as we run a number of queries afterward… so we need to know where the db is, obviously <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I learned from here <a title="http://mybsinfo.blogspot.com/2007/01/powershell-remote-registry-and-you-part.html" href="http://mybsinfo.blogspot.com/2007/01/powershell-remote-registry-and-you-part.html">http://mybsinfo.blogspot.com/2007/01/powershell-remote-registry-and-you-part.html</a> how to access registry remotely thru powershell, by using .Net classes. This is also one of the methods illustrated in this other article on Technet Script Center <a href="http://www.microsoft.com/technet/scriptcenter/resources/qanda/jan09/hey0105.mspx">http://www.microsoft.com/technet/scriptcenter/resources/qanda/jan09/hey0105.mspx</a> </p>
<p>Therefore the “core” instructions of the function I was using to access the registry looked like the following</p>
<p><!-- Code --></p>
<div class="dp-highlighter">
<ol class="dp-rb">
<li class="alt"><span><span>Function GetValueFromRegistry ([string]</span><span class="variable">$computername</span><span>, </span><span class="variable">$regkey</span><span>, </span><span class="variable">$value</span><span>)    </span></span></li>
<li><span>{   </span></li>
<li><span>     </span><span class="variable">$reg</span><span> = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(</span><span class="string">&#039;LocalMachine&#039;</span><span>, </span><span class="variable">$computername</span><span>)   </span></li>
<li><span>     </span><span class="variable">$regKey</span><span>= </span><span class="variable">$reg</span><span>.OpenSubKey(</span><span class="string">&#034;$regKey&#034;</span><span>)   </span></li>
<li><span>     </span><span class="variable">$result</span><span> = </span><span class="variable">$regkey</span><span>.GetValue(</span><span class="string">&#034;$value&#034;</span><span>)   </span></li>
<li><span>     </span><span class="keyword">return</span><span> </span><span class="variable">$result</span><span>  </span></li>
<li><span>}   </span></li>
</ol>
</div>
<p><span> </span></p>
<p>[Note: the actual function is bigger, and contains error handling, and logging, and a number of other things that are unnecessary here]</p>
<p>Therefore, the function was called as follows:<br />
<strong>GetValueFromRegistry $RMS &#034;SOFTWARE\\Microsoft\\Microsoft Operations Manager\\3.0\\Setup&#034; &#034;DatabaseServerName&#034;</strong><br />
Now so far so good.</p>
<p>In theory.</p>
<p> </p>
<p>Now for some reason that I could not immediately explain, we had noticed that this piece of code performing registry accessm while working most of the times, only on SOME occasions was giving errors about not being able to open the registry value…</p>
<p><a href="http://www.muscetta.com/wp-content/uploads/image45.png" rel="lightbox[481]"><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_thumb.png" border="0" alt="image" width="518" height="69" /></a></p>
<p>When you are onsite with a customer conducting an assessment, the PFE engineer does not always has the time to troubleshoot the error… as time is critical, we have usually resorted to just running the assessment from ANOTHER machine, and this “solved” the issue… but always left me wondering WHY this was giving an error. I had suspected an issue with permissions first, but it could not be as the permissions were obviously right: performing the assessment from another machine but with the same user was working!</p>
<p>A few days ago <a href="http://blogs.technet.com/stefan_stranger/">my colleague and buddy Stefan Stranger</a> figured out that this was related to the platform architecture:</p>
<ul>
<li>X64 client to x64 RMS was working</li>
<li>X64 client to x86 RMS was working</li>
<li>X86 client to x86 RMS was working</li>
<li><strong>X86 client to x64 RMS was NOT working</strong></li>
</ul>
<p>You don’t need to use our custom code to reproduce this, REGEDIT shows the behavior as well.</p>
<p>If, from a 64-bit server, you open a remote registry connection to 64-bit RMS server, you can see all OpsMgr registry keys:</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" src="http://www.muscetta.com/wp-content/uploads/clip_image002.jpg" border="0" alt="clip_image002" width="918" height="268" /></p>
<p>If, anyhow, from a 32-bit server, you open a remote registry connection to 64-bit RMS server, you don’t see ALL – but only SOME &#8211; OpsMgr registry keys:<br />
<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" src="http://www.muscetta.com/wp-content/uploads/clip_image004.jpg" border="0" alt="clip_image004" width="863" height="192" /></p>
<p>So here’s the reason! This is what was happening! How could I not think of this before? It was nothing related to permissions, but to <a href="http://msdn.microsoft.com/en-us/library/aa384232(VS.85).aspx">registry redirection</a>! The issue was happening because the 32 bit machine is using the 32bit registry editor and what it will do when accessing a 64bit machine will be to default to the Wow6432Node location in the registry. There all OpsMgr data won’t be in the WOW64 location on a 64bit machine, only some.</p>
<p>So, just like regedit, the 32bit powershell and the 32bit .Net framework were being redirected to the 32bit-compatibility registry keys… not finding the stuff we needed, whereas a 64bit application could find that. Any 32bit application by default gets redirected to a 32bit-safe registry.</p>
<p>So, after finally UNDERSTANDING what the issue was, I started wondering: ok&#8230; but<strong> how can I access the REAL “HLKM\SOFTWARE\Microsoft” key on a 64bit machine when running this FROM a 32bit machine – WITHOUT being redirected to “HKLM\SOFTWARE\Wow6432Node\Microsoft” ? </strong>What if my application CAN deal just fine with those values and actually NEEDs to access them?</p>
<p>The answer wasn’t as easy as the question. I did a bit of digging on this, and still I have NOT yet found a way to do this with the .Net classes. It seems that in a lot of situations, Powershell or even .Net classes are nice and sweet wrappers on the underlying Windows APIs… but for how sweet and easy they are, they are very often not very complete wrappers – letting you do just about enough for most situations, but not quite everything you would or could with the APi underneath. But I digress, here&#8230;</p>
<p>The good news is that I did manage to get this working, but I had to resort to using dear old WMI StdRegProvider… There are a number of locations on the Internet mentioning the issue of accessing 32bit registry from 64bit machines or vice versa, but all examples I have found were using VBScript. But I needed it in Powershell. Therefore I started with the <a href="http://msdn.microsoft.com/en-us/library/aa393067(VS.85).aspx">VBScript example code that is present here</a>, and I ported it to Powershell.</p>
<p>Handling the WMI COM object from Powershell was slightly less intuitive than in VBScript, and it took me a couple of hours to figure out how to change some stuff, especially this bit that sets the parameters collection:</p>
<blockquote><p>Set Inparams = objStdRegProv.Methods_(&#034;GetStringValue&#034;).Inparameters</p>
<p>Inparams.Hdefkey = HKLM</p>
<p>Inparams.Ssubkeyname = RegKey</p>
<p>Inparams.Svaluename = RegValue</p>
<p>Set Outparams = objStdRegProv.ExecMethod_(&#034;GetStringValue&#034;, Inparams,,objCtx)</p></blockquote>
<p>INTO this:</p>
<blockquote><p>$Inparams = ($objStdRegProv.Methods_ | where {$_.name -eq &#034;GetStringValue&#034;}).InParameters.SpawnInstance_()</p>
<p>($Inparams.Properties_ | where {$_.name -eq &#034;Hdefkey&#034;}).Value = $HKLM</p>
<p>($Inparams.Properties_ | where {$_.name -eq &#034;Ssubkeyname&#034;}).Value = $regkey</p>
<p>($Inparams.Properties_ | where {$_.name -eq &#034;Svaluename&#034;}).Value = $value</p>
<p>$Outparams = $objStdRegProv.ExecMethod_(&#034;GetStringValue&#034;, $Inparams, &#034;&#034;, $objNamedValueSet)</p></blockquote>
<p> </p>
<p>I have only done limited testing at this point and, even if the actual work now requires nearly <strong>15</strong> lines of code to be performed vs. the previous <strong>3 </strong>lines in the .Net implementation, it at least seems to work just fine.</p>
<p>What follows is the complete code of my replacement function, in all its <span style="text-decoration: line-through;">uglyness</span> glory:</p>
<p> </p>
<p><!-- Code --></p>
<div class="dp-highlighter">
<ol class="dp-rb">
<li class="alt"><span>Function GetValueFromRegistryThruWMI([string]</span><span class="variable">$computername</span><span>, </span><span class="variable">$regkey</span><span>, </span><span class="variable">$value</span><span>)   </span></li>
<li><span>{   </span></li>
<li><span>    </span><span class="comment">#constant for the HLKM </span><span>  </span></li>
<li><span>    </span><span class="variable">$HKLM</span><span> = </span><span class="string">&#034;&amp;h80000002&#034;</span><span>  </span></li>
<li><span> </span></li>
<li><span>    #creates an SwbemNamedValueSet object</span></li>
<li><span>    </span><span class="variable">$objNamedValueSet</span><span> = </span><span class="builtin">New-Object</span><span> -COM </span><span class="string">&#034;WbemScripting.SWbemNamedValueSet&#034;</span><span>  </span></li>
<li><span> </span></li>
<li><span>    #adds the actual value that will requests the target to provide 64bit-registry info</span></li>
<li><span>    </span><span class="variable">$objNamedValueSet</span><span>.Add(</span><span class="string">&#034;__ProviderArchitecture&#034;</span><span>, 64) | </span><span class="builtin">Out-Null</span><span>  </span></li>
<li> </li>
<li><span>    #back to all the other usual COM objects for WMI that you have used a zillion times in VBScript</span></li>
<li><span>    </span><span class="variable">$objLocator</span><span> = </span><span class="builtin">New-Object</span><span> -COM </span><span class="string">&#034;Wbemscripting.SWbemLocator&#034;</span><span>  </span></li>
<li><span>    </span><span class="variable">$objServices</span><span> = </span><span class="variable">$objLocator</span><span>.ConnectServer(</span><span class="variable">$computername</span><span>,</span><span class="string">&#034;root\default&#034;</span><span>,</span><span class="string">&#034;&#034;</span><span>,</span><span class="string">&#034;&#034;</span><span>,</span><span class="string">&#034;&#034;</span><span>,</span><span class="string">&#034;&#034;</span><span>,</span><span class="string">&#034;&#034;</span><span>,</span><span class="variable">$objNamedValueSet</span><span>)   </span></li>
<li><span>    </span><span class="variable">$objStdRegProv</span><span> = </span><span class="variable">$objServices</span><span>.Get(</span><span class="string">&#034;StdRegProv&#034;</span><span>)   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment"># Obtain an InParameters object specific to the method. </span><span>  </span></li>
<li><span>    </span><span class="variable">$Inparams</span><span> = (</span><span class="variable">$objStdRegProv</span><span>.Methods_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;GetStringValue&#034;</span><span>}).InParameters.SpawnInstance_()   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment"># Add the input parameters </span><span>  </span></li>
<li><span>    (</span><span class="variable">$Inparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;Hdefkey&#034;</span><span>}).Value = </span><span class="variable">$HKLM</span><span>  </span></li>
<li><span>    (</span><span class="variable">$Inparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;Ssubkeyname&#034;</span><span>}).Value = </span><span class="variable">$regkey</span><span>  </span></li>
<li><span>    (</span><span class="variable">$Inparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;Svaluename&#034;</span><span>}).Value = </span><span class="variable">$value</span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment">#Execute the method </span><span>  </span></li>
<li><span>    </span><span class="variable">$Outparams</span><span> = </span><span class="variable">$objStdRegProv</span><span>.ExecMethod_(</span><span class="string">&#034;GetStringValue&#034;</span><span>, </span><span class="variable">$Inparams</span><span>, </span><span class="string">&#034;&#034;</span><span>, </span><span class="variable">$objNamedValueSet</span><span>)   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="comment">#shows the return value </span><span>  </span></li>
<li><span>    (</span><span class="variable">$Outparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;ReturnValue&#034;</span><span>}).Value   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">if</span><span> ((</span><span class="variable">$Outparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;ReturnValue&#034;</span><span>}).Value -eq 0)   </span></li>
<li><span>    {   </span></li>
<li><span>       write-host </span><span class="string">&#034;it worked&#034;</span><span>  </span></li>
<li><span>       </span><span class="variable">$result</span><span> = (</span><span class="variable">$Outparams</span><span>.Properties_ | </span><span class="keyword">where</span><span> {</span><span class="variable">$_</span><span>.name -eq </span><span class="string">&#034;sValue&#034;</span><span>}).Value   </span></li>
<li><span>       write-host </span><span class="string">&#034;Result: $result&#034;</span><span>  </span></li>
<li><span>       </span><span class="keyword">return</span><span> </span><span class="variable">$result</span><span>  </span></li>
<li><span>    }   </span></li>
<li><span>    </span><span class="keyword">else</span><span>  </span></li>
<li><span>    {   </span></li>
<li><span>        write-host </span><span class="string">&#034;nope&#034;</span><span>  </span></li>
<li><span>    }   </span></li>
<li><span>}   </span></li>
</ol>
</div>
<p><span> </span></p>
<p><span>which can be called similarly to the previous one: </span><br />
<strong><span>GetValueFromRegistryThruWMI </span><span class="variable">$RMS</span><span> </span><span class="string">&#034;SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup&#034;</span><span> </span><span class="string">&#034;DatabaseServerName&#034;</span></strong></p>
<p>[Note: you don’t need the double\escape backslashes here, compared to the .Net implementation]</p>
<p>Enjoy your cross-architecture registry access: from 32bit to 64bit &#8211; and back!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/09/10/mistery-of-lost-registry-values/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Love, when shared, multiplies itself</title>
		<link>http://www.muscetta.com/2009/08/30/love-when-shared-multiplies-itself/</link>
		<comments>http://www.muscetta.com/2009/08/30/love-when-shared-multiplies-itself/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 14:47:24 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[baby]]></category>
		<category><![CDATA[daughter]]></category>
		<category><![CDATA[family]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=476</guid>
		<description><![CDATA[Last night at nearly 3:00am my daughter Sara was born.<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/dani3l3/3868703681/"><img src="http://farm3.static.flickr.com/2661/3868703681_ee0fd5db13.jpg" alt="Welcome Sara!" /></a></p>
<p>Last night at nearly 3:00am my daughter Sara was born.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/08/30/love-when-shared-multiplies-itself/feed/</wfw:commentRss>
		<slash:comments>2</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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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>4</slash:comments>
		</item>
		<item>
		<title>Get-WmiCustom (aka: Get-WMIObject with timeout!)</title>
		<link>http://www.muscetta.com/2009/05/27/get-wmicustom/</link>
		<comments>http://www.muscetta.com/2009/05/27/get-wmicustom/#comments</comments>
		<pubDate>Wed, 27 May 2009 18:23:07 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[WMI]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=443</guid>
		<description><![CDATA[I make heavy use of WMI. But when using it to gather information from customer’s machines for assessments, I sometimes find the occasional broken WMI repository. There are a number of ways in which WMI can become corrupted and return weird results. Most of the times you would just get errors, such as “Class not [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I make heavy use of WMI.</p>
<p>But when using it to gather information from customer’s machines for assessments, I sometimes find the occasional broken WMI repository. There are a number of ways in which WMI can become corrupted and return weird results. Most of the times you would just get errors, such as “Class not registered” or “provider load failure”. I can handle those errors from within scripts.</p>
<p>But there are some, more subtle &#8211; and annoying – ways in which the WMI repository can get corrupted. the situations I am talking about are the ones when WMI will accept your query… will say it is executing it… but it will never actually return any error, and just stay stuck performing your query forever. Until your client application decides to time out. Which in some cases does not happen.</p>
<p>Now that was my issue – when my assessment script (which was using the handy Powershell <a href="http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/get-wmiobject.mspx">Get-WmiObject cmdlet</a>) would hit one of those machines… the whole script would hang forever and never finish its job. Ok, sure, the solution to this would be actually FIXING the WMI repository and then try again. But remember I am talking of an assessment: if the information I am getting is just one piece of a bigger puzzle, and I don’t necessarily care about it and can continue without that information – I want to be able to do it, to skip that info, maybe the whole section, report an error saying I am not able to get that information, and continue to get the remaining info. I can still fix the issue on the machine afterward AND then run the assessment script again, but in the first place I just want to get a picture of how the system looks like. With the good and with the bad things. Especially, I do want to take that whole picture – not just a piece of it.</p>
<p>Unfortunately, the <a href="http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/get-wmiobject.mspx">Get-WmiObject cmdlet</a> does not let you specify a timeout. Therefore I cooked my own function which has a compatible behaviour to that of Get-WmiObject, but with an added “-timeout” parameter which can be set. I dubbed it “Get-WmiCustom”</p>
<p><strong>Function Get-WmiCustom([string]$computername,[string]$namespace,[string]$class,[int]$timeout=15)<br />
{<br />
$ConnectionOptions = new-object System.Management.ConnectionOptions<br />
$EnumerationOptions = new-object System.Management.EnumerationOptions </strong></p>
<p><strong> $timeoutseconds = new-timespan -seconds $timeout<br />
$EnumerationOptions.set_timeout($timeoutseconds) </strong></p>
<p><strong> $assembledpath = &#034;\\&#034; + $computername + &#034;\&#034; + $namespace<br />
#write-host $assembledpath -foregroundcolor yellow </strong></p>
<p><strong> $Scope = new-object System.Management.ManagementScope $assembledpath, $ConnectionOptions<br />
$Scope.Connect() </strong></p>
<p><strong> $querystring = &#034;SELECT * FROM &#034; + $class<br />
#write-host $querystring </strong></p>
<p><strong> $query = new-object System.Management.ObjectQuery $querystring<br />
$searcher = new-object System.Management.ManagementObjectSearcher<br />
$searcher.set_options($EnumerationOptions)<br />
$searcher.Query = $querystring<br />
$searcher.Scope = $Scope </strong></p>
<p><strong> trap { $_ } $result = $searcher.get() </strong></p>
<p><strong> return $result<br />
}</strong></p>
<p>You can call it as follows, which is similar to how you would call get-WmiObject</p>
<p><strong>get-wmicustom -class Win32_Service -namespace &#034;root\cimv2&#034; -computername server1.domain.dom</strong></p>
<p>or, of course, specifying the timeout (in seconds):</p>
<p><strong>get-wmicustom -class Win32_Service -namespace &#034;root\cimv2&#034; -computername server1.domain.dom –timeout 1</strong></p>
<p>and obviously, since the function returns objects just like the original cmdlet, it is also possible to pipe them to other commands:</p>
<p><strong>get-wmicustom -class Win32_Service -namespace &#034;root\cimv2&#034; -computername server1.domain.dom –timeout 1 | Format-Table</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/05/27/get-wmicustom/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Burning Audio CDs with Media Player on Windows 2008 requires elevation</title>
		<link>http://www.muscetta.com/2009/05/03/burning-audio-cds-with-media-player-on-windows-2008-requires-elevation/</link>
		<comments>http://www.muscetta.com/2009/05/03/burning-audio-cds-with-media-player-on-windows-2008-requires-elevation/#comments</comments>
		<pubDate>Sun, 03 May 2009 07:26:03 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[CDA]]></category>
		<category><![CDATA[connect a burner and restart the player]]></category>
		<category><![CDATA[elevated]]></category>
		<category><![CDATA[elevation]]></category>
		<category><![CDATA[media player]]></category>
		<category><![CDATA[run as administrator]]></category>
		<category><![CDATA[UAC]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=440</guid>
		<description><![CDATA[Yesterday, when trying to burn an Audio CD (to listen to music in my car) starting from MP3 files by using Windows Media Player 11, I kept getting this message &#034;connect a burner and restart the player&#034; and the “Start Burn” button was greyed out, like if the program was not able to seeing that [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Yesterday, when trying to burn an Audio CD (to listen to music in my car) starting from MP3 files by using <a href="http://www.microsoft.com/windows/windowsmedia/download" target="_blank">Windows Media Player 11</a>, I kept getting this message &#034;connect a burner and restart the player&#034; and the “Start Burn” button was greyed out, like if the program was not able to seeing that my CD/DVD Burner is actually capable of writing CDs:</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/image29.png" border="0" alt="image" width="299" height="150" /></p>
<p>But I knew the DVD/CD burner was connected and working, because I had used it the very same day (with another program) to burn an .ISO image, and it worked from there!</p>
<p><a href="http://www.google.com/search?hl=en&amp;q=%22connect+a+burner+and+restart+the+player%22&amp;btnG=Search" target="_blank">I searched all over the place for this error message</a>, and there are many posts in forums with this message, which suggest you to do the strangest things, from changing your computer, to deleting important pieces of the registry, to reinstall the whole system… most of them are bullshit.</p>
<p>I went to my wife’s PC to test…with her PC it worked. It looked mostly the same: she’s running Vista, not 2008 (but it really is the same kernel, isn’t it?), she has exactly the same DVD burner installed as I do, the same motherboard, both machines and OS’s are 64bit, we both have installed Internet Explorer 8 (and keep it with “protected mode” turned ON), we both have Media Player 11, we both keep UAC enabled…</p>
<p>But then in the end I tried using elevation:</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/image30.png" border="0" alt="image" width="262" height="385" /></p>
<p>And here we go, it worked:</p>
<p><a href="http://www.muscetta.com/wp-content/uploads/image31.png" rel="lightbox[440]"><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-thumb14.png" border="0" alt="image" width="293" height="154" /></a></p>
<p>When running the process as administrator, Windows Media Player is able to query the hardware to determine if we have a capable device on Windows Server 2008. It remains a mystery to me at this point why this works on my wife’s Vista machine without elevation, though&#8230;</p>
<p>It sure is not a problem to do this operation “as administrator” when needed – but it just took me a minute to figure it out, for some reason.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/05/03/burning-audio-cds-with-media-player-on-windows-2008-requires-elevation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yashica MF-3</title>
		<link>http://www.muscetta.com/2009/04/08/yashica-mf-3/</link>
		<comments>http://www.muscetta.com/2009/04/08/yashica-mf-3/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 14:16:34 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Camera]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[plastic]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[toy camera]]></category>
		<category><![CDATA[yashica]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=434</guid>
		<description><![CDATA[Bought for 2 euros in a second-hand market, found under a pile of junk. You understood right: TWO euros. The electrical contacts for the flash are ruined as someone probably forgot his batteries inside and they leaked. But I was not planning to use the flash anyhow. For the rest, it just works. See for [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="Yashica MF-3 on Flickr" href="http://www.flickr.com/photos/dani3l3/3420709551/"><img src="http://farm4.static.flickr.com/3660/3420709551_ae7f3af2e8.jpg" alt="Yashica MF-3" /></a></p>
<p class="flickr-yourcomment">Bought for 2 euros in a second-hand market, found under a pile of junk. You understood right: TWO euros.<br />
The electrical contacts for the flash are ruined as someone probably forgot his batteries inside and they leaked. But I was not planning to use the flash anyhow.<br />
For the rest, it just works. See for yourself something scanned from the first film: <a href="http://www.flickr.com/photos/dani3l3/tags/mf3/">www.flickr.com/photos/dani3l3/tags/mf3/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/04/08/yashica-mf-3/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>2</slash:comments>
		</item>
		<item>
		<title>Impatience (Second Song)</title>
		<link>http://www.muscetta.com/2009/03/14/impatience-second-song/</link>
		<comments>http://www.muscetta.com/2009/03/14/impatience-second-song/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 09:31:52 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[song]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=419</guid>
		<description><![CDATA[I composed another song. For now a single post is good enough to let you listen to it. But later I&#039;ll probably create a specific page to collect these songs (the first one was here).<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I composed another song. For now a single post is good enough to let you listen to it. But later I&#039;ll probably create a specific page to collect these songs (the first one <a href="http://www.muscetta.com/2008/09/18/waiting-first-song/">was here</a>).</p>
<p><a href="http://www.muscetta.com/audio/Impatience.mp3">Download audio file (Impatience.mp3)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/03/14/impatience-second-song/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.muscetta.com/audio/Impatience.mp3" length="2765763" type="audio/mpeg" />
		</item>
		<item>
		<title>My own 2008 Favourite Photos</title>
		<link>http://www.muscetta.com/2009/01/11/my-own-2008-favourite-photos/</link>
		<comments>http://www.muscetta.com/2009/01/11/my-own-2008-favourite-photos/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 15:26:18 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[dani3l3]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=417</guid>
		<description><![CDATA[I looked back though my past year of photo making and these are my own personal favorites: regardeless of what people (and Flickr&#039;s interestingness algoritm) think, this is my own selection. 1. Elin, 2. Follow your bliss, 3. Soap Bubbles, 4. Morning Fog, 5. Don&#039;t look back, 6. Plough, 7. Quattro Gatti, 8. Ein deutsches [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><!--<br />
.flickr-photo { border: solid 2px #000000; }<br />
.flickr-yourcomment { }<br />
.flickr-frame { text-align: left; padding: 3px; }<br />
.flickr-caption { font-size: 0.8em; margin-top: 0px; }<br />
--></p>
<div class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/3187191967/"><img class="flickr-photo" src="http://farm4.static.flickr.com/3370/3187191967_cb2e416bd3.jpg" alt="My own 2008 Faves" /></a></p>
<p>I looked back though my past year of photo making and these are my own personal favorites: regardeless of what people (and Flickr&#039;s interestingness algoritm) think, this is my own selection.</p></div>
<p>1. <a href="http://flickr.com/photos/34997998@N00/3140760145/">Elin</a>, 2. <a href="http://flickr.com/photos/34997998@N00/3140726177/">Follow your bliss</a>, 3. <a href="http://flickr.com/photos/34997998@N00/3093775402/">Soap Bubbles</a>, 4. <a href="http://flickr.com/photos/34997998@N00/3093672536/">Morning Fog</a>, 5. <a href="http://flickr.com/photos/34997998@N00/3092933491/">Don&#039;t look back</a>, 6. <a href="http://flickr.com/photos/34997998@N00/3092836083/">Plough</a>, 7. <a href="http://flickr.com/photos/34997998@N00/3092806403/">Quattro Gatti</a>, 8. <a href="http://flickr.com/photos/34997998@N00/3070818482/">Ein deutsches Requiem</a>, 9. <a href="http://flickr.com/photos/34997998@N00/3070262971/">Munich | S-Bahn</a>, 10. <a href="http://flickr.com/photos/34997998@N00/3035148543/">Sunset Behind Castel Gandolfo</a>, 11. <a href="http://flickr.com/photos/34997998@N00/2993975989/">Prayers</a>, 12. <a href="http://flickr.com/photos/34997998@N00/3052377981/">Roma Multietnica | Mercato Esquilino</a>, 13. <a href="http://flickr.com/photos/34997998@N00/2994832846/">Pantheon</a>, 14. <a href="http://flickr.com/photos/34997998@N00/2988567071/">Romanian Cat</a>, 15. <a href="http://flickr.com/photos/34997998@N00/2989431276/">Bucharest | Garden at Stavropoleos Church</a>, 16. <a href="http://flickr.com/photos/34997998@N00/2992357169/">Reflection of the East</a>, 17. <a href="http://flickr.com/photos/34997998@N00/2951307777/">Musician</a>, 18. <a href="http://flickr.com/photos/34997998@N00/2746554422/">Juno&#039;s temple</a>, 19. <a href="http://flickr.com/photos/34997998@N00/2764396773/">Memories or the Past</a>, 20. <a href="http://flickr.com/photos/34997998@N00/2765239678/">Joshua | Thinking</a>, 21. <a href="http://flickr.com/photos/34997998@N00/2749184134/">Esha Tizafy</a>, 22. <a href="http://flickr.com/photos/34997998@N00/2947050150/">Prague by Night</a>, 23. <a href="http://flickr.com/photos/34997998@N00/2705539277/">Sicilian Meditative material</a>, 24. <a href="http://flickr.com/photos/34997998@N00/2723822122/">Scala dei Turchi</a>, 25. <a href="http://flickr.com/photos/34997998@N00/2723790094/">Scala dei Turchi</a>, 26. <a href="http://flickr.com/photos/34997998@N00/2699562868/">The Puppet Maker</a>, 27. <a href="http://flickr.com/photos/34997998@N00/2705897289/">Mazara del Vallo</a>, 28. <a href="http://flickr.com/photos/34997998@N00/2699547482/">Cappella di S.Crescenzia</a>, 29. <a href="http://flickr.com/photos/34997998@N00/2698678751/">Trapani | Abandoned Place</a>, 30. <a href="http://flickr.com/photos/34997998@N00/2699034326/">Marsala</a>, 31. <a href="http://flickr.com/photos/34997998@N00/2698668723/">Luca | Lemon</a>, 32. <a href="http://flickr.com/photos/34997998@N00/2698847314/">Luca Photographer</a>, 33. <a href="http://flickr.com/photos/34997998@N00/3115650837/">Switzerland from the Train</a>, 34. <a href="http://flickr.com/photos/34997998@N00/2604787749/">Old Friends | Generations</a>, 35. <a href="http://flickr.com/photos/34997998@N00/2580176807/">Elin</a>, 36. <a href="http://flickr.com/photos/34997998@N00/2605633446/">Old Friends | Generations</a><br />
<a href="http://bighugelabs.com/flickr/mosaic.php">The application at BigHugeLabs.com</a> only lets you do mosaics of up to 36 photos.</p>
<p>My selection really includes my favourite 50, which are arranged in <a href="http://www.flickr.com/photos/dani3l3/sets/72157612435486262">a specific SET</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2009/01/11/my-own-2008-favourite-photos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Early Adoptions, Health Checks and New Year Rants.</title>
		<link>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/</link>
		<comments>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:10:26 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[HC]]></category>
		<category><![CDATA[Health Check]]></category>
		<category><![CDATA[HealthCheck]]></category>
		<category><![CDATA[Premier]]></category>
		<category><![CDATA[Premier Field Engineer]]></category>
		<category><![CDATA[RAP]]></category>
		<category><![CDATA[Risk Assessment Program]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=390</guid>
		<description><![CDATA[Two days ago I read the following Tweet by Hugh MacLeod: &#034;[...] Early Adopter Problem: How to differentiate from the bandwagon, once the bandwagon starts moving faster than you are [...]&#034; That makes me think of early adoption of a few technologies I have been working with, and how the community around those evolved. For [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/dani3l3/3150411409/"><img src="http://farm4.static.flickr.com/3258/3150411409_8ce3a8ea75.jpg" alt="Generations" width="500" height="333" /></a></p>
<p>Two days ago I read <a href="http://twitter.com/gapingvoid/status/1082816395">the following Tweet by Hugh MacLeod</a>:</p>
<blockquote><p>&#034;[...] Early Adopter Problem: How to differentiate from the bandwagon, once the bandwagon starts moving faster than you are [...]&#034;</p></blockquote>
<p>That makes me think of early adoption of a few technologies I have been working with, and how the community around those evolved. For example:</p>
<p><strong>Operations Manager</strong>&#8230; early adoption meant that I have been working with it since the beta, had posted <a href="http://www.muscetta.com/2007/05/10/create-a-script-based-unit-monitor-in-opsmgr2007-via-the-gui/">one of the earliest posts about how to use a script in a Unit Monitor back in may 2007</a> (the product was released in April 2007 and there was NO documentation back then, so we had to really try to figure out everything&#8230;), but <a href="http://contoso.se/blog/?p=305">someone seems to think it is worth repeating the very same lesson in November 2008</a>, with not a lot of changes, as <a href="http://twitter.com/dani3l3/status/1030704645">I wrote here</a>. I don&#039;t mean being rude to Anders&#8230; repeating things will surely help the late adopters finding the information they need, of course.</p>
<p>Also, I started playing early with <strong>Powershell</strong>. <a href="http://www.muscetta.com/2006/11/24/out-blog/">I posted my first (and only) cmdlet</a> back in 2006. It was not a lot more than a test for myself to learn how to write one, but that&#039;s just to say that I started playing early with it. I have been using it <a href="http://www.muscetta.com/2007/05/30/death-by-right-click-delete-nope-powershell/">to automate tasks</a> for example.</p>
<p>Going back to the quote above, everyone gets on the bandwagon posting <a href="http://www.systemcenterforum.org/news/advanced-example-using-powershell-and-the-opsmgr-sdk-creating-and-updating-groups/">examples and articles</a>. I had been asked a few times about writing articles on OpsMgr and Powershell usage (for example by <a href="http://www.powershell.it">www.powershell.it</a>) but I declined, as I was too busy using this knowledge to do stuff for work (where “work” is defined as in “work that pays your mortgage”), rather than seeking personal prestige through articles and blogs. Anyway, that kind of articles are appearing now all over the Internet and the blogosphere now. The above examples made me think of early adoption, and the bandwagon that follows later on… but even as an early adopter, I was never very noisy or visible.</p>
<p>Now, going back to what I do for work, (which <a href="http://blogs.msdn.com/dmuscett/archive/2005/09/02/459914.aspx">I mentioned here</a> and <a href="http://www.muscetta.com/2007/12/27/simply-works/">here in the past</a>), I work in the <a href="https://www.microsoft.com/emea/careers/technicalJobs/PremierFieldEngineer.mspx">Premier Field Engineering</a> organization of Microsoft Services, which provides Premier services to customers. <a href="http://www.microsoft.com/services/microsoftservices/srv_premier.mspx">Microsoft Premier customer have a wide range of Premier agreement features and components</a> that they can use to support their people, improve their processes, and improve the productive use of the Microsoft technology they have purchased. Some of these services we provide are known to the world as “<a href="http://www.google.com/search?hl=en&amp;q=health+check+site%3Amicrosoft.com&amp;btnG=Search">Health Checks</a>”, some as “<a href="http://www.google.com/search?hl=en&amp;q=risk+assessment+program+site%3Amicrosoft.com&amp;btnG=Search">Risk Assessment Programs</a>” (or, shortly, RAPs). These are basically services where one of our technology experts goes on the customer site and there he uses a custom, private Microsoft tool to gather a huge amount of data from the product we mean to look at (be it SQL, Exchange, AD or anything else….). The Health Check or RAP tool collects the data and outputs a draft of the report that will be delivered to the customer later on, with all the right sections and chapters. This is done so that every report of the same kind will look consistent, even if the engagement is performed by a different engineer in a different part of the world. The engineer will of course analyze the collected data and write recommendations about what is configured properly and/or about what could or should be changed and/or improved in the implementation to make it adhere to Best Practices. To make sure only the right people actually go onsite to do this job we have a strict internal accreditation process that must be followed; only accredited resources that know the product well enough and know exactly how to interpret the data that the tool collects are allowed to use it and to deliver the engagement, and present/write the findings to the customer.</p>
<p>So why am I telling you this here, and how have I been using my early knowledge of OpsMgr and Powershell for ?</p>
<p>I have used that to write the Operations Manager Health Check, of course!</p>
<p>We had a <a href="http://download.microsoft.com/download/f/9/7/f974f0df-66fd-47e9-a1ac-c6fdbe3c723a/Operations_Manager_Server_Health_Check.pdf">MOM 2005 Health Check </a>already, but since the technology has changed so much, from MOM to OpsMgr, we had to write a completely new tool. Jeff  (the original MOM2005 author, who does not have a blog that I can link to) and me are the main coders of this tool… and the tool itself is A POWERSHELL script. A longish one, of course (7000 lines, more or less), but nothing more than a Powershell script, at the end of the day. There are a few more colleagues that helped shape the features and tested the tool, including <a href="http://blogs.technet.com/kevinholman/">Kevin Holman</a>. Some of the <a href="http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx">database queries on Kevin’s blog</a> are in fact what we use to extract some of the data (beware that some of those queries have recently been updated, in case you saved them and using your local copy!), while some other information are using internal and/or custom queries. Some other times we use OpsMgr cmdlets or go to the SDK service, but a lot of times we query the database directly (we really should use the SDK all the times, but for certain stuff direct database access is way faster). It took most of the past year to write it, test it, troubleshoot it, fix it, and deliver the first engagements as “beta” to some customers to help iron out the process&#8230; and now the delivery is available! If a year seems like a long time, you have to consider this is all work that gets done next to what we all have to normally do with customers, not replacing it (i.e. I am not free to sit on my butt all day and just write the tool&#8230; <a href="http://download.microsoft.com/download/e/9/d/e9df53f8-3069-4fe4-bdbd-0d7abd86488a/PremFieldEnginr_161107b.pdf">I still have to deliver services to customers day in day out, in the meantime</a>).</p>
<p>Occasionally, during this past calendar year, that is approaching its end, I have been willing and have found some extra time to disclose some bits and pieces, techniques and prototypes of how to use Powershell and OpsMgr together, <a href="http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/">such as innovative ways to use Powershell in OpsMgr against beta features</a>, but in general most of my early adopter’s investment went into the private tool for this engagement, and that is one of the reasons I couldn’t blog or write much about it, being it Microsoft Intellectual Property.</p>
<p>But it is also true that <a href="http://twitter.com/dani3l3/status/997620250">I did not care to write other stuff when I considered it too easy or it could be found in the documentation</a>. I like writing of ideas, thoughts, rants OR things that I discover and that are not well documented at the time I study them… so when I figure out things I might like leaving a trail for some to follow. But I am not here to spoon feed people like some in the bandwagon are doing. Now the bandwagon is busy blogging and writing continuously about some aspect of OpsMgr (known or unknown, documented or not), and the answer to <a href="http://twitter.com/gapingvoid/status/1082816395">the original question of Hugh</a> is, in my opinion, that it does not really matter what the bandwagon is doing right now. I was never here to do the same thing. I think <strong>that</strong> is my differentiator. I am not saying that what a bunch of colleagues and enthusiasts is doing is not useful: blogging and writing about various things they experiment with is interesting and it will be useful to people. But blogs are useful until a certain limit. I think that blogs are best suited for conversations and thoughts (rather than for &#034;howto&#039;s&#034;), and what I would love to see instead is: less marketing hype when new versions are announced and more real, official documentation.</p>
<p>But I think I should stop caring about what the bandwagon is doing, because that&#039;s just another ego trip at the end of the day. What I should more sensibly do, would be listening to <a href="http://freewillastrology.com/horoscopes/pisces.html">my horoscope</a> instead:</p>
<blockquote><p>[…] &#034;How do you slay the dragon?&#034; journalist Bill Moyers asked mythologist Joseph Campbell in an interview. By &#034;dragon,&#034; he was referring to the dangerous beast that symbolizes the most unripe and uncontrollable part of each of our lives. In reply to Moyers, Campbell didn&#039;t suggest that you become a master warrior, nor did he recommend that you cultivate high levels of sleek, savage anger. &#034;Follow your bliss,&#034; he said simply. Personally, I don&#039;t know if that&#039;s enough to slay the dragon &#8212; I&#039;m inclined to believe that you also have to take some defensive measures &#8212; but it&#039;s definitely worth an extended experiment. Would you consider trying that in 2009? […]</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Cake</title>
		<link>http://www.muscetta.com/2008/12/23/flickr-cake/</link>
		<comments>http://www.muscetta.com/2008/12/23/flickr-cake/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 14:48:26 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[cake]]></category>
		<category><![CDATA[dani3l3]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[jyothi]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=383</guid>
		<description><![CDATA[Flickr Cake, uploaded by Daniele Muscetta on Flickr. Here the photo of another creation by Jyothi, that we have eaten two days ago with a bunch of Flickr-crazy friends: a Flickr cake! That wasn&#039;t only nice to see, it was also tasty!<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>
<div class="flickr-frame">
	<a href="http://www.flickr.com/photos/dani3l3/3126594542/" title="photo sharing"><img src="http://farm4.static.flickr.com/3255/3126594542_87fcf6d889.jpg" class="flickr-photo" alt="Flickr Cake" /></a><br />
<br />
	<span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/3126594542/">Flickr Cake</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span>
</div>
<p class="flickr-yourcomment">
	Here the photo of another creation by <a href="http://jyothi.muscetta.com/">Jyothi</a>, that we have eaten two days ago with a bunch of Flickr-crazy friends: a Flickr cake! That wasn&#039;t only nice to see, it was also tasty!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/12/23/flickr-cake/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>7</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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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>15</slash:comments>
		</item>
		<item>
		<title>Social Centres</title>
		<link>http://www.muscetta.com/2008/10/22/social-centres/</link>
		<comments>http://www.muscetta.com/2008/10/22/social-centres/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 21:44:15 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA["centri sociali"]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Rome]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[sociale]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=332</guid>
		<description><![CDATA[Yesterday one of the &#034;Social Centres&#034; in Rome has been attacked by the police, and people have been sent out of it. I have struggled to find any mention of it in english, therefore I&#039;ll link a couple of italian articles and blog posts (try an automatic translation system &#8211; but at the same time [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Yesterday one of the &#034;Social Centres&#034; in Rome has been attacked by the police, and people have been sent out of it. I have struggled to find any mention of it in english, therefore I&#039;ll link a couple of italian articles and blog posts (try an automatic translation system &#8211; but at the same time I invite people who only write in italian to try and open out to the world, to let everybody know, by writing in english):<br />
<a href="http://www.openpolis.it/dichiarazione/355693">http://www.openpolis.it/dichiarazione/355693</a><br />
<a href="http://www.ilmessaggero.it/articolo.php?id=33301">http://www.ilmessaggero.it/articolo.php?id=33301</a><br />
<a title="http://current.com/items/89435235_centri_sociali_alemanno_va_alla_guerra_sgomberato_l_horus_tensione_a_roma" href="http://current.com/items/89435235_centri_sociali_alemanno_va_alla_guerra_sgomberato_l_horus_tensione_a_roma">http://current.com/items/89435235_centri_sociali_alemanno_va_alla_guerra_sgomberato_l_horus_tensione_a_roma</a><br />
<a title="http://davanti.wordpress.com/2008/10/21/la-zanzara-pensante/" href="http://davanti.wordpress.com/2008/10/21/la-zanzara-pensante/">http://davanti.wordpress.com/2008/10/21/la-zanzara-pensante/</a></p>
<p>Basically hat is happening is that <a href="http://en.wikipedia.org/wiki/Gianni_Alemanno">Rome&#039;s major</a> announced today that this is the first episode of a battle against the &#034;Social Centres&#034; and the he means to close/clear many of them. With the excuse that they are illegal places, filled with dangerous people. They even invented the presence of rudimentary &#034;molotov&#034; bombs that really turned out to be bottles of wine in it, to justify the action.<br />
Once again, the old ghost of &#034;security&#034; is being used to repress spontaneous aggregation of people and use of spaces that were otherwise left to rot.<br />
Should &#034;Social Centres&#034; be considered scary or dangerous? Just consider that last sunday I posted <a href="http://flickr.com/photos/dani3l3/2955040820/">the photo below on Flickr</a> and commented:</p>
<blockquote><p>[...] The alternative people in Rome are growing. A lot of us have kids now, therefore you start seeing refurbished playgrounds and spaces for them inside of the various &#034;Social Centres&#034; [...]</p></blockquote>
<p>Can you read? Playgrounds. Not bombs.</p>
<p><a title="Playground | Forte Prenestino by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/2955040820/"><img src="http://farm4.static.flickr.com/3026/2955040820_a6952e5670.jpg" alt="Playground | Forte Prenestino" width="500" height="333" /></a></p>
<p>But what is a &#034;Social Centre&#034; anyway, for those reading this who don&#039;t know it? <a href="http://forum.wordreference.com/showthread.php?t=484839">Here I found an interesting discussion about the translation of the term &#034;Centro Sociale&#034; from italian to english</a>. An excerpt of that discussion follows:</p>
<blockquote><p>[...] &#034;centro sociale&#034; is a place, usually occupied without police or government permission (the people staying there don&#039;t pay rent or anything basically) where militants, or politically aware groups, gather to discuss about issues and in some case prepare demonstration and revolt acts&#8230;For those of you knowing Milan like &#034;Leoncavallo&#034; once. Would you say &#034;squat&#034; or something similar?<br />
[...]<br />
I don&#039;t believe there is a one-on-one equivalent in English for this culturally-embedded term. [...] I&#039;d like to underline that also in italian we use the term &#034;squat&#034; but it is slightly different from &#034;centro sociale&#034;; maybe we are poaching in the political nuances&#8230;but with &#034;squat&#034; in italian we refer mainly to an illegally occupied place where people live (they sleep,they cook&#8230;etc etc), while &#034;centro sociale&#034;, especially way back in the Seventies, was mainly the center of great political awareness, of political activists, at least in the Far-left activists&#039; intentions and point of view.<br />
[...]<br />
Despite there being a tradition of social spaces in occupied buildings (also known as squatting), the recent upsurge in (legal) social centres has come about in the last five years. List of current UK social centres, either squatted or legal [...]</p></blockquote>
<p>In the meantime, <a href="http://en.wikipedia.org/wiki/Social_centre">the Wikipedia page for &#034;Social Centre&#034;</a> has also become pretty complete in its description. It says:</p>
<blockquote><p>[...] Social Centers are community spaces. They are buildings which are used for a range of disparate activities, which can be linked only by virtue of being not-for-profit. They might be organizing centers for local activities or they might provide support networks for minority groups such as prisoners and refugees. Often they provide a base for initiatives such as cafes, free shops, public computer labs, graffiti murals, legal collectives and free housing for travellers. The services are determined by both the needs of the community in which the social center is based and the skills which the participants have to offer. Social centres tend to be in large buildings and thus can host activist meetings, concerts, bookshops, dance performances and art exhibitions. Social centres are common in many European cities, sometimes in squats, sometimes in rented buildings.<br />
[...]<br />
&#034;Social centres are abandoned buildings &#8211; warehouses, factories, military forts, schools &#8211; that have been occupied by squatters and transformed into cultural and political hubs, explicitly free from both the market, and from state control&#8230; Though it may be hard to tell at first, the social centres aren&#039;t ghettos, they are windows — not only into another way to live, disengaged from the state, but also into a new politics of engagement. And yes, it&#039;s something maybe beautiful.&#034; (Klein, 2001).<br />
[...]<br />
The social centre concept has taken root most successfully in Italy, beginning in the 1970s. Large factories and even abandoned military barracks have been &#034;appropriated&#034; for use as social centers. There are today dozens of social centers in Italy, often denoted by the initials CSOA (Centro Sociale Occupato Autogestito). Examples include, Pedro in Padova, Spartaco in Ravenna, Officina 99 in Naples and <a href="www.forteprenestino.net/">Forte Prenestino</a>, Corto Circuito and Villaggio Globale in Rome and Leoncavallo in Milan. The historic relationship between the Italian social centers and the Autonomia movement (specifically Lotta Continua) has been described briefly in Storming Heaven, Class Composition and Struggle in Italian Autonomous Marxism, by Steve Wright. Social centres in Italy continue to be centres of political / social dissent. Notably the Tute Bianche and Ya Basta Association developed directly out of the social center movement, and many social forums take place in social centers. They are also used for hacklabs, activist copyleft centers (for example, LOA Hacklab in Milan). [...]</p></blockquote>
<p>So well, what Wright has written is certainly true, and historically the Social Centres might have been tied to the extreme political dissent of the seventies. I don&#039;t say that that old model was right; but over time they grew to be very different and beautiful aggregation places where a lot of different activities take place. People have grown up, they calmed down, and are now building spaces for everybody who wants to join in and enjoy and share. There are places for concerts, and theatre, and kids play.</p>
<p><a title="Playground | Forte Prenestino by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/2954134355/"><img src="http://farm4.static.flickr.com/3061/2954134355_511d67b225.jpg" alt="Playground | Forte Prenestino" width="500" height="333" /></a></p>
<p>In certain occasions beautiful stories are told, and the audience listens, open-mouthed and enchanted:</p>
<p><a title="Che meraviglia che meraviglia! by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/301072042/"><img src="http://farm1.static.flickr.com/101/301072042_38df8eaa01.jpg" alt="Che meraviglia che meraviglia!" width="500" height="333" /></a></p>
<p>There are happenings where a lot of creativity takes place, such as the yearly juggler meet-up, that is filled with so much joy and fun:</p>
<p><a title="5° Festival Romano di Giocoleria by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/1390821746/"><img src="http://farm2.static.flickr.com/1262/1390821746_683af87d9f.jpg" alt="5° Festival Romano di Giocoleria" width="500" height="333" /></a></p>
<p>There is sharing of ideas, knowledge, and interests, such as the Hacklabs / <a href="http://www.hackmeeting.org/">Hackmeetings</a>:</p>
<p><a title="HackMeeting 0x0A by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/1467025903/"><img src="http://farm2.static.flickr.com/1223/1467025903_207453817e.jpg" alt="HackMeeting 0x0A" width="500" height="333" /></a></p>
<p>Someone commented ironically on the above, stating they found it strange to see a Microsoft employee joining that crew of the Hackmeeting.<br />
I say that there is nothing wrong in passing by a computer geeks convention. Because that&#039;s what it is, after all.<br />
Only difference from commercial conferences is that, well &#8211; it isn&#039;t commercial or sponsored by any company. Nobody will try to sell you anything, but nonetheless you might be able to learn something.</p>
<p>Talking about non-commercial, non-profit sharing, another example is the <a href="http://terraterra.noblogs.org/">terraTERRA</a> market that started in Rome at <a href="http://www.forteprenestino.net/">&#034;Forte Prenestino&#034;</a> a couple of years ago:</p>
<blockquote><p>[...] <a href="http://terraterra.noblogs.org/">terraTERRA</a> is the experimentation of an economic model where producers and consumers are committed to each other in order to subvert distribution chains, shorten food distance, value social relations, pleasure and taste. [...]</p></blockquote>
<p><a title="terraTERRA | Forte Prenestino by Daniele Muscetta, on Flickr" href="http://www.flickr.com/photos/dani3l3/2954993228/"><img src="http://farm4.static.flickr.com/3227/2954993228_09d21a118b.jpg" alt="terraTERRA | Forte Prenestino" width="500" height="333" /></a></p>
<p>With all this amount of activities, <a href="http://www.romexplorer.com/centri.html">even tourist resource recognize their importance and you start find reference of them on the net when searching for &#034;what to do in Rome&#034;</a>. From the previous link:</p>
<blockquote><p>[...] If a visit to a squat doesn&#039;t rank high on your list of holiday priorities, think again. As any local musician will tell you, the best place to feel the pulse of Rome&#039;s music scene is in the Centri Sociali &#8211; semi-legal social centres organising concerts, film screenings, theatre and dance events, evening classes, language courses and a host of other activities. Some bands such as Rage Against the Machine play <em>only</em> in the Centri [...]</p></blockquote>
<p>So why would you go and fight and declare war against these places and people?</p>
<p>Because they offer socialization and fun and aggregation, but they do it FOR FREE, and outside of lobbies and commercial interests. Because they undermine the logic of having to buy and own something in order to feel well.</p>
<p>It really boils down to what seems to be the only accepted way of socializing today, in some circles: free sharing and respect are labeled as dangerous, and the only accepted form of a social place is what turns around money: shopping centres, cinemas, restaurants, and any other place where you can be part of society by spending. If you can&#039;t spend you have no place. <a href="http://www.independent.co.uk/news/world/europe/tourists-beware-if-its-fun-italy-has-a-law-against-it-899787.html">Anything that does not involve money but sincere expression and sharing is not allowed, when not even actively banned</a>.  Talking about the squatted building that has ben emptied yesterday, it had been left to degrade for decades. Now that is was used for something useful, the owners decided they want to build a supermarket in it. So the occupants had to move out. No bombs, no dangerous people. Just money talks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/10/22/social-centres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waiting (First Song)</title>
		<link>http://www.muscetta.com/2008/09/18/waiting-first-song/</link>
		<comments>http://www.muscetta.com/2008/09/18/waiting-first-song/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 22:58:33 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[song]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=303</guid>
		<description><![CDATA[I have been playing music again, something I had not done in a while. I can certainly improve my equalizing skill, as the piano got distorted (among other things) in the MP3 conversion&#8230; and I would like to add a singing voice to it&#8230; but if you&#039;re curious, in the meantime, you can listen 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/2008/09/14/got-into-the-groove-again/">I have been playing music again</a>, something I had not done in a while. I can certainly improve my equalizing skill, as the piano got distorted (among other things) in the MP3 conversion&#8230; and I would like to add a singing voice to it&#8230; but if you&#039;re curious, in the meantime, you can listen to the first test of a song I did with the new setup:</p>
<pre><code><a href="http://www.muscetta.com/audio/Waiting.mp3">Download audio file (Waiting.mp3)</a></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/09/18/waiting-first-song/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Got into the Groove again</title>
		<link>http://www.muscetta.com/2008/09/14/got-into-the-groove-again/</link>
		<comments>http://www.muscetta.com/2008/09/14/got-into-the-groove-again/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 13:06:38 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[edirol]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[roland]]></category>
		<category><![CDATA[song]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=300</guid>
		<description><![CDATA[After several years not touching my midi keyboard not my guitar, this is the natural evolution of having bought a new PC, I suppose: I got inspired and wanted to play music again. Sure, I also study and test stuff on it, but I also want to do something that really is for myself. And [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2856101964/"><img src="http://farm4.static.flickr.com/3157/2856101964_ffcdb6629f.jpg" alt="Got into the Groove again" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2856101964/"></a></span></p>
<p class="flickr-yourcomment">After several years not touching my midi keyboard not my guitar, this is the natural evolution <a href="http://www.muscetta.com/2008/06/27/got-a-new-pc-finally/">of having bought a new PC</a>, I suppose: I got inspired and wanted to play music again. Sure, I also <a href="http://www.muscetta.com/category/opsmgr2007/">study and test stuff on it</a>, but I also want to do something that really is for myself. And something that makes me help relax, instead than <a href="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/20000/2000/200/24383/24383.strip.print.gif" rel="lightbox[300]">working around the clock</a>.</p>
<p>It is then that I figured out how much has changed in these few years: cheap soundcards don&#039;t come with MIDI interfaces anymore, these days. That&#039;s probably because they were shared with the so called &#034;GAME Port&#034;&#8230;. but since most joysticks these days are USB&#8230;. also the MIDI disappeared.</p>
<p>Therefore I did a bit of research, and I found <a href="http://www.roland.com/products/en/ua-25/index.html">an interesting external sound card</a> that does everything I want (and more) and (most importantly) has drivers for Windows Vista x64. I am actually using this on Windows 2008 Server, but since Vista and 2008 really have the same kernel &#8211; it just works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/09/14/got-into-the-groove-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protecting custom Resolution State in OpsMgr 2007</title>
		<link>http://www.muscetta.com/2008/09/13/protecting-custom-resolution-state-in-opsmgr-2007/</link>
		<comments>http://www.muscetta.com/2008/09/13/protecting-custom-resolution-state-in-opsmgr-2007/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 09:32:17 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[resolution state]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[unsupported]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=298</guid>
		<description><![CDATA[In System Center Operations Manager 2007, you can add and remove resolution states for your alerts at will. Other than states &#034;0&#034; (&#034;New&#034;) and &#034;255&#034; (&#034;Closed&#034;) you can create other 254 resolution states to suit your needs. This is a simple feature that was already present in previous MOM versions, and it is very useful [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>In System Center Operations Manager 2007, you can add and remove resolution states for your alerts at will. Other than states &#034;0&#034; (&#034;New&#034;) and &#034;255&#034; (&#034;Closed&#034;) you can create other 254 resolution states to suit your needs. This is a simple feature that was already present in previous MOM versions, and it is very useful to do a kind of tricks with your alerts. The amount of possible states you can create should be able to satisfy any kind of alert and incident management process you might have in place, and any kind of filtering or forwarding or escalation need you might want to perform by using resolution states.</p>
<p><img src="http://www.muscetta.com/wp-content/uploads/image.png" alt="image" width="810" height="350" /></p>
<p>By default, only OpsMgr Administrators can change these settings, with the exception of the two built-in states of &#034;New&#034; and &#034;Closed&#034;: those two states are REQUIRED if you want the product to continue working, therefore the GUI won&#039;t let you change, edit or delete them. Which is good.</p>
<p>This is not true for your own resolution states, which can be edited or even deleted any time. All that is really saved in an alert when you change an alert&#039;s resolution state is the NUMBER associated with it. In fact you even use that number when querying for alerts in the Command Shell:</p>
<p><img src="http://www.muscetta.com/wp-content/uploads/image1.png" alt="get-alert | where {$_.resolutionstate -eq 0}" width="718" height="122" /></p>
<p>That means that if by accident you delete a resolution state you have defined, you won&#039;t see its description anymore in the GUI. Also, if you try to re-organize your resolution state, you can easily change the IDs for existing ones&#8230; Sure, you need to have the permissions in order to change or delete them, but what if you have implemented your important Alert and Incident management process by using resolution states and you want a bit of extra protection from mistakes or unintended deletion for them?</p>
<p>Then you can protect them by making the product think they were &#034;built-in&#034; too, just like &#034;New&#034; and &#034;Closed&#034;.</p>
<p>How would you do this? In an UNSUPPORTED WAY: editing the database <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  In fact, those resolution states are written in a table in the database, called &#034;ResolutionState&#034; (who would have guessed it?), that looks like the following picture:</p>
<p><img src="http://www.muscetta.com/wp-content/uploads/image2.png" alt="dbo.ResolutionState" width="693" height="274" /></p>
<p>Can you see the &#034;IsPredefined&#034; column? That can be set to &#034;True&#034; or &#034;False&#034; and that value is used by the SDK service to tell the GUI if that Resolution State can be edited/deleted or not.</p>
<p>Of course changing the database directly IS NOT SUPPORTED by Microsoft. You do this at your own risk, and if it was me, I would *NEVER* touch, change or remove the default two states (&#034;New&#034; and &#034;Closed&#034;) as THAT really would BREAK the product. For example, Alerts that are not set to &#034;Closed&#034; (255) won&#039;t be ever groomed. And that is VERY BAD. NEVER, NEVER DO THAT.</p>
<p>On the other end, changing a custom Resolution State to make the product believe it is Predefined/Built-in has not had any negative impact in my (limited) testing so far, and has added the advantage of &#034;protecting&#034; my resolution state from unintended deletion, as shown below:</p>
<p><img src="http://www.muscetta.com/wp-content/uploads/image3.png" alt="image" width="623" height="162" /></p>
<p>As usual, do this at your own risk. Remember what&#039;s written in my <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 MICROSOFT, 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 HACK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/09/13/protecting-custom-resolution-state-in-opsmgr-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esha Tizafy</title>
		<link>http://www.muscetta.com/2008/08/26/esha-tizafy/</link>
		<comments>http://www.muscetta.com/2008/08/26/esha-tizafy/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 16:34:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[african]]></category>
		<category><![CDATA[afro]]></category>
		<category><![CDATA[concert]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[madagascar]]></category>
		<category><![CDATA[singer]]></category>
		<category><![CDATA[woman]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=289</guid>
		<description><![CDATA[Esha Tizafy gets born in Madagascar. She leaves her island when she&#039;s only seven years old with her parents, who arrive in Sicily, in Palermo, where she still lives. Author, composer and singer, she follows a musical path that helps drawing a bridge across cultures. Her research grows from tradition and modernity at the same [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://flickr.com/photos/dani3l3/2748344935/"><img src="http://farm4.static.flickr.com/3134/2749184134_6a9e9d4889.jpg" alt="Esha Tizafy" /></a></p>
<p>Esha Tizafy gets born in Madagascar. She leaves her island when she&#039;s only seven years old with her parents, who arrive in Sicily, in Palermo, where she still lives.</p>
<p class="flickr-yourcomment">Author, composer and singer, she follows a musical path that helps drawing a bridge across cultures.<br />
Her research grows from tradition and modernity at the same time.</p>
<p>I had heard her <a href="http://www.italiafrica.it/gw/producer/dettaglio.aspx?ID_DOC=225">in 2007 in a previous concert in Rome</a> and she had found <a href="http://www.flickr.com/photos/dani3l3/tags/italiafrica/">on Flickr the pictures I took in that occasion</a>. Therefore she asked if I could take some new pictures next time she would hold a concert in my area. This occasion has been <a href="http://www.estateromana.comune.roma.it/manifestazioni/musica/roma_incontra_il_mondo_2008/appuntamenti/esha_tizafy__1">on the 9th of August, in Rome</a>.</p>
<p>I hope that her record will be ready soon, because she really deserves to be heard! I also suggested she registers on <a href="http://www.last.fm">last.fm</a> and share something there. For now you can contact her <a href="http://www.myspace.com/eshatizafy">on MySpace</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/08/26/esha-tizafy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I am the Empire</title>
		<link>http://www.muscetta.com/2008/07/31/i-am-the-empire/</link>
		<comments>http://www.muscetta.com/2008/07/31/i-am-the-empire/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 22:27:00 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[ariel]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Empire]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[maglietta]]></category>
		<category><![CDATA[microspotting]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[TShirt]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=282</guid>
		<description><![CDATA[I have been talking to Ariel last month, asking for a Microspotting T-Shirt since I had mentioned her earlier on my blog. I have been on holiday in the meantime… but the T-Shirt had arrived and was waiting for me in my letterbox in the office !! How cool is that??? So today I am [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2719326262/"><img src="http://farm4.static.flickr.com/3159/2719326262_2f58e5da94.jpg" alt="I am the Empire" /></a></p>
<p class="flickr-yourcomment">I have been talking to <a href="http://www.flickr.com/photos/ariel/">Ariel</a> last month, asking for a <a href="http://www.microspotting.com/2008/06/microspotting-tshirts">Microspotting T-Shirt</a> since I had <a href="http://www.muscetta.com/2008/05/02/a-rant-about-openness/">mentioned her earlier on my blog</a>.</p>
<p>I have been on holiday in the meantime… but the T-Shirt had arrived and was waiting for me in my letterbox in the office !! How cool is that???</p>
<p>So today I am walking around the Rome office in it… and I am looking at people’s faces: you need to understand that Italian dress code is more or less the opposite of <a href="http://www.microspotting.com/2008/05/not-all-softies-believe-in-business-casual">how people usually dress in Redmond</a>&#8230; Italy is historically more formal,  and it would be the norm to dress fancy…  one would definitely look BAD here if he would show up in sandals in the office… and VERY bad going on sandals to a customer… <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/2008/07/31/i-am-the-empire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old and new Things</title>
		<link>http://www.muscetta.com/2008/07/27/old-and-new-things/</link>
		<comments>http://www.muscetta.com/2008/07/27/old-and-new-things/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 20:06:17 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[500]]></category>
		<category><![CDATA[carretto siciliano]]></category>
		<category><![CDATA[cinquecento]]></category>
		<category><![CDATA[fiat]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=281</guid>
		<description><![CDATA[I am not sure about why I went to sicily on holiday: it might be because my ancestors came from that land; it might be because in Holland I felt like Dorothy at the beginning of &#034;the wizard of Oz&#034; every time there was a thunderstorm ( = I was afraid the house would fly [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2698989182/"><img src="http://farm4.static.flickr.com/3112/2698989182_7d4ec31e3b.jpg" alt="Carretto Siciliano" /></a></p>
<p>I am not sure about why I went to sicily on holiday: it might be because my ancestors came from that land; it might be because in Holland I felt like Dorothy at the beginning of &#034;the wizard of Oz&#034; every time there was a thunderstorm ( = I was afraid the house would fly away); it might be because I have a physical need for a &#034;Granita di Mandorla&#034; every so much time.</p>
<p>Whatever the reason, Holiday is over and tomorrow I&#039;ll be back at work for a new busy year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/07/27/old-and-new-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got a new PC (finally)</title>
		<link>http://www.muscetta.com/2008/06/27/got-a-new-pc-finally/</link>
		<comments>http://www.muscetta.com/2008/06/27/got-a-new-pc-finally/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 23:08:09 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[HyperV]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=280</guid>
		<description><![CDATA[So this is a screenshot from my new Quad-Core Intel Q6600, 8GB RAM with Windows 2008 Enterprise x64, running Hyper-V. I have bought it and installed it a few days ago, and migrated my home Active Directory off the old windows 2003 machine to Windows 2008. Yes, because I have an Active Directory at home. [...]<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/2613086287/"><img class="flickr-photo" src="http://farm4.static.flickr.com/3095/2613086287_7c29deaf6e.jpg" alt="Got a new PC" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2613086287/"></a></span></p>
</div>
<p class="flickr-yourcomment">So this is a screenshot from my new Quad-Core Intel Q6600, 8GB RAM with Windows 2008 Enterprise x64, running <a href="http://www.microsoft.com/Hyper-V">Hyper-V</a>.<br />
I have bought it and installed it a few days ago, and migrated my home <a href="http://www.microsoft.com/windowsserver2008/en/us/active-directory.aspx">Active Directory</a> off the old windows 2003 machine to Windows 2008. Yes, because I have an Active Directory at home. I know, I am probably nuts, but you already knew that much.</p>
<p>Today, I just updated Hyper-V to RTM version. Oh yeah, because Hyper-V has been Released To Manufacturing today! You can <a href="http://www.microsoft.com/Hyper-V">get it HERE</a>.</p>
<p>I am having lot of fun with this. I had not bought a new PC in about 7 years and could not really test anything on that old one anymore&#8230;<br />
I paid 8GB roughly 100euros, which is not a lot if you think about it. These days even standard &#034;budget&#034; PCs for just doing email and web surfing ship with 2 or 4GB&#8230;<br />
With that amount of RAM, I expect it to last several years like the previous one. The one I bought 7 years ago had 512MB when everybody was buying 128 or 256MB. Kinda the same story here.</p>
<p>Wonder what happens to the old PC? That glorious machine that has been my server for years has now been converted to the new kids&#039; PC and will go on for a few more years like that, I hope.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/06/27/got-a-new-pc-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup or Store stuff to GMail via IMAP in Ruby</title>
		<link>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/</link>
		<comments>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 18:49:44 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=279</guid>
		<description><![CDATA[Once upon a time, I used to store some automated small backups into GMail just by having the scheduled backup send an email to my GMail account. At one stage they blocked me from doing so, marking those repeated email as SPAM. After that, I took a different approach: I kept sending the mail on [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, I used to store some automated <b>small</b> backups into GMail just by having the scheduled backup send an email to my GMail account. <a href="http://www.muscetta.com/2006/10/07/google-has-pissed-me-off-this-week/">At one stage they blocked me from doing so, marking those repeated email as SPAM</a>.</p>
<p>After that, I took a different approach: I kept sending the mail on the SAME server as the backup, and using IMAP I could DRAG-and-DROP the backup attachment from the mailbox on one server to the mailbox on another server (=GMail). They did not mark me as a spammer that way, of course.<br />
So that worked for a while, but then I got tired of doing this manually.</p>
<p>So the following ruby script is the way I automated the &#034;move offsite&#034; part of that backup.<br />
For completeness, I will give the due credits about who set me on the right track: I started off by <a href="http://wonko.com/post/ruby_script_to_sync_email_from_any_imap_server_to_gmail">this example by Ryan</a>.</p>
<pre><span class="comment">#!/usr/bin/env ruby</span>
<span class="ident">begin_</span> <span class="punct">=</span> <span class="constant">Time</span><span class="punct">.</span><span class="ident">now</span>

<span class="comment">#includes</span>
<span class="ident">require</span> <span class="punct">'</span><span class="string">net/imap</span><span class="punct">'</span>

<span class="comment">##Source Info</span>
<span class="global">$SRCSERVER</span><span class="punct">="</span><span class="string">mail.muscetta.com</span><span class="punct">"</span>
<span class="global">$SRCPORT</span><span class="punct">=</span><span class="number">143</span>
<span class="global">$SRCSSL</span><span class="punct">=</span><span class="constant">false</span>
<span class="global">$SRCUSERNAME</span><span class="punct">="</span><span class="string">daniele</span><span class="punct">"</span>
<span class="global">$SRCPASSWORD</span><span class="punct">="</span><span class="punct">"</span>
<span class="global">$SRCFOLDER</span><span class="punct">="</span><span class="string">INBOX.Backups</span><span class="punct">"</span>

<span class="comment">##Destination Info</span>
<span class="global">$DSTSERVER</span><span class="punct">="</span><span class="string">imap.gmail.com</span><span class="punct">"</span>
<span class="global">$DSTPORT</span><span class="punct">=</span><span class="number">993</span>
<span class="global">$DSTSSL</span><span class="punct">=</span><span class="constant">true</span>
<span class="global">$DSTUSERNAME</span><span class="punct">="</span><span class="string">muscetta@gmail.com</span><span class="punct">"</span>
<span class="global">$DSTPASSWORD</span><span class="punct">="</span><span class="punct">"</span>
<span class="global">$DSTFOLDER</span><span class="punct">="</span><span class="string">Backup</span><span class="punct">"</span>

<span class="comment">#connect to source</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">connecting to source server <span class="expr">#{$SRCSERVER}</span>... <span class="escape">nn</span></span><span class="punct">"</span>
<span class="ident">srcimap</span> <span class="punct">=</span> <span class="constant">Net</span><span class="punct">::</span><span class="constant">IMAP</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="global">$SRCSERVER</span><span class="punct">,</span><span class="global">$SRCPORT</span><span class="punct">,</span><span class="global">$SRCSSL</span><span class="punct">)</span>
<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">login</span><span class="punct">(</span><span class="global">$SRCUSERNAME</span><span class="punct">,</span> <span class="global">$SRCPASSWORD</span><span class="punct">)</span>
<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">select</span><span class="punct">(</span><span class="global">$SRCFOLDER</span><span class="punct">)</span>

<span class="comment">#connect to destination</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">connecting to destination server <span class="expr">#{$DSTSERVER}</span>... <span class="escape">nn</span></span><span class="punct">"</span>
<span class="ident">dstimap</span> <span class="punct">=</span> <span class="constant">Net</span><span class="punct">::</span><span class="constant">IMAP</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="global">$DSTSERVER</span><span class="punct">,</span><span class="global">$DSTPORT</span><span class="punct">,</span><span class="global">$DSTSSL</span><span class="punct">)</span>
<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">login</span><span class="punct">(</span><span class="global">$DSTUSERNAME</span><span class="punct">,</span> <span class="global">$DSTPASSWORD</span><span class="punct">)</span>
<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">select</span><span class="punct">(</span><span class="global">$DSTFOLDER</span><span class="punct">)</span>

<span class="comment"># Loop through all messages in the source folder.</span>
<span class="ident">uids</span> <span class="punct">=</span> <span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_search</span><span class="punct">(['</span><span class="string">ALL</span><span class="punct">'])</span>
<span class="keyword">if</span> <span class="ident">uids</span><span class="punct">.</span><span class="ident">length</span> <span class="punct">&gt;</span> <span class="number">0</span>
	<span class="global">$count</span> <span class="punct">=</span> <span class="ident">uids</span><span class="punct">.</span><span class="ident">length</span>
	<span class="ident">puts</span> <span class="punct">"</span><span class="string">found <span class="expr">#{$count}</span> messages to move... <span class="escape">nn</span></span><span class="punct">"</span>

	<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_fetch</span><span class="punct">(</span><span class="ident">uids</span><span class="punct">,</span> <span class="punct">['</span><span class="string">ENVELOPE</span><span class="punct">']).</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">data</span><span class="punct">|</span>
		<span class="ident">mid</span> <span class="punct">=</span> <span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">ENVELOPE</span><span class="punct">'].</span><span class="ident">message_id</span>

		<span class="comment"># Download the full message body from the source folder.</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">reading message... <span class="expr">#{mid}</span></span><span class="punct">"</span>
		<span class="ident">msg</span> <span class="punct">=</span> <span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_fetch</span><span class="punct">(</span><span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">UID</span><span class="punct">'],</span> <span class="punct">['</span><span class="string">RFC822</span><span class="punct">',</span> <span class="punct">'</span><span class="string">FLAGS</span><span class="punct">',</span> <span class="punct">'</span><span class="string">INTERNALDATE</span><span class="punct">']).</span><span class="ident">first</span>

		<span class="comment"># Append the message to the destination folder, preserving flags and internal timestamp.</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">copying message <span class="expr">#{mid}</span> to destination...</span><span class="punct">"</span>
		<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">append</span><span class="punct">(</span><span class="global">$DSTFOLDER</span><span class="punct">,</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">RFC822</span><span class="punct">'],</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">FLAGS</span><span class="punct">'],</span> <span class="ident">msg</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">INTERNALDATE</span><span class="punct">'])</span>

		<span class="comment">#delete the msg</span>
		<span class="ident">puts</span> <span class="punct">"</span><span class="string">deleting messsage <span class="expr">#{mid}</span>...</span><span class="punct">"</span>
		<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">uid_store</span><span class="punct">(</span><span class="ident">data</span><span class="punct">.</span><span class="ident">attr</span><span class="punct">['</span><span class="string">UID</span><span class="punct">'],</span> <span class="punct">'</span><span class="string">+FLAGS</span><span class="punct">',</span> <span class="punct">[</span><span class="symbol"> <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> eleted</span><span class="punct">])</span>
		<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">expunge</span>

	<span class="keyword">end</span>

	<span class="comment">#disconnect</span>
	<span class="ident">dstimap</span><span class="punct">.</span><span class="ident">close</span>
	<span class="ident">srcimap</span><span class="punct">.</span><span class="ident">close</span>
<span class="keyword">end</span>

<span class="ident">total_time</span> <span class="punct">=</span> <span class="constant">Time</span><span class="punct">.</span><span class="ident">now</span> <span class="punct">-</span> <span class="ident">begin_</span>
<span class="ident">puts</span> <span class="punct">"</span><span class="string">Done. RunTime: <span class="expr">#{total_time}</span> sec. <span class="escape">nn</span></span><span class="punct">"</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/06/10/backup-or-store-stuff-to-gmail-via-imap-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My photo published on Internet Magazine</title>
		<link>http://www.muscetta.com/2008/05/31/my-photo-published-on-internet-magazine/</link>
		<comments>http://www.muscetta.com/2008/05/31/my-photo-published-on-internet-magazine/#comments</comments>
		<pubDate>Sat, 31 May 2008 09:01:18 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[internet magazine]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[pubblicazione]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/05/31/my-photo-published-on-internet-magazine/</guid>
		<description><![CDATA[One of the pictures I took in Pisa at the Hackmeeting has been published in June&#039;s issue of &#034;Internet Magazine&#034;, a famous italian IT magazine. The article talks about Internet Privacy and the &#034;Piano R*&#034; project by Autistici/Inventati. This is the cover of the magazine:<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2538428300/"><img src="http://farm3.static.flickr.com/2023/2538428300_b5d7fb55e4.jpg" border="2" alt="Hackmeeting photo su Internet Magazine Giugno 2008" /></a></p>
<p><a href="http://www.flickr.com/photos/dani3l3/1467025903">One of the pictures I took in Pisa at the Hackmeeting</a> has been published in June&#039;s issue of <a href="http://edmaster.it/?p=prodotti&amp;idcat=1&amp;idprod=3">&#034;Internet Magazine&#034;</a>, a famous italian IT magazine.</p>
<p>The article talks about Internet Privacy and the <a href="http://cavallette.autistici.org/category/piano_r">&#034;Piano R*&#034; project</a> by <a href="http://www.autistici.org/it">Autistici/Inventati</a>.</p>
<p>This is the cover of the magazine:</p>
<p><a href="http://www.flickr.com/photos/dani3l3/2538427446/"><img src="http://farm4.static.flickr.com/3147/2538427446_802f5e6a92_m.jpg" alt="Internet Magazine Giugno 2008" width="160" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/05/31/my-photo-published-on-internet-magazine/feed/</wfw:commentRss>
		<slash:comments>0</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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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>Making Content Accessible to All</title>
		<link>http://www.muscetta.com/2008/05/10/making-content-accessible-to-all/</link>
		<comments>http://www.muscetta.com/2008/05/10/making-content-accessible-to-all/#comments</comments>
		<pubDate>Sat, 10 May 2008 07:32:45 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[commercial]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[reclame]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=275</guid>
		<description><![CDATA[&#034;[...] Technology, when it evolves around people&#039;s actual needs rather than the needs of the designer, that&#039;s when it starts to work [...]&#034; DAISY is a technology that promises to revolutionize the reading experience for people who have print disabilities like blindness or dyslexia. DAISY (Digital Accessible Information SYstem) XML is a universal standard format [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/PJwBdVr_1LM&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/PJwBdVr_1LM&amp;hl=en" wmode="transparent"></embed></object></p>
<p><em><strong>&#034;[...] Technology, when it evolves around people&#039;s actual needs rather than the needs of the designer, that&#039;s when it starts to work [...]&#034;</strong></em></p>
<p>DAISY is a technology that promises to revolutionize the reading experience for people who have print disabilities like blindness or dyslexia. DAISY (Digital Accessible Information SYstem) XML is a universal standard format for reading and publishing digital talking books, and allows for new ways to deliver information quickly and efficiently using high quality synthetic speech or human voice. Microsoft, The DAISY Consortium (<a href="http://www.daisy.org">www.daisy.org</a>) and Sonata Software have worked together to build a &#034;Save as DAISY XML&#034; add-in for Microsoft Office Word. This free, downloadable XML-based add-in, available at <a href="http://sourceforge.net/projects/openxml-daisy">http://sourceforge.net/projects/openxml-daisy</a>, makes it possible for Microsoft Office Word (including XP, 2003 and 2007) users to convert Open XML-based content into DAISY XML.</p>
<p><a href="http://www.microsoft.com/presspass/presskits/DAISY/default.mspx">http://www.microsoft.com/presspass/presskits/DAISY/default.mspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/05/10/making-content-accessible-to-all/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[Microsoft]]></category>
		<category><![CDATA[MOM]]></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>reportr &#8211; Show your Flickrness!</title>
		<link>http://www.muscetta.com/2008/04/27/reportr-show-your-flickrness/</link>
		<comments>http://www.muscetta.com/2008/04/27/reportr-show-your-flickrness/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 17:12:04 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[cap]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[TShirt]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/04/27/reportr-show-your-flickrness/</guid>
		<description><![CDATA[How many times you have gone somewhere (public demonstration, event, concert, etc) where yo saw other people shooting photos and you though &#034;some of them MUST be flickr&#039;ers&#034;&#8230;. but you never had the guts to go and introduce yourself? Now it&#039;s time to show off that you are a Flickr&#039;er, and let other people figure [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2445453969/"><img src="http://farm3.static.flickr.com/2131/2445453969_ed7c055f28.jpg" alt="reportr - Show your Flickrness!" /></a></p>
<p>How many times you have gone somewhere (public demonstration, event, concert, etc) where yo saw other people shooting photos and you though &#034;some of them MUST be flickr&#039;ers&#034;&#8230;. but you never had the guts to go and introduce yourself?</p>
<p>Now it&#039;s time to show off that you are a Flickr&#039;er, and let other people figure it out.</p>
<p>Polo:</p>
<p><a href="http://www.cafepress.com/cp/customize/product.aspx?clear=true&amp;number= 260123853">www.cafepress.com/cp/customize/product.aspx?clear=true&amp;am&#8230;</a></p>
<p>Cap:</p>
<p><a href="http://www.cafepress.com/cp/customize/product.aspx?clear=true&amp;number= 260122604">www.cafepress.com/cp/customize/product.aspx?clear=true&amp;am&#8230;</a><br />
NOTE:</p>
<p>This is just an idea and it is NOT endorsed by Flickr itself.</p>
<p>Also, I do not get any money for it &#8211; those are just the prices imposed by the online shop used to create them. I just thought it was a funny idea and I wanted to share it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/04/27/reportr-show-your-flickrness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Birth of Rome Celebrations</title>
		<link>http://www.muscetta.com/2008/04/23/birth-of-rome-celebrations/</link>
		<comments>http://www.muscetta.com/2008/04/23/birth-of-rome-celebrations/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 20:34:30 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[bambini]]></category>
		<category><![CDATA[birthday]]></category>
		<category><![CDATA[colosseo]]></category>
		<category><![CDATA[compleanno]]></category>
		<category><![CDATA[costumi]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[ricostruzione storica]]></category>
		<category><![CDATA[rievocazione]]></category>
		<category><![CDATA[roma]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/04/23/birth-of-rome-celebrations/</guid>
		<description><![CDATA[Every year proud Romans celebrate the birth of the Eternal City (21 April), founded by Romulus in 753BC, with a series of events at venues throughout Rome, including the Roman Forum and the Campidoglio. Celebrations include parades, gladiator shows, traditional Roman banquets and public speeches galore from local historical societies. See the complete set of [...]<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/2428005873/"><img src="http://farm3.static.flickr.com/2003/2428005873_9e51fdf302.jpg" alt="Natale di Roma" /></a></p>
</div>
<p class="flickr-yourcomment">Every year proud Romans celebrate the birth of the Eternal City (21 April), founded by Romulus in 753BC, with a series of events at venues throughout Rome, including the Roman Forum and the Campidoglio.</p>
<p>Celebrations include parades, gladiator shows, traditional Roman banquets and public speeches galore from local historical societies.</p>
<p>See <a href="http://www.flickr.com/photos/dani3l3/sets/72157604639586250">the complete set of picture I took this time</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/04/23/birth-of-rome-celebrations/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>Canon &#8211; The Assignment &#8211; My Submission</title>
		<link>http://www.muscetta.com/2008/04/05/canon-the-assignment-my-submission/</link>
		<comments>http://www.muscetta.com/2008/04/05/canon-the-assignment-my-submission/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 15:30:53 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Assignment]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[Concorso]]></category>
		<category><![CDATA[Contest]]></category>
		<category><![CDATA[Flickr]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/04/05/canon-the-assignment-my-submission/</guid>
		<description><![CDATA[Canon &#8211; The Assignment &#8211; My Submission, uploaded by Daniele Muscetta on Flickr. I have decided to try and partecipate in the photographic contest &#034;the assignment&#034;, sponsored by Canon. Even if I have shot technically better portraits, I thought that this one was one of the most spontaneous, plus it suited the theme well: &#034;[...] [...]<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/2387769922/"><img src="http://farm4.static.flickr.com/3149/2387769922_4b4a55df94.jpg" class="flickr-photo" alt="Canon - The Assignment - My Submission" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2387769922/">Canon &#8211; The Assignment &#8211; My Submission</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
</div>
<p class="flickr-yourcomment">I have decided to try and partecipate in the photographic contest &#034;the assignment&#034;, sponsored by Canon.<br />
Even if I have shot technically better portraits, I thought that <a href="http://www.flickr.com/photos/dani3l3/210149101/">this one</a> was one of the most spontaneous, plus it suited the theme well:</p>
<p><em>&#034;[...] Are you able to capture pure emotion in a single shot? Can you portray a person&#039;s life-story with one photograph? [...]&#034;</em></p>
<p>The other I considered, the <a href="http://www.flickr.com/photos/dani3l3/252674009/">picture of the Arrotino</a> would have been a person&#039;s life story&#8230; but that was shot with an old film camera, a Pentax&#8230;. I thought it might not be seen that well in a Canon contest&#8230; <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>But this picture &#8211; it is about emotions.<br />
It is about having fun no matter your age.<br />
Who says when we grow up we must be serious ?<br />
So I called it &#034;Youth is a State of Mind&#034;.</p>
<p>Anyway, the picture is posted here:</p>
<p><a href="http://ta.canon-europe.com//?pg=gallery&amp;cc=it&amp;lc=it&amp;photo_id=foto47f3b82f357c7">ta.canon-europe.com//?pg=gallery&amp;cc=it&amp;lc=it&amp;&#8230;</a></p>
<p>If you like it, please vote for it &#8211; after the 5th of May when the votes will be  actually open.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/04/05/canon-the-assignment-my-submission/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conversation about Blogs with a customer</title>
		<link>http://www.muscetta.com/2008/03/28/conversation-about-blogs-with-a-customer/</link>
		<comments>http://www.muscetta.com/2008/03/28/conversation-about-blogs-with-a-customer/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 14:24:17 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[gapingvoid]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/03/28/conversation-about-blogs-with-a-customer/</guid>
		<description><![CDATA[I usually don&#039;t like mentioning specific facts that happened to me at work. But work is part of life, so even if this is mostly a personal blog, I cannot help myself but write about certain things that make me think when they happen. When I end up having conversations such as this, I get [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I usually don&#039;t like mentioning specific facts that happened to me at work. But work is part of life, so even if this is mostly a personal blog, I cannot help myself but write about certain things that make me think when they happen.</p>
<p>When I end up having conversations such as this, I get really sad: I thought we had finally passed the arrogant period where we had to spoon-feed customers, and I thought we were now mature enough to consider them smart people and providing <a href="http://www.microsoft.com/powershell">cool, empowering technologies</a> for them to use. I also thought that pretty much everybody liked Microsoft finally opening up and actually talking TO people&#8230; not only talking them INTO buying something, something &#8211; but having real conversations.</p>
<p>I get sad when I find that people still don&#039;t seem to be accepting that, and wanting back the old model, instead. Kinda weird.</p>
<p>&nbsp;</p>
<p>The conversation goes as follows (words are not exactly those &#8211; we were speaking Italian and I sort of reconstructed the conversation &#8211; you should get the sense of it anyway):</p>
<p>&nbsp;</p>
<blockquote><p>[...]</p>
<p><strong>Me:</strong> &#034;The SDK service allows you to do quite a lot of cool stuff. Unfortunately not all of that functionality is completely or always easily exposed in the GUI. That is, for example: it is very EASY to define overrides, but it can get very tricky to find them back once set. That&#039;s why you can use <a href="http://blogs.msdn.com/boris_yanushpolsky/archive/2007/08/09/override-explorer-v3-3.aspx">this little useful tool</a> that the developer of that SDK service has posted on his blog&#8230;&#034; </p>
<p><strong>Cust:</strong> &#034;&#8230;but we can&#039;t just read blogs here and there!&#034; </p>
<p><strong>Me:</strong> &#034;Well, I mean, then you may have to wait for the normal release cycle. It might be that those improvements will make it in to the product. That might happen in months, if you are lucky, or maybe never. What&#039;s wrong if he publishes that on his blog, bypassing the bureaucracy crap, and makes your life easier with it RIGHT NOW?&#034; </p>
<p><strong>Cust:</strong> &#034;It is not official, I want it in the product!&#034; </p>
<p><strong>Me:</strong> &#034;I see, and even understand that. But right now that feature just isn&#039;t there. But you can use this tool to have it. Don&#039;t worry: it is not made by some random guy who wants to trojan your server! It is made by the very same developer who wrote the product itself&#8230;&#034; </p>
<p><strong>Cust:</strong> &#034;It is not supported, what if it breaks something?&#034; </p>
<p><strong>Me: </strong>&#034;So are all resource kit tools, in general. written by some dev guy in his free five minutes, and usually unsupported. Still very useful, though. Most of them. And they usually do work, you know that much, don&#039;t you?&#034; </p>
<p><strong>Cust:</strong> &#034;But why on a blog?&#034; </p>
<p><strong>Me:</strong> &#034;What&#039;s wrong with this? People are just trying to make customer&#039;s life easier by <a href="http://www.gapingvoid.com/Moveable_Type/archives/001607.html">being transparent and open and direct in their communication, just talking RIGHT to the customers. People talking to people</a>, bypassing the prehistoric bureaucracy structure of companies&#8230; the same happens on many other sites, just think <a href="http://isatools.org/">isatools.org</a> for example&#8230; those are just tools that a support guy like me has written and wants to share because they might be useful&#8230;&#034; </p>
<p><strong>Cust:</strong> &#034;But I can&#039;t follow/read all the blogs out there! I don&#039;t have time for it&#034; </p>
<p><strong>Me:</strong> &#034;Why not? I have thousands of feeds in my aggregator and&#8230;&#034; </p>
<p><strong>Cust:</strong> &#034;I don&#039;t have time and I don&#039;t want to read them, because I pay for support, so I don&#039;t expect this stuff to be in blogs&#034; </p>
<p><strong>Me:</strong> &#034;Well, I see, since you pay for support, you are paying ME &#8211; in fact I am working with you on this product precisely as part of that paid support. That&#039;s why I am here to tell you that this tool exists, in case you had not heard of it, so you actually know about it without having to read that yourself on any blog&#8230; does that sound like a deal? Where&#039;s the issue?&#034; </p>
<p><strong>Cust:</strong> &#034;Sgrunt. I want something official, I don&#039;t like this blog stuff&#034; </p>
<p>[...]</p>
</blockquote>
<p>&nbsp;</p>
<p>I thought this was particularly interesting, not because I want to make fun of this person. I do respect him and I think he just has a different point of view. But in my opinion this conversation shows (and made me think about) an aspect of that &#034;generation gap&#034; inside Microsoft that <a href="http://www.gapingvoid.com/Moveable_Type/archives/004459.html">Hugh talks about here</a>: </p>
<blockquote><p><em>&#034;[...]4.30 Hugh talks about a conversation he had with a few people inside Microsoft- how there’s a generation gap growing within the company, between the Old Guard, and the new generation of Microsofties, who see their company in much more open, organic terms.[...]&#034;</em> </p>
</blockquote>
<p>Basically this tells me that the generation gap is not happening only INSIDE Microsoft: it invests our customers too. Which makes it even more <a href="http://www.gapingvoid.com/Moveable_Type/archives/004181.html">difficult to talk to some of them, as we change</a>. Traditions are hard to change.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/03/28/conversation-about-blogs-with-a-customer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Of different digital expressions and Blogs</title>
		<link>http://www.muscetta.com/2008/03/22/of-different-digital-expressions-and-blogs/</link>
		<comments>http://www.muscetta.com/2008/03/22/of-different-digital-expressions-and-blogs/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 07:47:13 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/03/22/of-different-digital-expressions-and-blogs/</guid>
		<description><![CDATA[&#034;I have not posted in a while&#034; &#8230;well you certainly will have read tons of posts beginning this way, right? But that&#039;s the truth. One of the reasons is that you can follow very well a lot of what I do and write elsewhere on the Internet by using my lifestream RSS feed, which includes [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/dani3l3/2266776564/" title="Pool by Daniele Muscetta, on Flickr" ><img src="http://farm3.static.flickr.com/2077/2266776564_dd67a95184.jpg" alt="Pool" width="500" height="333" /></a></p>
<p>&#034;I have not posted in a while&#034; &#8230;well you certainly will have read <a href="http://blogsearch.google.com/blogsearch?q=%22I+have+not+posted+in+a+while">tons of posts beginning this way</a>, right?<br />
But that&#039;s the truth. One of the reasons is that you can follow very well a lot of what I do and write elsewhere on the Internet by using <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=3N_Inh9M3BGojZTankartA&amp;_render=rss">my lifestream RSS feed</a>, which includes much more than just what I post on this blog. Our minds are not stuck on one subject matter only, but our thoughs just go around in many different directions. <a href="http://www.muscetta.com/2007/08/16/updated-rss-feed-for-this-blog/">I mentioned the integrated feed/lifestream in a previous post</a>, but I found that the concept gets explained very well by <a href="http://www.yongfook.com/post/view/50/lifestream-explained">Yongfook in this post</a>:</p>
<blockquote><p>&#034;[...] We interact with various websites and create content on them &#8211; why should I then have to come to my own website and reconstruct, repost or repackage the same content? It already exists out there on the internet, and it’s grabbable and usable. This is not to say I think conventional blogging is dead. I do however think it is evolving. The pace at which we consume and create content &#8211; photos, videos, links etc &#8211; is getting faster, more frequent. If we wanted to republish everything manually on our blogs, we’d just run out of time. [...]&#034;</p></blockquote>
<p>So at least even if this SITE does not get updated often you can see I have quite a busy digital public life on the web.</p>
<p>Very interesting to also read <a href="http://www.hanselman.com/blog/TwitterTheUselessfulnessOfMicroblogging.aspx">this post by Scott Hanselman</a> on the subject. He rather just focuses on twitter/microblogging as an evolved form of blogging which was getting boring and time-consuming to people:</p>
<blockquote><p>&#034;[...] The rise of blogs brought conversations on the &#039;net more out in the open. Blogging enabled conversation via essay, but as blogs have matured, posts have gotten longer and longer and threads more difficult to follow. Now, most posts are jumping off points for the more interesting conversations that inevitably move to the comments. [...]&#034;</p></blockquote>
<p>He then goes into more detailed/structured analysis of what you can or could do with Twitter. While his analysis is pretty good about the many ways you could use Twitter as a broadcasting tool (and in fact loads of companies do already), I rather use it as public instant messaging. Or maybe not just. I don&#039;t actually know and to be honest I am not too much into classifying things, really. For example, if classifying what this blog is&#8230; I really am not sure I know myself what this blog is. It has been very funny when other people have tried to classify it&#8230; one said it was about &#034;programming&#034; (that would be nice, if I really was a better developer!), other people said it was &#034;personal&#034;, other thought it was just about &#034;IT&#034; in general&#8230; Heck, there is no classification possible I am afraid. Therefore, not knowing what this blog is, I at least think that I know what this blog is NOT:</p>
<ul>
<li>it isn&#039;t a marketing blog</li>
<li>I am not here trying to sell anything</li>
<li>I am not promoting anything, anyone, or any brand</li>
<li>It isn&#039;t just focused on one subject, on one area of interest</li>
</ul>
<p>&#8230;and so are all my other &#034;expressions&#034; on the Net. Just me. Sprinkles of me all around. No special industrial plan for it. Just be myself. You might like me sometimes. You might hate me. You might not care at all. It&#039;s all good, anyway. Sorry for wasting your time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/03/22/of-different-digital-expressions-and-blogs/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>Looking at OpsMgr2007 Alert trend with Command Shell</title>
		<link>http://www.muscetta.com/2008/01/25/looking-at-opsmgr2007-alert-trend-with-command-shell/</link>
		<comments>http://www.muscetta.com/2008/01/25/looking-at-opsmgr2007-alert-trend-with-command-shell/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 20:01:02 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Alert]]></category>
		<category><![CDATA[Command Shell]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[trend]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/01/25/looking-at-opsmgr2007-alert-trend-with-command-shell/</guid>
		<description><![CDATA[It&#039;s friday night, I am quite tired and I can&#039;t be asked of writing a long post. But I have not written much all week, not even updated my Twitter, and now I want to finish the week with at least some goodies. So this is the turn of a couple of Powershell commands/snippets/scripts that [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>It&#039;s friday night, I am quite tired and I can&#039;t be asked of writing a long post. But I have not written much all week, not even updated my Twitter, and now I want to finish the week with at least some goodies. So this is the turn of a couple of <a href="http://www.microsoft.com/powershell">Powershell</a> commands/snippets/scripts that will count alerts and events generated each day: this information could help you understand the trends of events and alerts over time in a Management Group. It is nothing fancy at all, but they can still be useful to someone out there. In the past (MOM 2005) I used to gather this kind of information with SQL Queries against the operations database. But now, with Powershell, everything is exposed as objects and it is much easier to get information without really getting your hands dirty with the database <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>#Number of Alerts per day</strong></p>
<p><em>$alerttimes = Get-Alert | Select-Object TimeRaised<br />
$array=@() </em></p>
<p><em>foreach ($datetime in $alerttimes){<br />
$array += $datetime.timeraised.date<br />
} </em></p>
<p><em>$array | Group-Object Date</em></p>
<p><strong>#Number of Events per day</strong></p>
<p><em>$eventtimes = Get-Event | Select-Object TimeGenerated<br />
$array=@() </em></p>
<p><em>foreach ($datetime in $eventtimes){<br />
$array += $datetime.timegenerated.date<br />
} </em></p>
<p><em>$array | Group-Object Date</em></p>
<p>Beware that these &#034;queries&#034; might take a long time to execute (especially the events one) depending on the amount of data and your retention policy.</p>
<p>This is of course just scratching the surface of the amount of amazing things you can do with Powershell in Operations Manager 2007. For this kind of information you might want to keep an eye on the official &#034;System Center Operations Manager Command Shell&#034; blog: <a href="http://blogs.msdn.com/scshell/" title="http://blogs.msdn.com/scshell/">http://blogs.msdn.com/scshell/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/01/25/looking-at-opsmgr2007-alert-trend-with-command-shell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get-FlickrPhotos</title>
		<link>http://www.muscetta.com/2008/01/14/get-flickrphotos/</link>
		<comments>http://www.muscetta.com/2008/01/14/get-flickrphotos/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 21:46:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/01/14/get-flickrphotos/</guid>
		<description><![CDATA[A while ago, talking to some friends, I was mentioning how cool it was that Flickr provides APIs, so that you can always get your data out of it, if you want to. There are several downloader applications that I found on the Internet, but I have not yet chosen one that I completey like [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>A while ago, talking to some friends, I was mentioning how cool it was that <a href="http://www.flickr.com/services/api">Flickr provides APIs</a>, so that you can always get your data out of it, if you want to. There are several downloader applications that I found on the Internet, but I have not yet chosen one that I completey like among the few that I&#039;ve tried. So, inspired by <a href="http://kosso.wordpress.com/2007/01/31/free-php5-script-to-grab-your-flickr-photos/">Kosso&#039;s PHP script for enumerating your photos on Flickr</a>, I thought I&#039;d port it to <a href="http://www.microsoft.com/powershell">Powershell</a> and make my own version of it. Just for the fun of it. My Powershell script does not do everything that Kosso&#039;s one does: I don&#039;t build a web page showing description and comments. I suppose this is because the original script was made with PHP, which you usually run on a web server and outputting as HTML is the standard thing you would do in PHP. I just concentrated on the &#034;download&#034; thing, since mine it is a console script. You can think of mine as a &#034;full backup&#034; script. Full&#8230; well, at least of all your photos, if not of all the metadata. It should be trivial to extend anyway, also considering Powershell XML type accelerator really makes it extremely easy to parse the output of a <a href="http://www.flickr.com/services/api/request.rest.html">REST API such as Flickr&#039;s</a> (I would say even easier and more readable that PHP&#039;simplexml). There is a ton of things that could be extended/improved in the script&#8230; including supporting proxy servers, accepting more parameters for things that are now hardcoded&#8230; and with a million other things. Even this way, though, I think that the script can be useful to show a number of techniques in Powershell. Or just to download your photos <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  So you can download the script from here: <a href="http://www.muscetta.org/Get-FlickrPhotos.ps1.txt">Get-FlickrPhotos.ps1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/01/14/get-flickrphotos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Welcome www.powershell.it!</title>
		<link>http://www.muscetta.com/2008/01/04/welcome-wwwpowershellit/</link>
		<comments>http://www.muscetta.com/2008/01/04/welcome-wwwpowershellit/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 21:35:50 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2008/01/04/welcome-wwwpowershellit/</guid>
		<description><![CDATA[I just read from Jeffrey Snover about this newly born Italian PowerShell community site. I just created an account for myself on the site&#8230; as you know I like PowerShell, so even if I usually prefer writing stuff in english, I will try to hang out there and see how can I contribute to it. [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://blogs.msdn.com/powershell/archive/2008/01/04/www-powershell-it-italian-powershell-community-website.aspx">just read from Jeffrey Snover</a> about this newly born <a href="http://www.powershell.it/">Italian PowerShell community site</a>.</p>
<p>I just created an account for myself on the site&#8230; as you know <a href="http://www.muscetta.com/category/powershell/">I like PowerShell</a>, so even if I usually prefer writing stuff in english, I will try to hang out there and see how can I contribute to it.</p>
<p>After all, I am italian&#8230; <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/2008/01/04/welcome-wwwpowershellit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simply Works</title>
		<link>http://www.muscetta.com/2007/12/27/simply-works/</link>
		<comments>http://www.muscetta.com/2007/12/27/simply-works/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 18:24:27 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Energy]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[Risk]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/12/27/simply-works/</guid>
		<description><![CDATA[Simply Works, uploaded by Daniele Muscetta on Flickr. I don&#039;t know about other people, but I do get a lot to think when the end of the year approaches: all that I&#039;ve done, what I have not yet done, what I would like to do, and so on&#8230; And it is a period when memories [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2141526220/"><img src="http://farm3.static.flickr.com/2222/2141526220_7754fa3134.jpg" alt="Simply Works" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2141526220/">Simply Works</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">I don&#039;t know about other people, but I do get a lot to think when the end of the year approaches: all that I&#039;ve done, what I have not yet done, what I would like to do, and so on&#8230;</p>
<p>And it is a period when memories surface.</p>
<p>I found the two old CD-ROMs you can see in the picture. And those are memories.<br />
missioncritical software was the company that invented a lot of stuff that became Microsoft&#039;s products: for example <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6f86937b-533a-466d-a8e8-aff85ad3d212&amp;displaylang=en">ADMT</a> and <a href="http://www.microsoft.com/systemcenter/opsmgr/default.mspx">Operations Manager</a>.</p>
<p>The black CD contains SeNTry, the &#034;enterprise event manager&#034;, what later became Operations Manager.<br />
On the back of the CD, the company motto at the time: &#034;software that works simply and simply works&#034;.<br />
So true. I might digress on this concept, but I won&#039;t do that right now.</p>
<p>I have already explained in my other blog <a href="http://blogs.msdn.com/dmuscett/archive/2005/09/02/459914.aspx">what I do for work</a>. Well, that was a couple of years ago anyway. Several things have changed, and we are moving towards offering services that are more measurable and professional. So, since it happens that in a certain job you need to be an &#034;expert&#034; and &#034;specialize&#034; in order to be &#034;seen&#034; or &#034;noticed&#034;.<br />
You know <a href="http://www.muscetta.com/2006/05/29/specialization-is-bullshit/">I don&#039;t really believe in specialization</a>. I have written it <a href="http://www.muscetta.com/2006/11/05/more-on-specialization/">all over the place</a>. But you need to make other people happy as well and let them believe what they want, so when you &#034;specialize&#034; they are happier. No, really, it might make a difference in your carrer <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In this regard, I did also mention my <a href="http://blogs.msdn.com/dmuscett/archive/2004/11/18/263280.aspx">&#034;meeting again&#034; with Operations Manager</a>.<br />
That&#039;s where Operations manager helped me: it let me &#034;specialize&#034; in systems and applications management&#8230; a field where you need to know a bit of everything anyway: infrastructure, security, logging, scripting, databases, and so on&#8230; <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
This way, everyone wins.</p>
<p>Don&#039;t misunderstand me, this does not mean I want to know everything. One cannot possibly know everything, and the more I learn the more I believe I know nothing at all, to be honest. I don&#039;t know everything, <a href="http://thedailywtf.com/Articles/Classic-WTF-Lock-In-Key-Security.aspx">so please don&#039;t ask me everything &#8211; I work with mainframes</a> <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
While that can be a great excuse to avoid neighbours and relatives annoyances with their PCs though, on the serious side I still believe that any intelligent individual cannot be locked into doing a narrow thing and know only that one bit just because it is common thought that you have to act that way.</p>
<p>If I would <a href="http://twitter.com/gapingvoid/statuses/535752142">stop where I have to stop</a> I would be the standard &#034;IT Pro&#034;. I would be fine, sure, but I would get bored soon. I would not learn anything. <a href="http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/">But I don&#039;t feel I am the standard &#034;IT Pro&#034;</a>. In fact, funnily enough, <a href="http://www.google.com/search?hl=en&amp;q=link:www.muscetta.com&amp;btnG=Search">on some other blogs out there I have been referenced as a &#034;Dev&#034;</a> (find it on your own, look at their blogrolls <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). But I am not a Dev either then&#8230; I don&#039;t write code for work. I would love to, but I rarely actually do, other than some scripts. Anyway, I tend to escape the definition of the usual &#034;expert&#034; on something&#8230; mostly because I want to escape it. I don&#039;t see myself represented by those generalization.</p>
<p>As <a href="http://haacked.com/archive/2007/12/21/faceoff-haack-vs-hanselman-it-gets-real.aspx">Phil puts it</a>, when asked &#034;Are software developers &#8211; engineers or artists?&#034;:</p>
<blockquote><p>&#034;[...] Don’t take this as a copout, but a little of both. I see it more as craftsmanship. Engineering relies on a lot of science. Much of it is demonstrably empirical and constrained by the laws of physics. Software is less constrained by physics as it is by the limits of the mind. [...]&#034;</p></blockquote>
<p>Craftmanship. Not science.<br />
And stop calling me an &#034;engineer&#034;. I am not an engineer. I was even crap in math, in school!</p>
<p>Anyway, what does this all mean? In practical terms, it means that in the end, wether I want it or not, I do get considered an &#034;expert&#034; on MOM and OpsMgr&#8230; and that I will mostly work on those products for the next year too. But that is not bad, because, as I said, working on that product means working on many more things too. Also, I can point to different audiences: those believing in &#034;experts&#034; and those going beyond schemes. It also means that I will have to continue teaching a couple of scripting classes (both VBScript and PowerShell) that nobody else seems to be willing to do (because they are all *expert* in something narrow), and that I will still be hacking together my other stuff (my facebook apps, my wordpress theme and plugins, my server, etc) and even continue to have strong opinions in those other fields that I find interesting and where I am not considered an *expert* <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Well, I suppose I&#039;ve been ranting enough for today&#8230;and for this year <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
I really want to wish everybody again a great beginning of 2008!!! What are you going to be busy with, in 2008 ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/12/27/simply-works/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Merry XMas</title>
		<link>http://www.muscetta.com/2007/12/22/merry-xmas-2/</link>
		<comments>http://www.muscetta.com/2007/12/22/merry-xmas-2/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 09:00:16 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[43places]]></category>
		<category><![CDATA[43things]]></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[lifestream]]></category>
		<category><![CDATA[Luca]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/12/22/merry-xmas-2/</guid>
		<description><![CDATA[This post is to write down some thoughts before Christmas, along the&#160;lines of what&#160;I have written yesterday in an email to a lot of colleagues (and I definitely forgotten some of them because there are too many&#160;great people I&#039;ve worked with&#8230; so if you are one of the forgotten ones and you are reading this:&#160;I&#039;m [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>This post is to write down some thoughts before Christmas, along the&nbsp;lines of what&nbsp;I have written yesterday in an email to a lot of colleagues (and I definitely forgotten some of them because there are too many&nbsp;great people I&#039;ve worked with&#8230; so if you are one of the forgotten ones and you are reading this:&nbsp;I&#039;m sorry!).</p>
<p>The last few months have been very busy&nbsp;with work. As much as I enjoyed them anyway, and learned a lot in the process and from the people I worked with, I now really want to enjoy these few coming days of Christmas holidays and RELAX and spend some quality time with my family and friends. </p>
<p>So I wish the same for all of you: that you may spend a Merry, relaxing Christmas, and have a great start for a grand, brilliant&nbsp;new year! </p>
<p><img src="http://farm3.static.flickr.com/2328/2115416390_3bd5416275.jpg"/> </p>
<p>&nbsp;</p>
<p>As a side note, having been very busy I have blogged a lot less. Blogging&nbsp;implies that I already have a sort-of-well-formed thought, that should span a few lines or paragraphs, otherwise I don&#039;t find it worth it. That does not mean I don&#039;t have small ideas or other things I like to&nbsp;share when&nbsp;I come up with them. That is why&nbsp;I am using microblogging&nbsp;and Social Networking a lot lately,&nbsp;so&nbsp;I remind you that even if this blog&#039;s <a href="http://www.muscetta.com/feed">builtin feed</a>&nbsp;only includes the REAL FEW blog posts,&nbsp;then&nbsp;I also have <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=3N_Inh9M3BGojZTankartA&amp;_render=rss"><strong>another (very &#034;chatty&#034;) feed</strong></a> that you can use to &#034;follow me&#034; and that one includes all of the following combined feeds: my status messages from Facebook, my Twitter messages, my pictures on Flickr, the stuff I read somewhere else and then share on Facebook, the places I visit and mark on&nbsp;43Places and the goals&nbsp;I achieve, want to achieve, or I simply talk about&nbsp;on 43Things, as well as the REAL posts on this blog. It is my implementation of what has been called a &#034;lifestream&#034; by other bloggers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/12/22/merry-xmas-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doha, Qatar</title>
		<link>http://www.muscetta.com/2007/12/02/doha-qatar-commercial-road/</link>
		<comments>http://www.muscetta.com/2007/12/02/doha-qatar-commercial-road/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 09:34:36 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Photos]]></category>
		<category><![CDATA[43places]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Energy]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/12/02/doha-qatar-commercial-road/</guid>
		<description><![CDATA[Doha, Qatar &#124; Commercial Road, uploaded by Daniele Muscetta on Flickr. Last week I have been to Doha, Qatar, visiting a customer site and learning from a colleague how to deliver my first &#034;official&#034; MOM Health Check. I have spent most of my time working on Microsoft Operations Manager, of course, but I also did manage [...]<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/2074684948/" title="photo sharing"><img src="http://farm3.static.flickr.com/2037/2074684948_dae2a089be.jpg" alt="Doha, Qatar | Commercial Road" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2074684948/">Doha, Qatar | Commercial Road</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">Last week I have been to <a href="http://www.43places.com/places/view/104397">Doha</a>, Qatar, visiting a customer site and learning from a colleague how to deliver my first &#034;official&#034; MOM Health Check. I have spent most of my time working on Microsoft Operations Manager, of course, but I also did manage to walk around a bit on my late afternoons and evenings and see some stuff. So, as I usually do in these cases, I took <a href="http://flickr.com/photos/dani3l3/sets/72157603304647847">a ton of pictures</a>.</p>
<p>I found an interesting place, filled with contrasts between old and new, tradition and competition, ancient and modern.<br />
It&#039;s a living place that is certainly working hard to get over the oil business model and attract richness in different ways.</p>
<p>John Lockerbie spotted my photos on Flickrs and asked me permission to use some of the, so they have been now republished on his <a href="http://catnaps.org/islamic/islaurb.html">very interesting page about Islamic Urban design and architeture</a> and <a href="http://catnaps.org/islamic/society.html">the one about islamic society</a>.<br />
They both are an interesting read, and most of his site is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/12/02/doha-qatar-commercial-road/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Role Playing &#124; Technology</title>
		<link>http://www.muscetta.com/2007/11/10/role-playing-technology/</link>
		<comments>http://www.muscetta.com/2007/11/10/role-playing-technology/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 20:50:57 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[RPG]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/11/10/role-playing-technology/</guid>
		<description><![CDATA[Role Playing &#124; Technology, uploaded by Daniele Muscetta on Flickr. I had not been playing Role Playing Games anymore for nearly 15 years. My wife recently thought that Joshua would be big enough to try, so I am trying to introduce him to the world of RPGs. This, as you can imagine, after all of [...]<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/1951073350/" title="photo sharing"><img src="http://farm3.static.flickr.com/2320/1951073350_7e357dbdec.jpg" class="flickr-photo" alt="Role Playing | Technology" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1951073350/">Role Playing | Technology</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span>
</p>
<p class="flickr-yourcomment"> 	I had not been playing Role Playing Games anymore for nearly 15 years. My wife recently thought that Joshua would be big enough to try, so I am trying to introduce him to the world of RPGs. This, as you can imagine, after all of that time, took back memories, ideas, and also made me think of how much the technology changed this all.</p>
<p>I am not at all referring to VIDEO or ONLINE games, even those that are marketed as being RPGs: most of them are not &#034;real&#034; RPGs anyway, they merely borrow some rules. I am saying that technology changed the way people ORGANIZE and prepare their role playing gaming experience (=the one played with real RPGs where you have to ACT a character), and how they interact with each other, and how the &#034;knowledge&#034; spreads.</p>
<p>When I was playing RPG a lot, in the 80&#039;s and early 90&#039;s, everything was paper-based, no Internet and technology in sight. For example, we photocopied a lot of stuff back then, as opposed to today when I just downloaded and printed a character sheet. But it was not just printed material that was being photocopied: in those years I remember myself handwriting my own extended set of rules, manuals, scenarios, description of places (I even kept and found back some of those!). Everything was handwritten: text, drawings, maps. A lot of work, very hard to mantain. But passion was driving me (and my friends at that time too). That has also been a big enabler in how I taught myself to read and write english: by translating handbooks that nobody had translated in italian. But I digress.</p>
<p>We use to go to a couple of highly specialized shops that were able to import and resell one or two copies of some rare handbooks of a strange game that would otherwise not sell at all. Sometimes even the specialized shops did not manage to get the originals of some of those rare books. Therefore, some of the expansions were sold as photocopies.<br />
Some other times there had been some guy somewhere who did have one copy bought in the US and he took the effort to make an UNofficial translation and TYPEWRITE it in italian. Photocopies of this &#034;product&#034; was all that was circulating.</p>
<p>I am not talking or caring of copyright or &#034;pirate&#034; issues here. We were not &#034;avoiding&#034; the original stuff: if anybody would have told us that the stuff we wanted was actually available in its original format, we would have bought it. But it just wasn&#039;t available at all, and we wanted it. This kind of material was really close to impossible to get, with high costs, and all that us busy kids wanted was books with descriptions of imaginary fantasy worlds to place our characters in, and improvise and narrate our stories and saga&#039;s&#8230;</p>
<p>Also, all in paper format, what was circulating was a certain number of fanzines, also photocopies of an original, wonderful, &#034;master copy&#034; that someone had made with a typewriter and sticking pictures with glue on the paper. Desktop publishing was not that common nor easy yet. But the layout is not really what interested me, it was the CONTENT that was hard to spread.</p>
<p>At one stage, the thing improved slightly: I finally managed to convince my parents that I was allowed to get a modem, so I started using it to connect to various BBS. A couple of those BBS of the time were related to RPGs or had a related discussion area. I was interested in technology and in knowing how it was doing its magic, but most of all I was also pretty excited at the possibilities I saw for the technology as an enabler in connecting people. Just like I am now.<br />
I have met some good friends on BBS&#039;s at that time. I&#039;m still in contact with some of them, I&#039;ve lost some other ones, like it happens in life anyway. But the possibility was showing quite clearly: those BBS were mostly text-based, with high connection costs (in italy were you pay every call, also local ones, per minute)&#8230; even in those circumstances they were managing to aggregate some people and were used as vehicles to spread the knowledge.<br />
In Italy, thought, they were mostly local. International calls were prohibitively expensive. Of course <a href="http://www.lib.ru/STERLINGB/jackson.txt">we did hear of what happened to similar BBS in the US</a>.</p>
<p>In fact, after pencil and paper, through a typewriter, the revolution started there: being able to type stuff on a computer and pass your file over to someone else made it easier for it to spread. But again, I am not talking about copyrighted material. I am mostly talking about self-produced material. I still remember I had troubles with digitalizing maps because I did not own a scanner&#8230; on some of the BBS people were sharing their works, and you could find good adventures and extra stuff on them. I also got to publish somewhere a couple of those I had written, and they even made it on a fanzine first, and then on a real magazine.</p>
<p>At one stage, though, I really got distracted. I probably thought I was &#034;big enough&#034;, or I got too interested in the &#034;serious&#034; computing business, or I was too busy with other stuff. Probably a combination of many factors. So I sort of abandoned playing for a long time.</p>
<p>Now, looking back at that world, more than a decade later, I can see how it all changed: you go to the Internet, use any search engine and find dozen if not hundred of sites with forums, people playing online using Live Messenger, <a href="http://www.dragonsfoot.org/fe/">people sharing their adventures</a> or their <a href="http://www.geocities.com/thresholdparty/dungeons.html">stories of the adventures they have played</a>, other <a href="http://home.flash.net/~brenfrow/">sites that collect all of the covers and information about all the booklets and manuals ever existed for any possible version of any game</a>. Even <a href="http://www.wizards.com/default.asp?x=dnd/dnd/downloads">the vendors are giving out stuff to play for free</a>.</p>
<p>PCs and the Internet DID change the world, if anyone was still doubting. And yes, <a href="http://twitter.com/codinghorror/statuses/356513332">Role Playing Games and computing ARE related interests</a>.</p>
<p>The world changed, yet it stayed the same: you still play those games with people, with the help of your imagination. It&#039;s the resources that are now at your fingertips.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/11/10/role-playing-technology/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Monitoring Syslog with OpsMgr 2007</title>
		<link>http://www.muscetta.com/2007/11/09/monitoring-syslog-with-opsmgr-2007/</link>
		<comments>http://www.muscetta.com/2007/11/09/monitoring-syslog-with-opsmgr-2007/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 12:45:05 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/11/09/monitoring-syslog-with-opsmgr-2007/</guid>
		<description><![CDATA[I had missed it&#8230; finally guidance on how to collect and monitor UNIX syslog in System Center Operations Manager 2007 has been published! This is much more sysadmin-oriented than what was availble before (that remais of course still relevant, but more from a Management Pack developer&#039;s point of view, who wants to know how things [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I had missed it&#8230; finally guidance on <a href="http://support.microsoft.com/kb/942863">how to collect and monitor UNIX syslog in System Center Operations Manager 2007</a> has been published!</p>
<p>This is much more sysadmin-oriented than <a href="http://blogs.msdn.com/komal/archive/2007/10/05/syslog-module-enhanced.aspx">what was availble before</a> (that remais of course still relevant, but more from a Management Pack developer&#039;s point of view, who wants to know how things work &#034;behind the hood&#034;).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/11/09/monitoring-syslog-with-opsmgr-2007/feed/</wfw:commentRss>
		<slash:comments>3</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>Security Fixes ISO images</title>
		<link>http://www.muscetta.com/2007/10/25/security-fixes-iso-images/</link>
		<comments>http://www.muscetta.com/2007/10/25/security-fixes-iso-images/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 08:51:28 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/25/security-fixes-iso-images/</guid>
		<description><![CDATA[I learn now from Robert Hensing that Microsoft provides ISO images of DVD containing the security fixes for those who can&#039;t do an online update due to bandwidth and other constraints. It has probably been there for ages, only I had missed it. And if I have missed it, I am quite sure that a [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.technet.com/robert_hensing/archive/2007/10/24/getting-microsoft-updates-offline.aspx">I learn now from Robert Hensing</a> that <a href="http://support.microsoft.com/kb/913086">Microsoft provides ISO images of DVD containing the security fixes</a> for those who can&#039;t do an online update due to bandwidth and other constraints. It has probably been there for ages, only I had missed it. And if I have missed it, I am quite sure that a lot of other people have missed it too. So, it does not hurt to &#034;echo&#034; it <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/10/25/security-fixes-iso-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft in the Open</title>
		<link>http://www.muscetta.com/2007/10/18/microsoft-in-the-open/</link>
		<comments>http://www.muscetta.com/2007/10/18/microsoft-in-the-open/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 10:31:26 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Open]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/18/microsoft-in-the-open/</guid>
		<description><![CDATA[Two of Microsoft’s Shared Source licenses have been approved by the OSI. Read more on port25! (yes, I did read this yesterday, but I was teaching and then travelling so I did not make it to blog).<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>Two of Microsoft’s Shared Source licenses <a href="http://opensource.org/node/207">have been approved by the OSI</a>. <a href="http://port25.technet.com/archive/2007/10/16/microsoft-out-in-the-open.aspx">Read more on port25</a>! (yes, I did read this yesterday, but I was teaching and then travelling so I did not make it to blog).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/10/18/microsoft-in-the-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Praktica!</title>
		<link>http://www.muscetta.com/2007/10/05/praktica/</link>
		<comments>http://www.muscetta.com/2007/10/05/praktica/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 19:55:52 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Camera]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Flickr]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/10/05/praktica/</guid>
		<description><![CDATA[Praktica!, uploaded by Daniele Muscetta on Flickr. My backward walks in technology. The old Pentax still makes nice pictures, but it is gradually falling apart. So I found this one for a very low price. During the weekend I am determined to test it, let&#039;s see how it behaves&#8230;<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/1485587474/" title="photo sharing"><img src="http://farm2.static.flickr.com/1188/1485587474_671141ee72.jpg" alt="Praktica!" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1485587474/">Praktica!</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">My backward walks in technology.<br />
The old Pentax still makes nice pictures, but it is gradually falling apart. So I found this one for a very low price. During the weekend I am determined to test it, let&#039;s see how it behaves&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/10/05/praktica/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[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 or Virtual Server, I found it annoying having to switch to VMWare player to use that specific machine, and I could not be asked [...]<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 Server 2008 Release Candidate available!!</title>
		<link>http://www.muscetta.com/2007/09/25/windows-server-2008-release-candidate-available/</link>
		<comments>http://www.muscetta.com/2007/09/25/windows-server-2008-release-candidate-available/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 13:10:54 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/25/windows-server-2008-release-candidate-available/</guid>
		<description><![CDATA[It can be downloaded from here. The Italian Technet team has a nice post about it (in Italian). Go download it, and enjoy your testing!<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>It can be downloaded from <a href="http://www.microsoft.com/technet/prodtechnol/beta/lhs/default.mspx">here</a>. The Italian Technet team has <a href="http://blogs.technet.com/italy/archive/2007/09/25/disponibile-la-release-candidate-0-di-windows-server-2008.aspx">a nice post about it</a> (in Italian). Go download it, and enjoy your testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/25/windows-server-2008-release-candidate-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incidental Ideas</title>
		<link>http://www.muscetta.com/2007/09/23/incidental-ideas/</link>
		<comments>http://www.muscetta.com/2007/09/23/incidental-ideas/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 07:47:02 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Patent]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/23/incidental-ideas/</guid>
		<description><![CDATA[[...] The phrase surprised the marquess, because it was the same thing that he had thought when four o&#039;clock had passed. To the bishop it looked like it was a natural coincidence. “The ideas are nobody&#039;s” &#8211; he said. It drew in air with his finger a series of continuous circles, and concluded: “They fly [...]<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/1421936091/" title="photo sharing"><img src="http://farm2.static.flickr.com/1191/1421936091_60a07923c3.jpg" alt="Incidental Ideas" class="flickr-photo" /></a></p>
<p><em>[...] The phrase surprised the marquess, because it was the same thing that he had thought when four o&#039;clock had passed. To the bishop it looked like it was a natural coincidence. “The ideas are nobody&#039;s” &#8211; he said. It drew in air with his finger a series of continuous circles, and concluded: “They fly there in circles, like angels” [...]</em></p>
<p>Gabriel Garcia Marquez, &#034;Of Love and Other Demons&#034;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/23/incidental-ideas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5° Festival Romano di Giocoleria</title>
		<link>http://www.muscetta.com/2007/09/17/5%c2%b0-festival-romano-di-giocoleria/</link>
		<comments>http://www.muscetta.com/2007/09/17/5%c2%b0-festival-romano-di-giocoleria/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 11:23:04 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Places]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/17/5%c2%b0-festival-romano-di-giocoleria/</guid>
		<description><![CDATA[5° Festival Romano di Giocoleria, uploaded by Daniele Muscetta on Flickr. This weekend we have been at the 5th roman festival of juggling, organized by the &#034;C.S.A. La Torre&#034;. You will find a bunch more photos here.<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/1393441654/" title="photo sharing"><img src="http://farm2.static.flickr.com/1053/1393441654_d509743fd0.jpg" alt="5° Festival Romano di Giocoleria" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1393441654/">5° Festival Romano di Giocoleria</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">This weekend we have been at the 5th roman festival of juggling, <a href="http://www1.autistici.org/latorre/index.php?option=com_content&amp;task=view&amp;id=261&amp;Itemid=2">organized by the &#034;C.S.A. La Torre&#034;</a>.<br />
You will find <a href="http://www.flickr.com/photos/dani3l3/sets/72157602040135261/">a bunch more photos here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/17/5%c2%b0-festival-romano-di-giocoleria/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clean Energy</title>
		<link>http://www.muscetta.com/2007/09/15/clean-energy/</link>
		<comments>http://www.muscetta.com/2007/09/15/clean-energy/#comments</comments>
		<pubDate>Sat, 15 Sep 2007 07:51:42 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Energy]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[Flickr]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/15/clean-energy/</guid>
		<description><![CDATA[Energia Pulita, uploaded by Lupinanto &#8211; Antonio Pennisi on Flickr. This last couple of days the italian news have been filled with FUD about the energy problem. That is a real problem, for the whole world. We are even killing and going to war for petrol, regardless of how they try to brainwash us with [...]<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/antoniopennisi/1382513036/" title="photo sharing"><img src="http://farm2.static.flickr.com/1227/1382513036_633f55b4d9.jpg" alt="Energia Pulita" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/antoniopennisi/1382513036/">Energia Pulita</a>, uploaded by <a href="http://www.flickr.com/people/antoniopennisi/">Lupinanto &#8211; Antonio Pennisi</a> on Flickr.</span></p>
<p class="flickr-yourcomment">This last couple of days the italian news have been filled with FUD about the energy problem.<br />
That is a real problem, for the whole world. We are even killing and going to war for petrol, regardless of how they try to brainwash us with &#034;terror&#034;.</p>
<p>But we have not been quick enough to start using the alternative, clean sources of energy. I don&#039;t know how it goes in the rest of the world on the local news, but here in Italy in this last couple of days the politicians have been talking and thinking about the energy problem and said that they care.<br />
A lot of Wind-powered centrals have been active for years in the Netherlands, in Germany, and in a lot of other countries.</p>
<p>Italy has been slow in the adoption. We have some example installation, but they won&#039;t produce as much.<br />
If we were smart we should really leverage the amount of sun we have all year long. Cover all of our roofs of solar panels. There should be a law where every new house MUST have a solar panel. They should let normal people have HUGE discounts and promote the possibility of being autonomous by installing solar panels at home.</p>
<p>Instead of doing that, our brave politicians with their interests and lobbies are pushing again towards <a href="http://www.repubblica.it/2007/03/sezioni/ambiente/clima2/bersani-nucleare/bersani-nucleare.html">Nuclear Power</a> (that has been REFUSED as an option by people who votes against it in a referendum in 1987) or <a href="http://www.repubblica.it/2007/03/sezioni/ambiente/clima2/prodi-conferenza/prodi-conferenza.html">old-fashioned stinky carbon-burning centrals</a>. How can you even think of calling that a &#034;clean&#034; energy ? Do they think we are all dumb ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/15/clean-energy/feed/</wfw:commentRss>
		<slash:comments>0</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[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. Ridiculous. You read the release notes, and in fact it only says Windows XP and Vista. I see. Well, I happen to use a [...]<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>Cum grano salis</title>
		<link>http://www.muscetta.com/2007/09/12/cum-grano-salis/</link>
		<comments>http://www.muscetta.com/2007/09/12/cum-grano-salis/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 18:17:32 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Funny]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/12/cum-grano-salis/</guid>
		<description><![CDATA[Cum grano salis, uploaded by Daniele Muscetta on Flickr. I like salt. I don&#039;t usually cook with a lot of it, and I don&#039;t particularly like very salty food. But I really like salt on its own. When I was a child, I used to go to the kitchen, at my granny&#039;s home, and steal [...]<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/1367245946/" title="photo sharing"><img src="http://farm2.static.flickr.com/1436/1367245946_3806dc7251.jpg" alt="Cum grano salis" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1367245946/">Cum grano salis</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">I like salt. I don&#039;t usually cook with a lot of it, and I don&#039;t particularly like very salty food. But I really like salt on its own.<br />
When I was a child, I used to go to the kitchen, at my granny&#039;s home, and steal a grasp of salt from its jar, and I went hiding under a bed. Once hidden, I ate my trasure.<br />
An homeopaths once asked me (among the whole lot of strange question they ask you) if I did, indeed, eat raw, uncooked salt, just like I told you I did as a kid. At that time I got impressed and surprised by the thing.<br />
Now I realize he was trying to figure out if I was a person of the <a href="http://guide.dada.net/omeopatia/interventi/2004/11/187072.shtml">NATRUM MURIATICUM</a> type.<br />
I am not sure I am one of that kind, maybe partially. Actually I am more towards the <a href="http://guide.dada.net/omeopatia/interventi/2007/06/296959.shtml">SILICEA</a> type.<br />
At least, that remedy (silicea) has worked with me a bunch of times.<br />
Probably, even in homeopathy, I don&#039;t fit exactly in one classification.<br />
Salt was also used in the ancient times as money.<br />
The modern term &#034;salary&#034; (wage, payment) comes from this use that was done of it, from its value back then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/12/cum-grano-salis/feed/</wfw:commentRss>
		<slash:comments>0</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>I Wish</title>
		<link>http://www.muscetta.com/2007/09/09/i-wish/</link>
		<comments>http://www.muscetta.com/2007/09/09/i-wish/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 17:37:37 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[candles]]></category>
		<category><![CDATA[carretto siciliano]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[hopes]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[wishes]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/09/i-wish/</guid>
		<description><![CDATA[I Wish, uploaded by Daniele Muscetta on Flickr. Tomorrow the new school year will begin for Joshua and Luca (and for all the other kids in Italy). For me and for my kids, after having moved to another city, this is a more important event than the *real* new years eve that will come in [...]<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/1350551395/" title="photo sharing"><img src="http://farm2.static.flickr.com/1007/1350551395_a2cc4f055b.jpg" alt="I Wish" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1350551395/">I Wish</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span>
</p>
<p class="flickr-yourcomment">Tomorrow the new school year will begin for Joshua and Luca (and for all the other kids in Italy).</p>
<p>For me and for my kids, after having moved to another city, this is a more important event than the *real* new years eve that will come in december: september, after the holidays (even tough we have not really been on vacation) is the real moment when the &#034;year&#034; starts in Italy.<br />
Even my company ends its &#034;fiscal years&#034; in June, and the real work starts back in september&#8230;</p>
<p>I do hope this school year goes well for my kids and that they can find a bunch of new nice friends in the new school. It is so important for them. I am sorry I had them move, furthermore for the second time (first time having been when moving from holland to Italy, in 2004) but it was the only place we could afford to buy a house in, while still being relatively close to Rome. Having to pay an ever-increasing rent and having no security was not really helping us.<br />
So we moved to Velletri in June, leaving Castel Gandolfo.<br />
With Velletri being a bigger town compared to the village we were living in earlier, everything should be better organized when for they grow &#8211; there is more to do, more schools, more shops, more life, more opportunities. This time we live very close to the school, so they can walk to it, instead than being taken by car. This also means that their new friends are going to be the kids living around us. Which makes for more opportunities to play and study together.<br />
It&#039;s gonna be tough at the beginning, but in the long run they should be fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/09/09/i-wish/feed/</wfw:commentRss>
		<slash:comments>0</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>Luca &#124; in the Wind</title>
		<link>http://www.muscetta.com/2007/09/04/luca-in-the-wind/</link>
		<comments>http://www.muscetta.com/2007/09/04/luca-in-the-wind/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 22:27:58 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Luca]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/09/04/luca-in-the-wind/</guid>
		<description><![CDATA[Luca &#124; in the Wind, uploaded by Daniele Muscetta on Flickr. One of the best portraits I took lately. On Flickr it has been on Explore: flickr.com/explore/interesting/2007/8/31/page12 Who said the Sigma 28-300 is crap ? You need to know how to use it<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/1285786914/" title="photo sharing"><img src="http://farm2.static.flickr.com/1182/1285786914_981c7fdbbc.jpg" alt="Luca | in the Wind" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/1285786914/">Luca | in the Wind</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">One of the best portraits I took lately.<br />
On Flickr it has been on Explore: <a href="http://flickr.com/explore/interesting/2007/8/31/page12">flickr.com/explore/interesting/2007/8/31/page12</a></p>
<p>Who said the <a href="http://www.photographyreview.com/cat/lenses/35mm-zoom/sigma/PRD_286766_3128crx.aspx">Sigma 28-300</a> is crap ? You need to know how to use it <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/09/04/luca-in-the-wind/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>per incollare carte, stoffe, fotografie, etc&#8230;</title>
		<link>http://www.muscetta.com/2007/08/31/per-incollare-carte-stoffe-fotografie-etc/</link>
		<comments>http://www.muscetta.com/2007/08/31/per-incollare-carte-stoffe-fotografie-etc/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 18:22:19 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/31/per-incollare-carte-stoffe-fotografie-etc/</guid>
		<description><![CDATA[Coccoina, a piece of Italian history. &#034;Italy, for example, is a puzzle [...]. Family businesses, therefore, form the backbone of the Italian economy. There are businesses which grow rich by doing small things very well. [...] &#034;Better not bigger&#034; is their preferred route to to wealth because bigger inevitably means the eventual sharing of power [...]<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/1284961139/" title="photo sharing"><img src="http://farm2.static.flickr.com/1224/1284961139_c1f2c6b3b7.jpg" alt="per incollare carte, stoffe, fotografie, etc..." class="flickr-photo" /></a></p>
<p><a href="http://www.coccoina.it/storia.htm">Coccoina, a piece of Italian history</a>.</p>
<p><em>&#034;Italy, for example, is a puzzle [...]. Family businesses, therefore, form the backbone of the Italian economy. There are businesses which grow rich by doing small things very well. [...] &#034;Better not bigger&#034; is their preferred route to to wealth because bigger inevitably means the eventual sharing of power with people you cannot know well enough to trust.&#034; &#8211; quote: Charles Handy &#8211; &#034;Beyond Certainty&#034;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/31/per-incollare-carte-stoffe-fotografie-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>43things Facebook app</title>
		<link>http://www.muscetta.com/2007/08/28/43things-facebook-app/</link>
		<comments>http://www.muscetta.com/2007/08/28/43things-facebook-app/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 08:36:51 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[43places]]></category>
		<category><![CDATA[43things]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/28/43things-facebook-app/</guid>
		<description><![CDATA[WOW I already have 13 (thirteen) users for my Facebook application showing your goals pulled from 43things! Sure, gapingvoid has got 700+ users in 3 days, I know. But hey, he&#039;s famous, and I don&#039;t see the point of cluttering my already busy Facebook profile with a cartoon. I do read him and generally like his [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>WOW I already have 13 (thirteen) users for <a href="http://www.facebook.com/apps/application.php?api_key=481ca08c0cea9f311c9ad5a11b0e925b">my Facebook application showing your goals pulled from 43things</a>!</p>
<p>Sure, <a href="http://www.facebook.com/apps/application.php?api_key=129a817243db8922622abd53b2c3732b">gapingvoid has got 700+ users in 3 days</a>, I know. But hey, he&#039;s famous, and I don&#039;t see the point of cluttering my already busy Facebook profile with a cartoon. I do read him and generally like his cartoons, and I am in the <a href="http://www.facebook.com/group.php?gid=2455150406">&#034;friends of the blue monster&#034; group</a> (so to say I like him).</p>
<p>But I prefer reading him in my &#034;normal&#034; aggregator.</p>
<p>I think Facebook apps should rather &#034;inject social objects&#034; (where did I read this definition? sorry I cant recall it or I would appropiately link to you&#8230; I swear).</p>
<p>There are of course other similar applications that just pull comics in your profile (like <a href="http://www.facebook.com/apps/application.php?id=11397560696&amp;b">Dilbert</a>, <a href="http://www.facebook.com/apps/application.php?id=2412082262&amp;b">Garfield</a>, <a href="http://www.facebook.com/apps/index.php?q=comic">etc</a>) but again &#8211; I think this is all stuff that YOU are interested in, and thus should just go into your aggregator &#8211; so YOU can read it; on the opposite your profile in Facebook should talk about YOU and things YOU are doing, for example. Occasionally they can be YOUR posts or they can even be someone else&#039;s posts that you read and want to share/let other people see (that&#039;s why I pull in my <a href="http://www.facebook.com/apps/application.php?api_key=e0e7bb035cf823292dcbba9586adb3d9">Google Reader&#039;s shared items</a> for example &#8211; things I read and want you too to see). If this includes importing other social objects/information from other social networks, like <a href="http://www.facebook.com/apps/application.php?api_key=024f4b8ab5f232414153957e8c5fabc0">the music you are listening to on last.FM</a>, or <a href="http://www.facebook.com/apps/application.php?api_key=8d7e87cc9f11c6d0311cb7b50252548b">the photos you published on Flickr</a>, then it is fine. That&#039;s why I wrote <a href="http://www.facebook.com/apps/application.php?api_key=481ca08c0cea9f311c9ad5a11b0e925b">an app that shows the things you want to do</a>, pulled in from <a href="http://www.43things.com">43things.com</a> and one that shows <a href="http://www.facebook.com/apps/application.php?api_key=36bb682b64617bdea356ccf400c0d6d4">the places you want to visit</a> pulled in from <a href="http://www.43places.com">43places.com</a>. Because I felt those social objects from another network were missing. In fact a user commented &#034;<em>[...] Glad someone finally took a step forward to create this, though <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  [...]</em>&#034;.</p>
<p>But of course what I wrote about which kind of applications you should or shouldn&#039;t have in your profile, remember that this is just my <strike>personal opinion</strike> rant, and everybody is free to put whatever stuff he/she likes onto his/her profile, in the end :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/28/43things-facebook-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lemmings</title>
		<link>http://www.muscetta.com/2007/08/27/lemmings/</link>
		<comments>http://www.muscetta.com/2007/08/27/lemmings/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 07:53:41 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Photos]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Lemmings]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/27/lemmings/</guid>
		<description><![CDATA[The complete story of the Lemmings www.dmadesign.org/Lem_1.htm (read from Jeff Atwood on twitter, where I also discover that it can now be played online)<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/1247332676/" title="photo sharing"><img src="http://farm2.static.flickr.com/1043/1247332676_b0c72c2291.jpg" alt="Lemmings" class="flickr-photo" /></a></p>
<p>The complete story of the Lemmings<br />
<a href="http://www.dmadesign.org/Lem_1.htm">www.dmadesign.org/Lem_1.htm</a></p>
<p>(read from <a href="http://twitter.com/codinghorror">Jeff Atwood on twitter</a>, where I also discover that it can now be <a href="http://www.elizium.nu/scripts/lemmings">played online</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/27/lemmings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Photo Category Visualization</title>
		<link>http://www.muscetta.com/2007/08/26/new-photo-category-visualization/</link>
		<comments>http://www.muscetta.com/2007/08/26/new-photo-category-visualization/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 15:28:34 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Places]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/26/new-photo-category-visualization/</guid>
		<description><![CDATA[Copying the advice by Small Potato, I made a different page for the &#039;Photos&#039; category/tag on this blog. It has been a bit trickier than I first thought, because he keeps his picture uploaded into wordpress itself, while I had to write a small plugin using a regular expression to extract the &#034;IMG SRC&#034; portion of [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/dani3l3/1240463115/" title="Photo Sharing"><img width="500" src="http://farm2.static.flickr.com/1192/1240463115_8df8a01334.jpg" alt="New Photo Category Page" height="432" /></a></p>
<p>Copying <a href="http://www.wpdesigner.com/2007/08/04/how-to-manipulate-category-templates/">the advice by Small Potato</a>, I made <a href="http://www.muscetta.com/category/photos/">a different page for the &#039;Photos&#039; category/tag</a> on this blog. It has been a bit trickier than I first thought, because he keeps his picture uploaded into wordpress itself, while I had to write a small plugin using a regular expression to extract the &#034;IMG SRC&#034; portion of the post content. This way I also experimented with WordPress templates, plugins and structure a bit more than I had done before&#8230; and I am even more convinced than before that it can easily be used as a CMS rather than *just* a bloging software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/26/new-photo-category-visualization/feed/</wfw:commentRss>
		<slash:comments>0</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>Orkut make up</title>
		<link>http://www.muscetta.com/2007/08/24/orkut-make-up/</link>
		<comments>http://www.muscetta.com/2007/08/24/orkut-make-up/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 19:11:43 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Orkut]]></category>
		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/24/orkut-make-up/</guid>
		<description><![CDATA[[...] Just as you change your profile picture to keep with the times, we&#039;re updating the look of orkut. The change isn&#039;t live yet, but starting soon, we will start rolling-out the new look. [...] this is what is written on Orkut blog. &#8230;shouldn&#039;t they rather think of providing an API instead than just a [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>[...] Just as you change your profile picture to keep with the times, we&#039;re updating the look of orkut. The change isn&#039;t live yet, but starting soon, we will start rolling-out the new look. [...]</em></p></blockquote>
<p>this is what <a href="http://en.blog.orkut.com/2007/08/coming-soon-new-look.html">is written on Orkut blog</a>.</p>
<p>&#8230;shouldn&#039;t they rather think of providing an API instead than just <a href="http://bp0.blogger.com/_eXrfCIRgeCA/Rs78Y4ZZv4I/AAAAAAAAFho/9uhuTh4V9Rg/s1600-h/new-homepage-en.png" rel="lightbox[215]">a new look (which does not look that different from the old one)</a> ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/24/orkut-make-up/feed/</wfw:commentRss>
		<slash:comments>6</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[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[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 read that Live Search can find Jimi Hendrix&#039;s face, and Google can spot those portraits of Paris Hilton. Unfortunately I am not as famous [...]<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[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 through SMS. I can&#039;t even send them by mail, or I get the following back: So, now, I am updating Twitter. Twitter can be [...]<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>How to get a funky-colored Logon Desktop</title>
		<link>http://www.muscetta.com/2007/08/20/how-to-get-a-funky-colored-logon-desktop/</link>
		<comments>http://www.muscetta.com/2007/08/20/how-to-get-a-funky-colored-logon-desktop/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 11:32:07 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[colors]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/08/20/how-to-get-a-funky-colored-logon-desktop/</guid>
		<description><![CDATA[aka &#8211; how to (mis)use the information in a KB article to make your logon screen on Windows 2003 Server look like a candy shop: http://support.microsoft.com/?id=906510<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>aka &#8211; how to (mis)use the information in a KB article to make your logon screen on Windows 2003 Server look like a candy shop: <a href="http://support.microsoft.com/?id=906510">http://support.microsoft.com/?id=906510</a></p>
<p><a href="http://www.muscetta.com/wp-content/uploads/funky_logon_screen.jpg" rel="lightbox[210]"><img class="alignnone size-medium wp-image-255" title="Candy Colored Logon Screen" src="http://www.muscetta.com/wp-content/uploads/funky_logon_screen-300x203.jpg" alt="" width="300" height="203" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/08/20/how-to-get-a-funky-colored-logon-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

