Welcome to the Monad family, and thoughts on the PDC

First off, I’d like to welcome the many of you who’ve just discovered Monad, and this blog.  The PDC was a great experience – I was glad to have had the chance to talk to so many of you in person.

One of the things I almost forget about, now that I basically live in the Monad shell, is how far it raises the bar for the command line, and how enthusiastic its users become.

New Monad Download Available! (Monad Beta 2)

I used to have download links here, but they were for an older version of Monad.  But I’m still getting plenty of hits per day for it, and needlessly sending people on a wild goose chase.  Since Thomas has been doing a great job of keeping his Reskit.net up to date with the latest Monad Download information, I’ll point you to him for the best Monad Download information.

Beta 2 signals our move out of BetaPlace. The discussion on the private newsgroups have been very helpful for all involved, and we’re making that even better. We now have a public newsgroup available at nntp://microsoft.public.windows.server.scripting, that replaces the old one on BetaPlace. Please only use the new newsgroup.

Unit Testing in PowerShell – a Link Parser

In an earlier post, I introduced a download manager in PowerShell.  (I have since updated it.  If you use the script, you might want to download the update.)  The major pain with it, though, is getting the URLs into the text file required by the download manager.  “Right-click, copy link location, paste” just doesn’t cut it for more than a few links.  To resolve this problem, we’ll write another script to parse URLS out of the locally-saved HTML of a web page.

PDC -- TLN303 Monad: Advanced Command Line Scripting

For those of you going to the PDC, make sure to check these two out:

TLN303 - Monad: Advanced Command Line Scripting

September 13, 2:45 PM - 4:00 PM
404 AB
Jeffrey Snover, Jim Truher

Learn about Monad, Microsoft’s next generation command line scripting solution. Monad combines the interactivity of KSH or BASH, the programmability of Perl or Ruby, and the production-orientation of AS400 CL or VMS DCL.

http://commnet.microsoftpdc.com/content/sessionview.aspx?TopicID=1bbfa7e1-d4a7-4556-9e52-680bb143f8d6

PNL03 - Scripting and Dynamic Languages on the CLR

Another Benefit of Monad's WinFX Membership -- SDK Documentation

As Adam and I mentioned before, Monad is now available in very public beta via the WinFX installer.

As Adam mentions in his post, “It’s not installed by default (due to a last-minute setup integration problem), so you have to go to the Start menu, choose `“All Programs`”, then `“Microsoft Windows SDK`”, then `“Install Windows Command Shell`”. That runs our standard installer (the same one you get from betaplace).” [Those back-ticks are my first Monad inside joke!]

Monad team blog now up!

One of the shames about our team is that not all of the brilliant members have blogs.  One could also argue that none of the brilliant members have blogs :)

In any case, we’re looking to fix that – as we now have a Monad Team blog, where other folks from Monad will have a chance to contribute.  You’ll recognize many of the names from our BetaPlace newsgroups – Jeff and Marcel have already posted a few articles.

Cracking Software to Run as Non-Admin

This is one of the lamer things I’ve done as a computer geek, and that’s saying a lot.  However, any self-respecting person does not compromise on their values.  One of my computer values happens to be “Run with Least Privilege.”

What’s a geek to do, then, when a cherished application fails to run under a non-admin account?  Often, the solution is more of a negotiation between your security goals, and the software reality.  A program scribbles all over its installation directory (in Program Files\<Program>,) so you grudgingly grant yourself full control over that specific directory.  Or, it performs a similar travesty by continually modifying data under HKLM\Software\<Vendor>\<Program>.  So, you grudgingly grant yourself full control over that specific registry key.

A new perspective … from 13,000 feet.

On Saturday, I finally got the chance to do something I’ve long waited for – Sky Diving.

That’s right.  Climbing well past the height where airplanes allow you to remove your seatbelts.  Jumping from said perfectly good airplane.  Throwing myself to the ground at 120 mph.

As soon as we landed, all I could think about was doing it again.

We picked http://www.skydivekapowsin.com as our drop zone, as they offer the best rates, the highest jumps, and a great view.  They do tandem jumps from 13,000 ft (weather permitting,) unlike many other places that only take you to 8,000 with the base rate.

Desperately seeking C#? Desperately seeking Prospects!

KBCafe recently posted an entry, “Desparately seeking C#.”

I’ve gotta say, there’s a desparate shortage of technical jobs in Toronto, let alone C# jobs.  Let’s not forget about salaries – the job market in Toronto pays a LOT less than jobs in the US.  Even taking into account crazy cost of living in some US cities.

In July of 2002, I graduated from the University of Toronto with a specialist (Hons. BSc.) in Computer Science.  I also took a major in Professional Writing, and was only 1.5 credits away from a minor in Math.  (1.5 credits is 30% of a semester’s workload.)  I had a 16-month internship at General Electric under my belt, and felt well-prepared to compete with any other graduate for jobs.

Demonstration of Monad's Security Features

In an earlier post, I wrote a brief overview of Monad’s three main security features:

  • Not allowing users to double-click on Monad scripts by default
  • Requiring that all scripts be signed by a trusted publisher
  • Requiring that users explicitly invoke scripts in the current directory

The discussion was helpful, but a little abstract.  How do the security features of Monad compare to those of other shells?    How exactly do Monad’s security features prevent a scripting virus attack?  I’d like to spend a few minutes to demonstrate that.  We’ll do this from the perspective of a determined attacker, and very willing victim.