• Эмоции в нейросетях

      Балуясь с нейронными сетями и алгоритмами самообучения для них, столкнулся с мыслью, что алгоритм обучения с учителем вполне мог бы быть отнесен к категории самообучения, если бы учителя заменили «эмоциональными» нейронами. Такие нейроны, по сути, являются просто датчиками «хорошо/плохо», а при соединении с обычными нейронами создают определенные связи, гасящие либо возбуждающие в зависимости от типа датчика.
      Читать дальше →
    • Профессиональная эмиграция — Часть 1 — Проблема курицы и яйца и как с ней бороться, а также развенчание мифов

      Здравствуйте, Хабраюзеры.

      Этим постом я хотел бы начать цикл (если позволит время и будет интересно аудитории) про профессиональную эмиграцию, особенно без привязки к работодателю.
      Читать дальше →
    • Как хвост виляет собакой. Азбука пропаганды

        Чем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.

        Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
        Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
        Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
        — Почему собака виляет хвостом?
        — Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.

        Ещё 7 приёмов - под катом
      • Видимость сквозь турбулентную атмосферу. Компьютерная коррекция изображений удаленных объектов

        Авторский пересказ двух публикаций с демонстрационным фильмом.

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

        Читать дальше →
      • Алгоритм анонимной коллективной подписи

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

          А можно ли сделать систему, позволяющую осуществить анонимный сбор подписей, но в то же время дающую возможность верифицировать каждый голос? Предлагаю вашему вниманию свое решение данной задачи.

          Постановка задачи

          Имеется ограниченный круг лиц, например, студенты института, сотрудники организации или граждане страны. Часть из них подписывают некоторое сообщение (петицию, коллективное обращение и т.п.). Предлагаемый алгоритм подписания обладает следующими свойствами:
          1. Есть возможность удостовериться, что каждый подписант принадлежит к указанному кругу лиц.
          2. Есть возможность проверить, что большинство подписей принадлежат разным лицам.
          3. Нет возможности определить, кому именно принадлежит та или иная подпись.
          4. Нет возможности определить, оставляло ли данное конкретное лицо свою подпись или нет.
          5. Любой подписант может по своему желанию поставить вместо анонимной подписи персонализованную.
          6. Любой анонимный подписант может впоследствии по своему желанию предоставить доказательства того, что именно он поставил подпись.


          Система основана на асимметричной криптографии, алгоритмах цифровой подписи и сертификации ключей.
          Читать дальше →
        • Быстрочтение featuring Восприятие текста

            Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
            Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

            Пост затрагивает проблемы скорости чтения, понимания текста, а также методы значительного улучшения и того, и другого.

            Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

            Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

            1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
            2. Медленная скорость чтения способствует лучшему пониманию текста?
            3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
            4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
            5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
            6. Ваши глаза находятся в непрерывном движении во время чтения?
            За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
            Читать дальше →
          • Радиоприемник 60-1700 МГц на RTL2832 за 20 баксов или SDR для начинающих

            В этой статье я расскажу о том, как, потратив совсем небольшие деньги и немного времени, получить радиоприемник, способный принимать что угодно в диапазоне 60-1700 МГц (радиостанции, звуковое сопровождение ТВ, радиолюбителей, карманные радиостанции и многое другое). Для этого
            мы используем DVB-тюнер на чипе RTL2832, работающий в специальном режиме, который можно приобрести за $20 или даже дешевле.


            Читать дальше →
          • Функциональное мышление: Функциональные шаблоны проектирования, часть 3

            • Перевод
            Нил Форд, Архитектор ПО, ThoughtWorks Inc.
            15 Мая 2012
            перевод статьи Functional thinking: Functional design patterns, Part 3

            Серия «Функциональное мышление» (часть 1, часть 2) продолжает исследование альтернативных, функциональных решений шаблонам проектирования Банды Четырех (англ. Gang of Four, GoF). В этой части я буду исследовать наименее понимаемый, но наиболее мощный из шаблонов проектирования: «Интерпретатор» (англ. Interpreter).
            Читать дальше →
          • Функциональное мышление: Функциональные шаблоны проектирования, часть 2

            • Перевод
            Нил Форд, Архитектор ПО, ThoughtWorks Inc.
            03 Апреля 2012
            перевод статьи Functional thinking: Functional design patterns, Part 2

            В последней части (на хабре), я начал исследование взаимодействия традиционных шаблонов “Банды четырех” (Gang of Four, GoF) и более функциональных подходов. Я продолжу разбор в этой части, показывая решение типичных проблем в рамках 3х различных парадигм: паттерны, метапрограммирование и композиция функций.

            Если первичная парадигма, которая поддерживается вашим ЯП объектная, то намного проще думать о решении каждой проблемы в рамках ее терминов. Тем не менее, большинство современных языков программирования являются мультипарадигменными, это значит, что они поддерживают объекты, метаобъекты, функциональную и другие парадигмы. Изучение использования различных парадигм для наиболее подходящего решения проблемы — часть эволюции в лучшего разработчика.
            Читать дальше →
          • Функциональное мышление: Функциональные шаблоны проектирования, часть 1

            Нил Форд, Архитектор ПО, ThoughtWorks Inc.
            06 Марта 2012
            перевод статьи Functional thinking: Functional design patterns, Part 1

            Некоторые представители функционального мира утверждают, что концепция шаблонов проектирования содержит недостатки и ей нет места в мире функционального программирования(далее ФП). Это мнение может быть подтвержено используя довольно узкое определение слова шаблон(pattern), но это больше касается семантики, чем реально использования.
            Концепция шаблона проектирования — именованное, представленное в виде каталога решение для распространенной проблемы- живо и здравствует.Тем не менее, шаблоны могут принимать различные обличья, в рамках разных парадигм. Учитывая, что подходы к построению программ и решению проблем в функциональном программировании другие, некоторые шаблоны «Банды четырех»(Gang of Four, GoF) исчезают, другие сохраняют проблему, но решают ее радикально по-другому.Эта часть и несколько других будет содержать в себе исследования некоторых традиционных шаблонов проектирования и переосмыслять их в рамках функционального подхода.
            Читать дальше →
          • Three Futamura Projections и не только

              Привет, хабрачеловек. Сегодня я расскажу тебе про некоторые фундаментальные вещи в computer science: частичные вычисления, три проекции Футамуры и суперкомпиляцию.
               
               

              1. Сразу к коду


              -- функция, которая возводит x в степень y (неотрицательную)
              power x y =
                  case y of
                      0 → 1
                      1 → x
                      _ → x * (power x (y - 1))


              Читать дальше →
            • Монады с точки зрения теории категорий

              • Перевод

              Введение

              Кажется, монады в программировании стали загадкой века. И для этого есть две причины:
              • недостаточное знание теории категорий;
              • многие авторы стараюстся не упоминать категории вообще.
              Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.

              Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.

              Я уверен, что монады с точки зрения категорий почти элементарны.

              Содержание

              1. Категория
              2. Функтор
              3. Естественное преобразование
              4. Монада
              5. Монады исключения и состояния
              6. Монады в программировании
              7. Ссылки
              Читать дальше →
            • Функциональное программирование для всех

              • Перевод

              Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

              Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.

              UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
              Читать дальше →
            • Рендеринг наоборот. Преобразование Хафа на GPU

              title

              Преобразование Хафа служит для поиска на изображении фигур, заданных аналитически: прямых, окружностей и любых других, для которых вы сможете придумать уравнение с небольшим количеством параметров. О преобразовании Хафа написано немало, и данная статья не ставит цели подробно осветить все аспекты. Я лишь объясню общий принцип, останавливаясь на особенностях, мешающих его реализации на GPU «в лоб» и, конечно же, предложу решение. Те, кто знают проблемы и хотят сразу видеть решение, могут пропустить пару-тройку разделов.

              Читать дальше →
              • +75
              • 16,1k
              • 9
            • Структура Radix Tree для сжатия данных

                Этот топик повествует об использовании Radix Tree на практическом примере. Radix Tree или дерево остатков — это структура данных, формируемая по принципу хранение значений в листовом узле. Промежуточные узлы представляют собой элемент конечного значения. Это может быть бит для чисел, символ для строк или цифра для номера, как в примере ниже. Приведенный алгоритм сжатия с использованием Radix Tree используется в реальной embeded системе, для хранения параметров телефонного файрвола.
                Читать дальше →
                • +16
                • 9,3k
                • 5
              • Конспект монографии по λ-исчислению

                  Данный текст представляет собой чрезвычайно сжатый конспект классической монографии по λ-исчислению (Х. Барендрегт, «Ламбда-исчисление. Его синтаксис и семантика», перевод с английского Г. Е. Минца под редакцией А. С. Кузичева, Москва, «Мир», 1985). Он может оказаться интересен всем тем, кто планировал взяться за систематическое изучение данной темы, уже в общих чертах ознакомившись с ней, но откладывал из-за сложной структуры основной монографии, определения и основные результаты в которой довольно разрозненны. Здесь мы попытаемся сделать изложение, напротив, абсолютно линейным, и, конечно, несравнимо более коротким, избегая лишних определений и примеров, а сосредоточившись на необходимых терминологии, обозначениях и утверждениях, которые, в свою очередь, изложены близко к оригинальному тексту. Мы начнем от определения системы λβη, то есть классического бестипового экстенсионального λ-исчисления. Затем перейдем к комбинаторной логике, теореме о неподвижной точке и синтаксическому сахару. Наконец, заключительная часть конспекта — построение топологии на выражениях этой системы, призванной объяснить кажущееся противоречие: отображения множества выражений в себя содержатся в самом этом множестве при его счетности. На самом же деле, множество наделяется надлежащей топологией, в которой выражения представляют собой непрерывные отображения.
                  Читать дальше →
                • Уязвимы по определению

                    У многих людей, как-либо связанных с безопасностью, периодически возникает желание заняться pentest'ом, то есть тестом на проникновение. И чаще всего начинают все с pentest'а веб-приложений. Порог вхождения довольно мал (простейшая sqli определяется добавлением кавычки в параметр и эксплуатируется не особо сложнее), но при этом встречаются и довольно сложные задания, которые заставляют потратить пару-тройку дней на ковыряние.
                    Но возникает вопрос — где применять теоретические знания, без страха внезапного появления маски-шоу? Под катом проведу небольшой обзор полигонов для экспериментов по pentest'у.
                    Читать дальше →
                  • Кластеризация точек на основе регулярной сети


                      В данной статье я рассмотрю два алгоритма, первый — непосредственно кластеризация, второй — построение контура кластера в виде выпуклого многоугольника, прикладная задача для улучшеного восприятия полученного результата.

                      Читать дальше →
                    • Метапрограммирование

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

                        UPD: Более новая статья: Метапрограммирование с примерами на JavaScript. И лекция по статье на Youtube (лекция записана в Киевском политехническом институте 18 апреля 2019 года в рамках курса «100 видео-лекций по программированию»):


                        Читать дальше →
                      • Анонимность vs деанонимизация

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