Sunday, January 24, 2010

WAMP Discoveries #1


Problem: Have you ever encountered Internal Server Error at WAMP? The last statement really has something to say. The server error log can be found at wamp\logs folder with apache_error.log filename. At the end of the file content you can find the latest server error entry, similar to the following:


For this particular case, there was an invalid command 'RewriteEngine' found at .htaccess file.

Solution:

Locate the httpd.conf file. With WAMP it is located at wamp\bin\apache\Apache2.2.11\conf folder.

Using your favorite text editor, locate the line

  • #LoadModule rewrite_module modules/mod_rewrite.so

Remove the # symbol in the beginning of this line and Save the file.

Restart the All Services of the WAMP server.


That's about it.

Thursday, January 7, 2010

Internet Explorer Discoveries #1

Problem: When I'm accessing a website with a login box, the Internet Explorer (IE) browser is asking me:


We can turn it off right there and then by ticking the checkbox "Don't offer to remember any more passwords". However, how do you turn it on later?


Solution: Navigate Tools > Internet Options.


In the Internet Options Dialog, open the Content tab, and click on the Settings button in the AutoComplete section


In the AutoComplete Settings Dialog tick the checkbox "Prompt me to save passwords". Hit OK button to save the settings.

Wednesday, January 6, 2010

T-SQL Discoveries #1

Given: A database table with the following structure


Problem: How many of each subject were posted on a certain date?

Solution: Issue the following query

SELECT count(queueID) AS TotalCount, dateposted, subject FROM (SELECT queueID, CONVERT(DATETIME,postdate,111) AS dateposted, subject FROM tblQueue) AS tblQ GROUP BY dateposted, subject

NOTE: The above query disregards the posting time, i.e., it focuses on the date alone.


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.