Monday, July 20, 2009

Portable Apps..wow!

So, your company's IT policies do not permit you to install software on your machine? No problem! Portable applications will save your day. There are a few applications you'd still want to have installed, but, they aren't available as "portable" yet. For example, Visual Studio.NET and Adobe Flex aren't. It is simple really, these are applications that can run from your pen drive and don't need any installation. Dump it into a folder and run them from there.

This site has loads of it: http://portableapps.com/

Currently, I am doing a project that requires PHP and MySQL. I couldn't get them installed on my machine because of the aforementioned reasons. I had to get it done, even if, it was really official work. So, I turned to Google and it led me to the most awesome solution – MoWes. Yup, a fully loaded webserver on stick! You have Apache, PHP 5, MySQL and you can keep adding! I almost fainted with amazement. Then, I found it a bit difficult to manage the database I had created. My next Search mission commenced and I found Portable HeidiSQL (http://www.heidisql.com/)..really powerful!

Portable apps aren't very different from the everyday apps. They sometimes have memory leaks, of course, we do understand it is due to the limitations. So, what can you carry on stick? OS? Office suites? Well?

Here's a list of useful stuff you could have:

  1. Open Office Portable: http://www.portableapps.com
  2. Webserver portable (Mowes): http://www.chsoftware.net/en/useware/mowes/mowes.htm
  3. Portable Windows Live Messenger: http://www.techbeta.org/instant-messaging/portable-windows-live-messenger/
  4. Portable VLC Player: http://www.portableapps.com
  5. 7-zip portable
  6. Winamp lite
  7. GIMP Portable
  8. Firefox portable
  9. Chrome portable
  10. FoxIt Reader
  11. Notepad++ portable

Kewl huh?

Sunday, July 19, 2009

Creating multi-language “experiences”

Working for a company that creates content for a worldwide audience, sometimes, makes it difficult to explain how a "dynamic publish once" application works. As Flashers, we use a lot of XML to store our content and use dynamic textfields to display them. I haven't really come across many developers using the built-in Strings panel. The Strings panel is quite useful by helping you create and manage multi-lingual content. You can create the content in one language and then use the Strings panel to add more languages. When you publish the application, a folder will be created containing one XML file per language. Isn't that great?

Manually setting up a multi-lingual project isn't very complicated. The general approach to setting up such a project is as follows:

  1. Create your application root folder – For ex: MyLanguageApp
  2. Create a folder called "data" or "content". This folder will contain your XML files.
  3. Of course, you need the com/company/app path for your ActionScript package.
  4. If the user is in-charge of selecting the language, it is not a complicated affair. Else, in your main FLA, you need to have a logic that helps you make that choice. I use a server-side script that returns the system language settings.
  5. Embed fonts into your application for your dynamic textfields.

The first 4 points are easy. The final one can get a bit tricky, especially when we are talking about "brand fonts and styles". Advertising agencies select fonts to build a brand's identity, after taking into consideration a lot of brand character, strategy and not to forget...Client requirement. All brand fonts needn't support character sets belonging to some or most languages. To mimic characters for static content is easy, but, for content coming from an XML data source is tough! If the character is not supported, the user will just see "boxes" on screen. This is especially true for Asian language sets and some EMEA languages. Creating a campaign font from the scratch is time consuming, but, well worth it if your brand font doesn't support the characters!

Some tips to create multi-lingual application:

  • Organize the data into folders with file names reflecting languages. For example, use en-US for US English.
  • Try to select the language for the user by sniffing his IP Address. If the selection needs to be manual (by the user), make sure you have a page at the beginning to allow the user to do so.
  • Make sure you embed all fonts and characters.
  • Most importantly, use a formula to calculate the textfield's height and width depending on the content loaded.
  • Also check to see font size for your content. It is ideal to set it using ActionScript.
  • Make sure your application is fully loaded before the content is shown.

From my experience, Arial and certain fonts belonging to the Helvetica family are good fonts to have embedded for displaying multi-lingual content. I am currently experimenting with Segoe.

Leave me comments if you have any specific words of advice or experiences. It should form a good source for people involved in creating multi-lingual content.

 

Tuesday, July 14, 2009

Rich Data Visualization

When we talk numbers, people just watch us with a "Aha!" or the "Aww!" face, depending on the situation. Even though, number crunching and accounting was my breakfast, during the college days, I never really considered it as a profession. There were times during my internship that I felt it hard to make a person understand that he is losing money to income tax and other taxes. Microsoft Excel came to the rescue soon and we could show stuff using charts and formulae that could calculate effects of the investments we make etc.

These days, we pickup real time data from all across the world, display it, perform calculations, distribute them to users living around the world over a wide variety of devices. These applications are not only graphically rich, they are also interactive. Data is displayed as innovatively as possible to make users understand, capture and react. Users can also simulate effects by just moving needles, turning a couple of knobs and type in a few values maybe to display the effective result. Sometimes, you really wonder if those "little men" inside the application exist!

Some really cool apps: http://www.smashingmagazine.com/2007/08/02/data-visualization-modern-approaches/

Being a Flash Platform Developer, my world lies with Flash and Flex. Flex has rich features that can help your data visualization app look cool and powerful. Dashboard apps take a few minutes to create and with Flex 4 and Flash Builder it takes much lesser time. The amount of code you type in is minimal, thanks to the new data connection wizards.

Here's an article on it: http://www.insideria.com/2009/06/flex-4-data-wizards-make-life.html

From Graphical User Interface to Rich User Experience, things have come a long way. As a beginner, I used to hate those old formy looks of VB 5 & 6, and always tried some "skinning". The programming community I was interacting with back then used to mock my actions. Now, 3 of them are Flex developers and they swear by rich user experience! Who's the laughing now, boys? In fact, visualization components (such as the dial component and some charting stuff) I had created for various projects in the past have almost become obsolete. Papervision based visualization has found its way as cat amongst the pigeons.