Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга

Арестован Владимир Смеркис — сооснователь крипто-игры Blum и бывший глава Binance в СНГ. Его обвиняют в мошенничестве и заключили под стражу по решению Замоскворецкого районного суда Москвы. Команда Blum уже заявила, что Смеркис больше не является директором по маркетингу и не имеет отношения к проекту (не участвует в разработке проекта или в качестве соучредителя). Blum — это криптоигра, аналог Hamster Combat, где пользователи могут зарабатывать реальную крипту за игровые монеты. Релиза монеты ждали уже год, но листинга до сих пор не случилось.

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии1

О компиляторах.

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

Ядро Linux по этому определению может называться очень большим проектом. Под него специально затачивается gcc.

У IBM есть даже специальный язык PL/S, используемый специально для написания операционной системы. Компилятор PL/S не доступен вне IBM.

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

О языках программирования.

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

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

С другой стороны, стандарт Scheme принимают голосованием программистов по спорным вопросам.

Чем дольше живу, тем больше ценю Лисп и Фортран.

Теги:
Всего голосов 7: ↑5 и ↓2+6
Комментарии20

Ozon запустил бесплатный инструмент OzonGenerator для автоматической генерации описаний товаров — он встроен в личный кабинет продавца и доступен в приложении Ozon Seller. Использовать функцию можно до 50 раз в месяц, при этом сторонние сервисы больше не нужны.

Теги:
Рейтинг0
Комментарии3

Магические квадраты с произведением

 О магических квадратах известно, наверное, всё. А возможны ли магические квадраты, в которых равны не суммы значений в строках, столбцах и на диагоналях, а их произведения? Оказывается – возможны. В дальнейшем буду называть такие квадраты «магическими квадратами с произведением» (сокращённо – МКП).

Интересно, что, как и «обычных» магических квадратов, возможно бесчисленное множество вариантов МКП. В общем случае для трёх чисел a, b и n МКП размером 3 × 3 имеют вид:

При этом ab, a ≠ 1, b ≠ 1, ab2, ba2,

Интересно, что любой МКП размером 3 × 3 может быть основой для формирования бóльших МКП. Одно из возможных решений заключается в том, чтобы поместить такой  квадрат в центр квадрата 5 × 5 и потом подобрать такие остальные числа, чтобы они соответствовали свойствам МКП. Это означает, что МКП являются также так называемыми «рамочными магическими квадратами» – магическими квадратами, которые сохраняют свое магическое свойство, если в них отбросить окаймляющие «полосы» в две клетки.

После комментариев  @miksoft я удалю сей свой пост

Теги:
Рейтинг0
Комментарии6

Работаем с событиями без плагина или как перехватить редирект в Joomla 5

В расширении быстрого заказа для JoomShopping. Я создаю экземпляр модели Checkout и вызываю метод checkStep().

$checkoutModel = JSFactory::getModel('checkout', 'Site');
$checkoutModel->checkStep(2);

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

if (!$check)
{
    JSError::raiseNotice('', 'Message');
    $mainframe->redirect('Url');
    exit();
}

Но мне надо получить результат метода checkStep или исключение. И продолжить работу.

Смотрим какое событие вызывается при редиректе — ApplicationEvents::BEFORE_RESPOND.

Подписываться на события могут не только плагины, но и любые другие callable объекты.

Создадим функцию которая получает заголовки редиректа, удаляет их и бросает исключение:

$onApplicationBeforeRespond = function()
{
	$app = Factory::getApplication();
	$response = $app->getResponse();
	$status = $response->getHeader('Status');
	$location = $response->getHeader('Location');
	$response = $response->withoutHeader('Status');
	$response = $response->withoutHeader('Location');
	$app->setResponse($response);

	throw new RedirectCaughtException($status[0], $location[0]);
};

Перед вызовом $checkoutModel->checkStep(2); подпишем нашу функцию на прослушивание события, а после отпишем. И обернём вызов в try/catch.

$dispatcher->addListener(
	ApplicationEvents::BEFORE_RESPOND,
	$onApplicationBeforeRespond
);

try
{
	$checkoutModel->checkStep(2);
}
catch (RedirectCaughtException $e)
{
    // Обрабатываем исключение
}

$dispatcher->removeListener(
	ApplicationEvents::BEFORE_RESPOND,
	$onApplicationBeforeRespond
);

Таким образом мы можем перехватывать редиректы внутри блока try.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Преимущества реализации цикла FOR в Modula-3

Цикл FOR в Modula-3 был значительно улучшен по сравнению с его аналогами в Pascal и Modula-2. Эти изменения сделали его более безопасным, гибким и удобным для разработки. Вот ключевые преимущества:

1. Гибкость диапазона и шага

В Modula-3 цикл FOR позволяет задавать произвольные начальное, конечное значения и шаг, а не только ±1, как в Pascal.
Пример:

FOR i := 10 TO 1 BY -2 DO
  ...  // обратный счёт с шагом -2
END;

Это упрощает итерации с нестандартными шагами, что особенно полезно в научных вычислениях или обработке данных.

2. Локальная область видимости переменной цикла

Переменная цикла объявляется непосредственно в конструкции FOR, ограничивая её область видимости телом цикла. Это предотвращает случайные конфликты имён и уменьшает риск ошибок.
Пример:

FOR i := 1 TO 10 DO
  ...  // переменная i существует только здесь
END;

3. Защита от модификации переменной цикла

Переменная цикла внутри тела цикла доступна только для чтения. Её нельзя изменить, что исключает случайные ошибки, характерные для Pascal и Modula-2.

FOR i := 1 TO 5 DO
  i := 10;  // Ошибка компиляции: присваивание запрещено
END;

4. Поддержка различных типов данных

Цикл FOR в Modula-3 работает не только с целыми числами, но и с другими типами, такими как:

  • Перечисляемые типы (ENUM).

  • Диапазонные типы (например, поддиапазоны [1..10]).

  • Даже символы (CHAR), если это имеет смысл.

Пример с перечислением:

TYPE Color = {Red, Green, Blue};
FOR c := FIRST(Color) TO LAST(Color) DO
  ...  // итерация по всем элементам перечисления
END;

5. Безопасность и контроль типов

Modula-3 строго проверяет границы цикла на этапе компиляции. Если начальное значение превышает конечное при положительном шаге (или наоборот), цикл не выполняется, что предотвращает бесконечные циклы или ошибки времени выполнения.

6. Улучшенная читаемость

Синтаксис FOR в Modula-3 более выразителен, особенно при работе с массивами или списками. Например:

FOR i := 0 TO LAST(a) DO
  a[i] := ...  // явный обход массива
END;

Это делает код понятнее, чем использование циклов WHILE.

Сравнение с другими языками

  • Pascal/Modula-2:

    • Ограничен шагом ±1.

    • Переменная цикла может быть модифицирована внутри тела.

    • Неопределённое поведение после завершения цикла.

  • Ada:
    Modula-3 позаимствовал многие принципы безопасности из Ada (например, защита переменной цикла), но сохранил простоту синтаксиса.

Итог

Цикл FOR в Modula-3 сочетает гибкость, безопасность и выразительность. Его реализация отражает общие принципы языка: строгий контроль типов, минимизацию ошибок и удобство для разработчика. Это делает Modula-3 предпочтительным выбором для задач, где важна надёжность и читаемость кода.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии2

Тяжела и неказиста жизнь простого программиста статических анализаторов кода

Команда PVS-Studio, содействуя разработке методики испытаний статических анализаторов под руководством ФСТЭК, составляла некоторые синтетические тесты. Писать синтетические тесты сложнее, чем кажется, и с их достоверностью всегда масса нюансов. Я никогда не любил синтетические тесты и продолжаю их не любить. Но что делать, они тоже нужны, когда речь заходит о необходимости подтвердить, что в анализаторах реализован определённый набор технологий.

Даже зная и понимая нюансы составления синтетических тестов, мы всё равно наступили на собственные грабли! Переиграли сами себя :)

Есть составленные нами тесты, в которых в функцию srand или её аналог передаётся константное значение. Это приводит к тому, что функция rand каждый раз будет генерировать одинаковую последовательность псевдослучайных чисел. Такой код, согласно ГОСТ Р 71207-2024, п. 6.3.г, может являться ошибкой некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

Когда тесты подготавливались в Compiler Explorer, всё работало: PVS-Studio выдавал предупреждение V1057. А сейчас, когда код мило и скромно лежит в файлах, не работает. На Compiler Explorer работает, а вне — нет. Магия. Уже собрались баг в анализаторе искать.

Ах нет, всё просто. Файлы с тестами называются test_err_*.cpp. И в детекторе срабатывает исключение N4: "Находимся в файле, содержащем в названии слова check/test/bench". Тьфу. Причём получается, что анализатор прав: это действительно тест, а не настоящий баг :) Вот оно, несовпадение реальности и синтетических проверок в действии. Выкрутимся как-нибудь, но решил описать, так как случай интересный.

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

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

Был рад поведать немного интересного из жизни разработчиков статических анализаторов кода. А если хочется послушать что-то ещё, приглашаю на подкаст "Статический анализ по серьёзному" с моим участием 27 мая в 19:00 по Москве.

Теги:
Всего голосов 10: ↑10 и ↓0+14
Комментарии1

ИБ-дайджест InfoWatch

Хакеры стали жертвами взлома

У группировки LockBit украли конфиденциальные данные и взломали сайт, разместив там информацию о более чем 70 администраторах и лицах, связанных со злоумышленниками.

Кибератака на металлургов

Производитель стали Nucor после инцидента ИБ пытается восстановить коммуникационную инфраструктуру и производственные процессы на нескольких предприятиях.

Департамент эффективности США слил данные

В результате заражения компьютера сотрудника были похищены ПДн и сведения о деятельности DOGE — злоумышленники также выложили их в сеть через базы программ-инфостилеров.

Инженеру грозит тюрьма за кражу информации

Программист из США приговорен к 1 году и 1 дню тюремного заключения за кражу запатентованной технологии своего бывшего работодателя.

Также он выплатит $14 тыс. штрафа и возместит ущерб в $18 тыс.

Worldcoin обязали удалить биометрию

Высший суда Кении предписал проекту биометрической криптовалюты Worldcoin Foundation за неделю удалить биометрические ПДн кенийцев, поскольку их собирали без оценки воздействия на защиту ПДн.

Anonymous украли данные по депортации

Хактивисты взломали GlobalX Airlines и завладели информацией о лицах, которые были депортированы из США — а также устроили дефейс веб-страницы авиакомпании и слили часть данных журналистам.

Clearview AI повторно оштрафовали за биометрию

Компания продолжает получать штрафы в Евросоюзе за незаконный сбор биометрических ПДн и неоднократное нарушение регламента GDPR —  в Соединенном Королевстве (около $10 млн), Франции ($22 млн), Нидерландах ($32 млн), Италии ($22 млн) и других государствах Европы.

Крупная утечка из британского ритейлера

Хакеры из DragonForce требуют выкуп за украденные данные 20 млн клиентов британского ритейлера Co-op.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Google I/O 2025: два вечера главных анонсов вместе с Surf

20 и 21 мая — подключайся к нашим стримам по Google I/O. Будем вместе следить за анонсами новинок, делиться первыми впечатлениями и обсуждать всё самое интересное из мира технологий и разработки в прямом эфире.

Смотрим и комментируем:

  • 20 мая (вторник)
    → 20:00 — Google Keynote: все главные анонсы и будущее технологий от Google.

  • 21 мая (среда)
    → 20:00 — What’s new in Android development tools: новинки для Android-разработчиков.
    → 21:00 — What’s new in Flutter: свежие обновления для Flutter-сообщества.

Время указано по Москве. Позже добавим сюда наших спикеров и персональные ссылки на трансляции.

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

Теги:
Рейтинг0
Комментарии0

Как связать пару тысяч ИП и маркет?

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

Рассказываем на примере кейса XWAY. Переходите в Академию Selectel чтобы узнать, как компания:

  • Построила гибридную и отказоустойчивую инфраструктуру с обработкой 1 000 запросов в секунду.

  • Использует облачные серверы, Managed Kubernetes и выделенные серверы от Selectel для обеспечения высокой производительности.

  • Обеспечивает быструю и надежную сетевую связность при уровне SLA 99,98%

  • Автоматизировала управление инфраструктурой, снизив зависимость от сторонних специалистов.

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Компания Take-Two Interactive в своем финансовом отчёте раскрыла множество интересных деталей касательно своих игр, включая GTA VI. В частности, стала известна сумма, которую выделили на разработку проекта.

2 мая 2025 года Rockstar Games официально сообщила о переносе даты выхода Grand Theft Auto VI. Вместо осени 2025 года релиз тайтла состоится 26 мая 2026 года. В компании пояснили, что это необходимая мера, так как команде проекта понадобилось дополнительное время на то, чтобы завершить создание игры в таком виде, чтобы она превзошла все ожидания пользователей.

Что сообщили в Take-Two Interactive:

  • производственный бюджет GTA VI уже превысил $1 миллиард, что делает ее самой дорогой видеоигрой в истории;

  • разработка GTA VI официально началась «всерьёз» в 2020 году, но ранние этапы производства, вероятно, могли стартовать ещё в 2018 году;

  • Take-Two считает, что дополнительное время на разработку оправдано, поскольку GTA 6 стала самым ожидаемым развлекательным продуктом всех времён;

  • продажи GTA V уже превысили 215 млн копий;

  • общий тираж серии GTA составляет 450 млн;

  • продажи Red Dead Redemption 2 составили 74 млн (в феврале было 70 млн);

  • общий тираж серии Red Dead составляет 100 млн;

  • выручка Take-Two за финансовый год выросла на 5% и достигла $5,63 млрд, что соответствует ожиданиям компании;

  • повторные пользовательские траты (recurring spend) также увеличились на 5%;

  • операционный убыток составил $4,49 млрд, превысив прошлогодние $3,59 млрд. Основной причиной стал рост расходов на разработку игр;

  • GTA V достигла $1 млрд в розничных продажах быстрее любого другого продукта развлечений;

  • GTA V — самая продаваемая игра последних 10 лет в США по количеству и денежным показателям;

  • генеральный директор Take-Two Interactive Штраус Зельник (Strauss Zelnick) уверен в том, что релиз GTA VI состоится без дополнительных задержек. Выход ожидается 26 мая 2026 года.

Теги:
Рейтинг0
Комментарии0

Облачная инфраструктура Рег.ру для AI и ML

Рассказываем, какие решения в Облаке Рег.ру помогут развернуть полноценную инфраструктуру для работы с AI и ML. Сервисы подходят для обучения моделей, хранения больших датасетов в облачных хранилищах и внедрения решений в продакшн. 

Как работает архитектура для AI и ML:

  1. Развертывание вычислительной среды. Выбираете, где будет выполняться обучение: Bare Metal GPU или Cloud GPU.

  2. Загрузка данных. Собираете датасет в удобных инструментах: S3, DBaaS или непосредственно на виртуальной машине/сервере. 

  3. Обучение модели. Запускаете создание или дообучение модели с сохранением результатов в удобном сервисе, например, в S3 или DBaaS.

  4. Использование результатов. Модель можно тиражировать и применять для различных сервисов в продакшене.

С помощью AI и ML-решений можно упростить автоматизацию, ускорить аналитику и повысить производительность проектов.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Ближайшие события

3 ключевые метрики, которые спасут микросервисный проект

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

Инфраструктурные метрики

Базовые показатели вроде CPU и RAM уже не спасают. Для микросервисов важнее:

Статус подов в Kubernetes:

  • Количество рестартов.

  • Фейлы readiness/liveness проб.

  • Используйте метрику kube_pod_status_ready в Prometheus, чтобы находить «битые» поды.

Трассировка запросов: время выполнения каждого этапа через Jaeger.

Пример: Если поды перезапускаются чаще 5 раз в час — это сигнал к немедленной проверке.

Бизнес-метрики

Инфраструктура может быть идеальной, но если падает конверсия — бизнес теряет клиентов. Отслеживайте:

  • Конверсию платежей (например, от корзины к оплате).

  • Время обработки заказов.

Код для .NET-сервиса:

using App.Metrics;

public class PaymentService {
    private readonly IMetrics _metrics;
    public PaymentService(IMetrics metrics) => _metrics = metrics;
    
    public void ProcessPayment() {
        try {
            // Логика платежа...
            _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentSuccessCounter);
        } 
        catch {
            _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentFailedCounter);
        }
    }
}

Эти метрики интегрируются в Grafana, чтобы вы видели, как каждая транзакция влияет на бизнес.

Пользовательский опыт

Даже 1 секунда задержки может увеличить отток пользователей на 7%. Контролируйте:

  • Время отклика API (p95, p99).

  • Частоту ошибок 5xx/4xx.

  • Структурированные логи с контекстом:

{
  "timestamp": "2023-10-05T12:34:56Z",
  "level": "ERROR",
  "userId": "a1b2c3",
  "operation": "process_payment",
  "message": "Failed to charge card: insufficient funds"
}

Теги вроде userId помогают быстро найти все связанные с ошибкой события.

Теги:
Рейтинг0
Комментарии0

Я сделал своего первого Telegram-бота — WebCheck. Мониторинг сайтов прямо в Telegram⁠⁠

Привет!

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

Знакомьтесь: WebCheck — бот, который следит за доступностью сайтов, SSL-сертификатами и доменами.

🧠 Что умеет бот

  • Проверяет, доступен ли сайт (HTTP-код);

  • Показывает, сколько дней осталось до окончания SSL-сертификата;

  • Проверяет, когда истекает регистрация домена;

  • Присылает уведомление, если:

    • сайт стал недоступен;

    • до окончания SSL-сертификата осталось 14 дней или меньше;

    • до окончания регистрации домена осталось 14 дней или меньше;

  • Позволяет экспортировать логи и список сайтов в CSV;

  • Есть админ-интерфейс для контроля всех добавленных сайтов.

⚙️ Как пользоваться

  1. Открываете бота 👉 @ITSync_WebCheckBot

  2. Жмёте «Start» или пишете /start

  3. Просто отправляете ссылку на сайт (например: example.comozon.ru или https://wildberries.ru)

  4. Получаете оповещения, если с ресурсом что-то не так

Бот абсолютно бесплатный, ничего не требует — просто добавил сайт, и бот сам всё контролирует.

👨‍💻 Технически

Бот написан на Python с использованием:

  • aiogram v3

  • PostgreSQL

  • APScheduler

  • Shell-команд (whois, curl, openssl) для большей точности

Контейнеризирован в Docker, база хранится вне контейнера, а вся логика максимально простая и прозрачная.

🔐 А ещё я сделал бот для дешифровки VNC

Если вдруг работаете с .vnc файлами или UltraVNC — может пригодиться мой мини-инструмент:
@DecryptVNC_bot — он расшифровывает VNC-пароли прямо в Telegram.

🙏 Буду рад, если протестируете

Это мой первый бот, и я был бы благодарен за фидбек.
Если найдёте баг, захотите предложить улучшение — пишите. Буду дорабатывать и развивать.

Спасибо, что прочитали.
Бот тут 👉 @ITSync_WebCheckBot
И ещё один на всякий 👉 @DecryptVNC_bot

Теги:
Рейтинг0
Комментарии0

Как форкнуть Uniswap v3, не делая форка? Подсказка: нужна алгебра

Учёные расходятся в цифрах, сколько на самом деле существует форков Uniswap v2, но, скорее всего, много или даже очень много. «А раз это так популярно, почему бы не сделать из этого бизнес?» — подумали ребята из Algebra Finance и сделали DaaS (DEX-as-a-Service).

Но Uniswap v2 уже морально устарел: у пулов на его основе есть проблемы с непостоянными потерями (impermanent loss) и неэффективным использованием капитала, поэтому протокол построен на базе Uniswap v3.

🦄 Почему за основу взят Uniswap v3?

Концепция CLMM (Concentrated Liquidity Market Maker), которая стала основной фичей Uniswap v3, отчасти решала проблему непостоянных потерь, а кроме того, концентрированная ликвидность позволяла использовать капитал провайдеров ликвидности (LP) в разы эффективнее. Но всё же было у неё пара недостатков.

⚙️ DEX-движок

Первая версия протокола Algebra v1 не просто тупо взяла код третьего Uniswap: была сохранена основная архитектура (core + periphery контракты), но переработана таким образом, чтобы исправить недостатки Uniswap v3:

  1. Динамические комиссии — тут команда протокола сильно заморочилась и разработала формулу, которая учитывает волатильность актива, объём ликвидности и объём торгов, и на основании этих данных корректирует комиссию пула.
    Получается, что:
    • При высокой волатильности комиссия увеличивается, чтобы компенсировать риски LP.
    • При низкой торговой активности, но достаточной ликвидности, комиссия снижается, чтобы стимулировать больше обменов.
    Таким образом, всю ликвидность конкретной пары можно держать в одном пуле, а не разбивать на несколько с разной комиссией (как в Uniswap v3). Подробно формула разбирается в whitepaper.

  2. Фарминг из коробки — добавили возможность поощрять LP через фарминг-кампании. Дело в том, что в случае с CLMM стандартный фарминг не подходит. Для справедливого распределения ревардов нужно учитывать:
    • объём ликвидности конкретной позиции;
    • время, когда эта позиция была в диапазоне и зарабатывала комиссии.
    Задача нетривиальная: для этого пришлось разработать виртуальные пулы, которые подключаются к основному пулу и получают эту информацию в реальном времени (у Uniswap ничего подобного нет).

🚀 Запуск протокола

После истечения лицензии на код Uniswap v3 (в апреле 2023 года) разные DEX'ы начали разворачивать Algebra v1, например QuickSwap, Camelot, THENA.

Судя по отсутствию в документации информации о развертывании, команда Algebra делает это самостоятельно. За это протокол получает community fee, то есть часть торговых комиссий DEX'ов отчисляется протоколу. На данный момент этим решением уже воспользовалось больше 30 DEX.

У протокола есть токен ALGB: около 70% заработанных комиссий тратится на выкуп и сжигание этого токена, остальные идут на поддержание работы протокола и выплату ревардов за стейкинг ALGB.

🥈Algebra v2 (Integral)

Недавно была представлена вторая версия протокола — Algebra Integral. Фактически это функционал Uniswap v4, но на базе всё того же Uniswap v3. В четвёртой версии Uniswap сделал единый пул, а также добавил хуки.

Хуки — это callback-функции, которые вызываются при основных действиях пула (иницилизация, свопы, добавление/удаление ликвидности, flash-loan) и позволяют вынести много логики «наружу».

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

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

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

@yarlykovrv

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

🚀 291 установка за месяц. Как мы запустили браузерное расширение «Rar File Opener»

Расскажу про создание нового продукта — расширения для открытия RAR-архивов прямо в браузере. Простое решение проблемы, когда средствами ОС RAR не открыть.

Результаты за 30 дней:

- 291 установка

- 185 активных пользователей

Все это без каких-либо вложений в маркетинг.

Как мы это сделали?

1️⃣ Нашли идею в https://chrome-stats.com.

2️⃣ Проверили запросы в Google и Chrome Store. Люди ищут способы извлечения RAR архивов по запросам "rar extractor", "rar file opener" и т.д. Конкуренция в Chrome Store при этом низкая.

3️⃣ Разработали простое расширение, которое:

- Открывает RAR прямо в браузере (а также ZIP, 7z, TAR, GZ, TAR.GZ и другие форматы)

- Не крадёт данные (работает локально)

- Работает с несколькими архивами

У нас процесс уже отлажен:

✅ Разработали MVP

✅ Сделали иконки, промо картинки и лендинг

✅ Сделали SEO-описание + перевод на 55 языков

✅ Тесты и фикс багов

На все 3-4 недели.

Копаем ил дальше в поисках идеи нового продукта! 😁

Инди-хакеры: стартапы из 💩 и 🥢 - канал про то, как два простых IT-шника запускают стартапы без инвестиций и смузи.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Angular Hack: Цикл без данных (в тэмплейте)

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

Вот мой способ (по крайней мере, я нигде такого не видел):

@for (_ of [].constructor(10); track $index) {
<div class="item"></div>
}

Используется Array.constructor, чтобы создать пустую массив фиксированной длины, который @for может перебрать по индексам.

Плюсы ✅

  • Чудо-код (удивит коллег)

  • Минимум кода (не нужно объявлять массив в компоненте)

Минусы ⚠️

  • Чудо-код (может ненадолго ввести в ступор чающего код человека)

Конечно, можно просто использовать Array.from({length: 10})... но так все делают, не интересно)

Норм тема? Как считаете?

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии3

Как искать ролики на YouTube по локации?

Поиск информации по координатам
Поиск информации по координатам

Недавно наткнулся на древнюю, но любопытную Google-таблицу с подборкой OSINT-инструментов.

Сразу привлёк внимание инструмент для поиска YouTube-видео по координатам: YouTube Geofind

Где может пригодиться?

1️⃣ Проверка достоверности информации
Если из одной локации поступают противоречивые данные, можно найти все видео с этого места и сравнить их.
2️⃣ Расследования и журналистика
Установление места съёмки: если видео якобы снято в Сирии, а координаты ведут в другую страну — это повод усомниться.
Поиск свидетелей: можно найти ролики, снятые рядом с местом события, и посмотреть, кто там был.
3️⃣ Кибербезопасность
Выявление фейков, где одно и то же видео выдают за съёмки из разных мест.
4️⃣ Краеведение
Анализ изменений локации: стройки, разрушения, природные катаклизмы — можно сравнить, как место выглядело раньше и сейчас.

Главный недостаток
➖Не у всех видео есть привязка к геолокации (не вина инструмента)

Как сделать свой Youtube Geofind?
Ключевой принцип работы инструмента прост и завязан на YouTube API (документация).

Чтобы найти видео по координатам, достаточно одного запроса:
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&location={latitude}2C{longitude}&locationRadius={radius}&publishedAfter={publishedAfter}&key={API_KEY}
Где:
— latitude и longitude - широта и долгота;
— radius - радиус
— publishedAfter - значение даты и времени в формате RFC 3339 (1970-01-01T00:00:00Z), которое указывает, что ответ API должен содержать только видео, созданные в указанное время или после него
— API_KEY - ваш API-ключ, который можно получить через Google Console

Пример запроса (все видео в радиусе 200 м от Красной площади, опубликованные после 00:00 9 мая 2025 года):
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&location=55.7539%2C37.6208&locationRadius=200m&publishedAfter=2025-05-09T00:00:00Z&key=<ваш API-ключ>

В ответ получаем JSON с найденными видео (пример на прилагаемом к посту скриншоте).
Метод поддерживает и другие параметры — подробнее в официальной документации.

Заключение
Важно помнить, что любые инструменты — лишь вспомогательные средства. Не стоит забывать о критическом мышлении и перекрёстной проверке.

Больше контента в моем авторском telegram-канале: https://t.me/ru_vm (BritLab)

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Смотрите новый выпуск подкаста про AI и Data Science 🔥

В гостях у Cloud.ru — Алексей Четыркин, директор по Data Science в Magnit Tech. В подкасте обсудили, как ритейл-гигант внедряет AI и какие технологии меняют будущее торговли.

Также в выпуске:

  • как организовать работу с данными в ритейле эффективно,

  • для чего «Магниту» нужна собственная AI Lab,

  • какие функции могут забрать на себя AI-агенты.

Посмотреть подкаст можно на YouTube и VK Видео 👈

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0