Pull to refresh
3
0
Send message

Для начинающих программистов

Level of difficultyEasy
Reading time9 min
Views17K

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

Читать далее
Total votes 21: ↑19 and ↓2+18
Comments58

TOTP (Time-based one-time Password algorithm)

Reading time7 min
Views51K

С ростом числа угроз кибербезопасности, для разработчиков становится все более и более необходимым обновлять стандарты безопасности веб-приложений и быть при этом уверенными в том, что аккаунты пользователей в безопасности. Для этого в настоящее время многие онлайн-приложения просят пользователей добавить дополнительный уровень безопасности для своей учетной записи. Они делают это за счет включения двухфакторной аутентификации. Существуют различные методы реализации двухфакторной аутентификации, и аутентификация TOTP (алгоритм одноразового пароля на основе времени) является одним из них.

Чтобы понять, что из себя представляет TOTP и как он используется, необходимо сначала кратко рассмотреть более базовые понятия. Первое из них – двухфакторная аутентификация. Двухфакторная аутентификация (или многофакторная аутентификация) — это метод идентификации пользователя в каком-либо сервисе (как правило, в Интернете) при помощи запроса аутентификационных данных двух разных типов, что обеспечивает двухслойную, а значит, более эффективную защиту аккаунта от несанкционированного проникновения. Это означает, что после включения двухфакторной аутентификации пользователь должен пройти еще один шаг для успешного входа в систему. Стандартные шаги для входа в учетную запись – это ввод логина и ввод пароля (рис.1).

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments4

TOTP без смартфона

Level of difficultyEasy
Reading time5 min
Views19K

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

Читать далее
Total votes 68: ↑68 and ↓0+68
Comments88

Всё ещё храните музыку в формате Hi-Res? Тогда мы идем к вам

Level of difficultyEasy
Reading time4 min
Views81K

Люди делятся на 2 лагеря: те, кто слышит разницу между lossless и lossy, и те, кто нет. Формат аудио с потерей качества — это интересная тема, но сегодня мы поговорим о звуке в высоком разрешении — это PCM 24/96 и выше, а также DSD во всех его проявлениях. Я не буду рассказывать теорию, чем отличаются эти форматы, такие статьи легко гуглятся. Лишь вскользь упомяну о теореме Котельникова (Найквиста — Шеннона), которая гласит следующее: «Для того, чтобы оцифровать аналоговый сигнал, а потом его БЕЗ ПОТЕРЬ восстановить, необходимо и ДОСТАТОЧНО, чтобы частота дискретизации была в 2 раза СТРОГО больше максимальной частоты полезного сигнала».

Читать далее
Total votes 152: ↑148 and ↓4+180
Comments449

Как в СССР копирайт продлевали

Level of difficultyEasy
Reading time9 min
Views6.1K

Многие знают эпопею с продлением авторских прав в США — так называемый «Закон о защите Микки Мауса». Такое продление принято связывать с интересами крупных правообладателей, например, студии «Дисней». Однако в XX веке авторские права вообще было принято продлевать — и делали это везде, в том числе в СССР. Что особенно интересно — в СССР и новой России авторское право менялось чаще и серьезнее, чем где бы то ни было: от нулевой защиты то действующих 70+ лет. И, что самое любопытное, у нас неоднократно возвращали произведения из общественного достояния и из государственной собственности, в результате многие работы побывали и под защитой, и в public domain по нескольку раз.

Почему так произошло и что из этого вышло?
Total votes 42: ↑38 and ↓4+53
Comments62

Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой

Reading time8 min
Views786K


В преддверии старта курса «CI/CD на AWS, Azure и Gitlab» подготовили для вас перевод полезного материала.



Непрерывная интеграция (Continuous Integration, CI) и непрерывная поставка (Continuous Delivery, CD) представляют собой культуру, набор принципов и практик, которые позволяют разработчикам чаще и надежнее развертывать изменения программного обеспечения.

CI/CD — это одна из DevOps-практик. Она также относится и к agile-практикам: автоматизация развертывания позволяет разработчикам сосредоточиться на реализации бизнес-требований, на качестве кода и безопасности.
Читать дальше →
Total votes 13: ↑5 and ↓8-3
Comments1

CSS для печати на бумаге

Reading time10 min
Views12K

По работе я довольно часто занимаюсь созданием генераторов печати на HTML для воссоздания и замены форм, которые компания традиционно заполняла от руки на бумаге или в Excel. Это позволяет компании переходить на новые веб-инструменты, в которых форма автоматически заполняется по параметрам URL из нашей базы данных, создавая при этом тот же результат на бумаге, к которому все привыкли.

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

Читать далее
Total votes 23: ↑22 and ↓1+28
Comments17

Нарушаем ограничения файловых систем *NIX

Reading time11 min
Views13K

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

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

Под катом вас ждет небольшой экскурс в особенности работы файловых систем и набор экспериментов.
Читать дальше →
Total votes 58: ↑54 and ↓4+66
Comments48

Итак, вы установили fzf. Что дальше?

Level of difficultyEasy
Reading time4 min
Views20K

Разработчики ПО — если не единственные, то практически единственные, кому очень просто создавать инструменты для улучшения своей профессиональной работы; однако со временем это усложняет жизнь людям, постоянно переключающимся между разными инструментами и не вкладывающим время в глубокое изучение своего инструментария. Имея глубокое уважение к негласным знаниям людей лучше меня, я всё же считаю, что отличная эвристика 80/20 заключается в том, чтобы изучать старые добрые инструменты Unix cat, ls, cd, grep и cut. (а если вам повезло устроиться на должность настоящего современного сисадмина, то ещё и sed с awk.)

Однако существуют инструменты, выгода от использования которых настолько мгновенна и ценность от применения настолько уникальна, что эвристика 80/20 полностью к ним неприменима. Один из них — это fzf. И меня очень печалит то, что многие скачивают его, запускают в командной строке «как есть», а потом просто мотают головой и произносят: «Я не понимаю».

Мне хотелось бы изменить ситуацию. Предположим, что вы работаете на более-менее стандартной машине с Ubuntu. Вы только что установили fzf при помощи стандартного скрипта установки. Что же дальше?
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments25

Оптимизация рабочего процесса при помощи fzf

Reading time14 min
Views11K

Работа в оболочке включает в себя выполнение одних и тех же команд снова и снова; что меняется, так это порядок выполнения команд и их параметры. Один из способов упростить рабочий процесс — найти паттерны выполнения команд с аргументами и обернуть их в небольшие скрипты. Такой подход часто оказывается полезным, сильно упрощая работу; другой способ оптимизации рабочего процесса — понять, как добавляются параметры, и попробовать упростить сам ввод. И в преддверии старта нового потока курса Fullstack-разработчик на Python, в этом посте я расскажу о втором подходе.

Читать далее
Total votes 14: ↑13 and ↓1+15
Comments5

Автоматизируем создание отчетов в Word с данными из Excel на Python

Level of difficultyEasy
Reading time7 min
Views44K

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

Читать далее
Total votes 35: ↑33 and ↓2+33
Comments55

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Level of difficultyEasy
Reading time4 min
Views28K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Total votes 35: ↑34 and ↓1+40
Comments84

Цифровая музыка на микрокомпьютерах (часть 1/2)

Level of difficultyEasy
Reading time25 min
Views10K

Сегодня, когда любой школьник имеет возможность сочинять модные биты на своём домашнем компьютере или смартфоне, идея применения компьютерных устройств для создания музыки никого не удивляет. Кажется, что эти технологии с нами уже очень давно. Однако, массовому пользователю возможность составления мелодий из фрагментов реалистичных звуков на компьютере стала доступна лишь немногим больше четверти века назад. Поговорим о том, как это устроено, о первых шагах цифровых музыкальных редакторов в дома обычных людей, и о неожиданной запинке, приключившейся на этом пути в странах запаздывающего технического прогресса.
Читать дальше →
Total votes 89: ↑88 and ↓1+116
Comments77

Когнитивные искажения, о которых стоит помнить

Reading time15 min
Views89K

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

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

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

Читать далее
Total votes 84: ↑76 and ↓8+79
Comments36

СтихТок. Как я перестал «залипать» и начал духовно расти

Reading time4 min
Views11K

Когда пришла эпоха коротких видео в TikTok и YouTube, я, как и многие, стал проводить там слишком много времени, порой обнаруживая себя засыпающим в 5 утра под листание бесконечной ленты. Тогда я решил отучить себя от этой привычки. Пробовал разные ограничения, но, в конечном итоге, просто забивал на них.

Читать далее
Total votes 72: ↑72 and ↓0+72
Comments36

10 «золотых» советов авторам любых текстов

Level of difficultyEasy
Reading time6 min
Views12K

Чем активнее мы курируем авторов, тем больше «налипает» опыта и своего, и чужого: кто-то приносит нам шедевры, кто-то — тексты, которые просто невозможно опубликовать. И вроде каждый случай особенный, но все проблемы и находки вполне себе поддаются систематизации. А значит, можно выделить лучшие практики, которые помогут всем сделать тексты лучше. Начнём с базовых моментов, которые, тем не менее, даже у опытных авторов соблюдаются далеко не всегда.

Читать далее
Total votes 89: ↑89 and ↓0+89
Comments55

Используем passwordstore.org — менеджер паролей в стиле KISS

Reading time11 min
Views17K

Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли. Конкретнее, будут затронуты проблемы, связанные с генерацией и хранением секретного ключа gpg, а также с настройкой совместной работы pass, gpg, git, github и браузера. Всё — под Linux, Windows и Android.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments2

Проблема PGP

Reading time11 min
Views53K
Криптоинженеры уже несколько десятилетий кричат о недостатках PGP. Когда это слышат обычные разработчики, то бывают крайне удивлены. Как, PGP никуда не годится? Зачем же тогда его советуют использовать? Ответ в том, PGP действительно никуда не годится, и никому никогда не следует его рекомендовать. Он должен исчезнуть.

Как вы скоро увидите, у PGP много проблем. Если не вдаваться в подробности, основная причина в том, что программа разработана в 90-е годы, до появления серьёзной современной криптографии. Ни один компетентный криптоинженер сегодня не станет разрабатывать систему в таком виде и не потерпит большинства её дефектов ни в какой другой системе. Серьёзные криптографы в основном отказались от PGP и больше не тратят на неё времени (за некоторыми заметными исключениями). Поэтому хорошо известные проблемы в PGP остаются нерешёнными более десяти лет.
Читать дальше →
Total votes 54: ↑44 and ↓10+34
Comments71

Используем GPG для шифрования сообщений и файлов

Reading time9 min
Views177K

Кратко о том, как создавать ключи, шифровать и подписывать файлы и отправлять ключи на сервер ключей.



GPG (также известный как GnuPG) создавался как свободная альтернатива несвободному PGP. GPG используется для шифрования информации и предоставляет различные алгоритмы (RSA, DSA, AES и др.) для решения этой задачи.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments13

Как содержать пароли. Мой сетап

Level of difficultyMedium
Reading time7 min
Views58K

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

Меня интересовало, как я могу залогиниться туда, где многофакторная авторизация через телефон, в случае потери телефона. 

Или, как обезопасить себя от забывания мастер пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из 4-ёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг - странная штука. 

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

Читать далее
Total votes 69: ↑69 and ↓0+69
Comments184

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity