Thursday, June 25, 2009

HTC is my new Hero

My next phone. HTC / GOOGLE / ADOBE = KILLER COMBINATION

http://www.adobe.com/devnet/devices/articles/htchero.html

http://www.htc.com/europe/product/hero/specification.html

Monday, June 15, 2009

PDF and ITUNES poorly supported and iTunes COM SDK on Windows is getting older and older....

Well recently, I discovered that iTunes is not doing a good job at all when adding PDF file to iTunes. Let's say you decided to have iTunes automatically "organize" your iTunes files, iTunes will move the PDF file automatically under your iTunes Music folder under Unknown Artist and Unknown Album for instance C:\Documents and Settings\[current user]\My Documents\My Music\iTunes\iTunes Music\Unknown Artist\Unknown Album\. Unknown artist is by the way the most famous music band in the world and Unknown Album the best Album in the world. Almost all artists have an album with this name nowadays if they use iTunes or Windows Media Player. So APPLE should know better... For instance that Adobe introduced the XMP Metadata container which comes with free Adobe SDK to embed and extract Metadata from a various range of files including PDF. So it would be nice to do something with the metadata already present in a PDF file when adding a PDF to iTunes. Food for thoughs for Apple to make iTunes better. So if you add a files to iTunes using the COM SDK first add the file to the library, then right away to a playlist of your choice before tagging the track inside iTunes else you are screwed because iTunes would have moved the file again after you tag the file with no API to get the new location...


Finally it would be GREAT to update the iTunes COM SDK for one missing serious API :

iTunes COM SDK has no API to retrieve by filename (r.e.t.a.r.d.e.d.) so, unless thirdparty create a hash map of all iTunes Track the only way is to just iterate like drooling lamers. The advantage of a file name is that a full URI is unique on a file system per machine domain so this WOULD BE for sure a great way of accessing a music track inside iTunes.

More on XMP and PDF here

http://xml.coverpages.org/XMP-Embedding.pdf

Thursday, June 04, 2009

XCode Frameworks Versioning - How to find the version of a Framework

XCode and in general coding on the mac is not my cup of tea.... I think those expensive mac are good to play but not good to write code quicker than with Visual Studio 2008. XCode has a weird multiple window concept and force you to do some weird human interface action all over the place. The debugger is slow,
The Clean feature is slow as hell....

Anyway i wanted to talk about versioning :

When it comes to identify bug the version of dll on window are very usefull. Incremental file version each time you build and distribute the component to third party will help developers to diagnose and address bugs in an efficient manner.
On the mac the concept of dll didn't exist per say but the mac is using a similar mecanism through Frameworks and Bundle. When you browse for an Application you can right click and expand the package nd find out the dependency with third party frameworks or XCode Frameworks. If you want to get some information about the file version of a frameworks simply browse for the following

\debug\osx10\MySample.framework\Versions\A\Resources\Info.plist

The Plist will look like this

< have been replace by { and > by }

{?xml version="1.0" encoding="UTF-8"?}
{!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"}
{plist version="1.0"}
{dict}
{key}CFBundleDevelopmentRegion{/key}
{string}English{/string}
{key}CFBundleExecutable{/key}
{string}PackageName{/string}
{key}CFBundleIdentifier{/key}
{string}Bla bla{/string}
{key}CFBundleInfoDictionaryVersion{/key}
{string}6.0{/string}
{key}CFBundleLongVersionString{/key}
{string}1.0.0 (C) 2008 Freedom of Speech, Inc. All rights reserved.{/string}
{key}CFBundleName{/key}
{string}PackageName{/string}
{key}CFBundlePackageType{/key}
{string}FMWK{/string}
{key}CFBundleShortVersionString{/key}
{string}1.0.0{/string}
{key}CFBundleSignature{/key}
{string}Freedom of Speech{/string}
{key}CFBundleVersion{/key}
{string}1.0.0{/string}
{key}CSResourcesFileMapped{/key}
{string}yes{/string}
{/dict}
{/plist}