TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим
Мегапосты:
Хабрахабр
  • Публикации
  • Пользователи
  • Хабы
  • Компании
  • Песочница
Войти Регистрация
52,0
Карма
0,0
Рейтинг
38
Подписчики
ivan386
Программист-фрилансер
Профиль Публикации 25 Комментарии 804 Закладки 62
  • Полезные фичи VPN
    51
    ivan386 17.04.18 в 13:55
    0

    Совсем не проблема: https://reestr.rublacklist.net/article/api

  • Онлайн статистика в Telegram
    8
    ivan386 14.04.18 в 07:40
    0

    Решена проблема того что не надо слать команду для получения статистики и соответсвенно ждать её получения. И бот при этом не спамит сообщениями.


    Если бот будет без команды слать её постоянно новыми сообщениями то будут сыпаться уведомления о новых сообщениях от бота. Чат будет забит кучей сообщений от бота и их скорей всего ещё и листать прийдётся до последнего.

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 09.04.18 в 22:36
    0

    Чтоб никто левый сообщеньки от чюжого имени неотправлял. Можно как в торе. Какой ключик себе намайнил такое и имя.

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 08.04.18 в 09:35
    0

    А без p2p в таких условиях получится что ничего не грузит.

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 08.04.18 в 09:30
    0

    Если вы торрент взяли не с локального трекера провайдера то логично. Хотите узнать что качают соседи?
    Конец халяве: I Know What You Download

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 08.04.18 в 09:09
    0

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

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 07.04.18 в 12:41
    0

    Проблема анонса большого количества файлов решается фильтром Блума.

  • Мессенджеры, пора делать следующий шаг
    224
    ivan386 07.04.18 в 12:31
    0

    Итернет можно дополнить mesh сетью для расширения его доступности туда куда сигналы вышек и wifi не дотягиваются. Так же добавить p2p cdn(межпланетная файловая система например) для доставки контента в отрезанные от прямого доступа в интернет либо с нестабильной связью и маленькой скоростью участки.


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

  • Когда IP-адресов будет хватать всем?
    122
    ivan386 06.04.18 в 22:19
    0

    Если префикс не меняется то нужно просто отключить получение временных ipv6.


    netsh interface ipv6 set global randomizeidentifiers=disabled
    netsh interface ipv6 set privacy state=disabled
  • Битва за сетевой нейтралитет: война штатов
    24
    ivan386 01.04.18 в 10:04
    0

    А если все провайдеры начнут ограничивать доступ к определённым сервисам? Куда идти? Тем более провайдеры не существуют автономно. Угадайте какой российский монополист предоставляет каналы мелким провайдерам.

  • Новая жизнь для XMPP. Делаем мессенджер, который не получится заблокировать
    54
    ivan386 26.03.18 в 21:13
    +1

    В GnuPG можно шифровать текст открытым ключём собеседника и отправить любым способом.

  • Битва за сетевой нейтралитет: война штатов
    24
    ivan386 26.03.18 в 20:01
    0

    Если бы у них была безлимитная еда то это бы имело смысл.

  • Новая жизнь для XMPP. Делаем мессенджер, который не получится заблокировать
    54
    ivan386 25.03.18 в 19:50
    0

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

  • Битва за сетевой нейтралитет: война штатов
    24
    ivan386 25.03.18 в 19:25
    +1

    А ещё они взымают отдельную плату за доступ к некоторым сервисам в интернете: "Wap-Click: простой вариант поиметь (денег с) абонента"

  • Научный подход к выбору иллюстрации к посту на Хабре
    12
    ivan386 15.03.18 в 18:03
    0

    Ну может автор хотел по тихому опубликовать статью. Чтоб она была не сильно заметна нм фоне остальных.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 15.03.18 в 15:30
    0

    Оказывается Git давно использует свой вариант compact varint. Добавил к статье послесловие в котором разобрал различия алгоритмов.

  • Изучаем параллельные вычисления с OpenMPI и суперкомпьютером на примере взлома соседского WiFi
    4
    ivan386 14.03.18 в 10:57
    0

    Всегда находится исходный пароль а не коллизия? Или при достаточно длинном пароле будет много коллизий и для новой авторизации они не подойдут?

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 13.03.18 в 18:04
    0

    Я поэкспериментировал и сделал свой SVG секундомер в котором анимация включается каждую секунду на 0.001 секунды.
    image
    image

  • Аналоговые часы, CSS и ничего больше
    17
    ivan386 13.03.18 в 00:02
    +2

    Очень странно что не смотря на то что картинка очевидно меняется хром и firefox не подсвечивают перерисованную область. Но график fps в хроме при этом активно двигается показывая постоянную перерисовку.


    В недавней статье "Этот SVG всегда показывает сегодняшнюю дату" в комментариях разместили часы в SVG. Они работают как секундомер на странице.


    Анимация в SVG работает даже если вставить его в тег IMG. Но тогда начинает перерисовываться полностью всё изображение. И этот секундомер не хило нагружает процессор.


    Я поэкспериментировал и сделал свой SVG секундомер в котором анимация включается каждую секунду на 0.001 секунды.
    image


    Думаю fps при этом маленький не потому что нагрузка большая а потому что рисовать нечего. Каждую секунду рисуется новый пик и график останавливается до следующего шага(если не включена подсветка прорисованной области).


    Если включить подсветку прорисованной области то можно увидеть что картинка обновляется раз в секунду.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 11.03.18 в 13:55
    0

    Да. Она определяет начальное значение контейнера.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 10.03.18 в 21:39
    0

    В статье используется код из оригинального golang/protobuf с мелкими но важными изменениями. Оба варианта(мой и оригинальный) используют минимально возможное для алгоритма количество байт для записи числа.


    В оригинальном varint проблема не только для нуля. Любое число можно записать используя большее количество байт чем для него необходимо.


    Это можно сделать намерянно. Тогда при перегоне из протобуфера в протобуфер потеряется хвост и хеш данных изменится. Может вскроются другие уязвимости которые возникнут из за этой разницы.

  • Облако.Mail.Ru + EncFS без локального хранения файлов
    55
    ivan386 10.03.18 в 20:37
    0

    Либо хеш совсем простой. Либо это специальное значение для файла нулевого размера.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 10.03.18 в 20:17
    0

    Вот пример:


    Здесь спрятан квадрат который грузит процессор

    image


    Этот квадрат не делает ничего кроме того что жрёт процессорное время.


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


    Как включить этот режим

    В Firefox есть кнопка "Подсветить прорисованную область" в панели инструментов консоли. Её надо добавить в "Настройки инструментов" -> "Дополнительные кнопки инструментов" -> "Подсветить прорисованную область".
    В хроме аналог флажок "Enable paint flashing" на вкладке Rendering в консоли.
    Только осторожно с этим. Зрелище не для эпилептиков. В хроме это нежнее реализовано.


    Как он это делает?


    <animateTransform fill="freeze" repeatCount="indefinite" attributeName="transform" by="0" calcMode="discrete" dur="1000000000000000000000000000000h" type="rotate"/>

    Разберём по полочкам:


    1. calcMode="discrete" — выполнить без переходов.
      В этом режиме отключается переход и анимация в определённый момент выполняется мгновенно меняя одно значение на другое.
    2. dur="1000000000000000000000000000000h" — это время анимации.
      Дофига часов которое анимация будет работать. Точнее просто жрать процессор ничего не меняя в картинке. В режиме discrete через половину этого времени должна быть мгновенно изменено значение.
    3. type="rotate" — это анимация должна повернуть фигуру
    4. by="0" — на 0 градусов.
      То есть опять ничего не изменится даже в тот момент когда должно поменяться значение.

    Для лучшего понимания как работает режим discrete:


    Другой квадрат который грузит процессор

    image


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


    Его анимация:


    <animateTransform fill="freeze" repeatCount="indefinite" attributeName="transform" by="45" calcMode="discrete" dur="5s" type="rotate"/>

    1. repeatCount="indefinite" — повторять бесконечно
    2. dur="5s" — длительность анимации 5 секунд
    3. calcMode="discrete" — выполнить смену значения мгновенно без переходов
    4. type="rotate" — повернуть
    5. by="45" — на 45 градусов

    И никаких скриптов и майнеров не надо.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 10.03.18 в 19:03
    0

    Я алгоритмом это сделал.

  • Облако.Mail.Ru + EncFS без локального хранения файлов
    55
    ivan386 10.03.18 в 18:59
    0

    Туда файл нулевого размера залить можно? Если да то какой у него хеш будет?

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 10.03.18 в 15:48
    0

    Дополнил код для вычисления разницы. Результаты под спойлером ниже.


    Вычисляется объем необходимый для записи всех значений до заданного и выводится статистика разницы между старым и новым вариантом.


    Экономим от 0.38% (128 B) на маленьких числах до 0.09% (520 TB) на больших. На 9 байтах результат 0.7% но не уверен что это правильно.


    Если где ошибся подскажите.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 10.03.18 в 09:25
    0

    Определённый хеш от числа.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 09.03.18 в 22:52
    0

    Идея не только в экономии байт но и большей жёсткости формата. 1 значение = определённый набору байт без вариантов.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 09.03.18 в 22:40
    0

    Даже если взять ваш 0.1% и примерить к 100ГБ данных то получаем 100МБ экономии по простому. И это при условии что постояно используются огромные числа которые нельзя записать меньшим количеством байт.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 09.03.18 в 21:48
    0

    Так я вроде не сильно усложнил исходя из изменений кода. Может просто коряво объяснил?
    Покажите в каком месте я считаю криво а то я вас плохо понимаю.


    В 8 байтах мы экономим 1 из 9 байт (11%) на диапазоне значений от 72057594037927936 до 72624976668147839 ( 0.7% но 567 382 630 219 904 зничений) по сравнению с оригинальным varint. И это без учета экономии на других диапазонах.
    В первых 2х байтах мы экономим 1 байт из 3 (33%) на диапазоне значений от 16384 до 16511 (те же 0.7% но всего 128 значений) по сравнению с оригинальным varint.

  • Compact varint — уникальность и большие значения за ту же стоимость
    18
    ivan386 09.03.18 в 20:51
    0

    Я и не думаю что надо менять оригинальный varint на compact varint по умолчанию. Если его таки захотят принять то отельными дополнительными функциями. Тогда для compact varint будут новые обозначения в протобуфере (например: uint64c, int64c). По сути запись такая же как и у varint только значение получаем чуть чуть по другому. Старшие биты теперь указывают не только размер контейнера но и его начальное значение.


    И экономия в процентах маленькая а в числах огромная. 1 из 9 это больше 10 процентов.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 09.03.18 в 20:19
    0

    Вот об этом и речь.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 09.03.18 в 19:41
    0

    В оригинальном svg или встроеном через тег img?

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 09.03.18 в 19:20
    0

    В Firefox есть кнопка "Подсветить прорисованную область" в панели иструментов консоли. Её надо добавить в "Настройки инструментов" -> "Дополнительные кнопки инструментов" -> "Подсветить прорисованную область".
    В хроме аналог флажок "Enable paint flashing" на вкладке Rendering в консоли.
    Только осторожно с этим. Зрелище не для эпилептиков. В хроме это нежнее реализовано.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 09.03.18 в 19:05
    0

    Это да. Но когда они встроены через тег img а в этом случае картинка перересовывается полностью постоянно. Даже шаговая анимация в одну минуту (<animateTransform calcMode="discrete" dur="1min" type="rotate" fill="freeze" by="6" />) перерисовывается несколько раз в секунду хотя в этом нет необходимости.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 08.03.18 в 11:07
    0

    Это анимация жрёт. Её коряво реализовали в браузере. Даже если в картинке ничего не меняется она перерисовывается полностью.

  • Правильная работа с закладками: как работать эффективнее и запоминать больше
    65
    ivan386 07.03.18 в 12:36
    0

    Можно даже по умолчанию всем закладкам прописать первый вариант и даже если страницы нет в архиве то он предложит сохранить.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 07.03.18 в 12:31
    0

    С чего вдруг? В img скрипты не работают. Они работают только если svg встроен напрямую в html или открыт в отдельном окне.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 06.03.18 в 20:51
    0

    Видмо имеется ввиду если его встроить напрямую в страницу на не тегом img.

  • Этот SVG всегда показывает сегодняшнюю дату
    57
    ivan386 06.03.18 в 15:53
    +2

    Ну хоть секундомер в картинке работает.

  • ← сюда
  • туда →
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
Информация
  • В рейтинге 2857–й
  • Сайт ivan386.github.io
  • Активность 18.04.2018 в 19:14
  • Зарегистрирован 24 июня 2011
Вклад в хабы
  • Децентрализованные сети 227,0
  • JavaScript 56,0
  • Разработка веб-сайтов 33,0
  • Программирование 30,0
  • Google Chrome 30,0
  • Lua 12,0
  • Go 11,0

Аккаунт

  • Войти
  • Регистрация

Разделы

  • Публикации
  • Хабы
  • Компании
  • Пользователи
  • Песочница

Информация

  • Правила
  • Помощь
  • Документация
  • Соглашение
  • Конфиденциальность

Услуги

  • Реклама
  • Тарифы
  • Контент
  • Семинары

Приложения

© 2006 – 2018 «TM»
О сайте
Служба поддержки
Мобильная версия