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

Пользователь

Отправить сообщение

Пишем поиск семантически похожих текстов (или товаров) за полчаса на Go и Postgres (pgVector)

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


Казалось бы, в посгресе и так есть неплохой полнотекстовый поиск (tsvector/tsquery), и вы из коробки можете проиндексировать ваши тексты, а потом поискать по ним. Но на самом деле это не совсем то, что нужно — такой поиск работает лишь по чётким совпадениям слов. Т.е. postgres не догадается, что "кошка гонится за мышью" — это довольно близко к "котёнок охотится на грызуна". Как же победить такую проблему?


TLDR:


  1. Преобразовываем наши тексты в наборы чисел (векторы) при помощи API openAI.
  2. Сохраняем векторы в базе с помощью pgvector.
  3. Легко ищем близкие друг к другу векторы или ищем их по вектору-запросу.
  4. Ускоряем индексами.
Читать дальше →
Всего голосов 8: ↑8.5 и ↓-0.5+9
Комментарии4

Подводный буксировщик своими руками

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

Предыстория

Пересматривал я один из любимых советских фильмов детства - "Акванавты". Ностальгия по молодости, потрясающие (на те времена) сцены подводных съемок (после этого фильма пошел в секцию подводного плавания)...

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

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

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

Читать далее
Всего голосов 42: ↑47 и ↓-5+52
Комментарии57

Полигон для творчества за 1500 р. Часть 2. Структура платы, 256 UARTов и расширение спектра

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


Приветствую вас, друзья!

Продолжаем знакомство с платой SX100. Рассмотрим структуру и некоторые любопытные особенности платы, узнаем, как улучшить ЭМС с помощью расширения спектра. Сделаем пару сотен UARTов и доработаем плату.

Вперёд к экспериментам!
Читать дальше →
Всего голосов 29: ↑33.5 и ↓-4.5+38
Комментарии10

USB Rubber Ducky своими руками. По-настоящему

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

Я думаю для пользователей Хабра и пентестеров в частности, тема badusb устройств не является секретной. Это вещи действительно интересные и полезные, а наверное, самый известный такой прибор - это USB Rubber Ducky от компании Hak5. С ним есть проблема, эти устройства сейчас в принципе не продаются в РФ, а если бы и продавались, то не нашлось бы много желающих платить по $80 за штуку (это без учёта доставки). Тем более что характер использования таких устройств зачастую подразумевает подбрасывание, то есть это расходный материал, которого нужно много.

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

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

SSD killer

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

SSD killer — destroyer for your ssd

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

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

SSD killer
Всего голосов 56: ↑54.5 и ↓1.5+53
Комментарии279

Китай не принимает платежи из России. Где заказать печатные платы в Китае в 2024 году

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

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

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

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

Читать далее
Всего голосов 58: ↑63.5 и ↓-5.5+69
Комментарии63

Почему FAR — центр моей компьютерной вселенной

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

Какую программу вы обычно запускаете сразу после загрузки операционной системы? Кто-то сразу стартует браузер — поглядеть, кто там сегодня в Интернете (на Хабре) неправ. У многих — это редактор кода: «Я, как утром встал, сразу за дрель!». Возможно, вы сначала привычно открываете мессенджеры и почту — проверить, что там нового и важного.

Я обычно сразу после запуска операционки открываю свой Любимый Файловый Менеджер. Это «переходящее звание» — в разные периоды моего компьютерного прошлого этой чести «удостаивались» разные приложения с классическим двухпанельным интерфейсом. Сначала это был простой, но универсальный Norton Commander. Потом появился DOS Navigator со всяческими классными фичами: CD-плеер, телефонная книга с дозвоном по модему, встроенный табличный редактор и прочие прекрасные и поразительные для тех лет вещи.

Когда Windows прочно вытеснил DOS и все понемногу забыли про файл autoexec.bat, звание моего любимого файлового менеджера плавно перешло к Total Commander. Он продержался довольно долго, но в какой-то момент в мою жизнь буквально ворвался FAR...

Читать далее
Всего голосов 164: ↑167 и ↓-3+170
Комментарии576

Госзакупки, «Точка Роста» и 3D-принтер за тройную цену. Четыре года спустя

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

Дисклеймер. Эта история началась в разгар пандемии, в сентября 2020 года. Отдельные её эпизоды я за минувшие годы успел рассказать в личном блоге, на одном профильном сайте для 3D-печатников и даже снять видео для своего Youtube-канала с 3 подписчиками. Однако совсем недавно (в марте 2024 года) история получила своё продолжение, и я решил собрать отдельные её фрагменты воедино и поведать более широкой аудитории, поскольку... Но об этом - в само конце, а пока...

Читать далее
Всего голосов 56: ↑62 и ↓-6+68
Комментарии49

Вызволяем увлажнитель из сетей Xiaomi

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

Вероятно, вы слышали о том, что сухость воздуха — одна из частых причин появления статического электричества. Вот и я решил обзавестись увлажнителем, когда заметил, что кошка бьется током почти при каждом прикосновении. И нет, ее зовут не Электро или Шторм Спирит. Знакомьтесь, Амидала (в честь персонажа вселенной «Звездных войн»).

Время шло, потребности в комфортном использовании техники росли, а вот ее функциональность и стабильность оставляли желать лучшего. После очередного сбоя серверов Xiaomi в октябре прошлого года в голове окончательно закралась мысль: почему дом — мой, а серверы — чужие? Так я познакомился с Home Assistant, MQTT, zigbee2mqtt и селфхостингом, о чем расскажу под катом!
Читать дальше →
Всего голосов 67: ↑67.5 и ↓-0.5+68
Комментарии46

Дешево и сердито: геймдев на Godot 4.2 для тех, кто знает Python

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

Привет, Хабр! Меня зовут Матвей, я уже несколько лет хочу научиться создавать игры. Скажу честно: все никак не хватало времени и, возможно, целеустремленности, чтобы изучить Unreal Engine, Cry Engine и им подобные движки.

Но я знаю Python. Оказывается, для любителей парселтанга есть относительно простой способ вкатиться в геймдев — игровой движок Godot, который поддерживает программирование на синтаксически похожем языке GDScript. Я его изучил и даже создал небольшую игру. В этой статье хочу рассказать об этом решении подробнее.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии21

Получаем JTAG на iPhone 15

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

Месяц назад Apple выпустила iPhone 15 — свой первый смартфон с разъёмом USB-C. Предыдущие полтора года я занимался аппаратным хакингом iPhone, например, мы выпустили опенсорсный последовательный JTAG-адаптер для iPhone под названием Tamarin Cable. Компания Apple наконец-то перешла на USB-C, поэтому мне стало любопытно, можно ли сделать что-то подобное с iPhone 15. Я купил по предзаказу этот телефон, пару печатных плат и набор электронных компонентов.

Прежде всего нужно сказать, что это не уязвимость и не jailbreak, я просто исследую USB-C в iPhone 15 и развлекаюсь со взломом оборудования.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии1

Самое понятное объяснение Специальной теории относительности

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

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

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

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

Для иллюстраций я написал интерактивный визуализатор СТО, работающий в браузере. Ссылка на него и исходники проекта в конце статьи.

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

SDR приемник GPS на микроконтроллере

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

В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.

Читать далее
Всего голосов 162: ↑161 и ↓1+160
Комментарии227

Домашний кластер разработчика

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

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

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

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

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

Нейропластичность: как развивать свой мозг после 25 лет

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

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

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

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

Читать далее
Всего голосов 107: ↑101 и ↓6+95
Комментарии23

Как перестать «ходить на дырку» на даче и не надышаться миазмами

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

Эта статья адресована тем, кто сам занимается строительством канализации на даче.

Миллионы дач в России ранее были оборудованы туалетами типа "сортир с выгребной ямой". С этого многие начинали и многие этим и закончили. Но по мере продвижения ИИ в массы и вообще развития технологий, многие задумались о том, что душ доме на даче это хорошо. А также нормальный тубзик. В котором можно нормально гнездится и почитать газету в интернете, Хабр или что-то еще полезное, а не напряженно ждать вцепится ли в тебя рой мух или нет. Опять же эстетика сортира уже устарела.

Читать далее
Всего голосов 147: ↑114 и ↓33+81
Комментарии225

DIY клавиатура из фанеры

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

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

Читать далее
Всего голосов 72: ↑71 и ↓1+70
Комментарии33

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Автоматизируем сборку и деплой приложения в GitLab CI/CD: подробное руководство с примерами

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

При разработке приложений рано или поздно наступает момент, когда заниматься развёртыванием вручную становится затратно и неудобно. Как следствие на помощь приходит автоматизация этого процесса с помощью специально настроенных пайплайнов непрерывной интеграции и непрерывной доставки (Continuous Integration & Continuous Delivery — CI/CD). Для разных систем управления репозиториями исходного кода существуют свои способы настройки CI/CD.

В этой статье мы рассмотрим, как использовать GitLab для организации автоматической сборки и деплоя приложения в кластер Kubernetes. Сам кластер работает под управлением Deckhouse Kubernetes Platform, а автоматизировать процесс будем с помощью werf — Open Source CLI-утилиты, организующей полный цикл доставки приложения в Kubernetes и использующей Git как единый источник истины для состояния приложения, развёрнутого в кластере.

Читать далее
Всего голосов 36: ↑35 и ↓1+34
Комментарии17

Серьги из матрицы светодиодов

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

Изначально я представлял LED Industrial Piercing [перевод на Хабре] как проект, специально рассчитанный на использование светодиодов 0201. В конечном итоге они оказались совершенно не нужны. Светодиоды 0201 слишком малы! Очевидно, я должен был двинуться глубже, поэтому целью нового проекта стало размещение как можно большего их количества на поверхности серёжки-гвоздика.

Читать далее
Всего голосов 95: ↑94 и ↓1+93
Комментарии21
1
23 ...

Информация

В рейтинге
3 092-й
Зарегистрирован
Активность