Инженер-программист
7 cмертных грехов Slack в большой компании (и как победить их автоматизацией)
Например, вы можете сделать себе бота, который
Алгоритм генерации QR-кода
QR код — это монохромная картинка, на которой некоторые устройства (например смартфон со специальным приложением) распознают текст. Этим текстом может быть не только простая фраза, но и, хоть это и не входит в официальную спецификацию, ссылка, номер телефона или визитная карточка. Такие коды чаще всего используют, чтобы закодировать ссылку и распечатать её на плакате или визитке.
Эта статья — подробная инструкция по созданию QR кода с примерами на каждом шаге, которая требует от вас только базового умения работать с бинарными данными и владения любым языком программирования (если вы хотите создать автоматический генератор QR кода).
За основу этой статьи взят цикл статей «QR Code Demystified» Джейсона Брауна (Jason Brown). В этих статьях опущено много нюансов, что вызвало у меня некоторые проблемы. Все эти нюансы учтены и упомянуты здесь.
Как мы автоматизировали большой интернет-магазин и стали сопоставлять товары автоматически
Статья больше техническая, чем про бизнес, но какие-то итоги с точки зрения бизнеса мы тоже подведем. Больше всего внимания будет уделено автоматическому сопоставлению товаров из разных источников.
Работа интернет-магазина состоит из достаточно большого числа составляющих. И каким бы ни был план, получать прибыль прямо сейчас, или расти и искать инвесторов, или, например, развивать смежные направления, как минимум придется закрывать такие вопросы:
- Работа с поставщиками. Чтобы продать что-то ненужное, нужно сначала купить что-то ненужное.
- Управление каталогом. У кого-то узкая специализация, а кто-то продает сотни тысяч разных товаров.
- Управление розничными ценами. Тут придется учесть и цены поставщиков, и цены конкурентов, и доступные финансовые инструменты.
- Работа со складом. В принципе, можно и не иметь собственного склада, а забирать товар со складов партнеров, но так или иначе вопрос стоит.
- Маркетинг. Тут наполнение сайта контентом, размещение на площадках, реклама (онлайн и офлайн), акции и много чего еще.
- Прием и обработка заказов. Колл-центр, корзина на сайте, заказы через мессенджеры, заказы через площадки и маркетплейсы.
- Доставка.
- Бухгалтерия и прочие внутренние системы.
Магазин, о котором мы будем говорить, не имеет узкой специализации, а предлагает кучу всего от косметики до мини-трактора. Я расскажу, как у нас устроена работа с поставщиками, мониторинг конкурентов, управление каталогом и формирование цен (оптовых и розничных), работа с оптовыми клиентами. Немного затронем тему склада.
Чтобы лучше понимать некоторые технические решения, будет не лишним знать, что в
какой-то момент мы решили, что технологические вещи, если это возможно, будем делать не для себя, а универсальными. И, возможно, после нескольких попыток выйдет развить новый бизнес. Получается, условно, стартап внутри компании.
Так что рассматриваем отдельную систему, более-менее универсальную, с которой интегрирована остальная инфраструктура компании.
Как мы стали создавать карточки товаров автоматически
В своей прошлой статье я рассказал, как мы научились автоматически сопоставлять товары по наименованиям.То есть, понимать, например, что
Гарнитура A4Tech Bloody G501 черныйи
A4 G501, черно(красные) {Наушники с микрофоном, 2.2м}
— это одно и то же. Это дало возможность автоматизировать все, что связано с ценами и наличием. В этой статье я расскажу, как мы пошли дальше и автоматизировали работу с характеристиками и изображениями товаров.
Все меры поддержки бизнеса в связи с коронавирусом
Собрали в одном месте все антикризисные меры поддержки для бизнеса в условиях распространения COVID-19.
Информация актуальна на 29.04.2020.
В посте мы расскажем о налоговых мерах поддержки:
- Перенос сроков сдачи отчётности
- Перенос сроков уплаты налогов и взносов
- Снижение ставок по страховым взносам
- Приостановка взысканий
- Упрощённый порядок получения отсрочки (рассрочки) по уплате налогов.
Жонглируем версиями PHP в системе
Проблема “ хочу новую версию %software% на моем стареньк… стабильном Debian/CentOS…” так же стара, как *nix-мир. Способов добиться желаемого хватает. Есть масса решений как притащить в систему несколько версий одного и того же софта. Но дальше хочется не просто иметь ещё одну версию, но и управлять тем, какая из версий доступна в системе по умолчанию, для конкретных приложений или пользователей.
Что делать, если хочется сменить системную версию PHP на одну из кастомных сборок? Давайте отталкиваться от того, что у вас на сервере уже установлено несколько версий PHP и вы хотите, чтобы в консоли команда php была конкретной версии, отличающаяся от той, что шла с системой. В этой статье я расскажу, как правильно это настроить, чтобы не было проблем с будущими пакетными обновлениями.
Laravel+Docker+Gitlab. С чего начать
Всю работу можно разделить на три части: на локальной машине, на гитлабе и на сервере.
Итак, для реализации проекта нам понадобится аккаунт gitlab и удаленный сервер с виртуализацией KVM или XEN.
Часть 1. Локальная машина
На локальной машине необходимо установить docker.
Яндекс.Диск запретил использование open source утилиты rclone. UPD — снова работает
Предыстория
Привет, Хабр!
К написанию этого поста привела довольно странная ошибка, которую вчера вечером на ноутбуке с Linux (да, я из тех странных людей, кто использует GNU/Linux на ноутбуке) я получил вместо содержимого своего Яндекс.Диска:
$ ls -l /mnt/yadisk
ls: reading directory '.': Input/output error
total 0
Linux. Настройка клавиатуры
Для чего вообще специально настраивать клавиатуру?
Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку...
Почему я захотел изменить свою клавиатуру?
Во-первых, когда я начал использовать vim
как основной редактор, я понял, что не хочу каждый раз тянуться к ESC
. Кроме того, я писал в основном на питоне, поэтому ;
нажимал сильно реже, чем :
, а в vim
разница стала более явной.
Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3
, где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).
Прямой VPN-туннель между двумя компьютерами находящимися за NAT провайдеров с использованием UDP hole punching
Как я сделал абсолютно бесшумный компьютер
Почти три десятилетия я пытаюсь делать мои компьютеры тише. Жидкостное охлаждение собственного изготовления, гидродинамические подшипники с магнитной стабилизацией, акустические демпферы, силиконовые амортизаторы – я использовал всё, что можно представить. И на прошлой неделе я, наконец, сумел построить совершенно бесшумный компьютер. Без лишних слов, знакомьтесь: Streacom DB4. Корпус размером 26 x 26 x 27 см без единого вентилятора. У него вообще нет никаких движущихся частей. Полная тишина, 0 дБ.
Если снять с него верхнюю и четыре боковых стенки (штампованный алюминий, толщина стенки 13 мм), вы увидите минимальную раму и центральную монтажную пластину для материнской платы формата mini-ITX (порты ввода/вывода смотрят вниз, сквозь дно корпуса).
Что не так с Raspberry Pi
Raspberry Pi — невероятно популярное устройство, известное своей доступностью, универсальностью, возможностями и активным сообществом. Легко найти фанатские сайты и статьи, но большинство людей не знают о его слабых местах, пока сами не пострадают от них и не поищут информацию на форумах.
Постараюсь рассказать о некоторых вопросах, с которыми я столкнулся лично, а также о некоторых типичных проблемах, которые чаще всего появятся у людей, ничего не подозревающих об этом. И, наконец, почему я не рекомендую Pi для некоторых приложений, в частности, NAS-услуг, таких как NextCloudPi и Open Media Vault. Надеюсь, это сэкономит мне время, чтобы не повторять всё это на форумах.
Насколько региональные зарплаты разработчиков отличаются от московских, если учесть стоимость жизни
По следам нашего общего обзора зарплат за первое полугодие 2019, продолжаем уточнять отдельные аспекты, либо не вошедшие в обзор, либо затронутые лишь поверхностно. Сегодня более подробно посмотрим на региональные особенности зарплат:
- Узнаем, сколько платят разработчикам, живущим в российских городах-миллионниках и городах поменьше.
- Впервые разберёмся, насколько зарплаты региональных разработчиков отличаются от зарплат московских, если учесть также и стоимость жизни.
Данные по зарплатам мы берём из калькулятора зарплат «Моего круга», в котором пользователи указывают зарплаты, которые получают на руки после вычета всех налогов и могут также смотреть любые другие зарплаты в ИТ.
Разработка мобильного приложения без сервера
Такая ситуация может происходить по разным причинам. Однако, чаще всего на старте разработки, бэкэнд просто не написан и клиент начинает без него. В таком случае начало разработки затягивается на 2-4 месяца.
Иногда сервер просто отключился (упал), иногда не успевает выкатывать нужные методы, иногда есть проблемы с данными и т.п. Все эти проблемы привели нас к написанию небольшого сервиса Mocker, который позволяет подменить реальный бэкэнд.
Я больше не хочу работать, никогда и ни над чем. Но из меня научились выжимать результаты
Дерьмовое утро удалёнщика всегда начинается одинаково. Если детский плач не смог вытащить меня из кровати, то нытье жены сделает это с гарантией. Сумасшедшие девять утра, через час дейли-синк-ап, а за вчера, как всегда, сделано нихрена. Быстро варю кофе и за комп. За пять минут до созвона пулл реквест с кодом энтерпрайзного качества увесисто встал в очередь на билд. Иду курить, но по дороге телефон заорал — я зачем-то установил на него скайп, и теперь работа может добраться до меня где угодно. Курение откладывается, я готовлюсь возмущаться, что мне позвонили раньше положенного. Напялил наушники, принял вызов. Вместо привычной девушки менеджера созвон начал какой-то незнакомый мне чел. «Всем привет, Аня заболела, я буду её замещать». Окей, кому какое дело, с таким же успехом они могли бы прислать нам в качестве менеджера собаку — ничего бы не изменилось.
PHP Composer: фиксим зависимости без боли
Многие из вас наверняка сталкивались с ситуацией, когда в библиотеке или фреймворке, который вы используете, есть баг или нет необходимой функциональности. Предположим, вы даже не поленились и сформировали pull request. Но примут его далеко не сразу, а следующий релиз продукта вообще может произойти через год.
Что же делать, если исправление вам срочно нужно катить в прод? Напрашивается очевидное решение — использовать форк библиотеки или фреймворка. Однако с форками не всё просто. Использовать наследования для переопределения функциональности, которую нужно изменить, не всегда возможно и часто требует больших изменений. На помощь приходят плагины для Composer, которые умеют патчить зависимости.
В этой статье я расскажу подробнее о том, почему форки — это неудобно, а также рассмотрю два плагина для Composer для патчинга зависимостей: чем они отличаются, как ими пользоваться и в чём их преимущества. Если вы сталкивались подобными проблемами или вам просто интересно, добро пожаловать под кат.
Выявляем процессы с дисковой активностью в Linux
В ходе написания статьи обнаружилось, что запись нескольких килобайт данных на файловую систему BTRFS приводит к записи 3 мегабайт реальных данных на диск.
Введение
«Ой, ерунда, ячейки памяти на современных SSD выйдут из строя через десятки лет обычного использования, не стоит об этом беспокоиться, и уж тем более переносить swap, виртуальные машины и папку профиля браузера на HDD» — типичный ответ на вопрос о надежности твердотельных накопителей c гарантированными ≈150 TBW. Если прикинуть, сколько типичное ПО может писать данных, то кажется, что 10-20 ГБ в сутки — уже большая цифра, пусть будет максимум 40 ГБ, куда уж больше. При таких цифрах ответ вполне разумен — нужно 10 лет, чтобы достичь гарантированных значений по количеству перезаписи ячеек, при 40 ГБ записанных данных ежедневно.Однако за 6 лет я пользуюсь уже третьим SSD: у первого вышел из строя контроллер, а второй начал перемещать данные между ячейками несколько раз в день, что оборачивалось 30-секундными задержками в обслуживании записи.
После 7 месяцев использования нового SSD я решил проверить количество записанных данных, как их сообщает сам диск через SMART.
19.7 ТБ.
Всего за 7 месяцев я использовал 13% от гарантированного количества записанных данных, притом, что он настроен в соответствии с рекомендациями по выравниваю разделов и настройке ФС, swap у меня почти не используется, диски виртуальных машин размещены на HDD!
Как собеседовать работодателя?
Надо ли писать код на доске? Надо ли жонглировать бинарными деревьями и знать наизусть все сложности алгоритмов, или просто разговаривать про жизнь и проекты?
Я хотел бы зайти в этой статье с другого конца и обсудить, во-первых, не техническую часть, а, во-вторых, вопросы, которые сам кандидат должен задать интервьюверу.
Советские мечты о будущем, часть 2. Теперь с сепульками
В предыдущей серии: мы составили подборку советской мультипликационной научной фантастики. Собрали комментарии о тех мультфильмах, которые не вошли в первую часть — и рассказываем о них сейчас.
Информация
- В рейтинге
- Не участвует
- Откуда
- Самара, Самарская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность