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

image

Именно этой фразой нас приветствует библиотека для работы с OAuth — ScribeJava (https://github.com/scribejava/scribejava). Если быть точнее, то фраза звучит так: “Who said OAuth/OAuth2 was difficult? Configuring ScribeJava is so easy your grandma can do it! check it out:”.

И это действительно похоже на правду:

OAuth20Service service = new ServiceBuilder().apiKey(clientId).apiSecret(clientSecret)
    .callback("http://your.site.com/callback").grantType("authorization_code").build(HHApi.instance());
String authorizationUrl = service.getAuthorizationUrl();
OAuth2AccessToken accessToken = service.getAccessToken(code);

Готово! Этих трех строчек достаточно, чтобы начать делать OAuth запросы. А сам OAuth запрос можно будет сделать так:

OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.hh.ru/me", service);
service.signRequest(accessToken, request);
String response = request.send().getBody();

Данные о пользователе у нас в руках (в переменной response). И ни капли понимания, как в деталях работает OAuth. Хотим асинхронные http-запросы? Нам хватит тех же трех строчек. Ниже рассмотрим это на примере.
Читать полностью »

led matrix cascade 8x8 Сегодня я хотел бы выступить в необычном для хаба Arduino качестве и рассказать не об устройстве, а о библиотеке.
Речь пойдет о библиотеке LedMatrix (русскоязычное описание), которая умеет управлять светодиодными матрицами 8x8 на чипах MAX7219 и MAX7221.

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

Github — это больше, чем просто сервис для хостинга кода и система контроля версий. Это настоящая социальная сеть для программистов, и неудивительно, что иногда хочется поставить значок На Github появились эмодзи: реакции на пулл-реквесты, баги и комментарии - 1, чтобы отметить чей-нибудь комментарий. Теперь это стало возможным. С сегодняшнего дня на Github появились эмодзи-реакции на пулл-реквесты, баги и комментарии.

На Github появились эмодзи: реакции на пулл-реквесты, баги и комментарии - 2

Github надеется, что это сделает общение более эффективным.
Читать полностью »

Рано или поздно IT-проекты сталкиваются со сложностями поддержания высокого качества кода и/или увеличивающимся временем доставки изменений в production. Lingualeo испытала на себе все проблемы роста и готова поделиться своей историей повышения эффективности разработки. О том, как это происходило, рассказал teamlead инфраструктурой команды Lingualeo Михаил Кабищев.
image

Как и любая другая технологическая компания, Lingualeo проходила через несколько этапов:

  • Начало разработки продукта. Разработка и отладка происходит на одном-единственном сервере, где запущено все, что нужно проекту. Ошибки бывают часто, но это не страшно, т.к. это все лишь прототип, и живых пользователей там еще нет.
  • Появление первых пользователей. Компания начинает ощущать цену ошибок и проблем на продакшене. Уже нельзя править все на продакшене, приходит понимание того, что нужно мыслить релизами. Разработчики внедряют workflow для работы с кодовой базой, появляется что-то вроде stage-сервера, на котором тестируются релизы.
  • Рост проекта и команды. В разработке одновременно находится большое количество задач. Требования к процессу и качеству кода сильно возрастают. За всем очень тяжело следить: кто-то забывает запустить юнит-тесты, кто-то не знает, куда и как нужно задеплоить очередную задачу для тестирования.

В итоге рутинные операции начинают отнимать очень много времени, и компания думает, как автоматизировать эти процессы.
Читать полностью »

В Академическом университете постоянно внедряются новые подходы к обучению. Программы, задания и сам процесс меняются таким образом, чтобы предоставить студенту наиболее полные и актуальные знания, а преподавателю – возможность попробовать более эффективные методы. Так и в прошлом семестре вместо того, чтобы принимать ДЗ по Java "на А4 и по ГОСТу", мы с bintree решили сделать все "как у больших дядей": использовать Git, CI и code review. В этой заметке я поделюсь с вами возникшими проблемами, их решениями, плюсами-минусами такого подхода, а также некоторыми соображениями на будущее.
Читать полностью »

Вчера, 17 февраля, команда разработчиков Github анонсировала новый функционал, которого пользователям, участвующим в групповой разработке, могло серьезно недоставать: теперь в GitHub есть шаблоны для Issue и Pull-реквестов.

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

image

Cегодня Dash наконец открыл исходный код ПО «dashvend», на котором работает концепт — аппарат по продаже газировки (вызвавший фурор на последней Биткойн-конференции в Майами). Теперь желающие могут создавать собственные вендинговые устройства на базе технологии мгновенных платежей Dash InstantX (эта технология уже поддерживается в мобильных кошельках Dash).
Читать полностью »

На этот раз я бы хотел предложить к прочтению [вольный] перевод статьи Тома Престон-Вернера, одного из сооснователей GitHub, в которой он рассуждает о том, какие выгоды компания может извлечь из открытия своих проектов, какие проекты открывать не стоит и какова Единственно Правильная Лицензия. Хочу также отметить, что мнение переводчика не всегда совпадает с мнением автора оригинала. Ссылка на оригинал, как всегда, под текстом перевода.

Когда Крис и я начинали работу над GitHub в конце 2007, мы разделили работу на две части. Крис работал над Rail-приложением, а я работал над Grit, первым в истории адаптером Git для Ruby. После шести месяцев разработки, Grit стал достаточно законченным, чтобы обслуживать GitHub во время нашего публичного запуска сайта и мы встали перед интересным вопросом:

Стоит ли нам открыть исходники Grit или оставить его проприетарным?

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

Конфигурация приложений с помощью github - 1

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

Я видел много проектов, где конфигурация подкладывается в файловую систему в виде properties/json/xml файлов с непостижимыми уму переоределениями в момент загрузки. И что же на самом деле использует приложение становится ясно только после просмотра лог файлов компонента либо во время отладки.
Читать полностью »

Зачем и как мы бэкапим github - 1

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

Вообще лирическое вступление было навеяно вполне конкретной историей про сломанный гитхаб. Сделанная на заре одного из проектов синхронизация домашнего репо в гитхаб решила проблему переезда. Потом про костыль забыли. Древнее зло уснуло и терпеливо ждало своего часа. В один прекрасный день скайнет новый сотрудник решил привести в порядок тот самый домашний репозиторий. И самым популярным вопросом среди программистов в тот день было «коллега, а вы не видели мою ветку 0022? ну такая, с багфиксами». Руководство опс-тим было спокойно как никогда: гит — это распределенная система, версия кода хранится на персональном компьютере каждого разработчика. Давайте уже как-нибудь разберитесь между собой и не отвлекайте нас от сборки наших ядер и тюнингов сетевых стеков.

И все же зачем..?

Действительно, можно нафантазировать большое количество количество возможных проблем, например:

  • Недоступность удаленного репозитория и отсутсвие актуальной локальной копии
  • Злоумышленники с помощью украденного пароля испортили/удалили репозитории
  • Ошибки в манипуляциях с репозиториями
Итак, что и как бэкапить...

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


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