knowledge.lapasa.net

Greater Toronto Area Flash Platform Developer Blog

Getting Started With Flex 4 / Flash Builder

TAGS: None

Great place to get started @ http://blogs.adobe.com/flexdoc/2009/06/documentation_for_the_flex_4_a.html

Experience so far: Installed it and compiled 3.1 projects…a bit slower than usual…maybe a lot slower. Disappointed that the network monitor stuff only works for new 4.0 projects. There is a lot of developer features to take in. I haven’t been this excited since Flex 2 Beta 2.

  • Author: mlapasa
  • Published: Apr 28th, 2009
  • Category: Null
  • Comments: 2

Flex Builder 3 for Linux on hold!

TAGS: None

Ben Forta has said: “The project is currently on hold. There is not enough requisition for the product to continue its development”

(Taken from Tom Chiverton’s site)

Make you’re voice heard and vote for a comeback http://bugs.adobe.com/jira/browse/FB-19053

Snippets in Ganymede via Web Developer Tools plug-in

TAGS: None

Googling for snippets functionality in Flex IDE and I stumbled upon this blog entry based on Europa (Eclipse 3.3.x).

http://nwebb.co.uk/blog/?p=178

Snippets come in handy for repetitive tasks like commented section headers.

////////////////
// Properties //
////////////////

/////////////
// Methods //
/////////////

I am running Ganymede (Eclipse 3.4.x) and this is how I got Web Standard Tools up and running

1) Help -> Software Updates

2) Ganymede -> Web and Java EE Development

3) Put checkmark in Web Developer Tools and hit Install

4) After install it will prompt for restart, restart it

5) Window -> Show View -> Other

6) In the quick filter, type “Snip…”; Select Snippets and hit OK! The snipppets panel should now be seen;

7) Snippets are stored in “Snippet Items” which are aggregated by “Snippet Categories”. To create your first category, right click on the snippet panel and click on Customize.

8 ) In the top left corner, hit the “New” button and create a new category

9) With your new category selected, hit the “New Item”

  • Author: mlapasa
  • Published: Nov 15th, 2008
  • Category: Jobs
  • Comments: 2

There are good headhunters and then there are these…. (Part 2)

TAGS: None

I got a LinkedIn invite by a headhunter who I would refuse to do business with simply because of poor communication and research skills. Here is the invitation (mostly) in verbatim:
///////////////////////////////////////////////////////////////////////////////
Hi Mark,

Saw your profile online and wanted to contact you. Bob,

How are you sir? Had to connect with you. My name is O.K. [REPLACED FULL NAME WITH INITIALS], a senior IT recruiter with [COMPANY NAME OMITTED], Canada’s oldest and most successful IT consulting firm.

I know you are a Flex Developer at Parlay which is why I am contacting you. How would you consider a fabulous new opportunity as a Flex Developer with a stellar firm in Mississauga, doing just that.

I have an opportunity for you right now that meets your core competency schedule. I hope that first you will accept my invite so 2) we can discuss it as per your discretion and interest level.

Looking forward to hearing from you

O.K. [REPLACED FULL NAME WITH INITIALS]
IT recruiter
[COMPANY NAME OMITTED]
///////////////////////////////////////////////////////////////////////////////
I hope this is not a form letter because if it is, this person lacks the professionalism to prevent mass mistakes. Do you see Bob at the end of line 2? Who is Bob???

What then really got me boiled over was that it mentioned “I know you are a Flex Developer at Parlay”. Dude, you knew how to contact me through my LinkedIn profile but did not have the nerve to read my work experience properly. Currently, I do not work work at Parlay and when I did work at Parlay, I was doing Flash Development. Clearly a sign of poor research skills. They are not one in the same. It just might be the case that this person is probably getting the wrong candidates for the job as all they care about is filling the position. This person claims to be a Senior IT recruiter however this bodes poorly on the company as a whole. I suspect dealing with junior recruiters might fare worse.

For Part 1, have a gander at this:
http://knowledge.lapasa.net/2007/05/18/there-are-good-headhunters-and-then-there-are-these/

Notes: Working With Data Views

TAGS: None

Some notes I took while RTFM’ing. One begins to take for granted how sorting and filtering works after working with ArrayCollections for so long. Such write ups help me as a reference down the line. May be of help to you too.

Working With Data Views
===================

ArrayCollection/XMLListCollection have a ‘view’ property provided by the ICollectionView interface.

Data views feature:

- Modify the data view to show the data as sorted; without affecting the underlying data.

- Modify the data view to show a subset of items in the data; without affecting the underlying data.

- Traverse a collection using a ‘cursor’ pointer

- Save ‘bookmark’ the cursor positions

- Insert and delete items in the collection; which directly impacts the data.

- Access parts of data set that might become available at different times.

* Best practices is to work with the collection rather than a control’s dataprovider property that maps to that collection

Sorting and filtering data for viewing
===========================

[Sorting]

- “Data view operations have no effect on the underlying data object content, only on the subset of data that the collection view represents”

- Sort objects: Specify fields to be sorted (Using SortField); require results to be unique, or store custom sort functions to be used for ordering sorted output.

- Sort objects can be used to find items in a collection

* .refresh() is always required to see the results of the application of the sort.

[Filtering]

- Use filter function to filter a subset of the source data

- The function signature must take a single Object which will be a collection item. The functions return is Boolean, true if if the item in question is to be included in the view.

* .refresh() is always required to see the results of the application of the filtering.

Using a view cursor
===============

- A cursor indicates the current position of a particular target object in a data collection.

- To access a cursor, the collection has an createCursor() method that returns a view cursor of type IViewCursor.

seek(bookmark:CursorBookmark, offset:int = 0, prefetch:int = 0):void

Moves the cursor to a location at an offset from the specified bookmark.

“When you use standard Flex collection classes, ArrayCollection and XMLListCollection, you use the IViewCursor interface directly; as the following code snippet shows, you do not reference an object instance:

public var myAC:ICollectionView = new ArrayCollection(myArray);
public var myCursor:IViewCursor;
myCursor=myAC.createCursor();

Manipulating the view cursor
=====================

- Traversal forward: Always do a IViewCursor.afterLast:Boolean check to see if there exists an item in the collection to perform IViewCursor.moveNext().

/*******************************************************/
moveNext():Boolean
Moves the cursor to the next item within the collection.
/*******************************************************/

- Traversal backwards: Always do a IViewCursor.beforeFirst:Boolean check to see if there exists an item in the collection to perform IViewCursor.movePrevious().

/*******************************************************/
movePrevious():Boolean
Moves the cursor to the previous item within the collection.
/*******************************************************/

* The collection must have a Sort Object defined and .refresh declared before using the following search methods

/*******************************************************/
findAny(values:Object):Boolean
Finds an item with the specified properties within the collection and positions the cursor to that item.
/*******************************************************/

/*******************************************************/
findFirst(values:Object):Boolean
Finds the first item with the specified properties within the collection and positions the cursor to that item.
/*******************************************************/

/*******************************************************/
findLast(values:Object):Boolean
Finds the last item with the specified properties within the collection and positions the cursor on that item.
/*******************************************************/

- findAny() executes faster than findFirst() or findFast()

- “If the associated data is from a remote source, and not all of the items are cached locally, the find methods begin an asynchronous fetch from the remote source; if a fetch is already in progress, they wait for it to complete before making another fetch request.”

Getting, adding, and removing data items
===============================

/*******************************************************/
IViewCursor.current : Object
[read-only] Provides access the object at the location in the source collection referenced by this cursor.
/*******************************************************/

/*******************************************************/
IViewCursor.insert(item:Object):void
Inserts the specified item –BEFORE– the cursor’s current position.
/*******************************************************/

Note: If the collection has a sort applied, the object is inserted in a way that maintains the sort. Otherwise, the object is inserted where the cursor is in the collection.

/*******************************************************/
IViewCursor.remove():Object
Removes the current item and returns it.
/*******************************************************/

Removes the item the cursor is referencing then refers to the location after the removed item provided it is not the last item.

Using bookmarks
=============

1) Move the cursor to a location in the collection using findAny(), findFirst(), findLast(), moveNext(), movePrevious(), remove(), or seek()

2) Bookmark the current position

var myBookmark:CursorBookmark = myViewCursor.bookmark;

3) Do step 1) to move cursor around

4) To get back to the bookmark position, tell the cursor to seek the bookmark.

myViewCursor.seek(myBookmark);

Ctrl + Shift + R = Good Bye Flex Navigator

TAGS: None

Learned this shortcut after watching Derek Santos speak on PureMVC at last week’s Toronto Flex User Group meet. This hotkey has saved me so much time =) Eclipse is so huge, there is always something to learn.

Violet UML Editor excellent for quick diagramming

TAGS: None

I was searching for free UML diagraming tools/plugins for Eclipse and I tried out

ArgoUML
http://argouml.tigris.org/
- It’s alright
- Does the job

Eclipse UML2 with no UML2 tools meaning no GUI
http://www.eclipse.org/modeling/mdt/
- Too hardcore for me
- Zero boxes and lines
- Just all tag markup

Papyrus for UML
http://www.papyrusuml.org/
- Very cumbersome to use
- Did not like the # of clicks it took to change multiplicity of an association

Violet UML Editor
http://alexdp.free.fr/violetumleditor/
- Simplistic interface
- Mouse-wheel driven element selection makes for quick drawing
- Can run as a part of eclipse or a stand-alone.
- Can print pretty good (if you stick to the default Blue Vista theme)

Violet UML was a pleasure to use because of how quickly I was able to apply stripped down fundamental UML. If I were to go any more basic, I would be on a whiteboard, markers, and a digital camera.

Two constructive suggestions I would have for the awesome developers who put this together is:

Space Bar Use:
When the space bar is down, the cursor changes into a hand. The user may then click and drag on the diagram which will move the visible area to another part of the diagram. This saves a lot of time by not moving the mouse to the scroll bars on the bottom and the right.

Ctrl + Wheel Up and Down:
When Ctrl key is pressed, if the user scrolls up and down, it will either zoom in or out. Pressing on the wheel button would restore to a view that can view all 100% of the diagram.

Aside from these, Violet UML is a solid UML editor that I highly recommend.

Try it out without having to install it.
http://alexdp.free.fr/violetumleditor/demo/violet.jnlp

In the Boston Area? Pier Interactive is hiring

TAGS: None

Company: Pier Interactive
Job Title: Flex Developer
Description: PIER is seeking an experienced Flex developer to join its ranks. We are looking for someone with a passion for Rich Internet Application development and a willingness to work in a highly specialized team of designers, developers, and managers to build cutting edge applications for PIER’s clients. We are looking for full time onsite staff in our Boston office.

Strong candidates would meet the following requirements:

- At least 5 years of studio/corporate experience
- Experience with ActionScript 2 and/or 3 and strong OO skills
- Experience with Flex 2 framework
- Strong background in component development in Flash/Flex
- Strong background in application development in Flash/Flex
- Experience with Java, ColdFusion and Oracle Database are pluses

Responsibilities include the following:

- Develop dynamic data-driven interactive applications
- Work closely in an integrated team of Project Managers, Designers, Interface/CSS Developers, and client staff
- Manage multiple projects with multiple deadlines efficiently and effectively
- Communicate within a team to ensure projects hit budget and time deadlines
- Further PIER’s process and product lines
- Push the envelope on projects in need of cutting edge technologies
- Help PIER continue to forge into the forefront of Flash, Flex and AIR application development

Applying

To apply, email a cover letter and resume to: careers at pierinc.com.

To Conference or Not Conference…

TAGS: None

On a related note about conferences, 360Flex is one of 3 major Flex conferences that happens in the year. The next one coming up is in Washington, D.C. during the month of May. It’s Webmaniacs 2008

Personally, I would not attend this one for myself because there isn’t enough new content to warrant going again but I have to say it was a really really good experience. I would recommend this conference to anyone who has an interest on enhancing their current Flex interests regardless of what level you are at. The 3rd major conference is the Adobe MAX conference. It’s the industry equivalent to those Steve Jobs/Bill Gates presentations in front of a massive big screen and there are lots of clapping, ooohs and ahhhs. Big announcements are made on that big stage. The early bird price for that one last year was $1,095.

I have to say conferences as such are not critical to what we do at the place I work at. However, they expose developers to ideas they would normally would not be exposed to in their workplace. If some of us go, it helps everybody. However, it’s unlikely to have everybody go. It is very possible for someone to be an adept Flex developer without going to expensive conferences using community resources like:

- Flexcoders Mailing List
- Macromedia XML News Aggregator
- LiveDocs

There you have it, all my secrets that I frequent the most!

360Flex Atlanta On A Budget From Canada

TAGS: None

Out of the two North American Flex conference offerings this year, I’ve committed to going to 360Flex Atlanta. The line up of topics and speakers look to be very promising. The price of a 360Flex ticket, flight and accommodations can add up to be very expensive experience. The following is my recent success in reducing the impact on my wallet.

Conference Ticket
Price: $480
Paid: $480

No savings here. However based on what I’ve read from previous 360Flex conferences comments and other conferences I’ve attended, I am placing this at high value as I believe it will help me with my day to day in the future. I couldn’t convince enough people to get in with a discount pack of 4 so I’ll be representing Toronto by myself at the expense of regular admission.

Accommodations
Price: $567 @ $189 each night for 3 nights at 4 star Omni Hotel at CNN Center
Paid $215 @ $71 each night for 3 nights at near-by 3 star Holiday Inn

Priceline for the win, baby! It’s not exactly on-site but it is in Downtown Atlanta. Coupled with a $12 4-day bus pass, I should be good getting back and forth from the OMNI.

Flight
Price: $617 from Toronto, ON to and from Atlanta, GA
Paid: $199 from Buffalo, NY to and from Atlanta, GA

Flying out of Pearson International Airport is ridiculously expensive. Driving a little more of an hour saved me more than $400!!! Why go international when you can go domestic.

A grand approximate total for my 360Flex experience is about $906. That’s like 54% off the regular price relative to where I am. Not bad but expensive for my tastes. As for food, I believe the organizers are catering lunch for all 3 days. Certainly that helps a lot.

Looking forward to Atlanta!

© 2009 knowledge.lapasa.net. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.