Как стать автором
Обновить
13
0
Enjoys @DeadLy

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

Отправить сообщение

Doctrine ResultSetMapping на примерах

Время на прочтение8 мин
Количество просмотров20K
Doctrine ORM предоставляет разработчику удобные средства выборки данных. Это и мощный DQL для работы в объектно-ориентированном ключе, и удобный Query Builder, простой и понятный в использовании. Они покрывают большую часть потребностей, но иногда возникает необходимость использовать SQL запросы, оптимизированные или специфичные для конкретной СУБД. Для работы с результатами запросов в коде важно понимание того, как работает маппинг в Doctrine.


Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Отрабатываем Git hooks на автоматизации commit message

Время на прочтение8 мин
Количество просмотров32K

Привет, Хабр! В этой статье я расскажу о Git hooks и о том, как они могут помочь с некоторыми насущными кейсами организации создания commit’ов и commit message. Пост основан на реальном опыте из моей практики: как я упрощал то, что всем надоело делать руками. Я уверен, что хуки могут оказаться полезны почти каждому разработчику. Ведь все мы пишем в сообщении коммита чуть больше, чем «fixed what was broken», верно?

Меня зовут Роман Горбатенко, я Java-разработчик в компании DINS, на момент написания текста тружусь в команде Contact Center. Занимаюсь разработкой больше 3-х лет и прошел путь от личинки стажера до middle разработчика. Считаю Git одним из самых полезных инструментов разработчика. Многие не используют его возможности на полную, возможно, мне удастся это немного исправить.

Узнать больше о Git hooks
Всего голосов 13: ↑13 и ↓0+13
Комментарии23

Фасетные фильтры: как готовить и с чем подавать

Время на прочтение6 мин
Количество просмотров23K

О чем речь 


Как сделать фасетный поиск в интернет-магазине? Как формируются значения в фильтрах фасетного поиска? Как выбор значения в фильтре влияет на значения в соседних фильтрах? В поиске ответов дошел до пятой страницы поисковой выдачи Google. Исчерпывающей информации не нашел, пришлось разобраться самому. Статья описывает:

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

Здесь нет готовых решений. Скопировать и вставить не получится. Для решения собственной задачи придется вникнуть.


Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Делаем вебсокеты на PHP с нуля

Время на прочтение18 мин
Количество просмотров304K
Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

Так я решил написать необходимый для меня функционал с нуля.

Получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Всего голосов 88: ↑76 и ↓12+64
Комментарии77

Экзотичные заголовки HTTP

Время на прочтение12 мин
Количество просмотров104K

Привет Хабрахабр! В этой статье будут наглядно продемонстрирован результат применения некоторых важных и экзотичных HTTP заголовков, большинство из которых связаны с безопасностью.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии35

HOWTO setup ubuntu 18.04 sendmail+DKIM+SPF+DMARC или о том как мне удалось пробиться в бастион Gmail

Время на прочтение7 мин
Количество просмотров23K

Предисловие


На моем сервере крутится 2 отдельных домена. До истории с блокировками Роскомнадзора мы собирали трафик около 2000 посещений в сутки, а почтовый сервер отправлял в сутки около 200 писем на все популярные почтовые сервисы, в т.ч. Гугл и Яндекс. Все было здорово. Но как говорится в известном ролике: «Все было так хорошо, пока не пришел Навальный Роскомнадзор!

Теперь, когда нам удалось найти хостера, чьи IP адреса не попадают под блокировки государственной цензуры появилась другая проблема. Корпорация добра Гугл перестала дальше порога пускать нашего почтальона.

MX сервер google выбрасывает мою почту с примерно следующим сообщением: „Твое сообщение похоже на нежелательное, давай до свидания...“
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии19

Спустя 6 лет вышла новая версия легендарного аварийного дистрибутива Hiren's BootCD

Время на прочтение4 мин
Количество просмотров158K


Сегодня праздник у железячников, ремонтников, сисадминов и эникейщиков!
После долгого забвения был возобновлен выпуск легендарного загрузочного диска Hiren's BootCD.

Hiren's BootCD (также известный как HBCD) представляет собой загрузочный образ с программным обеспечением для записи на CD\DVD\USB-flash, содержащий ряд диагностических утилит, таких как тесты производительности системы, программы для форматирования и разметки, средства клонирования и создания образов диска, инструменты для восстановления данных, инструменты для работы с MBR, инструменты прошивки и модификации BIOS и других средств для исправления различных компьютерных проблем.

На этот раз дистрибутив базируется на 64-разрядной Windows PE 10.0 и содержит только легальные для свободного распространения программы, при условии, что вы будете использовать HBCD исключительно в целях диагностики и устранения компьютерных неисправностей, а не в качестве основного ПО для компьютера.

Выпуском новых официальных версий занимается группа особо преданных фанатов дистрибутива, которым был передан доступ к официальному сайту (старая версия сайта до анонса новых версий), в то время как оригинальный автор давно отошел от дел.
Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии71

Шаблоны проектирования с человеческим лицом

Время на прочтение32 мин
Количество просмотров487K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →
Всего голосов 148: ↑134 и ↓14+120
Комментарии98

Хочу как у YouTube

Время на прочтение11 мин
Количество просмотров39K

Вы когда-нибудь задумывались как устроен ID видео на YouTube?
Возможно, вы уже знаете/нашли ответ, но, как показали обсуждения на Stack Overflow, многие понимают эту технологию неправильно. Если вам интересно изучить что-то новое, добро пожаловать под кат.


Хочу как у YouTube
Читать дальше →
Всего голосов 44: ↑33 и ↓11+22
Комментарии61

Как использовать API сайта, у которого нет API?

Время на прочтение4 мин
Количество просмотров80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии40

Получение денег с AdSense через Rapida Online на банковский счет

Время на прочтение2 мин
Количество просмотров44K
Здравствуйте.

Не так давно столкнулся с необходимостью получить деньги за публикуемое приложение на Андроид Маркете. Самое первое, что опробовал — чек. Как большинству известно, чек в России обналичить — дело непростое (процесс состоит из отправки чека обратно в Америку почтой и возвращении денег назад почтой и занимает до 60 рабочих дней), поэтому, разочаровавшись, начал искать альтернативы.

В аккаунте AdSense меня очень заинтересовала графа Rapida, где было написано, что деньги можно в течение 2 дней получить на почте. Я пошел на рапиду и волей случая попал не на Rapida, а на Rapida Online. Rapida Online — это своеобразный электронный кошелек, дающий возможность перечислять с него деньги на другие кошельки:
  • Qiwi
  • Яндекс.Деньги
  • Web Money

или на банковский счет в банках, указанных в списке на сайте. Список достаточно длинный. Меня интересовал Альфа-Банк, и я его там нашел.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии61

35 логотипов со скрытым смыслом

Время на прочтение4 мин
Количество просмотров275K


Дизайн простого логотипа иногда бывает серым и скучным, если разрабатывается без доли воображения. Многие популярные бренды имеют простые, но в то же время эффективные логотипы. Вспомните дизайн логотипа знаменитого FedEx. Он выглядит элементарным и безыскусным, но на самом деле это отличная идея со скрытым смыслом, который заключается в стрелочке между буквами «E» и «x». Эта стрелка символизирует развитие и успех компании.

Это одна из самых больших проблем дизайнеров. Создание абстрактных логотипов с действенными «скрытыми посланиями» намного важнее, чем свистелки и перделки модный дизайн.
Это потому, что если логотип не передает всю «суть» компании, то и бренд продать не получится. Одним из самых популярных приемов в разработке логотипов является negative space (негативное пространство).
Прошу под кат.
Всего голосов 256: ↑181 и ↓75+106
Комментарии206

Подсчет количества дистрибутивов логотипа и знака

Время на прочтение5 мин
Количество просмотров2.5K
Удивительно, но факт: я даже искал (давно), но не нашел никаких инструкций по составлению гайдлайнов. Более того, как-то не попадались на глаза внятные принципы формирования базы дистрибутивов, а это совсем базовые основы.

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

Сегодня утром я составлял подробный комментарий к коммерческому предложению и понял, что получится полезная статейка. Чтобы скрасить её немного, разбавил текст недавними примерами, для красоты наглядности.

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

Узнать, почему будет как минимум 24 дистрибутива
Всего голосов 51: ↑40 и ↓11+29
Комментарии110

случилось: Блокнот исчез :(

Время на прочтение1 мин
Количество просмотров1.3K
наверное, гугл постепенно претворяет планы по выпиливаю Блокнота в жизнь…

ссылка на Google.Блокнот исчезла со страницы продуктов www.google.com/intl/ru/options

но он все еще доступен по прямой ссылке www.google.com/notebook/?hl=ru

UPD в самом блокноте исчезли ссылки на все остальные сервисы Гугла, которые обычно в верхнем левом углу

image

UPD2: хабраюзер TilC некоторое время назад написал петицию в поддержку Блокнота
Читать дальше →
Всего голосов 103: ↑73 и ↓30+43
Комментарии74

Несколько jQuery плагинов, которые вы возможно станете использовать

Время на прочтение2 мин
Количество просмотров1.9K

qTip





qTip — это бесплатный плагин для jQuery для создания подсказок (tooltip). Данный плагин кроссбраузерный, имеет обширные возможности к настройке и содержит множество функций, таких как: закругленные углы без применения изображений, speech bubbles (изображение речи как в комиксах), а так же эффекты — fade (постепенное исчезновение изображения), slide и возможность создания собственных эффектов. Данный плагин уже включает пять готовых тем, но можно создавать свои темы без особых усилий. Кроме того можно создавать окна диалогов, изменять цвет фона подсказки и места, где она отображается.

Скачать | Демо

Читать дальше
Всего голосов 96: ↑76 и ↓20+56
Комментарии30

PHP класс для конвертирования кодировки базы Mysql

Время на прочтение4 мин
Количество просмотров581
Недавно я написал скрипт конвертирования Mysql базы из одной кодировки в другую. После, я решил переписать скрипт, создав класс. Теперь можно подключать эту библиотеку в своих скриптах. Использование данного класса показано ниже.
Читать дальше →
Всего голосов 26: ↑17 и ↓9+8
Комментарии32

Задачки для веб-сёрферов

Время на прочтение7 мин
Количество просмотров1K
Лет десять назад, когда интернет был диковинкой, я мошенничал тем, что участвовал в различных теле- и радиовикторинах, используя свой доступ в сеть. То есть не знал ответы на вопросы, а просто очень быстро умел находить их в интернете. Что позволило мне несколько раз выиграть билеты в кино, пару книжек и компакт-дисков, и разок появиться на местном телевидении. Все эти навыки пригодились в жизни — я и сейчас по просьбам друзей нахожу в Сети требуемое. «Если оно есть в интернете, говорю я им, то я это вам найду». Впрочем, не сочтите это за хвастовство. Уверен, что многие умеют быстро находить любую требуемую информацию.
И вот в связи с этим мне подумалось как-то: а почему бы не сделать хитроумных задачек в стиле, скажем, «Своей игры» или «Что? Где? Когда?», но специально для тех, кто любит и умеет искать в интернете.
И я начал сочинять такие задачки. Кому-то из моих знакомых они не понравились вовсе, кто-то почесал репу и остановился на середине пути. А кому-то понравилось, и они потратили несколько минут (или часов) своего драгоценного времени на разгадывание этих головоломок.
Если у вас есть свободное время, есть навыки поиска информации и вы хотите попробовать свои силы — попробуйте разгадать несколько таких задачек.
Всё, что для этого нужно — базовые знания, Google, Wikipedia и другие ваши любимые источники информации.
Задачки можно разгадывать сразу с хвоста, опустив начало. Я бы рекомендовал всё же разгадывать последовательно, от начала до конца. Тогда разгадывание может оказаться более интересным. Потому как здесь цель — не скорость и не точность лишь финального слова, а раскрытие всей цепочки целиком.

ЗАДАЧКИ ПОД КАТОМ
Всего голосов 81: ↑69 и ↓12+57
Комментарии56

Осторожно, скользко! Играемся с изображением в ПХП. Эффект мокрого пола.

Время на прочтение1 мин
Количество просмотров751
Как реализовать эффект мокрого пола?

А все очень просто!

Надо всего лишь зайти под “cut” и посмотреть… =)

Задача: реализовать эффект мокрого пола

Решение: PHP + GD
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии27

Online сервисы по перебору паролей

Время на прочтение2 мин
Количество просмотров107K
Существует много причин использования таких сервисов, чаще всего или элементарная забывчивость или хакинг.

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

Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии8

USB-миниатюра Thumbkey

Время на прочтение1 мин
Количество просмотров630
Компания Buffalo выпустила новую флэшку Thumbkey, которая отличается ну совсем уж крохотными размерами (18х18х8 мм) и весом всего в 3 грамма. Объем этой малышки составляет 16 Гб.


У Thumbkey и корпуса-то толком нет: коннектор и нечто напоминающее заглушку. И это только на пользу, так как будучи вставленной в порт, флэшка практически не выступает из корпуса. Для ноутбуков так вообще замечательно — даже доставать из порта при переноске не нужно, т.к. уж точно ни за что не зацепится.

Стоить Thumbkey будет около $136. Появится в течение следующей недели. Пока только в Японии.

via crunchgear
Всего голосов 72: ↑62 и ↓10+52
Комментарии88
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность