Search
Write a publication
Pull to refresh
60
0

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

Send message

Дифференциальные и инкрементальные бэкапы MySQL

Reading time7 min
Views18K

Для MySQL существует широко известный инструмент по созданию резервных копий баз данных — mysqldump, который создаёт дамп посредством записи серии SQL-инструкций для восстановления таблиц и данных целевой базы данных.

Он неплохо подходит для резервного копирования небольших баз данных, но когда база данных набирает приличный «вес» и возникает необходимость резервного копирования чаще, чем раз в сутки, скорость создания и размеры дампов могут стать проблемой. В данном случае на помощь приходят утилиты, создающие копию бинарных файлов баз данных, например, такие как Percona XtraBackup.
Читать дальше →

13 заметок о 3D-печати, после 3 лет владения 3D-принтером

Reading time13 min
Views56K

Эта статья будет, прежде всего, интересна как тем, кто сталкивался непосредственно с 3D печатью, то есть является владельцем 3D-принтера, но также и тем, кто только собирается влиться в ряды 3D-печатников и раздумывает о покупке своего принтера.

В рамках этой статьи я хочу изложить свои наблюдения, как непосредственного владельца 3D-принтера, в течение более чем 3 лет.
Читать дальше →

Практический разбор истории звука Apple II и Mockingboard

Reading time8 min
Views3.5K

Свой очередной ретро-проект я решил посвятить исправлению одного из наиболее слабых мест излюбленного мной Apple ][+: его аудио. Так что предлагаю вместе разобраться с AY-3 и углубится в сопутствующие детали!
Читать дальше →

Лезем в сорцы компилятора — как работает goscheduler (Часть II)

Reading time16 min
Views8.1K

Чтение рекомендуется начать с первой части, в которой мы терзаем ОС нереальным количеством потоков, смотрим, что из этого вышло, и видим, что согласованность — это не обязательно многопоточность.
Читать дальше →

Старый фотик + bash = таймлапс

Reading time9 min
Views29K

Думаю у многих из нас, в шкафу пылился старый зеркальный фотоаппарат, типа Canon EOS 400D. Он как чемодан без ручки: выбросить жалко, продать смысла нет, и использовать вряд ли будешь. Достал его так одним вечером, и подумал: вещь хорошая и вполне годная для всяких опытов. И сразу загорелся применить его во всяких своих самоделках. А что, весьма хорошо фотографирует из коробки, достаточно широкий спектр всяких регулировок, осталось только научиться с ним работать. Всего-то подружить его с компьютером, да Linux, и дело в шляпе! В результате у нас получается просто непаханое поле для фотографических экспериментов и применения в своих придумках. Давайте же поглядим, как это можно сделать и что получилось из таких экспериментов.
Читать дальше →

Справедливость — главное неизвестное экономической теории (почему равенство имеет значение)

Reading time15 min
Views13K
Чувство справедливости — фундаментальный фактор экономических отношений. Традиционно экономическими понятиями считаются числа, формулы и узко рыночные термины. То есть, абстрактные категории — притом, что экономика как сфера отношений противоположна абстракции. Экономические отношения — это категория социальных отношений. Побуждения людей участвовать в экономических отношениях восходит к чувствам, их поведение регулируется на эмоциональном уровне.

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

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

Greed is not good
Читать дальше →

Вакуумное напыление «на коленке»

Reading time12 min
Views35K

Вакуумное напыление (англ. physical vapor deposition, PVD; напыление конденсацией из паровой (газовой) фазы) — группа методов напыления покрытий (тонких плёнок) в вакууме, при которых покрытие получается путём прямой конденсации пара наносимого материала.

Различают следующие стадии вакуумного напыления:

  1. Создание газа (пара) из частиц, составляющих напыление.
  2. Транспорт пара к подложке.
  3. Конденсация пара на подложке и формирование покрытия.

К группе методов вакуумного напыления относятся перечисленные ниже технологии, а также реактивные варианты этих процессов.
Читать дальше →

Как сделать себе карьеру, помогая людям

Reading time21 min
Views6.7K
На прошлой неделе в наших соцсетях выступил Иван Роганов, специалист по разработке ПО и решению неординарных проблем, а также автор статей в нашем блоге.

Иван окончил Московский Государственный университет Экономики Статистики и Информатики в 2008 году по специальности Инженер-программист.

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

Делимся с вами расшифровкой эфира и записью.

Читать дальше →

Прокачиваем силу — Rust и Windows API

Reading time10 min
Views19K


Недавно я написал статью Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад. В статье рассказывается о том, как изучать ассемблер на примере игрушки 2048. Возможно для целей самой статьи игрушка была подходящая, но конечный результат меня немного удручил. Бинарник размером в 10 килобайт, который потребляет 2 мегабайта памяти, из-за неправильно слинкованной библиотеки резал глаза.

Посему я задался вопросом, а как это можно было бы сделать правильнее? Наверняка есть намного более удачное решение. (И организовал ещё один конкурс с призами в конце статьи)

А почему бы не сделать на Rust, и правильно прикрученных библиотеках? При этом, если вы знаете, что делаете, то вы можете запросто уменьшить количество потребляемой оперативной памяти, но при этом написать визуальную игрушку с использованием Windows API.

Причём это не значит, что вы будете использовать какую-то нестандартную библиотеку. Встречайте — windows-rs, проект поддерживаемый Microsoft. Ваш билет в мир Windows, если вы пишете на Rust.
Читать дальше →

Бандлинг всего того, что не относится к обычному JavaScript-коду

Reading time8 min
Views5.9K
Предположим, вы работаете над веб-приложением. В таком случае весьма вероятно то, что вам приходится иметь дело не только с JavaScript-модулями, но и с самыми разными другими ресурсами. Это и веб-воркеры (их тоже пишут на JavaScript, но они обособлены от обычного кода фронтенда), и изображения, и стили, и шрифты, и WebAssembly-модули, и иные материалы, входящие в состав сайта.

Ссылки на некоторые из подобных ресурсов можно включить непосредственно в HTML-код, но часто они логически связаны с компонентами, используемыми во многих местах проектов. Например, таблица стилей для особого выпадающего списка связана с JavaScript-кодом, реализующим этот список, а изображения иконок связаны с компонентом, реализующим панель инструментов. Точно так же WebAssembly-модуль связан с JavaScript-кодом, обеспечивающим использование этого модуля. Удобнее было бы обращаться к подобным ресурсам прямо из соответствующих JavaScript-модулей и загружать их динамически тогда (или если), когда загружается соответствующий компонент.


Ресурсы разных типов, импортируемые в JS-коде

Правда, в большинстве крупных проектов используются системы для сборки таких проектов, которые выполняют дополнительные оптимизации и реорганизации контента. Например — это бандлинг и минификация ресурсов. Они не могут выполнять код и предсказывать то, каким будет результат его запуска. Они не могут и анализировать все строковые литералы в JavaScript-программах и делать предположения касательно того, является ли конкретная строка неким URL, ведущим к какому-то ресурсу, или нет. Как сделать так, чтобы бандлеры «видели» бы динамические ресурсы, загружаемые JavaScript-компонентами и включали бы их в сборку проекта?
Читать дальше →

Severed Steel: в поисках идеального экшена

Reading time7 min
Views7.7K

Игровую индустрию вот уже три десятилетия невозможно представить без кинематографичности. Пока одни разработчики делают игры ради игр, где геймплей просто работает (от “Марио” до “Цивилизации”), другие пытаются превратить свои произведения в интерактивное (или не очень) кино. Это направление можно разделить ещё на два: кто-то ограничивается роликами и катсценами с щедрой щепоткой QTE, а другие затачивают, “чтобы как в кино” сам геймплей. Max Payne, Call of Duty, FEAR — все они, так или иначе, отсылают нас к впечатлениям от любимых произведений кинематографа, или в случае с Devil May Cry, аниме (получается, это “анимеграфичность”?). Но как далеко можно зайти, если ваш источник вдохновения — лучшие экшен-сцены “Матрицы”?

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

Переход с iptables на nftables. Краткий справочник

Reading time18 min
Views161K
image

В Debian теперь нет iptables. Во всяком случае, по умолчанию.

Узнал я об этом, когда на Debian 11 ввёл команду iptables и получил “command not found”. Сильно удивился и стал читать документацию. Оказалось, теперь нужно использовать nftables.

Хорошие новости: одна утилита nft заменяет четыре прежних — iptables, ip6tables, ebtables и arptables.

Плохие новости: документация (man nft) содержит больше 3 тысяч строк.

Чтобы вам не пришлось всё это читать, я написал небольшое руководство по переходу с iptables на nftables. Точнее, краткое практическое пособие по основам nftables. Без углубления в теорию и сложные места. С примерами.
Читать дальше →

Интернет-бизнес больше не друг пользователя: как адаптироваться к реальности позолоченного века интернета

Reading time10 min
Views12K
Золотой и позолоченный век интернета. Золотой век интернета — когда новые сервисы постоянно росли в количестве и размерах, встречая пользователя, где он был, находя, угадывая и удовлетворяя его потребности, или даже создавая их, но чутко реагируя на обратную связь в процессе таким образом, что пользователь сам был рад обнаружить у себя новую потребность в том, что может предложить революционная эпоха появления персональных гаджетов и интернета — закончен. Ландшафт интернет-рынка полностью оформился, границы интернет-вселенной определены, и новые чудесные открытия в ней уже не происходят с той же регулярностью и быстротой, что в 2000–2010 годах. Начался позолоченный век — все возможности, открытые и созданные в золотой век, ещё здесь и продолжают радовать ту часть человечества, которой они доступны. Но отношения пользователей и бизнесов поменялись кардинально.

Развитие отношений интернет-бизнеса и пользователей чем-то напоминают сказку о золотой рыбке

Если в золотой век интернета бизнесы открывали для себя пользователей, искали и создавали для них потребности, которые они могли удовлетворить, в процессе окружая пользователей таким чутким вниманием, что казались им лучшими друзьями и, одновременно, безропотными и верными слугами, на которых достаточно лишь строго посмотреть — и они тут же, немедленно, не по принуждению, а из собственной охоты исправят user experience на более лучший, то в позолоченный век ситуация совершенно другая: бизнесы со всех сторон окружили пользователя своими возможностями, со всех сторон облепили их гаджетами, составили общую карту потребностей от рабочих до развлекательных — и предлагают удовлетворяющие их услуги под любое настроение для любой погоды 24/7 круглый год.
Читать дальше →

Разрезать металл — воздухом? Почему бы и нет…

Reading time7 min
Views23K

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

Коммуникатор судного дня «Armachat» LoRa

Reading time8 min
Views25K
Технология LoRa отлично подходит не только для сбора информации с удалённых датчиков. Её можно использовать как основу системы для обмена сообщениями. Именно такую систему я воплотил в жизнь в виде персонального коммуникатора Armachat. Для меня это самый настоящий учебный проект, на котором я оттачивал навыки создания печатных плат с беспроводными модулями и графическими дисплеями. Устройство питается от аккумулятора, оно представляет собой нечто вроде высокотехнологичной портативной рации, поддерживающей обмен текстовыми сообщениями. При этом для сборки этой рации нужно сравнительно мало компонентов — всего около 25.

Для этого проекта я, чтобы удобнее было выполнять паяльные работы, выбрал микроконтроллер SAMD21E18 в корпусе TQFP32 (того же размера, что и популярный контроллер ATmega328). Правда, к сожалению, этот микроконтроллер продаётся пустым. Для того чтобы прошить в него загрузчик, необходимо специальное устройство — Atmel-ICE. Прошивка загрузчика оказалась самой сложной частью проекта. А в остальном тому, кто решит воспроизвести мой проект, никаких специальных инструментов не понадобится. Всё, что нужно, собрано на плате коммуникатора. А на передней панели, что необязательно, можно разместить подсветку клавиатуры.

image

Сначала я назвал моё устройство «Armageddon communicator» (отсюда и его теперешнее название — «Armachat»), но я не думаю, что оно способно пережить какую-нибудь воображаемую всемирную катастрофу.
Читать дальше →

Апскейл, который смог

Reading time15 min
Views78K
Термин «апскейл» используется для обозначения процесса увеличения разрешения цифровых изображений с фокусом на создание иллюзии «настоящего» высокого разрешения. Правда, 90% таких продуктов — это барахло, больше намёк на перспективы, чем волшебство. Недавно мои ручки добрались до двух алгоритмов повышения чёткости, которые оказались настолько хороши, что появилась эта статья. Будут субъективные и объективные тесты алгоритма Real-ESRGAN для увеличения разрешения и алгоритма GFPGAN для детализации лиц.
Traffic_Warning: в статье демонстрируется множество примеров.
Читать дальше →

Принцип работы планировщика задач в Linux

Reading time5 min
Views32K

Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Читать дальше →

Пишем драйвер виртуального EEPROM для STM32F030

Reading time15 min
Views14K

Кто хотел сохранять какие-либо данные в FLASH микроконтроллера во время работы устройства сталкивались с особенностями работы с этим видом памяти. Из-за необходимости стирания страницы большого объёма для перезаписи ячейки FLASH памяти, возникает угроза потери данных из-за отключения питания во время процесса обновления (один из вариантов). В этой статье я расскажу как можно упростить работу с FLASH, да и ещё с гарантией сохранения данных при прерывании процедуры обновления на любом этапе. Реализуем это на STM32F030.
Читать дальше →

Разгадываем ребус вторичных часов «Воронеж»

Reading time12 min
Views13K

В предыдущей статье я затеял создание контроллера вторичных часов «Воронеж», и даже добился некоторой работоспособности. Однако так и не разгадал окончательно ребус формы и длительности передаваемого сигнала. На ту публикацию откликнулось большое количество людей, и предложило свою помощь. Кто-то помогал советом, кто-то снял живые осциллограммы с различных первичных часов, кто просто помог добрым словом и оказал поддержку. В результате понял, что нельзя бросить это устройство в стадии недоделки, потому что за ним следит такое количество людей. Поэтому было принято волевое решение довести всё до конца, при этом с максимальным качеством, доступным в домашних условиях. Главный девиз этой разработки был:
Делай хорошо — плохо само получится.
В результате на вторую часть я потратил в полтора-два раза больше времени, чем на первую: причёсывал код, занимался механикой, чертил детали корпуса, печатал их на принтере, точил на токарном станке, а главное, страдал от перфекционизма. Как обычно бывает, механическая часть съела чуть ли не 40% всего времени. В общем, поехали, будет интересно: от идеи до законченного устройства.
Читать дальше →

База данных на SharedPreferences — Android Kotlin

Reading time7 min
Views18K
image

Для хранения большого количества информации в Android используется DataBase (SQLite, FireBase и т. п.), а для простого хранения настроек — SharedPreferences. Вопрос, можно ли использовать SharedPreferences как своего рода Базу Данных и как это сделать?
Статья написана об учебном проекте, повторять такое на проде нельзя, как минимум это небезопасно. Намеренно используется не самая лучшая реализация тех или иных вещей, чтобы можно было подискутировать в комментариях.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity