Occasionally, when building components for AEM (a.k.a. CQ5), you’ll find that a lot of the configuration for the component is done in the component’s dialog.  Sometimes, it makes sense for the dialog to open immediately after the component is added to a page.  This is something that, although not a default behaviour in AEM, can be configured with some creative JavaScript and working with the component widget API.

First, we will need to create an edit config for our component.  In CRXDE, add a new node named “cq:editConfig” of type “cq:EditConfig”.  Next, add a node the cq:editConfig node that was just created.  This node should be named “cq:listeners” with a type of “cq:EditListenersConfig”.  The cq:listeners node gets a couple of properties that will enable the dialog to open on add.  First, add the property “afteredit” with a value of  ”REFRESH_SELF”. Next, add the property “afterinsert”.  The value for this property is going to be a bit more complex:

function(path, definition) { 
    var dialogConfig = CQ.WCM.getDialogConfig(definition.dialog);
       dialogConfig.success = function(form, action){

    dialogConfig.failure = function(form, action){ 
       var resp = CQ.HTTP.buildPostResponseFromHTML(action.response);

    var dialog = CQ.WCM.getDialog(dialogConfig); 

This function will open the component’s dialog and save the content back into the JCR at the appropriate path.  After editing, the component will refresh itself and show the updated values.

This trick is especially useful if you have components that depend on values from the dialog, or have required fields in the dialog.  This will ensure that the required fields are authored because the dialog will be the first thing the author sees when adding the component.


Wow.  Another HUGE week in my pull list. It looks like a number of titles are double shipping for August, so that means more traffic than usual. Where to start this week?

The issue of Guardians of the Galaxy due out this week, was pushed back a month because of artist Sara Pichelli falling ill.  Fear not though, you can still get your GotG fix this week.  Guardians cast-member Rocket Raccoon gets a trade paperback release of issues 1-4 of his series from the 80′s. You can read all of these, right now, if you have a subscription to Marvel Digital Comics Unlimited.

Infinity drives on with the latest issue of New Avengers. It looks like New Avengers is going to deal with Thanos’s (latest) invasion of Earth, while Avengers is going to deal with the bigger threat of the Builders. Infinity is going to be the book that ties them together. Speaking of Infinity, ol’ Chins himself gets a conclusion to his origin story in Thanos Rising #5, which really should have been released prior to the first issue of Infinity.

In other, somewhat related Infinity news, Secret Avengers is kind of working off in its own little story line right now, but will be tying into Infinity in the coming months. It will be interesting to see how that sorts out.

Uncanny X-Men is leading into the Battle of the Atom event, while Uncanny Avengers are busy dealing with the Apocalypse Twins. A+X takes on a new format starting this month. There’s going to be an ongoing story instead of the one-shot team-ups we’ve seen for the last year or so.

My, hands down, favorite book right now, Matt Fraction & David Aja’s Hawkeye, continues this month as well. If you’re not reading this series, you should go catch-up on Comixology right now.

Last, but not least, Deadpool starts a new storyline, “The Good, The Bad, & The Ugly” this issue. Let’s hope that this series can find some of the sharp, witty humor that propelled the first storyline, “Dead Presidents” forward with such reckless abandon. The last storyline of a soul-hunting, time-travelling Deadpool, in “Soul Hunter“, left much to be desired, and fell a bit flat.

This week is definitely poised to be a big week, and things show no signs of slowing down next week when we get the next installments of Infinity and Hunger, along with new issues of Iron Man, Avengers AI, and last, but not least, the start of Battle of the Atom!

This week seems to be a bigger week after last week’s relatively light outing with six books on my pull list.  We see Avengers and Avengers Assemble get in on the Infinity event currently going on in the Marvel Universe.  Fables sees Rose Red, the human avatar of Hope, reforming the Knights of the Round Table. Fables is a book that is consistently good. I’ve not really seen a dip in form from this book since I’ve been reading it. The Indestructible Hulk continues his work as an agent of T.I.M.E.  In the Ultimate Universe, we see the approach of Cataclysm with Ultimates Disassembled continuing.  Finally, my personal favorite that I’m looking forward to this week:  The (New) Human Rocket meets SpOck in Nova #7.

I’m now contemplating adding Uncanny X-Men to my pull as well. I have a bad feeling that, as much as I was going to avoid it, I may end up pulling Battle of the Atom as well. Damn you, Marvel!

CacheBustingHTTPServer on GitHub

I’ve been using the Python SimpleHTTPServer as a way to help aid my HTML5 development efforts lately.  It’s a nifty little tool to allow you to start up a HTTP server in any directory you like on the port of your choosing.  Typically, when in development mode, I make sure I turn off caching in the browser.  For some reason, or other, the SimpleHTTPServer has not been responding properly and content (HTML, JS, CSS) was still being cached.  I needed a way to ensure that the server was telling the browser to not cache at all.

I did some googling and came across a Ruby script that explicitly turns off caching with headers.  It leverages the WEBrick ruby module (installed as a gem) to serve HTTP and allows manipulation of the headers.  It was a bit old and didn’t quite work right, so I took it and applied some needed modifications, then posted it up on GitHub, along with an install script.  After installing the server, all you have to do is run the command “cb-http” in the directory you want to serve as HTTP.  It defaults to port 8000, but can just as easily be changed by adding the port number behind the executable, i.e. “cb-http 8080“.

It’s still a work in progress, but it is serviceable and will prevent your browser from caching anything that it serves.

Fork The Project on GitHub

This week looks to be a big week with the second installment of Kick-Ass 3 coming down, along with the last Avengers before we get into Infinity. Over in the Ultimate Marvel universe, we have Hunger #2, which according to rumors will be the last issue for a couple of months, as #3 slipped.

I’m still not 100% sold on Kieron Gillan’s take on Iron Man, especially since it’s coinciding with Bendis’s version in Guardians of the Galaxy where I feel like the character is written with a smarter and savvier style.

Fairest and Deadpool Kills Deadpool look to be great books this week too. All in all, I’ve got 8 books to read this week, and per usual, I’ll be over to Titan to pick up my pulls this week ASAP!

This week is a big week as far as what’s coming out.  Hunger gets started this week and sees Galactus unleashed on the Ultimate Universe.  The Hawkeye annual is out, giving us some insight into what Kate Bishop is up to in CA.  New Avengers is still pushing us towards the looming Infinity event.  Uncanny Avengers is unleashing the Horsemen of Death on our heroes.  Finally, we have the penultimate installment of the What If?: AvX series; Hope has met the Phoenix, now let’s see what she does with this power.

Every once in a while, there comes a comic series that puts everything else being published to shame. It’s that fine fusion of great storytelling from the writer and artists that set it a definitive notch above everything else. We’ve seen that with seminal series such as The Dark Knight Returns, Watchmen, & Fables to name a few. Now, we can add Matt Fraction’s Hawkeye to that list.

Hawkeye is not Fraction’s first collaboration with David Aja. The gem that was their run on 2007′s Eisner Award-Winning Immortal Iron Fist was the first time these two came together. It offered glimpses of storytelling brilliance and was a good, fun read unto itself. Fraction went on to other works with Marvel, but has best been known for his character-defining run on The Invincible Iron Man with Salvador Larroca. Aja has been much more selective about his works, but has been prolific nonetheless.  The recently released 11th issue of Hawkeye only serves to underscore the brilliance of this collaboration.

Hawkeye #1

Fraction & Aja’s run on Hawkeye began last year, when the book was the best book you were not reading. By the end of the first arc, “My Life as a Weapon“, the series was firmly established as the best book of the year. Nobody was surprised when Hawkeye was nominated for an Eisner award this year, it was merely an acknowledgement of Fraction’s uncanny ability to redefine the superhero genre.

Hawkeye is a book that, at its core, is about a somewhat-regular guy, trying to do the right thing. Clint Barton just also happens to be an Avenger. Fraction has been very good, to date, about not being gratuitous with cameos from his Avengers teammates. As the oft quoted into page says, this book is about what Hawkeye does when he’s not hanging out with the Avengers. This book really is a case of Barton’s “regular life” being much more engaging than his day job with his superhero teammates.  That’s an impressive feat given who all he works with in his day job.

The neighbors in Barton’s building could be the residents of any apartment building in Brooklyn. Most of the villains encountered are not super-powered, but are dirtbags that most of us have run into at some point. At its core, Fraction’s characters in “Hawkeye” are the most relatable of any superhero comic that has been published in the last 20 years. Other than being a really good shot (presumably the world’s best), there’s not much super about this hero at all. He is a hero at his core, and his last consideration is always himself. He just wants to help his neighbors and try to be a nice guy. It doesn’t always work out like that, but his falabaility is what makes him genuine.  Here, Clint Barton is crafted as the most accessible “regular guy” hero in a sea of superheroes.

Hawkeye’s relationship with Kate Bishop, the Hawkeye of the Young Avengers,  is really the relationship that serves to keep Barton grounded.  She’s a strong, resilient woman who can handle herself and isn’t afraid to call Clint on his bullshit.  In a book titled “Hawkeye”, she’s as much the main character as Barton is.  While there is some sexual tension in the relationship, her real purpose is to balance Barton and be his moral compass when he just can’t see himself for what he is.  That is a situation that we all get into.  Sometimes we just need one of our friends to tell us we’re either on the right track, or we’re full of shit.  Kate does that brilliantly.

Overall, this is a series that can be read again and again.  The first time you  read it through you are nearly overwhelmed by the eloquence of the art’s simplicity and how that helps drive the story.  This is intended to be a story about a relatively simple guy.  This is not the story of Iron Man, or Thor, or Captain America.  This is the simple everyman archer of the Avengers, just being a regular person.  Clint’s stumbling through life is what endears him to readers.  He is one of us.  He is us.

Hawkeye shows us that heroes are not just super, but that they can be everyday people who have everyday problems. In today’s high-energy world of grand storytelling, this is a story that distills it’s main character to his true essence and makes him one of us.  It makes him a regular guy who just happens to be an Avenger.  As long as Fraction stays true to what makes Hawkeye a hero, this comic has the potential to be on everyone’s pull-list for a long time to come.

I ran into a problem recently with IntelliJ IDEA running on Mac OS X 10.8.  IntelliJ would open, but it started freezing when it was trying to open a project.  This is unacceptable.  There isn’t really a good way to open in “safe mode”, but there is a way to go in and keep it from opening the last project without needing to get into the app preferences.  

It’s actually a fairly simple fix.  Here are the steps:

1.  With a text editor open ~/Library/Preferences/IntelliJIdea12/options/ide.general.xml

2.  Edit the value for “reopenLastProject” from “true” to “false”

3.  Save the file and re-open IntelliJ.  

These steps should set you up with an IntelliJ that opens to the default screen instead of trying to reopen your project.  If it keeps hanging when you try to open a project, then you should probably think about re-downloading IntelliJ and replace your copy with a fresh one.  Your plugins will be preserved if you have to go this route.


Yahoo! CEO Marissa Mayer, via her HR department, recently announced that they are discontinuing their telework policy.  The reasoning is that they want to take a page from Google’s book in saying that face-to-face interaction spurs better collaboration.  The point that is being missed is that maybe 10 years ago that was true, but with the evolution of cheap video and teleconferencing solutions,  face-to-face collaboration no longer requires co-location.

Universal Mind prides itself in being a nearly exclusive telework environment.  When we need to collaborate side-by-side, a primary tenant of Mayer’s policy shift, we use tools like SkypeJoin.me and Google Talk to collaborate.  Other organizations leverage tools like Citrix’s suite of offerings to support their remote workforce.  Employees are finding ways to leverage collaboration technologies while not comprising client confidentiality and security.  These tools are essential for any telework environment.  Without these tools, there is no hope of success for a teleworking initiative.

Teleworking is a practice that promotes happier, more productive workers, despite what Marissa Mayer and Yahoo! think.  As the number of workers working off-premise increases, workers are learning how to thrive in the new work environment.  Managing time and productivity has become an individual responsibility; granted, not everyone is cut out of that responsibility.  This mindset change amongst workers will empower companies to focus on the actual task of managing work better, and focus less on the actual worker.  

Managing the work being done is not necessarily the same as managing the worker.  Newer and ever-evolving project management methodologies allow for project mangers to focus on the work and not the worker.  This allows workers to be autonomous productivity units as long as they are still producing the required output.  This greater autonomy comes hand-in-hand with the responsibility for the worker to produce viable work product.  Granting employees that autonomy and responsibility is something that larger organizations are reluctant to do because it is a process that can easily descend into chaos with proper oversight and management of the work being done.

Any firm that shifts away from this type of environment after it has become part of the company’s culture, as Yahoo! is doing,  will most certainly find itself in a precarious position.  It has yet to fully play out for Yahoo!, but the zeitgeist is that this will lead to a drain of talent away from the company. It’s a fair bet that there are a lot incoming calls from recruiters today across the Yahoo! offices.  This just goes to show that there will always work to be found for talented people, even in a down economy.  

We can only speculate on the deeper motives behind Mayer’s decision, but to most outside observers, this looks like just another nail in the coffin of a slow-dying former player in the information economy.  The next 6-12 months will either serve to vindicate or condemn this decision.  Will it hasten Yahoo!’s demise, or kick-start their recovery?  

The last eight years, I have been working in a remote, or to borrow the government phrase, “teleworking”,  environment.    I have no set office that I have to report into every morning, except when I am onsite with a client.  I am often in front of my computer working long before most of my neighbors are even on the interstate.  Despite this perceived luxury, I occasionally still find myself envying those stuck in gridlock.

Remote working, from the outset, has been part of how I define my job.  It’s nothing short of a fundamental mechanism of how my company, Universal Mind, works.  We pride ourselves on giving our people the flexibility to work anywhere at anytime.  I have co-workers who regularly work at locations like Starbucks, or co-working facilities like Roam, north of Atlanta.  

If a location has an internet connection, it becomes a valid work location.  I have co-workers who have spent the winter working at the beach to avoid harsh Canadian winters.  I, myself, have relocated for weeks at a time in the summer to the north Georgia mountains, yet maintained my productivity.  

If I have all of this freedom and flexibility to focus on my work, then why do I envy those making the daily trudge?  It’s simple:  mindset.  I didn’t know how valuable the daily commute was until I didn’t have it.  In the mornings, it was a time to transition my mind into “work mode”, and back out of it in the evenings. It allowed me to leave work at work and keep the stress of work from permeating my home life.  When working at home,  and the office is right down the hall from the living room and bedroom, that becomes extremely difficult.  

The dilemma now becomes this:  if workers don’t want to work in an office, but still want the mindset shift that a commute offers, how can they strike the balance?  It’s not a simple answer.  In the mornings, taking the children to school, and a morning visit to the local coffee shop serves as a good time period to get myself both caffeinated and into the work mindset.  

The afternoon, however, is a different story.  My oldest child gets home from school at 2:30pm, typically while I’m still working, unless I’m off.  My youngest child is usually picked up from daycare at 5:00pm.  I typically try to take the 4:00pm hour to do something not work related and reset my head out of work mode.  The things I use to shift myself out of “work mode” range from taking the dog for a walk to playing XBox for an hour or so.  Whatever it is I do, that time to reset my head out of work mode and into “family mode” is essential.  

My commute may not be an actual drive, but I still have to take the time to get in and out of the work mindset.  This is going to become an increasing challenge for the modern employee as more companies and government agencies move towards the teleworking paradigm.