131110Health Quality Ontario wins Silver 2013 W³ Award

Silver 2013 W³ Award

Not one, but two awards were won by the HQOntario.ca website. In addition to the prestigeous Summit Awards, the W³ Awards Silver Award honors creative excellence on the web, and recognizes the creative and marketing professionals behind award winning sites, videos and marketing programs. Simply put, the W³ is the first major web competition to be accessible to the biggest agencies, the smallest firms, and everyone in between. Small firms are as likely to win as Fortune 500 companies and international agencies.

The W³ is sanctioned and judged by the International Academy of the Visual Arts, an invitation-only body consisting of top-tier professionals from a "Who's Who" of acclaimed media, interactive, advertising, and marketing firms. IAVA members include executives from organizations such as AvatarLabs, Big Spaceship, Block Media, Conde Nast, Coach, Disney, The Ellen Degeneres Show, Estee Lauder, Fry Hammond Barr, Microsoft, MTV Networks, Polo Ralph Lauren, Sotheby's Institute of Art, Victoria's Secret, Wired, Yahoo! and many others.

I had a large hand to play in the development of the website, and I am so very happy to have received another award for the hard work I contributed to this project.

Share Button

130729Health Quality Ontario Website Wins 2013 Summit Creative Award

Photograph of Mike holding award. Inset zoom detailed award.

Health Quality Ontario was the recipient of the Silver Summit International Award in the Government Website category. Summit International Awards recognize "best in class" creative and communications excellence. HQO's site competed with over 5,000 submissions from 23 countries. I am very proud to have received this award; it is a reflection of the hard work and dedication I put towards designing and developing something useful and engaging for all citizens living in Ontario. I'd like to thank my colleagues at HQO for their patience and assistance with making this project what it is today.

If you haven't had a chance to check the website out, go here:
http://hqontario.ca/

Share Button

130724Time Machine Auto-mount/unmount Drive OS X

I have a USB backup drive connected through my monitor to my Macbook Pro and I often find myself wanting to quickly unplug and go without the consequences of the drive not being ejected properly. As well, I need the drive to be mounted so that Time Machine can do its automatic backups.

Well I found a way to avoid having to manually mount and unmount (eject) my drive by using shell scripts and LaunchAgents to achieve the task. The added benefit is that I have control over the timing of the frequency of the Time Machine backups too!

Note: This works on OS X Lion or later.

Step 1

Create a plain text file named timemachine_mounter.sh with the following contents:

#!/bin/bash
# Set the drive name that we mount for our backups 
vol_mount="Time Machine"
# Conditional argument: if mounted entry has the volume name in the variable string
if ! mount | grep "$vol_mount" ; then
	# Drive isn't mounted, so: mount. A LaunchAgent will pick this OnMount action up and run the backup script
	diskutil mount "$vol_mount"
else
	# Drive is mounted, so: run the backup script
	timemachine_backup.sh
fi

Save the file in the /usr/local/bin/ directory at the base of your system drive. You may need to first save the file to your desktop then use finder to move it to that directory, it will ask to authenticate. Or use sudo in Terminal to move the file there instead, and make sure that ownership belongs to you (the user that logs in), in my case the assigned user:group was mike:staff.

Step 2

Create a plain text file named timemachine_backup.sh with the following contents:

#!/bin/bash
# Set the drive name that we mount for our backups 
vol_mount="Time Machine"
# Conditional argument: if mounted entry has the volume name in the variable string
if mount | grep "$vol_mount" ; then
	# Drive is mounted, so: backup and then eject after
	tmutil startbackup -b && 
	diskutil eject "$vol_mount"
fi

Save the file in the /usr/local/bin/ directory again with the same ownership credentials as the previous script.

Step 3

Create a plain text file named com.apple.TimeMachine_OnLoadSchedule.plist with the following contents:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.apple.TimeMachine_OnLoadSchedule</string>
	<key>RunAtLoad</key>
	<true/>
	<key>StartInterval</key>
	<integer>7200</integer>
	<key>Program</key>
	<string>/usr/local/bin/timemachine_mounter.sh</string>
</dict>
</plist>

Save the file in the ~/Library/LaunchAgents/ directory inside your User folder/directory (~/).

What the above file does is register in the system to run the mounter script:

  • when I first log in
  • consecutively every 2 hours

Step 4

Create a plain text file named com.apple.TimeMachine_OnMount.plist with the following contents:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.apple.TimeMachine_OnMount</string>
	<key>StartOnMount</key>
	<true/>
	<key>Program</key>
	<string>/usr/local/bin/timemachine_backup.sh</string>
</dict>
</plist>

Save the file in the ~/Library/LaunchAgents/ directory as well.

What the above file does is register the system to run the Time Machine backup script whenever the drive gets mounted. This can happen when:

  • I physically connect the drive
  • the scheduler LaunchAgent above, runs the driver mounter script

In Terminal, make sure the shell scripts are executable, unload the default plist (if you didn't turn off your Time Machine automatic backups in the System Preferences) and finally load the new LaunchAgent in your local LaunchAgent startup folder:

chmod +x /usr/local/bin/timemachine_*.sh
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd-auto.plist
launchctl load ~/Library/LaunchAgents/com.apple.TimeMachine_OnMount.plist
launchctl load ~/Library/LaunchAgents/com.apple.TimeMachine_OnLoadSchedule.plist

Lastly...

You can change the com.apple.TimeMachine_OnLoadSchedule.plist's integer value for the starting interval 7200 integer to something more reasonable (e.g., 3600 seconds is one hour,... multiply at will.) I have my backups run every two hours.

The good thing about using a LaunchAgent is that:

  • if your computer goes to sleep or is shut off, the backup will begin at the next time you log in and reset the countdown from that point onward
  • if Time Machine is already running it won't try to run the process until the next projected sync time
  • if the drive is freshly connected or mounted already, Time Machine will begin backing up your changes and eject after its done
Share Button

121126Welcome to Health Quality Ontario–a website by Mike Kormendy

We've finally launched our website.

A year's worth of design, programming and collaboration comes to the forefront. I couldn't be happier to have produced something as complicated and successful. With the help of my colleagues at HQO, we were able to populate over 1000 pages of content into a refreshed bilingual format for the web.

I documented my design process and construction throughout the project and plan to organize that into a post at a later time. In that process I broadened my knowledge and added a lot of experience to my repertoire in the realm of Microsoft based server technologies such as .NET, C# and the CMS framework DotNetNuke. I am proud to launch this website to the public and I hope this can be a useful tool of information for everyone in the future.

Please visit my efforts: http://www.hqontario.ca

Share Button

121017Find Out About Ontario’s Long-Term Care Homes

Today, Health Quality Ontario’s Long-Term Care Public Reporting Website was refreshed with home-level data for all 630+ long-term care homes in Ontario. This is a first for the province – in fact, HQO now hosts the most comprehensive long-term care public reporting website in Canada. Any member of the public who is interested in long-term care quality in Ontario can go to the HQO website, look up a home of interest, and review that home’s performance on falls, pressure ulcers, incontinence, and restraints. Updated results for 9 of the 12 provincial-level indicators we report are also available as of today.

I'm very happy to have played an instrumental role in bringing the project this far, what started out as a simple design refresh, became an integrated team effort of success with many colleagues at Health Quality Ontario.

Please Visit: http://www.hqontario.ca/en/reporting/ltc/

Share Button

120927Font rendering issues on Google Chrome on OS X

There seems to be a small problem with many websites viewed in the latest version of Chrome on OS X as of recently (version 22.0.1229.79, updated on September 26, 2012).

The issue, documented here on the chromium issues tracker, talks about the fonts looking slightly more bold, or heavier, thicker and sometimes fuzzy due to a small repair job done on CSS -webkit-font-smoothing property that many web designers and developers were using to make their custom web-font typefaces render as intended by the glyph outlines in the fonts that they embedded on their websites.

bungeman@chromium.org reports that the bug where it also affected the weight of the text as a side effect has been fixed.

He also mentions that the additional weight of the typeface is rendered on purpose by the CoreGraphics API on OS X. There is a setting on the system that smooths text for LCD monitors, dialating the glyph outline by a factor of two, and that there was in fact a bug with the previous -webkit-font-smoothing: antialiased CSS property that ignored the CoreGraphics doubling of the dilation effect and rendered the font to its intended outlines without any smoothing.

Now that the bug has been fixed in Chrome's code, the antialiasing bug is no longer dismissing the CoreGraphics LCD smoothing and therefor the fonts look heavier.

There isn't a straightforward solution to fix the bolding of type on webkit browsers on OS X, however one might try addressing Apple OS X's CoreGraphics LCD font smoothing directly by turning off your system's LCD smoothing in System Preferences (under Appearance or General Settings), or with the following command in Terminal and restarting your browser.

defaults -currentHost write -globalDomain AppleFontSmoothing -int 0

The default when using lcd smoothed text is 2. To reset to the default value, use this command:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

Note: This won't modify the way your website is viewed on other people's computers with OS X and webkit-based browsers. This only affects your ownlocal OS X system LCD font smoothing rendering.

Update: apparently the Chrome team is going to revert the fix to a planned bug so that they can buy themselves time to release a proper solution.

Share Button

120604Proper MIME types for Embedded @font-face Fonts

Article Update: August 16, 2013

Article Update: October 1, 2012

After some exhaustive research, I managed to find the best server settings for serving web fonts. This article replicates my comment in reply to this question on the Stack Exchange forum.

There are a number of font formats that one can set MIME types for, on both Apache and IIS servers. I've traditionally had luck with the following:

svg  as "image/svg+xml"
ttf  as "application/x-font-ttf" or "application/x-font-truetype"
otf  as "application/x-font-opentype"
woff as "application/font-woff" (per my August 16, 2013 update below)
eof  as "application/vnd.ms-fontobject"

According to the Internet Engineering Task Force who maintain the initial document regarding Multipurpose Internet Mail Extensions (MIME types) here: http://tools.ietf.org/html/rfc2045#section-5 ... it says in specifics:

"It is expected that additions to the larger set of supported types can generally be accomplished by the creation of new subtypes of these initial types. In the future, more top-level types may be defined only by a standards-track extension to this standard. If another top-level type is to be used for any reason, it must be given a name starting with "X-" to indicate its non-standard status and to avoid a potential conflict with a future official name."

As it were, and over time, additional MIME types get added as standards are created and accepted, therefor we see examples of vendor specific MIME types such as vnd.ms-fontobject and the like.

Update October 1, 2012: I've been in touch with some of the people at Monotype and Extensis who watch the W3C www-font listserve. Vladimir Levantovsky from Monotype mentioned to me that the media type “application/font-woff” has been discussed and approved by the W3C WebFonts WG, and as such is now the part of the WOFF spec. However, to the best of his knowledge, it has not yet been registered with IANA. Thomas Phinney from Extensis mentioned as well that he was recently discussing this among the engineering staff at Extensis the other day, and the conclusion was that having a real, dedicated MIME type for WOFF and fonts in general would be a good thing, from their point of view.

Update August 16, 2013: On January 3, 2013 the WOFF MIME Type was formally registered as application/font-woff with IANA. Consequently, Webkit has been updated and browsers that incorporate this Webkit update (e.g., Chrome and Safari) will likely be showing an error that displays something like: "Resource interpreted as Font but transferred with MIME type application/x-font-woff: /location/of/font.woff" in your Developer Tools Code Inspector. To fix this, you need to change the media type on your server to “application/font-woff”.

Since the warnings are only annoying I would recommend switching to the approved MIME type right away. In an ideal world, the warnings will resolve themselves in time.

With that said, we may see an entirely new set of protocols for servers serving web-fonts, which may include things like security, management and new architectures for font storage on the server side. Stay tuned!

Share Button