Обновить
64K+

GitHub *

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

28,09
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

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

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


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

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

Студенты могут использовать GitHub Copilot для решения заданий по программированию на экзаменах

Время на прочтение2 мин
Охват и читатели2.4K

Преподаватель Массачусетского университета в Амхерсте (США) Эмери Бергер в своём блоге предупредил коллег, что студенты могут использовать GitHub Copilot для решения заданий по программированию на экзаменах. При помощи Copilot учащиеся мгновенно генерируют решения, достаточно только начать писать код, и инструмент предложит автозаполнение.

Читать далее

Российский разработчик ПК-эмулятора PS5 смог запустить на нём SDK-сэмплы с консоли

Время на прочтение1 мин
Охват и читатели8K
Российский разработчик с ником InoriRus выпустил обновлённую версию эмулятора PS4 и PS5 для ПК под названием KyTy. Он впервые запустил на эмуляторе SDK-сэмплы с PS5.

Рендеринг выполнялся стабильно с частотой 59-60 fps. Пока эмулятор находится на ранней стадии разработки, поэтому в играх фреймрейт может отличаться.

Пока же InoriRus продемонстрировал запуск двух игр с PS4 на ПК с процессором Intel i7-7400 и видеокартой GTX 1050 Ti. Частота кадров в головоломке Blackhole составляла от 5 до 15 fps, а в Worms W.M.D — 15-17 fps. На более мощном ПК частота кадров должна быть выше.


Разработчик выложил актуальную версию эмулятора KyTy на GitHub.

В мае InoriRus уже поделился на GitHub кодом своего эмулятора PS4. Тогда он говорил, что инструмент сможет работать и с PS5, но пока для этого не реализован рендеринг графики.

Код КуТу написан на языке C++. На данном этапе он работает исключительно на Windows 10 x64.

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

Время на прочтение2 мин
Охват и читатели2.4K

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели19K


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

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

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

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

Читать далее

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

Время на прочтение13 мин
Охват и читатели13K
image

James McMurray


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

GitHub опубликовал отчёт о блокировках за первое полугодие 2022-го

Время на прочтение2 мин
Охват и читатели2.1K

GitHub опубликовал отчёт, в котором рассказал об уведомлениях о нарушении интеллектуальной собственности и публикации незаконного контента, поступивших в первую половину 2022 года.

Читать далее

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

Время на прочтение9 мин
Охват и читатели5K

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

Читать далее

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

Время на прочтение14 мин
Охват и читатели20K

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, а она уязвима.

Читать далее

Исследователи рассказали об атаке AEPIC Leak, приводящей к утечке ключей из анклавов Intel SGX, и показали код эксплойта

Время на прочтение2 мин
Охват и читатели1.5K


Группа исследователей из Института прикладной обработки информации и коммуникаций (IAIK) Грацского технического университета рассказала об атаке AEPIC Leak, приводящей к утечке конфиденциальных данных из изолированных анклавов Intel SGX (Software Guard eXtensions).
Читать дальше →

Минцифры отложило на неопределённый срок эксперимент по созданию государственного репозитория ПО

Время на прочтение3 мин
Охват и читатели2.5K
9 августа 2022 года СМИ сообщили, что Минцифры отложило на неопределённый срок эксперимент по созданию государственного репозитория ПО.
Читать дальше →

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

Время на прочтение4 мин
Охват и читатели19K

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

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

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

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

Читать далее

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

Время на прочтение3 мин
Охват и читатели58K
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.
Читать дальше →

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

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

Время на прочтение5 мин
Охват и читатели38K

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

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

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

Читать далее

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

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



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

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

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

Описание библиотек логирования

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

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

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

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

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

В данной статье представлен обзор трех наиболее популярных библиотек логирования: Log4Net, SeriLog, NLog.

Читать далее

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

Время на прочтение5 мин
Охват и читатели59K

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

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

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

Читать далее

Энтузиаст создал бот для автопостинга новых изображений «Джеймса Уэбба» и выложил код на GitHub

Время на прочтение2 мин
Охват и читатели2.1K

Пользователь GitHub с ником Adam Lastowka создал бота для автопостинга новых изображений космического телескопа «Джеймса Уэбба» в Twitter в профиле JWST Photo Bot. Код и описание бота опубликованы на GitHub. Сами данные берутся с портала MAST. Они представляют собой общедоступные результаты наблюдений с приборов MIRI и NIRCAM, публикуемые в файлах форматов .i2d и .fits. Для получения файлов с MAST автор использует AstroQuery.

Читать далее

Управление громкостью звука жестами на Python

Время на прочтение3 мин
Охват и читатели12K

В данной статье хочу рассказать про один проект из курса по OpenCV Python. Посмотреть полный код можно на Github.

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

Читать далее

Google развивает язык программирования Carbon для экспериментальной замены C++

Время на прочтение2 мин
Охват и читатели43K


Разработчики из Google развивают язык программирования Carbon в качестве экспериментальной замены C++. Исходные коды проекта распространяются под лицензией Apache 2.0.
Читать дальше →