Career Growth

FREE MCTS SQL Server 2008 DBA 71-432 and BI 71-448 beta exams

SQL Server 2008 Beta Exams Extended, Open Invitation. [more]

All SQL Server developers are invited to take the following beta exam for free.

71-432: TS: Microsoft SQL Server 2008, Implementation and Maintenance – this is the successor of 70-431 (for SQL 2005)

use promo code for 71-432 = 943F6

71-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance – this is the successor of 70-445 (for SQL 2005)

use promo code for 71-448 = B6543

Beta period runs until July 31, 2008 (for both exams)

Also note that the live versions of these exams will be 70-432 and 70-448. 71 I believe is used to indicate exams in beta stage.

Goodluck. Ohh yes again, it’s for free so I would suggest you register now at prometric ( for a start).

Career Growth

My Safari Online Subscription and The Pragmatic Programmer – From Journeyman to Master

A few weeks earlier I decided that I should get my personal Oreilly Safari Books Online subscription so I did. Although it does cost something (what doesn’t) and something that might not be a good idea for others I’d have to say that I find it very useful and effective. Let me share my thoughts [more]

I enjoy buying books and I do entertain stuffs like speed reading and other techniques but as most of you will attest, reading technical books might not be really applicable for speed reading (though again I’m no expert). I definitely try to use speed reading for news or pleasure reading but my mind has conflicting ideas about speed reading and the concept that the more senses are involved in learning, the more it becomes effective. Thus it does help if 1) you are holding, feeling and somehow smelling the book (not sniff it but even at a distance you can technically smell it) and 2) doing the examples in it.

But even with the points above about buying hard copies the fact is that here in the Philippines not much good books are available; even those considered by some as must reads. I see a lot of books about Java, C#, C++, HTML and books about how (how to do this and that) but not books about the why. (I could be wrong but mind you for someone who goes into bookstores when I see one, I do know). So most of the books I have and need to read I get from Amazon (and yes the amount bieng paid for Customs/Tariffs is not helping either) and most of good programmers/developers I know does that too. I also have tons of ebooks stashed away in my portable external drive and although I always bring along with me but I haven’t even read 1% of them.

I like to scan, read a little and jump to the next book, it may be good but if you keep on buying and just reading 1/3 of it then that’s a problem coz books cost money. It is worth the money if you do get a lot from it but as I’ve said, not reading in full is my problem and there’s also that valid argument that you only have limited knowledge of whether or not the book is good like book reviews, table of contents or excepts but it’s not always available or reliable. I also sometimes spend hours just trying to organize (categorize, unzip and rename) my ebooks (yes admitedly some of them are copyrighted books which I haven’t purchased but a little read and I like them I do) and books which is such time consuming if not a complete waste of time.

So to make the long story short, I got a safari subscription. Apparently Safari Library is not available here so got the Max 10-slot Bookshelf (along with 5-slot is the one ones available) which I eventually downgraded to Basic (no feature to download PDF chapters – don’t really need it) and so works pretty well so far. I haven’t read much so there might even be a chance that I’ll get it lower to 5 and just upgrade again if necesary. Turns out I don’t really need much slots. Safari Library (the no slot/limits plus access to rough cuts (early access to upcoming books) and videos still sounds like a good idea for me if it does become available to the Philippines but for now, it’s a good thing since I’m forced to select and decide well on what the best books to read and somehow gives me focus on what to read. And weird enough, although the books I’ve purchased costs more (a lot more) I feel that I must make the most of what I pay for monthly with this subscription so I tend to want to read more when I can (note: busy with work and stuff so only “want” and don’t always have the luxury to read aside from those directly related to the project at hand.

So this is my safari bookshelf story and for those who might just have the same concerns with path to learning as I do, try to look into safari if you haven’t yet. For me, it’s well worth my money. You can also ask your employer to subscribe for your team and that would work but I’d probably still get my own personal subscription just for the push/pressure to learn more from it (yes I enjoy my work and reading but the push is for the time constraints).

For my first recommendation. The Pragmatic Programmer: From Journeyman to Master

You might you know a lot there is to programming but have a little look and if the concepts are new to you then you should read this book. Truly, it a book from journeyman to master. You’d also be surprise how some of the concepts have been around for some time but still applicable for today and that you might even applied in your previous works unknowingly, how you thought things should be done but not how your company or people around you do it. It always feel good to be assured that there are people out there who think the same way you do or at least makes you think again if you’re really doing things right or wrong.

This not your typical book about “comment your code”, “indent your code”, limit lines of codes to X lines but more. Those concepts are good but there’s not everything that makes a good programmer/developer and a good software eventually.

I’ve read a couple of other books, a few of what other’s consider are of the same rating as this one but so far if you have to pick a book to become a good developer, start with this. For book on software developer this is pretty short and concise but IMHO every point is worth noting. And though different from Head First books (which I enjoy too) you’re likely to enjoy this one. 🙂 If you didn’t then let us know why we should think otherwise.

If I do find and read a book worth putting this aside then I’d be happy to but for now, again grab this one and let’s work building a world with less code/apps that are nightmare to read and maintain.


  • Fight software rot;
  • Avoid the trap of duplicating knowledge;
  • Write flexible, dynamic, and adaptable code;
  • Avoid programming by coincidence;
  • Bullet-proof your code with contracts, assertions, and exceptions;
  • Capture real requirements;
  • Test ruthlessly and effectively;
  • Delight your users;
  • Build teams of pragmatic programmers; and
  • Make your developments more precise with automation.
Career Growth Tools and Utilities

Code Generation with MyGeneration

I had the chance to grab and have a short look at MyGeneration for a few hours over the weekend and I should say I'm quite impressed with the features that it has. [more]

In one of my previous companies we developed our own custom code generator to fit the company's standard process/way of doing things (or more accurately our boss' way of wanting to do things). Being tied to the company's own way of doing things it had a number of constraints such as relying on naming conventions in database tables, support for other databases and only supported generation of C# for the data access layer. Not to mention it's proprietary. The reason I mentioned this is that I think it is safe for me to say that I knew how hard it can be come up with a decent and flexible code generator which supports templates and doesn't require a recompile to even just change the layout of the output. The code generators I've mentioned earlier involved parsing the template and doing simple to complicated string replacements but when I saw MyGeneration, it's awesome.

Unlike custom code generators like the ones I've worked before (and other commercial generators) that is a little more close to one-click code generation though, MyGeneration is more of a text/file (could be code or not) generator which enables you to generate your output(s) given information of your database's meta/structure (tables, columns, indexes, primary keys, foreign keys, views, stored procedures etc) and controlled via templates. The templates can be written in C#, VB.NET, vbscript or jscript and it is in these templates that you say loop inside you table collections and generate your create/insert, retrieve/select, update, delete (CRUD) stored procedures. Did I mention that there are already a good number of templates for generating stored procedures and data access layers for for some known OR/M frameworks? And if they are not enough like and you would want more control over the generated text/code and you happen to know the languages above then go ahead and create your own templates.

You should really go over to the MyGeneration home and familiarize with it, download the stuff. There is also this one link to a video (in youtube and Google video) to get you started. Mind you the resolution of the video is very bad but it still got me through so it's really trivial.

Moving forward, there are already those available for generating CRUD stored procedures which although also includes generation of stored proc by PrimaryKey I needed more such as stored procedures for every index in the tables I selected. I was a bit hesitant since I don't really have the luxury of time but I modify a template anyway and after a few minutes (yes minutes) I was able to come up with one that fits my needs. Yes that's how easy it is and considering that I did it in vbscript (since I modified an existing vbscript template) rather than C# which I'm most familiar with. Anyways, for those interested here's the content of the modified template.

UPDATE 6/22/2008 : as promised uploaded *.vbgen containing the template (not just the actual content). Just drop it inside Templates/Microsoft SQL Server folder and you'd now see it in your Template browser.

Modified dOOdads template for stored procedures with select by indexes follows: RDG_SQL_StoredProcs.vbgen (18.75 kb)

Ohh did I mention that MyGeneration is open source (BSD license) so create as many copies and modify if you have to.

If you already have a code generation of you're own doing then I would still suggest looking into MyGeneration and see it's features and you're really in for a lot of learning. You could either move features of your CG to it and help the community maintain it or get some ideas to your own and credit MyGeneration for it.

If you have the budget then you might want to look into CodeSmith. It's text/code generator too, is commercial but there are templates (such as .netTiers) which aside from generating the code also generates the Visual Studio projects/solutions along with the data access layer. It is likely to give you the same control over generated output as with MyGeneration but I haven't really looked more into this since I'm not looking into a
commercial product as of the moment but will be sure to keep you posted
if I do. As of the moment CodeSmith has schema providers (allows you to look into and retrieve database meta information of MS SQL, Oracle and MySQL as of the current version) but MyGeneration myMeta API supports more providers and has more templates for non .NET code. You have the source code too so if you need to support a custom database/store that you have it is possible and likely relatively easy to create you're own meta provider for MyGeneration too.

Finally, for some people (including a part of me) who are more comfortable with having
much control over their code rather than generated you might hesistate but if you'll be the
one calling the shots on how it would be generated, how much different
could it be? Literally you could save hundreds of hours.

A more detailed comparison might be in place soon but have to get back to work 🙂 Hope you'd get a lot from MyGeneration and this post.

.NET Career Growth

Resolve Namespace (Visual Studio, Resharper)

How do you "autogenerate" a "using" namespace for a class you typed in Visual Studio? Read along… [more]

I've seen a couple of presentations (in-person, online et al), webcasts etc where there the presenter typed a class name, highlighted by Visual Studio because the namespace cannot be resolved (no using directive or class was not prefixed by the correct a namespace – fully qualified name if that's the right term – though I think it applies to assemblies only).

Anyways, most if not all the time, what they do is add and type the using "directive" (not sure if directive is the right terms, if not then you may call it "usings") manually. There could be a some benefits this in presentations, like making the point clear that the namespace must be added (and what namespace it is). But if the audience are intermediate to advanced level, I think we can do away with it.  However, even in those cases, most are still doing it by typing manually.

I have nothing against this of course but for those who aren't that well versed enough of the numerous namespaces out there, the "resolve" feature in Visual Studio might save you a little time spent coding rather than finding which namespace it is in. Note however, that this only works if the DLL/assembly containing the namespace is referenced in the project. And the spelling and case sensitivity of the class is correct (at least for C#, not sure for VB). Even then, I'm sure a number of us knows the exact class name but not very certain about the namespace (or maybe we just want to save a little time, there's nothing wrong with that).

So to resolve the namespace in Visual Studio (2005, not sure about 2003 yet, but for sure 2008 has this too), here are the steps: (using StringBuilder as the class for this example)

1. Type the class name (make sure you type at the appropriate place/usage – otherwise, you might not be able to resolve properly if you have syntax errors around that area)

2. Right Click on the typed class name

3. context menu should appear and you should see a resolve context menu item (like the one below) 

4. Under the resolve context menu, you generally have two options. The one at the top (henceforth called "upper" option) will create a "using" directive on top of the you class file (something like what's in the image below)

Or if you choose the "lower" option, you Visual Studio would prefix your class with the correct namespace (if you have a reason not to use "using"). 

Also I did mention "generally two items". This is because there can be
more than two. Say if there are classes (with the same name) belonging
to more than one namespace. Each namespace will have a corresponding
menu item for the "upper" and the "lower" options.

So that's all ther is to it.

Finally, if you have Resharper (using v3.1 – and if you don't I suggest you give it a try) then when you hover over the class with the missing namespace you should something like:

Or as indicated in the menu that popped up, you can also place your cursor on the class then press Alt + Enter and the using directive will be added (not sure how to come up with the "lower" option in R#).

So there you have it. I believe one of the underutilized, simple yet productive features of Visual Studio. I suggest you try and use it and I wonder what reasons could make me think otherwise. If there is any.


Career Growth

Link: WCF, WPF, WF exams live today

Just a quick announcement that the following MCTS exams went live today.

70-502: Windows Presentation Foundation

70-503: Windows Communication Foundation

70-504: Windows Workflow Foundation[more]

Those who took the related beta exams should expect results this week (according to Gerry). Don’t have mine yet, I haven’t worked enough on those so I don’t expect any good results, but who knows. 🙂

click here for more info

Career Growth

[Copy To] and [Move To] Context Menu Items

I find it more productive to simply right click on a file/folder (or multiple file/folders) and be able to copy and move it/them to another folder rather than Cut/Copy, open the target folder and paste or even use Windows Explorer > turn the folder options (tree) on and drag/drop. How do you make it possible? [more]

Adding the copy to and move to context menu items is easy to find in Google (eg. here) but figured it's worth to have a note handy.

It's as simple as adding the following Registry keys:

Open your Registry Editor (eg. Start > Run > type "regedit" > OK, Go to: [HKEY_CLASSES_ROOTAllFilesystemObjectsshellexContextMenuHandlers]

To enable the Copy To Folder menu option create a new subkey called "Copy To" and set the (Default) value to "{C2FBB630-2971-11d1-A18C-00C04FD75D13}".

To enable the Move To Folder menu option create a new subkey called "Move To" and set the (Default) value to "{C2FBB631-2971-11d1-A18C-00C04FD75D13}".

Or download and run the following: CopyToMoveTo.reg (578.00 bytes) (** I suggest you open the file with notepad if you want to check and verify the changes it will be making)

Close your registry editor.

To try, right click on a file/folder (or multiple select). You should see the Copy To/Move To menu items:

Then selecting Copy To or Move To should result on a dialog box like these:

Go try if you haven't yet. I'm sure one way or another it will help make life easier for you.

Career Growth

Ateneo Professional Schools Prometric Testing Center Experience

UPDATE: Got a number of queries regarding prometric exam locations in Philippines (e.g. Makati) and schedule times etc.

To get those information please visit

For my latest ASP.NET and ADO.NET 3.5 beta exams I took them at Ateneo Professional Schools[more]. Prior exams I have taken where in DBWizards, MISNET and once at EduPro.

I am very impressed with the said testing center. Clean, quiet (with ear muffs if the silence isn’t enough for you), decent computers and very nice staff. There are two exam rooms with a good number of cubicles (guessing around 20/room maybe) and although the next room was almost full, there’s not many in the room i was in. It could have been a factor to the experience I had but I still think that even if it’s jam packed, it would still be orderly considering the place is spacious.

They don’t accept payments at the venue though. You have to pay thru Prometric’s Site (, register if necessary (for free), schedule an appointment, select exam etc. Not sure which order they come but you get the point. Their currently only accepting payment thru credit card though. Not having to worry about payments and the likes and instead concentrate on administering the exam could have contributed to this positive comment too.

Also, annoying as it would appear to others, they check you ID strictly despite recognizing your face anymore (i took two exams in succession so had a short break). It might be simple or even ridiculous for some since I’m quite sure they recognized me but for me it shows some integrity and consistency in applying rules and procedures. Despite of this, did I mention they were very respectful? I guess I did.

One last thing is that obviously they allow scheduling of appointment online. There are a few centers listed in the prometric site but if you try to schedule an exam it will just show “no schedules available for this center”. The advantage for this includes: convenience, you are assure of your seat (unlike others where they actually just place the appointment days or even hours before and some unexpected issues now and then and being able to reschedule (at least a day before I think or a certain time a day before on a certain time zone) without having to pick up, wait for someone to pickup the phone, etc etc.

So, if the payment method is not a limitation for you. I would highly recommend this center and ill take exams there myself.  See address below:

Phone: 4265982
Site Code: PH000

Goodluck to upcoming exam takers and I’m working on some review notes but just bought a new hard disk (system) for this. (ohh yes, I’m a certified hard disk destroyer, 3 hard disks so far this year 2008. don’t get me wrong, I don’t bring them around nor throw my PC, probably because I type and click too much, not to mention I blog too much) Expect a lot more notes on ADO.NET and ASP.NET (not the actual questions of course but close and varied enough to help learn and not just answer trivias) when I have my Visual Studio and SQL ready already within a few hours or days. I invite everyone to do the same too and share our notes with everyone not just in preparations for exams but to share the experience and joys of .NET. Watch out for them…

UPDATE: I got a lot of comments on this article and figured it might be helpful to do a quick how-to video (well it didn’t turn out to be quick but wanted to explain a bit more). See below

I hope it helps

Career Growth

Link: MCAD, MCSD, SQL 2000 Exams Scheduled for Retirement

Taken from Exams To Retire Page from Microsoft: [more]

The Microsoft policy for exam retirement is modeled on the Microsoft
Support Lifecycle Policy for technology releases. In accordance with
this policy, Microsoft Learning will retire 12 exams on March 31, 2009.
These exams focus on technologies that are no longer included in
Microsoft mainstream support. The exams are currently required to
achieve Microsoft Certified Application Developer (MCAD), Microsoft
Certified Solution Developer (MCSD), and Microsoft Certified Database
Administrator (MCDBA) certifications.


Developer exams that retire on March 31, 2009


Microsoft SQL Server exams that retire on March 31, 2009


Career Growth

ASP.NET and ADO.NET Beta Exams Extended

Beta Exam Promo Codes (go share them)

70-561 – beta code = 561B1

70-562 – beta code = 562B1

ASP.NET 3.5 and ADO.NET 3.5 has just been extended until May 4th. [more]

To quote “So, if you are well versed in ADO.NET and ASP.NET, even if you don’t
want the certification, consider taking one of these exams and giving
us your feedback.  They are free!

I would recommend taking the exam for a tons of reasons, including a little push on yourself to learn something new or maybe for the sake for taking an test (when was the last time you took an exam?). A lot of people hate exams but from a cognitive stand point, I think there are likely still things you can only learn from taking exams.

I think the fewer people taking the exams would make the possibility of those few who took it passing higher which might also mean more certified but less qualified people. There is a chance that because of this certifications will no longer be valued OR the bad side is someone getting hired because they have a certification (and you don’t) but only to find out he/she passed because there were only 5 of them who took the exam.

Somehow it feels like despite the certification team’s efforts, there’s not that much interest. Probably because it’s just getting harder to keep up with new technology. Just hope MS certifications don’t devalued that much that fast. If inevitably the industry won’t value them in the future anymore, it won’t be a problem for those who actually knew their stuff rather than just braindumps. But somehow, those lost times, effort, money…  I hope it doesn’t go there Laughing

Career Growth

ASP.NET 3.5 and ADO.NET 3.5 beta exam update

Notes on recently taken .NET 3.5 exams [more]

Beta exam period for MCTS ASP.NET and ADO.NET 3.5 is nearing its end and just got back from the two straight beta exam marathon today. I’m hoping I will still make those two despite lack of preparation but I did learn a lot and it was worth sleeping only for a 2-3 hrs just to make it there. Came in late also and a good thing the folks at Ateneo Professional Schools Prometric Testing Center (Dela Costa St) was kind enough to still let me take my exams.

As we all know, takers are bound by the non disclosure agreement for the exam so I can’t provide you the answers that I do remember.

But I would like to share though that the prep guide was more than helpful in preparing for the exam

ASP.NET 3.5 MCTS Prep Guide, ADO.NET 3.5 MCTS Prep Guide

Unlike previous exams which were vague and had entries that were not covered by the exam (a very low signal to noise ratio so to speak), I’m quite impressed with this one. Most if not all of the items (at least those I got) in the exam is directly or at least very closely related to those mentioned in the prep guides. The weights of each objective are helpful to (higher percentaged objectives had more items on the exam indeed).

It’s worth noting too that if you base on the exam the trend for ASP.NET is towards AJAX and communication wtih services (ASMX, WCF) while for ADO.NET it is moving towards conceptual models, linq, entity and for some reason synchronization.

Hope this helps anyone who’ll take the exam within a few hours remaining or just for the sake of getting a head start on these two upgraded technologies.