TamsIJungle

The iPod/iPhone developer's blog

November 30th, 2009

Magellan gets into iPhone GPS game

So far, people who wanted an “active” car mount for their Apple device were locked to TomTom’s option. While definitely workable, nothing beats a bit of competition.

Magellan has just joined the fray, silently releasing their product for pre-order via Amazon:
magellan iphone 3g gps dock Magellan gets into iPhone GPS game

Further information can be had at Amazon’s:
http://www.amazon.com/Magellan-Premium-iPhone-iPod-Touch/dp/B002WN30IM

November 30th, 2009

iPhone 3,1 spotted in the wild

In the past, Apple’s firmware has mentioned a device dubbed iPhone 3,1 multiple times. So far, all devices on the market have had different designations – which means that we could be looking at a new box.

MacRumors now reports the following:

iPhone developer Pandav has informed MacRumors that they have spotted usage records for an unreleased iPhone in their app’s analytics. The app used was iBART [Free / Paid], a public transportation guide for the San Francisco train system.

From my personal point of view, this can mean two things: we are either looking at an extremely skillful prankster, or at field tests of some kind of next-generation iPhone…

November 29th, 2009

TomTom releases iPod touch car kit

TomTom’s iPhone car kit has raised quite a ruckus in the blogosphere – while it also worked with the iPod touch, this combination was an – um – unreliable concoction at best.

TamsIJungle reader DCDrew now informed us that TomTom has released a special car kit for the iPod touch series of devices:
car kit ipod touch TomTom releases iPod touch car kit

Further information can be had at the URL below:
http://www.tomtom.com/products/product.php?ID=1045&Category=2&Lid=4

November 27th, 2009

Kohjinsha ships its dual-screen laptop

We’ve covered Kohjinsha’s dual-screen notebook in the past – the critter has two 10.1″ panels which slide behind one another. Since then, something has changed…the box can now be had.

Geek Stuff 4U offers the box as follows:
kojihinsa dual screen laptop Kohjinsha ships its dual screen laptop

Unfortunately, the first generation box is not too impressive. It weighs a chubby 1.84KG and costs about 1100 USD. This money gets you two 1024×600 panels and an Athlon Neo.

If the boys would be able to increase screen resolution or reduce prices significantly, this would be a killer – as it stands now, it is little more than a strike of genius with little practical potential…

November 27th, 2009

Apple iPhone 3Gs supreme – bling, reloaded

Apple’s iPhone has always been especially attractive to the bling crowd. People who more cash than brains make excellent customers for all things shiny – Stuart Hughes has just released the abomination pictured below:
gold diamonds iphone Apple iPhone 3Gs supreme   bling, reloaded

They describe it as following:

Priced at £1.92 million , 10 months in the making , the whole casing was created with 271 grams of 22ct solid gold . The front bezel houses 136 flawless diamonds colour F ,which total to a massive 68 cts . The rear logo in solid gold has 53 flawless diamonds amounting to 1ct and the front navigation button is home to a single cut very rare diamond at 7.1 cts. The chest which houses this unique handset is made from a single block of Granite , in Kashmir gold with the inner lined with Nubuck top grain leather , which weight is a massive 7kg. We have also included some original & raw construction images for you view.

Those of you who feel like dropping a cool 2 million GBP (and their good taste) can do so at the URL below:
http://stuarthughes.com/newdawn/product_info.php?products_id=57

November 26th, 2009

Tesco supermarkets offer Apple’s iPhone

Sometimes, not having an exclusivity can be extremely helpful. After the end of the iPhone exclusivity in the UK, various operators have spring up with iPhone offerings of their own.

The latest – and likely weirdest – is the one by MVNO Tesco Mobile:
tesco mobile iphone Tesco supermarkets offer Apples iPhone

The press release goes as follows:

Tesco Mobile through its joint venture partnership with O2 is pleased to announce that it will shortly introduce iPhone 3G and iPhone 3GS in Tesco Phone Shops and online through Tesco Direct in the UK.

For further information and for customers interested in pre-registration please visit www.tescomobileiphone.com.

For more information on iPhone, please visit www.apple.com/iphone.

More information can be found on Tesco Mobile at www.tescomobile.com

As of now, no pricing information is available – stay tuned for further info as we get it!

November 24th, 2009

iPhone SSH worms – now with malicious payload

So far, worms which exploited the “alpine vulnerability” were mostly harmless – in the very worst case, they changed your desktop background to something else.

Unfortunately, things have changed. F-Secure reports the following:

Like the Ikee worm, it only affects Jailbroken iPhones which have SSH installed and have not changed the default password.

This one connects to a web-based command & control center running at 92.61.38.16 in Lithuania.

The worm is not widespread, but it is much more serious than the first iPhone worm as it seems to try to steal information from the devices.

As of now, not much further information is available…

November 23rd, 2009

TouchDJ released – mix music with your iPhone

In Austria, so-called bring-your-ipod parties are all the rage: people are allowed to connect their iPods to a venue’s stereo system, and become the venue’s “personal DJ” for 15 or 30 minutes at a time.

An application called TouchDJ will likely improve music quality, providing users with various mixing features:

As of now, the program can not access the iPhone’s media library – but seems to be extremely interesting nevertheless. More in the App Store…

November 23rd, 2009

Some thoughts on wireless data synchronization

Keeping data synchronized between various mobile devices can become quite a chore – newcomers usually fail at getting a working solution up, and books on the topic tend to be extremely thick.

Kee Nethery from kagi.com has graciously given us permission to repost the following interesting bit of prose which he posted to the pef-talk, which is a closed-door discussion forum for mobile developers:

We don’t have a wireless sync situation but incremental updates is
something that we have done in various systems that interact with
each other plus I’ve seen some good ideas on this elsewhere.

First, Apple has a notification service for the iPhone. The idea is
that the client does not bother the server until the server sends
it a
change notice. And the client does not notice the change notice until
a user decides they should run the application. This means that there
is only one iPhone app that is always polling the master update
thingy
that all services share and when it gets a change notice, it sets a
value (in their case it alters the icon on the GUI so that the human
sees there is an update). When the app gets launched by the human, it
sees the altered icon and goes and fetches it’s data from it’s server
and clears the icon alteration (or something like that). Thus, the
app
only does updates when the user triggers it to run.

This is a good system in that instead of every app trying to run it’s
own background process to keep itself up to date, only one app does
this and between updates it sleeps. So the processor usage and
network
traffic is small no matter how many apps want to keep themselves
updated.

Moral of the story, it would be good if you could use some built in
receiver (SMS maybe?). If not SMS, perhaps sync when the app first
launches and then ask the user how frequently they want the app to
wake the device and attempt a sync (reminding them that this will
affect battery life). You could have something like a sync every
minute for the next hour button. Try not to build code that always is
pinging the server. That would use up the battery especially when
most
syncs will probably have no changes to deal with.

Second, on the server side, every row in the database should
contain a
lastModifiedDate value that gets set each time the row is changed. We
use database triggers to keep that value updated. Then your sync
routine is very easy. Something like:

select * from thetable where lastModifiedDate >=
theMostRecentLastModifiedDateStoredLocally

And if in the first sync you are grabbing way too much data for a
single select (assuming you have a bunch of data) do it in manageable
increments.

set rowcount 100
select * from thetable where lastModifiedDate >=
theMostRecentLastModifiedDateStoredLocally
order by lastModifiedDate ascending
set rowcount 0

So that it gives you the oldest stuff in small chunks until you eat
up
all the changes.

Note, always have unique row IDs and always use the data you get to
replace existing rows. This allows the server to send you overlap
data
(data you got at the tail end of the last query) to make sure you
don’t miss anything.

Also note, theMostRecentLastModifiedDateStoredLocally is a date time
value but DO NOT use your local time on the device. Treat
theMostRecentLastModifiedDateStoredLocally as some incrementing value
and not as a date time. It looks like a date and time that you could
derive from your local clock, it is not. This prevents you from
getting messed up when daylight savings time changes or when the time
zone changes. We tend to keep this value as a separate data value
that
gets updated with each update pull from the server (so that we don’t
have to scan the local data to get the most recent value).

Third, if the data changes are non-stop such that even as fast as you
can grab them, new changes are getting put into the database, and you
really don’t need to have it continually get updates every second as
they occur, you can do something like, if the number of rows returned
is less than some number (lets say 5) then consider yourself done and
wait until your next update time period before grabbing more rows.

Fourth, you can lessen the load on the database by putting a proxy
service between the client doing the above SQL and the database. For
example, in the rowcount example you could have the client send
something like

getChanges(thetable,theMostRecentLastModifiedDateStoredLocally)

and the server could cache sets of data, perhaps 10 minutes worth of
changes, in a set of cache files with file names like
YYYYMMDDHHMM.txt
and it could just feed you back the files that are in the proper date
range (oldest gets sent first) and then for the last set of data, get
that from the database.

Finally, the goal is to find ways to minimize the communication
between the client and the server and to have the user be satisfied
with the update frequency.

A big thank-you to Kee…

November 20th, 2009

Apple’s tablet delayed to H2 2010 due to OLED screen

Rumors about an upcoming release of Apple’s tablet device have been dime-a-dozen – unfortunately, none has turned out to be true so far.

DigiTimes now reports the following:

Apple reportedly plans to postpone the launch of its tablet PC from an original March launch schedule to the second half of 2010, as the vendor has decided to switch some components and plans to launch a model using a 9.7-inch OLED panel from LG Display, according to sources from component makers.

The sources estimate that Apple’s tablet PC cost will drop to around US$1,200-1,500 by the second half of 2010 with the retail price reaching about US$2,000. The price could be more flexible if bundled with telecom providers’ 3G services. Meanwhile, the 10.6-inch LCD panel-based Apple tablet PC is expected to priced in the US$800-1,000 range.

As always, keeping a large grain of salt in the back of your mind is advocated – stay tuned…