All streams
Search
Write a publication
Pull to refresh
17
0
Иван @sompylasar

Пользователь

Send message
Еще вот комментарий всплыл в поиске, здесь точно про I2P:
habrahabr.ru/post/142060/#comment_4751527
PPTP VPN и тор не работают в китае. У I2P заблочены все reseed url. Я уж молчу про просто прокси.

Возможно, имелся в виду этот результат поиска (первый по запросу «i2p китай»):
forum.i2p2.de/viewtopic.php?t=7040
Сайт как свадебный торт. Заказали и ешьте. А то торт потом после испекания ещё допиливают, обсуждают. Комедия.

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

Похоже, аналогичная ситуация происходит и с веб-студиями.
Напоминает затею с ReactOS.
Или оговаривать трудоемкость и стоимость внесения конкретных изменений на этапе обсуждения.
Отличное начало! С нетерпением жду продолжения истории!
Описанное Вами решение очень напоминает описанное Nikolas Zakas'ом в презентации (только он описывает такую архитектуру для JavaScript-приложения):
www.youtube.com/watch?v=vXjVFPosQHw
www.slideshare.net/nzakas/scalable-javascript-application-architecture
Всё круто! Пара замечаний на следующий релиз.

На пустых вкладках открывается пустой поп-ап.

> Разное: отображение статистики внутренней страницы для W3C
Вторая строка W3C часто получает таймаут. По-видимому, дело в том, что запросы отсылаются параллельно, и сервер валидации как-то их прореживает. Возможно, второй запрос нужно отсылать с некоторой задержкой. А вот сами ссылки, на которые переход идет по клику, совпадают.

Еще, возможно, стоит кэшировать результаты, а то при каждом открытии поп-апа они загружаются, а для W3C ответ приходит небыстро. В случае кэширования добавить кнопку «Обновить».

P.S. <div class="kitajskiyKod ... — это сильно!
Результат W3C Validator хотелось бы получать для конкретной страницы, а не для домена.
При запуске на этой странице сейчас валидируется корневая: validator.w3.org/check?uri=habrahabr.ru
Странно… Попробовал jQuery 1.7.1 (в консоли):
jQuery.getJSON("http://graph.facebook.com/?ids=http://habrahabr.ru/").done(function(r){console.log(r);});

— вывело полученный объект. Вы какой версией jQuery и какой функцией получаете? Можно использовать getJSON, либо посмотреть параметры jQuery.ajax, которые она устанавливает (обработка ошибок должна быть через возвращаемый Deferred).
Для размытия текста (как в примере на картинке из статьи) можно использовать приём, который я заметил на www.google.com/mapmaker

#page * {
    color: transparent !important;
    text-shadow: 0 0 8px grey !important;
    text-decoration: none;
}


Текст сам делается прозрачным, и ему добавляется тень под цвет текста.
Побуду занудой: Fabric — это ткань, материя, а фабрика — Factory.

Ну а идея и реализация понравились, красиво.
Согласен, что не ограничивается. Но, стандартная библиотека, содержащая много таких специализированных структур данных, будет большой по объему и медленно прогрессирующей. Какой в этом смысл для быстро развивающихся веб-приложений? Кто эту библиотеку будет поддерживать, ведь на это необходимы немалые ресурсы?

Сейчас есть много маленьких открытых библиотек, каждая из которых предоставляет строго определенные функции и слабо зависима от других библиотек, как по коду, так и по сообществу разработчиков. За счет этого возникает конкуренция и развитие, появляются новые библиотеки, более эффективно реализующие уже известную функциональность.

Один из примеров: Crossroads.js — одна из реализаций паттерна Route/Dispatch — паттерн довольно стандартный для веб-приложений, можно было бы включить в «стандартную» библиотеку. Но, раз появляется такое большое количество альтернативных реализаций, значит, какая-то одна из них многих не устраивает. А из альтернатив обычно можно выбрать наиболее подходящую для Вашего ПО, и не быть загнанным в рамки стандартной библиотеки.

Другой пример: succint trie для эффективного хранения массивов слов вряд ли войдет в «стандартную» библиотеку — слишком специализировано (далеко не всем нужно хранить большие массивы слов). Но, тем не менее, для Вашего прикладного ПО такая функциональность может понадобиться, и вы ее подключите без проблем при необходимости.

Обычно, если Вы находите замену для функций, реализованных в рамках стандартной библиотеки, то последняя становится больше грузом, от которого невозможно избавиться, чем полезным подспорьем. И, опять же, обычно, бывает так, что заменяются не все функции, поэтому полностью избавиться от нее полностью невозможно. Да, можно организовать «стандартную» библиотеку в виде модулей — но тогда они по сути ничем не будут отличаться от уже существующих и, зачастую, признанных сообществом, открытых библиотек.

Никто не мешает крупным компаниям выпускать свои библиотеки и разрабатывать стандарты. Например, компания Zend вообще переписала движок PHP, а также разработала собственный фреймворк, который стал популярным в настоящее время, поэтому можно назвать его одним из стандартов в среде PHP. Google, в свою очередь, разработала Closure Library для JavaScript — чем не стандарт, который может принять разработчик при поиске средства реализации того или иного проекта.

Еще одно следствие наличия одной «стандартной» библиотеки — невозможность в короткие сроки предложить что-то, возможно, лучшее, взамен: огромные усилия требуются создателям Mono при повторной реализации созданной Microsoft'ом «стандартной библиотеки», чтобы обеспечить совместимость прикладных программ.

Подводя итоги: я за то, чтобы в базовой функциональности было только самое необходимое. Пусть разработчики движков хотя бы о реализации этого договорятся между собой. Остальное должно оставаться почвой для конкуренции.
P.S. Насколько я знаю, CIL — это объектно-ориентированный ассемблер, то есть для него определена только архитектура виртуальной машины и система команд. Классы и объекты, входящие в «стандартную библиотеку» (например, Microsoft .NET) — это уже более высокий уровень. Они предназначены для исполнения на этой виртуальной машине и будут предоставлять некий программный интерфейс в её терминах, а реализованы будут либо на CIL, либо, в угоду оптимизации, написаны или скомпилированы из CIL в процессоро-зависимые инструкции.
Стандартной библиотеки для делания чего? В JavaScript есть встроенные в язык массивы, словари, определены операции над ними, определены классы и объекты для работы со строками, со временем, есть математические функции.

Это то, что касается непосредственно языка. Всё остальное — варианты использования этого языка в различных средах. Классы и объекты, описывающие среду исполнения, могут различаться.

Например, в node.js может, в отличие от браузера, не быть понятия Window, зато будет HttpServer — какой смысл всё это включать в одну, «стандартную» библиотеку?
Все-таки, доступ к железу будет обеспечивать ядро Linux. А браузер будет обращаться к драйверам, к файловой системе (это уже далеко не железо) — точно так же происходит и в нынешних ОС.

Единственное отличие — графический интерфейс реализован с помощью веб-движка. Все равно существует прикладная программа «Браузер» (пусть, написанная с использованием веб-технологий), которая использует графический интерфейс (читайте, встроенный веб-движок + фреймворк Gaia) для отображения элементов управления и веб-страниц.
Забавно: баг магически пропадает после попытки проинспектировать ссылку в Developer Tools, причем пропадает на каждой ссылке по отдельности.
Может, не совсем по существу, но все же не стоит вводить читателей в заблуждение такими фразами:
не имеет операционной системы в традиционном понимании этого слова

и, в то же время,
Boot2Gecko — полностью открытая платформа на базе ядра Linux.


Операционная система, в традиционном понимании этого слова, — это прослойка между аппаратурой и прикладными программами. Её не может не быть на устройстве.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity