Как стать автором
Обновить
11
0
Алексей Родионов @rodial

Senior PHP

Отправить сообщение

Мастер-аккаунт Zeekr. Как Arduino поможет Вашему китайскому авто?

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров20K

Что происходит когда у Вас гаджет на колесах с одной стороны, и Вы уже окрыленные тем, что Arduino скетчи Blink и Hello_world у Вас получилось запустить? Правильно, приходит мысль, как это можно соединить.

Читать далее
Всего голосов 25: ↑23 и ↓2+29
Комментарии19

Удаленка. Мой путь к выгоранию (и обратно)

Время на прочтение7 мин
Количество просмотров35K

Привет, Хабр!

Сегодня хочу поговорить о «темной стороне» удаленки. Многие мечтают работать из дома, представляя себе идеальную картинку: уютное рабочее место, гибкий график, отсутствие дресс-кода и начальника над душой. И я не был исключением.

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

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

Поехали!

Читать далее
Всего голосов 58: ↑50 и ↓8+53
Комментарии86

Как составить хорошее резюме и продать себя дорого

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров20K

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

Обсудим важность правильного форматирования и структурирования резюме, а также на что обращают внимание работодатели. Раскроем советы по написанию сопроводительного письма, обсудим его структуру и способы выделить свои профессиональные навыки.

Читать далее
Всего голосов 17: ↑6 и ↓11-2
Комментарии10

Кто реально угрожает C++ (нет, Rust, не ты)

Время на прочтение14 мин
Количество просмотров76K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Всего голосов 220: ↑208 и ↓12+244
Комментарии362

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров84K

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

Читать далее
Всего голосов 159: ↑100 и ↓59+66
Комментарии469

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

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5.1K

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии9

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.1K

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


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


Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

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

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

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

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии27

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.4K

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

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

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров12K

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

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

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

Читать далее
Всего голосов 13: ↑10 и ↓3+9
Комментарии15

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

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров5K

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

Читать далее
Всего голосов 4: ↑3 и ↓1+4
Комментарии4

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

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров53K

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

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

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

Читать далее
Всего голосов 75: ↑65 и ↓10+72
Комментарии97

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров76K

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

Читать далее
Всего голосов 86: ↑54 и ↓32+40
Комментарии140

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров28K

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

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


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

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

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

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

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

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров17K

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

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии20

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

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров77K

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

Читать далее
Всего голосов 105: ↑99 и ↓6+121
Комментарии309

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

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров106K

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

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

Читать далее
Всего голосов 145: ↑142 и ↓3+174
Комментарии113

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

Время на прочтение4 мин
Количество просмотров37K

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

Читать далее
Всего голосов 152: ↑70 и ↓82+4
Комментарии338

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

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+17
Комментарии53

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

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров33K

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

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

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

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

Читать далее
Всего голосов 43: ↑42 и ↓1+49
Комментарии45
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Ульяновская обл., Россия
Зарегистрирован
Активность