Pull to refresh
13
0
Enjoys @DeadLy

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

Send message

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

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


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

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

Reading time8 min
Views33K

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

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

Узнать больше о Git hooks
Total votes 13: ↑13 and ↓0+13
Comments23

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

Reading time6 min
Views23K

О чем речь 


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

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

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


Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments7

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

Reading time18 min
Views304K
Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

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

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

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

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

Reading time12 min
Views104K

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

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

Reading time7 min
Views23K

Предисловие


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

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

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

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

Reading time4 min
Views158K


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

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

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

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

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

Reading time32 min
Views487K

image


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


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


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

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


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

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

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments98

Хочу как у YouTube

Reading time11 min
Views39K

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


Хочу как у YouTube
Читать дальше →
Total votes 44: ↑33 and ↓11+22
Comments61

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

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

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

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

Reading time2 min
Views44K
Здравствуйте.

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

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

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

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

Reading time4 min
Views275K


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

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

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

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

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

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

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

Узнать, почему будет как минимум 24 дистрибутива
Total votes 51: ↑40 and ↓11+29
Comments110

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

Reading time1 min
Views1.3K
наверное, гугл постепенно претворяет планы по выпиливаю Блокнота в жизнь…

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

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

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

image

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

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

Reading time2 min
Views1.9K

qTip





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

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

Читать дальше
Total votes 96: ↑76 and ↓20+56
Comments30

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

Reading time4 min
Views583
Недавно я написал скрипт конвертирования Mysql базы из одной кодировки в другую. После, я решил переписать скрипт, создав класс. Теперь можно подключать эту библиотеку в своих скриптах. Использование данного класса показано ниже.
Читать дальше →
Total votes 26: ↑17 and ↓9+8
Comments32

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

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

ЗАДАЧКИ ПОД КАТОМ
Total votes 81: ↑69 and ↓12+57
Comments56

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

Reading time1 min
Views751
Как реализовать эффект мокрого пола?

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

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

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

Решение: PHP + GD
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments27

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

Reading time2 min
Views107K
Существует много причин использования таких сервисов, чаще всего или элементарная забывчивость или хакинг.

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

Читать дальше →
Total votes 36: ↑28 and ↓8+20
Comments8

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

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


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

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

via crunchgear
Total votes 72: ↑62 and ↓10+52
Comments88
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity