• Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

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

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

      Итак, магия:


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

      Читать дальше →
    • Визуализация concurrency в Go с WebGL

        Одной из самых сильных сторон языка программирования Go является встроенная поддержка concurrency, основанная на труде Тони Хоара «Communicating Sequential Processes». Go создан для удобной работы с многопоточным программированием и позволяет очень легко строить довольно сложные concurrent-программы. Но задумывались ли вы когда-нибудь, как выглядят различные паттерны concurrency визуально?

        Конечно, задумывались. Все мы, так или иначе, мыслим визуальными образами. Если я попрошу вас о чём-то, что включает числа «от 1 до 100», вы мгновенно их «увидите» в своей голове в той или иной форме, вероятно даже не отдавая себе в этом отчёт. Я, к примеру, ряд от 1 до 100 вижу как линия с числами уходящая от меня, поворачивающая на 90 градусов вправо на числе 20 и продолжающая до 1000+. И, покопавшись в памяти, я вспоминаю, что в самом первом детском саду в раздевалке вдоль стены были написаны номерки, и число 20 было как-раз в углу. У вас же, вероятно, какое-то свое представление. Или вот, другой частый пример — представьте круглый год и 4 сезона года — кто-то их видит как квадрат, каждая грань которого принадлежит сезону, кто-то — как круг, кто-то ещё как-то.

        Так или иначе, позвольте мне показать мою попытку визуализировать основные паттерны concurrency с помощью Go и WebGL. Эти интерактивные визуализации более-менее отражают то, как я вижу это в своей голове. Интересно будет услышать, насколько это отличается от визуализаций читателей.

        Читать дальше →
      • Почему OpenVPN тормозит?

          Описанная проблема присуща только ветке OpenVPN 2.3, в 2.4 размеры буферов не меняются без требования пользователя.

          Время от времени, мне встречаются темы на форумах, в которых люди соединяют несколько офисов с использованием OpenVPN и получают низкую скорость, сильно ниже скорости канала. У кого-то это может быть 20 Мбит/с при канале в 100 Мбит/с с обеих сторон, а кто-то еле получает и 400 Кбит/с на 2 Мбит/с ADSL/3G и высоким пингом. Зачастую, таким людям советуют увеличить MTU на VPN-интерфейсе до чрезвычайно больших значений, вроде 48000, или же поиграться с параметром mssfix. Частично это помогает, но скорость внутри VPN все еще очень далека от канальной. Иногда все сваливают на то, что OpenVPN — userspace-решение, и это его нормальная скорость, учитывая всякие шифрования и HMAC'и. Абсурд!

          Немного истории

          На дворе июль 2004 года. Типичная скорость домашнего интернета в развитых странах составляет 256 Кбит/с-1 Мбит/с, в менее развитых — 56 Кбит/с. Ядро Linux 2.6.7 вышло не так давно, а 2.6.8, в котором TCP Window Scale включен по умолчанию, выйдет только через месяц. Проект OpenVPN развивается уже 3 года как, к релизу готовится версия 2.0.
          Один из разработчиков добавляет код, который устанавливает буфер приема и отправки сокета по умолчанию в 64 КБ, вероятно, чтобы хоть как-то унифицировать размер буфера между платформами и не зависеть от системных настроек.
          Читать дальше →
        • Откуда есть пошло комплексное число

          В современной математике комплексное число является одним из фундаментальнейших понятий, находящее применение и в «чистой науке», и в прикладных областях. Понятно, что так было далеко не всегда. В далекие времена, когда даже обычные отрицательные числа казались странным и сомнительным нововведением, необходимость расширения на них операции извлечения квадратного корня была вовсе неочевидной. Тем не менее, в середине XVI века математик Рафаэль Бомбелли вводит комплексные (в данном случае точнее сказать, мнимые) числа в оборот. Собственно, предлагаю посмотреть, в чем была суть затруднений, доведших в итоге солидного итальянца до подобных крайностей.
          Читать дальше →
        • Об удобной навигации и отладке C++ кода в Vim

            Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно.
            К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду.
            Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти:

            1. Автодополнение
            2. Навигация по коду
            3. Отладка прямо из среды
            4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep)

            Автодополнение в Vim — это решенная проблема, и название у решения YouCompleteMe. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования.

            Интеграция с Git в какой-то степени решена с помощью vim-fugitive. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо.

            Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком.
            Читать дальше →
          • СКАЛА — ЭВМ ЧАЭС, история создания

              imageСегодня исполняется 28 лет со дня чернобыльской катастрофы. На эту тему написано очень много статей, выдвинуто немало теорий о причинах взрыва, сделано множество расследований и выводов. В этой статье я постараюсь не касаться самой темы взрыва и последующей катастрофы, а расскажу о истории создания компьютера, который регулировал работу станции — о системе СКАЛА. Кому интересно — добро пожаловать под кат.
              Читать дальше →
            • История китайской космонавтики

                Собственно, мне в руки попал смартфон, который в полной мере поддерживает навигацию с использованием китайской навигационной системы 北斗(Большая Медведица). На рынок эти смартфоны должны выйти в середине-конце 2014 года, но дело не в этом.
                Я задумался о том, на чем же эта система работает, кто и что выводило эти спутники на орбиту и решил написать краткий обзор истории развития китайской космонавтики. Кому интересно — добро пожаловать под кат. Много тяжелых фотографий.


                Читать дальше →
              • Железо на службе у алгоритма (продолжение)

                  Борис Бабаян о прошлом, настоящем и будущем вычислительной техники


                  Борис Бабаян


                  Почти три месяца прошло с момента публикации первой части этой работы. Всё это время вызревала вторая часть и… наконец, созрела!

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

                  Поехали!
                • Марс вчера и сегодня. Краткая хроника роботов-геологов


                  Со времен пролета советской станции Марс 1 в 1963г, в окрестностях красной планеты побывало четыре десятка искусственных посланцев Земли, более 10 аппаратов достигли поверхности планеты. В сумме было получено огромное количество информации, изменившее навсегда наши представления о красной планете. Из возможной колыбели высших форм жизни, Марс предстал сухим и холодным миром.
                  Читать дальше →
                • Краткая история животных на обложках книг O’Reilly

                  • Translation
                  Думаю, никому из пользователей Хабрахабра не нужно представлять издательство O'Reilly и его книги, привлекающие взгляд графичными изображениями самых разных и, как правило, весьма странно выглядящих животных на своих обложках.image Эди Фридман, креативный директор O'Reilly Media, опубликовала на сайте animals.oreilly.com небольшой пост, в котором рассказала, как эти животные попали на обложки книг издательства.
                  Читать дальше →
                • Разоблачение 12 юридических заблуждений о программах для ЭВМ



                  Заблуждение / опасная привычка На самом деле … Наш совет прост:
                  1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

                  Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
                  − от соблюдения набора критериев, установленных законом;
                  − от необходимости документально доказать факт создания программы и свои права на них.

                  Неоформленный SOFT закон не охраняет.

                  Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
                  То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

                  Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
                  Оформляйте много хороших и разных документов при создании программ для ЭВМ:
                  — договоры с авторами;
                  — договоры с подрядчиками;
                  — технические задания;
                  — протоколы совещаний и тестов;
                  — соглашения между соавторами;
                  — авторское свидетельство;
                  — сертификат признания интеллектуальной собственности;
                  — спецификация РИД;
                  — свидетельство о регистрации программы для ЭВМ (Роспатент).
                  Читать дальше →
                • Лучшие компьютерные игры всех времен и народов по версии хабрасообщества 2013 года



                    Данный пост − попытка определить лучшие компьютерные игры всех времен и народов. Конечно, по версии нашего хабрасообщества. Ну и, разумеется, с годами предпочтения меняются, поэтому версия 2013 года.

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

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

                    Давайте установим срок, до которого продлиться наше обсуждение и голосование. Пусть это будет ночь с 12 на 13 марта. Думаю, что пяти с лишним полных дней будет вполне достаточно.

                    Мы построим свой музей компьютерных игр, Юзернейм!
                    Читать дальше →
                  • То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

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

                      Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

                      • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
                      • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
                      • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
                      • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
                      • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
                      • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
                      • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
                      • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
                      • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
                      • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
                      • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

                      Все это в деталях — под катом. Предупреждаю что клевых картинок там нет. Сплошное графоманство и ёрничанье.
                      Читать дальше →
                    • Microsoft заподозрила создателей комплекса распознавания террористов в плагиате


                        Российское представительство корпорации Microsoft заподозрило компанию «Комплексные технологии безопасности», разработавшую интеллектуальную систему распознавания террористов «Спартан 300», в плагиате, пишет газета «Известия». Корпорация попросила КТБ объяснить, почему в основу нового комплекса лег сенсорный контролер Kinect, используемый в игровых приставках Xbox 360, с заклеенным логотипом Microsoft.
                        Читать дальше →
                      • Между космосом и интернетом

                          Пару недель назад я написал про солнечные затмения со спутника «Электро-Л». Материал неожиданно набрал большое количество положительных отзывов, а я понял простую вещь: при всей скептичности, с которой в интернете принимается российская космонавтика, люди готовы гордиться отечественными достижениями, если они действительно есть. Для многих открытием стали фотографии «Электро-Л», а для научного центра, получающего снимки со спутника, открытием стал тот интерес, с которым люди ринулись на сайт и стали скачивать выложенные фотографии.
                          Буквально через неделю у меня появилась возможность посетить Научный Центр оперативного мониторинга Земли (НЦ ОМЗ) и попутно узнать, как фотографии с российских спутников попадают в интернет.

                          Читать дальше →
                        • Солнечные затмения с расстояния 36 тыс. км или почему мы об их космосе знаем больше чем о нашем

                            Я выбирал заголовок для этого текста из двух вариантов, но потом решил объединить. Многие уже привыкли, что я пишу о Curiosity или, в крайнем случае, о каком-нибудь достижении NASA. Сегодня я отойду от традиции, и поговорим о наболевшем родном — о русском исследовательском космосе. Нет, я не о том, что воруют и ничего не летает. Наоборот, кое-что летает, даже есть чем гордиться, хоть и не так много как хотелось бы. Я о чертовски бестолковой и зачастую провальной работе отделов по связям с общественностью нашей космической науки.
                            image
                            Читать дальше →
                          • 9 лет возможности на Марсе

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

                                На сайте Белого дома США несколько месяцев назад открыт сервис подачи петиций. За каждую петицию открыто голосование и если оно наберет более 25 тыс. голосов, то на него должен последовать официальный ответ Администрации президента. 14 ноября 2012 года там была опубликована петиция за начало финансирования и строительства «Звезды Смерти».
                                Сегодня петиция получила достойный официальный ответ.
                                image
                                Читать дальше →