Thursday, August 28, 2008

August 2008 update

As usual, I've been neglecting to update my Blog so have to catch up for last month. :)

I've since written 3 applications for the iPhone and submitted to Apple to publish to iTunes. They have passed review, but have been waiting in "Pending Contract" status for about 2 weeks or more now. To get Apple to sell your application, you have to set up a contract for the price tier you want to sell it at (in my case 0.99). This includes acknowledging a lot of mumbo jumbo and submitting your bank information for them to pay you, etc. And unfortunately you are left waiting for them to approve it with no status updates in between. Hopefully it won't take too much longer. Once that's done and I have the distribution channel down, I'm going to look into writing more full-featured applications. These first 3 were mainly to get my feet wet on the new platform.

I've started up two more classes at UNCC. This time it's "Operating Systems" and "Global Connections." From the first day of classes, it looks like it's going to be a lot of hassle (reading assignments, homework, and maintaining a reading journal). I much prefer just taking objective tests, but I'll suck it up and execute on what I need to for an 'A'.

Pool league starts up this week-end. I'm looking forward to it, although not playing this first night. We have a strong team and expect we'll make it to the finals. My team consists of some old buddies that work at Microsoft, their wives, and a friend I've known since childhood.

I haven't had much time to focus on number theory. But I did find an opportunity to use a little bit for a 1-off task at work. They needed a way to convert some arbitrary character strings into a unique string of 19-digits. Basically, one system used strings for their ID and another system only allowed 19-digits to represent the ID. So here's some C# code I came up with to do a mapping. It treats the character string as a huge number base 256 then calculates the result modulus a 14-digit and 5-digit prime respectively. The concatenation of those represent the 19-digit result (padded with zeros if needed). Fairly standard number theory, but looks like black magic to many...
----

// Hashes any string into a 19-digit string
string GetHashValue(string
input)
{
decimal hash14 = GetHashValue(input, 99999999999973M);
decimal
hash5 = GetHashValue(input, 99991M);
return hash5.ToString("0".PadRight(5,
'0')) + hash14.ToString("0".PadRight(14, '0'));
}
// Generic version with
arbitrary modulus (up to 10^14)
decimal GetHashValue(string input, decimal
m)
{
decimal result = 0.0M;
for (int i = 0; i < ch =" input[i];" chval =" (int)ch;" result =" a*b^e" result =" 0.0M;"> 1)
{
if (e %
2 == 0)
{
e /= 2;
b *= b;
b %= m;
}
else
{
a = (a * b) %
m;
e--;
}
}
if (e == 1)
{
result = (a * b) %
m;
}
else
{
result = a % m;
}
return result;
}



----
I picked up an XBox 360 game called 'BioShock'. Although it has some mature content / violence, I found it to be entertaining and recommend it. It's a first-person shooter, although also kind of a mystery that unfolds. I like all the tape recordings left around you can find and play to reveal something about the environment or history of the story.

Second wave of immunizations done, and now I have all I need for the Kilimanjaro trip. I'm looking forward to it (Jan 2009). I've been keeping up with my exercise program as well so feel prepared there. I still have some gear-purchasing to do though, but will probably focus on that sometime in December. We have a nice REI store near Pineville Carolina Place Mall I'll be hitting up.