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

GitHub *

Веб-сервис для хостинга и разработки IT-проектов

Сначала показывать
Порог рейтинга
Уровень сложности

Обучение модели Stable Diffusion текстовой инверсии с помощью diffusers

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

Листая интернет на наличие интересных технологий в области нейронных сетей и различного искуства,я наткнулся на пост в Твиттере, в котором Suraj Patil объявил о возможности обучения модели Stable Diffusion текстовой инверсии используя всего 3-5 изображений.

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

Использование GitHub в обучении студентов. Автоматизация проверок. Часть I

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

В конце декабря 2020 года я написал несколько статей на Хабре по своему опыту использования GitHub в обучении студентов (ссылки на них будут в конце сей статьи).

Сегодня же хочу рассказать об автоматизации проверки кода студентов. Примеры будут про C#, т.к. это мой основной язык, на котором я преподаю программирование.

Для меня при обучении программированию важно, чтобы студенты умели не только правильно решать задания, но и красиво писать код. В обучении и проверки заданий я использую EditorConfig, dotnet cli и GitHub Actions. Но обо всём по порядку.

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

Coingecko & Agent Ftpupload создаем красивые адреса криптокошелька, но помним о сохранности приватного ключа

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

В криптосообществе за многие годы образовался целый культ по созданию красивых адресов для криптокошельков. Каждый желающий может сгенерировать для себя «красивый» адрес, который будет не только уникальным, но и будет иметь в себе определенное сочетание букв и цифр. Это очень увлекательный и интересный процесс, но нельзя полностью исключать риск, связанный с привлечением третьей стороны и перехватом приватного ключа к криптокошельку. Все мы когда-либо слышали о независимых агрегаторах CoinMarketCap и CoinGecko это самые популярные площадки для отслеживая цен на бирже, но в этой статье мы не будем рассматривать механизмы и функции этих площадок. Речь пойдет о скрытых кодах в vanitygen + oclvanitygen и стремительное распространение их на популярных площадках.

Это исследовательский проект создан в целях информационной безопасности.

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

Согласно порталу TAdviser жертвами все чаще становятся из-за использование не проверенное программное обеспечение.

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

Истории

Как я выиграл апелляцию против американских санкций

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

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

Пораскинув мозгами и посовещавшись с моим приятелем, основателем московского интернет-провайтера RiNet Сергеем Рыжковым, у которого в тот же день забанили счет в Ситибанке в Лондоне, я решил: нужно бороться.

Читать далее
Всего голосов 82: ↑63 и ↓19 +44
Комментарии 105

Четыре важных теста для Apache Kafka CI/CD с GitHub Actions

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

Если вы используете GitHub для создания приложений Apache Kafka®, наверняка вы захотите интегрировать Kafka в свою среду разработки и эксплуатации GitOps. Эта статья для тех, кто понимает принципы GitOps, ценность непрерывной интеграции и поставки (CI/CD) и важность промежуточных сред (staging).

Мы поговорим о том, как применять принципы GitOps к жизненному циклу разработки клиентского приложения Kafka с помощью GitHub Actions — для тестирования в локальной среде и Confluent Cloud, со Schema Registry и без него, и для эволюции схемы.

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

Реализация кэш-компрессии по алгоритму base+delta

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

Существенную часть кристалла современных ЦП занимает кэш-память. Дальнейшее увеличение кэш-памяти без изменения технологических норм приведет к соответствующему увеличению кристалла. Одним из способов увеличения объема хранимой информации в кэше без увеличения самого кэша является использование алгоритмов компрессии. Среди них выделяются алгоритмы Base+Delta и Base-Delta-Immediate. Данная статья посвящена реализации первого алгоритма.

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

Криптостойкость Биткоина против квантового компьютера QIANSHI от китайского гиганта поисковой системы Baidu Inc

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

В погоне за кубитами Baidu Inc как лидер среди китайских поисковых систем не отстаёт от своего западного конкурента Alphabet Inc.

В августе 2022 года китайский гигант поисковой системы Baidu Inc разработал собственный квантовый компьютер, который вскоре получил название «Qianshi».

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

Биткоин использует сразу несколько криптографических алгоритмов: алгоритм цифровой подписи на эллиптической кривой (ECDSA) для подписи транзакций и две хэширующие функцииSHA-256 и RIPEMD160.

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

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

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

Один из наиболее часто упоминаемых способов атаки на Биткойн который может быть применим квантовыми компьютерами это атака «дней рождения» (Birthday attack)

Этот метод основан на поиске коллизий хеш-функций на основе парадокса дней рождения.

Читать далее
Всего голосов 14: ↑2 и ↓12 -10
Комментарии 4

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

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

Всем нам известна фраза: "Все что попадает в интернет, остается в нем навсегда и становится общедоступным".

Вплоть до скрытого контента.

В 2021 году пандемия вернула популярность QR-кодов. Впервые QR-коды были использованы на производстве в 1994 году дочерняя компания Toyota в Японии ввела их на заводе по сборке для контроля выпускаемых автомобилей и деталей к ним. В отличие от штрих-кода QR-код содержит больше информации, что и подтолкнуло производителя к введению инновации. Технология начала распространяться в основном в азиатских странах, а в 2003 году китайская компания Inspiry разработала специальный механизм считывания QR-кодов, который позволил это делать быстро, что подогрело популярность. Однако широкое распространение пришлось уже на период массового использования планшетов и смартфонов, когда считывание стало доступно через камеру носимого устройства.

Устройства от китайской компании Inspiry

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

Переводы, оплаты, QR-коды просто незаменимая вещь и самое важное в том что все это экономит наше время.

Нужно помнит ещё одну важную вещь:

Googlebot, Bingbot, Baidubot работают 24/7 и в любой момент могут сохранить приватные данные в своих гигантских серверах.

На поиски скрытого контента из глубин поисковых систем подключаются совершено противоположенные поисковым ботам герои в черном худи из известного сериала Мистер Робот (Mr. Robot) .

«MrRobotQR» - это скрипт с открытым исходным кодом который автоматизирует процесс от ввода ключевого слова поиска до вывода приватного ключа Биткоин кошелька.

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

Яндекс выпускает DivKit — фреймворк для server-driven UI с открытым кодом

Время на прочтение 12 мин
Количество просмотров 49K
Привет! Сегодня Яндекс выкладывает в опенсорс DivKit — фреймворк для отрисовки интерфейсов из ответа сервера. Серверная вёрстка поможет ускорить разработку: наладить отправку апдейтов от сервера разным версиям приложения, создать прототип или просто написать интерфейс один раз для нескольких платформ.


Фреймворк включает в себя несколько библиотек: клиентскую часть по отрисовке интерфейсов для Android, iOS и веба, а также DSL для формирования ответа сервера на Kotlin, TypeScript и Python. Исходный код опубликован на Гитхабе под лицензией Apache 2.0.

Сейчас DivKit используется в приложении Яндекс, Алисе, Едадиле, Маркете, ТВ и других приложениях. В этом посте я постараюсь вспомнить историю фреймворка, затем мы напишем с его помощью небольшой просмотрщик ленты Хабра, а в конце я покажу ещё несколько простых примеров интеграции.
Читать дальше →
Всего голосов 124: ↑117 и ↓7 +110
Комментарии 49

Восстановление Биткоин Кошелька через короткие подписи ECDSA

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

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

Почему же эти подписи ECDSA называются короткими?

Ответ на этот вопрос вы можете получить из обсуждаемой темы: "Самая короткая подпись ECDSA" [The shortest ECDSA signature]

В прошлой нашей статье: "Уменьшение приватного ключа через скалярное умножение используем библиотеку ECPy + Google Colab" мы создали Python-скрипт: maxwell.py который сгенерировал для нас довольно интересный публичный ключ

(0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63 , 0xc0c686408d517dfd67c2367651380d00d126e4229631fd03f8ff35eef1a61e3c)

Как мы знаем значение сигнатуры "R" это и есть публичный ключ от секретного ключа (Nonce)

Взгляните на Blockchain транзакцию: 11e6b169701a9047f3ddbb9bc4d4ab1a148c430ba4a5929764e97e76031f4ee3

RawTX:

0100000001afddd5c9f05bd937b24a761606581c0cddd6696e05a25871279f75b7f6cf891f250000005f3c303902153b78ce563f89a0ed9414f5aa28ad0d96d6795f9c6302200a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8012103151033d660dc0ef657f379065cab49932ce4fb626d92e50d4194e026328af853ffffffff010000000000000000016a00000000

Размер этой транзакции всего лишь: 156 байт

Как можно восстановить Биткоин Кошелек через короткие подписи ECDSA?

В криптоанализе блокчейна криптовалюты Bitcoin мы используем собственный Bash-скрипт: btcrecover.sh

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

Как связать Rstudio с Github: актуально для пользователей Mac OS

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

В данной заметке рассмотрим, как связать Rstudio с вашим аккаунтом на Github. Отмечу сразу, данная заметка подойдет тем, кто работает через операционную систему mac os.

Мы будем исходить из трех ограничений.

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

Доступ к API Binance, KuCoin и Huobi на C#

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


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

Рассмотрим одну из таких ситуаций, когда получать данные на клиента напрямую с биржи не удобно, в нашем случае это получение списка торговых пар биржи отсортированных по таким показателям как например, ликвидность и волатильность. Вот в примере ниже, мы из клиентского кода на JavaScript обращаемся за списком продуктов биржи к своему Rest full API Web Service по ссылке

https://cryptoalert.mizerov.com/api/Products/” + ex

где ex – код биржи.

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

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Знакомимся с дата-ориентированным проектированием на примере Rust

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

James McMurray


В этом посте мы исследуем основные концепции «Data-Oriented Design» (далее «дата-ориентированное проектирование» на языке Rust.
Весь исходный код для этого поста выложен на Github.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 2

Использовать ли Reusable Workflows в GitHub Actions?

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

CI система GitHub Actions достаточно свежа по сравнению со своими конкурентами, но продолжает радовать сочетанием легкости использования и постепенным расширением функционала. На мой взгляд, шаблонизация используемых пайплайнов это безумно важная составляющая, и в конце 2021 года GitHub закрыли этот вопрос, представив на наш суд Reusable Workflows. В данной статье я попробую поделиться собственным опытом построения проекта полностью на основе шаблонов workflow и порассуждать о применимости этого подхода.

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

Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом

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

polkit – это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав a GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Раскрытие уязвимости было скоординировано с командой по поддержке polkit, а также с командой по обеспечению безопасности в компании Red Hat. О раскрытии этой уязвимости было объявлено публично, патч для нее был выпущен 3 июня 2021 года, и ей был присвоен код CVE-2021-3560.

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

История уязвимости CVE-2021-3560 и какие дистрибутивы она затронула

Рассматриваемый баг достаточно старый. Он вкрался в код более восьми лет назад в коммите bfa5036 и впервые мог использоваться в версии 0.113 программы polkit. Однако, во многих популярных дистрибутивах Linux эта уязвимая версия не использовалась до относительно недавнего времени.

Немного специфической историей этот баг обладает в Debian и его производных (например, в Ubuntu), так как Debian использует форк polkit, в котором есть своя особенная схема нумерации версий. В форке Debian этот баг появился в коммите f81d021 и впервые попал в дистрибутив в версии 0.105-26. В стабильном релизе Debian 10 (“buster”) используется версия 0.105-25, таким образом, уязвимости в нем нет. Но некоторые производные Debian, в том числе, Ubuntu, основаны на нестабильной версии Debian, а она уязвима.

Читать далее
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 3

Распознавание поднятых пальцев на Python+OpenCV

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

В данной статье хочу рассмотреть банальный и не сложный проект, а именно подсчет количества поднятых пальцев.

Все исходники можно найти на моем Github.

Код будем рассматривать с самого начала, но лучше всего ознакомиться с моими предыдущими статьями.

Подготавливаем среду и устанавливаем следующие библиотеки:

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

Очень странные дела на GitHub

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

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

3 августа Stephen Lacy написал в твиттере, что «обнаружил широкомасштабную атаку на 35 000 репозиториев GitHub», на проекты crypto, golang, python, js, bash, docker, k8s, а так же скрипты npm, образы докеров и установочные документы. (Позже он уточнил, что не «35 000 репозиториев», а 35 000 «code hits»)

Вскоре после его твита либо GitHub, либо злоумышленник удалил большинство общедоступных форков, а еще пару часов спустя появляется твит от только что созданной учетной записи пользователя @Pl0xP, где он утверждает, что он стоит за атакой, и это часть аудита за вознаграждение — bug bounty.
Читать дальше →
Всего голосов 91: ↑43 и ↓48 -5
Комментарии 55

Поиск объектов на видео с помощью Python

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

В данной статье хочу рассказать про поиск объектов на видео с помощью Python и OpenCV. Помимо обычных видео, можно использовать и камеры.

Полный код и все исходники можно найти на моем Github.

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

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

Яндекс выложил в опенсорс бету фреймворка userver

Время на прочтение 10 мин
Количество просмотров 73K
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →
Всего голосов 177: ↑173 и ↓4 +169
Комментарии 142

Вклад авторов