Archive for January, 2007

Uncategorized

Apples new products: Apple TV and iPhone

Well it was a very exciting keynote. I was certainly not let down. First off, ever since they announced the iTV (now called Apple TV) back at the WWDC last year I knew I would have one. I have my G5 downstairs connected to my tv, just so I can do this kind of stuff. I would love to bring that up into the office and do something a little more useful with it.

But here is what I really want…. I have been working on building some home automation products. And what I would really love is to get to use Flex via Apollo and then run those on my Apple TV. We dont have much for specs on what the processor in the Apple TV is yet, but I think it would be amazing to build apps for that platform.

Then when they announced the new ipod widescreen with touch controls I just about wet my pants, I really didnt think that was coming yet. Followed closely by the fact that they were releasing the fabled mobile phone and an internet communication device…. I just about lost it. Then they told me that it was all one device the iPhone…. and I cried. Not tears of joy though. I am so very disappointed that this wonderful pda/ipod device comes bundled with a monthly contract to cingular phone service. I would pay the full price for the pda and ipod stuff and suffer through not having the phone, just to not have to pay for cingular phone service. I cant believe that cingular is the “nations #1 provider” because out here in portland my friends and I all joke about cingular. “Yeah fewest dropped calls, if you can make one!” and then we all laugh. I understand apple picking GSM as the technology for the phone, it makes the most sense for a company that interacts globally. But its very disappointing that cingular doesnt have better coverage out here.

To be fair the in-city coverage is fine, but my family lives at the coast and in some woodsy remote areas. I get verizon coverage very well in all of it. Even driving over the coast range to see our family, there is only a couple mile stretch that doesnt have verizon coverage… not the case for cingular.

So hats off to apple for making a couple devices that bridge that gap between frontiers I am very excited about. But I am pretty disappointed that I wont have the iPhone any time soon.

ps. How they heck can they call it the iPhone. Didnt linksys/cisco just launch that product last month?

[UPDATE] I didnt notice this in the coverage but apple also updated the Airport Extreme Base Station to support that the wireless N protocol as well as A and B. This is obviously to support the new cards in the Mac Book Pro’s and the Apple TV streaming. But one thing that I thought was very neat, is they added the ability to use a usb HD on the usb device of the base station and share that sans computer. Thats a neat extension that makes this a worth while upgrade.

Uncategorized

MacWorld 2007 Keynote - 5 minutes and counting

I know its ridiculous but I look forward to this day more than christmas morning. I wait all year long to see what fun toys Apple and Co will be releasing this year.

I am watching the thread over at engadget but i am sure there are other places that you can get you up to the minute coverage. Be sure not to miss this exciting event.

Uncategorized

Flex 2.0.1 - Class Imports Are Required

As you prepare to migrate your applications to Flex 2.0.1 there are a couple gotchas you will have to watch out for. The first of which is that any classes used in ActionScript _MUST_ be imported prior to use. Now you might be thinking I have always had to import my classes but that is not true. I have several places in my applications where I use the Alert class to pop up a little info about some event. I quite often use those like this:

mx.controls.Alert.show(’Hey you didnt import me’);

See that, no import. I just use the full path to the class. Your code must include the importing of this class. If you don’t you will likely see the error “1120: Access of undefined property mx.”

import mx.controls.Alert;

private function alertMe():void{

Alert.show(”I alert thee. Sir Alerted”);

}

Just wanted to make sure everyone saw this cute little change. Not really a big deal but it could fowl you up for sure.

Uncategorized

Flex 2.0.1 - Released to the wild!

Well its finally here. Flex 2.0.1 had been released. For me the most important feature is the including of Mac OS X support! Yes thats right! The non-beta release of of Flex Builder for Mac is available now.

Although the version number for this release has only change by .0.1 I feel this is a very significant release. Included are very important features such as :

  • Runtime CSS support - previously css was applied at compile time and could not be changed.
  • Module Support - When building large applications it can be very nice to not load the entire application at first request. The new module support allows us to load individual peices of our applications at run time. Modules can also be used across multiple applications.
  • Apollo Support - Flex Builder is now ready for whatever comes down the pipe regarding the future release of Apollo

From the Flex product page you can now choose to download a trial and once logged in you can choose Flex Builder for Mac or Windows to get the update. This is a free update for windows users. Mac users however will need to purchase the full product version as your Window serial does not seem to get accepted by Mac Flex Builder. Adobe may have some program to convert your license but this morning the FAQ page still stated they had not figured that out.

Personal

So What Is It That I Do?

This seems like a question that should be easy to answer, but whenever someone asks I find I always pause and have to consider how to answer. As with everyone out there I do a lot of things and depending on who asks the answer should be different. So I thought perhaps I should (for my own benefit) add a post that talks about my job and my involvement in the community.

By day I am the Director of IT for Business Transitions in Portland, OR. Titles are kind of a joke to me. I am “Director” because of the level in which my decisions affect the company. I report to the sole owner of the company and make recommendations on all of our technical decisions. I am responsible for all hardware (desktops, servers, printers, phones, etc.) and software development for the company. All employees of the IT department report to me. This is where the joke part comes in; there is only one (soon to be two) employees other than me in IT.

By night I run Simb Development, which is a Development and Hosting company that I mostly ignore. I am not really an entrepreneur and have no interest in “being my own boss.” The sole reason this company exists is to support friends and family who have technical needs. I had a friend who wanted to do web development and needed somewhere to host. I needed to host my own sites, so I got some dedicated servers and I offer hosting. I have friends that are designers and wanted to offer more robust services to their clients, so I sub-contract small jobs from these folks to help them better meet their clients needs. I am not currently accepting RFQ/P’s nor hosting customers :)

Beyond the things I get paid for, I am also heavily devoted to community involvement. I am the Adobe Developer User Group manager in Portland, Oregon. When I took over the group over two years ago we were a strictly ColdFusion group. But after Adobe’s merger with Macromedia, I felt it was important that we look at all the tools available to us. I am an Adobe Community Expert. The “Community Expert” (previously “Team Macromedia”) is a designation reserved for individuals who demonstrate a strong commitment to helping out in the community. I am also an Adobe Certified Instructor for Flex 1.5 and 2.0. I am an Adobe Certified Expert for ColdFusion. In addition to those Adobe centric programs, I am also a member of “Team Fusion” and “Team Fusebox” community led support projects. I also host the Subversion and Trac project repositories for Fusebox 5, Model-Glue Unity, Reactor, and CFEclipse. I have made small code contributions to those projects as well as the ColdSpring IoC/AOP Framework for ColdFusion.

Last year I had the opportunity to be involved with several conferences. I presented on three topics at CF.Objective last year. I also presented at CFUNITED in Washington D.C., and MAX ‘06 in Las Vegas.

Beyond the technical things I do, I am also a new dad and a loving husband. I absolutely dote on my wonderful family. I am the proud owner of two wonderful black labs and the keeper of the house which two cats proclaim dominion over.

Uncategorized

Working with the ArrayCollection in Flex 2

As soon as you start working with the data controls in flex 2 we start seeing references to the ArrayCollection class. The ArrayCollection class is basically a heavier and much smarter version of a standard array. In fact when you instantiate an ArrayCollection you can pass in an array as a constructor argument, and your ArrayCollection will use that as its initial data. The ArrayCollection class implement the IList and ICollectionView interfaces which give us guidelines for some of its functionality. Those implementing those interfaces give us the ability to filter and sort the data, as well as functions for manipulating the data.

All of that said and done there are a couple things that I had to do recently and the path was not very clear for me. The first task I needed to accomplish was to see if a particular object was in the ArrayCollection. My first draft of this code had me using a for loop and checking each of the individual contents of the data for a match. This is perfectly fine as a solution but it actually is a lot more work than is necessary. The ArrayCollection class actually has a contains() method which returns a boolean for your item. You call this method on your ArrayCollection and pass in the item you are looking for. Using this method you do not have to loop through the array just to see if your item is there. If the contains() method returns true you can use the getItemIndex(item:Object) function to find out where exactly it is if you need to. Using this technique might look like this:

var ac1:ArrayCollection = new ArrayCollection([0,1,2,3,4]);

var i:int;

if ( ac1.contains(1) ){

i = ac1.getItemIndex(1);

}

trace ( i );


The other task I needed to complete was concatenating a set of ArrayCollections into one bigger ArrayCollection. By default there is no simple way to add two ArrayCollections. Back in the day when we worked with regular arrays we had a neat function called concat() which took an array as a parameter and it just tacked in on the end. But ArrayCollections have no such beast. Well thats ok because we can actually reference the array that is the underlying object in our ArrayCollection using the source property of an array collection. What does that look like?

var ac1:ArrayCollection = new ArrayCollection([1,2,3,4]);

var ac2:ArrayCollection = new ArrayCollection(['a','b','c','d']);

ac1.source = ac1.source.concat(ac2.source);

trace(ac1.toString());

Running that will output “1,2,3,4,a,b,c,d” in the trace window of flex.

So next time you are working with Array’s and ArrayCollections in ActionScript 3 make sure you check the docs to see if there are any ways you can improve your code and make your life easier.

« Prev