tag:webdev.shared.arty.name,2011:index.atomЗаписи о веб-разработке, рекомендованные Артемием ТрегубенкоАртемий Трегубенкоme@arty.namehttps://arty.name2010-12-02T21:26:20Ztag:google.com,2005:reader/item/7ac59d5f6224e439
URL Design
2010-12-31T10:03:03Z2010-12-31T10:03:03Z
<div><p><a href="http://warpspire.com/posts/url-design/">URL Design</a>. Thoughtful tips on modern URL design, from GitHub designer Kyle Neath. GitHub has the best designed URLs of any application I can think of.</p>
</div>
(author unknown)
03864993357834095830
15948044811593520186
06979079520620016938
06827048095458046238
18289676205591267925
07473722672288884090
05146921633288747240
08283262736758624906
02240698951620832195
00046397691560094039
07536226548889710969
09104679500422699973
08097270454300781865
06229953834950467549
00363647479470519434
06056166427390173745
00909334852237074683
02717672290667344264
06579259917548323614
03672663035304635029
06741833943472740271
05690229047086915053
03890724121766407944
06636548060106328016
09842727045440589254
00859930866331500718
17929056866888266091
02923608477155701515
16654731997437621762
02120173256622064360
11641427018177182548
10193626061820321244
16500897162056430000
07751169632350071587
10202714043885511706
06698414861084483557
01640370281238264014
11346896588010740235
10872455376173209910
17880201621297192617
16768104647343440712
16121090148552668715
14602856375317191015
tag:google.com,2005:reader/item/03c5adbd39d2cf1f
расширение для оперы «у всех работает»
2010-12-24T18:32:20Z2010-12-24T18:32:20Z
<p>кратко: установите <a href="https://addons.opera.com/addons/extensions/details/up-for-everyone/">расширение</a> в оперу, откройте <a href="http://y.not/">неработающий сайт</a>, смотрите внизу страницы</p>
<p>подробно: недавно меня восхитила <a href="http://habrahabr.ru/blogs/google_chrome/110459/">функция браузера Chrome, которая при недоступности сайта проверяет его доступность для других пользователей</a>. Я нередко пользовался для такой проверки сайтом <a href="http://downforeveryoneorjustme.com/">DownForEveryoneOrJustMe.com</a>, но заходить на него приходилось вручную, и это было не очень удобно. А тут проверкой занимается сам браузер — это же круто! Думаю, уже через полгода такое будет во всех браузерах.</p>
<p>впрочем, я не уверен, что разработчики браузеров со мной в этом согласятся, поэтому я решил приблизить этот момент хотя бы для себя. Тем более, что у меня давно руки чесались попробовать написать <a href="http://dev.opera.com/articles/extensions/">расширение к опере</a>. По пути к успеху я нашёл несколько граблей, которыми хочется поделиться.</p>
<p>казалось бы, всё очень просто: допиливаем под себя пример конфига, пишем пару скриптов, зипуем, меняем расширение на <code>oex</code> и всё. Но нет. Во-первых, статьи на dev.opera.com не очень-то структурированы, с которой начинать, неясно. Во-вторых, с момента, когда были написаны многие из них, кое-что успело измениться, в том числе <a href="http://www.w3.org/TR/widgets/">спецификация виджетов</a>. В-третьих, куда же без глюков.</p>
<ul>
<li>очень помогает иметь правильный xmlns в конфиге, в моём примере его не было</li>
<li>некоторые значения типа <code>id</code> и <code>version</code> из отдельных тегов стали атрибутами</li>
<li>с содержимым <code>author</code> случилось то же самое</li>
<li>если всё остальное сделано правильно, локализация будет работать как надо сама по себе</li>
<li>но к <code>author</code> локализация не применяется, этот элемент должен быть один</li>
<li>на выбор языка влияет язык, указанный на первой странице настроек оперы, а не то, что в расширенных настройках</li>
<li>нет особого смысла использовать в конфиге <code>content</code></li>
<li>если конфиг или даже oex не перетаскивается на оперу, попробуйте открыть его через ctrl+o</li>
<li>сайт расширений оперы предлагает только одну открытую лицензию: Apache 2.0</li>
<li>он же при проблемах с конфигов сообщает только то, что ошибка есть, а какая она — поди поищи</li>
<li>из-за неправильного конфига расширение может конфликтовать с юзерскриптами — просто не работать, если есть хоть один</li>
</ul>
<p>локализация — самое интересное для меня, потому что система хорошая, и мне давно было интересно попробовать, как всё само работает. Получилось не так радужно из-за остальных косяков, но когда я их исправил, всё и правда стало хорошо. У меня строки используются только в скриптах, поэтому я положил в <code>locales/en/messages.js</code> и <code>locales/ru/messages.js</code> по объекту со строками, подключил в <code>index.html</code> <code><script src="messages.js"></script></code>, быстро набросал nano-gettext с подстановками. Если бы в html было много строк, пришлось бы и сам index.html копировать в папки локалей и переводить целиком. А сейчас я понимаю, что нужно было оставить английский messages.js в корне, чтобы для неизвестных локалей включался именно он.</p>
<p>что касается яваскрипта, то аккуратно разложив код по функциям, я обнаружил, что переменную <code>domain</code> приходится пробрасывать едва ли не в каждую. Связано это с тем, что расширение может работать параллельно с несколькими страницами, и глобальные переменные там не поиспользуешь. Поскольку <code>domain</code> приходит мне в <code>onmessage</code>, для простоты пришлось перенести объявление всех функций внутрь этой.</p>
<p>когда я ещё не знал, что messages.js будет автоматически выниматься из нужной папки, я собирался основывать локализацию на <code><content xml:lang=""></code>, чтобы каждый из них ссылался на соответствующий index.html, а тот уже подключал бы правильный messages.js. Потом выяснилось, что это не работает, и не по спеке, но index.html сохранил радующий своей минималистичностью вид:</p>
<pre><code><!DOCTYPE html>
<title></title>
<script src="script.js"></script>
<script src="messages.js"></script>
</code></pre>
<p>отдельная забавная задача: как определить, что опера сейчас показывает ошибку подключения к сайту? Сейчас это работает не очень-то надёжно : ) Скрипт будет активизироваться на любом документе, содержащем только один стиль, адрес которого начинается на <code>file://</code> и заканчивается на <code>styles/error.css</code>. К сожалению, мне не удалось найти никаких более надёжных переменных или значений. Парсить же текст страницы смысла не имеет, потому что он переведён на кучу языков и меняется в разных версиях. Надеюсь, мой способ будет работать достаточно хорошо : )</p>
<p>теперь мне нужно подождать несколько дней, пока расширение изучат и выложат на сайт. Если это случится, адрес, скорее всего, будет вот такой: <a href="https://addons.opera.com/addons/extensions/details/up-for-everyone/">«Up For Everyone»</a>. Там будет работать автообновление, поэтому лучше использовать этот источник.</p>
(author unknown)
04957333283473993000
10202714043885511706
tag:google.com,2005:reader/item/b0d1e40e3018ea3f
Браузеры / Сохранение гипертекстовых документов различными браузерами
2010-12-06T18:07:23Z2010-12-06T18:07:23Z
<img src="http://habrastorage.org/storage/1690479e/35c7b3a5/2609ac4f/8b4ff240.png" align="center"><br>
Тема «кривости» браузеров часто поднимается, в этом топике я предлагаю рассмотреть браузер не с точки зрения визуального агента пользователя, а как «черный» ящик, на вход которого подаётся один документ, а на выходе (после сохранения) получается другой.<br>
<div> <a href="http://habrahabr.ru/blogs/browsers/109476/#habracut">Читать дальше →</a> </div>
Albertum
08966645570817430322
06790442936966660465
09054417826013640889
00826012331727038095
11486182456436215396
03124937164146708585
04806715576477850730
06215014713377964743
14279399605139043925
09829365864508644255
02596940586286743283
17767077646750218447
10202714043885511706
tag:google.com,2005:reader/item/e7585a95284c7e09
Thanks partner! A year of pair programming
2010-12-05T20:20:32Z2010-12-05T20:20:32Z
(author unknown)
tag:google.com,2005:reader/item/c7e4d098097e2c94
Google Maps and Label Readability
2010-12-03T17:08:19Z2010-12-03T17:08:19Z
<div><p><a href="http://www.41latitude.com/post/2072504768/google-maps-label-readability">Google Maps and Label Readability</a>. Obsessively detailed analysis of exactly what makes Google Maps so readable when compared to Yahoo! and Bing.</p>
</div>
(author unknown)
11437548115158198028
13457623968576712881
05690229047086915053
16654731997437621762
10202714043885511706
tag:google.com,2005:reader/item/aa49f79e781a4af2
James Clark: I think the Web community has spoken, and…
2010-12-02T21:26:20Z2010-12-02T21:26:20Z
<div><blockquote><p>I think the Web community has spoken, and it’s clear that what it wants is HTML5, JavaScript and JSON. XML isn’t going away but I see it being less and less a Web technology; it won’t be something that you send over the wire on the public Web, but just one of many technologies that are used on the server to manage and generate what you do send over the wire.</p></blockquote><p> - <a href="http://blog.jclark.com/2010/11/xml-vs-web_24.html">James Clark</a></p>
</div>
(author unknown)