Обновить
256K+

GitHub *

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

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

Как я оптимизировал свой конвейер CI/CD до выполнения за 60 секунд

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

Как и многие, я храню свой код на GitHub. Пару лет назад я сделал простой пайплайн для сборки, анализа и тестирования моих веб‑приложений и сервисов. Он выполнял свою задачу, и так как это был мой первый опыт по настройке пайплайна CI/CD на GitHub, он сводился к одному шагу.

build (and deploy)

Со временем я стал замечать, что я стараюсь избегать вносить изменения в код. Будучи счастливым обладателем ADHD, я часто замечаю за собой сложность в решении задач с большим количеством препятствий и одним из них стало то, что выполнение пайплайна занимало больше 5 минут. Я коммитил изменения и шел делать кофе, пока пайплайн тестировал и деплоил код. И не всегда возвращался, отвлекаясь на другие вещи.

Я решил для себя, что максимальное количество времени, которое я готов ждать - 1 минута.

Читать далее

Проверяем фактор автобуса для опенсорсных проектов

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.2K

Из Википедии: фактор автобуса (англ. bus factor, либо truck factor) проекта — это мера сосредоточения информации среди отдельных членов проекта; фактор показывает количество участников проекта, после потери которых (в оригинале — «попадания» которых под автобус или грузовик, варианты: увольнения, заболевания, рождения у них ребёнка, наступления несчастного случая и других форс-мажорных обстоятельств) проект не сможет быть завершён оставшимися участниками.

Мотивация

Во всех компаниях, где я работал (в строительстве и разработке ПО), в тот или иной момент времени возникал вопрос «фактора автобуса» в управлении разработкой проектов.

Инженеру-строителю вычислить его было крайне сложно, потому что наша отчётная документация была сильно распределена между сотрудниками и существовал дефицит документации. Единственный раз, когда это стало очевидно, случился после увольнения одного из сотрудников — спустя полгода возник срочный запрос RFI (запрос информации) по чьему-то пакету расчётов (хотя официальный пакет должен быть подписан инженером-проектировщиком, а не инженером, непосредственно отвечающим за расчёты). После таких инцидентов нам обещали улучшить документацию, но это неизбежно отходило на второй план, когда все участники группы переходили на новые проекты даже без итогового совещания. Я был свидетелем того, как в долговременных проектах инженерный состав менялся на 100%, поэтому это ужасный антипаттерн.

В разработке ПО можно провести множество параллелей, но по природе нашей работы поставка выпущенного кода — это единственный способ измерения фактора автобуса. По крайней мере, именно её изучали многие исследователи, в том числе и в научной статье, имеющей большое количество цитирований (156, согласно Google Scholar!) с момента её публикации в 2016 году (препринт выпустили в 2015 году). Ша отправил мне статью, а после того, как мы обнаружили её исходные данные и исходный код, это стало идеальным проектом на выходные, который бы позволил, как минимум, получить представление об интересных метриках open source.

Читать далее

Как внести свой вклад в Open Source и стать полезным

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели4.8K

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

Open Source — это не просто способ создания программного обеспечения, а целая культура инноваций, сотрудничества и обмена знаниями. Каждый, кто хочет внести свой вклад в эту динамичную среду, может сделать это вне зависимости от своего опыта или уровня технических навыков.

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

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

Читать далее

Практика: мой опыт интеграции более 50 нейронных сетей в один проект

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

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

Преодолеть открытие

Книга: «Git: контроль версий. 3-е изд.»

Время на прочтение11 мин
Охват и читатели13K
image Привет, Хаброжители!

Рекомендуем ознакомиться с книгой «Git: контроль версий. 3-е издание»!

С «Git: контроль версий» вы освоите философию и фундаментальные принципы работы Git, а также получите продвинутые навыки по отслеживанию содержимого, совместной работе и управлению проектами в командах. В этой книге Прем Кумар Понуторай и Джон Лолигер предлагают подробный и пошаговый подход к изучению Git, начиная с фундаментальной философии этой системы и заканчивая продвинутыми командами Git и принципами, которые позволят лучше понять внутреннюю механику Git.

Глава 3 в книге полностью посвящена веткам. Создание веток в Git считается легковесной и недорогой операцией. Зачем они нужны, руководство по ветвлению, управление ветками – все это описано в книге.

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

Читайте с удовольствием!
Читать дальше →

Telegram-бот для анализа текста | выделение тематических групп

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели5.8K

Буквально месяц назад, мы с моим коллегой участвовали в HAKATON. Наша команда взялась за интересную задачу от компании МТС: на основе тысяч опросов, найти усредненный синоним к определенной категории ответов и визуализировать это в виде графика, либо облака слов.

После выполнения задачи и защиты проекта мы задумались...

Читать далее

«Удалённо» управляем компьютером с доступом в BIOS

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели89K


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

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

Но как это сделать? Вот этим мы тут и будем заниматься…
Читать дальше →

Обходим ограничение доступа Github к базе уязвимостей Trivy. Быстрый фикс вам в помощь

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

Совсем недавно разработчики, применяющие сканер образов Trivy, столкнулись с ошибкой TOOMANYREQUESTS. Она произошла из-за достижения максимального количества пользователей инструмента и предельной скорости по загрузкам из Container Registry (CR) ghcr.io.

Меня зовут Алиса Кириченко, я занимаюсь разработкой контейнерной платформы «Штурвал». Мы вовсю используем Trivy, но совсем не хотим зависеть от доступности сторонних сервисов. Иначе заказчики не поймут. Поэтому базы у нас свои, и обновляются они каждую ночь.

Если лень дальше читать, то вот, берите:

Trivy DB: public.shturval.tech/trivy-db

Trivy Java DB: public.shturval.tech/trivy-java-db

Детали — под катом.

Читать далее

Как Elasticsearch поломал сборки и «обнулил» звёзды в Github

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

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

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

В какой-то момент от коллег поступает информация о том, что официальная библиотека elasticsearch-php в момент сборки через composer install перестала устанавливаться.

Читать далее

Git для самых маленьких

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

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

Итак, небольшое вступление. Когда мне впервые пришлось делать коммит на GitHub, я помню, что перерыла кучу источников, и везде все было как-то не так, как в итоге сделала я.

В этой статье я расскажу о том, как сделать первый коммит на GitHub, и как делать последующие. Только мой опыт и сочетание консоли и фич IntelliJ Idea + у меня mac os, поэтому здесь именно про него (важно для установки).

Погнали.

Читать далее

Лучший подручный инструмент для GitHub: учимся работать с Actions

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

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

Привет, Хабр! На связи Виктор Рябков. Я — разработчик и создатель одноименного YouTube-канала. Сегодня погрузимся в мир GitHub Actions и узнаем, как эта система упрощает процессы разработки при взаимодействии с репозиторием. Рассмотрим ключевые аспекты: автоматизацию проверки кода и деплой на сервер.
Читать дальше →

Автоматизация деплоя React-приложения на VPS с помощью Jenkins и Nginx: Пошаговое руководство

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

Автоматизация деплоя React-приложения на VPS с Jenkins и Nginx: настройка вебхуков GitHub и триггеров для запуска деплоя при каждом изменении в коде.

Читать далее

Тестирование на проникновение в веб-приложении VAmPI

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.6K

Привет, уважаемый читатель!

В рамках данной статьи мы узнаем:

* Какие API уязвимости есть в VAmPI?

* Из-за чего эти уязвимости существуют и эксплуатируются?

* Какие есть способы защитить веб-приложение?

* Какой есть дополнительный материал для самостоятельного изучения?

Ссылка на GitHub VAmPI: https://github.com/erev0s/VAmPI

Преисполниться в пентесте

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

Невидимый Технический Долг: Управление TODO Комментариями

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели2.8K

В разработке ПО важно обеспечивать чистоту и качество кода, чтобы проект оставался легко поддерживаемым.

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

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

Читать далее

Использование кошелька Монеро через Телеграм бот

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

Так как не знаю никакие Монеро кошельки на мобильном устройстве, а в Trust Wallet и Cryptobot попросту нет этой монеты, решил сделать свою реализацию, которую уже на удивление можно считать MVP и свободно принимать и переводить XMR.

Для начала, скачиваем Monero CLI Wallet, для того чтобы взаимодействовать с блокчейном:

https://www.getmonero.org/downloads/

Читать далее

Как я использую git

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

Недавно я пытался объяснить коллеге, какие у меня критерии при формировании пул реквеста — когда стоит объединять что‑либо в один пул реквест, а когда нет. И я заметил за собой фразу «ну, кроме…» несколько раз и решил записать, как я использую git — чтобы разобраться в особенностях моего подхода, как я мог бы улучшить его и, возможно, поделиться чем‑то полезным.

Поскольку это интернет, давайте сразу обговорим: то, как я использую git основывается на последних 12 годах работы в компаниях с относительно небольшими (до 50 человек) командами. В каждой из них мы использовали только git и GitHub; изменения выполнялись в отдельных ветках, предлагались в виде пул реквестов и сливались в основную ветку. В последние несколько лет, после введения GitHub squash‑merging, мы использовали его.

Я никогда не использовал какую‑либо другую систему контроля версий. Я не могу и не буду сравнивать git с Mercurial, jj, Sapling, и т. д.

Итак, вот как я использую git.

Читать далее

Крадем учетные данные Windows

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

В этой статье мы разберем различные сценарии получения паролей в системе Windows.

Metasploit

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

Читать далее

Создание GitHub бота для сообщества

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

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

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

Меня зовут Александр, в Positive Technologies я занимаюсь развитием open-source-инициатив в сфере информационной безопасности. В статье расскажу, как настроить бота, покажу примеры его работы и поделюсь реальными кейсами, где он уже помог ускорить взаимодействие.

Читать далее

Настройка BurpSuite professional на Ubuntu 24

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

На данном практическом занятии мы рассмотрим процесс установки и начальной настройки BurpSuite Professional на Ubuntu 24 (22).

BurpSuite — это мощный и широко используемый инструмент для тестирования безопасности веб-приложений, который помогает специалистам по безопасности проводить аудит и оценку уязвимостей. Мы рассмотрим, как легко использовать все возможности BurpSuite Professional бесплатно, чтобы получать максимальную пользу от этого инструмента без лишних затрат.

В поисковике через гугл-дорк ищем
site:github.com burpsuite professional

Читать далее

Как защитить своё право на информацию: готовое обращение в Роскомнадзор

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели17K

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

В итоге мы теряем доступ к информации, необходимой для работы, учёбы или общения с друзьями. Если вы устали от избыточной цензуры и хотите восстановить своё право на свободный интернет, этот пост для вас.

Фильтрация интернет-трафика нарушает конституционные права граждан на получение информации и свободу выражения мнений. Действующие меры носят чрезмерный характер, ограничивая доступ даже к тем ресурсам, которые не нарушают закон. Например, Министерство цифрового развития уже разрабатывает отечественный аналог GitHub. Для чего? Вероятно, чтобы заблокировать международные платформы. И не удивлюсь, если потом найдут предлог заблокировать и другие ресурсы, прикрываясь борьбой с наркотиками, терроризмом или педофилией.

Здесь важно сделать вывод: блокировка интернет-ресурсов не только нарушает наши права на доступ к информации, закреплённые в Конституции РФ, но и ставит под угрозу свободу выражения мнений. Мы не должны лишаться доступа к платформам только потому, что на них когда-то кто-то опубликовал запрещённый контент. Большинство интернет-пользователей — это взрослые, дееспособные граждане, способные самостоятельно решать, какую информацию получать.

Читать далее