Pull to refresh
0
0
Михаил @MuKPo6

Пользователь

Send message

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Level of difficultyEasy
Reading time4 min
Views22K

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее
Total votes 61: ↑58 and ↓3+55
Comments4

Вдыхайте DIY: Создаем собственную умную вентиляцию для дома

Level of difficultyEasy
Reading time6 min
Views39K


Зачем всё это?


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

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

На стадии ремонта я понимал, что хочу автоматизировано контролировать качество воздуха в квартире, также знал о вероятных проблемах с запотеванием окон. Понимания по производителю будущей приточной вентиляции не было, поэтому заранее в стене было проделано отверстие диаметром 160 мм с запасом под воздуховод диаметром 150 мм, и проведены провода электропитания в предполагаемое место установки приточной вентиляции.
Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments136

Рекомендации по ведению SQL-кода

Level of difficultyEasy
Reading time8 min
Views20K
В этом материале разберем общие рекомендации по ведению SQL-кода на примере СУБД MS SQL (T-SQL). Однако, многие пункты можно также применить и к другим СУБД.
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments382

Онлайн визуализация алгоритмов: жадного, Дейкстры, A* и двунаправленного поиска

Level of difficultyEasy
Reading time3 min
Views8.2K

В прошлых публикациях на Хабре я находил все жилые дома в пешей доступности от входов в метро и МЦК и жилье в 500м от сетевых продуктовых магазинов в Москве.

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

И в этот же день в чате OpenStreetMap RU появляется ссылка на проект honzaap Pathfinding, который визуализирует алгоритмы поиска кратчайшего маршрута и еще делает анимацию по шагам на реальных данных в карте прямо в браузере. Поделюсь с вами примерами визуализаций поиска маршрута для прогулки из Серебряного Бора в Большой театр в Москве.

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

Безотказные очереди в RabbitMQ: Гарантированная доставка сообщений

Level of difficultyMedium
Reading time4 min
Views16K

RabbitMQ - это открытая реализация протокола AMQP (Advanced Message Queuing Protocol), является мощным и гибким брокером сообщений. Он обеспечивает надежное и эффективное взаимодействие между компонентами системы, предоставляя разработчикам инструменты для создания гибких и масштабируемых архитектур.

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

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

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

Откуда брать идеи для пет-проектов

Level of difficultyEasy
Reading time2 min
Views11K

Очень часто при создании пет проекта для обучения я сталкивался с проблемой идеи. Откуда их брать? Постарался собрать весь пак, откуда можно брать идеи для реализации пет проектов. А также где можно проверить свои навыки, самостоятельно изучая новые инструменты и фреймворки.

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments19

Введение в Чистую архитектуру через 6 кругов рефакторинга

Level of difficultyMedium
Reading time15 min
Views43K

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Total votes 19: ↑15 and ↓4+11
Comments4

Как я создал свою первую 2D игру

Reading time2 min
Views2.3K

Привет всем! Я хотел бы поделиться своим небольшим опытом создания простой 2D игры.

Если вы следили за моими предыдущими постами, то знаете, что помимо программирования я увлекаюсь музыкой. И вот, когда я записывал свой альбом в стиле Synthwave, меня посетила идея: "Эта музыка подошла бы для космической игры. Было бы здорово, если бы кто-то использовал ее как фоновую музыку в игре. Подожди-ка, я же умею программировать. Я могу создать такую игру сам и использовать свою музыку для нее." И я начал искать движок на котором можно было бы реализовать мою идею.

Unity я не хотел использовать. Хотелось что то по проще и одном из постов в телеграмме я увидел рекламу движка PointJS. Зашел на сайт, почитал, посмотрел как с ним работать(у автора есть свой ютуб канал с уроками). Выяснилось что у движка есть своя IDE. Мне понравилось и я захотелось поддержать отечественного производителя(автор проекта из России). Короче говоря, я ее купил. И это не реклама!!!

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments10

Аэропоника — это сложно

Level of difficultyEasy
Reading time19 min
Views26K

Аэропоника — перспективный и эффективный способ выращивания растений. Такие выводы я сделал, начитавшись статей. Я только что успешно вырастил на балконе клубнику и полон энтузиазма двигаться дальше. Я берусь за аэропонику. Кажется, что это не сложно, надо, всего лишь, вместо размещения растений в земле, разместить их в каких-нибудь ёмкостях и распылять раствор на корни. Это привело меня к эпопее с клубникой в контейнере (1, 2, 3) и ряду экспериментов с аэропоникой, о которых я ещё не писал. За это время у меня накопился некоторый багаж знаний относительно аэропоники, им я и буду делиться в этом посте.

С аэропоникой не всё так перспективно и радужно, как это часто рисуют в статьях. Я надеюсь, что этот пост немного приземлит начинающих энтузиастов и даст больше понимания решившим ввязаться в эту тему. Несмотря на сложности, я всё ещё верю, что когда-нибудь аэропоника займет прочное место в растениеводстве.

Читать далее
Total votes 130: ↑129 and ↓1+128
Comments59

Event Loop в деталях

Level of difficultyMedium
Reading time7 min
Views48K

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

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()
Total votes 25: ↑22 and ↓3+19
Comments13

Неортодоксальный Eloquent. Часть 1

Level of difficultyMedium
Reading time16 min
Views6.7K

Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.

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

Как и все существующие инструменты, у Eloquent имеются свои нюансы. Как ответственные разработчики, мы всегда должны помнить о том, на что соглашаемся. Если Вы хотите узнать больше об AR и философии её разработки, очень рекомендую статью Шона МакКула.

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments7

Кто такой архитектор ПО и как им стать

Reading time11 min
Views27K

Всем привет! Меня зовут Виктор Василенко, я техлид и Solution-архитектор. Я работал в Яндексе и X5 Group и уже не первый год сотрудничаю с Практикумом. Я делюсь опытом на курсах «Алгоритмы и структуры данных» и «Асинхронное программирование на Python».

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

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

Границы профессии достаточно размытые, и часто это не профессия и должность, а скорее роль. Задачи разнятся: архитектор должен уметь писать код и документировать его для коллег, в то же время он может коммуницировать с бизнесом и заказчиками, выстраивать стратегию развития компании на годы вперед. 

В этой статье я хочу поделиться своим видением роли архитектора ПО и рассказать:

Кто такой архитектор ПО и какие они бывают;

Чем занимается архитектор решений в компаниях разного масштаба;

Чем отличаются инженеры от архитекторов ПО;

Какие обычно задачи стоят перед архитектором ПО;

Конкретно: какие нужны навыки и компетенции;

Как перейти из инженера на позицию архитектора.

Читать далее
Total votes 27: ↑21 and ↓6+15
Comments9

Организация кода в Laravel. Личный опыт

Level of difficultyMedium
Reading time6 min
Views18K

Hola Amigos! На связи Евгений Шмулевский, PHP-разработчик в Amiga. Начал заниматься программированием с 2001 года, привет Basic и Express/Turbo Pascal. Веб-разработкой — с 2011 года, а профессионально в вебе с 2013 года. Работал продолжительное время с Битрикс, а с 2018 начал осваивать Laravel. 

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

Как разработчику выучить английский язык до высокого уровня для релокации (и не только)?

Level of difficultyEasy
Reading time5 min
Views35K

Всем привет! Сегодня, я хочу поделиться с вами своим личным опытом изучения английского языка с нуля. Данная статья будет полезна как людям только начинающим свой путь в мир прекрасного английского, так и уже погруженным с головой в изучение языка. В данной статье, я расскажу вам о базовых, но крайне полезных, принципах процесса обучения из своего личного опыта. Мой личный опыт был не самым простым, так как интенсивно изучать английский язык я начал в возрасте в 16ти лет, а не с раннего детства, как многие, сменив на своем пути порядка 5ти репетиторов. Однако, уже в 23 года, я смог получить диплом Магистра международных отношений и европейской политики на английском языке в одном из престижных вузов Европы.

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

Грамматика - это важно, однако, нет никакого смысла сидеть над ней часами, заучивая структуры каждого времени. Переходить к изучении грамматики стоит чуть позже, на уровне А2-B1, когда вы уже начнете обладать достаточным уровнем словарного запаса. И опять же, не нужно пытаться заучить все наизусть. Постарайтесь понять суть каждого из времен, а дальше с практикой вы поймете как данные связки начнут воспроизводиться вашим мозгом сами по себе.

Читать далее
Total votes 16: ↑10 and ↓6+4
Comments38

Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 4

Level of difficultyMedium
Reading time6 min
Views4K

В прошлой части мы рассмотрели двухкубитные гейты и построили какие то элементарные программы на двухкубитных гейтах.
Разберем некоторые полезные программы, которые состоят из двух или более разъединенных удаленных друг от друга частей, связанных между собой только предварительно запутанными кубитами и классическими средствами связи: телефоном, телеграфом, бумажным письмом и т.п. Например, один запутанный кубит отправляется на Луну, другой остается на Земле. Основной результат действия таких программ заключается в том, что предварительно запутанные кубиты, разделенные расстоянием, участвуют во взаимодействии с другими независимыми кубитами (взятыми уже на месте - на Луне и Земле), запутывая их в свою очередь, что в итоге такого взаимодействия получается общая связанная запутанная система, несмотря на разделенность расстоянием.

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

Чтение на выходные: «Дизайн-мышление: от разработки новых продуктов до проектирования бизнес-моделей» Тима Брауна

Level of difficultyEasy
Reading time3 min
Views1.4K

Тим Браун — CEO и президент американской дизайн-компании IDEO. Промышленный дизайнер по профессии и британец по происхождению. Работами Тима восхищаются в топовых галереях, а некоторые вещи, вышедшие из-под его пера, могут быть даже у вас дома. Например, детская щетка Oral-B и компьютерная мышь Apple с дизайном от его студии. Многие знают Тима по лекциям на TED или читают его блог о дизайн-мышлении. Круто, что автор открыт не только новаторским идеям, но и своей аудитории. Рекомендуем включить свои внутренние приемники и настроиться на дизайн-волну.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

Как и зачем составлять чек-листы при разработке проекта? Делюсь бесплатными шаблонами чек-листов

Level of difficultyEasy
Reading time6 min
Views14K

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

Чек-лист (англ. checklist) — структурированный список задач, элементов, свойств, факторов, полезный инструмент, помогающий упростить и упорядочить работу. Перекочевало оно в русский язык, конечно же, из английского.

Всем привет, я — Саша Комбаров, исполнительный директор в веб-студии. Мы любим браться за сложные, нестандартные проекты. Чтобы разработать продукт высокого качества мы составляем чек-листы на каждый этап разработки. Решили рассказать, как именно это делаем и что это дает. А в конце материала делюсь красивыми чек-листами.

Как составить чек-лист?
Total votes 9: ↑7 and ↓2+5
Comments12

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

Reading time12 min
Views5.3K

Разобрали, в чём особенность синдрома самозванца на удалёнке: рассказали, почему мемы — хорошая новость и во всём виновато общество, причём здесь первобытные предки, какие у самозванца признаки в теле и голове. А в конце поделились практиками и советами, чтобы подружиться с самозванцем внутри себя.

Читать далее
Total votes 14: ↑9 and ↓5+4
Comments3

Эффект наблюдателя. Сознание влияет на исход эксперимента?

Level of difficultyEasy
Reading time13 min
Views39K

Эффект наблюдателя является краеугольным камнем квантового мистицизма – популярного нынче направления эзотерики, маскирующегося под науку и распространяющего искажённые интерпретации квантовой механики. Он покушается на святое – принцип реализма, согласно которому существует объективная, независимая от сознания наблюдателя реальность. Поэтому его очень любят философы-идеалисты, экстрасенсы, мистики и представители культуры нью-эйдж. Ведь было бы так замечательно, если бы наука экспериментальным путём доказала способность человека влиять на вещественный мир силой мысли! Это сильно воодушевляет тех, кто верит в нематериальную природу сознания, управление реальностью, «секрет притяжения», телекинез и прочую магию. Ссылки на теоретическую физику придают их словам больше убедительности. Мол, официальная наука признала, что каждый из нас своими мыслями создаёт окружающую действительность. Вот только сами физики почти единогласно открещиваются от такой трактовки и наотрез отказываются признавать первичность сознания по отношению к материи. Почему же эффект наблюдателя вызывает столько противоречий: из-за его неверного понимания некоторыми популяризаторами или по причине нежелания учёных-материалистов отказываться от старой парадигмы? Давайте разберёмся.

Читать далее
Total votes 61: ↑56 and ↓5+51
Comments202

Information

Rating
Does not participate
Location
Одинцово, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead
Git
Linux
OOP
PHP
MySQL