Reflecting on life, death, and what matters

I was strolling into the office liesurely one morning this week, when one of my co-workers saw me in the hallway and motioned me to hurry because I was apparently late for a meeting. I didn’t realize an invite for an early morning meeting was sent out the night before, around 10:33PM, which I was not able to see or accept.

Coming in to my director’s office, I see most of my co-workers already there, and my boss’ boss. We were just waiting for one more person who I assume didn’t check emails at 10PM either. I was thinking this must be another serious deployment issue, or a system meltdown. All I was thinking of was .. “are we in trouble .. again?“. Last year had been rough with all the work, deadlines, and flurry of activities. December was especially rough, trying to push for a deployment before everyone went away for holidays.

As my last team member came in, my director started speaking .. and I can see her face redden. I can clearly remember her saying ..

“Kevin Tu passed away yesterday morning .. ”

.. and I remember nothing else…

What did she say? I can’t have heard that right. I can feel my eyes burning up. I didn’t work with Kevin for a long time, but worked long enough to care about this person, and to feel a very deep sadness.. and denial.

Yeah I can’t have heard right. I was just bugging him about accounts we needed to create and accounts we needed to audit. He was just telling me what he did on his “staycations”. I was just at his cubicle promoting why “neighbor times” are good. We have so much work that sometimes I don’t realize time just flew by. Before I realize it it’s already 3 or 4PM. Whenever this happens, I get up and go to my neighbor cubicles, and ask how they’re doing and getting them to take a 2 minute break from staring at their computers. He was just making fun of me because I was so fast in responding to freebie emails from our local tech mailing list. An email goes around about stuff that will be thrown out – old printers, projectors etc – and I managed to snag a couple even before he saw the email.

I am feeling guilty too. When he started missing work, I should have asked around about what’s happening. But I’m the type of person who doesn’t pry. I think that if I needed to know it, or if they wanted to share the information, people will volunteer the information. If not, I don’t pry about it because it’s most likely none of my business. And I want to give people that kind of privacy. I realize maybe I have done this to a fault. I *should* have asked how he was doing and why he was missing at work. I *should* have never assumed that he was just on vacation. Had I asked, and had I known, the least I could have done was get some of my other co-workers together to visit him.

And now it’s too late. Too late to have helped him in all those account creations. Too late to bug him about how fast he goes up 5 flights of stairs. Too late to have asked why he missed days at work. Too late to have been considered a friend. But it does not erase the fact that he has touched many lives, including mine, and I will always be grateful I’ve been given the chance to know him albeit very brief.

Kevin’s death can’t help but put things in perspective. I can’t help but think about my own life and how I am choosing to live it. Is it enough? Am I doing things that matter? Am I making the most of my life, am I making the impact I am hoping to make, am I spending my time with people I care about? I’ve recently come across Joe Webb‘s article “I am choosing to cheat” and I can’t help but ask myself a lot of questions. A lot of hard questions. What matters to me, and with my limited time, am I giving enough time to the people that matter most to me? Do they know they matter to me? Have I told them? Have I shown them?

I don’t think I will ever be answer all of these questions that are going through my mind right now. But maybe that’s just part of life’s wonders.

So .. I guess this is life. As I grow older, I experience and appreciate better this adventure called life. There are ups and downs. Good and bad. Achievements and failures. Joy and pain. There’s confusion, fear, regret, bliss. And there’s loss. And healing. And hope.

A memorial page has been set up in Kevin’s memory. Please consider donating.
http://donate.bccancerfoundation.com/site/TR/Events/Fuse?pxfid=10508&fr_id=1340&pg=fund

VN:F [1.9.7_1111]
Rating: 9.5/10 (2 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

Resolving PowerShell V3 ISE error with Invoke-Sqlcmd

The PowerShell ISE is much improved in V3, needless to say I am really enjoying writing scripts with this tool! It is however, not without hiccups.

I was trying to run the Invoke-Sqlcmd cmdlet when I got the following error in the PowerShell ISE

Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

Basically just means PowerShell has support for side-by-side runtime, and we need to specify an activation policy in a config file. The config file name must be placed in the same directory as your exe file, and must be named the same as your exe file, plus a .config extension.

Solution

1.Create a config file for the powershell_ise.exe called powershell_ise.exe.config and place this in the PowerShell directory:
C:\Windows\System32\WindowsPowerShell\v1.0

2. Add the following to your powershell_ise.exe.config file:

<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> </startup> <runtime> <generatePublisherEvidence enabled="false" /> </runtime> </configuration>

Thanks to Richard Fennel’s post “Mixed mode assembly is built against version ‘v2.0.50727′ error using .NET 4 Development Web Server”, which helped me fix this issue.

VN:F [1.9.7_1111]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

Significant Changes to SQL Server 2012 Editions, Licensing

As a gist, the new SQL Server 2012 will have a new set of editions:
- Standard – will be the new basic version
- Enterprise
- Business Intelligence
- Developer
(no more DataCenter, Workgroup and Standard for Small Business)

For licensing, Microsoft is doing away with per processor licensing – but replacing this with per core licensing (licenses to be sold in 2-core packs). And for a VM, you pay for virtual cores.

Cost breakdown nicely explained and tabulated by Glenn Berry here: http://sqlserverperformance.wordpress.com/2011/11/10/sql-server-2012-licensing-and-hardware-considerations/

Find the official transcript here:
http://www.sqlpass.org/Community/PASSBlog/entryid/380/Preparing-for-SQL-Server-2012-What-You-Need-to-Know.aspx

Link for Licensing Options for SQL Server 2012:
http://www.microsoft.com/sqlserver/en/us/future-editions/sql2012-licensing.aspx

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

Installing SQL Server Denali CTP3 Weird Issue – Invalid Handle

I was busily preparing my new VMs all night (shiny new VMs!!). Planning to get 2 Windows 2008 R2 Enterprise boxes out as my new playgrounds, one as a Domain Controller, another one as my new Denali CTP3 box.

When I was starting to install Denali, not long after launching the install, I got this weird issue just as I was clicking next on the Product Key window:

SQL Server Setup has encountered the following error:
The handle is invalid. (Exception from HRESULT: 0×0070006 (E_HANDLE))

At first I was thinking maybe my ISO was corrupt, or my VM was wonky! Good thing I stumbled across this old connect post about sql2k8 rtm (dev x64) failed install. Quoting the last answer:

This is a MSDN version so the product key is pidded but it is not enabled as read-only. So, when you’re presented with the product key dialog, you can muck it up.

To reproduce, simply select the “Specify a free edition” radio button without changing the shown PID, then reselect the “Enter the product key” radio button (again without changing the PID) and continue with the installation.

So to recap, the solution is to select the “Enter the Product Key” choice (yup, even if it’s blank). That’s all it took, worked like magic.

VN:F [1.9.7_1111]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

I wanted (needed!) to write a script to automatically generate a number of reports based on sets of parameters. Most of the scripting I’ve done before are for straight up parameters that I can pass using SMO or through the URL string.

This time, I had a cascading query-based parameter, ie one parameter that is filled out based on another parameter. I was doing my usual drill with PowerShell when I got the following infamous error:

“This report requires a default or user-defined value for the report parameter. To run or subscribe to this report, you must provide a parameter value.”

Which is weird because I did provide all the required parameters. A quick search leads me to a few blog posts, most of which mentioned that it’s because of my query based parameter. Most also suggest the resolution is to convert my parameter which has query-based parameter to be non-query based.

The only problem is I can’t. And I don’t want to. That’s not a resolution. This report is meant to be used both by users for ad hoc purposes, and for massive downloading for month-end reports. Removing the query-based values for a parameter *IS NOT* a resolution. Not for me anyway.

Read the rest of this entry »

VN:F [1.9.7_1111]
Rating: 9.8/10 (4 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

Download SSRS Parameterized Reports in PDF with PowerShell

Here’s a short PowerShell script that :
1. Connects to your report server
2. Loops through a set of parameters stored in an array
3. Saves the PDF version of the report to a local folder, with appropriate names

Here’s a snippet of code to set your SSRS parameters programmatically using PowerShell

  $params = $null;
 
  #set parameters
  #here's a sample usage http://msdn.microsoft.com/en-us/library/microsoft.reporting.winforms.reportparameterinfo(v=vs.80).aspx
  $params = new-object 'Microsoft.Reporting.WinForms.ReportParameter[]' 3
  $params[0] = new-Object Microsoft.Reporting.WinForms.ReportParameter("FISCALYEAR", $fiscalyear, $false);
  $params[1] = new-Object Microsoft.Reporting.WinForms.ReportParameter("MONTHENDDATE", $monthenddate, $false);
  $params[2] = new-Object Microsoft.Reporting.WinForms.ReportParameter("SALESGROUP", $salesgroup, $false);
 
  $rv.ServerReport.SetParameters($params);

Of course this is just a sample, you can definitely extend this by using SMO to automatically pull parameter values, or use values stored in a file (among a million other things you can do with ubercool PowerShell)

Read the rest of this entry »

VN:F [1.9.7_1111]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

Daring to Dream .. What It Means To Be an MVP (for me)

Just this week, UBC launched of a very ambitious campaign. The tagline is “Start an Evolution” – UBC is launching the biggest fundraising campaign in history. I am very proud to be part of this organization .. albeit in the shadows (I work on the databases, you see).

For the unfamiliar it probably sounds like just a “money thing”, but for those who are familiar, it is more than just raising money. It is all about building opportunities for students, inspiring them to become what they can become, and empowering them to take on challenges that they otherwise may not be able to take on by themselves. It’s about daring to dream. It sounds so cliche, but that’s what it is.

One example, there was one group of students, inspired by their professor and funded by someone who believed in the dream, went on to do an investigative journalism piece that won an Emmy. There are lots more inspiring stories like this (Read these success stories) … We have to remember that the littlest drop, the littlest change, can cause ripple effects of unfathomable lengths.

Somehow, this is what it feels, and means to be a SQL Server MVP – for me…

Just today I opened my inbox, and I saw an email saying “Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! …”.

“huh … gasp!!!” …. I literally had to pause, and re-read my email. Because this is something I did not expect at all. I knew I was nominated, but knowing there are so many other great, expert SQL Server Professionals who are up for the award, I knew I didn’t have a chance.

But … I still dared to dream. Long before I got the email, I did dream and thought it might be nice to get the award. I’d be a hypocrite if I told you getting the award didn’t matter. For me, it’s this nice warm fuzzy feeling knowing that somehow, you’ve been noticed, and that somehow there’s this appreciation for some of the things you’ve done.

However, the MVP award is NOT the be-all end-all reason I’ve poured hours of work answering emails or writing articles or giving talks. I don’t know what it is about SQL Server, but I truly enjoy working with it. I truly enjoy writing the queries and reports, and answering the questions that can’t be easily answered. I like uncovering truths, although it’s not always a party if you’re the bearer of the not-so-great message (Sorry sales are really down). I enjoy being able to troubleshoot these sometimes really cryptic error messages that creep up to servers and seemingly harmless installs and configurations (@sqlbelle - 1, SQL Server – 0! Cha ching!).

I may not be the best at all things SQL Server, but with everything I’ve done, I’ve poured my 110%.

Some people may know I have been teaching at BCIT for a while now, for me I consider this more than just a contract job. Because if it was just that I could have gladly moved to more lucrative contracts. But I consider my teaching at BCIT a passion, and almost a mission. I hope to be able to make a difference, to inspire someone – one out of ten, one out of a hundred, one out of the 10 years I’ve been with the institute. My courses are primarily SQL Server, but I hope in some ways it’s also beyond that. I hope somehow through the courses, students realize that they should pursue what makes them happy. Of course I try to infect my SQL Server enthusiasm to my students – sometimes it works, sometimes it doesn’t. But that doesn’t mean my efforts are in vain (or so I would like to believe).

I probably almost sound like a hopeless romantic (and how unfitting is that in a supposedly technical blog) .. but I really believe you can dare to follow your dreams. You can dare to find what it is that makes you happy. (Joseph Sack just posted a link to this New York Times article – Do Happier People Work Harder? ). And as Confucius says:

Choose a job you love, and you will never have to work a day in your life.

I’m glad I discovered my passion. Yes I know this sounds cheesy, but working with SQL Server makes me happy. Everyday at “work” is not really “work”. It’s another SQL Server adventure.

I dared to dream. Now, I dare to make my ripple effects, however small or large they may be.

PS Thank you Microsoft, for awarding me the MVP. Another source of inspiration .. I still have the warm fuzzy feeling.

PPS Thank you, whoever you are who nominated me. Gesture is very very much appreciated.

VN:F [1.9.7_1111]
Rating: 10.0/10 (11 votes cast)
VN:F [1.9.7_1111]
Rating: +6 (from 6 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis

VANPASS August 2011 – SSRS Beyond 101

Just wanted to say thank you to everyone who attended the August 2011 VANPASS meeting at the Sierra Systems building. And thank you to the August sponsors Sierra Systems and QueryWorks Solutions!

If you need to contact me with questions or comments about the presentation just send me an email at

donabel dot santos at queryworks dot ca

Here is a recap of the presentation:

SQL Server Reporting Services – Beyond 101

In this presentation we will look different ways of using and extending Reporting Services.

Topics will include using and customizing charts, using expressions for common (and not-so-common) Reporting Services tasks, creating drilldowns/drillthroughs, querying SSRS metadata using custom code, and using Reporting Services to connect to non-conventional data sources (MySQL and other data sources). We’ll also include a few tricks (like PowerShell!) you might not have known about SSRS!

This presentation will be demo-filled. You’ll be sure to go home with ready-to-use tricks up your sleeve.

I will also be posting some SSRS tips/tricks at QueryWorks blog :)

As promised here are the files:

VANPASS – SSRS Beyond 101 Presentation – Donabel Santos – sqlbelle

VANPASS SSRS Beyond 101 – Aug 2011 – RDL Files

VANPASS SSRS Beyond 101 – PowerShell – SSRS Viewer.PS1

VANPASS SSRS Beyond 101 – PowerShell – Download RDL.ps1

SQLSaturday65 – SSRS from the Ground Up CheatSheat

VN:F [1.9.7_1111]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.7_1111]
Rating: 0 (from 0 votes)
Share :
  • Digg
  • del.icio.us
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • TwitThis
`