Pull to refresh
15
Альберт Базалеев@supercat1337

User

0,1
Rating
1
Subscribers
Send message

Возможно с jQuery сайт весил бы меньше даже.

Вообще, странно кидать сео-контент в тень веб-компонентов. Если приспичило использовать именно веб-компоненты, можно использовать слоты, и будет у вас простой light dom, который будут парсить роботы.

Что касается ИИ, пишем ai docs на свой вкус, и нет проблем.

Насчёт изоляции снизу вверх, видимо имелось в виду определение нижней границы, когда применение стилей должно остановиться. Тень применяется точечно, при этом дырки задаются слотами. Для light dom смотрим актуальное с прошлого года css rule scope.

А по платежам очень верно сказано. Sandbox от айфрейма решает.

Бандл мола реально мегабайт весит?

Ну, так-то можно отрендерить те же веб-компоненты на весь экран и по скроллу менять textContent. Но это другой бенчмарк будет.

Потому что некоторые пакеты могут требовать компиляции их отдельных компонентов под конкретную ОС.

Не знаю почему вас удивил низкоуровневый код на js. Это база.

Реактивность может быть реализована с помощью внешних библиотек, например, mobx.

Код под спойлером
const { observable, autorun, action } = mobx;

class ReactiveCounter extends HTMLElement {
    constructor() {
        super();
        // Создаём наблюдаемое состояние
        this.state = observable({
            count: 0,
        });

        this.attachShadow({ mode: 'open' });
        this.shadowRoot.innerHTML = `
      <div>
          <button id="decr">−</button>
          <span class="value" id="display">0</span>
          <button id="incr">+</button>
      </div>`;

        this.displaySpan = this.shadowRoot.getElementById('display');
        this.incrBtn = this.shadowRoot.getElementById('incr');
        this.decrBtn = this.shadowRoot.getElementById('decr');

        this.increment = action(() => {
            this.state.count++;
        });

        this.decrement = action(() => {
            this.state.count--;
        });

        this.incrBtn.addEventListener('click', this.increment);
        this.decrBtn.addEventListener('click', this.decrement);

        // Настраиваем реакцию: при изменении state.count обновляем текст
        this.disposeAutorun = autorun(() => {
            this.displaySpan.textContent = this.state.count;
        });
    }

    // При удалении компонента из DOM отписываемся от реакций
    disconnectedCallback() {
        if (this.disposeAutorun) {
            this.disposeAutorun();
        }
        this.incrBtn.removeEventListener('click', this.increment);
        this.decrBtn.removeEventListener('click', this.decrement);
    }
}

// Регистрируем кастомный элемент
customElements.define('reactive-counter', ReactiveCounter);

Спасибо за публикацию! Полезно.

Добавлю.

Например, в такой наивной реализации свойства могут быть только строковыми.

Строковые, потому что вы setAttribute используете, что необязательно. А так, у классов веб-компонент возможности такие же, как и у обычных js-классов. Вот пример когда свойство - объект. Специально добавил connectedCallback, чтобы отобразить его в виде текстовой ноды.

      class MyFoo extends HTMLElement {
        connectedCallback() {
          this.textContent = this.bar.foo;
        }
        bar = { foo: 1337 };
      }

      globalThis.customElements.define("my-foo", MyFoo);
      const element = new MyFoo();
      console.log(element.bar.foo);
      // 1337


Бекапы потом локально хранятся или тоже отправляются в разные облака?

Целый ИИ нужен, чтобы понять, что архив бэкапов затирается.

Таких менеджеров паролей нет что ли?

Абсолютно согласен. Конфиденциальность как-то не бьётся с реалтаймовым p2p и отсутствием верификации (читай как риск mim).

Вообще, было бы интересно почитать о безопасности stun и turn серверов. Без них никакого p2p нет.

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

Взять любой канал в телеге, если это не юмор, не новости, то читаешь узкоспециализированную инфу. Рано или поздно наступает перенасыщение. И канал автора становится неинтересен. Аналог ленты в телеге - это папки, которые состоят из тех каналов, которые пробились через информационный шум. И в этой папке-ленте нет места для новых рандомных каналов, я о них никогда не узнаю. Да и папка с подборкой каналов также с течением времени становится неинтересной. Не хватает рекомендаций рандомного канала.

Пиринговый webrtc существенно помогает в решении проблемы нехватки ресурсов.

Прикольно. Нейронка локальная или расшифровка через облако? В опенсорсе есть она? Интересно было бы посмотреть ее.

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

В Яндекс.Такси можно было бы завести семейные учётные записи, чтобы получать информацию об истории передвижения связанных аккаунтов. С возможностью не делиться информацией по конкретным поездкам.

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

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

Все круто! Спасибо, что делитесь. Нет ли проблемы рассинхрона видео и аудио потоков?

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

Сейчас, на всякий, рассматриваем KPHP (разработка VK) - он позволяет компилировать php-код в бинарник.

1
23 ...

Information

Rating
4,067-th
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity

Specialization

Фронтенд разработчик, Фулстек разработчик
JavaScript
HTML
CSS
Node.js
PHP
Базы данных