Как стать автором
Поиск
Написать публикацию
Обновить
394.13

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

Snapper: система снапшотов, которая спасет ваш Linux

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

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

К счастью, есть простое советское средство для починки чего угодно!

Rollback

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 2

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

Приветствую! Эта статья является продолжением (2 частью) статьи Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1 Если честно, я был приятно удивлен популярностью первой части: 115К просмотров за неделю и 137 голосов, которые принесли мне 21 место в рейтинге Хабра. Учитывая, что эта статья была из песочницы (отдельное спасибо @Ilha за приглашение), для меня это большой результат. Поэтому всем, кто поставил стрелочку вверх – авторское спасибо!)

В этой статье я покажу, как можно скачивать с YouTube каналы и плейлисты. Если кто-то не читал первую часть, настоятельно рекомендую это сделать. По крайней мере, если по мере чтения у вас возникнут какие-то вопросы, скорее всего там есть на них ответы. Напомню, что у нас уже есть средство, которое решает "проблему с устаревшим и изношенным оборудованием Google Global Cache" (к сожалению, оно не у всех работает, учтите), а также мы разобрались с тем, как скачивать с YouTube видео и аудио в любом качестве. Итак, начнём!

UPDATE: По решению Роскомнадзора в марте 2025 г. первая часть статьи была заблокирована на территории России. pdf-версию статьи вы можете скачать здесь

Читать далее

20-летие Linux для десктопных систем (часть 2)

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

Коротко о прошлой части: в стремлении создать идеальную десктопную систему, аналогичную GNOME и Debian, молодой Ploum присоединяется к тайному проекту «no-name-yet», который в итоге становится Ubuntu.
Читать дальше →

Хитрости для программистов: пять команд Linux, с которыми ваша жизнь не будет прежней

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

Интерфейс командной строки — это альфа и омега для большинства технарей, особенно для разработчиков и сисадминов. Чем бы вы ни занимались — скриптами, конфигурацией серверов или автоматизацией задач, — команды Linux сэкономят вам часы рабочего времени. Но если только вы умеете грамотно с ними обращаться.

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

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

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

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

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

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

A-Tune: тонкая настройка системы с использованием машинного обучения

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

Привет, Хабр!

Меня зовут Артём, я инженер-программист в департаменте серверных решений. В статье расскажу про новый инструмент для повышения производительности, который получилось портировать и доработать для ОС Astra Linux Special Edition.

Читать далее

SVG-виджеты для tcl/tk. Финальный аккорд. Часть IV

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

Реализация проекта «SVG-виджеты для tckl/tk» позволяет устранить одну из главных претензий, предъявляемых к графическому интерфейсу приложений, разрабатываемых с использованием tk - устаревший дизайн виджетов. Переход от классических виджетов к svg-виджетам не требует больших усилий. В этом лично я убедился, переписав gui утилиты для работы с электронной подписью cryptoarmpkcs. Ее дистрибутивы под именем cryptoarmpkcs_svg для платформ Linux64 и Windows64 можно найти в проекте:

Читать далее

Fullstack v2: учимся писать UI на Go

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

Меня зовут Илья Глухов.  Последние 7 лет я пишу на Go. Я люблю этот язык, а ещё люблю задаваться странными, на первый взгляд, вопросами. Например, как разные интересные штуки, которые мы пишем на Go взаимодействуют с пользователем? В классическом бэкенде мы при помощи RPC (Remote Procedure Call), протокола HTTP или разных очередей модифицируем поведение нашей программы. А что насчёт graphic UI? Он же из фронтенда? Или нам так только кажется? Давайте  создадим пользовательский интерфейс (UI) на Go. Выбор решений разнообразен: Gopherjs, gomobile, обёртки для Qt, GTK и много чего ещё. Но если мы хотим добиться кросс-платформенной совместимости для браузеров, мобильных устройств и десктопов, нам нужен универсальный UI. Давайте на практическом примере разберём как создать его на Go.

Читать далее

История оболочки Bash и чему она нас может научить

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

В этот день, практически в канун католического рождества, 23 декабря 1996 года, вышла оболочка Bash версии 2.0. Последний мажорный релиз на сегодня — это версия 5.3. Сейчас Bash встроена почти во все версии Linux и MacOS, а также заявлена как встроенный компонент Microsoft Windows.

Bash поставляется по умолчанию почти во всех дистрибутивах Linux и современных версиях MacOS и, как ожидается, вскоре он станет неотъемлемой частью Windows Terminal. Bash действительно повсюду и это не фигура речи. Как до этого дошло? В сегодняшней статье мы глубоко исследуем этот вопрос, задавая вопросы именно тем людям, которые причастны к разработке оболочек.

Читать далее

WireGuard и QUIC

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

Когда мы хотим защитить передаваемые данные, мы используем VPN. Но иногда хочется, чтобы и сам факт использования VPN, тоже был бы скрыт. Мы настолько переживаем за свои данные:)

Так как сейчас очень популярным стал WireGuard, он основан на UDP. А из популярных UDP протоколов, которые могут через себя прокачивать большой трафик, это QUIC. Это совмещение TCP и TLS, основанное на UDP. Поэтому естественной мыслью стала мимикрировать WireGuard трафик под QUIC трафик. Для этого пришлось изучить код WireGuard в ядре Linux. Код патча ядра Linux лежит на QUICWireGuard.

Читать далее

Зачем нужна диспетчеризация, или как «приготовить» SCADA на Linux

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

Множество инженерных систем, работающих на поддержание комфортных, или требуемых условий (температура и влажность воздуха, содержание СО2 и примесей, уровень освещенности, температура воды), время от времени выходят из строя, требуют технического обслуживания. Раньше дежурный инженер несколько раз за смену обходил все оборудование и проверял его исправность и режимы работы. Кому-то стало жарко в помещении - потопал менять уставку температуры на установке за тридевять земель. И так каждый раз. Если что-то выходило из строя, то узнавали об этом либо в очередной обход, либо от пострадавших.

Читать далее

20-летие Linux для десктопных систем (Часть 1)

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

Двадцать лет назад на меня снизошло озарение: Linux готов для десктопа.

(*смех аудитории*)

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

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

И, к моему удивлению, некоторые это предложение принимали.
Читать дальше →

Сервер автоматизации СА-02м. Linux + Armbian, SCADA, «Умный дом» и вот это вот все…

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

Разработали серийный корпус, плату, воткнули туда одноплаточник на Linux + Armbian, установили MasterSCADA4D и давай автоматизировать вентиляцию, освещение и другое инженерное оборудование.

Читать далее

Ближайшие события

Обновление прошивки Toshiba NAS HDD под Linux

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

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

$ wget https://www.canvio.jp/en/support/download/hdd/ot_ihdd/fw/ISFw.dat
$ grep -C2 MODELNAME ISFw.dat
 # ^
 # |___ здесь определяем нужное имя файла
$ wget https://www.canvio.jp/en/support/download/hdd/ot_ihdd/fw/sk060202.ftd
# hdparm --fwdownload-mode3 sk060202.ftd /dev/sdX

Предыстория


Недавно я приобрёл для своего NAS диск Toshiba HDWG480 HDD. Вот вывод команды hdparm -I /dev/XXX:

ATA device, with non-removable media
        Model Number:       TOSHIBA HDWG480
        Serial Number:      3430A00RFR0H
        Firmware Revision:  0601
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Used: unknown (minor revision code 0x006d)
        Supported: 10 9 8 7 6 5
        Likely used: 10
[...]

Как обычно, я хотел проверить, есть ли для него доступные обновления прошивки. На сайте Toshiba для моей модели приводится версия 0602.

К сожалению, и вполне ожидаемо, для пользователей Linux возможности обновления нет. Производитель предоставляет лишь «Internal Storage Firmware Update Utility» для Windows.

Сами файлы обновления также отсутствуют.
Читать дальше →

Управление пакетами в Emacs: Хороший, плохой, злой

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

Здравствуй читатель! Если ты пользователь редактора Emacs, то данная статья для тебя, в ином случае, можно проходить мимо, так как тема достаточно узкоспециализированная.

Меня зовут Вознесенский Михаил. Я являюсь руководителем группы разработки продукта RuPost в компании РуПост которая входит в состав Группы Астра (смотри не перепутай 😄).
В ходе своей деятельности я сталкивался со множеством текстовых редакторов/IDE и на данный момент остановился на Emacs. Не смотря на всю его мощь, у редактора имеется очень серьёзная проблема которая мешает нормальной продуктивной деятельности - управление расширениями.

В ходе своего исследования данного вопроса я наткнулся на статью за авторством Божидара Бацова (Bozhidar Batsov). Человек, который называет себя хакером и фанатиком Emacs, но так же является автором конфигурационного фреймворка Prelude.
Статья написана в далёком 2012 году, но остаётся актуальной и по сей день!

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

Читать далее

Todo-лист на максималках: разбираем архитектуру крупного приложения

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

В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.

Читать далее

Сборка RPM-пакетов в ALT Linux: автоматизация с помощью GEAR

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

В первой части материала мы разобрали случай сборки простого rpm-пакета в ALT Linux. За пример брали набор файлов изображений и собирали стандартной утилитой rpmbuild.

В этом материале поговорим про сборку python-проекта специальным инструментом — GEAR. Этот инструмент разработала команда сообщества Альт для автоматизации процесса сборки.

Общими словами, GEAR — это удобная обвязка вокруг Git и rpmbuild. Достаточно в дополнение к spec-инструкции написать GEAR-правила формирования архива, полученного из git-репозитория.

Материал статьи может быть полезен при изучении темы сборки rpm-пакета инструментом gear-rpm в ОС «Альт».

Собрать пакет

История о том, как мы собирали разработчиков Nix в России и… собрали

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

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

Читать далее

Немного об отладке. Часть 2

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

Приветствую еще раз.

Это 2 часть небольшой статьи об отладчиках. В прошлой мы разобрали базу: инструкции + системные вызовы, написали свой отладчик, препарировали gdb и смотрели на отладку в высокоуровневых ЯП со своим рантаймом.

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

Путешествие на остальные 20 минут

Немного об отладке. Часть 1

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

Приветствую.

Вы когда нибудь отлаживали программы? Не врите, что нет. Благодаря отладчикам наши программы работают корректно (или хотя бы близко к этому).

Но вот знаете ли вы как отладка устроена: точки останова, шаги, бэктрейс, чтение переменных?

Нет или да - ответ не важен. Эта статья даст ответы на многие вопросы об отладке, которые вы, возможно, и не задавали себе.

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

Путешествие на 20 минут

Вклад авторов