Anthropomotron 1.5 is Out!

April 30th, 2013

Today I’m releasing Anthropomotron 1.5 on iOS, Android, and web browser!!! I’m a bit behind schedule with my plan, but here is the “half” update of Anthropomotron! In the next few months I plan to upgrade the stature section. The programing will be the hardest I’ve ever done, but the results will be really cool.

I’ve also given Anthropomotron it’s own page; before the links to its various versions was just stuck to the top of my CV page. I also bought the domain name anthropomotron.com that links directly to its new home. Both access points to Anthropomotron will still be available for the time being.

Enjoy the new body mass estimation techniques! I’m especially proud that, with lots of support, I have formulae that are just now available online, but aren’t even in print yet! That’s some cutting edge stuff.

Oh, I found a last second typo somewhere in the app after I had submitted it to Apple. Rather than pull the update and send a fixed version, which would’ve taken another week to get reviewed and accepted, I just let it go for now. The typo is not in the web or Android versions. Bonus points if you can find it.

Update: Anthropomotron has been reviewed! Scottish journal Axis, of the Centre for Anatomy & Human Identification. Read it in PDF form here.


Another Night of Coding Issues

April 25th, 2013

I thought my Anthropomotron update troubles were over when I finally got it running the latest Phonegap, but as I tried to archive the app to upload to the App Store, it failed with an error message:

“‘Cordova/CDVViewController.h’ file not found.”

Looking around on the internet, it appears that this is another bug caused by starting from a 1.x version of Phonegap. The solution that finally worked for me was four-fold.

First, I made super sure that the CordovaLib.xcodeproj file was in my Anthropomotron.xcodeproj file. Confused? These instructions sum up the process. I found that even after following the instructions, Xcode thinks that CordovaLib exists elsewhere on my computer. I had to click on CordovaLib.xcodeproj in my own project’s left sidebar in Xcode, check the right sidebar that says “Identity,” and make the “Location” “Relative to CORDOVALIB.” Phew. But I still got an error. Rats.

Second, I followed these instructions that involve digging into the CordovaLib.xcodeproj file in the Finder via “Show Package Contents,” open the necessary file in TextEdit, and add a few lines of code where necessary. There are multiple “ARCHS” sections so I had to add the lines several times in the file, using the Find function to look for instances of “ARCHS.”

Third, I followed Approaches 1 and 4 of these instructions to get Xcode to look in the right places when building my app and not overthink the building process. (Approach 2 is my first step listed here).

I know the first step is critical for the app archiving process to work. I’m actually not sure whether the second, third, or some combination of steps did the trick, but they didn’t hurt so that’s good I guess.

After that, I was finally successful in packaging Anthropomotron 1.5 and uploading it to the App Store. Review should take a few days and modern body mass estimation can be unleashed on the world!


Slow and Steady Upgrades Win the Race

April 22nd, 2013

I’m getting ready to release Anthropomotron 1.5 so I’m taking care of the little details like making sure the internal software is up to date. I saw that since last time, Phonegap has jumped up a few version numbers so I made a goal of running my app with the latest version as of right now. Along the way, I learned a few things about the safest speed at which to apply updates.

The Phonegap developers have this document for doing upgrades version to version. It looks easy enough. Each update has the same general procedure of replacing certain files along with some one-time actions that have to be done.

I tried following them all (from the bottom up) from my current version of 2.2.0, but the result was a giant crashy mess. I decided to restore my files via Time Machine and start over. This time I went go version by version, making sure that each one works before upgrading it to the next step. I still ran into problems but now I could handle them one at a time! I think a lot of these occurred because I originally made Anthropomotron in an older version of Xcode and a 1.x version of Phonegap so there was a lot of legacy stuff that got in the way of the new code. Here is the step by step so the next unfortunate soul will have a slightly better time. I started writing this at version 2.4.0 so the earliest fixes are a bit hazy.

2.2.0 to 2.3.0
I followed the steps but ran into build errors until I followed the advice on this page. Also, following the guide to new Phonegap installs, I added these lines to my index.html after the line that loads the Cordova Javascript itself:

<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>

2.3.0 to 2.4.0
Once again I followed the steps but ran into build errors when I was done. Finding a solution took a bit more time since apparently fewer developers had the same issue. I did track down the tip that fixed the update problems for me. Opening project.pbxproj and deleting the three instances of the red-highlighted two lines did the trick for that error. The same problem from 2.3.0 to 2.4.0 could occur since this update writes over the MainViewController.m file. Add the 2.2.0 to 2.3.0 fix for that file again if necessary.

2.4.0 to 2.5.0
The instructions on the Phonegap site say 2.4.0 to 2.6.0 but we know what it means. The good news is that no new errors popped up! Woohoo!

2.5.0 to 2.6.0
The instructions on the Phonegap site say 2.6.0 to 2.6.0 but we know what it means. Also note that step 10 has you move one of the lines in config.xml from where you placed it in step 9. Just roll with it. I also didn’t do anything for step 11 and my app worked anyway (it doesn’t use Location Services). After all of that, Anthropomotron runs in the simulator! Time to deploy to my actual devices and try to crash them.

My whole goal with Anthropomotron is that one person does a bunch of work so other people don’t have to do the same thing. That philosophy extends to my app developing time so I hope someone benefits from this post. This week’s goal is to get the Android version up to date. The Phonegap update instructions for Android look far simpler so here is to hoping that it is more painless.


Comics Goofs Past and Present

March 19th, 2013

I’ve noticed a few goofs in the professional comics I’ve read recently. Matt Fraction’s Hawkeye #1′s “fibia” was just the tip of the iceberg. Here are three that can be loosely filed under “laziness.” The respective teams involved really could have done a little bit more work to give the final product some polish.

Bryan Q. Miller’s Smallville comic is surprisingly good. Surprisingly, not because of the writer or artists, both of whom are doing fantastic work. (Miller and frequent collaborating artist Jorge Jimenez also worked on the Stephanie Brown Batgirl series mentioned in the last post). It’s that Smallville is based on the TV show of the same name, which let’s just say isn’t the highest quality television. Yet this creative team is making the best of it, taking many characters and plot elements from the show and building on that universe. Given how much I’m unexpectedly enjoying this book, it hurts even more when other people drop the ball.

In this case it is the letterer, the person who adds text where it is necessary. In some cases, text is written or drawn directly into the art, but it is more efficient to fire up a vector art program like Illustrator and go at it. The problem is that vector art is a lot sharper than drawn art. The sharpness is great for speech balloons and sound effects since they should be clear to read and they don’t actually exist in the comic world, unless it is a fourth-wall-breaking story. For in-universe text, however, some effort has to be made to blend it into the rest of the art. Otherwise, text that should not stand out particularly much jumps off the page in a distracting manner:

Lazy

Note how no effort was made to make the vibrancy of the text match the card it’s supposed to be printed on. Honestly, DC lettering does this all the time. In fact, this week’s issue of Batgirl (#18) has this:

Lazy4

What really got me about the Smallville example is the shadow the middle card casts on the bottom card. The text on the bottom card goes right over the shadow! Here is what around twenty minutes of Photoshop can do:

Lazy2

I did five things, one of which may have been unnecessary. I blurred the text to make it less sharp like the art it sits on. I decreased the lightness so it isn’t glaringly bright. I also decreased the saturation to take out some of the vibrancy (which wasn’t noticeable in the end). I painted the continuation of the middle card’s shadow over the bottom card’s text. Lastly, and what really sells the text, I painted some semi-opaque stains on the text to match the dirt on the cards. One thing I didn’t fix is how “Barry Allen” isn’t completely in perspective with the card it is on (compare the ‘B’ with border of the photo on the card). It’s not perfect; a professional can do a better job. But, I did a better job than an actual professional.

Case two is from the Marvel side. A friend lent me trades of Invincible Iron Man, coincidentally (?) also by Matt Fraction. In the comic there are a few vignettes of news coverage of worldwide protests. People looking angry, holding signs, and so on. I bet reading the signs would add a little flavor to what the protestors are feeling:

Protest

Or not. Unless this is some unique language in the Marvel Universe it looks like someone just went nuts with the keyboard. At least the text matches the banner it is on and is appropriately altered to look like it’s being viewed on a screen.

Lastly, here is a panel from a Legion of Super-Heroes comic from 1983, reprinted recently in a hardcover trade. The Emerald Empress is looking over a giant futuristic computer display that shows something that is “just plain big.” I mean literally, since no one ever replaced the instructions with the actual graphic in the 30 years since its first publication.

{ Click for bigger }

{ Click for bigger }

Update: This has been an especially bad week for lettering mistakes. Here’s one in the most recent Batman (#18) (is it just the current Bat-books letterer?? (nope, different people)).

Lazy5

I don’t even know how one can make a computer offset text like that!


Did You Know Keeley Has Her Own Twitter?

March 4th, 2013

I’m sure you’ve noticed my Twitter feed in the upper-right corner of this page. “Why do you use Twitter?” people ask me. I do it because oftentimes I want to say something but there are just too few words for a whole blog post. So I make it a sentence and still get it out there. Up until recently my Twitter feed was connected to my Facebook status so whatever gets posted in the former goes to the latter. I recently unhooked them, which effectively cuts my postings by half (I felt I was posting too much!).

I digress. The point of this post is to direct you to the Keeley comics page. Now look to the right: hey, that’s not my Twitter! It’s actually Keeley’s Twitter, hiding in plain sight. I started it way back in March 2009 (!!!) but I wasn’t fully committed to it until 2010 when I was inspired by Marvel writer Paul Tobin‘s Twitter for the character Anya Corazon*. Tobin innovatively integrated her tweets into the actual paper comic, so the fictional tweets (used in the place of thought balloons) appeared in real life on the day of publication! Araña stopped tweeting with the cancellation of the comic, which is sad because it was really good. That was the Golden Age of college-age female protagonists with Anya Corazon, Young Allies, and Stephanie Brown Batgirl getting their own books. *wistful sigh*

Keeley’s Twitter feed started out as the usual thing with posts about cats and the weather, but it’s grown into a kind of laboratory for storytelling. I’ve had a few ‘episodes’ where Keeley describes a coherent series events happening from start to finish. They’re not even all about fighting crime: Valentine’s Day had a sweet little story about Keeley and her husband (it’s well within scrolling distance if you want to look). She also participates in hashtaggery, giving profound character insight that don’t really fit in her comic.

{ Like this one }

{ Like this one }

Keeley lacks followers, though. I’ve told a few Midmococoers about it over time and they’ve followed her like the good friends they are. I am a little perplexed by how few strangers follower her. She doesn’t even have robots subscribing to her! So, yes the gist of this post is that you should subscribe to a fictional character’s Twitter feed.

*Sidenote: Keeley’s goggles? Ripped off of Anyas’ Araña costume.