• Как не быть обманутым злыми буратинами


      Уж сколько раз твердили миру,
      Что лесть гнусна, вредна; но только все не впрок,
      И в сердце льстец всегда отыщет уголок.
      «Ворона и Лисица» (1807) И. А. Крылов
      1807 год, вдумайтесь! 1807, 200 лет назад!

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


      Для всех обиженных опсосами, банками, сервис центрами и прочими злыми буратинами.
      Читать дальше →
    • Стереоизображение — это просто

      Привет, %username%.

      В данной статье я хочу рассказать, как можно самостоятельно создать стереоизображение при помощи графического редактора и небольшой программы.
      изображение-маска
      стереоизображение

      Введение


      Для начала рассмотрим, как устроено стереоизображение и как на него смотреть.
      Читать дальше →
    • Создаём шрифт, имитирующий ваш рукописный почерк

      Учащимся старших классов и студентам ВУЗов, зачастую, делая домашнюю работу, приходиться выполнять большое количество письменных упражнений. Например, наш преподаватель по обществознанию каждый урок задает нам ДЗ, заключающееся в том, чтобы мы нашли материал в библиотеке или Интернете, и написали его от руки (только за это можно получить оценку «отлично»), даже если найденный материал будет верным, но распечатанный на компьютере, выше четвёрки не жди…

      Исходя из всего вышесказанного, я пришёл к выводу: нужно сделать шрифт для компьютера, дублирующий мой почерк. На мой взгляд, сделал я его успешно. Родная мать не отличит, где я писал от руки, а где напечатал компьютер. Многим моим знакомым понравилась эта затея, и они стали расспрашивать меня, как я это всё сделал. И чтобы каждому по сто раз не объяснять, я решил написать эту статью – план выполнения работы с подробными комментариями.

      Итак, в этой статье я расскажу вам, как сделать шрифт, имитирующий ваш почерк.
      Читать дальше →
    • Спасение «битого» переносного винчестера с TrueCrypt-контейнером

      Анамнез


      Для кражебезопасного перемещения персональных данных, portable-приложений, базы ScrapBook и индексов Архивариуса 3000 между двумя стационарными точками присутствия по примеру Брюса Шнайера была создана СуперФлешка – переносной 2.5’’ винчестер Toshiba MK2552GSX в корпусе ViPowER VP-352518 с USB и SATA-интерфейсами с криптоконтейнером внутри. Однако, "пришла беда, откуда не ждали!".

      В открытом виде в корне раздела лежали дистрибутив TrueCrypt 7.0a и portable-инсталляция KeePass Password Safe свежайшей версии с базой паролей. Всё остальное место отдано под крипто-контейнер в виде файла. Пароль к контейнеру хранится в базе KeePass.

      Подмонтирование в точках присутствия – скриптами nnCron по времени или по подключению соответствующего USB-диска с автозаполнением диалога ввода паролей с помощью связки nnCron+KeePass.

      Читать дальше →
    • Как сделать один сайт для всех устройств (Responsive Web Design)

        Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:

        «Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление

        Почему это глупо


        Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.



        Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).

        Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».

        Как сделать один сайт для всех устройств

        Читать дальше →
      • Бесконечный Mario на HTML5

          Если вам интересно изучить разработку игр на HTML5/JavaScript, можете посмотреть на Бесконечного Mario на HTML5 (временно не работает: привышен лимит у хостера; зеркало).

          Игра является клоном этого проекта Minecraft: уровни генерируются до бесконечности, только там игра была на Java (тоже с исходниками), а здесь переписана на HTML5.

          Гладкая игра без тормозов и хорошо читаемый код. Правда, есть некоторые глюки, например, фоновая музыка играет вроде только в Firefox 4.

          Если жизней не хватает, можете добавить через JS-консоль браузера:

          Mario.MarioCharacter.Lives += 1024

          Исходники на github: github.com/robertkleffner/mariohtml5
        • Генерация одноразовых паролей при помощи смартфона

          Пролог: данная статья готовилась в течении прошлой недели и была отправлена как статья для песочницы в воскресную ночь. Сегодня я получил инвайт, но так же обнаружил статью с похожей тематикой — К вопросу о двухфакторной аутентификации с помощью мобильных устройств, так что я полностью согласен с автором этой статьи — «что слишком много в последнее время совпадений». Статью решил публиковать как она была изначально задумана, добавил только ссылки на исходники.

          После недавних публикаций на Хабрахабре посвященных безопасности, паролям, переборе паролей и т.п. мне в голову пришла идея авторизации при помощи одноразовых паролей которые генерируются специальным приложением на смартфонах пользователей. Идея очень похожа на идею которая используется в устройствах SecureID (и которые тоже недавно освещались на Хабрахабре). Современные смартфоны доступны все большему количеству людей и их возможностей вполне достаточно для реализации подобной схемы. В данной статье я хочу описать идею взаимодействия связки смартфон + веб сайт, некоторые особенности реализации и показать работающий прототип.

          Читать дальше →
        • Развертывание приложений Play! framework в Google AppEngine



            Play! framework набирает популярность и на Хабре уже есть следующие топики:
            Отличный Java MVC фреймворк — Play Framework
            ‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 1)
            ‘Hello World’ tutorial — Ваше первое приложение на Play framework (Часть 2)
            Мои 5 любимых фишечек в Play Framework

            Одна из замечательных возможностей Play! — развертывание приложения в облачную инфраструктуру App Engine от Google.

            На приложения, которые исполняются в GAE накладываются довольно жесткие (по сравнению с обычными Play! приложениями) ограничения, в основном, это связано с модулем сохранения данных (JPA / Hibernate). Для того, чтобы приложение без проблем заработало в GAE следует отказаться от JPASupport/Model хелперов и использовать только базовые возможности JPA.
            Альтернативой также может стать использование модуля Siena.

            В данном топике я пошагово опишу процесс развертывания приложения Play! в Google AppEngine.
            Процесс установки и использования описан применительно к ОС Linux, но существенных различий при использования других ОС возникнуть не должно.
            Читать дальше →
          • Bitstorm: самый простой битторрентовый трекер в мире

            • Перевод
            Всегда хотели быть админом трекера BitTorrent, но никогда не могли, потому что недоставало технических знаний? Тогда настал ваш счастивый день. При помощи Bitstorm кто угодно может настроить битторрентовый трекер буквально за несколько секунд, так как для Bitstorm нужен только хостинг, поддерживающий PHP. Просто загрузите единственный файл на вебсервер — и получите собственный действующий трекер BitTorrent.

            Для начала давайте признаемся: запустить и поддерживать надёжный трекер с десятками тысяч пиров — это не каждому по плечу. Для этого надобны и навыки, и знания, чтобы всё действовало без сучка и задоринки. Кроме того, крупным трекерам (таким, как PublicBitTorrent) нужен гигабитный канал, а он есть не у всякого.

            Несмотря на вышесказанное, на свете есть и тысячи небольших трекеров, раздающих по горсточке торрентов каждый. Некоторые люди заводят себе трекер, чтобы раздавать свои файлы в частном порядке, а у других просто хобби такое. При помощи Bitstorm теперь кто угодно может запустить собственный трекер BitTorrent сравнительно легко, и многих технических знаний для этого не потребуется.

            Пользуясь услугами какого угодно хостинга, поддерживающего PHP, запустить трекер можно быстрее, чем прочесть предыдущие два абзаца. Bitstorm раздаётся по лицензии GPL, состоит из единственного PHP-файла с немногими строками кода. Просто закачайте его к себе на сервер — и вот он, новорождённый трекер.

            Разработчик, Питер Каприоли, разъяснил, что к созданию Bitstorm его подтолкнула неудача в поиске простого и безчепухового битторрентового трекера.

            «Некоторое время тому назад мне надо было раздать пару крупных файлов паре десятков людей. Я предпочитал протокол BitTorrent — он и быстрый, и мне не понадобилось бы загружать все эти файлы по двадцать раз. Поэтому я начал искать трекер, чтобы установить его к себе на сервер».

            «Некоторое время поискав, я не нашёл ни одного такого трекера, который работал бы, как я хотел. Во всех их была встроена куча добавочных функций, мне не нужных — мне-то нужен был простой трекер, просто обслуживающий пиры, и ничего больше. Почитав вон ту замечательную статью, я придумал Bitstorm», — добавляет Каприоли.

            Читать дальше →
          • Решение загадки Эйнштейна на Haskell

              Прелюдия

              Albert_Einstein
              Не так давно я прочитал на Хабре статью, которая напомнила мне про интересную головоломку, которую называют «Загадкой Эйнштейна» или «Zebra puzzle». Вероятно многие из вас решали эту задачку на листке бумаги и гордились тем, что входят в несколько процентов населения земли, способных на это.

              Прочитав статью, я задумался над программным решением этой задачи. Подход, приведенный в статье был интересен и вполне оправдал название блога, но показался мне не совсем понятным. В данный момент я интересуюсь языком программирования Haskell, который прекрасно подходит и сам по себе для разминки мозгов, решение же головоломки на нем показалось мне прекрасным вызовом.
              Читать дальше →