Ссылки о веб-разработке за сентябрь 2009

YUI Theater — Tom Preston-Werner, Chris Wanstrath and Scott Chacon: “Git, GitHub and Social Coding”

Tom Preston-Werner of GitHub

Dav invited the GitHub team down to Yahoo! recently to talk about one of our favorite subjects (Git) and one of our favorite sites (GitHub). Tom Preston-Werner, Chris Wanstrath and Scott Chacon all stopped by and conducted an excellent tag-team tech talk. Video from that session is now up on YUI Theater with a full transcript. Thanks to the GitHub guys for coming down and letting us share this content with everyone on video.

If the embed below doesn’t show up in your RSS reader-of-choice, be sure to click through for the high-res, transcripted video page:

Other Recent YUI Theater Videos:

Subscribing to YUI Theater:

Python Logging 101

Python Logging 101. A really useful introduction to Python’s logging module by that module’s author, Vinay Sajip.

Переход на Linux: взгляд разработчика под Windows - moradan's blog

Shared by ksi
Success story перехода разработчика нативного(!) кода. С Java то все еще проще.
Несколько недель назад я перешёл со среды разработки на Windows к другой на Linux. Я сделал это с проектом, который до того разрабатывался исключительно под Windows. В этом постинге я хочу описать проблемы, которые заставили меня пойти на такой шаг, небольшое описание самого процесса перехода и немного наблюдений о Linux для разработчиков.

Fwd: just ran stats on OpenID providers on SO. As usual, it's Google's world, we just live in it: 56% Google. (через http://ff.im/8Mt2y)

Железная ОС

А вот еще новинка: операционная система реального времени, упакованная в железе -- причем не в FPGA (это уже было), а в 90нм чип -- http://techon.nikkeibp.co.jp/english/NEWS_EN/20090925/175657/

Хвастаются, что на 150МHz их ОС-ядро позволяет обработать TCP/IP на скорости 500Mbps, а на обычном ядре CPU можно обработать только 30Mbps -- и дел-то всего на несколько сотен тысяч гейтов. Теперь эти японцы (Netcleus Systems, http://www.netcleus.com/) хотят выпустить модуль для той же функции в библиотеку для включения в другие процессоры.

Микроядро реального времени -- это где-то 8тыс. строк кода на C (см., например, http://ailev.livejournal.com/730905.html). Неудивительно, что приходят мысли запихнуть такой код внутрь чипа, да еще и включить стек TCP/IP и ряд других расширений. Удивительно, что не занимались этим раньше.

Web-разработка / [Перевод] Сентябрьские изменения в спеке HTML5

В сентябре — последнем месяце перед запланированным на октябрь переходом HTML5 в статус Last Call — в спеке HTML5 произошел ряд существенных изменений, которыми html5doctor.com желает поделиться со своими «пациентами».
Вот основные изменения...

IE и HTML5

Ребята из Microsoft пообещали реализовать теги VIDEO и AUDIO в своём браузере. Интересно, что Microsoft просит W3C задуматься о расширении синтаксиса тегов, чтобы, например, можно было предоставить пользователю возможность просматривать (прослушивать) контент не только в разных кодеках, но и с разным качеством и/или на разных языках (!).

Linux станет основной платформой Cisco в сегменте малого и среднего бизнеса

Awful Programming Advice

эээээ

const int PI = 3.1415926535897932384626433832795;

Harold "Bud" Lawson

Имел сегодня счастье примерно час беседовать с Гарольдом Лоусоном (1937г.), который изобрел переменную типа "пойнтер" (при формулировании языка PL/1), сделал первый в мире компилятор COBOL (для UNIVAC-1, и работал этот компилятор в памяти 2Кслова!), принимал участие в разработке архитектуры компьютеров Burroughs (и регулярно общался на эту тему с Аланом Кеем), написал в 2002г. статью в Communications of ACM (вот ее черновик, по сути в конечном варианте было не так уж много изменений: http://www.ida.liu.se/ext/cugs/doclib/Lawson-WP.pdf) с тезисом о самом ужасном событии для компьютерного дела -- победе микропроцессоров (их ужасная архитектура выкинула на долгое время на свалку все, что было накоплено в опыте проектирования мейнфреймов, а экономическая модель разрушила поиск гармонии между софтом и железом за счет перераспределения функций), а также выполнил огромное количество всяких других проектов (о которых он говорит -- "я люблю помогать людям").

"Увы, менеджеры склонны поощрять сложность -- за нее больше платят", сказал он мне сегодня, категорически осуждая текущее состояние дел. Все его примеры сводились к тому, что архитектуры должны позволять писать короткий код, а программистов для любой отдельной программы должно быть мало.

Теперь он занимается развитием системного мышления (то есть методологией), совсем недавно был архитектором ISO 15288, и сфера его нынешних интересов -- системная инженерия и образование в этой сфере (так, он читает пятидневные курсы по системной инженерии). Он Fellow одновременно в ACM, IEEE и INCOSE.

Очень надеюсь, что не последний раз с ним встречался.

16 сентября 2009г.
На фото я с Harold "Bud" Lawson (крайний справа -- Mats Bjorkeroth, управляющий директор системноинженерной фирмы Syntell).

Про СССР он рассказал, что БЭСМ-6 была восхитительной архитектуры, и что решение клонировать System/360 вместе с ее софтом было эффективным способом отбросить компьютерную промышленность СССР на десятки лет (он подчеркнул еще раз: интеллектуально десятки лет) назад. На Западе аналогичную задачу отброса тамошней промышленности назад решил микропроцессор (который поначалу был слишком прост, чтобы на нем можно было применить уже известные на тот момент архитектурные решения для мейнфреймов, а потом уже "совместимость" не позволила этого сделать -- и не позволяет этого делать до сих пор). Лоусон считает, что новые компьютерные архитектуры появятся не на Западе, а где-нибудь в на периферии мира, где просто нет денег на воспроизводство дорогих, сверхсложных и одновременно сверхслабых машин, а нужно будет что-нибудь сделать "дешево и сердито". Он полностью поддерживает тезис Алана Кея, что современные хардверные архитектуры задолжали по производительности примерно 1000 раз (http://queue.acm.org/detail.cfm?id=1039523) -- но кроме того, он считает, что они еще и вредно влияют на архитектуру софта из-за неправильного архитектурного баланса между софтом и железом.

brad: On PubSubHubbub and rssCloud ...

Opera / Контролы форм в html 5

Честно говоря, я сначала хотел сделать обзор, как современные браузеры поддерживают всякие новые контролы для форм из спецификации html 5. Но похоже обзора не выйдет — единственный браузер, поддерживающий больше двух контролов — Опера.

Я накидал очень простенькую страничку, куда поместил кучу input'ов с неведомыми мне доселе значениями свойства type и получил такой результат:
Читать дальше →

Testing mobile phones, or the masochist’s guide to gleeful self-flagellation

After seven months of mobile testing (as well as a wealth of inventive invective aimed at mobile devices) I think it’s time to share some of my experiences with others who are inclined to violent self-punishment.

Welcome to my world! Bring your whip, bring a first-aid kit, and let’s have some fun punishing ourselves.

Today we’ll discuss the process of testing mobile browsers. We will not talk about the test results or their interpretation, we’ll leave that gorefest for another time.

Убить ИЕ 6

Запустили призыв обновиться для владельцев ИЕ 6 и 7.



Баннер виден в поисковой выдаче вакансии под 6-м и 7-м ИЕ.

Арт-директор и проектировщик интерфейса: spottyМихаил Танский

RSSCloud Vs. PubSubHubbub: Why The Fat Pings Win

RSSCloud Vs. PubSubHubbub: Why The Fat Pings Win. A PubSubHubbub advocate explains the differences between the two proposals: most importantly, PubSubHubbub includes the actual new content with the “fat ping” whereas RSSCloud just notifies you that you should poll the RSS feed, leading to a potential thundering herd. I’m still hoping one of those specs will detail a way in which they can be used for scalable regular WebHook-style notifications without any feed infrastructure at all.

SSD disks... Bah!

Загрузка многих файлов одним input type="file"

Вам приходилось заниматься сексом с флэш плагинами для мультиаплоада? Особенно в связке с nginx: «error 2038 — о, да, детка, ещё!».
Судя по timeline W3C планирует наконец разобраться и начать рекомендовать html5 примерно к 2022 году. А я вот сегодня с сайтом мучаюсь.
Но к счастью, довольно давно opera предложила и единолично внедрила в одноименный браузер концепт Web forms 2.0, частью которого является расширение тега input:
было: input type="file"
стало: input type="file" min="1" max="9999″ multiple и никакого флэша, джаваскрипт обёрток и т.п.

Фичу поддержали Chromium 3.0.191.0, Safari 4.0.1 и, соответственно, Opera. Лично мне для очистки совести перед пользователями — не хватает только FF. Баг висит в трекере с 2000 года, и если и вас задолбало бороться с мультиаплоадом — предлагаю пройти нехитрую регистрацию и нажать кнопку vote.
Уверен, что неблагодарные потомки даже не вспомнят об этой проблеме, но мы то будем знать, что не всегда всё было так просто.
Спасибо.
UPD: 35 голосов прямо сейчас

Ajax / MS Doloto: оптимизация загрузки Ajax-приложений

Shared by arty
с одной стороны, результаты впечатляющие, авторы молодцы!
с другой стороны, очень не хочется отдавать свой код под контроль какой-то посторонней программе. Хотя я понимаю, что точно так же лет 30 назад какой-нибудь программист не верил компилятору и писал машинный код самостоятельно
В MSDN DevLabs выложили программу Doloto, предназначенную для оптимизации любых Ajax-приложений. В соответствии со своим названием, Doloto отсекает код до необходимого минимума, так что приложение быстрее загружается клиенту и быстрее начинает выполняться.

Программа анализирует исходники и выделяет тот фрагмент кода Javascript, который непосредственно необходим для инициализации программы. Профилирование функций осуществляется на клиентской машине через локальный прокси-сервер http://localhost:8888 во время исполнения Ajax-приложения в браузере. При этом все «ненужные» функции помечаются метками (таймстампы). Прямо на клиентской машине генерируется оптимизированный код Ajax-приложения, в котором «ненужные» функции заменяются маленькими заглушками. Этот код потом будет загружаться в фоновом режиме или по мере необходимости, уже после инициализации основного скрипта. Оптимизированный код сохраняется на жёстком диске клиентского компьютера. Таким образом, можно оптимизировать чужие приложения, даже не имея доступа к их серверам, см. Doloto FAQ.

Программку протестировали на популярных Ajax-интерфейсах и получили впечатляющий результат.
Читать дальше →

Ok, now you can start panic.

Недавно я вспоминал про фундаментальную уязвимость в TCP. Так вот, похоже, наконец-то детали стали предаваться огласке. Как минимум три крупных вендора выпустили advisory. Но сермягу пока можно найти только здесь:

http://tools.cisco.com/security/center/viewAlert.x?alertId=18799
http://tools.cisco.com/security/center/viewAlert.x?alertId=18959

This vulnerability exists due to improper handling of malformed TCP/IP packets. Affected systems and devices do not properly handle TCP/IP packets with small or zero window sizes. The processing of a malformed packet could cause a system to maintain the connection indefinitely in an open wait state.

Про Windows, однако, написано подробнее и позволяет уже догадаться, где спрятался дьявол (в TCP state machine, очевидно):

This vulnerability is due to errors in handling malformed TCP/IP packets with small or zero size TCP receive window size. The processing of a malformed packet could cause the Windows TCP stack to continue to wait for network transmissions. In the event of a malicious packet, no further communication may occur, causing the connection to wait indefinitely in a FIN-WAIT-1 or FIN-WAIT-2 status. A series of malicious packets could cause the system to keep all available connections in a waiting state, preventing the establishment of other connections.

По-моему, все ясно. Для кого не ясно, я уверен, в русской и, само собой, западной блогосфере все это более чем детально обсосут в ближайшие 48 часов.

Opera 10

Shared by arty
>> navigator.userAgent
Opera/9.80 (X11; Linux i686; U; en) Presto/2.2.15 Version/10.10

We released Opera 10 a few days ago. Due to Web authors not being able to count to ten the User-Agent string is unfortunately slightly longer than planned, advertising Opera 10 as both Opera 10.00 and 9.80. Compatibility should be better because of this. This release also includes support for @font-face and a whole bunch of other stuff we had to implement in order to fully pass Acid3. The Selectors API is also supported.

Google App Engine Blog: App Engine SDK 1.2.5 released for Python and Java, now with XMPP support

Opera 10 release approved by 4 out of 5 Opera users


A Soviet Era-style building, St. Hanshaugen, Oslo, Norway, Europe, Tellus. September 4, 2009 (Opera NewsWire):

The official release of Opera 10 has been met with great enthusiasm from almost all 5 Opera users. After a record-breaking 3 downloads within 24 hours of the release, the reviews are raving, and one Opera enthusiast even thinks he will be able to get his older sister to use Opera, boosting the user count to an unprecedented 6 users. ...

Gmail has a feature that only works in Opera

Google's David Bloom (yes, he has a blog at My Opera :)) points out that Opera is the only browser which supports "<input type="url">", which means that Opera is the only browser which works properly with Gmail's "Insert Link" feature in the rich text composer.

Head over to his blog if you want to see a screenshot.

Любителям статистики

Отличная картинка у [info]klimenko: сравнение активности Рунета 31 августа и 1 сентября, на которой видно, как детей отправили пораньше спать в ночь с 31-го на 1-е, выгнали в школу утром-днём и снова отправили спать пораньше вечером 1-го.

Seven Web Fonts showcases

This article presents some all-new Web Fonts showcases, written by the Opera developer relations team, to educate and inspire you! Check them out, and feel free to download and reuse the code.
← предыдущий месяц