Archive for the NumMemorize Category

Keypad view is working

Posted in NumMemorize on March 7, 2009 by mz

I got quite a bit accomplished today.  I got the typepad view to show a keypad, made the keypad live, wrote the underlying code to check the user’s input against the stored number, and display only those digits that are correct.

Next, I want to add the functionality to make click sound as correct digits are pressed on the keypad, and to make a bonk noise if the entry is incorrect.

Right now I am thinking that the user gets two attempts for each digit to get it right, and then I display the correct value.  Now, I have the option of adding the correct value to the end of the string of digits, or I can just flash the appropriate key on the keypad, indicating that that is the key to press.  I’m not sure which will do a better job of helping the user memorize a number.

I still have plenty more to do.  After the sound and last digit handling, I need to add a timing mechanism – the user only gets so much time to enter each digit – and a scoring mechanism to show how well the user has down and whether they have improved over time.

Here is what the new view looks like:



Posted in NumMemorize on March 6, 2009 by mz

In order for a user to enter the digits of a number, they would only need a numeric keypad. Apple’s standard numeric keypads look like these:

Number & Punctuation Keyboard

Number & Punctuation Keyboard

Phone Keypad

Phone Keypad

For the purposes of my application, I need a keypad that has all the numbers and a decimal point.  For some numbers, I would need the letter E.  Thus I am forced to create my own keypad.

After some playing around, I have two options I didn’t hate:picture-61I am not entirely happy with either, but I think I will use the bottom one for now, and later after I have the app working, I will create a completely custom keypad.

Next Day

Posted in NumMemorize on March 5, 2009 by mz

Thanks to Wikipedia, Xavier Gourdon & Pascal Sebah and AT&T, I have my initial list of memorization candidates:

π 3.14159265358979323846264338327950288419716939937510
e 2.71828182845904523536028747135266249775724709369995
√2 1.41421356237309504880168872420969807856967187537694
ln 2 0.69314718055994530941723212145817656807550013436025
log 2 0.30102999566398119521373889472449302676818988146210
Φ 1.61803398874989484820458683436563811772030917980576
√3 1.73205080756887729352744634150587236694280525381038
√5 2.23606797749978969640917366873127623544061835961152
γ 0.57721566490153286060651209008240243104215933593992
c 299792458
ζ(3) 1.20205690315959428539973816151144999076498629234049
iⁱ 0.20787957635076190854695561983497877003387784163176
i⁻ⁱ 4.81047738096535165547303566670383312639017087466453

I’m thinking that the app would have two main views.  One to display a list of numbers, and the other to test and train you on each.  A settings view may be necessary.

I’m storing my numbers in an SQL database, although I could easily have used a different mechanism for storing and retrieving.  With the SQL database, I presumably could, down the road, let the user add their own numbers or access a network database of numbers.  As it is now, there doesn’t seem to be any downside.

Here’s the screenshot for the first view.  The biggest challenge I had to deal with was getting the app onto my iPhone – I really wish Apple would make it a whole lot easier.

First View

Due to the width of some of the numbers, I have decided that the app can only be used in landscape orientation (the user has to hold the iPhone sideways).  I may revisit that decision later.

Touching any of these numbers, the user is moved to the next view.  My thoughts are that the view will sport a fulltime numeric keypad, plus an ara at the top that would be able to display the entire n digits of the numbers.  As you type a number, you will be timed and you will be corrected if you type a wrong digit twice in a row.

Now to program the second view.

A new product…

Posted in NumMemorize on March 5, 2009 by mz

I thought I would use this blog to document how I come up with a new product or a new release.  Of course, I’ll be keeping most of these posts private until the product ships – I’m not exactly crazy about giving people a roadmap to follow in order to compete with me.

This product is a simple one.  Really simple.  Usually not worth the trouble of taking it from gray matter and putting it into software.  However, with iPhones being so easy to program, it’s really not a whole lot of work to get even those simple little ideas pushed out.

When I was in 9th grade, a friend and I would try to beat each other at memorizing the numerous digits of π.  He managed to stay a few digits ahead of me, no matter what I did, so one day I surprised him by blurting out 15 digits of e.  After another constant or two (√2 and log 2), we soon got distracted with other things.

Years later, at a party in college, a math major recited 10 or 12 digits of π in order to impress a fellow student.  A better setup I could not have asked for.  I looked over and rattled off 8 or 10 more digits.  I asked him if he thought those were the other digits to get to 20 decimal digits.  He laughed and thought I was kidding.  I said, “hey, I’ll write it down, you check it out tomorrow.”  I wrote.  I also wrote down e to 20 digits.  He never told me whether I was right or not.  Everyone within earshot that night seemed mightily impressed.

Over the years, I’ve run into people who have impressed me and others with their memorization skills.  What I have to remind myself, is just how few days it took for me to memorize each constant – all it really required was the discipline to work on it each day for a few days.  Easy:  One or two digits in the morning, one or two additional numbers in the evening.

The real question is, can a simple software app be written to help with this memorization task?  How best to accomplish this?

My first thought, as I create a new software project file, is to rely on a simultaneous quizzing/training process, with feedback to encourage and engage.  More on this as I figure it out.

As with any product, a name can make or break it.  I like finding a name I can get attached to early on, keeping the door open to a possible renaming down the road.  Given that the name I pick could be the final one, I usually spend a bit of time on it – otherwise, I could make my life easier and pick a random code name and get on with programming.  But nooooooo…  As of right now, I am leaning towards one of the following:

  • NumMemorize
  • Numemorize
  • Numorize
  • NumMemorizer

For now, I am using the letters nmzr as the base name for my C sources.

That’s about it for now.  I’ve got an app to write.  It happens to be my first iPhone app intended for a wide release.