• Восстановление расфокусированных и смазанных изображений. Практика

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

      В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

      Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



      И вот результат обработки:



      Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

      Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
      Читать дальше →
    • Умный дом от любителя или HomeMatic & Co

        В этом повествовании я бы хотел описать свой собственный опыт в области домашней автоматизации на уровне любителя. В своих экспериментах я столкнулся с довольно простыми в использовании системами HomeMatic и X10, применение которых и хотел бы здесь затронуть.
        В новостях часто появляются сообщения, что можно управлять чайником или новогодней гирляндой с iPhone (причем обязательно с iPhone, а то новость не будет понята воспринята массами). При этом у меня каждый раз появляется негодование: ну почему люди так бурно реагируют на такие сообщения? Ведь уже давно существуют решения, которые позволяют это сделать. При этом управлять домом из любого браузера, и да… с iPhone тоже!


        WebFront
        Читать дальше →
      • Обратная сторона луны

          При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

          Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

          А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

          А я скажу как бы ни так!

          В данной статье мы рассмотрим:
          • структура организации размещения объектов в памяти
          • CLR 4.5 Background Server GC
          • правильная настройка сборщика мусора
          • эффективный апгрейд приложений до .NET 4.0+
          • правильное ручное управление памятью

          Читать дальше →
        • Про jQuery и велосипеды — мое дополнение

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

          Для затравки начнем с простого.
          Читать дальше →
        • Извечный вопрос: CMS или свой движок

            Именно с этого вопроса я начал сегодняшний рабочий день.
            Уже в который раз встал перед этой дилеммой, которую, впрочем, уже не однократно решал в пользу своих кодов, но сомнения грызть не прекращают.
            Вот и сейчас — в день когда пора начинать верстать новый интернет-магазин, эта дилемма стоит передо мной.
            А предыстория следующая:
            Читать дальше →
          • Steam выйдет за пределы игрового рынка

              image

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

              Новый Steam будет предлагать все те же преимущества, как и для игр, присутствующих в магазине Steam:

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


              Запуск обновленного сервиса запланирован на 5 сентября.

              Такой ход компании Valve ставить Steam в одну линию с такими продуктами, как Apple App Store и Canonical Ubuntu Software Center и составит хорошую конкуренцию Microsoft Windows 8 Store.

              Искренне надеюсь, что пользователи Linux также получат такие возможности в клиенте Steam для Linux.

              UPD: [ Источник ]
            • Хочешь быть программистом — будь им!

                Данный пост навеян статьей "Я, пользователь!", которая вызвала много споров, и была весьма прохладно встречена сообществом. Обсуждение в комментариях показало, что мысль, которую Автор высказал довольно жестко и агрессивно, была воспринята как призыв вернуться к ветряным мельницам. Однако, на мой взгляд, проблема затронутая автором, гораздо глубже.
                Сейчас я постараюсь объяснить, что я имею в виду.
              • Освоение HTML5 тега audio

                • Translation
                С появлением достаточно быстрого соединения с сетью Интернет, Flash был единственным инструментом для воспроизведения звуков на веб-сайтах. Но HTML5 в корне изменит способ воспроизведения звуков в Интернет. В этой статье я хочу подробно рассказать Вам о том, как использовать тег на ваших сайтах.
                Читать дальше →
              • Пишем панель для i3 window manager на Qt

                i3 — мой любимый тайловый менеджер окон. Но совсем недавно, занявшись очередной перекраской своего десктопа, я наткнулся на одну пренеприятнейшую вещь: функционала родной панели совсем не хватает для воплощения всех моих фантазий. В частности, она не умеет менять размер или изменять цвет границ. А что делает линуксоид, когда ПО его не устраивает и нет альтернатив(а их нет)? Правильно, патчит существующее, либо пишет своё. Разбираться с xcb, на котором написана стандартная панель у меня совершенно нет желания, поэтому я пошёл вторым путём. В качестве языка был выбран C++. Про фреймворк спросите у К.О.
                Читать дальше →
              • PHP: фрактал плохого дизайна

                • Translation

                Предисловие


                Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

                Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

                PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

                PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
                Читать дальше →
              • Первые шаги в Robocode

                  Я пишу эту статью по просьбам в комментариях к статье “Как я стал чемпионом Robocode” и продолжая начатое в ней дело по привлечению внимания к Robocode русскоговорящих разработчиков. Robocode — это игра для программистов, в которой задача заключается в разработке системы управления танком. Для затравки приведу несколько роликов, чтобы показать о чём вообще пойдёт разговор:


                  Читать дальше →
                • Глубоко эшелонированная анонимность

                    Учитывая тенденции в Российском законодательстве, да и вообще поползновения Большого Брата «любить» всех и каждого, в среде пользователей компьютеров усиливается желание от такой «любви» несколько отстраниться.

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

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

                    Данный текст не претендует на единственно возможную схему построения такой защиты, дополнения и исправления приветствуются. Важность оценена исходя из российских реалий по 5-балльной шкале. Этот текст относится только к «обычному интернету», без наложенных сетей (они будут рассмотрены в отдельной статье)
                    Читать дальше →
                  • Набор заметок. Производительность и защита, от сайта до системы

                    Краткий анонс

                    Собирался добавить пару предположений на счет авторизации и регистрации на сайте, но то ли от недосыпания, то ли от многочисленных выпитых сегодня чашек кофе меня потянуло в дебри. Набросал некоторые заметки. Возможно кто-то из Вас найдет что-то новое для себя, возможно кто-то подскажет новое правило для кого-то, возможно кто-то поправит меня тем самым дав и мне урок, и другим. Ниже идут некоторые заметки работы с БД, еще ниже уже несколько заметок про работу самого сервера и т.д.
                    Читать дальше →
                  • Aftershock: как будем жить после пресловутого законопроекта. Советы бывалых



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

                      Я подумал, что будет правильным подвести черту и собрать наиболее трезвые комментарии за всё время его обсуждения, а также не без помощи юристов спокойно и чётко изложить ряд возможных мер, которые могут быть предприняты уже сейчас, не дожидаясь вступления основной части законопроекта в законную силу с 1 ноября 2012 года. Также будет выдвинут ряд предложений по усовершенствованию закона и рассмотрены его плюсы и минусы в максимально широком смысле.

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

                      Читать дальше →