Archive for December, 2008

Skipped the Basics?

Posted by thedigitalartist under Uncategorized

I am writing this post, because I think there are a lot of people like myself out there, who missed the OS wars. That’s right, a lot of people missed out on a lot of things like knowing the difference between Unix and Dos, writing shell scripts or batch files. For many, the GUI is all they know of how a computer works. And that is not a bad thing.

Back in the day, there were so many different ways of operating a computer that is was almost not worthwhile to learn them. Everybody from Colleco to Tandy were introducing their own computer, with an “operating system” built into it. But eventually standardized operating systems emerged, like Windows and OS, and some kind of normalcy was created. Computers became accessible to everyone. But frankly, I wasn’t too interested in these operating systems, nor Object Oriented programming, and I went away for a long time to do other things. That’s my story.

But today I think a lot of people missed out on the whole “getting in there with the command prompt” thing because they arrived on the computer scene after the GUI had already become quite mature. So outside of hacking a game or two, they are not very comfortable with what lies under the glossy surface of the graphic OS. If you are not sure what a command prompt is, or how to write a bat file, you probably could get along just fine up to now.

However, if you happen to be a developer of Flash applications, there is a very good chance that you could have become very good at what you do without learning the basics of computers. There, I said it, and no disrespect intended. But things have changed, and they are going to change a good deal more in the near future. Here is what I’m talking about.

With the advent of Flex2, Adobe pushed the whole Flash-dev planet into a new orbit. Perhaps it was inevitable. Even before Flex 2, smart people had figured out how to compile AS2 using MTASC, and free alternatives to the Flash IDE emmerged, like Flashdevelop. I remember being amazed at the speed of the compile using MTASC, it was a real eye-opener. Now you could use a build tool like ANT to not just assemble your flash files, but do a multitude of other tasks as well.

But while tools like ANT and SVN are commonplace in dedicated computer development courses, they are simply not talked about, understood, or even thought of in the design courses that Flash is commonly placed into in colleges. So again I say, you could get really good at Flash, without really understanding the basics. And that is going to be a problem now, because really smart people who DO know the basics inside out, are starting to notice Flex and Flash. As an example, note this article that mentions Flex support being integrated into .NET visual studio. That’s right, the Microsoft boys are coming…and the JAVA guys, well they’re already here. These guys already understand things like compiling markup language into byte-code, automating builds, versioning, etc. They’ve been doing them forever. If you are a typical Flash dev, you have a very different path to the grail, that looks a bit like this;

college or self-taught > animation > simple timeline > code on timeline > ‘include’ files > write simple classes > learn to use imports > external code editor > think you know OOP > crappy versioning > good versioning > Actually know OOP > external compiler > build tools > batch files, regex, etc. > Agile, XP, Scrum > design patterns > test first development > continuous integration

As you can see, it can be a long and winding, sometimes torturous path…simply because there really aren’t that many roadmaps or pointers for people who arrived at programming unconventionally. That is unfortunate, because a lot of this stuff is really not that difficult to pick up, if someone just shows it in a way that is clear, gets to the point, avoids jargon and produces something fun.

Don’t get me wrong, I think there is real value in learning the actual language, the speech, of programming.  You do need to know what a mutator and an accessor is, for instance, to have an intelligent conversation with other programmers.  The problem is that in many cases, knowledge of these terms is taken for granted by texts and tutorials.  You can be too advanced for the beginner level, but baffled by the language used in the intermediate to advanced articles.  It’s a tough spot to be in alright.

But not to worry.  Half of making rapid progress is knowing what you don’t need to know.  A good article, or a mentor, can help you cut years off of stumbling around seeking answers.  I’ll do my best with this blog, but there are many resources out there that can help you advance your learning.  Stay tuned for my upcoming series of articles.

Eclipse Not Quite There

Posted by thedigitalartist under Uncategorized

Eclipse is awesome. Don’t mistake the message here. But for a certainty your text editor is your Katana for a developer. People get very attached to their weapon of choice, they spend a lot of time with it so it really has to work well for them. Awkward features can really nag on you when you encounter them time and time again.

For a certainty, Eclipse is one of the better open-source projects out there, and the community that supports it is robust. In some respects, it is head and shoulders above every other editor (like the plugin system for instance, that is wonderful to utilize). It is also killer having support for so many languages in one editor – makes it easy to hop from one to the other. The use of perspectives and workspaces is another really great feature.

But….there is always room for improvement, and if there is a single way that Eclipse falls down, it is as a text editor. Yep, despite all the features of Eclipse there are editors out there that simply do a better job of pushing text around. For a very well-known editor, eclipse (and by extension FlexBuilder) is missing a couple of things that can definitely make your life easier.

Column Editing

How about columnar editing? Eclipse doesn’t have it. This is the ability to edit text in a “column” fashion, or vertically, as opposed to line-by-line (which Eclipse does support). Columnar editing is fantastic, particularly for languages like Actionscript, where you are assigning a lot of variables, such as in making a value object. It can be a lifesaver, and really cut down on time spent. Lots of code editors have it, such as TextMate (awesome editor), UltraEdit, Crimson Editor, etc. There is a project underway to make a plugin for Eclipse, and it gives some limited columnar editing, but honestly it’s not that great in comparison to other editors, and it’s totally unsupported by the group that oversees Eclipse development. Check out the video of column mode in the “E” editor, and you’ll see how much more seamless it is than the Eclipse plugin.

Line Wrapping

Eclipse has no line-wrapping. I almost fell out of my chair when someone told me that, and I had to research it online. Apparently it might be coming soon. But in the meantime, that’s correct, you can not have a line of code wrap down to the next line, such as you can do with FlashDevelop. Ghetto. For me it is not a big issue as I usually code on a 31 inch monitor, but even then if I get a lot of panels open it could really cut down on scrolling. If I had to guess, I’d say that this issue is probably related to the same code that makes columnar editing problematic, the Styled Text class in SWT, but I can’t say for sure.

Snippets

There really isn’t a great Snippets tool for Eclipse. Don’t get me wrong, there are some good tools, such as the one that comes with the WDT update, or the that which comes with the ColdFusion extensions to Flexbuilder. But they’re not GREAT tools. If you disagree, then tell me where are my back-ticks, my shell support, all the things that come with the (probably industry best) snippets tool of TextMate.

Multiple Views

Many code editors let you open a single text file in multiple views.  So if the file is long, you can have the top part of the file open in one view, and the bottom part in another.  This can be extremely handy.  Imagine for instance, you like to assign all of your listeners in one place, then group together all of your handler functions.  Having the same file open in two places could really help.

Of course, if you are developing in one of the well-established languages like Java or C++, your editor options are many, particularly on PC. But for Actionscript developers, there really isn’t a lot of support. Some editors are starting to offer limited support, such as Enterprise Architect, the UML mapping tool that can generate AS3, but I’ve blogged my frustrations with that tool before.

There is no reason why you can’t develop AS3 in any tool you prefer, but most likely you’d be giving up the really nice options of FlexBuilder, such as code-hinting, built-in compiling, implementation of SWC files, easy build of library projects, and so forth. All of that can be overcome…but is it worth it to have the improved text editing? Perhaps. (I’d also be remiss not to point out that $30 for UltraEdit beats the heck out of $400 for FlexBuilder if you don’t need the layout view – and a lot of guys don’t need it)

In time, most likely more code editors will start adopting AS3, as the language matures and gets widely adopted. In the meantime, there are various things you can try. As an example, why not try using multiple editors? I often work with two code editors open at once (you’ll want some good screen real-estate, I’ve mentioned my fat-arse monitor above, and it sits beside another 21-inch cintiq…but hey, I make my living doing this stuff). So I would have FlexBuilder open, and alongside I would have FlashDevelop, as they both have features I like. My core-code would be open in FlashDevelop, and the project I’m specifically working on would be open in FB. I could still compile through FB, and enjoy the features I like about FlashDevelop. It’s an option.

Whatever you try, you have to be happy with your text editing. Really any editor can work just fine so long as you are able to learn it’s quirks, and frankly we often don’t use half the features available. So get in there, mix it up, try a few editors, and if you can’t find what you like you could always take a crack at building your own!

FlexBuilder Shortcuts

Posted by thedigitalartist under Uncategorized

I’ve been using FlexBuilder for some time now. Way back when I used to code actionscript right in the Flash IDE, and it wasn’t until someone turned me on to SEPY (another actionscript editor) that I began to see what a difference a good text editor can make to your coding efforts. Since that time, I eventually gravitated to FlashDevelop, and then at last to FlexBuilder. And of course, now I’m running FlexBuilder as a plugin on the “Ganymede” version of Eclipse, which is great and runs just fine. It has allowed me to experiment with a string of plugins and snippet editors, all of them with some good and poor features.

One thing I’ll say about coding in the Flash IDE – you could script and customize the heck out of it, with the simple Javascript-based language JSFL (and XUL for those who were hardcore at it). I wrote a lot of custom commands and scripts, and I found that the ease with which this could be done was fantastic. You could automate just about everything about the IDE.

Nevertheless, FlexBuilder is a far better tool for straight up coding. If you’re a java guy, you can even write your own custom extensions for it. Regardless, there are quite a few built-in shortcuts that can be very handy if you work in this tool a lot.

Here are a few of my favorites;

  • You know ctrl+F finds things, did you know ctrl+K finds the next instance (or Shift+ctrl+K for previous)
  • ctrl+shift+D – Add other Comment
  • ctrl+shift+C – Toggle Block Comment
  • ctrl+/ – Toggle Comment
  • ctrl+G – Find all declarations in workspace
  • ctrl+shift+G – Find all references in workspace
  • F3 – go to definition
  • ctrl+shift+P – go to matching bracket
  • ctrl+Numpad_Subtract – collapse
  • ctrl+shift+Numpad_Divide – collapse all
  • alt+Down – move lines down
  • alt+Up – move lines up
  • ctrl+shift+Delete – delete to end of line
  • ctrl+alt+Up – duplicate lines
  • ctrl+shift+Enter – insert line above current line
  • shift+Enter – insert line after current line
  • End – go to line end
  • shift+End – select to line end
  • Home – go to line start
  • shift+Home – select to line start
  • ctrl+shift+X – to uppercase (for those const vars)

And there you go, lots of handy keyboard shortcuts to keep you rocking along in Flexbuilder. Of course, many of these will work just fine for other languages as well.

FWA SOTD

Posted by thedigitalartist under Uncategorized

Waaaahooo!!

Big congratulations to the creative team at Teehan+Lax, one of the best darned interactive shops in the business. They’re the folks behind the tight interactive campaigns of TELUS, and I personally know how hard they work at making everything ‘just so’.

One of the biggest efforts is the TELUS holiday giftguide that happens annually. Telecom has heated up this year, the competitive advantage can swing either way rapidly among the service providers, so the holiday effort is highly important. This year, the gang at T+L really went above and beyond to deliver the goods, and it shows – they’ve been recognized by the FWA as a site of the day!  For those who don’t know, the FWA is “the” site to get recognized on.

You can see for yourself here.

It is really wonderful to see a Canadian shop raising the bar like that. Hopefully they’ll throw a post up talking about how they did the site, ’cause I don’t want to give away too much.

Way to go guys!!!

-timbot