Violet UML Editor excellent for quick diagramming

May 4th, 2008

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

March 18th, 2008

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…

February 19th, 2008

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

February 5th, 2008

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!

Try, Catch, and Ignore

January 12th, 2008

Before today, I used to write try/catch statements where I acknowledged the error but I didn’t want to do anything about it…

try
{
   new Error();
}
catch (e:Error)
{
   // Do nothing!
}

After today, I will be doing…
try
{
   new Error();
}
catch (ignored:Error){}

There is nothing earth shattering bleeding edge about this. However it’s one of those small tiny geek cool things about readable code. Picked it up from some J2ME code I read.

Adobe Flex/AIR vs. Silverlight vs. JavaFX vs. vs. Google’s Ajax RIA @ QCon 2007

October 13th, 2007

I got an email for what looks to be a pretty cool conference that breaks my bank account. Scott Delap will be speaking at QCon @ San Francisco on “Emerging Client Technologies”:

The web has been in a state of transition since its inception. In the beginning there was basic HTML. As more complicated layouts were demanded developers moved to using tables for greater control. Next came CSS to allow the separation of style from structure. Today the shift occurring is not in terms of layout. Instead the driving forces are a better overall user experience, support of rich media such as audio and video, and the ability to run application in both online and offline modes.

The latest dotcom success, YouTube, made rich media an expected part of the internet experience instead of an exception. It along with other sites like it are causing companies to think beyond CSS and HTML. Technologies such as Microsoft Silverlight and Adobe Flex/Apollo are providing a foundation for such rich media applications. Another growing trend is the concept of taking a web application offline. Advancements in this area include Apollo’s offline capabilities as well as the newly announced Google Gears API. In this track we will dive into these technologies and others that making such a shift possible.

It’s great to see Flex get exposure at a conference full of technical team leads, architects, and project managers from different fields. These are the people who can influence technology decisions for the companies they work for and in turn it can create more opportunities to make use of Flex (provided it’s the best tool to use for their given requirements).

About the $1895 3-day conference, it looks to be a pretty good line up of tracks…

A number of important additions have been made to the conference:

  • Kent Beck & Martin Fowler are keynoting & delivering tutorials
  • Scrum Master Certification: Delivered by Scrum co-founder Jeff Sutherland & Gabrielle Benefield
  • Yahoo!, eBay, Linked-In, Orbitz, & SecondLife presented in the architecture case studies track
  • The track: Practical Security for Application Developers has been finalized, one of the only such tracks at any conference this year.
  • A panel on the future of Java development including Joshua Bloch, JRuby creator Charles Nutter Spring Creator Rod Johnson, and .NET language designer Erik Meijer added to the Java In Action track

QCon first debuted in London this past March (see bloggers show coverage) and going forward on will be an annual event in both SF and London, providing a venue for learning, networking, and tracking innovation in the Java, .NET, Ruby, SOA, and Agile communities also with a strong focus on architecture & design, as well as other important topics for the professional software developer.

QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers. The tracks at the conference include:

  • Architectures Case studies - The architectures of Linked-In, Yahoo!, eBay, Second Life, and Orbitz - right from the source.
  • Agility on the Edge - Lessons learned from extreme/advanced applications of Agile.
  • Architecture Quality - How to achieve sustainable quality (reliability, maintainability, scalability, manageability).
  • Bleeding Edge .NET - REST with WCF, XML & LINQ in VB9, EDM & eSQL, Acropolis.
  • SOA & the Web: How much REST do we need? - We will explore the architectural differences between the two, highlight their respective benefits, and help you decide when to apply them.
  • Emerging Client Technologies - Silverlight vs. JavaFX vs. Adobe Flex/AIR vs. Google’s Ajax RIA stack.
  • Five Things I Wish I Learned In College - Languages & techniques being researched today that may change development 20 years from now.
  • Java Emerging technologies - JRuby, Grails, Server-side OSGi, DSL development, Batch Processing.
  • The Rise of Ruby - learn how to best take advantage of what Ruby has to offer.
  • Java in action - Concurrency, Spring Configuration, AOP in the Enterprise, TestNG, Future of Java.
  • Practical Security for Application Developers - static analysis, thread modelling, web 2.0, enterprise security api, web services security.

See also past QCon/JAOO talks available online on InfoQ:

Registration for the 3 day conference is $1895 until Nov 4th ($300) savings. Substantial group discounts are also available. The conference will be held at the new Westin San Francisco Market Street. Join us in this first annual event in San Francisco!

Hope to see you there,

Floyd Marinescu

Link to QCon 2007 can be found here.

JOBS: STC StraightThrough Inc. is seeking 2 experienced Flex developers

October 3rd, 2007

STC StraightThrough Inc. is seeking 2 experienced (2-3 yrs) Flex developers located in the GTA. .NET, database, Web Service & API usage considered additional assets.

Email or Fax cover letter and resume to:
Hiring Coordinator,STC StraightThrough Inc.
Fax: (416) 932-4710,
Email: careers [at] straightthrough.com (pdf or text format only).

Only those individuals being considered will be contacted.

List-at-a-time functions in AS3

September 21st, 2007

eokyere posted a pretty cool article/tips on how to make some of your AS3 code elegant in the case of applying functions to entire lists.
/*
For example, we have a list of donuts, and we want
to see which ones have chocolate, and then later
decide to take chunks of bites out of them:
*/
 
for (var i:Number = 0, n:Number = donuts.length; i < n; ++i)
  if ((donuts[i] as Donut).hasChocolate())
    v.push(donut[i]);

OR you can use Array’s filter function…

function choco(donunt:Donut):Boolean { return donut.hasChocolate(); }
var chocs:Array = donuts.filter(choco);

Very helpful read. It’s very easy to take for granted arrays and loops.

Link to eokyere’s blog entry on “Higher Order Actionscript” here.

Parlay is looking for Flash Developers

September 17th, 2007

Position Summary
Flash Developers will be responsible for integrating unique solutions within our Flash Gaming Suites. Parlay’s games use Flash front-ends to talk with Java servlet back-ends, this position will increase the size of our Flash development team. The position strongly emphasizes ActionScript programming, from core libraries to interface development. The position will be part of a team of 2-5 flash developers and 2-3 graphic designers of varying experience.

Key Responsibilities
- Assist in the creation and maintenance of Parlay’s suite of Flash games
- Integrate solutions within Parlay’s Gaming Suites
- Flash skill requirement is largely ActionScript and interfacing with Java and Web components

Required Skills and Competencies
- Competency in the use of all Flash IDE’s from Flash MX 2004 onward
- Extensive Flash ActionScript experience with AS1 and AS2 with a workable understanding of AS3.
- Familiarity with OO concepts, design patterns and is comfortable with implementing them for Flash applications
- Familiarity with HTML
- Must be flexible and able to work with AS1, AS2, and AS3 scripts
- Formal training in programming is a requirement
- 2-3 years related experience
- Strong written and oral communication skills

Definite Assets
- Proficiency in Photoshop, Illustrator, Sound and Video Editing Software
- Understanding of Java, XML, HTML, and other web technologies
- Gaming experience
- A College Diploma or University Degree in a technology field

At Parlay Entertainment, we’re putting a new spin on Internet gaming. Based in Oakville, Ontario, we pride ourselves in our casual yet professional work environment, where both clients and employees are highly valued and treated with respect.

Parlay is always searching for bright minds with big talent. Think you’ve got what it takes to get in the game? If you’d like to join a team that mixes business with pleasure every day, e-mail your resume with cover letter to: careers [at] parlaygroup [dot] com.

Please visit our website at http://www.parlaygroup.com/

Using the Flex Datagrid’s “labelFunction”

September 5th, 2007

Someone once asked me if they had a datagrid column that displayed millions, billions, and trillions of dollars, how could they render it in a non-numerical way so it would show as:

1,000,000 = 1 Million
1,000,000,000 = 1 Billion
1,000,000,000,000 = 1 Trillion

The other requirement is that it must still be in a numerical format to apply mathematical operations. Flex framework’s Datagrid component has a nice feature called “labelFunction” that lets you define your own custom label render so that you may apply your own rules. The following is one sample approach to the problem.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
  <mx:Script>
    <![CDATA[
      [Bindable]
      public var myDataProvider:Array = [  125000000.99,
                1700000000.01,
                984561321483.56,
                0.99,
                5.75,
                31400000000.01];
      
      public function myLabelFunction(item:Object, column:DataGridColumn):String
      {
        var amount:String = item.toString();
        var dollars:String = amount.split(".")[0];
        var dollarDigitCount:Number = dollars.toString().length;
        
        var value:String;
        
        if (dollarDigitCount >= 7 && dollarDigitCount <= 9)
        {
          value = dollars.slice(0, -6) + " Million";
        }
        else if (dollarDigitCount >= 10 && dollarDigitCount <= 12)
        {        
          value = dollars.slice(0, -9) + " Billion";
        }
        else if (dollarDigitCount >= 13)
        {
          value = dollars.slice(0, -12) + " Trillion";
        }
        else
        {
          value = item.toString();
        }
        
        return "$" + value;
      }
    ]]>
  </mx:Script>
 
  <mx:DataGrid id="dg" dataProvider="{myDataProvider}" >
    <mx:columns>
      <mx:DataGridColumn headerText="Click To Sort" labelFunction="myLabelFunction"/>
    </mx:columns>
  </mx:DataGrid>
  
  <mx:TextInput id="textInput" text="{dg.selectedItem}"/>
  
</mx:Application>

It looks like this: