Search
Write a publication
Pull to refresh
0
0
nickon @nickon

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

Send message

PHP 5.5 «API хэширования паролей»

Reading time6 min
Views15K
Вот и вышел финальный релиз PHP 5.5.0. Кратко о новых возможностях можно прочитать в посте на официальном сайте или «Переведенное на русский».

На хабре уже были статьи о некоторых новых возможностях PHP 5.5.0, такие как «Coroutines в PHP и работа с неблокирующими функциями» и «В PHP 5.5 возможно появится Finally»
В данной статье будет затронута одна из новых возможностей PHP 5.5.0 "API хэширования паролей".Предоставляющий застрахованные от ошибок разработчиков и более простые в использовании высокоуровневые функции для генерации и проверки валидности паролей по хэшам. Основное отличие нового API в том, что он берёт на себя генерацию надёжных хэшей, скрывая от разработчика операции ручного указания salt-а и выбора алгоритма хэширования (по умолчанию используется Bcrypt). Создание хэша сведено к выполнению "$hash = password_hash($password, PASSWORD_DEFAULT);", а проверка к вызову «password_verify($password, $hash)». В качестве причины внедрения нового API послужило безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования.

Будут рассмотрены константы, функции и код, использующий их.
Читать дальше →

Я делаю свой квадрокоптер. Часть 1. Уравнения динамики

Reading time2 min
Views180K

Оглавление


1. Уравнения динамики

Введение




Давным-давно я написал следующий комментарий: Всё.
После такой новости сажусь делать свой квадрокоптер. А то вон все делают, а я нет.
Не, ну а что.
Всегда хотел, чтобы у меня была какая-нибудь летающая штука. Были 2 вертолета радиоуправляемых. Но кончилось это плохо.
Я решил делать свой квадрокоптер. Как это кончится — посмотрим. Я не буду использовать какие-либо готовые полетные контроллеры, все запрограммирую самостоятельно. И постараюсь этот процесс описать в цикле статей. Сейчас представляю вашему вниманию первую часть. В ней будет бегло показано то, какие уравнения динамики скрываются внутри квадрокоптера.
Итак, поехали.

Немного уравнений и еще меньше текста

Удобная торрентокачалка с управлением через web и android для выделенного сервера

Reading time10 min
Views36K

Преамбула


В данной заметке я хочу рассказать, как сделать универсальную торрентокачалку с управлением через интернет как с web интерфейса так и из Android приложения.
Тут будет рассказано о настройке связки rtorrent+rutorrent+nginx+php-fpm+transdroid на Debian Wheezy. Сразу отвечу на вопрос, почему не transmission, во первых при большом количестве раздач/закачек она падает, во вторых слабо кастомизируется и не имеет плагинов для автоматизации поиска и закачки новинок ну и просто лично мне не нравится.
В случае с rtorrent версия из репозитория собрана без xmlrpc-c, так что придется пересобрать самим, официальная документация проектов содержит только вариант настройки с apache, что мне не подошло о всех трудностях и их решении будет рассказано ниже.
Постараюсь максимально комментировать все настройки и конфиги, чтоб можно было понять как система работает, а не заниматься тупым копипастом.
Надеюсь владельцам собственных NASов и выделенных серверов будет интересно.

Все команды для удобства привожу из под root, без использования sudo.
Картинок будет мало, в основном команды и пояснения, для максимально быстрого воспроизведения конфигурации.
Итак, поехали:

Оптимизация MySQL запросов с помощью Neor Profile SQL

Reading time1 min
Views26K
Любой программист создающий нагруженные проекты с тысячами пользователей, когда-либо задавался вопросом, как он может улучшить SQL запросы и экономить многие сотни долларов. Процесс анализа обычно начинается с профилирования и отладки кода приложения. Далее происходит процесс оптимизации SQL запросов, для этого можно воспользоваться встроенными иструментами MySQL сервера. Например логирование MySQL в файл. Но рано или поздно начинаешь понимать, что это не удобно.

image

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

Как я учился защищать изображения

Reading time5 min
Views79K

Изображение защиты

В этой статье хочу изложить нелёгкий путь, который я прошёл «защищая» изображения в вебе. Перед тем, как мы начнём это увлекательное путешествие, хочу обозначить два подхода в деле защиты изображений:
  1. ограничение/запрет постинга прямых ссылок на оригиналы изображений
  2. вы параноик и пытаетесь ограничить распростронение копий изображений

UPDATE
Универсальной защиты конечно же не существует. Статья о том, как не подставлять напрямую данные из GET в SQL-запросы. Только в контексте защиты изображений.
Итак...

DevConf 2013 14 июня — опубликована программа секции PHP, автор PHP расскажет про ускорение PHP в 6 раз

Reading time2 min
Views13K
image
Приближается конференция DevConf 2013 devconf.ru

В секцию PHP вошли доклады отобранные сообществом разработчиков

PHP — быстрый или медленный? Ускоряем код в 6 раз!
Дмитрий Стогов, ведущий инженер в Zend Technologies. Один из ведущих разработчиков в PHP комьюнити,
майнтейнер Zend OPcache, автор нескольких PHP расширений.


РНР-демоны в социальных играх
Александр Календарев. (РБК) Опыт в индустрии программирования на РНР более 10 лет,
последние пять участие в проектах с высокими нагрузками, специализация: системы хранения информации (NoSQL).


Как мы используем Yii
Александр Макаров — инженер, один из разработчиков Yii и Stay.com.
Читать дальше →

Justify Grid — новое слово в разметке

Reading time2 min
Views35K

Доброго времени суток уважаемые хабражители. На сегодняшний день создание разметки для страницы грубо говоря не автоматизировано. Разметку мы выполняем с помощью float или inline-block (подробнее). Поэтому я хочу поделиться с вами замечательной идей — Justify Grid Framefork.

Проблема


Если говорить о верстке на float, то мы сталкиваемся с проблемой центрирования элемента и нам приходиться скурпулезно указывать все значения ширины и отступов. Эту проблему безусловно решают существующие Grid фреймворки (к примеру 960.gs). Но получается симантически не верная разметка и разработчикам постоянно приходиться использовать .clearfix. Плюс ко всему проблемы могут возникнуть из за дробных пикселей. Если говорить об inline-block, то неудобства появляются из за того, что элементы с этим значением выравниваются по базовой линии, а не по верхнему краю. А если на странице несколько inline-block'ов, каждый из которых расположен с новой строки, то между ними будут некоторые промежутки. Любой пробел повлияет на Ваш layout. Решение есть — CSS Grid Layout или Flexible Box Layout, но эти решения не поддерживаются на большинстве браузеров.
Читать дальше →

Собираем CarPC на Android: недостроенный долгострой

Reading time12 min
Views401K


Моя машина меня устраивает почти всем. Есть практически все, что нужно. В комплектации блютусный телефон, кнопочный климат-контроль, электростеклоподъемники на всех дверях, подогрев сидений, подогрев, регулировка и складывание зеркал, чип-ключ, CD-чейнджер на 6 дисков, но без MP3 и линейного входа. Вот этот прискорбный факт и привел меня к мысли начать собрать свой CarPC на базе андроида. Начал рассматривать варианты и покатился… появилось много идей.
Хочу поделиться с Вами!

Типажи и анонимные функции в PHP. Кря-кря!

Reading time5 min
Views28K
В данной статье я не буду рассказывать, что такое Типажи, не буду описывать синтаксис, или разбирать всякие тонкости, связанные с разрешением имен и наследованием Типажей. На эту тему на Хабре уже есть фундаментальная статья.
Я хочу лишь показать один маленький, но гордый пример использования типажей совместно с анонимными функциями. В нем не будет ничего технически сложного: всего один типаж и два класса. Практической ценности в нем тоже не очень много, как и в любом модельном примере. Но идея — каким образом можно структурировать и переиспользовать код — на мой взгляд очень ценна.
Заинтересовавшихся прошу под кат.
Читать дальше →

Тяжелый FPV-квадрокоптер — разработка, сборка и первый полет

Reading time5 min
Views375K
image

Я занимаюсь квадрокоптерами в качестве хобби уже почти полгода. На свой последний аппарат я навесил камеру (GoPro HD Hero 2) и видеопередатчик, и летал на нем через видеоочки — крутейшее ощущение, я вам хочу сказать. Нo техника была нe идеальной. Старая рама X525 с алюминиевыми балками была недостаточно стабильной для веса в 1.8кг, коптер в воздухе потряхивало, да и выглядело это всe достаточно колхозно. Поэтому было принятo решение строить новый квад, на собственноручно разработанной раме, с учетом всех потребностей. А потребности были следующие:

  • Место под всe оборудование. На новой раме должно былo быть достаточно места для камеры (без пропеллеров в картинке), передатчика, OSD, большого аккумулятора, плюс электроники управления (плата контроллера полета и GPS).
  • Стабильность. Рама должна быть максимально жесткой, но в то же время обеспечивать виброизоляцию камеры от моторов.
  • Внешний вид. Хотелось сделать коптер таким, чтобы было приятно на него смотреть, а не типичным для начинающих комком проводов и стяжек на стандартной крестовидной раме.
  • (Вторично) Вес. Коптер на базe X525 весил 1.8кг с камерой и батарейкой, хотелось эту цифру слегка уменьшить, заодно и приподнять время полета на одном аккумуляторе.

Пораскинув мозгами и приняв решение, как всe это будет выглядеть, я установил LibreCAD и принялся за работу.
Под катом много фотографий, текста и видео первого полета

PHP HTML DOM парсер с jQuery подобными селекторами

Reading time3 min
Views146K
Добрый день, уважаемые хабровчане. В данном посте речь пойдет о совместном проекте S. C. Chen и John Schlick под названием PHP Simple HTML DOM Parser (ссылки на sourceforge).

Идея проекта — создать инструмент позволяющий работать с html кодом используя jQuery подобные селекторы. Оригинальная идея принадлежит Jose Solorzano's и реализована для php четвертой версии. Данный же проект является более усовершенствованной версией базирующейся на php5+.

В обзоре будут представлены краткие выдержки из официального мануала, а также пример реализации парсера для twitter. Справедливости ради, следует указать, что похожий пост уже присутствует на habrahabr, но на мой взгляд, содержит слишком малое количество информации. Кого заинтересовала данная тема, добро пожаловать под кат.
Читать дальше →

Bitmessage — программа для P2P-обмена зашифрованными сообщениям

Reading time1 min
Views55K
Совсем недавно состоялся выпуск бета версии новой программы для P2P-обмена зашифрованными сообщениями между двумя пользователями или группой пользователей. Выпуск бета версии Bitmessage состоялся 21 марта В ней используется сильная криптография, которая надёжно защищает абонентов от прослушивания на уровне интернет-провайдера (СОРМ) или на сервере, как в случае Skype и других, которые пропускают трафик через себя.



Дальнейшее описание с исходниками под катом.

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

Высокодоступный FTP-сервер с хранением данных в AWS S3

Reading time5 min
Views19K
Добрый день, уважаемые читатели.
Снова хочу поделиться с вами приобретенным опытом.На одном из проектов была поставлена цель организовать FTP-сервер повышенной надёжности. Под повышенной надёжностью подразумевалось следующее:
  • Данные хранятся в AWS S3
  • Сам FTP-сервер (выбран был Pure-ftpd) должен быть максимально возможно доступен
  • Организовать балансировку нагрузки (опционально)
Читать дальше →

HINT.css — всплывающие подсказки средствами CSS

Reading time1 min
Views33K

Что


Hint.css — библиотека, реализующая всплывающие подсказки, средствами CSS3 без применения JavaScript.

Библиотека использует атрибут data-*, псевдоэлементы, свойство content и CSS3 transitions для вывода всплывающих подсказок.
Читать дальше →

Если у меня есть 30 тысяч рублей, во что их можно вложить?

Reading time3 min
Views82K


Первый вариант — купить на них стройматериалов и мороженого. Как подсказывает практика, достаточно здравый, потому что мороженое вкусное, а стройматериалы последние годы дорожают. Но это не вклад, а способ потратить деньги. Второй вариант — сходить в банк и отдать деньги на год. Проблема, очевидно, в том, что вы получите в конце года столько же, с учётом инфляции. Есть ещё куча вариантов, и все они более-менее известны и понятны.

Но хочется именно инвестировать. 30 тысяч рублей, то есть натурально смешную сумму для любого проекта, но вполне конкретные для вас лично деньги. И это возможно.

Так куда можно вложить штуку баксов?

Продуктивная работа с MySQL в командной строке

Reading time3 min
Views40K
Даже если Вы используете GUI-инструменты для работы с MySQL, однажды Вам предстоит столкнуться с командной строкой. Поэтому полезно знать некоторые трюки, которые облегчают работу.

Примечание: эти команды работают только для Unix/Linux.
Читать дальше →

Мониторинг сообщений и звонков в Android

Reading time5 min
Views58K
На разрабатываемом мною проекте под Android возникла необходимость мониторинга входящих и исходящих звонков и сообщений. Полез читать документацию и подручные книги и к сожалению понял, что задача не совсем из тривиальных, так как каждая часть одной проблемы требует различного подхода к реализации. Вообще заметил, что многие книги или же статьи всегда стараются подавать более легкие примеры, например обработка входящего сообщения, а вот про исходящее ни слова если реализация более сложна. Возможно это мое предубеждение, но уже не первый раз обращаю на это внимание
Решил собрать все воедино и поделиться с теми, кто возможно будет набивать себе оскомину пытаясь найти решение данной проблемы. На оптимальность не претендую, так как сам учусь
Читать дальше →

Amazon Glacier: хранилище данных по $0,01 за 1 ГБ в месяц

Reading time1 min
Views34K
Сегодня начал работу новый проект Amazon Glacier: долговременное хранилище в облаке по невысокой цене $0,01 за 1 ГБ в месяц. Идеально подходит для хранения бэкапов и больших архивов, к которым не нужен частый доступ. Извлечение данных из Glacier занимает от 3,5 до 4,5 часов.

Как везде в AWS, пользователь оплачивает только тот объём ресурсов, которые реально использует, никакой абонентской платы. Загрузка и извлечение архивов, мониторинг статуса возможны через Amazon Glacier APIs. Все файлы автоматически шифруются AES 256 и дублируются в разных дата-центрах, прежде чем APIs возвращают ответ SUCCESS.
Читать дальше →

Тюнинг MySQL — thread_cache_size

Reading time1 min
Views59K
Параметр thread_cache_size играет немаловажную роль в производительности нагруженного MySQL-сервера. В некоторых случаях можно увеличить производительность на 30-50%.

Этот параметр указывает количество тредов, уходящих в кеш при отключении клиента. При новом подключении тред используется из кеша, что позволяет экономить ресурсы при больших нагрузках.
Читать дальше →

Пишем плагин для jQuery

Reading time8 min
Views248K
Эта статья призвана дать представление об основных правилах, подходах, дающих наилучшие результаты, и распространённых ошибках, на которые стоит обратить внимание при разработке плагинов для jQuery.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity