Search
Write a publication
Pull to refresh
-1
0

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

Send message

Лучшие практики bash-скриптов: краткое руководство по надежным и производительным скриптам bash

Reading time6 min
Views40K

Shell wallpaper by manapi

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

Команда Mail.ru Cloud Solutions перевела статью с рекомендациям, благодаря которым вы сможете лучше писать, отлаживать и поддерживать свои сценарии. Хотите верьте, хотите нет, но ничто не может сравниться с удовлетворением от написания чистого, готового к использованию bash-кода, который работает каждый раз.

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

Пора обновить ваш монитор

Reading time16 min
Views186K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →

STM32MP1: U-Boot, Buildroot, Arch Linux и немного Debian

Reading time17 min
Views25K
Привет, Хабр!

Некоторое время назад компания STMicroelectronics выпустила интересные процессоры серии STM32MP1. Когда у меня наконец-то дошли руки до отладочной платы на основе этого процессора, я с некоторым удивлением обнаружил, что для нее отсутствуют какие-либо сборки на основе популярных дистрибутивов (Debian, Arch Linux и др). Оставалось только попробовать самому адаптировать какой-нибудь дистрибутив под данную плату. По результатам этого и появилась данная статья.


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

Почему по мере заполнения SSD падает скорость записи в RAID, или зачем нужен TRIM

Reading time7 min
Views122K
Эта проблема наиболее актуальна для аппаратных RAID или firmware RAID (таких как Intel RST RAID 1/10/5/6) с непромышленными SSD.

Особенность SSD


SSD пишут и читают данные страницами, записать можно только на очищенные страницы, а очистить страницы можно только большими блоками. Например, у диска размер страницы 8 КБ, в блоке находится 128 страниц, таким образом, размер блока — 1024 КБ (здесь и далее, если не указано иного, КБ и МБ двоичные).

Например, если изменить 40 КБ в одном файле, то на физическом уровне это будет выглядеть так:


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

Какой язык программирования учить в 2020-м?

Reading time13 min
Views177K

Статей с подобными заголовками существует уже множество. Но в них постоянно какая-то дичь! Смотрите, Google ещё до основных результатов советует такое:



HCL, Карл! Язык, который не просто очень далёк от «Самых Популярных», но ещё и создан для конфигурации, так что его вообще странно ставить в один ряд с языками общего назначения. Страшно представить приключения новичка, который решит строить карьеру по таким советам. Начнём с того, что по запросу «как выучить HCL» вместо туториалов по языку вылезают тексты о соляной кислоте.


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

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

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Reading time5 min
Views177K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

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

Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?

Reading time10 min
Views76K


Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.


Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.


Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.


Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

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

Wi-Fi сети: проникновение и защита. 1) Матчасть

Reading time9 min
Views633K


Синоптики предсказывают, что к 2016 году наступит второй ледниковый период трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше.

При таком тренде не может не радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний.

Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой, и даже наглядно продемонстрировать проблемы на примере незадачливого соседа (do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux (бывший Backtrack 5) в следующих частях.

Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
Используйте WPA2-PSK-CCMP с паролем от 12 символов a-z (2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
Как работают WEP, WPA и WPS

Debian: Apt-Pinning на примере php5-fpm и nginx 1.0.4 (Debian way)

Reading time3 min
Views6K
Всем Debian'щикам известно, что Debian настолько же стабилен, насколько тормознут на «новинки». В частности, пакета php5-fpm, так многими любимого, в стабильном репозитории до сих пор нет. Решив чуток поискать, как делают люди, понял, что многие собирают его из «сорцов». Мне это как-то стало не по душе. Поэтому сегодня я поставил его в стиле Debian-way, с помощью Apt-Pinning.

Apt-Pinning, вкратце, это технология, которая показывает, из какого репозитория предпочтительнее ставить пакет.
Читать дальше →

Ещё раз про аппаратные ключи GPG за копейки

Reading time7 min
Views26K


В февралe 2020 года на Хабре появилась увлекательная статья про преобразование программатора ST-Link v2 в аппаратный ключ шифрования. Уже тогда в комментариях появились жалобы на то, что результат не удаётся повторить, но они остались без ответа.


За прошедшее время до меня дошла пара посылок с Aliexpress и теперь, самостоятельно пройдя весь путь, я попытаюсь представить более или менее полную инструкцию с комментариями, которая поможет неспециалисту перепрошить микропроцессор в китайском клоне ST-Link v2. Постараюсь не повторять уже известное, поэтому про пайку контактов и использование GPG с аппаратным ключом смотрите в исходной статье.

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

Аппаратный ключ шифрования за 3$ — возможно ли это?

Reading time10 min
Views71K

Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
Читать дальше →

Как избавиться от размытых фотографий с помощью Python

Reading time6 min
Views11K
Когда мы делаем большую серию снимков, часть из них получается нечеткими. С такой же проблемой столкнулась крупная автомобильная компания. Часть фотографий при осмотре авто получались размытой, что могло негативно влиять на продажи.

Некачественные снимки напрямую снижают прибыль.


  • Как приложению распознавать нечеткие фотографии на уровне алгоритма?
  • Как измерить четкость RGB-изображения?


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

Как я реанимировал устройство (JTAG-эмулятор BH-USB-560v2) через U-Boot

Reading time14 min
Views25K

У меня есть сомнения, что JTAG-эмулятор для отладки процессоров фирмы Texas Instruments — настолько распространённое устройство, чтобы его реанимация была бы кому-то интересна. Однако статья может быть полезна тем, кто пытается реанимировать что-нибудь на базе одноплатника с Linux, имея ограниченные ресурсы и информацию. Можно рассматривать это как некоторый практикум работы с U-Boot.


Blackhawk USB560v2

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

Изоляция, тревожность и депрессия на удалённой работе

Reading time7 min
Views46K


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

Кто везде — тот нигде. Кто проводит жизнь в странствиях, у тех в итоге гостеприимцев множество, а друзей нет.

Сенека.

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

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

Топ-3 функции Python, о которых вы не знали (Наверное)

Reading time3 min
Views9K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Top 3 Python Functions You Don’t Know About (Probably)» автора Dario Radečić.

Будучи одним из самых популярных языков 21-го века, Python, безусловно, обладает множеством интересных функций, которые стоит изучить подробно. Три из них будут рассмотрены сегодня, каждая — теоретически, а потом и на практических примерах.

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

Гайд для фрилансеров: самые частые вопросы по работе ИП

Reading time13 min
Views38K
В ноябре мы задумали собрать большой пост о том, как жить, если ты индивидуальный предприниматель (ИП). Мы попросили пользователей Хабра набросать нам вопросы из серии «хотели знать, но боялись спросить». Получился отличный список.

Ответить на вопросы мы предложили нашим друзям из Тинькофф Бизнеса — они сами регистрируют ИП и знают все юридические тонкости. Главный бонус: в течение недели в комментариях будет дежурить mat-ulyana, которая ответит на любые дополнительные вопросы.

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

STM32 Часть 1: Основы

Reading time4 min
Views36K
Нельзя доверять коду, который вы не написали полностью сами. — Кен Томпсон
Пожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяца и я решил писать статьи для закрепления материала. Все началось с простой задачи, синхронизировать лампы в своей фото студии с помощью Ардуины. Задача была решена, но в фото студию я больше не заходил, времени нет. С того момента я решил основательно заняться программированием микроконтроллеров. Ардуина, хоть и привлекательна в своей простоте, как платформа мне не понравилась. Выбор пал на компанию ST и их популярную продукцию. В тот момент я еще не представлял в чем особо разница, но как типичный потребитель я сравнил скорость «процессора» и количество памяти, купил себе внушительную плату с дисплеем STM32F746NG — Discovery. Я пропущу моменты отчаяния и сразу перейду к делу.
Читать дальше →

Как писать на ассемблере в 2018 году

Reading time13 min
Views323K


Статья посвящена языку ассемблер с учетом актуальных реалий. Представлены преимущества и отличия от ЯВУ, произведено небольшое сравнение компиляторов, скрупулёзно собрано значительное количество лучшей тематической литературы.
Читать дальше →

Прошиваем AVR вручную

Reading time6 min
Views216K

Картинка для привлечения внимания — xkcd

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

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity