Pull to refresh
0
0

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

Send message

Поиск дубликатов в клиентском MDM на миллиард записей

Reading time15 min
Views2.2K

Представьте, что вам нужно объединить две базы данных с информацией о клиентах, каждая из которых содержит несколько миллионов записей. В них есть ФИО, паспортные данные, СНИЛС, даты рождения, адреса и другие данные. Ваша задача — найти все похожие записи и не допустить ошибочных объединений. 

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

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

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

Читать далее
Total votes 13: ↑13 and ↓0+22
Comments3

WAF для Вебсокетов: рабочее решение или иллюзия?

Level of difficultyEasy
Reading time7 min
Views1.6K

Есть мнение, что в силу особенностей вебсокетов, WAF не может их нормально анализировать и защищать. Давайте попробуем разобраться, насколько это утверждение справедливо.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments8

PHP и работа с базами данных: как выбрать и использовать ORM для максимальной производительности

Level of difficultyMedium
Reading time6 min
Views3.7K

ORM (Object-Relational Mapping, рус. Объектно-реляционное отображение) — это технология, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». С помощью ORM упрощается процесс сохранения объектов в реляционной базе данных и их последующего извлечения, так как она автоматизирует преобразования данных между двумя различными форматами.

По своей сути, ORM обеспечивает работу с базой данных на уровне объектов, что подразумевает соответствие структуры и данных в БД объектам кода. В ходе работы с этими объектами происходят изменения как в базе данных, так и в коде. Основные принципы функционирования ORM включают следующие тезисы:

Читать далее
Total votes 12: ↑4 and ↓8+1
Comments17

Системный аналитик с ЗП 400+. Найти за 30 дней. Часть 2 «Проверка на прочность»

Level of difficultyMedium
Reading time9 min
Views26K

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

Кому предложат ЗП 200-, а кому 400+? Собеседование расставит всё на свои места.

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

Читать далее
Total votes 25: ↑22 and ↓3+24
Comments20

Заказные клики. Кто кликает по рекламе в Яндексе за копейки?

Reading time4 min
Views10K

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

Кто эти люди? Зачем они кликают? Как именно это работает и как с этим бороться, далее в этой статье.

Читать далее
Total votes 26: ↑19 and ↓7+23
Comments22

Интерактивная кормушка на Snap4Arduino

Reading time14 min
Views3.6K

Привет, Хабр! Этот текст возник в результате бесед с моими коллегами из издательства «БХВ», в котором я продолжаю плодотворно работать. Наряду с компьютерными и детскими книгами наша компания проектирует и выпускает наборы для хобби‑электроники, мобильных роботов, а также авторские (непереводные) книги по языку Scratch. Открыв последнюю ссылку, вы убедитесь, что Scratch — это уже не игрушки (в чём мы полностью согласны с уважаемой компанией Sportmaster, в блоге которой вышел пост). Но добавим, что наряду со Scratch существует аналогичная среда визуального программирования mBlock, практически не рассмотренная на Хабре. Это инструментарий для работы с Arduino, прекрасно показавший себя в наших разработках. Под катом вашему вниманию предлагается разбор программируемого девайса, который пока не планируется в серию, но позволяет оценить достоинства Scratch и mBlock, порадовать ваших детей и просто с интересом провести ближайшие выходные. Статья является изложением идей и инженерных изысканий кандидата технических наук, уважаемого Игоря Владимировича Шишигина.

Читать далее
Total votes 22: ↑21 and ↓1+31
Comments5

Автоматизация набора воды в чайник и кофемашину

Level of difficultyEasy
Reading time4 min
Views11K


Зачем всё это?


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

Требования:
  • Минимум организационных вопросов, максимальная автономность.
  • Минимум физических усилий.
  • Чистая вода.
  • Простое решение без вмешательства в электронику техники.
  • Защита от протечек.
  • Простота реализации.
Читать дальше →
Total votes 30: ↑28 and ↓2+36
Comments98

Небольшой хит-парад интересных устройств

Level of difficultyEasy
Reading time9 min
Views13K
Картинка Youtube-канал «Amabrush», Youtube-канал «Rae Dizzle Shorts», Niceyard store

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

Некоторые будут концептуальными, над которыми ещё следует подумать, тем не менее они любопытны для развития технического мышления. Итак…
Читать дальше →
Total votes 36: ↑34 and ↓2+53
Comments11

Создание инструмента генерации кода с помощью Rust и локальных LLM от Ollama

Level of difficultyMedium
Reading time4 min
Views3.9K

Это реакция на выпуск ChatGPT o-preview. Попытка добавить логику в LLM с открытым исходным кодом, которые можно запустить дома на скромном GPU или даже на CPU

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

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

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

Первый шаг — получить объяснение от пользователя:

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

Как в разы увеличить дальность приема WiFi / BT при помощи паяльника

Level of difficultyEasy
Reading time3 min
Views53K

Ну или точнее при помощи двух паяльников. Несколько простых и эффективных решений, подходящих для компактных модулей с чип антенной.

Читать далее
Total votes 108: ↑107 and ↓1+128
Comments135

Открытый проект Wi-Fi Bluetooth микророутера

Level of difficultyHard
Reading time11 min
Views9.4K

Здесь представлено продолжение проекта на платформе S7V30 с использованием микроконтроллеров семейства Synergy. В прошлой статье был разработан bootloader с функциями криптозащиты прошивки и SD карты. В данном проекте мы расширяем функциональность нашего бутлодера  добавляя  в него криптозащищенные каналы связи по Wi-Fi и Bluetooth.  Стараемся не делать компромиссов между скоростью и функциональностью. Нам нужно устройство которое могло бы предоставлять услуги точки доступа по Wi-Fi, станции Wi-Fi, периферии Bluetooth LE и централи Bluetooth LE и все это одновременно. Кроме этого мы сделаем резервное подключение к интернету через USB и реализуем виртуальный COM порт через Bluetooth Classic. Сетевой стек должен работать в мульти интерфейсном режиме, то есть каждый из внутренних серверов (FTP, HTTP, Telnet и т.д.) доступен со всех подключенных IP интерфейсов. Управлять будем через минималистичный веб интерфейс с шифрованием TLS 1.3,  через него же и апгрейдить прошивку.

Читать далее
Total votes 14: ↑13 and ↓1+15
Comments5

Создание пользовательского интерфейса на дисплее Guition с ESPHome и библиотекой LVGL

Level of difficultyMedium
Reading time4 min
Views5.3K

Недавно вышла обновленная версия ESPHome 2024.8.0, в которой появилась библиотека LVGL версии 8.4 для создания графических интерфейсов TFT-экранов. У меня был в наличии такой дисплей, и я решил воспользоваться новыми возможностями для создания интерфейса по управлению умным домом. Моя задача заключалась в том, чтобы наполнить недорогой дисплей необходимой функциональностью.

Читать далее
Total votes 15: ↑14 and ↓1+16
Comments13

DIY устройство в подрозетник с датчиками окружающей среды в комнате

Level of difficultyEasy
Reading time2 min
Views13K

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

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments28

Горячий, умный, рогатый: разработка анемометра в концепции интернета вещей

Reading time8 min
Views8.4K

В материале подробно разбирается процесс создания умного IoT-Анемометра.

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

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

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

Как выбрать и защитить название для компании и продукта

Level of difficultyMedium
Reading time13 min
Views1.4K

Нам иногда странно и больно видеть, как мало усилий и креативности бизнесы уделяют процессу выбора и защите торговых марок, то есть торговых наименований IT-продуктов и компаний (далее - “торговая марка”, “торговое наименование”, “ТМ”, “trademark”). Очевидно, что любой бизнесмен, и тем более участник IT рынка (а особенно те, кто пишут свои продукты), рано или поздно столкнется с этим вопросом. Поэтому, чем раньше бизнесмены, особенно IT-шники, об этом будут задумываться, тем меньше будет проблем в их бизнесе в будущем. 

Итак, постараемся восполнить пробел и осветить тему торговых марок и их защиты. Очевидно, что с точки зрения программирования легко повторить и tetris, и facebook, и фактически любые деловые схемы, присутствующие в публичном доступе. Но попробуйте раскрутить свой продукт (будь то клон или нет) с похожими на эти продукты названиями — тут же владельцы (вернее их юристы) вас закроют со всех ресурсов. С другой стороны, если ваш продукт становится популярным, то тут же назревает необходимость, вернее возникает осознание того, что его нужно защитить от клонов и сделать так, чтобы другие не использовали и не забивали вашу марку в свои ключевые слова или LLM. Если коротко — это и есть причина, по которой торговая марка выступает одним из основных параметров оценки и стоимости любого IT проекта при его финансировании, продаже и заключении серьезных контрактов. 

Мы решили привести здесь наши практические рекомендации по наименованию продуктов в любой сфере, но особенно в IT, для целей маркетинга и тоста ценности компании в США. Мы не хотим нагонять скуку техническими моментами, и поэтому наши рекомендации носят, прежде всего, практический характер. Эти рекомендации могут влиять как на стратегию защиты вашей TM на заре его развития, так и на более поздних стадиях вашего бизнеса. Как говорится, как корабль назовешь, так он и поплывет…

Читать далее
Total votes 3: ↑1 and ↓2+1
Comments2

Бесплатный аналог Notion на своем сервере за 10 минут. Локальный запуск, настройка и деплой Wiki.JS

Level of difficultyEasy
Reading time14 min
Views16K

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

Как вы, возможно, уже знаете, 9 сентября Notion покидает рынок РФ, и, по слухам, это может сопровождаться удалением всех аккаунтов из России. В связи с этим, нам всем стоит задуматься о том, какую альтернативу выбрать.

После тщательного анализа различных опций, я нашел, на мой взгляд, отличную и полностью бесплатный аналог Notion — Wiki.JS.

Сегодня мы разберемся, как установить и настроить эту платформу. Начнем с первичной настройки и запуска системы на локальном компьютере, а затем, всего за несколько минут, развернем наш проект на удаленном хостинге, превратив Wiki.JS в полноценную замену Notion.

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

Для деплоя я буду использовать сервис Amvera Cloud. Я выбрал его за простоту развертывания и предоставление бесплатного доменного имени с HTTPS-протоколом, которое будет выделено вам сразу после создания проекта.

Для деплоя нам понадобится создать Dockerfile (этот файл будет использоваться как для локального запуска, так и для развертывания). Технически, вам достаточно будет скопировать настройки с этой статьи и все у вас заработает. Затем, просто загрузите этот файл через консоль на сайте Amvera Cloud, и ваш проект соберется и запустится автоматически!

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

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments17

«А можно быстрее?»: разбираем методы ускорения обучения нейронных сетей

Level of difficultyMedium
Reading time21 min
Views4.5K

Современные нейросетевые архитектуры достигают впечатляющих результатов в сложных задачах ИИ благодаря росту объемов данных и вычислительных мощностей. Однако обратной стороной медали стала высокая ресурсоемкость обучения.

Например, последняя версия GPT-4 от OpenAI обучалась на большом GPU-кластере. По некоторым данным, она содержит около 1,8 триллиона параметров, а ее обучение обошлось более чем в 100 млн долларов. А модель Llama 3.1 405B, вроде бы оптимизированная под ограниченные ресурсы, все равно требовала более 15 триллионов токенов и свыше 16 тысяч GPU NVIDIA H100.

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

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

Читать далее
Total votes 26: ↑24 and ↓2+28
Comments0

Что не так со статьями о выгорании

Level of difficultyMedium
Reading time26 min
Views15K

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

Читать далее
Total votes 56: ↑52 and ↓4+58
Comments95

Обзор приложения NotebookLM

Level of difficultyEasy
Reading time8 min
Views5.2K

Веб-приложение под названием NotebookLM (https://notebooklm.google.com/) было выпущено компанией Google около года назад, и на Хабре было по этому поводу два кратких анонса в прошлом году (раз, два). На мой взгляд, оно заслуживает обзора чуть более подробного чем эти краткие сообщения, так что попробую восполнить этот пробел.

NotebookLM - это инструмент на основе ИИ, который позволяет относительно быстро, удобно и без лишних телодвижений получить краткий разносторонний обзор (саммари) объемных документов (книг, статей), а также интерактивно взаимодействовать с ними (задавать вопросы, касающиеся их содержания). В моем понимании он представляет собой надстройку над "обычным ИИ-чатом", которому в контекст загружен интересующий пользователя документ. Эта надстройка включает в себя:

1. Набор из нескольких преднастроенных стандартизованных промптов, доступных в один клик и ориентированных на работу с объемными текстами ("Составь мне оглавление", "Составь мне FAQ на основе этого текста", и т.п.)

2. Интерфейсное решение ("карточки-плитки на рабочем столе"), которое по замыслу разработчиков, видимо, должно быть более удобным чем "обычный (линейный) чат"

3. Интерфейс чата, который при взаимодействии с текстом в формате "вопрос-ответ" отображает не только ответы на задаваемые вопросы, но и фрагменты соответствующего исходного текста, а также ссылки на конкретные параграфы полного текста-источника.

Посмотрим как это работает
Total votes 7: ↑7 and ↓0+11
Comments5

Information

Rating
6,309-th
Registered
Activity