Ссылки о веб-разработке за август 2009

Android closing in on BlackBerry, taking share from iPhone

Making Open Source Work

NoSQL: If Only It Was That Easy « Marked As Pertinent

Django-SocialAuth - Login via twitter, facebook, openid, yahoo, google using a single app. — The Uswaretech Blog - Django Web Development

"MongoDB is fantastic for logging"

“MongoDB is fantastic for logging”. Sounds tempting... high performance inserts, JSON structured records and capped collections if you only want to keep the past X entries. If you care about older historic data but still want to preserve space you could run periodic jobs to roll up log entries in to summarised records. It shouldn’t be too hard to write a command-line script that hooks in to Apache’s logging directive and writes records to MongoDB.

Test Swarm Alpha Open


TestSwarm, the project that I've been working on over the past 6 months, or so, is now open to the public. Mozilla has been very gracious, allowing me to work on this project exclusively. At the beginning of April I moved from my old position as a JavaScript Evangelist on the Mozilla Evangelism team to that of a JavaScript Tool Developer on the new Developer Tools team (whose other major project is Bespin).

For more information on Test Swarm I've written up a detailed explanation of what Test Swarm provides and where it fits into the landscape of JavaScript developer tools.

I've also recorded a screencast walkthrough of the TestSwarm site:

Test Swarm Walkthrough from John Resig on Vimeo.

Additionally, there are two previous posts that I've made on TestSwarm:

There are some additional screenshots of Test Swarm in action on Flickr.

More Information:

If you're interested in using Test Swarm I strongly recommend reading the project overview first. If you have any further questions please direct them towards the Test Swarm discussion Group.

TestSwarm ended up being a very challenging project to get to an alpha state (and probably will be even more challenging to get to a final release state). Dealing with cross-browser incompatibilities, cross-domain test suite execution, and asynchronous, distributed, client execution has been more than enough to make for a surprisingly difficult project. It's mostly written in PHP and uses MySQL as a back end (allowing it to run in virtually any environment). Patches will absolutely be appreciated.

This project has been a long time coming now, the first inklings started back in 2007. Some of us on the jQuery team were discussing ways to distribute the test suite load to multiple browsers in an automated fashion. Andy Kent came along and proposed a participatory application for testing visual code (such as jQuery UI). We worked on that code base for a while but it didn't get off the ground. Eventually I decided to re-tackle the problem early on in 2009. Even in its rough alpha state we've already been able to make great use of TestSwarm. For example, here's a view of jQuery commits run in TestSwarm:

TestSwarm jQuery Commits

The vertical axis is SVN commits to jQuery (newer commits at the top), the horizontal axis are all the different browsers that we target. Using TestSwarm we've been able to easily spot regressions and fix them with a minimum amount of hassle (especially since all the results are logged).

And this is only the beginning. There are so many different directions in which Test Swarm can be taken. For example:

And the list goes on. I'm definitely curious to see what directions the community is interested in driving the code base. I've gotten it to a level where it's particularly useful for me and the jQuery team - where should we go from here?

Apple's tight control of WebKit means a different open-source engine is needed?

In an article triggered by RIM's acquisition of Torch Mobile and their WebKit based browser, CNET's Matt Asay argues that Apple has too much control over WebKit. Other companies relying on WebKit for their browser will basically be slaves to Apple's release cycles, and Apple will always control where WebKit is heading and optimize it for their own products.

So what is his solution to this suggested problem?

it would be nice to see a truly open-source project--open in source, and open to outside involvement--standardize the mobile browsing experience, too

In other words, he is echoing Symbian's call for a standardized browser for all mobile phones. ...

Static Maps API v2

Static Maps API v2. The new version of the Google Static Maps API (static images generated using arguments in a URL, no JavaScript required) adds support for paths, areas and automatically geocoding addresses to specify locations of markers and the centre of the map.

Exploring OAuth-Protected APIs :: OAuth proxy

Exploring OAuth-Protected APIs

Exploring OAuth-Protected APIs. One of the downsides of OAuth is that it makes debugging APIs in your browser much harder. Seth Fitzsimmons’ oauth-proxy solves this by running a Twisted-powered proxy on your local machine which OAuth-signs every request going through it using your consumer key, secret and tokens for that API. Using it with a browsers risks exposing your key and token (but not secret) to sites you accidentally browse to—it would be useful if you could pass a whitelist of API domains as a command line option to the proxy.

@nqst TDD разработчик сначала пробует сдать работу и получить деньги; убедившись, что это не работает, начинает красить забор

Getting behind the vision - further Opera Unite concepts

On June 16th, we unveiled Opera Unite, and the response was tremendous. So many people around the world were excited to learn what Opera Unite is all about and how the technology is poised to change how we interact with our data and each other online. That last point is worth re-emphasizing. Opera Unite, as many of you figured out, isn't just a tool for sharing data between computers; it is a platform that enables rich, real-time, and direct communication between people.

Since the launch of our experimental Labs release of Opera Unite, I've had the opportunity to see what people are asking for and dreaming about regarding future Opera Unite services. Inside of Opera, of course, we've been dreaming up some killer services as well. Work has already commenced on such services, paving the way for Opera Unite's full (non-alpha/beta) debut.

A lot of the suggestions have been based on the idea that Opera Unite would work well for collaboration, which I agree with. Some people say that Opera Unite is constrained by the fact that the applications only work when the person hosting Opera Unite services has his or her computer turned on and connected to the Internet. For some people, that is an impossible limitation. For others, however, the best creativity flows from designing within boundaries. The challenge is creating applications that are specifically designed for temporary connectivity instead of applications that are forced to work in spite of it.

1. Opera Unite and server-to-server communication

A critical feature of Opera Unite is that people don't have to use an Opera browser to view/consume Opera Unite-hosted content. Therefore, people who author Opera Unite services have a much larger audience than just Opera users (even though Opera Desktop users number in the tens of millions worldwide). That said, there is an opportunity here for application developers who ask the question: what kind of added functionality can be gained when multiple Opera Unite users connect with each other? We are so used to the idea of individuals connecting as clients to single centralized servers, but what about two, three, or more people connecting with each other, where everyone is powered by their own server?

Imagine, for example, the simple file sharing service currently available to Opera Unite users. Let's say I have a folder with hundreds of photos that I want to share with my dad. My dad has a folder of photos on his computer with some, but not all, of the photos I have on my computer. Right now, he might download all of the images from my folder, and then manually check for and delete duplicates, but that would be a waste of time. What we need is an Opera Unite service that compares the contents of the two folders and automatically synchronizes them (bi-directionally) so that my dad gets all the photos from me that he doesn't have yet, and I get all the photos from him that I don't have yet.

That is a simple example, but the concept applies to all kinds of scenarios involving shared content. Wikis, collaborative spreadsheets and presentations, and distributed eLearning tools all benefit from synchronization functionality. Opera Unite is poised to provide this functionality across all kinds of devices, completely for free.

2. The Opera Unite services of tomorrow

Here are two more illustrations of what Opera Unite Services might look like in the near future:

Opera Unite Screening Room

Opera Unite potentially enables social consumption of video in addition to audio. In this age of DVDs, downloadable videos, streaming video sites, and Digital Video Recorders, we have more convenient access to video content than ever before. We no longer have to sit down at a particular time in front of the TV to watch our favorite shows. Instead, we watch them whenever we feel like it. For many people, however, that means that watching videos is a potentially lonely experience. On some online video sites, there is an option to join "viewing rooms" so you can discuss what you're watching with other viewers. The problem with that, however, is that you're chatting with strangers, which is not really much better than watching it alone. Opera Unite offers a better alternative.

With a full-featured Opera Unite video player (and sufficient bandwidth), you can see which of your friends are online and invite them to your screening. When you play your video, it streams over the internet, and all your friends can watch at the same time, comment on the video, play trivia games, etc. Watching video on your computer thereby becomes a social activity with people you actually want to interact with.

In my experience among anime fans, I've met people who watch video on their computers, but have made it a social event by having their far-away friends watch the same video at the same time. Over the telephone, one person would tell the others when to hit "play", and they'd all chat about the video in real-time. The Opera Unite Screening Room would offer the same functionality, but in a more convenient and user-friendly fashion.

Opera Unite Shopping Trip

Browsing sites on a personal computer is another thing that most people do alone. However, shopping is something that many people do as a social activity. Shopping online, therefore, lacks a critical social component that many people enjoy. At best, two people might use a chat application to share links while shopping together online, but that requires a lot of cutting and pasting, unwieldy URLs, and no clear way of knowing what the other person is looking at.

With an Opera Unite shopping application, however, two or more people can view the same browser window simultaneously. The application could also contain a chat window, and each participant can mark pages (for specific goods) as being 'interesting' or 'not interesting,' and pull up other pages with related items or better prices. Each participant would be able to take turns showing the pages they are interested in. Another pane inside the shopping window might show each person's shopping basket, so you can discuss each other's choices before you buy.

Retailers could even create their own store-specific shopping apps allowing friends to browse together, view recommended items, take advantage of special offers and coupons, etc.

Such an application might also be particularly well-suited for group planning of vacations and other trips.

3. Further reading

Once again, here are some links to Opera users discussing what they want to see in Opera Unite:

Opera Unite forum on My Opera

Unite Dreams

There's a lot to digest and think about regarding this new technology; your feedback is much appreciated as we continue to develop it.

As always, developers can find detailed technical documentation on http://dev.opera.com/articles/unite/.

Jon S. von Tetzchner is one of the "top 40 to watch in mobile"

Telecoms.com has compiled a list of the top 40 people to watch in the mobile industry:

Who really holds the reins in the mobile communications industry? This is a question with an endless answer, so intricate and complex are the webs which create the mobile services on which billions of people rely every day.

This is of course their subjective opinion, which is always the case with such lists. But it's nice with some recognition for Opera.

They also have a bio page with a brief description of Jon and some of his and Opera's achievements.

Регулярные выражения / Некоторые ошибки при написании регэкспов

Shared by arty
удивительно, что при такой полезности регекспов так мало людей умеют их писать
По мотивам переведенной статьи

Впервые я увидел регэкспы еще в школе в перле, и в общем полюбил их с первого взгляда, конечно после того как разобрался что это такое :). И с превеликим энтузиазмом принялся все регэкспить. Конечно, при этом, понабивал себе шишек на мозг, но любить их не перестал. Со временем любая искренняя любовь взрослеет и перерастает в глубокую привязанность, с понимаем того, что объект твоего чувства может быть несовершенным, но от этого не менее любимым.

Итак, несколько способов предохраниться от разочарования в этом мощном и прекрасном инструменте…

Читать дальше →

A quote from Iain Lamb

rather baffling finding: POST requests, made via the XMLHTTP object, send header and body data in separate tcp/ip packets [and therefore,] xmlhttp GET performs better when sending small amounts of data than an xmlhttp POST

- Iain Lamb

activity streams - an extension to the Atom feed format to express what people are doing around web

боги услышали мои коммиты

Coding Horror: The Principle of Least Power

Net Applications retroactively changes stats, moves Opera to 2%

Net Applications has retroactively changed all its statistics, and the result is that Opera's market share is listed at around 2%. This is still lower than the more accurate 3% figure reported elsewhere, but at least Opera benefits from the changes for once.

Those who have followed my blog may recall that Net Applications has previously dumped Opera's figures with no explanation what so ever. ...

tr.im is "discontinuing service"

tr.im is “discontinuing service”. “However, all tr.im links will continue to redirect, and will do so until at least December 31, 2009.Your tweets with tr.im URLs in them will not be affected.”—these statements seem to contradict themselves. Will tr.im URLs in tweets stop working after December 31st or not? Any chance they could hand the domain over to the Internet Archive? At any rate, this is exactly why centralised URL shorteners are a harmful trend.

Закрывается сервис-сокращалка урлов tr.im. Куча ссылок будут битыми по сети. Кто следующий?

Монетизация на марше

Google начал встраивать свой AdWords в поисковые подсказки у большого поиска и тулбара!

Круто придумано. Интересно, выкачено в пятницу вечером, чтобы конкуренты не успели дернуться до понедельника?

NB: Репродукция Малевича с красной буквой "Я" — следствие прекращения командой Яндекс.Бара поддержки Windows 2000 и/или MSIE 6. Good job, ребята.

Каскадные Таблицы Стилей / Галерея с асинхронной загрузкой средствами CSS3

Занимаясь вёрсткой галерей, я искал простое и оригинальное решение для просмотра фотографий.
Экспериментируя, написал пример, которым хочу поделиться с сообществом Хабра.

← предыдущий месяц