September 1st, 2008 by Dante
Over the last two years, I’ve had the opportunity to build up relative expertise in Adobe’s Flex framework. I’ve mostly been working on flex’s middle tier, tying the flex client to our JEE backend. It’s been a pretty crazy journey and i’ve learned a lot along the way. This post is a long overdue review of my impressions about the Good and the Bad with Flex. I hope it is useful to someone making the choice to use this technology
The Good
- Looks good with little effort. Looks amazing with more effort. Out of the box UI controls that look good and just work
- Actionscript. The flexibility of Javascript with a typesystem that works when you need it and gets out of your way when you don’t
- Powerful, efficient remoting with BlazeDS
The Bad
- Binding, especially initialization of it, generally only works well for the simplest cases. As you create more abstraction and complexity in your models, I have generally found that binding becomes a royal pain
- It is very easy to bloat your SWF with images, resources, and other misc things that create a subobtimal initial load time. You can fix this problem, but, in the beginning it was too easy to do things the ‘wrong’ way
- The designer in Flex Builder is bordering on completely useless. I find that it really only works in the simplest cases. As soon as you have a complex, dynamic UI, the designer is done. Not that this is all bad of course. I have a quite positive impression of Flex Builder as a whole.
Overall
On the whole, i must say that i have really enjoyed learning and working with flex. The ultimate question of course is: “Would i use it again?” I’m not sure. Like all things, it depends on the project. My current project is attempting to do an entire application in one SWF. I’m not sure i would do that again. I would, however, like to take the approach of injecting some flex here and there in an otherwise ’standard’ web app. Using the JS bridge that comes with flex, I think you could build some very cool experiences that are both fast for the user but also rich in content.
August 18th, 2008 by Dante
After almost a year of this site getting attacked and neglected by me I’m finally making the push to bring it back. Over the next few days, I hope to begin to make this something i am proud of again with a new clean theme, consistenly updated posts, and no stupid hacker code :(. hopefully wordpress 2.5.1 keeps me safe this time
August 18th, 2008 by Dante
Over the last weeks and months I have started to develop a theory of team collaboration. I have watched my team struggle with 1) internal team communication 2) external communication, and 3) motivation. I have heard over and over again “we’re not making any progress.” “What have we been doing for all this time?” At first, I was wondering the same thing: where did the time go? After reflection, I believe that my team IS in fact making progress, it is just that we have 1) made progress on intangibles and 2) allowed ourselves to drift a bit more than we should.
I believe that a major cause for this is our selection of tasks over the past few months. We have chosen ‘explore’ type tasks. Or design tasks. or infrastructure tasks. All of these are important and eventually need to get done; however, focusing on them in isolation has caused some serious problems. Although we are all in software and all of us know and understand that there is a whole more more to software than UI, the reality is that people, human beings, react to what they can see, touch and feel. I believe that if we had allotted just 20% of the infrastructure time toward UI, those “what are we doing” questions would dissolve. The reason: we can point and say: “that. that is what we have been doing”
I believe that ability to point and say ‘that’ has the potential to solve the three problems my team is having. First, a UI (even a nascent one) causes the whole team to get involved. When there is an interface to see, Designers want to contribute, PM’s want to argue over features, and project managers can explicitly see the holes that need to be filled. Second, where there is a UI, it is much easier for managers to communicate with executives outside the team. Third, when progress is visible, the team is motivated to continue to make progress. It is extremely easy to get stuck in a design, research loop. Working on the UI helps to break this loop by making it more clear exactly what is necessary and unnecessary at lower levels of the application.
What I describe above is not dissimilar to the XP concept of flow. All i’m saying is that for many teams, motivation hinges in the ability to see the fruits of their labor. I think many teams would benefit from investing a little bit more in the UI sooner than what would seem natural.
October 29th, 2007 by Dante
Last week we did an excercise at work that got me thinking about focusing on great design. I came away from the excercise with 3 things that I’d like to try and keep top of mind. The last one is the most important and critical for me to remember even outside the context of design
- There is nothing, absolutely nothing that can replace in-person, one-on-one interaction with an end user. The farther away from the user you are the more likely you are to 1) slow down development 2) over design 3) make incorrect assumptions 4) flat out design the wrong thing. Rapid prototyping (preferably right in front of the user’s eyes) is incredibly effective at identifying the core of an idea
- All of the details of a new product are incredibly important… except for the ones that aren’t :). I think most of the skill of really good designers is an ability to identify which details matter and which don’t. Focus on the details that matter. They are what make a product great. It’s okay to gloss over the others. At this point, i think only experience and intuition can tell you what is important and what is not.
- Don’t go on Autopilot! If are given a task, keep your eyes open for implicit assumptions. Assumptions can lock you in to a single way of thinking and cause you to ignore a potentially much better path. At all points during a task, ask yourself, “am i on autopilot?”
I think it is pretty common for people to go on autopilot. I certainly do. Autopilot can be induced by others when they provide a task or instructions with assumptions, but it can also be induced by one’s own self. Last week i realized i was on autopilot with respect to a particular task i had at work. After working on something for a few months straight, I became blind to a different way to approach the problem. My error here wasn’t that i entered into the task with faulty assumptions or constraints, it was that i didn’t continuously revisit the task at hand as external factors were changing. Something to watch out for in the future…
October 27th, 2007 by Dante
It’s been a while since i’ve posted. Writing has been going to applications rather than blog posts, but i now have quite a queue built up. this first up is pretty huge.
For probably a few months now, i’ve had this concept in my head. Granted, unlike some of my other ideas, I have no skills to actually accomplish this, so i don’t mind that someone else has done it
technology like this could be really huge for consumers that are focused on simple. I can see it now: the no install, no configuration, home theatre. All of your devices just work together because they are near each other. Data over bluetooth/wifi, power over powercast. Or the no wires needed cell phone charging. Your phone just charges b/c you are in the house. The list can go on and on…
Granted, technology like this is a little disconcerting. I’m not really sure how i feel about pumping even more waves into our lives. I hope that some good, credible, research is done on technologies like this to put health concerns to rest.
Another concern is whether technology like this is wasteful. I really know nothing about this type of thing. I would be kind of turned off to the whole thing if the device was a significant power drain.
Overall, very cool technology and i’ll look forward to seeing some cool consumer applications.
September 10th, 2007 by Dante
I had this idea yesterday! Why does this always happen to me? I feel like I get a really good idea. I get all excited about it because i think it is unique and then out of nowhere, bam! The exact thing i was thinking of. I feel like i am getting closer though. This one has only been out for a few months instead of a few years. Maybe the next thing i think of won’t release until a day or two after i think of it
Anyway, this is an awesome idea. I really love it. As soon as i found out about it, i immediately signed up and started filtering my feeds. I’m really glad that this service exists. I have about 30 feeds. i realize this isn’t a ton, but even at 30 the amount of articles to go through begins to get unmanageable. Digg alone puts so much junk into your feed reader it is ridiculous.
Thanks to aideRSS i don’t have to worry about this anymore. I will only see the most interesting and “best” (i realize that best is subjective, but i am assuming these guys are going to to a place where i can define best rather than them) news and information. It will let me concentrate more on the good articles and ignore all the rest.
Congrats to this team on a really cool product.
August 29th, 2007 by Dante
A few weeks back I had a realization about the way I (and i think many people) communicate. When you are communicating some anecdote, you need to be careful about the way you phrase it. For example, if i say to a friend, “Chicago is an awesome city, but it isn’t a walkable city.” Now, from the context of this sentence, you know that i am stating an opinion; however, if you held the other viewpoint, you might be tempted to disprove my statement with a counter-argument such as, “Thats not true, i walked from A to B” two weeks ago.
The problem with this exchange is two-fold
- I stated an opinion as if it were fact. I have started calling this the ‘implicit always’. If you do not qualify your statements, by default they are interpreted as ALWAYS being true
- The responder (interpreting my statement as an “always” statement) offered a single concrete counter example. His intent is to disprove my statement, but in fact, due to my prior mis-qualification, his argument does not prove anything at all. In fact, the two statements are totally orthogonal.
After i noticed this, i find this pattern of conversation popping up quite often. People begin to engage in conversation that is operating at two completely different levels. Often the two people do not understand why they are disagreeing. In my opinion, it is often (but not always!
) due to the implicit always.
From now on, i am on the lookout for the implicit always, and hopefully i can reduce the number of these silly disagreements.
August 22nd, 2007 by Dante
Being a new employee is really hard. Not only are you unfamiliar with the job, but you don’t know the people, the location, the lingo… Recently, my brother started his first job and some of his experiences have reminded me of when i started. Now that i am 2 years into my job, i’ve been trying to analyze what worked well and what didn’t.
From this reflection, i’ve come to a couple conclusions:
- NEVER give a new employee a task that includes reading documentation. It seems like a normal and logical thing to do, but you have to realize that documents (especially technical ones) are really only digest-able in context. As a new employee you have no such context and therefore reading docs is basically a useless exercise
- ALWAYS reserve large amounts of time to spend with your new employee. Block it off on your calendar. You probably need to block of time for at least the first week if not longer. On the first day you should plan to do nothing besides talking to the new employee. If you feel this investment isn’t worth it, then you might want to reevaluate why are you getting a new employee
- CREATE small tasks that are easily attainable for your new employee to tackle RIGHT AWAY. Getting things done, makes people feel good. If you can get your new employee used to getting things done, it sets a positive context for how they will work when more challenging tasks come along.
Do not underestimate how difficult it is to do these three things well. It takes a lot of time and energy; however, as a manager, time spend on your employees is time well spent.
August 20th, 2007 by Dante
About a week and half ago my Unstructured Time team launched our first beta version of Email Contact Manager (ECM). ECM is an application that makes the process of emailing customer much easier for users of QuickBooks software.
It’s really exciting to go through a product launch, no matter how small. I hope to have many product launches like ECM in the future.
Here’s the link:
http://innovation.intuit.com/blog/email-contact-manager
July 29th, 2007 by Dante

Generally speaking, I think that i possess pretty good interpersonal skills. It is something that i have worked on for many years now. For example, back at the beginning of high school i realized that i was not social enough. I worked on this throughout high school and now, i feel like i have gotten better. Although social things still don’t come as first nature to me, I’m happy with the progress that i have made. About a week ago, i realized i have another big gap in my personal skills. I realized that i need to be a much better listener. This kinda came as a surprise to me since one hears advice about listening all the time: “Make sure you stop to listen”, “let the other person speak”, “Be an active listener”,… However, like most things in life, you need to get hit over the head with something before you really understand the importance of all those sayings.
For me personally, I realized that when i disagree with what someone is saying, rather than listening, acknowledging, digesting and responding i basically just talk at the problem. I hear what someone said, disagree, and then state my viewpoint even if it doesn’t really address the concern that the other person has. This is a pretty selfish way to engage in conversation. My mistake is that i always think my argument is right (who doesn’t?) and just stating my infallible opinion will surely sway the other. In an disagreement, it matters less whose argument is right and more that the two people see common ground and mutual understanding.
I now realize that what i should be doing is applying another modicum of truth: “Seek to Understand.” I recently read this and it really resonated with me. I am not doing a good enough job of understanding not just “what” someone is saying but “why”. The why piece is critical and when engaged in a discussion of any type one must understand it.
Hopefully, now that i have recognized the issue, I will be able to slow course correct my bad listening habits. After all, how can i continue to learn if i can’t listen?