Разработка под Android → Как ускорить эмулятор Android на 400%
Последние несколько месяцев я работал над SDK для Android, входящим в платформу управления контентом Nuxeo. Особенно много работы было в последнее время, с приближением официального релиза SDK. Я хочу поделиться несколькими практическими советами по поводу разработки под Android, в частности тестирования и эмуляции. Уже после нескольких дней разработки я понял, что работа с эмулятором Android — не сахар, потому что он чудовищно медленный.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
Начнём с того что он медленно запускается, но даже если использовать для ускорения запуска снапшот состояния, выполнение кода все равно происходит медленно, особенно в режиме отладки.
Тонкая настройка параметров Qemu не слишком помогла — скорость работы эмулятора осталась медленной, возможно именно поэтому большинство разработчиков предпочитает использовать реальные устройства, подключенные по USB.
В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
Песочница → Хакинг Dandy игр. На примере Road Fighter из песочницы
Я хочу рассказать про принцип хакинга игрушек для игровой приставки Dandy (она же Nintendo Entertainment System, она же Famicom, она же 100500 китайских клонов, далее по тексту просто NES).
Хакинг (а точнее модинг, но в эмусцене более распространён термин «ROMхакинг») игры будет заключаться в частичном дизассемблировании кода игры и написания своего небольшого кода. Принципиально РОМхакинг почти не отличается от обычного «крэкинга» программ или написания трейнеров для игр.
Жертвой будет небольшая игрушка, завсегдатая китайских катриджей многоигровок 9999999 in 1, игра Road Fighter.
Хакинг (а точнее модинг, но в эмусцене более распространён термин «ROMхакинг») игры будет заключаться в частичном дизассемблировании кода игры и написания своего небольшого кода. Принципиально РОМхакинг почти не отличается от обычного «крэкинга» программ или написания трейнеров для игр.
Жертвой будет небольшая игрушка, завсегдатая китайских катриджей многоигровок 9999999 in 1, игра Road Fighter.
Linux для всех → В JSLinux теперь есть Интернет
Как предвидел amarao, оргия началась.
Для JSLinux был разработан эмулятор модема. Теперь в эмуляторе можно получить доступ к Интернет. Предлагаю видеопрезентацию данного чуда.
Для JSLinux был разработан эмулятор модема. Теперь в эмуляторе можно получить доступ к Интернет. Предлагаю видеопрезентацию данного чуда.
Игровые приставки → Игровые приставки: лишний повод для ностальгии
Недаром говорится: все новое – это хорошо забытое старое. Именно так можно кратко охарактеризовать последние три модели игровых портативных приставок от компании Ritmix, которые подробно рассмотрим в настоящем обзоре.

Консольные игры прошлого столетия получили возможность «вздохнуть» второй раз после развития эмуляции на компьютерах, а через какое-то время и на смартфонах. Но после бурного развития игровой индустрии на PC интерес у «геймеров» к консольным играм прошлого столетия стал постепенно падать, хотя некоторые из них все же оставались популярными, в основном за счет смартфонов. Но…. не зря говорят, что Apple стреляет редко, но метко. После выхода первого яблочного телефона дизайн смартфонов стал стремительно меняться — экран у смартфонов стал расти, вытесняя кнопки и уменьшая их количество. А одного тач скрина для консольных игр не достаточно – важно именно наличие «аппаратных» кнопок. Так постепенно и стали забывать про игры, в которые когда-то играли миллионы. И тут, за счет реализации эмуляции на портативных приставках, удалось поднять интерес к консольным играм (в третий раз, возможно, что в последний); в частности, Ritmix выпустила целую линейку портативных приставок. Эти девайсы позволяют эмулировать игры от стационарных консолей Nintendo и Sega, и от серии портативных приставок Game Boy, и некоторые другие – об этом более подробно ниже.
Здесь хотелось бы рассказать о трех моделях – RZX-30, RZX-35 и RZX-40. Всего Ritmix выпустила 10 различных игровых приставок, но наибольший интерес представляют именно эти три, поскольку они дают возможность заливать игры в память, а не просто довольствоваться предустановленными играми.

Консольные игры прошлого столетия получили возможность «вздохнуть» второй раз после развития эмуляции на компьютерах, а через какое-то время и на смартфонах. Но после бурного развития игровой индустрии на PC интерес у «геймеров» к консольным играм прошлого столетия стал постепенно падать, хотя некоторые из них все же оставались популярными, в основном за счет смартфонов. Но…. не зря говорят, что Apple стреляет редко, но метко. После выхода первого яблочного телефона дизайн смартфонов стал стремительно меняться — экран у смартфонов стал расти, вытесняя кнопки и уменьшая их количество. А одного тач скрина для консольных игр не достаточно – важно именно наличие «аппаратных» кнопок. Так постепенно и стали забывать про игры, в которые когда-то играли миллионы. И тут, за счет реализации эмуляции на портативных приставках, удалось поднять интерес к консольным играм (в третий раз, возможно, что в последний); в частности, Ritmix выпустила целую линейку портативных приставок. Эти девайсы позволяют эмулировать игры от стационарных консолей Nintendo и Sega, и от серии портативных приставок Game Boy, и некоторые другие – об этом более подробно ниже.
Здесь хотелось бы рассказать о трех моделях – RZX-30, RZX-35 и RZX-40. Всего Ritmix выпустила 10 различных игровых приставок, но наибольший интерес представляют именно эти три, поскольку они дают возможность заливать игры в память, а не просто довольствоваться предустановленными играми.
Linux для всех → Эмулятор компьютера с linux на JavaScript
Никакой серверной части. Только JS: полноценный эмулятор компьютера с линуксом на борту.
bellard.org/jslinux/
(внимание, только хром и FF4)
Я долго с ним игрался — это не имитация, линукс ведёт себя как настоящий линукс — компилированные программы работают, ошибки в них вызывают segmentation fault, повреждение корневой файловой системы вызывает бурю возмущения в dmesg и т.д.

dd показывает при работе с памятью более чем приличную производительность — более 40 мб/с (не забываем, что это эмулятор, и что это JS в вашем браузере!).
Я никогда не думал, что мы доживём до подобного.
… А теперь начинается оргия:
* С использованием локального хранилища мы можем организовать диски (каждый key-value соответствует одному сектору).
* С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть.
* С использованием существующих технологий (NUMA, DRBD, corosync) можно организовать вычислительный кластер из браузеров.
(Кстати, показывать консоль в этом случае не обязательно — вы запускаете виртуальную машину у клиента в бэкграунде, виртуальная машина присоединяется к кластеру, начинает считать, по её аварийному завершению — закрытию браузера — кластер автоматически переконфигурируется).
Я это пишу как хохму, но в реальности, если у вас есть линукс и есть — у вас есть все возможности для работы чего угодно. Любые сетевые приложения, любые системы синхронизации и управления.
Никто не мешает создать паравиртуализированный драйвер видео с помощью canvas, у вас есть webGL, для которого можно написать свой вариант cuda и получить довольно мощную акселерацию вычислений…
Ну и финал — запуск хрома внутри эмулируемой виртуальной машины.
Итак, эмуляция дошла до браузеров…
bellard.org/jslinux/
(внимание, только хром и FF4)
Я долго с ним игрался — это не имитация, линукс ведёт себя как настоящий линукс — компилированные программы работают, ошибки в них вызывают segmentation fault, повреждение корневой файловой системы вызывает бурю возмущения в dmesg и т.д.

dd показывает при работе с памятью более чем приличную производительность — более 40 мб/с (не забываем, что это эмулятор, и что это JS в вашем браузере!).
Я никогда не думал, что мы доживём до подобного.
… А теперь начинается оргия:
* С использованием локального хранилища мы можем организовать диски (каждый key-value соответствует одному сектору).
* С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть.
* С использованием существующих технологий (NUMA, DRBD, corosync) можно организовать вычислительный кластер из браузеров.
(Кстати, показывать консоль в этом случае не обязательно — вы запускаете виртуальную машину у клиента в бэкграунде, виртуальная машина присоединяется к кластеру, начинает считать, по её аварийному завершению — закрытию браузера — кластер автоматически переконфигурируется).
Я это пишу как хохму, но в реальности, если у вас есть линукс и есть — у вас есть все возможности для работы чего угодно. Любые сетевые приложения, любые системы синхронизации и управления.
Никто не мешает создать паравиртуализированный драйвер видео с помощью canvas, у вас есть webGL, для которого можно написать свой вариант cuda и получить довольно мощную акселерацию вычислений…
Ну и финал — запуск хрома внутри эмулируемой виртуальной машины.
Итак, эмуляция дошла до браузеров…
Гаджеты. Устройства для гиков → FAQ по GPH Caanoo
Хочу рассказать о любимой консоли, которая является конкурентом семейству dingoo (A320-A330), которая также является портативной игровой консолью, цель которой — эмулировать старые игрушки, а также уметь кое что получше. Речь идёт о GPH Caanoo.

Сразу оговорюсь, что был счастливым обладателем dingoo A320 почти с самого момента её появления, в устройство прямо влюбился, летом прошлого года не пожалел и купил небольшой апгрейд — консоль GPH Caanoo. Поэтому мне она видится со стороны бывшего пользователя dingoo, и все преимущества/недостатки — в сравнении с dingoo a320.
Я не в коей мере не хочу ругать такое замечательное творение, как dingoo a320, напротив, за свою цену она была и остаётся прекрасной покупкой. Однако после некоторых экспериментов с dingoo (пара приложений на SDL, консольных и графических, читалка) захотелось немного больше гибкости. Наткнулся на Caanoo, уже будучи знакомым с такого рода системой, и она меня покорила. Чем — пишу ниже.

Сразу оговорюсь, что был счастливым обладателем dingoo A320 почти с самого момента её появления, в устройство прямо влюбился, летом прошлого года не пожалел и купил небольшой апгрейд — консоль GPH Caanoo. Поэтому мне она видится со стороны бывшего пользователя dingoo, и все преимущества/недостатки — в сравнении с dingoo a320.
Я не в коей мере не хочу ругать такое замечательное творение, как dingoo a320, напротив, за свою цену она была и остаётся прекрасной покупкой. Однако после некоторых экспериментов с dingoo (пара приложений на SDL, консольных и графических, читалка) захотелось немного больше гибкости. Наткнулся на Caanoo, уже будучи знакомым с такого рода системой, и она меня покорила. Чем — пишу ниже.
Mac OS X → История о том, как достучаться с Mac до серверного RMM-модуля, но не без Windows из песочницы
Странное стечение обстоятельств вынудило меня сегодня заняться решением, из разряда вещей простых, но несовместимых, о чем и хочу вам рассказать. Как водится, начну издалека, здесь будет много мыслей, маленьких размышлений и совсем микроскопичесиких отвлечений, так что, у желающих будет замечательная возможность пропитаться духом истории и попутно подумать и о своем. История будет и про сервера, и про Windows и Mac OS, про админские будни и праздники, и даже (немного) про Java.
Opera → Эмуляция фич IE9 в Opera

Начало
Доброго времени суток, уважаемое хабрасообщество.
Трудные времена прошли, и, после долгих препираний, меня таки уговорили написать топик о своем расширении для Opera.
Итак, с чего же все началось. В Internet Explorer 9 появилось несколько интересных фич, которые меня как любителя альтернативных браузеров сильно задели. Одна из таких — Site Pinning (возможность закреплять страницы вместе с собственными меню на таскбаре Windows 7 и впоследствии открывать их, получать на них уведомления с сайтов в виде изменения фавиконов и прочее).
Разумеется, для реализации такой функции без нативной поддержки браузера не обойтись, но все же хотелось сделать эмулятор, который выжмет с этих возможностей сайта максимум.
Cisco → Виртуальная лаборатория для подготовки к сертификации Cisco на базе Linux из песочницы
Введение

Многие при подготовке к сдаче экзаменов Cisco или просто изучения сетей для практических занятий предпочитают собрать и использовать лабораторию из реального железа. В таком случае одним из выходов является покупка подержанного цисковского железа на Ebay, но это вам обойдется не в одну сотню долларов.
Другие довольствуются использованием симулятора сети — Cisco Packet Tracer. Для подготовки к CCNA я использовал именно его. Он прост в использовании, удобен, не требует сильного железа и идеально подходит для начинающих. Но из-за ограниченности в функциях для более серьезного изучения он непригоден.
Если же вы не хотите тратить свои кровные $$ и получить устройства с реальными IOS-ами, то нужно смотреть в сторону использования эмулятора сети GNS3 на базе Dynamips. Введение в его использование уже есть на Хабре.
Я же расскажу как его можно соединить с хостовой ОС Linux (на котором он запущен) и серверами в VirtualBox-е. Это значительно расширяет наши возможности по созданию сложных топологий с использованием роутеров Cisco, серверов с различными сервисами в VirtualBox и выходом в Интернет через хостовую ОС Linux.