Bye-bye 2009, welcome 2010.

December 31, 2009 by saumya

This was an eventful year for me. From technology to personal to everyday living,everything seemed to have something to say in this year. I would mark this year as a year after a very long time in my life, when there were changes happened which will be there for a long time in my life.  Looking forward to the next year with excitement and commitment to self while preserving all the great stuffs I did in this year.

was :

Technically

- started great with RED5 and JAVA
- got into HAXE,HippoHX(http://hippohx.com/),SWHX
- written a framework for communicating to Flash Remoting on Red5
- hands-on Java for live project in RED5
- written a framework for flash games
- help making a good team of AS3 developers
- hands-on UML on live project
- got into SWFtools(http://www.swftools.org/)
- hands on touch board applications on SMART(http://smarttech.com/) and Promethean(http://www.prometheanplanet.com/)
- hands on iphone development
- started with HTML5/CSS3 and Javascsript
- learned some design patterns and frameworks in general and specific to different languages
- hosted 2 projects on google code(http://code.google.com/p/swf-ac/, http://code.google.com/p/sqlite-helper/)
- got into Ubuntu at home for everyday things
- use Mac for the first time

Personally

- updated communication skills
- minimising assumptions about People
- begun motivating others intentionally
- went home after 2 long years(this one is huge on personal front)
- started trrecking again almost after 12 years
- started visiting places
- started praying consciously
- started focusing on things
- almost stopped watching TV
- got some friends near my current location,so spent some time with them

Initiatives

- started a local devmeet and design meet
- organised a design workshop in my locality
- put a socialnetwork online for the shy like me(www.saumya.ning.com)[ everyone is welcome :) ]

Neglected

- sleep
- exercise
- breakfast

will :

- finishing things ( when I start an objective,must finish it )
- start with breakfast (sleep and exercise, I am not committing but will try)
- try to contribute more to the opensource community

Thank you all for reading this blog,as it always gives me motivation to write more because of you good people. With that I wish a very happy,prosporous and eventful new year 2010 to all my readers and all the people around the world.

cheers

Flex basics (and Flash)

December 12, 2009 by saumya

Well, for a lot many people out there, this may be a very basic thing,but its very bad to see people still live in a dark area on the Flash platform. Fortunately(or unfortunately) I was been to a knowledge(regarding Flex and Flash platform) sharing program of a big organisation. To my surprise, the presenters were quite experienced (if we count number of years of their presence in Flash development and the things they have worked on before). But when the talk began I am surprised again that these guys are talking their own assumptions to a very fresh and dynamic crowd(who are following Flash from the early days and really know the inside of flash timeline,AS1,AS2 and AS3).

For people out there who really are following Flash because of its richness in graphics and animation and the easiness of adding interactivity to it, never get a chance to become a Flex developer for they are confused, what Flex is,and whom they think as their mentors are confused by themselves with their own assumptions. These guys(mentors) do not even read internet,never get down to write some code for their own doubts!! So the point is how companies can promote these guys to talk their minds out to such a vibrant resource(who can create wonders if allowed to learn the right thing) and make the work environment from vibrant flash community of developers to a confused-self assumed individuals ?!!

Well without further diving into my experience I am penning down the basics of Flex, what it is and what can I do with my Flash skills? But before that lets see the basics of SWF,FlashPlayer and Flash platform.

1. SWF stands for Shockwave Flash (not Small Web Format)
2. Flash is a Platform (Flex is not. Its a Framework.)
3. Flash does not mean Flash IDE (“Flash IDE” is just another tool to create SWF, so as “FlashBuilder”)
4. SWF struture is one (FlashPlayer never goes on reading the SWF to detect whether its made with FlashIDE or FlashBuilderIDE)
5. What Flex can do is a subset of what the Flash Player can do,not a superset.(ref : Mrinal Wadhwa)
6. Flashplayer internals are not closed,anyone and everyone on Flash world should know it

With all these, what can I do with my flash/actionscript skills? The question is still there for me. Ok,ask yourself what do you do with your skills now? Are you making games,interactive portfolios and engaging product demos? Do you work on each project from ground-up? Are you using some flash libraries out of many available today?I mean for loading assets,adding effects or making animations, do you do all these with Actionscript’s default classes or use some other libraries or you have already made some actionscript classes for all these repeatative kind of work. The last question, have you made atleast one class file which you generally copy-paste in some of your other projects so as to use the functionality you have already made long time back. If yes, this is the starting point of a code library or framework. While the definition of a framework may be much more technical but the beginning of it is code-re-use. So you have a class which can be used in a lot of other projects though not all. Thats good, now write another class which can be as portable as your first class. Now try and use it in another proejct. If you are successful,then think of some classes which can give you power to get rid of the regular tasks of doing the same thing over and again. Roughly put it can be called your own framework which you can use to write your own applications or if you share with someone else, those fellows can use your framework to get-rid-of the regular pain you were facing.

Now if you think,so whats the point? The point is FLEX is a framework! Am I kidding!! No,Flex is a framework and thats the bottom line. Its simply a collection of actionscript classes. So why its making so much of noise?! Because the framework you wrote a while ago might just help a very specific purpose,while FLEX framework helps all kind of data driven applications. Flex framework provides another way of writing your actionscript code too. Well,do not worry,if you think I need to learn another language?! NO,its the same actionscript but written in a declarative language as XML. Adobe(formerly Macromedia) named it MXML. Instead of actionscript in “.as” files you will be writing actionscripts in “.xml”. That simple!! Yeah,but then as in XML,you can define your own tags,in MXML you have to obey some specific tags(like in XHTML,you have to right <HEAD> and <BODY> etc). Wait a min,you just said Flex is a framework,why I will need that MXML to use this framework,can not my actiosncript knowledge do the thing. Ohh yes,of course, you can write only actionscript code to use Flex framework after all this is just another framework. So why are you confusing me with MXML? Because,writing in MXML lessens your line of code. OHH!! :) :) That makes you smile again. Good,lets see what else can we do with Flex framework. Except from the classes which makes your data transactions easy, Flex framework comes with a Layout Manager,Pop-up Mamanger and a lot of components. Now you are thinking,why I have to use components!! I have always neglected them in my FlashIDE. The answer would be, if you would have used components in FlashIDE,you would have come to FlexFramework much easily. I mean Flex framework give you components too. If you want to create a “Button” you can create with “new Button()”. Ohh! That I always used for new symbols from library but never used for components as I always try to neglect them or avoid them. No problem,start using them and you can see they are your friends not enemies. Even FlashCS4 component skinning is straight forward as to design a movieclip. And a last point as Flex comes with a compiler to compile your actionscript code. So you do not need a FlashIDE to produce SWFs. You mean to say from commandline if I write some instructions,that will create a SWF file out of my actionscript code(or MXMl file)? Yes. Then how to customise those Flex-framework components,I always hate those default colored compoenets even in FLashIDE? For these tasks also Flex-framework gives you a lot of classes,by using them you can color,style and animate your components. There is a way even to make your components in Flash and using them in Flex framework. But all those will be a different topic as a whole.

That means, Flash can do what Flex can do.Yes, because Flex is a framework. As your framework was intended for a certain reason,Flex framework too is intended for certain reason. It can effectively used for a data-driven application. But then you can do the same with Flash with a lot and lot of extra code. The same question comes why flash,Flex framework can do my application.Yes,but when you need pixel level perfection in your content Flash can give your artist all the tools to create beautiful and engaging graphics and animation.

If someone says I am a Flex developer and do not know what flash is? Ask him/her, are you talking about the framework? Well,I never come across that kind of projects to use that particular framework but I am quite comfortable at Flash and used a lot many other frameworks for my work,when the requirement will come I will read that framework too. There is nothing wrong in sticking to Flash-actionscript only, if your job requires this. There are a lot of frameworks on actionscript only which do their jobs best and can be helpful to you as a Flash-actionscript developer. But then its always better to know what the other framework is and how it works,so once you get time dive down the Flex-framework and see if it helps your job. There is nothing wrong in studying this,but this is obviously wrong to think someone superior because he/she knows one particular framework and does not know the basics.

Happy Flashing :)

Flash Platform

December 10, 2009 by saumya

Yesterday I was talking about Flash Platform. I am sharing the slide here. Hope that clears why Flash is called a platform. Actually this helped me understand too why flash is called a platform.

Download the slides here.

happy flashing

Whats in 127?

December 6, 2009 by saumya

While in AS3 the new alpha values are from “0.0″ to “1.0″, there is really something happening under the hood,if one increases it beyond 1. Tried to trace out alpha while increasing it by one on each frame. To my surprise it goes on increasing,well the real surprise came out when the value suddenly goes back to negative. So it goes like this,from 0 to 127 and then from -128 to 0 and goes on like that. Thought it would be helpful to someone who might be trying to play with alpha and think his/her code not working correct.

Testing code

this.addEventListener(Event.ENTER_FRAME,checkOnEachFrame);
private function checkOnEachFrame(e:Event):void
{
this.s.alpha += 1;
trace(this,’alpha is ‘+this.s.alpha);
}

Read the rest of this entry »

Processing,the web!!

November 15, 2009 by saumya

This came to me as a surprise as I ignored this when I first saw it as a java platform thing. Recently, while going through some of the new Flash frameworks for fireworks :) and magic, it hit me again. And this time I made sure to check it out. To my surprise its a beast wrapped up in a beautiful wrapper. Having all the potentials of JAVA, Processing is a new kind of language(or may be Sripting language). Internally it compiles back to Java and can be used along with any front-end Java application. The real magic is its speed, and the fireworks it does. A very simple API and out of the box compilation support. It provides a lot of things out of the box,which is best for any newbe to Java platform. It comes with its own IDE,though one can choose to use Eclipse if she/he wants to. Compilation is instant and right upfront. When talking about packaging,it does nice job of compiling to all the platforms,Windows,Linux and Mac from Windows itself. The size of the compiled files(java applets) are as small as SWFs.

For a Flash developer this is a real option to try out Java this way. For the scripting Processing provides will make the Flash developer feel right at home. A lot of similarities All most everything is similar except for the APIs,which will make one think as if one is working in a Flash-platform framework. One gets animations, mouse actions and stage like behaviors from the application too :)

I would say, a must try for all the Flash and JAVA guys out there.

Happy flashing

Flashing Again

November 5, 2009 by saumya

As the flashplayer is moving into 10.1 number,I think Flash player 10 itself has a lot to give me as a developer.

What I found recently is there are some amazing magic methods and tools in AS3,FlashPlayer10 and in flashCS4 IDE.
I have attached a FLA having the source code on the first frame to keep things simple :)

1. The inverse Kinematics (IK) :
This is Flash IDE and I am amazed with the Bones tool and the IK of it.The thing is one can use the IK at

authortime and if required one can make all the IK interactions runtime with just a user selection. Once all the

bones are drawn,select the “Armature” layer which “Bones” tool creates by default.Now you can see an option in the

properties pannel to make the IK “runtime” or “authortime” and VOILA!!Thats short,sweet and simple.Yay.

Next we will jump into some actionscript.

2. EXIT_FRAME

We all flash developers are born with “enterframe” events with us. Anything,anytime not working,simply write an

enterframe event-handler and throw some debugging code there. Well,for developers from Macromedia Director or

Lingo scripting world coming to Flash almost always miss their weapon,” to know when” the framehead leaves the

current frame. The good news is now we have an event named “EXIT_FRAME” and this works the same way as

“ENTER_FRAME”.So there we go,if we want to controll the frame exactly the way we want,there are two events we can

check for and do the desired stuff in-between.
The attached FLA has got the “trace” statements for the enterframe and exitframe events just to make the test.

3. addFrameScript()

Next is the un-documented method of a movieclip.I think this one we all flash developers were looking for a

long time. What it does is, add a script to a frame in the movieclip and rightly called “addFrameScript()”. The

example FLA has got the authortime IK animation controlled,by pushing in actionscript into the frame of the

movieclip. The code looks like
this.barClip.addFrameScript(10,myFunc);

4. describeType

I am quite excited to share these. For me these are real new and useful stuff,which make me think again as to how

to write my next flash application. Now the time for debugging,if I am right the first thing one do in a flash

trace statement is
trace(this);
Wow,that gives me the current object on my output panel.What else,if I want to know any property of the object I

will go ahead and do the same trace with the properties in the trace.
trace(this.myProperty);
I really got excited,when I got to know about a nifty function on “flash.utils” package.The name of the function

is “describeType”.What it does is returns an XML object of the parameter object we pass in to the function.Thats

huge. I mean it gives all the deatils of that object,I mean all the details.

Now I am putting down here, the whole code there in the FLA just in case you want the code only.

import flash.events.*;
this.addEventListener(Event.ENTER_FRAME,onEntry,false,0,true);
this.addEventListener(Event.EXIT_FRAME,onExit,false,0,true);
//import flash.utils.describeType
trace(this.barClip);
this.barClip.addFrameScript(10,myFunc);
function myFunc():void
{
this.barClip.stop();
}
//
function onEntry(e:Event):void
{
trace(‘: Entry on frame : ‘,this.currentFrame);
}
function onExit(e:Event):void
{
trace(‘: Exit from frame : ‘,this.currentFrame);
if(this.currentFrame==100)
{
this.stop();
this.removeEventListener(Event.ENTER_FRAME,onEntry,false);
this.removeEventListener(Event.EXIT_FRAME,onExit,false);
trace(describeType(e));
this.barClip.addFrameScript(10,null);
this.barClip.play();
}
}

With that I am hoping these tips may open your door to new innovations in the way we script and do stuffs in

Flash.
Happy Flashing. :)

Why so silence?!

October 28, 2009 by saumya

Its a long time. I am silent here!! Am I dead?! I hope no, but if it will be for any longer, I am sure will be dead. Why the silence? Probably its the twitter, which made me lazy. But I can not blame something/someone for my mistake. I admit, I am the culprit here. And will advice everyone who are shifting from blogging to twitting, that twitter is good but so as blogging. So keep the good habits and never leave the blogging community. Finally I am returning here and will try and put up posts regularly. Whether it is technical or not I am not sure now(though,I will try my best to keep it as technical as possible), but the thing is I want to get back to my regular habit of posting something up here.

Thank you all for visiting me and will try to keep up to the expectations :)

Flash Player 10.1 is announced

October 6, 2009 by saumya

Adobe has announced Flash player 10.1 and with it comes a whole new era of Flash applications.It might seem that this is just a point release,but do not get fooled away by the point.For me it seems like a whole new Flash world. There are so many great things coming, the details can be found here (http://labs.adobe.com/technologies/flashplayer10/)
From developer’s perspective Global error handling is a one point solutions for all the try-catch blocks. Wow, I am so excited. Then comes multitouch,accelerometer,orientation detection for mobile devices just to name a few. FP10.1 will support HTTP streaming,another great addition to flash player.This is huge again.Now with Flash player 10.1 we will get direct access to microphone. Wow,simply awesome. Flashplayer will take advantage of Hardware acceleration whenever possible,even for Vector graphics and images(http://www.adobe.com/devnet/logged_in/jchurch_flashplayer10.1.html).
Well and the most tremendous part is Full flash player is now available for mobo devices.(http://www.adobe.com/aboutadobe/pressroom/pressreleases/200910/100509AFPforMobileDevicesandPCs.html)

Last,but not the list is Flash can now make applications for iphone,yeah from Flash CS5 one can directly produce native ObjecticeC code to deploy into iPhone(Obviously one need to go to Apple AppStore for the so called approval,huh!).
http://www.youtube.com/watch?v=M3CI5GyNXoA

Overall for me as a Flash developer this seems to be a new era coming to Flash platform.I can feel the freedom and fun. Long-live Adobe and long-live the Flash/SWF team at Adobe.

References :

http://www.adobe.com/devnet/logged_in/jchurch_flashplayer10.1.html

http://tv.adobe.com/watch/max-2009-develop/building-mobile-applications-with-adobe-air

http://www.adobe.com/aboutadobe/pressroom/pressreleases/200910/100509AFPforMobileDevicesandPCs.html

http://www.youtube.com/watch?v=M3CI5GyNXoA

Happy Flashing

Introduction to SQLite on AIR

August 30, 2009 by saumya

SQLite is a relational database right inside Adobe AIR environment. While its a full fledged relational database system,the real power of  it comes from the ease of use. There is no server to configure,no server to start. Once Adobe Integrated Runtime (AIR) is installed in your system, you are ready to take  advantage of SQLite database. Actually SQLite comes with the AIR itself. So there is absolute zero configuration as it is clearly noted in the SQLite official site.

Now,all that one need to know is the Flash (Actionscript 3.0) APIs to start talking with the Database.

To begin with any database applications,one need to have a database in a database server,start the server,connect to it and then start putting in data or getting the data. Now in this case of SQLite, we already have the initial set up ready for us. I mean as a SQLite developer on Flash platform one need not worry about the server setup and starting the Database server. All one need to concentrate is, connecting to the Database and puting some data in or getting some data out from the database. For once AIR is installed SQLite is up and running,how cool :) ! Now the best part is,all the standard SQL query runs in the SQLite Database too. To get started, one need to create a database or connect to it,if already created. Now SQLite API gives us one syntax to do the both,I mean if the database is already present it just connects to it else it creates the Database for us and then connects to it. The syntax is as below

var conn = new SQLConnection();//Connect to the DB server
//adds event listeners to listen for the events
var conn.addEventListener(SQLEvent.OPEN, onOpenConnection);
var conn.addEventListener(SQLErrorEvent.ERROR, onConnectionError);
//connects or creates and connects to the database
var dbFile:File = File.applicationDirectory.resolvePath(“myDb.db”);
conn.openAsync(dbFile);//actually connecting to the Database

Thats all to create and connect to the database. By convention the database files are named with extention “db”,In this example we are creating a Database file named “myDb.db”. The Database is actually stored as a file,as we created now. To make any query to the Database the syntax will go as below

var sqlStatement:SQLStatement = new SQLStatement();
sqlStatement.sqlConnection = conn;//”conn” is the connectino we just made with the above code
var query:String = “SELECT * FROM friends”;//This is actual SQL query we are going to run in the Database
sqlStatement.text = query;
//adds event listeners to see if our query ran properly
sqlStatement.addEventListener(SQLEvent.RESULT, onQueryResult);
sqlStatement.addEventListener(SQLErrorEvent.ERROR, onQueryError);
sqlStatement.execute();
//finally calls to run the query in the Database

Thats all to it. :)

Now to make things easier for my project,I have created a helper class for regular tasks as querying the Database and getting the result. Please find the file at google code repository here. Hope that helps you on your day to day task of SQLite development under AIR and Flash platform.

happy flashing

10 development environments for iPhone

August 3, 2009 by saumya

On my previous few days of diving  into iPhone development, found some promising environments for the iphone development.

1.  unity ( http://unity3d.com/unity/features/iphone-publishing )
This is an IDE,for 3d Graphical Object authoring which has compelling capabilities regarding the content creation.
Pros : With in-built events handlers(behaviours) and native iphone support looks very promising as far as the content creation and delivery are concerned. Full light,shadow and materials in a 3d environment is just a full fledged game development environment. The IDE can be used in both Windows and MAC.
Cons : A very high price tag.

2.  torque2d ( http://www.garagegames.com/products/torque-2d/iphone )
This is an IDE for 2D Graphical Object authoring. WYSIWYG 2D editor at iPhone screen resolution. Has got a 3d IDE (http://www.garagegames.com/products/tge/iphone) for iphone.
Pros  : Makes a complete game development environment as the Objects are visual and a custom scripting environment for the obejcts, same kind as Unity but 2D environment. Option to divide the 2D and 3D games as per requirement.
This IDE can be used in both Windows and Mac.
Cons : Still a high price tag and not a clear Licensing model.

3.  ston3d ( http://www.stonetrip.com/shiva/publish-3d-game-on-iphone.html )
This is an IDE(http://www.stonetrip.com/) for 3D authoring as Unity and Torque.
Pros  : Makes a complete game development environment as the Objects are visual and a custom scripting environment for the obejcts, same kind as Unity and Torque.
Runs on both Windows and Mac.
Cons : Still a high price tag (http://www.stonetrip.com/platform/view-all-products.html)
the iphone exporter only works in Mac.

The IDEs are too good for a complete game development environment,where the developers and designers work in the same IDE.Graphics can be done and kept as library items and then developers can take those to add the desired behaviour. This will be much like developing the Flash IDE with actionscript. But then all of the people invloved in the development must have teh clear knowledge of the environment and the developers must learn the new languages specific to the IDEs.

4. nui ( http://libnui.net/pages/about.php )
A C++ framework designed to build multiplatform applications on top 3D rendered dynamic layouts.

Pros : platforms supported are iPhone, MacOSX, Win32, Linux
Cons : High price tag, only coding and no graphics IDE will increase the complexity of development.

5. HAXE (http://ncannasse.fr/blog/haxe_for_iphone)
A language to create projects in multiple platforms.
Pros : An actionscript like language,with which flash developers can get upto speed very fast. Publish the application in different environment(Haxe publishes to SWF,Javascript,PHP and C++ now)
Complete Opensource development.
Cons : The present support for iPhone is a JailBreak one.

6. PyObjC (http://pyobjc.sourceforge.net/)
A python language derivative to create ObjecticveC applications
Pros : Can use Python knowledge to develop. Opensource development.
Cons : Does not make any sense for a flash developer,anyway has to study a new language. At (http://www.saurik.com/id/5) it says one still need to know ObjectiveC.

7. alcheMo-for-iPhone (http://innaworks.com/alcheMo-for-iPhone.html)
pros : Use java to develop iphone applications. Seems its the only one which does not require Jailbreak or any other tweeks to develop for iPhone in Java.
cons :  Neither Download norLicensing are clear.

8. QuickConnect (http://quickconnect.sourceforge.net/browser/index.html)
A javascript framework to develop iphone apps.
pros : will be easy and fast develoopement as it is in javascript. Multiple platform deployment.Since it is open source and liberally licenced you can use it to develop for your open source, free projects or closed source, for-cost projects.
cons : still a Release candidate.(http://sourceforge.net/projects/quickconnect/)

9. XMLVM (http://www.xmlvm.org/iphone/)
An XML driven iphone application development.
pros : Simple and fast as its all XML. Opensource.
cons : Needs Jail-break (http://plum.sfsu.edu/xml11-external/java4iphone-google.pdf ,page 28)

10. The Cocotron (http://www.cocotron.org/)
This is an open source project which aims to implement a cross-platform Objective-C API similar to that described by Apple Inc.’s Cocoa documentation.
pros : Cross platform developement,so can be developed on windows.
cons : Need to learn ObjectiveC. Still seems premature.

While all of the programming environments either seem under heavy development or missing tutorials,its a good idea to keep an eye on them as all of them seem promising. Same with the graphical IDEs. Would like to see HAXE coming up as my personal favorite from a flash developers point of view. :)