How many Windows Mobile users have been lusting after the iPhone’s finger flicking functionality? I know I have. Finger flickin’ is useful and a fun effect. Last night I decided I would make it mine the hard way (coding).

So I got started around 9pm, this video is what I ended up with around 1am. The video might not do it justice, but it works wonderfully. It’s very responsive and there is no screen-flicker. I was surprised how simple this actually was.

Basically there are only six strings I’m drawing with the text. Those move to give the illusion that the list is scrolling. The painting is done by overriding the OnPaint event. I implemented double-buffering there to prevent any flickers.

If you’re interested in a copy of the source code just fire me an email.

Did you know every Windows Mobile Smartphone has a dynamic public IP address? I was reading the other day about how we’re quickly running out of IP addresses. What I read again and again claimed cell phones in Europe and Asia had a lot to do with this. I wasn’t really worried about this because the new IP standards IPv6 gives us plenty new numbers. But this got me curious and a quick Google later I realized something I should have already known. Smartphone’s have public IP addresses. Checking my Q I realized the IP address was public and dynamic. I would have preferred a static number, but I still thought that was fantastic.

Just in case you don’t know about IP addresses I’ll give you a quick primer. IP addresses are like phone numbers on the most common kind of computer networks. Some numbers are private; those can’t be accessed from any PCs that aren’t on the same private network (typically this is how computers are networked at home and in the office). Having a private IP address is nice because people can’t access your PC. In all too familiar twist, that’s also why they’re lousy. Sometimes you might want to give someone your IP address, just like you randomly might want to give someone your phone number.

So, there are two kinds of public IP addresses; Dynamic and Static. The dynamic kind change seemingly at random, the static ones never change. Cell phones use the dynamic kind. That’s a little lame because if you give someone you’re IP address (think phone number) your number might change before they use it. Well, geeks already thought about this a long time ago. They wrote software that update DNS servers whenever your number changes. DNS servers are the magic boxes that map all the URLs like to IP addresses. Today there are plenty of sites like that map your dynamic public IP address to a domain name for free.

In other words, could point to your phone. You could simply give anyone that URL and they could access anything you wanted to expose from your phone. For a guy like me, who uses his phone like an iPod, this is nice. This means I can just tell people to hit my URL whenever they want to download a song I have. …Is this illegal? I hope not, I pay for my music on URGE. …Let’s just say this is hypothetical to be safe.

Another nifty feature is that people browsing the site running on my Smartphone could see photos instantly the moment I took them with my phone’s camera. My blog could also be served up directly from my phone with new posts the moment inspiration struck. All sorts of other nifty things like that.

…The only down side is that I have a CDMA phone that doesn’t support phone and internet access at the same time — My phone goes to voicemail while I’m online. GSM phones don’t have this problem. Maybe I’ll end up with one of those.

So, I think I’m way ahead of the curve here. But I want to help push it along. There wasn’t an easy way to use DynDNS from my Smartphone, so I wrote this program. It maps your Smartphone’s IP directly to a URL (like quickly and painlessly. It’ll be posted here eventually, I also wrote a small web-server for Smartphones and I want to release them at the same time. Here’s some screenshots (with fake numbers). You’ll have to excuse my language. This won’t be the release version’s title. A few problems had me cursing at the program while I was coding it, one of those names just stuck.