В этой статье я поделюсь с вами своим опытом использования Golang, Kafka и Clickhouse на примере простого ETL-конвейера для параллельной передачи JSON-данных в базу данных с последующим прогнозированием температуры на основе машинного обучения.
Пользователь
Дом, милый дом: нюансы работы с ClickHouse. Часть 2, репликация
Всем привет, меня зовут Пётр. В первой части этого цикла статей мы взглянули на некоторые базовые концепции ClickHouse. В этой же статье продолжим изучать тонкости работы с этой колоночной базой данных и подробно рассмотрим такой аспект как репликация. А ещё разберёмся с сервисами координации Zookeeper и ClickHouse Keeper.
Виртуальные потоки Java 21 — чувак, где мой lock?
Как показывает опыт Netflix, использование виртуальных потоков, представленных в Java 21, может спровоцировать возникновение неожиданных проблем. В новом переводе от команды Spring АйО мы подробно исследуем уникальные трудности, возникшие у команды Netflix при интеграции виртуальных потоков в Spring Boot на Tomcat.
Давайте же посмотрим, как виртуальные потоки могут повлиять на производительность и стабильность системы.
Что нового в документации YDB во втором квартале 2024 года
Документация YDB продолжает развиваться, отвечая на растущие потребности своей разнообразной аудитории. Наша цель остаётся прежней — улучшение ясности, доступности и глубины предоставляемой информации. В этом квартале мы ввели значительные обновления и новые разделы.
Как вести документацию, чтобы никто ничего не понял. Немного теории и вредные советы от МТС Диджитал
Привет, Хабр! Это Евгения Миронова — Senior Business Analyst, Павел Орлов — Senior System Analyst и Мансур Сафиуллин — Middle Business Analyst из МТС Диджитал. Сегодня будем говорить о проектной документации — той самой, в которой так часто «черт ногу сломит». Чтобы читать было интереснее, мы дополнили теорию практическими советами. Но не спешите их тестировать — сначала дочитайте пост до конца. Поехали!
Математика надёжности. Доклад Яндекса
Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.
Кунг-фу спикера: словесные трюки, вербальная дрессировка и другие приемы речевой борьбы
Представим ситуацию: вас позвали на подкаст. Вы обсудили материал с ведущим, подготовили тему, пришли и вам буквально не дали сказать и пары слов.
Нередко на важных для нас мероприятиях мы можем переволноваться, растеряться, нарваться на тролля и т.д. В этой статье я попробую разобрать разные сложные ситуации, которые могут возникнуть во время публичных активностей.
PostgreSQL 16. Организация данных. Часть 1
PostgreSQL очень популярная СУБД. Её используют во многих проектах, как новички, так и профессионалы. Однако не все понимают, как именно работает данная система и какое у неё внутренне устройство.
Давайте разберемся вместе на основе книги «PostgreSQL 16 изнутри» и официальной документации!
Локальные LLM в разработке: а почему бы и да?
Меня зовут Антон Гращенков, и я занимаюсь развитием Java в Альфа-Банке. Программированием увлекаюсь ещё со школы: писал на множестве разных языков — от Pascal до TypeScript, мне это просто нравится. В статье я на примерах покажу, для каких задач я использую локальные модели. Да, существует много инструментов доступных в облаке, — тот же ChatGPT, Copilot или YandexGPT. Однако можно запустить такую модель и локально, и сделать это крайне просто.
Ведь если хочется, то почему бы и да?
Искусство общения с LLM: Гайд по техникам Prompt Engineering
Привет, Хабр! Меня зовут Никита Кулин, ML-Engineer NLP моделей.
В этом гайде мы поговорим о подготовке к prompt-engineering, о базовых принципах написания промпта, про его структуру и про типы решаемых задач, о продвинутых техниках через рассуждения для повышения качества ответа и снижения вероятности появления галлюцинаций. Гайд будет полезен для всех, кто начинает погружаться в промптинг.
Это мой первый пост, поэтому буду рад любой обратной связи!
systemD с 0 до 1: библия сисадмина
Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.
Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.
В этой статье мы разберем — создание сервисов и юнитов, как облегчить работу при помощи systemd, отслеживать состояние системы и управлять ей.
А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Создание архитектуры программы или как проектировать табуретку
К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».
Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.
Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Краеугольные камни ClickHouse
Привет, Хабр! Меня зовут Артемий Кравцов, я работаю инженером в Wildberries. Сегодня расскажу про то, что люблю – про ClickHouse. Моя цель – осветить некоторые ключевые особенности в архитектуре ClickHouse и в том, как он хранит данные.
Что такое куски и слияния? Как быть с частыми вставками? Как обновлять значения в строках? Что не так с точечными чтениями? Как сделать тяжёлый JOIN?
Статья рассчитана на тех, кто только знакомится с ClickHouse.
Введение в смарт-контракты
Кратко о KAN для самых неподготовленных
В апреле практиками-исследователями и математики анонсировали новую архитектуру нейросетей. Крупного резонанса открытие не принесло, хотя с нашей точки зрения, KAN может претендовать на интересную технологию Важнее, что это не просто новая вариация трансформера или исправленная рекуррентная нейронная сеть – это новый подход к нейросетям в принципе, новая архитектура вместо MLP.
Мы написали большую статью по KAN со всеми подробностями, здесь мы совсем кратко пробежимся по основным положениям архитектуры и ее проблемах для самых неподготовленных читателей.
Но надеемся, что некоторое понимание базовой линейной алгебры и математического анализа присутствует.
MLP – обычная полносвязная нейросеть, где благодаря послойной активации нейронов мы получаем какой-то конечный результат (данные) на последнем слое. Похоже на имитацию действия мозговых нейронов: благодаря передаче импульса от нейрона к нейрону – мы получаем результат в виде ассоциации, воспоминаний...
Так вот суть KAN сводится к переносу акцента с “активации нейронов” к активации “связей” между ними.
Конечно, сами связи никуда не деваются, но. Теперь вместо обычных весовых отношений между нейронами – мы получаем обучаемые функции активации – связываем нейроны B-spline’ами. Веса – это такие числовые коэффициенты, которые определяют уровень активации нейронов. Больше вес – сильней сигнал.
Нейросети с большим числом слоев превращаются в черный ящик. Мы не можем понять, как конкретно числовые значения отвечают за те или иные признаки — и как именно признаки в них преобразуются. Поэтому внутренняя часть нейросети нам недоступна.
Ловушка фичеризма: почему продукт страдает, когда мы зациклены на функциональности
Наполняя сервис функциями, которые непременно будут нужны и понятны для пользователя, легко перестараться и произвести эффект ровно противоположный. Часто те, кто «живут» своим продуктом, забывают, что все его преимущества и удобства — не данность для пользователя, а дополнительная когнитивная нагрузка, которая может начать зашкаливать, если создатели сервиса не будут периодически заземляться.
Под катом небольшое, но осмысленное размышление о том, почему фичеристский подход может убить пользу продукта, и как подойти к разработке так, чтобы этого все‑таки не произошло.
[Пятничное] Теория Жоп
Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...
Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.
Как я написал для своей команды бот-напоминалку на Golang и втрое сократил время на ревью задач
Привет, Хабр! На связи Кирилл Веркин. Вообще, я занимаю в СберМаркете должность Senior QA, но ради большей производительности команды стал немного кодером.
Эта статья может быть интересна тем, кто замечает, что задачи в команде часто теряются, и хочет автоматизировать процесс напоминалок. Я делюсь кодом, поясняя ключевые моменты для таких же новичков в Go. Мой код написан для сочетания GitLab, Jira и Mattermost (корпоративный мессенджер, которым мы пользуемся в СберМаркете), но подобное решение можно реализовать и с другими сервисами.
Человеческим языком про метрики 3: перцентили для чайников
Это третья статья из цикла. В прошлой части мы разбирали типы метрик, и уже там начали встречаться перцентили. Это полезная штука, но для неподготовленного читателя она выглядит просто как математическая дичь. Эта статья поможет разобраться в перцентилях по-инженерному, не заканчивая профильный факультет.
Разбираемся в основах Blockchain: Задача Византийских Генералов. Часть 1
Блокчейн – это децентрализованная система, состоящая из различных субъектов, которые действуют в зависимости от своих стимулов и имеющейся у них информации.
Всякий раз, когда новая транзакция транслируется по сети, узлы могут включить эту транзакцию в копию своего леджера или проигнорировать ее. Когда большинство участников сети принимают решение о принятии определенного состояния, достигается консенсус.
Информация
- В рейтинге
- Не участвует
- Откуда
- Нижний Новгород, Нижегородская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность