Pull to refresh
23
0.1
Aleks Lozovyuk @aleks_raiden

Криптовалюты, финансы, распределенные системы

Send message

Решение внутренних конфликтов: инженерный подход

Level of difficultyMedium
Reading time27 min
Views3K

Люди на Земле уже многие века как-то решают свои внутренние конфликты. Да что там говорить - это умеют делать даже обезьяны. Хотя у людей получается лучше: нам помогают не только инстинкты и развитый неокортекс, но и чужой опыт: мифы, религии, философские учения, нормы культуры, а порой даже и книги об "успешном успехе".

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

В этой статье вас ждёт:

Дизассемблирование структуры внутреннего конфликта до атомарных инструкций
Путешествие в джунгли legacy-кода, хранящегося в чертогах подсознания.
Разрешение внутренних конфликтов как выплата техдолга,
Формирование эффективных промптов для бионейросети (той, которая между ушами)
Простота: фреймворк, который подходит для решения доброй половины внутренних конфликтов
Глубина: экстремальное погружение во внутренний мир человека.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments7

Transient storage в EVM (EIP-1153): на грани добра и зла

Reading time18 min
Views379

В одной из статей о расчете газа в Ethereum (ссылка) я рассказал об истории изменений механизмов подсчета газа для хранилища смарт-контракта (storage) — от правил, заложенных в протоколе изначально, до EIP-3529. Во всех этих изменениях прослеживается основная проблема: нерациональное использование газа, когда слот хранилища смарт-контракта изменяется в ходе транзакции и затем возвращается к исходному значению, например, при блокировке функции для защиты от атак reentrancy. Иными словами, в ситуациях, когда постоянное хранилище используется как временное, а также в случаях необходимости безопасной передачи данных между фреймами вызовов.

В этой статье рассмотрим нововведение хард-форка Dencun (Cancun-Deneb), где в рамках обновления слоя выполнения был представлен EIP-1153: Transient storage opcodes, предлагающий решение этой проблемы за счет введения двух новых опкодов (TSTORE, TLOAD) и создания нового типа памяти в EVM - transient storage.

Читать далее
Total votes 7: ↑8 and ↓-1+9
Comments0

GPT-4, Claude 3, Gemini Pro или опенсорс — как выбрать LLM под свою задачу?

Level of difficultyMedium
Reading time10 min
Views15K
image

Несмотря на то, что сейчас из каждого утюга рекламируется доступ к ChatGPT и GPT-4, вообще говоря, в мире существует несколько больше разных поставщиков LLM (больших языковых моделей), и некоторые из которых могут гораааздо более эффективнее решать какие-то конкретные задачи.

Я уже полгода веду проект VseGPT.ru с доступом к разным LLM из России по OpenAI API (ну, и через вебчат). Львиная доля работы — подключение новых нейросетей. Сейчас их уже свыше 60, и каждую я попробовал хотя бы раз, ну, когда подключал.

Правда, сайт LLMExplorer, собирающий данные об опенсорс нейросетях с портала Hugging Face, говорит, что их там уже более 33 000 штук. М-да.

В общем, вероятно, я не знаю о текстовых сетках всё, но определенно знаю кое-что — хотя бы в пределах своего скромного опыта в 60 сеток. Так что кому интересно — прошу под кат.
Читать дальше →
Total votes 23: ↑26 and ↓-3+29
Comments28

Смарт-контракты на WebAssembly: зачем это надо и как работает

Level of difficultyMedium
Reading time10 min
Views2.5K

В последнее время многие блокчейн-платформы для исполнения смарт-контрактов переключились на WASM — WebAssembly. Мы не стали исключением, и в последнем обновлении тоже добавили WebAssembly как альтернативу привычному Docker. В этом посте мы расскажем, для каких задач нам потребовался именно WASM, что мы достигли с ним на сегодня и как WASM отражается на производительности блокчейна.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments2

Структура объекта в JavaScript движках

Reading time23 min
Views6.6K

С точки зрения разработчика, объекты в JavaScript довольно гибкие и понятные. Мы можем добавлять, удалять и изменять свойства объекта по своему усмотрению. Однако мало кто задумывается о том, как объекты хранятся в памяти и обрабатываются JS-движками. Могут ли действия разработчика, прямо или косвенно, оказать влияние на производительность и потребление памяти? Попробуем разобраться во всем этом в этой статье.

Читать далее
Total votes 30: ↑30.5 and ↓-0.5+31
Comments1

Представляем планировщик Go: Вы никогда не смотрели на горутины с этой стороны

Level of difficultyMedium
Reading time7 min
Views10K

Вероятно, вы слышали о планировщике Go раньше, но насколько хорошо мы знает о том как он работает? Как он связывает горутины с потоками?

Разберем по очереди операции, которые выполняет планировщик.

Читать далее
Total votes 36: ↑33 and ↓3+30
Comments1

Внутри S3. Доклад Яндекса

Reading time12 min
Views17K

Привет, я Паша, разработчик в Yandex Infrastructure, и я катаю гусей. С 2019 года я развиваю S3-хранилище как для внутренних пользователей Яндекса, так и для клиентов Yandex Cloud. А «гусём» называется наш бэкенд S3 API: он написан на Go, а из словосочетания Go + S3 получился goose. Возможно, вы также слышали про GeeseFS — это наш высокопроизводительный FUSE-клиент для S3. C его помощью вы можете на своём ноутбуке или виртуалке подмонтировать папку, которая будет работать с бакетом S3. 

Для чего нам «гуси» и прочая орнитология? Яндексовая инсталляция хранилища S3 хранит миллиарды файлов. Это огромные объёмы данных, а также метаданных. Для хранения метаданных мы научились использовать умное шардирование, и теперь сами управляем распределением занятого места и нагрузкой между шардами баз.

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

Читать далее
Total votes 82: ↑81 and ↓1+80
Comments52

Проектируем микросервисы с Reactive Manifesto: 4 принципа распределенных систем

Level of difficultyMedium
Reading time12 min
Views2K

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

На помощь приходит Reactive Manifesto — документ, который обобщил опыт целого ряда компаний по созданию распределенных систем. Манифест формулирует главные принципы, на которые стоит опираться на этапе проектирования и эксплуатации таких систем.

Меня зовут Андрей Василевский, я системный архитектор в Lamoda Tech. В этой статье я на примерах из своей работы покажу, как применять Reactive Manifesto на практике. Статья будет полезна тем, кто только начал изучать распределенные системы, хочет закрепить теорию или тем, кто хочет структурировать проектирование микросервисов в своей компании.

Читать далее
Total votes 25: ↑24 and ↓1+23
Comments3

Как работает etcd с Kubernetes и без него

Reading time23 min
Views6.8K

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

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

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

Стейкинг NFT: как это работает?

Reading time9 min
Views2.3K

Все знают про стейкинг обычных ERC-20 токенов. А что с ERC-721? Вокруг стейкинга NFT уже давно ходят противоречивые мнения, и мы решили разобраться в этом с точки зрения технологии. Поговорим о том, как это работает: как организовать на смарт-контрактах, как рассчитываются вознаграждения и какую пользу это может принести проектам и держателям NFT.

Добро пожаловать в технический гид по стейкингу NFT!

Читать далее
Total votes 18: ↑13 and ↓5+8
Comments9

Тьюринг и Гёдель — два взгляда на искусственный интеллект и не только

Level of difficultyEasy
Reading time10 min
Views2.3K

Привет! Меня зовут Саша Шутай, я руководитель направления PHP в AGIMA. Мы с командой подготовили большой разбор научных взглядов двух великих ученых: Алана Тьюринга и Курта Гёделя. Подумали, что будет интересно сравнить их биографии и подходы к искусственному интеллекту. Если тема зайдет, будем и дальше рассказывать об истории математики и разработки.

Как известно, у программиста стакан наполовину Алан, а у математика — наполовину Курт. Алан Тьюринг и Курт Гёдель — два величайших ума XX века, вклад которых в науку фундаментален. Полнота по Тьюрингу — критерий того, что вычислительная система способна решить любую разумную задачу. Неполнота по Гёделю — свойство любой достаточно сложной теории, из-за которого в ней нельзя ни доказать, ни опровергнуть некоторые утверждения.

Кажется, что из этих двоих Тьюринг — «хороший полицейский»: Тьюринг-полнота утверждает, что любая задача разрешима, даже если ты программист на Brainfuck. А Гёдель в этой парочке, соответственно, плохиш: его теорема говорит, что некоторые вещи не доказать совсем никак, и в свое время она конкретно обломала программу Гильберта по формализации всея математики. Все ли так однозначно? В чем на самом деле фундаментальное различие между их взглядами? Искусственный интеллект в заголовке — это кликбейт? Ответы на эти и другие вопросы ожидают вас под катом.

Читать далее
Total votes 36: ↑33 and ↓3+30
Comments3

Расчет количества газа необходимого для выполнения транзакции в Ethereum. Часть 2 — storage

Level of difficultyHard
Reading time18 min
Views1.3K

Привет всем! В прошлой статье мы с вами изучили общую механику расчета газа при выполнении транзакций. В этой статье мы сфокусируемся на самых «дорогих» операциях работы с хранилищем смарт‑контракта (storage), а также пройдемся по истории EIPs, связанных с расчетом газа в Ethereum, чтобы увидеть, по каким принципам сообщество принимало решения об изменениях «правил игры» и как сегодня, на основе этой истории, правильно выполнять такие расчеты.

Статья для тех, кто хочет разобраться почему слоты в storage бывают теплыми и холодными, грязными или свежими и за что возвращают газ. Также затронем списки доступа и intrinsic gas. Наконец увидим полную картину учета газа от инициализации транзакции до ее выполнения.

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

Эффективные трассировки в Go

Level of difficultyMedium
Reading time6 min
Views2.2K

Пакет runtime/trace содержит мощный инструмент для понимания программ Go и устранения неполадок. Функциональность внутри позволяет создавать трассировку исполнения каждой горутины за определенный период времени. С помощью go tool trace command (или превосходного инструмента gotraceui с открытым исходным кодом) можно визуализировать и исследовать данные в этих трассировках.

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

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

С 500 мс до нуля, или история о том, как я написал Node.js C++ addon и ускорил скидочный сервис в 500 раз

Level of difficultyMedium
Reading time18 min
Views18K

Приветствую тебя! Меня зовут Дмитрий и я работаю в LAD.
Сегодня я поведаю историю о том, как эволюционировал скидочный сервис одного из наших проектов. Пройдя путь от всеми нелюбимого, "тормозящего" сервиса, до сервиса,
который имеет наилучшие показатели на недельных графиках SLA.

Читать далее
Total votes 44: ↑43 and ↓1+42
Comments37

CI/CD Kubernetes платформа Gitorion. Непрерывная доставка CD на базе Jenkins

Level of difficultyMedium
Reading time4 min
Views2.2K

Привет всем! В предыдущей статье мы подробно рассмотрели реализацию непрерывной интеграции CI в платформе Gitorion. В данной статье предлагаем вашему вниманию подробный разбор внедрения непрерывной доставки CD в платформу Gitorion на базе Jenkins.

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

Почему рациональный выбор невозможен

Reading time8 min
Views8.7K
image

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

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

Иногда достаточно найти просто первое подходящее.

А пока — знакомьтесь, примерно вот так представляли в 1844 году новый вид человека — сверхрационального Homo Economicus:

  • Безупречная рациональность.
  • Узкий личный интерес.
  • Неизменные в течение жизни цели и стремления.
  • Возможность обработать любой объём информации.
  • Возможность получить доступ к любой информации, имеющей отношение к задаче (и нет, Интернета тогда не было).

Как вы понимаете, с эволюцией человечества тоже что-то пошло не по этому плану.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments17

Обзор Polygon zkEVM: как работает L2 решение для Ethereum

Level of difficultyMedium
Reading time19 min
Views1.1K

Привет, Хабр! Меня зовут Леша Куценко, я разработчик смарт-контрактов в команде MetaLamp, мой основной стек – Solidity. В этой статье я подробнее расскажу про решение для масштабирования с нулевым разглашением (Zero-knowledge proof), а именно – о блокчейне второго уровня Polygon zkEVM. Как блокчейн решает проблему высокой стоимости газа в транзакциях и использует другие преимущества ZK-Rollups? Ответы на эти и другие вопросы в этой статье. 

Для более детального понимания Zero-Knowledge Proofs (ZKP), рекомендую обратиться к этой статье в нашей Blockchain-Wiki на Гитхабе.

Погнали!:)

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

Реальность обладает поразительным числом деталей

Level of difficultyEasy
Reading time12 min
Views14K

Мой отец эмигрировал из Колумбии в Северную Америку, когда ему было 18. Сделал он это в поисках лучшей жизни. Для меня и моего брата это значило — проводить много времени на уличном холоде. Отец выбрал путь улучшения своей судьбы через улучшение того, что его окружает. Меня и брата «добровольно» завербовали в помощники по работам над принадлежащими нам постройками.

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

Читать далее
Total votes 50: ↑48 and ↓2+46
Comments68

CI/CD Kubernetes платформа Gitorion. Непрерывная интеграция CI на базе Gitea/Forgejo

Level of difficultyMedium
Reading time5 min
Views2.7K

Привет всем! В предыдущей статье мы обзорно рассмотрели основные компоненты CI/CD Kubernetes платформы Gitorion. В данной статье подробнее остановимся на реализации хостинга кода, системы управления версиями и непрерывной интеграции CI.

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

Когда одного Postgres'a мало: сравнение производительности PostgreSQL и распределенных СУБД

Level of difficultyHard
Reading time12 min
Views10K

Общеизвестно, что PostgreSQL - крайне эффективная СУБД с богатой функциональностью. При этом не секрет, что PostgreSQL масштабируется только вертикально и её производительность ограничена возможностями одного сервера.

Написано много хороших постов, в которых сравнивают архитектуру монолитных и распределенных СУБД. К сожалению, обычно авторы ограничиваются теоретическим сравнением и не приводят конкретные цифры. Данный пост же наоборот основан на эмпирическом исследовании с использованием бенчмарка TPC-C, который является промышленным стандартом для оценки производительности транзакционных СУБД (On-Line Transaction Processing, OLTP).

Мы расскажем, когда именно одного Postgres'a становится мало, и какие возможны компромиссы между производительностью и надежностью. Для тех, кто не готов к компромиссам, мы покажем, что могут предложить такие распределенные СУБД, как CockroachDB и YDB.

Читать далее
Total votes 29: ↑28 and ↓1+27
Comments50
1
23 ...

Information

Rating
2,959-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity