Posts Tagged ‘download’

Spread the word, an iPad app built in Flash!

Published by Ronny on September 1st, 2010 in Actionscript, Experiments, Flash, Projects, download. 11 comments

Near the end of June, I started a little experiment, just for fun, which would just immitate fridge magnets. I wanted to make it a multi-user experience. So everybody hitting the page would see the changes that are being made realtime. I built the first version and was quite happy.

But a few days ago, it struck me: I can just use the code I used for that experiment and port it to the iPad using the iPhone Packager (which comes with Flash CS5). So I did!

Although I had to change some of the code (loading settings files, etc), I was actually able to build this application rather quickly. I also added a multi-room feature, so everybody can have their own fridge with magnets ;-)
So you can now actually leave your boy/girlfriend a message on a virtual fridge (with no food in it) and then mail him/her the link! He/She can then rearrange the letters and leave you a message in return; Fridge-magnet style! That’s geeky, right!? :-D

About the application

‘Spread the word’ is both an iPad and a browser application.
The clients are built using Flash Builder (for the browser app) and Flash CS5 (iPad app). The multi-user support is a Red5 application.

‘Spread the word’ online

You can view the application in the browser by hitting the following URL:

http://spreadtheword.nocreativity.com

If you want to have your own fridge, just add ‘?myOwnFridge’ (replace ‘myOwnFridge‘ with a name of your choice). For example

‘Spread the word’ for iPad

Currently the iPad application is only available though my Cydia repo. I will however be trying to get it into the Apple App Store (I know about 3.3.1, I’m still giving it a shot :-P ). The app also supports rooms, so feel free to go crazy (but be nice, there’s kids on the internet ;-) ) Read the rest of this entry »

We <3 it dashboard widget

Published by Ronny on April 8th, 2010 in download. 3 comments

For the longest time I wanted to join We <3 it (Beware, there happens to be a lot of nudity in my stream… What can I say: I love women :-D ). A few days ago I finally did. I like the simplicity of the site and the concept of it. Whatever you run into: If you like it, you can heart it! Simple.

Since I’m such a sucker for ‘beauty in one frame‘ I happen to heart a lot of stuff. That’s where the We <3 it bookmarklet comes in handy. I love that thing! It’s probably my most clicked bookmark in the past few days. However, I noticed quickly that this bookmarklet does not come without any bugs… Only part of the images in a page were ‘heartable‘. And what is even more annoying: when I run into a cool picture in one of my RSS feeds I have to open the URL before I can (try to) submit it using the bookmarklet.

So that workflow kinda didn’t suit me… I figured I could create an OSX dashboard widget that fixes this problem… So I did.

Read the rest of this entry »

Fixing the NetStatusEvent.info.code ugliness in Actionscript 3

Published by Ronny on March 21st, 2010 in Actionscript, Community, download. No comments

Everything in AS3 is pretty straight forward once you get your head around it but the guys at Adobe seem to have become sloppy when they wrote the NetstatusEvent structure.
Ever since I got started with Red5, remote shared objects and all kind of different remote animals about 3 years ago, I ran into this ugly ‘NetstatusEvent.info.code‘ thing which is basically just a string. In order to know which one it is you have to use a switch statement to figure this out using real strings (instead of class constants) (which looks like the following).

  1. private function onNetStatus(e:NetStatusEvent):void{
  2.         switch (e.info.code){
  3.                 case"Netconnection.Connect.Success":
  4.                         trace("You connected!");
  5.                 break;
  6.                 case "Netconnection.Connect.Closed":
  7.                         trace("You disconnected!");
  8.                 break;
  9.         }
  10. }

As a very lazy developer, I tend to think that comparing strings like this is just crazy. And ugly! So I made my life just a little better by creating my own class that holds ‘InfoObjects‘ with the ‘code‘, ‘level‘ and ‘meaning‘ properties. That way you can just compare the ‘event.code.info’ to a class constant. No need for copy-pasting codes from the Adobe site, or debugging your code in order to find you made a typo in one of those strings…

I ran the table (listing all of the NetStatus codes) through a simple XML parser and ended up with a very neat Actionscript class (which I’m sharing, so it’s up for grabs! Download link at the end of this blogpost!). Using it looks way more natural!

  1. private function onNetStatus(e:NetStatusEvent):void{
  2.         switch (e.info.code){
  3.                 case NetStatusInfo.NETCONNECTION_CONNECT_SUCCESS.code:
  4.                         trace("You connected!");
  5.  
  6.                         // returns the code property (same as 'toString()')
  7.                         trace(NetStatusInfo.NETCONNECTION_CONNECT_SUCCESS.code);
  8.  
  9.                         // returns the level property
  10.                         trace(NetStatusInfo.NETCONNECTION_CONNECT_SUCCESS.level);
  11.  
  12.                          // returns the meaning of this status change
  13.                         trace(NetStatusInfo.NETCONNECTION_CONNECT_SUCCESS.meaning);
  14.                 break;
  15.                 case NetStatusInfo.NETCONNECTION_CONNECT_CLOSED.code:
  16.                         trace("You disconnected!");
  17.                 break;
  18.         }
  19. }

However….

Why isn’t this just event based? Right now the Netconnection dispatches a NetStatusEvent.NET_STATUS. Most people find this very acceptable. I, myself, tend to think it’s funny. The classname (NetStatusEvent) is pretty darn clear about the fact that the event triggered is related to the netstatus… Duh?!
Anyway: after having listened to that event and having caught it, we now need to evaluate the event.info.code property (which will return a string like ‘NetConnection.Connect.Success‘)… Why is that??
Why not just dispatch NetStatusEvent.NETCONNECTION_CONNECT_SUCCESS? Wouldn’t this be more consistent with the rest of Actionscript?

It would only make life better:

  1. No more copy-pasting of ‘codes‘. They’re just constants in the NetStatusEvent class.
  2. No chance of runtime bugs because of typo’s made in the string itself. The use of constants makes sure the compiler knows when you’re doing something horrible, and allows him to throw that error right in your face!
  3. Auto-completion! Because life should be made easier by computers; not harder!

I think that an implementation like mentioned above would be pretty cool (and perhaps more logical). At least to me…

Download

Feel free to use, modify, marry this class (and pass it on onto your children) if needed. If I overlooked anything or there’s a better way of doing this, feel free to ping me and I shall correct myself asap!

Enjoy!

Download: Click

Updated version of Playr

Published by Ronny on January 29th, 2010 in Open-source, download. 3 comments

It took a while… A long while… Like… A year.
But I finally updated Playr and made actual plans for V3. Thanks again for all of your great support and feedback during the past year! It really means a lot to me!

It was really great to see how Playr popped up on different blogs; Sometimes mentioned as part of a project/experiment, sometimes mentioned in lists of handy AS3 classes. That really made me happy and it inspired me to add even more features, and make it even more useful. But those are to yet to be built ;-)

For now I just fixed a few bugs and I added a pretty important feature which wasn’t there yet: the debug property. Set debug to true and Playr will trace any errors that occur without breaking your app, without you having to listen to these errorEvents.

I also changed the shuffle internals (I still wonder what I was thinking when I wrote a ’setShuffle’ instead of simple getters/setters…) and as far as I know: Nothing seems broken after updating old projects using Playr to the new Playr version (but I’ve been wrong before…).

And the last thing I want to mention: I changed the way Playr handles stream errors. The old version would just skip the track, and try again later. However I think the new implementation is better: The ‘broken’ track just gets removed from the playlist before proceeding to the next track.

So there you go: It’s online, it’s free, it’s open-source, it’s for you to use and save time!
(And it’s created by me, so you’ll probably find bugs sooner or later: Do tell me about them and I’ll look into fixing them ;-) )

Happy playing!

Playr Site: Playr.noCreativity.com
Download Playr: Click
Playr Documentation: Playr.noCreativity.com/docs

Snow Leopard broke your Grabup? Create your own!

Published by Ronny on September 22nd, 2009 in General, download. 2 comments

bannerAbout a year ago I bought GrabUp, a small application that sits in your menu bar, waiting for you to take a screenshot. Once you do so, it immediately takes the file and uploads it to my FTP server. When it’s done it copies the url to the screenshot to my clipboard. The simplicity might not impress but the workflow amazes the more.

However…
Ever since I got myself Snow Leopard GrabUp died on me: Whenever I take a screenshot GrabUp won’t upload it to the server anymore… And I’m not alone. Lot’s of users are experiencing this issue.
The people at GrabUp HQ probably don’t give a damn about their customers because they don’t seem to be working on an updated version.

So…
automatorI’ve been looking for a replacement but nothing really compares to the power and yet the simplicity of GrabUp.
So what does a good developer do? Create his own workflow in Automator… I won’t go into the details of this. If you love GrabUp but Snow Leopard broke yours, this is a simple walkthrough to get a (free) GrabUp-like workflow running on your own FTP server ;) Read the rest of this entry »