Pull to refresh
11
0
Алексей Родионов @rodial

Senior PHP

Send message

Что будет, если выйти из IT?

Level of difficultyEasy
Reading time3 min
Views82K

Размышляя на тему минусов IT, я вспомнил историю моего знакомого Сергея, который работал на позиции Senior Java Developer в одном российском банке. В какой-то момент его настолько припекло, что он решил выйти из IT. «Прощай, немытое айти! Страна рабов, страна господ!», — браво повторял он, когда увольнялся. Как думаете, что из этого вышло?

Читать далее
Total votes 184: ↑125 and ↓59+66
Comments469

Межсервисная авторизация в Авито PaaS

Level of difficultyMedium
Reading time10 min
Views4.4K

Антон Губарев, инженер в Avito PaaS, рассказал, как реализовать межсервисную авторизацию на 2500 сервисов и ничего не сломать.

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

Часы на синусах и косинусах в CSS

Level of difficultyEasy
Reading time7 min
Views7.5K

В этой статье осторожно прикоснёмся к sin() и cos(). Есть и другие функции, в том числе tan(), зачем же останавливаться только на синусе и косинусе? Они идеальны для размещения текста по краю круга. Об этом уже рассказывалось на CSS-Tricks, когда Крис поделился подходом к размещению текста по кругу с миксинами Sass. Это было шесть лет назад [оригинал опубликован 8 марта 2023 года], поэтому поработаем с размещением чисел по-новому.


Вот о чём я говорю:


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

«Не заставляйте меня вводить цифры»: реализуем сложный повтор в мобильном календаре

Level of difficultyEasy
Reading time5 min
Views2.9K

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

Некоторые события в календарной сетке являются регулярными, то есть повторяются с определённой периодичностью. Например, можно отметить в календаре день рождения бабушки, чтобы вовремя её поздравить. Бывают повторы посложнее — скажем, для тренировок в фитнес-клубе, которые проходят каждую среду и пятницу в 19:00. Чтобы не вносить в календарь каждую тренировку по отдельности, есть возможность настроить повторяющееся событие.

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

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

Оранжевый k8s кластер на ладони

Level of difficultyMedium
Reading time5 min
Views5.4K

Сначала у меня появилась Orange Pi Zero 2 W, на пробу. Под планируемые задачи она не подошла, но 4 ядра и 4G памяти и размеры понравилось. Так же понравился Type-C и WiFi из коробки. Потом я вспомнил что давно хотелось just for fun попробовать собрать кубер на одноплатниках, а такой объём памяти и ядер уже даже позволяет идее иметь некоторый смысл. При этом wifi позволяет сделать кластер максимально без проводным, а размер позволяет соорудить кубический куб на ладони. И сегодня идея материализовалась.

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

Использование Postgres и JSONB для хранения товаров, характеристик и цен

Level of difficultyMedium
Reading time17 min
Views11K

Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различные характеристики и цену, зависящую от характеристик. На нашем проекте применяется принцип CQRS: запись осуществляется в Postgres, чтение происходит из OpenSearch, а данные между ними перемещаются по шине, реализованной на Kafka. Такой подход обусловил использование реляционной БД для решения несвойственной ей задачи.

Чтобы увидеть, почему эта задача не нак проста, как кажется с первого взгляда, представим, что в нашем каталоге есть футболки мужские всего с двумя атрибутами: цвет и размер. Мы хотим хранить товар с названием "Футболка Junior Developer", она представлена в синем, красном и зеленом цветах, и каждый цвет доступен в нескольких размерах. Добавляя немного сложности, представим, что цена конкретной футболки также варьируется в зависимости от цвета и размера. Как представить эту сущность в реляционной базе данных, с учетом того, что продавец футболки может в какой-то момент добавить новые атрибуты для своего товара, например, габариты упаковки для отправки (длина, ширина, высота)?

С одной стороны, можно использовать подход: Entity-Attribute-Value. Он позволяет гибко настраивать связи между сущностями, их атрибутами и значениями, сохраняя возможность динамического добавления новых атрибутов сущности. Однако у такого подхода есть свои недостатки. На них останавливаться не буду - в статье: "Замена EAV на JSONB в PostgreSQL" они приведены, также там есть сравнение по производительности и памяти EAV и JSONB.

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments15

Планирование в Go: Часть III — Конкурентность

Level of difficultyEasy
Reading time13 min
Views4.2K

Это третья статья из серии, состоящей из трёх частей, в которой мы рассмотрим механику и семантику планировщика в Go. Эта статья посвящена конкурентности.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments4

Почему HR в России деградирует?

Level of difficultyMedium
Reading time15 min
Views52K

Почему hr в России деградирует?

Мой скромный взгляд на нашу суровую и самобытную hr-реальность. Если вы сталкивались в своей жизни со странными и непонятными решениями от hr-ов, возможно объяснение этому поведению вы найдете в этой статье. 100 лет отставания, которые породили геометрический нонсенс “520°”, копирайтинг простых решений, который уводит нас все дальше от бизнеса. Попытки найти в истории ответ, как нас занесло туда где мы есть. И несколько советов как критически смотреть на HR и оценивать информацию.

Сразу скажу, что название провокационное. НО я приведу несколько аргументов о системе нашего образования и о том, как hr работает в некоторых реальных компаниях, и о том, как создается и развивается русскоязычное «hr-знание» в противовес англоязычному. Уверен многое из этого вы видели сами, что-то можно легко проверить через интернет. Эта статья - просто повод к размышлению, опыт одного человека, который 11 лет проработал в сфере HR, это не абсолютная истина. Но если после прочтения вы зададитесь вопросом: а туда ли идёт наш отечественный hr? Считаю, что я добился своей цели.

Читать далее
Total votes 92: ↑82 and ↓10+72
Comments97

Как крысячить и выжить, или крысы бегут первыми с ИТ-корабля

Level of difficultyEasy
Reading time3 min
Views75K

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

Читать далее
Total votes 105: ↑73 and ↓32+41
Comments140

Вам не нужен для этого JavaScript

Level of difficultyMedium
Reading time11 min
Views27K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи.

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

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →
Total votes 97: ↑95 and ↓2+93
Comments38

CH32V003 первый проект. Мигаем OLED дисплеем и делаем измеритель концентрации CO2

Level of difficultyEasy
Reading time15 min
Views13K

В последнее время разработчики электроники испытывают трудности с поставками электронных компонентов. Одним из решений данной проблемы является переход на "исконно китайскую" элементную базу. Это решение подкупает ценой и доступностью, но пугает плохой документацией и небольшим количеством информации на понятных нам языках. В данной публикации расскажу о любопытном микроконтроллере на ядре RISC-V и сделаю простое первое устройство - датчик концентрации углекислого газа в воздухе/мигалку OLED дисплеем и светодиодом (куда ж без мигалки светодиодом). В репозитории размещен проект для тех, кто захочет воспользоваться данными наработками.

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

Смерть от тысячи микросервисов

Level of difficultyEasy
Reading time10 min
Views76K

Как мы к этому пришли? Как мы стали вместо решения наших задач, тратить кучи денег на решение проблем, которых у нас нет?

Читать далее
Total votes 133: ↑127 and ↓6+121
Comments309

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views94K

Начиная со вчера Роскмонадзор запрещает писать про инструменты для обхода блокировок, и это событие мы отметим очередной статьей про инструменты для обхода блокировок. Ибо не им указывать, на какие темы мне писать или не писать, пусть идут строем нафиг.

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 180: ↑177 and ↓3+174
Comments113

Почему PHP — это моя ошибка

Reading time4 min
Views36K

Почему вы не прошли очередное собеседование? Вы можете прочитать кучу причин, про непрофессионализм, незнание какого-то фреймворка, софт-скилы и т.п. Главная причина - вы не понравились, вы не идеальны с точки зрения собеседующего, как человек вы ему неприятны, вы расходитесь во взглядах на жизнь. И простого подчинения политике компании на словах тут недостаточно. Я утверждаю это на основании моего довольно интересного опыта. У меня 2 стэка - PHP(Laravel и Symfony) и Ruby(Rails). Сравнивая десятки собеседований на эти 2 стэка(да, у меня два разных резюме, об этом ниже), я пришел к очень интересным выводам.

Читать далее
Total votes 168: ↑86 and ↓82+4
Comments338

Обзор NativePHP. Инструмент для создания собственных нативных desktop приложений на Laravel

Level of difficultyMedium
Reading time7 min
Views13K

Привет, коллеги!

В этой статье я сделаю небольшой обзор NativePHP, который появился на последнем Laracon. Что из себя представляет NativePHP? Перед нами фреймворк, который позволяет нам писать нативные десктоп приложения, используя PHP. Приложения кроссплатформенные - можно писать под Mac, Windows и Linux. И все это с использованием нашего любимого PHP с использованием Laravel. Но как обещают разработчики в будущем появятся и другие драйверы.

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments53

PostgreSQL и временные таблицы

Level of difficultyMedium
Reading time9 min
Views28K

Мы много лет уже используем в качестве основной базы данных PostgreSQL. За это время он зарекомендовал себя быстрой и надежной СУБД. Однако, есть в PostgreSQL одна проблема, с которой приходится сталкиваться достаточно часто. К сожалению, реализация логики временных таблиц в нем имеет ряд недостатков, которые отрицательно сказываются на производительности системы.

Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4). 

Наиболее активно временные таблицы используют платформы, в которых разработчик не работает напрямую с базой данных, а таблицы и запросы генерируются непосредственно самой платформой. В частности, к ним относится платформа или ее открытый и бесплатный аналог - платформа lsFusion.

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

Читать далее
Total votes 51: ↑50 and ↓1+49
Comments45

Самодельный электросерф (DIY) | Анти инструкция

Level of difficultyEasy
Reading time6 min
Views18K

"Как это доска с мотором стоит 1 000 000 руб?
Я с батей в гараже сделаю за 100к"

Если после этой мысли Вы начали искать информацию в интернете и набрели на эту статью - открывайте пиво/опрокидывайте стопку/наливайте бокал белого, и поехали.

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

Автоматизация видеонаблюдения

Level of difficultyMedium
Reading time4 min
Views14K

Всем привет! Я работаю не в IT компании системным администратором. В перечень обязанностей входит и администрирование систем видеонаблюдения [мы используем CTV и HiWatch], это обычная ситуация админ должен уметь все и сразу.

Информацией в данной статьей я хочу поделиться в виду того, что потребовалось не мало времени для поиска решения задачи и написания небольшого скрипта. Если у кого будут предложения по иной реализации задач, буду рад ознакомиться.

Мне интересно!
Total votes 11: ↑11 and ↓0+11
Comments31

Больше одноплатников, хороших и разных: новые модели начала лета 2023 года

Reading time4 min
Views15K
sm-aaeon-800-1

Лето только начинается, у многих из нас — период отпуска, а значит, можно заняться DIY-проектами. Собственно, этому и работа не мешает. Производители одноплатных ПК выпустили несколько интересных моделей, которые могут пригодиться для решения многих задач — от любительских до профессиональных. Самые интересные одноплатники начала этого лета — под катом.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments41

Как заставить программистов пахать? 5 неочевидных советов

Level of difficultyEasy
Reading time4 min
Views78K

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

Меня зовут Слава. Я создал и развалил сеть ночных клубов, прошел 300 собеседований на маркетолога, проработал как подрядчик и сотрудник в более 50 компаниях. Сейчас занимаюсь системным маркетингом.

Там, где я работал, были разные системы управления, но всегда работал один и тот же принцип.

Читать далее
Total votes 178: ↑157 and ↓21+136
Comments283
1
23 ...

Information

Rating
Does not participate
Location
Ульяновская обл., Россия
Registered
Activity