Рубрика «Софт» - 28

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

В этой заметке я расскажу как использовать gogrep, а также о VS Code расширении для более удобной работы с gogrep прямо из редактора.

gogrep: структурный поиск и замена Go кода - 1

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

Допустим, вы независимый разработчик и выпустили своё приложение. Чтобы упростить установку, вы создаёте установщик и начинаете его распространять. Какой-нибудь смелый экспериментатор загружает, запускает инсталлятор — но видит строгое предупреждение:

Windows Defender SmartScreen вредит независимым разработчикам - 1

Windows SmartScreen блокирует запуск исполняемого файла

Действительно, в текущем окружении Windows активно блокирует запуск бинарных файлов через функцию SmartScreen.
Читать полностью »

Опасный алгоритм SHA-1 убирают из библиотек SSH - 1
Сложность атак на SHA-1. Стоимость указана из расчёта стоимости аренды одного GTX 1060 в 35 долларов/месяц

Намного позже всех остальных, но разработчики библиотек для SSH приняли решение наконец-то отключить по умолчанию устаревшую криптофункцию SHA-1. Сегодня подбор серверного ключа аутентификации SHA-1, то есть коллизия с выбранным префиксом, на арендованном кластере GPU обойдётся в $45 тыс., как указано в таблице вверху. Это делает атаку доступной не только для государственных спецслужб, но и для коммерческих клиентов.

Об отключении SHA-1 по умолчанию одновременно объявили разработчики опенсорсных библиотек OpenSSH (release notes) и libssh (изменение кода).
Читать полностью »

Linux предлагает как универсальные дистрибутивы для работы и игр, так и специализированные, заточенные под гейминг. В этом посте о том, какие игровые дистрибутивы Linux актуальны на сегодняшний день (сугубо ИМХО, конечно же), а вы можете поучаствовать в опросе и поделиться своим мнением на этот счёт.

Дистрибутивы Linux для гейминга - 1

Игры под Linux стали набирать популярность в 2013 году, когда Valve объявила о создании SteamOS на базе Linux. Кроме того, в январе 2013 года Valve портировала на Linux свою игру Half-Life. Пользователи Linux получили возможность играть в качественные игры, для которых в прошлом нужна была операционная система Windows или даже игровая консоль. Всё начиналось довольно скромно: всего несколько компаний (CD Projekt Red, Deep Silver, Valve и некоторые другие), добавили значок пингвина Linux в свой список совместимости. Но в конечном итоге даже Gearbox и Square Enix выпустили Linux-версии своих лучших игр. Сегодня благодаря проекту Valve Proton игры, у которых нет официального релиза для Linux, по-прежнему могут работать в SteamOS и других дистрибутивах Linux.
Читать полностью »

Личный опыт: как я подавал заявку в реестр отечественного ПО, и обнаружил запрет для всех версий Linux - 1

Я представитель микробизнеса, который делает софт для коммерческих заказчиков из научной сферы. Карантин и вынужденная самоизоляция 2020 года заставили меня искать заказчиков в госсекторе, а для этого нужно сперва попасть в Реестр отечественного ПО. Чтобы это сделать, нужно оформить заявку по правилам из Постановления Правительства №1236. Решение о включении принимает Минкомсвязи.

Как оказалось на практике, эксперты министерства руководствуются совершенно иным документом — методическими рекомендациями от ЦКИТ, о существовании которого я как разработчик даже и не знал. Этот документ прямо запрещает использовать компоненты софта с GPL- и MPL-лицензиями. Парадокс в том, что под GPL издаются основные компоненты Linux, на базе которых построено как минимум 40 отечественных операционных систем. Получается, все они были внесены с нарушением и согласно п.33 правил из ПП 1236 должны быть немедленно исключены из реестра. Или же «своим» можно, а «чужим» нет? Подробнее под катом.
Читать полностью »

Всем привет. Мы подготовили перевод еще одного полезного материала в преддверии старта курса «Разработчик С#». Приятного прочтения.


Поскольку недавно мне довелось составлять список лучших практик в C# для Criteo, я подумал, что было бы неплохо поделиться им публично. Цель этой статьи — предоставить неполный список шаблонов кода, которых следует избегать, либо потому что они сомнительны, либо потому что просто плохо работают. Список может показаться немного рандомным, потому что он слегка выдернут из контекста, но все его элементы в какой-то момент были обнаружены в нашем коде и вызывали проблемы в продакшене. Надеюсь, это послужит хорошей профилактикой и предотвратит ваши ошибки в будущем.

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

И последнее, но не менее важное: некоторые пункты (например, ConfigureAwait) уже обсуждались во многих статьях, поэтому я не буду подробно останавливаться на них. Цель заключается в том, чтобы сформировать компактный список моментов, на которые нужно обращать внимание, а не давать подробную техническую выкладку по каждому из них.Читать полностью »

VS Code — мой любимый редактор кода. Это — самый популярный из существующих редакторов, возможности которого можно расширять практически до бесконечности. И, что удивительно, разработала его компания Microsoft. Я полагаю, что ни один из других редакторов и ни одна из других IDE не может дать разработчику хотя бы половину того, что способен дать ему VS Code. Одна из сильных сторон VS Code — это система расширений. Она позволяет создавать расширения буквально на все случаи жизни. Хочу рассказать вам о моём топ-10 расширений для VS Code.

10 расширений для VS Code, без которых я не могу программировать - 1
Читать полностью »

Сегодня вечером был выпущен финальный ISO-образ Windows 10 2004 (20H1). Им стал билд за номером 19041.208.vb_release_svc_im.200416-2050. Образы для разработчиков уже доступны на MSDN как вскоре и сами знаете где.

Все нововведения Windows 10 2004 (20H1) - 1
Читать полностью »

Предположим, я написал такой bash-скрипт с названием delay.sh. Как думаете, что он делает?

#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"

Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именно это. Там есть опасная команда в середине, но она закомментирована и не выполняется.

Представьте, что я снова запускаю этот скрипт, но теперь мне не хочется ждать 30 секунд — это слишком долго. Я открываю вторую консоль, меняю sleep 30 на sleep 3, затем сохраняю файл. Как думаете, что будет теперь?

Ну, через 30 секунд скрипт удалит все мои файлы.
Читать полностью »

Моё хобби — открыть «Философию UNIX» Макилроя на одном мониторе, одновременно читая маны на другом.

Первый из принципов Макилроя часто перефразируют как «Делайте что-то одно, но делайте хорошо». Это сокращение от его слов «Создавайте программы, которые делают одну вещь хорошо. Для новой работы создавайте новые программы, а не усложняйте старые добавлением новые "функций"».

Макилрой приводит пример:

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

Если вы откроете справку для ls, то она начинается с

ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]

То есть однобуквенные флаги для ls включают все строчные буквы, кроме {jvyz}, 14-ти прописных букв, @ и 1. Это 22 + 14 + 2 = 38 только односимвольных вариантов.
Читать полностью »


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