Обновить
64K+

GitHub *

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

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

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

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

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →

Книга: «Программирование на Python с помощью GitHub Copilot и ChatGPT.»

Время на прочтение34 мин
Охват и читатели43K
image Привет, Хаброжители!

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

Узнайте, как создавать и улучшать программы на Python с помощью ИИ, даже если прежде вы не написали ни строчки компьютерного кода. Сэкономьте время на рутинном программировании и воспользуйтесь услугами ИИ, способного мгновенно воплотить ваши идеи в жизнь. Заодно выучите Python!
Читать дальше →

Автоматическая установка приложений из GitHub-релизов

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

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

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

Читать далее

Eppie — P2P почта, теперь с графическим интерфейсом

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

Привет, Хабр!

Несколько недель назад, в этом посте, мы представили CLI для Eppie — p2p почты с шифрованием и открытым протоколом. Сегодня мы хотим рассказать о GUI приложении, которое уже доступно на GitHub. Если вы читали нас раньше, можете пропустить введение и сразу перейти к разделу «Как пользоваться». Ну а все остальные, кто увлекается децентрализованными технологиями и думает о приватности данных, — поехали.

Читать далее

Тысяча и одна библиотека С++

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

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++

Управляем нашей лодкой прямо с веб-страницы на телефоне

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели6.1K

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

Короче, идем под кат, я все расскажу.

Как работает генерация видео в open source проекте Wunjo CE

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.9K

Генерация видео теперь open source? Наконец-то я нашёл время, чтобы добавить генерацию видео из текста и изображений в свой open source проект Wunjo CE. В этой статье мы рассмотрим, как это работает, сравним его с похожими решениями, изучим основы подхода и его альтернативы.

Смотрим

Ачивки за коммиты в git. Пятничный пост

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели12K

Кратко: сохраняем лог git в файл и кидаем в браузер тут.

Привет Хабра. Год назад я писал о разных визуализаторах статистики git и своем велосипеде. За это время удалось внести много улучшений, в том числе существенно увеличить набор ачивок для программистов. Но настал творческий тупик и мне уже не хватает фантазии придумывать новые ачивки. Они должны быть смешные, с издевкой и легко переводиться на другие языки. Может у вас будут идеи?

Читать далее

Обновление Java с 17 на 21: через тернии к звездам

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

Меня зовут Денис, я тимлид команды R&D в Naumen Service Management Platform.

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

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

Читать далее

Вечный покой .env: как эффективнее удалять закомиченный файл .env из Git-репозитория

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели45K

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

Я работаю на VS Code, и я, to be honest, так и не понял, с какой стати .gitignore "не игнорирует" .env. Причем спокойно "игнорирует" другие файлы, директории.

Всё же, нужно действовать, исходя из конкретного кейса, но если вы не хотите, чтобы какой-нибудь John Doe воспользовался данными из вашего .env, то вы перешли по верной ссылке. Вы же не отдаете ключи грабителю с фразой "Грабьте мой дом", верно?

Читать далее

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

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

По мнению Артема Закируллина*, одна из фундаментальных проблем, с которой сталкиваются разработчики при анализе кода – высокая когнитивная нагрузка. Это не абстрактное, а реальное ограничение возможностей, которое стоит времени и денег. На чтение и понимание кода, тратится больше времени, чем на его написание. Поэтому, разработчику нужно постоянно задаваться вопросом: не пишет ли он код, чтение которого создает чрезмерную когнитивную нагрузку?

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Chrome в Windows 7. Google наносит ответный удар

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

И это уже третья статья (первая и вторая) из цикла «Chrome Windows 7».

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

StarForce, DENUVO, VMProtect в Chrome?

Читать далее

Как информативно оформить профиль на GitHub?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели51K

Тетрадь, дневник — ваше лицо. А круто оформленный профиль на гитхабе — статус вашей занятости. Чем больше участий в проектах, тем безработнее... Пока молодые специалисты оформляют свои страницы с "Lib-Meta-Neo ML-Scientist 10 years of expirience" на LinkedIN настоящий амбассадор HR и трудового найма бегут на GitHub. Именно там выискиваются самые закостенелые гики программирования, вносящие тридцать пять тысяч коммитов в безбюджетные опенсорс проекты; именно там рождаются гении, разрабатывающие AAA-проекты геймдева на ассемблере. 

Все это шутки. 

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

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

Читать далее

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

Искусство README

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

Привет, Хабр!

На связи Андрей из сообщества ITMO.OpenSource. Мы считаем, что важно делать открытую науку, поэтому пишем об открытом коде, проводим митапы «Scientific Open Source» и разрабатываем научные решения с открытым кодом.

Мы убеждены, что открытая наука – это не просто код на github, но и совокупность факторов, которые позволяют этим кодом эффективно воспользоваться: запустить, модифицировать, внедрить в другие проекты. Поэтому я решил перевести популярную статью JS-разработчицы Киры Окли «Art of README». Несмотря на разницу в экосистемах (я пишу преимущественно на Python), мне кажется, многие идеи этой статьи актуальны для любого проекта на любом языке.

Читать далее

Уязвимости на GitHub: в библиотеке Ruby, которую скачали 250 000 раз, модулях для электронных замков и популярных играх

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

В конце марта в блоге GitHub вышла статья, как защищаться от уязвимостей типа RepoJacking. В первых строчках автор советовал использовать пакетные менеджеры типа NPM и PyPI, чтобы киберугроза этого вида «не угрожала пользователю напрямую». Можно было бы вздохнуть с облегчением, но читатели Хабра уже знают об исследовании команды МТС RED ART, которое позволило найти более 1300 уязвимых для RepoJacking репозиториев.

Меня зовут Андрей Сомсиков, я — руководитель команды МТС RED ART. В этой статье — вторая часть нашего исследования уязвимых репозиториев на GitHub. Мы нашли уязвимости в популярных библиотеках: для разработки на Ruby, для электронных замков и даже для пользователей Reddit и Minecraft. Но не всё так страшно! В конце дам рекомендации от всей нашей команды по борьбе с уязвимостями в популярных хостингах кода.

Читать далее

Как инженеры GitHub используют GitHub Copilot: 4 способа

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


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

Распознаем голосовые сообщения Telegram без СМС и пересылок ботам

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

Как всем известно, люди делятся на две категории:

1. Те, кто любит отправлять голосовые сообщения

2. Те, кто кто надеются, что для первых приготовлен отдельный котел

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

Читать далее

Развертываем peer-to-peer чат с голосом, видео, шарингом экрана, файлов и паролем

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

Эта секция написана уже после статьи, чтобы читатель посмотрел, а надо ли ему что-то отсюда или нет, но это забавное приключение, как всегда.

Что будет ниже:

Поиск open source решения для общения голосом, шаринга экрана, включения видео и чатов в режиме peer-to-peer, без лишних бекендов
Запуск этого решения в открытую в github pages
Заворачивание этого решения на приватный сервер
Простенькое закрытие доступа туды через basic http auth
Заключение с описанием некоторых замечаний и потенцевальных возможностей

Читать далее

Open Source в российском ИИ: исследование ландшафта

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

Привет, Хабр!

Это исследователи из NSS Lab ИТМО и создатели сообщества ITMO.OpenSource. Мы считаем, что важно делать не просто науку, а открытую науку, результатами которой можно легко воспользоваться. Поэтому пишем об открытом коде, проводим митапы «Scientific Open Source» и разрабатываем научные решения с открытым кодом. Эта статья написана на материале исследования, которое мы презентовали на последнем митапе. В ней поговорим об открытом научном коде, посмотрим, как с ним обстоят дела в разных организациях, и поделимся подборкой репозиториев, которые могут решать различные научные задачи.

Читать далее

К чему с годами приводит работа с Dependency Injection и Service Locator

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

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

Так произошло и со мной. Я решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в привычной среде для моих привычных задач. 

Делюсь написанным — вдруг вам это поможет прокачать технические скиллы и создать собственную библиотеку. 

Читать далее