Как стать автором
Обновить
27
0
Андрей Аникин @AndreasCag

Computer Vision engineer

Отправить сообщение

У блокчейна TON нет майнеров, он работает на PoS

а в чём преимущества "разработки в Docker на удаленном сервере"?

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

На удаленном сервере потому, что например работаешь за ноутом, а нужна мощная видеокарта/проц.

Не вижу про возможность удалённого debug (например пройтись step-by-step по коду) — это реально в подобной конфигурации?

Реально.

Грустно от таких статей, просто перевод мануала с официального сайта vs code.

В США SEC тащит в суд всех до кого дотянется
https://www.axios.com/2023/03/23/sec-tron-lawsuit-wash-trading-manipulation

Я и есть ненастойчивый внук, но дедушка не оставлял меня в покое, пока все не порешалось!
Оставлю тут описание всего квеста, для анналов истории:

-> На кассетном плеере была звуковая запись, которая призывает открыть шкатулку-пазл
-> В шкатулке лежала micro SD и записка с надписью LOAD "" SCREEN$
-> На micro SD находилось два файла — запароленный архив и картинка с кодом морзе
-> В конце записи на кассете оказался код морзе, который помог расшифровать архив
-> В архиве лежал эмулятор ZX Spectrum (SpecEmu v2.8) и аудиофайл
-> Если загрузить этот файл в эмулятор и ввести команду с записки, то откроется картинка, в которой есть трек-код новой посылки

В новой посылке оказалась поздравительная записка, порт-хаб, orange pi (как раз к micro SD) и четыре пикника (два я уже съел):


Спасибо большое, Дедушка, ты очень милый :)

Хмм… А можно на кассету с одной стороны записать аудиозапись голоса и азбуки морзе, а с другой — программу для спектрума?

Похвастаюсь и я

Дедушка прислал мне кассетный плеер (с записью как в пиле и кодом морзе) и пазл, напечатанный на 3D-принтере, с флешкой и паролем внутри.

Надеюсь все разгадать вовремя и не закончить как многие герои пилы!

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

Похоже ты про эту строчку:
Откроете на старом мобильнике — Δt будет равен 46 миллисекундам, нашему максимальному ограничению. Откроете на мощном компьютере — Δt будет равняться 16-17 миллисекундам.

Меняющийся Δt означает то, что длительность анимации и изменения анимируемого значения будут каждый раз немного разные.


Когда мы считаем скорость и положение пружины, то мы делаем вид, что на промежутке Δt ускорение и скорость были константами:


На самом деле это не правда, ускорение и скорость меняются на всем пути анимации, даже при самом маленьком изменении.

Чем больше Δt, тем больше погрешность. Когда у нас Δt не зафиксирован, то на разных устройствах получаются разные погрешности, которые влияют на длительность анимации.
Спасибо, взял себе пару советов!
Использование Chromium с открытыми исходниками не решает проблемы — в нем уже находили жучки от Google.

Можно пруфы?
Потому, что раньше пользователей safari 10 было больше и нужно было как-то поддерживать его работоспособность.

Когда я решал этот баг, то выбрал быстрое и не оверкильное решение, так как не видел смысла долго с этим копаться.
Пускай возвращается, safari 10 мы уже не поддерживаем ¯\_(ツ)_/¯
Проще было одну функцию переписать на промисы, чем играться со сборкой

this._removeResizeFunc = setAndCallResizeFunc(() => {
  /* ... */
  this.$timeout().then(() => {
    /* ... */ 
  });
});

Помню прикол с safari. В проекте был такой код:

this._removeResizeFunc = setAndCallResizeFunc(async () => {
  /* ... */
  await this.$timeout();
  /* ... */
});


На всех браузерах он отрабатывал нормально, кроме safari 10. В нем он выдавал ошибку:

Can't find private variable: @derivedConstructor


В дев режиме ошибка не воспроизводилась.

Проблема оказалась в том, что на safari 10 не работают асинхронные функции в калбеках. В дев режиме весь код транспилировался в es5 и асинхронные функции заменялись на промисы, поэтому ошибки не возникало. А для прода для разных бразуеров собирались разные сборки с теми полифилами и транспиляциями, которые нужны именно этому браузеру. Safari 10 поддерживает асинхронные функции, так что в его сборке оставался асинхронный калбек.

Переписали на промисы и все заработало :)
брать время из ответов сервера, вводить поправку на сетевую задержку, вычислять смещение часового пояса и плясать с бубном

А как брали поправку на сетевую задержку?
Про то, как поправить дубликаты, есть отдельная глава Fixing bundle duplicates в документации inpectpack.

Ведь дубликаты в «сторонних» пакетах

Дубликаты вызываются сторонними пакетами, но есть шанс, что поправить это можно в своем package.json.

В примере из статьи можно поменять версию lodash@4.1.0 на lodash@3.0.0, чтобы избавиться от дубликата:
/* package.json */

{
  /* ... */
  "name": "my-app",
  "dependencies": {
    "lodash": "3.0.0", // 4.1.0 -> 3.0.0
    "one": "1.2.3"
  }
}


Если дубликаты возникают из-за конфликтов версий пакетов в других пакетах или не хочется откатываться на старую версию, то можно попробовать resolutions в yarn'e или resolve.alias в webpack'e.

Помогает тем, что из-за этого не откроется половина сайтов?

Мерцание — это проблема не SSR+SPA, а кривой реализации.
Какой бардак, можно поподробнее?

Бардак в бухгалтерии, ведь столько денег тогда придется тратить на зарплатный фонд каждый месяц :)

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

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

Уверен, что тесты для повышения квалификации будут:
1. Длиться несколько часов, чтобы отбить желание проходить такое снова
2. Содержать сложные задачки, которые не используются в реальной работе, чтобы убедить тебя в непрофессионализме
3. Повторно можно будет пройти тест только через несколько месяцев
Выбрали плохую статью и сделали плохой перевод :(

Это предложение вообще за гранью:
К счастью, Vue настолько удивителен, что он достаточно умен, чтобы понимать, что никакая функция, вызываемая самостоятельно, не должна вызываться до тех пор, пока не сработает событие, к которому она присоединена, поэтому даже если это IIF, Vue делает ее thunk, что задерживает выполнение.


Четвертый способ полная глупость.
Что здесь происходит так это то, что каждый раз, когда div увеличивается в длине (например прогрессбар), все кнопки также будут перерисовываться.

Кнопки не будут перерисовываться, если их ключ не изменился. У них только изменится листенер на событие клика.

  <button @click="() => $logger.log('lol')">Test</button>
  <button @click="$logger.log('lol')">Test</button>

Автор утверждает (хотя тяжело понять в тексте что он там на самом деле утверждает), что во втором случае не будет создаваться новая функция при ререндере, но это не так, так как все в итоге будет скомпилировано vue-template-compiler'ом в это:

_c(
  "button",
  {
    key: i,
    on: {
      click: function() {
        return _vm.$logger.log("lol")
      }
    }
  },
  [_vm._v("Test")]
)

Т.е. новая функция будет все-равно создаваться при ререндере. Оптимизации внутри шаблонов обещают только во Vue 3 версии.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность