Live Blogging: Jury Duty

8
Jun
0

10:12:54 AM: Just got called for the Jury Selection Process at the Lake County Courthouse in Waukegan.

10:15:03 AM: Heading to room 406

10:55:46 AM: I was selected as 1 of 6 jurors in a small claims auto accident lawsuit. We’re on recess for 5 minutes.

12:08:33 PM: Jury selection finished. Time for lunch. Judge said he expects this trial to finish today.

1:05:25 PM: Heading back to the deliberation room to meet the other jurors. Recess will be ending soon.

5:13:11 PM: Deliberation has ended and we able to reach a verdict. My jury duty is now complete.

Live Blogging: Leaving Florida

5
Apr
0

LiveBlog a vacation using Twitter SMS.
Experiment: Day 5 of 5

7:05:01 AM: Time to go already. The plan is to check out by 10:00, return the car and get to the airport by 11:45 for our 1:15 pm flight. All FL time.

8:23:31 AM: Checked out early. Car needs to be back before 11 am to avoid being charged for another day.

9:23:02 AM: Car returned to E-Z Rent-A-Car. Total cost of $260 and some change. On the shuttle to the airport now. Doing good on time.

9:39:31 AM: At Tampa Intl. Airport. Bags checked. Heading to Gate E.

9:53:29 AM: At a bar near the gate. About to order my first Cuban sandwich.

11:37:25 AM: Finished at the bar and at the gate. Boarding begins soon.

11:59:18 AM: On the plane. Delta 2066. A full flight they keep saying. Should be a quick trip to to connection in Atlanta.

1:45:13 PM: We’ve got touch down in ATL. Next flight is Delta 2076. Oddly, my ticket says “seat request”. My seat is not yet assigned. Weird.

2:41:28 PM: Delta flight 2076 is overbooked. There are about twenty people on standby. But I was able to get my boarding pass in front of an exit.

2:46:56 PM: Boarding pass for a seat in an exit row, that is. I think flying with another person helped me secure the seat.

2:57:51 PM: On the plane now. Delta is offering 400 “Delta dollars”, overnight accommodations and a meal voucher for those who will take a morning f …

Last entry not delivered to blog so it was added manually (known issue at Twitter LiveBlog Version 1.1.1). Author indicates it will be fixed with the next version.

5:00:00 PM: A rather rough landing in Chicago but we’re back safely. The pilot was kind enough to warn us of the weather: freezing cold, wet and windy.

Live Blogging: Millen-Biamonte wedding

4
Apr
0

LiveBlog a vacation using Twitter SMS.
Experiment: Day 4 of 5

7:36:15 AM: Upon stepping out of the apt this morning the weather is sunny, temperate and relatively dry. Time for breakfast.

7:54:20 AM: I’ve arrived at the Frog Pond on Gulf bvld St Pete. Statues and paintings of frogs adorn the interior. No breakfast bar here but I’ll ma …

7:57:10 AM: Across the street I can see a fair coming together. A elderly couple here just told me it’s a fair for arts and crafts. Looks interesting.

8:11:20 AM: I’m sitting at a two top and just had my order taken. I got the distinct feeling the waitress was thrown off by my breakfast solidarity.

8:16:39 AM: …considering the fact I’m sitting alone, of course

8:22:46 AM: Before devouring my Ratatoulli Quiche, I’d like to commend the person who names the specials. The meal looks top-notch. A 10 on presenta …

8:30:22 AM: Ratatouille Quiche*

8:41:25 AM: Breakfast cost just $9.53. I feel like eating here has somehow increased my net worth. Now to see about that fair…

9:05:02 AM: Just got done walking the length of the fair. Let’s just say it was worth the entry fee. Time to head back to the apt.

9:18:25 AM: Back at the apt. Grettel is still sleeping. I open the shades and try to bribe her with some leftover fruit from breakfast. No luck.

9:23:55 AM: I’ve started to notice a dangerous pattern in the drivers here. They often pull their cars a quarter-way out before entering a road.

9:30:05 AM: In other words, they’re usually halfway into a lane of traffic before committing to enter the roadway. Yikes!

9:50:07 AM: Back at the beach. No Cheetos today. The sun feels warm on the back of my neck. Grettel should be joining me soon.

10:05:36 AM: Grettel is here now at the beach. We have a couple of hours to relax before getting ready for the wedding.

12:25:58 PM: Just caught a refreshing shower at the apt and am now walkabout on Gulf bvld.

1:05:47 PM: Back at the apt getting ready. The zombie movie with the guys from Hot Fuzz is on TV. Great flick!

2:03:05 PM: Leaving for the wedding in just a few minutes.

2:38:16 PM: Arrived church. And not a moment too soon.

2:52:02 PM: Okay. We could have spared a few minutes… But driving a rental car in an unknown place in a time crunch can be a little nerve racking.

4:03:10 PM: Quick wedding. Already back at the apt waiting for the reception to start.

4:51:37 PM: On the way to the reception.

Live Blogging: Lazy day at the beach

3
Apr
0

LiveBlog a vacation using Twitter SMS.
Experiment: Day 3 of 5

8:36:00 AM: It stormed last night. Outside is wet and warm. I’m leaving the apt wallet in hand to search for some breakfast breakfast.

8:43:46 AM: I have arrived at the Waffle House a small stint south of my apt on Gulf bvld. Lucky for me they have a breakfast bar.

8:49:33 AM: For breakfast: strip steak and eggs, and black coffee

9:31:06 AM: Breakfast was good. And I just finished and kept a chilling story about the account of the NFL and USF players who died in a boating acc …

9:36:38 AM: Things are starting to dry and I can feel the sun is beating its way through the cloud cover

9:46:19 AM: Back at the apt. Grettel is still sleeping. And I feel like going out somewhere.

10:36:24 AM: Still at the apt. Grettel is up and lounging on the balcony. The beach looks nice…

11:27:06 AM: Leaving the apt for lunch

12:47:45 PM: Just finished lunch at The Pub, about 7 miles norte de el apartemento

1:19:30 PM: Back at the apt. Grettel wants to go to the beach too

2:53:05 PM: Wow. Just got up from a nice nap. Time for the beach!

3:07:07 PM: We’re at the beach now.

4:18:04 PM: Back from the beach. I learned it’s not good to feed a sea gull Cheetos. The water in the gulf is cold and salty.

4:45:44 PM: Nap time

7:53:06 PM: Nap time over. Oops! Ran a little long.

8:45:49 PM: Heading to the Grand Plaza to meet Kristy and friends for some drinks before her wedding tomorrow

9:07:11 PM: Arrived Grand Plaza. Now to find the others…

10:04:41 PM: Met Kristy and her soon to be husband. Great people. And the drinks at the tiki bar are good.

Live Blogging: Busch Gardens

2
Apr
0

LiveBlog a vacation using Twitter SMS.
Experiment: Day 2 of 5

8:34:23 AM: Having breakfast with Grettel at Ricky T’s on Gulf bvld. Treasure Island.

9:14:41 AM: In the rental car driving to Busch Gardens

11:21:14 AM: Just got to the Busch Gardens park entrance. The tram was the best ride yet!

11:21:31 AM: Line for front row on roller coaster not so bad

3:19:23 PM: Rode more coasters and are now now waiting to see a show in the park

4:23:59 PM: Leaving Busch Gardens

6:16:40 PM: Leaving apt for a place down the strip recommended by one of the guys from the restaurant this morning

7:14:25 PM: Took a walk on the beach to watch the sunset instead. Heading back to the apt

7:44:01 PM: The bride to be just text’d me and asked we are staying. Treasure Island says my new visor! :)

Live Blogging: Departing for Florida

1
Apr
0

LiveBlog a vacation using Twitter SMS.
Experiment: Day 1 of 5

3:28:28 AM: Time to wake up! Plane leaves in 2.5 hours.

4:19:23 AM: Arriving at Midway. It’s 41 degrees and dark, but dry.

4:43:07 AM: Passed security at Midway.

5:43:11 AM: On plane for Delta flight 1175 to Atlanta

8:04:32 AM: Arrived in Atlanta for the layover. It’s raining, but the weather above the clouds is perfect. Next flight leaves in about 40 minutes.

8:27:11 AM: Now on plane for Delta flight 159 to Tampa

Suspect additional messages sent but not delivered…

Live Blogging with Twitter LiveBlog

30
Mar
0

Tweet to WordPress blogs using the Twitter LiveBlog (TLB) plugin, which gives users the ability to pipe out near-time tweets to their blogs from Twitter. The following instructions explain how to use TLB once it’s installed and configured. Once installation is complete, TLB will begin producting posts similar to the example shown below.

Usage Instructions

To start a live blog entry text “//NLB//” to Twitter SMS (40404) once authorized to use the service. Subsequent tweets are output top-down into the posting. Individual tweets are prefixed with a timestamp as the post is updated. The LiveBlog session ends when the user sends “//ELB//” to Twitter. Once ended, additional tweets will make it to Twitter but the blog will no longer be capturing the detail.

Why not connect to Twitter SMS and Twitter LiveBlog your next vacation?

Example LiveBlog Post

11:09:31 PM: Tweeting from the Web

11:10:39 PM: Subsequent tweets appear in sequence

11:13:19 PM: Sending tweet via text message

Building a Better Lightbox

29
Mar
0
Screenshot of a Lightview modal window

Screenshot of a Lightview modal dialog

Though modal dialogs are not a new concept in UI design, the number of homegrown Lightbox clones appearing on the Web since major JavaScript libraries like Prototype and jQuery hit the scene has been staggering. Unfortunately, many of the clones developed leave some key usability considerations unaddressed, and struggle with common problems in accessibility.

Some key usability features that should be considered during creation of a Web-based modal dialog include (1) manage focus and allow tab navigation (2) disable elements outside the modal dialog (3) give users an out and (4) provide graceful error recovery.

Manage Focus and Allow Tab Navigation
Guide the user experience by managing focusable page elements using JavaScript.

  • Tabbing should allow the user to navigate back to the browser’s location bar and other tabbable toolbars.
  • When the modal dialog is shown, the user should not be able to tab to document content outside the modal dialog.
  • When the dialog is hidden, focus should be restored to the initial element used to activate the modal dialog, the original tab ordering should be restored and the user should no longer be able to tab to content inside the modal dialog.

Disable Elements outside the Modal Dialog
Guide user interaction with page elements outside of the modal dialog using CSS, JavaScript and HTML.

  • Display a translucent overlay above the page while the dialog is shown to give the perception of modality while maintaining frame of reference to existing page content.
  • Prevent user interaction with elements outside the modal dialog using script:
    • Save and then temporarily set a new tab order for all applicable elements;
    • Save and then temporarily set the disabled flag on all applicable elements; and
    • Save and then temporarily update applicable hyperlink click handlers to return false.

Give Users an Out
Give users the ability to exit unwanted modal dialogs without thinking much about it.

  • Use a graphical [x] link the user can click to initiate the hide method. In addition, consider using the graphic as a background image for a text-based link (e.g. “Close”) to help improve comprehensibility slightly for both sighted and non-sighted users while maintaining application scalability with a single link implementation.
  • While the dialog is displayed, listen for the [Esc] key. If it is pressed, exit the modal dialog and restore the previous display state.
  • If the Lightbox was activated by the user, make the close link the next focusable element in the tab order.

Provide Graceful Error Recovery
Script display methods (e.g. hide/show) should listen for script errors and, upon error, close the modal dialog and restore previous settings–including any previously focused element. Utilize the try/catch block to make it happen, but beware that suppressed errors increases debugging complexity.

Useful Web Development and Debugging Tools

10
Jan
0
Firebug

Firebug > *

Following is a list of web development and debugging tools useful for client-side web development and debugging, including some tools for cross-browser compatability and application security.

Firefox
Build first for standards.

  • Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse.
  • HTML Validator is a Mozilla extension that adds HTML validation inside Firefox and Mozilla.
  • Web Developer adds a menu and a toolbar with various web developer tools.
  • IE Tab, an extension from Taiwan, embeds Internet Explorer in a Mozilla/Firefox tab.
  • ColorZilla provides Advanced Eyedropper, Color Picker, Palette Viewer and other colorful goodies for your Firefox.
  • YSlow analyzes web pages and tells you why they’re slow.
  • Live HTTP Headers adds the ability to view HTTP headers of a page during page load and while browsing. (Note: See also “Client-Side Proxies” below.)

Internet Explorer
Then build for MSIE to ensure application compatability.

Client-Side Proxies
Once built and tested, ensure it’s secure.

  • Paros is a simplistic proxy tool that allows you to trap raw HTTP request and response headers for analyzation and testing.
  • BurpProxy is an interactive HTTP/S proxy server for attacking and testing web applications. It operates as a man-in-the-middle between the end browser and the target web server, and allows the user to intercept, inspect and modify the raw traffic passing in both directions.

Password Protection with PassKeeper

30
Dec
0

After recently losing a USB flash drive with all my passwords, I was grateful for the precaution I took by storing all my password data using Brad Greenlee’s PassKeeper password manager.

PassKeeper is a Windows utility that allows you to keep a list of accounts with usernames, passwords, and notes. This list is stored encrypted.

The utility is freeware and has been available for public download since the mid-90’s. Data are encrypted using the 56-bit DES cipher and stored in an DAT file in the application’s root directory. The size of the application (189 kilobytes) and the data file (~400 bytes/entry) are lightweight and can easily be carried around on any USB flash drive.

Image of PassKeeper running under Windows Vista

Image of PassKeeper running under Windows Vista

The application’s user interface (pictured left) is straight-forward and easy to use, and the system-oriented UI design has become more visually appealing as Windows has evolved.

One thing that hasn’t evolved, however, is the utility’s application icon. The application icon (not pictured) has looked outdated since about Windows 98. But fixing the blemish is easy enough. Just create a Windows Shortcut and use a different icon. The imageres.dll located in %windir%\system32\ in Windows Vista contains a decent-looking padlock icon that can be used if desired.

With a little practice, the entire utility can be navigated using only the keyboard, and passwords can be quickly copied from PassKeeper and pasted into online forms and desktop applications without the use of a mouse. Coincidentally, the copy/paste behavior may help enhance security by masking password keystrokes from key loggers.

Over time, one noticeable drawback of using PassKeeper is that it does not provide a built-in password generator. There is also a bug with account names using certain special characters, though I’ve only personally run across it once in my ten years using the utility. According to program readme.txt on www.passkeeper.com the utility is limited to 128 entries, but offers a simple workaround for the limitation.

Note: Some of the more modern password management applications, such as RoboForm, include a password generator, and even have specialized program versions intended for use with USB flash drives. But some of these tools have their own drawbacks to consider. For instance, RoboForm is heavily reliant on a web browser to function; it is not suitable for desktop applications and will not function in non-supported browsers.

Overall, PassKeeper is a straight-forward, easy-to-use utility for managing and securing personal passwords and account data. And though it’s starting to show its age, it continues run stably as Windows evolves. If you decide to use PassKeeper and carry around password data on a USB flash drive, the 56-bit encryption used should buy most users plenty of time to change any sensitive passwords should the device be lost.