Archive for October, 2008

Thermo would make a great AIR app.

I’m quite excited about Thermo.  I haven’t seen Thermo yet.  Few people have.  But I’ve watched the videos, and read the reports.  I’m even planning to support the FXG format in e2vector.

But I think Adobe missed a trick not creating it as an AIR application.  I believe it is technically feasible.

What better way for Adobe to boost the credibility of AIR as a serious platform for desktop applications than to release an exciting new mainstream product as an AIR application.

October 30, 2008 at 4:00 pm 2 comments

e2vector AIR drawing app. Now with layers!

I’ve incorporated lots of new features into e2vector since the previous release.  I’d be interested to know what people think.

Please let me know if you find any bugs too.  There have been some major upheavals and changes to the code in this version.  Also, let me know about any new features you’d like to see in the future.

This version (beta 0.1) includes the following features:-

* Shapes.. Polygons, Stars, Cogs, Spirals, arrows, etc.

* Undo and Redo.

* Bezier pen tool.

* Filters.

* Gradient fills.

* Layers and mask layers.

* Blend-modes.

* Path splicing

* Shape intersection and union

* Import and export SVG files.

* Search and import artwork from Creative Common’s online library.

October 21, 2008 at 4:06 pm Leave a comment

“Blasphemy! Burn the Flex-hating heretic!”

I’ve never been a Flex evangelist. I get passionate about AIR, and ActionScript3 – but I tolerate Flex. This is because, despite the evangelist’s view, that Flex is an all-singing, all-dancing, panacea to absolutely everything – I don’t believe that Flex was ever designed to build powerful AIR desktop applications.

I realise that this is a minority view, and likely to alienate me. Most developers love Flex with a religious fervour that’s a little scary.

Over the years, I’ve seen a lot of beautifully crafted applications and games written using Flash. In 2001, I started experimenting with Flash 5 and then Flash MX to build sophisticated applications. I wasn’t the only developer to subvert Flash to this purpose.

Flex doesn’t leverage the tremendous wealth of wonderful applications that have been created using Flash. Hence I think it was a little odd that AIR was paired with Flex, and not Flash, and this resource wasn’t tapped into when AIR was first launched.

When Flex was first released, it wasn’t even appropriate to what developers like myself were doing. It was an expensive server technology, and Flex Builder was Windows PC only – so I didn’t pay much attention.

The first Mac port of Flex Builder was truly awful! (Admittedly, it was a public beta, not proper release). Still, it seemed more apt for PC users. Uninspiring, grey forms to build the kinds of boring things that Microsoft Visual Studio did.

As for scroll-bars, tabs, forms, and interface elements – Flex was too little too late. Developers like myself had already made their own efficient application frameworks and reusable classes – Flex didn’t give us much we didn’t already have.

So while other developers jumped on the Flex bandwagon – and evangelised – I never did.

My biggest problem with Flex evangelism concerns the “Flex+AIR” association. It is assumed that the two are inextricably linked. They’re not. When, AIR first went public and the Flex mob preached that the ONLY way to make AIR applications was to use Flex – THEY WERE LYING!

e2spreadsheet was one of the earliest AIR applications. And it was developed completely without Flex. All my applications avoid being slowed down and bloated by the Flex framework.

Ok, there have been some cool AIR applications developed in Flex. But I think that the developers of these applications are subverting Flex, in the same way that the pioneers subverted Flash, before Flex came along.

Ok, what do I mean by “subversion”?

I mean that neither Flash, nor Flex are really appropriate to what I want to achieve. But the best tool for the job doesn’t exist – so I “subvert” what I have. Flex wasn’t designed specifically to make AIR applications. For a start, Flex just doesn’t include useful libraries we need to build cool desktop applications. Spell-checkers, standard palettes / advanced colour pickers, predefined cool icons, conversions from common desktop file formats…

Not only are Flex and AIR designed for different types of application, the Flex developer mindset is different from the AIR developer mindset. Suppose you need a spell-checker? A Flex guy would say:- “Use an internet service”. An AIR developer would say “What about occasional connectivity?” The Flex developer probably doesn’t even know what this is or why it’s important – this is because the Flex mindset is focussed on the always-connected browser world – not the desktop.

I’m specifically interested in AIR applications as products. Not the service industry of rapidly creating internet/intranet business services. This is another reason why Flex isn’t really appropriate to my world.

Despite the religious devotion amongst its users, Flex was not divinely created. It was made by Macromedia, and it’s EVOLVING! Perhaps Flex 4 or a future version will have evolved to the state that I get as passionate about it as I do other Adobe technologies. But I would rather be discontented than evangelistic. Evangelists preach blind dogma. Whereas discontentment may arise from a vision of what could be.

October 16, 2008 at 4:04 pm 9 comments

A graphical text class.

This is a class that didn’t quite make the cut into something I’m working on – so I’ve put it on my blog.  I’m sure someone else will enjoy it.   It’s a graphical writing class that utilises the graphics api to draw simple letter shapes like this…

For example, to produce the above result, call it with the following parameters…

new Write(this,16,128,’abcdefghijklmnopqrstuvwxyz’,3);

new Write(this,16,150,’abcdefghijklmnopqrstuvwxyz’);

 

Enjoy.

package asfiles {

	import flash.display.Sprite;

	public class Write extends Sprite {

		protected static const alphabet:Array=[

			[[0,4, 0,2, 2,0, 4,2, 4,4],[0,2, 4,2]],
			[[0,0, 3,0, 4,1, 4,2, 0,2, 3,2, 4,3, 4,4, 0,4, 0,0]],
			[[4,0, 1,0, 0,1, 0,3, 1,4, 4,4]],
			[[0,0, 3,0, 4,1, 4,3, 3,4, 0,4, 0,0]],
			[[4,0, 0,0, 0,4, 4,4],[0,2, 3,2]],
			[[4,0, 0,0, 0,4],[0,2, 3,2]],
			[[4,0, 1,0, 0,1, 0,3, 1,4, 4,4, 4,2, 2,2]],
			[[0,0, 0,4],[4,0, 4,4],[0,2, 4,2]],
			[[2,0, 2,4],[1,0, 3,0],[1,4, 3,4]],
			[[3,0, 3,3, 2,4, 1,4, 0,3],[2,0, 4,0]],
			[[0,0, 0,4],[4,0, 0,2, 4,4]],
			[[0,0, 0,4, 4,4]],
			[[0,4, 0,0, 2,2, 4,0, 4,4]],
			[[0,4, 0,0, 4,4, 4,0]],
			[[1,0, 3,0, 4,1, 4,3, 3,4, 1,4, 0,3, 0,1, 1,0]],
			[[0,4, 0,0, 4,0, 4,2, 0,2]],
			[[1,0, 3,0, 4,1, 4,3, 3,4, 1,4, 0,3, 0,1, 1,0],[3,3, 5,5]],
			[[0,4, 0,0, 4,0, 4,2, 0,2],[2,2, 4,4]],
			[[4,0, 1,0, 0,1, 0,2, 4,2, 4,3, 3,4, 0,4]],
			[[0,0, 4,0],[2,0, 2,4]],
			[[0,0, 0,3, 1,4, 3,4, 4,3, 4,0]],
			[[0,0, 0,2, 2,4, 4,2, 4,0]],
			[[0,0, 0,4, 2,2, 4,4, 4,0]],
			[[0,0, 4,4],[0,4, 4,0]],
			[[0,0, 2,2, 4,0],[2,2, 2,4]],
			[[0,0, 4,0, 0,4, 4,4],[1,2, 3,2]]

		]

		private static const kscale:Number=1.4;
		private static const kcolour:uint=0x999999;
		private const lettergap:int=6;

		public function Write(screen:Sprite,xx:int,yy:int,txt:String,scale:Number=kscale,colour:uint=kcolour) {
			screen.addChild(this);x=xx;y=yy;
			graphics.clear();
			graphics.lineStyle(1,colour);
			write(txt,scale);
		}

		private function write(txt:String,scale:Number):void {
			var pos:int=0;
			var letter:Array;
			txt=txt.toLowerCase();
			for (var i:int=0;i<txt.length;i++) if (txt.substr(i,1)!=' ') {
				letter=alphabet[txt.charCodeAt(i)-'a'.charCodeAt(0)];
				for (var j:int=0;j<letter.length;j++) {
					graphics.moveTo(pos+letter[j][0]*scale,letter[j][1]*scale);
					for (var k:int=2;k<letter[j].length;k+=2) {
						graphics.lineTo(pos+letter[j][k]*scale,letter[j][k+1]*scale);
						}
					}
				pos+=lettergap*scale;
				} else pos+=lettergap*scale;
		}

	}
}

October 13, 2008 at 9:10 am Leave a comment

Will AIR developers get sued?

As the distinction between AIR applications and conventional desktop applications becomes narrower, so too does the possibility that an unsuspecting RIA developer is going to get sued.  The desktop application arena is an already hostile battle-scarred legal quagmire, dominated by the big players who mostly tolerate each other now, but won’t necessarily tolerate any newcomers on their territory.

I’m not so concerned about all-encompassing patents such as Eolas or Balthsar.  Broad claims are so easily compromised by prior art.  I’m more concerned about very specific ways of doing things in desktop applications.

There have already been a couple of minor Central/AIR copyright incidents.

I remember the first try-buy application for Central was a nifty bitmap icon designer, created by Ted Patrick.  It accessed an online library of icons.  Allegedly, Macromedia owned the copyright of some of these icons, and this resulted in their removal from the library.

Another example allegedly involved the use of the word “air” in the names/domain-names of online Adobe Air community resources and websites owned by Air enthusiasts.  Adobe’s legal team got involved, resulting in names being changed, omitting the reference to “air” – allegedly.

(For those who’ve never watched any satirical BBC TV, throwing the word “allegedly” into your statements may offer some protection against legal repercussions.)

Interesting that both these cases involved well-meaning evangelists, doing something that was arguably beneficial to both parties.  Perhaps that’s why these cases were resolved so amicably.  (You can be an evangelist – just don’t cross the line).  But these are very minor examples.  I’m sure it can get much worse.  Who will be the first unsuspecting AIR developer to inadvertently trespass a hostile intellectual property minefield?  I’m thinking more about patents that cover some aspect of interface design, or application features.

The reason is brought this subject up, is that I’m currently adding some very advanced features to my vector editing application (e2vector), including a History Palette.  Then alarm bells started ringing in my head.  Did the History Palette once spark a skirmish between Adobe and Macromedia?, in the long-running patent wars before they merged?  Perhaps I was mistaken – I did some Google searches and found Adobe’s patent.  But no mention of a dispute.  “Tabbed Palettes”, on the other hand, were aggressively defended by Adobe.

Actually, tabbed palettes are something I have implemented in the past.  Possibly other developers have too.  I turned up quite a few patents in my search, for some very common ways in which desktop applications do things.  I wonder to what extent my AIR applications have already infringed patents?

My point is this… we’re small-time developers.  We don’t have the inclination, money, or resources to do extensive patent searches.  We certainly can’t afford to employ legal teams to cover our backs.  We don’t have time or resources to waste, getting embroiled in sticky patent issues.  Those of us who are are interested in the future potential of AIR – probably haven’t had any return from their investment yet.  Some of us aren’t even interested in money, but motivated more by higher ideals and our enthusiasm for the technology.  The more we’re focussed on the technical challenges – the less likely we are to think of the possibility of getting sued.

Adobe AIR has opened up some exciting possibilities for the desktop.  But it’s a big, bad, litigious world out there.  Do we need to be more wary about it?

October 9, 2008 at 6:23 am Leave a comment

AIR/AS3/Flex jobseeking

I’m looking for a new job.  I applied to a couple of interesting positions today.  I’ve decided that I wish to pursue my career in one of two directions.

University Lecturing.  Courses on RIAs, Flex, AIR and other web development technologies.  My last contract was a lecturing position teaching Software Engineering with an emphasis on web development.  Also C++ and OOP.

or I could return to industry in a technical leadership role which ignites my geeky enthusiasm and makes good use of my talents and creativity. My particular interest is AIR applications.

There is a demand for RIA jobs now.  The RIA community have put together some great resources for the job seeker including:-

http://tech.groups.yahoo.com/group/flexjobs/ (Ted Patrick‘s flex jobs yahoo group)

http://www.flexjobs.in (Good job listings, a few problems uploading a profile and resume)

http://flex.org/jobs (An aggregate of popular jobs sites http://www.searchcoders.com/jobs/ , http://RIAJobs.orghttp://www.flexgigs.com/ and http://www.dice.com/ ).

Also, general sites such as indeed.com, and simplyhired.com have Flex listings.

If anyone else knows any good jobs sites, please leave a comment.  (Or maybe you have an exciting job lead for me?)

October 1, 2008 at 3:13 pm 1 comment


  RSS feed          View Daniel Freeman's LinkedIn profileView my profile

Add to Technorati Favorites

October 2008
M T W T F S S
« Sep   Nov »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Follow

Get every new post delivered to your Inbox.