Все потоки
Поиск
Написать публикацию
Обновить
63.74

GitHub *

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

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

Пишем паническую кнопку под андроид (Часть 2)

Время на прочтение4 мин
Количество просмотров5.6K

Заглядываем под капот, решаем проблемы и баги. Как все устроено и что используется - ответы тут! С вами Алексей и сегодня речь пойдет именно от этом.

Читать далее

Сканирование кода C++ с помощью GitHub Actions

Время на прочтение2 мин
Количество просмотров3.3K

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

Читать далее

Функция, которую мне хотелось бы видеть в Git: группы коммитов

Время на прочтение7 мин
Количество просмотров14K

Почти все любят Git. Я тоже. Он работает, он эффективен, в нём изумительная модель данных, и в нём есть все возможные инструменты. За 13 лет использования не было случая, чтобы я не находил в Git нужный мне инструмент. До недавнего времени. Но сначала давайте поговорим о GitHub.
Читать дальше →

Как я познавал ci/cd, Гитхаб экшены

Время на прочтение5 мин
Количество просмотров30K

Гитхаб экшены, как я познавал ci/cd

   Всем Алоха. Все слышали про ci/cd, про то что он должен быть в каждой компании и то что он упрощает нам жизнь. У всех свой ci/cd. 

   Кто-то предпочитает Jenkins. Особенно если у вас куча микросервисов, команд и процессов, то при помощи Дженкинса можно достаточно гибко настроить ci/cd в компании. Кто-то использует GitLab actions и для каждого репозитория настраивает свои пайплайны и процессы. Достаточно удобно и просто настраиваемый механизм сборки и доставки артефактов на стенды. Не чуть не хуже GitHub actions. Это было открытием для меня что в GitHub появился такой функционал, о котором мы поговорим позже. Ну и конечно всеми «любимый» скриптовый ci/cd. Пачка скриптов, которые нужно выполнить в определенной последовательности чтобы собрать и задеплоить артефакты. Есть ещё так сказать хэнд мэнуал ci/cd. Но это особый вид извращения, с которым не пожелаю столкнуться никому. В котором нужно собрать артефакты у себя на машине и по какому нить ридми выполнять команды в терминале, лазить по ssh смотреть, что все копировалось, перезапускать сервисы и другие развлечения. 

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

Read more about GitHub Actions

Lingtrain Aligner. Написал приложение для создания параллельных книг, которое вас удивит

Время на прочтение6 мин
Количество просмотров24K

title


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


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


Установка


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


Итак, для запуска приложения у себя на компьютере нужно выполнить следующие команды:


docker pull lingtrain/aligner:v4
docker run -v C:\app\data:/app/data -v C:\app\img:/app/static/img -p 80:80 lingtrain/aligner:v4

C:\app\data и C:\app\img — это папки на вашем компьютере.


Контейнер скачается с репозитория Docker Hub и запустится на 80-м порту. Откроем приложение в вашем любимом браузере по адресу localhost.


Lingtrain app 1


Сделаем три шага: загрузка, выравнивание, генерация.

Смотреть демо

Пишем простейший GitHub Action на TypeScript

Время на прочтение8 мин
Количество просмотров14K

Недавно я решил немного привести в порядок несколько своих .NET pet-проектов на GitHub, настроить для них нормальный CI/CD через GitHub Actions и вынести всё в отдельный репозиторий, чтобы все скрипты лежали в одном месте. Для этого пришлось как следует изучить документацию, примеры и существующие GitHub Actions, выложенные в Marketplace.

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

Статья в первую очередь рассчитана на начинающих, тех, кто никогда не использовал GitHub Actions, но хотел бы быстро начать. Тем не менее, даже если у вас уже есть подобный опыт, но вы, например, не использовали ncc, то, возможно, и для вас в ней будет что-то полезное.

Читать далее

От Планеты GitHub с любовью

Время на прочтение3 мин
Количество просмотров4.8K

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

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

Вот краткое изложение того, о чем мы рассказали на данный момент.

http://github.co/habr

Использование веб-компонентов при работе над GitHub

Время на прочтение10 мин
Количество просмотров4.8K
Мы, сотрудники GitHub, гордимся тем, что наша платформа обеспечивает тем, кто ей пользуется, первоклассный «опыт разработчика» (Developer Experience, DX). Значительная часть наших усилий сосредоточена на фронтенде системы, который мы стремимся сделать настолько простым, быстрым и доступным, насколько это возможно. Для проекта таких масштабов, как GitHub, это — та ещё задача. В кодовой базе нашего фронтенда, как и во многих других подобных кодовых базах, применяются компоненты — независимые, изолированные фрагменты кода, пригодные для многократного использования. Они позволяют командам, которые занимаются проектом, создавать тщательно проработанные интерфейсы, делая своё дело быстро и эффективно, но при этом не отступая от высоких стандартов качества, принятых в GitHub.



Мы, в работе над GitHub, широко используем веб-компоненты. У нас имеется почти два десятка опенсорсных веб-компонентов, и ещё несколько десятков компонентов, код которых закрыт.
Читать дальше →

Бенчмарки VKUI и других ребят из UI-библиотек

Время на прочтение6 мин
Количество просмотров9.9K

Меня зовут Григорий Горбовской, я работаю в Web-команде департамента по экосистемным продуктам ВКонтакте, занимаюсь разработкой VKUI. 

Хочу вкратце рассказать, как мы написали 8 тестовых веб-приложений, подключили их к моно-репозиторию, автоматизировали аудит через Google Lighthouse с помощью GitHub Actions — и как решали проблемы, с которыми столкнулись.

Читать далее

Масштабирование при обслуживании монорепозитория на GitHub

Время на прочтение20 мин
Количество просмотров2.2K

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

Специально к новому старту курса по разработке на С++ мы решили поделиться переводом статьи Тейлора Блау — разработчика Git, старшего инженера-программиста в Github, о решении проблемы слишком долгой переупаковки репозиториев.

Приятного чтения

Turbolift — инструмент для масштабного рефакторинга

Время на прочтение6 мин
Количество просмотров3.1K

Системы Skyscanner сложно назвать маломасштабными. Наш сайт и приложение каждый месяц используются миллионами путешественников, мы обрабатываем умопомрачительные объёмы запросов, используя микросервисную архитектуру, которая сама по себе далеко не маленькая. В общей совокупности у нас задействовано несколько сотен микросервисов и микросайтов (веб-приложений, поддерживающих определённую часть нашего сайта), обслуживаемых сотнями экземпляров AWS Lambda и библиотек. Каждое из этих средств хранится в своём собственном репозитории GitHub, что даёт некоторые преимущества с точки зрения разделения задач, но имеет и свою цену: когда одно и то же изменение нужно выполнить во всех этих репозиториях, как это можно осуществить?

Читать далее

Кто есть кто в кампании за отмену Столлмана

Время на прочтение7 мин
Количество просмотров34K

Компания "за отмену Столлмана", начавшаяся с публикации в Medium предоставляет нам множество интересных данных. Так как подписание открытых писем за отмену и в поддержку Столлмана осуществляется на гитхабе, мы можем проанализировать некоторые характеристики обоих сторон, используя статистические данные, которые доступны через API.

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

Следующие предположения можно проверить ("X" может быть как предложением отменить Столлмана, так и выражением его поддержки).

Читать далее

Шаблонизация PDF

Время на прочтение6 мин
Количество просмотров27K
imageХабрахабр, уважаемые коллеги!

Проблема впечатывания данных в PDF документ не нова, не я первый и не я последний кто с ней сталкивается, поэтому решил поделиться опытом решения и заодно представить вашему вниманию небольшое веб приложение по этой теме.
2024.10.28 немного доработал проект, теперь можно взять xlsx файл с данными и впечатать эти данные нужно количество раз в бланк pdf, как это сделать описано в Readme.md проекта на гитхабе. Для добавления нового шрифта просто положите новый шрифт в папку static/fonts и он станет доступным для впечатывания.

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

2. PDF формат плох тем, что он нередактируемый ) Т.к. шаблонизация, заполнение набором данных бланка документа PDF в автоматическом режиме затруднена, а в ручном режиме требуется установка платных, тяжеловесных приложений.

Меня, как программиста, беспокоит прежде всего 2-й пункт. Как в программном приложении впечатать необходимый набор данных в документ PDF?
Читать дальше →

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

Google Sheets — как разноплановый помощник для непростых задач или как я делал анализатор футбольный матчей

Время на прочтение7 мин
Количество просмотров7K

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

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

Гугл дал свой результат, впрочем как всегда. Я нашел кучу калькуляторов ставок, которые продается за 3-5к рублей, и прочие таблицы расчетов в свободном доступе. Я как бы и так помнил расчеты тоталов голов, но мне нужно было их улучшить и получить на выходе собственно целого "мага/колдуна/вангу" спортивных событий. Или хотя бы формулку, которая выдаст результат после ввода данных.

Читать далее

Как мой простой проект в Github стал вирусным

Время на прочтение4 мин
Количество просмотров21K


В прошлом месяце я создал простой проект, разошедшийся по различным техническим сообществам и социальным сетям. В Github он за 7 дней получил с 0 до 4 тысяч звёзд и более 200 форков. Github примерно в течение пяти дней рекламировал его в разделе Trending repositories of day.

Clone Wars

70 с лишним open-source-клонов или альтернатив популярных сайтов наподобие Airbnb, Amazon, Instagram, Netflix, Tiktok и т.д. В списке содержится исходный код, ссылки на демо, технологический стек и количество звёзд в GitHub.

Ссылка на проект

Ссылка на Github

Приглашаем вас на апрельскую виртуальную встречу ГитХаба на тему безопасности

Время на прочтение1 мин
Количество просмотров797

GitHub Планета [20-ое Апреля 2021] | Meetup

Наша встреча пройдет во вторник, 20 апреля, с 19:00 до 20:00 по Московскому времени. Наши ведущие Хабберы расскажут о новинках ГитХаба.

Алена Глобина (Продакт Менеджер в GitHub:Code scanning CodeQL) расскажет про Анализ безопасности кода с помощью CodeQL.

Артём Савельев (разработчик в GitHub:SecretScanning) расскажет о превентивной безопасности в цикле разработки.

В конце презентации наши ведущие и докладчики присоединятся к дискуссии в комментариях к YouTube каналу. У вас будет возможность познакомиться c ними, задать им вопросы, обсудить общие интересы русскоговорящего сообщества разработчиков и может быть выиграть подарки от ГитХаба.

До встречи 20 апреля в 19:00 по Московскому времени на https://youtube.com/github

Read more

Коммиты — это снимки, а не различия

Время на прочтение14 мин
Количество просмотров49K

Git имеет репутацию запутывающего инструмента. Пользователи натыкаются на терминологию и формулировки, которые вводят в заблуждение. Это более всего проявляется в "перезаписывающих" историю командах, таких как git cherry-pick или git rebase. По моему опыту, первопричина путаницы — интерпретация коммитов как различий, которые можно перетасовать. Однако коммиты это не различия, а снимки! Я считаю, что Git станет понятным, если поднять занавес и посмотреть, как он хранит данные репозитория. Изучив модель хранения данных мы посмотрим, как новый взгляд помогает понять команды, такие как git cherry-pick и git rebase.

Читать далее

Шесть пасхалок GitHub

Время на прочтение3 мин
Количество просмотров14K
В недрах кода GitHub скрыто немало пасхалок. Здесь мы поговорим о некоторых из них.



Кстати, вы знали о том, что фразу «Easter egg» («пасхальное яйцо», в просторечии — «пасхалка») придумал в 1979 году Стив Райт — директор по разработке программного обеспечения Atari? Если вы смотрели фильм «Первому игроку приготовиться» — значит вам всё уже должно быть понятно. Вот фрагмент фильма, где игрок находит первую в мире пасхалку, скрытую в классической игре Adventure.
Читать дальше →

Это не работает

Время на прочтение9 мин
Количество просмотров9K
8 утра. Как и в любой другой день, я быстро просматриваю уведомления GitHub через Octobox.

  • «Проблема»
  • «Не работает»
  • «Сломанный»
  • «Сбой»
  • «Ошибка»
  • «Баг»
  • «Не работает»
  • «Поломка»
  • «Не могу выстроить»
  • «Не удалось установить»
  • «Не работает»
  • «Помощь»
  • «Не компилируется»
  • «Ошибка»
  • «Не подключается»
  • «Проблема»

Отлично. Ничего особенного.

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

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

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

Система отслеживания ошибок может быстро начать заполняться. «Спасибо, это именно то, что мне нужно» — было бы очень приятно такое прочитать, но вы никогда не увидите такого комментария. Вероятнее всего:

«Это не работает».

Очевидно, что проект ДЕЙСТВИТЕЛЬНО «работает». Вы уже пару дней пользуетесь им ежедневно, и он делает именно то, что вам нужно.
Читать дальше →

Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном

Время на прочтение2 мин
Количество просмотров29K

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

Потыкать в проект, сделанный на этом шаблоне, можно тут.

Сделать бота за 5 минут

Вклад авторов