Как стать автором
Обновить
8
0

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

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

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

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

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

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

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

Другой способ понять, как работает async/await в C#

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

Про закулисье async/await написано предостаточно. Как правило, авторы декомпилируют IL-код, смотрят на IAsyncStateMachine и объясняют, вот дескать какое преобразование случилось с нашим исходным кодом. Из бесконечно-длинной прошлогодней статьи Стивена Тауба можно узнать мельчайшие детали реализации. Короче, всё давно рассказано. Зачем ещё одна статья?

Я приглашаю читателя пройти со мной обратным путём. Вместо изучения декомпилированного кода мы поставим себя на место дизайнеров языка C# и шаг за шагом превратим async/await в код, который почти идентичен тому, что синтезирует Roslyn.

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

CSS и безопасность данных

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

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

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

В течение нескольких лет современные браузеры, такие как Chrome или Firefox, пытались защитить пользователей веб-приложений от различных атак, в том числе XSS. Они делали это с помощью XSS-фильтров, которые во многих случаях позволяли им блокировать такие атаки. Однако эти фильтры оказывались все менее и менее эффективными, и браузеры, такие как Chrome, постепенно отключают их в поисках альтернативных методов защиты. Принцип работы XSS-фильтров довольно прост. Когда ваш веб-браузер отправляет запрос на веб-сайт, его встроенный фильтр межсайтовых сценариев проверяет, есть ли в запросе исполняемый JavaScript, например, блок <script> или HTML-элемент со встроенным обработчиком событий. Также проверяется, есть ли исполняемый JavaScript в ответе от сервера

Теоретически это должно хорошо работать, но на практике это легко обойти, и также нет защиты на стороне клиента от XSS-атак.

Давайте посмотрим, как можно украсть конфиденциальные данные с помощью каскадных таблиц стилей (CSS).

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 5

Самый простой способ обхода блокировок доступа к сайтам любых стран

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

Я понимаю, что пока, за использования VPN, аннонимайзеров и/или tor не применяют уголовные статьи, поэтому гораздо проще скачать какое нибудь приложение из магазина приложений и бесплатно воспользоваться им. Но где гарантия, что завтра они будут работать?

Я понимаю (программисты, сисадмины, DevOps'ы и т.д.) данный способ нельзя назвать уникальным, оптимальным и вообще, так лучше не делать, но согласитесь - это достаточно простой способ туннелирования трафика, который позволяет обойти (если не все), то огромное количество разнообразных сетевых блокировок.

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

Так же, этот способ - достаточно дешевый (меньше чашки кофе в день) и очень быстрый с точки зрения реализации (буквально 5 минут).

Интересно?

Читать далее
Всего голосов 107: ↑78 и ↓29 +49
Комментарии 412

Flutter Web умер. Да здравствует Flutter Web

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

У нас тут хоть и неофициальный, но очень способный наследничек объявился — Jaspr! 

Привет, меня зовут Алексей. В Пиробайте я разрабатываю мобильные приложения на Flutter. Расскажу, почему у этого фреймворка на стороне разработки сайтов не все так плохо. Спойлер — потому что Jaspr перехватывает всю инициативу на себя.

Узнать, чем он так хорош
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 4

С алгоритмами в духе LeetCode на собеседованиях пора кончать

Время на прочтение 6 мин
Количество просмотров 65K
Современная разработка охватывает широкий диапазон от работы с алгоритмами до системного дизайна. По большей части разработка ПО укладывается в эти рамки. Основная масса разработчиков занимается созданием приложений, что ближе с системному дизайну, чем к низкоуровневым алгоритмам.

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

Такой подход основан на идее, что, если человек знаком с алгоритмами и системным дизайном, то и на разработку приложений ему хватит способностей. Это спорное утверждение. Создание приложений требует обширного набора навыков. Они не нарабатываются сотнями часов заучивания паттернов в решениях задач на алгоритмы. Да и рассматриванием сильно упрощенных версий системного дизайна Netflix, Uber или Twitter Threads делу не поможешь. Навыки разработки приложений оттачиваются путем… ну, разработки приложений. Но часто на технических собеседованиях они даже не принимаются в расчет.
Читать дальше →
Всего голосов 149: ↑138 и ↓11 +127
Комментарии 397

.NET 7 против российской криптографии. Часть 2. Штампы времени

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

Практически неотъемлемой частью формирования электронной подписи стало формирование штампов времени (TS) на подпись. С их помощью обеспечивается доверенное подтверждение времени подписания документа. Со штампами времени в .NET 7 та же беда, что и с CMS-сообщениями - отсутствие нативной поддержки российских алгоритмов хэширования и электронной подписи на уровне фреймворка. Но, благо, старый добрый WinAPI и здесь поможет обойти проблему.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 8

Как можно использовать .NET из Javascript (React) в 2023 году

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

Статья показывает опыт использования .NET из JavaScript (React) с помощью компиляции .NET кода в WebAssembly с помощью новых возможностей .NET 7. Включает инструкцию по созданию проекта для .NET для использования из Javascript, и интеграции его в веб-приложение, написанного с использованием React. Рассматривается также сборка такого проекта с помощью GitHub Actions (CI) и хостинг его на GitHub Pages. Содержатся ссылки репозитории на GitHub тестового и реального проекта, использующие данный подход.

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

Windows — причина медленного интернета

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

Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.

Читать далее
Всего голосов 167: ↑161 и ↓6 +155
Комментарии 316

Настраиваем двухступенчатый WireGuard для выхода из страны

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

У Wireguard есть немало прекрасного, включая его простоту реализации, скорость и минималистичные клиенты, которые не вызывают проблем у пользователей.

В начале августа некоторые интернет операторы и провайдеры начали блокировку протокола WireGuard в РФ по его рукопожатию.

Лично испытывал блокировку у Мегафон и Теле2, но не заметил у Ростелеком. VPN по-прежнему работал через последнего.

Очень не хотелось отказываться от Wireguard в пользу прокси-серверов в духе VLESS+TLS-Vision, в виду того, что все наши пользователи уже сильно привыкли именно к Wireguard.
Поэтому вариант с кардинальной сменой клиентского софта не рассматривался.

Поскольку трафик Wireguard блокируется только на зарубежные адреса было принято решение добавить еще один хоп в систему, а начальное подключение осуществлять к серверу в РФ.

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

Мониторинг PostgreSQL. Новые возможности анализа производительности 1С и других систем. Часть 1: счётчики

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

В данной статье хочу поднять тему, которая представляет собой одну большую боль для администраторов, разработчиков и тестировщиков высоконагруженных (и не очень) систем под управлением PostgreSQL. Даже не «боль», а «БОЛЬ»!

Удивительно, что за почти 30 лет существования PostgreSQL не появилось нормальных инструментов для получения вменяемых счетчиков и трассировок. Все, кто работают с MS SQL Server используют профайлер. Это обязательный и привычный инструмент, который позволяет вылавливать запросы, интересные нам в рамках исследования. Вылавливать как все запросы без разбора, так и какие-то единичные запросы, которые удовлетворяют правилам отбора. Кроме того, можно настроить не одну трассу, а столько сколько нужно, с разными фильтрами. Эти трассы содержат очень богатый набор измерений для анализа: – Reads физические и логические; Writes; SPID, Процессорное время; план запроса (хэш плана), количество строк и т.д.

Многие компании стали всерьез рассматривать СУБД PostgreSQL как замену MSSQL и сталкиваются с тем, что возможностей для ее мониторинга просто нет – она как черный ящик, в котором наощупь вылавливаешь какую-ту информацию и пытаешься систематизировать ее хоть как-то.

Читать далее
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 14

Обновление до .NET 7: как оно может улучшить ваше программное обеспечение

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

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

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

Как сэкономить свои нервы и деньги компании на перестроении структуры больших таблиц без простоя в PostgreSQL

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

Привет! Меня зовут Васильев Виктор, я DBA в компании UIS и CoMagic. В этой статье на реальных примерах расскажу, как можно сэкономить время разработчика, администратора баз данных и ресурсы сервера(ов), используя утилиту pg_rebuild_table. Сопровождая большие, высоконагруженные системы, с бо’льшей вероятностью каждый сталкивался с кейсами, о которых будет рассказано дальше. Некоторые технические подробности пройду без детализации, чтобы сильно не усложнять и не делать статью очень громоздкой. Лучше отвечу на вопросы в комментариях.

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

Пройди свой путь в ширину: библиотеки для графов из инди-игры TESTAMENT

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

Графы — это не только математический объект, но и важный инструмент программистов. Они используются в играх, визуализации данных, социальных сетях и других серьезных проектах. Если вы не знаете, как работать с графами, то вы не программист. Конкретно раскладка графа в плоскости — задача не тривиальная. Но что делать, если вы хотите решить эту задачу легковесно и быстро?

Когда я начал работать над своим пет-проектом TESTAMENT, мне нужно было генерировать и отображать произвольные графы. Я хотел, чтобы локации были в виде простых шагов-событий, соединенных между собой. Примерами могут послужить проекты Slay The Spire, Cult of the Lamb, Darkest Dungeon и другие. Исследовав вопрос, я увидел, что существующие библиотеки слишком тяжелые и сложные для моих нужд.

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

Блокчейн-разработчик: как освоить профессию будущего уже сейчас

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

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

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

Читать далее
Всего голосов 62: ↑51 и ↓11 +40
Комментарии 12

Подборка полезных сервисов с применением нейронных сетей

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

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

Ознакомиться
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 9

Как хранить данные бота прямо в Телеграме

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

Как известно, бот это программа на компьютере, которая взаимодействует с серверами Телегам и притворяется человеком. Разумеется, у неё есть данные в своей собственной базе данных или типа того. Но если этот компьютер внезапно исчезнет...

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

Как Федор выписывался из военкомата после эмиграции: полный гайд по снятию с воинского учета удаленно

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

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

Читать далее
Всего голосов 150: ↑132 и ↓18 +114
Комментарии 280

Нужен ли ConfigureAwait?

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

image


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


Одна из многословных конструкций .NET связана с деталями реализации асинхронности и обросла кучей мифов. Про неё спрашивают на собеседованиях, код-ревью, делают обязательной, добавляя в правила линтера. Это .ConfigureAwait(false), сопровождающий каждый await в коде.


В этой статье я расскажу, зачем нужен ConfigureAwait(false) и как обойтись без него.

Читать дальше →
Всего голосов 61: ↑60 и ↓1 +59
Комментарии 19

На грани отвала eMMC: Устанавливаем Android на SD-карту на любом смартфоне/планшете! Вторая жизнь для дешевых кит. устр

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 21K
К сожалению, китайские производители бюджетных девайсов всё туже и туже затягивают пояса для уменьшения конечной цены девайсов. Попытки сэкономить сказываются не только на качестве дисплеев, пластиковых тачскринах, слабых процессорах, но и на памяти. Причём последнее время в устройства до 5-6 тысяч рублей ставят откровенно неликвидную и отбракованную память брендов Foresee и Barum, которая может прослужить как пару месяцев, так и 5 лет. Сегодня мы с вами: узнаем небольшую историю «затягивания» поясов китайцами, во всех подробностях перенесём Android на MicroSD-флэшку (гайд применим для любых производителей и чипсетов), посмотрим, как будет работать Android с такого накопителя и подведем итоги. Интересно? Тогда добро пожаловать!

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

Информация

В рейтинге
3 504-й
Откуда
Россия
Зарегистрирован
Активность