Search
Write a publication
Pull to refresh
64
1.3
Send message

Зал для видеоконференций: опыт создания

Reading time7 min
Views30K
Учебный класс, он же зал для видео конференций.
Учебный класс, он же зал для видео конференций.
Класс создавался с нуля как с точки зрения строительства (были голые стены), так и с точки зрения опыта внедрения и использования ВКС (Skype и ему подобные не в счет), в 2007-2008 годах.
Читать дальше →

Генерируем цепочку сертификатов с эллиптическими кривыми при помощи OpenSSL

Reading time8 min
Views26K
график функции y^2 = x^3-x+1Думаю многие слышали о криптографии эллиптических кривых, о том
что работает она во много раз быстрее RSA и при несоизмеримо меньшей длине ключа обеспечивает несоизмеримо большую стойкость ко взлому. Если не слышали, то можно глянуть на wiki или почитать в книгах А.А. Болотова.
К сожалению, данный вид шифрования слабо распространен. Я постараюсь объяснить как им пользоваться и поможет мне в этом OpenSSL.

Чтобы не быть голословным приведу сравнение необходимых длин ключей для обеспечения сравнимой стойкости ко взлому для различных алгоритмов. Нам интересна правая часть.
Сравнение алгоритмов
Видно, что популярным сегодня ключам RSA длиной 1024-2048 бит соответствует всего навсего 160-224битный ключ ECC (Elliptic Curve Cryptography)

Ну а чтобы понять какой RSA тормоз достаточно попробовать сгенерировать самый длинный из предложенных в таблице ключей (и пойти вздремнуть):

openssl genrsa 15360

Желающих прикоснуться к «next gen» криптографии, придуманной аж в 1985 году, прошу под кат.
Читать дальше →

Как фрилансеру распознать нежелательного заказчика?

Reading time3 min
Views5.3K
Я более 4 лет работаю фрилансером и имею опыт общения с различными заказчиками, опыт разработки различных проектов. Свой опыт я постарался обобщить, создав небольшую памятку, а вернее «стоп-лист», которым теперь пользуюсь для раннего отсева заказчиков, работа с которыми не приносит ни радости, ни выгоды. Мне он помогает экономить время и нервы. Надеюсь, он будет полезен и вам, если вы фрилансер. Он также может быть полезен начинающим заказчикам. Публикую его здесь с небольшими комментариями к каждому пункту.

«Стоп-лист» содержит негативные признаки заказчика. Пожалуйста, обратите внимание, что совпадение 1-2 пунктов может оказаться случайностью. При совпадении 3 и более пунктов я отказываюсь работать с заказчиком.
Читать дальше →

Создаем простейшее usb-устройство для общения со своей программой

Reading time7 min
Views118K
В продолжение темы о создании собственного USB-гаджета.
Создание простого устройства.

Раз устройство планируется подключать к ПК, значит вероятнее всего потребуется передача данных между устройством и ПК.
Начнем писать прошивку и софт, наладив связь между ними.
Читать дальше →

Fugue Icons 2.9.3a

Reading time1 min
Views2.4K
image

Совсем недавно существенно обновился набор замечательных иконок Fugue Icons от Yusuke Kamiyamane. Теперь их 2,926 (16х16) + 210 (24х24) + 46 (32х32) = 3182 качественные иконки для вашего сайта. В архиве также имеется версия без теней.

Лицензия Creative Commons Attribution 3.0 позволяет использовать иконки в любых целях со ссылкой на автора.

Превью 3Mb
Архив 4.9Mb
Архив+исходники 24.8Mb

phpDaemon — фреймворк асинхронных приложений

Reading time6 min
Views45K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →

сервис для организации P2P-трансляций видео

Reading time3 min
Views19K
image

Приглашаем к тестированию нашего сервиса для организации онлайн-трансляций видео в режиме P2P. Сервис предназначен для тех, кто хочет проводить видеотрансляции на своих сайтах, рассчитанные на массовую аудиторию, но при этом не хочет платить за генерируемый такими трансляциями трафик. Сервис можно использовать для трансляции видео во всех популярных форматах – в частности, поддерживаются Flash, WMV и Silverlight.

image

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

Обновился один из самых многообещающих проектов Mozilla Labs — Firefox Sync(бывш. Weave)

Reading time1 min
Views1.4K
image
Напомню, что Weave — решение от Mozilla, призванное объединить ваши вкладки, букмарки, историю браузера, пароли и даже настройки на различных платформах. Сюда входят Windows, Mac OS X, Linux и мобильные платформы, на которые направил свой курс хитрый Лис(пока доступна версия для Fennec и экспериментальный клиент для iPhone).

Одной из ключевых особенностей этого решения, которое выделяет Weave на фоне 3rd-решений от других разработчиков(Xmarks, например), является возможность поднять собственный сервер синхронизации на свободном API. Подробнее о новведениях — под хабракатом.
Читать дальше →

Результаты тестирования масштабируемости облачных сервисов

Reading time1 min
Views1.6K
Сайт High Scalability провел тестирование облачных сервисов хранения данных на масштабируемость в зависимости от нагрузки. В качестве тестирования применили распространенный тест TPC-W. Для тестирования нагрузку постепенно увеличивали от 1 пользователя до 9000 одновременно работающих пользователей. В тестировании принимали участие следующие сервисы: полноценная реляционная СУБД SQL Azure, Amazon S3, Amazon RDS, Amazon SimpleDB, Google AppEngine.

Результаты тестирования:

image

Очевидно, что SQL Azure, представляя собой полноценную реляционную БД, показывает отличные результаты. По возможностям+масштабируемости — это однозначно лидер тестирования. Сервис от Google оказался аутсайдером проведенного тестирования.

Первоисточник: highscalability.com/blog/2010/5/26/end-to-end-performance-study-of-cloud-services.html

Наш вклад в поиск жилья без посредников: проект «Море летом»

Reading time3 min
Views977

Общественность негодует


Не далее как сегодня в блоге «Я пиарюсь» появился пост про аренду жилья, посредников, которые повсюду, и про сайт, который призван с ними бороться.

Прочитал я эту статью и увидел, что к теме существует неподдельный интерес со стороны сообщества. Действительно, все, кому приходилось снимать жилье на долгий или короткий срок, в своем городе либо на отдыхе, сталкивались с проблемой посредничества. Можно обсуждать, является ли посредничество проблемой, но стоимость аренды оно повышает точно.

Предыстория


Так вот, перейдем от теории к практике.
Как-то летом, я с друзьями впервые в жизни собрался на наше черноморское побережье. И не куда-нибудь, а в Абхазию. Очевидно, что ситуация с проникновением интернета там была плачевной (то был 2008 год). Я, привыкший находить информацию в интернете максимум за несколько минут, был обескуражен. Информации было мало, и чуть более, чем полностью она представляла собой контакты посредников. Телефоны настоящих владельцев пришлось отрывать на форумах и в прочих сомнительных местах.
Отдохнуть в тот раз я съездил, но желание что-то изменить к лучшему во мне затаилось.
Читать дальше →

Индустриальная революция. Часть 2. Атомы – новые биты

Reading time3 min
Views18K
Продолжение захватывающей статьи из американского журнала Wired «In the Next Industrial Revolution, Atoms Are the New Bits» (в прошлый раз я рассказал о Rally Fighter – автомобиле, созданным «толпой»).

Коренные преобразования в любой индустрии происходят тогда, когда контроль над отраслью переходит от компаний, кланов, правительств, к рядовому человеку. Интернет сделал доступным широким массам издательское дело, телевидение и связь, что привело к радикальному увеличению участников в цифровом мире – длинной цепочке битов (the long tail of bits).

Теперь то же самое происходит и с производством – длинная цепочка вещей (the long tail of things).

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

Комплекты для взлома WiFi-сетей продаются по $24

Reading time1 min
Views34K
Китайские бизнесмены пустили в продажу дешёвую альтернативу WiFi Box. Сначала на крупнейших интернет-аукционах, а потом и на улице в продаже появился «комплект для халявного интернета» местного производства: это USB WiFi-модем с 15-сантиметровой антенной (на фото 58-сантиметровая), CD-ROM с операционной системой BackTrack Linux и хакерским софтом, драйвер для модема, а также подробная инструкция действий.



Инструкция нехитрая: из-под BackTrack запускаются программы Spoonwep и Spoonwpa, которые расшифровывают ключи от всех WiFi-сетей в радиусе приёма, и потом можно запускать Windows с этими ключами — и наслаждаться халявным интернетом. Для WEP эксплуатируется давно известная уязвимость, а ключи WPA подбираются брутфорсом.

На китайским рынках такой комплект можно купить за 165 юаней (окло $24). Это гораздо дешевле вышеупомянутого западного аналога WiFi Box.

Обеспечение качества программного продукта

Reading time4 min
Views11K
Дисциплина «Метрология программного обеспечения» входит в учебный план подготовки дипломированных специалистов по направлению 654600 — «Информатика и вычислительная техника» по специальности 220400 — «Программное обеспечение вычислительной техники и автоматизированных систем». Дисциплина изучает проблемы оценки метрических характеристик качества ПО на этапах от разработки спецификаций до завершения отладки и тестирования программного продукта. В курсе рассматриваются критерии, характеристики и метрики качества ПО; особый упор делается на характеристики корректности, надежности и сложности программ. Изучаются формальные модели и методы оценки как статических, так и динамических характеристик качества ПО, позволяющие на различных стадиях разработки выявлять просчеты и дефекты программного изделия. Рассматриваются инструментальные средства поддержки и автоматизации измерения характеристик ПО.
Далее по тексту будет находится краткий обзор инструментов с помощью которых можно анализировать различные характиристики в приложениях созданных на PHP. Данный материал появился на свет в результате некоторых экспериментов в области непрерывной интеграции, и должен был являться частью статьи про непрерывную интеграцию (спойлерить пока не буду, боюсь сглазить) все в том же РНР, но я решил все-таки выделить его в самостоятельный обзор, так как возможно, в последующих статьях я буду ссылаться на него, а так же надеюсь узнать об аналогичных инструментах еще не попавших мне на глаза. Некоторые инструменты уже были рассмотрены достаточно подробно, но тем не менее полного списка всех доступных еще не было.
Читать дальше →

7 способов определить хостера сайта

Reading time8 min
Views154K
Периодически перед многими из вебмастеров возникает задача определить хостера, у которого живет тот или иной сайт. Мотивация для этого бывает самая разная, как простое любопытство, так и желание поселиться по соседству на хорошем и стабильном хостинге или наоборот не вляпаться в такое соседство. В этом посте я приведу несколько известных мне методов с их достоинствами и недостатками. Вполне возможно, что он неполон, поэтому дополнения всячески приветствуются.
Так же «на берегу» оговорюсь: все упомянутые ниже сайты и хостеры упомянуты исключительно как наглядные примеры, и ни в коем случае не в качестве рекламы или, упаси господи, антирекламы. Выбор оных был сделан так же практически случайно — где какие методы у меня в свое время срабатывали, то и привожу.

Способы я перечисляю в порядке убывания точности и, к сожалению, в порядке возрастания вероятности срабатывания.

1. NS-сервера


Даже странно, что забыл упомянуть с самого начала. Спасибо variable За напоминание. Очень часто люди пользуются NS-серверами хостера и при помощи whois'a мы моментально узнаем хостера.

Плюсы

  • Очень часто срабатывает на шаред-хостингах

Минусы

  • Зачастую пользователи VPS и дедиков, а так же продвинутые пользватели на шаред-хостингах пользуются своими DNS-серверами, либо используют свои поддомены.

2. Ошибка 403/404


Не могу сказать, что большинство, но немало серьезных хостеров страницы ошибок веб-сервера по умолчанию делают с информацией о себе, а многие их клиенты забывают/ленятся их переопределить. Поэтому в первую очередь стоит попытаться вызвать такую ошибку и посмотреть, что получится. Бывает так, что CMS на сайте при помощи mod_rewrite перехватывает запросы к несуществующим файлам и отдает в ответ свою 404-ю ошибку. Это можно попробовать обойти, вызвав ошибку 403 путем обращения к какталогу без индексного файла. Им может быть папка с картинками/шаблонами, папка для загруженных файлов, кэша движка, системная папка типа includes и т. п. Небольшой хинт — иногда на странице ошибки есть email вебмастера и часто из него можно узнать домен сайта хостера.
Читать дальше

Управление ISC DHCPd 4.x из скриптов

Reading time4 min
Views18K
Понадобилось реализовать управление выдачей IP в сети одного провайдера, увязав его с системой учёта и прочими «фишками». В качестве DHCP сервера стоял ISC DHCP 4.x на 9-м Ubuntu Server'е.

Для DHCPd нужно было реализовать:
  1. добавление новой статичной резервации (по маку либо порту свитча — опция 82),
  2. «привязка» юзера с IP выданным динамически (то есть из пула свободных IP) в статичную резервацию
  3. удаление статичной резервации
  4. удаление динамической лизы до истечения срока резервации
  5. Различные отчёты по подсетям, мак-адресам, свободным и занятым аресам

Хочу поделиться информацией, собранной в процессе реализации, на какие подводные камни наткнулся, как обходил, что так и не обошёл. Возможно кому-то сэкономит несколько часов времени.
Подробнее...

Бэкдор в active directory своими руками

Reading time3 min
Views18K
Итак, мы все знаем про подлых пользователей c UID=0 в unix, которых может быть больше одного.

Посмотрим, как такое же (а на самом деле, даже более страшное) организовывается в инфраструктуре Windows. Разумеется, мы говорить будем не про локальные виндовые учётные записи, а про Active Directory, т.е. говорить будем об администраторе домена. Или, даже, хуже, об enterprise administrator.

Итак, истина номер один: у объектов в active directory есть атрибуты и права доступа.
Истина номер два: эти атрибуты можно менять.

Как легко понять, мы МОЖЕМ сделать учётную запись с фантастическими правами, к которой не будет доступа НИ У КОГО. Однако, он сможет логиниться, блокировать, разблокировать, менять свои атрибуты и атрибуты чужих людей.

В самом страшном случае, это будет пользователь с волшебным SID-*500, которого не позволяет удалить уже сама винда. (Для этого нужно переименовать, а на его место положить другого пользователя с ником Administrator и с полными правами).
Читать дальше →

ГОСТы по GreaseMonkey'вски

Reading time2 min
Views2.6K
Подошла недавно коллега и поведала, что никак у нее не получается сохранить страничку ГОСТа с нелюбимого сайта http://protect.gost.ru.
«Нам ли быть в печали, старушка» — сказал я ей, открыл вышеупомянутый сайт и начал ковырять смотреть.
подробности

Парсинг (разбор) XML документов с помощью CSS селекторов

Reading time3 min
Views6.4K
Привет. Заметил что постов посвященных Symfony 2.0 все еще не много. Постараюсь это исправить в ближайшее время топиками и переводами про компоненты фреймворка. Сейчас же представляю вашему вниманию перевод статьи с блога Фабьена (Fabien Potencier) который всегда интересно читать. Перевод, возможно не всегда дословный, но смысл я старался передавать четко. Итак начнем.

— HTML и XML документы это как хлеб и масло для веб-разработчиков. День за днем вы, скорее всего, создаете множество HTML документов. И наверняка вам приходится парсить некоторые из них время от времени: потому что вы используете веб службы и хотите извлечь некоторую информацию, или потому, что вы хотите получить данные с нужных веб страниц, или просто потому, что хотите написать функциональные тесты для веб сайта. Получить содержимое достаточно просто, но как его разобрать, чтобы выделить нужную информацию?
Читать дальше →

Правильное REST кэширование

Reading time6 min
Views6K
Пусть мы хотим написать свой хабрахабр с блекджеком и прочими прелестями. Страница статьи у нас стостоит из 3 объёмных блоков:
1. собственно текст статьи. меняется очень редко.
2. дерево комментариев. меняется относительно часто, но со временем всё реже и реже.
3. прямой эфир. небольшой, но меняется очень часто.

Допустим, что страница с этой статьёй доступна по адресу ?article:right.cache
Но внутрь неё мы не будем помещать никакого контента, а вынесем его в отдельные ресурсы, как это обычно делается со скриптами и стилями. Внутри ?article:right.cache будет лишь индекс подключаемых ресурсов с версиями.

?article:right.cache/content/version:123
?article:right.cache/comments/time:2010-12-01
?live/time:2010-12-01
?style:article/version:666
?script:article/version:333

Указание версии позволяет задать для ресурсов жёсткое кэширование. А для индексного файла, наоборот, зададим необходимость проверять при каждом запросе изменился ли он.

Такая организация гарантирует нам, что при появлении новых комментариев не придётся грузить статью заново. И наоборот, при изменении статьи не надо будет перегружать всё дерево комментариев. А уж про то, что из-за часто меняющегося прямого эфира нам не надо по новой грузить весь контент, и заикаться не стоит ;-)

Важно, чтобы поисковики видели ссылки на ресурсы и могли их проиндексировать. Однако, из поиска люди будут приходить на конкретный ресурс и даже на конкретную его версию. Соответственно, ресурс должен определять загружен ли он по прямой ссылке и если это так, то после загрузки клиентскими средствами редиректить на индекс. Если актуальная версия ресурса не изменилась, то он потом будет взят из кэша. Если же изменилась — будет загружена новая версия. Не такая уж страшная беда, на самом деле ;-)

Реализации с использованием фреймов и аякса довольно банальны, так что воспользуемся хтмл-инклудами.
Читать дальше →

Information

Rating
2,685-th
Registered
Activity