• Программный генератор статистически безупречных случайных чисел
    0
    это называется deterministic random bit generator :) весь вопрос в размере внутреннего состояния, обратимости функции и возможности предсказать следующие значения по истории (потому внутреннее состояние должно быть относительно большим). в криптографически стойких обычно использует функцию типа вычисления хеша (SHA256 итп), которая сложно обратима. полностью случайные только аппаратные генераторы, где используются физические процессы.
  • Программный генератор статистически безупречных случайных чисел
    +1
    попробуйте проверить статистику с помощью webhome.phy.duke.edu/~rgb/General/dieharder.php — стандартный набор тестов для проверки качества генераторов. Есть стандартные генераторы типа HMAC_DRBG, но они довольно ресурсоемкие, есть типа xoroshiro (http://prng.di.unimi.it/) — весьма неплохие.
    Без результатов тестов утверждения о качестве не очень обоснованы. Кроме того для «легких» тестов генераторов можно использовать Adaptive Proportion Test и Repetitive Count Test, хотя последний больше на аппаратные генераторы ориентирован. Они описаны в nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90B.pdf 4.4.1 и 4.4.2.
  • Перевод числа в строку с помощью FPU
    +1
    можно и в исходниках разные реализации найти для удобства. различных аппроксимаций для функций много. www.netlib.org/fdlibm например. Есть и библиотеки с поддержкой векторов — скажем синус 4-х аргументов за раз (Intel SVML и др). можно попробовать в таком стиле реализовать перевод чисел в строку — сразу 2-4 за проход.
  • Перевод числа в строку с помощью FPU
    0
    мне интересно не растёт ли погрешность при вычислении степени десятки через логарифм — для чисел меньше 1 надо домножить на положительные степени 10, многие из которых представимы точно и вычисление их через логарифм скорее всего будет неточным. но с другой стороны у FPU 80-бит точность, так что может и не существенно. Но я бы сравнил по этому показателю и разобрался бы откуда отклонения возникают, если они есть. FBSTP — вероятно даёт самое большое сокращение кода — мне эта команда всегда нравилась, и жаль что её нет в SSE наборе :)
    вообще при изменении типа округления на FPU его хорошо бы восстановить к предыдущему значению, так как другие вычисления могут бы чувствительны.
    И финальный код с делениями на 10 — для ускорения можно делить на 100 и брать 2 символа из таблицы, но я не думаю, что это место критично по производительности. Еще можно задействовать AAM/AAD вместо DIV на константу, но я не уверен, что они остались в 64-битном режиме.
  • Перевод числа в строку с помощью FPU
    +4
    интересный подход, понравилось удаление периодических 9-ок в конце, но есть нюанс — в 64-битном режиме на x86 используется SSE+ для арифметики с плавающей точкой. В принципе и в 32-битном режиме тоже можно использовать SSE. Все использованные инструкции в коде имеют аналоги в SSE (FBSTP, увы нет) и позволяют напрямую адресовать регистры, вместо стека. FXTRACT можно в целочисленных регистрах сделать, и вместо пошагового умножения/деления на 10 сделать «пристрелку» по степени 2 — умножить на константу log10 (2), получить степень 10ки, возвести 10 в эту степень по таблице или быстрым способом и скорректировать число. деления вообще заметно медленнее, вместо деления на 10 быстрее умножать на 1/10, но теряется точность.
  • Программистское везение
    0
    у меня 2 гипотезы:
    1) эта запись вызывала задержку на шине, которая для чего то была необходима — проверка — записать в какой-то другой порт.
    2) это мало документированная фича для работы с адресами выше 16МБ, где адрес 24-бита уже недостаточно.
    docs.freebsd.org/doc/3.4-RELEASE/usr/share/doc/handbook/dma.html
    A new implementation of the 8237, called the 82374, allows 16 bits of page register to be specified, allows access to the entire 32 bit address space, without the use of bounce buffers.
  • Предлагаю подумать: как технологии могут помочь бороться с пропагандой в СМИ?
    +1
    хорошие идеи. для себя — я обычно читаю а не смотрю, и читаю новости из разных стран, чтобы разные точки зрения видеть. Есть стартапы вроде www.thefactual.com которые пытаются автоматизировать этот процесс, удалять эмоциональную оценку, оставляя факты, предлагая разные интерпретации их.
  • Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса
    0
    Например embedded платформы разных видов с 128-256KB RAM, 256K-1MB Flash, 25-100МГц, но надо криптографию реализовать с приемлемой скоростью — профилирование очень затруднительно, разве что в симуляции или виртуальной машине.
    alignas — относительно свежее (по моим меркам %) нововведение, раньше надо было либо вручную выравнивать, либо нестандартные расширения использовать.
    Абсолютно согласен, что для большинства обычных приложений нет смысла всем этим заниматься. Кроме тех случаев, когда без этого никак :) Скажем, обработка сетевых пакетов 40Gbit, при 64х байтных пакетах времени на классификацию — порядка 12 нс, да можно разбить на несколько ядер… но доступ к памяти — 100+нс, и без оптимизации под кеш не обойтись. И там либо ты успеваешь все обработать, либо будут потери пакетов. Но там на С++ мало кто пишет — обычно чистый С внизу или что-то типа С+ с очень выборочным набором используемых средств. Даже чередование банков памяти (interleaving) при выделении буферов начинает играть роль, не говоря уже про performance counters для анализа непредсказанных переходов, кеш-промахов, загрузку исполнительных блоков процессора, итп — приходится изучать не только где тормозит, но еще и почему.
  • Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса
    0
    likely задаёт ожидаемый путь исполнения, что тоже полезно. __builtin_expect() задает ожидаемое значение выражения для количества итераций, что влияет на решения по оптимизации. в принципе это можно получить в процессе профилировки, если есть такая возможность на целевой платформе. мы говорим о разных вещах тем не менее — я про то как выжать максимум из компилятора, а вы про то как в С++ это правильно написать.
    #pragma GCC unroll, iv_dep, aligned, optimize, итп — расширения компилятора и в стандарте С++ отсутствуют, но бывают полезны когда надо выжать максимум.
    while, do в C++ никто не отменял, да и goto в общем-то тоже. да, некрасиво, зато позволяет обойти узкие места.
  • Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса
    0
    безусловно компилятор может сделать очень многое и с каждой новой версией качество оптимизаций возрастает. с gcc использование __builtin_expect() и __builtin_expect_with_probability() для указания наиболее вероятного значения по моим экспериментам давало хороший результат в коде, в ряде случаев __builtin_assume_aligned() оказывался полезным (скажем void * указатель, который на самом деле всегда выровнен при использовании функции). Но форма записи цикла, проверки граничных условий тоже сильно влияет на качество кода, причем зависит от версии к версии компилятора. По конкретный компилятор можно научится писать так, чтобы код был качественный, но если нужна поддержка нескольких компиляторов приходится идти на компромиссы или использовать ассемблер или intrinsics.
  • Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса
    –2
    по стандарту vector и array — вроде как zero-cost abstractions, которые не должны ухудшать код, а проверки должны удаляться на этапе компиляции, выносится из цикла по возможности, но как их наличие сказывается на оптимизации — вопрос весьма интересный. В Gnu libstdc++ их вроде как нет — только косвенное обращение, в libstdcxx они как asserts github.com/llvm-mirror/libcxx/blob/master/include/vector#L1546. Но даже само наличие косвенных обращений влияет на возможности оптимизации — компилятор должен вынести их из цикла, количество проходов ограничено, итп.
  • Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса
    –3
    оптимизация доступа в память, блочная обработка — это одно из первых действий. загрузка кеш-линиями, блоки под размер кешей. при использовании нескольких потоков — cache sharing, в том числе false sharing (доступ к разным частям одной кеш-линии). я обычно сразу смотрю в ассемблерный код, чтобы понять что и как и очень подозрительно отношусь к использованию vector и прочих STL в коде, где нужна производительность — проверки диапазона индексов, выделения памяти — всё дает накладные расходы, ограничивает оптимизации, часто до С-стиля спускаюсь. Если целевая машина понятна, то можно сразу писать с расчетом на векторизацию и доступный набор инструкций, использование intrinsic со своеобразными инструкциями, которые компилятор маловероятно что применит (но шанс дать надо). Я еще компилирую вычислительное ядро gcc, clang и что есть под рукой (godbolt в помощь), чтобы быстро проверить потенциал автоматической компиляции, взять от компилятора удачные элементы и помочь где надо ручками. У Intel раньше много материалов было на тему подходов к оптимизации, сейчас с разгона мало что могу найти — software.intel.com/content/www/us/en/develop/articles/intel-parallel-computing-centers-training.html, software.intel.com/content/www/us/en/develop/videos/optimization-for-intel-parallel-architectures.html
  • Полное руководство по сезонной депрессии (SAD). 7 видов светотерапии
    0
    Я экспериментировал с лампами OSRAM BIOLUX — они дают спектр близкий к солнечному с примесью ближнего УФ и позиционируются как лампы, которые дают естественный для животных свет. Ну я подумал, а чем я хуже и попробовал :) Собрал светильник из 8 х 18Вт ламп (в обычный квадратный поставил в 2 раза больше ламп) и поставил в ванную — супруга сказала, что свет шикарный. Сейчас не уверен, можно ли найти эти лампы в продаже. В 2013 я заказывал их с доставкой из Германии, и до сих пор запас еще есть небольшой. Они относительно недорогие были — около 200р за лампу, но по 20шт в упаковке.
  • Расчет факторов в антифроде. Доклад Яндекса
    0

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

  • Комментарий из публикации, перенесённой в черновики.
  • Детектирование и локализация произвольного текста на изображениях, полученных с помощью фотокамер мобильных телефонов
    0
    В свое время я делал штуку для выделения текста (номера автомобиля) и применил построчно для этого прямое и обратное БПФ — после прямого отбрасывал в результате те гармоники, которые относятся к очень низким и очень высоким частотам и делал обратное преобразование. после этого применял нечто, что называл «инерциальный» фильтр — по сути суммировал вдоль строки яркости бегущим окном и если значение было больше порога, то отмечал точку. В результате получал размеченные зоны, где был некоторый ритм, характерный для текста. Это еще в 97-98гг было, работало почти в реальном времени на i486, правда с камеры было невысокое разрешение. БПФ помню еще Watcom C компилировал, а потом руками дооптимизировал, sin & cos по таблице итп.
  • Линус Торвальдс предлагает 2560х1600 как новый стандарт для ноутбуков
    0
    с самими шрифтами проблем никаких — масштабируются отлично. но кроме растровых картинок есть еще другие элементы интерфейса, где размеры задаются в абсолютных пикселях, и при изменении DPI текст перестает вмещаться. Этим грешат и Дельфи и разные UI библиотеки, и некоторые особо талантливые разработчики независимо от средств разработки) Даже Start-menu, taskbar не очень хорошо себя ведут. Да и темы оформления, когда размеры шрифта для одного элемента управления приложения используют для других, в результате получается, что все работает только при стандартных настройках. ОС может ввести режим совместимости, когда приложению будут указываться «стандартные» 96 DPI, а изображения, размеры элементов — пропорционально увеличиваться. шаг к этому уже сделан в виде опции совместимости «disable high DPI scaling», но она не решает проблему маленьких шрифтов.
  • Линус Торвальдс предлагает 2560х1600 как новый стандарт для ноутбуков
    +4
    эта байка, которую поддерживает толпа не очень опытных пользователей и продавцов в магазинов. Мелко. Все что нужно сделать для избавления от этого — сделать чтобы Windows 8 автоматически настраивала размер шрифтов в зависимости от размера экрана и разрешения (DPI) и обеспечило корректную работу собственных приложений с различным DPI, разработчики приложений разрабатывали соответственно в соответствии с правилами.
    В WIndows 8 для десктоп-приложений, по-прежнему есть проблема с масштабированием шрифтов — большинство приложений съезжает. Может быть разработчикам в Microsoft как-то помочь, раз сами не справляются? :)

    А я, так полностью согласен с Линусом — для профессиональной работы, разработки итп — высокое разрешение является большим плюсом. Бьюсь с дистрибьюторами, чтобы ввозили и «правильные» конфигурации (благо большинство вендоров имеют в ассортименте панели высокого разрешения), но проблема идет от ритейла и извращенного понимания потребностей пользователей. Ну и цена, конечно выше, и под концепцию «дайте мне розовый ноутбук 13» за 20т.р. на полку" не подходит.
  • Машинный перевод и автоматический словарь в Яндексе
    0
    это похоже на недостатки статистического перевода) в моем случае, в «сводках ООН :)» вероятно фигурировала фраза «no action is required', которая корректно переводится как „никаких действий не требуется“. Но при этом частица „не“ ассоциирована в таком словосочетании с „никаких“, а остаток фразы соответственно неправильно. есть гипотеза, что такая проблема будет со многими фразами, которые на русский переводятся с двойным отрицанием.
    А вот пример how much is the fish — очень странный. how much is the bread — нормально переводиться как „сколько стоит хлеб“, было бы логично, чтобы и все замены существительного правильно переводились. Я надеюсь Яндекс прояснит в чем тут дело. Пока видно, что структура предложения никак не анализируется.
  • Машинный перевод и автоматический словарь в Яндексе
    +4
    иногда странно как то переводит — видимо структура предложения вообще на анализируется. пример: перевод 'action required' ->'необходимые действия', а 'action is required' ->'действий не требуется'. Откуда взялось 'не' остается только гадать. Возможно тексты ООН некорректно переведены были, отсюда и проблемы :) Кстати, Google Translate тоже страдает этой болезнью на этом примере.
  • Про Intel vPro или как удалённо зайти в чужой BIOS
    +1
    технологий SOL/IDE-R (Serial over LAN + IDE-Redirection) работают так, что SOL создает виртуальный последовательный порт, и в таблице ACPI при загрузке ставит бит, что перенаправление активно. Обычно консольная ОС подхыватывает это и перенаправляет текстовой ввод/вывод туда. Но не всегда. Иногда это приходиться делать явно. Во всяком случае, при загрузке Windows можно просто перенаправить поток на соответствующий COM-порт, '<>COM3:'. С технологией IDE-R ситуация похожая — создается виртуальное IDE устройство со своими PCI Device ID. Идентификаторы этого порта поддерживаются только в новых версиях ядра (не помню когда точно, где-то в 2.6.35+ добавили патч из openamt.org для этого). Соответственно, старые ядра Линукса просто не идентифицируют виртуальный DVD, как собственное загрузочное устройство и пишут, что не могут примонтировать корень. Должно решаться новым ядром, хотя сам не пробовал.
  • Про Intel vPro или как удалённо зайти в чужой BIOS
    +3
    Отличие именно в том, что IPMI — серверная технология, имеющая долгую историю, и построенная на базе SNMP. Обычно реализуется посредством дополнительного чипа, который стоит дороже, чем поддержка AMT, обычно требует отдельного сетевого ввода. AMT предназначается в большой степени для корпоративных компьютеров, где важно централизованное управление и специфический функционал. То что их объединяет, это функционал удаленного управления питанием, перенаправление консоли/экрана, и удаленная загрузка. А дальше идут отличия — поддержка эвристического обнаружения сетевой активности ботнетов и сканирования сети, agent presence — контроль работы, например, антивирусных приложений, механизмы конфигурации, большая безопасность за счет поддержки HTTPS, mutual TLS для аутенфикации (серверы то обычно управляющий интерфейс в открытую сеть не выдают).
  • Техническая экскурсия в дата-центр TEL
    0
    Из официального документа (http://multimedia.3m.com/mws/mediawebserver?mwsId=66666UuZjcFSLXTtlXfyn8TEEVuQEcuZgVs6EVs6E666666--&fn=prodinfo_novec1230.pdf):
    Like other halocarbon halon alternatives, Novec 1230 fluid extinguishes principally by removing heat from the 踸re. Upon discharge, Novec 1230 fluid creates a gaseous mixture with air. This agent/air mixture has a heat capacity much larger than that of air alone. A higher heat capacity means that this gas mixture will absorb more energy (heat) for each degree of temperature change it experiences. At the system design concentration, the agent/air mixture absorbs suf踸cient heat to upset the conditions required for combustion to occur. The amount of heat the 踸re loses to
    the surroundings is increased by the presence of the agent. This causes the combustion zone to cool to the point that the 踸re extinguishes. Novec 1230 fluid has the highest heat capacity of the commercially available halon alternatives resulting in the lowest extinguishing concentrations for a given fuel.
  • На конференцию по MeeGo бы
    0
    скорее ближе к www.youtube.com/watch?v=3q4gpf4zCbk, www.youtube.com/watch?v=5I9yBigBW6c и www.youtube.com/watch?v=vClr8OwANaUn — нужно искать видео с MWC 2011 (14-17 февраля). В первую очередь Intel, конечно, работает над планшетами на своих процессорах, но не исключаю и устройств на ARM.
    интерфейсы MeeGo от разных вендоров могут (и скорее всего будут, так как это конкурентные преимущества) отличаться друг от друга, но при этом сохраняя общие черты, совместимость приложений итп.
  • На конференцию по MeeGo бы
    0
    массово устройства на MeeGo появятся уже в этом году. вначале планшеты, потом (начало 2012) смартфоны. нумерация версий, конечно, предполагает что уже должно быть что-то, но это просто нумерация. в реальности основная задача сейчас — довести AppUp под MeeGo до рабочего состояния и подготовить большее количество приложений для пользователей, чтобы решать их потребности. Angry Birds под MeeGo уже на MWC показывали :)
  • На конференцию по MeeGo бы
    0
    штука в том, что разговор про устройства относится только к сборкам для разработчиков, которые публикуются на сайте meego.com. это сборки именно для разработчиков приложений, а не для пользователей. компании типа Mandriva, Novell, Windriver, Linuxcenter и др, на основе открытых сборок создают собственные с иным набором драйверов, по заказу OEMов. MeeGo не предназначена для установки пользователем с нуля, а поставляется вместе с устройством, как тот же Android или iOS. Где у iOS список поддерживаемых устройств? Их всего 5 штук… Android? каждая версия — свои устройства. так что это не показатель. а «unknown» потому что еще не ясно какие устройства будут к этому времени :)
  • Китай запрещает «незаконную передачу голоса по интернет-протоколу»
    0
    сделать клиент open-source? вряд-ли skype пойдет на это… хотя какие-то блоки можно… распространять можно по-разному… через тот-же torrent, app store разные…
  • Китай запрещает «незаконную передачу голоса по интернет-протоколу»
    0
    видимо Skype'у придётся скоро реализовать что-то аналогичное DHT в торрентах — полностью децентрализованную систему, чтобы невозможно было отличить такой трафик от чего-то другого… сейчас Skype ловится только на этапе регистрации/авторизации пользователей…
  • Определение местоположения по mac адресу роутера
    +2
    во-первых эксплойт работает только в предположении, что адрес роутера — 192.168.1.1. У многих D-link, где стоит по умолчанию 192.168.0.1. Я в своем время у себя для автодетекта прокси ставил всю домашнюю сеть в 192.168.128.1) так что на этом все и осталось.

    Потом, из-за переезда точка wi-fi по-прежнему светиться рядом со старым адресом. Судя по-всему Яндекс использует базу Альтергео для идентификации по wi-fi (или наоборот, но первое вероятнее) — определяют только по wi-fi совершенно одинаково. Попытка обучить Яндекс в краткосрочной перспективе ни к чему не привела (оставил на мобиле wi-fi и GPS, поднес к окну — при отключении GPS все равно показывает неправильное место). Altergeo обучился быстро, несколько минут, и теперь по wifi определяет правильно. отсюда и выводы) Google использует свою базу. попытка обучить пока ни к чему не привела. возможно, что они тоже используют не свою базу… может быть www.skyhookwireless.com? Или все-таки свой собственный? Интересно в каком случае они обновляют данные — когда гугл-мобиль заново просканирует или по данным из Google maps?
  • Новая жизнь WiFi адаптера Intel 5150 AGX (и ему подобных)
    0
    Попробовал на 6200ABG в ноутбуке HP (Subsystem ID 1316) — после выполнения команды ничего не произошло, код не сменился. Что означают эти команды? Прямое изменение 16 на 11 не сработало. Это некоторая секретная последовательность по разрешению записи? Есть разница между 51хх и 62хх?
  • Intel Software Partner: как разрабатывать ПО вместе с Intel?
    +2
    В общем-то задача этих утилит дать именно быстрый ответ на вопросы, без лишней детализации почему так происходит. Для деталей есть VTune. Да, можно все сделать самому, используя средства ОС. Удобство Concurrency Checker в том, что не надо самому пользоваться калькулятором, разбираться в списке процессов, итп. Инструмент, безусловно, скорее на новичков или тех, кто по долгу службы проверяет некоторые параметры, требования ТЗ. Если взять Power Checker, то далеко не все знают как проверить расход батареи, хотя для это тоже есть средства ОС.
  • Intel Software Partner: как разрабатывать ПО вместе с Intel?
  • Как я угробил SSD за два месяца
    +1
    У меня Intel X25-M 80Гб, еще старая модель (без поддержки TRIM), ОС — около года была WinXP, еще полгода по текущий день Win7. Таким образом полтора года полет нормальный. Используется активно, виртуальная машина, своп, каждодневная работа…
  • MeeGo, AppUp и будущее мобильных разработок
    0
    есть сертификация ОС, а есть валидация приложений под конкретный тип устройств. Это разные вещи. сертификация ОС означает, что когда ОЕМ прошивает ОС в свое устройство, чтобы оно могла называться MeeGo должны быть соблюдены определенные требования. а валидация приложений означает проверку, что они действительно работают на заявленных устройствах.
  • MeeGo, AppUp и будущее мобильных разработок
    0
    на AMD уже есть SSSE3 довольно давно. не везде, но есть. но там проблемы будут с драйверами чипсета, переферией.
  • MeeGo, AppUp и будущее мобильных разработок
    +1
    ну, это было сделано чтобы избавиться от наследия 80386, Pentium4 и прочих канувших в лету процессоров… зачем собирать под 386, если все равно на 386, 486, Pentium, Pentium Pro итп это не запуститься, хотя-бы из-за требований к памяти, которую в размере 256Мб+ не поставить ни на одну из этих систем. а именно SSSE3 — это именно то, что поддерживается процессорами Atom :) так что это полическое решение. пересобрав ядро самостоятельно у вас есть шанс изменить это)
  • MeeGo, AppUp и будущее мобильных разработок
    +3
    скорее всего придется пересобрать пакет, чтобы решить все зависимости — в MeeGo более новые версии библиотек, и старые пакеты от RedHat скорее всего не заработают. В MeeGo есть список гарантированно установленных пакетов, рекомендуется использовать именно их для решения задач. Если приложению нужно что-то еще, то это должно входить в rpm приложения. Пока зависимости не резолвятся автоматически, так как нет единого репозитория, источники приложений — внешние разработчики, одному нужна одна версия библиотеки, другому — другая, потому лучше чтобы все это, по крайней мере на начальном этапе, входило в поставку приложения.

    Компилятор и среда разработки — стандартные, gcc вполне подойдет, можно использовать Intel Compiler в спец. версии для мобильных приложений. собирать и проверять проще под Linux.

    приложения можно устанавливать любым образом, не только через AppUp. Никто не мешает скопировать rpm и поставить его явно.
  • MeeGo, AppUp и будущее мобильных разработок
    +1
    1. Хорошое замечение — попробую убедить коллег
    2. Планируется, будет выкладываться в ISN и на MeeGo.com
    3. В общем-то так и будет, детали будут анонсированы осенью
    4. Интересное предложение — частично это есть в личном кабинете разработчика, но не как API
    5. Как придедут в Москву — добро пожаловать в наш офис) я думаю мы статью тут напишем по такому поводу))
  • MeeGo, AppUp и будущее мобильных разработок
    +2
    в AppUp это решено — лицензия может быть на 5 устройств, разного типа, подключенных к 1 аккаунту пользователя. Динамический перенос экранов, как в Аватаре, пока только планируется — с одной стороны X11 — сетевой протокол и все возможно, но вот разделения экрана между локальным и удаленным пока отсутствует, так-же как и требуется интеграция в UI. Синхронизация данных — это вопрос работы приложения. Evernote, Dropbox и прочие хранят все в сети и там проблем нет… Каких-то встроенных механизмов для этого в API не предусмотрено пока
  • MeeGo, AppUp и будущее мобильных разработок
    0
    план обновлений — примерно раз в полгода будет новая версия