Skip Navigation

Ramblings from the team at zinc Roe

Metal Fish Eggs

Mirrored Video Object in Flash

When using the webcam in your flash applications, it can be handy to flip the video object so it acts like a mirror. Many of the flash webcam demos out there does exactly this, usually by setting the scaleX property of the video object to -1. Unfortunately, because the registration point of the video object is set on the top left corner, setting the scaleX property to a negative value moves the display object like flipping a page in a book from right to left.

Setting scaleX to -1 on a display object

Setting scaleX to -1 on a display object

Of course, you can easily place the video object back to where it was by compensating for the flip and adding the video object’s width to it’s current x value. While this solution works for most applications, there is one annoying thing about this method. If you ever want to move the video object around the stage or play with it’s scaleX value, there’s going to be a lot of compensating going on and it can get messy quick depending on the complexity of your application.

So to make it easier, here’s a class that extends the Video object and adds a “flipped” property. I don’t think I need to explain what the property does, but the class overrides the x and scaleX properties of Video so that it takes care of all the positioning when flipping the display object. Check out the demo [webcam required]:

Even when flipped, the x property always references the left side of the video object and the scaleX remains the same. Here’s the source: MirrorDemo.zip

Read the full postLeave a Comment

Building Preschool Apps

As promised here are my slides from my talk at INPlay this week. I really had a great time at INPlay.

Building Apps for Preschoolers – INPlay 2010

Read the full postLeave a Comment

A big hello to the App Campers

Right about now a number of notable folks in the world of children’s technology are on their way to the Dust or Magic AppCamp. Unfortunately I wasn’t able to make the trip. But I thought I’d use this as an excuse to share a few of the lessons learned in developing Tickle Tap Apps.

We ran numerous testing sessions with kids throughout the development of our apps. Many very informal with friends, family and a few strangers here and there. With the help of mom and HCI consultant Deborah Ptak who works at University of Toronto we were able to gather a lot of useful feedback on the apps. Deb organized and ran a number of testing sessions with kids aged 3 to 6. We were able to make quite a few small improvements based on these sessions. Many of these issues can be grouped into three sets:

Unintentional triggering of the buttons. Any buttons near the edge of the screen WILL be hit by kids by accident. Repeatable. The Tickle Tap Apps use a ‘back’ button placed in the bottom right corner of the screen (all our preschool apps are landscape). Over and over again we watched as kids accidentally hit this button as they shifted their grip on the device. As a result we moved the placement of this button to the top left corner. So keep your buttons away from the edges of the screen and especially the bottom corners of the screen. And when it comes to do QA testing make sure your app survives all ten fingers mashing madly away at once.

Unintentional touches blocking intentional touches. Unless you make special accommodations an active touch event will block the triggering of subsequent events. In other words if you are touching the edge of the screen accidentally the app won’t respond to intentional touches. A solution is to set up your apps as multitouch and write the code in such as a way the it can accept input even if a stray finger is resting somewhere else on the screen.

Voice-over and animation overload. This came out only after longer game-play. Once kids got the hang of a game they charged ahead and suddenly the voice-overs went from helpful to annoying and the animations from novel and rewarding to just getting in the way. So we got smart with our voice-over. We took some of it out, we made some of it play only after an inactivity time-out and made some of it only play the first time through on a new game play. And we pared back the frequency of the little animations that are peppered throughout our apps. Getting this balance right is tricky and of course it’s not an issue that is limited to mobile apps.

So I hope all the AppCampers enjoy the Ocean views. Building apps for kids has been a tremendous experience and I’m sure I don’t need to tell you how liberating it is to break out of the browser and ditch the mouse and keyboard. Consider this an open invite to get in touch and share your questions and insights. Tickle Tap is just the start for us!

Read the full postLeave a Comment

Job Post – Bilingual children’s web editor

zinc Roe seeking a freelance bilingual children’s web editor (freelance)

zinc Roe is a new media studio specializing in building games and websites for children. We are seeking a web editor to handle content updates, promotions, and email correspondence with users of our websites and applications. Candidate must be fluent in French and English – both written and verbal.

Skills required:
• good written and verbal communication skills in french and english
• experience in customer service or support
• experience with social media tools such as facebook and twitter
• friendly, positive, and professional attitude
• organized and detail-oriented

Also valuable:
• new media production experience
• experience working with kids and children’s media
• marketing and promotions experience

Responsibilities:
• proofread copy for online content updates
• make content updates to websites using an online content management system
• respond to emails from our audience of kids and parents
• moderate online content to ensure it is appropriate for the audience
• test new content and provide feedback to development and design team
• run contests and promotions via twitter, facebook, email and our websites

This is a part-time contract position with some flexibility in scheduling. We offer competitive compensation and a friendly work environment. Candidates must be available for regular meetings at our studio in downtown Toronto. Please send a résumé along with a cover letter outlining how you feel you can contribute to our team to jobs \at\ zincroe.com. No phone calls please.

Read the full post1 Comment

Obscure YouTube player bugs on the iPhone

While debugging our new Tickle Tap Toddler Pack iPhone app, I had to fix a couple of obscure bugs caused by the YouTube video on the app’s info screen. After watching the video, none of the sound effects in Sound Shaker work and Field Flier just displays a blank white screen… very strange. After a bunch of digging around, it turns out that the YouTube video player isn’t a very good iPhone citizen. Oh sure, it’s very friendly and triggers all of the events and callbacks you’d expect when it opens. But when it closes, it doesn’t trigger anything, leaving the app wondering what the heck is going on.

The YouTube player breaks Sound Shaker because the app recieves an audio interruption event (kAudioSessionBeginInterruption) when the YouTube player opens, but never receives a corresponding event (kAudioSessionEndInterruption) when the player closes. Being a good citizen, the app deactivates it’s audio session (and suspends it’s OpenAL context) when the interruption begins, but the poor little guy never gets a chance to reactivate it again. Not cool.

The YouTube player breaks Field Flier because it creates a new key window when it opens and sets the key window to nil when it closes. When Field Flier goes looking for the key window, it’s nowhere to be found. Oh sure, the app could listen for a UIWindowDidResignKeyNotification notification to reset the key window – too bad the YouTube player doesn’t trigger that particular notification. I’m pretty sure the YouTube player has it’s thumbs in it’s ears going na nana nana na at this point. Again, not cool.

The hacktastic solution to both issues is to listen for a UIWindowDidBecomeVisibleNotification notification on the app’s main window and manually call the interruption listener callback and reset the key window. I put the relevant code in the app delegate, but if your app shows and hides the main window for some other reason, you’ll probably need to get a bit fancier.

Here’s the relevant code in TickleTapToddlerPackAppDelegate.m:

void interruptionListenerCallback (void *inUserData, UInt32 interruptionState ) {
  if(interruptionState == kAudioSessionBeginInterruption) {
    AudioSessionSetActive(NO);
    // suspend OpenAL context here...
  } else if(interruptionState == kAudioSessionEndInterruption) {
    UInt32 category = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
    AudioSessionSetActive(YES);
    // resume OpenAL context here...
  }
}

- (void) applicationDidFinishLaunching: (UIApplication*) application {
  // initialize the audio session and register the interruption listener callback
  AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);
  UInt32 category = kAudioSessionCategory_MediaPlayback;
  AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
}

- (void)didReceiveWindowDidBecomeVisibleNotification:(NSNotification *)notification {
  // manually call the interruption listener callback
  interruptionListenerCallback((void *)self, kAudioSessionEndInterruption);
  // manually set the key window
  [self.window makeKeyWindow];
}

Read the full postLeave a Comment

zinc Roe seeking p/t Bookkeeper and Office Manager

zinc Roe is looking for a part-time Bookkeeper and Office Manager. zinc Roe is a small creative studio with ten full-time staff. We are seeking an individual to take care of day-to-day bookkeeping needs and contribute to the smooth operation of the company as a whole. It’s very important that candidates have experience working in small business, preferably in the entertainment or design fields.

Skills required:

  • experience with small business accounting practices
  • bookkeeping experience using QuickBooks
  • excellent knowledge of MS Word and Excel
  • positive, mature and professional attitude
  • solid written and verbal communication skills
  • organized and detail-oriented

Also valuable:

  • experience working in television or new media industries
  • experience preparing tax credit applications

Responsibilities:

  • track cheques, invoices, credit card and bank statements
  • reconcile bank statements, monitor cash flow, and produce cost reports
  • work with producers to establish budgets, financing plans and cost reports
  • work with accountant on tax filings and audits
  • liaise with our external payroll service and group benefits provider
  • prepare tax credit applications and associated paperwork
  • code project income and expenses
  • research new funding opportunities
  • address building, security or cleaning issues with the landlord
  • maintain office filing system and order office supplies

This is a 20 hour per week position based in our office. Specific schedule is flexible within our normal business hours. We offer competitive compensation and a friendly work environment. Please send a résumé along with a cover letter outlining how you feel you can contribute to our company to jobs \at\ zincroe.com. No phone calls please.

Read the full postLeave a Comment

Ontario College Fail

Today’s blog post started out as a comment on What’s Wrong with Ontario Colleges. I share Ryan’s general frustration with how Ontario’s colleges are failing to serve either their students or our industry.

I’ve had my share of experiences with the Ontario college system. I taught Flash programming at Centennial College and George Brown and I’ve given workshops at SUNY Buffalo, Red River College and Seneca@York.

As an employer I’ve also hired my share of Flash programmers. And I can assure you competent Flash coders are few and far between. The same could be said for people with a non-superficial understanding of CSS, JS, standards compliance and interface design.

Every year Ontario colleges turn out hundreds of grads. I’ve interviewed many and I’ve reviewed applications for internships from dozens of them. After ten years in this business I’ve hired exactly one graduate of a new media Ontario college system.

So what’s wrong? Let’s review a few of the many ways College’s in Ontario are failing.

Failing to teach students what they need to learn, not what they want to learn.

College programs seem eagre to provide students with programs sound fun and easy. Guess what? Programming is hard. It’s extremely hard.

I can safely say that the courses that made me were the ones that took my smart ass brain and put it through the wringer (that would be second year multi-variable calculus) or took my to a place well outside my comfort zone (that would have to be philosophy). Did I want to take those courses? No. But those were the courses that taught me to work hard and yes – how to deal with failure. I came through them a smarter, more confident and a more mature person.

Struggling through these courses also re-inforced something my dad instilled in me. “Just break it down to first principals” he would say. By which he meant take the problem and strip away the cruft until you get to the crux of it. What I discovered is that, although each discipline has it’s own terminology they are based on similar ideas and problems. Which leads me to…

Failing to teach first principals.

I taught one group of college students who were close to graduation. The lesson was supposed to be about manipulating media in Flash. After a few minutes I realized the students didn’t really understand the difference between vector and bitmap art, RAM vs hard drive storage, or lossless vs lossy compression. I was dumbfounded. I tossed my lesson plan out the window and gave a rapid-fire class in digital media first principals.

The great thing about these basic principals is that they don’t change over time. Learning Flash MX programming was only ever going to be useful to these students for a couple of years. Which leads me to…

Failing to adapt.

For better or for worse colleges don’t do change well. If nothing else, our industry is about keeping up with (and indeed pushing) change. Technologies and tools evolve rapidly. Many college instructors have been working inside that system for many years. I met my share of college instructors struggling to teach software that they had never used professionally and barely had a grasp of. The solution is to bring in more working professionals to teach the specialized skills like Action Script programming and for full-time instructors to focus on first principals and professional standards. Which leads me to…

Failing to teach professional practice.

Our industry is a wonderfully fractured, multi-faceted mess. People bounce from freelancing to small business to big business and back again. Graduates need to understand the fundamentals of doing business. Basic proposal writing, pitching, prototyping, interview skills, strategies for dealing with difficult clients and colleagues, contracting, pricing, getting paid and how not to f*** up your career before it starts.

Read the full post4 Comments

Giving Back

For the past few years zinc Roe has supported a number of charities. It’s part of being a good corporate citizen. Everyone on our team puts forward the name of one charity to give to. It’s a great chance to learn more about all the great work that charities are doing both here at home and around the world. To mark the holidays zinc Roe is giving a total of $1800 to nine projects. I hope you’ll take a minute to learn more about each of these groups.

Design Hope Toronto is a volunteer initiative that raises funds and awareness for local organizations dedicated to helping the homeless. We invite artists to create one-of-a-kind artworks inspired by the idea of “shelter.” These pieces are then auctioned and raffled off at our annual event with all of the proceeds going to one of the many deserving homeless programs in Toronto.

Sistering is a women’s agency serving homeless, marginalized and low-income women in Toronto. Our programs and services help women gain greater control over their life circumstances.

The Stephen Lewis Foundation supports community-based organizations that are turning the tide of HIV/AIDS in Africa. They provide care to women who are ill and struggling to survive; assist orphans and other AIDS-affected children; reach heroic grandmothers who almost single-handedly care for their orphan grandchildren; and sustain associations of people living with HIV and AIDS.

The Redwood is a haven. We’re here to help women and children just like you live free from domestic abuse. Free from fear. Free from threat. We provide safe and accessible services – from a secure home to counseling to legal support. We help you get your life back on track. And we bring the promise of a better future.

Mennonite Central Committee works alongside local churches and communities in more than 50 countries, including Canada and the United States, to carry out disaster relief, sustainable community development and justice and peace-building work in the name of Christ. MCC also seeks to build bridges to connect people and ideas across cultural, political and economic divides.

The Snowsuit Fund is an Ottawa-based charity that raises funds for the purchase and distribution of snowsuits to needy children, 15 years and under, in our community. In our 2008/2009 season, we distributed nearly 15,000 new snowsuits.

Interval House provides a continuum of services that enable abused women and children to have access to safe shelter and responsive services that help them establish lives free from violence. The continuum includes integrated and specialized services related to counselling, advocacy, outreach, legal and housing support, as well as programs to help build economic self-sufficiency.

Sunnybrook Veteran’s Care proudly cares for those who risked their lives fighting for our freedom. Home to veterans of several wars and the largest veterans care facility in Canada, Sunnybrook provides advanced and compassionate care that promotes health and independent living for our veterans and helps us better serve all seniors who turn to us for care.

Map is a team of photographers working together since 1993 encouraging and helping young photographers, writers and researchers. Map actively advocates social awareness campaigns in the rural as well in the urban communities in Bangladesh through their visual campaign materials using photo exhibitions and participatory workshops.

Read the full post1 Comment

Tickle Tap Spotlight: Field Flier, Pattern Painter and Color Collector

fieldflier_5

Just in time for the holidays, we now have three more Tickle Tap Apps available for download on the iTunes App Store!

Field Flier is a highly imaginative app that’s jam-packed with all-original (and quite wonderful!) illustrations, animations, music and sound effects. It took a great deal of programming prowess on Luke Lutman’s part as well. You really have to play it to appreciate all the minute and adorable details it includes. I love it when Robin reads the newspaper and stands on the turtle. “Robin is dancing!” is definitely my favourite part though. We were so excited when our composer Brian McBrearty delivered the music track for this animation. It’s got a definite Euro dance feel to it. Perfect!

Pattern Painter seamlessly integrates patterns and shape drawing in a single app. That’s because behind-the-scenes, this little app puzzler literally had our team going back to the drawing board repeatedly! We thought long and hard about usability. Our programmer, Colin McCune, had some tricky business to work out with the shape recognition as well. But once we had it all figured out and added our animal friends in (Jinja the cat, Harvey the dog and Robin the bird) it proved to be as fun and enjoyable as we’d hoped, if not more so!

Color Collector is awesome. The team had great fun running around the office collecting colors during testing (we quickly realized we have a dearth of purple objects here for some reason!). But we were also breaking new ground in terms of programming with this app, and pushing the capabilities of the iPhone camera technology to its limits. Our programmer, Stefan Arentz, did an amazing job figuring out the challenges and intricacies of color recognition, and what the iPhone camera could and couldn’t do. After many, many hours of hard work we finally had something that worked wonderfully! And then we tested it on the iPhone 3G. Uh oh. I’m proud to say we at zinc Roe are not ones to panic, even in moments of sheer horror like that. We’re problem solvers! Of course we got it working well on 2G, 3G and 3GS in the end. Now that it’s available on the App Store, we really hope parents and children discover this game and enjoy playing it as much as we do. . .er did.

Thanks to everyone on the Tickle Tap Team: Jason Krogh, Stefan Arentz, Luke Lutman, Colin McCune, Carlo Alducente, Vanessa Leggett, Anne-Sophie Brieger, Ian Partridge, Aaron Leighton, Davin Risk, Lara Salam, Brian McBrearty, Carla Fisher, Mike Palozzi and Laura Kyswaty.

Read the full postLeave a Comment

Preview Color Collector!

Color Collector, the playful preschool color quest, is coming soon to the iTunes App Store! This inventive app uses iPhone camera, and it makes it exciting for children to discover colors wherever they are. See Color Collector in action!

Read the full postLeave a Comment

Page 1 of 71234567»