September 9, 2009

The community response to my Signals event system has been very encouraging. In the two days since I opened it to the public, there have been dozens of comments on my announcement and re-tweets. People have been quite positive and interested. No one has told me I'm wasting my time (you could be the first!).

The best part has been people's insights for improving Signals. I'm been rapidly integrating them as you can see in my commits for the last two days. A special thanks goes out to Richard Lord for helping me understand AS3 event bubbling and how to implement it in Signal.

Connecting EventDispatchers to Signals

[EDIT: I renamed EventDispatcherSignal to NativeRelaySignal]

I received a very clever idea by Jacob Wright for relaying EventDispatchereventsto Signal listeners. I implemented it in a new EventDispatcherSignalNativeRelaySignal class. It lets you easily wire, say, a Sprite to send native events through your own signals. The same goes for any object that implements IEventDispatcher.

Here's how you could create a Sprite subclass that uses a Signal for the click event:

Also, Jacob's twin Tyler sent me some mind-bending ideas for radical memory efficiency. He takes lazy instantiation to a whole new level. I'm still reeling from thinking about things like Signal inheriting from Array and using a getter's arguments.callee as an index into a Dictionary. We'll see how this evolves.

Github vs Google Code

Question: Who would prefer using Github for the Signals project, rather than Google Code? I've used Git a bit and would be open to moving to it if contributors preferred that.

20 comments:

re: GoogleCode vs GitHub. Either choice works for me personally. But I think that Git is still in early adopter territory. It is the way of the future, but the client tools for working with SVN are more refined and more developers have everything they need already installed.

GitHub GitHub GitHub!!! I do realize that most Flash devs are still using SVN. But there is no beating the level of collaboration that GitHub can offer the project.

Besides, having a couple of high-profile Flashers (that's you buddy!) host their projects on GitHub could really help push more Flashers over to Git. I don't know of anyone who has regretted learning Git. It certainly changed how I think about software development and collaboration.

As I mentioned in a tweet, the main worry I have is having multiple event frameworks in place. I think back to the AS2 days where we might have 2,3, or 4 different event frameworks in an application and that scares me.

I'm really interested in improvements like this since it brings signals closer to events in compatibility.

If you are really hoping for collaboration with the community Github is the way to go. I have gotten quite a bit more mileage out of that than I ever did with SVN. I wrote a blogpost on "Why Git" here: http://bit.ly/1CQPq1

Please don't force me to learn linux-esque commands with cygwin. As long as there's no GUI tool for GIT, like Tortoise for SVN, I'm not keen on using it.Did you know there are actually not-so-tech-savvy Flash designers that like to use opensource projects?

@Bart - yes I think people realize not everyone is "tech-savvy". And in the case you prefer a GUI to help you with version control you could use an IDE (i.e. Eclipse, IntelliJ IDEA, etc) or even try Tortoise Git (http://code.google.com/p/tortoisegit/).

I googled, "GUI for git" and the second result took me to the Git Wikipedia page which lists at least 2 GUI apps for git :)

Github!Talking about GUIs for svn, cvs, git, mercurial etc... most of them are explorer shell extensions and could make win xp explorer really slow.So I prefer to use command line versions. GIT + cmd = love!