The vision of iCloud on the iOS and Mac platform

With the release of Apple’s latest OSX operating system, Mountain Lion, the successor of Lion, one of the main noticeable features is the push towards the iCloud, within the operating system, to eventually have all apps storing documents and data on the iCloud, rather than on the macbook’s internal file system.
Now this has no doubt caused a lot of controversy, and perhaps will even have it’s teething problems, but I look at it as a glimpse of what the future aims and means are. With the addition of the Apple Store in Snow Leopard, we started to purchase our mac apps from the online store, similar to how we do it on the iOS platform.

For the laptops (and indeed iOS has already had a bit of a head start, but with the same end-game), the idea is that all your personalised data, documents, game data, app settings etc will all be stored on the iCloud, so if you either upgrade your machine, loose your laptop or need to have it replaced by an Apple Genius, you can restore all your data immediately.

Now, the data is separated, or de-coupled from your actual application installations, which you hopefully would be able to get restored automatically from the App store, prior to the machine downloading and syncing your personal data from the iCloud. This is the aim of also the iOS platform, where your personal data should be backed up in the iCloud, but you would be able to create complete mirror backups of your device and its data on the iCloud already. For practical reasons, you shouldn’t have to backup 256GB or 500GB of your laptop on the iCloud together, so rather than do that, Apple stores your personal data and app data, whilst the apps themselves are recoverable from the App Store.

That is definitely the vision I see Apple has having, and something I hope programmers start to prepare for.

Flash Builder tips and tricks thanks to Adobe Developer Connection


A great article that summarises a cheat-sheet of helpful tips for Adobe Flash Builder 4-4.5

Code completion shortcuts

  • Content Assist―Content Assist provides you with a list of suggested completions for partially entered code strings.

    Press Ctrl+Space to invoke Content Assist.


  • Code proposal cycling – Press Ctrl+Space multiple times to filter the list of suggestions that Content Assist provides, and show only properties, events, effects, and so on.
  • *Metadata code completion – Invoke code completion hints for metadata that you use in your MXML and ActionScript documents.

    In MXML documents:

    Enter ‘[‘ within <fx:Metadata> or <fx:Script> tags:


    In ActionScript documents:

    Enter ‘[‘ before a class name, variable, or getter or setter function.

  • *Code completion when using states – If your MXML application has multiple states, selecting a state in the MXML code editor will provide code completion specific to the selected state.

    You can select a state using the Show State pop-up menu.

    When you define multiple states in your application, the MXML code editor automatically adds a Show State pop-up menu, like this:


  • Camel-case code hinting – Flash Builder displays relevant code hints even when you type characters in camel case. For example, to show all matching properties for the AdvancecDataGrid control, you can simply type ADG, as follows:

Coding productivity tips

  • Access code definitions – Press Ctrl to quickly access a code definition of a language element. For example, if you want to access a function definition. Hover the pointer over the function name, and press Ctrl. The function name turns into a hyperlink. Clicking the hyperlink takes you to the function definition.
  • Quick Access – Press Ctrl+3 to quickly access views, editors, and frequently used commands.
    Press Ctrl+3 and press the Spacebar to switch between different editors, views, and perspectives:
    Press Ctrl+3, and type go to, to see all the Go To commands:

    You can also type a substring of the command that you want, or the first letter of the command, and it will show all matches. For example, to debug an application, press Ctrl+3, and type deb. The commands recognize camel-case typing also.

    The Quick Access feature stores a history of your previous commands with the last-used commands appearing first. For example, if you’re debugging an application, the Debug command appears first in your history. This helps you quickly execute frequently used commands.

  • *Quick Assist – Press Ctrl+1 to invoke Quick Assist. The Quick Assist feature provides context-based assistance to help you quickly perform coding tasks, like the following:
    • Rename in file
    • Rename in workspace
    • Generate getter/setter
    • Convert local variable to field
    • Assign to variable
    • Split variable declaration
    • Organize imports

    For more information on each of these Quick Assist options, see Quick Assist.

    Flash Builder helps you identify places in your code where you have an undefined method, variable, or class, and lets you generate stub code using Quick Assist. The undefined identifiers in your code are indicated by .

    The generated stub code can be used as a placeholder for the code that you want to implement later without rendering your code incompatible.

    For more information, see Generate from usage.

  • Quick Outline – Press Ctrl+O to access the Quick Outline view.

    The Quick Outline view is displayed in a pop-up window within the editor itself, and not as a separate view. You can use it to quickly navigate and inspect your code.

    Start typing the first few letters of what you’re looking in the Quick Outline view and select it to take you to the right line in your code.

  • *Code templates – Code templates let you speed-up your coding efforts by letting you auto-insert frequently used coding patterns. Flash Builder provides over 100 pre-defined templates for ActionScript, CSS, and MXML code.

    To insert a code template, just type the name of the template in the code editor, and press Ctrl+Space. For example, to insert a ‘for loop’ in your code, just type fori and press Ctrl+Space.

    To display all the available code templates in the context of your code, press Ctrl+Space twice.

    To create and edit code templates, go to the Preferences dialog box, and select Flash Builder > Editors > Code Templates.

    For more information, see Code templates.

  • *Organize imports

    Place your cursor on an import statement, press Ctrl+1, and select Organize Imports.

    To sort the import statements alphabetically by package name, pressCtrl+Shift+O.

  • Call Hierarchy

    Press Ctrl+Alt+H to open the Call Hierarchy view. You can use this view to find all the instances in your project where a specific method, property, or variable is used.


    Double-click an entry to open the file that contains the entry, and inspect the code. You can also click a node to see the call stack trace. You can view the calls from and calls to a method in both Flex and ActionScript projects.

  • Fixing indentation

    To fix the indentation for a block of code without using tabs, select the block of code and press Ctrl+I.

  • Finding code

    Use the Ctrl+F shortcut to find and optionally replace text strings in the file that is currently open in your editor.

    To search all resources across projects in the workspace, use the advanced search features of Flash Builder. SeeFinding code references in the Advanced Tips & Tricks section below.

  • Code commenting

    You can quickly comment-out lines of code in your ActionScript and MXML code using the Ctrl+Shift+Ckeyboard shortcut. The keyboard shortcut works as a toggle letting you add or remove comments.

    You can add the following types of comments:

    • Source comment for ActionScript (//)
    • Block comment for ActionScript (/* */)
    • ASDoc comments for ActionScript (/** */)
    • Block comment for MXML (<!—->)

    To add CDATA blocks (<![CDATA[ ]]>) in your MXML code, press Ctrl+Shift+D.

  • Code indenting

    Flash Builder automatically indents the line of code according to your indentation preferences (In the Preferences dialog, select Flash Builder > Editors, and specify the indent type and size).

    If you, however, want to fix any indentation, you can do it without manually indenting individual lines of code using the Tab key.

    Just select the block of code for which you want to fix the indentation, and press Ctrl+I.

  • *Block selection and edit mode

    If you have multiple instances of a variable name or a package name that you want to change, click  in the Flash Builder toolbar and select the multiple lines of code. You can edit once and all the lines of code change.

  • *Format MXML documents

    To format code in a swift keystroke, select one or more lines of MXML code and press Ctrl+Shift+F.

    You can change the default formatting using the Preferences dialog box. In the Preferences dialog box, go to Flash Builder > MXML Code > Formatting to change the order and grouping of the attributes.

  • Move lines of code

    You can quickly move lines of code up and down by selecting the lines of code and pressing Alt and the Up or Down Arrow keys.

    Delete lines of code

    Select the lines of code that you want to delete and press Ctrl+D.

    To delete only the last character in a line of code, press Ctrl+Backspace.

Debugging techniques

  • Conditional breakpoints—You can specify conditions for breakpoints to stop the debugger from executing when specific conditions are met.

    You can configure the conditional breakpoint to stop execution for any of the following conditions:

    • The expression evaluates to true.
    • The value of the expression changes.
    • A specified Hit Count is reached.

    To set a conditional breakpoint, first set a breakpoint on a line by pressing Shift+Ctrl+B. Then right-click and select Breakpoint Properties. You can specify the condition as multiple expressions separated with a comma.

    For more information, see Setting conditional breakpoints.

  • Watchpoints—You can use watchpoints to monitor a specific instance of a variable during debugging. When debugging an application, you can set watchpoints on specific instances of variables to stop execution when the watched variable changes value.

    To set a watchpoint in a debugging session, first set a breakpoint on a line by pressing Shift+Ctrl+B. When debugging stops at the breakpoint, go to the Variables view, open the context menu for a variable, and select Toggle Watchpoint.

    For more information, see Using watchpoints.

  • Expressions—You can drag-and-drop lines of code from the editor into the Expressions view to quickly monitor code expressions.

  • Run to Line—Use the Run to Line command to break out of a loop during a debugging session.

    While debugging, you sometimes find that your code is executing a loop that repeats many times. To break out of this loop and continue to run to a line further in the code, press Ctrl+R to use the Run to Line command.

UI tricks

  • Switching viewsPress Ctrl+F7 to quickly switch to a different view in your workspace:
  • Switching between Source and Design modes — Press Ctrl+`(Left Quote) to toggle between the Design mode and Source mode.
  • *Working in Source mode and Design mode simultaneously

    You can choose to open both the Source mode and Design mode of a file at the same time.

    1. Right-click the editor’s tab, and select New Editor. You now have two editor tabs for the same file.
    2. Drag one of the tabs to position the editor windows side-by-side.
    3. Set one of the editors to Design mode, and set the other editor to Source mode.
  • *Turning Design mode on/off

    If you want to work only in the Source mode without using the Design mode, go to the Window menu, and deselect Enable Design Mode. You can select Enable Design Mode anytime to display the Design mode again.

  • Cycling states

    When using multiple states in your application, you can cycle through the different states and view code that is applicable to only that state, graying out all other code.

    Press Ctrl+ to quickly cycle to the next state or press Shift+Ctrl+ to move to the previous state.

  • *Setting Flash Builder as the default editor for ActionScript and MXML files

    Open the Preferences dialog and select Flash Builder > File Associations.

    Select the ActionScript Files (*.as) and MXML Files (*.mxml) check boxes to set the file associations.

Advanced tips and tricks

  • *Use custom triggers to invoke code hints—Apart from accessing code hints by pressing Ctrl+Spacebar, you can specify your own trigger keys.

    Go to the Preferences dialog box, and select Flash Builder > Editors. Select Use Additional Custom Triggers, and type the keys that you want to use as a trigger for accessing code hints.

    If you type even one key of the trigger, code hints are invoked. For example, if you specify the trigger keys as ab. Typing either a or b invokes Content Assist.

  • Finding code references

    You can find references to code identifiers such as getters and setters, interfaces and classes, variables, and functions.

    To do so, click the code identifier to which you want to find references, and select Search > References.

    You can find references within a file, project, or workspace.

    Press Ctrl+Shift+G to find all references within a workspace.

  • Refactoring code

    Refactoring lets you rename a code identifier and automatically update all references to the identifier. Flash Builder lets you do it in three simple steps:

    1. Click a code identifier in the editor, and press Ctrl+Alt+R.
    2. Type the new name for the code identifier.
    3. Click Preview to review the change between the original and refactored code.

    For more information, see Finding references and refactoring code.

  • *Customize code generated by Flash Builder

    Flash Builder automatically generates predefined code when you generate event handlers, getters and setters, or when overriding and implementing methods.

    You can customize the predefined code that Flash Builder generates by editing the code template, as follows:

    1. Open the Preferences dialog box, and select Flash Builder > Editors > Code Templates > Flash Builder.
    2. Select the name of the code template that you want to customize, and click Edit.

    For more information, see Customizing code templates.

  • *Override/implement methods

    For a class, you can select the methods that you want to override and the methods that you want to implement by selecting Source > Override/Implement Methods.


    For more information, see Override or implement methods.

  • *Exclude files during project compilation

    You can specify the file types that you do not want Flash Builder to copy to the output folder during project compilation.

    Go to the Preferences dialog box, and select Flash Builder > File Exclusions. You can add new filename extensions and filenames, or remove any existing ones from the list.

  • *Testing applications with different standalone Flash Players

    You can change the stand-alone Flash Player while launching or debugging an application.

    Go to the Preferences dialog box, select Flash Builder > Debug, and change the location of the Flash Player executable.

Finding reference documentation

  • ActionScript Reference documentation

    To display the ASDoc tooltip, press F2:


    To display the ASDoc view, press Ctrl+3, and type asdoc, and select Views:


    Flash Builder reference documentation

    Press F1 to invoke Flash Builder reference documentation specific to a dialog box or wizard.

Where to go from here

The complete list of keyboard shortcuts available in Flash Builder can be referred to anytime by simply pressingCtrl+Shift+L.

There are also a number of other useful resources, like the following, to help increase your coding productivity in Flash Builder:


Thank you very much to Holly Schinsky for her inputs to this article.


My reaction to Sparrow being acquired by Google

Over the weekend, us Mac users have been hit with the news that one of OSX’s favourite third-party client, Sparrow, was acquired by Google, which made headlines worldwide in the blogosphere. Now, a lot has already been said by both bloggers blog-commenters, but I thought I’d weigh in on the controversy.

It’s true that a lot of people are venting their anger at the crew at SparrowMail, because they are abandoning their indie venture into creating a really amazing Mail app client, they are also disillusion by what the developers over there actually believe, that they don’t owe anyone anything. What utter crap… Sure, they aren’t obliged to have someone pay once and get unlimited updates, but as is the nature of their pricing model. They could have gone with a Spotify model, of paying a monthly or yearly subscription, which people would be happy to do, provided they get great updates.

But nevertheless, and more vital, they have failed to even provide basic necessities in their iOS version, such as notifications for emails, and people have already forked out money for that, so that is something they should expect. But this raises an even bigger question, why is Google buying this venture?


The evil empire that tries to make others perceive as the victim of an Apple monopoly, has engulfed SparrowMail. Is it because they plan on enhancing and releasing a Google version of the mailing app for the Mac? Or perhaps for the iOS, to replace it’s existing (and failed) iOS GMail app? Probably not either…

The real reason…

Well, I believe Google would like control over anyone viewing GMail, because they thrive on advertising revenue, and seeing how popular Sparrow is, they would like to take control of it, so that they can either put their advertising on the mail client, or worse, kill it off altogether, so that they can force more people back onto viewing GMail on your browser. Well, granted, they aren’t getting rid of their IMAP channel to allow and other email clients to get their GMail fix, because that would look blatantly evil, they instead looked at how popular Sparrow mail is and closed off one more channel, so that more people can be exposed to Google’s crap-ware ads.

In the Android iOS wars, you truly can’t have your mind clouded by open versus closed etc, because that isn’t the battlefield at all. The root of all evil is informational control, and whilst Apple look like they have their tentacles hooked on you, it’s actually Google who is using your information with the aid of carriers and manufacturers to pass your information on to advertisers. Apple have control of your information too, but they are not using it for advertising, so you have to think of it in that context… And if you don’t believe that, fine… Just make sure to diversify your techno-investments so that you aren’t reliant on Google or Apple, equally.

Standard Post Left Sidebar

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam aliquam massa quis mauris sollicitudin commodo venenatis ligula commodo. Sed blandit convallis dignissim. Pellentesque pharetra velit eu velit elementum et convallis erat vulputate. Sed in nulla ut elit mollis posuere. Praesent a felis accumsan neque interdum molestie ut id massa. In hac habitasse platea dictumst. Nulla ut lorem ante. In convallis, felis eget consequat faucibus, mi diam consequat augue, quis porta nibh leo a massa. Sed quam nunc, vulputate vel imperdiet vel, aliquet sit amet risus. Maecenas nec tempus velit. Praesent gravida mi et mauris sollicitudin ultricies. Duis molestie quam sem, ac faucibus velit. Curabitur dolor dolor, fringilla vel fringilla tempor, ultricies sed tellus. Cras aliquet, nulla a feugiat adipiscing, mi enim ornare nisl, eu pellentesque nunc diam eu purus. Aliquam a arcu ac arcu aliquam vulputate ac a diam.
Aliquam erat volutpat. Etiam tortor sapien, elementum quis semper eu, convallis eget justo. Nulla facilisi. Curabitur cursus vestibulum turpis eget sagittis. Phasellus tempus semper tellus, sed ullamcorper libero sodales a. Fusce vulputate varius quam. Curabitur erat orci, gravida eu tempus sed, pretium non ante. Vestibulum augue nisi, vulputate pellentesque posuere id, gravida et est. Suspendisse vestibulum scelerisque metus, ut bibendum lorem pharetra nec. Phasellus vitae faucibus nisi. Aliquam erat volutpat. Etiam sed neque massa. Pellentesque at augue sed neque faucibus tincidunt sit amet nec nisl.

Sed hendrerit dignissim odio, ut consequat neque dapibus non. Curabitur nisi sapien, malesuada id malesuada et, feugiat a odio. Donec hendrerit, dolor non tempus venenatis, libero libero posuere eros, ut mollis urna risus placerat arcu. Maecenas accumsan facilisis orci. Cras vel ante vitae libero hendrerit sodales. Donec quis est vel purus porta congue non ut lacus. Praesent pretium lectus id nunc fermentum rhoncus. Duis non justo ac ante elementum elementum sit amet ac neque. Aenean eleifend commodo orci, in porttitor enim faucibus vitae. Maecenas tincidunt diam enim, non tristique orci. Suspendisse vitae ligula ligula. Sed hendrerit dignissim odio, ut consequat neque dapibus non. Curabitur nisi sapien, malesuada id malesuada et, feugiat a odio. Donec hendrerit, dolor non tempus venenatis, libero libero posuere eros, ut mollis urna risus placerat arcu. Maecenas accumsan facilisis orci. Cras vel ante vitae libero hendrerit sodales. Donec quis est vel purus porta congue non ut lacus. Praesent pretium lectus id nunc fermentum rhoncus. Duis non justo ac ante elementum elementum sit amet ac neque. Aenean eleifend commodo orci, in porttitor enim faucibus vitae. Maecenas tincidunt diam enim, non tristique orci. Suspendisse vitae ligula ligula.

Flex Builder 4.5 Essential Plugins (live updates)

I know I am late to this party, but since I have decided to do some more Flex work, I thought I’d compile a list of essential plugins (and even helpful tools that work in conjunction with) for Flash Builder. This will be a continuously updated document, and please feel free to make your suggestions in the comments section.

[table caption=”Flash Builder Essential Plugins”]
Plugin,Update site[attr style=”width:30px”]
The Eclipse IDE plugin,
SVN plugin,
SOAP web service plugin,
TOFIX/TODO  Task plugin to detect TODO lines, You can download the plug-in here
Adobe Blueprint  plugin to get quick examples from code highlighted,
FlexFormatter for help with auto-formatting MXML files, FlexPrettyPrintCommandUpdateSite/
SourceMate for more code refactoring and code templating,
Android development tools plugin,
Mylyn  for lifecycle suite of tools including collaboration etc,
FlexPMD code-quality improvement tool,
AS Code Coverage reporting plugin,
QuickRex regular expression generator,
AnyEditTools in-context code fixing,
Maven eclipse plugin,
eGit git plugin,


[box type=”info”]

I’d like to contribute resources compiled, from the following authors:


Review of Beyond Bullet Points by Cliff Atkinson

It has been a while since I have done a review, so I have been in a bit of a hiatus, but I thought i’d ease back into it with a less technical but more philosophical book, which is why I have opted to review Beyond Bullet Points, by Cliff AtkinsonThe intent of the book is to hone in on your powerpoint presentation skills, in order to be concise, targeted and clear when you are out there in a board meeting, or making a pitch. The book is into it’s third iteration, after the first one kicked off in 2005, but the differences between the iterations are incremental and minimal. Because of a lot of the tips are best done illustratively in this book, I would go for the e-book as opposed to the black-and-white physical books.

The book goes through each chapter, building on how to convey your message or story in a sensible organised manner, which was especially focused on in chapter four – Planning your first five slides, which aids in constructing your most important section of information in. The book details other useful tips, such as what colours to use, what background to use, when and where to place graphics/icons.

I have certainly been of the belief that presenting is an art, as you know, and not being one to want to read the queue cards religiously, I aspire to be more like the Steve Jobs of presenting, going by what is in your head, being minimalist with the presentation to avoid distracting the audience. This book highlights a lot of the implicit logic in doing so, but structuring an essay into a presentation, and the presentation into something that isn’t boring or redundant, is the lesson you will take from reading this book.

The book is clear and logical, and Cliff has done a good job of covering all aspects of presenting, but it would be nice to be able to summarise everything in a page or two at the end, because I’m pretty sure I would forget all of this by the time I have to make my next presentation. Therefore, a reference-style chapter that summarises everything would be recommended. All in all, I am happy with this book, it achieves what it promises to do, and I find Cliff’s writing st lye to be enjoyable as a light read (meaning a nontechnical read).

Concise: [rating=4]

Level: [rating=2.5]

Prior Knowledge: None, this isn’t a technical book, but a good business read

My rating :[rating=3.5]


Author: Cliff Atkinson

Title:Beyond Bullet Points, 3rd Edition

Publisher: O’Reilly Media

Year: April 2011