Archive › 2009

One-Line CSV Parser for ActionScript, AS3, Flex, AIR

Well, okay, it’s slightly more than a line, but still I wish someone had written a blog post like this when I went out looking for a CSV parser for YNAB 3.

Thanks to comments in this blog, I discovered that you can split a CSV line, and correctly account for escaped commas, doublequotes, etc, with the following expression:

For each line of text in your CSV file, just do this:
[code lang="as3"]
var components : Array = line.split(/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/g);

There are some side effects, like quotes that are used to wrap values are still included in the components, but it was a small price to pay. I think it beats the typical state machine approach. (Well, I say that cause I didn’t have to come up with that beast of a Regular Expression).

Now you’ve got your array of values for your csv line. I’m sure you can take it from here.

Comments ( 4 )

Hey Gang, Let’s Localize the Flex Framework Resource Bundles

When I migrated from C# to Flex/AIR in order to develop YNAB 3, I was met with a few surprises. One of them was that the default Flex Resource Bundles were not localized. Oh sure, they include Japanese, but not FIGS (French, Italian, German, Spanish). This means, from what I’ve been able to find, that if you want to display currencies and dates in the user’s default language, you’re stuck translating them yourself.

When we wrote YNAB Pro in C#, one of the things we got for FREE was default currency and date/time formats. I just told YNAB Pro to display money and time in the appropriate format that Windows defined, and I immediately had a partially localized application.

When I first ran into this, I assumed that surely other people had already solved this problem and posted standard .properties files somewhere, but my Google-Foo has turned up nothing. So now, I want to be that guy. Within the next few weeks, I’d like to have an open source project hosted somewhere (Google Code most likely) that will offer localized versions of the following files for every language:

How will I do this? Well, first, I’m only going to localize the parts of those files that are related to date/time/numbers/currency. In other words, the standard stuff. Secondly, I’m going to automate it. I’ll write a C# program that loops through the available cultures and spits out the appropriate values for things like decimal separators and currency symbols into the appropriate files.

You’ll be able to log on, grab these partially-localized resource bundles, configure your build process, and you’ll be a lot further along in localizing your program.

So, before I begin, I wanted to ask:

  1. Has someone already done this?
  2. Does anyone see any problems with my plan? Please let me know!
  3. Does anyone else think this sounds like fun and want to do it yourself? If you’re geek like me, the thought of automating the creation of so many useful files sounds like a tremendous amount of fun. Please feel free to run with this and be the hero for Flex/AIR developers everywhere. I’ll gladly trade glory for time. :)
  4. I assume I’ll have to license the files we generate under the MPL (like the Flex SDK) because this counts as a modification to existing framework files, right?
Comments ( 4 )

Licensing Flex Data Visualization components on your build machine

aka: Licensing the AdvancedDataGrid and Flex Chart components
aka: Getting rid of the Flex Data Visualization Trial watermark

If you want to set up an automated build machine to build your Flex projects, you’ll get the Flex Data Visualization Watermark on your AdvancedDataGrid and Chart components unless you properly license them. And no, you don’t have to install Flex Builder. (And it’s not! That was the first thing that came up in my Googling, but that was for Flex 2.)

Just find your flex-config.xml file, which will be in your SDK directory under “frameworks”. On my build machine, that is c:\FlexSDKs\3.3.0\frameworks\flex-config.xml

At the bottom you will want to add these lines:

1377-rest of your serial number here

I learned it all by reading this helpful post.

Comments ( 2 )

Error #2030 End of File when using as3xls to read an xls file

I was getting this error consistently when reading BIFF8 .xls files in YNAB 3. Turns out that as3xls has a bug in the way it handles BIFF8 content, but luckily a gentleman named Dan Wilson has stepped up and is maintaining a fixed version here.

Thanks Dan! Budgeters around the world will owe you one.

Comments ( 0 )

We’re looking for an amazing icon designer

We actually found a designer whose work we really liked (at first), but he kept disappearing for over a week at a time. About 2-3 weeks after the deadline, we called it off, and here I am again. I’ve got a list of portfolios to browse through this weekend, but I figured I’d ask here in case an amazing icon designer or his/her friend stumbles across this post. :)

I’m looking for someone who could churn out a beautiful application icon for YNAB 3 so that people would be proud to have it sitting in their Mac Dock. We’ve got a couple of other rich icons to design too, but if they can make a beautiful application icon, the others should be no sweat.

Anyone got a recommendation? Feel free to comment here or to email me. My email is taytay _at_ taytay com.

Comments ( 1 )

Stop browsing through your workspace – Find and open files quickly in Flex Builder/Eclipse

EDIT: Turns out that I could just hit CTRL-SHIFT-R this whole time, so feel free to ignore the rest of this post. Thanks to Harald, Dusty, and Ryan for pointing that out. ;)

If you use Flex Builder or Eclipse on a regular basis, and you want to be faster at development, I can’t recommend the “GotoFile Eclipse Plugin” enough!
If you know the same of a file you want to open, or even just substring of the file name, this plugin lets you quickly find it without browsing through your Workspace. Just type a few characters, hit return, and you’re off! Our YNAB 3 workspace has hundreds of files, so this is a real time saver.

In my previous life as a .NET developer, I used Whole Tomato’s Visual Studio plugin to give me a similar feature and was excited to find this one! Thanks Muermann!

Comments ( 4 )

ToneMatrix – Sweet synthesizer in Flash

Just stumbled across this one:

Hard to put it down.

Comments ( 0 )

Word-wrap on a Flex field component

Make sure that you set the width of your field explicitly, or there will be no word wrap for you.

Some other guys found another workaround that gets around explicit widths, but it also looks fragile.

Anyway, if this comes up in a google search, I’ll have saved someone else some time. :)

Comments ( 2 )

I want to like Microsoft…

But they make it so hard.


Comments ( 1 )

Help Authoring Tools – why are they so ugly?

Tonight I was looking at various Help Authoring Tools: RoboHelp, Madcap Flare, and others I forget. So far I haven’t been impressed with the look and feel of any of their output. I want attractive help that looks like Adobe’s, or Apple’s, or even Microsoft’s MSDN.

I guess I could spend some time figuring out which one lets me style it the best using CSS. I’m especially surprised that Adobe’s Robohelp doesn’t come with something better out of the box. It’s Adobe for goodness’ sake!

Comments ( 0 )