Tuesday, September 29, 2009

Retrievable iPhone numbers mean potential privacy issues [Macworld]

Ick.

Retrievable iPhone numbers mean potential privacy issues | Software | iPhone Central | Macworld

Let’s hope either a) app developers are responsible and don’t exploit this, or b) apple plugs this hole - it would absolutely drive me nuts if app development companies calling me to upgrade their app, and it would cause me to uninstall their product imediatamente!

On the upside, when I first read the caption on the feed post, I thought it was referring to one's contacts being visible, which I personally think would be a more egregious security hole. But with this current issue, it would be important for users/customers of companies that do this kind of thing to give them ample feedback:
  • Contacting them and letting them know their actions stink
  • Rating them low in iTunes
  • Warn potential users in the comments section of the breach of security.
In other words, "what goes around, comes around."

Here's the source article that contains the tests performed by mac4ever (see the bottom of the page for the English version...).

Monday, September 28, 2009

Pear Note - Note Taking Utility for Mac - Useful Fruit Software

Thought this was an interesting application that reminds me of the LiveScribe Pulse, but in an application form.

Pear Note - Note Taking Utility for Mac - Useful Fruit Software

...and it does video.

Monday, August 24, 2009

Text is a UI

Thought this was an interesting quote from Jakob Nielsen in the alertbox article regarding Twitter Tweets...


"Text is a UI
It's a common mistake to think that only full-fledged graphical user interfaces count as interaction design and deserve usability attention. As our earlier research has shown, URLs and email both contribute strongly to the Internet user experience and thus require close attention to usability to enhance the profitability of a company's Internet efforts.

In fact, the shorter it is, the more important it is to design text for usability."


Twitter Postings: Iterative Design (Jakob Nielsen's Alertbox):

Monday, May 25, 2009

ASP.NET Forum Tags: Semicolons as Separators?

Ummm... OK I know Microsoft is trying to give the illusion of being user friendly and all, but when the delimiter for tags that categorize a post on the ASP.NET developer forums, they chose semicolons.

Is it just me or is that a ludicrous choice? Why not a space (my preference - a la delicious) or a comma?

In addition, there is no example visible to show you what the legal delimiter is! You have to miraculously divine what it wants, or let it show you what it wants, as I chose to do.

To find out what the delimiter is, I had to do the following:
  1. Open the "Select Tags..." dialog.
  2. Select two (short) tags. (I notice lots of other folks thought that a space would be a logical delimiter too...!)
  3. Close the dialog.
  4. Oops. Closing the dialog didn't populate the text box with my selections. Awesome.
  5. Trying again... Open the "Select Tags..." dialog.
  6. Select two (short) tags, this time at the end of the list where I notice OK and Cancel buttons (yes - you heard that right. The buttons are embedded in the list itself... and at the bottom of the list, no less! They're not on the dialog "window.")
  7. Click OK.
  8. Observe that text box has the new selections delimited by semicolons.
The auto-populating text box is another usability nightmare deserving of its own article, but I'll let someone else write that one up. ;)

Wednesday, March 25, 2009

Moving Home

From this point on, my Interactive Logic blog will be located here:

http://blog.interactivelogic.net/

See you there!

Sunday, March 1, 2009

Intuit Labs blog – echominder has left the building

The genesis of a truly useful and innovative Intuit product...

Intuit Labs blog – echominder has left the building

...which they, of course, killed.

Nice going.

Friday, February 27, 2009

Comcast DVR & Controller: Pain & Suffering Incarnate.

Bravo to "Rian" who posted this blog entry:

Reflections on user experience: Remote control usability: Comcast vs. Logitech Harmony

I just had to respond with a comment since this is a real hot-button for me these days (i.e. Comcast's DVR un-usability...):
Saying that the Comcast remote and its accompanying DVR system is "Bad" or "isn't that good" is being kind.

I have never seen a bigger pile of steaming crap usability-wise in my life (save for the Bobrick B-2888 Toilet Tissue Dispenser). The Comcast DVR software is pathetically unresponsive (and it's not just unresponsive for OnDemand programs, despite what the service tech tried to tell me...). The Comcast system actually makes my wife visibly angry to even have to touch the remote and use their horrible product.

Unfortunately, I would have to now fork over a significant amount of cash to purchase a TiVo that will do digita & HD, which unfortunately I don't have at the moment... But if I had the cash in hand, I would go buy one in a second and not think twice to drop-kick the Comcast DVR unit and the controller. We have actually kept our analog TiVo in the other room, and guess what? it gets more use because of the pain the Comcast system causes.

Shame on comcast for even thinking of putting out such a lame product. Comcast desperately needs to read "The Essentials of Interaction Design" and totally rearchitect its hardware and software approach.

No wonder they tried to acquire TiVo. Oh yeah... and failed. LOL.

Friday, January 30, 2009

ASP.NET Bug: Button.OnClientClick

I really don't understand this one.

According to the ASP.NET MSDN online documentation for Button.OnClientClick Property (System.Web.UI.WebControls), you use Button.OnClientClick to assign a client-side script (javascript) when the button is clicked (for example if you want to have the button perform some action(s) before submitting, or to short-circuit the click entirely).

However, I couldn't understand why the client-side onclick handler was not getting rendered, no matter what I tried!!!

Then I scrolled down to the bottom and noticed the comment by user contributor "Perley":

"MS has made it so that if you disable the button on the server then the onclick attribute is not even rendered to the client"


Mystery solved.

I had indeed set the button to be disabled in the markup, and it was flat-out not rendering the onclick handler in the HTML.

I fixed the problem by wiring up the onclick event for the button manually using a pageLoad function, but still it was a hassle.

I really think the people who designed, approved, and coded that "feature" should get their head checked, because, seriously... if a button is disabled initially, don't you think it's possible that the button - a user interaction device - might become enabled at some point, and not through server-side intervention???

Monday, January 19, 2009

.NET Rocks! Epsiode 406: Catching up with Scott Bellware

This episode of .NET Rocks! features an interview with Scott Bellware, who describes some new unit testing and coding practices that sounded very innovative, introducing the concepts of usability into your code:

.NET Rocks! - Epsiode 406: Catching up with Scott Bellware

...I just thought some might find it interesting. I did.

Thursday, December 18, 2008

The Difference between "const" and "readonly" in C#

It has been baffling me for a while since I've used the two keywords for pretty much the same purposes, but after reading a little of the documentation, the difference between the two became much more clear (emphasis mine):

The readonly keyword differs from the const keyword.

A const field can only be initialized at the declaration of the field.
A readonly field can be initialized either at the declaration or in a constructor.

Therefore, readonly fields can have different values depending on the constructor used.

Also, although a const field is a compile-time constant, the readonly field can be used for run-time constants, as in this line:

public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Thursday, October 30, 2008

SubWeaver: a Subversion plugin for Dreamweaver!

Awesome... a Subversion (SVN) plugin for Dreamweaver! Exactly what I was looking for!

SourceForge.net: SubWeaver


The cool thing about it is that it integrates with TortoiseSVN (at least mine did), so that part of the interface feels very familiar!

Way to go, guys!

Wednesday, October 8, 2008

WPF: Getting at information entered in Assembly Information dialog

Had a perplexing problem with Getting at information entered in Assembly Information dialog in a WPF application, and it was very quickly answered by Krisha Barghav on the MSDN forums:

WPF: Getting at information entered in Assembly Information dialog

anything you enter inside Assemblyinformation dialog sits in the AssemblyInfo.cs

You can access these values using Assembly.GetExecutingAssembly.GetCustomAttributes(true/false);

If you print the types of attributes returned, you can see something like shown below.

System.Windows.ThemeInfoAttribute
System.Diagnostics.DebuggableAttribute
System.Runtime.CompilerServices.CompilationRelaxationsAttribute
System.Runtime.InteropServices.ComVisibleAttribute
System.Reflection.AssemblyFileVersionAttribute
System.Runtime.CompilerServices.RuntimeCompatibilityAttribute
System.Reflection.AssemblyTitleAttribute
System.Reflection.AssemblyDescriptionAttribute
System.Reflection.AssemblyConfigurationAttribute
System.Reflection.AssemblyCompanyAttribute
System.Reflection.AssemblyProductAttribute
System.Reflection.AssemblyCopyrightAttribute
System.Reflection.AssemblyTrademarkAttribute


So if you want to access the Description entered in the Assembly, you can do something like this.


foreach (object o in Assembly.GetExecutingAssembly().GetCustomAttributes(true))
{
if (o is AssemblyDescriptionAttribute) Debug.WriteLine((o as AssemblyDescriptionAttribute).Description);
}

That is just an example.

Hope this helps.


Worked great for me!

Thursday, September 4, 2008

Echominder is even cooler than I thought!

A while back I wrote about Echominder from Intuit Labs, and I discovered a really cool feature that I didn't even know was in there...

Not only does echominder call you when you want it to, it also keeps a queue of your reminders on the website, and you can re-remind yourself by telling it to send you a particular message at a specific time (again).

Previously I was under the impression that the messaging was just a one-time event. Turns out I was wrong (and can't read documentation)! Awesome!

Kaxaml - Great Lightweight XAML Editor

So after checking out some of the WPF Bootcamp sessions at MIX08, I decided to install and try out Kaxaml...

Kaxaml

...and it's great! It's really nice to be able to try out the default snippets that are in the tool, and then to be able to grab XAML code blocks off the web and try them out on-the-fly without having to create a Visual Studio 2008 project - which is just too time consuming to try stuff out.

A very nice, and in my opinion, agile development tool!

Thursday, August 28, 2008

CLI - The next new old interface paradigm:

Seems like there have been quite a few incarnations of the new (old) command line interface - in particular, Ubiquity from Mozilla Labs:

Introducing Ubiquity

...which seems to be based on work done by the same guys who did Enso (in fact Aza Raskin is on both demo videos):

Humanized - Enso

...but transformed from an OS utility into a browser mashup utility. I'm sure it's not for everyone, but it could make life simpler for some folks.

Thursday, July 17, 2008

WinForm Tip: Setting Opacity on Panel Control

This is a little hokey, but interesting.

I'd really like to have genuine opacity in my panels and other controls (a la WPF), but this will work OK for now:

drawing Opacity For Panel Control

Monday, May 19, 2008

How to Create a Transparent User Control in .NET

I was in need of a transparent user control, and for some reason System.Windows.Forms.Control does not support opacity out-of-the-box.

Thankfully there was a post from Zhi-Xin Ye of Microsoft on the MSDN Windows Forms Forums, in which he outlines how to "roll yer own" transparent UserControl:

Transparent User Control

Wednesday, May 7, 2008

echominder: a home run from Intuit (and it's free!)

Being an ex-Intuit employee, I always like to keep tabs on stuff that they've been researching.

One of the coolest services that has come out of their research group is Echominder:
echominder


Here's a description from the echominder site of how the service works:

scenario

you've got a flight tomorrow and just remembered you need to pick up your dry cleaning and set your out of office message. you're driving to work and can't stop to write it down, but echominder is in your speed dial:

  • as you're driving home, call echominder and instruct it to have your cell phone ring at 4:30pm with a reminder to pick-up the dry cleaning.
  • leave another message to call you at 8:00am tomorrow morning to remind you to turn on your out of office message on your computer before you shut down and leave for the airport.
  • your phone rings right on time and you get the important things done.
I had actually been using a similar system before signing up for echominder: I'd call my voice mail at work to remind me to do certain things, but I would have to actually be in the office and then log into my voice mail to get the message.

Now that I've used echominder a few times, I've found it to be invaluable since it takes out the variables that caused my older methodology to break down:
  1. Location: I don't have to be in the office, because echominder calls me wherever I am.
  2. Timing: echominder calls me at the time I specify; I don't have to get a message and then remember to act on it at a particular time, or enter it into Outlook to remind me.
Great service. I just hope it doesn't get Zipingoed.

Friday, May 2, 2008

Visual Studio .NET Tip: Setting Tab Order

I banged my head against the wall trying to figure out how to easily readjust the tab order of controls on a form in Visual Studio 2005 (C#). It seemed silly to me that in this day and age I would have to adjust every control's tab order by typing each value in the Properties window.

Thankfully there is a pretty slick way to do it, and I never would have guessed that it was there, but sure enough there was an MSDN Magazine "Advanced Basics" article on the subject back in 2002:

Advanced Basics: Visual Studio .NET: Setting Tab Order, Loading the Toolbox with an Add-in

Thankfully, they didn't change it. It's still there, and here's the procedure:
To set the tab order, you simply select [the controls on which you wish to change the tab order], then select Tab Order from the View menu. Then just click the controls in the order you want the tabs to sit. As you click each control, the tab order will be displayed on the control to keep you up to date. Press Esc when you're finished.

The good news is that this feature is still present in Visual Studio 2008 for Windows Forms, but I'm not sure about the WPF editor, though... hopefully it's still present.

Kudos to Matthew MacDonald for "Pro .NET 2.0 Windows Forms and Custom Controls in C#" book!

On the recommendation of another engineer that I work with, I recently purchased Matthew MacDonald's book Pro .NET 2.0 Windows Forms and Custom Controls in C#.



This book has already paid for itself in just a couple of weeks -- due to the time saved in trying to find the information I need. Every time I have a question regarding an issue in Windows Forms or with Custom & User Controls, I can find it here. Additionally, the content is written in a manner that can be understood by mere mortals, with some good tips and tricks thrown in too.

Highly recommended.

On the merits of this text, I've already purchased Matthew MacDonald's WPF book (the 3.0 one, since I haven't *quite* moved to VS 2008 yet...).