Flash Forward: Day 1 - Just Flex it

February 27th, 2006 . by polyGeek

If you’re a Flash developer then you got to get your Flex on. This framework is way powerful. It’s stunning how much you can do with so little code and really with very little effort.

What’s important is that there needs to be a bunch of people out there developing, creating, and pushing with Flex and Flash. (Oh, lets call the combination Flesh. I like it.) I know that in my past dealings with managers and clients trying to sell them on Flash was sometimes an effort and sometimes a brick wall. That can’t happen anymore.

Flash is by far the best solution for video. Anyone who is posting video in any format other than Flash is just being lazy.

You want to talk RIA? I’ll tell you what. I just saw my first Flex code two days ago. I’ll put myself up against any team of 2 developers working in AJAX to create the front end. I’ll get it done in the same time, with better usability and it will work on every platform. Yes, people will have to upgrade to the 8.5 Flash plugin. If anyone wants to pick on Flash for that then I’ll tell them that roughly the same number of people have Javascript disabled as don’t have the Flash plugin. 8.5 is just getting going but in 12 months it will be everywhere.

You want to talk expressiveness? Please AJAX doesn’t even come out of the corner on this one. What does it say that the best interface to GoogleMaps isn’t Google’s own interface. It’s a Smashup done in Flash. (Can’t find the bookmark but it’s out there.)

Maybe I’m the only one out there who has loved Flash for years but been snuffed at trying to use it at work but I doubt it. The day has come that it is no longer acceptable. If you want to use Flash or Flex then get your game face on. Study, work, pound out some code and get good at it. If you’re employer isn’t ready to take the Flash/Flex challenge then a company around the corner will be.

There is a culture out there that doesn’t take Flash seriously. It’s time to beat them at their own game. I would rant more about this but I got some Flex docs to read. What are you waiting for?


T-minus 3 days to Flash Forward 2006

February 23rd, 2006 . by polyGeek

Flash Forward 2006 is almost here. This will be my first FF conference and I can’t wait. If you read my “personal history” blogs then you’ll agree with me that it almost seems like destiny that I’m attending.

I arrived in Seattle on December 28th, 2005. About a week later I got an email inviting me to sign up for the conference. At the time I didn’t have the money and didn’t expect that there was any way that it would work out that I could go. That just made me sick. Then I got a little more contract work than I had anticipated so I was in the green - not hard to do when the biggest portion of my budget is coffee.

So, Flash Forward here I come.

I’m going to do the Flex workshop on the first day. I guess this weekend I should read up and find out what it’s all about. I have the framework and stuff installed so if I can get through a few tutorials then I’ll be happy. I’m pretty solid with XML as it is so I have that going for me.

Aside from that I’m most looking forward to the two Game Design sessions (Build Your First Flash® Game, Flash® Game Development), and two really cool sounding sessions: Let’s Get Physical: Extending the Flash® Platform and Digital Art and Alternative Interactions.

Plus I’m really looking forward to meeting all the peolpe out there who love Flash as much as I do. It’s going to be a blast!


You say “yes!”

February 22nd, 2006 . by polyGeek

About 2 hours after I accepted the offer to go back to work doing UI HTML-coding I got a call from another recruiter asking if I would be interested in a 3-month+ gig doing Flash/Actionscript. “Frak yes,” I told him. (No, really, that’s exactly what I said.) I also told him that I had just accepted an offer to go back to my former employer for a 4-week gig and that we would have to work around that. A week goes by and no interview scheduled yet. Finally I get a msg from him asking when would be a good time . . . blah, blah, blah . . . I have an interview set for the following Tuesday and, “oh, and by the way” he said, “it’s a job working with the Xbox team!”

Now, you might think that a geek/gamer like me would be anxious about this interview. In fact I was pretty loose going in. Of course I wanted the job - what little I knew of it - but I didn’t get my hopes up. I knew that the job had been open for quite some time and that they had interviewed many people. With that I really didn’t think I’d get the job because they were probably looking for someone more adept than myself but it would be a good experience for me. This was going to be one of those 3 hour interviews. Starting with a group review of my portfolio for 30-min and then 4 back2back interviews with 1-2 people. During the interviews I had no problem talking about what I could do and what I couldn’t do. I would say things like, “Yeah, I know OOP. I write my own classes all the time. But, I wouldn’t consider myself an expert by any means. For instance, I know what inheritance is but I don’t really use it because it’s never come up.” (Note to self: I really need to finish reading “Essential Actionscript” by Colin Moock.)

Of course I did show off a little bit. During one of the 2on1 interviews a guy asked me to write some AS on the white board. He asked me to start by writing an “if-statement”. I wrote:

if(job == “xBox”) {
trace(”Yeah!!!”);
}

Both of them smiled at that.

“Okay, add on an ‘else-statement’ to that.”

I asked, “‘else’ or ‘else-if’”.

“Just an ‘else’,” he said. The other guy said, with a smile, “I’m almost afraid to see this.”

So I added:

else {
trace(”FRAK”);
}

Then he asked me to write a ‘for-statement’.

This is where I showed off a little.

for(var p:String in job) {
trace(p + ” : ” job[p]);
}

I’m pretty sure that was a little more that he was expecting.

The hardest part of the interview was with this guy who was asking me, “What do you do if I give you a project and a deadline and you know that you can’t meet the deadline.”

I replied, “First off, I would hope that you wouldn’t just dump something in my lap. Maybe every now and then we could get together for 5 minutes to review what’s coming up. That way I can be as prepared as possible. But what you want to know is how I’ll react if I have more work to do than I have time to do it in. The simplest way to put it is that I’ll tell you it ain’t gonna happen and we’re going to have to come up with something that is workable. I’m not going to like it. I’d like to perform a miracle and get it done but if it’s unrealistic then I’ll tell you.”

He liked that but he loved this: “Plus,” I said, “it isn’t your fault that you gave me too much work to do and too little time to do it in. Sometimes your work piles up and that will fall on me. We communicate and do the best we can. I can tell you what I won’t do. I won’t wait until the day before something is due and come to you with a project that is half finished or doesn’t work.”

I got his seal of approval.

Aside: I think that one of the advantages I have is that I’m not afraid of loosing a job or anything else for that matter. Okay, I’d be pretty bummed about loosing my vision or something but that’s not what I’m talking about here. I don’t have any kids to support, I don’t have a mortgage to pay, I don’t even have car payment to make. My needs are simple and I have enough money to live at the Pathfinder Inn for a year without working. And you know what? I would love that. So, it’s all good. Right now my life revolves around creating and learning. And it’s going to say that way.

With that in mind here is one of my favorite quotes:

That man is richest whose pleasures are cheapest.
-Thoreau

The final 30-min interview was with the manager. It went well, we joked around a bit. At the end I stood up and shook his hand and thanked him for the interview. He said, “I would like for you to think about it but the job is yours to turn down.”

After a moment of stunned silence I said, “What? Really? Are you kidding?”

(Note: not the most professional response in the world but I was really surprised. I felt like Angelina Jolie had just said, “I would love to have you instead of Brad.”)

He said, “It’s hard to tell in the span of an interview but you seem like you would be a good fit with our team. You have a varied background with philosophy and a sense of design. Plus, you exceed our technical requirements. In fact, you’re the only person who has met them. So it’s a pretty easy decision for us. So think about it but we would like to know by tomorrow morning.”

Yeah, so I thought about it and called the recruiter from the parking lot about 3 minutes later. Are you kidding me? This is a job doing prototyping for new features on the XBox360 and doing some Flash for the XBox live site. And this is my first fraking job doing Flash. This is no time to be equivocate. When someone asks you if you want to do Flash for the Xbox design team . . . You! Say! “Yes!”

Not only do I get to do Flash full-time, all-the-time, but I also share an office that comes with an Xbox360. Oh, and by the way, I get paid to boot. What more could anyone ask for?


What would you do with a job if you had one?

February 22nd, 2006 . by polyGeek

Back in December I was driving through Sacramento, on my way up here to Seattle, and I got a call from a recruiter. (I had already updated my resume on Monster/Dice/et al. to a Seattle address.) She had a job doing UI coding and wanted to know if I was interested. (Lets see, I had about $1,000 to my name - after just selling my Sony Artisan monitor :-( - no job and a chronic addiction to expensive electronics. So the answer was easily “Yes”.) After a few calls back and forth she had an interview set up for me the following  afternoon. I pulled into Seattle the next morning, went to Mervin’s to buy some decent clothes, shaved in the men’s room and then went over to the interview. Afterwards I went to the library, checked my email and found out that I had a job for 2-4 weeks making $35/hr. Not bad for being in  the city for 6 hours.

It was my job to bust out HTML templates from PSDs. Not very glamorous but it was good money and a great place to work. Plus, and this was a real big plus, they had showers at work! I’m a shower a day kind of guy so going for a week without a shower was really going to bother me.

I worked there for about 2 weeks and had all the work done that they had for me. It was now mid January 2006. I spent the next two weeks working 12+ hours a day on my portfolio in the public library. Then I got a call from the same recruiter asking me if I would like to go back to my former job for a few weeks.

Here was my thinking. You can judge for yourself just how crazy I am. I’m having a great time getting to spend every possible hour working on my portfolio and expanding my skills in Flash. I’m pretty resolute that I’m only going to interview for Flash related positions. I had already told a few recruiters who had been calling that jobs that posted “Flash a bonus” was not enough for me. It had to be “Flash/Actionscript/OOP a MUST” or I wasn’t interested. On the other hand I already knew the people that I would be working with - and liked them. I already had a PC set up there to work on - hoping that the sysAdmin hadn’t wiped down the machine (fortunately he hadn’t). The money was good and would keep me supported in the lifestyle that I had grown accustomed to for many more months. In the end you want to know what was the deciding factor? I would have enough money to pay the $929 for a four-day pass at Flash Forward 2006. Oh, and one other bonus: I would be able to take a shower. So, back to work I went.


I may be homeless in Seattle but at least I’m not unemployed in Greenland

February 22nd, 2006 . by polyGeek

I just started this blog site a few days ago. It’s mostly to write about Macro’dobe Flash stuff, some philosophical thoughts here and there, climatology, that sort of thing. And then today I thought, “you know, I should probably write about my current living experience.” I mean it’s not as exciting as Actionscript but it’s certainly not the normal day2day that most people experience.

Lets start by taking an inventory of my immediate surroundings:

Laptop, suitably on my lap. That’s good because it helps keep me warm.

Laying, propped up in bed.

Listening to the AC adapter chirp because I’m putting quite a drain on it with both my laptop and heating pad being on at the same time.

I’m using my favorite button-down flannel shirt as a curtain. There’s also my old jacket from Europe that’s coming apart as another curtain and an over sized sweatshirt from the Alabama Crimson Tide championship in 1992 as yet another.

It’s a little cold in here. The heating pad on my feet helps but my hands are starting to get cold. Too bad I can’t put the heating pad over my hands and still type.

The past few mornings there has been ice INSIDE my Pathfinder when I woke up. It’s been a little on the chilly side here in Seattle for the past week or so. I for one would really like a return to warm rainy nights instead of these starry nights that are so fraking cold.

(You know. You should see this. I can put the heating pad over my hands and still type. Good thing that I don’t need to look at the keyboard to type, eh?)

In the mornings when I wake up, between 5:30-6:30, I jump up to the front seat, mash the clutch and start the Pathfinder and then dive back in the back and cover back up. Then I give it a good 15 minutes or so to get the chill out of the air, and start melting the ice, before I get up and get dressed.


Cutting corners with the Drawing API

February 20th, 2006 . by polyGeek

I had a little trouble with the slice9Grid applied to shapes created with the Drawing API. I thought I would share in the hopes of saving other people from the frustration.

The real problem is really with the Drawing API and strokes. Perhaps this should have been obvious to others but I assumed that when I created a shape - say a rectangle - that went from (0, 0) in the top corner to say (100, 200) in the bottom corner then I would have a rectangle that was 100×200 pixels. Not quit, the stroke gets applied to the outside so the diminsions need to take that into account.

(This really is obvious when I think about how the rectangle tool draws on the stage but I just didn’t think about it until I’d spent an hour with the frakking code.)

Here’s some sample code:

var rect:MovieClip = this.createEmptyMovieClip(”rectangle_mc”, 1);

rect.lineStyle(2, 0xFF0000, 100, true, “none”);
rect.moveTo(0, 0);
rect.lineTo(0, 200);
rect.lineTo(100, 200);
rect.lineTo(100, 0);
rect.lineTo(0, 0);

trace(rect._x); // output: 0
trace(rect._y); // output: 0;

trace(rect._width); // output: 104;
trace(rect._height); // output: 204;

The good news is that the top corner stays at (0, 0). It would really suck if it moved to (-2, -2) because of a stroke that was 2 pixels thick.

I was using lineTo and curveTo to draw a rectangle with round corners and then applying the slice9Grid to it. It would seem that if my corners were say 8 pix then my grid would like like this:

var grid:Rectangle = new Rectangle(8, 8, rect._width - 16, rect._height - 16);

So when I did this and then stretched out my rectangle the corners got all Flash7 on me.

I wish there was a way to visualize the grid with Actionscript like there is if you create a MovieClip on the stage.

So here’s the essential code that works.

var stroke:Number = 2;
var corner:Number = 8;

var grid:Rectangle = new Rectangle(corner stroke, corner stroke, rect._width - (corner*2) - (stroke*2), rect._height - (corner*2) - (stroke*2) );

I’ll post the code for my RoundRect in the next blog entry.


First Blog entry (yeah, I racked by brain for hours coming up with that title)

February 16th, 2006 . by polyGeek

There’s a lot going on: I just got a dream job doing Flash design/development with the Xbox team, I’m moving into a great apartment that’s like a cruise ship in the middle of downtown, and I’m going to Flash Forward 2006 here in Seattle in 11 days. So you can see that I have a lot to be really jazzed about. But you know what? All that pales in comparison to this: I just created a blog website and got the domain polyGeek.com. Are you kidding me?

With all the geeks out there this one slipped by? This is like standing on the deck of the Titanic as it’s sinking and noticing that there’s an empty life raft floating nearby.

I thought of the name polyGeek because it reminds me of Isaac Asimov’s title polyMath.

Okay, this is enough. I need to mess around with settings and config stuff now.