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.]]>
“‘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!]]>
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
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.]]>
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:
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:
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:
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:
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.
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)).
I don’t even know how one can make a computer offset text like that!]]>
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.
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.]]>
Out of a little bit of new business model and a little so many things going on, the comic won’t be up on my website immediately. Also, some bonus features will never make it to the website: a “making of a page” from script to final page, and a letter column where Keeley answers reader submitted questions in character! (Many thanks to my Midmococo pals for submitting their hilarious questions.) For right now you can get a copy at IndyPlanet (and get the previous issues while you’re there!). There will also be a few copies for sale at Rock Bottom Comics later, when I get out of this snow.
Here’s an animated GIF I whipped up. Click on it to see the IndyPlanet page!
I’m up to my femoral head in Anthropomotron right now, but I have some great ideas for issues 5 and 6. Stay tuned!]]>
There are different formulae to use depending on the estimated age of the individual. Each formulae is tied to one whole number year (e.g. 1, 2) plus or minus 6 months. To decide which formula to use at the 6 month split, the researchers wrote:
“Results are intended to apply to individuals at [plus or minus] 6 months from these ages, e.g., the 1-year-old formula applies to individuals 6 months to 17.59 months,” (Robbins et al., 2010:147).
This is my solution, which is a great exercise in thinking like a computer. The first step is to handle the fact that I use years in Anthropomotron while the paper describes its methods in terms of months. Then I need to apply the special rounding rule using an if-then statement: if the decimal portion is less than 0.59 months, then round down, else round up. I tried a variety of techniques to convert years in decimals into months, but I decided that the easiest way would be to convert the 0.59 months into years instead. A quick calculation that 0.466 years is roughly equivalent to 5.59 months (the halfway mark in the year when the rounding rule changes).
Robbins G., P. Sciulli, and S. Blatt (2010) Estimating Body Mass in Subadult Human Skeletons. American Journal of Physical Anthropology 143(1):146-150.
The Robbins and colleagues technique is very interesting and unique in the app. For subadults 17 years old and younger, you take the age and J, or the torsion constant (i.e. second moment of area) of the femoral shaft, and produce an estimate of body mass from those variables. Here is what the interface looks like (the calculations aren’t functional yet):
You actually calculate J from measurements of femoral shaft so I made both options available: either input J yourself if you have it handy:
or enter the components of J so the app does that step for you:
Cortical thickness is its own calculation so entering its base components instead (external diameter and medullary diameter) will be a selectable option as well.
Post-hiatus I’ve gotten really familiar with the code involved so everything should be done in this section soon! There is a little footnote to this method that required some special code to round the age appropriately, which I’ll detail next time. Many thanks to Dr. Gwen Robbins Schug for reaching out and suggesting this technique.]]>
Update: Wikipedia confirms weighing the variances, so I must be right! I didn’t think of accounting for the degrees of freedom like the article suggests.]]>