<?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>Musings &#187; Windows</title>
	<atom:link href="http://blog.fpmurphy.com/tag/windows/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.fpmurphy.com</link>
	<description>of an OS plumber</description>
	<lastBuildDate>Wed, 11 Jan 2012 19:14:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Installing Oracle 11g Release 2 on Fedora 14</title>
		<link>http://blog.fpmurphy.com/2010/12/installing-oracle-11g-release-2-on-fedora-14.html</link>
		<comments>http://blog.fpmurphy.com/2010/12/installing-oracle-11g-release-2-on-fedora-14.html#comments</comments>
		<pubDate>Sun, 05 Dec 2010 02:17:59 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[SQLplus]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/?p=394</guid>
		<description><![CDATA[This post describes how to install Oracle Database 11g Release 2 on Fedora 14, install an SQLplus client on Microsoft Windows 7 and configure both installations so that the SQLplus client can access the Oracle database running on Fedora 14. ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2010/12/installing-oracle-11g-release-2-on-fedora-14.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Porting Korn Shell 93 to Windows 7 SUA</title>
		<link>http://blog.fpmurphy.com/2010/10/porting-ksh93-to-windows-7-sua.html</link>
		<comments>http://blog.fpmurphy.com/2010/10/porting-ksh93-to-windows-7-sua.html#comments</comments>
		<pubDate>Fri, 01 Oct 2010 18:39:04 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[ksh93]]></category>
		<category><![CDATA[POSIX]]></category>
		<category><![CDATA[SUA]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Korn Shell]]></category>
		<category><![CDATA[ksh]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/?p=377</guid>
		<description><![CDATA[This post shows you how to download, build and install the latest version of the Korn shell in the Windows 7 SUA subsystem. ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2010/10/porting-ksh93-to-windows-7-sua.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Windows Parallel Filesystems</title>
		<link>http://blog.fpmurphy.com/2009/05/windows-parallel-filesystems.html</link>
		<comments>http://blog.fpmurphy.com/2009/05/windows-parallel-filesystems.html#comments</comments>
		<pubDate>Tue, 26 May 2009 17:27:00 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[Windows parallel filesystem]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/2009/05/windows-parallel-filesystems.html</guid>
		<description><![CDATA[<p>I recently was involved in some development work for a quasi-parallel filesystem for Microsoft Windows.&#160; As a result of that involvement my interest was piqued and I decided to do so research on what the state of research and development is in the field of parallel filesystems designed specifically for Microsoft Windows.</p> <p>First a quick review of what I mean by a parallel file system.&#160; There are any number of different types of parallel file systems available.&#160; Some allow multiple systems and applications to share common pools of storage as in a clusered filesystem.&#160; Some split the data across two or more nodes to improve access time and redundancy.&#160; Other variants split files into lots of small chunks, stores these chunks on different disks in a round-robin fashion, and re-combine them upon reading to get back the original file.</p> <p>The earliest instance of Microsoft Windows-specific parallel fileystem that I have found to date is the parallel filesystem developed by the ARGOS group at Universidad Carlos 111 de Madrid, Madrid, ES.&#160; This research group developed a prototype of a parallel file system for a network of Microsft Windows nodes which they called WinPFS.&#160; They presented their work at COSET 2004 and a number of other workshops.&#160; WinPFS was implemented as a new fileyystem type fully integrated within the Microsoft Windows kernel.&#160; This has the advantage that no modification or recompilation of user applications is needed to take advantage of the parallel filesystem.</p> <p></p> <p>The goal of this research group was to build a parallel file system for networks of Microsoft Windows computers using Microsoft Windows shared folders to access remote data in parallel. The implementation is based on file system redirectors which redirect requests to remote nodes using UNC (Universal Naming Convention) and the SMB and/or CIFS protocols. WinPFS is registered as a virtual remote file system and access to remote data is through a new shared folder \\PFS.&#160; The basic file operation primatives are: create, read, write, and create directory.</p> <p></p> <p>The prototype was developed on the Windows XP platform, and has been tested with a cluster of seven Windows XP nodes and a Windows 2003 Server node in various configurations.&#160; Maximum throughput for write operations were 250 Mbit/s and 1200 Mbit/s for read operations.&#160; The research team reported that the bottleneck for writes was the disks and for reads was the network.&#160; As far as I can tell this ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2009/05/windows-parallel-filesystems.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porting WaitForSingleObject to Linux &#8211; Part 2</title>
		<link>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-linux.html</link>
		<comments>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-linux.html#comments</comments>
		<pubDate>Thu, 30 Apr 2009 13:38:00 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Porting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-linux-part-2.html</guid>
		<description><![CDATA[<p>In my last post I discussed the use of WaitForSingleObject in relation to mutexes and possible ways to implement equivalent functionality when porting such code to GNU/Linux.&#160; In this post I will describe the use of this API with event objects in Microsoft Windows and suggest possible ways of posting such code to GNU/Linux or Unix. </p> <p>First, some background on event objects.&#160; An event object is just another type of Windows kernel dispatcher object.&#160; From a coding prespective, an event object is a synchronization object which encapsulates one or more kernel dispatcher objects and whose synchronization semantics are accessable via WaitForSingleObject and its cousins.&#160; At any given time a synchronization object is either nonsignaled or signaled, i.e. the object can only be in one of two possible states. </p> <p>All of the WaitFor family of APIs including WaitForSingleobject wait on an object handle or handles until some specified criteria is met.&#160; The two basic criteria for all these APIs are the signaled state of the object on whose handle it is waiting and a time-out value.&#160; Thus a thread which calls this API waits till the specified object enters the signaled state or the specified time-out has expired.&#160; Little or no CPU time is used when such a thread is in the wait state.</p> <p>In the case of events, a CreateEvent or OpenEvent returns a handle to an event object.&#160; When an event is in the signaled state it means that that the event has the capacity to release one or more threads waiting for this particular event to be signaled.&#160; When an event is in the nonsignaled state it will not release any waiting thread.&#160; Initially the state of an event is nonsignaled.&#160; An event object&#8217;s state is set explicitly to signaled by SetEvent or PulseEvent.&#160; Event objects are also used in overlapped operations such as reading from a socket, in which case the event object state is set to signaled by the kernel rather than by an application.</p> <p>Events also come in two reset types.&#160; If an event is a manual-reset event, then all WaitForSingleObjects return that wait for that event if so configured.&#160; In other words a manual-reset event can trigger action by one or more WaitForSingleObject or its cousins.&#160; A manual-reset event object&#8217;s state must be reset explicitly to nonsignaled by ResetEvent. </p> <p>For an auto-reset event object, WaitForSingleObject and it&#8217;s relations reset the state ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porting WaitForSingleObject to Linux &#8211; Part 1</title>
		<link>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-gnulinux.html</link>
		<comments>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-gnulinux.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 20:01:00 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Porting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-linux-part-1.html</guid>
		<description><![CDATA[<p>Recently I was involved in porting a 32-bit application which was initially written for Microsoft Windows NT to GNU/Linux.&#160; This application contained a large number of calls to NtWaitForSingleObject and a smaller number of calls to NtWaitForMultipleObject.&#160; </p> <p>Now anybody who has had to port code containing more than a few instances of these particular Win32 APIs, or their close cousins WaitForSingleObjectEx, MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx, etc. to Unix or GNU/Linux is probably already shuddering with the recollection of long arduous days and nights of trial and error coding to try and correctly mimic the semantics and functionality of these particular Microsoft Windows specific APIs, but for the reader who has not yet had to attempt to port such an application, this post and my next post may help you save your sanity (and possibly your hair!) sometime in the future.</p> <p>By the way, both of these APIs are marked deprecated in MSDN by Microsoft but still work as expected in Windows NT and Windows XP.&#160; I am not sure about Windows Vista or Windows 7 as I have not tested them on these operating systems.&#160; The two deprecated APIs have been replaced by the equivalant APIs WaitForSingleObject and WaitForMultipleObject respectively.&#160; For the remainder of this post I shall just discuss the replacement APIs but most of what I say will be valid for either the deprecated or the replacement API.</p> <p>On first examination WaitForSingleObject seems fairly benign.&#160; The description in MSDN states that &#8220;This function returns when the specified object is in the signaled state or when the time-out interval elapses&#8221;.&#160; Sounds like a fairly simple and innocuous API, right?&#160; Maybe something similar to the POSIX.1 API pthread_cond_timedwait.&#160; Well, you are dead wrong and this post and the following will explain why.</p> <p>WaitForSingleObject and its cousins can wait for a signal from any or all of the following &#8220;objects&#8221;: change notification, console input, event, job, memory resource notification, mutex, process, semaphore, thread and waitable timer and in limited circumstances on files and file I/O.&#160; When appropriately signaled, a thread is unblocked and continues.&#160; No published standardized API in the GNU/Linux or Unix world comes come to handling this range of objects in a single API.</p> <p>This is probably the one single area where a Win32 API is better designed than the GNU/Linux or Unix API set.&#160; In GNU/Linux and Unix there are specific APIs to wait for different kinds of events: ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2009/04/porting-waitforsingleobject-to-gnulinux.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More on PowerShell</title>
		<link>http://blog.fpmurphy.com/2008/12/more-on-powershell.html</link>
		<comments>http://blog.fpmurphy.com/2008/12/more-on-powershell.html#comments</comments>
		<pubDate>Fri, 19 Dec 2008 10:38:00 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[CTP2]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/2008/12/more-on-powershell.html</guid>
		<description><![CDATA[<p>Microsoft&#8217;s PowerShell is radically different than shells on UNIX or GNU Linux systems in that Powershell can deal in objects rather than just plain text.</p> <p>A concrete example may help you more quickly understand the difference.&#160; Suppose you want to get and save information about all the files in a certain subdirectory. &#160;&#160;We want to get not only the names of the files but as much metadata as possible relating to each file such as date of creation, date of modification, etc.&#160;&#160;This information also needs to be stored in a single XML document.&#160;&#160;To keep the size of this post manageable, our subdirectory contains only two files, i.e. file.xml and file.xsl, as shown below. </p> <p></p> <p>On a UNIX or GNU Linux system, this would be a somewhat difficult task to quickly accomplish.&#160;&#160;Using Powershell, however, it becomes a simple one or two line task.</p> <p>Because Powershell is fundamentally object-orientated, it regards a filesystem as being an object representated as a location exposed by provider.&#160;&#160;More generally, a location can be a file directory, a registry hive, a certificate store or some other &#8220;thing&#8221; exposed by a provider.&#160;&#160;The Powershell get-childItem cmdLet is used to retrieve information, including metadata, about items in a specified location.&#160;&#160;Thus get-childItem can be used for a lot of different types of operations including enumerating directory contents, listing registry values or showing the current values of variables.&#160;&#160;For our purposes, get-childItem exposes information about files in a specified subdirectory or the current directory if no directory is specified.</p> <p>Here is a single line Powershell script which does what we want to do.&#160;&#160; It retrieves metadata about the two files in the current directory using the get-childItem cmdLet, pipes that data to a cmdLet called ConvertTo-XML which in turn converts the metadata into a valid XML document.&#160;&#160;The save method is then used to write this stream out to a file called file.out in the current directory. (get-childItem &#124; ConvertTo-XML -NoTypeInformation).save("$(convert-path "X:")\file.out") <p>Alternatively, we could store the retrieved metadata in a variable and then write it out to a file as shown below.&#160;&#160;Similar to bash and ksh93, Powershell supports the concept of aliases and defines ls as one of the aliases for the get-childItem cmdLet,dir and gci being the other two. $a=(ls &#124; ConvertTo-XML) $a.save("$(convert-path "X:")\file.out") <p>Here is the contents of file.out.&#160;&#160;As you can see, quite a bit of information about each of the two files is exposed. &#60;?xml version=&#34;1.0&#34;?&#62; &#60;Objects&#62; &#60;Object Type=&#34;System.IO.FileInfo&#34;&#62; ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2008/12/more-on-powershell.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista Snipping Tool Rant</title>
		<link>http://blog.fpmurphy.com/2008/12/vista-snipping-tool-rant.html</link>
		<comments>http://blog.fpmurphy.com/2008/12/vista-snipping-tool-rant.html#comments</comments>
		<pubDate>Sat, 06 Dec 2008 02:22:00 +0000</pubDate>
		<dc:creator>fpmurphy</dc:creator>
				<category><![CDATA[Snipping Tool]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fpmurphy.com/2008/12/vista-snipping-tool-rant.html</guid>
		<description><![CDATA[<p>My version of Microsoft Windows Vista comes with a screen capture tool called the Snipping Tool.&#160; It is a very useful tool which I often use.&#160; With this tool you can capture a screen shot (snip) of any part of your screen and save it to the clipboard or to a file in a number of formats (HTML, PNG, GIF, or JPEG).&#160; Available snip types include free-form, rectangular, window or full-screen.</p> <p>One day last week the Snipping Tool suddenly stopped allowing me to save a snip to a file.&#160; No error messages or message of any kind.&#160; Pressing the Save option simply did not nothing.&#160; The warning message about saving a unsaved snip still appeared when exiting the Snipping Tool but did not allow me to save the snip.</p> <p>After some research I stumbled across the answer.&#160; It turns out that I had deleted the Pictures folder in my user folder as part of a cleanup of my folders.&#160; I never use that folder so I naively assumed that I could delete it.&#038;nbsp However if you delete that folder, the Snipping Tool does not display a Save File dialog box.&#160; Note that the Snipping Tool does not force you to save a snip in your Pictures folder but does require you to have the folder!&#160; You can save the snip anywhere you like provided you have the right permissions.</p> <p>What a poor user interface design! As part of Vista QA did nobody test this scenario?&#160; If it was a deliberate design decision to require the Pictures folder, why not display a dialog box warning the user that the folder is missing and is required?</p> ]]></description>
		<wfw:commentRss>http://blog.fpmurphy.com/2008/12/vista-snipping-tool-rant.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

