Делайте бекапы

Пост из разряда типовых.

«Люди делятся на две группы — на тех, кто не делает бекапы, и на тех, кто теперь делает». И опять это работает не очень долго.

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

Моему SSD в ноуте идёт четвёртый год. По SMART он вроде бы ещё огурчик и ничего с ним не происходило. Однако, пару часов назад рабочая система на ноуте на минуту подвисла, после чего отрапортовала, что что-то пошло не так и корневой раздел перемонтирован в read-only. Я быстро загрузился с live-образа убунты и начал смотреть, что к чему, убедился, что что-то на харде действительно пошло не так, прогнал fsck, починил все косяки. Однако, паранойик во мне решил, что вот уж теперь точно настал момент сделать первый бекап всего. (Всего — это слишком круто. Для начала я решил слить всё жизненно важное — конфиги, документы, проекты и портфолио). mc говорит, что на копирование уйдёт ещё минут 40. Если брать вообще все файлы из хомяка — выйдет задачка часов на 30 при условии копирования на мой домашний сервер.

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

UPD: Действительно, SSD всё-таки стареет. Параметр SSD_Life_Left сдвинулся на один пункт ближе к печальке. В результате сбоя немного пострадал initramfs-tools, но вроде сейчас всё в норме, конфигурационные файлы восстановил из репозитория.

rssh, или Как разрешить SCP, но запретить SSH

Вполне адекватная ситуация: у вас есть удалённая Linux-машина с доступом по SSH, и вам срочно нужно дать кому-то из знакомых возможность загрузить на эту машину файл. Разумеется, нам абсолютно лениво разворачивать ради этого FTP-сервер. Да и зачем, когда есть SCP?

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

Выход вроде как всплывает: надо заменить пользователю shell по умолчанию (/bin/sh) на что-нибудь другое. Вот только что?

Подробнее

Мой Linux орёт на меня! (+ решение проблемы)

Да, не самая приятная история, связанная с особенностями Pulseaudio. Но хорошо всё то, что хорошо кончается (или разрешимо для этого).

Проблема

Сижу я за работой, в фоне тихонько играет музыка. В какой-то момент отлаживаемое приложение подвисает, я пытаюсь отключить его соответствующей кнопкой окна. Разумеется, без ответа. Но кеды умные — подождут несколько секунд, а потом выплюнут окошко с вопросом «Приложение не отвечает на SIGTERM, прикончить его SIGKILL?». Окошко выплёвывается с характерным системным звуком.

И вот, кнопка завершения нажата, ждём эффекта. Тут из 40-ваттной акустики, подключенной к ноуту, раздаётся громкое «БР-Р-ЯМЦ», разрушая гармонию и покой одиночества в небольшой квартире, попутно заставив проснуться соседей. Ах да, это системный звук. С непривычки откладвается груда кирпичей, проклинается всё на свете и окошко закрывается.

Но как же так? Я же ставил Master volume в 20%, оно не могло издать такой громкий звук?

Смотрим в трей и видим, что Master volume теперь не 20%, а 100%. Чудеса!

Повторные эксперименты показывают, что Master volume действительно выкручивается в максимум в момент проигрывания системного звука.

Подробнее

Toony Mugs, или Как разрисовать кружку и не сгореть от стыда

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

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

Очередным вечером мне вдруг надоело это бездействие. Я взял самую простую маленькую стеклянную чашку из сервиза и на ночь глядя попытался перевести на неё один из пони-артов товарища up1ter (кстати, если ты это читаешь — огромное спасибо за проделанную работу! Когда будет возможность — постараюсь подбодрить донатом :3). К сожалению, получилось так себе, но, думаю, скоро повторю попытку (фотография, тем не менее, лежит внизу).

Реакцией Богдана на эту кружку была вот эта замечательная мордаха:

В общем, глядя на это, я решил, что настал самый подходящий момент.

Подробнее

Address Sanitizer, или Что делать, если не работает valgrind

Случилась непростая ситуация. Есть код, написанный на С, который активно используется через CGo в проекте, написанном на Go. В какой-то момент программа начала падать с ошибками от malloc: то segfault, то memory corruption.

Логичная мысль: нужен valgrind с его memcheck, чтобы проверить, кто лезет поперёк батьки в пекло в невалидную память. Однако, попытка скормить валгринду бинарник, полученный от go build, приведёт только к разочарованию — даже на простом Hello World валгринд разразится сотнями ошибок и отправит разработчика на известные координаты.

Это происходит из-за того, что go runtime довольно специфичен и неплохо отличается от такового в С. (Подробности можно спокойно нагуглить по запросу «golang valgrind»).

Так как же нам разобраться, что происходит?

Подробнее

Winter Wrap Up

Всем доброй пятницы, друзья.

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

Забавно, но лучший способ вспомнить всё, что происходило за последнее время — залезть в телефон и вытащить оттуда фотографии. Чем я и попробую сейчас заняться.

Подробнее

Пешком на работу

Такое приятное и давно забытое ощущение, когда можно утром выйти из дома и с приятной музыкой в ушах пройтись пешком до работы. Честное слово, полчаса бодрого шага по морозцу в приятный солнечный день — и уже не нужен кофе для того, чтобы окончательно проснуться. Горячий завтрак, кружка чая с лимоном, немного разминки и свежего воздуха — кажется, это всё, что нужно для того, чтобы почувствовать себя человеком утром в будний день :)


P.S. Однако, не все горожане разделяют мой энтузиазм по этому поводу — после сегодняшнего мороза многие с утра не смогли завести машины.

P.P.S. И я в том числе :) Но ещё вчера в моих планах было в первый раз пройтись утром до работы пешком.

P.P.P.S. А ещё это подарило мне ценный час времени, пока в офисе почти никого нет.

Годный туториал по написанию ядерных модулей в Linux

Нашёл на просторах Интернета довольно хороший туториал по написанию модулей для Linux. Ясное дело, что по этому делу есть специально написанные мануалы (www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf), но в самом начале тернистого пути хочется почитать что-то более простое и наглядное. И вот, для тех, кому интересно написать свой ядерный модуль (причём пример сразу для встраиваемой машины):

 

Покраска напечатанных моделей акрилом

Ну, во-первых, всех читателей поздравляю с Новым годом, Рождеством и кого-то — с начавшейся сессией. Хех.

В общем-то, сессия — замечательное время для того, чтобы открыть в себе новые увлечения. (Хотя здесь я не до конца откровенен — началось всё это в начале декабря). Глядел я на принтер, на стакан с кисточками, и думал — надо сделать что-нибудь красивое, что будет радовать глаз и всё такое… И обязательно покрасить.

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

Разумеется, встал вопрос, а чем бы покрасить PLA или ABS. Первое, что пришло в голову — краски для моделизма. Из двух вариантов — акрила и эмали — акрил показался интересней, и я начал искать, где бы купить нужную краску в Москве. Практика показывает, что экономия на хобби к хорошему не приводит, потому мысли о красках фирмы «Звезда» были выкинуты на первых секундах, и в итоге наткнулся на кучу хороших отзывов о японских красках Tamiya. Неожиданно для меня, поиск нужных цветов в рознице оказался довольно сложной задачей. Для пробы я взял две баночки краски, результат очень порадовал. Тем не менее, намешать все нужные оттенки было не из чего, потому поиск продолжился.

По отзывам знакомых решил попробовать обычный художественный акрил. Сразу скажу, что результат получился немного противоречивым. С одной стороны, обычный матовый акрил (DEC-Art, продаётся в «Леонардо» где-то за 250 рублей за 12 цветов) на пластик ложится не очень хорошо, и итоговый слой достаточно легко слезает при неаккуратном обращении с моделью. С другой стороны, если нанести достаточно много слоёв, акрил образует довольно приятный на ощупь и на вид слой, цвет яркий. (Буквально полчаса назад я покрыл модель аэрозольным лаком PLASTIC, который использую для изоляции плат — посмотрим, что получится после застывания).

Короче говоря, получилось как-то так:

Fluttershy, тёплая и ламп^Wматовая :)

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

  1. Может быть, сложно поверить, но сначала модель была тёмно-синего цвета. Если есть такая же проблема, а итоговый цвет должен быть ярким и светлым — поначалу грунтуем белым цветом. Первые три слоя я накладывал акрилом, довольно сильно разведённым водой.
  2. Красить цельную модельку удобно в два подхода — оставьте себе часть, за которую будете держать модель с самого начала. В моём случае это был хвост. :)
  3. Светлые оттенки (а именно такие были здесь) надо мешать, добавляя цвет в белила, а не наоборот. Цвета понадобится совсем немного. Более того, стоит заранее закупить пустые баночки для замешивания нужных оттенков — расход краски получается довольно большим, потому не жадничаем. Белила будут лететь со страшной скоростью — делаем выводы и готовимся заранее.
  4. Каждый слой наносим быстро, акрил обладает коварным свойством — застывает он быстро, но если не дождаться полного высыхания слоя, очень легко скатать свежую краску кисточкой. Дожидаемся полного засыхания слоя, не увлекаемся растушёвкой старого.
  5. Как рисовать глаза — я вычилал здесь (и вообще, ресурс оказался интересным и полезным).

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

Как откалибровать стол вашего 3D-принтера

Когда-то я уже рассказывал, что летом приобрёл себе неплохой китайский 3D-принтер Anet A6. За всё это время я успел выявить некоторые конструктивные проблемы этого чудо-агрегата и придумал обходные пути для некоторых из них. Но одна проблема вылезает достаточно регулярно — калибровка стола. И каждый раз я забываю особенности этого процесса и в итоге часами сижу у агрегата с довольно сердитым лицом и испариной на лице (процесс таки довольно жаркий, во время калибровки стол и хотенд должны быть нагреты до рабочих температур ради того, чтобы ненароком их не повредить, а также ради учёта теплового расширения).

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

Проблема 1: винты по углам

Стол у этого китайца (как и у большинства Prusa i3-подобных принтеров) подпружинен и крепится винтами по углам. В моём случае это ещё и достаточно дешёвые винты с потайной головкой Philips (крестовая), у которых довольно легко срывается шлиц. В идеале стоит заменить эти винты на что-нибудь покрепче с головкой под шестигранник или torx. Я до этого ещё не успел дорасти, но ради облегчения процесса калибровки добавляю немного смазки: «краснушку» в резьбы в основании стола (сюда подойдёт почти любая жидкая смазка, даже WD-40, там нет высоких температур) и высокотемпературную густую под шляпки (синего цвета; постараюсь уточнить название смазки, так как конкретно эту я попросил у отца на автосервисе). Некоторое время синяя смазка будет немного пахнуть при нагреве, но в какой-то момент должна перестать. В общем, такие простые меры помогут уменьшить шанс срыва головки на столе.

Проблема 2: ось X

У подобных дешёвых принтеров ось Z (вертикальная) обычно управляется двумя отдельными двигателями, слева и справа. Из-за этого, очевидно, легко сбивается ось X (перестаёт быть параллельной плоскости стола), так что процедуру выравнивания оси X выполнять очень важно. Немаловажно сделать это именно относительно плоскости стола принтера, а не того стола, на котором стоит принтер (на случай, если основание кривовато). Для этих целей на Thingiverse давно выложили модельку для такой калибровки: тыц, хотя примерную калибровку можно сделать и простой линейкой от основания.

Важно: печатать калибровочный инструмент лучше PLA-пластиком, так как у него нет серьёзных проблем с усадкой, как у ABS, к примеру. У меня уже был опыт (ну, всякое бывает, прошляпил. Просто ABS было больше), и я потратил пластик зря, по сути. Не повторяйте моих ошибок ;)

Проблема 3: выравнивание стола

Стол крепится 4 винтами по углам, а это значит, что есть шанс его хорошо перекосить по диагоналям. Если перетянуть два диагональных винта, стол начинает значительно изгибаться, и даже стекло на поверхности не помогает. Симптом примерно такой: на двух противоположных углах сопло слишком близко к столу и пластика почти нет, а на других углах сопло вообще не дотягивается до стола. Решение: ослабить винты на углах, где стол слишком высоко (близко к соплу) и скомпенсировать подъём затягиванием других двух винтов. Можно помогать себе линейкой, в идеале — тонкой металлической: прикладывая линейку ребром к столу, можно довольно быстро определить существенные изгибы.

Именно этот эффект действовал мне на нервы бóльшую часть времени.

***

Вот как-то так. Скоро постараюсь написать о том, какие несложные модификации полезно сделать со свежеприобретённым принтером, чтобы облегчить себе жизнь.