A look back: Roughly 9 years of email behavior analyzed

In passing I have seen several plugins/apps/sites that offer to retrieve your email history and present some sort of analysis. My wife mentioned this recently and I thought this idea sounded like fun so I did a little processing on my own email. I have email records going back to late 2003 – just about the time I started undergrad. So with some grep/java/gnuplot magic I present to you a graph of the timestamps for every email I have sent since then. I just processed sent emails because my behavior should be more evident than in received.

Analysis

The graph contains a red dataset – my personal emails and a green dataset – emails sent from my university account. The Y axis is time of day and the X axis is the date. Each dot is an email sent at that time on the given day.

Region-by-region

  • The first region that you see is before I started logging school email. It just has personal emails… spanning all times of day/night. Seriously? I sent more email from 0000-0800 then 1600-2400???
  • Second region introduces university emails. During this time I also worked for the university part-time 0900-1800. Nothing too surprising here.
  • Third region is what I call early grad school. A general increase in both of my email volumes.
  • Fourth region – the ASSERT period. The ASSERT project was a massive 2-2.5 year research lab project with a lot of people working on it and a lot of work. Check out the huge increase in school emails. I bet you could spot deadlines in there too.
  • Fifth region – Summer internship
  • Sixth region – Late grad school. Post-quals, post-course work, post-ASSERT, just relaxed set my own schedule time
  • Final region – Real Job. Strict no-email hours, waking up early, less email, yup, that’s real life for ya.

Global observations

  • Maybe I imagine it but I swear you see that the time that I start sending emails in the morning gradually becomes later and later — same for cease time. What/who is to blame? Grad school or my GF/fiance/wife?
  • I sent more school email than personal: 5,164 messages to 4,849 messages
  • You can vaguely spot summer breaks. Look for swaths of lower green density bordered by bursts.
  • Sadly you can’t really spot certain events like: marriage, quals, proposal or defense.

Statistics

Number of emails sent per year:

Year Personal Count School Count
2003 - 57
2004 145 310
2005 412 310
2006 474 354
2007 728 815
2008 831 1,378
2009 804 1,140
2010 893 438
2011 438 464
2012 – to May 68 59

DROID X micro SD card speed test

Okay, so I know there must be 1k sites out there with this info already but I felt like finding out for myself.

Out of curiosity I wanted to know how fast manufacturer provided the micro SD card in my DROID X phone is. Today I did a test to figure that out.

Procedure:

  1. Copy contents of sd card to computer
  2. Reformat SD card using phone. For Droid X, go into settings -> SD card … -> Unmount -> Format
  3. Connect phone to PC in USB Mass Storage mode
  4. Download ATTO disk benchmark tool: http://www.attotech.com/products/product.php?sku=Disk_Benchmark
  5. Select the correct drive and test.
  6. Copy data back to phone (from step 1)

Results:

You can see that the write speed peaked at about 7.5MB/s and read peaked at just over 13MB/s. These speeds qualify this card as a class 6 card. Not bad considering the card is labeled as class 2. I expected far worse. So, if you are planning to replace this card and want one with at least the same performance buy class 6 or higher. Numerous forum users are reporting that cards higher than class 4 cause problems on the Droid X. I tried a class 10 and had to return it. Now I am using a class 4 with no problems.

Cross Compile libmysql

The key to cross-compiling libmysql is to google “cmake cross compile” instead of “libmysql cross compile”.  Took me a bit to think of this but it makes sense because cmake is the build system for libmysql.

My How-To

My how-to assumes you have a Linux system with standard development tools and compilers installed as well as GNU cross-compilers for the target platform.

  1. Download libmysql source: In the drop down box change to source. Otherwise you will be presented with pre-compiled binaries.
  2. Extract libmysql: tar -xzf mysql-connector-c-x.y.z.tar.gz
  3. run: cd mysql-connector-c-x.y.z
  4. Create a toolchain.cmake file (See section below)
  5. run: cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=toolchain-arm-linux.cmake
  6. run: make
  7. run: make install
  8. Your libs are in `pwd`/install/lib

Toolchain file

The toolchain file sets a few parameters for the cmake system to override the default behavior of searching for the system compilers. I modified a sample from vtk.org CMake wiki. Here is my modified sample that cross-compiles for an ARM processor running Linux.

# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
# specify the cross compiler
SET(CMAKE_C_COMPILER   /usr/local/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER /usr/local/bin/arm-linux-g++)
# where is the target environment
#SET(CMAKE_FIND_ROOT_PATH  /opt/eldk-2007-01-19/ppc_74xx /home/alex/eldk-ppc74xx-inst)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)