Thursday, December 10, 2009

Outlook Emailer

Problem: I want to send email with important information to my 450 friends at one time. The email should be in HTML format, with appropriate font style, size, and color, and some images.

Solution: Let's capitalize MS Office Outlook and creating an application utilizing
Visual Studio Tools for Office. Visual Studio Tools for Office is bundled with Visual Studio 2008. Thus, installing the latter gives the developer access to the former. Now, open a new Windows Forms Application project then add

  • Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0
  • Office
  • Microsoft.Office.Interop.Outlook
as References. Next, design the form.


Then, add code to the Send button. First things first:

using Microsoft.VisualStudio.Tools.Applic
ations.Runtime;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;

Then

private void btnSend_Click(object sender, EventArgs e)
{
try {
Outlook.Application _app = new Outlook.Application();
Outlook.MailItem mailItem = _app.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
mailItem.Subject = txtSubject.Text;
mailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
mailItem.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceHigh;
mailItem.HTMLBody = txtMessage.Text;
mailItem.BCC = txtTo.Text;
mailItem.Display(false);
mailItem.Send();
MessageBox.Show("Message has been sent!");
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}

Thursday, November 5, 2009

MS Outlook PS #1: Error using Comma as Email Address Separator

Problem:

Receiving error message when using comma as email address separator.

Solution:

Microsoft Office Outlook 2003 and Microsoft Office Outlook 2007 uses, by default, semi-colons to separate email addresses.

You can configure Outlook to recognize the comma as a valid e-mail address separator as follows:

  1. On the Tools menu, click Options....
  2. On the General tab, click E-Mail Options
  3. Click Advanced E-Mail Options
  4. Under When sending a message click to select the Allow comma as address separator check box.
Note: You can still use semi-colon (;) as email address separator.

Wednesday, October 28, 2009

MS Excel PS #1: Place a hyperlink from one sheet cell to another sheet cell

Problem: How can I create a hyperlink to Sheet3 from a cell in Sheet1?

Solution:

(1) Use the mouse to locate the cell (say A2) where you want to put the hyperlink.

(2) Use the mouse's right button to display more options.

(3) Select the Hyperlink... option



(4) Choose the Place in This Document option at the left panel. Key in Text to display, Type the cell reference, and select a place in this document. Click OK button when done.


There you have it.

Monday, October 19, 2009

Programming for Kids

I will not be discussing programming concepts for kids but will be sharing the use of a parent having some knowledge of programming when tutoring his kid in Mathematics.

Allen is having some problems sorting out five numbers from lowest to highest and from highest to lowest. After some inquiries and testing his knowledge it appears that he is having difficulty processing all five numbers at a time. Here is where my programming experience come into play.

You might recall back in college the bubble sort algorithm. Yes it is not the best algorithm of all. However, it is the simplest of all. I find it fit for my son. So there it went. My Allen working his way out, learning to arrange five random numbers from lowest to highest using the bubble sort algorithm.

Along the way I noticed that he is lacking the basic skills to apply the algorithm and that is given two numbers identify which is lower (or higher). It is quite frustrating to carefully think two numbers, write them down on a piece of paper and shoot the question which is lower between the two and receive a wrong or non-sense response.

Well, there was a way out!

The web developer in me started to fire up and within a few minutes the below code was produced


<html>
<head>
<title>Which is larger between the two?</title>
<script language='javascript'>
function doChangeValues()
{
var randomnumber1 = Math.floor(Math.random()*101);
var randomnumber2 = Math.floor(Math.random()*101);
var ldiv = document.getElementById('leftdiv');
ldiv.innerHTML = randomnumber1;
var rdiv = document.getElementById('rightdiv');
rdiv.innerHTML = randomnumber2;
}
</script>
</head>
<body>
<div id='leftdiv' style='font-size:128px;padding:10px 10px 10px 10px;'>
</div>
<div id='rightdiv' style='font-size:128px;padding:10px 10px 10px 10px;'>
</div>
<input type="button" value="Next >>" onclick='doChangeValues()'>
</body>
</html>



Isn't it that nice? You give the computer the 'thinking' part and you just show it to Allen for his analysis and response. It's crazy and fun!

Did I mention Allen is now 5 years old? Come to think of it, he is too old past Algebra, Geometry, Trigonometry, Calculus, etc... lessons! Ok! Ok! I hear someone's gonna kill me, so I'll let Allen be a kid this time.

Thursday, September 17, 2009

GoToMeeting Codec

I am fond of registering to *free* Webinars and just got interested with "Use Case Boot Camp: Flawless Requirements...Every Time!". However, since this webinar is of different time zone, I missed attending it! Fortunately, the archived version is for free viewing: https://www2.gotomeeting.com/register/214446195.

Nevertheless, when Windows Media Player tries to stream the video it displayed the following

Clicking Web Help presents itself of no use so Big Brother Google came to the rescue and gave link to Install GoToMeeting Codec:

Clicking the Install GoToMeeting Codec button initiates download of the codec installer.


After successful download, double click the executable to fire up the installation process
Allow the installer to do its thingy by hitting the Run button


Successful installation displays the below dialog.

And there! I can now watch the webinar :)

Friday, September 11, 2009

Tracking Project Tasks using MS Project 2007

Setting up for Project Tracking
1. Navigate Tools > Tracking > Set Baseline…
2. Select Set baseline radio option and Baseline dropdown option. Click OK button.

Configure the View
3. Navigate View > Tracking Gantt
4. Display the Tracking toolbar by right clicking the mouse at the toolbar area and selecting Tracking option.
5. Turn on the Tracking Tables by navigation View > Table Entry > Tracking.

Set the Status Date
6. Navigate Project > Project Information…
7. Set the Status Date
8. Display the Vertical Line indicator for the Status Date by navigating Format > Gridlines…
9. Select Status Date from the Line to change: options and adjust the Type: and Color: too.

Set More Options
10. Navigate Tools > Options…
11. Go to Edit tab and uncheck "Allow cell drag and drop" option.
12. Open the Schedule tab and uncheck "Autolink inserted or moved tasks" option.
13. Open the Calculation tab and check “Move end of completed parts after status date back to status date” and “Move start of remaining parts before statusdate forward to status date” options.


Modify the Task Type
14. Click the upper left most corner of the Task panel. This should select all tasks. Then click on the Task Information icon at the Toolbar.
15. On the Multiple Task Information dialog, go to Advanced tab and set Task type: to Fixed Units with Effort driven option off.


Now you’re done preparing the schedule for Tracking purposes. You can now proceed collecting updates from your team and update respective task information.


Updating Particular Task Information

16. Select a Task to update and click the Update Tasks icon at the Tracking Toolbar.
17. Make your updates to % Complete, Actual dur:, Remaining dur:, Start: and Finish: options as needed. You can also add Notes….


View Project Statistics

18. After making task updates, click the Project Statistics icon at the Tracking toolbar. You can see the Percent complete: for the project.


Sunday, September 6, 2009

Management Ideas for Project Managers

The people in my office are smart, creative and self-motivated professionals. I want them to do their best and work at peak efficiency. Hence, I need to manage them effectively and appropriately. Here’s what I think will be my part:

1. I need to measure outcomes and not inputs.

It’s not how many hours people spent in the office that matters, it’s what they accomplish while they’re there. I don’t want my people taking up space, tip tapping the keyboard for hours and not accomplishing much. If they aren’t enjoying their work and their lives I wouldn’t be getting the best they can offer. So I will let them have their lives and try to keep them happy. I must layout their expected outputs and get their commitment to deliver them on a specified date. With this they will be in the office because they want to and they will work because they are eager to get things done.

2. I shouldn’t measure outcomes overzealously.

Some tasks are harder and take longer to complete than others. Just because one of my developers is getting results right now and another isn’t doesn’t mean the first is working harder, or better, than the second one. I should try to place performance baseline and measure worker execution to detect who’s lagging behind so I could support them in every means possible and get them on track.

3. I should keep my commitments.

Trust is strengthened over time. So long as I deliver what I have promised, I could gain confidence from my people. Later, whatever task I request from them to work on, they will be eager to move heaven and earth just to complete them. A commitment I make to one person may not be important to me but could be very important to them.

4. I should treat my people decently.

I do have people who don’t think like I do, who don’t share my values, who are very different from me. Even then I need to work at achieving and maintaining a comfortable working relationship. The key is we may argue on how our goal can be hit but we will be working together no matter what and hit it.

5. I should remain approachable and a good listener.

Even my best worker will need my help from time to time. There are other places they can go for help but as long as they’re in my office I will make myself available and do my best to ensure that my people feel free to turn to me with any questions or concern.

6. I should establish reasonable policies, communicate them clearly, and stick to them.

It would be impossible to anticipate every possible conflict but having a set of simple and rational guidelines will go a long way toward diffusing and avoiding conflicts. I will make sure everyone knows these rules ahead of time and enforce them consistently.

Thursday, September 3, 2009

Project Management Decision-Making

It must be a surprise that most great leaders use the same five (5) steps for making decisions and this could also translate well in Project Management.

(1) Investigate the problem - project problems are usually related to people, process, & technology (equipment/material resources). Spend time identifying the root cause and not just the symptom(s). Seek out when, why and how it occur and rate its impact on the project.

(2) Prioritize - highly consider the problem's impact on the project when determining whether the problem needs urgent attention or not. You must divert every effort to getting it resolved quickly so the team can continue working on their deliverable.

(3) Identify the solutions - having a clear understanding of the problem and its level of priority, you can now list solutions that will address it following the below criteria:
  • Solves the root cause of the problem
  • Is easy and practical to implement
  • Will prevent the problem from re-occurring

(4) Make your choice - should all of the pros and cons of a solution has been gathered you must carefully make a decision and be accountable with it.

(5) Act on your decision - be fully committed to implementing your solution, cascading it to your team and scheduling the tasks needed to make it happen.

Firebug Add-on for Firefox

I am having some hard time knowing the width (in pixels) of a section on our BGN page. I already had a screen capture and was toying around with Adobe Photoshop to know its width. Now, a colleague of mine introduced me to Firebug, an add-on to Firefox. So I googled it and went to this page: https://addons.mozilla.org/en-US/firefox/addon/1843 Installation is pretty straight forward. You just click the Add to Firefox button, then click the Install button on the following display. You need to restart Firefox after the installation and that's about it.

Making use of the add-on is easy too. You browse a web page, place the mouse over a section of the page, right click and select Inspect Element option. A display similar to the below should be seen:


As you hover the mouse to the code, the section of the page gets highlighted. You can now take a snapshot of that page, load the snapshot at Photoshop and use the Rectangular Marquee Tool to match the highlighted section of the page.

Just make sure you are viewing the Info tab of Palette Options so you can take note of the width and height:


Another added skill huh?! Thanks Mello!

Wednesday, August 26, 2009

Eight (8) Interpersonal Skills Project Managers Should Have

  • Leadership - ability to get things done through others.
  • Team Building - helping a group of individuals to work interdependently with each other.
  • Motivation - creating an environment that meets project objectives while offering maximum satisfaction to What every group member value most.
  • Communication - identify various communication channels, what information should be provided to whom, when and how frequent.
  • Influencing - a strategy of sharing power and getting others to cooperate towards common goals
  • Decision Making - using the four basic decision styles (Command, Consultation, Consensus, Coin Flip) and considering the four major factors affecting any decision style (time constraints, trust, quality, acceptance), decisions are made either by the PM himself or by involving key project team members subject to some agreed upon decision making process.
  • Political and Cultural Awareness - creating an environment of mutual trust and win-win atmosphere that would transcend geography, ethnic heritage, and disparate languages.
  • Negotiation - a strategy of conferring with parties of shared or opposed interests with a view to compromise or reach an agreement.

Thursday, July 30, 2009

(Interview) Questions for Project Managers

I chose the Teaching Associate program way back in 1998 for several reasons: (1) It's not a work in Manila (2) My father expects me to teach (3) I don't want to get corporate interviews!

Looking back 11 years and 7 employers, I admit interview session is where the real challenge lies. It's the best place to showcase yourself. Probably the reason why my wife and I have spent time sharing our job hunting experiences with graduating students of the Institute of Mathematical Sciences and Physics is because one needs to be prepared for an interview (with a little genius help is far better).

When I saw this post:
http://pmstudent.com/project-manager-interview-questions/ I am deeply moved to write and share it with you. May we all find ourselves worthy of the answers we make on the below questions:
  • Tell us about your experience in managing different projects and how this can contribute to our position.
  • How do you handle non-productive team members?
  • How do you motivate team members who are burned out, or bored?
  • What have you learned from your failures?
  • Give me an example of a win-win situation you have negotiated.
  • Tell me about a tough decision you had to make.
  • Describe how you recently managed a diverse project team towards a common goal.
  • Describe the most complex project you have managed from start to finish.
  • How do you handle team members who come to you with their personal problems?
  • Give me an example of a stressful situation you have been in. How did you handle it?
  • What are your career goals? How do you see this job affecting your goals?
  • Why are you interested in this position?
  • What do you believe qualifies you for this position?