• Логика мышления. Часть 14. Гиппокамп



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

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

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

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

      Читать дальше →
    • Концепции Boost

      • Tutorial
      От использования шаблонов в С++ лично меня всегда отпугивало отсутствие стандартных механизмов задания ограничений параметров. Другими словами, когда разработчик пишет функцию

      template <class T>
      bool someFunc(T t)
      {
      	if (t.someCheck()) {
      		t.someAction(0);
      	}
      }
      

      он делает различные допущения относительно функциональности объектов типа T, однако не имеет стандартной возможности донести их до пользователей. Так приведенный пример предполагает, как минимум, следующее
      Читать дальше →
    • Анализируем исходный код с помощью cppcheck

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

      Совсем недавно cppcheck помог найти уязвимость в проекте Xorg, которая существовала там почти 23 года! Он помог уже тысячам программистов по всему миру, на официальном сайте можно найти информацию о найденных с помощью cppcheck уязвимостях в программах, и этот список постоянно растёт. Итак, если вы хотите знать, почему нужно использовать cppcheck всегда и везде — прошу под кат.
      Читать дальше →
    • Экспорт Избранного на Хабре в PDF

        Доброго времени суток, хабровчане!


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

        Закручинился я было… Но OpenSource и Хабр спасли меня!
        Краткая суть статьи для тех, кому не интересно много читать
        В статье описан доработанный скрипт на Python fav2pdf.
        Изначальный автор скрипта vrtx, за что ему большое спасибо.
        «Usage — лучше тысячи слов!»
        usage: fav2pdf.py [-h] [-d OUTPUT_DIR] [--from-date FROM_DATE]
                          [--to-date TO_DATE] [--all-in-one]
                          [--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]] [--no-comments]
                          [--no-symlinks]
                          user
        
        Tool for save favorite posts from habrahabr.ru in pdf's or html's
        
        positional arguments:
          user                  habrahabr.ru username
        
        optional arguments:
          -h, --help            show this help message and exit
          -d OUTPUT_DIR, --output-dir OUTPUT_DIR
                                Directory for output
          --from-date FROM_DATE
                                From date
          --to-date TO_DATE     To date
          --all-in-one          Save all posts in one PDF-file
          --only-hubs [ONLY_HUBS [ONLY_HUBS ...]]
                                Save only posts from hubs. For multiple: "--only-hubs
                                Hub1 Hub2 --"
          --no-comments         Dont save comments from posts
          --no-symlinks         Dont create symlinks to posts
          --create-html         Create html's instead of pdf's
          --create-url-list     Just save user.txt with all links
        


        И как же они меня спасли?
      • Страсть к программированию. Глава 13. Найди ментора

        • Перевод
        image

        О переводе


        Это перевод 13 главы книги The Passionate Programmer: Creating a Remarkable Career in Software Development. Её автор — Chad Fowler — талантливый Ruby-разработчик, известный докладчик на конференция, посвящённых Ruby и IT в целом. Бывший саксофонист, а сейчас — CTO 6Wunderkinder.

        В книге говорится о разных аспектах карьеры программиста, даются интересные советы как начинающим разработчикам, как так устоявшимся профессионалам. Книга состоит из 53 глав (кроме того, после некоторых глав есть интересные рассказы, один из которых уже дважды переводили на Хабре). Главы достаточно независимы и можно знакомиться с ними в любом порядке. Книга понравится многим программистам, которым интересен взгляд заслуженного профессионала на современную карьеру в IT. И конечно, я рекомендую купить данную книгу в электронном или печатном виде в знак благодарности автору.
        Читать дальше →
      • Система плагинов как упражнение на C++ 11

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

          Имеет ли смысл что-то подобное писать или взять готовое решение. Свое видение по этому вопросу я описывал в статье «О желании изобретать один и тот же велосипед снова и снова». Так что в данной статье не будет философии на тему «А зачем оно нужно».

          Ранее я уже публиковал статью «Своя компонентная модель на C++», в которой была разработана компонентная / плагинная модель, живущая в рамках процесса. Для меня решение подобной задачи интересно. В gcc 4.7.2 уже появилось все, что мне было интересно на момент начала этой статьи, а это начало этого (2013) года. И тут я дорвался до C++ 11… На работе в одном направлении, дома в другом. Чтобы поиграться с C++ 11 я и решил переписать материал из старой статьи с новыми возможностями языка. Сделать в некотором смысле упражнение на C++. Но в силу некоторых причин мне не удавалось довести материал статьи до конца более полугода, и статья провалялась в черновиках нетронутой. Достал, стряхнул нафталин. Что из этого получилось можете прочесть далее.
          Читать далее
        • Руководство по разработке модулей расширений на C# для Visual Studio 2005-2012 и Atmel Studio

            Плагины для C#

            Аннотация


            Около года назад мы опубликовали в блоге цикл статей о разработке плагинов для Visual Studio на языке C#. Сейчас мы переработали эти материалы, добавили новые разделы и предлагаем вашему вниманию новый вариант руководства.
            Читать дальше →
            • +45
            • 30,6k
            • 6
          • «Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio

            Привет Хабралюди!
            Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее.

            Содержание:


            Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров. Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Так же вы узнаете о самом важном классе, который находится в самом сердце Boost.Asio — io_service.

            Читать дальше →
            • +42
            • 104k
            • 9
          • Всё, что вы хотели знать о динамическом программировании, но боялись спросить

              Я был крайне удивлён, найдя мало статей про динамическое программирование (далее просто динамика) на хабре. Мне всегда казалось, что эта парадигма довольно сильно распространена, в том числе и за пределами олимпиад по программированию. Поэтому я постараюсь закрыть этот пробел своей статьёй.

              # Весь код в статье написан на языке Python
              

              Основы


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

              Динамическое программирование — это когда у нас есть задача, которую непонятно как решать, и мы разбиваем ее на меньшие задачи, которые тоже непонятно как решать. (с) А. Кумок.
              Читать дальше →