About Me

My photo
Northglenn, Colorado, United States
I'm primarily a BI Developer on the Microsoft stack. I do sometimes touch upon other Microsoft stacks ( web development, application development, and sql server development).

Friday, March 24, 2006

Updated: AIM Plugin: SignOff

I just updated the program again, this time I added a better looking graphics to mimic the AIM Triton look, and I have also added the possibility of using sound (only WAV) to make a noise for notification.


Here is some of the code used to play WAV files in C#, in which I think I stole from some other website, a while back.

Well you will need this:
using System.Runtime.InteropServices;

Import a dll to play the WAV sound
private static extern bool PlaySound(string lpszName, int hModule, int dwFlags);

Here is the enumeration of the SND
public enum SND
SND_SYNC = 0x0000 ,/* play synchronously (default) */
SND_ASYNC = 0x0001 , /* play asynchronously */
SND_NODEFAULT = 0x0002 , /* silence (!default) if sound not found */
SND_MEMORY = 0x0004 , /* pszSound points to a memory file */
SND_LOOP = 0x0008 , /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010 , /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000 ,/* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a pre d ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004, /* name is resource name or atom */
SND_PURGE = 0x0040, /* purge non-static events for task */
SND_APPLICATION = 0x0080 /* look for application specific association */

Use this to play the WAV file:

Thursday, March 23, 2006

AIM Plugin: Sign Off Timer

So this is my first AIM Plugin ever developed, yeah me.

It basically allows the user to set how many minutes he/she would like to stay online. When this time is reached, a pop-up box is displayed and you are signed off. I remember when I was a college student, and I would be almost late for class because I was on AIM losing track of time.

Here is the website where you can download it: http://williamandrus.tripod.com/AIMPlugin.html

I set it up so that the timer would run on it's own thread, that way it won't interfere with the AIM's thread. So in the Exec function I have this little sniplet:

if(command == kCommandId)
   Thread t = new Thread((new

this then calls my function called StartTimer:

public void StartTimer()
   TimeSelect timer = new TimeSelect(m_session);

this then starts up another file which I used to make the form. Here is a sniplet from that program:

private void buttonOK_Click(object sender, System.EventArgs e)
   CountDown = Convert.ToInt32(this.numericUpDownMinutes.Value);
   this.Visible = false;
   while(CountDown != 0)
   MessageBox.Show("You haved been signed off
by the timer.","Sign Off Timer");

private void timeKeeper_Tick(object sender, EventArgs e)
   if(sender == this.timeKeeper)

Monday, March 20, 2006


Well, I just started using the AIM SDK and I'm trying to develop and learn about using plugins for AIM. http://developer.aim.com/pluginMain.jsp

Once I have become more confortable with this, I might develop a simple program and build up from there. I would like to see if I could somehow use Google Map's API with AIM's API and see what I could put together in the future.

Tuesday, March 14, 2006

Google Life


Well, I added a little map of places I have worked, lived and went to school using google's map API. I would like to do something more complicated, but I would need to get a better website where I would be able to use ASP.Net and maybe a database together to make more complicated programs.

Saturday, March 11, 2006

Updated Reinforcement Learning Tic Tac Toe Game

I just put version 1.2 of my reinforcement learning tic tac toe game on my development website at: http://williamandrus.tripod.com/RLTTT.html

  • Increased learning speed and decrease xml file size by implementing rotation, and reflection of the states.

  • Fixed one minor bug in the Monte Carlo learning in recognizing a final state

  • Fixed one minor bug in the Temporal Difference learning in updating the state values

Wednesday, March 08, 2006

Sequence Number Test


I did ok, got 7 right, before I got bored and started to cheat. Some of the numbers that I didn't get look familar, and once I've google them I was upset to see what they were. Oh well. I did find all the answers with help from google.

Tuesday, March 07, 2006

Ten of the Biggest Mistakes Developers Make With Databases

Source: http://www.developer.com/db/article.php/3589351

Well here is a summary of it all:

1) Choosing the Wrong Database: If lots of data, choose a better more optimized database.

2) Choosing Too Many Databases: Just develop your programs for one database, don't worry about being compatible for others.

3) Know Your Data: Don't be wrong about the data size, if it is required, etc...

4) It's Just Like Excel, Right?: Databases are more complex then they seem, and should be done by someone with DB understanding.

5) Third Normal Form is Not the Holy Grail: Not everything should be normalized, sometimes it is more efficient not to.

6) What a Great Place to Hide Application Logic!: Database code isn't scrutinized as well as it should be.

7) Who Needs Backups?: (Ok this is too obvious)

8) Yes, You Need Version Control: (Obvious also) If you got people working and changing your database code, it's good to have a version control for backup and updating reasons.

9) Use the Tools: Use the tools and wizards, they make everything cheaper and more efficient in the long run.

10) Don't Assume Everything is a Nail Just Because You Have a Really Big Hammer: Not everything should be in a DB, some things are just very simple and can be put in a local file or XML. It would make everything less complicated.

Those are some good tips to remember.

P.S. The way of "SQL": I always knew there were two ways of saying "SQL".

One: see-quel


Two: es-que-el

Well I read that if you are basically talking about Oracle and SQL Server then it is pronounce as: see-quel. However, if you are using something like mySQL and DB2 then it is pronounced as es-que-el. Hmmm, an interesting fact.

Friday, March 03, 2006

Fractal Viewer

Well, I just put out a beta version of my Fractal Viewer on my development website:

I still want to add more features like zooming in and out, more fractals, and maybe an editor where the user would be able to change the formula to view different complex systems.

Currently I have an graphical anaylsis of an orbit, a box fractal, sierpinski's triangle, Mandelbrot set, Julia Set, and Newton's Method.

I still got to do a small write up about Dynamical Systems to put up on my other website.