<CharlieDigital/> Programming, Politics, and uhh…pineapples

28Feb/06Off

One of Those Days…

Posted by Charles Chen

I feel like I have ADD today.

Focus! (as if that helps)

My mind has pretty much been in cruise control mode the last few days...can't think about technical things.  Perhaps it's just too much excitement and anticipation.

I'm changing jobs (yet again) by choice and necessity.  The passing of another slice of my professional life brings with it additional wisdom and bonds.  I'm getting better at these things.  At the same time, I feel somewhat lost inside as well.  Like the new kid at the school (a situation with which I have much experience with).

I do wonder whether I'll ever find that place where I'll feel whole and I'll feel at home.  Surely, nothing in life is so perfect, but I don't know that I've even come close in the last few years.  The closest I've been was way back in the summer of 2000, when I was working for Captain (Mr. Ezra Hedaya) at a little startup with big hopes.  That was a great summer.  Learned a great deal and worked with great guys and gals.  I think I've been trying to capture that ever since...to no avail.

Such concepts of stability are seemingly archaic.  It's not just jobs, it's everything in life.  Lease a car.  Free agency.  Netflix.  I don't know that I mind it; it's not as if my peers with more stable positions are much happier than myself.  In fact, from a dollars and cents perspective, I've been better off than most of my peers.  For the first time, I'll be making more than my mom...a 20 year veteran of the Mainframe Era (of course this era never ended...the vestiges still flourish in financial and manufacturing industries).  More than that, this constant shifting has also shown me more possibilities and better opporunities.

For now, at least, I'm looking forward to the possibilities and the future.  New people, new places, and, most importantly, new opporunities to show 'em my stuff.  My brain is exploding with ideas with no guidance to shape them and bring them to fruition.  Had I known what I know now, when I worked for Captain, we'd all be rich men by now, I think.  At the same time, I never feel like I know enough.  There's always too much to read, too much to learn, and too much to explore...bookstores make my head want to explode; I actually feel anxious when I walk into one.  The sight of neatly stacked books makes me feel like I have tons of catching up to do.  Too much to do.  I actually feel guilty when I walk out of a bookstore without a purchase.  As if I've somehow lost a leg of some imaginary race for wisdom and knowledge (but I always get over it once I'm break the plane of the exit :-D).

One step at a time, I guess.  My brain is always thinking into the future, which makes it hard to focus on the now, at times.  I find it weird that some of my peers seek my advice when it comes to careers...I myself seek it from those with more experience in these matters than myself.  I don't know that I want to buy into all of what they are saying (of course, I'll regret this in a few years).  But I always try my best to offer whatever insights that I have when I do get pinged (not much :-S).  It's always interesting to see where some of those midnight debaters and GoldenEye marksmen are today :-)

So, how is life?

Filed under: Random Thoughts 1 Comment
28Feb/06Off

The Workspace

Posted by Charles Chen

DSC01696.JPG

This was from about a week ago. There's an extra computer now, an old AMD based machine that I'm using as a source control server. Way too cramped now. Priority #1 when I get a new house: office.

Filed under: Life 2 Comments
27Feb/06Off

What is Terrorism?

Posted by Charles Chen

Came across an incredibly deep editorial by Devin Faraci on why "V for Vendetta is the most dangerous film of 2006".

What’s happened in the world in the last few years is that we’ve had our dialogue taken away. Remember when conservatives freaked the fuck out about the PC movement – where they took offense at the idea that maybe it wasn’t cool to use unpleasant racial or sexual remarks? When they decided that being polite was some kind of liberal conspiracy? Well, we live in a world which has become PC times a thousand, where to even question the US occupation of Iraq or the way that the War on Terror has been fought is to be un-American. If you try to even begin to understand why a huge percentage of the Middle East hates us, you’re a jihadist sympathizer. Why do you hate America so much with your questions and refusal to just accept the party line? But for the love of God, don’t tell me I can’t call gays “faggots,” because that’s PC nonsense. V For Vendetta seeks to dynamite open that blocked dialogue and to confront us with many issues – what is our security worth? Is terrorism inherently evil? What the hell is terrorism anyway?

V isn’t the only place these questions are being asked. Last week’s episode of Battlestar Galactica impressed me as it showed heroic human resistance fighters on Cylon-occupied Caprica blow up a café full of quite possibly innocent human-looking Cylons. Show creator Ronald Moore and his writers are no dummies – they took the characters we sympathize with, that we understand, who have been almost driven to extinction by the unspeakable aggression and brutality of the Cylons, and put them in the position of a Palestinian terrorist. We never saw what any of the Cylons killed in that explosion had done before. They may have been administrators or accountants – at least one was a barista. But the human resistance didn’t care if they had had a direct hand in the attempted genocide of the human race – they were complicit, guilty by association. And brilliantly the show puts us in the mindset of a terrorist. That's the beauty of what art can do, and how it can present to us new ways of looking at issues we thought we had already covered.

Some would say that’s glorifying terrorism; smarter people would say that’s examining how terrorism happens. Which is V? I think in the end it’s riding a fine line; it’s not explicitly condoning terrorism, but it is making the argument that sometimes the people need to commit violence against the state. Ironically, this is a statement that conservatives should agree with – it’s the basis, they say, of their impassioned defense of the Second Amendment. Violence against the state will always be classified as terrorism – by the state. If the modern concept of terrorism had been in vogue in 1776, I can guarantee to you that that would be how the Revolutionaries would have been smeared by the British. Instead they had to stick to the usual old-fashioned lines of treason and such. In the end the American Revolution was the illegal use of violence to make political change – and if you don’t believe it was illegal, I suggest you do some reading as to find out why the signing of the Declaration of Independence was such a big deal. Each man who signed that document essentially signed his own death warrant, should he be captured – the British didn’t recognize American sovereignty and saw the Revolutionaries only as traitors who would be hung.

I definitely recommend reading the rest of it. Very well written and puts into words some thoughts that at least I've been having about some of the policies that are coming out of the Bush administration these days.

Very much looking forward to this movie.

Filed under: Entertainment 1 Comment
24Feb/06Off

Of Creativity, Skill, and…Television?

Posted by Charles Chen

I've never been much of a television guy, except for news and sports, especially "reality TV" shows.  But two shows have really caught my attention recently: Dancing with the Stars and Project Runway.

I think what catches my attention about these shows is the incredible amount of creative energy and passion displayed by all of the participants.  You'd figure that a guy like Jerry Rice, the greatest wide receiver ever, would have been through it all and experienced all of the emotion and passion that comes with competition.  And yet, you can just see how much he's enjoying himself and really, really working hard at this competition.

Drew Lachey is also amazing.  Like all of the other competitors, he is really, really into it and really driven.  (Just watched his final dance, non-freestyle, and it was amazing, perfect 30!).

The person that I'm more amazed by is Stacy Keibler.  Wow, she is beautiful.  Beautiful body and, more importantly, amazing skill.  Of the non-professional dancers, she is definitely the best one on the show (Drew is second).  Seductive, silky smooth on the floor, and absolutely amazing in all respects. 

When asked about this experience, Stacy said:

"This is the first thing I've done in my life where I have fans who are children and women, instead of just men...If I had the chance to do it again, I wouldn't think twice.  It reallly has changed my life.  I've been offered movies and I'm auditioning.  I kind of wake up every day with a smile on my face and pinch myself."

Maybe more schools should add ballroom dancing to their curriculum?  But to be sure, this is great, enjoyable television.

I also caught a short piece in USA Today on Dolly Parton's Oscar nomination for her song Travelin' Thru written for the movie Transamerica, a movie about a pre-operative transsexual.  Now I've never really known much about Dolly Parton, but this piece really boosted my respect for her a hundred-fold.

"Some things are strange to me, and some things are odd," says Parton, 60.  "But I don't condemn.  If you can accept me, I can accept you."

"Having a big gay following, I get hate mail and threats" she says.  "Some people are blind or ignorant, and you can't be that prejudiced and hateful and go through this world and still be happy.  One thing about this movie is that I think art can change minds.  It's all right to be who you are."

Just thought I'd share :-)

23Feb/06Off

WinFX February CTP

Posted by Charles Chen

This is definitely something I'm going to have to download and play around with in the next few weeks.

Filed under: .Net, Self Note No Comments
22Feb/06Off

Never Forget…

Posted by Charles Chen

Poland!

Pictures 5, 8, and 10 = teh funneh :-D

Filed under: Links|Random 2 Comments
21Feb/06Off

Random DevTools Entry: #005

Posted by Charles Chen

I'm feeling a mighty JavaScript kick lately.

What's interesting is that the more C# evolves, the more it starts to resemble JavaScript.  What with anonymous methods, type inference (it even uses var), and the LINQ syntax, my JavaScript juices are flowing.

There are a few things that I never wrapped up with my JavaScript development experience.  I think the most glaring one is JavaScript inheritance.  Some would argue that JavaScript inheritance is purely fluff (see second comment); it's not needed and JavaScript is probably more powerful for not adhering to OOP principles.

I dunno...it seems like one of those things that would be useful for building certain structures and UI elements.

I've been aware of Douglas Crockford's implementations for quite a while now.  I came across it when I first picked up on JSON about a year and a half ago, but I never particularly liked it since it "looked weird".  So today, as I was looking around to see if any alternatives have risen due to the recently revived JavaScript development, I came across a posting on SitePoint.  I rather like the simplicity of it all and it looks like it works, so I'll have to keep that in mind if I need to use it.

As I'm also thinking about writing a major web based rich UI application in the next few months, I've also been looking at some of the JavaScript libraries, toolkits, and frameworks that are out there.  I came across the Dojo Toolkit today and it looks fairly interesting.  I especially like the bind() syntax.  However, the toolkit does seem somewhat incomplete at the moment...I'll have to take a look at it in more detail and see if it has the features I need.  It's currently lacking any demos, which makes it hard to evaluate without a deep dive.

This brings up another interesting issue that has annoyed me with the proliferation of all of these JavaScript and AJAX libraries: instead of pooling talent and building The Best Possible Solution, we have teams going off left and right building 15 different impelementations of the same thing with 15 different design principles and 15 different philosophies.  Now this isn't necessarily a bad thing, as there are times when you would prefer a lighter implementation to a heavier one, for example, but it would make a hell of a lot of sense to have at least a common convention in terms of naming, package layout, and what not.  Ideally, what I'd like to see is some of these development tracks merge so that we may have more complete frameworks/libraries/toolkits.  Have one mega package that comes in mega-lite flavor, you know? 

With so many libraries/frameworks floating around, it makes it difficult to find the exact set that does what you need and if you do, you need to start worrying about whether they'll play nice.

I'll stop, because I'm just ranting now :-)

Filed under: DevTools, Rants No Comments
21Feb/06Off

Deep.

Posted by Charles Chen

From my coworker, Igor:

It is too late for me. I had my formula. Man who clean cow's crap all his life afraid mostly that cow will die.

This was his reaction to Paul Graham's essay, How to Do What You Love.  A short excerpt, a few paragraphs, of the excellent essay:

To do something well you have to like it. That idea is not exactly novel. We've got it down to four words: "Do what you love." But it's not enough just to tell people that. Doing what you love is complicated.

The very idea is foreign to what most of us learn as kids. When I was a kid, it seemed as if work and fun were opposites by definition. Life had two states: some of the time adults were making you do things, and that was called work; the rest of the time you could do what you wanted, and that was called playing. Occasionally the things adults made you do were fun, just as, occasionally, playing wasn't-- for example, if you fell and hurt yourself. But except for these few anomalous cases, work was pretty much defined as not-fun.
...
It's hard to find work you love; it must be, if so few do. So don't underestimate this task. And don't feel bad if you haven't succeeded yet. In fact, if you admit to yourself that you're discontented, you're a step ahead of most people, who are still in denial. If you're surrounded by colleagues who claim to enjoy work that you find contemptible, odds are they're lying to themselves. Not necessarily, but probably.

I think this is a must read for anyone between the ages of 16 and 30; it's a revelation to why many of the youth today are mired in apathy and seemingly dragged down by the weight of responsibility.

Filed under: Life No Comments
20Feb/06Off

Letter to a Colleague

Posted by Charles Chen

I don't know if you're
familiar with this book,
but it is the definitive catalogue on the most common design patterns that are
in use in object oriented systems.  You will often hear these four authors
referred to as "Gang of Four".

Perhaps the biggest name in this space is one Martin
Fowler.  His book, Patterns of Enterprise Application Architecture,
is the definitive book on building enterprise class applicaitons
(and what that means is open for debate).  This book and the concepts are
important as you will find, repeatedly, that many of the projects that come out
of Microsoft's Patterns and Practices Group reference patterns that are
documented in this book (see the bibliography) section of the Enterprise
Library.

Note that both of these books are language agnostic
and, instead, cover the concepts that go into building interoperable,
maintainable, and reusable code.  In fact, you will find that both of these
books and the concepts mapped out within are extremely common in the J2EE world
and are only slowly trickling down in the .Net/MS space due to the leadership
position that the Patterns and Practices group has taken with the release of
Enterprise Library, but more importantly, the birth of .Net.

While I've read through the GoF book, I have not had a
chance to delve into the PEAA book yet (it's next on my list of books this
year).  And, as I mentioned at lunch, even with a full understanding of these
concepts, it's rare that people will come with a full design first.  It's an
organic process of building, refactoring, rebuilding, and so on.  You must
absolutely have the right type of working environment and leadership to make it
work.

One common problem that arises when you read this book
is that the concepts in it are fairly useless unless you can get everyone in
your team to buy into it.  For that to happen, everyone has to understand the
common language.  And for that to happen, everyone will have to have read the
books.  Since very few consultants that I've met actually read text on this
level (abstract, general principles), it's a rarity to be able to discuss design
patterns with other developers and it's simply not worth the effort unless the
development team is really looking to learn (I've been in one environment where
the GoF book was purchased for every member of the dev team and required
reading).  Actually, prior to coming here, my plan was to do a "book of the
month" deal with one of my co-workers at [Company A] whereby we'd consume one book a
month on software engineering practices (be it architecture, programming
philosophy, computer science "classics", or whatever) and discuss on a daily
basis (a chapter a night, 30-45 minutes of discussion in the morning).  I think
this is really the only way to improve the development practices of an entire
organization...you must have people that are willing to learn (and sacrifice
time to do so) and you must have leadership that is willing to sponser and
encourage such learning. 

In most environments, like [Company B], when consultants
are hired, they are not hired to bring in best practices and build reusable code
or act as software engineers; there is no concept of fostering better
development practices because the leadership cannot see the value in it (indeed,
the value is abstract and is only tangible in the future).  In these
environments, consultants are viewed as extra hands to write code.  It becomes
the decision of the individual consultant as to whether he/she chooses
to utilize these design patterns (or any OOP practices at all).  When used in
such a way, the power of building reusable code is highly limited as developers
are essentially working in isolation until integration (which defeats the
purpose going through the trouble of creating reusable software).  In
all honesty, you will only see such practices in software development shops,
smaller companies that have leaders that buy into these practices and patterns,
and places where there has been a "grass roots" movement by developers to
improve their skills.  In the large organizations that I've worked with,
including [Company C], [Company D], [Company E], and [Company F], only [Company F] had developers that were actively pursuing better development
practices.  And even there, only a small group of them (only two that I met)
were capable enough to do so.  I briefly worked with one developer at [Company Z]
(before we were [Company A]) whom also shared a passion for software engineering
practices and design principles.  Unfortunately, he left the company in May/June
of last year in what was a very disappointing day for me (it's always upsetting
when a company cannot retain top talent like this guy).

In my situation, as I've mentioned, I'm not one to
force my views on other developers, especially ones that I've not worked
with.  Even beyond that, as I've mentioned, it's a collaborative effort; it's
pointless to speak the language of design patterns, abstraction, and building
reusable code when no one else understands and no one else has interest in
learning it and this culture at [Company B] does not encourage it.

So, that's my take.

Filed under: Random Thoughts 1 Comment
19Feb/06Off

Nate Robinson is my Hero

Posted by Charles Chen

For those that aren't familiar, Nate is the "vertically challenged" rookie point gaurd on the New York Knicks basketball team.

Yesterday, this 5 foot, 7 inch human spring won the slam dunk contest in the unlikeliest twist of events.  Just when it looked like Andre Iguodala was about to coast to a victory in the slam dunk contest, Nate pulled out one of the most flawlessly awesome dunks, EVAR. I absolutely exploded off my chair when he performed the dunk with Spud Webb and completed it on the first try.  Absolutely amazing.  Scared the crap out my wife and cats when I started screaming like a mad man.

I think what's more amazing is Nate's physical and mental toughness.  On that first point, the man exerts a ton of energy to be able to be able to propel himself vertically as high as he does against the laws of gravity (I'm not about to bust out the physics equations).  I give the man a great amount of credit for that as he failed to connect, try after try, on several of his dunks.  And yet, there was no quit in his body; there was no way he was going to give up and settle.  You could tell that this man willed his body to do this bidding.  Absolutely amazing.  On the second point, some people would be mentally frazzled by the failure of the first 10 attempts and accept that it was not meant to be.  On the contrary, you could sense that the thought of failure and accepting said failure never crossed Nate's mind; you could see the determination in his eyes, try after try.

Such determination and physical toughness was electrifying to watch.  I was simply captivated by this slam dunk contest.  The very best that I can recall ever having witnessed and one that will be memorable for generations to come, I think.

Filed under: Life, News No Comments