Как вы уже слышали Брайан Кребс недавно проводил аудит паролей, полученных после взлома antichat.ru (сама база была получена где-то год назад и уже не актуальна!). Честно говоря, не очень понимаю чем занимались его видеокарты 18 дней, победив только 44% паролей. Мне на довольно скромном железе удалось подобрать 77% паролей за 8 часов. Исходя из таких несколько пугающих цифр, особенно для сайта тематически связанного с информационной безопасностью, у меня есть несколько рекомендаций о том какие пароли никогда не следует использовать, дабы они не были подобраны за пару минут.
@nikitasiusread-only
Java разработчик, SQL фетишист и фанат nginx
Восстановление пароля на маршрутизаторах Cisco
2 min
143KПрактически любой начинающий Cisco-вод рано или поздно оказывается в ситуации, когда на руках имеется маршрутизатор с напрочь забытым или неизвестным, чужим паролем. Лично я, будучи преподавателем курсов Cisco, встречаюсь с этой ситуацией очень часто после лабораторных работ. Ученики строят топологию, настраивают пароли на доступ, играются с сеткой и… забывают стереть файл конфигурации перед уходом. Само собой, до следующей лабораторной работы все успешно забывают свои пароли. По непонятной мне причине, Cisco не уделяет этой теме достаточно внимание в своём учебном материале, а документация на офф-сайте зачастую пугает новичков. Этот недостаток я и хотел бы сегодня устранить.
+32
Исследуем производительность JOIN в MySQL
4 min
37KЯ думаю, ни для кого не секрет, что JOIN считается достаточно дорогой операцией, и многих начинающих программистов (которые юзают MySQL) любят запугивать, что JOIN — это плохо, и лучше всего обойтись без них, если есть возможность.
Давайте исследуем этот вопрос более подробно и посмотрим, действительно ли JOIN — это плохо, и когда вообще стоит задумываться об этом.
Давайте исследуем этот вопрос более подробно и посмотрим, действительно ли JOIN — это плохо, и когда вообще стоит задумываться об этом.
+59
Кроссбраузерные аксессоры в JavaScript
4 min
6.8KВ своём фреймворке AtomJS я активно использую аксессоры — геттеры и сеттеры:
Foo = atom.Class({
get bar () {
return this._bar;
},
set bar (bar) {
this._bar = bar;
}
});
Я уже описывал теорию, но в топике я расскажу о том, как заставить их работать во всех современных браузерах, а именно — как разрулить ситацию с тем, что Internet Explorer 9 ничего не знает о
__defineSetter__
и подобных методах.+43
Немного о паранойе и фотографиях ВКонтакте
2 min
145KС недавних пор меня сильно интересует тема приватности и безопасности в интернете, а особенно в социальных сетях.
Ведь именно в соц.сетях мы оставляем о себе очень много информации, которая когда-то может быть использована против нас.
В этом небольшом топике я изложу свои наблюдения, которые касаются одной очень известной и популярной социальной сети — ВКонтакте.
Началось все с прочтения в журнале ][акер (январь 01 (144) 2011) статьи про архитектуру ВКонтакте (стр. 32). Во врезке «Интересные факты о ВКонтакте» был очень интересный (для меня) пункт: «Фотографии не удаляются для минимизации фрагментации».
Я давно об этом подозревал — и вот теперь появился повод проверить свои подозрения. Проверка состояла из 3 «тестов».
Ведь именно в соц.сетях мы оставляем о себе очень много информации, которая когда-то может быть использована против нас.
В этом небольшом топике я изложу свои наблюдения, которые касаются одной очень известной и популярной социальной сети — ВКонтакте.
Началось все с прочтения в журнале ][акер (январь 01 (144) 2011) статьи про архитектуру ВКонтакте (стр. 32). Во врезке «Интересные факты о ВКонтакте» был очень интересный (для меня) пункт: «Фотографии не удаляются для минимизации фрагментации».
Я давно об этом подозревал — и вот теперь появился повод проверить свои подозрения. Проверка состояла из 3 «тестов».
+12
Недокументированные возможности secure_link
2 min
13K Начиная с версии 0.8.50 в модуле Nginx secure_link появилось значительное улучшение по защите ссылок от подделывания. Как ни странно, новые возможности до сих пор не отражены в официальной документации [1]. Описание на английском можно найти на сайте Nginx Community [2], а также пояснения Сысоева по данным изменениям [3]. Код на PHP для генерации защищённых ссылок можно найти в форуме по nginx [4].
В общем, новшество выглядит так:
В общем, новшество выглядит так:
+34
Пишите в первую очередь под платформы, которые популярны в США, и не тратьте свои силы на остальные
3 min
2.8KДобрый день,
Ко мне обратился начинающий мобильный разработчик с просьбой дать совет, какой мобильной платформой лучше заняться. Я решил опубликовать свой совет, может кому еще поможет.
Совет мой такой: пишите в первую очередь под те платформы которые популярны в США и не тратьте свои силы на остальные.
Почему?
Ко мне обратился начинающий мобильный разработчик с просьбой дать совет, какой мобильной платформой лучше заняться. Я решил опубликовать свой совет, может кому еще поможет.
Совет мой такой: пишите в первую очередь под те платформы которые популярны в США и не тратьте свои силы на остальные.
Почему?
+105
Парикмахер, лицензии Creative Commons — лекарство от РАО
6 min
10KTutorial
Так… надеюсь, я ничего не перепутал в этой статье. На всякий случай предупреждаю, я не юрист и ничего не гарантирую, так что юристы могут меня поправить.
Парикмахеров могут заставить отказаться от привычки слушать музыкальное радио во время работы: Российское авторское общество (РАО) отсудило 80 000 руб. у владельца нижегородской парикмахерской и грозит аналогичными исками другим парикмахерским, салонам красоты, химчисткам и даже маршруткам, если они не согласятся платить.
Суд Автозаводского района Нижнего Новгорода 23 мая удовлетворил иск Волго-Вятского филиала РАО к салону-парикмахерской № 100 о взыскании 80 000 руб. в пользу российских авторов пяти песен, сообщил «Ведомостям» юрисконсульт Сергей Чекмарев. В ходе проверки 26 февраля сотрудники РАО зафиксировали, что в салоне звучало радио «Дача». «Публичное воспроизведение музыки в коммерческих целях без выплаты денежной компенсации авторам песен — нарушение авторского права», — пояснил Чекмарев.
В авторском обществе говорят, что это не последний судебный иск к парикмахерским, салонам красоты и химчисткам.
«Пока договор с нами эти организации еще не заключили, а нарушают авторское законодательство на каждом шагу», — возмущается директор Волго-Вятского филиала РАО Максим Королев. Ранее Королев говорил о планах РАО брать деньги с владельцев маршрутных такси.
+152
Особенности хранения сессий PHP в memcached
6 min
33KДанная статья рассматривает одну из проблем хранения PHP-сессий в memcached: отсутствие их блокировки.
Введение
Ни для кого не секрет, что одним из самых популярных способов повышения производительности сайта является использование memcached. Об этом неоднократно говорили и приводили многочисленные примеры. Самый простой способ сделать это — использовать memcached для хранения сессий PHP. Для этого нет необходимости переписывать весь код, достаточно нескольких простых действий. Я не буду рассказывать, почему надо хранить сессии в memcached. Я расскажу о том, почему хранение сессий в memcached опасно.+57
Dropbox – получаем 9GB за один час
3 min
13KБуквально пару дней назад я столкнулся той же проблемой, что и товарищ, приславший прошлую статью, а именно – как на халяву заиметь (да побольше) свободного пространства на Dropbox’e?
Лично мне, мое же решение кажется более изящным и практичным, а вам лишь остается сделать свой собственный выбор.
+47
Dropbox — продолжаем меряться
3 min
13KСкучно работается… Ну что же. попытаемся ещё больше автоматизировать то что предлагалось тут и здесь =)
На этот раз у нас остаётся лишь basy-скрипт. который позволяет довольно просто и вполне интерактивно нащёлкать себе рефералов. Да, MAC адрес автоматически обновляется, поэтому необходимость в виртуальной машине по сути отпадает… Хотя я бы всё же рекомендовал производить манипуляции со скриптом на ней. Ну просто потому что в процессе своей работы скриптик периодически затирает конфиг дроп-бокса.
Смотрим чего вышло и что с этим делать…
На этот раз у нас остаётся лишь basy-скрипт. который позволяет довольно просто и вполне интерактивно нащёлкать себе рефералов. Да, MAC адрес автоматически обновляется, поэтому необходимость в виртуальной машине по сути отпадает… Хотя я бы всё же рекомендовал производить манипуляции со скриптом на ней. Ну просто потому что в процессе своей работы скриптик периодически затирает конфиг дроп-бокса.
Смотрим чего вышло и что с этим делать…
+84
Создаем робота в домашних условиях
8 min
202KНаверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.
+85
3D иллюзии
3 min
9KОбщее:
Madonnari — один из видов уличного искусства, очень популярного в мире. Рисунки сделаны на тротуаре и искажены таким образом, что появляется иллюзия трехмерного объекта, когда смотришь на рисунок с определенной точки. Многие художники используют методы, разработанные еще в шестнадцатом веке, чтобы делать такие рисунки.
+95
Безопасность плагинов Google Chrome
9 min
28KС каждым днем Google Chrome становится все более и более популярен. Его создатели проделали большую работу, разработав платформу для создания расширений для браузера. Они несут в себе дополнительный функционал, но и новую опасность.
+93
Сверхбыстрая разметка изображений
9 min
6.9KВ статье расскажу как можно очень быстро перечислить связные объекты на бинарном растре, значительно быстрее, чем я рассказывал в предыдущей статье. Казалось бы, куда такие скорости; теперь мы будем «расправляться» с картинками 4096 на 4096 за десятки миллисекунд. И хоть задача интересна и сама по себе, но в основе ее решения лежит довольно простой и оригинальный метод с достаточно широкой применимостью, основным тезисом которого является «сделаем как проще и посмотрим, что из этого выйдет». В данном случае в качестве основного вычислителя будет использоваться CUDA, но без особой специфики, потому что мы хотим сделать «очень просто».
+68
Новый алгоритм для депикселизации графики
1 min
8.8KСотрудник Microsoft Research Йоханнес Копф (Johannes Kopf) совместно с профессором Дани Лисчински опубликовали научную работу (dropbox, narod.ru, depositfiles.com) с описанием нового алгоритма депикселизации, который значительно превосходит все существующие методы. Разница в качестве действительно колоссальна.
+193
Ограничиваем входящий и исходящий трафик в Linux
11 min
111KВ данной статье хочу рассказать, как я строил систему ограничения входящего и исходящего трафика в Linux.
Как и учет трафика, ограничение полосы пропускания в сети является очень важной задачей, хотя первое с каждым годом всё быстрее отходит на второй план, шейпинг трафика остается необходимой задачей каждого системного/сетевого администратора.
Как и учет трафика, ограничение полосы пропускания в сети является очень важной задачей, хотя первое с каждым годом всё быстрее отходит на второй план, шейпинг трафика остается необходимой задачей каждого системного/сетевого администратора.
+99
BackupBackup.ru – а ты сделал бэкап?
1 min
660Люди бывают двух типов: первые – те, что не делают бэкапов; вторые – те, что уже делают.
Для людей первого типа я создал маленький сайт, где собраны истории от людей второго типа.
BackupBackup.ru
Пишите ваши аналогичные истории в комментариях или мне на хабрапочту, я добавлю.
Для людей первого типа я создал маленький сайт, где собраны истории от людей второго типа.
BackupBackup.ru
Пишите ваши аналогичные истории в комментариях или мне на хабрапочту, я добавлю.
+38
Подсчет объектов на бинарном изображении. Часть 1
6 min
43KАннотация
Раз, два, три, четыре, пять. Будем в прятки мы играть. В статье рассказывается про алгоритм разметки (или подсчета) объектов на бинарном изображении и о том, как без дополнительного прохода вычисляются (в еще неопубликованной части 2) геометрические характеристики этих объектов. Алгоритмы подобного типа часто используются при распознавании образов на бинарном препарате и показывают свою вычислительную эффективность.
В завершении статьи, читателям предлагается интересная задачка, грамотное решение которой существует и необходимо, при практической реализации алгоритма. Приводится исходный код, но в отличии от предыдущих моих постов, он выполнен не на языке MatLab а в абсолютно свободной, не менее мощной среде SciLab.
+48
Redis — высокопроизводительное хранилище данных
2 min
101KБодрый день, хаброчеловеки!
Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.
API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.
110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).
Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Из этого вытекает, что используя Redis, вы можете потерять результаты нескольких последних запросов, что вполне приемлимо для большинства веб-приложений, учитывая, что обращение к Redis по скорости сравнимо с обращением к оперативной памяти. Тем не менее, потерь можно избежать через избыточность — Redis поддерживает неблокирующую master-slave репликацию.
Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.
API доступно для следующих языков:
API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)
Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.
Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)
Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.
Что такое Redis?
Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.
Чем Redis отличается от существующих решений?
API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.
Производительность
110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).
Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Из этого вытекает, что используя Redis, вы можете потерять результаты нескольких последних запросов, что вполне приемлимо для большинства веб-приложений, учитывая, что обращение к Redis по скорости сравнимо с обращением к оперативной памяти. Тем не менее, потерь можно избежать через избыточность — Redis поддерживает неблокирующую master-slave репликацию.
Sharding
Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.
API
API доступно для следующих языков:
- Ruby
- Python
- PHP
- Erlang
- Tcl
- Perl
- Lua
- Java
API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)
Перспективы развития
Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.
Лицензия и поддерживаемые платформы
Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)
Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.
+71
Information
- Rating
- Does not participate
- Location
- Франция
- Registered
- Activity