Friday, September 7, 2012

Benefits of Standing Desks

One of the perks of working from home is that I have total control over my work environment: chair, desk, computer, climate, light, etc*.  However, like many professionals, I sit for a lot of the day; 45+ hours a week, 48+ weeks a year for the past 12 years.  This isn't healthy or natural.  I've been pretty good about getting exercise regularly, but since 45, or more, of my 120 waking hours during a week are spent working, there is a great opportunity to lead a healthier lifestyle with simple changes during work; small, simple sustained improvements can have a huge overall impact on your lifestyle and goals.

Wednesday, September 5, 2012

Expanding multiple sections of a JQuery Accordion

I've loved using jQuery and jQuery UI on my current project.  They work, on all browsers, and they make things simple.  They are powerful and extensible - great tools. However, one thing that has really annoyed me is the jQuery UI accordion.  They have this snippet in their documentation:

NOTE: If you want multiple sections open at once, don't use an accordion

This drives me nuts!  If you have to write a note about something that the control doesn't do, bolded and in a larger font size in the documentation, because lots of people want to do that, or are asking for it, the control should probably perform that function.

This is exactly what I wanted to try out for one of our UI prototypes.  Usually, we wanted one section open at a time (the accordion behavior), but sometimes we want to see all 5 sections (say for printing or so you don't have to remember the first section when looking at the last section.

I found this excellent example of how to hack the jQuery UI accordion to allow multiple sections to be expanded at the same time: http://jsbin.com/eqape.

I then added this bit of JavaScript to expand and collapse all the sections.  These are hooked up as click handlers for a couple of icons on the page.


Expand/Collapse All
function accordion_expand_all()
{
  var sections = $('.accordion').find("h3");
  sections.each(function(index, section){
    if ($(section).hasClass('ui-state-default')) {
      $(section).click();
    }
  });
}

function accordion_collapse_all()
{
  var sections = $('.accordion').find("h3");
  sections.each(function(index, section){
    if ($(section).hasClass('ui-state-active')) {
      $(section).click();
    }
  });
}

This improved the jQuery accordion significantly and I hope we see all this behavior native to the control sometime in the future.

Monday, September 3, 2012

How I backup my photos

As my wife will quickly let you know, we lost some important photos of a trip we took due to a hard drive crash.  Since then, I've become very paranoid about how I store and back up our photos and videos.  Here is how I now back my photos and videos.