Рубрика «хитрости»

Введение

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

Обрезка видео по времени

Довольно часто нужно вырезать с видео небольшой фрагмент с n по m секунды. Для этого нужно указать секунду, с которой вырезать и длительность.

Читать полностью »

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

  • Добавить второй фактор к логину SSH
  • Безопасно пользоваться agent forwarding
  • Выйти из вставшей SSH сессии
  • Сохранить постоянный терминал открытым
  • Поделиться удаленной сессией терминала с другом (без Zoom!)

Добавление второго фактора к своему SSH

Второй фактор аутентификации к своим SSH соединениям можно добавить пятью разными способами:

  1. Обновить свой OpenSSH и использовать ключ шифрования. В феврале 2020 года в OpenSSH была добавлена поддержка ключей шифрования FIDO U2F (Universal Second Factor). Это отличная новая функция, но есть нюанс: только те клиенты и серверы, которые обновились до версии OpenSSH 8.2 и выше смогут пользоваться ключами шифрования, так как февральское обновление вводит для них новые типы ключей. Командой ssh –V можно проверить клиентскую версию SSH, а серверную — командой nc [servername] 22
    Читать полностью »

Приключения с ptrace(2) - 1 На Хабре уже писали про перехват системных вызовов с помощью ptrace; Алекса написал про это намного более развёрнутый пост, который я решил перевести.


С чего начать

Общение между отлаживаемой программой и отладчиком происходит при помощи сигналов. Это существенно усложняет и без того непростые вещи; ради развлечения можете прочесть раздел BUGS в man ptrace.

Есть как минимум два разных способа начать отладку:

  1. ptrace(PTRACE_TRACEME, 0, NULL, NULL) сделает родителя текущего процесса отладчиком для него. Никакого содействия от родителя при этом не требуется; man ненавязчиво советует: «A process probably shouldn't make this request if its parent isn't expecting to trace it.» (Где-нибудь ещё в манах вы видели фразу «probably shouldn't»?) Если у текущего процесса уже был отладчик, то вызов не удастся.
  2. ptrace(PTRACE_ATTACH, pid, NULL, NULL) сделает текущий процесс отладчиком для pid. Если у pid уже был отладчик, то вызов не удастся. Отлаживаемому процессу шлётся SIGSTOP, и он не продолжит работу, пока отладчик его не «разморозит».

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

Некоторое время назад мне пришлось окунуться в Meteor. Не смотря на то, что javascript я не люблю, coffeescript еще больше, а node.js меня приводит и бешенство, Meteor очень быстро снискал моё признание и любовь. Я не работал с ним до версии 1.0+, насколько я знаю, там было достаточно много ужасов, однако сейчас, лично для меня, это очень удобный инструмент под небольшие интерактивные проекты. Потому очень хочется поделиться тем, что может облегчить использование данного инструмента другим людям.

Мой опыт работы с Meteor не такой большой, чтобы взять и начать что-то сложное раскладывать по полочкам. Однако я столкнулся с некоторыми вещами, побился о них головой и нашел какие-то решения. И в этой статье я хочу поделиться своими наблюдениями/советами по работе с jade в Meteor. К сожалению, с ним всё не так здорово, как с чистым jade-ом.
Читать полностью »

Подготовка к сертификационному экзамену Microsoft 70-483 «Programming in C#» - 1
Во время подготовки к экзамену номер 70-483 нашел множество разрозненных сайтов с различными ссылками на мануалы, которые мне немного помогли. Но, что помогло мне больше, так это то, что я составил для себя памятку на нескольких страницах, выдержками из которой и хочу поделиться.
Целью не является подробное описание C#, целью является освежить в памяти и заострить внимание на некоторых необходимых темах. Если какие-то темы вам незнакомы, то это значит, что у вас есть пробелы, которые необходимо устранить.
Раскрывать вопросы тестирования я не могу (да и не помню я уже их), но, если многие из перечисленных ниже нюансов, трюков и тонкостей, помогут вам, то вы на меня не обижайтесь (написано с иронией).
Читать полностью »

Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать полностью »

Вчерашняя провокационная реклама Microsoft против планшетов iPad вызвала массу споров. Среди доводов критиков есть один аргумент, который объективно уличает рекламу Microsoft во лжи. Речь идет о страничке на официальном сайте, где сравниваются технические характеристики iPad и планшетов под Windows 8.

Вот как показана на сайте разница в размере экрана iPad (слева) и планшета Asus VivoTab Smart (справа).

Хитрый трюк в рекламе Microsoft

Левая картинка имеет размер 102×79 пикселов, а правая — 140×78. Создаётся впечатление, что экран Asus на 36% больше по площади, чем экран iPad.
Читать полностью »

Учимся «грамотно» аутсорсить, или переносим производство в Китай

История одного программиста

Ваня был лучшим софт-разработчиком в одной Компании. Производительность его труда неуклонно росла, и получал он уже более 250.000$ в год.
Но вдруг, в один прекрасный день, случилась странность… В отделе безопасности Компании раздалась тревога – похоже было, что один из компьютеров их сети подвергся атаке. Тщательная экспертиза данного события показала, что это был вовсе не вирус. Просто Ване прислали очередной кусок кода программы, которую он «разрабатывал»… Прислал наёмный программист. Из Китая.Читать полностью »

Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать полностью »

На написание этого поста меня вдохновил мой друг Грег Янгблад, который показал мне на прошлой неделе одну интересную загадку в MySQL.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js