Search
Write a publication
Pull to refresh
4
0
Lev Lybin @lybin

Разработчик Python / Team Lead Ведущий (Lead)

Send message

Извечный вопрос: CMS или свой движок

Reading time5 min
Views58K
Именно с этого вопроса я начал сегодняшний рабочий день.
Уже в который раз встал перед этой дилеммой, которую, впрочем, уже не однократно решал в пользу своих кодов, но сомнения грызть не прекращают.
Вот и сейчас — в день когда пора начинать верстать новый интернет-магазин, эта дилемма стоит передо мной.
А предыстория следующая:
Читать дальше →

Правильный бэкап в ЦОДе

Reading time4 min
Views34K

EMC Avamar в ЦОД КРОК

Вот этот здоровенный шкаф из нескольких серверов называется EMC Avamar. Он стоит у нас в дата-центре, занимается резервным копированием, и делает это очень интересно.

Что внутри шкафа?


Технологически – это блок x86-серверов, сейчас их 10 штук. Архитектура следующая: есть запасной узел и узел управления, а на остальные 8 пишутся данные. Учитывая избыточность (принцип кода Хэмминга, равномерное распределение RAIN – Redundant Array of Independent Nodes), при выходе из строя любого из узлов, данные сохраняются. Запасной узел в этот момент заменяет убитый. Итого в системе непосредственно используется только 50% каждого узла — резервный узел, узел четности и вторая половина уходит на нужды обеспечения сохранности данных. Физическая ёмкость массива 200 Тб превращается в 62,5 Тб.
Читать дальше →

Фриланс как средство заработка. Ч.1. Старт проекта

Reading time5 min
Views43K
В предыдущих своих постах я постарался рассказать о том, как взаимодействуют фрилансер и заказчик. Большинство мыслей, представленных в этих статьях, были самим собой разумеющимся, на что мне указывали, и не раз. Сегодня я бы хотел начать разговор о том, как мы, благополучно пройдя все перипетии первоначального обсуждения, начинаем проект. Я опять буду банален до безобразия, вновь и вновь буду перетирать то, что каждому понятно. Но, как показывает практика, все мы с упорством мазохистов наступаем на одни и те же грабли.
Читать дальше →

SQLite — замечательная встраиваемая БД (часть 1)

Reading time5 min
Views490K
Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.

Часть 2
Часть 3

Небольшая вводная.

Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).

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

Анализ Wi-Fi сигнала позволяет следить за людьми, которые находятся по ту сторону стены

Reading time2 min
Views14K

Лондон. Университетский колледж UCL. Инженеры Карл Вудбридж и Кевин Четти изобрели устройство, с помощью которого можно фиксировать движение за сплошной стеной.

Работа прибора основана на эффекте Доплера: при отражение волны от движущегося объекта, меняется ее частота. В качестве таких волн успользуют сигналы Wi-Fi, посылаемые роутером, который работает на частоте 2,4 или 5 гигагерц. На данный момент они очень распространены во многих офисах и зданиях.

Таким образом данный прибор, позволит, в буквальном смысле, смотреть сквозь стены, в здании, где есть Wi-Fi излучение.
Читать дальше →

Российское сообщество разработчиков MeeGo и webOS

Reading time2 min
Views2.1K
Около месяца назад лично ко мне обратился лидер группы энтузиастов MajorDevTeam — российской группы разработчиков, ставящей перед собой цель объединить Linux-программистов, которым небезразлична судьба двух покинутых создателями систем MeeGo и webOS. Целью такого обращения была довольно простая и ожидаемая — осветить в наиболее авторитетном в Рунете IT-сообществе (каким является Хабр) о самом существовании такого проекта и тем самым, возможно, получить в свою команду всех заинтересовавшихся.

В то время у MajorDevTeam не было никакой площадки для презентации своих планов — ни сайта, ни блога. Мы договорились о том, что, когда нечто такое, что можно было бы прочитать и серьёзно оценить своё участие в проекте появится, то я возьму на себя скромную роль описания целей и задач группы разработчиков, учитывая и тот факт, что коммерческую выгоду на данный момент целью они себе не ставят.
Узнать подробности

Алгоритм предсказывает преступления, отслеживая мобильные телефоны

Reading time2 min
Views5.6K
Уже много лет учёные экспериментируют с алгоритмами, способными предсказывать преступность. Предполагается, что преступники склонны повторять успешные действия — по крайней мере, они не используют ГСЧ для выбора места и времени преступлений, так что их действия предсказуемы по определению.

Например, год назад калифорнийский город Санта-Крус первым в мире внедрил математическую модель расчёта вероятности преступлений, которая каждый день составляет новый маршрут для патрульных машин, основываясь на статистике преступлений по улицам. Учитываются день недели, время суток, наличие/отсутствие футбольных матчей по ТВ и другие факторы.

Исследователь из Бирмингемского университета Мирко Мусолези (Mirco Musolesi) применил совершенно другой подход. Его метод основан не на статистике, а на оперативных данных из сетей сотовой связи. Мусолези начал с того, что научил алгоритм с высокой степенью вероятности прогнозировать перемещения каждого абонента: он даже выиграл конкурс Nokia Mobile Data, наиболее точно предсказав перемещения 25-ти добровольцев по сигналам их телефонов, истории звонков и текстовым сообщениям. Иногда алгоритм прогнозирует координаты пользователя с точностью до 20 м2.
Читать дальше →

Как, зная только имя и email человека, злоумышленники получили доступ ко всем его аккаунтам и удаленно уничтожили информацию на всех его устройствах

Reading time2 min
Views177K
Очень интересная статья появилась сегодня на wired.com. Буквально за один час у автора статьи Мэта Хонана были взломаны Amazon, GMail, Apple и Twitter аккаунты и была удаленно уничтожена информация на его iPad, iPhone и MacBook. Среди прочего он потерял все фотографии своей дочки с ее рождения, многие документы и большую часть переписки. Очень интересно в этой истории то, как злоумышленник получил доступ к Amazon аккаунту и AppleID — для этого не понадобилась ничего, кроме доступной в сети информации и телефона.
Читать дальше →

Защита от SQL-инъекций в PHP и MySQL

Reading time26 min
Views259K
К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому решил написать свою.

Несколько пространный дисклеймер, не имеющий прямого отношения к вопросу
Давайте признаем факт: количество статей (и комментариев) на тему защиты от SQL-инъекций, появившихся на Хабре в последнее время, говорит нам о том, что поляна далеко не так хорошо истоптана, как полагают некоторые. Причём повторение одних и тех же ошибок наводит на мысль, что некоторые заблуждения слишком устойчивы, и требуется не просто перечисление стандартных техник, а подробное объяснение — как они работают и в каких случаях должны применяться (а в каких — нет).

Статья получилась довольно длинной — в ней собраны результаты исследований за несколько лет — но самую важную информацию я постараюсь компактно изложить в самом начале, а более подробные рассуждения и иллюстрации, а так же различные курьёзы и любопытные факты привести в конце. Также я постараюсь окончательно развеять множественные заблуждения и суеверия, связанные с темой защиты от инъекций.

Я не буду пытаться изображать полиглота и писать рекомендации для всех БД и языков разом. Достаточное количество опыта у меня есть только в веб-разработке, на связке PHP/MySQL. Поэтому все практические примеры и рекомендации будут даваться для этих технологий. Тем не менее, изложенные ниже теоретические принципы применимы, разумеется, для любых других языков и СУБД.

Сразу отвечу на стандартное замечание про ORM, Active record и прочие query builders: во-первых, все эти прекрасные инструменты рождаются не по мановению волшебной палочки из пены морской, а пишутся программистами, используя всё тот же грешный SQL. Во-вторых, будем реалистами: перечисленные технологии — хорошо, но на практике сырой SQL постоянно встречается нам в работе — будь то legacy code или развесистый JOIN, который транслировать в ORM — себе дороже. Так что не будем прятать голову в песок и делать вид, что проблемы нет.

Хоть я и постарался подробно осветить все нюансы, но, вполне возможно, некоторые из моих выводов могут показаться неочевидными. Я вполне допускаю, что мой контекст и контексты читателей могут различаться. И вещи, которые кажутся мне сами собой разумеющимися, не являются таковыми для некоторых читателей. В этом случае буду рад вопросам и уточнениям, которые помогут мне исправить статью, сделав её более понятной и информативной.

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

Правила, соблюдение которых гарантирует нас от инъекций


  1. данные подставляем в запрос только через плейсхолдеры
  2. идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.

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

Но вперёд, читатель — перейдём уже к подробному разбору.
Читать дальше →

Разбираем последствия взлома MS-CHAPv2 для Wi-Fi (WPA/WPA2-Enterprise)

Reading time3 min
Views17K
На последней DEFCON был продемонстрирован взлом протокола аутентификации MS-CHAPv2 (давно пора). В результате многие СМИ разразились информацией о том, что «тысячи VPN и WPA2-утройств находятся в опасности». Рассмотрим, насколько это утверждение верно для Wi-Fi сети реализующей WPA2.
Скандалы? Интриги? Расследования?
Читать дальше →

Батареи, ветряк и геозонд: эксперимент по получению «зеленой» энергии в разных точках РФ

Reading time5 min
Views52K
Несколько месяцев назад мы стартовали масштабный эксперимент и смонтировали два объекта, работающих на альтернативной энергии. Задача – понять, могут ли автономные комплексы небольшой мощности работать более-менее стабильно и иметь коммерческую перспективу в РФ.


Cолевая батарея нового поколения

До финальных результатов еще полгода, но уже есть необычные вещи: например, был запущен геозонд для охлаждения (уникален, скорее всего, пойдет в серию), проведены тесты солевой батареи нового поколения (но ее придется менять на обычную из-за бюджета), плюс на удивление хорошо показали себя в сложных условиях отечественные солнечные батареи производства Зеленограда.
Читать дальше →

Префиксные деревья в Python

Reading time6 min
Views13K
Доделал на днях питонью библиотеку datrie, реализующую префиксное дерево (см. википедию или хабр), спешу поделиться.

Если вкратце, то можно считать, что datrie.Trie — это замена стандартному питоньему dict, которая при определенных условиях (ключи — строки) занимает меньше памяти, имеет сравнимую скорость получения отдельного элемента и поддерживает дополнительные операции (получение всех префиксов данной строки, получение всех строк, начинающихся с данной строки и др.), которые работают примерно так же быстро, как и «словарные» операции.

Работает под Python 2.6-3.3, поддерживает юникод, лицензия LGPL.

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

Yii: устройство ActiveRecord и Шардинг

Reading time4 min
Views7.6K
В последнее время на хабре довольно много внимания уделяется фреймворку Yii. Он стал и нашим выбором для крупного проекта. А проблема большинства крупных проектов, как известно, в масштабировании. Не менее известно, что можно легко поставить сотни параллельных nginx и отбалансировать нагрузку на процессор, память, диск и даже канал. А вот с СУБД все гораздо сложнее.

Для того, чтобы заранее побороть эту проблему правильным способом было решено реализовать в Yii поддержку шардинга. Речь под катом пойдет вкратце о том что такое шардинг и подробно о:
  1. Устройстве ActiveRecord в Yii
  2. Реализации на этом устройстве шардинга
  3. Проблемах, которые все еще есть в AR
UPD: перенес в PHP, т.к. наличие расширения для шардинга может склонить чашу весов при выборе фреймворка.
Интересно?

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views358K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →

Мифы о защите персональных данных в облаке

Reading time5 min
Views40K

В последнее время часто поднимаются вопросы о возможности обработки и защиты персональных данных в «облаках» в соответствии с ФЗ №152 «О персональных данных». Всё это зачастую напоминает обсуждение мифов, поэтому рискну изложить свой взгляд на проблему защиты ИСПДн в облаках и попробую ответить на основные вопросы.

Примерный список вопросов таков:
  • Можно ли, в принципе, размещать информационные системы персональных данных (ИСПДн) в «облаке» с учетом требований регулирующих органов по защите информации?
  • Какими свойствами должно обладать «облако», чтобы его можно было использовать для построения информационных систем персональных данных (ИСПДн)?
  • Что необходимо учесть оператору ПДн, решившему перенести свои информационные ресурсы в «облако»?
  • Возможно ли аттестовать ИСПДн, размещенную в публичном «облаке»?
  • Какие задачи по обеспечению ИБ возлагаются на облачного провайдера?
  • Какие существуют гарантии того, что конкурент, размещенный в том же «облаке» по соседству, надежно отделен и не сможет атаковать, находясь внутри «облака»?
  • От чего зависит ИСПДн какого класса можно построить в конкретном «облаке»?
Читать дальше →

Используем PHP правильно

Reading time1 min
Views12K
Чуть ли не самая главная проблема в мире PHP — это огромное количество устаревшей и/или не самой лучшей информации, приводящей начинающих разработчиков в заблуждение.
Да что там, даже опытным программистам бывает тяжело выудить крупицу адекватной информации в море интернета.

Именно эту проблему пытается решить автор PHP: The Right Way.
PHP: The Right Way — это набор best practices, принятых стандартов оформления, ссылок на современные библиотеки и источники информации по PHP.

P.S. Если вы опытный программист, то примите участие, помогите начинающим!

Отправка бесплатного sms сообщения в linux

Reading time3 min
Views43K
UPD: Рыская на просторах интернета набрел на новый более простой способ, без танцев с питоном( а можно и с ним если необходимо).
Оказалось что сайт sms.ru уже более полугода предоставляет Бесплатные СМС для программистов.image

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

После регистрации можно отправлять до 60смс в день на свой номер, указанный при регистрации. Уже почти месяц как перевел все свои сервисы с гугла на данный сервис. Радует отсутствие минутной задержки перед отправкой и возможность получения статуса сообщения.

Отправить можно разными способами, на сайте, в разделе «Программистам» есть множество готовых примеров:

  • HTTP
  • curl для командной строки (UTF-8)
  • php (с включенным модулем curl)
  • php (без curl)
  • php (усиленная авторизация)
  • PERL (усиленная авторизация)
  • Python

Самый простой способ это открыть страницу:

sms.ru/sms/send?api_id=xxxx-xxxx-xxxxx-xxxx-xxxx&to=номер_телефона&text=hello+world
,где - xxxx-xxxx-xxxxx-xxxx-xxxx это id доступный после регистрации.

Так же есть возможность пересылки email на смс. В разделе «Почта sms.ru» можно настроить свой почтовый ящик name sms.ru письма на который будут пересылаться на телефон в виде смс. При включенной опции «обрезать до 1смс» все сообщения на свой номер будут бесплатны.



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

Радио-проект про SaaS-сервисы (20 передач) + мини-сериал Мегаплана

Reading time1 min
Views5.5K
Всем привет!

Спецпроект про облака на Финам.ФМ

Недавно завершился наш совместный проект (Мегаплан и Финам.ФМ) про облачные сервисы для российского бизнеса. Мы записали 20 передач про разные аспекты, связанные с управлением процессами и, собственно, SaaS-сервисами, которые для этого предназначены.

В радио-проекте приняли участие более 50 экспертов из таких компаний как: Microsoft, HeadHunter, МойСклад, МоеДело, Техносерв, 1С-Битрикс, UMI, РАЭК, Parallels и многих других.

Предлагаю тем, кто не успел послушать передачи в эфирной сетке, послушать онлайн-записи на сайте Финама, там много интересного.

Спасибо всем, кто помогал нам реализовать этот проект, и отдельное — нашей ведущей Елене Лихачевой, которая целый месяц терпела нас в студии!

Мини-сериал Мегаплана

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

На данный момент вышло 5 серий, еще 5 выйдут в ближайшее время. Просьба не относиться слишком серьезно.

#1 Сотрудники
Читать дальше →

Information

Rating
Does not participate
Location
Бангкок, Таиланд, Таиланд
Registered
Activity