Pull to refresh
170
4

java / open source

Send message

На одной асимптотике далеко не уедешь…

Reading time7 min
Views13K


При выборе алгоритма часто говорят об асимптотике того или иного решения задачи. При этом можно встретить высказывания, что, мол, «вот этот» алгоритм работает за O(n), а «вон тот» – за O(n·log(n)), значит первый однозначно лучше. Либо раз оба метода работают за O(n²), значит их можно считать равнозначными, и обсуждать, чем один может быть лучше другого, большого смысла нет.


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

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

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views201K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее

Дружим YOLACT и RockChip: запуск инстанс-сегментации на китайском одноплатнике

Level of difficultyEasy
Reading time7 min
Views6.6K

Приветствую всех читателей Хабра! Сегодня я хочу поделиться своим опытом запуска YOLACT на edge-устройстве RockChip. Несмотря на то, что процесс занял больше времени, чем я ожидал, я решил поделиться с вами своими наработками, чтобы помочь другим разработчикам, которые могут столкнуться с той же задачей. В конце концов я нашёл способ запуска yolact, который позволил достичь высокой производительности и качества модели. Надеюсь, что мой опыт будет полезен для вас и поможет вам избежать ошибок, которые я совершил. Приятного чтения!

Читать далее

TimescaleDB против всех: как база данных справляется с рядом сложных задач

Reading time11 min
Views18K

В фильме «Отряд самоубийц: Миссия навылет», когда персонажи Идриса Эльбы (Бладспот) и Джона Сины (Миротворец) знакомятся при участии Аманды Уоллер, звучит следующая фраза:

– Ты сказала, что у всех в отряде уникальные навыки, а он — это тот же я.


Источник

Казалось бы, при чем здесь базы данных? На самом деле, отношения между PostgreSQL и TimescaleDB напоминают эту пару героев. PostgreSQL — одна из самых популярных СУБД в мире. Вокруг решения давно существует комьюнити, а за годы в коммерческой разработке набралось достаточно документации. TimescaleDB, будучи расширением PostgreSQL, умеет многое из ее арсенала, но применяется более точечно. В основном в проектах, где нужно работать с временными рядами или собирать данные с IoT-устройств.

В этом материале мы рассмотрим особенности работы TimescaleDB, а также покажем, как ее использует клиент Selectel — сервис DwarfByte.
Читать дальше →

Как (быстро) сделать русский локальный ChatGPT

Level of difficultyMedium
Reading time7 min
Views49K

Эта история началась в начале марта этого года. ChatGPT тогда был в самом расцвете. Мне в Telegram пришёл Саша Кукушкин, с которым мы знакомы довольно давно. Спросил, не занимаемся ли мы с Сашей Николичем языковыми моделями для русского языка, и как можно нам помочь.

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

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

Читать далее

Графика древности: от текста к видеоиграм

Level of difficultyMedium
Reading time32 min
Views18K

Вот уже много лет в игровой индустрии вместе с самыми последними графическими технологиями успешно сосуществует пиксельная графика практически в том же самом виде, в каком она существовала в играх для домашних компьютеров и игровых приставок 80-х и 90-х годов. Её возвращение на игровые мониторы в конце 2000-х годов казалось кратковременной модой на ретро, но однажды вернувшись, пиксели остались с нами надолго.

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

Собеседование в руках маньяков

Level of difficultyEasy
Reading time7 min
Views64K

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

Что не так с собеседованиями

Postgresso №7 (56)

Reading time12 min
Views2.9K

Конференции, битва за Ибицу

PGConf.СПб 2023

PGConf впервые пройдёт 25 сентября в Санкт-Петербурге. Конференция будет называться PGConf.СПб 2023. Место - Отель «Коринтия», Невский проспект., д.57.

Регистрация открыта и заявки принимаются. Подать заявку можно в личном кабинете. Количество тем не ограничено.

PGConf.Сибирь 2023

Пройдёт на площадке Город ИТ пройдёт 9-го сентября в Томске. Программа еще формируется, но общая канва известна.

PGIbiza 2023: Postgres and Ecosystem

Но с ней не всё просто. Казалось бы, на Ибице есть всё, чтобы поработать и расслабиться последовательно или одновременно (насколько помню, там даже доклады на пляже). Но всплыл старый конфликт между Альваро Эрнандесом (Álvaro Hernández Tortosa) и старейшинами (Core Team) PostgreSQL. Поскольку есть риск многое истолковать неправильно, напомним предысторию. Альваро не рейдер, попытавшийся захватить торговые марки PostgreSQL. Он революцьонэр. История эта началась ещё в 2021-м.

Читать далее

Клонирование голоса, замена лица по фото, удаления объектов в видео и все в одном open-source проекте Wunjo AI

Level of difficultyEasy
Reading time4 min
Views31K

Привет, читатель! В этой статье вы погрузитесь в захватывающий мир новых возможностей для создания дипфейков и синтеза речи в Wunjo AI v1.5, проект полностью с открытым исходным кодом. Вы узнаете о последних фичах, которые позволяют помимо синтеза речи, теперь клонировать голос из аудиофайлов или даже в режиме реального времени, меняют лица на видео с использованием всего одной фотографии, удаляют объекты с видеороликов и значительно повышают качество дипфейков с помощью нейронных сетей для ретуширования. К тому же остается возможность создавать анимацию лица из обычных картинок и анимирования движение губ по аудио в Wunjo AI, Вы не только увидите и услышите результаты этих функций, но и окунетесь в мир приложения, которое делает это возможным.

Важно отметить, что Wunjo AI с открытым исходным кодом доступен для установки локально на операционных системах Windows, Ubuntu и MacOS, и это абсолютно бесплатно, без ограничений.

Готовы? Погнали!

GraphQL: от восторга до разочарования

Reading time14 min
Views22K

Задаётесь вопросом, стоит ли использовать GraphQL в своём проекте? Ваши разработчики спорят, выдвигая аргументы типа «GraphQL — это будущее» и «REST проще»? Мы с моей командой обсуждали эту тему бесконечно. В статье я приведу краткие выводы.

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

3 года удаленки — пора подводить итоги. Останемся ли мы на ней, или перейдем на 4 дня в офисе…

Level of difficultyEasy
Reading time11 min
Views22K

Что происходит в мире спустя 3 года с момента слома «заводской парадигмы»: Сбер и VK закрыли удалёнку, Яндекс организует хабы в других странах, другие вводят гибридный график. А как в целом обстоят дела с удаленной работой? В посте посмотрим что происходит в РФ и мире, что думают об удаленке в топовых компаниях и поразмыслим какая модель закрепится в итоге.

Читать далее

Как выглядят собеседования сейчас

Reading time8 min
Views134K

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

Я являюсь .Net разработчиком с опытом лидинга и набора специалистов в команду. На текущем месте работаю 2 года, но за этот срок многое изменилось. Решил проверить, что же сейчас с рынком, и сколько же я стою сейчас как специалист. За 2 недели я прошёл 30 собеседований и хочу поделиться некоторыми из них, высказать свои замечания и выводы.

Читать далее

Я вижу как ты мусоришь со своего балкона

Reading time9 min
Views54K

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

Читать далее

Разработка робастного управления сервоприводом

Level of difficultyMedium
Reading time12 min
Views6.7K

Продолжаем открытый проект сервоконтроллера MC50. 

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

Читать далее

Как WhatsApp справлялся с 50 миллиардами сообщений в день, имея всего 32 инженера

Level of difficultyEasy
Reading time4 min
Views28K

Январь 2008 года — Калифорния, США.

Инженер Ян Кум нанимается на работу в Facebook* — получает отказ.

Это был не конец — он продолжил двигаться дальше.

В следующем году он покупает iPhone и сразу же понимает огромный потенциал нового App Store.

С несколькими бывшими коллегами из Yahoo он решает создать программу мгновенного обмена сообщениями. Программе дают имя WhatsApp. Предназначение WhatsApp — стать заменой дорогостоящим SMS.

Рост популярности WhatsApp поражает воображение — каждый день в него заходит один миллион людей.

WhatsApp мог справляться с 50 миллиардами сообщений в день от 450 миллионов активных пользователей, имея в штате всего 32 инженера.

Хотя взрывной рост продукта — это приятная проблема, для её решения Яну Куму и команде разработчиков WhatsApp пришлось применить самые передовые технологии проектирования.
Читать дальше →

Обследование рельефа острова Валаам нашим подводным роботом

Level of difficultyEasy
Reading time8 min
Views10K

Рассказываем про наш опыт использования собственного подводного робота "Трионикс-4М" для обследования подводного рельефа острова Валаам.

Скажем пару слов о себе, о робототехнике и подводной навигации.

Много фотографий и ссылка на видео с подводными кадрами.

Погружаемся

Система автоматической разгрузки и загрузки дрона (Часть 3 — замок и итог)

Reading time1 min
Views3.6K

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

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

Третья и заключительная публикация на тему Система автоматической разгрузки и загрузки дрона (Часть 1 — конструкция) / Хабр (habr.com)

Подробнее

VulkanSceneGraph: Введение в графическую библиотеку

Level of difficultyMedium
Reading time13 min
Views5.3K

Возможно, кто-то из читателей помнит мою серию публикаций о графической библиотеке OpenSceneGraph. Уже на тот момент, в общем-то было понятно, что использование OpenSceneGraph в 2018 году мало оправдано из-за того, что OpenGL, на котором основан OpenSceneGraph потихоньку сдает свои позиции. В феврале 2016 года орган по стандартизации OpenGL Khronos group, выпускают приемника OpenGL - Vulkan API версии 1.0. Производители оборудования в общем-то почти сразу стали добавлять в драйверы своей аппаратуры поддержку нового API. По крайней мере, актуальная на тот момент GeForce GTX 970 уже имела таковую поддержку (про более старые серии аппаратуры ничего сказать не могу).

Не смотря на то, что OpenSceneGraph таки получил поддержку OpenGL 3.x (и ваш покорный слуга собирал его с таковой поддержкой), разработчикам этой библиотеки стало понятно, что огромное количество внутренних проблем OpenGL делает его поддержку бесперспективной. Поэтому, в конце мая 2018 года стартовала разработка новой графической библиотеки VulkanSceneGraph, ориентированной исключительной на Vulkan API. 13 ноября 2022 года состоялся официальный релиз VulkanSceneGraph-1.0, а совсем недавно, 31 августа 2023 выпустили VulkanSceneGraph-1.0.9.

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

Читать далее

Опыт адаптации Firecracker под FreeBSD

Reading time15 min
Views3.5K

Сколько родилось отличных проектов open source, потому что у кого‑то руки чесались что‑то попробовать! Именно так было и в случае с Firecracker. В 2014 году компания Amazon запустила AWS Lambda, которую позиционировала как «бессерверную» вычислительную платформу. В AWS Lambda пользователь может задать функцию — скажем, десять строк кода на Python — а Lambda в ответ достроит всю требуемую инфраструктуру, чтобы сработала цепочка: прибывает HTTP‑запрос, вызывается функция, запрос обрабатывается, и, наконец, генерируется ответ.

Чтобы этот сервис работал безопасно и эффективно, Amazon нужно было разработать механизм, который позволял бы с минимальными издержками запускать виртуальные машины. Так появился Firecracker. Это монитор виртуальных машин (VMM), работающий совместно с Linux KVM. Он запросто создаёт «микро-VM» и управляет ими.

Читать далее

Теория типов

Level of difficultyMedium
Reading time43 min
Views37K

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

Что можно узнать из этой статьи?

Information

Rating
463-rd
Location
Россия
Registered
Activity