Pull to refresh
20
0
Zaur Abdulgalimov @abdulgalimov

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

Send message

так id - это primary key с индексом.

SELECT
  *
FROM
  queue_table
WHERE
  pg_try_advisory_lock('queue_table'::regclass::oid::int, pk_id)
ORDER BY
  pk_id
LIMIT 1;

такая конструкция берет из таблицы одну строку, но блокирует все. Почему так?

да, тоже интересно, можно ли как это запустить webapp в канале? через кнопку какую нибудь

Каждая выпущенная акция должна быть всегда правильной. Если кто-то после меня добавляет или удаляет из пула ликвидность, моя доля должна оставаться соответствующей моему вкладу в общем объеме ликвидности.

Допустим я вложился в пул, и я моя доля составляет 20% от общего пула - это значит что я должен получать 20% от всех комиссий?

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

Объясните пожалуйста следующий момент:

} else {
    uint256 ethReserve = address(this).balance - msg.value;
    uint256 tokenReserve = getReserve();
    uint256 tokenAmount = (msg.value * tokenReserve) / ethReserve;
    require(_tokenAmount >= tokenAmount, "insufficient token amount");
    IERC20 token = IERC20(tokenAddress);
    token.transferFrom(msg.sender, address(this), tokenAmount);
}

В строке 7 происходит трансфер токенов от платящего в счет обменника. Но ведь для того чтобы обменник мог сделать transferFrom, платящий должен сначала сделать approve нужного количества токенов? Т.е. для юзера эта операция будет происходить в два(или 3?) этапа:

  1. approve токенов для перевода

  2. вызов метода addLiquidity

  3. Если по формуле получилось что передать надо меньше чем я предложил - сделать еще один вызов approve и передать значение 0, чтобы контракт не мог забрать больше чем уже забрал в рамках предыдущего метода.

И все три вызова требуют подписи транзакции, получается юзеру два(или 3) раза придется подтверждать операцию в каком нибудь metamask-кошельке. Как это не юзерфрендли получается.

Подскажите в каком месте я ошибаюсь, и как правильно это реализовать.

Спасибо.

const cacheFiles = [
    'https://domain.ru/file/to/path.bin'
];

self.addEventListener('install', (event) => {
    console.log('[sw] installed8', event);
    caches
        .open('static')
        .then((cache) => cache.addAll(cacheFiles))
});

self.addEventListener('activate', (event) => {
    console.log('[sw] activated', event);
});

self.addEventListener('fetch', (event) => {
    event.respondWith(
        caches.match(event.request)
          .then(response => {
            if (response) {
                console.log('[sw] from cache', event.request, response);
              return response;
            } else {
              return fetch(event.request);
            }
          })
    );
});


Использую вот такой Service Worker.
  1. Воркер устанавливается(лог [sw] installed выполняется).
  2. Дожидаюсь пока файл загрузится (150мб). Вижу этот файл во вкладке Application -> Cache Storage.
  3. Перезапускаю страницу. Вижу что файл в кеше был найден(лог [sw] from cache выполняется). Ожидаю что файл загрузится моментально, а он грузится так же долго 30 сек.


Что я делаю не так? Спасибо.
Да что то они сильно поменяли сайт с 2015 года, когда статья была написана. Но в принципе информацию можно найти. Например если разбирать приведенную в статье характеристику 2A0F Local Time Information: открываем ссылку, у меня в ответ скачивается XML с содержимым:
image

Здесь как видим есть поле «Time Zone» Описание которого можно найти на странице с характеристиками используя это имя поля или идентификатор org.bluetooth.characteristic.time_zone

В описании поля «Time Zone» как раз описание в формате sint8 — то о чем я писал в статье выше:
image
Про GATT поиском на сайте bluetooth.com нашел

Ссылки apple не знаю куда делись, лень искать :)
ANE библиотек больше нет, ибо флешь помер :(
Спасибо за статью, полезно :)

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

Спасибо.
т.е. размер файла 27кб не смущает? при том что должен получиться Uint8 массив длиной ~200 байт.

Подскажите как правильно скомпилировать .wasm из .c файла?
Взял пример из статьи:


int fib(int n)
{
    if (n == 0) { return 0; }
    else
    {
        if ((n == -1) || (n == 1)) { return 1; }
        else 
        {
            if (n > 0) { return fib(n - 1) + fib(n - 2); }
            else { return fib(n + 2) - fib(n + 1); }
        }
    }
}

Компилирую так же как в статье:


emcc -O1 fib.c -g -o fib.html -s WASM=1 -s NO_EXIT_RUNTIME=1 -s NO_FILESYSTEM=1 -fno-exceptions -fno-rtti --llvm-lto 1

Получаю .wasm файл размером 27 кб :( Как получить массив как в примере выше:


[0,97,115,109,1,0,0,0,1,134,128,128,128,0,1,96,1,127,1,127,3,130,128,128,128,0,1,0,4,132,128,128,128,0,1,112,0,0,5,131,128,128,128,0,1,0,1,6,129,128,128,128,0,0,7,144,128,128,128,0,2,6,109,101,109,111,114,121,2,0,3,102,105,98,0,0,10,203,128,128,128,0,1,197,128,128,128,0,1,1,127,2,64,32,0,65,1,106,34,1,65,3,79,13,0,32,1,65,2,116,65,12,106,40,2,0,15,11,2,64,32,0,65,1,72,13,0,32,0,65,127,106,16,0,32,0,65,126,106,16,0,106,15,11,32,0,65,2,106,16,0,32,1,16,0,107,11,11,146,128,128,128,0,1,0,65,12,11,12,1,0,0,0,0,0,0,0,1,0,0,0]

?

А как же без лучшего бота для проведения опросов :) http://telegra.ph/QuanBot-Domashnyaya-stranica-04-22

Подскажите пожалуйста, почему у меня нет шаблонов Games image?
Уже в который раз натыкаюсь на статью, прочитав которую думаю: «ну вот супер, все понятно, то что нужно», а потом читаю коменты и большинство пишут что это все не правильно, профи так не делают и т.п.… кто нибудь, напишите пожалуйста, или дайте ссылку где простым языком написано как надо это делать :) очень не хочется изначально учится не верному способу…
http://telegram.me/QuanBot — лучший бот для проведения опросов :) видео с его возможностями:
Вдруг кому понадобится бот для проведения опросов в чатах телеграм, QuanBot — лучший бот с расширенными настройками: https://youtu.be/12ekmVmlRWg.

image > image > image > image

Новый билд можно отправить либо вручную через сайт сервиса:…
… Либо в полуавтоматическом режиме, если установлено десктопное приложение — в этом случае достаточно будет выполнить архивирование проекта (Product-Archive) — далее в появившемся попапе выбрать Upload:


Еще в OSX(на других ОС не пробовал) можно отправлять билд из командной строки.
Спасибо за подробную информацию. Я правильно понял что, если я собираю ipa без Xcode проекта — значит у меня нет шансов использовать fabric?
Супер! Спасибо)

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity