The Five-Minute Management Course

Got this one from my friend and my highschool and college classmate. :D

Lesson 1:

A man is getting into the shower just as his wife is finishing up her shower, when the doorbell rings.

The wife quickly wraps herself in a towel and runs downstairs.

When she opens the door, there stands Bob, the next-door neighbour.

Before she says a word, Bob says, 'I'll give you $800 to drop that towel.'

After thinking for a moment, the woman drops her towel and stands naked in front of Bob, after a few seconds, Bob hands her $800 and leaves.

The woman wraps back up in the towel and goes back upstairs.

When she gets to the bathroom, her husband asks, 'Who was that?'

'It was Bob the next door neighbour,' she replies.

'Great,' the husband says, 'did he say anything about the $800 he owes me?'

Moral of the story: If you share critical information pertaining to credit and risk with your
shareholders in time, you may be in a position to prevent avoidable exposure.

Lesson 2:

A priest offered a Nun a lift.

She got in and crossed her legs, forcing her gown to reveal a leg.

The priest nearly had an accident.

After controlling the car, he stealthily slid his hand up her leg.

The nun said, 'Father, remember Psalm 129?'

The priest removed his hand. But, changing gears, he let his hand slide up her leg again.
The nun once again said, 'Father, remember Psalm 129?'

The priest apologized 'Sorry sister but the flesh is weak.'

Arriving at the convent, the nun sighed heavily and went on her way.

On his arrival at the church, the priest rushed to look up Psalm 129. It said, 'Go forth and seek, further up, you will find glory.'

Moral of the story: If you are not well informed in your job, you might miss a great opportunity.

Lesson 3:

A sales rep, an administration clerk, and the manager are walking to lunch when they find an antique oil lamp.

They rub it and a Genie comes out. The Genie says, 'I'll give each of you just one wish.' 'Me first! Me first!' says the admin clerk. 'I want to be in the Bahamas, driving a speedboat, without a care in the world.' Puff! She's gone.

'Me next! Me next!' says the sales rep. 'I want to be in Hawaii , relaxing on the beach with my personal masseuse, an endless supply of PiƱa Coladas and the love of my life.' Puff! He's gone.

'OK, you're up,' the Genie says to the manager. The manager says, 'I want those two back in the office after lunch.'

Moral of the story: Always let your boss have the first say.

Lesson 4:

An eagle was sitting on a tree resting, doing nothing.

A small rabbit saw the eagle and asked him, 'Can I also sit like you and do nothing?' The eagle answered: 'Sure, why not.'

So, the rabbit sat on the ground below the eagle and rested. All of a sudden, a fox appeared, jumped on the rabbit and ate it.

Moral of the story: To be sitting and doing nothing, you must be sitting very, very high up.

Lesson 5:

A turkey was chatting with a bull.

'I would love to be able to get to the top of that tree' sighed the turkey, 'but I haven't got the energy.'

'Well, why don't you nibble on some of my droppings?' replied the bull. 'They're packed with nutrients.'

The turkey pecked at a lump of dung, and found it actually gave him enough strength to reach the lowest branch of the tree.

The next day, after eating some more dung, he reached the second branch.

Finally after a fourth night, the turkey was proudly perched at the top of the tree.

He was promptly spotted by a farmer, who shot him out of the tree.

Moral of the story: Bull Shit might get you to the top, but it won't keep you there..

Lesson 6:

A little bird was flying south for the winter. It was so cold the bird froze and fell to the ground into a large field.

While he was lying there, a cow came by and dropped some dung on him.

As the frozen bird lay there in the pile of cow dung, he began to realize how warm he was.

The dung was actually thawing him out!

He lay there all warm and happy, and soon began to sing for joy. A passing cat heard the bird singing and came to investigate.

Following the sound, the cat discovered the bird under the pile of cow dung, and promptly dug him out and ate him.

Morals of the story:
(1) Not everyone who shits on you is your enemy.
(2) Not everyone who gets you out of shit is your friend.
(3) And when you're in deep shit, it's best to keep your mouth shut!


2008 ICT rankings

Talking about ICT. A new ranking has been released by the World Economic Forum at According to their report, Denmark is still the most networked economy in the world (for 2 consecutive years). The report was subdivided into 4 parts:

  1. Findings of the Networked Readiness Index (NRI) 2007–2008, together with a number of insightful essays on selected issues of networked readiness, with aspecific focus on how it can foster innovation.
  2. Country/Regional case studies showcasing best policies and practices in fostering networked readiness
  3. Detailed profiles for each of the 127 economies covered in the Report, presenting a comprehensive snapshot of each economy’s current networked readiness status and allowing for international and historical comparison on specific variables orcomponents of the NRI.
  4. Detailed data tables for each of the 68 variables composing the NRI

The Philippines falls at 81, five ranks lower than its neighbor Indonesia who is at rank 76. I hope the Philippines will climb higher fast enough. It has many promising talents who can communicate effectively with the international community far better than any other Asian countries. As part of the ICT community, I am still full of hope. The corrupt cannot stop us from succeeding. :D.

Using Crystal Reports 10 with and Firebird

C# express doesn't include a report designer or viewer. Reports however, is very much needed when creating a business software. Since C# express doesn't include a report designer, we need to find other means. One is to use a free report such as MyNeoReport. This however may not work under many circumstances. The other alternative would be to use a proven report engine and designer-Crystal Report. Crystal Report has been used by many developers (in our city). However, using a free programming language and IDE, and a free database is very limiting. Not much information can be gathered on the net either (with regards to reporting as of this writing). Here's a way to use Crystal Reports using Firebird database and C# Express as software development IDE:

  • C# Express 2005
  • EMS SQL Manager 2005 for InterBase & Firebird Lite
  • Crystal Reports 10
  • Create the following database:
    Name: TestDB1
      Id Description
      1 AAA
      2 BBB
      3 CCC
      4 DDD
      5 EEE

1. Click on File->New and select "As blank report" (The Database Expert wizard shows)

2. Expand the "Create New Connection" folder, and expand OLE DB (RDO). A window will appear.

3. Select "Enter Connection String" and place your connection string on the text field similar to the following:

Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey; DbName=d:\firebird\examples\test.gdb;
change the parameters accordingly.

4. Click Next. It will ask you the server name, the user name and the password. Mine is "localhost", "SYSDBA", and "masterkey"
5. Click Finish
6. Select the table and click ok:

8. Drag the fields to the Details section of the report. Save your report. I used Report1.rpt.

II. Making the C# Project:
1. Create a new Windows application project.
2. Right click on the Toolbox and choose "Choose Items..."
3. Select the COM components tab.
4. Select the "Crystal ActiveX Report Viewer Control 10.0"
5. Click Ok. (The Crystal Report Viewer Control icon should now be visible on the toolbox.

6. Add a Crystal Report Viewer to the form.
7. Right Click on the Solutions Explorer and click Add Reference.
8. Click the Browse tab.
9. select the following location (or depending on where you installed your crystal report): "c:\Program Files\Common Files\Crystal Decisions\2.5\bin\" and select "CRAXDRT.dll"
10. Click Ok
11. Use the following lines of code when opening a report:

CRAXDRT.Report rpt = new CRAXDRT.Report();
CRAXDRT.Application app = new CRAXDRT.Application();
rpt = app.OpenReport("", null);
axCrystalActiveXReportViewer1.ReportSource = rpt;

12. the report viewer should then show the report you have created.

Why add RAM?

First off, let's define RAM. RAM stands for Random Access Memory. It is filled with capacitors that can do two things: temporarily carry or not carry a charge. These capacitors are arranged in banks of 8 hence the binary code (ex. 00001010). Each combination of these "bits" or charges represent a certain data. A collection of these data defines a set of instructions that a computer understands and processes. A RAM therefore, stores instructions (in binary format) for a computer to follow. Why then should we add more RAM to our computer?

We use computers because we use the programs/software that assist us in our work (may it be creating an assignment, doing a presentation for our boss, or playing computer games). These programs give out instructions to the computer and the RAM temporarily stores these instructions for processing. Like any kind of storage (ex. bucket), a RAM also gets full. A good explanation about RAM can be found at

"If someone asks you how much memory your computer has, they're not talking about hard drive space. They're asking you how much RAM your computer has. Break out those visualization skills again and this time we'll associate the Random Access Memory (RAM) in your computer with your dining room table. You sit down at your dining room table, break out paper and pen because you're going to write a letter or work on some project. You spread out your papers. Depending on how difficult the project is, you may need a lot of space on that table to organize all the tools you need to get the job done.

Just as with your computer, when you want to write a letter or work on some project, you need to open programs and spread them out within your computer's memory—it's RAM. If you have a simple note to write, you might use a little program like Notepad. If it's a more involved project, maybe you'll open Word or some special stationary program. The bigger the program, the more RAM will be needed and subsequently used.

If you have a large dining room table, just like a lot of RAM, you'll find you don't have much difficulty getting the job done because you have lots of room on that table to work. Just as your computer has lots of RAM to allow programs to work quickly."

Adding computer RAM therefore, gives you better chances of running your programs effectively.

Depending on what kind of computer you are using, you can add iMac Memory or add a DDR PC2700 Memory to a PC. Good thing is that there are many computer stores that are selling RAM and most of them are very affordable.

Adding a Footer to the DataGridView component

I have been searching for sites and forums that would give me a any hint on having a footer on the .net DataGridView control. It was frustrating. I found some, but not what I was looking for. I use windows forms. It would have been easier if I was into web. I decided to create one for myself. It's not complete, but it works with me. It needs improvement and I hope that some programmers who might pass through this blog will help me with it :D.

  1. Cannot set Footer values during design time.
  2. Can sometimes hide a row when scrolled to the last item in the grid.
What I did was just create a user control that inherits the DataGridView control and add a StatusStrip to act as the footer.

public partial class MyDataGridView : DataGridView

public StatusStrip Footer
get { return (StatusStrip)this.Controls["Footer"]; }

private bool _footerVisible;
/// Sets or Gets the value specifying if a footer bar is shown or not

public bool FooterVisible
get { return _footerVisible; }
_footerVisible = value;
this.Controls["Footer"].Visible = _footerVisible;

public MyDataGridView()
StatusStrip footer = new StatusStrip();
footer.Name = "Footer";
footer.ForeColor = Color.Black;

((StatusStrip)this.Controls["Footer"]).Visible = _footerVisible;
((StatusStrip)this.Controls["Footer"]).VisibleChanged += new EventHandler(RDataGridView_VisibleChanged);
this.Scroll += new ScrollEventHandler(RDataGridView_Scroll);
_footerItems = ((StatusStrip)this.Controls["Footer"]).Items;

The next thing to do is to compile the user control then get on to using it. We can then specify the footer's properties programmatically at the form that uses it (like add a progress bar or label to the footer).

Well, I hope someone will be able to read this blog and enhance the control.