Archive

Archive for January, 2009

Axure & Protonotes: an alternative to Protoshare

January 14th, 2009 13 comments

Update 2/27/09: Updated the HeadInsert script again to Version 1.3.  Read about the changes here.

Update 1/21/09: Added new version of HeadInsert which can ignore certain HTML files.

Do a Google search on Axure vs. Protoshare vs. iRise and you may find sponsored links from each of these products explaining why they are the best.  These three are the leading “designed for IA” options for wireframing and prototyping (I say designed for IA, as Visio, Omnigraffle, and other drawing/diagramming tools still have a strong following).

iRise was never an option for me due to the cost, so I have been using Axure for the past 8 months. I initially was able to use Axure for free thanks to their Good Student Program, and I found it to be well worth the cost when I entered the workplace. I have found it to be a great tool for wireframing, prototyping, and generating specifications.  While there is certainly room for improvement, particularly with specification generation, the community around Axure is engaged and growing, which means that new features and widget libraries are coming all the time.

I heard about Protoshare a couple months ago.  While I haven’t used it, I have read some documentation and viewed demonstrations.  Axure still seems to be more fully featured for wireframing and prototyping, but I was intregued by Protoshare’s reviewing features.  Then, while browsing the Axure forums, someone mentioned Protonotes, a free tool for annotating HTML pages.  As Axure produces HTML prototypes, it seemed like the Protonote script could be inserted to achieve functionality similar to Protoshare.  By inserting the script into each page in the prototype, team members and even clients could make comments directly on the prototype/wireframe, which can then be viewed in a central location.

The problem is that Axure generates a new HTML page for each wireframe, so large projects can easily generate 20+ pages.  Inserting the Protonotes script into the header of each one every time the prototype is recreated isn’t really feasible.  To that end, I wrote a small program that will allow users to automatically insert a script into the header of each HTML file for their prototype.

Just download and extract this Zip file.  Generate your Axure prototype and drop the HeadInsert.exe file into your prototype directory.  Run it, then paste your Protonotes code into the text box.  Leave the checkboxes checked (you don’t want Protonotes scripts in your frame management files) and press the insert button. For example, I pasted the following:

<script src=”http://www.protonotes.com/js/protonotes.js” type=”text/javascript”></script>
<script type=”text/javascript”>
var groupnumber=”##############“;
</script>

into all of my prototype HTML files.

I recommend making a backup of your prototype files if they are important, as there is no way to reverse the process short of opening each .html file and removing the code you inserted (though you can always regenerate your prototype with Axure). I am not responsible for anything unexpected that happens to your files, unlikely as this is.  It’s a pretty simple script, but if any errors occur, please let me know.

Zip file: HeadInsert_v1.2

inserthead2

$20 tax credit for bikers

January 13th, 2009 No comments

It looks like the federal government will be giving a $20 tax credit to businesses for employees who bike to work.  Apparently this credit goes directly to the business, which can use it to purchase showers, bike helmets, and other support gear.  As someone who bikes to work regularly in the summer, I would love to have $20, or even see the money go to support biking at my workplace.  Unfortunately, it looks like the money is based on how many months one bikes during the year, which means Michigan businesses probably won’t see much more than 6 months worth.

Categories: Outdoors Tags:

The Zune Leap Year Bug: Source Code

January 2nd, 2009 No comments

For those who have been watching the news, Microsoft’s Zune mp3 player froze for owners on December 31. Microsoft blamed the bug on the leap year, and it seems that things have resolved themselves. Looking at the Zune source code, one can see exactly where things went wrong:

while (days > 365)
    {
        if(IsLeapYear(year))
        {
            if (days > 366)
            {
                days -= 366;
                year += 1;
            }
        }
        else
        {
            days -= 365;
            year += 1;
        }
    }

For those without a programming background, the problem is that there is no “if” for day 366, just for days greater than 366 (which would be January 1 of 2009).  This means that the code gets caught in in infinite loop on the 366th day (December 31) of the year.  On January 1 of 2009, however, the “days” variable is set to 367, which causes the day to be set back to 1 (January 1) and the year to be incremented to 2009.  So the bug only lasts a day.

Programming 101 – be sure to test all of your cases, particularly those inside of loops.

Categories: programming Tags: ,

The best of 2G

January 1st, 2009 No comments

I recently moved from T-Mobile to AT&T, and it wasn’t to get an iPhone (I already have a 2G iPhone I used with T-Mobile). After T-Mobile finally rolled out their 3G network 10 miles from Ann Arbor, I decided it was time to move.

While I’ve enjoyed HSDPA 3G Internet speeds in Ann Arbor, Lansing, and Grand Rapids, a recent visit to northern Michigan put me back on the EDGE network. EDGE can really fluctuate; I clocked around 100 kilobits per second several times. Yet, just today in Kalamazoo, I reached 211 kilobits, just shy of the 236.8 kilobit maximum speed for EDGE. My guess is that a great number of people were sleeping off the night’s revelry, giving me access to more network resources than usual. If EDGE was reliable at these speeds, I wouldn’t have been in quite the rush toward 3G, though it’s still shy of the 1+ megabit I often enjoy.

Speed Test results: 211 kbits/sec

Speed Test results: 211 kbits/sec

Categories: Mobile Tags: , , ,