• Делать Алгоритмы Маркова — это весело
    +1
    Вы — молодцы, проект просто великолепный! Тоже когда-то будучи студентом писал интерпретатор НА. Но это было в 19-м веке, под DOS и на Паскале. Результат — трассировка выполнения писалась в файл в формате HTML с указанием правила и выделением изменившихся подстрок. Этот файл можно было распечатать и приложить в качестве ответа на домашнюю работу по теории алгоритмов. Да, в консоли тоже все выводилось с подсветкой.
  • Быстрая генерация массивов случайных чисел для задач имитационного моделирования, статистического оценивания и создания повторной выборки
    +1
    Спасибо за статью! Однако хочу заметить, что генерация псевдослучайных чисел — это по своей природе последовательный процесс, который обычно не распараллеливается (кроме некоторых специальных случаев, например, в криптографии: AES-CTR или Yarrow). Последовательный он потому, что по определению предусматривает возможность полностью воссоздать всю последовательность псевдослучайных чисел, задав исходное зерно (seed).

    Генератор обычно устроен таким образом: он хранит в себе некоторое состояние, при каждом обращении он генерирует новое число, исходя из этого состояния, затем меняет состояние. Таким образом, даже MKL-евский генератор имеет ограничение по эффективности.

    Благодаря вашей статье, я пошел разбираться в технологии бутстреппинга. Оказалось это — отличная, простая и очень удобная техника. Однако, поскольку идентичность результата при одном и том же зерне в вашем случае не важна, я бы предложил другой подход. Создал бы собственный класс генератора случайных чисел, чтобы каждый поток мог создать себе экземпляр такого класса с разным зерном. Для статистического моделирования я бы взял самый простой генератор Multiply with carry. Сам я обычно использую в качестве генератора ПСЧ алгоритм поточного шифрования RC4. Он имеет лучшие статистические характеристики, чем встроенный генератор, и чем MWC. И к тому же RC4 имеет очень простую реализацию, порядка десяти строчек кода (собственно для самой криптографии он уже устарел, хотя и используется по умолчанию многими серверами на SSL).

    После того, как генератор есть, я бы дал каждому потоку по своему экземпляру класса генератора, инициализированного разными зернами (лучше всего использовать умножение значения таймера системы на уникальное для потока простое число, так больше энтропии). После этого каждый параллельный поток работал бы со своим генератором и, конечно, загрузил бы все ядра на полную катушку.
  • Безопасен ли Telegram? Или как я искал закладку в MTProto
    0
    Да, можно сказать и так.
  • Безопасен ли Telegram? Или как я искал закладку в MTProto
    +1
    Спасибо за вопросы. Здесь есть два момента.
    1. Многие схемы шифрования не обеспечивают должной защиты, если для шифрования сообщений используются ключи, которые не сильно отличаются один от другого. При этом сообщение, зашифрованное с ключом «asdf» и другое сообщение, зашифрованное с ключем «bsdf», будет иметь статистическое отклонение от случайной последовательности данных, а значит возможна потенциальная атака. Кстати, таким свойством обладает и ASE-256. Хэши от «asdf» и «bsdf» будут сщественно отличаться, поэтому шифрованные ими сообщения уже не будут обладать статистическим отклонением.

    2.Конкретно применительно к DH: применение хэша к выходной последовательности «рамазывает» мощное множество выходных данных, не обладающих равномерным распределением значений, и делает его как-бы равномерным. Обратите внимание, что ключ, сгенерированный DF имеет длину 2048, а для генерации пары ключей AES-256 нам достаточно 512 бит. С одной стороны хэш уменьшает длину ключа, но с другой — делает этот ключ неотличимым от равномерно распределенного.
  • Безопасен ли Telegram? Или как я искал закладку в MTProto
    +2
    Кстати, если протокол будет корректироваться, хочу добавить от себя по поводу
    key = (pow(g_b, a) mod dh_prime)

    Как нам рассказывал D. Boneh на курсах криптографии, это выражение выдает не равномерно распреленную величину, поэтому его следует пропустить через KDF, на основе какого-нибуть стойкого хэша (SHA-256?), а не использовать на прямую как материал ключа.

    И еще вопрос. Почему бы не использовать устоявшийся подход TLS (SSL) для обмена ключами? В нем всякие подобные детали (в том числе проблема слабой энтопии на клиенте) уже проверены (и исправлены) временем.
  • Список скептика
    +7
    Подобное есть и в IT. Вот новость о создании сверхбыстрого компьютера, построенного на «старых советских технологиях», который собрали студенты и который обгонит по прозводительности на Linpack японский «K Computer».
  • История одного провала
    0
    … назовем его проект 1. С компанией А.

    Долго всматривался и думал: «1С, что-ли?»

    Статья понравилась, особенно про «осенизм». Весной и осенью у шизофреников обостряется активность, так что очень верно подмечено.
  • О том, как я доверился своей интуиции и был очень упорным
    +4
    Очень хороший пример принципа, согласно которому алгоритм шифрования, обеспечивающий секретность, но не целостность, в конченом счете не обеспечивает и секретности, т.к. нестойкий к активным атакам (схемы ECB, CTR, CBC).

    Например, вы знаете, что кто-то посылает по сети электронный зашифрованный чек на сумму 100$. Вы также знаете позицию, в которой расположена сумма (допустим она записана строкой). Перехватив сообщение и не зная ни ключа, ни остального его содержания вы можете занемить 100$ на 900$ заменив позицию в которой записана «1» (в зашиврованном виде это некий X) значением (X xor «1» xor «9»).

    Тут все аналогично, только позиция и значение перебиралось наугад.
  • Десятка лучших консольных команд
    +2
    dtach -A /tmp/session.dt bash
    Ctrl + \ — detach
    Есть удобная команда 'dtach', которую иногда удобнее использовать вместо 'disown'. Она перенаправляет stdin/stdout в unix-сокет, к которому позже можно подключиться. На сокет можно настроить права на запись и чтение и несколько пользователей могут работать с сокетом одновременно. Очень удобно, если нужно, например, транслировать группе людей окно терминала. Есть патч, позволяющий работать с сокетом, доступным только для чтения.
  • PVS-Studio наконец то добрался до Boost
    0
    Как всегда, к сообществу Хабра. Хотя, возможно, нужно спрашивать Билла.
  • PVS-Studio наконец то добрался до Boost
    0
    1. Зачем две константы, если они эквивалентны?
    2. В каких случаях может возникнуть необходимость сравнивать беззнаковое целое с отрицательным числом вместо использования положительной константы?
    3. Приведенный вами код выглядит подозрительно, возможно некоторые компиляторы даже генерируют предупреждение. Неужели для сокетов корректно писать «if (socket==-1)»?
  • PVS-Studio наконец то добрался до Boost
    +1
    Наткнулся в файле Winsock.h (из Windows SDK) на следующий фрагмент:
    /*
     * This is used instead of -1, since the
     * SOCKET type is unsigned.
     */
    #define INVALID_SOCKET  (SOCKET)(~0)
    #define SOCKET_ERROR            (-1)
    

    Что бы это значило?
  • Что нужно знать про арифметику с плавающей запятой
    +2
    Здесь мы имеем дело с двоичным представлением числа «101» со сдвигом запятой на несколько разрядов влево. 1,01 — это двоичное представление, означающее 1*20 + 0*2-1 + 1*2-2 (где * — умножение). Сдвинув запятую на три позиции влево получим «1,01e-3» = 1*2-3 + 0*2-4 + 1*2-5 = 1*0,125 + 0*0,0625 + 1*0,03125 = 0,125 + 0,03125 = 0,15625.
  • Сообщество Open Source склоняется в сторону более либеральных лицензий
    +1
    Еще можно использовать лицензию WTFPL, хотя ее текст граничит с шуткой. Можно использовать двойное лицензирование — общественное достояние и WTFPL, а пользователь сам выберет. Так сделали в LibTom*, например.
  • Сообщество Open Source склоняется в сторону более либеральных лицензий
    +1
    Да, теоретически закрытый код != коммерческий проект. Но Linux скорее исключение, большинство программ никто бы не покупал, если бы их исходники были доступны. Но отдавая код в свободное сообщество я хочу пользоваться своим кодов как хочу, даже если кто-нибудь что-нибудь в нем улучшит.

    Есть еще модель двойного лицензирования — GPL+коммерческая лицензия (как, например, в MatrixSSL, PolarSSL). Я как-то пробовал сделать контрибуцию в один такой проект. Так мой код так изменили (это мое предположение), чтобы я никоим образом не смог доказать, что идея этих нескольких строчек кода — моя, т.к. они бы не смогли распространять код по «Коммерческой» лицензии (для закрытых проектов).

    Линус Торвальдс придумал GPL для того, чтобы каждый, кто улучшит код и распространяет результат возвращал улучшения (производные работы) в сообщество. Это разумно и я полностью с этим согласен и поддерживаю. Но современный GPL (начиная с 2) требует открытия кода всей программы, если я использую крохотную GPL-библиотеку или хотя бы маленький кусочек GPL-кода. Даже если я использую GPL-ную DLL. Это очень широкая формулировка термина «производная работа». А для Web этот термин вообще не ясен до конца.

    И еще один нюанс GPL, который я не могу принять. GPL диктует не только то, что я могу или не могу делать с самим GPL-ным кодом, а накладывает обязательства на мой собственный код, который автор GPL-ного кода не писал. Таким образом я как бы лишаюсь права поступать со своим кодом так, как захочу (не могу закрыть), если в нем есть кусочек GPL. Я не юрист, но при обсуждении GPL на форумах часто возникает вопрос о том, возможно ли вообще законодательно в лицензии на один код накладывать ограничение на другой.

    Но не поймите меня неверно, я с удовольствием по возможности вношу контрибуции в проекты на GPL. Но если я делюсь чем-то своим, делаю это под BSD.
  • Сообщество Open Source склоняется в сторону более либеральных лицензий
    –1
    Да, в GPL вы можете потребовать исходники, если кто-то распространяет программу, использующую ваш код. Но когда вы получите этот кот, вы не сможете использовать его в коммерческих целях, т.к. исходники таких проектов придется открыть. Даже вашу собственную библиотеку вы не сможете закрыть без согласия всех контрибьюторов. Очень хорошо сказали выше: GPL — это свобода софта, MIT/BSD — свобода разработчика. Лично я раньше тоже склонялся к GPL, потом разобрался что к чему и открываю код только по лицензии BSD.
  • Переносим функциональность bash в cmd.exe
    +1
    Я пользуюсь MobaXTerm. Работает как терминал, ssh-клиент, X-сервер и имеет много встроенных утилит и плагинов.
  • Обход проактивной защиты Agnitum Outpost Security Suite в 2 строчки
    0
    Как вы узнаете, можно ли доверять приложению, пока оно не начнет открывать соединения по сети или не начнет куда-нибудь внедряться? Outpost так сказать ловит приложение «на гарячем», тогда как в Linux все обязательно нужно знать заранее, а остальное — запретить.
  • Считаем Пи параллельно. Часть 1
    0
    Ну, параллельный компьютер, для которого все делается справится с этой задачей быстрее. А посчитать пи до 15 знаков может любая персоналка за доли секунды. Зачем тогда весь этот параллелизм?
  • Считаем Пи параллельно. Часть 1
    –1
    Если не секрет, до какого знача вы считаете число пи? В программе я увидел только тип double, неужели всего до 15 знаков?

    Задача была бы на мой взгляд намного интереснее, если рассчитать, скажем, миллион знаков, а для представления чисел использовать gmp/mpfr.
  • Я не могу написать бинарный поиск
    +1
    Спасибо за статью — очень понравилась! Примечательно, что большинство критиков приводят в пример намного худший код, если характеризовать его по признакам корректности, универсальности и читаемости.
  • Осеннее обновление
    +17
    Разговор разработчиков:
    — Нужно срочно поднять производительность, не справляемся с нагрузкой!
    — Так… вот кнопка «Все», на нее кликает 80% пользователей. Давай ее отключим и получим +80% к производительности?
    — Браво!
  • Осеннее обновление
    +1
    И еще в догонку. Неужели разработчики Харба не анализаруют число кликов на кнопки сайта при принятии решения. Интересно, узнать коэффициент «Ленты» по сравнению со «Всем».
  • Осеннее обновление
    +3
    Еще удивляет то, что в который раз создается опрос, выясняется мнение пользоваталей, а потом делается противоположное. Сколько раз такое уже было.
  • List Revolution. Нумерация списков начиная с единицы? Считайте, уже сделано! [UPD]
    0
    Если бы 1.0 содержало все, что хотят видеть разработчики, то не было б версий 2,3,4,…
    Опять таки, я с вами полностью согласен и поддерживаю вашу логику. Давным-давно я переходил с Паскаля на Си, и нулевые индексы во всем мне казались дикими и неестественными. В конце-концов, ведь множество натуральных чисел начинается не с 0, с 1!
    Но сейчас уже привык считать все с нуля и раздражаюсь, когда на C/C++ встречаю индексацию чего-нибудь с единицы.

    Кстати, с нуля в Linux нумеруются устройства. Это тоже странно. Почему hdd0 или tty0, а не hdd1 или tty1?
  • List Revolution. Нумерация списков начиная с единицы? Считайте, уже сделано! [UPD]
    0
    Действительно, насчет SVN вы правы. Но номер версии 0.0.1 тоже для нашей культуры кажется немного странным. Логичнее начинать с 1.0.0.
    Иногда думается, что 0.x.x — версии до первого официального релиза. Но это не всегда так, часто версия 0.x.x отмечена на сайте как «стабильный релиз».
  • List Revolution. Нумерация списков начиная с единицы? Считайте, уже сделано! [UPD]
    +1
    Это еще, наверное, связано с культурными особенностями. У нас все исторически всегда нумеровалось с единицы. А «у них» с нуля нумеруются не только индексы (массивов, списков и др.), а еще и номера версий, коммиты в репозитории (SVN, HG), этажи, всяческие идентификаторы и серийные номера, и т.д.
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    * на Земле
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    Думаю, вы ошибаетесь. Используя современную технику можно измерить скорость света очень точно.
    Например, тактовая частота современных процессоров 3ГГц. За 1 такт свет пролетает примерно 10 см.
    Вакуум можно создать и не Земле. А от гравитационных эффектов нам и в космосе не избавиться. На обычной орбите шатла, например, земное притяжение составляет 95% от того, что на поверхности.
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    Причем, сколько бы раз мы не блосали монетку, доказать (с определенной вероятностью, например, 95%), что она полностью нормальная нельзя. Т.к. потребуется бесконечно много экспериментов.
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    Спасибо, теперь я понял всю парадоксальность результатов этого эсперимента.
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    Скорость света меряли, это ясно. Но проверяли ли саму константу «c» теории относительности с такой точностью?
  • Нейтрино перемещаются со сверхсветовой скоростью
    +3
    Интересно, может ли оказаться, что скорость света в вакууме не равна пресловутой константе c, а просто очень-очень близка? А проверить теорию относительности с такой точностью просто не было возможности. Тогда может оказаться, что свет имеет массу, просто очень мизерную. И даже скорость нейтрино в вакууме может не быть этой константой, т.к. нейтрино, возможно, тоже имеет массу. Интересно мнение спесиалистов.
  • Нейтрино перемещаются со сверхсветовой скоростью
    0
    Видимо имелось в виду, что скорость протона или электрона в этой среде будет быстрее скорости света в этой же среде.
  • Массовые проявления «аллергии на Wi-Fi» в Америке
    0
    Совершенно верно.
  • Небольшой конкурс хокку на айтишную тематику
    0
    Осень. Уйду-ка я раньше с работы
    и прогуляюсь.
    Все равно интернет отключили.
  • Массовые проявления «аллергии на Wi-Fi» в Америке
    +3
    Вы упорно цеплятетесь к отдельным словам, не желая уловить суть. Да, радиации существует несколько видов (>3), но суть вреда от нее всегда определяется возможностью разрушать структуры отдельных атомов, молекул, клеток и т.п.
    Будь-то алфа-частицы, энергетичные электроны (бета-частицы), рентгеновские лучи, гамма-лучи, нейтроны и прочее. Эти «лучи» объединяются термином радиация имменно из-за возможности разрушать молекулярные структуры. Так вот, микроволны — это не радиация. И это главный тезис.
    >> А знаете что бывает при синхронном колебании? резонанс.
    Молекулы всегда колеблятся и очень быстро. Это и создает их температуру. Дополнительное синхронной колебание от микроволн небольшой мощности (WiFi) не может создать резонанс, т.к. температурные амплитуды просто несопоставимо больше.
  • Массовые проявления «аллергии на Wi-Fi» в Америке
    +1
    Извините, но вы выдираете слова из контекста. Я не говорил, что микроволны не могут причинить вред в принципе, но они не могут разрушить структуру отдельных молекул и клеток организма.
    Логика и софистика здесь не причем, это — физика. Свет и микроволны — суть колебание электрических и магнитных полей, просто с разной частотой. Это я и имел в виду, говоря, что у них одна природа.
    Поскольку скорости у этих волн равны (скорости света), то длины волн отличаются. Длинные волны не способны разорвать связи между молекулами, поскольку в таком случае они колеблются практически синхронно. В этом суть принципиального различия этих волн от радиации.
  • Массовые проявления «аллергии на Wi-Fi» в Америке
    0
    Я ж написал, что единственный возможный вред — от нагрева (передачи энергии). Длина волны микроволн намного больше молекул и даже клеток, поэтому не способна разрушить их структуру.
    НО энергию эти волны передают, поэтому вред возможен только от очень мощного излучения.
  • Массовые проявления «аллергии на Wi-Fi» в Америке
    +15
    Экспериментально (статистически) в недетерминированной системе (человеческое здоровье) доказать отсутствие эффекта невозможно, поскольку, чем меньше эффект, тем большая требуется выборка для определения статистически значимых отклонений от нулевой гипотезы. Соответственно, если эффекта нет, нужна выборка бесконечной длины.
    Из-за этого все спекуляции — ученые говорят: «На данной выборке статистически значимых отрицательных эффектов на здоровье человека не обнаружено». Популисты говорят: «Если не обнаружено, это не значит, что их нет».

    Электромагнитные волны от мобильного телефона или от WiFi имеют такую же природу, что и обычный свет (400 нм-800нм), только длина волны намного больше (1 см — 3м). Они не могут причинить вреда больше, чем свет и единственный возможный вред — нагревание. Но Wifi точки доступа создают волны очень низкоэнергетичные, поэтому не могут применить вреда.
    В противоположность микроволнам, радиация (рентген, гамма- лучи и пр. ) тоже в сущности свет, но длина волны намного меньше (<0.1 нм), а энергии больше. Такие точечные удары способны разрушать структуру молекул и даже атомов.