Как стать автором
Обновить
9
0
Сергей @yoda_code

Fullstack разработчик

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

Правильная работа с датой и временем

Время на прочтение12 мин
Количество просмотров150K
Практически все проекты сталкиваются с проблемами, вызванными неправильной обработкой и хранением даты и времени. Даже если проект используется в одном часовом поясе, все равно после перехода на зимнее/летнее время можно получить неприятные неожиданности. При этом мало кто озадачивается реализацией правильного механизма со старта, потому что кажется, что с этим проблем быть не может, так как все тривиально. К сожалению, в последствии реальность показывает, что это не так.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии29

Шифрование личных заметок

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


Персональная информация, в том числе пароли и кошельки — это главные секреты каждого человека. Эта информация должна быть максимально зашифрована и надёжно храниться. Раньше проблему решал текстовый файл, где хранились и пароли, и заметки, и который легко было зашифровать. Теперь с появлением кучи устройств проблема усложнилась. Но если с паролями проблема решена благодаря парольным менеджерам, то вот с шифрованием заметок не всё так гладко.

Какой вариант выбрать для безопасного и надёжного шифрования личных заметок, с синхронизацией между устройствами и резервным хранением?
Читать дальше →
Всего голосов 10: ↑9 и ↓1+13
Комментарии18

Что должен знать каждый разработчик о вычислениях на GPU

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

Большинство программистов отлично разбираются в работе процессоров и последовательном программировании, поскольку с самого начала пишут код для CPU. Однако многие из них меньше знают о том, как устроены графические процессоры (GPU) и в чем заключается их уникальность. За последнее десятилетие GPU стали чрезвычайно важны благодаря широкому применению в глубоком обучении, и сегодня каждому разработчику необходимо обладать базовыми знаниями о том, как они работают. Цель этой статьи — дать вам это понимание. 

Читать далее
Всего голосов 37: ↑35 и ↓2+43
Комментарии6

Домашний хостинг сайтов с динамическим IP

Время на прочтение6 мин
Количество просмотров150K
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

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

В то-же время в наличии имеется:

  • Домашний сервер на Ubuntu
  • Быстрый ethernet-интернет от МТС

Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).

Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Читать дальше →
Всего голосов 57: ↑44 и ↓13+31
Комментарии93

Превращаем TV-box в мини-компьютер: установка Linux Armbian на примере X96 Max+ 100W

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

Одноплатные компьютеры своим появлением взяли на себя огромное количество задач и с каждым днём решают всё больше наших проблем. Но многие окружающие нас бытовые устройства являются одноплатными компьютерами с практически с идентичной многим привычным SBC (single board computer) начинкой и телевизионные приставки классический тому пример.

Когда-то я приобрел ТВ приставку X96 Max Plus 100W на Android чтобы потестить ее вдоль и поперек и пришел к тому что классическое ее применение для просмотра мультиков и Android игр мне не интересно.

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

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

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

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →
Всего голосов 204: ↑202 и ↓2+246
Комментарии138

Самое сложное в программировании это…

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


Мне очень понравилась ветка обсуждений на Quora.com: What is the hardest part about learning to program? Все 87 ответов я так и не прочитал, но понравившиеся, выделил в отдельную статью из 10 пунктов. Это вольный пересказ мнений многих разных людей. Если читателям будет интересно, я продолжу.

1. Разница между высокими стандартами и своими низкими умениями


В статье «Никто не говорит об этом новичкам» рассказывается об общей проблеме людей, занятых творческим или интеллектуальным трудом. Программирование — сложный предмет, и обычно за него берутся способные, амбициозные и склонные к перфекционизму люди. На начальном этапе у них не будет хорошо получаться. Привыкшие к высокой планке, они будут расстраиваться. Внутренний голос будет постоянно нашептывать: “У тебя никогда и не получится, лучше оставь это дело”. В такие моменты думайте о том, что ваша самокритичность — это признак вашей экстраординарности, и верьте, что преодолеете этот “неумелый период”.

Что касается необычайных преимуществ программирования, то вот они:
Читать дальше →
Всего голосов 86: ↑83 и ↓3+80
Комментарии140

Команда awk – примеры использования в Linux и Unix

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

В этом базовом руководстве вы узнаете самые основы команды awk, а также увидите некоторые способы её использования при работе с текстом, включая вывод содержимого файла, а также его конкретных столбцов, строк и слов по указанным критериям. Приступим!
Читать дальше →
Всего голосов 39: ↑36 и ↓3+47
Комментарии16

Мы шутили над «опытными пользователями ПК», а ведь они вымирают

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


Пока в Лас-Вегасе проводят киберспортивные турниры по Excel, где сверхлюди уверенно соревнуются в скоростном решении абсурдно сложных рабочих задач при помощи самого универсального офисного софта, весь остальной мир так же уверенно в вопросе офисных задач деградирует. Двадцать лет назад гики и энтузиасты компьютерной техники шутили, что «отбери у современного пользователя компьютерную мышь и он будет беспомощен», и в чем-то они были правы. Когда-то ненавистные многим графические операционные системы «извратили» работу за ПК, превратив ее из ввода-вывода информации с помощью клавиатуры в тыканье курсором мыши по экрану. Нелюбовь к мыши, кстати говоря, через года пронесли многие: есть огромный массив рабочих задач, где использование мыши избыточно. То, что можно было сделать за две секунды, делается мышью минуту.

Но если я скажу вам, что для того, чтобы ввести в ступор молодого пользователя сейчас, ему достаточно открыть на ПК гугл-таблицу? Или даже просто показать персональный компьютер? Отберите у молодого человека смартфон, дайте ему компьютер и наблюдайте за тем, как он впадает в отчаянье. Сейчас та самая Марьивановна из бухгалтерии на фоне людей, выросших со смартфоном в руках, кажется просто гениальным хакером. И это не брюзжание старика про «раньше было лучше». Это реальная проблема, к которой мы не просто летим на сверхзвуке, мы уже в ней по самые уши. Людей, умеющих пользоваться компьютером даже на уровне тыканья курсором мыши по иконкам все меньше и меньше, хотя вычислительной техники вокруг все больше и больше.
Читать дальше →
Всего голосов 256: ↑233 и ↓23+262
Комментарии638

SwayWM — сам себе UnixPorn

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

Всем привет. В этой статье я опишу свой опыт настройки и использования sway — тайлингового оконного менеджера для Linux.

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

Использование journalctl для просмотра и анализа логов: подробный гайд

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


Journalctl — отличный инструмент для анализа логов, обычно один из первых с которым знакомятся начинающие администраторы linux систем. Встроенные возможности ротации, богатые возможности фильтрации и возможность просматривать логи всех systemd unit-сервисов одним инструментом очень удобны и заметно облегчают работу системным администраторам.

Эта статья рассматривает основные возможности утилиты journalctl и различные варианты ее применения. С помощью journalctl можно просматривать логи системы, чтобы решить возникшие проблемы на рабочей станции или сервере использующие дистрибутив linux с демоном инициализации systemd, де-факто уже ставшим стандартом в современных Linux-системах, например: RHEL, CentOS, Fedora, Debian и многих других.

Существует мнение, что systemd не так уж и хорош — он нагружает систему и это все еще предмет для споров на сегодняшний день, но нельзя отрицать, что он предоставляет прекрасный набор инструментов для управления системой и поиска проблем. Представьте, что вам приходится иметь дело с проблемным сервером, который даже не загружается — в таком случае можно загрузиться с live-дистрибутива, смонтировать системный раздел и просмотреть логи systemd, чтобы понять, в чем проблема.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+60
Комментарии25

Микросервисы в представлении среднего разработчика, и как всё на самом деле

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

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

Когда спрашиваю у людей на собесах, или когда в команде решаем, как клепать очередной проект, такое порой слышу, что становится страшновато. Мне кажется, лет через 5 все компании будут обитать в мультивселенной безумия из “микросервисов”, которую они себе радостно построили, уходя от этих ваших страшных “монолитов”.

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

погрузиться в микросервисы
Всего голосов 236: ↑232 и ↓4+260
Комментарии207

Как избежать 10 частых ошибок в настройке NGINX

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


Помогая пользователям NGINX с разрешением проблемных ситуаций, мы поняли, что большинство из них часто совершает одни и те же ошибки конфигурации. Более того, подобные ситуации вполне могут возникнуть даже у самих инженеров NGINX! В этой статье рассмотрим 10 наиболее распространенных ошибок и объясним как их исправить.


  1. Недостаточное количество файловых дескрипторов;
  2. Директива error_log off;
  3. Отсутствие keepalive-соединения с вышестоящими серверами;
  4. Упущение механизмов наследования директив;
  5. Директива proxy_buffering;
  6. Неправильное использование директивы if;
  7. Чрезмерные проверки работоспособности;
  8. Незащищенный доступ к метрикам;
  9. Использование ip_hash, когда весь трафик поступает из одного и того же блока /24 CIDR;
  10. Игнорирование преимуществ вышестоящих групп.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии3

Книга: «Laravel. Полное руководство. 3-е издание»

Время на прочтение19 мин
Количество просмотров8K
image Привет, Хаброжители!

Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро создавать сайты и приложения, отличающиеся чистым удобочитаемым кодом. Третье издание, обновленное с учетом Laravel 10, — это практическое руководство по использованию одного из самых популярных на сегодняшний день веб-фреймворков.

Мэтт Стаффер, известный преподаватель и ведущий разработчик, представляет полный обзор фреймворка и конкретные примеры работы с ним. Опытным PHP-разработчикам книга поможет быстро разобраться с темой, чтобы реализовать проект на Laravel. В обновленном руководстве рассматриваются в том числе совершенно новые инструменты аутентификации и разработки пользовательских интерфейсов, а также ряд сторонних инструментов, появившихся после выхода в свет второго издания.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+20
Комментарии1

Дефицит в IT закончился? Или нет? Что происходит на рынке труда?

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

По данным HeadHunter за первое полугодие 2023 года российские работодатели разместили 71 000 вакансий в сфере «Информационные технологии и телеком». Кажется, что это большая цифра. Но за первые 6 месяцев прошлого года вакансий было на 9% больше. При этом за это же время активными было 480 000 резюме, что на 11% больше, чем в прошлом году в первые полгода.

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

Читать далее
Всего голосов 24: ↑19 и ↓5+15
Комментарии37

Использование таймеров systemd вместо заданий cron

Время на прочтение20 мин
Количество просмотров78K
Сейчас я занимаюсь заменой моих cron-заданий на таймеры systemd. Я пользовался таймерами несколько лет, но обычно в тонкости их применения особо не углублялся, разбираясь лишь с тем, что нужно было для выполнения интересующей меня задачи. Недавно я работал над серией материалов про systemd и узнал о том, что systemd-таймеры обладают некоторыми очень интересными возможностями.



Эти таймеры, как и задания cron, могут, в заданное время, вызывать выполнение различных действий в системе. Например — запуск скриптов командной оболочки или программ. Таймеры могут срабатывать, например, раз в день, причём — только по понедельникам. Ещё один пример — срабатывание таймера каждые 15 минут в рабочее время (с 8 утра до 6 вечера). Но таймеры systemd могут кое-что такое, что недоступно заданиям cron. Например, таймер может вызвать скрипт или программу через заданное время после некоего события. Таким событием может быть загрузка системы или запуск systemd, завершение предыдущей задачи или даже завершение работы сервиса, вызванного ранее по таймеру.
Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии16

Stripe: сервис вашей мечты для автоматизации денежных переводов

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

Имевшие дело с сервисом электронных платежей Stripe знают, что он отлично заточен под разработчиков. Его документация написана людьми для людей; есть хороший тестовый режим — полная копия реального, и для перехода на live-режим нужно только заменить ключи, не трогая API и не получая никаких сюрпризов; админка тестового режима — тоже полная копия боевого. В общем, Stripe — это хорошо, и я хочу посвятить эту статью базовым вопросам интеграции сервиса в e-Commerce-проект, объяснив процессы на конкретных и абстрактных примерах. Надеюсь, что мой опыт поможет всем, кто хочет попробовать Stripe на своём проекте.

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

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

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

В чём принципиальное отличие джуна от мидла, а мидла от сеньора? На какие навыки поднажать, чтобы не задерживаться на одной ступеньке? Эти темы актуальны в ИТ-сообществе всегда. 

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

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

Meilisearch — организация поиска в связке с Laravel

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров4.1K

Hola, Amigos! Меня зовут Евгений Шмулевский, я backend-разработчик на Laravel в агентстве продуктовой разработки Amiga. В статье описываю организацию поиска через Meilisearch и нюансы использования в связке с Laravel.

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

Двойная бухгалтерская запись в реляционной БД

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

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


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


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


Введение


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



Лука Пачоли, автор самой старой (15 век) дошедшей до нас книги с описанием принципов двойной записи


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


Основные правила таковы:

Читать дальше →
Всего голосов 20: ↑17 и ↓3+20
Комментарии54

Информация

В рейтинге
4 606-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
От 200 000 ₽