#PerpDEX #обновления
Мы фармили проекты с самого начала и наконец-то скоро эта история завершится. Оба проекта показали ориентиры по TGE.
🎒 Backpack
25% на дроп - 24% юзерам, 1% на MadLads NFT.
Анонсировали Epilogue-сезон: с 29 января по 26 февраля.
Они будут перераспределять поинты, которые забрали у сибилов (40M поинтов, частями по неделям). А крайний срок TGE обозначен как не позже 12 марта.
На Polymarket вероятность 700M FDV оценивается в 53%. В этом калькуляторе можете посчитать ваш дроп.
📈 Paradex
У Paradex официально закончился Season 2, и команда уже запланировала выход на конец февраля / начало марта.
— 25% саплая под airdrop
— из них 5% - Season 1
— 20% - Season 2
Season 3 стартует 1 февраля, с упором на спот-активности, RWA-perps и опционы.
Мы с мая фармили Backpack, Paradex и Lighter нашим софтом PerpLand. Каждый проект по итогу выходит с дропом. Где-то окупаем затраты, а где-то делаем иксы.
📟 Прилетело из @oxygen_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Yield basis не безопасен
Давайте сразу к делу, а именно кратко пробежимся по тому, как работает Yield basis, чтобы наконец все всё поняил.
Как мы все знаем Yield basis аля решает проблему impermanent loss. Ценовая формула IL для позиции BTC/USD это корень цены BTC, соответсвенно чтобы корень цены BTC стал просто ценой BTC - нам надо возвести это дело в квадрат, aka взять второе плечо
По идее все звучит логично и складно, но могут начаться первые вопросы, если вы слышали такие тейки как "Yield basis не может существовать без curve кредитов". Почему так? Что там такого делают курв кредиты, что никакая другая площадка для кредитования не позволяет? Дело ведь не просто в кредитах под обеспечением лп позициями, да?
ДА! Суть в том что когда вы несете BTC в Yield basis, то они берут в кредит crvUSD, чтобы сформировать лп позицию crvUSD/BTC, а после под эту позицию берут еще кредит. В итоге структура финального кредита при условных 100$ в BTC изначального депозита будет выглядеть так - Collateral (BTC: 100$, crvUSD: 100$), Debt (crvUSD: 100$), что как бы окей, позиция гиперобеспечена в два раза, все круто, НО!
Есть момент в том, что по сути это кредит в crvUSD под обеспечение BTC 1:1, тк обеспечение в crvUSD можно типо не учитывать, таким образом получается что curve выдает кредиты под обеспечение BTC со 100% LTV и именно поэтому кроме как на curve нигде такое не может быть, потому что это НЕБЕЗОПАСНО
В итоге к чему это приводит - вас не ликвидирует, позиция не взорвется и тд, ну и Yield basis там разными механиками балансит эти позиции, чтобы эти не очень устойчивые кредиты не наклонились никуда. В итоге в моменты прайс дропов битка (один из которых произошел очень скоро после запуска Yield basis) мы увидели, что очень многие потеряли свои BTC от изначального депозита. Да им потом выдали говернанс токен дропом, да в долларовом эквиваленте они в плюсе и тд, но BTC стало меньше от изначального задепозиченных
В итоге я хоть и понимаю что Yield basis классный и интересный продукт, я испытывая искреннее уважение к Мише и тд, я не могу нести свои средства туда, тк я не уверен в его стабильности
Пишите в комменты что думаете по этому поводу, может я вообще не прав и где-то что-то не так понял, с радостью бы обсудил!
📟 Прилетело из @ortomich_main
Давайте сразу к делу, а именно кратко пробежимся по тому, как работает Yield basis, чтобы наконец все всё поняил.
Как мы все знаем Yield basis аля решает проблему impermanent loss. Ценовая формула IL для позиции BTC/USD это корень цены BTC, соответсвенно чтобы корень цены BTC стал просто ценой BTC - нам надо возвести это дело в квадрат, aka взять второе плечо
По идее все звучит логично и складно, но могут начаться первые вопросы, если вы слышали такие тейки как "Yield basis не может существовать без curve кредитов". Почему так? Что там такого делают курв кредиты, что никакая другая площадка для кредитования не позволяет? Дело ведь не просто в кредитах под обеспечением лп позициями, да?
ДА! Суть в том что когда вы несете BTC в Yield basis, то они берут в кредит crvUSD, чтобы сформировать лп позицию crvUSD/BTC, а после под эту позицию берут еще кредит. В итоге структура финального кредита при условных 100$ в BTC изначального депозита будет выглядеть так - Collateral (BTC: 100$, crvUSD: 100$), Debt (crvUSD: 100$), что как бы окей, позиция гиперобеспечена в два раза, все круто, НО!
Есть момент в том, что по сути это кредит в crvUSD под обеспечение BTC 1:1, тк обеспечение в crvUSD можно типо не учитывать, таким образом получается что curve выдает кредиты под обеспечение BTC со 100% LTV и именно поэтому кроме как на curve нигде такое не может быть, потому что это НЕБЕЗОПАСНО
В итоге к чему это приводит - вас не ликвидирует, позиция не взорвется и тд, ну и Yield basis там разными механиками балансит эти позиции, чтобы эти не очень устойчивые кредиты не наклонились никуда. В итоге в моменты прайс дропов битка (один из которых произошел очень скоро после запуска Yield basis) мы увидели, что очень многие потеряли свои BTC от изначального депозита. Да им потом выдали говернанс токен дропом, да в долларовом эквиваленте они в плюсе и тд, но BTC стало меньше от изначального задепозиченных
В итоге я хоть и понимаю что Yield basis классный и интересный продукт, я испытывая искреннее уважение к Мише и тд, я не могу нести свои средства туда, тк я не уверен в его стабильности
Пишите в комменты что думаете по этому поводу, может я вообще не прав и где-то что-то не так понял, с радостью бы обсудил!
📟 Прилетело из @ortomich_main
Мы тут в чате канала запустили чат для агентов
Что они сделали в первую очередь? Конечно же начали изобретать свою религию.
Как подключить своего агента:
— иметь Claude Code / Codex / любой другой агент на компе
— установить и залогинить telegram-mcp, чтобы он смог управлять тг
— закинуть агенту этот промпт:
🔗 gist.github.com/ohld/c0b350d702c58bf794858f2fd635b48f
(админ-агент его сами апдейтит, если надо)
Подключайте своих агентов
🥤 🥤 🥤 🥤 🥤 🥤 🥤 🥤 🥤 🥤
📟 Прилетело из @danokhlopkov
Что они сделали в первую очередь? Конечно же начали изобретать свою религию.
Как подключить своего агента:
— иметь Claude Code / Codex / любой другой агент на компе
— установить и залогинить telegram-mcp, чтобы он смог управлять тг
— закинуть агенту этот промпт:
🔗 gist.github.com/ohld/c0b350d702c58bf794858f2fd635b48f
(админ-агент его сами апдейтит, если надо)
Подключайте своих агентов
Случай в чате:
в telegram-mcp нет метода “создать топик”. Агент догадался, что такие права есть у обычных тгботов — добавил бота, дал ему админа и научился создавать топики.
📟 Прилетело из @danokhlopkov
Please open Telegram to view this post
VIEW IN TELEGRAM
ПРОДЛИВАЕМ ВОЗМОЖНОСТЬ ПОПАСТЬ НА МЕНТОРСТВО НА ОЛИМПЕ БЕСПЛАТНО ДО 2 ФЕВРАЛЯ?
Anonymous Poll
0%
ДА
100%
НЕТ
Так как Telegram делает для борьбы со спамом примерно ничего, то с сего дня бассейн закрыт и комментарии к постам полностью отключены.
Для обсуждения или задания вопросов добро пожаловать в наш чат, только не забудьте пройти проверку "я не робот". К сожалению, у меня просто уже нет сил вычищать всю эту помойку с рекламой скама. Скоро увидимся. https://news.1rj.ru/str/+MxYT6-01eeA1NTYy
📟 Прилетело из @dev_in_ruby_colors
Для обсуждения или задания вопросов добро пожаловать в наш чат, только не забудьте пройти проверку "я не робот". К сожалению, у меня просто уже нет сил вычищать всю эту помойку с рекламой скама. Скоро увидимся. https://news.1rj.ru/str/+MxYT6-01eeA1NTYy
📟 Прилетело из @dev_in_ruby_colors
Telegram
DEV: Рубиновые тона: ЧАТ
Обсуждение канала "DEV: Рубиновые тона"
Кстати, если говорить о скаме в IT. Мы тут в чате последнее время много обсуждали поиск работы и возникающие проблемы с мошенниками. Я просуммирую некоторые важные моменты - да, они могут показаться очевидными опытным разработчикам, но это чрезвычайно важно для тех, кто только начинает свой путь (так что поделитесь с начинающими коллегами!).
- Если вам прилетает какой-то оффер - скажем, в LinkedIn - в первую очередь обязательно разберитесь, кто вообще его прислал и какую роль этот человек занимает в организации. Согласитесь, очень странно, если на должность senior developer вас приглашает менеджер по продажам. Да, даже если это какой-то бывший коллега, которого вы едва помните, или он что-то упоминает про "общих знакомых".
- Поищите, что за компанию представляет этот человек. Есть ли такая вакансия на их сайте, в профиле LinkedIn? Если это крипта, то связана ли компания с криптой хоть каким-то боком? Может, они писали что-то о крипте в своём блоге? Гуглится ли эта организация в принципе и если да, то как давно она появилась (официальные данные можно обычно достать в открытых источниках)? Если есть сайт, то когда и кем зарегистрирован домен?
- Даже если профиль автора сообщения подтверждён (или подтверждено место работы), это, к сожалению, ничего не гарантирует - вам могут писать со взломанного аккаунта. Кстати, если вдруг этот аккаунт что-то постил в ленте - присмотритесь, что именно. Будет странно, если он сначала писал о B2B sales, а потом внезапно последние несколько дней стал массово репостить записи про ethereum.
- Внимательно читайте, что именно вам пишут. Мошенники очень часто льют воду, не говоря ничего конкретного. Если в тексте сообщения всякий флуд про то, что "наша компания самая прогрессивная в мире и хочет и дальше расти в этом направлении", но при этом не названа ни сама компания, ни оговорены конкретные обязанности, которые вы будете выполнять, это очень странно. Любой нормальный наниматель сразу скажет - я такой-то, из такой-то компании, мы ищем того-то, такие-то обязанности.
- Плохой английский, странные обороты или текст, который явно генерировал искусственный интеллект, сразу говорит о многом (+обезличенные и тем более неправильные обращения)
- Если вас постоянно торопят, это плюс ещё один красный флаг. "Нам надо срочно закрыть эту позицию", "мы ждём ответа от вас до вечера", "тестовое задание сделать до завтра" - это всё сразу мимо кассы. Либо там бардак в компании, либо просто вас пытаются развести, грозя, что на это место уже есть миллион желающих
- Подозрительно, если на дополнительные вопросы вам продолжают лить воду, но зато сразу называют более-менее точную (и обычно относительно высокую зарплату). Вообще, слишком хороший оффер в духе "мы посмотрели ваш GitHub и хотим платить вам 12к баксов" - это из области фантастики, если только вы не супер-востребованный спец в своей области
- Неожиданное переобувание в процессе (сначала они ищут back-end разраба, потом вдруг аналитика) - это либо скам, либо просто полная неразбериха в отделе HR; в любом случае, вы не хотите с этим связываться
- Если требуют как-то очень много личных данных, это повод задуматься. "Да, уважаемый соискатель, не забудьте отправить номер своей карты и CVV" (это, конечно, гротеск, но всё же)
- Подозрительно, если дальнейшее общение вам предлагают вести по почте или через какой-нибудь мессенджер. Особенно странно, если почтовый адрес принадлежит непонятно кому и не имеет отношения к компании (нормальные люди для делового общения используют рабочую почту). Кстати, проверяйте адрес отправителя побуквенно (нет ли там каких-то мутных замен?). Не использует ли этот умник что-то вроде спуфинга (просто подмена адреса отправителя)?
- Кроме того, отказ от звонков или общение с выключенной камерой - это также "красный флаг".
📟 Прилетело из @dev_in_ruby_colors
- Если вам прилетает какой-то оффер - скажем, в LinkedIn - в первую очередь обязательно разберитесь, кто вообще его прислал и какую роль этот человек занимает в организации. Согласитесь, очень странно, если на должность senior developer вас приглашает менеджер по продажам. Да, даже если это какой-то бывший коллега, которого вы едва помните, или он что-то упоминает про "общих знакомых".
- Поищите, что за компанию представляет этот человек. Есть ли такая вакансия на их сайте, в профиле LinkedIn? Если это крипта, то связана ли компания с криптой хоть каким-то боком? Может, они писали что-то о крипте в своём блоге? Гуглится ли эта организация в принципе и если да, то как давно она появилась (официальные данные можно обычно достать в открытых источниках)? Если есть сайт, то когда и кем зарегистрирован домен?
- Даже если профиль автора сообщения подтверждён (или подтверждено место работы), это, к сожалению, ничего не гарантирует - вам могут писать со взломанного аккаунта. Кстати, если вдруг этот аккаунт что-то постил в ленте - присмотритесь, что именно. Будет странно, если он сначала писал о B2B sales, а потом внезапно последние несколько дней стал массово репостить записи про ethereum.
- Внимательно читайте, что именно вам пишут. Мошенники очень часто льют воду, не говоря ничего конкретного. Если в тексте сообщения всякий флуд про то, что "наша компания самая прогрессивная в мире и хочет и дальше расти в этом направлении", но при этом не названа ни сама компания, ни оговорены конкретные обязанности, которые вы будете выполнять, это очень странно. Любой нормальный наниматель сразу скажет - я такой-то, из такой-то компании, мы ищем того-то, такие-то обязанности.
- Плохой английский, странные обороты или текст, который явно генерировал искусственный интеллект, сразу говорит о многом (+обезличенные и тем более неправильные обращения)
- Если вас постоянно торопят, это плюс ещё один красный флаг. "Нам надо срочно закрыть эту позицию", "мы ждём ответа от вас до вечера", "тестовое задание сделать до завтра" - это всё сразу мимо кассы. Либо там бардак в компании, либо просто вас пытаются развести, грозя, что на это место уже есть миллион желающих
- Подозрительно, если на дополнительные вопросы вам продолжают лить воду, но зато сразу называют более-менее точную (и обычно относительно высокую зарплату). Вообще, слишком хороший оффер в духе "мы посмотрели ваш GitHub и хотим платить вам 12к баксов" - это из области фантастики, если только вы не супер-востребованный спец в своей области
- Неожиданное переобувание в процессе (сначала они ищут back-end разраба, потом вдруг аналитика) - это либо скам, либо просто полная неразбериха в отделе HR; в любом случае, вы не хотите с этим связываться
- Если требуют как-то очень много личных данных, это повод задуматься. "Да, уважаемый соискатель, не забудьте отправить номер своей карты и CVV" (это, конечно, гротеск, но всё же)
- Подозрительно, если дальнейшее общение вам предлагают вести по почте или через какой-нибудь мессенджер. Особенно странно, если почтовый адрес принадлежит непонятно кому и не имеет отношения к компании (нормальные люди для делового общения используют рабочую почту). Кстати, проверяйте адрес отправителя побуквенно (нет ли там каких-то мутных замен?). Не использует ли этот умник что-то вроде спуфинга (просто подмена адреса отправителя)?
- Кроме того, отказ от звонков или общение с выключенной камерой - это также "красный флаг".
📟 Прилетело из @dev_in_ruby_colors
- Чрезвычайно подозрительно, если без дальнейших прелюдий вам предлагается скачать и запустить какое-то приложение с GitHub/Bitbucket/whatever. Особенно пристально смотрите, когда этот репозитарий был создан, кем и сколько там коммитов. Если это гигантское приложение и оно залито одним коммитом неделю назад - ну, вы поняли.
- Уточняйте, что это за приложение и зачем его запускать. Если ответ неубедительный - сразу до свидания. Особенно если "тестовое задание" имеет весьма опосредованное отношение к предлагаемой должности (вам предлагают должность back-end, а само задание фокусируется на front-end). Впрочем, даже если ответ убедительный - всё равно ничего не запускайте у себя на компьютере, если не понимаете, что это за код. В крайнем случае используйте изолированную среду
- Я не говорю уже о случаях, когда вам предлагается подключить кошелёк на неизвестном сайте и подписать какие-то транзакции
- И, конечно же, если вам предлагают заплатить любую сумму под любым предлогом - это скам. Оформление документов, найм адвоката, какие-то ещё организационные вопросы - всё это делает работодатель, за это не платит сотрудник. Суть работы заключается в том, что вы получаете за неё деньги, а не платите сами.
Набрасывайте ещё советы 🤓
📟 Прилетело из @dev_in_ruby_colors
- Уточняйте, что это за приложение и зачем его запускать. Если ответ неубедительный - сразу до свидания. Особенно если "тестовое задание" имеет весьма опосредованное отношение к предлагаемой должности (вам предлагают должность back-end, а само задание фокусируется на front-end). Впрочем, даже если ответ убедительный - всё равно ничего не запускайте у себя на компьютере, если не понимаете, что это за код. В крайнем случае используйте изолированную среду
- Я не говорю уже о случаях, когда вам предлагается подключить кошелёк на неизвестном сайте и подписать какие-то транзакции
- И, конечно же, если вам предлагают заплатить любую сумму под любым предлогом - это скам. Оформление документов, найм адвоката, какие-то ещё организационные вопросы - всё это делает работодатель, за это не платит сотрудник. Суть работы заключается в том, что вы получаете за неё деньги, а не платите сами.
Набрасывайте ещё советы 🤓
📟 Прилетело из @dev_in_ruby_colors
Я продал все, что у меня было. Все монеты, которыми я владел, исчезли. Я полностью ушел с криптовалютного рынка, я больше не могу этого выносить. Агрессивный демпинг, манипуляции, все так напряженно. криптовалюте конец, я ухожу, я очень рад встрече с вами, у жизни есть мечты, каждая из них прекрасна.Всем пока.
📟 Прилетело из @n4z4v0d
📟 Прилетело из @n4z4v0d
Анализ рынка Телеграм ботов и миниаппов: Январь 2026.
https://swanrate.com/january-2026-report-ru
📟 Прилетело из @danokhlopkov
https://swanrate.com/january-2026-report-ru
📟 Прилетело из @danokhlopkov
//
Да-да-да, это апдейт на Dawn😮
На моё большое удивление, они, похоже, разблокировали домен iCloud (возможно и ещё некоторые — не проверял). Точно работают Gmail и iCloud.
Более того: на мои 2 мейна на Gmail вернули всех рефов и поинты (а там сумма с шестью нулями), так что думаю ваши фермы на iCloud тоже живы и могут продолжать фарм.
Я уже давно забил на этот проект, но грех не обновить, раз разрабы дали “свет в конце туннеля”😏
use_random_ref_codes_from_db: если поставить True, софт будет брать рандомные рефки из ранее залогиненных аккаунтовcaptcha_settingsНу и напоминание: не будьте ебланами — ставьте задержку (delay_before_start) и адекватное количество threads
📟 Прилетело из @JamBitPY
Please open Telegram to view this post
VIEW IN TELEGRAM
Боря, создатель Claude Code, скинул тред с типсами по клоду
Полезного много, но вот что я хочу попробовать:
🟥 Git worktrees
3-5 параллельных Claude сессий одновременно. Каждый ворктри = отдельная ветка и свой Claude. Самый большой анлок по мнению всей команды. У меня сейчас сетап одного проекта со всеми спеками + ссылки на папки с кодом — не очень best practice.
🟥 Self-improving CLAUDE.md
после каждой ошибки говоришь: "обнови свой CLAUDE.md чтобы больше так не делать". Claude, говорят, хорошо пишет правила для самого себя
🟥 Claude как строгий ревьюер, а не только как исполнитель
Не только "расспроси меня обо всем”, но и “докажи мне, что это сработает”
🟥 /techdebt команда
Собери себе скилл, чтобы запускать в конце каждой сессии. Собери себе сам нужное: найди дублированный код, закоммить, обнови спеку и тп.
Сорс
↳ x.com/bcherny/status/2017742743125299476
📟 Прилетело из @danokhlopkov
Полезного много, но вот что я хочу попробовать:
🟥 Git worktrees
3-5 параллельных Claude сессий одновременно. Каждый ворктри = отдельная ветка и свой Claude. Самый большой анлок по мнению всей команды. У меня сейчас сетап одного проекта со всеми спеками + ссылки на папки с кодом — не очень best practice.
🟥 Self-improving CLAUDE.md
после каждой ошибки говоришь: "обнови свой CLAUDE.md чтобы больше так не делать". Claude, говорят, хорошо пишет правила для самого себя
🟥 Claude как строгий ревьюер, а не только как исполнитель
Не только "расспроси меня обо всем”, но и “докажи мне, что это сработает”
🟥 /techdebt команда
Собери себе скилл, чтобы запускать в конце каждой сессии. Собери себе сам нужное: найди дублированный код, закоммить, обнови спеку и тп.
Сорс
↳ x.com/bcherny/status/2017742743125299476
📟 Прилетело из @danokhlopkov
ФЕВРАЛЬ 2026
МЕСЯЦ ОБЕЩАЕТ БЫТЬ ЛЕГЕНДАРНЫМ
САМЫМ ВАЖНЫМ В ЭТОМ ГОДУ
Но отойдем от лирики ///
НЕ БУДУ СЕГОДНЯ ВЕЩАТЬ О МОТИВАЦИИ, ЕЕ СПОКОЙНО МОЖНО НАЙТИ В ПОСТЕ ВЫШЕ
Оставлю лишь ПАРУ мыслей:
ОСТАЕТСЯ ВСЕГО 1 ДЕНЬ ДО закрытия возможности получить бесплатное МЕНТОРСТВО от меня на Олимпе
К ЭТОМУ СОБЫТИЮ Я ДАЖЕ ДОБАВИЛ ФУНКЦИЮ РАССРОЧКИ
Без банков, без смарт-контракта и так далее
ДОХОДИМ ДО ТОГО, ЧТО УЖЕ СЕГОДНЯ ТЫ МОЖЕШЬ БЫТЬ НА ОЛИМПЕ ВСЕГО ЗА 20$
КАКИЕ ОТГОВОРКИ БУДУТ ТЕПЕРЬ?
Вот тебе финальные ссылки:
НАШ ЗАЛ СЛАВЫ (ПОЧИТАЙ)
ЧТО ТАКОЕ ОЛИМП
КОНТАКТЫ МЕНЕДЖЕРА
2 дня, принять решение.....
📟 Прилетело из @code_vartcall
МЕСЯЦ ОБЕЩАЕТ БЫТЬ ЛЕГЕНДАРНЫМ
САМЫМ ВАЖНЫМ В ЭТОМ ГОДУ
Но отойдем от лирики ///
НЕ БУДУ СЕГОДНЯ ВЕЩАТЬ О МОТИВАЦИИ, ЕЕ СПОКОЙНО МОЖНО НАЙТИ В ПОСТЕ ВЫШЕ
Оставлю лишь ПАРУ мыслей:
ОСТАЕТСЯ ВСЕГО 1 ДЕНЬ ДО закрытия возможности получить бесплатное МЕНТОРСТВО от меня на Олимпе
К ЭТОМУ СОБЫТИЮ Я ДАЖЕ ДОБАВИЛ ФУНКЦИЮ РАССРОЧКИ
Без банков, без смарт-контракта и так далее
ДОХОДИМ ДО ТОГО, ЧТО УЖЕ СЕГОДНЯ ТЫ МОЖЕШЬ БЫТЬ НА ОЛИМПЕ ВСЕГО ЗА 20$
КАКИЕ ОТГОВОРКИ БУДУТ ТЕПЕРЬ?
Вот тебе финальные ссылки:
НАШ ЗАЛ СЛАВЫ (ПОЧИТАЙ)
ЧТО ТАКОЕ ОЛИМП
КОНТАКТЫ МЕНЕДЖЕРА
2 дня, принять решение.....
📟 Прилетело из @code_vartcall
Алгоритмы. Структуры данных. Хеш-таблицы
Хеш-таблица представляет собой структуру данных, которая реализует ассоциативный массив, обеспечивая возможность хранения пар «ключ–значение». Её принцип работы можно сравнить с организацией библиотеки, где каждая книга имеет уникальный инвентарный номер. Если книги просто сложены в беспорядке, поиск нужной займет много времени. Однако если они расставлены на полках в соответствии со своими номерами, нужный экземпляр находится практически мгновенно. Именно такую «умную» систему и воплощает хеш-таблица — это своего рода шкаф с ячейками, где каждый элемент данных хранится в ячейке, определяемой своим ключом.
Основными компонентами хеш-таблицы являются ключ, значение, хеш-функция и массив ячеек, часто называемый корзинами. Ключ служит уникальным идентификатором или адресом, по которому можно найти связанное с ним значение. Хеш-функция выступает в роли специального преобразователя: она принимает ключ на вход и вычисляет целочисленный индекс — номер конкретной ячейки в массиве, куда следует поместить или откуда нужно извлечь значение. Этот массив и есть физическое хранилище данных.
Работа хеш-таблицы происходит по следующему алгоритму. Допустим, имеется массив из десяти ячеек с индексами от 0 до 9. Когда требуется сохранить пару, например,
Внутренне это может соответствовать следующей структуре, где некоторые ячейки остаются пустыми:
Практическая ценность хеш-таблиц раскрывается в многочисленных прикладных задачах. Например, они идеально подходят для реализации телефонной книги, где имя контакта является ключом, а номер телефона — значением. Операции поиска, добавления и обновления выполняются крайне эффективно.
Пример 1
Другая классическая задача — подсчёт частоты встречаемости слов в тексте. Хеш-таблица здесь используется для хранения слов в качестве ключей и соответствующих им счётчиков в качестве значений.
Хеш-таблицы также являются основой для техники кэширования или мемоизации, которая позволяет сохранять результаты ресурсоёмких вычислений, чтобы избежать их повторного выполнения.
Пример 2
Одной из фундаментальных проблем в работе хеш-таблиц являются коллизии — ситуации, когда разные ключи в результате работы хеш-функции получают один и тот же индекс ячейки. Это аналогично тому, как двум разным людям выдали ключи от одной и той же квартиры. Например, может оказаться, что
📟 Прилетело из @solidityset
Хеш-таблица представляет собой структуру данных, которая реализует ассоциативный массив, обеспечивая возможность хранения пар «ключ–значение». Её принцип работы можно сравнить с организацией библиотеки, где каждая книга имеет уникальный инвентарный номер. Если книги просто сложены в беспорядке, поиск нужной займет много времени. Однако если они расставлены на полках в соответствии со своими номерами, нужный экземпляр находится практически мгновенно. Именно такую «умную» систему и воплощает хеш-таблица — это своего рода шкаф с ячейками, где каждый элемент данных хранится в ячейке, определяемой своим ключом.
Основными компонентами хеш-таблицы являются ключ, значение, хеш-функция и массив ячеек, часто называемый корзинами. Ключ служит уникальным идентификатором или адресом, по которому можно найти связанное с ним значение. Хеш-функция выступает в роли специального преобразователя: она принимает ключ на вход и вычисляет целочисленный индекс — номер конкретной ячейки в массиве, куда следует поместить или откуда нужно извлечь значение. Этот массив и есть физическое хранилище данных.
Работа хеш-таблицы происходит по следующему алгоритму. Допустим, имеется массив из десяти ячеек с индексами от 0 до 9. Когда требуется сохранить пару, например,
"apple" : 5, хеш-функция обрабатывает ключ "apple" и возвращает число в диапазоне от 0 до 9. Предположим, результатом вычисления становится индекс 3. Тогда значение 5 будет помещено в ячейку с этим индексом. Визуально процесс можно представить так: изначально массив пуст, после операции hash("apple") → 3 в ячейке с индексом 3 оказывается значение, ассоциированное с ключом "apple".# Пример создания и использования хеш-таблицы (словаря) в Python для хранения цен на фрукты
prices = {}
# Добавление элементов
prices["apple"] = 50 # hash("apple") → условно, ячейка 3
prices["banana"] = 30 # hash("banana") → условно, ячейка 7
prices["orange"] = 40 # hash("orange") → условно, ячейка 1
print(prices)
# Вывод: {'apple': 50, 'banana': 30, 'orange': 40}
Внутренне это может соответствовать следующей структуре, где некоторые ячейки остаются пустыми:
Индекс: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
пусто orange→40 пусто apple→50 пусто пусто пусто banana→30 пусто пусто
Практическая ценность хеш-таблиц раскрывается в многочисленных прикладных задачах. Например, они идеально подходят для реализации телефонной книги, где имя контакта является ключом, а номер телефона — значением. Операции поиска, добавления и обновления выполняются крайне эффективно.
Пример 1
Другая классическая задача — подсчёт частоты встречаемости слов в тексте. Хеш-таблица здесь используется для хранения слов в качестве ключей и соответствующих им счётчиков в качестве значений.
# Подсчет количества слов в тексте
text = "apple banana apple orange apple banana apple"
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1 # Увеличиваем счетчик
else:
word_count[word] = 1 # Первая встреча слова
print(word_count)
# Вывод: {'apple': 4, 'banana': 2, 'orange': 1}
Хеш-таблицы также являются основой для техники кэширования или мемоизации, которая позволяет сохранять результаты ресурсоёмких вычислений, чтобы избежать их повторного выполнения.
Пример 2
Одной из фундаментальных проблем в работе хеш-таблиц являются коллизии — ситуации, когда разные ключи в результате работы хеш-функции получают один и тот же индекс ячейки. Это аналогично тому, как двум разным людям выдали ключи от одной и той же квартиры. Например, может оказаться, что
hash("apple") → 3 и hash("grape") → 3. Для разрешения коллизий существует несколько методов, наиболее распространёнными из которых являются метод цепочек и метод открытой адресации.📟 Прилетело из @solidityset
Метод цепочек предполагает, что каждая ячейка массива содержит не одно значение, а связный список (или динамический массив) пар «ключ–значение». При возникновении коллизии новая пара просто добавляется в список соответствующей ячейки. Таким образом, ячейка с индексом 3 будет содержать список вида
Пример 3
Метод открытой адресации решает проблему иначе: если вычисленная ячейка занята, алгоритм ищет следующую свободную ячейку по определённому правилу, например, проверяя последовательно следующие индексы. Этот метод требует более тщательного управления размером таблицы, но может быть более эффективным с точки зрения использования памяти.
Временная сложность операций в хеш-таблице в среднем случае составляет O(1) для поиска, вставки и удаления, что делает её исключительно быстрой структурой данных. Однако в худшем случае, например, при очень неудачной хеш-функции, приводящей все ключи к одному индексу, сложность деградирует до O(n), так как поиск превращается в линейный обход длинной цепочки.
Хеш-таблицы находят применение в решении множества алгоритмических задач. Например, они позволяют эффективно найти первый неповторяющийся символ в строке, сгруппировать слова-анаграммы или проверить, является ли одна строка перестановкой другой.
Пример 4
В языке Python хеш-таблицы реализованы в виде встроенного типа данных
Эффективность хеш-таблицы напрямую зависит от качества хеш-функции. Хорошая хеш-функция должна быть детерминированной, обеспечивать равномерное распределение ключей по ячейкам, вычисляться быстро и минимизировать количество коллизий. Детерминированность означает, что один и тот же ключ всегда даёт одинаковый хеш-код. Равномерное распределение помогает избежать ситуации, когда большинство данных скапливается в нескольких ячейках, что приводит к увеличению длины цепочек и снижению производительности. Быстрота вычисления необходима, чтобы не сводить на нет преимущества быстрого доступа. Наконец, минимизация коллизий — это основная цель, так как коллизии являются главным фактором, ухудшающим производительность.
📟 Прилетело из @solidityset
[("apple", 50), ("grape", 60)]. Поиск значения по ключу в таком случае требует вычисления индекса и последующего линейного поиска по цепочке, чтобы найти нужную пару.Пример 3
Метод открытой адресации решает проблему иначе: если вычисленная ячейка занята, алгоритм ищет следующую свободную ячейку по определённому правилу, например, проверяя последовательно следующие индексы. Этот метод требует более тщательного управления размером таблицы, но может быть более эффективным с точки зрения использования памяти.
Временная сложность операций в хеш-таблице в среднем случае составляет O(1) для поиска, вставки и удаления, что делает её исключительно быстрой структурой данных. Однако в худшем случае, например, при очень неудачной хеш-функции, приводящей все ключи к одному индексу, сложность деградирует до O(n), так как поиск превращается в линейный обход длинной цепочки.
Хеш-таблицы находят применение в решении множества алгоритмических задач. Например, они позволяют эффективно найти первый неповторяющийся символ в строке, сгруппировать слова-анаграммы или проверить, является ли одна строка перестановкой другой.
Пример 4
В языке Python хеш-таблицы реализованы в виде встроенного типа данных
dict, который предоставляет богатый интерфейс для работы.student_scores = {
"Анна": 95,
"Борис": 87,
"Вера": 92
}
# Получение значения с указанием значения по умолчанию
print(student_scores.get("Анна", 0)) # 95
print(student_scores.get("Георгий", 0)) # 0 (ключа нет)
# Получение всех ключей и значений
print(student_scores.keys()) # dict_keys(['Анна', 'Борис', 'Вера'])
print(student_scores.values()) # dict_values([95, 87, 92])
# Перебор пар ключ-значение
for name, score in student_scores.items():
print(f"{name}: {score} баллов")
# Обновление словаря
new_scores = {"Георгий": 88, "Анна": 98}
student_scores.update(new_scores)
print(student_scores)
# Вывод: {'Анна': 98, 'Борис': 87, 'Вера': 92, 'Георгий': 88}Эффективность хеш-таблицы напрямую зависит от качества хеш-функции. Хорошая хеш-функция должна быть детерминированной, обеспечивать равномерное распределение ключей по ячейкам, вычисляться быстро и минимизировать количество коллизий. Детерминированность означает, что один и тот же ключ всегда даёт одинаковый хеш-код. Равномерное распределение помогает избежать ситуации, когда большинство данных скапливается в нескольких ячейках, что приводит к увеличению длины цепочек и снижению производительности. Быстрота вычисления необходима, чтобы не сводить на нет преимущества быстрого доступа. Наконец, минимизация коллизий — это основная цель, так как коллизии являются главным фактором, ухудшающим производительность.
# Пример плохой хеш-функции, зависящей только от длины строки
def bad_hash(key, size):
return len(str(key)) % size
bad_hash("cat", 10) # → 3
bad_hash("dog", 10) # → 3 (коллизия!)
bad_hash("rat", 10) # → 3 (коллизия!)
# Пример более качественной хеш-функции
def good_hash(key, size):
return sum(ord(c) for c in str(key)) % size
good_hash("cat", 10) # → 4
good_hash("dog", 10) # → 4 (возможна коллизия, но реже)
good_hash("rat", 10) # → 7 (разные индексы!)
📟 Прилетело из @solidityset
Метод цепочек для разрешения коллизий, как уже упоминалось, заключается в хранении в каждой ячейке массива связного списка всех пар «ключ-значение», которым соответствует данный индекс. При вставке нового элемента с ключом, чей хеш совпал с хешом уже существующего, новая пара добавляется в конец списка этой ячейки. Поиск требует вычисления хеша и последующего последовательного просмотра списка для нахождения нужного ключа. Основное преимущество метода цепочек — его простота и то, что таблица никогда не переполняется, так как список может расти динамически. Недостатком является необходимость в дополнительной памяти для хранения ссылок и потенциальное снижение производительности при длинных цепочках.
Пример 5
Использование хеш-таблиц наиболее оправдано в задачах, требующих частых операций поиска, проверки наличия элемента или подсчёта уникальных значений. Это включает подсчёт частоты элементов в коллекции, поиск дубликатов, реализацию кэшей, решение задачи о двух суммах, группировку данных по определённому признаку, представление графов в виде списков смежности, поиск анаграмм и реализацию множеств. Например, задача поиска двух чисел в массиве, дающих в сумме заданное значение, эффективно решается за один проход с использованием хеш-таблицы для хранения просмотренных элементов.
Однако существуют сценарии, где хеш-таблицы могут быть не самым лучшим выбором. Если требуется упорядоченный обход элементов по ключу, данные необходимо часто сортировать или выполнять поиск по диапазону ключей, более подходящими структурами могут оказаться сбалансированные деревья поиска. Также хеш-таблицы требуют дополнительной памяти и могут иметь неоптимальную производительность при очень высокой нагрузке и плохой хеш-функции.
В заключение можно сформулировать общее правило: если задача сводится к частым операциям поиска, проверки принадлежности или агрегации данных по ключу, хеш-таблица, вероятно, будет оптимальным решением, обеспечивающим константное время выполнения этих операций в среднем случае.
#algorithm
📟 Прилетело из @solidityset
Пример 5
Использование хеш-таблиц наиболее оправдано в задачах, требующих частых операций поиска, проверки наличия элемента или подсчёта уникальных значений. Это включает подсчёт частоты элементов в коллекции, поиск дубликатов, реализацию кэшей, решение задачи о двух суммах, группировку данных по определённому признаку, представление графов в виде списков смежности, поиск анаграмм и реализацию множеств. Например, задача поиска двух чисел в массиве, дающих в сумме заданное значение, эффективно решается за один проход с использованием хеш-таблицы для хранения просмотренных элементов.
# Решение задачи "Две суммы" с использованием хеш-таблицы
def two_sum(nums, target):
seen = {}
for i, num in enumerate(nums):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return None
numbers = [2, 7, 11, 15]
target = 9
print(two_sum(numbers, target)) # [0, 1] (2 + 7 = 9)
Однако существуют сценарии, где хеш-таблицы могут быть не самым лучшим выбором. Если требуется упорядоченный обход элементов по ключу, данные необходимо часто сортировать или выполнять поиск по диапазону ключей, более подходящими структурами могут оказаться сбалансированные деревья поиска. Также хеш-таблицы требуют дополнительной памяти и могут иметь неоптимальную производительность при очень высокой нагрузке и плохой хеш-функции.
В заключение можно сформулировать общее правило: если задача сводится к частым операциям поиска, проверки принадлежности или агрегации данных по ключу, хеш-таблица, вероятно, будет оптимальным решением, обеспечивающим константное время выполнения этих операций в среднем случае.
#algorithm
📟 Прилетело из @solidityset
Где найти идею для SaaS?
Научившись программировать с AI, ты понимаешь: можно сделать абсолютно всё. Но что?
Сначала делаешь игрушечные проекты типа @blockwallbot — чтобы научиться доводить дело до конца. Ок, научился. А дальше?
Как собрать эти данные?
Заходим на acquire.com — маркетплейс, где продают микросасы
Фильтруй по цене $300k+. Если бизнес стоит столько — значит идея уже провалидирована.
Компании анонимны, но по описаниям их легко найти:
▪ гуглишь текст из листинга — часто это их H1 или мета-описание
▪ или ищешь "[конкурент] alternative" — они сами пишут такие страницы
Нашёл сайт — реверсишь, как они привлекают клиентов. Фаундер в подкастах, SEO-статьи, Twitter — всё публично.
С AI это вообще читерство:
🟥 Claude парсит листинги и находит реальный сайт за секунды
🟥 AI анализирует SEO и контент-стратегию конкурента
🟥 MVP собирается за выходные вайбкодингом
Закинь этот пост в своего агента и посмотри, что будет
~ @danokhlopkov ~
📟 Прилетело из @danokhlopkov
Научившись программировать с AI, ты понимаешь: можно сделать абсолютно всё. Но что?
Сначала делаешь игрушечные проекты типа @blockwallbot — чтобы научиться доводить дело до конца. Ок, научился. А дальше?
Чеклист нормальной темки:
▪ это нужно рынку (есть PMF)
▪ понятно, где искать платящих юзеров
Как собрать эти данные?
Заходим на acquire.com — маркетплейс, где продают микросасы
Фильтруй по цене $300k+. Если бизнес стоит столько — значит идея уже провалидирована.
Компании анонимны, но по описаниям их легко найти:
▪ гуглишь текст из листинга — часто это их H1 или мета-описание
▪ или ищешь "[конкурент] alternative" — они сами пишут такие страницы
Нашёл сайт — реверсишь, как они привлекают клиентов. Фаундер в подкастах, SEO-статьи, Twitter — всё публично.
С AI это вообще читерство:
🟥 Claude парсит листинги и находит реальный сайт за секунды
🟥 AI анализирует SEO и контент-стратегию конкурента
🟥 MVP собирается за выходные вайбкодингом
Закинь этот пост в своего агента и посмотри, что будет
~ @danokhlopkov ~
📟 Прилетело из @danokhlopkov
ТВОИ ПОСЛЕДНИЕ ЧАСЫ ЖИЗНИ
ВОТ И ОСТАЮТСЯ СЧИТАННЫЕ ЧАСЫ ДО КОНЦА МОЕЙ ДОБРОТЫ
МЕНТОРСТВО
1 НА 1
ТЫ И Я
Но.....
РАЗУМЕЕТСЯ ВСЕХ ОБУЧАТЬ ПАРАЛЛЕЛЬНО Я НЕ СМОГУ
ПОЭТОМУ
Опция МЕНТОРСТВО доступна только сегодня до 00:00 по Киеву
КАЖДЫЙ, КТО ЯВЛЯЕТСЯ УЧАСТНИКОМ ОЛИМПА ДО 3 ФЕВРАЛЯ, ПОЛУЧАЕТ МЕНТОРСТВО ОТ МЕНЯ
После 3го Февраля ЦЕНА менторства:$2000
ПОДУМАЙ
Всего 20$ сегодня и ТЫ ЗАКРЫЛ ВСЕ СВОИ ВОПРОСЫ ПО WEB3 И МОЖЕШЬ ЗАДАТЬ МНЕ И НАШЕМУ КОММЬЮНИТИ ЛЮБОЙ ВОПРОС
Вот тебе финальные ссылки:
НАШ ЗАЛ СЛАВЫ
ЧТО ТАКОЕ ОЛИМП
КОНТАКТЫ МЕНЕДЖЕРА
вот так
ОСТАЛОСЬ 10 ЧАСОВ
📟 Прилетело из @code_vartcall
ВОТ И ОСТАЮТСЯ СЧИТАННЫЕ ЧАСЫ ДО КОНЦА МОЕЙ ДОБРОТЫ
МЕНТОРСТВО
1 НА 1
ТЫ И Я
Но.....
РАЗУМЕЕТСЯ ВСЕХ ОБУЧАТЬ ПАРАЛЛЕЛЬНО Я НЕ СМОГУ
ПОЭТОМУ
Опция МЕНТОРСТВО доступна только сегодня до 00:00 по Киеву
КАЖДЫЙ, КТО ЯВЛЯЕТСЯ УЧАСТНИКОМ ОЛИМПА ДО 3 ФЕВРАЛЯ, ПОЛУЧАЕТ МЕНТОРСТВО ОТ МЕНЯ
После 3го Февраля ЦЕНА менторства:
ПОДУМАЙ
Всего 20$ сегодня и ТЫ ЗАКРЫЛ ВСЕ СВОИ ВОПРОСЫ ПО WEB3 И МОЖЕШЬ ЗАДАТЬ МНЕ И НАШЕМУ КОММЬЮНИТИ ЛЮБОЙ ВОПРОС
Вот тебе финальные ссылки:
НАШ ЗАЛ СЛАВЫ
ЧТО ТАКОЕ ОЛИМП
КОНТАКТЫ МЕНЕДЖЕРА
вот так
ОСТАЛОСЬ 10 ЧАСОВ
📟 Прилетело из @code_vartcall
Почему мы привязываемся к проектам. И чем это заканчивается
Или почему люди вообще любят влюбляться в проекты.
Иногда нравится команда, иногда - функционал или технология.
Итог почти всегда один: слишком долго держатся за проект, не анализируют и в итоге теряют деньги или упускают доход.
С 2017 по 2020 год я вместо изучения зарождавшегося DeFi и рынка web3 в целом зачем-то писал в медиа блокчейнах (в частности на Golos). Проекты же эти сейчас являются малоперспективными.
И я рад, что вовремя остановился. Хотя и по сей день поддерживаю проекты, так как активное поддерживающее меня сообщество есть ещё (рад этому).
Но основное время уделяю уже другому.
После этого тоже были "влюблённости" в проекты. То сидел в чатах много, то пытался быть полезным проекту.
Итог же тот же: малая известность проекта и просевший курс токенов на 90+%.
От других людей слышал истории, когда за вклад в сообщество в течение года тоже ничего не давали, или копейки - это тоже, считаю, плохая идея.
С точки зрения кода и технологий в своё время я привязался к Celestia. Казалось, что это уникальная классная технология, которая будет востребованной. Оказалось - нет:
Во-первых, слишком дешево обеспечивали доступность данных. А это не давало прибыль и спрос;
Во-вторых, уже появились более интересные способы масштабирования, чем делегировать ресурсы и данные блокчейна DA.
Так как всё же я перестал привязываться к проектам и интересному функционалу?
Аналитика в этом помогает.
Хотя я не скажу, что стал машиной без эмоций и чувств.
Мне кажется, что такова человеческая природа: мы всегда к чему-то привязываемся.
Например, мне очень нравится развитие Hyperliquid.
Но обладая опытом провалов уже нет эйфории. И есть понимание, что всё может быстро измениться: не жду вечного успеха. Хотя и хотелось бы по-человечески.
При этом я не считаю, что устал от web3.
Скорее научился вовремя останавливаться и не путать интерес с привязанностью 🙂
А вы привязывались к проектам? Расскажите свою историю разочарования от этого или радости.
😎 Незрячий web3 программист (подписаться)
Чат | бот
📟 Прилетело из @blind_dev
Или почему люди вообще любят влюбляться в проекты.
Иногда нравится команда, иногда - функционал или технология.
Итог почти всегда один: слишком долго держатся за проект, не анализируют и в итоге теряют деньги или упускают доход.
С 2017 по 2020 год я вместо изучения зарождавшегося DeFi и рынка web3 в целом зачем-то писал в медиа блокчейнах (в частности на Golos). Проекты же эти сейчас являются малоперспективными.
И я рад, что вовремя остановился. Хотя и по сей день поддерживаю проекты, так как активное поддерживающее меня сообщество есть ещё (рад этому).
Но основное время уделяю уже другому.
После этого тоже были "влюблённости" в проекты. То сидел в чатах много, то пытался быть полезным проекту.
Итог же тот же: малая известность проекта и просевший курс токенов на 90+%.
От других людей слышал истории, когда за вклад в сообщество в течение года тоже ничего не давали, или копейки - это тоже, считаю, плохая идея.
С точки зрения кода и технологий в своё время я привязался к Celestia. Казалось, что это уникальная классная технология, которая будет востребованной. Оказалось - нет:
Во-первых, слишком дешево обеспечивали доступность данных. А это не давало прибыль и спрос;
Во-вторых, уже появились более интересные способы масштабирования, чем делегировать ресурсы и данные блокчейна DA.
Так как всё же я перестал привязываться к проектам и интересному функционалу?
Аналитика в этом помогает.
Хотя я не скажу, что стал машиной без эмоций и чувств.
Мне кажется, что такова человеческая природа: мы всегда к чему-то привязываемся.
Например, мне очень нравится развитие Hyperliquid.
Но обладая опытом провалов уже нет эйфории. И есть понимание, что всё может быстро измениться: не жду вечного успеха. Хотя и хотелось бы по-человечески.
При этом я не считаю, что устал от web3.
Скорее научился вовремя останавливаться и не путать интерес с привязанностью 🙂
А вы привязывались к проектам? Расскажите свою историю разочарования от этого или радости.
😎 Незрячий web3 программист (подписаться)
Чат | бот
📟 Прилетело из @blind_dev