Search

 

Monday, April 7, 2008

Nitobi Survey Results on Ajax Development

Dion Almaer posted:

Nitobi ran a survey on Ajax technologies, and you (Ajaxian community) helped out in giving them your feedback.
They just released the results which consists of 570 answers. You must always take results with a grain of salt, since there are quite a few more designers and developers than 570 our there, but it is always fun to analyze. Often the results tell you more about the niche of people that the surveying group has access too than the global truth (e.g. the Ajaxian group skews to a slightly more advanced user base that doesn’t mind getting dirty).
The responses that called out to me were:
Which development platforms are you using?
Java and PHP took the server side piece home (many said they were HTML/CSS front end folks). If you aggregate the Java technology (Java, JSP, Servlets, JSF) you get 394 versus PHPs 296, although it is hard to compare since you could choose “all that apply”. I am willing to bet that if you are doing JSF now, you may well have done Servlets, JSP, and other!
Which development tools do you use?
Eclipse and Dreamweaver had the most votes here, with a large number of Notepad people (teasing?). Textmate was that low?
What causes you the most pain in designing and development websites?
Browser compatibility: 303
Testing: 114
Javascript: 65
CSS: 36
Deployment: 34
Why do you choose to use Ajax?
Improve user’s experience: 276
I want to build slicker applications: 38
Easy to use: 29
My boss wants it: 25
Saves time: 13
Saves money: 2
What toolkits or frameworks are you using in your projects?
This was quite a different result than from our last survey.
jQuery: 144
Prototype: 143
Scriptaculous: 127
YUI: 99
Ajax for ASP.Net (Atlas): 91
Mootools: 65
Dojo: 63
ExtJs: 61
Nitobi: 61
Spry: 29
GWT: 19
JMaki: 6
Mochikit: 2

Here is the spreadsheet of the full results.

Android phones as early as this fall?

Tom Krazit posted:

A Google executive may have inadvertently tipped the wireless industry's hand on the launch time frame for Android phones.
Ever since introducing Android, a mobile-phone operating system, last November, Google has said that Android-loaded phones would be available in the second half of this year. However, on Monday, Richard Whitt, Google's Washington telecom and media counsel, put a finer grain on the launch expectations during a conference call about Google's plans for the "white spaces" spectrum, saying the phones could be out as soon as summer or fall of this year.

This Android prototype, show at Mobile World Congress in February, could be a shipping product by fall.(Credit: Lluis Gene/AFP/Getty Images)
After the call, Google representatives reiterated that the launch expectations for Android phones were unchanged at "second half of 2008," emphasizing that the exact launch schedule is up to Google's partners. However, Google is likely privy to that schedule, since they'd probably want to show up for the party or something, and just about all of summer--and all of fall--takes place during the second half of the year.
The debut of an Android phone in the summer or early fall could give Google and its partners a chance to test the market during the back-to-school or holiday shopping bonanzas in the second half of the calendar year. IDG News Service reported last week that HTC was developing an Android phone called "Dream," that would be out "near the end of this year."
The report also said that Samsung was racing with HTC to get an Android phone out the door, meaning perhaps other handset makers have accelerated their plans.

Facebook To Launch Preferred Application Program

Michael Arrington posted:

The Facebook Platform, launched in May 2007, has been an unqualified success. Nearly 20,000 applications have been released by third party developers, and it spurred Google to quickly launch a competing platform of its own. At least two venture funds have been created that focus solely on Facebook applications. Etc.
But the flood of applications caused problems right from the start. Facebook has repeatedly changed the rules, but always seems one step behind the creative moves by developers to spam their way into gaining new users. Most recently, limits were put in place that limit the number of invitations users could send out. The more people who ignore requests from a particular application, the lower the limit for that app.
Clearly Facebook is a little tired of beating questionable developer tacticts away with a stick. So now they will try the carrot approach as well - by rewarding developers who play by the rules and build useful, popular applications. The new program is being called the Preferred Application Program.
This isn’t related to the recent CBS/March Madness issue where Facebook allowed a (paying) partner to play by different rules than the others. From what we’ve heard, Facebook is not going to be asking developers who are chosen to participate to pay in any way for this privilege. Classification as “preferred” will be merit based…although so far no one seems to know what the requirements will be.
Nor do they seem to know exactly how Facebook will reward these developers. One way is to have different rules, like allowing application users to invite more than the normal number of friends per day. That would be very attractive to developers, but the recent backlash over the CBS incident shows that the rank and file won’t stand for that.
But there are an almost unlimited number of other ways that Facebook can promote preferred developers. Preferred apps can show up higher in search, for example. And Facebook can give them a badge or other sign of endorsement that they can add to their application pages. A more subtle, but possibly more powerful benefit, may be to change the rules on how and when user activities through these applications can show up in the News Feed. Finally, new Facebook users could be presented with a set of default third party applications to add when they create an account, perhaps tailored to their stated interests.

LongJump Wants You to Stop Pushing Paper Around the Office

Mark Hendrickson posted:

LongJump, a hosted applications environment that competes with the likes of Salesforce and Coghead, is introducing a new visual workflow system meant to streamline business processes.
Companies will be able to set up this workflow system in conjunction with existing LongJump applications, such as those that track businesses’ assets or contracts. Before the introduction of this workflow system, these applications could be used to manage databases of relevant objects. Now they can also be used to program and execute on procedures that regularly occur around them.

Do expense requests usually go through your company’s hierarchy before getting approved? You can now chart this process in LongJump with “states” and “actions”, respectively represented as circles and vectors in the visual workflow creation tool. Each circle represents a type of person within the company (supervisor, manager, CEO, etc) that must make a decision on the expense request (approve, deny, issue check, etc). These decisions cause the request to travel along the vectors until a final conclusion to the process (request fulfilled).
This process would ordinarily be accomplished over email or even physical slips of paper that make their way through various “in” and “out” boxes around the office. Now it can all be handle in one central online location with variously designated user accounts for employees.
LongJump says that its visual workflow solution is the first to come integrated with a full-featured database application suite. Competitors include Appian (a hosted solution) and Tibco Business Studio (non-hosted), but these must be used with something like Oracle or SAP. Since many large corporations are happy with their existing database solutions, this new workflow product will appeal mostly to small and medium-sized businesses.

Using the YouTube API via Ext

Rey Bango posted:

With the YouTube API recently released, there's bound to be lots of cool controls coming out soon. Thorsten Suckow-Homberg spent a weekend hacking up a Ext-based user extension that leverages YouTube's chromeless API to build The Ext.ux.YoutubePlayer.
The Ext.ux.YoutubePlayer allows developers to embed youtube videos into Ext applications, using native Ext components for controlling the video playback. It’ll show the buffer status and let’s you jump to any part in the video using a slider component.
Cool features include:
Showing the buffer status
Playback slider that let's you jump to any position in the video playback
Mute/unmute the video
Overall volume control

He whipped up a demo for all to see.

Doloto: Code Splitting for Network-Bound Applications

Dion Almaer posted:

I missed the Microsoft Research paper on Doloto: Code Splitting for Network-Bound Web 2.0 Applications:
Modern Web 2.0 applications, such as GMail, Live Maps, Facebook and many others, use a combination of Dynamic HTML, JavaScript and other Web browser technologies commonly referred as AJAX to push page generation and content manipulation to the client web browser. This approach improves the responsiveness of these network-bound applications, but the shift of application execution from a back-end server to the client also often dramatically increases the amount of code that must first be downloaded to the browser. This creates an unfortunate Catch-22: to create responsive distributed Web 2.0 applications developers move code to the client, but for an application to be responsive, the code must first be transferred there, which takes time. In this paper, we present DOLOTO, a system that analyzes application workloads and automatically performs code splitting of existing large Web 2.0 applications. After being processed by DOLOTO, an application will initially transfer only the portion of code necessary for application initialization. The rest of the application’s code is replaced by short stubs—their actual function code is transfered lazily in the background or, at the latest, on-demand on first execution. Since code download is interleaved with application execution, users can start interacting with the Web application much sooner, without waiting for the code that implements extra, unused features. To demonstrate the effectiveness of DOLOTO in practice, we have performed experiments on five large widely-used Web 2.0 applications. DOLOTO reduces the size of initial application code download by hundreds of kilobytes or as much as 50% of the original download size. The time to download and begin interacting with large applications is reduced by 20-40% depending on the application and wide-area network conditions.
They take examples with varying degrees of download-i-ness and show how their system can or can't help:

As we play with the techniques for getting the best performance, it does feel like we need an abstraction that handles dependencies, loads only what is TRULY needed right away in onload, and loads other payloads as required / later.

Adobe Photoshop Express Launches

Dion Almaer posted:

The launch of Adobe Photoshop Express has been much anticipated. We are seeing the move of a large software company going from desktop to Web for a major application.
As Erick Schonfeld points out "Photoshop Express is by no means just Photoshop ported onto the web."
I am a big fan of Picnik and for awhile was using it quite regularly, so I wanted to see how they compared.
It seems like Photoshop Express is pretty limited and seems very much focused on taking images, putting them online, and doing little touch-ups. One of the things that I am always doing is taking a picture and adding text and shapes to it, and this isn't available, so I kinda don't know when I would use this other than for simple cropping and resizing.
The interface is sleek and Flash-y but somehow doesn't feel as nice as Picnik to me.... I don't know why.
View Source has some fun though:
PLAIN TEXT
HTML:



What do you think?


Acid 3: Opera Passed?

Dion Almaer posted:

It appears that Opera has passed Acid 3:
Since the test was officially announced recently, our Core developers have been hard at work fixing bugs and adding the missing standards support.
Today we reached a 100% pass rate for the first time! There are some remaining issues yet to be fixed, but we hope to have those sorted out shortly.
We will release a technical preview version on labs.opera.com within the next week or so. For now, the screenshot above shows the Acid3 test as rendered in our latest WinGogi Desktop build. WinGogi is the Windows version of our reference builds used for the internal testing of Opera's platform independent Core.
At the same time, Ian Hickson posted about changes to the test and Anne has commented that Opera is passing the latest and greatest:
"The updates from Ian have been done since the release of the test. Opera gets 100/100 on the latest version of the test."
Sub-pixel testing: It turns out that the original test accidentally required that browsers implement sub-pixel positioning and layout (and in fact the reference rendering got it wrong too, and relied on the same kind of rounding as Firefox does), which is somewhat dubious. I've changed the test to not rely on sub-pixel layout. However, it is very likely that this will be tested in Acid4, if we can get the specs to be clearer on this.
Surrogate pairs in SVG APIs: One of the submitted tests assumed that SVG APIs worked on Unicode codepoints, but the SVG spec changed to work on UTF-16 codepoints, like the rest of the DOM API, so the test was changed there. (The test changed a couple of times, because I originally got the fix wrong.)
The click() method: The test originally assumed that the click() method was reentrant, but the specs were vague on this and someone suggested making it fail if calls to it were nested, so I removed this part of the test (the spec hasn't been updated yet). I replaced it with an attribute test (the new second part of subtest 64).
The Performance Test: I made the loop counter in the performance test (a part of subtest 63) less complicated and shorter, to make it at least plausible that browsers could be fixed to pass that test quickly enough that it wouldn't always feel jerky. At the same time, I updated the test's infrastructure to report more details about pass and fail conditions and how long each subtest takes to run.
Namespace bug: Someone noticed that http://www.w3.org/1998/XML/namespace should have been http://www.w3.org/XML/1998/namespace in one of the subtests.
Linktest timeoutI made the linktest more resilient to slow network conditions. However, the test is still going to give you major issues if you are on a network with multi-second latency, or if the acidtests.org site is being slow.
Congrats to the Opera team!

Filament Group’s Accessible Extensions

Rey Bango posted:

Accessibility is on the minds of most of us and for some companies, it's an absolute priority. The Filament Group is taking accessibility seriously has produced two jQuery extensions that take that into consideration.
Accessible Charts
There's been quite a lot of effort of late to leverage HTML Canvas element for visualization of data but doing so in an accessible way hasn't been a priority. The focus has really been on making data look pretty without much thought to how it should render to those that can't benefit from those extended browser features.
The idea of visualizing HTML table data has been a hot topic lately. The first mention of it that we have seen was Christian Heilmann's YUI blog entry, which provides a clean solution for the problem using the Yahoo library. The idea is a good one: having the data on the page in a table allows it to be accessible, and the chart can be shown as a visual enhancement. Our attempt at solving the problem uses jQuery and provides several types of graphs, such as Pie, Line, Area, and Bar.
Using a combination of jQuery, some custom syntax to define the look of the the canvas element and standard HTML tables, the script can generate results like this:

The library also supports the following types of charts:
line
filledLine
additiveLine
additiveFilledLine
pie
bar
additiveBar
Accessible Slider
A bigger challenge for the team at Filament Group was developing a slider control which could be accessible. Building a slider requires the use of JavaScript, DOM manipulation and CSS all of which need to be added progressively if such a dynamic control will be viable in a non-JS environment.
Many of the advanced widgets and controls we develop today don't exist in the current HTML specification — there is no "slider" or "accordion" or "menu" element, so we must create one from scratch using markup that isn't semantically correct (divs, spans, unordered lists and the like), and layer on the appearance and behavior using CSS and Javascript. This works well when your audience is using a standards-compliant browser, but what about those using older browsers or mobile devices that only partially support the styles and scripts necessary for it to work? And how do you make the fully functional version — a block of non-specific divs and spans — accessible to assistive technology, like screen readers?
By beginning with standard semantic markup and progressively enhancing it when CSS and JS are available, the FG team was able to come up with a great slide extension that degrades gracefully:
JS/CSS Available:

JS/CSS Unavailable:

With a more complex double-slider scenario, again, the extension degrades gracefully:
JS/CSS Available:

JS/CSS Unavailable:

The team has always worked to make the sliders ARIA-accessible and will continue to refine it to make it compliant with the specification.

Hackers target Facebook apps

Chris Soghoian posted:

Hackers have turned their attention to Facebook's hundreds of independent applications. The results are not terribly surprising, but do not tell a good tale: app developers don't seem to know a thing about basic security, and are putting private user information at risk. As a result, malicious hackers are able to access and change what should be private user data managed by the application providers.
digg_url = 'http://digg.com/security/Hackers_target_Facebook_apps_private_data_stolen';
Just a few months after this blog brought you exclusive news of privacy problems in Facebook's application system, we are now already seeing the consequences of Facebook's decision to pass the buck on on application security and privacy. Facebook shares user data with a large number of third-party application developers (without user consent), who then leave the data open to hackers due to nonexistent security and privacy protections. We at Surveillance State would be lying if we said we didn't see this coming.
Third-party developers
As I mentioned in a blog post back in January, Facebook permits application developers to get access to large amounts of sensitive data, all without clear user consent. Simply put, whenever a user installs a Facebook app, the developers of that application get access to data on every person who that user is Facebook 'friends' with, as well as most of the people in that user's network. While Facebook makes it perfectly clear when users install an application that developers will get access to their data, it doesn't do anything at all to warn users that the same data sharing occurs when their friends install apps.
Facebook has its legal bases covered though, as its Terms of Service clearly state that the company is in no way responsible for anything that the developers do with user data. It further notes that the company does nothing at all to verify that developers are doing anything at all to protect user data, or that they are not storing data beyond the time needed to process the application request (a strict no-no). The terms of service state:
"[each application] has not been approved, endorsed, or reviewed in any manner by Facebook...we are not responsible for...the privacy practices or other policies of the Developer. YOU USE SUCH DEVELOPER APPLICATIONS AT YOUR OWN RISK."
Flaws in apps, users at risk
According to a recent article in 2600, the Hacker Quarterly, many popular Facebook applications are vulnerable to trivial attacks, which permit a nefarious person to both set and read the data associated with that app. The 2600 article uses apps Moods, Free Gifts, and Super Wall to prove its point.
Quite simply, the developers have no authentication mechanism in place on their own servers when processing queries issued by a Facebook application. The developers rely instead, on the Facebook app itself playing by the rules. A nefarious hacker merely needs to intercept the Web request issued by the app, and replace his/her own Facebook ID with that of a potential victim.
While the 2600 article is not online, a reader of the Consumerist blog summarized it online:
In all three of those applications, User A can very easily modify User B's data by intercepting a form and modifying the uid (Facebook user ID) before transmission. In addition, with some applications, User A can gain access to stored application data (e.g. history, etc.) for any User B, whether they are friends or not. Such applications blindly trust form data that can easily be tampered with, which is very clearly a bad idea.
The Moods application allows unauthorized users to view the mood histories of non-friends, and with Firebug, anyone with the app can intercept their own mood change form before submitting it, change the uid in the form, and change someone else's mood.
Super Wall has a similar vulnerability that allows someone to intercept the form in a similar way and spoof messages from ANYONE to ANYONE (even a non-friend) just by changing the to and from uid's.
This is not rocket science, but far closer to computer security 101. Microsoft's Larry Osterman has written about these kinds of flaws on his own blog, describing his effort to educate Microsoft's programmers:
It takes a special mindset to think like a bad guy. Not everyone can switch into that mindset. For instance, I can't think of the number of times I had to tell developers on my team "It doesn't matter that you've checked the value on the client, you still need to check it on the server because the client that's talking to your server might not be your code."
On Wednesday, I spoke with Adrienne Felt, the University of Virginia researcher whose report first highlighted the excessive and dangerous data sharing that happens between Facebook and its Application developers. When asked for her thoughts on the lack of authentication and security at major Facebook apps, Adrienne told me that, "sadly i am not surprised at all" as "apps are written by people who just barely know anything about coding."
For those of you interested in learning more, someone has taken the time to record a screencast of the attack in action. All that's needed is a Facebook account, the Firefox browser, and the Firebug browser add-on.

Older Posts