Wasted Nights: Download My Verbose Watchface For The Pebble Watch

July 5th, 2015

Verbose Watchface Banner

In these weeks you are probably hearing and reading about smartwatches almost everywhere and you probably know why. Well, even if I am a fan of that Cupertino-based tech company, I won’t talk about the Apple Watch in this post.

In fact, recently I succumbed to my nerd side and during an impulsive online shopping session I found myself buying a Pebble watch… So impulsive that I thought I had bought the new, cool and colorful Pebble Time, but after the order was closed I realised that my money had been spent for the cheaper legacy black and white version

Not so bad, afterall: with my black Pebble it’s been love at first sight: the battery lasts 7 days (I can confirm) and it supports both iOS and Android phones as companion devices. Like most smartwatches, it connects to the phone via BlueTooth LE in order to display notifications, email, phone calls, etc. And it also looks super-nerdy!

The most interesting thing about the watch is the availability of a well documented SDK supporting C and JavaScript languages, with a well-done online IDE called “CloudPebble” offering a super-easy programming environment with built-in emulator. In fact, it’s possible to create Apps and Watchfaces to be installed on the Pebble: the main difference between the two is that a Watchface is a kind of “home screen” of the watch and can access to any of its features (except using the buttons), while an App can be launched from the Pebble menu and can use the 3 buttons on the right for a basic user interaction.

Cloudpebble IDE

A screenshot of CloudPebble online IDE

Of course I was into Cloudpebble a minute after having turned on the watch…

My first project is the Verbose Watchface, offering in a single 144×168 pixel Pebble window a bunch of data, with a terminal-inspired look & feel (no graphics or cool typography this time!).

Pebble Verbose Watchface in action

Pebble Verbose Watchface in action

My Pebble Verbose Watchface displays all the following informations:

  • 24 hours clock (“military time”)
  • 12 hours clock (“civilian time”)
  • Seconds
  • Date (yyyy-mm-dd format)
  • Weekday
  • Yearly week number (e.g., week number 27 of 53)
  • Yearly day number (e.g, day number 187 of 365)
  • Watchface uptime (tip: by refreshing the watchface you can use this feature to start a simple time counter)
  • BlueTooth connection status (this tells you if your iOS/Android phone is connected to the Pebble or not)
  • Pebble battery level %
  • Temperature and conditions for your location (data from openweathermap.org) updated every 30 minutes.

Note: The full app code (C + JS) is opensourced and available on GitHub.

How And When You Should Use Canonical URLs For Better SEO

April 12th, 2015

Too often ignored or misused, canonical URLs represent a key factor to improve your websites’s SEO and they are actually a very simple technique to understand and deploy.

Basically, canonical URLs tell Google (and other search engines) which is the preferred URL they should index when the same content is served through multiple URLs. This is a very common issue on dynamic websites or online stores. Look at the following examples:

EXAMPLE #1:

http://www.example.com/content.html
http://example.com/content.html

Your server is configured to offer the same content with or without the “www.” subdomain (this is super-common). Generally, it is suggested to use the complete version (with “www.”) as the canonical URL.

EXAMPLE #2:

http://www.example.com/content.html
https://www.example.com/content.html

Your server is configured to offer the same content on HTTPS protocol (for example when the user is logged in). Google suggest to set the HTTPS version as the canonical URL.

EXAMPLE #3:

http://www.example.com/
http://www.example.com/index.html

Your server is configured to offer your default home page with or without its file name. You should use the domain-only version (without file name) as the canonical URL.

EXAMPLE #4:

http://www.example.com/category/post-name
http://www.example.com/category/post-name/

Your server is configured to offer the same content with or without the trailing slash. It’ usually suggested to use the version with trailing slash as the canonical URL.

EXAMPLE #5:

http://www.example.com/dresses/long-red-dress.html
http://www.example.com/dresses/red/long-red-dress.html
http://www.example.com/dresses/long/long-red-dress.html

Dued to dynamic URLs, the same page is reached through different URLs as a result of category browsing.

EXAMPLE #6:

http://www.example.com/cat.php?p=dress&c=red&t=long
http://www.example.com/cat.php?p=dress&t=long&c=red
http://www.example.com/dresses/red/long/

Dued to dynamic URLs, the same product category can be reached through different URLs (e.g., depending on different querystring parameters).

All the above examples would greatly enjoy a correct use of canonical URLs in order to:

  • Consolidate duplicate or similar content on search engines
  • Consolidate tracking metrics for a single product, article or category served through different URLs
  • Defining the URL you want people to see

How To Setup The Canonical URL Attribute

Now, take the example #1 above and suppose you want to set http://www.example.com/content.html to be the prefered URL. The easiest and most effective method to do this is including the following line into the <head> section of that page:

<link rel="canonical" href="http://www.example.com/content.html" />

It’s just that simple. Rememeber to always use absolute paths and not relative paths when declaring canonical URLs. The following line, for example, is wrong:

<link rel="canonical" href="/content.html" />

Discovering The Pomodoro Technique

March 15th, 2015

Maybe you heard something about a time management system called the Pomodoro Technique. It’s a very simple but effective way to organize your daily to-do lists splitting each task into fixed time units. Each of those units is a “pomodoro” and lasts a total of 30 minutes (25 minutes of work with a 5 minutes break).

The Pomodoro Techique was originally thought for personal time management, but can be applied to team and organizations, too. In fact, we can consider it like an evolution of Timeboxing, one of the core methodologies of Agile Project Management.

The following video offers a quick walk-through on how the Pomodoro Technique works:

I can see 3 main advantages of appliying the Pomodoro Technique:

  • A different way of seeing time: the Pomodoro Technique works with time, instead of struggling against it. This alleviates anxiety and leads to enhanced personal effectiveness.
  • Avoid distractions: one of the main rules of the Pomodoro Technique is that a “pomodoro” can’t be interrupted. Reading and writing emails, taking phone calls, social networking: distractions are constantly bombarding us, but most of them can wait a little.
  • A better use of the mind: forcing us to take short, scheduled breaks allows greater clarity of thought, higher consciousness, and sharper focus. This is impossible when you push yourself too hard.

How To Start Using The Pomodoro Technique

Getting started with the Pomodoro Technique is super simple.

STEP #1: Write down your to-do lists for today, with a set of defined tasks ordered by priority.

Pomodoro 1

STEP #2: Get a countdown timer. You can use the one in your smartphone, but the best option to stay in the “Pomodoro mood” is getting a tomato-shaped kitchen timer (here’s a perfect one from Amazon). Set it to 25 minutes and start the clock.

pomodoro-timer

STEP #3: Work on the first task until the timer rings, then take a short break. At the end of each cycle, add an “X” next to the current task.

Pomodoro 2

STEP #4: After 4 “pomodori”, take a longer break of 30 minutes.

Mastering the Pomodoro Technique

To become a “Pomodoro Master”, you should complete a series of increasingly difficult objectives. Note that you should never skip to the next level if you have not completed the current one.

OBJECTIVE #1: this is the entry level and to pass it you only have to (successfully) use the Pomodoro Technique for you daily tasks, following the 4 steps listed before.

OBJECTIVE #2: to reach this level you must be able to focus on your tasks without any interruption while the Pomodoro timer is going. No phone calls, no Facebook, no emails.

People who start applying the Pomodoro Technique are always amazed when they measure the Pomodoros spent on work and study (without unhandled interruptions) and those used for organizational activities (which in part come from dealing with interruptions). In some teams, members start off with no more than 2-3 Pomodoros actually dedicated to work per day per person; the remaining Pomodoros are spent on meetings, phone calls, and emails.

OBJECTIVE #3: now you should be able to make accurate extimations on how many “pomodoros” a task will require.

OBJECTIVE #4: at the beginning of each “pomodoro”, add a small recap of what you have done so far (3-5 minutes); at the end, add a review of the work you’ve done in the current “pomodoro”. Note that its total duration should not change.

OBJECTIVE #5: set up your personal timetable. It will set your limits, motivating you to do your best to complete the tasks without exceeding the available time. And, more importantly, it will separate clearly your work time from your free time.

A timetable measures the results of the day. Once we’ve written up the To Do Today Sheet, our goal is to carry out the activities listed on it with the highest possible quality within the set timeframe. If time runs out and these activities aren’t done, we try to understand what went wrong. In the meantime, we already have an invaluable piece of information: how many Pomodoros we managed to work that day

OBJECTIVE #6: now that you mastered all the fundamentals of the Pomodoro Technicque, it’s time to define your own personal objective, like being more productive and efficient, producing higher quality deliverables or maybe applying the technique to your team!

Are you interested? Then you should read the complete and original Pomodoro Technique paper by Francesco Cirillo.