Обновить
128K+

GitHub *

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

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

Бэкдор в одной из зависимостей библиотеки EventStream

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


Еженедельно из репозитория NPM загружается более 1,9 миллионов копий библиотеки EventStream. Она используется во многих крупных проектах для простой и удобной работы с потоками в Node.JS. Среди прочих, эта библиотека обрабатывает потоки и в популярном криптокошельке Copay (впрочем, об этом позже).

21 ноября 2018 года случилось странное. GitHub-пользователь @FallingSnow сообщил, что в одной из зависимостей event-stream спрятан вредоносный код, который фактически представляет собой бэкдор неизвестной функциональности.

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

Ночью спит спокойно мама — мы собираем OpenCV для Raspbian'a

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

Последние пару недель были непростыми для нашей команды. Выпускали OpenCV 4, а вместе с ним готовились к Intel's OpenVINO toolkit R4, в состав которого входит OpenCV. Думаешь, отвлекусь на время, посмотрю, как обычно, форумы про OpenCV, да комментарии пользователей, и тут на тебе, модно стало говорить что OpenCV не IoT, что под Raspberry Pi собрать — припоя не хватает, что на ночь make -j2 ставить — утром будет готово, если повезёт.


Поэтому предлагаю дружно взяться за руки и посмотреть, как же можно собирать библиотеку OpenCV для 32-битной операционной системы, исполняемой на ARM процессоре, используя ресурсы машины с 64-битной OS, движимой отличной архитектурой CPU. Колдовство Кросс-компиляция, не иначе!

Читать дальше →

Как DeviceLock DLP предотвращает утечки конфиденциальных данных на GitHub

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

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



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

Читать дальше →

Атака на Github Pages с перехватом сайта на вашем домене

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


Большинство разработчиков знают и любят github pages. На случай, если вы не встречались с ними — этот сервис даёт возможность создать статический сайт из вашего репозитория, который будет доступен на домене smth.github.io. Это безумно удобно для всякой временной статики, документации, небольших простых сайтов и так далее. Не приходится думать о каком-то дополнительном веб сервере.


Так же там есть возможность привязать к репозиторию свой домен — тогда всё будет совсем красиво. Даже поддержка SSL есть.


После этого небольшого введения перейдём к собственно теме статьи. Совсем недавно (9 ноября) у меня приключилась интересная история. Рекомендую не читать её залпом, а периодически останавливаться и прикидывать, что же означают все полученные на текущий момент вводные. Думаю, из этого выйдет интересная тренировка, хотя сюжет моего детектива оказался и не очень длинным и закрученным.

Читать дальше →

Программный модуль оцифровки поврежденных документов

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

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


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


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


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


image


Для обучения использовалось 144 картинки. Размер может быть разным, но желательно должен быть в пределах разумного. Картинки должны иметь формат PNG. После считывании изображения используется бинаризация – процесс преобразования цветного изображения в черно-белое, то есть каждый пиксель нормализуется в диапазон от 0 до 255, где 0 – это черный, 255 – белый.


Чтобы обучить сверточную сеть, нужно больше изображений, чем имеется. Было принято решение разделить изображения на части. Так как обучающая выборка состоит из картинок разного размера, каждое изображение было сжато до 448х448 пикселей. В результате получилось 144 изображения в разрешении 448х448 пикселей. После чего все они были нарезаны на неперекрывающиеся окна размером 112x112 пикселей.

Читать дальше →

Покупка GitHub завершена. Что будет дальше?

Время на прочтение2 мин
Охват и читатели13K
Покупка корпорацией Microsoft сервиса GitHub полностью завершена. Недавно новый CEO GitHub, Nat Friedman, поделился вступительным анонсом, который мы выкладываем здесь. Подробности о будущем сервиса под катом.

Читать дальше →

Анализ инцидента 21 октября на GitHub

Время на прочтение10 мин
Охват и читатели56K
Роковые 43 секунды, которые вызвали суточную деградацию сервиса

На прошлой неделе в GitHub произошёл инцидент, который привёл к деградации сервиса на 24 часа и 11 минут. Инцидент затронул не всю платформу, а только несколько внутренних систем, что привело к отображению устаревшей и непоследовательной информации. В конечном счете данные пользователей не были потеряны, но ручная сверка нескольких секунд записи в БД выполняется до сих пор. На протяжении почти всего сбоя GitHub также не мог обрабатывать вебхуки, создавать и публиковать сайты GitHub Pages.

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

«Class-fields-proposal» или «Что пошло не так в коммитете tc39»

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

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


Казалось бы, вот оно счастье: class-fields-proposal, который спустя долгие годы мучений коммитета tc39 таки добрался до stage 3 и даже получил реализацию в хроме.


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

Читать дальше →

На GitHub произошёл сбой БД

Время на прочтение1 мин
Охват и читатели12K
Сегодня после нескольких попыток создания Issue и записи комментариев к уже существующим — столкнулся с тем что запись/комментарий визуально отображаются а после перезагрузки — пропадают.

Читать дальше →

GitHub анонсировал собственный CI/CD и начал раздавать инвайты

Время на прочтение2 мин
Охват и читатели23K
На прошедшей «GitHub Universe» компания анонсировала много разного, но меня больше всего «зацепило» их собственное CI/CD решение. Основано на Docker, может собирать и выполнять контейнеры по пушу в репозиторий, появлению нового тикета, созданию релиза. здесь можно оставить заявку на участие в публик бете, Microsoft будет выдавать инвайты небольшими пачками. Под катом — мои спекуляции чем такая штука может быть нам полезна при живых GitLab и CircleCI.
Читать дальше →

Infer.NET: мощная система машинного обучения теперь OpenSource

Время на прочтение2 мин
Охват и читатели13K
Система машинного обучения, которая настолько крута, что помогла медикам углубить знания о детской астме, теперь стала доступна для всех. Исходный код разработанной Microsoft системы Infer.NET опубликован на GitHub, и теперь кто угодно может использовать эту интеллектуальную технологию машинного обучения в своих приложениях.

Читать дальше →

GitHub Pull Requests в Visual Studio Code

Время на прочтение3 мин
Охват и читатели21K
Как и во многих других проектах с открытым исходным кодом, в сообществе Visual Studio Code используются запросы на принятие изменений. С их помощью разработчики совместно исправляют ошибки и добавляют новые функции. Недавно мы обновили общедоступную пробную версию GitHub Pull Requests for Visual Studio Code, тем самым устранив проблему, с которой мы и миллионы разработчиков сталкиваемся каждый день: невозможность просматривать исходный код там, где он был написан, — в редакторе.

Читать дальше →

Защита репозиториев на GitHub от вредоносных коммитов

Время на прочтение4 мин
Охват и читатели11K
Mozilla старается защитить свои репозитории на GitHub от вредоносных изменений. Как показал недавний инцидент с Gentoo, такие атаки реальны.


Первоначально Mozilla использовала GitHub как запасной хостинг. Подобно Gentoo, оригинальные репозитории хранились на собственной инфраструктуре. И хотя большая часть кода Firefox по-прежнему распространяется с собственной инфраструктуры, но многие проекты существуют только на GitHub. Некоторые — просто эксперименты, а другие используются в продакшне (например, Firefox Accounts). Такие «чувствительные» репозитории нужно защищать от вредоносных правок, при этом не усложняя коммиты для нормальных людей.

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

Генеалогическое древо внутри Git

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

Поздравляю всех с днем программиста! Желаю больше ярких "коммитов", принятых "пулл-реквестов", меньше незапланированных "мержей" и чтобы ваши ветви жизни оставались актуальными как можно дольше. В качестве идейного подарка предлагаю реализацию генеалогического древа средствами системы контроля версий Git. Ну что же… звучит как план!


Kochurkins


Для тех, кто сразу все понял, выкладываю исходники генератора: GenealogyTreeInGit и сами генеалогические древа — мое и президентов США.


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

Читать дальше о реализации, подробностях, а также смотреть картинки

Браузерные расширения для GitHub, которые увеличат продуктивность вашей работы

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


Сейчас GitHub — самый популярный среди разработчиков сервис для совместной разработки программного обеспечения и размещения исходников в «облаке». Его используют как независимые разработчики, у которых в портфолио 1-2 приложения, так и технологические гиганты, включая Microsoft, Google и Facebook, у которых тысячи проектов.

Собственно, рассказывать на Хабре о том, что такое GitHub, смысла нет; этот пост посвящен его браузерным расширениям, которые позволяют увеличить скорость и продуктивность работы. Вообще говоря, расширений этих очень много, поэтому мы выбрали те из них, которые используем в своей работе сами или которые порекомендовали коллеги.
Читать дальше →

Процесс ревью кода в hh.ru

Время на прочтение7 мин
Охват и читатели20K
Мне на глаза попался документ с правилами и рекомендациями по процессу ревью кода внутри компании. Я решил, что такой полезной информацией надо поделиться с внешним миром. С благословения автора я публикую работу.


Читать дальше →

Рецепт полезного код-ревью от разработчика из Яндекса

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



Привет. Меня зовут Сергей, последние пять лет я работаю в Яндексе. За это время участвовал в разработке одиннадцати проектов. Писал код на JavaScript, Python и C++. Некоторые проекты делал в одиночку, другие разрабатывал в группе из восьми человек. Но в каждой команде, на всех проектах, вне зависимости от языка программирования я использовал код-ревью.


С помощью код-ревью я постоянно узнаю что-то новое. Иногда, глядя на чужой код, хочется воскликнуть: "А что, так тоже можно?". В чужом коде я нахожу интересные приёмы и беру их себе на вооружение. Много новых знаний черпаю из комментариев к моему коду. Для меня стало открытием, что люди любят делиться своим опытом. Даже когда я разрабатываю проект в одиночку, то прошу ребят из другой команды посмотреть мои пулреквесты. Это мотивирует писать красивый и понятный код.


Но так было не всегда. Когда-то ревью было для меня наказанием. Я мог неделю с вдохновением писать код, вкладывая в него все силы. Отправлял пулреквест, трижды пинговал ревьювера, а в ответ получал сухое "вроде ок" или, что ещё хуже, десятки комментариев не по существу.


Мне на ревью приходили пулы из пяти тысяч строк. Я часами пытался разобраться в коде, по сотне раз скроллил от функции к тесту и обратно. Писал десятки бесполезных комментариев о пропущенной точке с запятой. Всё это жутко меня раздражало. Часто откладывал ревью на потом, и у меня накапливались десятки непросмотренных пулов.


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

Читать дальше →

T2F: проект преобразования текста в рисунок лица при помощи глубинного обучения

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


Код проекта доступен в репозитории

Введение


Когда я читал описания внешнего вида персонажей в книгах, мне всегда было интересно, как бы они выглядели в жизни. Вполне можно представить себе человека в целом, но описание наиболее заметных деталей – задача сложная, и результаты разнятся от человека к человеку. Много раз у меня не получалось представить себе ничего, кроме весьма размытого лица у персонажа до самого конца произведения. Только когда книгу превращают в фильм, размытое лицо заполняется деталями. К примеру, я никогда не мог представить себе, как именно выглядит лицо Рэйчел из книжки "Девушка в поезде". Но когда вышел фильм, я смог сопоставить лицо Эмили Блант с персонажем Рэйчел. Наверняка у людей, занимающихся подбором актёров, уходит много времени на то, чтобы правильно изобразить персонажей сценария.

GitLab для Continuous Delivery проекта на технологиях InterSystems: Контейнеры

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

Эта статья — продолжение статьи про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений применимо к решениям на платформе InterSystems.


Рассмотрим такие темы как:


  • Контейнеры 101
  • Контейнеры на разных этапах цикла разработки ПО
  • Continuous Delivery с контейнерами
Читать дальше →

Покрытие кода: как улучшить качество тестирования

Время на прочтение3 мин
Охват и читатели6.7K
Наш коллега, Скотт Хансельман, продолжает изучать тестирование и покрытие кода в .NET Core. Он уже успел рассказать о некоторых инструментах для улучшения качества тестирования, и сегодня рассказывает еще об одном: AltCover. Заглядывайте под кат!

Читать дальше →