Blog

  • haXe Programming Language, Neko, & The Fall of FAME (FAHE?)

    Nicolas Cannasse, creator of MTASC, the open source Flash compiler, has just released a public preview of his haXe programming language & compiler. It has a full working parser with type checking, as well as a complete language reference. The language looks a lot like ActionScript 3, but has different datatypes, namely enumerators.

    The goal of the haXe programming language is allow you to have a good compiler and a good language that output to many client & server formats. Flash Player 6, 7, 8, 8.5, JavaScript for use in AJAX/DHTML, and Neko. Having 1 language that can output to a SWF, a JS file for later inclusion, a server-side application, or to be run in a standalone EXE is really nice; ActionScript currently can do the SWF and EXE, but not export out JavaScript (why would you want to?), nor utilizing ActionScript on the server-side.

    NekoVM is a commandline tool meant mainly for server-side usage & development. It is basically a command line virtual machine, and uses the higher level Neko language (more loosely typed), which can either run on the server, and even comes with a mod_neko to plug into Apache. You can generate Neko code from haXe, or apparently just have the NekoVM run your haXe code (maybe it’s implied you have to convert which is ok). Finally, NekoVM can be exetended via C DLL’s, or embedded in your own standalone binary application.

    While I think it’s a great idea to have “1 language to control them all” LODR style (Lord of the Rings), both on the Flash & AJAX front, it’s also neat to have that same language work on the server-side too.

    For JavaScript developers, I think they’ll dig the ECMA ‘esque language with true classes, and features most other seasoned programmers are used to. Strong type-checking I’m sure will lessen weeks of debugging time on larger web applications.

    For Flash Developers, it is another alternative language & way to output SWF. Additionally, that same investement in a slightly different language allows your skills & effort to port to a nicely outputted JavaScript file as well as a server-side solution vs. using PHP or ColdFusion for example.

    FAME apparently now becomes FAHE (like fey, or Fay)… I guess. I mean, the site says Neko is fast, and I’m sure whatever compiles haXe is fast as well. The draw to FAME for me originally was the speed at which MTASC compiled vs. the Flash IDE. Now, however, I do mostly Flex development, and when FlexBuilder 2 is officially released, I’ll be using that as my primary development environment. With incremental compilations, and the really nice IDE utilizing Eclipse, haXe’ compiler could be as fast as possible, and I still wouldn’t switch.

    I have no desire to output JavaScript, PHP works just fine on the server, and mProjector/SWFStudio works just fine on the desktop. Therefore, learning a new language for speed alone would not help my ActionScript 3 skills, nor improve my employability.

    While this adds another push to the fall of FAME for me, it is a big win for the Open Source Flash world, and open source in general.

  • What is Web 2.0 Contest Winners @ The Register

    Thanks to those who commented to yesterday’s post; it was nice & helped to get the array of perceptions, opinions, and personal takes.

    However, this made me feel damn good; I think my favorite was the encircled wagons. I laughed soo much reading these, my Friday is officially good.

    What is Web 2.0 @ The Register

    Via Instant Badger.

  • Web 2.0: I make it, but don’t use it

    I think I’m using Web 2.0 wrong. I’m really feeling left out, and am starting to feel I’m either not as much as a geek as I thought I was, am doing something wrong, or am just being a late blooming user.

    What I do use

    I use very few web apps compared to what’s available in my daily and weekly routine. I use Fullasagoog & MXNA to read blogs. I consider both to have some forms of web applications in that both have various ways to see and control data through visualizations.

    I use Flickr everytime I have new pictures, whether emailing from my phone, or from cameras we have.

    I link to Wikipedia a lot.

    I turn JavaScript back on in Firefox, and use Google Maps when I’m heading somewhere new; usually once every 2 weeks.

    If I need to bypass a stupid sign up page, I use bugmenot.com. If I need a fake email if bugmenot doesn’t work, I use mailinator.com.

    What I don’t use

    Everything else is a website, not a web application. One could argue when I utilize a dynamic element on a form when purchasing airline tickets online, that’s it a web application, but I’d disagree; it’s just a really well written form in an airline website; 1 integral part to the site, not a standalone application deployed via a the browser.

    After taking a blog survey, I’ve just been made aware of a plethora of media hosting services I had no clue about, nor why I should care.

    Grokster, MySpace, etc. don’t appeal to me. I get invites, but ignore them. I’ve signed up for LinkedIn, and maintain most of the connections I get, but receive no ascertainable value for my time spent.

    I used Del.icio.us once, but my Firefox bookmarks work just fine, and if someone blogs about a link, posts it on a mailing lists, or emails it to me, and I feel like I’d like to reference it later, Control + B, done.

    I used Ning once, even signed up to be a beta tester & developer, but quickly lost interest; I didn’t get it, and as any typical user would do, gave it 10 seconds, and left. I then did what a curious developer would do, and gave it 2 more chances. Still didn’t get it. Left.

    Google’s RSS reader was annoying; like, some things didn’t refresh the page, so I didn’t really know if something had happened. Sometimes my back button worked, other times it worked for really weird things.

    I’ve yet to see the point of getting Gmail. While my manager from a past job made an extremely good case for it, Outlook Express, patched, works great in sorting mailing lists, and my delete key kills Spam dead. Again, mailinator solves the need of a seperate email, and I found out I accidentally have a Yahoo! one from a Yahoo! account I forgot I had.

    The mashups from Google Maps and Yahoo Maps, while awesome from a geek standpoint, do me no good. You think I’m going to remember what was what, and where to find it? Unless Real-estate sites that I’d probably use once in my lifetime put them on their sites, which Yahoo! allows, then maybe I’d use it. That’s a very short window of opportunity for them.

    Confused About Web 2.0

    I have read Tim’s original defintion of Web 2.0, as well as the compare and contrast followup.

    Hoping one of the good AJAX & Web 2.0 bloggers, Jonathan Boutelle could answer my dilema via a real-world application. After reading Jonathan Boutelle’s blog entry about MindCanvas, I became extremely frustrated reading the site. Nothing told me how to use the product. Oh yes, there was plenty of info about it, but no link. No text on the site, that I found, said anything about it being in beta, and thus making this site really not in my best interest to be viewing with false hopes. I managed to pacify my frustration from the context of his blog entry.

    Everytime I read an O’Reilly blog I get more confused and frustrated. There is this assumed thing about the industry that I just don’t get. I mean, I’m a geek, aren’t I supposed to be ahead of the user curve by 2 years, and they 2 behind? I feel like I’m with the users on this one; I don’t get it.

    Apparently, now the technology I have been using in my career suddenly empowers me to create Web 2.0 experiences and applications as well. While reading these nebulous definitions of what Web 2.0 is, I still respect the opinions since the majority of what I’ve read comes from competent individuals, and as such, I’ve tried to let things play out over the course of the last few months to see if I can use some early hindsight on the debates, discussions, and new web applications that are put under the new moniker of Web 2.0 to see if some true context would happen. I’m really trying to keep an open mind on this.

    It didn’t. At least, not for me.

    Stranger Context

    I read the supposed leaked memo from Bill Gates, which I haven’t gotten confirmation on if it’s legit, but read it just the same. So far it’s the only thing that makes sense business wise. I use Word; it works, I don’t want to change. I usually upgrade, by accident, every 3 versions. So, it’ll probably be accident again; I won’t find it installed, or I will, but it’ll be a link to Windows Live, which has a free, 1 year subscription to “Word Online”. Ok, so I just have to use it in a souped up version of IE. Whatever, as long as it works.

    In terms of capability, I really liked Scott Barnes take on the whole mess.

    However, reading Ryan’s latest entry, I was extremely confused. The desktop, with some network aware applications, is my life; how could it be ending? Without desktop applications, I’d be f00ked.

    Don’t get me wrong; I’ve read plenty of blogs where old-skoolers remember the jumps from client to server, and server back to client; using the metaphor of a pendulum to basically show how things are swinging back to the client again in the industry currently.

    Conclusions

    So, I guess, bottom line, I’m confused on why I don’t use as many web apps as people are apparently using. I’m confused on what is defined as a Web 2.0 web application; what is the criteria, and how much desktop is allowed into the picture? How do non-Microsoft entities expect to really capture that desktop experience with the use of browser extensions?

    Maybe I do use Web 2.0 and don’t know it… I certainly don’t get it, though. I’d much rather have occasionally connected, desktop agnostic applications that could utilize net connectivity when it’s available. Like Microsoft’s SmartClient or whatever new incarnation of Macromedia Central ends up being.

    Browsers suck for developing software; only reason I survive is because Flash Player actually works. Maybe I should just go learn C and crawl in a hole until this whole thing blows over and I can use some real, working hindsight.

  • Event Bubbling in Flex 1.5 & ActionScript 3

    Biggest problem I had in Flash was using a bucket brigade technique to notify one of my high level View controllers from a deeply nested View. Basically, if a form elment, nested in a form container with other views, that is in turn nested in a View controller; he has to go through the View he’s hosted in to get the event out to those who may care. In turn, the main View controller couldn’t subscribe to the event unless the hosting container forwarded it along… which is what I would do in Flash.

    The nested would dispatch his event:

    private function doSomething():Void
    {
       dispatchEvent({type: "someEvent", target: this});
    }

    Then, the View hosting it would have to suscribe to the event, and forward it up the chain:

    nestedView.addEventListener("someEvent", Delegate.create(this, doSomething));
    
    private function doSomething(event_obj:Object):Void
    {
       dispatchEvent(event_obj);
    }

    Pain in the ass, and suddenly Views know too much about eachother; a parent shouldn't have to do a child's handiwork.

    Peter Hall had made an ARP extension that allowed bubbling events.

    Apparently, Flex 1.5 already does that. I have a View nested 2 deep in some complicated Flex components, and all the main View controller has to do is subscribe to the View it hosts, and as long as no one intercepts it, the event will "bubble up" the Views to anyone who cares.

    This is accomplished by adding the bubbling property to true on the event object:

    private function doSomething():Void
    {
      dispatchEvent({type: "someEvent", bubbles: true, target: this});
    }

    Now, with Flex, you still have to define the event in the MetaData tag, much like you define Inspectable properties that component developers can use as getter/setters. So, that is one draw-back; you still have to define the event in whatever View uses it via composition. Bleh.

    I'm not really sure if AS3 requires the metadata, though. Since EventDispatcher is built into Flash Player 8.5, and the 3 phases of capture, target, and bubbling are built into the core of Sprites and MovieClips, I'm sure you probably don't have to define the event; you can just have faith in knowing that if you mark the event is bubbling, it'll flow up!

    :: goes to try a test ::

    :: 20 minutes later ::

    Well, that almost worked. Apparently, events that bubble cause Firefox to crash, haha! Anyway, I probably just found a bug in the alpha software, go figure, but if this is how easy it is to bubble events, awesome.

    Flex 2 Bubble Event Source Files

    *** Update 1.23.2006: Good write up on Event Bubbling with a great class by Bokel.