Monday, February 8, 2010

C++ Interview Question Bank

For some reason I happened to be searching for a good question bank on C++ questions that may aid one in brushing up concepts just before the call of an interview. My search did lead to some very useful stuff (though a bit stale and old) which I happen to share in now.

The following questions are part of this bank. All credit goes to Marshall Cline from Paradigm Shift, Inc. Somehow the contact information mentioned in the document doesn't work, but when do the concepts change, right?

Download the question bank from here.
Q1: What is C++? What is OOP?
Q2: What are some advantages of C++?
Q3: Who uses C++?
Q4: Does C++ run on machine `X' running operating system `Y'?
Q5: What C++ compilers are available?
Q6: Is there a translator that turns C++ code into C code?
Q7: Are there any C++ standardization efforts underway?
Q8: Where can I ftp a copy of the latest ANSI-C++ draft standard?
Q9: Is C++ backward compatible with ANSI-C?
Q10: What books are available for C++?
Q11: How long does it take to learn C++?

PART03 -- Basics of the paradigm
Q12: What is a class?
Q13: What is an object?
Q14: What is a reference?
Q15: What happens if you assign to a reference?
Q16: How can you reseat a reference to make it refer to a different object?
Q17: When should I use references, and when should I use pointers?
Q18: What are inline fns? What are their advantages? How are they declared?

PART04 -- Constructors and destructors
Q19: What is a constructor? Why would I ever use one?
Q20: What are destructors really for? Why would I ever use them?

PART05 -- Operator overloading
Q21: What is operator overloading?
Q22: What operators can/cannot be overloaded?
Q23: Can I create a `**' operator for `to-the-power-of' operations?

PART06 -- Friends
Q24: What is a `friend'?
Q25: Do `friends' violate encapsulation?
Q26: What are some advantages/disadvantages of using friends?
Q27: What does it mean that `friendship is neither inherited nor transitive'?
Q28: When would I use a member function as opposed to a friend function?

PART07 -- Input/output via and
Q29: How can I provide printing for a `class X'?
Q30: Why should I use instead of the traditional ?
Q31: Printf/scanf weren't broken; why `fix' them with ugly shift operators?

PART08 -- Freestore management
Q32: Does `delete ptr' delete the ptr or the pointed-to-data?
Q33: Can I free() ptrs alloc'd with `new' or `delete' ptrs alloc'd w/ malloc()?
Q34: Why should I use `new' instead of trustworthy old malloc()?
Q35: Why doesn't C++ have a `realloc()' along with `new' and `delete'?
Q36: How do I allocate / unallocate an array of things?
Q37: What if I forget the `[]' when `delete'ing array allocated via `new X[n]'?
Q38: What's the best way to create a `#define macro' for `NULL' in C++?

PART09 -- Debugging and error handling
Q39: How can I handle a constructor that fails?
Q40: How can I compile-out my debugging print statements?

PART10 -- Const correctness
Q41: What is `const correctness'?
Q42: Is `const correctness' a good goal?
Q43: Is `const correctness' tedious?
Q44: Should I try to get things const correct `sooner' or `later'?
Q45: What is a `const member function'?
Q46: What is an `inspector'? What is a `mutator'?
Q47: What is `casting away const in an inspector' and why is it legal?
Q48: But doesn't `cast away const' mean lost optimization opportunities?

PART11 -- Inheritance
Q49: What is inheritance?
Q50: Ok, ok, but what is inheritance?
Q51: How do you express inheritance in C++?
Q52: What is `incremental programming'?
Q53: Should I pointer-cast from a derived class to its base class?
Q54: Derived* --> Base* works ok; why doesn't Derived** --> Base** work?
Q55: Does array-of-Derived is-NOT-a-kind-of array-of-Base mean arrays are bad?
Inheritance -- virtual functions
Q56: What is a `virtual member function'?
Q57: What is dynamic dispatch? Static dispatch?
Q58: Can I override a non-virtual fn?
Q59: Why do I get the warning "Derived::foo(int) hides Base::foo(double)" ?
Inheritance -- conformance
Q60: Can I `revoke' or `hide' public member fns inherited from my base class?
Q61: Is a `Circle' a kind-of an `Ellipse'?
Q62: Are there other options to the `Circle is/isnot kind-of Ellipse' dilemma?
Inheritance -- access rules
Q63: Why can't I access `private' things in a base class from a derived class?
Q64: What's the difference between `public:', `private:', and `protected:'?
Q65: How can I protect subclasses from breaking when I change internal parts?
Inheritance -- constructors and destructors
Q66: Why does base ctor get *base*'s virtual fn instead of the derived version?
Q67: Does a derived class dtor need to explicitly call the base destructor?
Inheritance -- private and protected inheritance
Q68: How do you express `private inheritance'?
Q69: How are `private derivation' and `containment' similar? dissimilar?
Q70: Should I pointer-cast from a `privately' derived class to its base class?
Q71: Should I pointer-cast from a `protected' derived class to its base class?
Q72: What are the access rules with `private' and `protected' inheritance?
Q73: Do most C++ programmers use containment or private inheritance?

PART12 -- Abstraction
Q74: What's the big deal of separating interface from implementation?
Q75: How do I separate interface from implementation in C++ (like Modula-2)?
Q76: What is an ABC (`abstract base class')?
Q77: What is a `pure virtual' member function?
Q78: How can I provide printing for an entire hierarchy rooted at `class X'?
Q79: What is a `virtual destructor'?
Q80: What is a `virtual constructor'?

PART13 -- Style guidelines
Q81: What are some good C++ coding standards?
Q82: Are coding standards necessary? sufficient?
Q83: Should our organization determine coding standards from our C experience?
Q84: Should I declare locals in the middle of a fn or at the top?
Q85: What source-file-name convention is best? `foo.C'? `foo.cc'? `foo.cpp'?
Q86: What header-file-name convention is best? `foo.H'? `foo.hh'? `foo.hpp'?
Q87: Are there any lint-like guidelines for C++?

PART14 -- C++/Smalltalk differences and keys to learning C++
Q88: Why does C++'s FAQ have a section on Smalltalk? Is this Smalltalk-bashing?
Q89: What's the difference between C++ and Smalltalk?
Q90: What is `static typing', and how is it similar/dissimilar to Smalltalk?
Q91: Which is a better fit for C++: `static typing' or `dynamic typing'?
Q92: How can you tell if you have a dynamically typed C++ class library?
Q93: Will `standard C++' include any dynamic typing primitives?
Q94: How do you use inheritance in C++, and is that different from Smalltalk?
Q95: What are the practical consequences of diffs in Smalltalk/C++ inheritance?
Q96: Do you need to learn a `pure' OOPL before you learn C++?
Q97: What is the NIHCL? Where can I get it?

PART15 -- Reference and value semantics
Q98: What is value and/or reference semantics, and which is best in C++?
Q99: What is `virtual data', and how-can / why-would I use it in C++?
Q100: What's the difference between virtual data and dynamic data?
Q101: Should class subobjects be ptrs to freestore allocated objs, or contained?
Q102: What are relative costs of the 3 performance hits of allocated subobjects?
Q103: What is an `inline virtual member fn'? Are they ever actually `inlined'?
Q104: Sounds like I should never use reference semantics, right?
Q105: Does the poor performance of ref semantics mean I should pass-by-value?

PART16 -- Linkage-to/relationship-with C
Q106: How can I call a C function `f()' from C++ code?
Q107: How can I create a C++ function `f()' that is callable by my C code?
Q108: Why's the linker giving errors for C/C++ fns being called from C++/C fns?
Q109: How can I pass an object of a C++ class to/from a C function?
Q110: Can my C function access data in an object of a C++ class?
Q111: Why do I feel like I'm `further from the machine' in C++ as opposed to C?

PART17 -- Pointers to member functions
Q112: What is the type of `ptr-to-member-fn'? Is it diffn't from `ptr-to-fn'?
Q113: How can I ensure `X's objects are only created with new, not on the stack?
Q114: How do I pass a ptr to member fn to a signal handler,X event callback,etc?
Q115: Why am I having trouble taking the address of a C++ function?
Q116: How do I declare an array of pointers to member functions?

PART18 -- Container classes and templates
Q117: How can I insert/access/change elements from a linked list/hashtable/etc?
Q118: What's the idea behind `templates'?
Q119: What's the syntax / semantics for a `function template'?
Q120: What's the syntax / semantics for a `class template'?
Q121: What is a `parameterized type'?
Q122: What is `genericity'?
Q123: How can I fake templates if I don't have a compiler that supports them?

PART19 -- Nuances of particular implementations
Q124: Why don't variable arg lists work for C++ on a Sun SPARCstation?
Q125: GNU C++ (g++) produces big executables for tiny programs; Why?
Q126: Is there a yacc-able C++ grammar?
Q127: What is C++ 1.2? 2.0? 2.1? 3.0?
Q128: How does the lang accepted by cfront 3.0 differ from that accepted by 2.1?
Q129: Why are exceptions going to be implemented after templates? Why not both?
Q130: What was C++ 1.xx, and how is it different from the current C++ language?

PART20 -- Miscellaneous technical and environmental issues
Miscellaneous technical issues:
Q131: Why are classes with static data members getting linker errors?
Q132: What's the difference between the keywords struct and class?
Q133: Why can't I overload a function by its return type?
Q134: What is `persistence'? What is a `persistent object'?
Miscellaneous environmental issues:
Q135: Is there a TeX or LaTeX macro that fixes the spacing on `C++'?
Q136: Where can I access C++2LaTeX, a LaTeX pretty printer for C++ source?
Q137: Where can I access `tgrind', a pretty printer for C++/C/etc source?
Q138: Is there a C++-mode for GNU emacs? If so, where can I get it?
Q139: What is `InterViews'?
Q140: Where can I get OS-specific questions answered (ex:BC++,DOS,Windows,etc)?
Q141: Why does my DOS C++ program says `Sorry: floating point code not linked'?

Hope this helps.

Saturday, January 30, 2010

Evenstar | Update 4

The number of spams I have been receiving on my blog is increasing day and night. It may be easily attributed to the steady decline in the legitimate comments. A few of the spam messages are in Chinese/Japanese, where a sequence of dots is displayed in the comment message. Upon using Google Translate one is informed that the message is nothing but cheap publicity of a worse cheap site. Blogger does not have a built-in spam protection for comments, and thus, it made me more inclined to have one in Evenstar.

Thus, I went ahead and integrated the first comment-spam protection in Evenstar, via Akismet. This would only be the first integration end-point for I intend to provide end-points to other services such as Mollom soon. This should allow the Evenstar administrator's choice over which service/pricing model to use.

Another feature that comes to mind is an auto-translated view of the comment. Thus if you receive a message in, say, Chinese on your blog, when previewing comment before approval, one should also have a quick way to translate and see what it means in English. With Google Translate having an API for programmatic translation, this seems feasible. Thus, this becomes the next idea a plan to have in Evenstar.

Drop in your comments for any other feature you would like to see in.

As always, welcome to Evenstar, where dreams come true!

Thursday, January 28, 2010

Omniture SiteCatalyst v/s Google Analytics

Recently I had a chance to work with Omniture's SiteCatalyst. At first, it looked like another analytics tool, much lesser in capability to Google Analytics. But with time as I explored more and more of the features and its power to drill down and generate reports, I could not stop myself from compiling yet another comparison of the two tools.

Price

One big advantage of GA is that it is free for roughly 5 million page views per month. What this translates to is that it is good enough for a user like you and me. Omniture on the other hand requires some investment, which as we see ahead, is worth while.

Javascript Reliability

Google Analytics uses Javascript to track its visitors and their navigation paths. This becomes a trouble for browsers that do not have Javascript support, or when Javscript has been explicitly disabled by the user (for 3rd party scripts). As with me, I generally keep 3rd party Javscripts blocked to prevent annoying popups.

UI Intuitiveness

Google Analytics UI is one of the most clean and intuitive UI I have ever seen. Its ease of use allows users of all experiences to derive usable information. As a normal user, one can easily get all information on number of visits, their geographical segmentation and popular pages and search engines. All in one screen.

Advanced Analytics and Segmentation

The power and level of detail you can obtain in SiteCatalyst reports is far superior to Google Analytics. Omniture's pathing, segmentation and conversion modules make GA feel like a new born baby when comes to analytics.
GA offers only 2/4 custom variables whereas with Omniture you have bundles of them. This would be of much more interest to sites that have millions of user's and hundreds of different sections each catering to different needs.

Implementation

GA just wants you to copy some Javascript code and paste it on your page. Simple. Though it has its own drawbacks. You need to load the script on each page and make sure that each page has the code. In case you miss the code on a page, you miss tracking it.

Cookie Time

Google offers a cookie for 30 days, whereas Omniture can offer cookies for upto 15 years. This makes sure that with SC you will never miss a returning visitor.

Integration Support

Omniture's SiteCatalyst support mobile integration, integration with Flash, Flex and AIR applications which definitely is not available with Google Analytics.

Reporting Time

GA has this downside of aggregating data once a day. For most of the user's this will suffice, but when you are launching a short term campaign, or there is an important event, this makes you loose all hope. Even, you can't check the effect of changing a few settings before the next day.
Omniture on the other hand gives you real time statistics. Thus, you would never miss on data. Also, you can tweak all your settings and see how it changes the user-behavior pattern.

Customer Support

Omniture has a dedicated customer support team, whereas with Google Analytics you probably would have to rely on the GA group support.

Finally...

As I see it, Omniture's SiteCatalyst packs much more power than Google's offering, but at a premium which is worth it. Though, it would be easier to see a server-side solution that integrates with your code as a sieve (aka Java Filter) and does all that you want to do. Someday, I am sure such a solution would exist.

Monday, January 11, 2010

Animator v/s Animated

Just click on the picture below, click on play, then leave the mouse alone , sit back and enjoy a piece of creative brilliance.

Thursday, January 7, 2010

Mobile Comparison: iPhone, Xperia X10, Storm 2, Droid, Nexus One

Recently there have been various (next gen) mobile handsets announced. I was thinking of changing my phone and took some time out to compare them out. Herein I compare Apple iPhone 3GS, Sony Ericsson Xperia X10, Blackberry Storm 2, Motorola Droid, Google Nexus ONE. The results are interesting.


Apple iPhone 3GS Sony Ericsson Xperia X10 Blackberry Storm 2 Motorola Droid Google Nexus ONE
  Specs Specs Specs Specs Specs
Launched Mid 2009 Feb 2010 Fall 2009 Nov 2009 Jan 2010
Operating System iPhone OS 3.1.x (OS X Mobile) Android 1.6 with Mediascape/Timescape v5.0 Android 2.0 Android 2.1
Height 115.5 mm 119 mm 112.5 mm 115.8 mm 119 mm
Width 62.1 mm 63 mm 62 mm 60 mm 59.8 mm
Depth 12.3 mm 13 mm 13.9 mm 13.7 mm 11.5 mm
Weight 4.8 ounces (135g) 4.8 ounces (135g) 5.64 ounces (160g) 6 ounces (169g) 130g
Processor Speed 600 MHz 1 GHz 550 MHz 1 GHz
Display 3.5 inch multi-touch
480x320 pixels at 163 ppi
480x854 pixels WVGA
65536 color TFT display
480x360 pixels 3.7 inch display
854x480 pixels
3.7 inch display
800x480 pixels
Capacity 16 GB or 32 GB 1 GB Phone memory
8 GB memory card expandable to 16 GB
256 MB Flash
2 GB memory card
16 GB removable expandable to 32 GB 512 MB Flash, 512 MB RAM
4 GB memory card expandable to 32 GB
Cellular & Wireless UMTS/HSDPA 850/1900/2100
GSM/GPRS/EDGE 850/900/1800/1900
WiFi 802.11b/g
Bluetooth 2.1 + EDR
UMTS/HSPA 900/1700/2100
GSM/GPRS/EDGE 850/900/1800/1900
WiFi 802.11b/g
Bluetooth 2.1 + EDR
GSM/GPRS/EDGE 900/1800
CDMA2000 1x EVDO 800/1900
UMTS 2100
WiFi 802.11b/g
Bluetooth 2.1 + EDR
CDMA 1x 800/1900 EVDO rev A
WiFi 802.11b/g
Bluetooth 2.1 + EDR
UMTS 900/AWS/2100
HSDPA 7.2 Mbps
HSUPA 2 Mbps
GSM/EDGE 850/900/1800/1900
WiFi 802.11b/g/n
Bluetooth 2.1 + EDR
A2DP stereo bluetooth
Power & Battery Built-in rechargeable lithium-ion
Talktime: 12 hrs on 2G, 5 hrs on 3G
Standby: 300 hrs
Internet Use: 5 hrs on 3G, 9 hrs on WiFi
Video playback: 10 hrs
Audio playback: 30 hrs
lithium ion replaceable
Talktime: yet to be announced
Talktime: 5.5 hrs on CDMA, 6 hrs on GSM, 5 hrs
Standby time: 264 hrs on CDMA/GSM, 288 hrs
lithium ion
Talktime: 8 hrs
lithium ion replaceable
Talktime: 10 hrs on 2G, 7 hours on 3G
Standby: 290 hrs on 2G, 250 hrs on 3G
Internet: 5 hours on 3G, 6.5 hours on Wi Fi
Video playback: 7 hours
Audio playback: 20 hours
Changeable Battery No Yes Yes Yes Yes
Keyboard Onscreen Virtual Keyboard Onscreen Virtual Keyboard Onscreen Virtual Keyboard Slideout QWERTY + Onscreen Virtual Keyboard Onscreen Virtual Keyboard
Camera, Photos and Video 3 mega-pixels
Auto-focus
Tap to focus
Video recording VGA upto 30fps and audio
Photo and Video geo tagging
8.1 mega-pixels
Auto-focus
Face recognition
Geo tagging
Smile detection
Image stabilizer
Video recording in 640x480 resolution
3.2 mega-pixels 5 mega-pixels
Auto-focus
Dual LED Flash
Video recording at 720x480 at 24 fps
5 mega-pixels
Auto-focus
LED Flash
Geo tagging
Video recording at 720x480 at 20 fps
Sensors Accelerometer
Proximity sensor
Ambient light sensor
Accelerometer
Proximity sensor
Accelerometer
Proximity sensor
Ambient light sensor
Accelerometer
Location Assisted + Standalone GPS
Digital Compass
Wifi
Assisted + Standalone GPS
Digital Compass
Wifi
GPS Assisted + Standalone GPS
Digital Compass
Wifi
Assisted GPS
Digital Compass
Wifi
Multitasking No Yes not known Yes not known
OS Updates Yes Yes Yes Yes Yes
Cloud Service Mobile Me (paid) Google Apps (mostly free) Google Apps (mostly free) Google Apps (mostly free)


To me Sony Xperia X10 looks the best among the lot! What's your say?

Thursday, December 31, 2009

Evenstar | Update 3

Finally, my dream has started taking its shape. As promised in my earlier post, here comes the first preview of Evenstar. Catch evenstar live at http://stage.myjerry.org. The blog system in general is fully functional with some of the features pending wiring, and a few nice touches remaining, including building a beautiful but fast enough theme.

For the curious the following still need to be perfected. Any help on the same is most welcome.
  • Importing from Blogger is still somewhat broken
  • Email service is not yet wired
  • Feed service is not yet done - so no feeds from the blog
  • Performance Optimization - we still make a lot of DB hits which can be reduced.
  • Security is another area, where I need to work upon
Go ahead guys, try it out and let me know of issues you find. You may download the code for GAE and deploy it yourself. Code can be found at https://jerry.svn.sourceforge.net/svnroot/jerry/JerryNext/evenstar/. The code makes use of GAE SDK 1.3.0 and runs using Java 6. I have not tested this with Java 5, but it should work. Anyhow, with GAE supporting both Java 5 and Java 6, it should be a problem.

Wishing all a very Happy and Prosperous, year 2010!

Welcome to Evenstar, where dreams come true!

Monday, December 21, 2009

Evenstar | Update 2

It has been over two weeks since the last update on Evenstar. Before everyone thinks that this was just another idea that went down the drain, lemme assure you that its gonna be different this time. Over the last couple of days I have been working hard to finish up the first milestone build with all the features promised in the last post. What I have completed till today is the branding for evenstar, along with the major features. I still have to wire some security code here and there, along with some nice little tweaks to the look and feel itself. Till I tie all this stuff up, you may take a look at the full size version of branding here.

You might noticed the words myJerry in there, yes, thats the abode where evenstar will reside. What is myJerry? It needs some more time before I jot down on the same. And this time I will not go to sleep, this time I will leave no stone unturned to make my dreams come true, for my prayers to go unanswered. For this is the time to do or there is no option to die ;)

Let me know what you think on evenstar, and I promise, evenstar shall start lighting your dreams very soon!

PS: The font used is Diavlo, courtesy Jos Buivenga.

Saturday, December 5, 2009

Evenstar | Update

evenstar is a dream, a dream that lets my imagination fly on wings of hope, hope that my prayers would be answered, answered with a gift, a gift that is worth everything I may ever be.

They say necessity is the mother of all invention. For me, it has been the sucker of many odd hours at night leading to the development of a blogging engine. Yes, evenstar is a blogging engine! For the geeks and interested here are the technical specifications:
  • Open-source Java-based blogging engine running on Google App Engine - so anyone with a Google Account can run it for free, yeah!
  • Support for multiple blogs via a single instance
  • Blog layout templates based on the powerful Velocity templating engine
  • A post system featuring author-defined permission on who can view, what can be viewed
  • A commenting system featuring various protection modes, on who can view the comments
  • An author controlled post URLs - with default automatic mode aka Blogger style
  • Integration with popular tools
  • Wired with Google Authentication
  • Integrated email notifications, RSS/Atom feeds
  • Powerful user management - both for authors and viewers
  • REST based open architecture - go build your own UI
  • Ability to prettify code snippets - for the developer community
  • Import previous blogs from popular systems
  • Sanitization of incoming/outgoing HTML
  • Powerful system to manage which posts are allowed to be crawled and indexed
  • Integrated post-search honoring author-defined permissions
This is just a broad level of features planned/in-development. Drop your comments for,
  • on thoughts over building this new system up
  • for lending a helping hand in this intiative
  • for catching an early-preview (sometime late Dec 09)
This is just a small peek into the dream of mine, and I leave it to you to find about the gift I seek.

Wednesday, November 25, 2009

Evenstar!

Many of you who would be reading this post of mine would have some own blogging experience. Many amongst them would be avid bloggers. Some have their own personal blogs, where in, they put down everything that goes in through their hearts and not the mind. Few like me put in everything for we have no mind. And all of us has friends. Now, What do such mindless blogs and sage friends have in common?

Well, sometimes our friends become our biggest foes. Sometimes, when their intelligence, loaded with sanity, soaked in logic, with a fragrance of reason, decorates our blog as a token of their liking, the blog owner's insanity turns insane. At times it leads to defeat the sole purpose of the post and turns off the very visitors whom you adore. To add appreciation to glory, if you try some legal ways (read as, settings in your favorite blog engine), these sage start expressing their wisdom vocally than in writing; at this point you only wish to be reborn.

With such instances most of us wish if there was a way to bury such friends in the deep deserts of North Pole. Some turn to hibernate in the cool comfort of the Sahara Desert. Well, I tried doing both and failed. And now, the only thought up my mind is,

May it be an evening star,
Shines down upon you,
May it be when darkness falls,
Your heart will be true,
You walk a lonely road,
Oh! How far you are from home! (Enya)


Being just another good for nothing person, I am using the power of primary language of expression to do believe in the above, waiting for the evenstar to shine down upon me soon! Till time, if I could remain as sane as my thoughts above, there would be more in here soon. Keep Watching the space!

Keep Walking, Keep Hiding!

PS: None-the-less, if anyone has suggestions on how to bury in the North Pole, please leave your comments, which would be highly appreciated and acknowledged with due respect. For those whose sanity is troubling them find an answer as to why I chose North pole, here is my insanity packaged in a line; I live in the northern hemisphere, and I don't want my friends to suffer (more) when I drag them to the pole.

Tuesday, November 24, 2009

[Mac] Flex Builder 3 unable to run AIR applications

If you are using a Mac and running Flex Builder 3 to develop AIR applications on AIR 1.5 runtime, you may encounter an issue where Flex Builder simply refuses to debug/run the AIR application giving you the following popup,
"Process terminated without establishing connection to debugger. If the program is already running, close it before attempting to debug."

Most of the solutions you would find via Google, would ask you to change the AIR application descriptor to point to 1.5 namespace. Well, this is one of the biggest reasons for this problem. But another small bug may lead to this occurrence. For details on the same refer to http://bugs.adobe.com/jira/browse/SDK-19707

Fixing the bug is too easy,
  1. Download the file change.sh from the Bug Database.
  2. Copy this file change.sh into the SDK parent folder. On a typical installation on Mac, it would resemble /Applications/Adobe Flex Builder 3/sdks/3.4.0
  3. Adjust the file permissions to 755 using chmod 755 change.sh
  4. Execute the script ./change.sh
  5. Open your Flex Builder, open the project, run your AIR app and have fun!

Hope this helps!