Wednesday, September 30, 2009

iApplicate.tv Episode: Fresh Names - Generate Creative Baby Names

And here comes a new episode from iApplicate.tv: Fresh Names, the iPhone app released by JT Apps, generates creative baby names for future mothers and fathers, a quick-fire way to choose your child's calling card!

Don’t Miss Your Favorite Channel - Watch EyeTv Via iPhone

Almost everyone has a favorite TV channel and sometimes it is to be upset because u are away and can not watch it. You want to know what is on your favorite channel so get introduced to the EyeTV app for iPhone and iPod touch which is newly released by Elgato Systems.

The app is made to work in conjunction with a Mac running the EyeTV software. Wi-Fi connection required to Watch live TV and change channels anywhere, you may watch your EyeTV recordings, browse the comprehensive program guide, start recordings back home on your Mac immediately or schedule them for later, View and edit your recording schedules.





The EyeTV app connects to any Mac running the latest version of Elgato's award-winning TV software, EyeTV 3.2, and can automatically find a Mac on the local network using Bonjour. The EyeTV app can also find and access a remote Mac via "My EyeTV", a free locator utility introduced today as part of EyeTV 3.2. To view streaming live TV on an iPhone with the EyeTV app, the companion Mac must have an Intel Core 2 Duo processor or better.

The EyeTV app is already in App Store and it costs $4.99.

Developer link:

Just days after William Hill’s CEO speaks out against the UK Government about the strict new regulations online casinos, the US Department of Justice announces changes in the 1961 Wire Act which is a boost for legalizing online casinos for US players.

More iPhone 3 Development Update

Today, I teased my Twitter followers with this and this. I thought it would only be fair to elucidate a little bit.

The first half of More iPhone 3 Development has been a struggle to write. In the first half of the book, we create a navigation-based application using Core Data. Although the chapters are primarily intended to teach different aspects of Core Data, I also wanted to set a good example design-wise. If you've ever written a table-based detail editing view, you know that's a challenge. Even Apple's sample code uses kludgey, hard-to-maintain techniques because the table view architecture simply wasn't designed primarily for creating this type of view; it was designed to display values from a collection or list not for displaying or editing different attributes of a single object.

My early thought was to create a generic framework of controllers that could handle editing any Core Data object just by creating property lists. This approach, although I think it has great merit for use in development, made the book too hard to write. All the code that I needed to show was getting squirreled away in these generic classes, and I was having to spend a lot of time explaining the architecture rather than the important Core Data concepts that I needed to get across.

After a lot of struggling, and writing probably twenty-five different prototypes, I finally hit on a solution that I liked. It was a maintainable design that borrowed a lot from the property list prototype, but kept everything in the places where people are used to seeing it. Instead of property lists, we store the structure of the table view in arrays, but we start simple enough that the concepts don't become too overwhelming. Or at least I hope they don't.

As I started working on the Chapter 7 version of the application, which is the first time that we need to add another detail editing controller, I realized that in just a few short pages, we could refactor the controller class written over the previous six chapters to be completely generic and totally reusable, meaning we wouldn't need to write any more substantive code for editing or displaying data once the refactoring is done. We can add drill down into an infinite number of controllers, traversing relationships or fetched properties, and never have to add more code than what's needed to create a couple of arrays that define the object and attributes we want to let the user see or edit.

It's so far been a somewhat difficult chapter to write, but it's incredibly edifying to get here and realize that the attention to design has paid off. The end-result of Chapter 7 is basically an extensible infrastructure for creating navigation-based Core-Data applications. Hopefully, the reader will also have taken away a strong understanding of Core Data, but even if not, you'll have a starting point to work from that will save you a lot of development time. You just create your model, and set the controller instance's arrays to reflect the objects and data to be displayed or edited in your application. All the really hard stuff is done and can be leveraged over and over again.

Thanks for your patience. Once Chapter 7 is done, I should be able to make much faster progress.

PatrickJ Interviews Loren Brichter

An interesting and apparently amicable end to the Twitter 2 controversy? It sorta looks that way.

Not everyone will agree, but I think now people have a better understanding of the situation Loren was in and the reasons he made the decision he made.

Critical Thinking from Critical Thought

This is an excellent blog post by David Whatley of Critical Thought Games. I was already bummed about not being at 360 iDev (the first was awesome), but I really would have liked to have been in the audience for David's talk, especially to watch the crowd's reaction.

I've been known to grouse about things from time to time, but I also try to keep a sense of perspective and not lose sight of just how amazing this thing that Apple has enabled with the App Store and iPhone SDK is. David does it better. Well worth a few minutes of your time to read this.

Apple iPhone Apps Reach 2 billion Downloads

Apple announced that more than 2 billion applications for the iPhone and iPod Touch have been downloaded from its App Store, just five months after hitting the 1 billion download mark.

“The rate of App Store downloads continues to accelerate with users downloading a staggering two billion apps in just over a year, including more than half a billion apps this quarter alone,” said Steve Jobs, Apple’s CEO. “The App Store has reinvented what you can do with a mobile handheld device, and our users are clearly loving it.”

The iPhone app store has over 85,000 apps available to download and there are now more than 50 million iPhone and iPod touch owners 77 countries, and 125,000 developers in Apple’s developer program.

In late April of this year, Apple reported that it had topped one billion downloads and 35,000 applications, and announced that downloads had topped 1.5 billion with 65,000 apps on offer as of July 15 of this year.

Reference:
http://cut.io/wPS8

Tuesday, September 29, 2009

Comments are Broken

Note: No word from Blogger.com yet, but the comments to this post seems to be okay, it's just the original post that's not working, so the discussion has started back up in the comments to this post.

Yes, I'm aware of the problem. I've posted the error code and information to Blogger's tech support forums and am hoping for more information sometime today.

It is a shame, though, the Just Another iPhone Blog author I linked to in my last post wants to respond to my post, and can't. We've tweeted back and forth a bit, and I think the discussion will be both interesting and fruitful and, believe it or not, civil.

As several C4 attendees became painfully aware this past weekend, the way our words are received are not always the way they were intended when written. It's altogether possible that I read the intent of that post differently than the author intended, and I think there's a real opportunity here for users and software developers to better understand each others' perspective.

I'm not sure that there's going to be common ground - I feel pretty strongly that Tweetie is fairly priced and that there's nothing unfair to the users about making Tweetie 2 a new product, especially in light of the fact that there's no built-in mechanism for paid upgrades on the App Store (yes, I know you can do it with in-app purchase, but that requires building infrastructure to support it and would be non-trivial to backfit into an existing application) - but I think there may be a possibility of closing the gap a little bit, educating users and ourselves in the process.

Stay tuned.

Monday, September 28, 2009

A Sense of Entitlement: Tweetie 2

For the most part, I stay out of discussions about App Store pricing. The so-called "race to the bottom" is, I think, somewhat blown out of proportions in many discussions held between iPhone developers, who have a very personal and one-sided view of the market. There's a lot of competition and prices are lower than traditional software markets, but there's also a large volume of buyers (2 billion applications sold so far and counting according to Apple), which means you can still make a living charging relatively low rates. If EA or Infinity Ward can make a profit selling a game for $49.99 that takes a team of literally hundreds of people two years to create, it seems like 1-5 person iPhone development shops should be able to make a profit at a much lower amount if the program is marketed diligently and intelligently and is truly useful or fun.

The early seemingly overnight success stories have, I think, created a skewed perception of how easy it is and should be to make money in the App Store. That being said, I think there is some merit to the argument that the low prices and large number of free applications that dominate the app store have created a sense of entitlement and have fostered an environment where people feel like they are owed free upgrades in perpetuity.

This can be evidenced by this blog posting that takes Loren Brichter to task because he's releasing the next version of Tweetie for the iPhone as a new app with no upgrade path. This blog post has such gems as
A slew of new features and functionality does not, to me, make it a different app.
Right, and when Adobe releases a new version of Photoshop or Microsoft releases a new version of Word with "a slew of new features and functionality", those are, of course, free, right?

Of course not.

It takes time and money and hard work to create that slew, and that has to be paid for somehow. When you get your oil changed in your car, you don't expect it to be free the next time bring your car in, because it's the same task they're performing, do you? Because you paid for a newspaper to be delivered today, doesn't mean you expect to get it free tomorrow and forever, does it? Of course not. No business can run without revenue. If Loren continued to spend all of his time developing Tweetie and never got more money from his existing customers for the new features, he would eventually go bankrupt and starve. Or more likely, he'd stop developing Tweetie before that happened, and we'd never get any cool new features again.

I don't know Loren personally, but I use Tweetie as my iPhone client (along with Twitteriffic which is also excellent) and I try to keep abreast of what's going on in the iPhone development world. Many of the people I follow on Twitter are beta testers for Tweetie 2, and I can tell you from the chatter I've seen that an awful lot of hard work has gone into the next version of Tweetie over quite a long period of time.

Loren has decided to ask a very reasonable fee for the new iPhone version of Tweetie, which should be showing up on the App Store in the next week or so. The $2.99 he's asking is less than most of us spend per day on coffee. If the author of the blog post above is making minimum wage, then he made more money from penning that whiny rant that it would cost to buy the new Tweetie. Get a fucking sense of perspective. The world owes you nothing. Loren owes you nothing. You paid for Tweetie 1, and you got Tweetie 1. Nowhere in that transaction did anyone promise to deliver to you new versions on a silver platter in perpetuity.

The old version will still be available to those who have purchased it. You won't be made to stop using it, or forced to upgrade, you just won't get the cool new features that Loren's been busting his ass to write over the last six months. You won't stop getting the benefit of what you've paid for.

Even though I occasionally offend people with my opinions, I rarely do it intentionally. But in this case, I think certain people, like the author of the blog linked above, along with all the people echoing similar sentiments on Twitter deserve a little verbal slapping around. This kind of immature sense of entitlement should not be coddled or put up with. People whining about the cost of the upgrade should be told in no uncertain terms that they are acting like fucking toddlers. Worse, because toddlers are, well… toddlers. These people are presumably adults and should know better.

If the new features aren't worth $2.99 to you, fine, don't buy it. There are plenty of other Twitter clients available, several of which are free. So shut your pie hole and go find another client rather than whining about how you are entitled to the end-product of Loren's hard work for the last half year simply because you paid about the price of a bottle of soda about a year ago.

If you really like Tweetie… if it's your favorite twitter client, then for fuck's sake, it's only three bucks to help ensure that we keep getting new features! If you don't, then why would you want the new version anyway. Just on principle?

Note: Comments are broken on this post. You can comment on this post instead if you desire.

The Grass on the Other Side of the Fence

Here is an short account of the experiences of one of the earliest Palm Pre developers. Be warned, though: The neon green on black is a little hard on the eyes.

Not intending to pass judgment here, just think it's interesting to see what life is like developing for other mobile platforms. I think keeping a little in touch with what's going on in the Palm and Android development world helps us keep a sense of perspective when we get frustrated with the App Store and iPhone development process.

Two Billion and Counting

Today, Apple announced that they have reached another milestone: two billion applications have been downloaded from the App Store. Other numbers from the press release include the fact that there are 85,000 applications available in the store, and 125,000 registered iPhone developers. The App Store is currently available in 77 countries and allows you to reach 50 million potential customers.

Holy hell, those are some big numbers.

via Michael Jurewitz

Play iPhone loud and never miss a call

You like high volume music listening and headphones sometimes gets u bored – here is solution presented by Meromex company. New sound system (Mi9490P) for iPhone and iPod is already launched. So you can play your tunes anywhere in your home. Play it loud and never miss a call.

Great sound and versatility converge into a sleek custom design that fits your life. Offering 30 Watts of power output, the system also boasts an FM tuner as well as the ability to play audio CDs and CD-R/-RW discs. Boasting compatibility with all iPhones including the new 3GS, the system charges an iPhone or iPod at the same time as the user is listening to music. Specs include an adjustable equalizer with bass, mid, and treble controls, a backit LCD and clock and sleep functions. The line-in jack also means that it can be used with non-docking iPods and other MP3 players.

Complete with remote control, the Memorex Sound System (Mi9490P) is on sale now for £149.95, or 169.95 euros.

Established in 1961 in Silicon Valley, Memorex is today a consumer electronics brand of Imation specializing in disk recordable media (CD & DVD Drives), travel drives, flash storage, computer accessories and other electronics.

Developer link:
http://cut.io/U258

Sunday, September 27, 2009

New Line of iPhone Gloves Released

iPhone users are safe even in the hardest temperatures of winter. DOTS GLOVES LLC presents three models of iPhone gloves. There is $5 difference in price between them. So what are the features the gloves are different:

D105-$15
Three In Touch fingertips. Perfectly balanced warmth: tight-knit acrylic yarn. Superior style: chic fingertips, discretely folded ribbed cuff, no-frills design.

D110-$20
Three In Touch fingertips. Cold-cutting protection: supersoft extra thick acrylic yarn, chic fingertips, speckled knitting, discretely folded ribbed cuff, no-frills design.

D200-$25
Three In Touch dots. Sub-zero protection: nylon shell, fleece lining. Drop-proof handling: microfiber grip palm. Superior style: seamless construction, no-frills design.

According to the DotsGloves D105 and D110 are sold out but soon available. As for the D200 it might be pre ordered.


Source:
http://cut.io/cJ46

Texas Instruments Offers Calculator App for iPhone

Texas Instruments has released a new iPhone app called BAII Plus. The new app for iPhone and iPod touch gives business professionals and students a feature-packed financial calculator on the go.

The app is equipped with all the original calculator’s features, and solves accrued interest, amortization, cost-sell-margin, and depreciation and time-value-of-money calculations, such as annuities, mortgages, leases and savings.

The BAII Plus App costs $14.99 USD. It will work both on the iPhone and iPod Touch.

Here’s the description of the app:


• Solves Time-Value-of-Money calculations
• Generates amortization schedules
• Performs cash-flow analysis, and computes NPV and IRR
• Calculates depreciation with four different methodologies
• Breakeven, profit and percent difference calculations
• Date function to determine days between dates
• Evaluates bond prices and yields "to maturity" or"to call"
• Scientific capabilities include trig. and log. functions
• Memory stores 10 values and Constant Memory retains them
• Choice of chain or Algebraic Operating System methods
• Key click sounds enabled optionally via Settings

Reference:
http://cut.io/lqCR

Saturday, September 26, 2009

Read for You, Write for Me, Right?

Properties are a way to expose data to other classes. Because they make memory management more convenient on the iPhone and in non-GCC Cocoa apps when you declare them retain, many of us also use properties within our class. When we use synthesized instance variables, we don't have a choice, because the underlying instance variables created by the runtime aren't available even to our own class, and we have to use the accessors and mutator or dot notation to use them.

What happens, however, when you want a property to be read-only to other objects, but you also want to be able to use the synthesized mutator within your own class to assign new values? In other words, what do you do when you want a property to be read-only to the rest of the world, but read/write within your own class?

Extensions to the rescue. Before we had extensions, it was common to declare a category at the top of your implementation file with any private methods. This would prevent the compiler from complaining when you called a private method from within your class. The compiler would see the private method declaration in the implementation file when your class was compiled, but wouldn't see those methods when it compiled other classes. Under this old way of doing it, we would simply include the mutator method in the category, and only put the accessor in the header file, and that would effectively make the instance value read-only to the rest of the world by not exposing the mutator.

In Objective-C 2.0, this practice has been formalized into extensions, which are basically just anonymous, nameless categories. One thing you can do with an extensions is to redefine your declared properties. So, you can declare a property in your header file as readonly, and then in your implementation file, create a class extension with the same properties re-declared as readwrite. Ét voilà! Your class will be able to use both the accessor and mutator for those properties while external classes will only be able to use the accessor. Cake and nom nom. Life is good.

Note: you cannot change all aspects of a property. You can't, for example, declare it copy in your header file and retain in your extension.
Let's look at a simple example. Let's say we were writing a subclass of NSOperation that had two properties. We want these values to be set by in the init call, but because our operation will be running concurrently on another thread, we don't want the values changed after that by external objects, but we may need to change them ourselves. To do that, we might declare our class like this:
#import <Foundation/Foundation.h>
#import <QTKit/QTKit.h>


@interface MyUpdateOperation : NSOperation {

}

@property (readonly, copy) QTMovie *movie;
@property (readonly, copy) NSView *view;
- (id)initWithMovie:(QTMovie *)inMovie andView:(NSView *)inView;
@end


And then, in the implementation file, we would use an extension to redefine those two properties:

#import "MyUpdateOperation.h"


@interface MyUpdateOperation ()
@property (readwrite, copy) QTMovie *movie;
@property (readwrite, copy) NSView *view;
@end


@implementation MyUpdateOperation
- (id)initWithMovie:(QTMovie *)inMovie andView:(NSView *)inView
{
// Logic goes here
}

-(void)main
{
// Logic goes here
}

@end


It's a simple trick, but one with the potential to make your life more pleasant.

Friday, September 25, 2009

myPANTONET - an iPhone Application For Designers

Pantone, announced iPhone application for designers called myPANTONET.

The app gives graphic, multimedia, fashion, interior, and industrial designers the tools to capture, create, and share Pantone color palettes wherever they go. The Pantone color Libraries and the Pantone matching system for coated, uncoated, and matte stock are all included in the app.

The user can snap a picture of a scene or object with the camera and the app will provide the closest pantone match for colors in the image. Colors can also be exported to design applications like Creative Suite.

myPANTONE is available for download at the Apple iPhone App Store for U.S. $9.99/€7.99/£6.99. myPANTONE is compatible with iPhone OS 3.0 or higher, and can be used on the iPhone or iPod® Touch.

Reference:
http://cut.io/ghrI

Extend iPhone battery life


Iphone poor battery life probably has impacted on your mood for many times. It’s not a secret anymore that this is one of the worst sides of an iPhone. Anyway this phone has other fascinating sides and this one can be cured with new product by Dexim Company. P-Flip™ Foldable Power Dock For iPhone is world's first foldable, portable, multi-functional and rechargeable power dock. This is a desktop holder with charging and sync, and is also a rechargeable back-up battery pack for Video/Game. The battery life extends up to 8 hours Talk, 15 hours Video/Game or 80 hours Music.

Here are more details on P-Flip™ Foldable Power Dock:
- Capacity: 2000mA Lithium Polymer Battery
- Power: Battery input power: 5V DC, 1A; Output power: 5V DC, 1A
- Compatibility: 3GS/3G/iPod Touch 3G/2G/1G

Developer link:
http://cut.io/CGMZ

Thursday, September 24, 2009

iApplicate.tv Episode: Magnetic Personalities from People Operating Technology

Here comes a new episode from iApplicate.tv - Magnetic Personalities, the iPhone app developed by People Operating Technology, app allows users to style hair on faces with digital iron filings!

Barcode Generator Application



For grins and giggles, I tried compiling an Xcode project I created back in 2002. Well, technically, it was a Project Builder project created in 2002 that was converted to an Xcode project a couple of years later, but the bulk of the code was written back in 2002. I wanted to see how much work would be involved in taking a project that was written when Puma was the current version of Mac OS and Macs were shipping with PowerPC processors and getting it to compile to work in 32/64 bit mode for Intel Macs.

Code changes required? Not a one.

There were a bunch of warnings that I would address if this were shipping software, since a couple of methods I used back then have been deprecated. None of them have yet been removed, so the application works (as far as I can tell) exactly as it did back in 2002. The project configuration was where almost all of the work was in updating, and there wasn't much of that, to be honest. Total time investment, about 20 minutes.

That's pretty damn amazing, different architectures, different register size, and a seven-year-old codebase written when I knew a heck of a lot less about Cocoa. Despite all the amazing changes to Snow Leopard, this old code still works flawlessly.

If you're interested in a free Barcode application, you can download the compiled application right here. If you have a version of the OCR-A font installed, it will attempt to use it (you can get a free one here), otherwise it will fall back on the system default monospace font.

I will push the project changes to Google Code when I have some free time.

Wednesday, September 23, 2009

Opacity - Export as Source Code

Okay, I don't ordinarily repost items covered by Daring Fireball since most of you probably read it anyway, but this one's just too cool and too relevant not to include. The vector art program Opacity now has the ability to export your graphic as source code, presumably as CoreGraphics calls that you can use in your Mac and iPhone applications.

Now, in most cases, you don't want resources contained in code - you should just store the graphic file as a resource in your application's bundle - but there are times when this would be hugely helpful, like when you want to animate the vector art, or when the specific appearance of the image depends on values only available at runtime.

Brian Eno Released Another iPhone Application - Trope

Brian Eno, has released a second iPhone application Trope, developed with the help of designer and musician Peter Chilvers. The new app lets users create their own ambient music by drawing patterns with their fingers. The shape of each pattern creates a different tone.

Unlike the first Eno app, Bloom, Trope is described as producing darker music that is "more introspective, more atmospheric." Particular moods can be selected from an accompanying palette.

The software requires a device with iPhone 2.2 firmware or better. For the sake of fidelity it is recommended that people use either headphones or external speakers, instead of earbuds or built-in speakers.

"Trope is a different emotional experience from Bloom - more introspective, more atmospheric. It shows that generative music, as one of the newest forms of sonema, can draw on a broad palette of moods." - Brian Eno.

Trope is available now on the App Store for £2.39 ($3.99), and Eno stresses that it's different from its predecessor.

Reference:
http://cut.io/bsN9

Tuesday, September 22, 2009

More Housecleaning

Here's another category I found while cleaning out my dev folder. It's another bit of Quicktime code for Cocoa. This is a category on QTMovie that makes it easier to deal with standard movies (i.e. ones with one video track and any number of audio tracks).

This same category exists in the MovieStepper project, but that version won't compile for 64-bit Cocoa applications because Apple has removed access to the underlying Quicktime data structures like Track and Media. This version uses only QTKit objects to accomplish the same tasks, and thus will compile for both 32-bit and 64-bit applications.

QTMovie-Frame.h
//
// QTMovie-Frame.h
// MovieStepper
//
// These are methods designed to be used on movies that contain only
// sequential frame data, e.g. straight movies. These methods make
// the assumption that the framerate is constant and that each frame
// is displayed for the same length of time. Do not use these methods
// on movies that have tracks other than a single video track and
// some number of audio tracks.
//
// This code may be used freely in any project, commercial or otherwise
// without obligation. There is no attribution required, and no need
// to publish any code. The code is provided with absolutely no
// warranties of any sort.

#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>

@interface QTMovie(Frames)
- (long)numberOfFrames;
- (void)gotoFrameNumber:(long)frameNum;
- (long)currentFrameNumber;
- (int)displayFPS;
- (float)desiredFPS;
- (NSImage *)frameImageForFrame:(int)frameNumber;
- (NSSize)size;
@end



QTMovie.m
//
// QTMovie-Frame.m
// MovieStepper
//
// Copyright 2009 Jeff LaMarche. All rights reserved.
//
// This code may be used freely in any project, commercial or otherwise
// without obligation. There is no attribution required, and no need
// to publish any code. The code is provided with absolutely no
// warranties of any sort.
//
// This code has been updated to work in 64-bit mode where access to
// the underlying Quicktime Carbon structures has been removed.

#import "QTMovie-Frames.h"

@implementation QTMovie(Frames)
- (long)numberOfFrames
{
NSArray *tracks = [self tracksOfMediaType:QTMediaTypeVideo];

for (QTTrack *track in tracks)
{
QTMedia *media = [track media];
NSNumber *frames = [media attributeForKey:QTMediaSampleCountAttribute];
if (frames != nil)
return [frames longValue];
}


return -1L;
}

- (void)gotoFrameNumber:(long)frameNum
{
int frames = [self numberOfFrames];
double percentDone = (double)frameNum / (double) frames;
QTTime duration = [self duration];
QTTime newTime;
newTime.timeScale = duration.timeScale;
newTime.flags = duration.flags;
newTime.timeValue = duration.timeValue * percentDone;
[self setCurrentTime:newTime];
}

- (long)currentFrameNumber
{
QTTime now = [self currentTime];
QTTime duration = [self duration];

if (now.timeValue == 0 || duration.timeValue == 0)
return 0;

double percentDone = (double)now.timeValue / (double)duration.timeValue;
int frames = [self numberOfFrames];

return (int) ((double)frames * percentDone)+1;
}

- (Fixed)rawFPS
{
NSArray *tracks = [self tracksOfMediaType:QTMediaTypeVideo];

for (QTTrack *track in tracks)
{
QTMedia *media = [track media];
QTTime duration = [[media attributeForKey:QTMediaDurationAttribute] QTTimeValue];
long numFrames = [self numberOfFrames];
double frameRate = numFrames*(double)duration.timeScale/(double)duration.timeValue;
return X2Fix(frameRate);
}

return -1;
}

- (int)displayFPS
{
return FixRound([self rawFPS]);
}

- (float)desiredFPS
{
return FixedToFloat([self rawFPS]);
}

- (NSImage *)frameImageForFrame:(int)frameNumber
{
QTTime restoreTime = [self currentTime];
[self gotoFrameNumber:frameNumber];
NSImage *ret = [self currentFrameImage];
[self setCurrentTime:restoreTime];
return ret;
}

- (NSSize)size
{
return [[self attributeForKey:QTMovieNaturalSizeAttribute] sizeValue];
}


@end

Dine, Nature and Pass - New iPhone Commercials

Three new iPhone commercials are released by Apple. They are posted on company’s iPhone ad gallery and already airing on U.S. prime time television. The ads mark a departure from the company's recent theme of highlighting three App Store applications per commercial and instead feature six applications per ad. Three new ads called Dine, Nature and Pass are released with the tag line “75,000 apps for just about anything”.

Dine features Trip Case (Free), New York Subway ‘09 ($4.99), Epicurious Recipes (Free), Zagat to Go ‘09 ($9.99), QuickOffice Mobile Office Suite ($9.99), GAP StyleMixer (Free).

Nature features iXpenseIt ($4.99), DailyFinance (Free), Guitar Toolkit ($9.99), Lonely Planet Mandarin ($9.99), iBird Explorer Plus ($19.99), Pizza Hut (Free).

Pass features Fandango (Free), G-Park ($0.99), VocabWiz College Vocabulary ($4.99), 365 Crosswords ($4.99), Classics ($2.99), ABC Animals ($1.99).

Reference:
http://cut.io/cjBD

Crystal Cave Classic for iPhone and iPod Touch

Rake in Grass released an adventure logic game Crystal Cave Classic for iPhone and iPod touch.

Crystal Cave Classic is a quest for long-lost treasures buried in pitch black caves, pyramids and temples of ancient civilizations. Huge gemstones were sheltered from the sunshine for eons of time waiting for explorers brave enough to unearth them. You, as an intrepid treasure hunter, will need all your ingenuity to pass the traps and dangers of the underground and collect the treasure in more than 170 levels.

The main features:

- Explore lost tombs and ancient dungeons
- Lots of logic riddles - train your brain!
- Play in over 170 levels
- Tens hours of gameplay
- Use teleports, boulders and other types of rocks to solve levels
- Four graphic scenarios
- Three possible control modes: virtual pad, screen controls and swipe (iPhone version)
- Level editor (Win/Mac version)
- Original music

Crystal Cave Classic is an adventure logic game for players of all ages. The game is available for Windows PC and Mac OS X version.

Reference:
http://cut.io/zDU0