Welcome to TechNet Blogs Sign in | Join | Help

“ThriveLive! Online IT Professional Virtualization Tour

My colleagues from the other side of the Atlantic  Dan Stolts, Blain Barton, Yung Chou and John Baker have lined up a a set of on-line sessions on virtualization aimed at IT Professionals.  
They will go from the desktop to the enterprise, Covering VHD native boot , Windows XP mode, Windows Server 2008 R2 Hyper-V™, and  System Center Virtual Machine Manager (SCVMM).

When : Thursday, December 10, 2009 8:00 AM – 12:00 PM Pacific Time (US & Canada)  / 4PM-8PM (UK)  Register here.  I tend to drop into these things from home, and listen to the sessions which interest me as the clock shifts from working day to early evening.

Here’s the full Agenda.

clip_image002

Dan Stolts: on VHD Native Boot We’ll kick off the afternoon by exploring VHD Native Boot, which is a new feature for Windows 7 and Windows Server 2008 R2. VHD Native Boot can be used as the running operating system on designated hardware – without a parent operating system, virtual machine, or hypervisor. This is one of the best virtualization features to date for technology professionals of every kind – from enterprise to small and medium-size business pros and consultants

clip_image003

Blain Barton on Windows XP Mode

With Windows XP Mode, it’s easy to install and run multiple Windows XP productivity applications directly from your Windows 7-based PC. Do you have application compatibility issues? Windows XP Mode can ease those compatibility headaches, because it gives you the best of both worlds. You can easily run older Windows XP business software – including web applications that require an old version of Internet Explorer® – while taking advantage of the many benefits of your Windows 7 desktop. This is a can’t-miss session for IT pros who juggle both new and established software and web applications.

clip_image004

Yung Chou on Windows Server 2008 R2 Hyper-V
It’s time to focus on enterprise with an overview of Windows Server 2008 R2 Hyper-V. In this session, we’ll look at how to create virtual machines in Hyper-V and demonstrate how the snapshot feature can easily revert the virtual machine to a previous state. You’ll come away from this session with a sold understanding of all the capabilities and new features in Windows Server 2008 R2 Hyper-V.

clip_image005

John Baker on System Center Virtual Machine Manager
Finally, no virtualization discussion is complete without a conversation about management. When it comes to managing virtual infrastructures, System Center Virtual Machine Manager 2008 (SCVMM) is the best of the best. This member of the System Center family of system management products provides a straightforward, cost-effective solution for unified management of physical and virtual machines



Posted by jamesone | 0 Comments
Filed under: ,

Saving the world, and your sanity, one gadget at a time.

image

For as long as we have been talking about “Green IT” I’ve thought the opportunity to save carbon emissions by using IT to reduce travel was far greater than the opportunity to reduce the carbon emissions of IT itself. That’s not an excuse for leaving your monitor on or not using the Power saving features of Windows 7 (and Vista) or Server 2008-R2, but a recognition that the savings that be made by reducing the amount we fly or drive to where we do business – and maintaining less office space when we get there are greater than the savings that would be made if we turned all the IT off.

As a high tech company you’d expect Microsoft to be further down the track of using this technology than most doubly so as we produce some of the technology which makes it possible. While I was at tech-ed in Berlin we had an “environment day” where web-cams were handed out for all who wanted them. We already try encourage flexible working – in my old role in consulting things couldn’t be all that flexible, but in evangelism I work from home a day or two most weeks. I’m more productive without the hubbub of the office, and cutting out the journey doesn’t just save carbon. I get between 40 minutes and an hour back at each end of the day when it is of most value to me.

We have a web page about what Microsoft UK is doing environmentally , everything setting a ceiling on the C02 emissions allowed for new company cars and lowering it each year, to a “proximity printing” system which cuts down the amount left unclaimed on printers and which is credited with saving us 50,000 sheets of paper per month  Think of it as a tree a week.

I picked up the web cam on when I got back from Berlin. I don’t do many video calls – I find our RoundTable video conferencing useful because I can see a group (and it seems rude not to let them see me), but 40 odd years of using the phone has proved to me that 1:1 doesn’t need video calling, so I don’t now how much use it will get It’s a Life-Cam show , and it has a clever way mounting on a stand, laptop lid or monitor. Both front and back have the socket part of a ball and socket joint and then the stand and clip provided have the ball part, which is magnetic. The joint means the camera angle can be adjusted easily, and if you need to attach to anything else the “ball” part of the is provided separately with a self adhesive backing. Image quality seems pretty decent even in low light– it has a 2MP sensor which it samples down to 800x600 for moving pictures, and up to 8MP for stills. Sadly it doesn’t seem to support WIA, and given what I’ve just said about the environment, our packaging police could find ways to reduce the packaging. Fortunately the packing includes a case so the lens doesn’t get scratched to bits in a laptop bag. It comes with a CD and it tells says install the software first. This is where Windows 7 gets clever. 

image

Oh darn – it knows this software won’t work – quite rare for Vista software not to work on 7 and knowing what will fail is quite clever in itself, but not new – Vista did that. But I don’t remember Vista ever offering the next step - knowing the signature of things which don’t work you can check in a database and see if a fix has been logged and guide the user to it. Like this.

image

 

And Hey presto everything is installed. Since I don’t use Windows Live messenger – only office communicator, I dug out the details of how to make the button on the camera activate communicator. Now lets see how much use it gets....

 Update. I pasted in the wrong link for "how to activate communicator"  - thanks to David for pointing that out.



Making word clouds (Part 2: how to use it , and clouds from twitter).

Attached to this post is a Zip file containing Twitter.ps1 the PowerShell script I use to get information from Twitter, and since the word cloud work grew out of that it has ended up in the same file.  It also contains noise.dat the list of noise words which you can customize.

If you want to use it you will need to have PowerShell V2 installed – if you are on Windows 7 or Server 2008-R2 you have it already, otherwise you need look up KB968929 and  you can download WINRM and PowerShell 2.0 for anything back to Windows XP. The code has been tried on the Beta of office 2010 and on office 2007 and should work with PowerPoint from earlier versions but hasn’t been tested.

Click for a larger versionThe first thing you need to do is to load it , any version of Windows form Vista onwards flags files which have been downloaded from the internet and PowerShell can be a bit fussy about those. I suggest that you when you have downloaded the ZIP file you right click it go to properties and click Unblock on the general page before you extract the files. Once you have extracted the files start PowerShell and you need to enter two commands 
CD [folder where you extracted the files]  

. .\twitter.ps1

note that is Dot, space, dot backslash twitter.ps1:  it won’t work without the dots.

I have included a sample file, Macbeth.txt to get you started, it is the text of… the Scottish play. So you can now type the command

Format-wordCloud Macbeth.txt

Click for a larger version PowerPoint should start in the background and it will put together your first word cloud. The text for this will be all horizontal, all default colours and fonts and all words and no phrases. The biggest text will be 80 point and the smallest 16 – if your example turns out like the first one of mine you can see that we might want to change the –maxfont and –minfont settings or the –howmany parameter to fill the space better. When it finishes the function gives a fill percentage – that is: the total space occupied by the words as a proportion of the slide area. Mine came out at just under 50% , and experience tells me not to expect more than 75% so I might increase the font size to –maxfont 100 –minfont 20 as there are plenty of words - I don't want to fill the space with more words.

It’s not bad for a first attempt , but it has my, our, your,his, me , him , us and No too prominently, these can be taken out with the –extraNoisewords parameter,like this:

Format-wordCloud macbeth.txt -ExtraNoiseWords  my, our, your,his, me , him, us, no

We can introduce some colours – if you enter the this command it will show you what the colour selections are

$RGBSet

The colours numbers are Red + 256 * Green + 65536 * Blue , so the default is 4 black, 1 red, 1 green , 1 blue.
In addition we can make about 25% of the words appear vertical, and use a font which looks right for Shakespeare

Format-wordCloud macbeth.txt -ExtraNoiseWords  my, our, your,his, me , him -RandomVertical 0.25 -RgbSet $rgbset -fontName "Blackadder ITC"

Click for a larger version The final thing to try might be to look something on twitter. It takes several seconds to run a twitter search for the last 1500 posts (that’s the –Deep switch) so it is better to store the result, in case you want to run with a different set of parameters so let’s see what is in showing up in the F1 world today, first get the tweets , the put just their titles into the cloud.

$searchResults = Get-TwitterSearch "F1" –deep

$searchResults | Foreach {$_.title} | Format-wordCloud -phrases -RandomVertical 0.25 -RgbSet $rgbset –uniqueLines –maxfont 60

The -uniqueLines switch is there for something which I have mentioned before – the tendency of people to retweet an identical post many times – you can spot this happening when a long phrase becomes very prominent, which is often the case if a couple of news stories dominate a search, even with this in you can a few stories are repeated in slightly different forms.

I can’t show everything here. Obviously you can do a lot once the slide is created in PowerPoint: one favourite trick is to do select all and set the animation for every bit of text to Appear 0.1 second after previous.  I tweaked the colours and layout for the F1 tweets from twitter in PowerPoint as well. I haven’t shown –randomtwist (the value is the maximum angle of twist in degrees), but that needs a lot more fiddling after the layout is done. Nor have I shown -randombold or -randomItalic which work just like random vertical – (phrases are always in italic). No two layouts which use any of the Random parameters will be identical, and sometimes it is worth running the format again with the –useExisting switch(and no filename –text or piped data) to see if you a second one looks better than the first.

You can export $words to a csv file with $words | export.csv –path MyWords.csv , and modify it in excel or use it as a template for your own text. If you do you’ll notice there is a URL column – you can assign links to the text if you want to. Once you have the text you want as a CSV file you can reimport it with $words = import-CSV MyWords.csv and run format-wordcloud with the –useExisting switch

As you can see there’s lots to play with. PowerShell seems quite happy to process very large amounts of text – I got the text of War and Peace and it took a while to process the words but it worked just fine. So try your own text and combinations of settings.  But let me stress the disclaimer that covers everything here – it is provided "AS IS" with no warranties, and confers no rights.



Posted by jamesone | 0 Comments
Attachment(s): Word-Clouds.zip

Making Word clouds (Part 1: how it works).

I’ve been playing with word clouds on and off for the last couple of months, and finally I’ve decided the time has come to share what I have been doing. 

Word clouds turn up in all sorts of places, and I wanted to produce something which could take any text, be customized, and let me edit the the final version. The last requirement was key, because anything which produces a bitmap graphic at the end is not going to be easy to edit. I’ve seen it done with HTML tables but they are hard redesign (You can’t move words round easily). So it needed to be something like Visio or PowerPoint, or WMF which can produce a drawing containing text. Eventually I settled on PowerPoint. Although I’m using the beta of Office 2010 it relies on an object model for PowerPoint which hasn’t changed for several versions. And, since I only seem to program in PowerShell these days I wrote it in PowerShell. This gives me an easy way of taking any text – like Tweets from Twitter – and pushing it into a cloud. So I wrote my longest single PowerShell function yet to do the job.

wordCloud

  1. If Not already connected to PowerPoint, get connected. Start a new, blank, slide
  2. Get a list of “Noise words” from a file (I used a copy of the Noise.dat, which is part of Windows Search, as a starting point) and merge that list with any passed via the -ExtraNoiseWords parameter.
  3. Take text from a file (specified by the –Filename Parameter) , a PowerShell variable or expression (specified by the –text parameter) or from the pipeline in PowerShell, and  produce a “clean” set of words by:
    1. Removing anything which is not a space, letter, digit or apostrophe from the text.
    2. Removing `s at the end of words, and convert “_” to space.
    3. Splitting the text at spaces.
    4. Removing “words” which are either URLs or numbers .
  4. Count the occurrences of the words , and determine the “cut-off” frequency which words must meet to get into the final cloud (a -HowMany parameter sets the number of words, if this is the default value of 150 and the 150th non-noise word occurs 10 times, accept all words with 10 occurrences, even if that gives 160 non-noise words )
  5. if the –phrases switch is specified:
    1. Find phrases which contain any of the words which meet the cut-off frequency.
    2. Ignore those phrases which don’t make the cut-off frequency.
    3. Repeat the process looking for longer phrases which contain the phrases which were just found. Keep repeating until no phrases are found which meet the cut-off frequency.
    4. Add the phrases to the list of found words and reduce the count of their constituent words.
  6. Remove noise words, and two word phrases where one is a noise word, and words which do not reach the cut-off frequency, sort the list of words by frequency and then number of letters
  7. Store the words in a global variable ($words) so that the function can be re-run with the ‑useExisting switch. $words can be reviewed or exported and re-imported later.
  8. If the –noPlot  switch is specified , stop leaving the words and phrases found and their counts in $words.
  9. Set additional properties on the word:
    Set the font size for the word, scaled between the values set by the -minFont and –maxFont parameters (these default to 16 and 80 point respectively)
    Set the margins to the value specified in the –Margin parameter – Powerpoint uses quite generous margins by default, but script defaults to 0.
    If –RandomVertical and/or -RandomBold, and/or -RandomItalic values are specified, generate random number for each and if it are less than the specified number, set the text attributes to true
    If -Randomtwist is specified set the twistAngle attribute to a random amount up to the value of randomtwist
    If multiple rgb colours have been provided using the -RgbSet parameter, select one at random. If not the default PowerPoint colour will be used – normally black.
    If the -fontname parameter has been provided  and is a single name, set the word to use it it, if multiple fonts have been specified select one at random. If not font is specified the default PowerPoint font will be used. 
  10. Place the first (most common) word in a Powerpoint Shape (rectangle) at the centre of the slide, store the positions of its corners as properties of the word
  11. Place each remaining word in its own shape at the top left corner of the slide, setting its properties as already defined. Get its size from PowerPoint, then try to place it around the boundaries of each existing shape, stopping when the placement won’t overlap with any of the other placed shapes. (The starting point for this method was something I read by Chris Done it was here but his pages on word clouds only show up in Search Engine caches now.)  Note that the the more shapes which have been placed, the longer each new shape will take to place. Store the positions of the newly-placed shape’s corners as properties for use placing future shapes.
  12. Stop when either the number of words cannot be placed exceeds the value in –maxFailsToPlace (3 by default) or all words have been placed successfully.

In part 2 I’ll include the PowerShell code: the example above was from the Tweets about teched and I’ll show some more examples, with the command lines which were used. As you can see from the above, there are 20 or so parameters to explain.

Update Thanks Ian for letting me know that Chris's Page is missing in action, the italicized part of point 11 has been changed accordingly.


The point of Windows 7 libraries and search

In my previous post I mentioned a correspondent – his name is Andy – who’d written asking the question “What the hell is the point of libraries and if you have the name of the person whose idea they were please post it for summary flaming” He made another comment which I think goes to the heart of it.

…  as with the advice to people to avoid Vista unless buying with a new machine and then only a powerful one which one then customises to remove things like pointless indexing, I am now launching the ‘destroy or develop libraries’ campaign!

I’d like to drill into that.  I just checked my home machine’s asset tag with Dell and it will be 6 years old next week. I wanted to replace it but I spent £30 on upgrading the memory to 2GB and although the graphics card can’t do glass effects,  it runs Vista well enough on its 2.2GHz Celeron (single core) processor that the replacement has been postponed indefinitely. It works as a media center and streams stuff to the TV via the Xbox. Memory is critical though: I’ve been saying since Windows 3.0 “don’t worry about CPU , throw memory at systems.”   a 256MB XP system isn’t going to make a happy upgrade, on that we can certainly agree.

But  “Pointless indexing ?” Indexing is a low priority task and only consumes resources when files change, so removing it saves very little and costs a lot. The big thing , the HUGE thing for me as a user in Vista is search, and clearly no index: no search. Anyone who has got into the Vista or Windows 7 way of working will understand that, just as internet search engines mean we don’t try to remember many complex URLs any more, so on Vista and 7 we don’t remember complex paths to find files.
When I first  first worked on Sharepoint (it was still called Tahoe at the time!) it became clear to me that file hierarchies work poorly.  Do you organize files by date, by subject, by type? If you write thousands of letters how do you name them so you can find all the letters for a given customer ? Or all the letters for customers interested in the WidgetMaster 2000 ? Bluntly, if you can’t find the stuff, is there any benefit in keeping it ? And it’s not just in office automation settings that this matters. I had over 30,000 photos on my PC at the last count. How do I quickly get to the Vulcan Collage I used in this post – did I put it in folder of “pictures for blogging” or did I make a folder for the vulcan shots and put the collage with the source pictures, or did I save the collage with other collages. To find it I just press the “Windows key” and start typing “vulcan” in the box on the start menu. Starting programs which are not on quick launch bar… life is too short to remember folder hierarchies on the start menu: I hit the same key and start typing the program name. Want to remove a program? Why bother to remember where that is in control panel? I hit the same key and start typing “remove” and the correct link to control panel appears. And Windows search is the search for Outlook. With my recent car problems I found I hadn’t got the number for the fleet management people in my contacts. So I typed “Fleet” in the search box and a second later there was a mail with the number I needed. I am totally dependent on search now.

image Indexing has a beneficial side-effect. You can create virtual folders based on metadata. I know a couple of people who flinch when I use the term meta-data but it is simply data about the data: its author, creation date, subject, tags and so on. Office Documents have “document properties”, MP3 and Windows Media files embed information about the song title, artist, composer, length and so on. JPEG and TIF images contain embedded EXIF data which contains camera information as well as artist, tags, title etc.  On the left you can see this being put to use in Windows 7. I’ve ringed the “arrange by” option; and here “tag” has been selected. In some places Tags are known as “keywords”, but as you can see in the screen shot (click for a full size version), a tag can contain multiple words. “Arrange by tag” tells windows “Select all the files in this folder and its subfolders, grouped by their tags" (a file can appear in multiple places if it carries more than one tag). Since each group is treated as a “search folder” I can search arrange results by metadata, so I can have “Infra Red-tagged Pictures also tagged Oxfordshire” Or “Pictures of Aircraft taken in July 2009” and so on.  I can drag the search folder to favorites or the desktop or my task/quick launch bar to call it up again.

image

But wait - there’s more ! In the second picture you can see I’ve typed something in the search box (ringed). Normally this would be something for a free text search over all the metadata fields. But I’ve typed FocalLength: so this will search in a specific metadata field. I haven’t specified an exact match but typed >280 so it only returns pictures where I was using my longest lens zoomed to the maximum length. Also notice on the menu bar that the search can be saved: that keeps a search folder to apply the same search criteria to my files in the future.

If you’ve opened up a the picture on the left you’ll have seen it contains some shots of the wild rabbits which come into my garden – and I seem to have gone down a bit of a rabbit hole here because the question was about libraries  - and I’m talking about Search folders. You can’t save files to a search folder – it isn’t a “place” - and a search narrows the selection to just some of the items in a branch of the file system…

image

Libraries use the index beneath the surface, but work in the opposite way to search folders. They bring together multiple file system branches. That’s it. I think Andy thought they were more sophisticated, but there’s only filtering if you do a search: the 4 default libraries which link together 4 of the “MY” folders with their “Public” counterparts. So now it doesn’t matter if something is in “My Music” or “Public Music”, I can find it in the “music” Library. And this isn’t limited to folders on my computer -  You can see on the left that my computer belongs to a Windows 7 HomeGroup and I’ve added the music folder from another member my Music library – this wasn’t the best staged demo because the netbook I’m connecting to only has the Windows sample music on it – which I’ve removed from my laptop, that’s the one non-blurred item .

Adding a folder to a library is a simple matter of going to the library’s properties, and clicking “include”. Any of the folders which comprise the library  can be set as the default location for saving. In effect, the Documents folder is “My Documents” with the extra ability to find public documents. You can change  the name of library so you could call it “All Documents” or even “My documents”. If you neither use the public folders anything there would be no harm in deleting the default libraries. Conversely if you’ve built up a complicated hierarchy of folders, so you might have “letters 2008”, “Letters 2007”, “Letters 2006”, “Invoices 2008”, “Invoices 2007” and so on, you could create new libraries for letters and Invoices.

Now, Andy’s complaint was essentially that he knew users for whom any change is bad. And my previous post I owned up to the fact that my first reaction to any change is “What did they do that for”  He says

unless totally new to computers, the addition and forcing users to default to libraries adds another level of confusion to non-tech savvy people. My mother… has been using PC’s since the 8086 days and had got to grips with DOS/File Manager/Explorer/My Computer/Computer for years before you introduced ‘My’ documents, pictures etc. I then had to spend time explaining the concept of a virtual pointer to a set of folders held elsewhere. We got there in the end although the desire to navigate to them via the C: drive remained for a while.

When we do make these changes we spend thousands of hours in usability labs to makes sure different categories of users can pick them up easily, and if we made everything exactly the same as it always has been it would be a brake on progress. Although Andy emphasised “forcing users to default to” when I did a quick check, everything I tried remembers the last folder things were opened from or saved to. I also have a vague memory that the pre-release versions of Windows 7 opened explorer at the libraries folder but the release version on machine opens at Computer – of course you can have shortcuts to open any folder you want. For some people’s' machines “MY” in front of documents isn’t needed, you can rename the “MY” away. All the “My” folders are actually pointers so if you have always used C:\Documents, you can navigate via the Hierarchical path in the file system as before, if you can re-point the default location, any program which calls the Windows API to say “where is the default location for Documents will go to there and not keep trying to take you back to somewhere under users

Now, following that, some bright spark decided to demonstrate to logical human beings that had spent years learning how a hard disk could be navigated that logic and common sense is not required for using computers and in fact is detrimental to their use. I write of making the hard disk subordinate to the desktop in explorer when Vista was launched.

Andy’s point actually applied prior to Vista. On the Desktop you have a computer Icon, if you open computer it contains drives, if you open a drive and navigate to your user folder it contains the desktop. Where once we had a tree structure with the some root which contained all the drives, now we have a loop. I understand what he means though, having spent years with learning ways to impose a logic to cope strict hierarchies we’ve now said “you don’t need to force yourself into thinking that way any more”. No one forced to change how they organize their files: that’s important.  Personally I navigate to my documents via libraries, the “my documents” link in my home folder (which I have as a favorite) via the C: drive, and from Cmd and PowerShell prompts.



Posted by jamesone | 2 Comments

Car trouble – a possible metaphor for new software ?

A little over a year ago I mentioned I had taken delivery of a big Citroen. It’s my seventh, I’ve likened it to driving a church – not as a criticism but because of the sense of serenity inside, due in no small part to Citroen’s clever HydroPneumatic suspension. Last night as I was leaving work a warning message appeared: “Suspension failure – do not exceed 55 MPH”. Initially I thought it might be a diagnostic problem, but as the journey went on it was clear that there was something seriously wrong – 15 years ago Citroen number 3 had a hydraulic leak and the early stages of that felt similar (on that model brakes and Power steering were on the same hydraulic system as the suspension, and this happened when working at the other end of the country; the last part of the journey to the local Citroen dealer was memorably scary.).

Systems whirred into place and the local Avis got a call to deliver me a car, which the did amazingly quickly. So I have been driving another car today. Its ride was worse than the faulty Citroen. The brakes were didn’t feel right, the power curve of the engine seemed wrong, the seats were very nice leather - which is odd on a rental car – but wrong. Control positions, wrong. Heating and Air con: wrong. Instruments, strangely styled and , you guessed it, they’re just wrong too. Though I did have to concede it has boot the size of Belgium.* The odd thing is that this has been one of the best selling cars in Europe for years. Clearly a lot of people don’t seem to think there is anything wrong, with the controls, instruments, road manners and so on. It’s just a question of being used to something else. As a former colleague once put it WIKIWIL: what-I-Know-is-what-I-Like. 

Since I put the final version of Windows 7 on my laptop, I haven’t installed Mind Genius – my preferred mind mapping software, and I’ve got a couple of things simmering away in my head which need it, and so I installed the new version 3 on tonight. It uses the office 2007 style ribbon. I knew and liked both version 1 and 2, but the adoption of the ribbon takes me back to when office 2007 arrived; what was familiar was taken away and it all felt wrong. I can’t recall anyone telling me they liked the ribbon on first sight, but very few have maintained a dislike after a few hours working with it. My first hour exploring Mind Genius 3 has been the same, grinding of teeth and wanting to shout “why did they have to change it” with the occasional “OK, that’s clever”. I expect the new version will work better than the old – they have not taken away the ability to thoughts in quickly which is the essence of Mind Mapping.

Working as an evangelist for new versions of software it’s easy to fall into the trap of seeing those who don’t take to it as luddites. Today was a good a reminder for me that it takes a while to persuade me of a change, so why shouldn’t other people be the same? Even things which are “better” aren’t to everyone’s taste. It was a timely reminder because of  mail  I had today, which asked
“What the hell is the point of libraries and if you have the name of the person whose idea they were please post it for summary flaming”
Now, a mail entirely in that vein wouldn’t normally get an answer, but the writer made some good and intelligent points so I’m going to devote the next blog post to that.

 


* For any US readers “boot” = Trunk, and “Belgium” is a country which produces proper chocolate. 



Posted by jamesone | 0 Comments
Filed under:

You can’t be a 21st century admin without PowerShell

When I was at school my father gave me a copy of an article he’d seen at work. I remember nothing of the article itself, but the title has stayed with me: “You can’t be a 20th century man without maths”. I think even then “You can’t be a [time] [person] without [skill]”  was a  Snowclone - I’ve adapted it from time to time - hence the title.  In a recent conversation someone asked me if I knew “That sunscreen thing” which was turned into a song by Baz Luhrmann (On you-tube) and having been reminded of it, I found it wanted to morph into the the opening of a session I was doing on managing Server 2008-R2 The original began

Ladies and gentlemen of the class of '97: Wear sunscreen.
If I could offer you only one tip for the future, sunscreen would be it. The long-term benefits of sunscreen have been proved by scientists, whereas the rest of my advice has no basis more reliable than my own meandering experience. I will dispense this advice now.

newskill.. it was all I could do to avoid opening with “Ladies and Gentlemen: Learn Powershell. If I could offer you only one tip for the future, PowerShell would be it”, the long term benefits of PowerShell …”

I’ve been saying the same thing in different ways a lot recently. The slide on the left was in the session I delivered at the big Wembley event in October.  A few people picked up that I’d said “Everyone should learn PowerShell”, and I’ve since had to explain that this requires a suitable definition of “Everyone”. But it is my firm belief that IT professionals working Microsoft technology are at an advantage if they know at least the basics of PowerShell. Being able to automate complex processes , and show that the steps have been followed isn’t a new idea ; it always was important in the mainframe and mini computer world. There are plenty of situations where using a graphical interface is easier than using an obtuse command line tool, yet the focus on GUI tools in the Microsoft world means that command line and scripting skills are less prevalent among system admins than is the case in Unix / Linux world. Those skills can mean better efficiency, or allow tasks to be carried out which would otherwise be impractical. If the setup is simple or IT management is not a persons main job, doing the work optimally matters less because there isn’t much of it. If there is little repetition writing a script takes more time than it saves. When IT is your main role and includes repetition of complex tasks then scripting puts you ahead. Of course I equate “scripting” with “PowerShell” which simplifies things too much: the tools will vary between environments – I took the following list from one of the Slides in the Wembley deck: – it is not designed to be complete but to show pre-eminence of PowerShell in the Microsoft world.

In Server-R2 there is: Not forgetting that we also have
  • PowerShell for Active Directory
  • PowerShell for Applocker
  • PowerShell for Best Practices
  • PowerShell for BITS transfer
  • PowerShell for Clustering
  • PowerShell for Group Policy
  • PowerShll for Installing components
  • PowerShell for Migration
  • PowerShell for Remote-Desktop
  • PowerShell for Server Backup
  • PowerShell for Web admin
  • PowerShell for Exchange 2007
  • PowerShell for HPC
  • Powershell for HyperV @ codeplex.com
  • PowerShell for OCS in the OCS Res-kit
  • PowerShell for SQL 2008 R2
  • PowerShell for System Center

You can see anyone who says “I don’t do PowerShell” is at a disadvantage, and the first thing to explain to them  that opening up a PowerShell window and running the cmdlets which are provided by any of the above is no different from starting a CMD.EXE Window and entering commands there – in fact it’s easier because the way parameters and help are handled is consistent. The idea of an environment extended with task-related Snap-ins which we saw with the GUI management console is the same in PowerShell – we load something which understands the task into an environment which provides the UI. The cmdlets are just a foundation: building things up from them takes things to another level. But you can build things up around free-standing programs too – by allowing them to be scripted, PowerShell makes it possible to deliver things which otherwise would be too time consuming. The example I’ve been using to show this is the following:  In Server 2008 R2 we have a new feature called off-line domain join; ODJ allows you to create a domain account for a computer, and a file containing the information needed for that computer to be added to the domain. This file can be applied to the OS offline without needing to boot it, logon as an administrator, connect and change the computer name and member-of setting from the default workgroup to the chosen domain. The command to do this is a traditional .EXE and it looks like this.

djoin /provision /domain MyDomain /machine MachineName /savefile filename

Great … but what if you have 1000 machines ? Are you really going to sit there all day typing the names in, and checking you didn’t mistype any or miss any out ? If you have a list of machine names in a text file, you could do this with PowerShell

Get-content Machines.Txt | forEach-object {djoin /provision /domain MyDomain /machine $_ /savefile $_ }

For each machine name (line)  in the file machines.txt the command will run djoin with that name as both the machine parameter and the filename parameter.

The successful admin is not automatically the one who knows every possible way to use every possible command in PowerShell. Nor the one who turns their back on GUI to do everything from the command line , but the one who understands the tools available for the task at hand, can select the right one, and can put it to use competently. PowerShell is one of the tools available in so many cases in the Microsoft world, that you can’t meet that definition without it.



How to cut the crap in IE8 (IE and Privacy Part 2)

 

Click for a bigger view.

I mentioned IE87 pro in the last post, but recently I was doing some work on a server 2008 R2 which didn’t have it installed, and I wanted to look up some data on how much less current solid state drives use than traditional hard disks. I fetched up at Tom’s hardware which was an example of horrible use of flash.

I know some people are able to tune out the look-at-me, look-at-me flash, if you’re one I’ve doctored this page to give you some sense of what it is like when I try to read it.  If you scroll the page down the Windows Server Ad on the left doesn’t remain pinned but bounces back into place. Just horrible. 

image I could have installed IE7 pro but I was trying not to add any software to this machine. So I decided I would turn my attention to using In-Private filtering. The first thing to do was to look at what this page is pulling in. IE8’s privacy report (either from the status bar or the “Web page privacy policy” option on the “Safety” menu) gives a view of what a page is loading from outside its own domain and which of those pages send cookies. You can decide which sites’ cookies you will accept and which you will reject, and this is useful if your goal is to limit the degree to which your movement around many sites gets tracked.  But it lists all pages, (cookies or not) from other domains which show up on a site. So on this particular site what I saw something like the one below:

toms-privacy

This showed I was accepting cookies from an admonger  (On internet options my cookies setting was on Medium – this is settable by group policy – only Medium-High level and above blocks these cookies).
The report gives me a list of sites which use the page I am looking at to send me sending me stuff I actively want NOT to see. Not all of these will automatically show up if I look at the the in-private filtering settings, because that shows everything which has been found more than a threshold number of times. If set to automatic, In-private Filtering will try to figure out which of these should be blocked, sadly it can’t tell the difference between GoogleAPIs (required to make some sites work) and GoogleAnalytics (habit harvesting). So I’ve set mine manually; This is the first place where (as far as I can tell) IE8 comes up a bit short – it forgets the state of in private filtering, and you need to add a registry entry (sadly this one is not in the group policy templates, but you can save the following to a .REG file and import it into the registry, or even create your own group policy template to set it.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Safety\PrivacIE]
"StartMode"=dword:00000002

A value of 0 is “disabled” , 1 is “Automatic” and 2 is manual. Once filtering is turned on you can select which of the sites detected to block or allow. There is another option though, if you go to In-Private filtering settings via the Saftey menu or via the status bar there is an advanced settings link which takes you to the in private filtering part of Manage add-ons: here you can export or import your settings: again we seem to be missing an easy way to propagate settings: the file is in RSS format there doesn’t seem to be an obvious way to subscribe one. The file itself looks like the one below

 <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:wf="http://www.microsoft.com/schemas/webfilter/2008">
<channel>
         <title>test</title>
         <description>Export of InPrivate Filtering</description>
             <item>
                  <description>*.google-analytics.com/*</description>
                  <wf:blockRegex><![CDATA[.*\.google-analytics\.com/.*]]></wf:blockRegex>
            </item>
           <item>
               <description>*.DoubleClick.net/*</description>
               <wf:blockRegex><![CDATA[.*\.DoubleClick\.net/.*]]></wf:blockRegex>
         </item>
</channel>
</rss>

As you can see the file is an RSS XML file which defies an extra WebFilter schema. We can have Web filter  blockRegEx or AllowRegEx items – the reg ex is a regular expression, and this is no time to dive into explaining them. Suffice to say that . in a regular expression means “any character” and .* means any character, any number of times (what would be * in most wild card syntaxes). Since . has a special meaning the escape character \ appears before a . when we mean that character – the descriptions show the normal way of writing the expression, a couple of minutes with notepad and I was seeing something like this.  Not only is this something I can read, but might notice the ads which I might follow because they are both static and relevant have got greater prominence. I’d say that was a good result all round.

image

 



Posted by jamesone | 0 Comments

IE8 and privacy , part 1

I wanted to talk about the privacy enhancements in IE8, and to save you from reading something of epic length this is only part 1. First, I do know there are some poor souls out there who work for benighted organizations which can’t get off IE6 - so the idea of working efficiently with a multi-tabbed browser like IE7 or IE8 is denied to them unless they get creative and install a second browser [Given a choice between the 8 year old IE 6 and the current Firefox, I would take the current product] but that is another story for another day. If you’re on IE7, then moving up to 8 is nothing like the step of getting off 6 so there really is no reason not to move from 7 to 8. Even if you’re on 8 already you may have missed the enhancements

I guess there is a decent chance that you know about “in private browsing.” which people laughingly call “porn mode”: the idea is it leaves no trace behind. In one of my more memorably titled posts “Pigs and Drugs and Naked Dwarves” I mentioned that “for the last five years or so a prescription drug has helped me lead a bit more normal life than would otherwise be the case.”. Two years on and I’m still taking it, and last time I saw the doctor he said he preferred on-line requests for repeat prescriptions. It’s easier for me too, but I don’t want my request lurking in IE’s history. It’s a model use for in private browsing. I was telling someone recently that the specialist who first suggested this drug told me “I won’t tell you about it because I know you’ll read about it on the internet anyway” which is what I did. Today I would have turned on in private browsing for that too.

imageI’m a lot less worried by what’s in my browser history than I am by the behaviour of those who sell internet advertising, who want to gather the maximum amount of information about what you and your interests. I don’t want to target Google but as the biggest they select themselves and their CEO Eric Schmidt* famously said he wanted Google to know everything about people - which produced some interesting press. There are things I don’t want Google et al to know about me (like which drugs I’ve shown an interest in) and I can’t really say where those things stop and the things I don’t care about begin. Google’s users are not its customers - its customers are its advertisers, so when advertisers’ desire to target ads comes into conflict with users desire for privacy, I’ve no idea how Google (or any of the others) would go about resolving the conflict. Even on this blog there is potential for someone to see what you’re interested in because links out of the site go via bit.ly so we can see what links people follow. My view (for what it’s worth) is if you can see before you click the link it goes via a central service and if you don’t like bit.ly having that information you can choose not to click the link. I like the fact that my projects on codeplex.com display in large friendly letters whose analytics are used by the site. I’m not so happy about organizations quietly siphoning up personal information, but that can be stopped by IE8. Since this paragraph is peppered with “My view” , “I like”, “I’m not so happy with”, this might be a good point to remind you that this the personal view of one Microsoft employee (see the in Private feature section of the IE8 Readiness kit for a more rounded view of the issues) but the important point is that we do like to give people choices. For me exercising  choice meant using IE7 pro for the last couple of years, it works nicely on IE8; there are other dedicated blockers though the ones for Firefox seem to be better known.  IE 8 has “In private filtering” lurking quietly on the status bar: this removes undesirable embedded content – so  it can also filter out servers of Ads, which is where the blockers focus their attention, and something I will come back to.  In Private filtering identifies those bits of content which come from one provider but are embedded in pages of multiple others, as you can see from the screen shot below.

Click for a larger version

I went through the sites which IE had picked up: here are what some of them say about themselves:

What is STATCOUNTER? A free yet reliable invisible web tracker
Quantcast says. “We show you who is clicking your ads, browsing your website, and purchasing your products... Once you know, it's easy to buy an audience of millions -- even tens of millions -- who look like them”
Media6°claims it ‘provides major brand marketers with targeted audiences using the power of social graph data.’
Site meter says with their detailed reporting you'll have a clear picture of who is visiting your site, how they found you, where they came from, what interests them and much more”
Kontera says “patented technology performs real-time semantic analysis of content and other information to dynamically hyper-link the terms that most accurately represent and predict user-intent and engagement”
ScorecardResearch is a domain used by Full Circle Studies, Inc. to help with the collection of Internet web browsing data on specific websites that have enrolled in a broad market research effort to create reports on Internet behavior and trends.
YieldManager turns out to be part of the “Right Media Exchange” which calls itself the first largest market place for all buyers and sellers [of ads]

Underneath the list of sites there is a link to find out more about the organizations sending you content – only two of follow the standard (Google Analytics, and Audience Sciences [RevSci.net] ) . The others needed me to go digging to find out who they were, and what they wanted my information for; reason enough in my mind NOT to trust them. What was interesting was that Audience Sciences is a member of the Network Advertising Initiative who have an Opt out page . I recommend you visit that page it shows you how many NAI members have got their cookies onto your computer (a staggering number in my case), and allows you to say that you don’t want those organizations to put the information they have about you to use. To me that’s solving the wrong problem. Blocking with In-private browsing stops them getting the information in the first place.

I said I would come back to the question of blocking adverts. Some people will tell you that visitors to a web site somehow have a duty to look at the ads it serves up. Did anyone ever argue that you should must stay in the room when ads appear on TV ?  And whilst such arguments might have merit if talking about universal blocking, they look staggeringly weak when its a personal, one-off decision. Remember that ads are usually paid by click-through, not by views. I am never going going to click through any of the ads in question, so I am not costing the sites any revenue. Secondly I’ve written here and here about my “aspergers-like” reactions to distracting (Flash) content on web sites – the impetus for this piece was using a machine with out IE7 pro and hitting a one site where an ad for Windows Server bounces up and down in the margin as you scroll the site, oh the shame of it. I am less likely to buy the product of an advertiser who shows me an ad like that, so I am doing them a favour by not filtering out the ad, as well as saving everyone’s bandwidth.

Next up – how to configure it:

 


*Two thoughts on Eric Schmidt (1) He ran Novell for a time so I think of him as “The man who turned Novell into the company it is today.” (2) He famously talked about Microsoft having an evil room. In all the real-estate Microsoft owns it is comforting to know he thinks our evil is confined to one room. Actually I’m sorely tempted to propose that we rename one of rooms from, say, “Great Ouse” to “Evil”, and hang a picture of Eric and some of his sayings on the wall. 



Posted by jamesone | 0 Comments
Filed under:

Can Bing do twitter search better than twitter ?

image

First off to avoid any frustration, you need to set your country to United States, because this feature hasn’t been rolled out to all the baby bings.

The you go to www.bing.com/twitter and put in what you want to search for, you get the most recent tweets, and links which come up in multiple posts, even (and this is the bit I like) even if they are linked with different shortening services. And you can re-tweet anything you see.

I’ve got another post in draft at the moment which could be seen as having a go at Google, and I don’t want to be get into bashing them, but … Google are seen as the leaders in search, so much so that getting people to even try something else isn’t easy. But I can’t recall the last time I saw Google do anything innovative with search. (I’m sure someone will set me straight on that). Update. Google say they will be searching Twitter in the future: now if they come out after bing and with something which isn’t as good … oh deary deary me.

As I hinted in the previous post, sometimes the negative press we get can get us down. With Windows 7 , and Server 2008 R2, the new Office, the project Natal stuff on Xbox (so cool it will give you frostbite), and Bing showing our search work in a good light, people are writing stories about Microsoft getting its mojo back: as a good Microsoftie I’d argue we never really lost it but after all that knocking copy, I’ll settle for that.



Posted by jamesone | 1 Comments

A uniquely good day to be at Microsoft

I don’t think you can have missed that today was the day Windows 7 became generally available. I’ve been trying to come up with some unique angle on this for a blog post and not getting anywhere. Two thoughts related thoughts I will share.

The first: sometimes on these occasions the press turn up and try to interview employees: since I am press-trained I can talk to them, and as I was driving to the office this morning I wondered what sound bite I’d come out with. “This place is always on a high when we release new products and seeing reaction Windows 7 has been getting we’re on a higher high than usual”. I wondered how I could bring in Server 2008 R2, or the upcoming “2010” releases apart from ending with “and we ain’t done yet.”

The last thing I did before leaving the office was to read a mail from our director: it doesn’t deserve to be broken up for quotes, but it would be rude to publish it all. He called out the story that Amazon said pre-orders were its biggest ever outstripping the last Harry Potter , and 500 people queued up outside PC world’s flagship store to get their copy at midnight. He called out the positive press that the Register has given 7, they’re not known for being pro Microsoft. And he called out the groundswell of positive customer feeling which 7 has (My personal favourite is the Vox-pop of twitter comments running on the Microsoft.com home page). And he said “It’s easy for old lags like me to become cynical and start believing the [Negative press we get]”  ,before talking about the how he felt re-energized by the arrival of 7. I’m staring down the barrel of a 10 year service award so I’m an “old lag” myself and know exactly what he means.  His final words were “There is no better place to be today”, and from a director that’s a sentence which should usually be treated with the same cynicism as , let’s say, “People are our greatest asset”. But this time … I’ve never agreed with him more.



More on VHD files

I’ve had plenty to say about the uses of VHD files on different occasions. They get used anywhere we need to have a file which contains an image of a disk. So from Vista onwards we have had complete image backup to VHD, we use VHD for holding the virtual disk to be used by a Virtual Machine (be it hyper-V , Virtual PC or Virtual Server – the disks are portable although the OS on them might be configured to be bootable on one form of virtualization and not another), and so on.

Most interesting of all with Windows 7 and Server 2008 R2 the OS can be boot from a VHD file – if you try to do this with an older OS it will begin to boot and then when it discovers it is not on a native hard disk it all goes the way of the pear. However an older OS can be installed on the “native” disk with a newer OS in a VHD, provided that the boot loader is new enough to understand boot from VHD. I’ve done this with my two cluster node laptops – I can boot into Server 2008 “classic” or into 2008 R2: the latter is contained in a VHD and so I don’t have to worry about re-partitioning the disk or having different OSes in different folders. The principles are the same but the process is a bit complicated for XP and for Server 2003 – but Mark has a guest post on his blog which gives a step by step guide. In theory it should work on any OS which uses NTLDR and Boot.ini all the way back to NT3.1 - though I will admit I’ve only run XP and Server 2003 in virtual machines since Hyper-V went into beta,

Of course being able to mount VHDs inside Windows 7 and Server 2008 R2 gives you an alternative way of getting files back from a backup, and I’ve got a video on technet edge showing that and some of the other uses. My attempts to modify a backup VHD into a Virtual Machine VHD have failed – I can access the disk in a VM, but my attempts to find the right set of incantations to make it bootable have left me feeling like one of the less able students at Hogwarts. Into this mix comes a new Disk2VHD  tool from Mark Russinovich and Bryce Cogswell – Mark is the more famous member of the team, but if you do a search on Bryce’s name you’ll see his background with sysinternals  so Disk2VHD comes with an instant provenance. There are multiple places where this tool has a use, lifting an existing Machine to make a boot-from-VHD image or a virtual machine, or as a way of doing an image backup which can be used in a VM.



Microsoft Security Essentials

Somehow, in all the other activities of the last couple of weeks I missed the release of Microsoft Security Essentials which is our FREE* anti-virus / anti-malware product aimed at home users. (We have the more business oriented Forefront Client Security as well). My experience with it has been too limited to date to offer much commentary on it: however – since this blog is read mostly by people who work around computers the reason for writing about it is to say this: we all have a friend or family member who doesn’t protect their PC. The availability of  software from Microsoft which plugs the gap and is FREE* gives you a chance help them.

Over on the Malware protection center blog  Joe has posted an analysis of what it unearthed in its first live week. We’ve had 1.5million downloads, and found 4 million infections on 0.5 million computers. That’s right the average infected computer has eight different infections. I’ve seen numbers like that before and find it a bit unnerving , because there is a long tail effect: lots of machines are clean, some have one or two infections, the average for an infected machine is 8 and beyond that – there are some out there with dozens upon dozens.

Joe breaks down the reports by country: US has the most reports at 25%, then Brazil and China at 17% each the UK only has 2% of the reports. I don’t know if it is because we have fewer installations here or if our PCs are better protected. Unfortunately it is only infection reports which are broken down by country, not downloads or installations. But Joe does break installations down by OS. 44% is Windows 7, 23% Vista and 33% XP. We haven’t even launched 7 properly and it is 44% of the downloads. My guess is that people who are trying out a new OS are keener than the population at large to try new anti-malware from the same source. The final chart Joe has put up shows the ratio of infections per OS – when he says normalized, I’m assuming that means Vista numbers are scaled up and Windows 7 scaled down so they both represent infection rates on a equal number of computers. XP is more than 3 times more likely to have an infection than 7. This isn’t entirely because 7 is better – it will be a newer installation so XP will have had more chances to get infected. XP infections rates are 60% higher than Vista’s. But 7 is running at about half Vista’s rate. As time passes it will be interesting to see how close 7 and Vista end up and how far behind XP lags. I’ve got a hunch that the numbers will change as they move away from people installing the software because they think their PC might be infected and finding something on the first run.

 

*As it says on the web site Your PC must run genuine Windows to install Microsoft Security Essentials  or put another way, if you stole the OS, you’re going to have to figure out how to steal software to protect it.



A quick thank you

The theft of my laptop, bag, fleece, keys, etc was a pretty galling experience as I described in the post before this one. There’s never a good time for this to happen, but in the run up to our big  launch event at Wembley was especially inconvenient. What has come as a surprise – and a pleasant one this time – is the number of people who have taken the trouble to commiserate with me, from the people who commented to that post, to the friends who dropped me an email, to those people who came up to me in person (a lot at Wembley) and asked if I had got any of it back. (There was a tag on my keys which would mean they came back to be if thrown in a post box, and the Post Office would get a Microsoft security badge back to Microsoft UK. But no.)  To have enough people show the positive side of human nature that I’m able to lose count has been a bit of a silver lining to the whole experience. And at risk of analysing it all too much, the benefit rises exponentially with the number of people. It would NOT be right to name names here, (I don’t even know all the names) but the people concerned know who they are: Thank you, all of you.

update. Missed out a NOT in the original, which changed the sense somewhat. Oops.

Posted by jamesone | 1 Comments

My life in a bag

I have became a crime statistic.
It was only a bag. And I didn’t realize the significance it had until it was gone. Jerry gave out laptop bags as a thank you: working with him and that group of people was the best aspect of that stage of my life, so the bag itself embodied a happy memory. On one of my diving trips it picked up a sticker going through security; I never peeled it off and that too was a reminder of happy times. My web cam lived in the front pocket – Peter gave me that as a thank you for helping out on a Unified communications tour in Asia: just being asked to do that made me feel like I was someone again after my self-esteem had taken a pounding. I gave away better webcams because I liked having that one with me. My presenter mouse lived beside the webcam and that too had been a thank-you gift. Was it Slovenia? or was it Belgium? Both involved crazy travel and I’m sure both gave me the mouse with a laser inside. I gave one away as a prize and kept the other – which reminded me of both trips. In the top pocket was a collection of USB connectors I’d built up of the years, a set of headphones with a bullet mic I’d picked up at one of our events and the comfortable headphones which I’d had for 4 or 5 years.  Then there were memory sticks – I’ve never bought one and each of those had their story.

In the main pocket was my laptop: a 2 ½ year old Dell which had seen better days. I care less about the thieving bastards getting that loyal old workhorse than the sticker on it saying “well done”. That came from a supply teacher at my daughter’s school: she had expected to find PowerPoint on the computer in the classroom but it wasn’t there, and I conjured up a copy of the PowerPoint viewer: another good memory. And I’m cross as hell they got the memory card from my camera which was still plugged into the laptop. I’m not sure which pictures were only on the laptop or the card and nowhere else: those memories are gone.

What makes me crosser still is the vermin took my fleece. It was a crappy give away fleece: I guess they were hoping for something in the pocket – my battered old phone wouldn’t have been worth much, but I had that with me, along with all my cash and credit cards. They got my keys, which is pretty inconvenient (as I typed the draft of this, a locksmith was getting to work just in case they work out where I live – replacing car keys is even more hassle), but in the other pocket was my Microsoft security badge. If you’ve seen me wearing my badge there’s about 50:50 chance you saw the side which said Yoda. Lorie got those badges for a group of us who were known as her Jedi. It was a talking point, an ice breaker, and yes, the embodiment of a memory. A little oblong bit of cheap plastic is really the thing I’m most upset about losing.

Moral of the story ? There isn’t one really. Even at Microsoft event someone can walk in and steal something while your back is turned... Using bit locker reduces the data risk in these cases ... the thing that amazes me is how much of my life was in one bag.  I wish I could adapt that Shakespeare quote about stealing someone’s good name , the one which begins  Who steals my purse steals trash; 'tis something, nothing; 'Twas mine, 'tis his, and has been slave to thousands; but I can’t. I just needed to write about that sense of loss. Thanks for reading.



Posted by jamesone | 11 Comments
More Posts Next page »
 
Page view tracker