Pull to refresh
0
0
Send message

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

Reading time5 min
Views3.4K


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


TLDR:


  1. Преобразовываем наши тексты в наборы чисел (векторы) при помощи API openAI.
  2. Сохраняем векторы в базе с помощью pgvector.
  3. Легко ищем близкие друг к другу векторы или ищем их по вектору-запросу.
  4. Ускоряем индексами.
Читать дальше →
Total votes 15: ↑17 and ↓-2+19
Comments6

Улучшаем региональное продвижение сайта

Level of difficultyMedium
Reading time7 min
Views1.3K

На одном из недавних проектов снова встал вопрос регионального продвижения. Проект уже имел региональный функционал на основе поддоменов. О том что нас не устраивало и как мы нашли win-win способ для поисковиков от Yandex и Google.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments0

Где мне это пригодится в жизни или применение Nothing в Kotlin на примере

Level of difficultyMedium
Reading time5 min
Views2.4K

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

Читать далее
Total votes 17: ↑19.5 and ↓-2.5+22
Comments0

Пошаговая шпаргалка по защите сервера от хакеров и другой нечисти

Level of difficultyEasy
Reading time7 min
Views13K

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

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

Привет! На связи Йети — самый йетический автор Vscale. Это моя первая статья на Хабре. В ней я расскажу, как защитить сервер от хактевистов и другой нечисти. Подробности под катом! :)
Читать дальше →
Total votes 42: ↑43 and ↓-1+44
Comments20

Внедрение Keenetic в гостинице

Level of difficultyEasy
Reading time7 min
Views11K

Предисловие

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

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

Я не имею никакого отношения к компании Keenetic.
Я всего лишь простой пользователь, который взвесив все "за" и "против", принял спорное и в какой-то степени неадекватное решение заменить сетевое оборудование Mikrotik на продукцию Keenetic.

Прекрасно понимаю, что многие пользователи направят в мою сторону вентилятор и накидают на меня г*вна, так как заменить Mikrotik на Keenetic... типа это примерно как заменить живую женщину резиновой... Я не стану вступать с вами в диалог, мы находимся в разных вселенных: вы - лютый айтишник, а я - управленец/маркетолог, который за 1.5 года вывел гостиницу по популярности в ТОП-1 по своему городу (среди 290 объектов), и в ТОП-3 по своему региону, в котором на данный момент порядка 2.000 гостиничных объектов.

Читать далее
Total votes 33: ↑36 and ↓-3+39
Comments63

Неужели это очередной «конец» сферы разработки ПО?

Reading time8 min
Views14K

Привет, Хабр! Поговорим о роли ИИ в жизни разработчика — мы в блоге beeline cloud часто обсуждаем темы, которые волнуют ИТ-сообщество. 

Увольнения, увольнения, увольнения, кажется, они никогда не закончатся. На сайте layoffs.fyi есть даже трекер увольнений в технологической сфере. Финансирование стартапов опускается на минимальный за последние 5 лет уровень, пишет Crunchbase. Помимо общих экономических проблем, на горизонте маячит страх, что ИИ и вовсе вытеснит программистов. 

Техноновости напоминают репортажи о конце света. Так ли это?

Как человек, который начал свою карьеру программиста сразу после того, как лопнул пузырь доткомов, я могу с уверенностью утверждать, что все не так уж плохо. Когда я только начинал свою профессиональную деятельность, люди говорили мне, что «Интернет мертв» и мне стоит поискать настоящую работу. А проблемы, с которыми боролись доткомовские стартапы, никуда не делись. Причём многие из найденных в начале 2000-х решений были зарыты в землю, лишь для того, чтобы вновь объявиться несколько лет спустя.

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments20

Метаболизм и долголетие. Личный опыт

Level of difficultyEasy
Reading time13 min
Views11K

Этот текст - логическое продолжение описания моего инженерного подхода в вопросе долголетия. Если вы не читали предыдущую статью, то рекомендую ознакомиться. Текущая же статья потребует 10 минут вашего внимания, но может добавить 10 лет к вашей жизни (но может и не добавить 😁).

Упрощённо говоря, моя идея (о которой можно ознакомиться по ссылке выше) состоит в том, чтобы:

1. выделить наиболее вероятные проблемы со здоровьем, которые "помогут" откинуться
2. предпринять адекватные усилия, которые помогут их предотвратить

Читать далее
Total votes 52: ↑52.5 and ↓-0.5+53
Comments72

Пишем калькулятор на Rust с GUI

Level of difficultyEasy
Reading time18 min
Views12K

Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.

Читать далее
Total votes 23: ↑24.5 and ↓-1.5+26
Comments84

А точно ли программистам не нужны алгоритмы?

Level of difficultyEasy
Reading time4 min
Views15K

Мне 21 год и я работаю программистом всего 4 года, за это время я побывал на 2–3 мелких проектах и 3–4 проектах крупных компаний, таких как: Luxoft (упокой его душу), Альфа, ОТП, ГПБ и др. Так же я часто прохожу собеседования и в другие компании, чтобы «держать себя в форме», собирать статистику и т. п. Прохожу собеседования, в том числе и в крупные финтехи и пока что не хочу туда идти.

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

Читать далее
Total votes 36: ↑25 and ↓11+14
Comments74

У верблюда два горба, потому что жизнь – борьба. С усталостью, стрессом и прокрастинацией

Level of difficultyEasy
Reading time2 min
Views4.3K

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

Читать далее
Total votes 22: ↑18 and ↓4+14
Comments23

Раздача файлов на смартфоны без интернета. Опенсорсные альтернативы AirDrop

Level of difficultyMedium
Reading time7 min
Views11K


Формулировка задачи. У нас есть настольный компьютер и мобильные устройства под Android. Задача простая — как быстро перебросить файлы с компьютера на телефоны и планшеты. Например, скачанные подкасты и HD-фильмы 1080p, файлы apk для установки, рабочие файлы с персоналки, бэкапы. Хранилище телефона можно использовать как резервный внешний диск или как «беспроводную» флешку, которая работает по Wi-Fi.

Конечно, можно это сделать через веб-сервисы Wormhole/PairDrop/FilePizza, через телеграм/вайбер или инструменты синхронизации ПК и смартфона, такие как syncthing. Да, это удобно и привычно. Но процесс можно 1) ускорить; 2) избавиться от подключения к интернету. То есть файлы будут передаваться напрямую между устройствами, как Apple AirDrop, только лучше.
Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments68

Java Тренажер

Reading time3 min
Views11K

Хочу представить вашему вниманию бесплатный курс Java Тренажер, который недавно опубликовал на платформе Stepik.

Java — это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (позднее приобретённой компанией Oracle). Он был выпущен в 1995 году и с тех пор стал одним из наиболее популярных языков программирования благодаря своей платформенной независимости, простоте использования, масштабируемости и широкому спектру применения.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments4

Как удалить конкурента из поисковой выдачи Яндекс

Reading time3 min
Views13K

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

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

Читать далее
Total votes 25: ↑8 and ↓17-9
Comments8

Ищете в беге управление гневом? Остановитесь

Level of difficultyEasy
Reading time4 min
Views4.4K

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

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments7

Выгорание: рассматривая золу под макроскопом

Level of difficultyMedium
Reading time12 min
Views14K

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

Я начал свой путь как разработчик и был им 15 лет, а сейчас руководитель группы разработки. Прошёл всю дорогу от младшего до ведущего и шагнул дальше. Пока я гнал по карьерному треку, я полноценно выгорал два раза, а потом решил, что хватит это терпеть. И не выгорел третий. Как получилось? Об этом и будет эта статья.

Читать далее
Total votes 90: ↑87 and ↓3+84
Comments21

В моих жилах течет моддерская кровь: как и зачем я променял оригинальный айфон на нерабочую подделку за 1500 рублей?

Level of difficultyMedium
Reading time18 min
Views14K
image

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

Пожалуй, споры о том, какая мобильная платформа лучше не утихнут никогда. Люди из года в год спорят, какая же мобильная платформа круче: iOS или Android, и какие только аргументы не выдвигают в сторону оппонента. Но что делать, когда хочется усидеть сразу на двух стульях и иметь смартфон в корпусе iPhone, но при этом с привычным Android на борту? Когда душа моддера и любителя красноглазия просто требует чего-то необычного!? Правильно, обратиться к китайским «подвалам» и взять себе дешевую реплику на андроиде! А в моём случае — ещё и Б/У утопленную подделку 14 Pro Max чуть больше, чем за «тыщу» рублей, так ещё и проапгрейдить её! Сегодня будет познавательный и интересный материал, в котором мы с вами: узнаем как диагностировать некоторые аппаратные проблемы с помощью минимального и дешевого оборудования, оживим наше «яблочко» после попадания влаги, «отреверсим» и пропатчим в IDA Pro загрузчик, дабы разрешить загрузку unsigned-ядер, портируем кастомное рекавери и накатим рут, а также узнаем что из себя представляет такой «айфон» в повседневной жизни и как мне вообще взбрело в голову купить китайскую подделку яблочной техники! Материал диковинный, но обещаю — будет интересно! Жду вас под катом :)
Читать дальше →
Total votes 92: ↑89 and ↓3+86
Comments54

Easy English с левой задней ноги

Level of difficultyEasy
Reading time14 min
Views6.6K

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

Меня зовут Дмитрий и я многократный чемпион по бесплодным попыткам освоить английский язык. Гениальные Д.Петров, С.Дружбинский и десятки талантливых блогеров — не приблизили меня к мечте. Замечательные Duolingo, Memrise, Anki и прочие, помогающие миллионам учащихся — на мне обломались. Два репетитора вернули деньги и рыдая, умоляли больше не приходить. На запрос «таблетка для английского — быстро, недорого и желательно во сне» Google до сих пор недоуменно пожимает плечами.

В конце концов мне пришлось признать, что «God helps those who help themselves», и, собрав в кулак свою лень и немного VSC, я за сравнительно небольшой срок закрыл этот гештальт, ну или почти закрыл.

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

Под катом много скриншотов и незримое «IMHO» перед каждым утвердительным предложением. Скриншоты взяты из моей программы «5 фраз» — предлагаю закрыть глаза на самопиар, а сосредоточиться на подходах.

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments4

Самый простой гайд по созданию бота для анализа сообщений в Telegram

Reading time6 min
Views12K

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

В этой статье рассказываем, как с помощью нейросети создать бота, который собирает и обрабатывает информацию из сообщений, и задеплоить его на облачный сервер.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments5

Как пишут SQL-запросы гуманитарии

Level of difficultyEasy
Reading time5 min
Views26K

Когда говорят «мы ускорили выполнение нашего запроса в N раз» это значит, что сначала сделали плохо а потом начали думать как улучшить.

Так я думал раньше.

Читать далее
Total votes 25: ↑20 and ↓5+15
Comments29

Время — это не просто ещё одно измерение

Level of difficultyMedium
Reading time8 min
Views88K

Большинство из нас хоть раз в жизни задавались вопросом: «Каково кратчайшее расстояние между двумя точками?». По умолчанию многие дадут тот же ответ, что и Архимед более 2 000 лет назад: прямая линия. Если вы возьмёте плоский лист бумаги и поставите на нём две точки в любом месте, вы сможете соединить эти две точки любой линией, кривой или геометрической траекторией, которую только можно себе представить. До тех пор пока бумага остаётся плоской и никак не изогнутой, прямая линия, соединяющая эти две точки, будет самым коротким путём между ними.

Именно так работают три измерения пространства в нашей Вселенной: в плоском пространстве кратчайшее расстояние между любыми двумя точками — это прямая линия. Это верно независимо от того, как вы вращаете, ориентируете или иным образом располагаете эти две точки. Но наша Вселенная состоит не только из трёх пространственных измерений – она содержит четыре измерения, пространство и время. Легко взглянуть на это и сказать: «О, ну три из них — пространство, а одно — время, вот мы и получаем пространство-время», — и это правда, но это не вся история. В конце концов, кратчайшее расстояние между двумя событиями в пространстве-времени уже не является прямой линией. И вот, что говорит об этом наука.

Читать далее
Total votes 66: ↑61 and ↓5+56
Comments400

Information

Rating
3,557-th
Registered
Activity