Flex and Localization: Setting the default new file encoding in Flex Builder
[Note: I recently presented at 360Flex San Jose on the topic of localization (L10N). During that session, several questions were asked that I did not have the answers to. Over the next few months I will be attempting to answer all of those questions and more.]
In Flex, resource bundles are used to provide localization features — that is, the ability for your application to provide the user with a different language and regional preference — to your applications. All Flex applications start up with US English as the base language here in the United States of America. Even Flex Builder's default compiler options includes "-locale en_US" making it possible for you to begin localizing your application.
The "gotcha" that hit me the first time I created a resource bundle for localization in a Flex application was the file encoding. The default file encoding setting in Flex Builder (Eclipse) is ISO-8859-1, which if you use is ok for English, but if you choose to copy this file and use it for someone to translate your English text to, say, Spanish it could cause you some problems. For instance, I had a main.properties file that I was translating line by line with Google Translate (I know, lame) from English to Spanish. When I had completed the process and saved the new file, boy was I disappointed. All the special characters that Spanish uses were replaced by triangles with question marks. Converting that ISO-8859-1 file to UTF-8 with the tools at hand made things worse. My choice at the time was to start over from scratch making certain that my English file was UTF-8 and then all my future copies would also be UTF-8.
And, of course, when I told this sad story during my presentation at 360Flex San Jose an attendee asked "Isn't there a preference setting for that inside Flex Builder?" My response at the time was, "I'm sure there is but I have not found it." But I have now!
To get to that preference setting in Flex Builder (stand alone), select "Window" > "Preferences..." and the Preferences dialog box will appear. In the left side tree open "General" and select "Content Types." The right side will have a new tree in the top. Open "Text" and select "Java Properties" and the bottom of the right side will show the File Assiociations and Default Encoding settings. You'll notice that the Default Encoding is set at ISO-8859-1. Merely change the text in that field to "UTF-8" and you'll be done. From this point forward, *.properties files that Flex Builder creates will be encoded as UTF-8.

You can also change this setting on a per-workspace level (not that I could think of a good reason to do it that way). With your Preferences dialog open and "General" selected in the left side tree, select "Workspace." You will see an option labeled "Text File Encoding". Select the "Other" radio button and use the combo box to select the encoding you desire.

Please let me know in the comments if you have a problem with these instructions in your environment.
224 Views
AIR Window Explorer: I Owe Daniel Rinehart A Beer
Daniel R., if you are listening, I know that you don't know me, but I owe you a beer.
This afternoon as I was working on my 360Flex presentation and example code I became very, very frustrated with NativeWindow and Window and all the various similarities and differences in the options for creating and manipulating this much-used feature in AIR. So I thought, "Let's Google this bugger and see if there is a chart out there that can help."
No charts, but I was intrigued by a link to Daniel's site: AIR Window Explorer. You've seen the Flex Component Explorer and the Flex Style Explorer, well, Daniel's app is in the same vein. Decide on your Window options, create and open the window. Click on the "Show Code" button, and you will see the code used to create the Window. Nice! This application isn't perfect, mind you, but it does give you a a good idea of what you can do with the Window and NativeWindow classes in AIR.
So, for saving me an hour (and a lot of frustration) today, I owe Daniel R. a beer. Not a crappy beer. A really great beer.
Hopefully Daniel will be attending 360Flex in August so I can repay him properly.
713 Views
Good News/Bad News: I'm Speaking at 360Flex San Jose
I was notified last night by 360Flex's Tom and John that I will be speaking at their next conference being held in San Jose, California on August 18-20. I submitted several topics to speak on, and they decided that my internationalization (I18N) topic was the one that they wanted me to speak about. I18N actually stands for Internationalization - "where 18 stands for the number of letters between the i and the n in internationalization" - Wikipedia. When I originally suggested the topic to Tom via instant message, he responded "I18N?", so the session is titled "I18N: Tom Ortega Doesn't Know It, But You Should ;-)." See the full schedule here.
Now for the bad news: I am in the last session of the conference. And I am up against Ryan Stewart's "Synchronization with AIR and LiveCycle DS." I mean seriously, Tom and John. Where is the love?
I'll be blogging about the progress I am making with this presentation, although I have already made quite a bit of progress with the presentation because I am currently using it with two projects and was putting together training for Roundbox Global's Interactive Engineering team on the subject.
Again, thanks to the 360Flex team for accepting my submission!
784 Views
360Flex Atlanta + Adobe = Special Event
Yeah, if you live here in Atlanta you should already be attending this event because you're attending 360Flex Atlanta right? It's a great conference focused on your favorite RIA platform? All for only $480.00 (and you get to sleep in your own bed and miss out on those tiny airline seats with no leg room).
Well, if you can't gnaw off the business-hours ankle chain your employer welded to your desk, then here's your chance to mingle with people just like you! 360Flex has invited members of the Atlanta design and development community to a little get-together being held at Stats Sports Bar not far from where 360Flex Atlanta is being held. Yeah, that does mean adult beverages. Yummy.
So come out and see what's up. But you need to RSVP. Get your details here, here or here, but RSVP.
846 Views
360Flex is Coming to Atlanta! February 25 - 27, 2008
Phew. Finally, I can officially report that 360Flex is coming to Atlanta!
Hold on to your hats, because I will have a couple of announcements about events in Atlanta that are related to 360Flex!
Stay tuned!
1026 Views
360Flex Asks for My Opinion, Well Here It Is (like it or not)
360Flex's Tom Ortega wants our opinions about what we want or don't want when it comes to attending a 360Flex.
First off, what the hell is wrong with you, Tom? You're asking your customers what they want?
No conference I've ever attended has asked directly (well, kind of directly) what I wanted before the conference. I was overjoyed when Ted Patrick announced that this year's MAX was going to be better and more focused on the developers, and I was equally happy when he said that the event would be more like I had wanted it to be for years. But no one ever asked me for my opinion about my expectations. I remember sitting painfully through a session at the MAX 2004 in New Orleans where the presenter was obviously distressed about being a presenter. At the end of the session he confessed "This is the first time I've ever presented." WTF?!? That was not what I wanted from my MAX experience. This year's MAX was awesome.
Now, back to the questions from the 360Flex team. It seems that Tom and John are running a balancing act between a) food, b) paid speakers, and c) location. Let's take each of these one at a time.
Food: I hear what Tom is saying about food. Organizing a conference and dealing with conference center's food services, a requirement of most if not all conference centers, is a pain. And, yes, it is a racket. I thought that the food at the first 360Flex in San Jose, CA was great. Conference food is expensive and if you can't bring in your own caterer then I guess we're stuck. Get us the best deal you can and remember that no matter how good the food is, people are going to complain. Don't let people's ignorance get you down, Tom. They didn't come to the event to eat. At least they shouldn't have.
Paid Speakers: Do it. I'll pay more to attend a conference if I know that the conference is compensating the presenters. But I will also tell you this: if that presenter puts his presentation together "on the train on my way to the conference," I reserve the right to ask for a percentage of my money back. Not that I'll get it back, but it won't stop me from asking. And, yes, that happened at the first 360Flex conference, but I know that Tom and John have learned a lot of lessons since then.
Location: Chances are that any conference will eventually be held in Atlanta. If ever a 360Flex is held in Atlanta (or, God forbid, a MAX) then, yes, I will care what location it will be held at as I will either drive or take mass transit every day to that event. But if I am attending a 360Flex conference in San Jose or Seattle, then as long as I can get to and from the conference hotel and the airport, and to and from the conference hotel and conference floor easily then I don't really care where the conference is held. Of course, finding that balance is tough. MAX 2007 isn't exactly a showcase for location; I spent my fair share of $10.00 bills on taxis to avoid the crowded or late conference buses — but I am just seriously impatient.
Bottom line for me: if you have to raise prices to obtain the best speakers, then do it. But since you asked about the other things, I'll happily not complain if the speakers are awesome, but I don't like the food or am tired from moving my fat ass down the street. Tom and John, keep on keeping on.
1264 Views

