Размышляя на тему минусов IT, я вспомнил историю моего знакомого Сергея, который работал на позиции Senior Java Developer в одном российском банке. В какой-то момент его настолько припекло, что он решил выйти из IT. «Прощай, немытое айти! Страна рабов, страна господ!», — браво повторял он, когда увольнялся. Как думаете, что из этого вышло?
Senior PHP
Межсервисная авторизация в Авито PaaS
Антон Губарев, инженер в Avito PaaS, рассказал, как реализовать межсервисную авторизацию на 2500 сервисов и ничего не сломать.
Часы на синусах и косинусах в CSS
В этой статье осторожно прикоснёмся к sin()
и cos()
. Есть и другие функции, в том числе tan()
, зачем же останавливаться только на синусе и косинусе? Они идеальны для размещения текста по краю круга. Об этом уже рассказывалось на CSS-Tricks, когда Крис поделился подходом к размещению текста по кругу с миксинами Sass. Это было шесть лет назад [оригинал опубликован 8 марта 2023 года], поэтому поработаем с размещением чисел по-новому.
Вот о чём я говорю:
«Не заставляйте меня вводить цифры»: реализуем сложный повтор в мобильном календаре
Сегодня многие пользуются календарем на мобильном устройстве: приложение своевременно напоминает о рабочих встречах, походах к врачу, днях рождения друзей и в целом помогает чётче следовать своему расписанию.
Некоторые события в календарной сетке являются регулярными, то есть повторяются с определённой периодичностью. Например, можно отметить в календаре день рождения бабушки, чтобы вовремя её поздравить. Бывают повторы посложнее — скажем, для тренировок в фитнес-клубе, которые проходят каждую среду и пятницу в 19:00. Чтобы не вносить в календарь каждую тренировку по отдельности, есть возможность настроить повторяющееся событие.
В ходе создания мобильного календаря для одного из наших продуктов нам требовалось проработать настройки сложного повтора — и сделать их понятными и удобными для пользователя. Под катом рассказываем о том, с какими проблемами мы столкнулись при проработке настроек сложного повтора, как проверили гипотезу с помощью исследования и выбрали в итоге оптимальное решение.
Оранжевый k8s кластер на ладони
Сначала у меня появилась Orange Pi Zero 2 W, на пробу. Под планируемые задачи она не подошла, но 4 ядра и 4G памяти и размеры понравилось. Так же понравился Type-C и WiFi из коробки. Потом я вспомнил что давно хотелось just for fun попробовать собрать кубер на одноплатниках, а такой объём памяти и ядер уже даже позволяет идее иметь некоторый смысл. При этом wifi позволяет сделать кластер максимально без проводным, а размер позволяет соорудить кубический куб на ладони. И сегодня идея материализовалась.
Использование Postgres и JSONB для хранения товаров, характеристик и цен
Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различные характеристики и цену, зависящую от характеристик. На нашем проекте применяется принцип CQRS: запись осуществляется в Postgres, чтение происходит из OpenSearch, а данные между ними перемещаются по шине, реализованной на Kafka. Такой подход обусловил использование реляционной БД для решения несвойственной ей задачи.
Чтобы увидеть, почему эта задача не нак проста, как кажется с первого взгляда, представим, что в нашем каталоге есть футболки мужские всего с двумя атрибутами: цвет и размер. Мы хотим хранить товар с названием "Футболка Junior Developer", она представлена в синем, красном и зеленом цветах, и каждый цвет доступен в нескольких размерах. Добавляя немного сложности, представим, что цена конкретной футболки также варьируется в зависимости от цвета и размера. Как представить эту сущность в реляционной базе данных, с учетом того, что продавец футболки может в какой-то момент добавить новые атрибуты для своего товара, например, габариты упаковки для отправки (длина, ширина, высота)?
С одной стороны, можно использовать подход: Entity-Attribute-Value. Он позволяет гибко настраивать связи между сущностями, их атрибутами и значениями, сохраняя возможность динамического добавления новых атрибутов сущности. Однако у такого подхода есть свои недостатки. На них останавливаться не буду - в статье: "Замена EAV на JSONB в PostgreSQL" они приведены, также там есть сравнение по производительности и памяти EAV и JSONB.
Планирование в Go: Часть III — Конкурентность
Это третья статья из серии, состоящей из трёх частей, в которой мы рассмотрим механику и семантику планировщика в Go. Эта статья посвящена конкурентности.
Почему HR в России деградирует?
Почему hr в России деградирует?
Мой скромный взгляд на нашу суровую и самобытную hr-реальность. Если вы сталкивались в своей жизни со странными и непонятными решениями от hr-ов, возможно объяснение этому поведению вы найдете в этой статье. 100 лет отставания, которые породили геометрический нонсенс “520°”, копирайтинг простых решений, который уводит нас все дальше от бизнеса. Попытки найти в истории ответ, как нас занесло туда где мы есть. И несколько советов как критически смотреть на HR и оценивать информацию.
Сразу скажу, что название провокационное. НО я приведу несколько аргументов о системе нашего образования и о том, как hr работает в некоторых реальных компаниях, и о том, как создается и развивается русскоязычное «hr-знание» в противовес англоязычному. Уверен многое из этого вы видели сами, что-то можно легко проверить через интернет. Эта статья - просто повод к размышлению, опыт одного человека, который 11 лет проработал в сфере HR, это не абсолютная истина. Но если после прочтения вы зададитесь вопросом: а туда ли идёт наш отечественный hr? Считаю, что я добился своей цели.
Как крысячить и выжить, или крысы бегут первыми с ИТ-корабля
Для меня загадка, почему программисты не могут оценить бизнес компании, в которую устраиваются. Почему у них прямо разрыв между тем, что компания должна быть прибыльной ежегодно, и тем, что она ему платит и повышает зарплату из-за этого, чтобы удержать программиста.
Вам не нужен для этого JavaScript
Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю
▍ Правило наименьших полномочий
Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи.
В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.
В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.
Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
CH32V003 первый проект. Мигаем OLED дисплеем и делаем измеритель концентрации CO2
В последнее время разработчики электроники испытывают трудности с поставками электронных компонентов. Одним из решений данной проблемы является переход на "исконно китайскую" элементную базу. Это решение подкупает ценой и доступностью, но пугает плохой документацией и небольшим количеством информации на понятных нам языках. В данной публикации расскажу о любопытном микроконтроллере на ядре RISC-V и сделаю простое первое устройство - датчик концентрации углекислого газа в воздухе/мигалку OLED дисплеем и светодиодом (куда ж без мигалки светодиодом). В репозитории размещен проект для тех, кто захочет воспользоваться данными наработками.
Смерть от тысячи микросервисов
Как мы к этому пришли? Как мы стали вместо решения наших задач, тратить кучи денег на решение проблем, которых у нас нет?
GOST: швейцарский нож для туннелирования и обхода блокировок
Начиная со вчера Роскмонадзор запрещает писать про инструменты для обхода блокировок, и это событие мы отметим очередной статьей про инструменты для обхода блокировок. Ибо не им указывать, на какие темы мне писать или не писать, пусть идут строем нафиг.
Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...
Почему PHP — это моя ошибка
Почему вы не прошли очередное собеседование? Вы можете прочитать кучу причин, про непрофессионализм, незнание какого-то фреймворка, софт-скилы и т.п. Главная причина - вы не понравились, вы не идеальны с точки зрения собеседующего, как человек вы ему неприятны, вы расходитесь во взглядах на жизнь. И простого подчинения политике компании на словах тут недостаточно. Я утверждаю это на основании моего довольно интересного опыта. У меня 2 стэка - PHP(Laravel и Symfony) и Ruby(Rails). Сравнивая десятки собеседований на эти 2 стэка(да, у меня два разных резюме, об этом ниже), я пришел к очень интересным выводам.
Обзор NativePHP. Инструмент для создания собственных нативных desktop приложений на Laravel
Привет, коллеги!
В этой статье я сделаю небольшой обзор NativePHP, который появился на последнем Laracon. Что из себя представляет NativePHP? Перед нами фреймворк, который позволяет нам писать нативные десктоп приложения, используя PHP. Приложения кроссплатформенные - можно писать под Mac, Windows и Linux. И все это с использованием нашего любимого PHP с использованием Laravel. Но как обещают разработчики в будущем появятся и другие драйверы.
PostgreSQL и временные таблицы
Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.
Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4).
Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа 1С или ее открытый и бесплатный аналог - платформа lsFusion.
В этой статье я опишу почему приходится использовать временные таблицы, в чем суть проблемы, и как улучшить производительность путем настроек операционной системы и PostgreSQL.
Самодельный электросерф (DIY) | Анти инструкция
"Как это доска с мотором стоит 1 000 000 руб?
Я с батей в гараже сделаю за 100к"
Если после этой мысли Вы начали искать информацию в интернете и набрели на эту статью - открывайте пиво/опрокидывайте стопку/наливайте бокал белого, и поехали.
Автоматизация видеонаблюдения
Всем привет! Я работаю не в IT компании системным администратором. В перечень обязанностей входит и администрирование систем видеонаблюдения [мы используем CTV и HiWatch], это обычная ситуация админ должен уметь все и сразу.
Информацией в данной статьей я хочу поделиться в виду того, что потребовалось не мало времени для поиска решения задачи и написания небольшого скрипта. Если у кого будут предложения по иной реализации задач, буду рад ознакомиться.
Больше одноплатников, хороших и разных: новые модели начала лета 2023 года
Лето только начинается, у многих из нас — период отпуска, а значит, можно заняться DIY-проектами. Собственно, этому и работа не мешает. Производители одноплатных ПК выпустили несколько интересных моделей, которые могут пригодиться для решения многих задач — от любительских до профессиональных. Самые интересные одноплатники начала этого лета — под катом.
Как заставить программистов пахать? 5 неочевидных советов
Для начало придется забыть слово заставить. Задача помочь сотрудникам полюбить зарабатывать вам деньги.
Меня зовут Слава. Я создал и развалил сеть ночных клубов, прошел 300 собеседований на маркетолога, проработал как подрядчик и сотрудник в более 50 компаниях. Сейчас занимаюсь системным маркетингом.
Там, где я работал, были разные системы управления, но всегда работал один и тот же принцип.
Information
- Rating
- Does not participate
- Location
- Ульяновская обл., Россия
- Registered
- Activity