Архив за 16 апреля 2013

Здравствуйте, уважемые читатели!
Недавно, читая хабр, я увидел статью об Android NDK и OpenAL. А в комментариях был задан вопрос о OpenSL ES. Тогда у меня и родилась мысль написать статью об этой библиотеке. Я занимался этой темой, когда мне понадобилось добавить звуки и музыку в игру под Android, написанную на C++, под NDK. Статья не претендует на полноту, здесь будут лишь основы.

Содержание:

  1. Краткое описание структур OpenSL ES
  2. Инициализация механизма библиотеки и создание объекта для работы с динамиками
  3. Проигрывание PCM(wav)
  4. Проигрывание MP3, OGG
  5. Заключение

Читать полностью »

Легенда гласит, что прототип Лексикона — многооконный редактор Е-9 — был задуман молодым сотрудником ВЦ АН СССР Женей Веселовым в отпускные дни доперестроечного 84-го на крымском пляже, а с целью ускорения тестирования автор одно время выставлял обнаружившим ошибки пользователям по бутылке пива. Хотя метод оправдал себя и программа быстро стала работоспособна, с сожалением приходится отметить, что маркетинговая политика последующих правообладателей не столь свежа — пива больше не дают. Вскоре печатающий по-русски и понятный без изучения на специальных курсах Лексикон широко распространился по стране, став «русским народным текстовым редактором». Прошли и вновь грядут технические революции в области компьютеров, исчез СССР, а с разменявшим второй десяток лет Лексиконом для ДОС по российским и сопредельным городам и весям и сегодня работают тысячи людей.

Так рассказывает Григорий Шмерлинг, присоединившийся к разработке Лексикона несколько позже, и под конец бывший «Руководителем Проекта „Лексикон“».

Вне всякого сомнения, Лексикон — легендарный программный продукт. Но таким он стал не сразу; а и став, оставался им не слишком долго.

Лексикон и пираты

В 1990 Лексикон упоминается в числе «известных прикладных систем» наряду с Lettrix — резидентным драйвером американской разработки, который перехватывал вывод текста на принтер, и подменял его на графический вывод с применением пользовательских шрифтов. Название LEXICON в той статье набрано латиницей, и непонятно, осознавал ли её автор, что Лексикон создан его соотечественниками, а не «экспроприирован у буржуев» вместе с большей частью ПО того времени. Никакой организованной «модели распространения» у Лексикона тогда не было — каждый списывал его у соседа вместе с ворохом других «полезных программ», не задумываясь ни на минуту, откуда эти программы взялись и не ожидает ли их разработчик мзды за их использование.
Какой разработчик? Где? Где-то там за океаном? Ух, капиталисты зажравшиеся! (потрясает кулаком)

Статья "Как продавать программы в России, или Ягодки коммерческого директора" Ольги Усковой из Cognitive Technologies (в следующий раз я хочу выложить её статью целиком) относится к 1995 г., но начинается в подобном духе: «Полтора года назад в России бытовало представление, что программа — это такая штука, которую ученые чудаки или наивные инофирмы бесплатно предоставляют находчивым российским пользователям. Иметь лицензированную копию считалось так же стыдно, как покупать билет в общественном транспорте или соблюдать правила дорожного движения. Обсуждение психологических аспектов этой проблемы пришлось бы начинать со времен Ивана Грозного...»

Тем временем команда Веселова с Лексиконом кочевали в поисках финансирования от одного оптимистично настроенного кооператива к другому, и в итоге они заключили союз с советско-венгерским СП «Микроинформ», до той поры занимавшимся торговлей компьютерным оборудованием и проведением компьютерных курсов. Плодотворное сотрудничество программистов и бизнесменов увенчалось выпуском в 1992 г. нарядных коробок с Лексиконом версии 8.96, переименованной по этому поводу в Лексикон 1.0. Лишь с этого момента разработка Лексикона стала коммерческим предприятием, и нелегальное копирование начало беспокоить разработчиков (вернее, их спонсоров в Микроинформе). Изначально же мотивы Веселова были куда проще — «захотелось написать что-нибудь получше только для того, чтобы легче было вводить и редактировать собственные программы и статьи. Получился редактор Е-9, названный так потому, что в нем было девять окон, и он превратился потом в „Лексикон“ путем добавления десятого окна и меню в стиле Lotus 1-2-3.»
Читать полностью »

Компания UDOO запустила кампанию на Kickstarter.com.Убийца Raspberry Pi
Компания UDOO запустила кампанию на Kickstarter.com по сбору средств на одноименную процессорную плату. При размере сходном с Raspberry Pi плата укомплектова двумя процессорами: четырёхядерным CPU Freescale i.MX6 1GHz на базе ARM Cortex A9 и Atmel ARM SAM3X. Указанная особенность делает UDOO гибридом Raspberry Pi и Arduino, позволяющим с одной стороны выполнять полноценные ОС на базе Linux и Android, а с другой стороны обеспечить совместимость на уровне приложений, аналоговых и цифровых портов ввода/вывода с платой Arduino DUE, что позволяет использовать UDOO в системах автоматизации и управления, рассчитанных на работу с Arduino.
Читать полностью »

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

Таксофоны кажутся пережитком прошлого, если вы родились в поколении смартфонов. Но стоит добавить несколько функций, например таких, как Wi-Fi точка доступа, автомобильное зарядное устройство, taxi-hailing и таксофоны могли бы легко найти место в нашей жизни, начиная с Нью-Йорка.
Читать полностью »

Вступление

Моя прошлая статья была посвящена особенностям строкового типа данных String в .NET. Эта статья продолжает традицию, однако на этот раз мы рассмотрим класс StringBuilder.

Как известно, строки в .NET являются неизменяемыми (не используя unsafe), а поэтому проводить с ними операцию конкатенации в больших количествах не самая лучшая идея. Это значит, что следующий код имеет весьма серьезные проблемы с нагрузкой на память:

string s = string.Empty;
for (int i = 0; i < 100; i++)
 {
    s += "T";
 }

Читать полностью »

Обновление информации в фоне Revisited, или long polling для ретрограда

Привет! В данном посте я хочу поделиться своим вариантом использования схемы обновления данных, описанной в статье читателя zim32, в одном простеньком вебдванольном приложении.

Disclaimer: Да не введет вас в заблуждение наличие термина «long polling» в заголовке. Это всего лишь присказка, а сказ о другом. Читать полностью »

Доброго времени чтения, уважаемые участники habrahabr.ru

Туннельное моделирование — способ моделирования, основанный на использовании сочетания уровня абстрактности (девятиуровневом расширении модели взаимодействия  открытых систем) и цикла Деминга.
Читать полностью »

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

Читать полностью »

Сегодня компания Oracle выпускает плановый набор Critical фиксов для Java. Обновления затрагивают Java SE (Standart Edition) версий 7 (7u15 и ниже), 6 (6u43 и ниже), 5 (5u41 и ниже). Исправлению подлежат 42 уязвимости, 39 из которых относятся к типу Remote Code Execution и могут быть успешно применены без фактической аутентификации, т. е. удаленно по сети, без применения логина и пароля для входа на удаленную систему (потенциальный drive-by installation).

Читать полностью »

Эрик Шмидт (Eric Schmidt), председатель совета директоров корпорации Google, оказался одним из приглашенных на пресс-конференцию D: Dive Into Mobile 2013. Во время беседы глава Google высказал свое мнение о готовящихся к выпуску смартфонах Motorola Mobility и привел статданные по активации мобильных устройств под управлением Android.

Эрик Шмидт отвечает на вопросы ведущих D: Dive Into Mobile 2013

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js