Pull to refresh
9
0

User

Send message

Linux в кармане — на службе у фотографа

Reading time6 min
Views49K
Так получилось, что фотография, это мой основной профессиональный вид деятельности, а программирование — хобби, которое иногда позволяет размять мозг. Кроме непосредственно разминки для мозга, программирование помогает и в работе. Например, писал полезные штуки, такие как это или это, или это.

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

Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.
Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments75

Битовые операции в PHP на примерах

Reading time3 min
Views88K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →
Total votes 242: ↑203 and ↓39+164
Comments162

Кеширование в Yii с помощью тегов

Reading time3 min
Views9K
Yii позволяет кешировать данные в виде массива возвращаемые прямиком из базы данных.
А у системы кеширования есть разные зависимости. Вот только ни одна из этих зависимостей не позволяет автоматически отслеживать изменения в таблице без обращения к ней же (имею ввиду CDbCacheDependency), что в нагруженных системах бессмысленно.

Для подобных вещей придумали так называемое тегирование. Т.е. создается какой-то тег, который сохраняется со всеми кешами связанными с данной таблицей. И как только он меняется, все связанные кеши должны перезагрузиться. Как оказалось в Yii это делается очень просто.

Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments5

Работа с битовой маской

Reading time2 min
Views47K
Доброго времени суток всем!
Часто возникает необходимость хранить данные логического типа для определенных таблиц. Например, таблица пользователей, такими данными могут быть поля активация пользователя, блокирование пользователя и др. Для таких полей удобно использовать битовую маску, при которой все данные хранятся в одном поле таблицы. Последнее время работаю с фреймверком Yii. Мне он нравится и во всем устраивает. Так вот, в процессе работы над несколькими проектами у меня появилось ряд наработок для работы с битовой маской под этот фреймверк.
Ими и хочу поделиться.
Читать дальше →
Total votes 43: ↑32 and ↓11+21
Comments37

Гексагональная архитектура

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

  1. Видео с доклада
  2. Слайды


По моему мнению, данная архитектура является отличным примером того, как должна строиться структура приложения. Более того, когда я писал свои проекты на Laravel, я, даже не зная этого, частенько использовал идеи, заложенные в основе гексагональной архитектуры.



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



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



Этот тип архитектуры придерживается классических идей, к которой приходят разработчики при проектировании приложений: отделение кода приложения от фреймворка. Пусть наше приложение формируется само по себе, а не на базе фреймворка, используя последний только как инструмент для решения каких-то задач нашего приложения.


Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments16

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Разработка защищенных банковских приложений: главные проблемы и как их избежать

Reading time8 min
Views18K


В прошлом году злоумышленники совершили на 30 % больше атак на российские банки, чем годом ранее. Пытались вывести около 6 млрд рублей. Часто атака становится возможной из-за недостаточной защищенности финансовых приложений.

По нашей статистике, более половины систем дистанционного банковского обслуживания (54 %) содержали XSS-уязвимости, которые позволяют осуществить MitM-атаку и перехватить доступ к интернет-банкингу. С мобильными банковскими приложениями ситуация выглядит не лучше: 70 % «кошельков» для Android и 50 % для iOS в 2014 году содержали уязвимости, достаточные для получения доступа к счету.

Выявлять уязвимости на ранней стадии гораздо дешевле, чем потом расхлебывать последствия их эксплуатации. В середине октября эксперты Positive Technologies Тимур Юнусов и Владимир Кочетков провели двухдневный мастер-класс по безопасной разработке банковских приложений. Сегодня мы представляем краткий пересказ.

Разговор о проблемах безопасности и их возможных решениях следует начать с типичных проблем защищенности банковских приложений.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments13

NGINX как балансировщик нагрузки для MySQL или MariaDB Galera Cluster

Reading time6 min
Views25K
Данная статья является переводом оригинальной статьи с сайта Severalnines.

Nginx хорошо известен всем за свои расширенные возможности и эффективность в качестве прокси и/или балансировщика веб-приложений с низким потреблением памяти. Как правило, nginx используется на первой “линии обороны” веб приложений, чтобы распределять нагрузку на сервера бекенда, периодически проверяя их работоспособность. Данная технология довольно популярна для приложений, которым требуется повышенная отказоустойчивость.


Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments2

Чем отличаются SSL-сертификаты от Namecheap? Шифрование, проверка и доверие

Reading time5 min
Views10K
Примечание переводчика. После моего поста о Хостинг Кафе появились два комментария (1, 2) о том, что на HTTPS.menu нет бесплатных сертификатов, и как раз в тот день вышла статья основателя Namecheap о бесплатных SSL. Изначально статья называлась «Факты о бесплатных SSL» («The Facts About Free SSL»), однако через пару дней после публикации статью переименовали и немного отредактировали.



(Замечание: После получения ценной обратной связи сообщества по сетевой безопасности, мы отредактировали эту статью, чтобы разъяснить нашу точку зрения, а также удалили второстепенные вопросы, которые отвлекали от основных, а именно: значительности проверки при SSL-сертификации и необходимости разъяснять пользователям, что из-за разработок в сфере автоматизации SSL-сертификации, наличие букв ¨https¨ и изображения замка в адресной строке уже может не свидетельствовать о безопасности, как ранее. Благодарим Вас за ценную обратную связь. Мы всегда прислушиваемся к ней и всегда открыты к обсуждению вопросов.)

Namecheap ориентирован на обеспечение безопасности и защиты данных всех пользователей. Мы считаем, что тенденция к шифрованию практически всего веб-трафика посредством автоматизированной выдачи SSL-сертификатов – положительное изменение в Интернете. Предотвращение MITM атак, а также других попыток перехвата данных, в интересах всех сторон. Это неоспоримый факт. Однако существует значительная разница между шифрованием и обеспечением безопасности. Это может показаться тривиальным продвинутым пользователям или специалистам, но для потребителей – это актуальная информация.

Мы думаем, что проверка владельца сертификата – важный вопрос, который требует особого внимания и обсуждения. Разработки последнего времени в сфере автоматизации выпуска SSL-сертификатов с технической точки зрения потрясающие. Тем не менее, следует разъяснить пользователям специфику новой модели обеспечения безопасности и то, на какие сигналы обращать внимание при принятии решений об обеспечении безопасности. Искать буквы «https» и изображение замка в адресной строке — т. е. показатели, которые традиционно считались достоверными, уже может быть и не так надежны, когда речь заходит о безопасности пользователя.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments0

400 потрясающих бесплатных сервисов

Reading time16 min
Views720K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments38

Значимость SPF

Reading time4 min
Views195K
Хочу обратить ваше внимание на важную, на мой взгляд, проблему, которой пренебрегают даже самые крупные и инновационные компании мира. Проблема заключается в отсутствии у большинства доменов SPF-записи, которая защищает домен от его несанкционированного использования в электронной почте.
SPF (Sender Policy Framework) представляет из себя текстовую запись в TXT-записи DNS домена. Запись содержит информацию о списке серверов, которые имеют право отправлять письма от имени этого домена и механизм обработки писем, отправленных от других серверов.
Например, SPF-запись «example.com. TXT «v=spf1 +a +mx -all»» говорит о том, что отправлять письма от имени домена «example.com» могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail).

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments34

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Reading time14 min
Views1.4M
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →
Total votes 234: ↑231 and ↓3+228
Comments138

Пишем графическую программу на Python с tkinter

Reading time4 min
Views224K
В работе со студентами и учениками я заметила, что при изучении какого-либо языка программирования большой интерес вызывает работа с графикой. Даже те студенты, которые скучали на заданиях про числа Фибоначчи, и уже казалось бы у них пропадал интерес к изучению языка, активизировались на темах, связанных с графикой.

Поэтому предлагаю потренироваться в написании небольшой графической програмки на Python с использованием tkinter (кроссплатформенная библиотека для разработки графического интерфейса на языке Python).

Код в этой статье написан для Python 3.5.

Задание: написание программы для рисования на холсте произвольного размера кругов разных цветов.

Не сложно, возможно программа «детская», но я думаю, для яркой иллюстрации того, что может tkinter самое оно.

Хочу рассказать сначала о том, как указать цвет. Конечно удобным для компьютера способом. Для этого в tkinter есть специальный инструмент, который можно запустить таким образом:
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments27

Умный дом или игрушка для мужчин: Интернет

Reading time5 min
Views30K
В качестве продолжения предыдущей статьи планировалась тема «ресурсосбережение». Но я скорректировал направление и решил начать описание технической части умного дома. Все-таки читатели здесь больше технари, чем экономисты. Хотя в последнее время всем нам предстоит начать экономить.

Итак, к технике.


Начнем по хронологии, чтобы всем все было понятно. Основы моего умного дома были заложены почти 2 года назад. Тогда считалось, что Интернет 2G на даче – это круто. Во всяком случае, я так считал. Если хочется 3G, то лезь повыше, на 2 этаж, залезай на табуретку около окна и не шевелись. Тогда было счастье – 3G, хоть и медленный. Я, как заядлый компьютерщик, решил усовершенствовать автоматизировать подъем на 2 этаж с табуреткой, купил роутер Zyxel, воткнул в него USB модем на проводе 1,8м, провод закрепил наверху около окна (все мы это проходили). Счастья стало больше. Теперь в доме можно было пользоваться Интернетом 3G со скоростью 1-2 Мбит.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments30

ipgeobase в Nginx

Reading time3 min
Views18K
Когда возникает задача — по адресу посетителя получать его город и налоговый (автомобильный) код региона, кажется — да это же просто, в инете полно таких штук!
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments9

Yii 2.0.6

Reading time3 min
Views19K
Состоялся релиз PHP фреймворка Yii версии 2.0.6.

Инструкции по установке и обновлению доступны по адресу http://www.yiiframework.com/download/.

Версия 2.0.6 является патч-релизом для ветки 2.0 и содержит более 70 небольших улучшений и исправлений, многочисленные улучшения документации и значительный прогресс с её переводом.

Спасибо всем, кто участвует в разработке фреймворка. Ваши pull-request-ы, обсуждения и другая помощь незаменимы.

За процессом разработки фреймворка можно следить поставив звёздочку или нажав кнопку «watch» на GitHub.
Также можно подписаться на наши Twitter и Facebook.

Далее представлен небольшой обзор самых интересных нововведений.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments42

Обзор каркасов приложений на Symfony2

Reading time9 min
Views15K
При разработке веб-приложений почти всегда мы хотим начинать с какой-то готовой базы и прикручивать необходимый функционал с удобством для разработчика. Особенно для начинающего разработчика полезно смотреть готовые проекты. Фреймворки, в частности Symfony2, предоставляют очень много инструментов, чтобы сделать разработку приложений приятной. Но среди множества бандлов (модулей Symfony2 приложений) бывает тяжело понять, какой набор стоит выбрать.

У каждой компании, имеющей некоторый опыт разработки на Symfony2, скорее всего имеется свой минимальный каркас для старта, но в статье мы посмотрим на варианты, находящиеся в открытом доступе.

Статья подойдет читателям, только начинающим знакомство с Symfony2. А людей, активно использующих этот фреймворк, попрошу поделиться замечаниями.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments7

Подписываем данные: HMAC на практике в API и Web-формах

Reading time8 min
Views69K
HMAC (сокращение от англ. hash-based message authentication code, код проверки подлинности сообщений, использующий односторонние хеш-функции) — в криптографии, один из механизмов проверки целостности информации, позволяющий гарантировать то, что данные, передаваемые или хранящиеся в ненадёжной среде, не были изменены посторонними лицами (атака типа «man in the middle»).

К таким данным могут относиться например данные, передаваемые в запросах API, когда критически важна целостность передаваемой информации, или же при передаче данных из Web-форм.
Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments101

Как определить лицо на фотографии с помощью PHP

Reading time3 min
Views40K
Определение лиц используется в соцсетях, фото-редакторах, видеочатах, умной капче, time tracking программах — можно придумать еще множество применений этой функции.
image
Читать дальше →
Total votes 36: ↑26 and ↓10+16
Comments13

Регулярные выражения для валидации распространенных видов данных

Reading time2 min
Views491K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →
Total votes 133: ↑97 and ↓36+61
Comments66

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity