Thursday, November 5, 2015

Vowel Movements hits iOS App Store

For the past year I've been an overjoyed Apple developer in my spare time. Nothing has paralleled the experience of working with Apple. Stellar technical support. Stellar tools. Stellar programming language [Swift, not Objective C...]. Stellar documentation. Stellar infrastructure. Who could ask for anything more?

Anyway, in that year I've started a company. http://facebook.com/phreneticappsllc. Yes, I've got http://phreneticappsllc.com domain but I'm too lazy/cheap/disinterested in putting together my very own website. I know. I know. In that year I've completed my very first app and successfully passed Apple's strict app reviews. So now it's live! Not Memorex.

Vowel Movements http://itunes.com/apps/vowelmovements


The name came to me one day when I was...no I'm kidding. It just popped into my head. I like puns. And I cannot lie.

It is a word game. Sort of a mix between Boggle, Scrabble, and Anagrams. Played on a 7x7 grid of randomized letter tiles. It can be played solitaire. It can be played against any or all of Alice, Bob, or Carol, three increasingly-expert computerized opponents. It can be played, real-time, in a 2-4 player GameCenter match.

You're given 30 seconds on the clock to start. As a "novice" player [the starting rank], you've got to find a three-letter word. You can find words by moving tiles around [so we digress from Boggle here...]. You can make words only horizontally or vertically [so we enter Scrabble-likeness here]. The catch is that once a "consonant tile" is used it becomes locked in place. So as the game progresses movement becomes more and more restricted. Not to worry, though, if you find another way to use a locked consonant, it becomes unlocked [and thus, moveable] for a few seconds before it locks again. So move it while you can! You can even steal tiles locked by your opponent [so we enter Anagram-likeness here]. The winner is the player that has the most locked consonant tiles when the last tile is locked. So just because your opponent locked the last tile doesn't make them a winner. When you make a word out of tiles you also get your time replenished and get a little bit of a time bonus, to a point. It might seem too easy but the stress of finding a word...any word(!)...in under a minute...can creep up on you quick!

As you progress through the game, winning board after board, you'll notice your advancement in rank. As a novice, once you've won 50 games, you become the next higher rank. This is where the game gets...hard! As you progress in rank you also progress in minimal word length. So you go from being able to get away with finding only three-letter words to now needing to find four-letter words or better. Eventually you'll get to the point where you need to find seven-letter words or better*, which may seem impossible but I'm sure there's someone on the planet that can manage it.

*There are some special double-letter tiles such as QU, IN, CH, ER that allow you to make longer words than can fit across or down on the 7x7 grid.

You move tiles by dragging them with your finger. If a tile you're trying to move is recognized as being the start of a word the game will assume you're making that word until you move your finger in some direction indicating you're not interested in that particular word. The game does not make the words once you've arranged the tiles the way you want, you've got to swipe to claim it.

Anyway, the process of making this game has been an amazing experience. I hope it is as enjoyable to play as I think it is. Customer feedback is always welcome!

Your purchase of Vowel Movements, should you choose to do so, will go to a good cause. An upgrade to my current MacBook so that I can use Blender for 3D models on my next project. That will be another word game, and I'm calling it Angry Verbs. I'll try to post more about it here as it goes along, and be sure to drop me your email address if you're an iOS device holder and are interested in test flight'ing my games!

Cheers!

Monday, May 26, 2014

"Let me put my Googles on." - You Heard It Here First!

I've been saying this for a while, so I finally thought I'd write about it...so that I have electronic evidence that I actually started something...cool-ish.

It's similar to the LMGTFY response you might receive if you ask something bloody obvious.  For those that have been fortunate enough not to have received a LMGTFY, http://lmgtfy.com/?q=googling. But it's different in that it's meant to convey a sense of camaraderie amongst the unknowing, equating asker and askee in unknowingness, while still bestowing upon the parties involved a recovery mechanism whereby egos may remain largely intact after the encounter.  LMGTFY, while humorous, is condescending too.

Anyway, so I receive many queries during my normal work day that, I'll be honest, I don't know the answer to and have to resort to consulting "the allmighty" (www.google.com).  Rather than hide behind the veil of silence in a teleconference while feverishly tapping away at my well-formed google query, though, I've decided to admit to my ignorance as often as possible.  Because, quite honestly, ignorance isn't really the culprit...it's sort of a TMI situation.  In my work there's just too bloody much to know, and not enough brain matter to keep it all warm. 

So typically I'll have several of these conversations a day:

coworker-with-urgent-question: "Hey Chris, do you know what memory-bus widths we can configure using the reset config word of the 8270?"

me: "Uhhh...hang on...ummmm..."

coworker-with-urgent-question: "It's OK if you don't know I'm just curious..."

me: "Hang on...let me put my Googles on..."

There, now I've completely revealed the fact that, while I may once have had a clue on the answer, due to recent cache flushes occurring on important cache lines in my main memory, I've lost track of the right answer to that *specific* question.  I am admitting to having had a page fault, having to swap in some pages from permanent storage (www.google.com), and refresh my cache.  And, I think I've done so in a so-far-unique way.  After all, googling for "googles", "put my googles on", etc. doesn't yield anything conversationally relevant.

Monday, April 4, 2011

My Favorite Nostalgia Project

I've been working for a number of years now on a NES IDE. The genesis of this project goes waaay back to junior high school. My friend Stephen and I would spend hours, noses inches away from the television screen, transfixed by Mario, then Link, then Samus, etc. Part of that trance was induced by gameplay; most of it, at least for me, was induced by a desire to know how these games worked. We'd sit with our noses to the screen and graph paper at the ready, eager to trace out what we thought was the correct outline for a particular frame of a character's movement. We even made relatively good stabs at capturing the musical melodies of some games, with a Casio keyboard and a quick pause reflex.


We didn't have access to logic analyzers, ROM readers, or any other tool that would have made our task seem less dorky than it sounds to me now, describing it some 20+ years later. I had a two-fold scheme in mind; one, to replicate the NES games on my Commodore Amiga; two, to add my own twists and ideas to the games in the process.


It went fairly well. I had a walkable Zelda map implemented in Commodore Amiga BASIC (yes, this was even before I learned C). I still have the disks and my original Amiga in my basement but haven't tried to get back into it...too dusty and probably doesn't work any more.


Needless to say, my love of 2D videogaming began with my exposure to NES.


Fast forward a few years. Include: a degree in Computer Engineering with an emphasis on digital logic design and software architecture; interest in legacy hardware/firmware emulation; availability of information on-line -- people with similar interest that actually had access to hardware analysis tools (and a NES--I never owned one!) and could document the NES design quite readily; and a desire to create a NES game of my own.


It was the desire to create a NES game of my own that has brought me to create NESICIDE. Indirectly. I started by gathering lots of tools that I found online. Some tools let you peek at existing dumped NES ROMs (naughty naughty, but I figure not so much if you're not planning on burning and selling ROMs). Other tools let you create tilesets for playfields or sprites. There's a NES BASIC interpreter (for writing NES game logic in high-level language), NES assemblers (6502), NES music file players/creators, NES emulators/debuggers, etc. Quite an endless list of tailored tools with seemingly singular purpose and little collaboration.


I started out trying to just create tilesets and static playfields. I got pretty far with this but had to jig-together quite a few different tools in a Cygwin (UNIX-on-Windows) environment on my PC. Then I could actually write a Makefile that would take lots of individually created files as inputs and generate a NES ROM binary image that I could load into a NES emulator of my choosing and try out. This was cool...I could generate my own ROMs!


But it left me unsatisfied. I wasn't happy having to switch between many different Windows-based and UNIX-based tools to get the job done. I knew there was a better way.


Then it hit me. Integrated Development Environment. I spend most of my day-job working in Integrated Development Environments of one flavor or another. I've worked in DSP IDEs, C++ IDEs, etc. What about a NES IDE. I am, after all, an engineer.


I did a quick search on-line and didn't come up with much more than a few people suggesting there be one and a few others saying they would get to it after they finished such-and-so.


Then I took it upon myself. It has been one of the most rewarding projects I have ever embarked upon under my own steam. I decided to do the framework in Microsoft Visual C++ using MFC/GDI. I tend to throw everything I can think of into projects like these because I can then use them as springboards to learn more about things like MFC/GDI, Visual C++, etc. It's even taken me beyond MFC into the cross-platformy world of Qt Creator, OpenGL, and SDL!


The NES IDE I am creating (it is, of course, nowhere near done), is intended to be the one-stop-shop for NES ROM creation.

This blog is just my way of describing what I've done and what I'm doing. I intend to complete this project, yet have no idea when.

Sunday, August 17, 2008

Creative Play


I used to love to go into Radio Shack and pick through all of the chips, resistors, capacitors, switches, etc. that they had. The whole store used to be taken over by this stuff. Now you're lucky if you can even get in there past all of the yipping plastic robot dogs, roaring dinosaurs and remote-control cars. What happened?

I recently read someones rant on something similar to this. It seems over the years (at least the ones I've been around for) that there's been a transition from "build it yourself" to "take home this ready-made plastic thing". I remember playing with everything from Lego kits to chemistry kits to electronics kits and getting myself in trouble (yes, acid burns carpet). Now play seems much more guided and guarded.

Don't get me wrong. I had plenty of ready-made plastic things growing up. I enjoyed figuring out how to take most of them apart. I got all but a few of them put back together with minimal leftovers.

Even Lego has transformed. I remember having a technical Lego car kit that was basically just a jumble of pieces that looked nothing like a car. When I put them together with gears and a motor I could almost make out a car-like form. Creative play ensued...I had to make it "be" a car in my mind. I was recently at LegoLand at the Mall of America where they have a Lego airplane (looks like a stubby Boeing 737). Seriously, it's as if they took a die-cast Boeing 737 model mould, filled it with molten Lego plastic, cut it into about six pieces, threw in a few of the signature Lego nubblies at weird and unexpected spots on the airframe, and put it in a box. The thing looks exactly like what it is supposed to look like, just smaller. I bet the assembly instructions leave nothing to the imagination! As much as I like things that fly and want to encourage my kids to like things that fly, I did not buy this. Instead, my kids and I (well, okay, mostly I) enjoy making Lego airplanes that are gigantic and so unweildy that they have to be left "on the ground". Attempts to fly them invariably lead to wings shearing off or the fuselage splitting in half. What it gives us is an opportunity to explore...to figure out if there are better ways to make wings so they won't shear off the moment the airplane is lofted skyward.

On the other hand, I have an Erector Set kit that has instructions for three out of the "seven suggested models". Good for them! I have to admit, though, being a bit frustrated that I couldn't figure out how to make my jumble of metal bits look *exactly* like one of the suggested models without step-by-step guidance.
Turns out I'm old...I believe we lose creative play as we get older. But wait...do we lose it, or is it lost on us because of the decline in availability of creative play enhancing toys?

Saturday, August 16, 2008

Deep Thoughts

So I was recently loaned an Organic Chemistry textbook by my brother-in-law who teaches the same at Ball State in Indiana. It happens to be a topic I have wanted to pursue ever since I figured out I wouldn't have enough credits (or money, or time) to learn it in school. That's what's great about having brainiac brother-in-laws (brothers-in-law? see...).

Point being, it's deep stuff. I like, no *love* deep stuff. I like to graze around in the depths of topics that are, as a whole, mostly beyond me. I figure that by doing so I might somehow coddle together a vague idea of what life is all about. Along the way perhaps, I'll also bring some of that knowledge into my head and keep it warm for a little while until I leave [Paul Erdos -- thanks for the book, Mom!].

Here's an example of deep stuff I enjoy...more on Organic Chemistry later:

I recently read "The Big Bang Never Happened: A Startling Refutation of the Dominant Theory of the Origin of the Universe" by Eric J. Lerner. Yeeesh, what a title! It describes an alternative theory to the origin of the Universe. Plasma cosmology theory basically states that everything formed from electromagnetic vortices and plasma interacting in ways that makes them twist and spin together tightly enough to form universes of stars, galaxies, super-cluster galaxies, etc. It postulates that the Universe is far older than the 14billion-or-so years the Big Bang theorists propose. Evidence of this, so it goes, is in the sheer immensity of some of the large-scale structures observable in our Universe, such as super-cluster galaxies. In fact, the author proposes an evolutionary model of the Universe that "has no beginning or end". The Universe is just a constantly evolving entity.

No sooner had I put this down, convinced that the Big Bang theory was dead [while also making a mental note to check recent events as the book was published back in 1992], when I picked up and read "Atom: A Single Oxygen Atom's Journey from the Big Bang to Life On Earth and Beyond" by Lawrence M. Krauss. Yeeesh, what a title! This is a story of, as you would hopefully expect, a single oxygen atom's...well...okay. The basic premise is that atoms are born but very rarely die. So rarely in fact that we will probably never see one before the Universe goes belly-up (or so I gathered). And, how are atoms born? From the fiery-yet-ever-so-tiny furnace that was the Big Bang, of course. From there they are spewed outward and form clusters of what will become stars; inside the stars they begin to clump together more protons/neutrons and form higher elements; lather, rinse, and repeat, and WHAM...here we are. It was a very interesting journey, I've never really thought about atoms as things that persist. I never thought about atoms dying. When I die, my atoms will become part of something else. Now that, they teach you in church.

So I read these two books and am still totally confused, but that is a good feeling. Did the Big Bang happen or not? I'd like to think not. If the Universe was born it has to die. Are atoms born? If so, they too must die. But we haven't seen one die yet. Do we know what we are looking for?

Perhaps the birth of a Universe is something we just can't (yet?) grasp. We cuddle up to the Big Bang theory because it sounds cool and gives us a point (literally) of reference. But then again, it also alludes to possible points of exit (ie. Universe death). The Universe will die, either by continued expansion leading to heat death (every atom in the Universe separated by such a great distance that there is minimal interaction between them and thus no heat generated to perform work or sustain life, or at least nowhere near enough to fire up another atom-forming star cauldron), or by a crunch back down to the singularity-sized Big Bang predecessor. But if you believe Eric J. Lerner you will wonder if we're making our observations match the Big Bang theory just because that's what we want to believe happened.

So if there was a Big Bang...cool. But what caused it? If the Universe is a continually evolving and even-more-gigantic/old-than-we-can-fathom entity...cool. But what caused it?

It's this kind of mess that keeps me on my toes.

Like a Blogger...for the very first time!

I don't know why I expected cheers, noisemakers and something like "next up, Mr. Pow takes a stab at wowing with his intelect..." when I decided to step into the Blogosphere.

No fanfare...quite the contrary. A web-flash of "thanks for signing up, now get blogging..." and next thing I know I'm sitting in front of a blank screen, the computer patiently poised for my first keystroke. I could almost feel the phosphors glow differently as I struck the key and it appeared on the screen in front of me -- breaking the silence, filling the void that was the Big Bang of my Blogospheric birth.

Also as soon as I started typing the title, "Like a Virgin" started running through my head.

Wake up ya'll...I'm here...

I feel a bit like a Jesus-wannabe, someone standing in the crowd thinking "Blessed be this and that group? I can *so* top that!" Where's my Mount? I've got something to say! But, as it turns out, I'm really not very good at forming readable thoughts. I don't think I'd do very good trying to feed hundreds of people with a loaf of bread and a fish, either. No, I guess I'm one of the meek, or the cheese-makers depending on your degree of Pythonism (Monty-style). I keep mostly to myself, so you won't get much "this friend did this, that friend did that" here. Just me and my musings on...whatever.

So I guess I'll fire off a list of the things that interest me, concern me, define me, have happened to me, are dreams of mine, etc. Items within this list may or may not appear as focus for my future posts. I can make no promises. Perhaps I can incorporate them in the title somehow so you (there are readers out there? right?) can skip past ones that don't sound at all interesting.

Possible blog topics (no order possible):
My Boys (Gavin 4, Matthew 2)
My Wife (Mary)
My Cats (Lily, Izzy)
My Family
Nintendo 8-bit
Software Engineering
Systems Engineering
Aviation
Airbus A380
Telecommunications
Projects I Am Working On
Projects I Want To Work On
Work (Honeywell)
GPS
Navigation Algorithms
Chemistry
Genetics
Mathematics
Physics
Quantum Mechanics
Biology
2D Videogaming
3D Videogaming
Universe
Politics
My House
My House Renovations
My House Problems
DIY
DDIY (Don't DIY)
HYFILDIFY (Have Your Father-In-Law Do It For You)
Minneapolis
Monty Python
Fawlty Towers
Curb Your Enthusiasm
Extras

If any of those sound interesting, check back.