Как стать автором
Обновить
35.5

GitHub *

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

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

Дневник альтруиста. Причины

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.6K

CMake + C++ - это ночные кошмары или чудесный подарок судьбы? Начало истории о том, как легко отстрелить себе ногу в попытках сделать мир чуть более юзер-френдли.

Читать далее
Всего голосов 14: ↑6 и ↓8+2
Комментарии20

Как мы делали уведомление о коммитах

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4K

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

Читать далее
Всего голосов 8: ↑3 и ↓50
Комментарии6

На GitHub больше 1 000 уязвимых репозиториев: в чём суть угрозы и что с этим делать

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

Привет, Хабр! На связи технический директор MTC RED Денис Макрушин и команда Advanced Research Team: Павел Гусь, Иван Бессарабов и Андрей Сомсиков.

В январе разработчики GitLab нашли в своей системе две критические уязвимости. Из-за ошибок в верификации злоумышленники могут захватывать учётки пользователей и менять содержимое репозиториев. Такой тип атак называется RepoJacking. Мы изучили другой хостинг кода — GitHub — и нашли 1 300 потенциально уязвимых открытых репозиториев. Чем это опасно для разработчиков и их проектов — под катом.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии8

Zod умер. Да здравствует ajv-ts

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров8K

TLRD: zod не подходил в проекте и решили сделать свой builder с помощью ajv в zod-like API. Поскольку гугление не показало никаких вменяемых результатов - было решено сделать свои костыли решения.

Если стало интересно - прошу под кат!

стало интересно, посмотрим что там!
Всего голосов 7: ↑5 и ↓2+5
Комментарии12

Об импортозамещении MATLAB/Simulink на примере модели динамики авиационного средства поражения

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

Когда-то давно меня попросили разработать модель динамики полета АСП (авиационного средства поражения) в отечественном ПО, в среде SimInTech, причем разработать не с нуля, а тупо повторив уже созданную ранее модель в Матлабе (с Симулинком), и любезно выложенную в публичный доступ на гитхабе.

Я подумал - почему бы и нет, ведь в Симинтеке есть практически все требуемые блоки, а каких нет, я доработаю по образу и подобию. Без погружения в детали, в конце концов так оно и вышло. Но мне справедливо возразили - а чем докажешь, что твоя модель считает в точности так же, в динамике, как и исходная матлабовская модель?

Читать далее
Всего голосов 69: ↑50 и ↓19+44
Комментарии44

GitHub templates через bash скрипт

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

Всем привет! Меня зовут Роман Аймалетдинов, я андроид разработчик. В этой статье хочу рассказать вам как автоматизировать, хоть и простую, но рутинную работу по созданию и оформлению ваших git-hub pull request через bash скрипт. Это особенно полезно, если у вас монорепозиторий или несколько типов template. Например, отдельные template для bug и для feature или для разных команд. Но не все сразу, сначала разберемся с самими templates, поймем, почему это может быть неудобно и сделаем свой скрипт, который умеет парсить название в человеческое и создавать удобное описание для каждого типа задач. Теперь все по порядку.

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии2

Высокопроизводительное кэширование с помощью Redis и Go

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

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

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

Вместо этого они предлагают []byte API, с которыми вы взаимодействуете следующим образом:

Читать далее
Всего голосов 14: ↑5 и ↓9-1
Комментарии12

Сайт с поддержкой markdown на GitHub-Pages платформе

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.6K

Хочу рассказать о своём новом (хотя существует уже почти 3 года) сайте egaxegax.github.io, после закрытия предыдущего сайта egaxegax.appspot.com на хостинге Google App Engine в начале 2021 года. О нём я писал в статье Cайт на Django-nonrel на платформе Google App Engine для Python. Эта статья рассчитана на тех, кто хочет узнать или получить простой сайт с возможностью добавления и правки контента на основе создания markdown-постов.

Читать далее
Всего голосов 14: ↑2 и ↓12-9
Комментарии11

Агент по анонимности: Альтернативные фронтенды сайтам

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

Всем привет! Наверняка вы заинтересованы в сохранении собственной анонимности, обхода цензуры и сторонники конфиденциальной работы в сети.

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

В этой статье я приведу список сайтов, с кратким их описанием и инструкцией.

Начинаем!

Читать далее
Всего голосов 8: ↑6 и ↓2+5
Комментарии6

Telegram бот для доставки torrent контента с телефона до телевизора

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.9K

Всем привет! Этой мой первый пост на Habr (да и вообще где либо, за исключением GitHub). Хочу поделиться работой, на реализацию который у меня ушло около месяца, но тем не менее сейчас используя ежедневно и планирую развивать в дальнейшем. Задумка была таковой, что бы донести любой (бесплатный) контент до телевизора используя под рукой только телефон, например, если я еду в метро или нет желания (вставать с дивана) и возможности подойти к компьютеру. На самом деле причина реализации сей творения чуть глубже и проще, под управление я передал дело подбора контента на повседневный вечер супруге. За источник контента отвечает трекер Кинозал, который, к слову, я использую уже 4 года и меня он устраивает во всем.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии6

Fullstack разработка: создаём MVP – путь от технического задания до интеграции

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров2.5K

В работе описана смоделированная ситуация по разработке простого web-приложения на заказ. Для приложения за основу взят фреймворк Ruby on Rails 7 с фреймворком Hotwire и СУБД PostgreSQL. Описание процесса разработки разбито на этапы проектной деятельности, максимально приближенной к жизненному циклу web разработки по методологии Agile. Для максимальной реалистичности в описании упомянуты всевозможные проблемы, которые могут приводить в ступор начинающих Ruby разработчиков. В задачу публикации входит максимальное погружение читателя в процесс разработки. Поэтому работа насыщена ссылками на лучшие образцы методических материалов для экосистемы RoR 7.1 + Hotwire.

Любая реальная разработка сопровождается рядом организационных мероприятий, которые распределяются между разработчиками, аналитиками, тестировщиками и DevOps. В заказных разработках часто всё делает один человек. Вот для таких разработчиков, которые хотят всё знать, и предназначена данная статья. Поэтому здесь вы также найдёте дополнительные сведения об особенностях тестового покрытия fullstack разработки, полноценное решение по документированию Rest API, подробное описание процесса докеризации приложения, и инструкцию по использования GitHub Actions по методологии Continuous Integration.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

Обходим обязательную привязку телефонного номера к своей учетной записи на GitHub

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров16K

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


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


Enable 2FA now. You'll be able to continue on with your work right after.

Но как обычно, дьявол в деталях. Ведь чтобы добавить аппаратный ключ нужно, чтобы двухфакторная аутентификация была УЖЕ активирована.


Другими словами, чтобы использовать аппаратный ключ, нужно предварительно включить двухфакторную аутентификацию с использование SMS (читай номера телефона), либо программы, которая привязана к сетевой учетной записи Googgle, Microsoft или другого сервиса и опять же с привязкой к номеру телефона.


И в данном случае фокус с отправкой SMS на левый номер какого нибудь сервиса для временных телефонных номер вряд ли будет хорошей идеей.


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

Читать дальше →
Всего голосов 23: ↑8 и ↓15-4
Комментарии112

Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте

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

Привет! Я Александр Омельяненко, Flutter-разработчик в AGIMA. Недавно мне понадобилось быстро настроить CI/CD на Flutter-проекте. Те несколько руководств, что я нашел в интернете по этой теме, были либо с нерабочими примерами, либо запутанные и просто плохого качества. Но всё же какое-то представление я получил. Плюс задал вопросы коллегам. Набивая шишки по пути, я-таки настроил CI/CD на своем проекте. Но мне тогда очень пригодилась бы четкая инструкция. Поэтому я решил написать ее сам по горячим следам. Сегодня делюсь ею с вами и надеюсь, эта инструкция облегчит жизнь тем, кто настраивает CI/CD на Flutter-проекте прямо сейчас.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии13

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

Создаем свой блог на Github и Hugo

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

Привет, хабр! Сегодня я расскажу вам, как создать свой блог на Github Pages, используя hugo!

Хотите создать свой собственный блог, но не хотите привязываться к каким-либо крупным хостинговым решениям или издательским сайтам по подписке? Решение есть!

Читать далее
Всего голосов 13: ↑10 и ↓3+8
Комментарии20

Следование style guide для .proto файлов с помощью protolint в GitHub Actions

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K

В этом посте я расскажу, как настроить protolint для проверки .proto файлов на соответствие официальному style guide в GitHub Actions и поделюсь практическим опытом его использования.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Обеспечение обратной совместимости gRPC API с помощью protolock в GitHub Actions

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.6K

В этом посте я поделюсь с вами подробной инструкцией по настройке автоматической проверки обратной совместимости gRPC API с помощью protolock в GitHub Actions.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Эффективное создание и деплой gRPC API с помощью GitHub Actions и Packages для проекта на Kotlin и React

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.3K

В этом посте я покажу, как с помощью GitHub Actions легко реализовать генерацию и публикацию gRPC API пакетов в GitHub Packages, в реестрах Apache Maven и npm. Если вы хотите освоить GitHub Packages для своих проектов и научиться генерировать gRPC API для сервисов на Kotlin/Java и gRPC-web клиентов — добро пожаловать под кат.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Размер пул-реквеста имеет значение

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

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

«Какого же размера он должен быть? Бывает ли идеальный размер? Если бы теоретически можно было полностью его контролировать, то насколько большим его нужно делать?»

Вы гуглите, находите множество ресурсов, сайтов и статей наподобие этой, которые анализируют тему и делают примерно такой вывод:

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

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

Однако моя статья будет немного о другом:

«Мы проанализируем PR примерно 30 тысяч разработчиков, чтобы проверить, как размер PR коррелирует с временем внедрения, полученными комментариями и отказами во внесении изменений, чтобы найти статистически наилучший размер и понять, что на него влияет.»

Пояснение: тем, кто экспериментирует с данными, особенно после прохождения курсов/обучения в сфере данных, приведённое выше может напомнить о фразе «Корреляция не означает причинно-следственной связи». Да, они будут абсолютно правы. Мы попытаемся рассмотреть под разными углами, как эта корреляция варьируется в зависимости от компании, разработчика и общего объёма коммитов кода, а также под другими углами, которые могут помочь нам понять, какие другие значения могут по каким-то причинам отвечать соответствующим паттернам. Однако это «всего лишь» числа и корреляции, они не объясняют своих причин, поэтому любые наши предположения о причинах, скорее, субъективны и не подтверждены научными исследованиями.

Читать далее
Всего голосов 10: ↑9 и ↓1+16
Комментарии9

Три среды на бэкенде

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

Я уже не раз порывался написать что‑то общее про бранчинг; про некогда распиаренный GitFlow, который запиаривают обратно; про trunk‑based development (умеренно распиаривают), про то, как это увязать с разработкой бэкенда. И вот я затираю очередной забуксовавший черновик своей заметки чтобы всё упростить и не гоняться за чрезмерным обобщением опыта. Давайте я просто поделюсь рецептом, а вы его оцените.

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии17

Красота не только в коде — как оформлять репозиторий

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

Сегодня мы затронем сторону, отличную от написания кода. Мы займемся оформлением и написанием документации, как правильно делать коммиты и как оформлять код.

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

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

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

Узнать, как оформлять репозитории
Всего голосов 21: ↑14 и ↓7+13
Комментарии42

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