Tag Archives: Open Source

JQPLOT – A Versatile and Expandable jQuery Plotting Plugin

jqPlot is a plotting and charting plugin for the jQuery Javascript framework.

Image

jqPlot produces beautiful line, bar and pie charts with many features:

  • Numerous chart style options.
  • Date axes with customizable formatting.
  • Up to 9 Y axes.
  • Rotated axis text.
  • Automatic trend line computation.
  • Tooltips and data point highlighting.
  • Sensible defaults for ease of use.

jqPlot is an open source project by Chris Leonello

Check it out…
http://www.jqplot.com/

Tagged , , , , ,

FLOT – Attractive JavaScript plotting for jQuery

Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.

FlotCharts Homepage

Who’s behind this?

Flot is the combined result of countless suggestions, patches and bug reports by the people using Flot.
It was started by Ole Laursen, sponsored by IOLA, an agile little Danish web-development house with a keen eye for Python/Django and jQuery. If you need commercial support, you’re welcome to contact us – read more here.
It is currently being maintained by David Schnur.

Check it out…
http://www.flotcharts.org/

Tagged , , , , ,

Base64 Encoding/Decoding in JavaScript… wrapped in jQuery

Integrating a Google Gadget with Solve360′s API, I needed to have a way to Base64 encode some strings before appending them as headers to my server calls… instead of rolling my own, I went to look for my old friend: Nick Galbreath’s base64 string encoder

In the search results I stumbled upon a 2 year old jQuery’fication of it by Carlo Zottmann

Check it out…
https://github.com/carlo/jquery-base64 

Tagged , ,

StateMachines in JavaScript… on the path to programmable workflows

In the need for a Sequential Workflow for JavaScript applications, I was lucky to find a great StateMachine implementation of a Finite StateMachine…

Unfortunately, I wasn’t really looking for a Finite StateMachine, but more of a Sequential Workflow that I can use to drive an application consisting of a distinct set of actions in a predictable order… Anyways…

Jakes Gordon has gone the effort of implementing a swift and cleverly designed finite statemachine and made it available on GitHub… its entirely standalone and has no dependencies on other frameworks or libraries.

If you are familiar with using finite statemachines, it will come easy to use the library, otherwise Jakes has formulated a well articulated and easily-understandable ReadMe…

https://github.com/jakesgordon/javascript-state-machine/#readme

Jakes has documented the library well, and is providing a great example on how to use it in a graphical way…
Image
http://codeincomplete.com/posts/2011/8/19/javascript_state_machine_v2/example/

Anyways, check out the library if you are in need of a finite statemachine for your JavaScript applications…

https://github.com/jakesgordon/javascript-state-machine/

Tagged ,

Adobe’s view of Flex and its commitments to Flex in the future

Its no secret that Adobe has been going through a turbulent patch the recent months while they have been implementing their new adaptive strategy to an unruly future.

Its included layoffs and new hirings, internal repositioning and new layouts of their many divisions within services and products and they have taken a deep look at the business in terms products and offerings in the process of optimizing their market profile…

Its been painful, not only to see beloved team members leave Adobe but also to see that this major company refurbishing has not really been successfully communicated to both community, but also to users of the software and companies using services based on Adobe partners… even investors has been confused by the lack of diligence in the communication, however, its increasingly behind us as the new changes are settling in and the changes to the teams is stabilizing…

One of the massively controversial changes was the dealing with the future vision for Flex and the Flash Platform… I will not go into details with what has transpired over the past months, its well documented on every blog and site relevant to the community and product ecosystem and its not with a great pleasure I’m looking back on the past months… so let’s leave it behind and instead focus on the most recent statement from Adobe on their vision for Flex…

Now, there is not a lot new statements under the sun, however in contrast to the scrambling messages and divergent directions we have been seeing until now, its nice to see that Adobe has taken a deep breath and made a firm statement which would be difficult to misinterpret either positively or negatively…

If you are in a hurry and not interested in reading the entire writeup, I’m sharing with you the conclusion in a nutshell which confirms some of the more positive statements we have seen over the past months…

Adobe believes that Flex is the best solution for enterprise and data-centric application development today and is moving Flex into a community-driven open source project to ensure the continued development and success of Flex for years to come. We are currently in the process of contributing the core Flex SDK, automation libraries, AIR SDK binaries, and documentation to the Apache Flex Project. We will also be contributing Falcon, Falcon JS, Mustella, and BlazeDS.

In addition to these contributions, Adobe is providing a team of full-time Flex SDK engineers who will contribute to and support the Apache Flex Project. These Adobe engineers will work directly with the highly skilled Flex developer community to maintain, support, and evolve the Flex SDK. We remain committed to enabling the success of all existing and new Flex projects.

Thank you Adobe, for setting the record straight and for sharing with us your intentions and vision for Flex… its a privilege to be on the team…

Tagged

A Saturday Night Status in the World of Flex

Upon a week of drama across the world of Flex, the past week proved to be business as usual… and thank heavens for that.

In case you have missed it, the Flex team at Adobe has amended their original statement regarding the future of Flex in the context of Adobe.

We are preparing two proposals for incubating Flex SDK and BlazeDS at the Apache Software Foundation.
In addition to contributing the core Flex SDK (including automation and advanced data visualization components), Adobe also plans to donate the following:

  • Complete, but yet-to-be-released, Spark components, including ViewStack, Accordion, DateField, DateChooser and an enhanced DataGrid.
  • BlazeDS, the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Flex applications.
  • Falcon, the next-generation MXML and ActionScript compiler that is currently under development (this will be contributed when complete in 2012)
  • Falcon JS, an experimental cross-compiler from MXML and ActionScript to HTML and JavaScript.
  • Flex testing tools, as used previously by Adobe, so as to ensure successful continued development of Flex with high quality

Adobe will also have a team of Flex SDK engineers contributing to those new Apache projects as their full-time responsibility. Adobe has in-development work already started, including additional Spark-based components.

You can read the entire post here:
http://blogs.adobe.com/flex/

Eventually, its a much more positive and inspirational variant of the post after the update compared to the original one, so thanks to Andrew and Deepa for taking the time to make the effort to apply the amendment.

In retrospect, I found the entire experience of having the bag shaken in which we have placed our faith to be motivational and a reminder to update my skillset. This last point is something we can all take away from this experience.

Upon talking with dozens of Flex developers over the past weeks, it became clear that some of us had forgotten to stay updated and expand our toolset, and regardless of what happens to Flex, this is an important reminder. A professional is only as good as his tools allow him to be and the quality of the output depends on both the skill of the professional as well as their ability to choose the right tool for the job.

We should use Flex when it makes sense and remember to stay tuned to what is going on in other areas or our industry for the moment when Flex may not be the optimal tool for the job.

Another reminder I have taken away from this experience is my old commitment to continuously contribute to at least one Open Source project at any given time… obviously I will be contributing to Flex once it hits the repositories… why don’t you join me ?

Tagged , ,

OpenSource AVM… Tamarind

Project Tamarind, once so promising and bespoken project… was co-owned by Adobe Systems and Mozilla Foundation, and has been discontinued for more than 3 years now…

However, the sad state of this cool OpenSource project is that it hasn’t been touched since March 2008…


The members from Adobe are mostly names I have never heard of so I sincerely wonder what have become of them (perhaps they are still engineering in the dungeons of San Jose), anyways check the names out for yourself…

If anyone knows the obituary belonging to Project Tamarind, please do share… it seems to have been a massive Adobe effort that apparently ended up in a fruitless archive of The Mozilla Foundation.

Anyways, you can check out the archived project home page here…
http://www-archive.mozilla.org/projects/tamarin/

Tagged , ,

OpenSource AVM… Re-Introducing GNASH

In the middle of 2008 I first time wrote about what I then thought was a cool but remotely stupefying OpenSource project… Gnash !

Gnash is the GNU SWF movie player, which can be run standalone on the desktop or an embedded device, as well as as a plugin for several browsers.

Gnash is capable of reading up to SWF v9 files and opcodes, but primarily supports SWF v7, with better SWF v8 and v9 support under heavy development. Since the 0.8.2 release, Gnash includes initial parser support for SWF v8 and v9. Not all ActionScript 2 classes are implemented yet, but all of the most heavily used ones are. Many ActionScript 2 classes are partially implemented; there is support for all of the commonly used methods of each class.

Gnash has implemented about 80% of ActionScript v2.0, and has begun implementing ActionScript v3.0. Gnash supports the majority of Flash opcodes up to SWF v9, and a wide sampling of ActionScript classes for SWF v8.

Obviously Gnash is also very far from providing a serious alternative as AVM machine tor widespread use, its basic use case now would be embedded on a chip, however the advent of readily available Android kind of defeats this purpose now, doesn’t it ?

Anyways, check out the main developers website…
http://www.gnashdev.org/

Tagged ,

Save Image As… now as a separate tag

James Ward created a clever way of adding a “Save Image As…” feature to an image in Flex.


SaveImageAs

However clever, in my case I really wanted to avoid having to subclass the Image class specifically, so I created an MXML tag which would take the Image instance as an argument instead.

The source code looks like this…

package org.hello.saveimageas
{
	import flash.events.ContextMenuEvent;
	import flash.net.FileReference;
	import flash.ui.ContextMenu;
	import flash.ui.ContextMenuItem;
	import flash.utils.ByteArray;

	import mx.controls.Image;
	import mx.core.IMXMLObject;

	public class SaveImageAs implements IMXMLObject
	{
		private var _target:Image;
		private var _label:String = "Save Image As...";

		public function SaveImageAs()
		{
			super();
		}

		public function initialized(document:Object, id:String):void
		{
			// empty for now
		}

		protected function saveImageAs( event:ContextMenuEvent ) : void
		{
			var tba:ByteArray = new ByteArray();
			this.target.content.loaderInfo.bytes.readBytes(tba, 0, ( this.target.content.loaderInfo.bytes.length - 17 ) );
			tba.position = 49;

			var ba:ByteArray = new ByteArray();
			while (tba.bytesAvailable)
			{
				ba.writeByte(tba.readUnsignedByte());
			}

			var fr:FileReference = new FileReference();
			fr.save( ba, this.target.source.toString() );
		}

		[Bindable]
		public function get target() : Image
		{
			return this._target;
		}

		public function set target( value:Image ) : void
		{
			this._target = value;

			if( this.target != null )
			{
				var targetContextMenu:ContextMenu = this.target.contextMenu != null ? this.target.contextMenu : new ContextMenu();
				targetContextMenu.hideBuiltInItems();

				var item:ContextMenuItem = new ContextMenuItem( this.label );
				targetContextMenu.customItems.push(item);

				item.addEventListener( ContextMenuEvent.MENU_ITEM_SELECT, saveImageAs );

				this.target.contextMenu = targetContextMenu;
			}
		}

		[Bindable]
		public function get label() : String
		{
			return this._label;
		}

		public function set label( value:String ) : void
		{
			this._label = value;
		}
	}
}

A basic usage of it could look something like this…

 
<s>

	

	
		
	

</s>

Be sure to check out the original implementation by James Ward… it might suite your needs better…
http://www.jamesward.com/blog/2009/07/09/flex-example-right-click-save-image-as/

Thomas Burleson has already cornered this approach – as “Flex Behavior Injection”… check it out…
http://www.gridlinked.info/flex-behavior-injection/

The above modification to James Wards’ original contribution has been added to the “unsponsored” framework from where you can obtain it via SVN…
http://code.google.com/p/unsponsored/

Tagged , ,

Google Wave… likely now not waporware, and now with an AS API

Google Wave will now suddenly not become waporware… I never thought it would, however lots or credible people have spoken about the chance that Google Wave would either never see the day of light or if then, only for a short time.

Google Wave Logo

If you want to get started with utilizing the Google Wave API’s and like I am currently, mostly building systems based on ActionScript and Flex, you don’t need to start implementing your own delegate API Google’s API, a couple of guys from the Google Developer Community has created a simple ActionScript implementation already.

Check it out…
http://code.google.com/p/wave-as-client/

A couple of notes…
* it uses ExternalInterface to call the actual JavaScript implementation (so no new communication logic)
* its released on the Apache License
* its very recent and active (last commit at the time of this post was 28 hrs ago)

Tagged , ,
Follow

Get every new post delivered to your Inbox.

Join 522 other followers