Как стать автором
Обновить
9
0
Александр Макаров @AlexMcArrow

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

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

MemSess — очередной сервер для работы с сессиями

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

В этой статье будет рассмотрен самописный сервер для работы с сессиями и пример работы с ним на PHP.

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

Галопом по Европам: Легитимные процессы Windows на пальцах

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

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

Читать далее
Всего голосов 64: ↑62 и ↓2+60
Комментарии36

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

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

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на 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@.

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

Пол — это лава: разработка прототипа интерактивной светодиодной игровой платформы

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

Дурная голова рукам покоя не даёт… история началась несколько месяцев назад: я увидел в интернете забавное видео игры в комнате с пиксельным светодиодным полом и решил сделать подобное для своих детей. За эти месяцы я получил массу удовольствия от процесса разработки и даже заразился идеей масштабирования проекта, но обо всём по порядку! Внимание, ниже будет много фото! А в конце статьи есть видео работы.

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

Я написал книгу

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

Я написал книгу и назвал ее "Электрообереги". Она рассказывает про те замечательные устройства в электрощитке, что спасают нас от погибели. Начиная от предохранителей, которые существуют более века, заканчивая новейшими устройствами защиты от дугового пробоя. (Включая АВ, АВДТ, ВДТ, УЗО, РН, УЗИП, СГД и т.д.) Рассказ построен так, чтобы даже блондинке стало ясно как эти устройства устроены и зачем они нужны. Кто давно на меня подписан подобные посты уже видел - книжка представляет собой собранные воедино и причесанные публикации за последние два года. Еще я перерисовал все сторонние иллюстрации и теперь книжка лицензионно чиста - ни один мерзкий копираст не подкопается.

А еще сегодня у меня день рождения. И это хороший повод сделать подарок миру - книжка публикуется под открытой лицензией CC BY-NC-SA, тоесть ее можно распространять совершенно свободно.

Читать далее
Всего голосов 220: ↑219 и ↓1+218
Комментарии51

Настройка Yubikey для ssh в Windows и WSL

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

Когда я стал счастливым обладателем устройства Yubikey 5 nfc и узнал, что при помощи него можно авторизовываться по ssh, я столкнулся с множеством статей про настройку подобной связки на unix-системах… И с полнейшим отсутствием адекватного материала про Windows.
Разобравшись в теме, собрав информацию из многих источников и проверив работоспособность связки на личном опыте, я пишу эту статью для тех, кто решит повторить мой путь.

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

30 фильмов про IT и киберпанк, которые можно пересмотреть на новогодних праздниках

Время на прочтение10 мин
Количество просмотров49K
На новогодних праздниках можно позволить себе отдохнуть и посмотреть старое и новое кино. Фильмы про IT подбирал так, чтобы можно было найти на любой вкус. Ниже список, которым решил с вами поделиться.

Читать дальше →
Всего голосов 62: ↑45 и ↓17+28
Комментарии99

Typeser: 1С-like ERP-конструктор на базе TypeScript

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

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

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

Топ полезных SQL-запросов для PostgreSQL

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

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

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

Эффективная FIFO-обработка для Node.js и Chrome

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

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

В таких нагруженных системах, как коллектор нашего сервиса мониторинга PostgreSQL-серверов, создание и последующая подчистка Garbage Collector'ом подобных избыточных объектов и полей - непозволительная роскошь.

Но если внимательно посмотреть на эту схему, то можно заметить, что сами элементы очереди A, B, C линейно упорядочены. Так нельзя ли использовать в качестве очереди обычный массив с его .push() и .shift()?..

Насколько это будет эффективно, какие грабли встретятся на этом пути, и как их можно обойти - сегодня об этом.

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

Рекомендации по созданию RSS-фидов

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

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

Форматы


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

Вам нужно использовать RSS 2 или Atom. Эти форматы имеют очень широкую поддержку. Среди других популярных форматов более старые стандарты RSS и JSON Feed или Microformats h-feed. Я буду избегать использовать их или менее популярные форматы, потому что их поддержка не так широка.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии1

Автоматизированные бэкапы postgresql

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

Всем привет! Я бы сказал что эта статья cookbok по которому можно создать простое и эффективное решение для создания бэкапов базы данных.

Казалось бы довольно очевидная задача но тем не менее когда я хотел её решить столкнулся с множеством проблем. Готовые бесплатные решения в большинстве своем направленны на управления кластерами или не поддерживаются на ARM-машинах.

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

Узнать как
Всего голосов 8: ↑5 и ↓3+2
Комментарии32

Очередной универсальный интернет каталог средствами реляционной СУБД

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

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

Существует множество подходов к реализации таких требований. Это и nosql решения и механизмы работы с json в реляционных СУБД. До nosql эпохи, решать такие задачи приходилось средствами реляционных БД.

Основная причина по которой реляционные СУБД плохо подходят для решения таких задач это разнообразие характеристик товаров. Набор характеристик к примеру для одежды и смартфонов будет совершенно разный. В самом деле не создавать же для каждой категории товаров отдельную таблицу с со своим набором реквизитов.

По этой причине в большинстве случаев в реляционных БД используется EAV (Entity Attribute Value) модель данных в тех или иных вариациях.

Недостатков у такой модели множество. Чаще всего EAV модель критикуют чрезмерную сложность, так же за то, что по сути схема данных храниться в самих данных.

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

Рискуя навлечь на себя гнев сообщества хочу представить свой вариант реализации каталога. Это не совсем EAV, скорее его по мотивам.

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

Всё описанное далее предполагает использование СУБД Postgresql.

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

За двумя зайцами погонишься — чеклист для HighLoad системы гуглить будешь

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

Эта статья будет полезна, если вы начинаете проект, который может перерасти в HL (HighLoad) или у вас уже есть проект, который имеет высокую нагрузку. Каждый пункт этого чек-листа поможет избежать определенных проблем, возникающих в процессе эксплуатации таких систем. И хотя некоторые пункты могут показаться довольно очевидными, а иные даже лишними, я рекомендую ознакомиться со всем списком, т.к. судя по статьям на хабре, периодически с некоторыми из этих проблем встречаются компании, которые уже обрели некоторую популярность. Дополняя систему каким то компонентом довольно просто забыть о таких вещах, как KeepAlive между двумя сервисами, а процессы изменения и дополнения в IT происходят постоянно.

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

Ознакомиться с чек-листом
Всего голосов 42: ↑42 и ↓0+42
Комментарии12

FSTB – работа с файлами в Node.js без боли

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

Когда я работаю с файлами в Node.js, меня не оставляет мысль, что я пишу очень много однотипного кода. Создание, чтение и запись, перемещение, удаление, обход файлов и подкаталогов, всё это обрастает неимоверным количеством бойлерплейта, который еще усугубляется странными названиями функций модуля fs. Со всем этим можно жить, но меня не оставляла мысль, что можно сделать удобнее. Хотелось, чтобы такие элементарные вещи, как, например, чтение или запись текста (или json) в файл можно было написать в одну строчку.

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

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

Простейший голосовой помощник на Python

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


Для создания голосового помощника не нужно обладать большими знаниями в программировании, главное понимать каким функционалом он должен владеть. Многие компании создают их на первой линии связи с клиентом для удобства, оптимизации рабочих процессов и наилучшей классификации звонков. В данной статье представлена программа, которая может стать основой для Вашего собственного чат-бота, а если точнее – голосового помощника для распознавания голоса и последующего выполнения команд. С ее помощью мы сможем понять принцип работы наиболее часто встречаемых голосовых помощников.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии9

NodeJS: 12 пакетов для продуктивности разработчика

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


Менеджер процессов для продакшна с балансировщиком нагрузки. Обёртки над отладкой и хуками Git, защита express-приложений через HTTP-заголовки, утилита в более чем 180 функциями для работы с датами и другие инструменты, которые сэкономят ваше время. Подборка особенно полезна начинающим разработчикам NodeJS, но может порадовать опытных скептиков.
Добро пожаловать под кат!
Всего голосов 26: ↑18 и ↓8+10
Комментарии11

5 библиотек для Vue.js, без которых мне не обойтись

Время на прочтение10 мин
Количество просмотров31K
Опытные разработчики знают о том, что иногда, пытаясь сэкономить время и решить какие-то задачи своего проекта с помощью пакета, созданного кем-то другим, можно, в итоге, потратить больше времени, чем было сэкономлено. Библиотеки, жёстко регламентирующие реализацию неких механизмов и не позволяющие решать с их помощью необычные задачи, выходящие за рамки того, что кажется правильным их авторам, заставляют нас, буквально сразу же после их установки, жалеть о том, что мы вообще решили их попробовать.



Хотя со мной такое случалось довольно часто, у меня, всё же, есть небольшой список любимых библиотек, которые я использовал во множестве проектов, и которые за долгое время доказали свою крайнюю полезность. Я испытал множество подходов к решению тех задач, которые решают эти библиотеки. На мой выбор повлияло удобство работы с библиотекой, разнообразие её возможностей, хороший внешний вид того, что получается при её применении. В итоге у меня и появился тот список, которым я хочу с вами поделиться.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии26

Flipper Zero — давайте пилить вместе. Приглашаем разработчиков

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3],[4]

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

Огромное спасибо всем, кто поддерживал нас, следил за проектом и принимал участие. Именно на Хабре я опубликовал первый пост с концептами Флиппера, получил первый фидбек, критику и похвалу. Некоторые функции мы добавили во Флиппер именно после фидбека на Хабре. Мы постараемся не обосраться с производством и оправдать ожидания.

Сейчас я полностью уверен, что максимальная открытость и честность — это лучшая стратегия. Вся наша команда верит в open source, и мы считаем, что энтузиасты могут создавать крутые проекты без привлечения инвесторов и контроля со стороны корпораций. Поэтому я предлагаю всем, кому интересен проект, принять участие в разработке.

Под катом описание программы для разработчиков прошивки, железа, десктопных программ и железных модулей.
Читать дальше →
Всего голосов 163: ↑160 и ↓3+157
Комментарии85

Плагин Events для jQuery

Время на прочтение10 мин
Количество просмотров3.6K
Я разработал свободный плагин Events для jQuery. После чего плагин выложил на GitHub.

Назначение плагина, позволить привязывать теги к переменным.

В последствии чего задав новое значение переменной все привязанные теги на странице обновятся.

Простой Пример

У нас имеются теги для отображения данных:

<span class='amount'>0</span>
<span class='cart_cost'>0</span>
<span class='order_cost'>0</span>
<span class='order_cost_tax'>0</span>

Вначале мы привязываем значения HTML тэгов и функций к имени переменной.

jQuery().event('cost', '.amount');
jQuery().event('cost', '.cart_cost');
jQuery().event('cost', '.order_cost');
jQuery().event('cost', '.order_cost_tax',function(){ return this*1.2});
jQuery().event('cost', function(){ console.log('Стоимость продуктов:',this)});

Теперь зададим значение переменной.

jQuery().var('cost',200); 

Одной командой мы разместили во всех привязанных тегах к переменной cost значение 200, а в теге .order_cost_tax разместили значение 240, что на 20% больше чем значение переменной.

Результат:

<span class='amount'>200</span>
<span class='cart_cost'>200</span>
<span class='order_cost'>200</span>
<span class='order_cost_tax'>240</span>
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии50
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Уфа, Башкортостан(Башкирия), Россия
Дата рождения
Зарегистрирован
Активность