• Распараллеливание алгоритма Штрассена на Intel® Xeon Phi(TM)

      Сопроцессоры Intel Xeon Phi(TM) представляют собой PCI Express устройство и имеют x86 архитектуру, обеспечивая высокую пиковую производительности — до 1,2 терафлопс (триллион операций с плавающей запятой в секунду) двойной точности на сопроцессор. Xeon Phi(TM) может обеспечивать одновременную работу до 244 потоков, и это нужно учитывать при программировании для достижения максимальной эффективности.

      Недавно мы вместе с компанией Intel проводили небольшое исследование эффективности реализации алгоритма Штрассена для сопроцессора Intel Xeon Phi(TM). Кому интересны тонкости работы с этим устройством и просто любящих параллельное программирование, прошу под кат.


      Читать дальше →
    • Как Cisco Security Ninja научили 20 тысяч сотрудников безопасному программированию?

        Когда вы слышите словосочетание “повышение осведомленности в области информационной безопасности”, то что вам первым приходит на ум? Обучение пользователей не открывать письма от посторонних и не кликать на фишинговые ссылки? Обучение способам распознавания социального инжиниринга? Отслеживание, чтобы никто посторонний не зашел в офис, как будто бы он с вами? У нас в Cisco такая программа тоже есть и мы тоже регулярно проходим соответствующее обучение. Но сегодня мне бы хотелось рассказать о другой нашей добровольной программе повышения осведомленности, которая была создана менее чем за полгода командой из всего четырех человек с бюджетом менее 50 тысяч долларов. Обратите внимание еще раз. Добровальная программа! Создана четырьмя людьми! Меньше чем за полгода! Всего за 50 тысяч долларов! А прошло обучение и успешно сдало экзамен по этой программе свыше 20 тысяч сотрудников Cisco — инженеров и разработчиков.
        Читать дальше →
      • Звуковые отпечатки: распознавание рекламы на радио

        Из этой статьи вы узнаете, что распознавание даже коротких звуковых фрагментов в зашумленной записи — вполне решаемая задача, а прототип так вообще реализуется за 30 строчек кода на Python. Мы увидим, как тут помогает преобразование Фурье, и наглядно посмотрим, как работает алгоритм поиска и сопоставления отпечатков. Статья будет полезна, если вы сами хотите написать подобную систему, или вам интересно, как она может быть устроена.
        Читать дальше →
      • Доказательство некорректности алгоритма сортировки Android, Java и Python

        • Translation
        Тим Петерс разработал гибридный алгоритм сортировки Timsort в 2002 году. Алгоритм представляет собой искусную комбинацию идей сортировки слиянием и сортировки вставками и заточен на эффективную работу с реальными данными. Впервые Timsort был разработан для Python, но затем Джошуа Блох (создатель коллекций Java, именно он, кстати, отметил, что большинство алгоритмов двоичного поиска содержит ошибку) портировал его на Java (методы java.util.Collections.sort и java.util.Arrays.sort). Сегодня Timsort является стандартным алгоритмом сортировки в Android SDK, Oracle JDK и OpenJDK. Учитывая популярность этих платформ, можно сделать вывод, что счёт компьютеров, облачных сервисов и мобильных устройств, использующих Timsort для сортировки, идёт на миллиарды.

        Но вернёмся в 2015-й год. После того как мы успешно верифицировали Java-реализации сортировки подсчётом и поразрядной сортировки (J. Autom. Reasoning 53(2), 129-139) нашим инструментом формальной верификации под названием KeY, мы искали новый объект для изучения. Timsort казался подходящей кандидатурой, потому что он довольно сложный и широко используется. К сожалению, мы не смогли доказать его корректность. Причина этого при детальном рассмотрении оказалась проста: в реализации Timsort есть баг. Наши теоретические исследования указали нам, где искать ошибку (любопытно, что ошибка была уже в питоновской реализации). В данной статье рассказывается, как мы этого добились.

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

          Я веду занятия по программированию для школьников. И наблюдаю проблему, в общем-то, очевидно, стандартную для всех школьников, особенно средних классов — у многих очень низкая скорость набора программного текста на клавиатуре.

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

          Когда я сам был школьником, у нас на занятиях по программированию была специальная (самописная) программа-тренажер, которая в качестве словаря использовала реальный словарь языка программирования (выдернутый из справки, насколько я помню). Я решил, что нынешним школьникам надо тоже сделать что-то подобное — чтобы они тренировались на фрагментах, которые реально будут встречаться в программах. При этом они не только будут увеличивать свою скорость набора, но еще и учить собственно программные конструкции.
          Читать дальше →
        • CERN планирует увеличение своих вычислительных возможностей до 150 000 ядер

            Париж, 1989 год — начало создания одного из величайших и дорогостоящих творений современности, Большого адронного коллайдера. Это событие несомненно можно назвать подвигом, но установка, образовавшая почти 27-километровое кольцо, вкопанное более чем на 90 метров под землёй на франко-швейцарской границе, бесполезна без огромных вычислительных мощностей и не менее огромного хранилища данных.


            Читать дальше →
          • Процесс разработки игры теперь можно транслировать в Twitch



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

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

              Читать дальше →
            • Как работают рекомендательные системы. Лекция в Яндексе

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



                План лекции:
                1. Виды и области применения рекомендательных систем.
                2. Простейшие алгоритмы.
                3. Введение в линейную алгебру.
                4. Алгоритм SVD.
                5. Измерение качества рекомендаций.
                6. Направление развития.

                Под катом вы найдете конспект лекции и презентацию
              • Как IT-специалисту сохранить свои финансы?

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

                  Однако российские реалии таковы, что даже хорошая зарплата сегодня, вовсе не означает сытого будущего хотя бы завтра, не говоря уж о более отдаленной перспективе. Не являясь специалистом в экономике или области финансов, я решил (прежде всего для себя), порассуждать на тему, а как же, собственно, нам, айтишникам, не потерять, и, в идеале, приумножить свои сбережения?
                  Читать дальше →
                • В поисках удобного источника питания, обзор внешнего аккумулятора на 6000мАч


                  Введение

                  В нашем институте введена бальнорейтинговая система, благодаря этому хочешь ты или нет, но для хорошей оценки необходимо посещать пары на 146%. Поэтому с каждым днем все острее становилась проблема смены Nokia x6, отсутствие приложений и сильные лаги браузера на каждой второй странице только ускоряли процесс. И вот, три месяца назад я приобрел Samsung Galaxy R с чипом Tegra 2, в первые дни аппарат из рук практически не выпускал, и быстрый разряд батареи списывал на излишний интерес к девайсу. Время шло, интерес постепенно спадал, и в конце концов установился на определенном уровне, но увы заряда аккумулятора не всегда хватало чтобы вернуться домой слушая музыку. В связи с этим начался поиск источников дополнительной энергии.
                  Осторожно, под катом 5Мб фотоматериалов.
                  Читать дальше →
                • Акселерометры смартфонов помогут искать ямы на дорогах

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

                    В отделении городской механики мэрии Бостона разработали программу Street Bump для Android, которая должна регистрировать все ямы на дороге и автоматически отправлять GPS-координаты дорожникам.
                    Читать дальше →
                  • Nokia N900. Продолжаем разбираться или «Hack your Nokia N900»

                      Добрый день уважаемый читатель. Продолжаю свой цикл статей о Nokia N900. Вот, вот и вот — предыдущие мои публикации.
                      Сегодня продолжим изучение аппарата, и сегодняшняя тема — это хак. Мы будем лезть в разные штуки и менять разные вещи, которые не предусмотрены для изменения разработчиками. Это делается очень легко и подвластно даже обычному пользователю, если у него будет желание. Я не буду рассказывать как пропатчить ядро или увести аппарат в высокопроизводительный режим, просто покажу несколько полезный улучшений, которые могут пригодиться каждому.
                      Предупреждение: автор не несет ответственности за причиненные повреждения вашему аппарату в процессе следования данным инструкциям. Вы все делаете на свой страх и риск.
                      Надеюсь не очень напугал? Могу сказать, что убить аппарат до такого состояния, что Вы не сможете его восстановить — практически нереально(но возможно!!! я знаю один случай). Но даже если у Вас получиться, то 99% сервисный центр Вам поможет. Но главное правило — будьте осторожны и читайте сначала, а потом делайте, и делайте аккуратно и обращайте пристальное внимание на последовательность действий, а главное на то, что выделено красным цветом (не зря же я это выделял).
                      image

                      Тут читай инструкции.
                    • Наглядно о ДНК



                        В институте Walter и Eliza Hall (Австралия), сделали несколько отличнейших анимаций о самых базовых процессах происходящих в нашем организме. Все процессы показаны в реальном времени.

                        1. Показано как молекула ДНК длинной ~1.8метра, упаковывается в хромосому.
                        2. Копирование ДНК с помощью молекулярной машины — Хеликазы.
                        3. Переписывание ДНК в РНК, чтобы произвести далее белок гемоглобин.
                        4. Перевод РНК в гемоглобин с помощью рибосомы.
                        5. Гемоглобин и Серповидно-клеточная анемия.

                        К сожалению у видео не очень хорошее качество. Пытался свести качественное видео с сайта института( оно там 600 x 480 ) с этим звуком — не сходится во многих местах ;(

                        Тут есть этот ролик, но без комментариев, зато в отличном качестве, а заодно и все остальные ролики по биологии. Большинство в 600x480. Апоптоз (программируемая смерть клетки), Диабет первого типа, Заражение малярией, Ответ имунной системы на заражение, злокачественная(рак) опухоли.
                        wehi.edu.au/education/wehi-tv
                      • GuruPlug Server — новая версия ультракомпактного Linux сервера размером с зарядное устройство

                          image

                          Ранее на Хабре уже упоминались предшественники этого компактного компьютера (ссылка #1 и ссылка #2)
                          Более ранняя модель в линейке называется SheevaPlug и продаётся по цене 99$.
                          Разработчики из Marvell пошли дальше и на выставке CES2010 были анонсированы новые модели —
                          GuruPlug Server и GuruPlug Server — PLUS (с расширенным функционалом).
                          Модель GuruPlug Server дополнительно имеет:

                          2 x Gb Ethernet
                          2 x USB 2.0
                          1x eSATA @ 3Gb/s SATAII
                          1x MicroSD Slot)

                          В двух словах, GuruPlug Server – PLUS это ультракомпактный компьютер, размером с зарядное устройство для AAA аккумуляторов, однако внутри установлен 1,2 GHz процессор, 512 RAM, адаптер Wi-Fi 802.11b/g,
                          Bluetooth: 2.1 / EDR, также имеются два порта USB 2.0 и два Ethernet-разъема, кроме этого имеется возможность подключения устройств по интерфейсам eSATA и SATAII, а также встроенный слот для карт памяти microSD.
                          Читать дальше →
                        • Открытый каталог математических загадок

                            Американский институт математики совместно с Национальным научным фондом открыли сайт AIM Problem Lists — систематизированный каталог нерешённых математических проблем, с подробным описанием каждой из них.

                            Для начала в каталог включили четыре категории тем.

                            Группы кос, кластеры и свободная вероятность
                            Низкие собственные значения операторов Лапласа и Шрёдингера
                            Эквиваленты гипотезы Римана
                            Гипотеза Римана и смежные проблемы

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

                            Со временем этот сайт станет отличным подспорьем для начинающих учёных, которые думают над выбором области исследований. Правда, работа может затянуться на годы и даже десятилетия, потому что некоторые задачи остаются нерешёнными уже очень долго.
                          • Написание базового wave-робота на python'e

                              Слава Роботам
                              По лету мне достался инвайт в гугльвейв песочницу. Но в этой самой песочнице было очень много народу, все волны были публичными, и мой бедный нетбук только с большим скрипом переваривал всю эту активность, так что, немного поигравшись, на сендбокс я забил :)

                              И вот недавно мой аккаунт в сендбоксе превратился в аккаунт в лайвпревью, и я, разослав инвайты тем, до кого добрался, и ожидая, пока хоть кто-то из знакомых их получит, сел разбираться с роботским апи.
                              Читать дальше →
                            • Подготовка статей для хабра: расширение Markdown + подсветка синтаксиса + загрузка изображений

                                Описание

                                Представляю вашему вниманию расширение «человеческого» языка разметки Markdown для использования на хабре.Основные цели:
                                • Заменить «человеко-читабельный», но отнюдь не «человеко-писабельный» HTML на Markdown.
                                • Обеспечить поддержку расширенной разметки хабра.
                                • Автоматизировать загрузку изображений и вставку их URL в статью.
                                • Добавить подсветку синтаксиса.
                                Читать дальше →
                              • multi_get — качаем сайты оптом

                                  Топик будет интересен тем, кто хочет индексировать Интернет-сайты на предельных скоростях (самодельные поисковики, анализы частоты слов, сервисы по анализу html'я и т.п.) Threading тут не дает предельных скоростей, urllib — тем более… Решение здесь в использовании асинхронных запросов из libcurl.

                                  Скорость?
                                  На 500MHZ (очень-очень слабенький VPS) — около 100 URLов в секунду (100 соединений, 2 процесса).
                                  На Amazon EC2 «High-CPU Medium Instance» (.2$/час) ~ 1200 URLов в секунду (300 соединений, 5 одновременных процессов). В один процесс до 660 URLов в секунду.

                                  Для выкачивания множества сайтов и дальнейшей обработки, хочу поделиться одной своей полезной функцией — multi_get — по сути она — удобный wrapper для CurlMulti (libcurl), модифицированный из их примера CurlMulti.

                                  >>> urls = ['http://google.com/', 'http://statcounter.com/']
                                  >>> res = {}
                                  >>> multi_get(res, urls, num_conn = 30, timeout = 5, percentile = 95)
                                  >>> res['http://google.com/']
                                  '<html><title>Google....
                                  # тут обрабатываем res, который содержит HTML всех для URL'ок
                                  Читать дальше →
                                • intv без рекламы

                                    надоела мне реклама на интв, вот и появился на свет такой букмарклет =)

                                    прям складно =), ну да ладно =).

                                    добавляем себе в фавориры вот эту строчку:

                                    javascript:des=prompt("postfix:");document.location='http://djung.org/tools/getFLV.php?u='+escape(window.location)+'&t='+des+'&v=video';

                                    у последнего параметра v есть ещё другие опции кроме video

                                    l — получаем ссылки на flv файлы в виде html

                                    t — просто текст с сылками на файлы

                                    kget — чтобы сразу начать качать менеджером закачек kget.