• Как треугольник становится кругом? Почему нет никакого золотого сечения? Почему люди отвергают логику?

      В 30-х годах советский ученый А.Р. Лурия совершил экспедицию в поселки и стоянки кочевников Узбекистана и Киргизии. Они наблюдали за формой и содержанием живших там людей, имевших либо минимальное образование, либо вовсе неграмотных. Соответственно, у них преобладали формы мышления, возникшие из элементарных форм деятельности и характеристик знакомых предметов.

      Одним из практических экспериментов был такой. Перед испытуемыми ставилась задача сгруппировать похожие фигуры:



      Совсем неграмотные люди давали фигурам названия привычные по собственной жизни. Они видели на этой картинке тарелку, палатку, браслет, бусы и т. д. Более грамотные испытуемые большей частью давали фигурам геометрические названия.

      Для нас интересно то, как группировали фигуры неграмотные испытуемые. Для них 2 и 7 считались подобными, так как и то и другое было «оконными рамами», а 6 и 4 были часами. 3, 1 и 5 не имели никакого сходства между собой. Причем, эти люди категорически отвергали утверждения экспериментаторов о схожести, например, 1 и 3. «Совсем они не похожи. Первая — это монета, а вторая — луна».

      Что из этого можно извлечь для дизайна, а так же еще про один эксперимент в котором люди полностью отрицают логику, читайте аж в двух моих записях тут:

      nordisk.pp.ru/design/47

      nordisk.pp.ru/design/49

      Или укороченную компиляцию под катом

      Читать дальше →
    • Практические рекомендации по выбору паролей по результатам взлома antichat.ru

        Как вы уже слышали Брайан Кребс недавно проводил аудит паролей, полученных после взлома antichat.ru (сама база была получена где-то год назад и уже не актуальна!). Честно говоря, не очень понимаю чем занимались его видеокарты 18 дней, победив только 44% паролей. Мне на довольно скромном железе удалось подобрать 77% паролей за 8 часов. Исходя из таких несколько пугающих цифр, особенно для сайта тематически связанного с информационной безопасностью, у меня есть несколько рекомендаций о том какие пароли никогда не следует использовать, дабы они не были подобраны за пару минут.
        Читать дальше →
      • Практическое использование Boost.Spirit

          Я заметил, у разработчиков совершенно полярное отношение к библиотеке Boost.Spirit: либо она им жутко не нравится, либо они фанатеют от нее. Конечно, описывать грамматику на C++ – занятие на любителя. Таким любителем оказался и я, когда познакомился со Спиритом. Хочу показать, как с помощью Спирита можно довольно просто решать повседневные задачи разбора текста.

          Простая задача – как два пальца


          На Спирите очень удобно писать маленькие парсеры «не отходя от кассы» – прямо в C++ коде. Вот например, как вы поступите если нужно распарсить строку вида «число-число», которая задает диапазон страниц для печати? На Спирите – одна строчка:

          bool ok = parse(First, Last, (uint_ >> L"-" >> uint_), MinMax) && (First == Last);


          Посложнее…


          Более того – можно ненамного сложнее создавать и парсеры побольше. В качестве примера рассмотрю парсер мини-языка, который я делал для API Яндекс.Бара. Задача была такова: для облегчения загрузки плагинов в баре используется XML, который довольно избыточный сам по себе. Но зато XML легче грузить из JavaScript-а, чем парсить произвольный формат (на JS пишутся расширения под FireFox, в том числе и Я.Бар).

          Итак, что мне было нужно – имея на входе обычную инфиксную нотацию:
          Читать дальше →