<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>deepdark.net - James Green's Blog</title>
  <link rel="alternate" type="text/html" href="http://deepdark.net/" />
  <link rel="self" href="http://deepdark.net/SyndicationService.asmx/GetAtom" />
  <logo>http://deepdark.net/files/deepdark.jpg</logo>
  <icon>favicon.ico</icon>
  <updated>2008-09-17T21:39:12.2240096+10:00</updated>
  <author>
    <name>James Green</name>
  </author>
  <subtitle>.NET, SQL Server and *.*</subtitle>
  <id>http://deepdark.net/</id>
  <generator uri="http://dasblog.info/" version="2.3.9074.18820">DasBlog</generator>
  <entry>
    <title>Google "LCB" taking their mobile experience up a notch... again!</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,1184a862-7125-4e66-b0eb-896ca2a1741f.aspx" />
    <id>http://deepdark.net/PermaLink,guid,1184a862-7125-4e66-b0eb-896ca2a1741f.aspx</id>
    <published>2008-09-17T21:39:12.2240096+10:00</published>
    <updated>2008-09-17T21:39:12.2240096+10:00</updated>
    <category term="Mobile" label="Mobile" scheme="http://deepdark.net/CategoryView,category,Mobile.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm quite a fan of Google, and I have just had yet another unit of joy from them:
</p>
        <p>
Earlier this year Google <a href="http://www.google.com/m/lcb">put together a new
mobile version of their search site called Google LCB</a>.  The L in LCB
seems to be Location, but there isn't much of substance around the web on what the
acronym really means.  Who cares!  It's the concept that matters.
</p>
        <p>
          <strong>So why is it good?</strong>
        </p>
        <p>
As can be seen in <a href="http://www.boygeniusreport.com/2008/03/24/new-hidden-google-mobile-service-revealed/">some
of the screen shots around the web</a>, users get to save a couple of locations in
a list, and then drill through various categories of content to find what they want,
including a distance estimate.  The key thing is you do this without typing on
your keypad!  This makes it very quick to navigate.
</p>
        <p>
I've made it my new home page on my N73!
</p>
        <p>
Other Google services I can't live without on my phone are:
</p>
        <ul>
          <li>
            <a href="http://www.google.com/m?site=local&amp;source=mobileproducts&amp;hl=en">Google
Maps - the S60 app version</a>, although the <a href="http://www.google.com/m?site=local&amp;source=mobileproducts&amp;hl=en">Maps
Mobile Web Site is quite good at a pinch</a></li>
          <li>
The <a href="http://www.google.com/intl/en/mobile/default/mail/index.html">Google
Apps for Domains Mail / GMail Mobile Web Site</a> is very good, however <a href="http://www.google.com/intl/en/mobile/default/mail/index.html">the
S60 App version</a> only works for GMail not Google Apps for Domains Mail</li>
        </ul>
        <p>
This is made all the more exciting with the news that the first ever phone using <a href="http://code.google.com/android/">Google
Linux-based phone OS - "Android"</a> is about to hit the market.
</p>
        <p>
Now all we need is mobile data plans that are a tad more reasonable on the hip pocket!
</p>
      </div>
    </content>
  </entry>
  <entry>
    <title>Kick the Yahoo7 habit</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,f8ae03bc-5434-40ab-92b2-fce1c46b1fe0.aspx" />
    <id>http://deepdark.net/PermaLink,guid,f8ae03bc-5434-40ab-92b2-fce1c46b1fe0.aspx</id>
    <published>2008-07-13T22:35:34.3847936+10:00</published>
    <updated>2008-07-13T22:35:34.3847936+10:00</updated>
    <category term="Funnies" label="Funnies" scheme="http://deepdark.net/CategoryView,category,Funnies.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Is it just me?   Or does the new <a href="http://au.yahoo.com/">Yahoo!7</a> search
bar look like a cigarette?<br /><br /><img src="http://deepdark.net/content/binary/yahoo-7-cigarette.jpg" style="border: thin solid rgb(0, 0, 0);" border="0" /><br /><br />
Not convinced?  The search bar at <a href="http://cm.au.my.yahoo.com/">My Yahoo!7</a> is
even less subtle:<br /><br /><img src="http://deepdark.net/content/binary/my-yahoo7-cigarette.jpg" style="border: thin solid rgb(0, 0, 0);" border="0" /><br /><br />
Don't worry, I'm not one of those smokers who tries to quit and then sees cigarettes
everywhere... I'm not even a smoker.  It just struck me as an odd choice for
a visual motif.<br /><br />
...and it's not even the oh-so-cool, <a href="http://www.imdb.com/title/tt0054698/"><i>Breakfast
at Tiffany's</i></a> kind of cigarette.  Google would be the Audrey Hepburn of
search cigarettes.  Yahoo7 are more the <a href="http://en.wikipedia.org/wiki/Denny_Crane">Danny
Crane</a> of search.<br /></div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 Professional vs. Standard edition.  Just what are the differences?  Is it Features?</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx" />
    <id>http://deepdark.net/PermaLink,guid,9100f681-876b-4221-8ea9-eb7dc972be8d.aspx</id>
    <published>2008-05-20T22:56:04.9811232+10:00</published>
    <updated>2008-05-20T22:56:04.9811232+10:00</updated>
    <category term="Geeking Out!" label="Geeking Out!" scheme="http://deepdark.net/CategoryView,category,GeekingOut.aspx" />
    <category term="Microsoft.NET" label="Microsoft.NET" scheme="http://deepdark.net/CategoryView,category,MicrosoftNET.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Today at <a href="http://www.microsoft.com/australia/remix08/index.aspx">REMiX
'08 Sydney</a> (<a href="http://www.visitmix.com/">Also see VisitMIX</a>) along with
a good show and a grand feed, attendees also got a copy of <a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio">Expression
Studio 2</a>.  After seeing it in action I'm quite looking forward to taking
it around the block.  I never quite got into [Macromedia|Adobe]Flash, and am
quietly hoping Silverlight can find a spot next to it in the web ecosystem.<br /><br />
First thing I did when I got home was install Expression Studio, I got a little curious
to find that there is a Visual Studio 2008 Standard disk in the box.  It got
me to wonder what really is the difference between VS Pro which I am using at the
moment and VS Standard?<br /><br />
I can't remember the product comparison pages for any version of Visual Studio on
MSDN ever being completely illuminating.  <a href="http://msdn.microsoft.com/en-us/vs2008/products/cc149003.aspx">The
2008 version is about as good as it gets it seems</a>.  
<br /><br />
The one that I am most interested in somehow is down the end of the list:  the
inclusion of the Unit Testing features in VSPro 2008, when it was only included in
Team System versions of VS 2005.  Here is a slightly abridged summary of the
other features included in VS Professional that you do not get in VS Standard:<br /><br />
Debugging Tools:<br /><ul><li>
Attach to Remote Process</li><li>
SQL-CLR Debugging</li><li>
XSLT Debugger 
</li><li>
T-SQL Debugging 
</li></ul>
Data Tools:<br /><ul><li>
Database Projects</li><li>
SQL Server Projects</li><li>
Server Explorer</li></ul>
Reporting: 
<br /><ul><li>
Crystal Reports Application &amp; Crystal Reports for Visual Studio</li></ul>
Office development:<br /><ul><li>
VSTO for Office 2003 and Office 2007</li><li>
Sharepoint 2007 State Machine workflow template<br /></li></ul>
Smart Device Development:<br /><ul><li>
Device Emulator</li><li>
Project Templates</li><li>
Debugging Tools</li></ul><br /><br /><b>...but surely this can't be it?</b><br /><br />
It's not.  Well, this <i>is</i> the story if you are comparing VS Pro and VS
Standard alone, but there is one other thing to consider:<br /><ol><li>
In my timezone, the <a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V6262-Microsoft-Visual-Studio-2008-Standard-Edition-Complete-package-1-user-DVD-Win-English/detail.hts">full
boxed retail VS Standard</a> is less than half the price of <a href="http://www.ht.com.au/N/0/keyword/visual+studio/part/V4896-Microsoft-Visual-Studio-2008-Professional-Edition-Complete-package-1-user-DVD-Win-English/detail.hts">the
equiv. VS Professional</a>... but;<br /></li><li>
You can't get <a href="http://msdn.microsoft.com/en-us/subscriptions/aa718657.aspx">an
MSDN Subscription</a> including VS Standard.  They are only available with Professional
and above, and imho the licensing benefits of MSDN for developers is well worth the
look.<br /></li></ol>
So there you have it.  If an MSDN Subscription is on your radar, enjoy using
VS Pro.  If it is not, and you can live without the above listed features, well
maybe there is no need to spend more than you have to.<br /><p></p></div>
    </content>
  </entry>
  <entry>
    <title>Where is my Sharepoint Database</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,00b69016-f771-4a72-91d6-b9aadf6c1361.aspx" />
    <id>http://deepdark.net/PermaLink,guid,00b69016-f771-4a72-91d6-b9aadf6c1361.aspx</id>
    <published>2008-05-05T00:19:32.72+10:00</published>
    <updated>2008-05-05T00:22:55.8621408+10:00</updated>
    <category term="Sharepoint" label="Sharepoint" scheme="http://deepdark.net/CategoryView,category,Sharepoint.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I recieved the following question yesterday,
and I have had it before, so I decided to blog the answer.<br /><i><br /><font color="#000080">Hiya James<br /><br />
I am not sure if you would be willing to help answer a question on sharepoint?<br /><br />
Sounds really stupid but just using MOSS and I have not had to deal with any SQL database
... so where 
<br /><br />
can I actually view it or find it?<br /><br />
Thank you<br /><br />
Ray</font></i><br /><br /><br />
First up, it's far from a stupid question!  especially is Windows Internal Database
(a.k.a SQLEE is used).  Let me explain:<br /><br />
So, there are a couple of choices for setting up the database:<br /><br /><b>1. Windows Internal Database</b><br /><br />
It is really easy to set the system up with this option, and frankly, I don't like
it for my systems.  The reason I don't like it is because it splits my DR plan.
 <br /><br />
For every other application I have a nice unified backup &amp; recovery strategy in
SQL Server Management Studio.  Using WIDB for Sharepoint introduces exceptions
to the rule, and from my experience, the systems with the most moving parts are the
ones that are most likely to fail under pressure, and DR can have pressure! 
Of course YMMV.<br /><br />
What is Windows Internal Database?  It is an instance of SQL Server Express configured
to be accessed only by services over named pipes, although it is possible to connect
to it with SQLCMD or Management Studio Express.  It works just as well as SQL
Express, but I feel like I am never fully in control of it.<br /><br />
If you are using SQLEE for your Sharepoint installation and you want to have a look
at the database, I'd suggest the following:<br /><ol><li>
Backup your Sharepoint instance using Central Administration</li><li>
Setup a test instance of Sharepoint using SQL Express</li><li>
Restore your Sharepoint backup into your new test instance</li><li>
Use Management Studio to work on your new test database<br /></li></ol><br /><b>2. Using "real" SQL Server.  </b><br /><br />
This is a much easier case.  Log into the Sharepoint Central Admin section and
view the content database settings.  That will give you the server &amp; database
names that you can connect to with Management Studio.  (please work on a copy,
not the production database)<br /><br /><b>...but...</b><br /><br />
...is it wise to get hands-on with the MOSS/WSS database?<br /><br />
Well yes, for general curiosity to see how the Sharepoint team decided to implement
a system where entities can be so customizable, there is some good, subtle design
to learn from.<br /><br />
However for reporting and other fiddling, I'd suggest not.  Once you see the
tables I think you will agree that it was not a design goal for the developer community
to be accessing them directly.<br /><br />
A good alternative would be learning some CAML or the Object Model first and see if
you can leverage that.  Those ways to access the data abstract out the complexity
of the physical database and are quite user friendly.<br /><br /><b>How to setup Sharepoint to use SQL Express rather than SQLEE/WIDB?</b><br /><br />
It is easy and <font color="#ff0000">free </font>to set up a testing environment for
Sharepoint:<br /><br />
All you need to do is download the following:<br /><ul><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B6E99D4C-A40E-4FD2-A0F7-32212B520F50&amp;displaylang=en">Windows
Server 2008 Standard Trial</a></li><li><a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx">Virtual
PC</a></li><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef93e453-75f1-45df-8c6f-4565e8549c2a&amp;DisplayLang=en">WSS
3.0 (incl SP1)</a></li><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=05E0DD12-8394-402B-8936-A07FE8AFAFFD&amp;displaylang=en">WSS
SDK</a></li><li><a href="http://www.microsoft.com/express/sql/default.aspx">SQL Server Express Edition</a><br /></li></ul><br /><b>How to setup Sharepoint to use SQL Express rather than SQLEE/WIDB - Part II, The
Install...</b><br /><br />
When installing Sharepoint, choosing Basic/Stand Alone will leave you with a WIDB
install of Sharepoint.  To install a it with a "regular" SQL Server, or with
SQL Express, first choose Advanced from the installation wizard:<br /><p></p><br /><img src="http://deepdark.net/content/binary/sharepoint_advanced_setup.jpg" border="0" /><br /><br /><br />
When asked if you want to create a Web Front End server, or a Stand-alone install,
choose Web Front End - <b>even if it is your only server</b>:<br /><br /><img src="http://deepdark.net/content/binary/sharepoint_web_front_end.jpg" border="0" /><br /><br />
Continue the install and launch the Sharepoint Product and Technologies configuration
wizard.   Choose to create a new server farm.  Enter the database server
and database name settings into the wizard when prompted...<br /><br /><img src="http://deepdark.net/content/binary/sharepoint_new_server_farm.jpg" border="0" /><br /><br /><br />
Now you have configured Sharepoint to not use WIDB/SQLEE.<br /><br /><a href="http://deepdark.net/PermaLink,guid,1a093d04-9717-44ca-bf05-b99b0089a4c2.aspx">If
you have already installed SQLEE and now wish to remove it, please see my prior post
on uninstalling SQLEE</a>.<br /></div>
    </content>
  </entry>
  <entry>
    <title>Is it still a Googlewhack if it is a typo?</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,67c98b4b-198a-43d4-a3cd-d34cb4aee41c.aspx" />
    <id>http://deepdark.net/PermaLink,guid,67c98b4b-198a-43d4-a3cd-d34cb4aee41c.aspx</id>
    <published>2008-05-03T19:44:25.2663856+10:00</published>
    <updated>2008-05-03T19:44:25.2663856+10:00</updated>
    <category term="Language Nerd" label="Language Nerd" scheme="http://deepdark.net/CategoryView,category,LanguageNerd.aspx" />
    <category term="MLP" label="MLP" scheme="http://deepdark.net/CategoryView,category,MLP.aspx" />
    <category term="Sharepoint" label="Sharepoint" scheme="http://deepdark.net/CategoryView,category,Sharepoint.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I offer the following evidence: 
<br /><br /><p></p><img src="http://deepdark.net/content/binary/stsadmin-googlewhack.gif" border="1" /><br /><br /><br />
For those not familiar with the idea of a Googlewhack, <a href="http://www.urbandictionary.com/define.php?term=googlewack">Urban
Dictionary</a> explains it is:<br /><br /><b><i>a combination of two words that when searched through the popular search engine
"google" only give one result.</i></b><b><i><br /></i></b><br /><a href="http://en.wikipedia.org/wiki/Googlewhack">Wikipedia</a> goes into more depth,
yet is silent on the topic of spelling.<br /><br />
I argue that stsadmin, or it's correct form, <a href="http://technet.microsoft.com/en-us/library/cc261956.aspx">stsadm</a> are
not words, so can't be typos - and as such I'm claiming it!  :-)<br /></div>
    </content>
  </entry>
  <entry>
    <title>Free Sharepoint Master Page resources</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,c1272ca4-76bb-4e73-9d9e-8376e204fd3e.aspx" />
    <id>http://deepdark.net/PermaLink,guid,c1272ca4-76bb-4e73-9d9e-8376e204fd3e.aspx</id>
    <published>2008-04-25T16:56:26.4479488+10:00</published>
    <updated>2008-04-25T16:56:26.4479488+10:00</updated>
    <category term="MLP" label="MLP" scheme="http://deepdark.net/CategoryView,category,MLP.aspx" />
    <category term="Sharepoint" label="Sharepoint" scheme="http://deepdark.net/CategoryView,category,Sharepoint.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">This is just a quick note with some linkage
for anyone who is looking for an easy way to make Sharepoint look less like Sharepoint
;-)<br /><br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7c05ca44-869a-463b-84d7-57b053711a96&amp;DisplayLang=en">Some
sample master pages have been released and are available for download</a>.  
They are good examples for basing new master pages on, but also look good too!  
For <a href="http://blogs.msdn.com/sharepoint/archive/2007/04/17/20-sample-master-pages-for-the-fantastic-40-application-templates-for-wss-3-0.aspx">screen
shots see the post on the Sharepoint Product Group blog</a>.<br /><br />
I'm using the "Clarity" one now and like it<br /><br />
Also, check out the <a href="http://www.microsoft.com/sharepoint/templates.mspx">Templates
available at the MOSS site</a>.<br /><br /><font color="#808080" size="1"><b>Listening to:  ANZAC Day pipes and drums</b></font><br /><p></p></div>
    </content>
  </entry>
  <entry>
    <title>The var keyword (C# 3.0) - Nothing at all like VB6 Variant - It's not even a Type!</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx" />
    <id>http://deepdark.net/PermaLink,guid,5d5addad-0186-4e0d-a8ce-4da5400da852.aspx</id>
    <published>2008-04-01T21:25:00.417+10:00</published>
    <updated>2008-04-01T21:38:26.3363008+10:00</updated>
    <category term="C#" label="C#" scheme="http://deepdark.net/CategoryView,category,C.aspx" />
    <category term="C# 3.0" label="C# 3.0" scheme="http://deepdark.net/CategoryView,category,C30.aspx" />
    <category term="Geeking Out!" label="Geeking Out!" scheme="http://deepdark.net/CategoryView,category,GeekingOut.aspx" />
    <category term="Microsoft.NET" label="Microsoft.NET" scheme="http://deepdark.net/CategoryView,category,MicrosoftNET.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">This is the first in what I hope will become <a href="http://deepdark.net/CategoryView,category,C%23%2B3.0.aspx">a
series on the new language features in C# 3.0</a> used in <a href="http://msdn2.microsoft.com/en-us/library/w0x726c2.aspx">.NET
3.5</a> / <a href="http://msdn2.microsoft.com/en-us/vs2008/default.aspx">Visual Studio
2008</a>.<br /><br />
One thing I am not intending to cover is LINQ.  Just because the <a href="http://www.technorati.com/search/linq?authority=a4&amp;language=en">blogosphere
has been buzzing with LINQ</a> articles since the early days of <i>"Orcas"</i>. 
And with good reason I hasten to add!<br /><br /><b>Where I am starting is with the <font color="#000080" face="Courier New">var </font>keyword.</b><br /><br />
VB6 veterans will remember the <font color="#000080" face="Courier New">Variant </font>type. 
A <font color="#000080" face="Courier New">Variant </font>could contain anything,
even <font color="#000080" face="Courier New">Object</font>.  While this was <i>sort
of</i> useful, my memory of it is as a synonym for:  <i>I can't be bothered,
lets just stick it in a Variant and deal with it later</i>.<br /><br />
There was also a performance impact of using the special Variant type, they were large
in memory and have an overhead of extra runtime checking that added up; like when
assigned inside a loop for example.  They were also a special case in their un-assigned
form, taking on the value <font color="#000080" face="Courier New">Empty </font>(test
with <font color="#000080" face="Courier New">IsEmpty()</font>) vs <font color="#000080" face="Courier New">Nothing </font>(test
with <font color="#000080" face="Courier New">Is Nothing</font>).  
<br /><br />
So when I saw <font color="#000080" face="Courier New">var </font>added to C# I raised
my eyebrows in the way a Fed might, when the beagle sits quietly next to your suitcase
at the airport.<br /><br />
Most of the time you see it in the samples, it is used when returning an Anonymous
Type from a LINQ query.  And this is the clue!  <font color="#000080" face="Courier New">var </font>is
not itself a type, but instead <b>it is a signal to the compiler to infer the type
of an operation, and substitute in the required type</b>.  It does not even have
to be an Anonymous Type.  Consider the following simple example:<br /><br /><font face="Courier New"><font color="#000080">var </font>result = 10 / 2.0;<br /><font color="#0000ff"><font color="#000080">Console</font>.</font>WriteLine(result.ToString());<br /></font><br />
By the time this code is compiled, <font color="#000080" face="Courier New">var </font>is
replaced with <font color="#000080" face="Courier New">double</font>.  In fact,
the Intellisense on result will be correct for it being a <font color="#000080" face="Courier New">double</font>.<br /><br />
To confirm this, looking at those lines of the assembly in <a href="http://www.aisto.com/roeder/dotnet/">Lutz
Roder's Reflector</a> show the following after disassembly:<br /><br /><font face="Courier New"><font color="#000080">double </font>result = 5.0;<br /><font color="#000080">Console</font>.WriteLine(result.ToString());</font><br /><br />
OK, so var can be used independant of Anonymous Types, <b>but why would you want to
be <i>less </i>explicit in typing your variables?</b>  Consider the following
fictitious example:<br /><br /><font color="#000080" face="Courier New">DatabaseRequestService </font><font face="Courier New">req
= </font><font color="#000080" face="Courier New">DatabaseRequestService</font><font face="Courier New">.CreateFrom(value);</font><br /><br />
And compare it with the equivalent line using <font color="#000080" face="Courier New"><font color="#0000ff">var</font></font>: 
<br /><br /><font color="#000080" face="Courier New"><font color="#0000ff">var<font color="#000000"></font></font><font color="#000000">req
= </font>DatabaseRequestService</font><font face="Courier New">.CreateFrom(value);</font><br /><br />
Here, <b><font color="#000080" face="Courier New"><font color="#0000ff">var<font color="#000000"></font></font></font>leads
itself to much more readable syntax</b> with the same typing, Intellisense, and everything
else!<br /><br /><font color="#808080" size="1"><b>Listening To:  Róisín Murphy</b></font><br /><p></p></div>
    </content>
  </entry>
  <entry>
    <title>Three Simple Rules for (my) Tech Blogging</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,96d2db89-da8d-487f-aa7c-a47ecdefefd1.aspx" />
    <id>http://deepdark.net/PermaLink,guid,96d2db89-da8d-487f-aa7c-a47ecdefefd1.aspx</id>
    <published>2008-03-25T21:57:46.696+10:00</published>
    <updated>2008-03-25T21:58:59.010224+10:00</updated>
    <category term="META" label="META" scheme="http://deepdark.net/CategoryView,category,META.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I just wanted to add a note before my next
posting to acknowledge that I know this blog has been slow of late.<br /><br />
This isn't because I am bored of it or anything, but it does relate to my own personal
rules for blogging, and this might be a reasonable time to mention them :-)<br /><br /><b>Rule Zero:</b>  Keep it interesting.  Believe it or not, I try and keep
this blog interesting.<br /><br /><b>Rule One:</b> Don’t blog about blogging.  The blogosphere can be one huge
echo chamber at times.  If you must inform the world that someone else made a
great blog post, consider <a href="http://www.twitter.com/">Twitter</a>. 
<br /><br />
NB: When I do post linkage I put it in the MLP category, which owes its name to the <a href="http://www.kuro5hin.org/section/mlp">MLP
(a.k.a Mindless Link Propagation) section on the internet culture stalwart Kuro5hin</a> (i.e.  <i>“corrosion”</i>) 
<br /><br /><b>Rule Two:</b>  No proprietary information.  <font color="#000080"><b>This
is what I’m talking about today.</b></font><br /><br />
Recently, <a href="http://www.servessence.com/">I started a company</a>, and have
been working on some IP in the multitenant and SharePoint space.  These are really
interesting to me, but there has been a <strike>bit</strike>lot of business strategy
&amp; architecture stuff, and that has to stay internal.<br /><br />
Hope this makes sense, and I really welcome comments on this topic if anyone feels
like they have something to share.<br /><br /><font size="1"><b><font color="#808080">Listening To: Ani DiFranco, Canon</font></b></font><br /></div>
    </content>
  </entry>
  <entry>
    <title>Bringing Grep back using PowerShell</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx" />
    <id>http://deepdark.net/PermaLink,guid,0c131ef3-45e9-486a-934c-8b8fc4ee0236.aspx</id>
    <published>2008-03-05T22:25:19.216+10:00</published>
    <updated>2008-03-06T09:02:44.5610336+10:00</updated>
    <category term="Geeking Out!" label="Geeking Out!" scheme="http://deepdark.net/CategoryView,category,GeekingOut.aspx" />
    <category term="PowerShell" label="PowerShell" scheme="http://deepdark.net/CategoryView,category,PowerShell.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the things I miss from my Unix/Linux days is <a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?grep">Grep</a>. 
Previously I have tried things like <a href="http://cygwin.com/">Cygwin</a>,
but was never quite satisfied.  I am quite excited about <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">PowerShell</a> and am
always trying to get more PS&gt; in my life :-)
</p>
        <p>
I'm using Powershell almost daily to replace Grep.
</p>
        <p>
To start, this is all based on the <a href="http://technet.microsoft.com/en-us/library/bb978664.aspx">Get-ChildItem</a> cmdlet. 
The best way to think about <font face="Courier New" color="#000080">Get-ChildItem</font> is
it does what the <font face="Courier New"><font color="#000080">Dir</font></font>command did
in DOS.  One important difference is it is not just for files, and can be used
to return all items in a location - and it is up to each provider to decide what a
location &amp; item means to it!
</p>
        <p>
For the PowerShell n00bie, you can just use <font face="Courier New" color="#000080">cd</font> around
the filesystem and when you type <font face="Courier New" color="#000080">dir</font>,
you are really running <font face="Courier New" color="#000080">Get-ChildItem</font>. 
In fact when you type <font face="Courier New" color="#000080">cd</font> you are really
running <font face="Courier New" color="#000080">Set-Location</font>.  For a
full list of aliases for common commands, run <a href="http://technet.microsoft.com/en-us/library/bb978751.aspx">Get-Alias</a>.
</p>
        <p>
          <strong>To search in file names:</strong>
        </p>
        <p>
The following command searches <em>for</em> .aspx &amp; .ascx files in the current
directory that have the word "metro" in the filename.
</p>
        <p>
          <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Include *metro*.as?x</font>
        </p>
        <p>
          <strong>To search inside text files:</strong>
        </p>
        <p>
The following command searches <em>inside</em> .aspx &amp; .ascx files in every
subdirectory that have the word "metro" in the filename, and has the word "train"
inside the file.
</p>
        <p>
          <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Recurse -Include *metro*.as?x
| Select-String -Pattern train </font>
        </p>
        <p>
You are also able to add the <font face="Courier New" color="#000080">-CaseSensitive</font> parameter
to the end of the <font face="Courier New" color="#000080">Select-String</font> command,
by default it will search case insensitive.<br /></p>
        <p>
          <strong>NB</strong>:  I have used the full names of the parameters of the commands. 
This may look clunky, but:
</p>
        <ol>
          <li>
I wanted the examples to be clear, because this is a blog :-) 
</li>
          <li>
The Tab-Completion feature works for parameter names so they are not hard to type 
</li>
          <li>
You can use the smallest number of letters that identify a parameter.  For example,
if a cmdlet accepts a <font face="Courier New" color="#000080">-Recurse</font> and
a <font face="Courier New" color="#000080">-Record</font> param, you would only need
to use <font face="Courier New"><font color="#000080">-Rec<em>u</em></font></font> and <font face="Courier New"><font color="#000080">-Rec<em>o</em></font></font> respectively.</li>
        </ol>
        <p>
          <strong>
            <font color="#ff0000">Update</font>
          </strong>: A lot of parameters accept an
array as input.  The syntax for listing these is as a comma seperated list.
</p>
        <p>
An example where this applies to our example is searching through multiple file types,
i.e. .aspx and .cs.
</p>
        <p>
The following example searches both .aspx/.ascx files and .cs files with the word
"metro" in the filename.
</p>
        <font face="Courier New" color="#000080">PS &gt; Get-ChildItem -Recurse -Include *metro*.as?x,*metro*.cs </font>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To:  Wicket Beat Sound System,
Inner Styles</font>
          </strong>
        </p>
      </div>
    </content>
  </entry>
  <entry>
    <title>iTunes messages not getting any better despite constant updates!</title>
    <link rel="alternate" type="text/html" href="http://deepdark.net/PermaLink,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx" />
    <id>http://deepdark.net/PermaLink,guid,e754a53a-21cc-4f2d-918a-6f6c16f5ab84.aspx</id>
    <published>2008-02-15T12:57:52.5359024+10:00</published>
    <updated>2008-02-15T12:57:52.5359024+10:00</updated>
    <category term="Geeking Out!" label="Geeking Out!" scheme="http://deepdark.net/CategoryView,category,GeekingOut.aspx" />
    <category term="UX" label="UX" scheme="http://deepdark.net/CategoryView,category,UX.aspx" />
    <author>
      <name>James Green</name>
    </author>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Out of the blue I got this message from iTunes today:
</p>
        <p>
          <img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod.jpg" border="0" />
        </p>
        <p>
iTunes has detected an iPod in recovery mode.  You must restore this iPod before
it can be used with iTunes.
</p>
        <p>
Fair enough, foo happens, life goes on.  Or so I thought.  When you restore
your iPod and reboot it, the same message comes back!  Over and over.
</p>
        <p>
The solution, it turns out according to the collective wisdom of the blogs, is to
change the drive letter of your iPod in Computer Manager.
</p>
        <p>
          <img src="http://deepdark.net/content/binary/itunes_has_detected_an_ipod-fixed.jpg" border="0" />
        </p>
        <p>
Mine had, for reasons not yet understood, changed from J: to H: - which was in use
as a network-mapped home drive.  This conflict was being reported in iTunes as
an iPod in Recovery Mode.
</p>
        <p>
It seems like all I do these days is download iTunes updates, and the messages are
not getting any better when it goes belly-up.
</p>
        <p>
Apple, this is turning into a one way relationship!
</p>
        <p>
          <strong>
            <font color="#808080" size="1">Listening To:  Zephyr Timbre, Absrtakt
Fusion</font>
          </strong>
        </p>
      </div>
    </content>
  </entry>
</feed>