Famabara

Посты пользователя: dima


Мамаев Курган и "Родина-мать зовёт!" - фото и видео из Волгограда

1 дн. назад
Любой турист, посещающий Волгоград, не может не посетить Мамаев Курган. Это, действительно, впечатляющий мемориальный комплекс в память о победе в Великую Отечественную войну. Все знают скульптуру "Родина-мать зовёт!", но она только часть мемориала. Мамаев Курган - это очень большой архитектурно-ландшафтный объект, но его осмотр нужно несколько часов.

На 9 мая путь к памятнику украшен красными флагами.
Вообще, Родина-мать видна там отовсюду. Мемориальный комплекс начинается сразу от остановки общественного транспорта.
Показать полностью...
+2
4

Фото-прогулка по Волгограду: часть 2

4 дн. назад
Первая часть:
https://famabara.com/posts/262

Скоростной трамвай в центре идёт под землей. Выглядит почти как метро.
Станция Комсомольская, открытая в 1984 году.
Показать полностью...
+1
7

How to use Quill Editor with Nuxt 3 and SSR (Vue)

4 дн. назад
If you try to use Quill Editor with Nuxt 3 when rendering a page in SSR you will get this error:
500 document is not defined.
That means NodeJS doesn't have the global variable 'document'. Because SSR rendering is executed in
a NodeJS environment, not a browser.

The sad fact: <client-only> won't help with this problem. The problem with quill's code is that during import, it assumes it's being executed in the browser. I hope you remember that the code imported from the module is not just imported, but executed, i.e. the authors of Quill wrote it so that the 'document' object is immediately accessed there. Very bad.

One solution is to disable SSR, but its an awful solution. But the second solution is to use dynamic JS imports.

My <script lang="ts" setup> in QuillEditor.vue in Nuxt 3 project:
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
// import Quill from 'quill'; // SSR problem with 'document', need to use dynamic import
import type Quill from 'quill';

const elemForQuillEditor = ref<HTMLDivElement|null>(null);

let editor: null|Quill = null; // Do not store in ref() - it causes bugs!

// ...

async function createQuillAndSetListeners() {
  const Quill = (await import('quill')).default; // This is most important thing - usage of JS dynamic import

  if (!elemForQuillEditor.value) return;
  editor = new Quill(elemForQuillEditor.value, {
    theme: 'snow',
    modules: {
      history: {
        delay: 2000,
        maxStack: 500,
        userOnly: true,
      },
      toolbar: {
        container: [
          ['bold', 'italic', 'underline', 'strike'],
          ['link'],
          [{ list: 'ordered' }, { list: 'bullet' }],
          [{ script: 'sub' }, { script: 'super' }],
          [{ header: [1, 2, 3, 4, 5, 6, false] }],
          [{ color: [] }, { background: [] }],
          ['clean'],
          ['undo', 'redo'],
        ],
        handlers: {
          undo() {
            editor?.history.undo();
          },
          redo() {
            editor?.history.redo();
          },
        },
      },
    },
    placeholder: props.placeholder,
  });
  
  editor.on('text-change', () => {
    if (!editor) return;
    // ... my other code
  });
}

// ...

onMounted(createQuillAndSetListeners);

Now your Quill editor will work in Nuxt 3 even during SSR!
Показать полностью...
+1
2

Полная жесть: открытое утепление стены пеной

6 дн. назад
Гуляя по улицам города, натолкнулся на вот такую жесть:
Кто-то решил утеплить снаружи стену пенополиуретановой пеной. Строительная монтажная пена - это горючий материал. Если кто-то бросит непотушенный окурок сверху, то возможен серьёзный пожар.
+2
14

Фото-прогулка по Волгограду: часть 1

9 дн. назад
Волгоград встречает копией известного фонтана с хороводом детей.
Вокруг разместили лягушек - они были на оригинальном фонтане.
Показать полностью...
+3
7

Волга вышла из берегов

12 дн. назад
Это центральная набережная Волгограда. Зрелище для туриста довольно необычное.
Показать полностью...
+1
3

Памятник Брежневу существует

12 дн. назад
Сколько памятников Брежневу вы видели в своей жизни? По всему экс-СССР стоят памятники Ленину, это был инструмент тогдашней пропаганды. А вот Брежневу "не повезло", в советское время ему достался только бюст на его могиле у Кремлёвской стены. Памятник Брежневу я впервые увидел в Новороссийске.
Скульптура без пафоса, на Брежневе даже нет наград, генсек изображен обычным человеком.
Показать полностью...
+2
4

Прогулка по Новороссийску в мае: часть 2

15 дн. назад
Первая часть:
https://famabara.com/posts/254

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

Прогулка по Новороссийску в мае: часть 1

16 дн. назад
На майские сгоняли в Новороссийск, посмотреть на море, да в кафешках вкусно пообедать.

В центре отремонтировали парк имени Фрунзе, сделали его классным и современным.
На набережной уже много народа.
Показать полностью...
+2
11

Дикция Брежнева - мямлил ли генсек?

22 дн. назад
Во всех пародиях на Брежнева генсек всегда изображается со своеобразной манерой речи. В эпоху застоя были шутки вроде:
- Что такое "сиськи-масиськи"?
- Это "систематически".
- А что такое "сосиськи сраные"?
- Социалистические страны.

Но было ли так на самом деле? Давайте посмотрим на реальные записи. Вот запись из XXV съезда КПСС, это 1976 год:
Дикция Брежнева, действительно, не очень.
Можно послушать Брежнева на XXVI съезде КПСС, это 1981 год, на 5 лет позже:
Показать полностью...
+3
10

Музей в Новороссийске на Советов, 58 - фотоотчёт

25 дн. назад
Посетил Новороссийский государственный исторический музей-заповедник на улице Советов, д.58. Музей средней интересности, но для небольшого города вполне ничего.

Работник музея сказала, что у них самая старая ложка в России:
Удивил сосуд с тремя горлами. Зачем это было нужно?
Показать полностью...
+2
10

В Новороссийске стоит сильный гул от порта

недавно
На майских праздниках съездил в Новороссийск погулять, город посмотреть.
Показать полностью...
+2
15

Викторина про советское кино (часть 1)

недавно
Москва слезам не верит.
Со взглядом каких людей Гоша сравнил взгляд незамужней женщины?
Показать полностью...
+3
19

Saint-Eustache is one of the most beautiful cathedrals in Paris

недавно
Paris is home to many magnificent cathedrals, but most are teeming with tourists. However, there is one cathedral in the heart of the city where visitors are few and you can wander freely, taking in the stunning architecture outside and the divine beauty within.

This is the Church of Saint-Eustache.
Just look at these magnificent Gothic flying buttresses.
Показать полностью...
+1
5

Желтое манго

недавно
Т.к. недавно полюбил обычное спелое манго, решил попробовать другой сорт - желтое манго.
Почистил, внутри, всё то же самое.
Показать полностью...
+1
4

Тётки оборвали всю сирень

недавно
Весна, апрель, у нас цветёт сирень. Только красоту портит тот факт, что от цветов на кусте почти ничего не осталось. Женщины оборвали сирень везде, где могли достать. Причём обрывали не только возрастные тётки, но и вполне молодые девушки.
Показать полностью...
+2
9

Игра в кальмара, 2-й сезон - отзыв

недавно
Посмотрел второй сезон Игры в кальмара, понравился.
Второй сезон г немного короче, чем первый. Мало того, авторы негодяйски оборвали сюжет, оставив прямой задел на третий сезон. Тьфу на Netflix за это, сделано это только ради денег.
Показать полностью...
+1
11

Хитрость spread-синтаксиса в JS

недавно
А вы знали, что теоретически spread-синтаксис в JS можно применять почти к любому типу.
Вот пример "обычного" использования:
// Массив спредится
console.log([...[1, 2, 3]]); // [1, 2, 3]
// Строка спредится
console.log([...'Famabara']); // ['F', 'a', 'm', 'a', 'b', 'a', 'r', 'a'] 
Но если попытаться заспредить number, то будет ошибка:
console.log([...555]); // Uncaught TypeError: 555 is not iterable
Не является iterable.
Так давайте сделаем iterable!
Number.prototype[Symbol.iterator] = function * () {
  yield 'Фамабара';
  yield 'лучше';
  yield 'всех';
}

console.log([...555]); // ['Фамабара', 'лучше', 'всех']
Мы успешно заспредили number! Толку от этого никакого, на сам факт забавен.
Можно джунов за собесах мучить :)
+4
49

Пасха и Песах

недавно
В России скоро будет Пасха - в 2025 году она будет 20 апреля. Кстати, в этом году православная Пасха будет совпадать с католической Пасхой.

По работе я сталкиваюсь с израильтянами, а у них скоро будет Песах, который они будут праздновать 7 дней с 12 по 19 апреля. Названия очень похожи - "Пасха" и "Песах", да и религии очень близкие. Стало интересно, родственны ли эти слова.

Что такое Пасха? Это годовщина празднования воскрешения Иисуса Христа. Но это в христианстве, а в иудаизме нет "классического" Иисуса Христа. Тогда что такое Песах? Это ежегодный праздник в память об исходе евреев из Египта под предводительством Моисея. Получается, совсем другой праздник!

Два религиозных праздника, звучат очень похоже, празднуются почти в одно и то же время, но совсем разный смысл. Слово "пасха" происходит от древнегреческого слова "πάσχα", которое в свою очередь происходит от древнееврейского слова "פסח". Слово "פסח" (на иврите справа налево буквы "п", "с", "х") буквально переводится как "прохождение мимо". Бог прошёл мимо еврейских домов, уничтожая первенцев Египта.

Т.е. получается, что слово "пасха" этимологически имеет отношение к слову "песах", но Пасха и Песах - это теперь разные праздники.
+2
25

Firefox не чинит баг уже 13 лет

недавно
На Famabara появилась возможность перетаскивать мышкой части формы поста, если лень сортировать кнопками вверх/вниз. И, оказалось, что эта функция не работает в Firefox.
Багу 13 лет!!! Вы когда-нибудь видели, чтобы у популярного продукта не чинили баг столько времени? Пожалуйста:
https://bugzilla.mozilla.org/show_bug.cgi?id=739071

Если у предка стоит атрибут draggable="true", то клик мышкой по <textarea >или по <input type="text"> не позволит сфокусировать нормально в нужном месте текста. Мигающий промт возникнет или в начале текста или в том месте, где уже был до блюра.

<div draggable="true">
  <input value="Кликните в середину текста" type="text" />
</div>

Ну это совсем позорище! Багу поставили Priority: P3 и Severity: S3 (типа неважные вещи), а все дублирующие баг-репорты закрывают уже в течение 13 лет.

Есть одно решение, найденное в схожем багрепорте FF, но для contenteditable="true" - надо зажать Alt и кликнуть. Удобно, да? :)
+2
41