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

Open source *

Открытое программное обеспечение

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

OpenSSL + ГИС ЖКХ

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

Это ода данному посту и его законное продолжение.

Реализация описана для PHP, но подходит для всех.

Конфиги

Начнём с контейнера, из которого будем общаться с ГИС ЖКХ. Тут приведён конфиг контейнера с продакшена, поэтому есть лишние (для вас) пакеты.

Пока просто посмотрим, пояснения будут после кода.

Читать далее

Как стать участником Open Source и зачем

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

Если ты хоть раз задавал себе этот вопрос, то ты на верном пути.

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

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

Читать далее

Жарим TOAST в PostgreSQL

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

У нас не подгорит!

Как PostgreSQL хранит большие значения столбцов? Какие явные и неявные ограничения есть у существующего механизма хранения? Что за проблемы вызваны этими ограничениями? И как можно решить эти проблемы, и расширить возможности PostgreSQL? Об этом, и чуть больше - данная статья.

Читать далее

Как новичку разработать опенсорс-библиотеку: опыт фронтенд-разработчика

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

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

Меня зовут Женя, я все еще фронтенд-разработчик в команде Quick Experiments inDrive. В этой статье буду делиться своим выводами, а также прикладывать дополнительные ссылки, чтобы познакомить вас с материалом более подробно.

Узнать главное о создании библиотеки

Обзор OWASP ZAP. Сканер для поиска уязвимостей в веб-приложениях

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

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

OWASP ZAP — сканер веб-приложений, основанный на методике DAST (Dynamic Application Security Testing). В русском варианте этот метод принято называть методом тестирования «черного ящика». Методика позволяет обнаруживать проблемы безопасности в работающем приложении или веб-сайте при помощи их сканирования на известные уязвимости.

Читать далее

NoNa: Алгоритм заполнения отсутствующих данных

Время на прочтение5 мин
Количество просмотров12K
Читать далее

Как работает аппаратный ключ безопасности — и почему не сделать программируемый ключ с улучшенной защитой?

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


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

Двухфакторная аутентификация (2FA) сегодня обязательна, потому что второй фактор и на порядок увеличивает усилия для взлома. Стандартный второй фактор — это телефон, куда приходит дополнительный код. Ещё один дополнительный фактор — аппаратный ключ безопасности, который невозможно скопировать. Такой ключ может защищать доступ к вашему парольному менеджеру.

Давайте посмотрим, как сделаны такие ключи, кто их выпускает. И самое главное — как их сделать ещё лучше.
Читать дальше →

Консоль SSH на WebAssembly внутри браузера: как это сделано

Время на прочтение5 мин
Количество просмотров16K
Веб-консоль SSH запускается по нажатию кнопки на сайте

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

В наше трудное время безопасность не бывает лишней, а область использования SSH и RDP сильно расширяется. Есть смысл шифровать каналы связи при подключении к любым устройствам, в том числе в своей домашней сети. Например, из любой точки мира вы можете подключиться к домашнему компьютеру в РФ и работать внутри страны — заходить на местные сайты типа госуслуг, сбера, оплачивать пошлины, оформлять документы и т. д.

К счастью, существуют удобные инструменты для выполнения всех этих задач.
Читать дальше →

Busrpc — фреймворк для разработки микросервисов

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

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

Читать далее

Лучшие open-source инструменты для Python проектов

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

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

Инструменты распределены по этапам/сферам разработки. По каждому из них я дам небольшое описание и попытаюсь рассказать о его пользе. Если утилита имеет дополнительные расширения/плагины, то я расскажу про самые полезные (на мой взгляд).

Читать далее

Когда хочется больше: пишем кубовый оператор

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

Итак, некоторое время назад я писал статью о том, как мы переехали на werf со скрипта. По большому счёту, это продолжение той истории. Задача встала такая: нужно максимально автоматизировано разворачивать свежее приложение на нескольких кластерах kubernetes, которое уже имеет обвязку для деплоя в виде werf. После некоторых изысканий, попыток использовать "коробочные" решения самой верфи и куба, я понял, что придётся написать собственный оператор, чтобы получить прям 100% покрытия всех "хотелок".

Чтобы у "гошников" прям конкретно подгорело, для этих целей я выбрал свой любимый Python и kopf.

Поджечь стул

(Пере)запускаем отделение Creative Commons в России! Участвуйте и помогайте

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

Привет, Хабр! Привет всем сторонникам open source, лицензий Creative Commons и прочих альтернативных подходов к авторскому праву! Год назад организация Creative Commons отметила 20 лет с момента основания. А 16 декабря этого года исполнилось 20 лет с момента выпуска её первых лицензий. И в этом юбилейном году я продолжал готовить подарок себе и сообществу.)) Настало время перейти в публичную стадию и озвучить планы на 2023 год.

В 2018 году произошла большая реформа - трансформация в глобальное движение и настоящее сообщество. Теперь это движение Creative Commons, состоящее из тех, кто работал над лицензиями, помогал их популяризации и внедрению, работал в проектах, использующих эти лицензии, кто поддерживает идеи организации и глобальную реформу авторских прав. Наиболее активная часть движения - это Creative Commons Global Network - сообщество опытных физлиц и юрлиц, которые предоставили информацию о своих заслугах перед движением - от активизма в реформе авторских прав и юридической работы до работы в области открытых данных, открытой науки и открытых образовательных ресурсов.

Когда новые правила вступили в силу, все старые договоры с партнёрскими организациями утратили силу. Раньше это были, по сути, команды юристов и тех, кто им помогает. Отделение (chapter) в каждой стране теперь создаётся заново на основе CCGN. Это меритократичный, но в то же время открытый и более простой процесс объединения в сообщество, который может проходить полностью онлайн.

Из всех постсоветских стран члены CCGN есть только от Украины, России и Казахстана. Создать отделение можно только если от страны вступил хотя бы один член. Другие страны - от Эстонии до Таджикистана - пока не имеют ни одного члена CCGN. Этот пост - часть необходимого по правилам широкого информирования перед созданием отделения и будет полезен для всех желающих участвовать в постсоветских странах. Я расскажу не только о правилах и процессе создания отделения, но и выскажу свои предложения, комментарии, мнение и позицию.

Создаём chapter буквально на ваших глазах!

Топ-10 ошибок, найденных в C#-проектах за 2022 год

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

За 2022 год разработчики PVS-Studio написали много статей, в которых рассказали об ошибках, найденных в различных Open Source проектах. Пришло время подвести итоги и представить десяток самых интересных срабатываний.

Читать далее

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

Набор цифровых личностей — для работы, дома и друзей

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


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

Например, в рабочем чате и на постороннем любительском форуме лучше использовать профили с разными именами, чтобы постороннему наблюдателю было сложнее связать их в единое целое и использовать приватные детали жизни человека против него. Для безопасности каждая цифровая личность может использовать отдельный набор учётных данных — email, телефон, профили в социальных сетях, разные аккаунты в мессенджерах и др.
Читать дальше →

Третья жизнь пет-проекта по распознаванию рукописных цифр

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

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

Читать далее

Честные модули внутри PHP: теперь они существуют

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

Низкий порог входа и строгость языка программирования — вещи обычно несовместимые. Потому что ты либо, как Rust, бьёшь по рукам borrow checker’ом — либо, как PHP, позволяешь не задумываться о типах и быстро прототипировать. 

На самом деле, если писать код грамотно, это становится неважным и язык перестаёт иметь значение. Архитектура важнее языка, и хороший код на PHP ничем не отличается от аналогичного кода на любом другом ООП-языке. Другое дело, что возможность «любой домохозяйке» писать на PHP сопровождается и риском наворотить полное неподдерживаемое безобразие. Поэтому нам нужны тайпхинты, линтеры, статические анализаторы и подобные инструменты. 

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

Наша новая open-source разработка называется Modulite и внедряет в PHP модули. Это сквозная технология: мы внедряемся в IDE, в PHPStan, в KPHP, в CI, в Composer — и делаем так, будто бы модули нативно есть в языке PHP.

Читать далее

Год Тигра в Taiga UI

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

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

Весь год я участвовал в разработке потрясающего продукта — Taiga UI. Это библиотека компонентов на Angular, на которой построены сотни продуктов Тинькофф и много других проектов. Наша команда потратила много времени и сил — расскажу, что из этого получилось.

Читать далее

Независимые онлайн-сервисы: философия свободного интернета и истории его администраторов

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

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

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

Читать далее

Doom для кнопочных телефонов

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

❄ Только для телефонов на чипе Spreadtrum SC6531(E/DA).
❄❄ ...если повезёт и экран с клавиатурой заработают.
❄❄❄ Но сначала вам еще надо найти клавишу для входа в "download mode".

Перефразируя мемную фразу: "Вернее запустить смогут не только лишь все, мало кто сможет это сделать".

Опубликовал на github исходный код, и даже готовые бинарники для Windows.

Читать далее

SimpleX – первый мессенджер без идентификаторов пользователей

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

Сегодня рассказываем про анонимный мессенджер SimpleX, который написан на Haskell и позволяет, в том числе, использовать сеть Tor для общения.  

​​SimpleX – не только один из немногих мессенджеров, который не собирает данные пользователей, но и единственный на сегодняшний день мессенджер, который не использует идентификаторы для профилей пользователей, даже случайные числа. Также он полностью open source, и каждый может принять участие в его разработке.

Читать далее

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