Saturday, September 06, 2008

Confidence == Self.Comfort in {Knowns, Unknowns}

Confidence != Perfection;

Confidence != Arrogance.Hide(Inferiority);

What do we do when a user asks for a facility for a matter of convenience and where the cost of providing such convenience far outweighs the value of the time saved from the convenience?

There's a dictum that states: "Customer is King." If we want to be responsible subjects to our king, it is our duties to say to the King: "Your Majesty, if you wear this 'clothes' you will be naked; is that what you really want?" and instead of: "Yes Your Majesty, we will use the finest invisible silk thread to match the invisible royal garb you ordered."

Friday, April 25, 2008

Information is to knowledge as...

Bit is to Byte.

Byte is to data.

Data is to information.

 

A computer is such a nice tool to collect, prepare / process, and consume knowledge. But nice is different from easy. The level of ease in using computer for the aforementioned activities however are usually inversely proportional to one another. For example, if it could be considered easy to collect data, it can be reasonably said (and observed) that the data processing is relatively more difficult than the its collection; or so the logic dictates, for what it's worth.

Fast forward to preparing cubes for SQL Server Analysis Services, I found myself trying to figure out how to prepare an ease of processing for my work product's audience, starting with its setup. After a little bit of struggle through the various binaries in my machine, I found the following steps helpful for those of you trying to do the same:

Local environment variable path setup:

  1. Add to your local environment path an entry pointing your VS.2005 IDE location (screen Evp1.1 - 1.4).
  2. Add to the same local environment path another entry pointing to the location where you find Microsoft.AnalysisServices.Deployment.exe, if it isn't already there. (Notes local environment path entries are separated by semi-colon).

Screens:

Evp1.1evp11 Evp1.2evp12

Evp1.3 evp13 Evp1.4 evp14

 

The lazy version:

  1. prompt:> devenv [solution filepath and filename] /deploy

Well... sure you might run into a couple of pop-up dialogs, but just a couple of OK clicks without knowing what they mean will put you back on the processing track. No worries though, even when you don't click the buttons until the end the show will go on until completion with the exception that the thread is still be hanging until said clicks are made.

If you're bothered by the only seemingly semi-autonomous run (since you still may be needed for those two manual clicks), here's another way to do it... properly... starting with the same local environment path setup steps above, then followed by these steps:

  1. Build the .asdatabase file from your solution file using prompt:> devenv [solution filepath and filename] /build
  2. The deploy using prompt:> microsoft.analysisservices.deployment [solution filepath]/bin/[project name].asdatabase /s:[deployment log filepath and filename]

A word of caution: Don't be alarmed if your screen seemingly freezes during the deployment; this will likely be the scenario depending on your hardware configuration and the volume of data in your database that Analysis Service engine processes.

Why do we want to go through this when we can just load the solution file in VS.IDE then with just a few clicks to the above easily without having to memorize seemingly arcane and puzzling commands and steps? There are several different answers to this, but my favorite one doesn't have anything to do with it as knowledge that reliable technician needs to have; rather, it has to do with the pursuit of knowledge itself.

If our knowledge is the sum of our experience, and if we postulate that human beings learn more from difficult experience than an easy one, then it follows that by doing the above steps we will retain this knowledge longer that had we just done the usual mouse-clicks. And that my friend is what knowledge is to an application...

Friday, April 11, 2008

Joy is...

A smile in spite of what's around.

You know... these days I sensed a lot of unhappiness around me—not from me, mind you—around me. So I took a few minutes out of my day and scoured the Internet to see if I could find some quick, inspirational statements people say about how we can reach happiness since I don't seem to be doing well in inspiring happiness for others.

Here's what I found:

From Dennis Wholey:
Quote #1: Happy people plan actions, they don't plan results.
Quote #2: Expecting the world to treat you fairly because you are a good person is a little like expecting a bull not to attack you because you are a vegetarian.

Here's another from our favorite genius, Albert Einstein:
Quote #3: If you want to live a happy life, tie it to a goal, not to people or things.

From an unknown smartie:
Quote #4: Happiness is not the absence of problems but the ability to deal with them.
Quote #5: Some pursue happiness; others create it.

How are these useful for me? Eeh, they aren't new to me, really; they're what I already naturally use for me. And I'm happy in a happy-go-lucky-sort-of-way-kind-of-guy; see if these could be as useful for you as they have been for me.

Thursday, March 27, 2008

To be gainfully employed is...

A rather challenging act to perform.

It's not just about having a job nor about the money that the job brings.

It is a constant juggle to balance our personal and professional lives.

I've shared with many people I encounter in my careers a personal attitude that may help reduce one's own stress in a work setting and be able to feel secure on and of our own: that work is just a vehicle for us to meet new friends and earn income to support our family.

Professionally, the level of quality of my output and my team's output is much less driven by our individual talents, but more about the principles we go by and use in our teamwork:

  • Kanban: Just-in time (classic production understanding in manufacturing industry of what's now called Agile in the software industry).
  • Kaizen: Continuous improvement; our work is never done, even when the output has shipped. This translates personally to set a goal where we can pace ourselves according to our health and ability and professionally to always understand that the best we deliver today should hopefully be better tomorrow.
  • Gandhi engineering: A combination of irreverence toward established way with a scarcity mentality that spurns superfluities while at the same time maintaining consistency of applying the principles in play.
  • Einstein tolerance: That can't be paraphrased, but simply understood in what Albert Einstein himself said: "Great spirits have always found violent opposition from mediocre minds. The latter cannot understand it when a man does not thoughtlessly submit to hereditary prejudices but honestly and courageously uses his intelligence and fulfills the duty to express the results of his thoughts in clear form", to help us maintain composure in an adversarial environment. This also relates to what I wrote earlier in my post: The 道 of Writing, the sublime of Work Ethics...

Thursday, March 20, 2008

A customer is NOT always right

1. If he is belligerent and makes my team and employees unhappy.

2. If a customer makes me choose between unreasonably serving his business or my relationship with good colleagues and employees. My employees come first. (This is along the line of: "If an employer makes me choose between unreasonably serving his business or my devotion to my family. My family comes first.)

3. If his business is bad for my business: we all have a finite amount of resources serving a customer that does not further our own goal. For example, serving a bad customer who takes so much more time and efforts where consequently we are unable to provide an equal or better time and service for a good customer, we'll have to say goodbye to the bad customer.

4. If he is unreasonable despite our best effort to serve him/his company with a good service, and that they have been receiving good attention and services.

5. If we happen to get a glimpse, somehow, that he doesn't treat {another person | his own employees | general public} fairly and with dignity as it is a telltale of what is to come for us as an outside vendor.

Friday, February 01, 2008

Holy chocolate fudge!!! Quick! Show the window pronto!

The first month of 2008 came and went.

We've gone through 31 days of a new year so quickly, we barely had a chance to reflect on the past year due to piles of backlog tasks that seems to increase faster than we can keep up. It's a blessing and a curse.

Speaking of a curse, I was in the middle of debugging an application last night and was unable to find the Immediate Window in my VS2005 IDE. It had been there before; I sought for it in all of the menu and sub-menu items and couldn't find it. I still don't know what caused its disappearance. Perhaps it was a recent VS2008 IDE installation that might've affected the 2005 environment settings; perhaps others unknown reasons.

Suddenly, a simple thought sprang to mind bulb : go to Tools/Customize/Debug and simply add it back-in to the menu bar and my shortcut toolbar. Et voilà! My indispensable Immediate Window returns; and all is well.

Thursday, January 17, 2008

What a great {insert a nerdy title here} feels:

  • I don't need to prove I'm 1337 to know I am one.
  • I don't understand the end-user, but I'll always try to.
  • My end-user is the reason I have a job.
  • Patience really is a virtue.
  • Nobody likes complicated stuff.
  • It's better to be perceived as inexperienced but a quick study, than experienced but a slow poke.
  • Knowing the subject well is better than knowing how to code well.
  • If I don't know how to code it well, give it to someone who does, then learn from it.
  • $1/day for 365 days is better than $10 for only 30 days. Long term builds trust, character and wealth; short one brings false sense of confidence.
  • Each new job feels like my first job; done with great excitement, else it could be my last one.
  • Get completely in or get out, capiche?

Friday, January 04, 2008

2008

A few days into the new year, a sleeping sick baby and an offline HQ—I found a few moments of peace.

So here's a piece of advice: When trouble brews, be calm and proceed to the nearest exit, brew a cup of hot cocoa, lounge, and read.

If your trouble is specifically of the message:

"The current identity (NT AUTHORITY NETWORK SERVICE) does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\V2.0.50727\Temporary ASP.NET Files'. This error may be cause by having installed visual studio C# or by group policy settings."

Please, oh please don't manually assign the permission to the folder through the folder property; you should instead run the following from a command prompt to wish your trouble away:

prompt:>c:
prompt:>cd \windows\micro*\frame*\v2.0*\
prompt:>aspnet_regiis -i -enable

Happy New Year!