Какой смысл использовать PyCurl для множества запросов без PyCurl.Multi? После таких «тестов» все будут думать, что PyCurl отстой, когда он может тысячи запросов в секунду делать. Только (ВАЖНО!!) PyCurl Multi должен быть скомпилирован с библиотекой (c-ares) — это очень важно. По скорости можно сказать так: PyCurl обычный (медленно), PyCurlMulti (быстрее, но все еще медленно из-за синхронных DNS запросов), PyCurl+c-ares (предесльно быстро).
Дело в том, что на DNS запросы тратится тоже время и в синхронном режиме DNSы обычно (из опыта) могут выдавать только десятки ответов в секунду. В асинхронном режиме запросов (чем и занимается c-ares!) DNSы могут выдавать сотни и под тысячу ответов. Так что скорость растет в десяток раз минимум.
Важно: по умолчанию PyCurl под linux скомпилированы без c-ares. Проверка 'import pycurl; print pycurl.version' — если в выдаваемой строке есть 'c-ares' -скорость будет максимальной при использовании PyCurl.Multi. (Я дико долго искал почему винда на домашнем компе делает сотни запросов в секунду, а сервер в датацентре только десятки — разница была в наличии «c-ares») Под виндой .exe установщик обычно включает в себя c-ares.
PyCurl.Multi тоже не так прост, как кажется — даже в официальном multi_get примере есть ошибка (не помню точно ее суть, но по-моему он не будет качать больше 100 запросов — очередь неправильно реализована). Можете воспользоваться для теста моей функцией multi_get (простой интерфейс к PyCurl.Multi)
Счетчик-то стоит до хабраката, вот и попала его запись (про «AC/DC: Iron Man 2») на главную хабра — вот все заходы на Хабр и считаются заходами в его «личный» блог.
Сторона 1 «автомобилист» должна зарегистрироваться, чтобы получать гневные сообщения от людей, которые не с той ноги встали. Нафиг надо?
Сторона 2 «вставшие не с той ноги», увидев за рулем машину, которая едет как им не нравится — вместо того, чтобы побибикать — должны во время езды достать мобильный и набрать смску с номером машины… очень «безопасно» и «быстро»…
Это не освоение, если человек будет по «промтоподобным» переводам язык учить. Будет как в симпсонах: «This is how you talk, when you learn English from porno movies.»
Нифига себе Вы замутили с фрикадельками… все мозги свернул пытаясь понять.
Вам нужно просто сделать простой и бесплатный уровень, который допустим, ограничен 5 словами в день и всего допустим (сколько-то, допустим 200) слов и платный «профессиональный», который ничем не ограничен (разве что есть рекомендованные пределы).
Да и регистрацию до пробы, как выше сказали — надо убирать. Дайте человеку попробовать, потом просите регистрироваться, если ему нравится и хочется сохранить результат (анонимная сессию).
Честно говоря, я думал на основании GPS в мобильных устройствах…
«The Geolocation API provides the best estimate of the user's position using a number of sources (called location providers). These providers may be onboard (GPS for example)...»
Ограниченно смотрите. СОРМ-2 и спецслужбы меня вообще не беспокоят. Меня беспокоит, что обо мне и вообще обо всех (в т.ч. и о политиках, бизнесменах, правительстве) будет слишком много знать (и уже знает), компания (или компании), чьей единственной целью является прибыль.
Опять же — вопрос масштаба. Большинство камер принадлежат государству. А у государства уже и так многие данные есть — меня это мало беспокоит. Цель государства — обеспечить жизнь граждан. (В идеале). Однако в данном случае частная компания собирает очень массивную базу данных.
Попробуйте переехать на некоторое время после города в деревню, где все про друг друга все знают и поймите насколько это неприятно. Мы к этому движемся в глобальных масштабах, проблема в том, что все о нас знают не все, а одна частная компания, чьей целью является извлечение прибыли…
Одно дело, когда прохожий собрал айфоном информацию о пяти людях в деревне. Другое дело, когда компания, через которую уже 2% (или больше) мирового траффиках проходит собирает такую информацию в масштабах страны и мира. И тем более публикует с привязкой к географическим координатам о миллионах (миллиардах) людей.
Не хочется описывать примеры, которые приходят в голову, но в общем, подумайте о том, что крупные телекомы, посредники, спецслужбы и просто службы теперь будут автоматически и в реальном времени знать о проходящих пакетах — где живет их владелец и куда они идут. Сценарии а-ля «1984» Оруэлла дорисуйте сами.
По-моему тут в статье совсем о другом речь — а именно — не о конкретной реализации, а о том как же ее написать без использования тестирования.
Очень интересно — за 20+ лет программинга — не встречался с «инвариантом цикла». И если это действительно поможет решить эту задачу без тестирования — это очень-очень интересно.
Написано, конечно, сложно, перечитываю уже который раз, пытаюсь вникнуть.
Дело в том, что на DNS запросы тратится тоже время и в синхронном режиме DNSы обычно (из опыта) могут выдавать только десятки ответов в секунду. В асинхронном режиме запросов (чем и занимается c-ares!) DNSы могут выдавать сотни и под тысячу ответов. Так что скорость растет в десяток раз минимум.
Важно: по умолчанию PyCurl под linux скомпилированы без c-ares. Проверка 'import pycurl; print pycurl.version' — если в выдаваемой строке есть 'c-ares' -скорость будет максимальной при использовании PyCurl.Multi. (Я дико долго искал почему винда на домашнем компе делает сотни запросов в секунду, а сервер в датацентре только десятки — разница была в наличии «c-ares») Под виндой .exe установщик обычно включает в себя c-ares.
PyCurl.Multi тоже не так прост, как кажется — даже в официальном multi_get примере есть ошибка (не помню точно ее суть, но по-моему он не будет качать больше 100 запросов — очередь неправильно реализована). Можете воспользоваться для теста моей функцией multi_get (простой интерфейс к PyCurl.Multi)
Сторона 2 «вставшие не с той ноги», увидев за рулем машину, которая едет как им не нравится — вместо того, чтобы побибикать — должны во время езды достать мобильный и набрать смску с номером машины… очень «безопасно» и «быстро»…
Сильно! Про субтитры — правильная идея. Загляните на notabenoid.com
Вам нужно просто сделать простой и бесплатный уровень, который допустим, ограничен 5 словами в день и всего допустим (сколько-то, допустим 200) слов и платный «профессиональный», который ничем не ограничен (разве что есть рекомендованные пределы).
Да и регистрацию до пробы, как выше сказали — надо убирать. Дайте человеку попробовать, потом просите регистрироваться, если ему нравится и хочется сохранить результат (анонимная сессию).
«The Geolocation API provides the best estimate of the user's position using a number of sources (called location providers). These providers may be onboard (GPS for example)...»
code.google.com/intl/ru-RU/apis/gears/api_geolocation.html
Попробуйте переехать на некоторое время после города в деревню, где все про друг друга все знают и поймите насколько это неприятно. Мы к этому движемся в глобальных масштабах, проблема в том, что все о нас знают не все, а одна частная компания, чьей целью является извлечение прибыли…
Не хочется описывать примеры, которые приходят в голову, но в общем, подумайте о том, что крупные телекомы, посредники, спецслужбы и просто службы теперь будут автоматически и в реальном времени знать о проходящих пакетах — где живет их владелец и куда они идут. Сценарии а-ля «1984» Оруэлла дорисуйте сами.
А можно тут пояснения в текст добавить?
Что такое «Aj»?
Что такое «j»?
Куда делать область «О»?
И как-то надо тут расставить скобочки, а то не понятно:
то ли «Aj = ( (1 <= j < L) или (U < j <= N)); X[j] != T;»
то ли «Aj = ( ((1 <= j < L) или (U < j <= N)) И (X[j] != T))»
то ли еще что-то…
Очень интересно — за 20+ лет программинга — не встречался с «инвариантом цикла». И если это действительно поможет решить эту задачу без тестирования — это очень-очень интересно.
Написано, конечно, сложно, перечитываю уже который раз, пытаюсь вникнуть.