Wednesday, November 23, 2011

How to open multiple Gmail accounts in Chrome...

[Although the title of this post relates specifically to Gmail, this feature / functionality can be used for a wide assortment of online applications.]

I love the Google Web Applications, including Gmail, Calendar and Reader.  I also manage many Gmail accounts for various reasons.  One thing that I find myself doing a lot is switching from one Google Account to another.

Typically, I start my day by logging into my personal Gmail account.  However, there are times when I have to create a new appointment using a different Google Account.  I used to do the following steps:

  1. Log out of my personal account
  2. Log into the account that I want to create the appointment in
  3. Create the appointment
  4. Log out of that account
  5. Log back into my personal account
I always wished there was a way to stay logged into my own personal account, open a tab, log into the other account and do what needs to be done there, but unfortunately that does not work.  If you are already logged into Google, when you open another tab to another Google resource (gmail, calendar...) it keeps you in the same account.

The way around it is to use Chrome's Incognito mode.  If you are logged into a Google account, create a new window in Incognito mode (File -> New Incognito Window).  In that window, you can access another Google Resource under a different account, all the while staying in your original account on the first browser window.

This neat little trick was introduced to me by a co-worker, and it has been a real time saver.  I hope that it is a timesaver for you as well.

Pay it forward.

Thursday, November 17, 2011

What has been keeping me busy...

Every once in a while, your world gets turned upside down.  Someone challenges you to think different, and because of it you will never be the same.  After developing software professionally for the past eleven years, I have had the pleasure of being introduced to some new ideas and concepts, that have caused me to rethink how to develop software.

There will be more to come, but I thought I would send out this little teaser of what I have been spending time with.


Imagine someone suggesting that the way traditional way of scaling and boosting performance by adding more CPUs is not correct.  Then imagine this same company that made this suggestion is proving it by processing more than six million orders per second on a single thread.  LMAX has done just that, but more than that, they have completely open sourced their findings and their Java solution.  Wondering how to write your next multi-threaded application?  You should definitely give the disruptor some attention.

Event Sourcing

While learning about the Disruptor, I came across a new term that I had never heard of before, but one that I will never forget.  The easiest way to think about Event Sourcing is when you think about your bank account.  How does a bank determine your current balance?  It rolls up the debits and credits of your account since the beginning of your account.  What if we applied this same technique to our data model when developing software?  We would be able to look at the system and our data at any point in time.  Anyone likes to guess the state of the system at 2 o'clock in the morning after being woken up due to a production issue?

Events are not just for notifications, by Greg Young, is a great introduction to Event Sourcing.


Last, but not least is my current obsession.  During Greg Young's talk, he mentioned something called CQRS.  Since I was so impressed with what he had to say about Event Sourcing, I thought I would look up what CQRS is all about.  In a nutshell, it is an alternative to N-Tier Software Design (Database Tier, Services Tier, UI Tier).  It allows software to be designed and tested with behavior.  Grounded in the principles of Domain Driven Design, this architecture has taken me a while to understand, and I am still learning.  The implications of what is possible with it, are amazing.

To learn more, I would recommend the following:

If you would like to get your feet wet in what it would be like to develop software using these principles, I would highly recommend the Axon Framework.  I have been using it for a month now, and it is great.  Not to mention the documentation is outstanding and the responses that I have received on the mailing list has been wonderful.

So, that is what has been keeping me busy.....there will definitely be more to come, but I thought I would offer this as a primer before digging in too deep.