SKITSANOS FOR RIA

Skitsanos

Thursday, January 28, 2010

Live Templates in JavaScript/ActionScript/Fle

Source: JetBarins Blog

Writing JavaScript/ActionScript/Flex code becomes easier with upcoming IntelliJ IDEA 9.0.2. New set of live templates (see Settings dialog (Ctrl+Alt+S), Live Templates, JavaScript/ActionScript group), allows to avoid tedious typing when you need to loop over an Array, Vector or anything else. Luckily, some abbreviations are the same as with Java: iter, itar, ritar. Here’s the list of currently available live templates:

Abbreviation
Description

iter
Iterate (for each..in)

itin
Iterate (for..in)

itar
Iterate elements of array

ritar
Iterate elements of array in reverse order

To use a live template, just type its abbreviation anywhere in your code and press Tab.

Ctrl+J shortcut shows you all live templates available for current context.

Tuesday, January 26, 2010

FCC joins FTC in combating robocalls

Source: Connected Planet

The Federal Communications Commission has proposed restrictions on prerecorded outbound calls, also known as robocalls, which would strengthen similar restrictions issued by the Federal Trade Commission last year.

The FCC’s proposed new rules would take the form of revisions to the Telephone Consumer Protection Act and would require telemarketers and other robocallers to get written consent from consumers before making robocalls.

Until now such consent was required only in the absence of an established business relationship. Consumers who previously contacted an organization for information or made a transaction with the organization during a certain time period are considered to have an established business relationship.

The new rules also would require prerecorded telemarketing calls to include an automated mechanism to allow consumers to opt out of receiving future prerecorded messages.

Although the FTC restrictions, issued in August as amendments to its Telemarketing Sales Rule, were similar, they did not include banks, politicians, charities and telephone companies, which are specifically called out in the new rules proposed by the FCC. The FCC noted, however, that its proposed new rules would not apply to emergency calls or to messages that deliver purely “informational” messages, such as those notifying recipients of flight cancellations.

The Commission asked for comments on whether its proposed revisions would benefit consumers and industry by creating greater symmetry between the FCC and FTC regulations and by extending the FTC’s standards to entities that are not currently subject to FTC rules.

What happened to the Windows Mobile 6.5 SDK?

Source: Betanews

Late on Friday, Microsoft published the first Windows Mobile 6.5 software development kit, albeit with no announcement or fanfare. Since the operating system was released last October, the only toolkit for Windows Mobile 6.5 development was released as an add-on component to the Windows Mobile 6 SDK.

The SDK came with images for both "Professional" and "Standard" versions of Windows Mobile 6.5, also known as touch enabled, and non-touch enabled, and it reportedly also included support for the 6.5.3 update and widget development.

However, the SDK was pulled down over the weekend, because it had apparently been posted before it was even finished with testing.

This afternoon, the Windows Mobile Developer Experience team tweeted the succinct answer to questions about what happened to the SDK. "With regards to 6.5 SDK, we prematurely released an untested SDK which was not ready. We pulled it so proper testing can be completed...."

While we are not certain what Microsoft will be showing at Mobile World Congress in February, we can now at least be certain that the 6.5.3 update will be included in the SDK when it is released.

Friday, January 22, 2010

Editorial: 10 outdated elements of desktop operating systems

Source: Engadget

We've come so very far in the way computer operating systems treat us, and in the way we treat those computer operating systems. They multitask, they animate, they reach into the internet and pull down our favorite parts, they rarely crash and they're always on. It's a far cry from a decade ago, but I think we could go so much further. The advent of the cheap, ubiquitous touchscreen, always-available internet and continually cheaper and more powerful hardware has revolutionized the phone industry, and I think it can also help the desktops and laptops we know and love do more for us. But a laptop isn't a phone: we're supposed to get a lot done on it, under some unrealistic deadlines, and some random company with big ideas can't come along and reinvent the desktop OS in one fell swoop -- that simply isn't practical when we have things to do.
So what's an OS to do? I think there are serious opportunities for evolution available to the Microsofts, Apples and Ubuntus of the world, but they involve embracing new technologies in new ways. And stealing a ton of ideas from phones. A finger on a screen is not a mouse on a pad, an internet browser is not the end-all be-all of the internet, and playing Crysis in a quad HD resolution at 60 fps is not the ultimate expression of gaming for 95% of the population. Join me as I explore a few bits of legacy cruft that need to be addressed before the desktop OS can become as important to this decade as it was to the last one.

1. Windows management

Problem: Spending time hunting for this text editing document under a dozen other windows.

This is at the top of the list, because it's probably my most frequent frustration; I'm always looking for the right window. Sure, you might tell me I can use "Spaces" or command / ctrl+tab or some other wild method of shuffling between my windows, but if tools like that exist to help you shuffle through the clutter, there's probably a deeper problem here. Everybody (my mom) always says that the best way to keep a room clean is to have places for everything and never let it get messy. I can't even count on one hand the features introduced in Windows and Mac OS this decade to help me "manage" my windows, but what if I never wanted to sign up for that job? An operating system is about performing tasks, not juggling. A touch of ADD and what might seem like a logical, modern operating system to some just ties my poor brain in knots looking for what I'm doing or what I'm doing next.

Solution: webOS

A theoretical computer that has a touchscreen just for kicks has room for adding more intuitive gestures into the workflow. Instead of trying to remember a key command or a four finger gesture, a bit of on-screen multitouch could probably rearrange those windows in a jiffy. Some of the Windows 7 snap-to functions are also very intelligent and could aid in this task. A single swipe in webOS puts me in a "card" view that is the overarching metaphor for navigating through the OS, not something tagged on to make it merely livable.
The other thing I would pull from webOS and other phone operating systems is the idea of pushing an app completely off the desktop and out of mind, while allowing it to run a background process to pull in its relevant push information or perform whatever other duty it does (a minimized window or app still remains in the task switcher or in the task bar, and therefore in the way). A nice little touchscreen flick (or maybe a pinch and flick, go wild!), could tell my computer that I don't want to see that entire application anymore -- while staying safe in knowing that Growl will pick up anything I'm missing by not having that window poking through 1/32nd of my screen.
Of course, we still have to multitask, since this is a desktop operating system. That's where things get tough, but I still think there's a way. Take that speed dial view in Chrome and Safari, for instance: it's a natural interface that's self-adjusting to my use of the browser and providing shortcuts in a relevant and organized manner. In the case of webOS, a larger screen could possibly allow for a two-up card view, where you pick two cards to co-exist. For the most part, if I'm doing actively doing more than two operations at once, I'm not really getting anything accomplished. I'd much rather drill through tasks and then send them away than see how many items I can manage to allow to coexist on my desktop before I lose my sanity. I'm frequently afflicted with an overabundance of tabs in my browser, but at least it presents me one at a time. I can read that page or bookmark it, and then I close it and then move on to the next tab. I'd never want to keep a window for Google or Facebook open at all times "just in case" a need for it arises.
Perhaps we've gotten too lazy with our implementation of drag and drop? If I could drag to a virtual target, such as the Start Menu or Spotlight, and then just start typing my desired target (iPhoto, Gmail, Tweetie, Windows Movie Maker, Facebook), which would subsequently launch in a way to deal with what I'm dragging, it would reduce steps and clutter. I want to execute tasks, not operate apps. Something our command line Unix friends know well. Quicksilver users, too.

Continue reading on Engadget...

Thursday, January 21, 2010

EU Approves $7.4 Billion Deal Between Oracle And Sun

Source: TechCrunch

It’s official: the European Commission has granted regulatory approval for Oracle to acquire Sun Microsystems for approximately $7.4 billion, without further conditions. In a statement released moments ago, Oracle says it expects unconditional approval from China and Russia as well and intends to close the transaction shortly.

Oracle will host an all-day live event for customers, partners, press and analysts on January 27th, 2010 at 9:00 AM Pacific time at its headquarters in Redwood Shores, California.

Just in case you weren’t planning on attending or following the major Apple event.

The approval comes after an in-depth antitrust investigation opened in September amid concerns that Oracle’s acquisition of MySQL would stifle competition in the database market. In August 2009, the Departement of Justice had already given the deal green light.

From the press release:

The Commission’s in-depth investigation showed that although MySQL and Oracle compete in certain parts of the database market, they are not close competitors in others, such as the high-end segment.

Given the open source nature of MySQL, the Commission also assessed Oracle’s ability and incentive to remove the constraint exerted by MySQL after the merger and the extent to which this constraint could, if necessary, be replaced by other actors on the database market.

“I am now satisfied that competition and innovation will be preserved on all the markets concerned. Oracle’s acquisition of Sun has the potential to revitalize important assets and create new and innovative products,” said Neelie Kroes, the European antitrust commissioner.

The database market is highly concentrated with the three main proprietary database vendors – Oracle, IBM and Microsoft – accounting for approximately 85% of the market in terms of revenue, the commission added.

Why NoSQL is Here to Stay...

Source: 10gen

As an alternative to legacy / SQL systems, technologies that are scalable and can better handle non-partitioned data have emerged. It appears that the “NoSQL” moniker has stuck for what simply can be defined as non-relational operational databases. Non-relational operational databases, or operational data stores, tend to have two key attributes across the board. One is that they’re non-relational, so they’re not doing joins on the server. And second, they have light transactional semantics. So complex, long-running, serialized transactions are not part of any of these NoSQL products. Those two differences, put together, allow you to take a very different approach to how databases are created, which means you can make horizontally scalable databases — the kind that run across large clusters of machines.

The list of NoSQL products is long. For the sake of this post, I want to clarify at the highest level how some technologies – namely MongoDB, CouchDB and Cassandra – differ within this NoSQL group. Today, there are two main themes emphasized in the NoSQL space –- scale (as in Google-level scale) and ease of development. I think there’s some general agreement that Cassandra type products deal with scale, while CouchDB and MongoDB deal with ease of development. That being said, you can’t completely separate these spaces because as the space matures, all of the products are going to scale very well. I guess the Holy Grail, or vision, for NoSQL is to provide solutions that make it easier for developers to build web applications or other applications that require a data store behind them.

One reason why NoSQL, or some iteration, is here to stay is that the way computer architectures are heading, having systems that can run across multiple machines is going to be an absolute requirement. The limitations of vertical scaling are going to get worse and worse. You’re going to get new chips that have more and more CPU cores on them, but the speed isn’t much higher. And they’re going to be cheaper too so you can get more computers but you’re not going to be able to get one computer that’s really fast at any price. But you’re going to be able to get 1000 computers that are not terribly fast really cheaply. So the question is, at the data storage layer, can you leverage that? The traditional approach is no, not without a lot of manual effort.  But changing computer architectures, as well as the growth of cloud computing, necessitates a better set of database systems built to achieve scale. These new solutions are going to solve that and it’s going to be critical. We want a new set of tools for the data storage layer that work well with those cloud principles, which are things like infinite scalability, low to 0 configuration, and ease of development without friction.

Monday, January 18, 2010

What is new in jQuery 1.4. Features for a happy programming

Source: Matteo Bicocchi's Blog

The new release of jQuery has come out with many new features and code optimization (http://api.jquery.com/category/version/1.4/) to ease manipulate and traversing DOM elements.
The most impressive improvement is internal calls reduction to perform jQuery methods, with a significant increase in performance:

jquery 1.3.2 v. 1.4 performance

jquery 1.3.2 versus 1.4 performance

Lets take a closest look at some useful changes
  • All setter method now accept a function as value:

    .css(), .attr(), .val(), .html(), .text(), .append(), .prepend(), .before(), .after(),.replaceWith(), .wrap(), .wrapInner(), .offset(), .addClass(), .removeClass(), and.toggleClass().

    $('div.demo-container').html(function() { var emph = '' + $('p').length + ' paragraphs!'; return 'All new content for ' + emph + ''; });
  • Quick Element Construction:

    When you create a single element with the jQuery function, you can now pass in an object to add attributes and events at the same time:

    jQuery("<div/>", { id: "foo", css: { height: "50px", width: "50px", color: "blue", backgroundColor: "#ccc" }, click: function() { $(this).css("backgroundColor", "red"); } }).appendTo("body");
  • Event Multi-binding:
    You can now pass an object of many events to bind to an element:
    $("div.test").bind({ click: function(){ $(this).addClass("active"); }, mouseenter: function(){ $(this).addClass("inside"); }, mouseleave: function(){ $(this).removeClass("inside"); } });
  • All Events Can Be Live Events:
    Has been introduced cross-browser support for change, submit, focusin, focusout, mouseenter, and mouseleave via the event delegation in .live(). Note that if you need a live focus event, you should use focusin and focusout rather than focus and blur, because focus and blur do not bubble. Also, live() also now accepts a data object, just as bind() has:
    $("p").live("myCustomEvent", function(e, myName, myValue){ $(this).text("Hi there!"); $("span").stop().css("opacity", 1) .text("myName = " + myName) .fadeIn(30).fadeOut(1000); }); $("button").click(function () { $("p").trigger("myCustomEvent"); });
  • before, after, replaceWith on disconnected nodes:
    You can now use before, after, and replaceWith on nodes that are not attached to the DOM. This allows you to do more complex manipulations before inserting the final structure into the DOM.
    jQuery(" ").before("Hello").appendTo("body")
  • .offset( coords | Function )
    It is now possible to set the offset of an element. Offset, like all setter methods, can now also accept a function as a second argument.
    $(MyEl).offset({ top: 10, left: 30 });
  • New .delay() method:
    The .delay() method will delay any further elements in the queue for the specified number of milliseconds.
    $("div").fadeIn().delay(4000).fadeOut();

And many other features are waiting to be used for our great new projects!

I think that this release of jQuery is a great step forward for web based applications development and their usability, as well as key tool for stimulating creativity in the web world.

Here are some graphs that show the dramatic overhauls in performance:

DOM manipulation

DOM Insertion

Performance of .html()

Performance of .html()

Performance of .remove() and .empty()

Performance of .remove() and .empty()

Don’t be afraid to update to 1.4! Backwards-Incompatible is really minimized:
  • .add() no longer plainly concatenates the results together, the results are merged and then sorted in document order.
  • .clone(true) now copies events AND data instead of just events.
  • jQuery.data(elem) no longer returns an id, it returns the element’s object cache instead.
  • jQuery() (with no arguments) no longer converts to jQuery(document).
  • .val(“…”) on an option or a checkbox is no longer ambiguous (it will always select by value now, not by text value).
  • jQuery.browser.version now returns engine version.
  • jQuery is now strict about incoming JSON and throw an exception if we get malformed JSON. If you need to be able to evaluate malformed JSON that is valid JavaScript, you can make a text request and use eval() to evaluate the contents.
  • Param serialization now happens in the PHP/Rails style by default. You can use jQuery.ajaxSettings.traditional = true; to use traditional parameter serialization. You can also set the behavior on a per-request basis by passing traditional: true to the jQuery.ajax method.
  • jQuery.extend(true, …) No longer extends non-plain-objects or arrays.
  • If an Ajax request is made without specifying a dataType and it is returned as text/javascript, it will be executed. Previously, an explicit dataType was required.
  • Setting an Ajax request’s ifModified now takes ETags into consideration.

With New Client, ICQ (Finally) Enters The Realtime Era

by Robin Wauters

I had just turned sixteen when instant messaging clientICQ was first released in November 1996. I started using the program a couple of months later, and will never be able to erase that annoying ‘uh oh’ soundfrom my memory. Like many others, I moved on from ICQ to other, more feature-packed communication services at the dawn of the new millennium and never really looked back.

After a decade of barely remembering it exists, I reinstalled the ICQ client on my computer this morning.

The reason isn’t nostalgia: more than 13 years after its first release, and nearly 12 years after AOL bought the company behind ICQ (Mirabilis) for a whopping $407 million, there is an updated client available for download that finally brings the product into the era of the realtime web and social networking craze.

The question is: is it too little, too late?

ICQ7, the latest iteration of the Internet communication product, is now a desktop client that does much more than instant messaging, and in fact will compete with the likes of Seesmic and TweetDeck as well as web-based aggregators like Meebo and eBuddy.

The new ICQ7 adds a familiar social layer to the messaging service, offering integration with Facebook and Twitter, as well as a number of content networks like YouTube and Flickr.

New tabs brings streams from these networks to the messenger client, and you can interact with your friends and content from inside the client to boot. Furthermore, status updates shared on ICQ can now be pushed to a wide variety of networks, in essence replicating functionality we know from Ping.fm (recently acquired by Seesmic) and HelloTxT.

The ICQ client, which is only available for Windows for now, has also been given a new lick of paint and is supposed to take less space and run much faster. The new version also includes a couple of new options aside from the social network integration, such as advanced picture-sharing functionality and the ability to extend your user profile.

Frankly, I think all these features are long overdue, and I doubt there’s any compelling reason for people to switch back to ICQ if they’re already happily using alternative aggregators or content with updating each social network individually. That said, the additions are nice for existing ICQ users, of which there are currently 42 million worldwide according to the press release (although I don’t know a soul who’s still on it).

ICQ has been rumored to be up for sale for a while now, and we heard Aol has been talking to Google, Facebook investor Digital Sky Technologies and Naspers recently.

Saturday, January 16, 2010

LG turns on Microsoft, will make most phones Android

Source: Electronista

LG today outlined a mobile strategy that marks a reversal of its approach from 2009. The Korean company expects to ship about 20 smartphones in 2010 but says that "more than half" of the smartphones it ships will run Android, such as the GT540 Electronista tried at CES. Only a minority will run either Windows Mobile or Linux.

Most of the early mix will focus on entry-level smartphones for newcomers but should shift to more advanced phones by the end of the year, like the Intel-based GW990. LG hopes to have its first smartphone with more than 10 million sales within 2010.
The strategy is a symbolic if not major blow to Microsoft. The latter had negotiated an alliance with LG in 2008 that saw the two collaborating on smartphones. Most of LG's smartphones in 2009 were Windows Mobile devices and only one phone, the Eve, used Google's platform. The apparent switch in preference follows temporary or permanent moves away from Windows Mobile by other companies such as HTC, Motorola, Palm and Samsung.
LG hasn't provided an explanation for its new leaning towards Android, but its low-cost or even free licensing, a finger-ready interface, and accurate web browsing all give it advantages over the Microsoft mobile OS. It also supports capacitive touch, though the Eve and GT540 both use resistive (pressure-based) touchscreens to lower their pricing.
The company has no specific estimate for its collective smartphone sales but expects its total phone sales to jump 20 percent to 140 million based partly on its new commitment to smartphone development. It created a smartphone division just last year and boosted its research staff for the category by 30 percent in the same period.

Friday, January 15, 2010

Vzaar brings watermarking for videos

watermark example imageWant to add a company logo to your videos or protect your content with a watermark? Well it is now possible to upload any image of your choice and we'll ensure that the video is watermarked with that logo. You will find the feature available in your Setting page. Read more on watermarking.

Thursday, January 14, 2010

Bindows goes 4.1

Just got a message from Bindows guys, they just announced that beta for 4.1 available already:

This beta program will test several new features (key bundles, collapsible panel, threestate checkbox) and additional improvements. For more details: http://www.bindows.net/documentation/Bindows41Beta.html.

You can download a free evaluation package at:

http://www.bindows.net/download/download_beta.html

Customers with covered maintenance will receive the full retail version automatically.

WSO2 Webinar: New Decade, New Portal

Register Now

Date:

Thursday, January 21, 2010

Time:

9:00 AM - 10:00 AM PST

The WSO2 Gadget Server is a new kind of Enterprise Portal that is designed around SOA and pure Web technologies. The Gadget Server is based around the Google Gadget Specification, a lightweight open specification for web and AJAX portlets. Gadgets are already heavily used on the Web with Google's own iGoogle personalized homepage used by millions, and hundreds of available gadgets freely available on the web. In particular, the Gadget specification is based on well-known languages (just XML, HTML and JavaScript), meaning that the Gadget Server is effective technology for Java, .NET and LAMP approaches alike.

In this webinar, Paul Fremantle, CTO of WSO2, will be explaining the benefits of the Gadget approach to portals, and also showing how you can get started with building effective portals fast. Tune in to find out about the best portal for the next decade.

Wednesday, January 13, 2010

Never heard about M/DB:X?

M/DB:X is a simple, lightweight, yet powerful hybrid JSON/Native XML Database, designed for use in the Cloud. It is accessed via a secure HTTP interface and can act as a local or cloud-based service.

M/DB:X stores XML documents as persistent XML DOMs and you can analyze, modify, transform and search the DOMs that you store in M/DB:X using a comprehensive suite of APIs that are based on and extend the standard XML DOM APIs.

M/DB:X includes an XPath query API that allows you to perform sophisticated searches within your XML Documents.

Additionally, M/DB:X Build 4 introduces an exciting and unique capability: it can accept JSON as its input and will transform this to a corresponding XML document which is then stored as an M/DB:X persistent DOM. M/DB:X can therefore act as a JSON database, but, once stored, your JSON objects can be manipulated, analysed and modified using the XML DOM APIs, and they can be searched using XPath. Any XML DOM that is stored in M/DB:X can also be outputted in JSON format. M/DB:X is therefore a hybrid JSON/XML database.

M/DB:X deliberately keeps the handling of XML documents simple, so it does not require the use of XML Schemas or DTDs and it avoids the complexities related to namespaces. DOMs that you create in M/DB:X will be correctly-formed XML. Tags can be prefixed and namespace attributes can be added to your DOMs, but M/DB:X will treat them simply as standard tags and attributes. It is your responsibility to ensure that any namespace-related and schema-related validation is adhered to.

You can find out more on M/Gateway web site.

Json.NET Claims Significant Performance Improvements over Other .NET Serializers

JSon.NET is claiming to offer better serialization and deserialization performance than any of the major serializers in .NET including BinaryFormatter. It even performs well against the remarkably fast DataContractSerizalier.

It is no shock that someone was able to beat the somewhat troubled WCF JSON implementation. Not only is it the only library in the benchmark that was slower at serialization than deserialization, its serialization actually takes 6 times longer than its deserialization. The real shocker from the benchmarks is that the BinaryFormatter is relatively slow. Most people would generally assume binary formats are faster, but in these benchmarks both JSON.NET and WCF’s DataContractSerializer are nearly twice as fast at deserialization and easily three times faster at serialization.

The benchmark results are available on James Newton-King’s blog. Json.NET is being released on CodePlex under the MIT License.

Tuesday, January 12, 2010

My Recommendation: Stop Making Design Recommendations

via Johnny Holland - It's all about interaction by Jared Spool on 1/6/10


It’s easy to believe them when clients ask us, designers, to make recommendations. We want to believe they love us for our wisdom, knowledge, and experience. They want our advice. And we love giving them advice. It makes us feel smart—like they finally “get” what we’re about. They want to do the right thing and we know how to help them. So, why is it bad to make design recommendations? They want it. We want it. Why shouldn’t we make the recommendations they’re asking us to give?

Simple: The recommendations don’t work. We end up looking bad. Clients lose faith in our skills. And the design doesn’t get better. Interestingly, in our research, the best teams don’t use recommendations. Instead they use an experimentation approach.

Patient, flexing his arm: “Doctor, doctor! It hurts when I do this.”
Doctor, checking the patient: “Hmmm. Well, I recommend you stop doing that.”

The Easy Out

Making recommendations is an easy out. You say, “Do this. Change that.” then wipe your hands clean of it. If they don’t do it, they’re obviously idiots. If they do, you’re brilliant. The best case scenario is they follow your great recommendation and it improves the design. But it turns out, that only one out of four possible outcomes.

They follow your recommendation and the design improves They don’t follow your recommendation and the design improves
They follow your recommendation and the design doesn’t improve (or it degrades) They don’t follow your recommendation and the design doesn’t improve (or it degrades)

What happens if they follow your recommendations and it doesn’t improve the design? What happens when they choose to not follow your recommendations and the design improves anyways? In either case, your future attempts to work with them becomes more difficult.

Changes cost resources. If the design doesn’t improve, then the organization has spent energy, money, and time on something that didn’t pay off. Are we considering that when we put the recommendations on the table?

Playing “Bet Your Salary”

UX Researcher Extraordinaire, Meghan Ede, has a rule of thumb she applies to her research team’s recommendations. The team members can only submit a recommendation if they’d be ready to put a full year’s salary down as a guarantee that the design will show improvement.

Would you be willing to do what Meghan does with your next set of recommendations? Go ahead: take out your checkbook. Write out a check for your take-home salary, after taxes. Pass it in with your recommendations, while telling them that, if the design doesn’t improve, they can cash the check. How confident are you feeling about those recommendations?

The Experimentation Approach

What our preliminary research has found is a typical recommendation looks something like this: “Users had trouble seeing the field labels. I recommend you put the label on the top of each field, instead of on the left.”

However, some teams are using a different approach: “We’re seeing that our users have trouble with the field labels. We’d like to try an experiment and see if moving the labels to the top of each field makes an improvement.”

It’s a subtle difference. And it was the approach we saw most in use amongst those UX professionals who had a solid track record of consistently improving their designs. These professionals told us they refuse to make recommendations, but love to experiment.

Discussing the Meaning of the Observations

I found the process from these high-performance teams quite interesting. It starts with a team discussion of the underlying observations and what it means. The team explores all the different interpretations. “Is it possible the users didn’t see the labels because they are too far away? If the font hard to read? Are the users not recognizing the terms? Were we measuring the wrong tasks?”

Then the team guides the conversation to other research that may fill in any holes, group discussion of alternatives, and measures to signal when the users’ behaviors change in the right direction. Often, this is followed by further research, then more discussion.

This process is very different from the recommendation approach, where the local UX expert makes a pass at the design and puts together a list of things that need changing. Instead of putting the onus on someone to come up with winning solutions, the entire team pushes the design into improvement, one experiment at a time. Some changes will work as intended, others won’t, but with each change the team learns something.

The result is that the entire team becomes better informed about the design they are building. No one person carries the burden of improving the design. Nobody has to be in the position of being all-knowing, always right. Changes are not seen as final, but as an ongoing process of improvement.

A Change in Mindset

Making the move away from recommendations is very hard. As I said, making recommendations is the easy way out, so it feels like the best path. But, in the long run, it’s a trap. The house odds are against you and eventually, it will all come crumbling down.

Both experience and research are telling us that experimentation, where constant changing and measuring gives the team guidance and insight, is the approach that leads to long-term success and better designs.

That’s my recommendation. I’m sticking with it.

Tuesday, January 05, 2010

Mono Introduces Experimental C# Language Extensions

Source: InfoQ

Having caught with the recent advances in Microsoft’s C# 4, the Mono team is now playing with their own extensions to the language. The two features they are experimenting with are string interpolation and support for multiple return values.

String interpolation is essentially a shortcut for the String.Format syntax. Instead of explicitly calling that function with a string containing numeric placeholders, the string is constructed using expressions in the placeholders. For example,

var a = 'Hello {name} how are you?';

Note that in this example from Miguel de Icaza, the string is detonated by single quotes instead of double-quotes. Miguel is currently soliciting feedback on this feature from Python and Ruby users, as he expects them to be more familiar with any potential problems.

The second language extension is support for tuples, also known as multiple return values. Given a function that returns a tuple, his patch would allow the function to be called and the tuple unpacked in the same line.

Tuple<string, string, string, int, string> ParseUri (string url);
(user, password, host, port, path) = ParseUri (url);

Creating and returning a tuple would look just like the assignment syntax. Miguel is also considering extending this to support slicing arrays, enumerations, and older forms of tuple such as DictionaryEntry.

Twitter vs. Telecom: Friend or Foe?

Source: Telephony Online

Interesting video today courtesy of Jeff Pulver’s blog and his recent 140 Character conference, with Amdocs’ Chief Scientist, Tal Givoly discussing the role that traditional service providers can play on the social Web.

It’s rare to see a good discussion of how these two industries will actually intersect rather than nonsense about how Web 2.0 will replace or kill telecom or mobile. Worth a viewing:

Webware development dedicated blog by Skitsanos R&D Labs. ASP.NET, XML, RIA, Adobe Flex, ActionScript 3, AIR, AJAX, Web 2.0, Backbase, CGI development with RealBasic and other web development issues.
News
Downloads