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

Open source *

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

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

Как мы сделали кибериммунный продукт с использованием опенсорсной библиотеки: этапы, подводные камни, решения

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

Помните, как еще до пандемии компании стремились обеспечить безопасный доступ в периметр для своих сотрудников-удаленщиков? Особенно, если данные были сверхважными, — например, бухгалтерские сведения или корпоративные документы. Решения были сложные, громоздкие и дорогие. А представляете, насколько критичным это стало сейчас?!

Меня зовут Сергей Яковлев, я руковожу проектом Kaspersky Thin Client, построенным на базе нашей собственной операционной системы KasperskyOS. Thin Client — это один из основных компонентов Virtual Desktop Infrastructure, то есть системы доступа к удаленным рабочим столам. В этой статье я на примере такого клиента расскажу, как можно сделать продукт безопасным (и притом коммерчески рентабельным!). Какие были этапы, с чем столкнулись, через что прошли и как решали проблемы. Поехали!

Читать далее

PokiToki: Удобный GPT-бот в телеграме

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

PokiToki

За последние месяцы только ленивый не сделал телеграм-бота, который работает с API OpenAI. Были такие статьи и на Хабре.


Написать игрушечного ChatGPT-бота можно хоть за час. А вот сделать его удобным в повседневной работе заметно сложнее. Я занимался этим последние несколько недель и хочу показать, что получилось.


Читать дальше →

Быстрее, больше, сильнее: фреймворки Python с параллельной обработкой данных

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

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

Читать далее

LAION и энтузиасты по всему миру разрабатывают Open Assistant — открытый аналог ChatGPT

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

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

Читать далее

Почему десктопные приложения работают на веб-платформе?

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

Где мы свернули не туда? Как получилось, что современный десктопный GUI по умолчанию использует платформу HTML/CSS/JavaScript, которая изначально не предназначена для нативной работы на десктопе? Она создана конкретно для браузера и веба. Зачем из нативного софта делать веб-страницы в браузерной оболочке?

Джефф Этвуд (автор Stack Overflow) предсказал этот феномен ещё в 2007 году. Он тогда сформулировал так называемый закон Этвуда:

Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript.

Так и вышло.
Читать дальше →

Пора забывать GridSearch — встречайте ProgressiveGridSearch. Фракталы в ML, постепенно увеличиваем разрешение

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

Здравствуйте, меня зовут Николай Стрекопытов и я придумал как подбирать гиперпараметры бескомпромиссно лучше GridSearch’а. Нужно лишь изменить порядок вычислений. И да, это заявка на обновление индустриального стандарта - скоро вы сможете улучшить свои ML-пайплайны заменой нескольких строчек кода.

Читать далее

NudeCrawler: Голый ползун по женщинам на телеграфе

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

Nudecrawler - паук для поиска голых женщин.

Читать далее

Open-source библиотеки от команд ИТМО: оптимизация графовых структур, генеративный дизайн, оптимизация гиперпараметров

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

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

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

Все эти проекты написаны на Python с использованием стандартного стека технологий для задач обработки данных и графов: numpy, scipy, networkx. Их можно найти на GitHub и даже поучаствовать в дальнейшем развитии.

Читать далее

Как контрибьютить в проект, о котором ничего не знаешь

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

Bun


В последнее время мне очень нравится Bun. Это новая среда исполнения JavaScript / TypeScript, схожая с Deno / Node. Она имеет одно преимущество по сравнению с другими средами исполнения, которое очень важно для меня: очень быстрый запуск (по крайней мере, для JS). Когда я впервые запустил в ней небольшой кусок кода, то просто не мог поверить.

Когда я перешёл с Ruby на Node, меня оттолкнуло то, что тесты в Node выполняются о-о-очень медленно. Написание одной и той же бизнес-логики и её тестирование на этих языках — совершенно разный опыт. Неудивительно, что сообщество JS-разработчиков ненавидит юнит-тестирование, когда нужно думать, например, распределять ли тесты на несколько файлов, или нет.

Однако на то есть причина. Как бы вы ни оптимизировали инструменты для выполнения тестов наподобие Vitest, Jest или Ava, первый прогон теста (без watch) всегда будет выполняться чрезвычайно медленно в Node, потому что для запуска V8 и разрешения модулей требуется куча времени. Когда ты распределяешь работу на несколько процессов, чтобы использовать все ядра, это требует ещё больше ресурсов!
Читать дальше →

Ирина, голосовой помощник — теперь и со вкусом GPT-3

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

«Лама... Альпака...Чатгпт...» — раздавалась в уютненьком чатике по Ирине.

Хабр был не лучше — статьи по работе с GPT множились как грибы, а в комментах раздавались возгласы в духе «Дайте мне голосового помощника, с которым можно болтать!»

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

Тем не менее, и меня заинтересовало, насколько весело будет именно болтать с GPT, но самому в коде и платном API‑доступе разбираться не хотелось. Но сегодня утром меня снабдили и примером, и ключиком...

‑-

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

— Полностью оффлайн SpeechToText и TextToSpeech
— Поддержка плагинов
— Готовые команды «таймер», «погода» и ряд прочих. Поддержка HomeAssistant.
— Поддержка работы в клиент‑серверном режиме — сервер + куча микрофонов + Телеграм‑клиент, например.

Расскажу, что улучшилось за прошедший год с момента прошлой статьи.

TL;DR> Добавлен плагин для общения с GPT-3 нейросетью. Сделан пакет упрощенной установки под Windows — «скачай и запусти». Сделано два веб‑клиента — один распознает слова прям в браузере (тяжелый), другой отправляет весь звуковой поток на сервер (легкий) — так что можно запускать клиенты, например, на смартфоне. Добавлен TTS Silero v3 — имхо, лучшее озвучивание доступное в открытом доступе. Сделан докер‑образ для быстрого запуска Ирины без установки зависимостей. Добавлено нечеткое распознавание фраз. Обновлена VOSK‑модель распознавания голоса на специально натренированную для Ирины.

Читать далее

Двадцать пять лет curl

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

Когда жить интересно, время летит незаметно. 20 марта curl исполнилось 25 лет.

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

▍ Я в то время


Я создал самый первый релиз curl, и с тех пор выпускал пакеты каждого нового релиза. В день, когда я впервые выпустил curl, мне было 27 лет, я работал разработчиком ПО в Frontec Tekniksystem, где в основном занимался разработкой встроенных систем для более крупных шведских компаний-разработчиков. Например, в течение нескольких лет в конце 90-х я работал над довольно большим количеством проектов для телекоммуникационного гиганта Ericsson.

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

Программирование контроллера сервоприводов MC50. Введение

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

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

Читать далее

Создаем свой собственный язык программирования с использованием LLVM. Часть 4: Поддержка составных типов

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

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

Читать далее

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

Изучаем чёрный рынок фальшивых звёзд GitHub

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

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

Если вам неинтересна история, то можете сразу перейти к коду в конце статьи.

А если вам понравилась статья, перейдите в репозиторий Dagster и поставьте нам реальную звезду GitHub!
Читать дальше →

В платформе Deckhouse появился модуль delivery для непрерывной доставки приложений в Kubernetes

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

В составе Kubernetes-платформы Deckhouse появился новый модуль delivery, в основе которого — утилита с открытым исходным кодом Argo CD. Модуль автоматизирует процессы непрерывной доставки, развертывания и обновления пользовательских приложений в кластере. Также, благодаря доработке «ванильной» версии Argo CD, delivery повышает удобство доставки ПО в закрытые контуры при помощи werf.

Читать далее

Инструменты наблюдаемости, о которых нужно знать в 2023 году

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

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

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

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

YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source

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

Привет! Меня зовут Максим Бабенко, я руковожу отделом технологий распределённых вычислений в Яндексе. Сегодня мы выложили в опенсорс платформу YTsaurus — одну из основных инфраструктурных BigData-систем, разработанных в Яндексе.

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

В Github-репозитории находится серверный код YTsaurus, инфраструктура развёртывания с использованием k8s, а также веб-интерфейс системы и клиентский SDK для распространённых языков программирования — C++, Java, Go и Python. Всё это — под лицензией Apache 2.0, что позволяет всем желающим загрузить его на свои серверы, а также дорабатывать его под свои нужды.

Читать далее

Установка OpenCV под Windows

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

В данной статье будет описан способ сборки OpenCV из исходников с помощью cmake и Microsoft Visual Studio, и пример запуска своего проекта на cmake. Большая часть статьи является повторением официальной документации.

Читать далее

Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit

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

Продолжаю рассказывать, как open source проект Python Дайджест спустя 5 лет без обновлений удалось актуализировать по всему стэку технологий. В первой части рассказал, как удалось outdated проект с Python 3.4 обновить до Python 3.11 и Django 4.1.


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


Читать дальше →

progressive_plots или ускоряем построение графиков

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

Здравствуйте, меня зовут Николай Стрекопытов и большую часть карьеры я работал на стыке R&D и Deep Learning и в задачах возникающих в этих нишах часто невозможно написать какие-то автотесты и не всегда понятно где вообще может быть проблема поэтому нужно визуально исследовать графики каких-то алгоритмически-заданных функций или показаний с девайса при разных параметрах, а хочется эти графики изучить в максимально детализированном варианте, что почти всегда занимает неприлично большое количество времени.

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

Читать далее

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