Рубрика «github» - 40

Думаю, нет нужды рассказывать хабрапользователю что такое Git / GitHub, pre-commit и как наносить ему hook справа. Перейдем сразу к делу.

В сети много примеров хуков, большинство из них на shell'ах, но ни один автор не уделил внимание одному важному моменту — хук приходится таскать из проекта в проект. На первый взгляд — ничего страшного. Но вдруг появляется необходимость внести изменения в хук, который уже живет в 20 проектах… Или внезапно нужно переносить разработку с Windows на Linux, а хук на PowerShell'е… Что делать? ??????? PROFIT

«Лучше так: 8 пирогов и одна свечка!»

Примеры, конечно, сильно утрированы, но с их помощью выявлены неудобства, которых хотелось бы избежать. Хочется, чтобы хук не требовалось таскать по всем проектам, не приходилось часто «допиливать», но чтобы при этом он умел:

  • выполнять проверку отправляемого в репозиторий кода на валидность (например: соответствие требованиям PEP8, наличие документации итд);
  • выполнять комплексную проверку проекта (юнит-тесты итд);
  • прерывать операцию commit'а в случае обнаружения ошибок и отображать подробный журнал для разбора полетов.

И выглядел приблизительно так:

python pre-commit.py --check pep8.py --test tests.py

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

Device Lab от Google: Android TV / Хабрахабр

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

Device Lab от Google: Chromecast 2.0 и Chromecast Audio / Хабрахабр

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

Исходный код CryEngine 5.1 опубликован на Github - 1

Немецкая компания Crytek решила опубликовать на Github исходный код игрового движка CryEngine (последняя версия 5.1). Перенести репозиторий на Github решили недавно. Разработчики говорят, что с помощью системы контроля версий Git гораздо удобнее сравнивать ревизии и отслеживать изменения.

CryEngine написан на языке C++. Раньше новые версии движка с исходниками выпускались в zip-архивах. Чтобы определить, какие сделаны изменения, нужно было распаковать архивы предыдущей и новой версий и сравнить файлы. В системе Git всё делается проще. К тому же, публикация на Github, по мнению некоторых экспертов, мотивирует сообщество open-source разработчиков оптимизировать движок под Linux/OpenGL/Vulkan.
Читать полностью »

Немного истории

В самом начале 2010 года Vincent Driessen пишет отличную статью A successful Git branching model. Для понимания того, о чем пойдет речь дальше, со статьей нужно, конечно же, познакомиться. А для тех, кому сложен язык оригинальной статьи, на хабре есть её отличный перевод.

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

Git

Кажется, что модель идеальна. Быть может так оно и есть, если у вас небольшая команда, неизменяемый скоуп релизов, высокая культура работы с VCS. Тогда, действительно, GitFlow может и удовлетворит все ваши потребности. Но, к сожалению, описанные условия подходят не всем командам и не всем проектам. К слову, найти статьи, в которых бы авторы описывали проблемы этой модели не так уж и просто даже в 2016 году. Но как мы все знаем, серебряной пули нет, а, значит, и в этой модели всё хорошо далеко не для всех.

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

Теперь платить нужно за число пользователей, а не приватные репозитории

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

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

Security Week 18: VirusTotal за справедливость, уязвимость в Android, утечка токенов Slack - 1Начнем выпуск с совсем свежей новости, которая, впрочем, имеет лишь косвенное отношение к ландшафту угроз. 4 мая в блоге сервиса VirusTotal, ныне принадлежащего Google, появилась внешне неприметная запись. Сервис, позволяющий агрегировать информацию о вердиктах различных антивирусных движков, теперь будет по-другому «отдавать» информацию о детектах. Теперь для того, чтобы получать данные о задетектированных файлах автоматически, с помощью API, требуется в обязательном порядке подключать свой собственный продукт к системе VirusTotal.

Почему это важно? Изначально VirusTotal был проектом для исследователей: определить, детектируют ли защитные решения определенный файл — означало сэкономить время и потратить его на более интересные вещи. По мере роста сервиса появились и новые возможности: информация о том, когда был загружен файла иногда также могла многое подсказать о его предназначении и происхождении (особенно, если файл загружался пострадавшим пользователем, а то и самим автором вредоносной программы). Сейчас через VirusTotal проходят миллионы файлов: за последние семь дней 1,2 млн, из которых 400 тысяч задетектированы одним или несколькими антивирусными движками.

Короче, если есть доступ к этой информации, то только на ее основе можно создать свое, достаточно неплохо работающее типа защитное решение. Или, как минимум, получить несправедливое преимущество, получая от индустрии данные, но не отдавая ничего обратно. Not anymore. В посте VT приводится интересный набор правил использования сервиса, где его создателями критикуется пара устоявшихся мифов. Подробнее о них — под катом.
Все выпуски дайджеста доступны по тегу.
Читать полностью »

Efficient Rails — новая книга по оптимизации процесса разработки Rails-приложений - 1

Эффективные Рельсы — более точного названия для книги придумать было бы сложно. Всё содержание описывается этими двумя словами и раскрывается для нас в сотне рецептов на 380+ страницах. В ожидании выхода финальной версии Rails 5, данное чтиво — то, на что стоит потратить время, благо потребуется его не так много. Но данное вложение вернётся колоссальной прибылью знаний и позволит, как говорится на обложке, «создавать Rails-приложения с нечеловеческой скоростью». Да и не только Rails, да и не только Ruby. Первые две главы включают в себя обилие информации по работе с терминалом и СКВ. Подробности под катом.
Читать полностью »

Открыты исходники почтового сервиса Lavabit - 1

Lavabit — это анонимный почтовый сервис (dark mail), которым пользовался Эдвард Сноуден, находясь в Шереметьево летом 2013 года. Как только американские спецслужбы узнали об этом, они заставили владельца Lavabit Ладара Левисона установить следящее оборудование на сервере. Затем ФБР обнаружило, что почта зашифрована, и потребовала от владельца выдать секретные ключи TLS. Тот отказался. Начался судебный процесс, по результатам которого Левисон предпочёл закрыть Lavabit и уничтожить ключи шифрования.

«Дорогие друзья, меня заставили сделать сложный выбор: стать соучастником преступления против американского народа или отказаться от почти десяти лет тяжелой работы и закрыть Lavabit. После долгих раздумий, я решил прекратить работу», — написал он тогда. Его послание до сих пор висит на главной странице lavabit.com, в то время как Левисон продолжает судиться с американским правительством, требуя снять секретность с его дела.
Читать полностью »

Xamarin Forms в действии. Medchest Assistant - 1
Автор: Константин Марс

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

Мы долго колебались с выбором платформы между популярной и престижной iOS и модным, современным и приятным в разработке Android. Поэтому я предложил использовать Xamarin, который, между прочим, использует C# как основной язык разработки (и это главный язык, на котором в повседневной жизни пишет организатор нашей команды Арсений). Таким образом мы подошли к началу путешествия в мир кроссплатформенной разработки с Xamarin.
Читать полностью »


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