С 12 по 14 апреля в Нижнем Новгороде прошел очередной, 25-ый, конкурс разработчиков HackDay. За два рабочих дня, которые для всех остальных людей являются выходными, участникам предстояло воплотить заранее придуманную или тут же пришедшую в голову идею в более или менее работоспособный проект. Отличие этой итерации HackDay от предыдущих состояло в том, что компания Intel устроила тут нечто вроде «конкурса в конкурсе» и предложила программистам попробовать свои силы в создании приложений на Perceptual SDK. Победителя конкурса ждал хороший приз – ультрабук. Ну а теперь небольшой отчет о том, как все было.
Читать полностью »
Рубрика «ненормальное программирование» - 107
HackDay #25 в Нижнем Новгороде – теперь с конкурсом Intel
2013-04-19 в 4:18, admin, рубрики: hackday, Perceptual SDK, Блог компании Intel, ненормальное программирование, разработка, метки: hackday, Perceptual SDKПромышленные сети в контексте четвертой промышленной революции
2013-04-17 в 4:47, admin, рубрики: Realtime, x86, Блог компании Intel, ненормальное программирование, роботы, Сетевые технологии, метки: Realtime, x86, роботы
Сначала небольшое историческое отступление о том, что такое четвертая промышленная революция, анонсированная в прошлом году.
- Появление промышленности. Первая промышленная революция произошла в начале XIX века и была связана с массовым переходом от использования мускульной силы к энергии парового двигателя. Ключевые технологии — паровой двигатель, фабрика. Появилась возможность массового производства, но его продукты стоили дорого.
- Массовое производство. Вторая революция случилась в начале 20 века, и ознаменовала начало дешевого массового производства. Ключевые технологии — конвейер и Тейлоризм. Продукты массового производства подешевели на порядок.
- Автоматизация. Третий переворот в промышленности произошел в 80-е годы. Станки с ЧПУ и роботы сделали современные фабрики практически безлюдными. (Аутсорсинг ручного труда в развивающиеся страны сгладил эту тенденцию.) Продукты массового производства подешевели еще на порядок (стало дешевле выкинуть, чем чинить).
- Децентрализация. Революция четыре точка ноль происходит сейчас. Ключевая технология — конвергенция промышленности и IT, 3д принтеры. Появляется возможность производства мелкой серии или уникального продукта по цене, приближающейся к стоимости того же самого в крупной серии.
Это немецкий взгляд на 4 четыре фазы развития промышленности. Существует еще и американский, который не разделяет третью и четвертую фазы.
Мне кажется, во вступлении я написал слишком много общих фраз и слишком мало технического хардкора. Исправлю это под катом, описав некоторые технические детали о промышленных сетях и продуктах Intel, связанных с ними (+ еще одна картинка с роботом).
Читать полностью »
Несколько подробностей об std::string
2013-04-10 в 21:01, admin, рубрики: c++, linux, ненормальное программирование, метки: c++Недавно заинтересовался реализацией std::string в libstdc++. Не в связи с принятием нового стандарта, а чтобы разобраться. Благо требования к строковму типу почти не изменились.
Основным средством для анализа кода несомненно является метод пристального вглядывания, но чтобы сузить область вглядывывания и сделать процедуру более захватывающей можно реализовать для строки идиому «трассер» подсмотренную в «C++ Templates: The Complete Guide». Трассировка позволяет выявлять подозрительные интересные операции над строками.
Как известно, std::string это псевдоним для std::basic_string<char>
и нам ничего не мешает определить std::basic_string<X>
. В X можно определить несколько статических счетчиков и итерировать их в конструкторе, деструкторе и остальных методах. Выполняя разные операции над такой строкой можно будет проследить эффективность применяемых алгоритмов в терминах количества операций.
Кроме того, в g++ для std::string a(«entrails»);
выражение
std::cout << reinterpret_cast<char*>(*((void**)(&a)));
выведет содержимое строки. Т.е. std::string — является, по сути, указателем на char.
Вобщем, эти и другие шокирующие поднобности под катом. Читать полностью »
Кроссворд из регулярных выражений: интерактивная версия
2013-04-09 в 9:36, admin, рубрики: css3 transform, html, javascript, кроссворд, ненормальное программирование, Регулярные выражения, метки: css3 transform, html, javascript, кроссворд, регулярные выражения Вдохновлённый недавним постом и комментарием к нему, решил сделать аналогичную интерактивную версию.
Есть навигация с клавиатуры, подсветка активных строк, а также индикация соответствия строки регулярному выражению. Для удобства подсказки выделенной ячейки поворачиваются горизонтально.
Разметка – чистый HTML+CSS3.
Почти работает в последних версиях популярных браузеров. В IE9 глючит навигация мышкой, в FF и Opera наблюдаются проблемы с производительностью. И только Chrome – 100% OK.
Буду благодарен за советы по оптимизации.
Ссылка – вот. Детали реализации – под катом.
Читать полностью »
Связные списки в функциональном стиле
2013-04-06 в 16:40, admin, рубрики: javascript, замыкания, ненормальное программирование, структуры данных, функциональное программирование, метки: замыкания, структуры данных, функциональное программированиеРассмотрим вариант реализации связных списков через замыкания.
Для обозначения списков будем использовать нотацию, похожую на Haskell: x:xs
, где x
— начало списка (head
), xs
— продолжение (tail
).
В качестве языка реализации я выбрал JavaScript.
Конструируем список
Как слушать радио с использованием powershell и node.js
2013-04-05 в 21:06, admin, рубрики: mp3, nodejs, powershell, proxy, ненормальное программирование, метки: mp3, nodejs, powershell, proxyЧасть первая: powershell и mci.
Используемая операционная система — Windows 7.
Первый вопрос, который возникает: как воспроизвести mp3 в powershell?
Ранее на хабре были упоминания подобного вопроса:
Как воспроизвести mp3 из командной строки в Windows 7?
Как же все-таки пользоваться PowerShell?
Ввиду отсутствия удовлетворительного ответа, было принято решение использовать Media Control Interface или mci.
Плюсы следующие: встроенность в систему, достаточная низкоуровневость, есть возможность посылать команды в виде строки.
Многим mci известен по ответу на вопрос: «как программно отрыть устройство чтения-записи компакт дисков?», хотя предоставляет много других возможностей. Ниже приведены некоторые сценарии использования.
Извлечение CD-ROM:
mci 'set cdaudio door open'
Воспроизведение локального mp3-файла:
mci 'play C:\temp\Kalimba.mp3'
mci 'status C:\temp\Kalimba.mp3 mode'
Запись в wav-файл:
mci 'open new type waveaudio alias RecWavFile'
mci 'set RecWavFile bitspersample 16 samplespersec 44100 channels 2'
mci 'record RecWavFile'
mci 'stop RecWavFile'
mci 'save RecWavFile C:\temp\RecWavFile.wav'
mci 'close RecWavFile'
mci 'play C:\temp\RecWavFile.wav wait'
Простой вариант воспроизведения потока из сети:
mci 'play http://some-radio-server.com:80/some-radio-channel.mp3'
Нейронные сети как метод хранения конфиденциальной информации
2013-04-03 в 7:41, admin, рубрики: Алгоритмы, конфиденциальные данные, нейронные сети, ненормальное программирование, паранойя, метки: конфиденциальные данные, нейронные сети, ненормальное программирование, паранойя Одним из применений нейронных сетей является ассоциативная память. Классический пример – хранение классификации каких-либо объектов по входным данным. Но немного модифицировав алгоритм взаимодействия с сетью, можно в ней хранить длинные строковые или бинарные данные, получаемые по ключ-паролю, что также позволяет добиться также добиться высокой криптоустойчивости данных
Читать полностью »
4-числовая система нумерации версий с датой и минорами
2013-04-02 в 17:28, admin, рубрики: javascript, regexp, ненормальное программирование, Регулярные выражения, метки: regexp В расширениях Хрома принято указывать версию скрипта в виде не более чем 4 чисел, разделённых точками, и величиной не более 32767 каждое и не начинающихся с цифры 0. Этого более чем достаточно, если в номер версии включены обычные данные: версия, подверсия, сборка. Если в версию хотим поместить дату в виде 3 чисел, то в наиболее удобной для чтения записи (версия.год.месяц.день) числа года, месяца и дня занимают 3 места из 4. На версию остаётся первое число (как более приоритетное перед датой), а на подверсию и минор ничего не остаётся. Задача: как расположить минорную версию, чтобы уложиться в формат, чтобы дата была читаемой, а версия с минором при сравнении 2 строк занимала правильное место в ряду версий? Кроме того, нужна процедура выделения даты и версии с минором из общей строки.
Читать полностью »
«Жемчужный» доступ к 1С: Предприятию 8.2
2013-03-31 в 12:36, admin, рубрики: 1c 8.2, 1c:предприятие, OLE, perl, Администрирование баз данных, ненормальное программирование, метки: .com, 1c 8.2, 1c:предприятие, OLE, perlДумаю, всем вам известен такой программный продукт, как 1С: Предприятие 8.2. И, наверное, многим из вас известен тот факт, что к 1С: Предприятию можно подключиться, используя OLE/COM-соединение. А многие ли из вас знают, что с помощью OLE/COM-соединения можно не только выполнять программный код 1С, но и “управлять” сервером 1С: Предпрития? К примеру, можно подключиться к Агенту кластера серверов 1С: Предприятия, получить список открытых клиентских сессий, прочитать информацию о выданных им лицензиях… К тому же, наличие варианта подключения посредством OLE/COM-соединения расширяет в арсенале программиста добавляет возможность выбора языка программирования, отличного от встроенного языка 1С: Предприятия. Можно выбрать любой язык, который способен работать с OLE/COM-компонентами: будь то VB.Net, C#.Net, или Java, или даже… Perl. Да, вы не ослышались. Именно Perl.
Итак…
Задача.
Необходимо реализовать автоматический рестарт службы Агент сервера 1С: Предприятия 8.2 с помощью планировщика задач Windows. Но перед рестартом необходимо проверить, не работает ли кто-нибудь в базе Base, расположенной на сервере 1С: Предприятия. Если кто-нибудь работает, то перезапуск службы недопустим.
RPG-игра в рабочей книге Excel
2013-03-27 в 6:30, admin, рубрики: Excel, game development, rpg, vba, ненормальное программирование, Софт, метки: Excel, rpg, vba
Бухгалтер из Торонто по имени Кэри Уолкин (Cary Walkin) никогда не занимался разработкой компьютерных игр, но в совершенстве освоил Excel. Этого оказалось достаточно для создания RPG-игры, которая работает на макросах VBA, встроенного языка программирования Excel.
Читать полностью »