Pull to refresh
5
0
Dmitriy Kovalev @t4u

User

Send message

Внедряем Brotli с помощью Nginx — экономим байты почти бесплатно

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


Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments4

Как найти чужое мыло

Reading time19 min
Views85K
image
Руководство содержит описание поиска личных и корпоративных email различными методами с использованием специальных сервисов и поисковых систем. Включает практические примеры поиска email и рекомендации для начинающих.
Читать дальше →
Total votes 65: ↑50 and ↓15+35
Comments17

Эффективная обработка фотографий в Photoshop

Reading time6 min
Views146K
Эффективная обработка фотографий в Photoshop

Читая статьи о Photoshop, я часто удивляюсь тому, насколько многие авторы усложняют решение по сути простых задач по обработке. Этим страдают и многие «монументальные» писатели, например Дэн Маргулис. Но ему это простительно – его задача написать о всех тонкостях и нюансах процесса обработки, рассмотреть его со всех ракурсов и сторон. Хотя именно эта особенность подачи материала в его книгах отталкивает многих читателей.

На самом деле, корни подобных способов «увеличить резкость в 40 действий» растут из очень простой вещи – люди, которые пишут эти уроки, никогда не работали с большим объемом фотографий. То есть, как правило, у них есть пара фотографий и они готовы в процессе их обработки убить вечер-другой. Но когда у тебя идут постоянные заказы, и с каждой фотосессии тебе надо серьезно обработать несколько десятков кадров – начинаешь задумываться о более простых и удобных способах обработки.

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

Читать дальше →
Total votes 288: ↑244 and ↓44+200
Comments117

Logitech Anywhere Mouse MX — мышь для ноутбука с технологией Darkfield

Reading time3 min
Views22K

Если Performance MX — флагман среди десктопных решений Logitech, то Anywhere Mouse MX несомненный лидер для мобильных решений. Новый сенсор на основе технологии Darkfield, колесико MicroGear и дополнительные функциональные кнопки — вот чего следует ожидать от новой мыши.

Выбирая мышь для своего ноутбука, я в первую очередь обратил внимание на Anywhere Mouse MX. И являясь давним поклонником Logitech, я знал что она меня не разочарует.
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments116

Карта подводных кабелей мира

Reading time1 min
Views13K
image

Наверняка Вы задумывались над тем, каким образом «поставляют» Интернет в Австралию или, например, в Новую Зеландию. Проект cablemap.info на основе карт Bing создал мировую карту подводных кабелей. На сайте также можно посмотреть пропускную способность кабелей и их протяженность. Изучайте!
Total votes 146: ↑131 and ↓15+116
Comments116

Наш мир, возможно, — одна огромная голограмма

Reading time4 min
Views3.6K
(Сокращенный перевод.)

Эксперимент GEO600, Ганновер. В чистом поле — две перпендикулярные траншеи, покрытые металлом. Внутри — детектор, длиной 600 метров. Последние 7 лет там искали (не нашли) гравитационные волны, испускаемые нейтронными звездами и черными телами. Ученые в лаборатории не знали, как объяснить странный шум в результатах измерений. Внезапно появился некий Хоган (Hogan, USA) с объяснением. По его словам, GEO600 наткнулась на фундаментальное ограничение пространства-времени — точку, где континуум уже не может быть представлен как сплошной (по Эйнштейну), а ведет себя как «зерна», типа зернистости фотографии в газете. «GEO600 замеряет квантовые колебания пространства-времени. Если там происходит именно это то, то мы все живем в большой космической голограмме», говори Хоган.
Читать дальше →
Total votes 184: ↑147 and ↓37+110
Comments209

syslog-ng+MySQL+Net Source

Reading time6 min
Views6.2K
Задача: Поднять syslog сервер, с хранением логов в SQL базе и cделать возможным
скидывать туда логи с других клиентов роутеров например

Что нужно: unix like ОС (хотя даже на ОС семейства Windows это можно сделать), syslog-ng, MySQL и понятие, для чего это на фиг нужно.

Предупрежу сразу, все происходить в окружении gentoo linux. И идем по шагам.
подробности
Total votes 4: ↑2 and ↓20
Comments9

Текстовый интерфейс, ч.2. Взаимодействие с пользователем

Reading time9 min
Views24K
Итак, вторая часть. Здесь я раскрою как получить информацию от пользователя, а так же о манипуляции этими данными. Тут можно затронуть вопрос, поднятый в комментариях к предыдущему посту — «А зачем это все нужно?». Примерами применения таких интерфейсов в 21-м веке являются различные аплаянсы на виртуальных машинах, которые реализуют отдельные сервисы. Чаще всего они представляют из себя минимальный дистрибутив Linux или набор загружаемое ядро + busybox. С помощью такого интерфейса можно реализовать некий фронтэнд для сервиса, позволяющий одним взглядом определить состояние основных узлов или выполнить некие операции в удобной для пользователя форме. Примером можно назвать подобные фронтэнды у VMware ESXi (vDirector, vCenter etc), Citrix Xen, которые сочетают как мощь web-интерфейса, так и TUI как резервного интерфейса и/или интерфейса настройки/диагностики. Переключаясь по десяткам машин можно одним взглядом увидеть, все ли в порядке или быстро узнать IP адрес, полностью заблокировав юзеру доступ к консоли, показывая ему только то, что ему достаточно знать (foolproof).

Read more
Total votes 47: ↑42 and ↓5+37
Comments16

Видеохостинг своими руками

Reading time6 min
Views66K
Эта статья о некоторых технических аспектах реализации бесплатного сервиса для загрузки, хранения и просмотра видео. Будут рассмотрены вопросы настройки серверного программного обеспечения, даны примеры команд для конвертации видео и примеры кода на языке PHP.
Читать дальше →
Total votes 126: ↑126 and ↓0+126
Comments108

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

Reading time6 min
Views71K
В этой статье пойдет речь о том, как решалась небольшая задачка поиска дубликатов по фрагменту или кропу картинки.



Читать дальше →
Total votes 129: ↑118 and ↓11+107
Comments39

Nginx на стероидах — расширяем функционал с помощью LUA

Reading time9 min
Views54K
Для обеспечения работы всех наших внешних продуктов мы используем популярный nginx. Это быстро и это надежно. Проблем с ним почти нет. Наши продукты также постоянно развиваются, появляются новые сервисы, добавляется новый функционал, расширяется старый. Аудитория и нагрузка только растет. Сейчас мы хотим рассказать о том, как мы ускорили разработку, неплохо увеличили производительность и упростили добавление в наши сервисы этого нового функционала, при этом сохранив доступность и отказоустойчивость затронутых приложений. Речь пойдет о концепции “nginx as web application”.
А именно, о сторонних модулях (в основном LUA), позволяющих делать совершенно магические вещи быстро и надежно.
image
Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments40

5 правил верстки email-писем от Печкина

Reading time2 min
Views74K

Сегодня мы хотели бы рассказать о базовых правилах верстки HTML в email-письмах. Как известно, на свете существует множество почтовых клиентов:
  • веб-версии у почтовых провайдеров (Gmail, Yandex, Mail, Yahoo итд.)
  • десктопные почтовые клиенты (Outlook, Bat, Thunderbird, Mac Mail)
  • мобильные почтовые клиенты (Blackberry, Android, Iphone, Ipad итд)


К сожалению, не существует обязательного стандарта верстки писем, который бы универсально поддерживался бы всеми клиентами. Часть поддерживает CSS3, часть нет, какие-то теги и аттрибуты поддерживаются, какие-то нет, не говоря уже о том, что поддержка HTML и CSS меняется даже в пределах одного почтового клиента от версии к версии. Последнее особенно заметно на примере Outlook (от Express и 2003 к Outlook 2011).

Что же необходимо знать тем, кто собирается самостоятельно верстать HTML-код для email-писем?
Посмотреть 5 правил верстки email
Total votes 56: ↑46 and ↓10+36
Comments24

«Жизнь» Джона Конвея на Qt

Reading time5 min
Views14K
Привет, {{username}}!



Сегодня я хочу показать, как реализовать всеми любимую игру Game Of Life Джона Конвея на Qt. Писать будем на виджетах. На примере этого проекта я покажу как работать с QPainter, несколькими классами из core, лэйаутами и вообще с графикой в Qt Widgets. Всем кому интересна эта игра или работа с графикой на Qt, прошу читать дальше. Вообще, статья ориентирована на новичков, но и продвинутым ребятам тоже будет что прочитать:).

Кому лень — вот тут лежит исходничег проекта. Можно собирать сразу, зависимости на core, gui.
Читать дальше →
Total votes 83: ↑62 and ↓21+41
Comments25

OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки

Reading time14 min
Views345K
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
Читать дальше →
Total votes 126: ↑116 and ↓10+106
Comments180

Создание расширения для Google Chrome

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

Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.
Читать дальше →
Total votes 98: ↑93 and ↓5+88
Comments28

Защита для NGINX — NAXSI

Reading time3 min
Views37K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments60

UI-Ai: Рисуем интерфейс в Adobe Illustrator

Reading time7 min
Views145K
На презентации Adobe CS6 в Самаре я делал доклад о том как мы в компании Parcsis используем Adobe Illustrator для создания веб- и мобильных интерфейсов. Хочу поделиться этим докладом с вами в виде слайдов с комментариями.

Рисуем интерфейс в Adobe Illustrator

Когда показываешь свои работы, зачастую начинающие дизайнеры задают вопрос «А в чем это нарисовано?» Опытные дизайнеры спрашивают такое реже, так как понимают, что одно и тоже можно сделать с помощью разных графических редакторов. Тем не менее, расскажу свою историю…

Читать дальше →
Total votes 173: ↑162 and ↓11+151
Comments155

Использование дополнительных инструкций CPU в одной из задач на PHP для ускорения производительности

Reading time6 min
Views2.2K
При построении крупных PHP-проектов многие сталкивались с нехваткой производительности, даже на мощных серверах. Даже небольшой участок кода может ощутимо повлиять на весь ресурс в целом: в плане прибыли, и в плане затрат на поддержку и обслуживание данного ресурса. Расскажу Вам мой опыт о нестандартном подходе решения одной задачи.

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

Уже когда все написано, работает, и продолжает дальше разрабатываться, и ни времени, ни бюджета переделывать что-либо – дабы улучшить производительность – нет, а двигаться нужно только вперед, причем как можно быстрее, я получаю очередное задание. Сначала я посмотрел на него как на обычный тикет: вся личная информация пользователя: фамилия, адрес, телефон, идентификационный код – должна храниться в базе в зашифрованном виде, и быть доступна только при запросе с ключами для расшифровки. Так как это мой первый серьезный опыт, связанный с шифрованием данных, я начал искать в гугле возможные пути решения задачи средствами PHP, и, естественно, наткнулся на всем известную библиотеку mcrypt. Не нужно особо много времени, чтобы разобраться, как с ней работать. Библиотека работала – на форумах можно найти много примеров, комментариев, обсуждений. Она показалась мне идеальным вариантом для решения моей задачи, особенно учитывая, что времени было совсем немного.
Читать дальше →
Total votes 86: ↑68 and ↓18+50
Comments70

Самый частый шаблон SQL инъекций в РНР — бесполезное экранирование символов

Reading time2 min
Views35K
По роду своей деятельности, мне приходится выполнять аудиты безопасности исходного кода веб-приложений.
Много веб-приложений и много кода…

В этой статье я хотел бы поделиться одной простой (очень простой) истиной и статистикой, которые вывел и многократно проверил в течении трех последний лет просмотра тонн РНР кода.

Не секрет, что уязвимости внедрения операторов СУБД (SQL injections) являются самыми распространенными из всех серверных уязвимостей веб-приложений. Есть платформы и фреймворки, где такие вещи практически полностью исключены, например ORM'ом и прочим. Но статистика упорно говорит нам об абсолютном преобладании на просторах Интернета веб-приложений с простыми конкатенированными SQL запросами. Кроме того, есть случаи, где ORM вообще применим быть не может. Например, когда от пользовательских данных должны зависеть не только параметры выражений, но и сама логика запроса на уровне операторов.
Читать дальше →
Total votes 90: ↑78 and ↓12+66
Comments148

Mysql в Twitter

Reading time3 min
Views2.1K
Twitter опубликовала свои улучшения для MySQL.
Исходный код изменений распространяется под модифицированной лицензией BSD и располагается на GitHub
Более подробные изменения читайте под хабракатом.
Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments7
1
23 ...

Information

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