Pull to refresh
0
0
Евгений Мязин @meniam

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

Send message

Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках

Level of difficulty Medium
Reading time 12 min
Views 4.9K

Привет! Меня зовут Ваня, последние несколько лет я занимаюсь backend-разработкой в Сравни. Моя команда разрабатывает интеграции с сервисами наших партнёров, код пишем на PHP и Symfony Framework.

При работе с интеграциями мы часто имеем дело со сбоями в сторонних сервисах, и нам очень важна возможность восстановления после таких ошибок. Для решения этой задачи у Symfony есть прекрасный инструмент – нужно только правильно им воспользоваться!

В этой статье я расскажу о том, как в Messenger-компоненте Symfony устроен механизм повторной обработки сообщений при ошибках (или по-простому – механизм ретраев), а также поделюсь опытом его использования и некоторыми важными нюансами его работы.

Читать далее
Total votes 28: ↑28 and ↓0 +28
Comments 0

Отдаем файлы эффективно с помощью PHP

Reading time 3 min
Views 280K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Total votes 132: ↑108 and ↓24 +84
Comments 59

Паттерны проектирования

Reading time 2 min
Views 48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Total votes 47: ↑37 and ↓10 +27
Comments 29

Как сделать из трэкпада MacBook Pro настоящий заменитель Wacom?

Reading time 1 min
Views 10K

10-1 Design отвечает: «Просто!»


Нужно взять программу «Inklet Trackpad Tablet» за $25, желательно докупить «Pogo Stylus» — $15, установить только что купленную программу, и запустить фотошоп!

Программа фактически превращает мультитач-трэкпад Макбука в планшет с поддержкой градаций давления и умеет распознавать отпечаток руки, если вам надоест держать её на весу, также поддерживается распознавание рукописного текста в системе.

Не-ве-рю? :)
Читать дальше →
Total votes 47: ↑40 and ↓7 +33
Comments 42

Воспроизведение видеоконтента на MacOS — Movist

Reading time 2 min
Views 30K
imageПосле миграции на Mac один из вопросов который вызвал небольшие затруднения это выбор проигрывателя для воспроизведения видео контента, в том числе и HD. Если на Windows выбор достаточно большой (хотя в большинстве случаев пользовался GOM Player или Media Player Classic + K-Lite Codec Pack). То на Mac дело ограничивалось вот этими программами:

Читать дальше →
Total votes 61: ↑54 and ↓7 +47
Comments 79

Теперь Google Analytics работает Асинхронно

Reading time 3 min
Views 5.4K
Новый код выглядит вот так:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);

(function() {
 var ga = document.createElement('script');
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
   'http://www') + '.google-analytics.com/ga.js';
 ga.setAttribute('async', 'true');
 document.documentElement.firstChild.appendChild(ga);
})();

Это значит, что гугл.аналитикс больше не замедлит загрузку вашего сайта :)
UPD: То есть, он скачивал свой 24кб ga.js во время загрузки страницы, теперь он это может делать после…
Но после первой загрузки, он обычно закэширован и на всех остальных сайтах используется один и тот же :)

Материалы по теме:
Под катом бонус, код для русских поисковиков
Total votes 85: ↑73 and ↓12 +61
Comments 83

Еще раз о Placeholder'ах

Reading time 1 min
Views 2.3K
Недавно на Хабре проскакивало несколькой статей, в которых описывались различные способы реализации подсказок в полях для ввода (1, 2).
Мне ближе по душе был второй способ, так как его описание заключалось в использовании атрибута placeholder у элементов input.
Но не давало покоя одно «но» — скрипт базировался на замене свойства value у элемента. Мне кажется это не совсем правильным.
Итак, мой «велосипед», базируется на наложении слоя с подсказкой поверх элемента input . Конечно, очевидный минус этого подхода в том, что разрастается DOM-дерево, и затраты времени на создание новых элементов. Но зато значение value остается «чистым».

Проект на гугл-коде http://code.google.com/p/placeholderjs/
Живой пример
Total votes 2: ↑2 and ↓0 +2
Comments 3

iPhone/iPod приложения для автолюбителей

Reading time 1 min
Views 5.7K
Скрестить iPhone/iPod с автомобилем? Легко.
Компания devtoaster разработало приложение REV в реальном времени отображающее скорость, количество оборотов, расход топлива и т.д. Накой Зачем это нужно и как работает — читаем далее.
REV 2.0
Читать дальше →
Total votes 51: ↑38 and ↓13 +25
Comments 67

Разработка дополнений только что стала проще

Reading time 3 min
Views 4.1K
[Developer Hub Logo]С превеликой радостью объявляем, что мы только что запустили Add-on Developer Hub (beta) — всеобъемлющий сборник сведений, где разработчики дополнений могут выяснить, зачем они пожелали бы изготовить дополнение, и как делают дополнения, и управлять списками своих дополнений.

Читать дальше →
Total votes 76: ↑67 and ↓9 +58
Comments 11

Жизнь разработчика (в картинках)

Reading time 1 min
Views 65K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Total votes 884: ↑700 and ↓184 +516
Comments 132

Совет счастливым обладателям жестких дисков

Reading time 2 min
Views 65K
Хабрапривет! Сегодня расскажу о маленькой полезной настройке современных жестких дисков, которая позволяет значительно уменьшить шум от его работы.

image

Для тех, кто не слышал про AAM — добро пожаловать под кат.
Читать дальше →
Total votes 160: ↑132 and ↓28 +104
Comments 118

О том, как я впустую потратил пару штук баксов

Reading time 5 min
Views 2.4K
За три года в своем бизнесе онлайн-коммерции я сделал большое количество ошибок. Сказывалось то, что я не знал у кого спросить и где читать. Все шишки набивал сам. Сегодня поведаю об одной шишкенции, которую набил со своим сайтом и обошлась она мне дороже всех.

Сначала я расскажу, как я облажался и что в итоге получил, а потом, что я из этого извлек.

Первый старт магазина, а точнее первый движок, был Shopcms (в то время avalonshop). Не расписывая все прелести данного движка, скажу, что он тяжел для модификаций. Еще в те далекие годы, даже сделать нормальный дизайн для двига, а потом натянуть его стоило бы нам, по нашим тогдашним меркам, немалых денег. А за три месяц мы поняли, что надо менять дизайн. Да и кроме дизайна, хотелось сделать красивый, удобный сайт.

Вот тут-то и начались повальные ошибки.
Читать дальше →
Total votes 120: ↑81 and ↓39 +42
Comments 108

Вашей фирме (не)нужна социальность

Reading time 3 min
Views 1K
Десять лет назад (кто-то подсказывает: «почти двадцать») на голову фирмам разной масти и толка свалился Интернет. Осмелюсь предположить, что для большей части из них он стал скорее обузой, чем благом. С одной стороны: «у всех уже есть чёртов сайт, что мы хуже, что ли?», с другой: «да нафиг оно надо? We were, так сказать, born in this hole. And we will die in this hole». В конце концов всё как-то устаканилось. У всех появились ужасные сайты-визитки, с ужасными улыбками на лицах гендиректоров, и «новостями» за позапрошлый год. Через некоторое время, когда очки, нанизанные на… скажем, хвост, не помогали, разумный директор средней руки по-своему торжествовал, отечески похлопывая по плечу унылого премиум-айтишника. «Я же говорил, что дурная затея? А ты — «большие возмо-ожности, много новых клие-ентов». Мой клиент — такой же старый бобёр как я (надевая шапку из сородича и кряхтя). Открыл газету, ткнул пальцем, цена низкая? вот и славно, вот и позвонил. Хорошо хоть недорого обошлось...»

Сегодня дела обстоят значительно хуже. Казалось бы, и времена другие, и интернет другой. И коллективное сознание, и магия цифр (в том числе — биржевых)… И тот же бобёр-директор сам исправно сидит в «одноглазниках» и удивляется, как люди за рисованные конфетки-бараночки платят кровные. Но всё только хуже и хуже. Теперь на головы сыпется ещё и «два-с-половиной-ноль» во всей своей красе. С социальным продвижением, человеческим лицом компании и Твиттером, не к ночи упомянутым. И снова бодрые айтишники твердят, что «надо». И вроде вправду — «надо». И секретарша-валечка ногти от безделья отрастила, что чеченские кинжалы (лучше бы блог компании вела, честное слово). Но всё-таки рядом (снова) летает здравое «зачем». Которое мне и хочется подоить.

— Вам правда хочется услышать, что говорят о вашей компании (продукте, сотрудниках) в Калуге? Ну хорошо, в Москве, на Бауманской? И ещё в тысячах разных мест. Причём услышать прилюдно. И как вариант — ответить прилюдно, с опасностью позже уткнуться лицом в услужливо подставленный архив со своим ответом. Хочется?
Читать дальше →
Total votes 76: ↑62 and ↓14 +48
Comments 20

Русскоязычные твиттер сервисы

Reading time 2 min
Views 2.1K
Русскоязычное твиттер сообщество становится всё больше и больше, соответственно появляются и разнообразные сервисы ориентированные на русскоязычную аудиторию.
Большинство из них и так на слуху, но возможно некоторые для вас станут открытием.
Посмотреть уже!
Total votes 76: ↑55 and ↓21 +34
Comments 23

как способ изучения Английского

Reading time 1 min
Views 19K
Многие из читателей хабра регулярно слушают разные подкасты, этот полезный вид времяпрепровождения можно сделать ещё более полезным, если слушать подкасты на английском.

Поделюсь теми, на которые подписан я:

Читать дальше →
Total votes 100: ↑91 and ↓9 +82
Comments 108

Матрицы TN, *VA, S-IPS – наглядное иллюстрированное сравнение углов обзора

Reading time 1 min
Views 134K
Сколько ни читаю статьи и форумы с обсуждением типов матриц в LCD-мониторах, постоянно встречаю крайности вроде: «TN-матрица подходит для любых задач, дорогие PVA, а, тем более, S-IPS, простым смертным не нужны; различий не вижу, углы обзора мне не важны» или так: «нет матриц, кроме S-IPS и нет мониторов, кроме NEC 2690UXi».

И после каждого подобного утверждения разгораются жаркие споры. Примеры: здесь, здесь и здесь.

Однако, всегда лучше один раз увидеть и сделать собственный вывод, чем читать сотни страниц священных войн. Полистав Google-Картинки, я подобрал несколько наглядных иллюстраций. Копирайт на изображения, к сожалению, не соблюден. На фотографиях теоретически может быть разная яркость сравниваемых моделей, поэтому достоверно можно сказать только про те, что представлены в двух ракурсах. Хотя, я надеюсь, что все-таки все кадры сделаны правильно. В любом случае, общее понимание получить можно. Итак, начнем.
Читать дальше →
Total votes 87: ↑84 and ↓3 +81
Comments 82

Вебдванольные сайты и рейтинги на них. Попытка переосмысления

Reading time 3 min
Views 722
Всегда считал себя ретроградом. Не успеваешь продифференцировать рост свечек на торте, а мониторы из чёрно-зелёных стали цветными, затем цветными и плоскими, килобайты сменились теми же числами в мегабайтах, гигабайтах, терабайтах… Где-то вдалеке крах доткомов, и вот уже начали желтеть семейные фотографии первых вебдванольных сайтов. Молодой стандарт вебдванольности, не успев вырасти и остепениться, был признан классикой, незаметно переходя в категорию устаревающего ретро. Самое время остановиться и полистать фотоальбом, вернее, ту его часть, где фигурируют рейтинги.
Читать дальше →
Total votes 60: ↑53 and ↓7 +46
Comments 86

Бизнес, который переживет кризис или новый взгляд на соц. сети

Reading time 9 min
Views 787
Предисловие: Вчера встречался с одним замечательным человеком, который попросил опубликовать его статью.
Цель: оценка и проверка реакции…

image

Читать дальше →
Total votes 107: ↑72 and ↓35 +37
Comments 72

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Registered
Activity