Mockup tool: Balsamiq Mockups

A very, very useful tool and worth the cost, $79 USD is Balsamiq Mockups. It works because Balsamiq Mockups intentionally uses hand-drawn UI elements, so that people don’t get attached to “that pretty color gradient” or think that your mockup has actual code behind it and is “practically done”…

Smokescreen: real time SWF to JS aka “hello iPad/iPhone”

Now this is “interesting”. Smokescreen, written by Chris Smoak, is a “Flash player written in JavaScript” in that it takes Flash objects and then actually converts them to JavaScript in real time… Whoah you say. Hello iPad/iPhone/whatever…

The goodness: it runs entirely in the browser, reads in SWF binaries, unzips them (in native JS), extracts all images and any embedded audio and then turns them into base64 encoded data:uris. Post all that prework it then stitches the vector graphics back together as an animated SVG. And rather nicely at that.

The badness: 8k lines of JS translates to ~175kb and some serious slowness on mobile devices…

The potential nss nss: supposedly it will be fully opensourced in the not too distant future. Allowing for sorts of optimization potential.

It’s a different type of Flash…

Sencha (previously known as Ext JS) has released Sencha Touch, a HTML5 Mobile Application Framework. which allows you to develop web applications that look and feel native on Apple iOS and Google Android touchscreen devices.
It makes use of HTML5 for delivering audio/video or localStorage and CSS3 for maximum styling like rounded corners, background gradients, and shadows.
The code created is resolution independent. It uses a method which allows developers to change the overall scale of their interfaces on the fly with no pixellation.

Sencha Touch has a powerful animation system that makes flexible animations between screens and views possible.

Slide, pop, and fade animations are included with the library, each with a robust set of options to change attributes like direction and masking style.
And, as they are created with CSS, building custom animations is a joy.

Also, it includes a set of common icons for using them in toolbars and tab bars.

Compatibility: Apple iOS and Google Android

HumbleFinance: Dynamic Charts with HTML5, Canvas, and Flotr for Prototype

HumbleFinance is an HTML5 data visualization tool written as a demonstration of interactive graphing in HTML5. It is similar to the Flash tool on The tool itself is written entirely in JavaScript, using the Prototype and Flotr libraries. It can be used to display any two 2-D data sets of real numerical data which share an axis.

Custom Images for SharePoint profile page view

Sometimes you need to tightly control profile pictures in MOSS / SharePoint 2007. An easy way to do this if your pictures have the right naming convention is as follow.

Looking at the URL of the profile we can see that the data is clearly sent “/Person.aspx?accountname=DOMAIN%5JohnDoe” In this case we are looking at the domain user JDoe aka John Doe on the domain DOMAIN.
Edit person.aspx and at about line 39 comment out “
And replace it with the following JavaScript…

< type="text/javascript">
var str1=”< propertyname="FirstName" runat="server" preview="FirstName" values="<P N='PropertyName' T='FirstName' /><P N='ControlStyle'><P N='Font' ID='1' /></P><P N='Font' R='1' /><P N='ID' ID='2' T='ctl02' /><P N='Page' ID='3' /><P N='TemplateControl' R='3' /><P N='AppRelativeTemplateSourceDirectory' R='-1' />">“;
var str2=”< propertyname="LastName" runat="server" preview="LastName" values="<P N='PropertyName' T='LastName' /><P N='ControlStyle'><P N='Font' ID='1' /></P><P N='Font' R='1' /><P N='ID' ID='2' T='ctl03' /><P N='Page' ID='3' /><P N='TemplateControl' R='3' /><P N='AppRelativeTemplateSourceDirectory' R='-1' />">“;
str1 = str1.replace(“<>“, “”);
str1 = str1.replace(“< /span>“, “”);
str2 = str2.replace(“<>“, “”);
str2 = str2.replace(“< /span>“, “”);
document.write(“< src="'http://people/FirmDirectory/FacebookPictures/" alt="'" width="'72'"> <>“);
< /script>

(In this case our images have the following naming convention FirstLast.gif.)

As usual HTML tags have been changed in the following way:
“<" is now "< ".

Javascript Image Rotator/Presenter

Cycle is a script that supports image presentations to easily display multiple images. This script supports a lot of effects and the cycling of html elements.

Presentation Cycle is a variation on the functionality of Cycle. Instead of generating a list of numbers that are clickable. Presentation Cycle generates a progress bar that shows when the new slide will appear.

SharePoint 2010 Developer Dashboard

SharePoint 2010 can now provide additional performance and tracing information which is really really helpful if you are trying to debug and troubleshoot issues with page rendering time. It’s called the Developer Dashboard and is pretty easy to enable.

Using the object model:
SPWebService cs = SPWebService.ContentService;
cs.DeveloperDashboardSettings.DisplayLevel = SPDeveloperDashboardLevel.On;

Performance information into this Dashboard using the new SPMonitoredScope class

There are 3 states: on, off or ondemand:
stsadm -o setproperty -pn developer-dashboard -pv ondemand
stsadm -o setproperty -pn developer-dashboard -pv on
stsadm -o setproperty -pn developer-dashboard -pv off

Off = Always off, normal state for production.

On = Always On, best for development only.

OnDemand = The user has the possibility to turn it on or off as needed using the small icon to the upper right hand corner of the page; you click the icon to toggle the dashboard on and off.

Note that this should be one of your first best practices for developing code for SharePoint 2010 – use SPMonitoredScope! This can only serve to help you better understand and manage the performance of your components as you deploy them.

More detail here:

iPhone OS X development course on iTunes University from Stanford

Stanford University has posted another complete lecture and presentation slide series for the Winter 2010 term’s iPhone Application Development course.

Downloaded from iTunes more than 4.4 million times last year this latest series of closed-captioned! lectures are now updated to include APIs from the latest iPhone OS 3.1 SDK OS X etc.

There’s no support available so don’t even try to ask them (Stanford ) for help.