progress

Over the course of this week, I managed to get through chapters 6 through 9, and most of chapter 10, in the 70-536 book. I’d like to have finished chapter 10 today, but I’m feeling a little under the weather, and I can’t really concentrate on anything too complex right now. So maybe tomorrow, after a good night’s sleep.

I’m hoping I can get through the remaining chapters (11 through 16) next week, then take the exam on Saturday April 3, maybe.

Visual Studio 2010 pricing

This blog entry from Microsoft has all the details about VS 2010 pricing. As usual, it’s more confusing than it needs to be. I may actually opt to pay for the $299 upgrade from VS 2008 Standard, assuming my free copy of VS 2008 Std is eligible for the upgrade price, which I can’t really be sure of.

I don’t think I’ll really need a copy of VS 2010 right away. I think I’m actually going to do the “Web Developer on Visual Studio 2005” certification path first, so that will keep me busy for a while. Then, I’ll take the upgrade exam for VS 2008, then I’ll think about VS 2010. So, no rush. I’ve actually got quite a bit to learn before I catch up with all the current .Net stuff.

more snags with my .Net studying

I hit another little snag in my attempt to get through the self-study material for Microsoft’s exam 70-536. I’ve gotten to the section on creating a Windows service, but that only works with Visual Studio Professional, and I’ve only got Standard on both my desktop & laptop. I have a license for VS 2008 Pro, from the Dreamspark account I had last year, when I was taking a class at NYU, but I need to press the ISO to DVD, then do the install (which will hopefully work OK over VS 2008 Std), then re-apply any VS 2008 patches.

This all got me to thinking about VS 2010, and what the status was on that. I haven’t really been bothering to keep up with that lately. Turns out it’s scheduled for release April 12. If I want to buy an upgrade, it looks like it’ll cost $549, based on this page. This article, though, indicates that it might be possible to buy an upgrade for $299. I’ve managed to avoid spending money on Visual Studio so far, getting my licenses through either Dreamspark or at launch events, so we’ll see if I can wrangle a free VS 2010 license one way or another.

studying for 70-536

I did get through chapters 1 to 5 in the self-study book for exam 70-536 last week. I didn’t get any reading done on the weekend, though. The books24x7 account I have through ACM stopped working. Heck of a time for *that* to happen. ACM seems to be aware of the problem now, so hopefully it’ll get fixed.

I decided to go out today and buy a hard copy of the book at Borders anyway. I had a 30% off coupon, so the book cost me about $50. I got through chapter 6 today, and will continue trying to get through a chapter or two each day, until I’m done and (hopefully) ready for the test.

The book is pretty well-written, and does cover a bunch of stuff with which I’m not terribly familiar. So, it’s worth reading regardless of whether or not I take the test.

Certifications

Opinion: Certifications are no longer optional

I’ve decided to pursue a Microsoft certification or two. According to Computerworld, this is a good idea. I’m still not 100% sold on the value of a certification at this point in my career, but, hey, it’s something to keep me out of trouble, and maybe it’ll help!

Microsoft certification

After all the changes I’ve gone through over the last several months, I’m not entirely sure what I want to do with my life next. I’ve tentatively decided, though, that I’m going to pursue a Microsoft certification, probably some variant of MCPD. I’ll have to start with exam 70-536, regardless of which path I take, so I’ve started working on that. I’m reading through the official MS Press book for this exam, via my ACM Books24x7 account. I’ve succeeded in reading a chapter a day for the last three days, so if I can keep this up, I can probably take the test a few weeks from now.

I’m not sure how serious I need to be about practicing for the test. Should I buy a practice test from Transcender or MeasureUp or somebody like that? Or just wing it?

I stumbled across this page on CodeProject this morning. Looks like something that would be worth playing with after I make it through the book.

still messing around with my tag cloud

OK, I’m still messing around with my tag cloud code. As previously mentioned, I took a bit of code from this page, and have been messing around with it. I just added a couple of minor things that I wanted.
First, I now have a [Home] link at the end of the tag cloud, if we’re not actually on the home page. Second, I now change the link into just text if we’re on the page for a given label. None of this was a big deal, but it did serve to remind me of a few JavaScript basics, such as how to do RegEx matching in JavaScript, and how to get the URL of the current page. Here’s the code:


<!– originally taken from http://phydeaux3.blogspot.com/2007/05/automatic-list-of-labels-for-classic.html –>
<div id="labelList" class="BlogBody"></div> <script type="text/javascript">
//<![CDATA[
function listLabels(root){
var baseURL = '/search/label/';
var baseHeading = "My Tags";
var isFTP = false;
var llDiv = document.getElementById('labelList');
var entry = root.entry;
var h1 = document.createElement('h1');
h1.className = 'sidebar-title';
var h1t = document.createTextNode(baseHeading);
h1.appendChild(h1t);
llDiv.appendChild(h1);
var ul = document.createElement('not-ul');
ul.id = 'label-list';
var category = entry.category;
labelSort = new Array();
for(p in category){
labelSort[labelSort.length] = [category[p].term];
}
labelSort.sort(function(x,y){
var a = String(x).toUpperCase();
var b = String(y).toUpperCase();
if (a > b)
return 1
if (a < b)
return -1
return 0;
}); // http://www.java2s.com/Code/JavaScript/Language-Basics/CaseInsensitiveComparisonfortheArraySortMethod.htm
// where are we?
var pageaddr = document.location.href;
for (var r=0; r < labelSort.length; r++){
var li = document.createElement('not-li');
var full_link = baseURL + encodeURIComponent(labelSort[r]);
var re = new RegExp(full_link + '$');
if (pageaddr.match(re))
{
// just show the text
abnk = document.createTextNode(labelSort[r] + ' / ');
ul.appendChild(abnk);
}
else
{
// show the link
var a = document.createElement('a');
if(isFTP){
a.href = full_link +'.html';
}
else {
a.href = full_link;
}
a.innerHTML = labelSort[r] + ' ';
li.appendChild(a);
ul.appendChild(li);
abnk = document.createTextNode(' / ');
ul.appendChild(abnk);
}
}
// add a home link.
if (pageaddr != "<$BlogURL$>")
{
var li = document.createElement('not-li');
var a = document.createElement('a');
a.href = "<$BlogURL$>";
a.innerHTML = '[Home]';
li.appendChild(a);
ul.appendChild(li);
}
llDiv.appendChild(ul);
}
//]]>
</script>
<script type="text/javascript" src="http://www.blogger.com/feeds/13487006926024246136/blogs/3059692?alt=json-in-script&callback=listLabels" ></script>

revised AutoHotKey script

A couple of weeks back, I posted a semi-useful AutoHotKey script, just a little script to paste text from the clipboard, but stripped of formatting. Well, I did some searching, and of course, I’m not the only person to have come up with this basic script. This guy posted a similar script, a couple of years ago. The one thing I learned from his script, which I somehow didn’t think of myself, is that, rather than sending the clipboard contents using “SendInput”, it’s better to put the text back on the clipboard, then send ctrl-V. The reason this works better is that, in most applications, a paste is an atomic operation that’s easily undoable, whereas using SendInput appears to the application as though you just manually typed out the contents of the clipboard.
I also decided to disable the macro in Excel, since I have an existing macro in Excel that’s mapped to ctrl-shift-V, and I don’t want to override that. So, bottom line, the macro now looks like this:

#IfWinNotActive Microsoft Excel 
^+V::
myStr := clipboard
myStr := RegExReplace(myStr, "s+$","")
clipboard := %myStr%
Send ^V

Still nothing terribly amazing, but very useful, and something I was living without for longer that I should have.

useful AutoHotKey script

I’ve been using AutoHotKey for a while now. I’ve got a few macros programmed into it that are pretty much wired into my brain at this point. There’s one thing I’ve been meaning to write for the last year or so, and just never got around to it. Well, I was in the middle of something on Friday, and I just decided that I needed to stop what I was doing, and just figure out how to write this macro. It turned out to be a lot simpler than I though it was going to be! Now I feel kind of stupid for putting it off for so long.

Basically, I wanted a macro that would do a “Paste Special / Text Only”. Mostly, I needed this in Lotus Notes, but there are other apps where it could come in handy. Long ago, I’d taken care of this in Word with a simple one-line VBA macro. But, I never really knew how to do this in Notes. The reason I need this, is that I’m often pasting text from Word, or a web page, or some other app, into Notes. The text goes to the clipboard as formatted text, and if I just do a straight paste into Notes, all the formatting info gets pulled in, and it’s usually not a good match for the default e-mail formatting in Notes. So, I’d settled on just selecting Edit, then Paste Special, then Text from the menus. But that’s a lot more work than pressing Ctrl-V.

Before yesterday, I’d never looked at the AHK docs closely enough to realize how simple this was. The contents of the clipboard, in plain text format (that’s the key there!) are available in a system variable called “clipboard”. So, all I really needed to do is call SendInput on that. Duh. Just to get fancy, I also decided that I wanted to trim trailing whitespace from the clipboard contents. So, here’s a simple macro that trims trailing whitespace from the contents of the clipboard, and sends it out:

^+V::
myStr := clipboard
myStr := RegExReplace(myStr, "s+$","")
SendInput %myStr%

I just have that mapped to Ctrl-Shift-V, so I can paste text anywhere, without formatting, no problem. And, yes, I could have written this in one line, but I broke it up so it would be easier to see what I was doing.

The point of this story, I guess, is that AutoHotKey is a wonderful thing, and that some things are simpler than you think they are, if you just sit down and spend a few minutes reading the docs.

programming books

I finished the Advanced .Net Programming class a couple of weeks ago that I was taking at NYU. While the class was going on, I limited my reading mostly to stuff that related to the class. I read bits and pieces of three books; I posted about those back in February.

I took a break from reading any programming-related books for the last couple of weeks, but now I’m looking to get back into something. I picked up Rocky Lhotka’s Expert C# Business Objects again tonight. I’ve had that book since 2007, I think, and I just haven’t been able to get all the way through it. The copy I have is now several versions behind. (Here’s a link to the current version.) I had read through the first six chapters previously. Tonight, I just sat down and leafed through the remainder of the book. I’ve decided that there’s nothing else in there I really need to read in depth right now, so I’m just going to drop it, and maybe pick up the new version at some point and start over with that.

Meanwhile, I also recently bought C# 2008 for Programmers by Paul and Harvey Deitel. I picked this up largely because I’d found some good stuff in an older version of the book that’s available on the Safari subscription I have through ACM. This is a general C# book, written for people who already have programming experience. It covers a lot of the newer stuff in C# and .Net that I haven’t really had time to pick up, since I first learned this stuff back in the days of .Net 1.1 — LINQ, generics, WPF, and so on. I’m thinking I should probably put this book on top on my reading list, since there’s a lot of stuff in there that could actually be useful to me at work.