Как стать автором
Обновить
4
0
Руслан @XakRU

Администратор *nix.

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

Python: конфигурация проекта без боли

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

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

В статье речь пойдет только о локальных способах хранения настроек, здесь не разбираются случаи загрузки из сети.

После создания проекта рано или поздно возникает вопрос: куда записывать номер версии, где хранить токены, пароли, настройки, каким форматом файлов конфигурации воспользоваться: .json.yaml.env, .cfg.ini или просто создатьconfig.pyи записывать туда переменные?

Для каждого из перечисленных вариантов есть библиотека на python, приведу примеры самых популярных форматов

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

Типовые ошибки при подготовке публичного выступления

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

Всем привет! У меня снова статья про качество. Только на этот раз речь пойдет не про код, а про подготовку к публичному выступлению.

Читать далее
Всего голосов 23: ↑22 и ↓1+23
Комментарии4

Насколько маленьким может быть ядро linux?

Время на прочтение5 мин
Количество просмотров38K
Некоторое время назад я научился конвертировать виртуальные машины в oracle cloud из ubuntu 20.04 в gentoo. Машины предоставляемые в рамках always free tier весьма маломощны. Это в частности приводит к тому, что перекомпиляция ядра превращается в достаточно длительный процесс. У исходного ядра ubuntu 20.04 в конфиге было 7904 параметра. После того, как я сделал:

make localmodconfig && make localyesconfig

число параметров уменьшилось до 1285. Мне стало интересно попробовать выбросить из ядра все лишнее и посмотреть, что получится.
Читать дальше →
Всего голосов 50: ↑44 и ↓6+52
Комментарии77

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Время на прочтение12 мин
Количество просмотров64K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!
Всего голосов 46: ↑40 и ↓6+49
Комментарии71

Шпаргалка полезных команд GDB

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

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

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

День программиста 2020 начинается в субботу. С праздником

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

Время бежит быстро, и вот снова приходит праздник, который программисты отмечают в 256 день каждого года. 2020 год високосный, так что празднуем не 13 сентября, а на день раньше.

Selectel поздравляет программистов и всех, кто имеет отношение к разработке. Давайте вспомним истоки праздника: почему, когда и как он появился.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+25
Комментарии13

Strace в Linux: история, устройство и использование

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


В Unix-подобных операционных системах общение программы с внешним миром и операционной системой происходит через небольшой набор функций — системных вызовов. А значит, в отладочных целях полезно бывает подсмотреть за выполняемыми процессами системными вызовами.


Следить за «интимной жизнью» программ на Linux помогает утилита strace, которой и посвящена эта статья. К примерам использования «шпионского» оборудования прилагаются краткая история strace и описание устройства подобных программ.

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

Python — помощник в поиске недорогих авиабилетов для тех, кто любит путешествовать

Время на прочтение15 мин
Количество просмотров26K
Автор статьи, перевод которой мы публикуем сегодня, говорит, что её цель — рассказать о разработке веб-скрапера на Python с использованием Selenium, который выполняет поиск цен на авиабилеты. При поиске билетов используются гибкие даты (+- 3 дня относительно указанных дат). Скрапер сохраняет результаты поиска в Excel-файле и отправляет тому, кто его запустил, электронное письмо с общими сведениями о том, что ему удалось найти. Задача этого проекта — помощь путешественникам в поиске наиболее выгодных предложений.



Если вы, разбираясь с материалом, почувствуете, что потерялись — взгляните на эту статью.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии23

Делаем хорошо со Swift 4, Perfect, Protobuf и MySQL на Linux-сервере

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

Можно долго смотреть на три вещи: как течет вода, как имплементируется CoreFoundation в Linux Swift, и как не обновляется документация Perfect


Сначала кратко для тех, кто не в курсе: Perfect — это один из самых стабильных серверных фреймворков на Swift. (benchmark)


Задача:


Сервер Perfect на Linux c MySQL и Protocol Buffers для общения с приложением-клиентом


Важное требование:


Мы прогрессивные хипстеры со свифтом (sarcasm), поэтому дайте самую последнюю версию Swift 4.0.2

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

Семь неожиданных переменных Bash

Время на прочтение3 мин
Количество просмотров37K
Продолжая серию заметок о менее известных функциях bash, покажу вам семь переменных, о которых вы могли не знать.

1) PROMPT_COMMAND


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

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

Попробуйте запустить это в новом шелле, и увидите, что произойдёт с сессией:

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии32

Пять ошибок, которые люди совершают при подготовке к рабочей иммиграции в США

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


Миллионы людей со всего мира мечтают переехать на работу в США, на Хабре полно статей о том, как конкретно это можно сделать. Проблема в том, что обычно это истории успехов, о возможных ошибках мало кто рассказывает. Я нашел интересный пост на эту тему и подготовил его адаптированный (и немного дополненный) перевод.
Читать дальше →
Всего голосов 45: ↑38 и ↓7+31
Комментарии326

Личный опыт: как ИТ-специалисту переехать на работу в США, надеясь только на себя

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


На Хабре опубликовано достаточно большое количество материалов с рассказами о том, как разработчики переезжают в США и другие страны на работу. Большинство таких статей касается именно программистов, которые рассказывают свои истории о поиске работы, опыте прохождения собеседований, получении оффера и последующем переезде.

Мой опыт не вписывается в эту схему и потому, как мне кажется, может оказаться полезным для других ИТ-специалистов — я переехал в США по визе O1, которая лишена некоторых недостатков традиционной американской рабочей визы.

Сразу оговорюсь, что этот способ миграции предполагает достаточно серьезные денежные траты, месяцы на подготовку документов, а также наличие общей жизненной активности. Но при всем этом, данный способ предполагает, что гораздо больше зависит от самого соискателя, а не от везения.
Читать дальше →
Всего голосов 63: ↑55 и ↓8+47
Комментарии43

Хакаем CAN шину авто. Виртуальная панель приборов

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


В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Всего голосов 195: ↑192 и ↓3+189
Комментарии224

Заблуждения программистов о трудоустройстве

Время на прочтение3 мин
Количество просмотров92K
Это перевод. Статья опубликована в июне 2018 года

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

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

В стиле известной статьи Патрика Маккензи об именах, вот список главных заблуждений, которые могут быть у программистов (особенно начинающих).
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии442

Vim спустя 15 лет

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


Мои предыдущие посты об использовании Vim (1, 2) читатели приняли хорошо, и пришло время обновления. В Vim 8 появилось много очень нужной функциональности, а новые сайты сообществ вроде VimAwesome облегчили поиск и выбор плагинов. В последнее время я много работаю с Vim и организовал рабочий процесс исходя из максимальной эффективности, вот снимок моей текущей работы.


Вкратце:


  • FZF и FZF.vim — для поиска файлов.
  • ack.vim и ag — для поиска файлов.
  • Vim + tmux — ключ к победе.
  • Благодаря асинхронности ALE — это новый Syntastic.
  • …И многое другое. Об этом ниже.
Всего голосов 63: ↑57 и ↓6+51
Комментарии42

Wi-Fi is over: вычисляем нарушителей беспроводного эфира

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

 
Для выявления атак и аномалий беспроводного эфира можно использовать высокотехнологичные решения (как правило дорогие), которые позволяют контролировать беспроводные сети и выявлять попытки атак. В этой статье я расскажу о двух бесплатных утилитах, которые позволят вам контролировать беспроводной эфир и оперативно реагировать на вторжения злоумышленников.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии14

Своя система сборки на Linux

Время на прочтение4 мин
Количество просмотров8K
image
Здравствуйте! Я давно не появлялся здесь в качестве оратора, но в этот раз я решил поделится кое-чем, что сделал сам, а также узнать — нужно это, не нужно, как можно доработать и вообще услышать любые отзывы о моих деяниях.

Мотивация


Проблема сборки и запуска проекта на разных машинах преследовала меня всегда. Для того, чтобы реалистично смоделировать работу разрабатываемого сайта на локальной машине нужно установить Web-сервер, Application-сервер, возможно, к ним присоединится какой-нибудь ещё промежуточный сервер, установить базу данных, настроить базу данных. Для того, чтобы установить тестовый сайт на тестовый сервер, нужно проделать такую же работу. И позже тоже самое с рабочим сервером.

Кажется, что проблема решается легко — напиши все команды в файл и просто запускай его везде. Решение относительно хорошее, но не идеальное, и вот почему. К примеру, на одном из серверов уже установлены нужные пакеты и база данных там готова. Но не до конца, к ней не применены последние миграции. Придётся открывать файл с командами и вытаскивать оттуда нужные, дабы не получить ошибку или чтобы что-то не сломать.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии26

Настройка BGP Looking glass на базе OpenBSD 6.1

Время на прочтение2 мин
Количество просмотров4.9K
Мы уже давно использовали связку OpenBSD+OpenBGPD+bgplg для предоставления публичного сервера bgp looking glass. Было принято обновить OpenBSD до свежей версии.

В процессе настройки выяснилось несколько ньюансов, не раскрытых в полной мере в официальной документации. В результате получилась вот такая инструкция по настройке сервиса BGP looking glass на базе свежеустановленной OpenBSD 6.1
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Почему ваш любимый мессенджер должен умереть

Время на прочтение18 мин
Количество просмотров328K
image
Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

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

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

image

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


Читать дальше →
Всего голосов 260: ↑230 и ↓30+200
Комментарии357

Почему аэробные тренировки так влияют на мозг: причина в эволюции

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


За последние десятилетия многочисленные исследования показали положительный эффект аэробных тренировок на умственные способности на протяжении всей жизни (1, 2, 3, 4). Особенно важные последствия отмечены для стареющего мозга. Польза от них неоспорима — как для здоровых людей, так и для страдающих нейродегенеративными заболеваниями вроде болезни Альцгеймера. Но несмотря на растущий интерес к бегу в терапевтических целях, до сих пор наука не совсем хорошо понимает механизмы, за счёт которых так сильно улучшаются когнитивные способности человека. К тому же исследования показывают большую разницу в результатах в разных экспериментах.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии41

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность