Blog

During the course of the day I encounter lots of challenges, some of which take minutes to solve and others that take much longer. My goal for this section is to keep track of these challenges and their solutions. I will turn the longer ones into articles, while the shorter ones will stay as blog entries. You can expect topics to range from very specific programming challenges to broader topics like life.

Below is a list of the recent blog entries. You can also browse the blog by using the tags on the right side, or if you know what you are looking for then you can use the search box at the top right.

Reminders Not Working on Your Windows Mobile 5 Device?

Have the reminders suddenly stopped showing up on your Microsoft Windows Mobile 5.0 based device? If so then you have come to the right place. I found the actual solution buried in this thread (post by rcmccart on 06-18-2006, 16:52) so I thought that I would try to make it more obvious and come up with reasons. This worked for me and I am hoping that this will also work for you; please let me know if it does or does not (post a comment on this blog entry). First, the solution.

  1. Figure out when this problem started happening. If you vaguely remember when that was then that’s great, otherwise you can use something like MemMaid to find that by browsing the Notification Queue.
  2. Set the date on the device to one day prior to when the reminders stopped appearing.
  3. Soft reset the device.
  4. Set the date to one day ahead of the date that you set.
  5. If there was a reminder for this date then it should show up now. If you know there was a reminder but it just didn’t show up, then I am sorry this probably is not going to work for you. Oh, and make sure you pay attention to the time. If the reminder was set for 3pm but it’s currently 2:30pm then it is not going to show up because it is still in the future.
  6. If you did see the reminder then you are on your way to getting the reminders back.
  7. Change the date to the next day, soft reset and repeat until you reach today.

Now, the explanation. Please note that the following text is my explanation of what might be happening, I haven’t verified this with anyone, it’s all just me applying my logic ๐Ÿ™‚ The problem seems to start with conflicting reminders; I am not sure of the exact reason, but whatever it is, causes a past reminder to be left on the Notification Queue as “new.” I am thinking that the reminders are saved in a chronological list, i.e. the earliest reminders at the top, followed by the later ones. Additionally there has to be some additional piece of data that is set the first a reminder is shown (some kind of “new” flag). The “notification daemon” then checks the earliest new reminders (i.e. with that piece set) and sets up an interrupt that will be called when the correct time comes. In this case the problem is that the earliest reminder will never come because the time has already passed. This causes the newer reminders to never come up because they are waiting in line for the earlier ones to appear. Considering the solution, this is what I think might be going on under the hood, but I am probably way off ๐Ÿ™‚

I thought about creating a small utility that would get rid of the past notifications but as my last post mentioned, right now I am really, really busy. Maybe I will get to it in a month.

February = A lot of work

This month has been crazy for me. I have started working on a new .NET project at work that is really exciting to me, most of customers are in full swing, and lots of other stuff on the side. To complete everything in time I have sacrificed my exercise schedule and blogging activity. I am hoping that the workload will go down towards mid-March, but until then there will probably be very little blogging :-/

Site Updates

I have fixed the sorting issue with the RSS feed, now it should be in soonest to latest order. Additionally I have made the site XHTML compatible. You might find that a few pages are not compatible; that is mainly due to the imported HTML from the previous website. All the standard elements on the pages should be XHTML compliant.

Geeky Comics

I somehow stumbled upon XKCD, and it has some funny geeky comics. If you are into this kind of thing then definitely check out XKCD. I especially like this one… hahaha ๐Ÿ™‚

The Best Formula

Haha, I was working on a document in Microsoft Word and noticed a formula in a table which is just too good to not mention here: =Sum(Above)

This is the best formula!

Awesome Powershell

PowerShell showing the paths of the currently running processes

Almost every week I get excited about a new tool. The tool of choice for the last week was Microsoftโ€™s PowerShell. After my exposure to the linux shells, I started disliking the command prompt because of itโ€™s simplicity. I am really happy that Microsoft has finally come up with something at least as good as the linux shells (I have not spent enough time to make any conclusions on whether it is better). Some things that I still donโ€™t like is that there is no easy way to delete a complete word, like the CTRL-W in some of the shells, or event better the vi mode! ๐Ÿ™‚ Anyways, back to PowerShell. For those of you who have had early exposure to this product, PowerShell was originally called Monad, and has been around a little while. PowerShell is an object based shell, and one of its best features is the object pipelining support. I donโ€™t want to explain all the PowerShell things because there are quite a few articles and documents on the web that do that; instead here are some uses.

So, the other day I was playing around with writing an expect script to quickly upload a file to a client FTP server. During this process I had to kill the expect process a few times, not realizing that every time it was actually leaving ncftp running in the background. Today my computer became a little slow because I had a lot of programs running. So, I started Task Manager by pressing CTRL, SHIFT, and ESC. Oh, that reminds me; the other day, I was surprised to find out that this shortcut key for running Task Manager is fairly unknown. Memorize it, it comes in handy! …Task Manager comes up and I see a ton of ncftp.exe processes running. I made this an exercise to learn PowerShell and decided that I was going to kill these processes using a PowerShell command. Well, after a few minutes and a few glances of the Quick Reference (part of the PowerShell install) I had a command to kill all of the ncftp process.

Get-Process | Where {$_.ProcessName -eq "ncftp" } | ForEach-Object { Kill %_.Id }

I know I could have saved a few minutes this time by individually killing the twelve or so instances of ncftp.exe, but where is the fun in that! No, more seriously, I made this an opportunity to sharpen the saw. I can see this knowledge coming in handy down the road.

Similarly, run the following command if you are curious about the actual paths of the executables that are currently running.

Get-Process | Format-Table -Property ProcessName, Path -AutoSize

Update: as mow points out in the comments, there is an easier way to accomplish my first task of stopping all instances of ncftp.

Get-Process ncftp | Stop-Process

Web Ascender

A few weeks ago Ryan Doom and Kevin Southworth launched the website for their company, Web Ascender. I was curious about their final product, and my curiosity was finally fulfilled by the video demos that they have put on the site. SiteCTO looks pretty cool, if you are looking for a website solution, make sure to at least consider SiteCTO. I have not actually used SiteCTO but I have worked with both Ryan and Kevin, and one thing I can say is that they know what they are doing and know it pretty well. Also, I am sure their customer support will be very good.

Removing all Contacts, Appointments and Tasks from Windows Mobile 5

ActiveSync showing the successful synchronization with Exchange

After I accidentally deleted one of my key notifications using MemMaid I spent quite some time trying to get it back. Several days of unsuccessful attempts passed and I finally decided that I would hard reset and start from scratch. Yesterday I started from scratch and setup all the programs. In the midst of the overhaul I accidentally messed up the appointments that I had synchronized with Exchange. So, now I was ten steps ahead and eight steps back! Now looking for ways to completely clear out the Pocket Outlook database so I could resynchronize with the Exchange server and get everything back to normal.

I spent the last hour or so looking around for ways to do this, which ranged from deleting all items on the desktop (not something that I felt comfortable with) to finding programs that were written specifically for deleting things. Finally, a few minutes ago I found a solution here, which worked perfectly. Basically, it seems that all your contacts, appointments and tasks are stored in a file called pim in the root folder of the device. To clear everything, you have to either delete or rename this file, and soft-reset the device. The next time that the device starts, you will have a fresh (i.e. empty) database for contacts, appointments and tasks. All I had to do after that was setup the Exchange source and synchronize!

expect

I have an Actiontec linux-based modem/router. The default configuration for this router saves the last fifty-so host names that anyone on your network looked up. This is cool but not something that I normally use or prefer to have. So I looked up instructions on disabling this feature on this site. The only problem was that since /var is mapped to the RAM, my changes would get reset every time I restarted the modem. Me being the type of person that I am, had to come up with a way to automate this.

Read full post...

All New Frontpage!

I have just finished publishing a new version of the home page (a.k.a. front page) for this site. Previously there was no difference between the main blog page and the home page. Now the home page is totally different, and I am proud! ๐Ÿ™‚ I also noticed that the captcha module had an issue which was preventing the comments from being added. I was just too excited tonight, after spending a lot of time studying today I decided to take on the challenge. This just shows my squiggly nature!

That’s correct, that is the Eiffel Tower in the background, and it’s not fake! ๐Ÿ™‚ This picture was taken on my trip to Europe in March of 2006.