Quantcast
Channel: Android*
Viewing all 531 articles
Browse latest View live

Meshcentral.com - News update

$
0
0

Hi everyone. First, for people in the US, happy long weekend! I just wanted to give an update on what is going on with Meshcentral.com. Here is a lot of interest in the technology and so, I have been busy fixing and improving all sorts of things, most of the focus is on the server side and underlying peer-to-peer routing. But I got two fun things to report:

Intel Remote Wake.As annonced previously, Meshcentral supports Intel Remote Wake, this is a technology that allows users to wake up sleeping computers on the Internet. It's like an internet version of wake-on-lan. I have been improving the was I handle this feature on Intel based platforms in the last two weeks, with some more fixes coming soon. Motherboards with Intel Remote Wake are starting to be avaialble, one user pointed me to the ASRock web site where they show their users how to use Meshcentral.com to wakeup their PC remotely including from a cellphone.

Intel Developer Forum. This year Intel IDF is in San Francisco September 10 to 12th and I will be a speaker at a lab. I am just about to start working on the content that will focus on how to connect Intel Platforms to the cloud. What makes me excited about this presentation is the there are plenty of platform and processor features (Intel AMT, Intel Remote Wake, AES-NI, RANDRD, Wake-on-LAN, TPM) that can be used to connect platforms to the cloud. Since Meshcentral uses all of these, I will be able to help understand what all of these can do and how build them into your product.

Ok, that is it for now. Hope to see many of you at IDF!
Ylian
meshcentral.com

  • Mesh
  • MeshCentral
  • MeshCentral.com
  • p2p
  • Intel Remote Wake
  • Remote Wake
  • wake
  • Sleep
  • IDF
  • Developer Forum
  • IDF 2013
  • san francisco
  • Ylian
  • Icon Image: 

  • Meshcentral

  • Intel Software marcando presença no TDC São Paulo!

    $
    0
    0

    Na próxima semana a Intel Software participará do TDC São Paulo, que vai acontecer entre os dias 10 e 14 de Julho na Universidade Anhembi Morumbi.

    Em nosso stand você poderá conhecer melhor nossas tecnologias, as iniciativas do grupo de Software da Intel e nossas comunidades (Android, Servers/HPC, HTML5 e Ultrabooks/Windows).

    Venha conhecer nossos Community Managers e traga idéias e sugestões para que possamos sempre trazer o melhor para você!

    Durante o evento também iremos apresentar as seguintes palestras:

    Dia 10/07:

    Desenvolvendo Apps Multiplataforma para dispositivos móveis com HTML5 

    Palestrante: Jomar Silva

    Trilha: HTML5 e Javascript

    Horário: 13:10 às 14:00

    O desenvolvimento de aplicativos para dispositivos móveis multiplataforma é o grande desafio de hoje para que os desenvolvedores possam maximizar a audiência de seus Apps, minimizando o seu esforço para desenvolver e manter as aplicações. Um desafio adicional está relacionado com os ambientes de compilação destas aplicações, pois atualmente cada plataforma (iOS, Android, etc) demanda um ambiente específico para isso, portanto serviços na nuvem que realizam a compilação e empacotamento de aplicativos são fundamentais. Iremos abordar na palestra as APIs e serviços na nuvem existentes atualmente para auxiliar os desenvolvedores, além de apresentar exemplos de código de apps em HTML5 com acesso a recursos nativos (sensores) dos dispositivos móveis.

    Dia 11/07

    Afinal, o que é um Community Manager? 

    Palestrantes: Luciano Palma e George Silva

    Trilha: Marketing Digital

    Horário:11:10 às 12:00

    O cargo de Community Manager é bastante recente, e por isso suas fronteiras ainda estão me fase de definição. Venha para esta palestra para entender o que fazem os Community Managers da Intel em seu dia a dia, discutir este novo papel profissional e descobrir se este pode ser o seu próximo emprego. Principais abordagens: A importância das Comunidades para empresas - Perfil do Community Manager; - Técnicas, Ferramentas e Atividades do Community Manager; - Habilidades e conhecimentos aplicados no dia-a-dia por quem exerce este papel numa empresa líder de mercado.

    Computação Manycore: uma arquitetura muito além do multicore! 

    Palestrante:Luciano Palma

    Trilha:HPC

    Horário:14:10 às 15:00

    O uso de múltiplos cores e múltiplos threads em paralelo é fundamental para a Computação de Alto Desempenho. Dentro deste contexto, a Intel criou um chip com uma arquitetura inovadora que expande os limites da computação e aloja até 61 núcleos de processamento em um único chip e disponibiliza até 244 threads simultâneas. Venha conhecer a arquitetura Manycore, que é utilizada no computador mais potente do mundo, o Tianhe-2. Nesta sessão, apresentaremos a arquitetura de um sistema equipado com o coprocessador Intel Xeon Phi e mostraremos como tirar proveito de máquinas com altíssimo poder de processamento através de paralelismo.

    Dia 12/07

    Escreva sua app Android sem gastar energia

    Palestrante:George Silva

    Trilha:Android

    Horário:16:40 às 17:30

    As restrições das plataformas móveis, a concorrência e a facilidade dos usuários em recomendar ou criticar as aplicações tornaram o desafio dos desenvolvedores muito maior nas lojas de aplicativos. Além das preocupações com arquitetura e um bom plano de testes, as restrições de bateria e desempenho menor que as plataformas tradicionas exigem mais criatividade para encontrar o melhor balanço entre responsividade e consumo de energia. Nosso foco será apresentar um guia prático de como criar software eficiente no uso de energia, discutir quando precisamos lidar com o balanço entre resposta ao usuário e uso de energia visitando as principais ferramentas que auxiliam o desenvolvedor a melhorar o uso de energia e a responsividade de sua aplicação. Venha conhecer o trabalho que a Intel Software está fazendo no ecossitema Android que beneficia o desenvolvimento para todos dispositivos.

    Utilizando multi-touch e sensores com JavaFX e JNI 

    Palestrante:Felipe Pedroso

    Trilha:Java

    Horário:10:10 às 11:00

    Entenda os benefícios que a plataforma JavaFX traz no desenvolvimento de aplicações para Ultrabooks e quais são as novas formas de interação com esses dispositivos. Conheça também os desafios que o desenvolvedor enfrenta para utilização dos sensores presentes nesses dispositivos.

    Dia 14/07:

    Desafios na produção de games no Brasil 

    Palestrantes:Juliano Alves e Mauricio Alegretti

    Trilha:Games

    Horário:17:40 às 18:30

    Inovação na Experiência do Usuário: Apresentando o Intel Perceptual Computing SDK 

    Palestrantes:Felipe Pedroso

    Trilha:Games

    Horário:A definir

    Nos últimos anos a experiência proporcionada ao usuário vem se tornando um fator determinante para o sucesso das apps. A Intel apresenta o Intel Perceptual Computing SDK com um demo produzido pela parceira Smyowl. O SDK proporciona ao usuário uma interação mais natural, imersiva e intuitiva através de reconhecimento de voz, análise facial, reconhecimento de gestos com as mãos e dedos e rastreamento de objetos.

    Esperamos você lá!

  • windows 8
  • html5
  • android
  • HPC
  • ultrabook
  • Icon Image: 

    Отладка в ОС Android* на процессоре Intel® Atom™ с помощью JTAG

    $
    0
    0

    .

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

    В следующих главах мы рассмотрим решения для отладки на основе стандарта IEEE 1149.1 (JTAG). Мы обратим внимание на архитектурные различия между ARM* и Intel®, способные повлиять на отладку на уровне системы.

    1.1Отладка JTAG

    Для отладки системного ПО уровня ОС и драйверов устройств наиболее распространенным методом является использование интерфейса JTAG. Стандарт JTAG IEEE 1149.1 определяет стандартный тестовый порт доступа и архитектуру граничного сканирования для портов тестового доступа, применяемых для тестирования печатных плат. Этот стандарт часто называют просто интерфейсом отладки JTAG. Из стандарта тестирования печатных плат он превратился в ставший стандартом де-факто интерфейс для отладки платформ независимо от ОС и на уровне ОС.

    Дополнительные сведения о JTAG и его использовании в отладке современного ПО см. в статье Рэнди Джонсона и Стюарта Кристи "JTAG 101; IEEE 1149.x and Software Debug".

    С точки зрения производителей устройств, разработчиков приложений и драйверов, понимание взаимодействия между драйверами и программными компонентами в различных подсистемах микросхем и устройств важно для определения стабильности платформы. С точки зрения проверки микросхем низкоуровневый комплект ПО обеспечивает тестовую среду, позволяющую сымитировать факторы нагрузки, которым платформа будет подвергаться при ее реальном использовании. Для работы с современными системами требуется понимать, как работают все их компоненты вместе в реальной обстановке; положительных результатов тестирования отдельных компонентов недостаточно. Именно на этом уровне и используется отладка на базе JTAG. Благодаря связи JTAG с аппаратным уровнем можно экспортировать сведения о состоянии в ОС Android на целевом устройстве.

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

    Если рассматривать Android с точки зрения отладки системы, если изучить драйверы устройств и ядро ОС, то видно, что это просто специализированная разновидность Linux. С ней можно работать как с любой разновидностью Linux с ядром версии 2.6.3x или более поздней.

    Процессор Intel® Atom™ Z2460 поддерживает граничное сканирование IEEE-1149.1 и IEEE-1149.7 (JTAG), интерфейс параллельной трассировки MPI PTI, а также трассировку инструкций на базе Branch Trace Storage (BTS), Last Branch Record (LBR) и Architectural Event Trace (AET) с помощью порта Intel XDP, совместимого с JTAG.

    Различные поставщики JTAG предлагают решения для отладки систем с поддержкой Android, в том числе следующие:
    • Wind River (http://www.windriver.com/products/JTAG-debugging/)
    • Lauterbach (http://www.lauterbach.com)
    • Intel (http://software.intel.com - могут действовать ограничения доступа)

    1.2.  Отладка ОС Android

    Отладка платформ Android осложняется тем, что обычно система Android стремится перейти в состояние простоя и сна для оптимизации расхода электроэнергии. Таким образом, отладка режима пониженного потребления электроэнергии становится непростой задачей.

    • Можно поддерживать функциональность JTAG в некоторых состояниях пониженного потребления электроэнергии.
    • Там, где это невозможно, следует запускать JTAG сразу же после включения питания набора микросхем, отвечающего за работу JTAG.

    Многие проблемы уровня ОС на платформах такого типа обычно связаны и изменениями режима электропитания и последовательностями засыпания и пробуждения устройств.

    Системный отладчик на основе агента отладки или интерфейса JTAG очень полезен для решения ряда важных задач разработки ОС.

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

    Также отладчик дает возможность выявлять и устранять ошибки конфигурации ОС благодаря доступу к таблицам страниц, таблицам дескрипторов и дереву инструкций. Трассировка инструкций в сочетании с доступом к таблице памяти может быть полезно для выявления причин переполнения стека, утечки памяти и даже случаев повреждения данных.

    На рис. 1 показано преобразование таблицы страниц из физических в виртуальные адреса памяти. Для платформы x86 характерна высокая гибкость в определении глубины таблиц преобразования и точность адресации блоков памяти. Такое удобство доступа и представления памяти играет важную роль для разработки системы на уровне ОС.


    Рис. 1. Преобразование логического адреса в линейный

    Для преобразования логического адреса в линейный адрес процессор выполняет следующие действия:

    1. С помощью смещения в селекторе сегмента находит дескриптор сегмента в таблице GDT или LDT и считывает его в процессор. (Этот шаг требуется только в случае загрузки нового селектора сегмента в сегментный регистр.)
    2. Проверяет дескриптор сегмента, чтобы выяснить наличие прав доступа и диапазон сегмента и убедиться, что сегмент доступен и смещение находится в пределах сегмента.
    3. Добавляет базовый адрес сегмента из дескриптора сегмента к смещению для получения линейного адреса.
    4. Если страничное преобразование не используется, процессор непосредственно сопоставляет линейный адрес физическому (то есть линейный адрес выводится на шину адреса процессора). Если линейное адресное пространство разбито на страницы, в процесс преобразования линейного адреса в физический добавляется второй уровень.

    В защищенном режиме архитектура Intel позволяет либо непосредственно сопоставить линейное адресное пространство большому объему физической памяти (например, в 4 ГБ ОЗУ), либо косвенно (с помощью страничной адресации) сопоставить его меньшему объему физической памяти и дискового пространства. Последний метод сопоставления линейного адресного пространства часто называют виртуальной памятью или виртуальной памятью со страничным преобразованием адресов по требованию.
    При использовании страничного преобразования процессор делит линейное адресное пространство на страницы фиксированного размера (обычно 4 Кб), которые сопоставляются физической памяти и/или дисковому пространству. Когда программа (или задача) ссылается на логический адрес в памяти, процессор преобразует этот адрес в линейный адрес, а затем с помощью механизма страничной адресации преобразует линейный адрес в соответствующий физический адрес. Если страница, содержащая линейный адрес, не загружена в настоящий момент в физическую память, процессор генерирует исключение по отсутствию страницы (#PF). В этом случае обработчик исключений обычно дает указание операционной системе или исполняемой программе загрузить эту страницу из дискового хранилища в физическую память (в процессе операции другая страница может быть записана из физической памяти на диск). После загрузки страницы в физическую память значение, возвращенное обработчиком исключений, инициирует повторный запуск инструкции, в результате которой было сгенерировано исключение. При сопоставлении линейных адресов физическому адресному пространству и при генерации исключений по отсутствию страницы (если это необходимо) процессор использует информацию из каталогов страниц и таблиц страниц, сохраненных в памяти.
    Страничное преобразование отличается от сегментации тем, что страницы имеют одинаковый размер. Размер сегментов обычно совпадает с размером содержащихся в них фрагментов кода или структур данных, тогда как размер страниц фиксирован. Если для преобразования адресов используется только сегментация, структура данных, загруженная в память, будет находиться в памяти целиком. Если используется страничное преобразование, структура данных может быть частично загружена в память, а частично оставаться на диске.
    Чтобы уменьшить число тактов шинного обмена, необходимых для преобразования адреса, последние использованные записи каталога страниц и таблицы страниц загружаются в кэш-память процессора в компоненты, называемые буферами быстрого преобразования адресов (TLB). Буферы TLB обеспечивают выполнение большинства запросов чтения в текущем каталоге страниц и таблицах страниц без расходования тактов шинного обмена. Дополнительные такты шинного обмена требуются только тогда, когда в буферах TLB не содержится запись таблицы страниц; обычно это происходит в том случае, если страница не использовалась долгое время.

    Таковы два основных различия в разработке и настройке пакета программ ОС Android в архитектуре Intel и в других архитектурах. Модель адресации селектора с базой и смещением в сочетании с локальной и глобальной таблицами дескрипторов (LDT и GDT) обеспечивает глубокое многоуровневое преобразование адресов физической памяти в виртуальную память с изменяемой точностью адресации блоков памяти. Это очень удобно для нестандартной конфигурации памяти в сегментированной среде с защищенными изолированными областями памяти. Но при неправильном использовании в этом случае замедляется доступ к памяти. Таким образом, важно иметь хорошее представление преобразования страниц памяти.

    Еще одно различие между архитектурами заключается в обработке системных прерываний. Например, в ARM существует готовый набор аппаратных прерываний в зарезервированном адресном пространстве с 0x0 по 0x20. Эти расположения содержат инструкции переходов к обработчику прерываний. В архитектуре Intel используется выделенный контроллер аппаратных прерываний. Аппаратные прерывания недоступны напрямую в адресном пространстве памяти процессора, но обрабатываются путем доступа к контроллеру прерываний Intel 8529. Преимущество такого подхода состоит в том, что обработчик прерываний поддерживает прямую обработку прерываний ввода-вывода для подключенных устройств. В архитектурах без выделенного контроллера прерываний для решения этой задачи обычно применяется перегрузка прерывания IRQ более сложным обработчиком.

    2.1.Отладка драйверов устройств

    Отладчик JTAG уровня ОС должен обеспечивать наглядное представление потоков ядра и активных модулей ядра, а также других данных, экспортированных ядром. Для отладки динамически загружаемых служб и драйверов можно использовать исправление ядра или модуль ядра, экспортирующий расположение метода инициализации драйвера и метода деструкции в памяти.

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

    Рис. 2. Регистры устройства в окне битовых полей

    Анализ кода после распаковки сжатого ядра Android zImage в память осуществляется путем высвобождения управления выполнением в отладчике до достижения start_kernel. При этом предполагается, что был загружен файл vmlinux, содержащий символьную информацию ядра. На этом этапе можно использовать программные точки останова. До этого момента в процессе загрузки следует использовать только аппаратные точки останова на базе регистров (чтобы избежать ситуации, когда отладчик попытается записать инструкции точек останова в память, которая еще не инициализирована). Затем ОС успешно загружается после достижения цикла бездействия mwait_idle.

    Кроме того, если решение для отладки предоставляет доступ к трассировке инструкций на базе Last Branch Storage (LBR), эта возможность в сочетании со всеми обычными функциями управления выполнением в отладчике JTAG позволяет принудительно останавливать выполнение при исключениях и анализировать поток событий исключения в обратной последовательности, что позволяет определять причину неполадок при выполнении.

    Записи Last Branch Record можно использовать для трассировки выполнения кода начиная с нужной точки сброса. Поскольку данные о прерывании выполнения кода сохраняются в этих записях MSR, отладчики могут реконструировать выполненный код, считав адреса To и From, получив доступ к памяти между этими двумя адресами и выполнив дизассемблирование кода. Дизассемблированный код обычно отображается в графическом пользовательском интерфейсе трассировки в интерфейсе отладчика. Это может помочь выяснить, какой код выполнялся перед прерыванием SMI (System Management Interrupt) или другим исключением, если в месте прерывания настроена точка останова.

    2.2.Аппаратные точки останова

    Как и в ARM, процессоры Intel поддерживают инструкции программных точек останова, а также аппаратные точки останова для данных и кода. В архитектуре ARM обычно имеется набор выделенных регистров для точек останова и точек наблюдения. В стандартной реализации поддерживается по 2 регистра каждого из этих типов. Когда эти регистры содержат значения, процессор проверяет данные доступа, чтобы задать адрес в памяти для регистра счетчика программы или доступ к памяти на чтение или запись. При осуществлении доступа выполнение останавливается. Такое поведение отличается от программных точек останова: их выполнение останавливается при получении инструкции точки останова. Поскольку инструкция точки останова заменяет инструкцию сборки, которая должна находиться в заданном адресе памяти, выполнение останавливается до момента, в котором была бы выполнена инструкция.

    Реализация аппаратных точек останова в архитектурах Intel и ARM очень похожа, но у Intel чуть выше гибкость.

    На всех ядрах процессоров Intel Atom имеется 4 регистра DR, где хранятся адреса, сравниваемые с полученными адресами шины памяти до (иногда после) выборки памяти.

    Можно использовать все четыре этих регистра, чтобы предоставлять адреса, переключающие любое из следующих событий управления отладкой:

    • 00 — прерывание при выполнении инструкции
    • 01 — прерывание только при записи данных
    • 10 — не задано ЛИБО (если архитектура допускает) прерывание при чтении или записи ввода-вывода
    • 11 — прерывание при чтении или записи данных, но не при выборке инструкций

    Таким образом, все 4 аппаратные точки останова могут служить как точками останова, так и точками наблюдения. Точки наблюдения могут работать в режиме только записи либо чтения и записи (или ввода-вывода).

    2.3. Отладка для разных платформ: Intel® Atom™ и ARM

    Многие разработчики, работающие с Intel Atom, могут обладать опытом разработки главным образом для RISC-процессоров с фиксированной длиной инструкций. Такая архитектура используется в процессорах MIPS и ARM. Модель перекрестной отладки для архитектур Intel Atom и ARM не имеет существенных отличий. Многие принципиальные методы и проблемы отладки совпадают.

    Впрочем, разработка на ПК с архитектурой Intel для устройств с Intel Atom имеет два существенных преимущества, особенно если встроенная операционная система является производной от одной из массовых стандартных ОС, таких как Linux или Windows. Первое преимущество заключается в наличии огромного количества средств тестирования, анализа потребляемого электропитания и отладки для разработчиков, работающих с архитектурой Intel. Второе преимущество заключается в возможности локальной отладки функциональной правильности и многопоточности приложений. Это преимущество будет описано ниже.

    Между процессорами Intel Atom и ARM существует ряд различий, о которых должны знать разработчики. Эти различия описываются в следующих главах.

    2.4.Инструкции различной длины

    В наборах инструкций IA-32 и Intel 64 используются инструкции разной длины. На отладчик это влияет следующим образом: отладчик не может просто исследовать код с фиксированными 32-разрядными интервалами. Необходимо интерпретировать и дизассемблировать машинные инструкции приложения на основе контекста этих инструкций. Расположение следующей инструкции зависит от расположения, размера и правильного декодирования предыдущей инструкции. В архитектуре АРМ, напротив, отладчику достаточно следить за последовательностью кода, переключающую из режима ARM в режим Thumb или в расширенный режим Thumb и обратно. В пределах одного режима все инструкции и адреса памяти имеют размер либо 32, либо 16 разрядов. Разработчики микропрограмм и драйверов устройств, которым требуется точно адресовать вызовы к определенным регистрам устройства и использовать окно памяти отладчика, должны понимать возможное влияние инструкций различной длины.

    2.5. Аппаратные прерывания

    Еще одна разница в архитектуре может оказаться важной при отладке системного кода, отвечающего за обработку аппаратных прерываний. В архитектуре ARM векторы исключений:

    • 0 — сброс
    • 1 — отмена
    • 2 — отмена данных
    • 3 — отмена упреждающей выборки
    • 4 — неопределенная инструкция
    • 5 — прерывание (IRQ)
    • 6 — быстрое прерывание (FIRQ)

    назначаются адресам с 0x0 по 0x20. Эта область памяти защищена, в ней невозможно перераспределение. Обычно все векторные расположения с 0x0 по 0x20 содержат переходы к адресу памяти, где находится настоящий код обработчика исключений. Применительно к вектору сброса это означает, что 0x0 является переходом к расположению кода загрузки микропрограммы или платформы. Из-за такого подхода реализация аппаратных прерываний и обработчиков сигналов ОС в архитектуре ARM является менее гибкой, но с более высоким уровнем стандартизации. «Поймать» прерывание отладчиком очень просто: достаточно установить аппаратную точку останова в расположении вектора в диапазоне адресов с 0x0 по 0x20.

    В архитектуре Intel используется выделенный контроллер аппаратных прерываний. Прерывания

    • 0 — системный таймер
    • 1 — клавиатура
    • 2 — каскадный второй контроллер прерывания
    • 3 — последовательный интерфейс COM2
    • 4 — последовательный интерфейс COM1
    • 5 — параллельный интерфейс LPT
    • 6 — контроллер дисковода для гибких дисков
    • 7 — доступное прерывание
    • 8 — часы CMOS реального времени
    • 9 — звуковой адаптер
    • 10 — сетевой адаптер
    • 11 — доступное прерывание
    • 12 — доступное прерывание
    • 13 — числовой процессор
    • 14 — интерфейс жесткого диска IDE
    • 15 — интерфейс жесткого диска IDE

    — недоступны напрямую в адресном пространстве памяти процессора, но обрабатываются путем доступа к контроллеру прерываний Intel 8259. В списке прерываний видно, что контроллер поддерживает прямую обработку аппаратных прерываний ввода-вывода подключенных устройств, которые обрабатываются посредством прерываний IRQ или быстрых прерываний на платформе ARM. Эта возможность упрощает реализацию правильной обработки прерываний в архитектуре Intel на уровне ОС, особенно для ввода-вывода устройств. Сопоставление программных исключений, таких как отмены или сбои сегментации, также обрабатываются более гибко в архитектуре Intel; оно осуществляется портом контроллера прерываний, адресация к которому осуществляется через таблицу дескрипторов прерываний (IDT). Сопоставление IDT аппаратным прерываниям определяется системными программами. Кроме того, невозможно с легкостью получать такие исключения при отладке, не учитывающей системные программы. В архитектуре Intel для отладки программных событий, переключающих аппаратные прерывания, требуется определенное знание уровня ОС. Необходимо знать, каким образом сигналы ОС этих исключений соотносятся с контроллером прерываний. Даже в отладчике системного уровня сопоставленная в памяти таблица сигналов из ОС будет перехватывать исключения на уровне ОС, а не на аппаратном уровне.

    2.6.Одношаговые инструкции

    В архитектуре ARM нет явных одношаговых инструкций. В архитектуре Intel одношаговые переходы уровня сборки часто реализуются в отладчике напрямую с помощью таких инструкций. В ARM однократный переход инструкции реализуется в виде команды «Выполнять до прерывания». Отладчик должен проверить код, чтобы убедиться в том, что учитываются все пути кода (особенно при отступлении от инструкции ветви). С точки зрения реализации отладчика, при этом возникают некоторые издержки, но их объем незначителен, поскольку реализация «Выполнять до прерывания» все равно будет требоваться для переходов в высокоуровневом языке. Разработчики ПО должны учитывать это различие, поскольку оно может вызвать слегка иное поведение переходов.

    2.7.Сопоставление виртуальной памяти

    Реализация таблицы дескрипторов и преобразования страниц для сопоставления виртуальной памяти очень похожи, по крайней мере по принципу работы. В архитектуре Intel глобальная и локальная таблицы дескрипторов (GDT и LDT) позволяют управлять уровнем вложенности страниц памяти в виртуальном адресном пространстве. На рис. 3 представлено преобразование линейного адреса в физический в архитектуре Intel.

    Рис. 3. Преобразование страниц в архитектуре Intel®

    В архитектуре ARM таблицы страниц первого и второго уровней определяют более прямой поиск страниц виртуальной памяти глубиной не более одного или двух уровней. На рис. 4 показано преобразование линейного адреса в физический адрес.

    Рис. 4. Преобразование страниц в архитектуре ARM

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

    Механизм преобразования страниц Intel обеспечивает более высокую гибкость в работе с памятью системы и механизмов, используемых уровнем ОС для выделения определенных блоков памяти, таких как защищенных блоков для выполнения приложений. Но при этом разработчикам становится сложнее получить полную картину виртуализации памяти и устранить утечки памяти и нарушения доступа к памяти (сбои сегментации). Такая проблема была бы менее важна для полнофункциональных ОС с большим объемом памяти. Операционные системы реального времени, более зависимые от правильной работы с памятью, более уязвимы для таких неполадок.

    Технология гиперпоточности Intel®

    С точки зрения отладки, нет разницы между физическим ядром процессора и логическим ядром, реализованным при помощи технологии гиперпоточности Intel. Включение гиперпоточности происходит в процессе инициализации платформы в BIOS. Поэтому с точки зрения приложения нет сколько-нибудь заметной разницы между физическими и логическими ядрами. Эта технология обеспечивает одновременное выполнение нескольких потоков, поэтому отладка работает в точности так же, как на системах с несколькими физическими ядрами.

    Компоненты микросхемы ЦП и взаимодействие между ядрамиMulti-Core

    Из-за взаимодействия десятков программных и аппаратных компонентов внутри одной микросхемы существенно усложняется поиск причин неполадок при отладке. Взаимодействие между различными программными компонентами часто зависит от времени. При отладке кода со взаимодействием между компонентами обычно невозможно просто пошагово выполнять один определенный компонент. Традиционная отладка с помощью printf также неэффективна в данном случае, поскольку изменения при отладке могут отрицательно повлиять на временные параметры и привести к еще более серьезным проблемам, действуя наподобие физического принципа неопределенности Гейзенберга (согласно этому принципу, в частности, любые попытки измерения скорости и положения частицы сами по себе вносят возмущения в движение частицы и непредсказуемо меняют ее скорость, т. е. наблюдение характеристик меняет эти характеристики).

    4.1.Отладка трассировки событий

    Существует множество программных средств статического анализа и основанных на них технологий трассировки событий, которые помогают решить эту задачу. Они имеют общий принцип работы, состоящий в использовании буферной памяти DRAM небольшого размера — в эту память загружаются данные события во время их создания, а затем используется какой-либо механизм протоколирования, записывающий результат трассировки в файл журнала. Мониторинг трассировки данных может выполняться в режиме реального времени при непосредственном взаимодействии с API протоколирования данных трассировки или в автономном режиме с использованием различных средств просмотра трассировки для анализа сложных взаимосвязей между программными компонентами. Наиболее распространены три таких программных средства — LTTng*, Ftrace* и SVEN*.

    Далее приведена таблица сравнения этих трех средств, предназначенных в основном для операционных систем типа Linux* и поэтому совместимых с Android*.

    Рис. 5. Различные решения для трассировки событий

    Дополнительные сведения см. на соответствующих веб-сайтах:

  • Developers
  • Android*
  • Android*
  • Intel® Atom™ Processors
  • Mobility
  • URL
  • Slides da palestra: Escreva sua App Android sem gastar energia

    $
    0
    0

    Veja como foi a Palestra "Escreva sua App Android sem gastar energia" durante o FISL 14 na PUCRS em Porto Alegre. George, Community Manager de Android teve o prazer de representar a intel Brasil no palco do evento mais importante de Software Livre do Brasil.

    Focada em descrever as implicações do consumo de energia da sua App dentro do sistema operacional Android, esta apresentação além de indicar alguns dos gastões em dispositivos móveis, também abordou alguns métodos de como medir o consumo de energia e ferramentas para fazê-lo da maneira mais fácil.

    Confira os slides da palestra e entre em contato com o George para discutir mais sobre o assunto!

    Referências:

  • Android apps HAXM
  • Icon Image: 

    Integrating Facebook* Functionality into Hybrid Apps Using the Intel XDK

    $
    0
    0

    This document will illustrate how to add Facebook functionality to your application using the credentials component of Intel’s App Dev Center.  It includes a sample application, a helper library, and detailed instructions on how to use your Facebook developer account to accept requests from a mobile application.  For more information on how to use Facebook in an application, find the basic article here.

    Facebook Developer Page Setup

    The first step to integrating Facebook functionality into your application is to create a Facebook application. This setting can then be used to add Facebook functionality to your HTML5 hybrid application or allow you to build your application for Facebook.

    Navigate to the Facebook developer site (http://developer.facebook.com) and set up a new Facebook application. Set up the basic information including the display name and namespace.

    Set the App Domains

    Set the App Domains field to html5tools-software.intel.com and set Sandbox Mode to Disabled.

    Set the Mobile Web URL

    After setting up the Facebook application, edit the application and set the Mobile Web URL to:

    http://html5tools-software.intel.com

     

    Copy the Facebook App ID

    Once the Mobile Web URL is set, copy down the Facebook Application’s App ID for the next step.  The App ID  is a unique 15-digit number generated by Facebook to identify an application running on their system.

    Give App Dev Center the Facebook App ID

    Log into the App Dev Center at:

    http://appcenter.html5tools-software.intel.com

    If you haven’t used App Dev Center in the past, find out more about how to use it here.

    If you haven’t yet set up an application to test Facebook Integration, click on the Add or Register an App button.Upload the sample application included with this document for the test.

    Find the application to test Facebook integration within the Control Center, and click on the Credentials icon.

     

    Select the Configure Facebook option, and then paste the Facebook App ID copied from the previous step into the appropriate edit field.  Enter the same App ID with the letters ‘fb’ in front of it in the Protocol Handler field, unless the particular application uses a different protocol handler for some reason.

     

    Please be aware that since the callback will be unique for each application, you may only have one Facebook App Id per App.  Sharing a single Facebook App Id between HTML5m apps could break the process.  

    Testing Facebook Integration in the XDK

    The first place to test Facebook integration is within the XDK.  The XDK may be installed here:

    http://xdk-software.intel.com/

    Install the Facebook sample application found along with this implementation guide into a brand new application.  If you run the game in the XDK, it should look something like this.

    Touching the Facebook icon in the upper right-hand corner will allow the user to log into Facebook and make a post inviting other folks to play “Awesome Possum” with them.  The code to make that post is delivered through a helper library, but the basic post command should look like this:

    document.addEventListener("appMobi.facebook.dialog.complete",function(evt){ console.log("dialog post complete"); },false); AppMobi.facebook.showNewsFeedDialog({"name":"Awesome Possum","caption":"Join the crowd! Awesome Possum is real roadkill-munching fun. Click to try it out now!","link":"http://apps.facebook.com/awesomeaspossum/","picture":"http://dev.appmobi.com/documentation/images/possums.jpg"});

    It is passed a JavaScript object with a variety of parameters.  The valid parameters that Facebook accepts for news feed dialogs can be found on their documentation site. The app_id parameter is provided automatically.

    When the user activates the code, they should be presented with a page like the one shown below once they log into Facebook:

    Testing Facebook Integration on Mobile Device

    Testing the Facebook Integration on device is pretty straightforward.  It requires a few more settings to the application on Facebook’s side, as well as setting up a test application to host the application code.  It will work with both iOS and Android devices.

    Get the iOS Application ID

    The first step to enabling iOS applications to integrate with Facebook is to find your HTML5m application’s bundle ID.  The easiest way to do this is to mouse over the iOS Build Button and select Change Build Settings.

     

    In the build settings, look at step 5c for the bundle ID.  Copy it down for later.  

     

    Give Facebook the Application ID

    Return to the Facebook developer’s site and reopen the Facebook application used for the application.  Select the Edit Settings option to change how the application interacts with Facebook.  Open up the settings for Native iOS Application.  Paste the bundle ID into the field for iOS Bundle ID.  

     

    Next, copy down the store ID Apple assigns to the application once it has been submitted to the appstore, and drop them into the appropriate App Store ID fields.  Finally enable both Configured for iOS SSO and iOS Native Deep Linking.  

    Copy the Android Key Hash from App Center

    Next, you’ll want to set up Facebook integration for the Android version of your app.  The first step to enabling Android applications to integrate with Facebook is to find your application’s Facebook Application Signature.  The easiest way to do this is to mouse over the Android Build Button and select Change Build Settings.

     

    During step 4b of the Android build process, copy the Facebook Application Signature from App Center.  The Facebook Application Id should already be in the field for 4a.  

      

    Give Facebook the Application Signature

    Log back into the Facebook Developer page, and open up the settings for a Native Android App.  Enable the setting for Facebook Login: and paste the application signature taken from the App Center build process into the field marked Key Hash. Also, you will need to paste your BundleID (you can access this from the iOS build, step 5c).

       

    Building a Facebook Enabled Native Application

    Once you feel confident that the application is working appropriately in the XDK, build the application for iOS or Android (including Amazon and Nook Android builds).  

    Select the app building drop down to reveal the list of potential build targets.  

     

    Select the appropriate build button to start the process for building the application for iOS, Android, Amazon, or Nook.  Follow the onscreen instructions.  For more information on using the cloud build system, check out this document.

    Building your Application for Facebook

    The Facebook build button will allow you to create a version of your application appropriate for the Facebook Canvas.  For more information from Facebook about the canvas, read Facebook’s documentation on the subject here.

    Clicking on the build for Facebook button will give you the ability to size your application appropriately for the Facebook canvas.  For best results, consider setting the height and width to match the AppMobi.device.useViewPort command.  For example, the sample application uses the following function to handle the appMobi.device.ready event. 

    var onDeviceReady=function(){ //Size the display to 768px by 1024px AppMobi.display.useViewport(768,1024); //put the app in Landscape mode AppMobi.device.setRotateOrientation("landscape"); AppMobi.device.setAutoRotate("false"); }

    The Facebook application should then use the following settings when it is built:

     

    The result of the build is a URL that carries some query string parameters.  The following parameters are simply generated by the build settings:

    fbh – Height of the sized Facebook application

    fbw – Width of the sized Facebook application

    fbs – Scale of the Facebook application, use this to resize the entire application.  A value of ‘1’ indicates no scaling (or scaling at 100%).

    Any other query string parameters added to this string will be passed through normally to the application.

     

    When the Facebook build completes, download the zip file. At this point you can host it on your own server, or you can host the files with appMobi. If you choose to host with appMobi, click the button to do so. You will need to setup your application with appMobi. After you upload your Facebook build to appMobi, you will be provided with a Content URL. Use this URL (or the URL that you host your application with) to populate the App on Facebook settings.

    Reopen the Facebook developer site and edit the settings for the sample application.  Take this URL generated by the Facebook build and insert it into the App on Facebook section of the page.  Use the same URL with an https:// rather than an http:// for the Secure Canvas URL entry.  

     

  • html5
  • javascript
  • Developers
  • Android*
  • Apple iOS*
  • HTML5
  • HTML5
  • JavaScript*
  • Intermediate
  • Intel® HTML5 Development Environment
  • License Agreement: 

  • URL
  • Code Sample
  • html5-v2
  • Por dentro do novo Intel® HTML5 Development Environment

    $
    0
    0

    Há alguns meses a Intel lançou um novo conjunto de ferramentas para o desenvolvimento de apps multiplataforma para dispositivos móveis em HTML5, o Intel® HTML5 Development Environment. São ferramentas e serviços na nuvem gratuitos e ilimitados que ajudam os desenvolvedores a escrever uma única base de código usando HTML, CSS e JavaScript e a gerar aplicações (executáveis) para diversos sistemas operacionais e dispositivos móveis.

    Se você tem algum conhecimento em HTML5 e uma boa ideia de desenvolvimento de app na cabeça, recomendo um teste destas ferramentas, pois vai descobrir que implementar esta ideia não é algo tão difícil de fazer.

    O desenvolvimento nativo para dispositivos móveis exige do desenvolvedor conhecimento em linguagens de programação distintas (tipicamente C/C++, Java e C#), e a utilização de ferramentas, compiladores e SDKs específicos para cada sistema operacional. Estas ferramentas por sua vez, demandam a utilização de sistemas operacionais específicos no ambiente de desenvolvimento, o que significa que o desenvolvedor terá que manter algumas máquinas dedicadas ao desenvolvimento e build das aplicações, além de dominar os SDKs e as linguagens específicas.

    A grande vantagem do HTML5 é que bibliotecas específicas criam uma camada de abstração entre os diversos sistemas operacionais de dispositivos móveis, permitindo assim que uma única linha de código tenha o mesmo efeito em sistemas operacionais e dispositivos distintos.

    Além de abstrair estas diferenças, estas bibliotecas auxiliam ainda a complementar as funcionalidades das APIs padrão do HTML5, dando acesso a recursos dos dispositivos, como sensores, câmera e a arquivos existentes nos dispositivos móveis. Com tudo isso junto, quando você desenvolve um app utilizando HTML5, você pode focar todo o seu esforço de desenvolvimento na implementação de funcionalidades inovadoras no seu app ao invés de ficar perdendo muito tempo se preocupando com as nuances e diferenças entre cada dispositivo e sistema operacional.

    Para acelerar ainda mais o desenvolvimento dos seus apps, o Intel XDK (kit de desenvolvimento em plataforma cruzada da Intel), possui ainda duas funcionalidades que considero extremamente úteis para o desenvolvimento de apps. A primeira delas é um editor gráfico para a construção inicial da interface gráfica do seu app (o que para muito programador que conheço costuma ser um pesadelo), e um excelente emulador de dispositivos que permite que você veja como seu app se comporta em dispositivos com tamanhos de tela diferentes sem precisar ter uma infinidade de dispositivos para testes ao seu lado o tempo todo. Este emulador permite ainda que você simule diversos eventos no dispositivo, como a captura de movimento através do acelerômetro, tudo isso dentro do seu navegador Google Chrome, pois o Intel XDK é uma extensão do Google Chrome.

    O ciclo de desenvolvimento, testes e depuração de dispositivos móveis costuma ser bem demorado, pois em geral você precisa compilar cada versão para testes e transferi-la para o seu dispositivo móvel (quem já teve que fazer isso sabe do que eu estou falando). Usando o Intel XDK, você simplesmente instala um App em seu dispositivo móvel (chamado App Lab) e transfere o código que acabou de escrever no XDK para ele usando os serviços gratuitos na nuvem que a Intel oferece. Isso significa que o ciclo de depuração do seu app em um dispositivo real fica extremamente acelerado e depois de uma alteração de código, com apenas alguns cliques você já pode ver como seu app se comporta no seu dispositivo móvel. Melhor do que isso, você pode ainda incluir algumas linhas especiais dentro do seu código e utilizar um sistema de depuração na nuvem, que permite que você execute o app em seu dispositivo móvel e receba as mensagens de depuração na console do seu navegador, ajudando muito a entender o que está de fato acontecendo quando o seu app é executado em um dispositivo real.

    Quando você está satisfeito com o status de desenvolvimento do seu projeto, com alguns cliques você acessa os serviços na nuvem do App Dev Center e gera executáveis na nuvem, prontos para ser enviados para as lojas de aplicativos dos dispositivos ou distribuídos para seus colegas de trabalho e amigos te ajudar com os testes.

    Com tanta coisa assim disponível de forma gratuita e ilimitada, acredito que chegou a hora de você colocar a mão na massa e transformar a ideia que anda te atormentando nos últimos tempos em um app que pode te ajudar no dia a dia, ajudar outras pessoas e claro, que pode ser a sua entrada com chave de ouro para o mundo dos apps para dispositivos móveis.

    Para saber mais sobre as principais características do Intel® HTML5 Development Environment, preparamos um artigo em português que pode ser acessado aqui, que responde as principais dúvidas dos desenvolvedores sobre a ferramenta, além de apresentar mais algumas ferramentas gratuitas da Intel que podem te ajudar a dominar rapidamente este novo mundo de apps multiplataforma.

    Se durante a sua caminhada você tiver alguma dúvida ou dificuldade, utilize nosso fórum de HTML5 em português para que outros membros da comunidade possam te ajudar com ela, e temos ainda diversos exemplos e muito código fonte disponível aqui, e como o HTML5 é um padrão aberto, você pode encontrar na Internet muitos exemplos, tutoriais para te ajudar no aprendizado inicial e claro, se você encontrar alguma biblioteca disponibilizada que queria usar em seu app, basta inclui-la na árvore de código do seu projeto do Intel XDK.

    Toda a documentação das ferramentas e bibliotecas da Intel para o desenvolvimento de Apps pode ser encontrada aqui, e esta página conta ainda com diversos artigos com boas práticas de codificação e diversos tutoriais muito interessantes. Se você prefere aprender assitindo a um vídeo, temos ainda diversos webinars disponíveis aqui, e para começar a sua jornada, recomendo assistir este video aqui.

    Para começar usando agora as ferramentas e finalmente iniciar a sua jornada por este novo e divertido mundo dos apps, clique aqui. Lembre-se que toda grande jornada começa com um primeiro passo, ou melhor dizendo neste caso, com um primeiro clique !

    Icon Image: 

    Apresentações da Intel no FISL 14

    $
    0
    0

    Estamos disponibilizando abaixo as apresentações da Intel feitas durante o FISL 14 em Porto Alegre.

    03/07:

    Luciano Palma - Como domar uma fera de 1TFlop que cabe na palma da sua mão

    O Intel Xeon Phi é um coprocessador que equipa o computador mais potente do mundo, o Tianhe-2. Ele traz uma avançada arquitetura que interconecta até 61 núcleos de processamento e 8 GB de memória. Confira como tirar proveito desta façanha tecnológica, utilizando técnicas e ferramentas de paralelismo como as extensões CILK e as bibliotecas Intel TBB.

    Nota: Este é o vídeo que deveria ter sido transmitido ao final da palestra:

    O vídeo da palestra, disponibilizado pela organização do evento pode ser acessado aqui.

    05/07:

    George Silva - Escreva sua app Android sem gastar energia

    As restrições das plataformas móveis, a concorrência e a facilidade dos usuários em recomendar ou criticar as aplicações tornaram o desafio dos desenvolvedores muito maior nas lojas de aplicativos. Além das preocupações com arquitetura e um bom plano de testes, as restrições de bateria e desempenho menor que as plataformas tradicionais exigem mais criatividade para encontrar o melhor balanço entre responsividade e consumo de energia.

    O vídeo da palestra, disponibilizado pela organização do evento pode ser acessado aqui.

    Jomar Silva - Livros eletrônicos interativos com HTML5 e ePub3

    A utilização conjunta dos padrões HTML5 e ePUB3 permite a criação de livros eletrônicos interativos, que são livros eletrônicos tradicionais com Apps em HTML5 embarcadas, expandindo consideravelmente as possibilidades de uso dos livros e possibilitando o reuso de conteúdos já existentes.

    O vídeo da palestra, disponibilizado pela organização do evento pode ser acessado aqui.

    06/07:

    Jomar Silva - Desenvolvimento Apps Híbridos para dispositivos móveis com HTML5

    O número crescente de dispositivos móveis e sistemas operacionais que encontramos hoje na indústria, traz aos desenvolvedores um desafio técnico adicional: Como escrever aplicações com o menor custo e maior alcance de audiência ? Apps híbridos com HTML5 possibilitam aos desenvolvedores manter uma única base de código e gerar a partir dela Apps para diversos dispositivos e sistemas operacionais móveis, com maior flexibilidade e menor time to market.

    O vídeo da palestra, disponibilizado pela organização do evento pode ser acessado aqui.

    Um super obrigado a todos os que assistiram as nossas palestras no FISL 14 e nos vemos no FISL 15 !

    Icon Image: 

    Creating a Geolocation App Framework Plugin

    $
    0
    0

    Creating an attractive and effective hybrid HTML5 application that uses geolocation services is easy with this piece of code I would like to share. This plugin for App Framework will query the mobile device for its current location and then plot it on a map drawn on a particular page using App Framework. Take a look at this video for a demonstration:

    You can find the source code for this App Framework Plugin included with this blog post.

  • html5
  • geolocation
  • App Framework
  • Icon Image: 

    Attachments: 

    http://software.intel.com/sites/default/files/blog/402089/geolocationappframeworkplugin.zip
  • Sample Code
  • html5-v2

  • Intel® Integrated Performance Primitives - Supported Versions

    $
    0
    0

    Interactive support via Intel® Premier Support is provided for the two most recent Intel® Integrated Performance Primitives (Intel® IPP) major releases with a Commercial or Academic license. Older Intel® IPP versions are not supported. However, all users are welcome to post questions in our User Forum.

    If you have any questions about this policy, contact Intel® Premier Support or post on the Intel® IPP User Forum.

    The following Intel® IPP versions are currently supported:

    • Intel® IPP 8.0  for Windows*, Linux*, OS X*
    • Intel® IPP 7.1  for Windows*, Linux*, OS X*

    Product updates are supplied for the most recent version only.

  • support
  • version
  • release
  • Android*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8
  • Intel® Integrated Performance Primitives
  • URL
  • Meshcentral.com - New Wifi location feature

    $
    0
    0

    Yesterday I updated Meshcentral.com along with the release of the Microsoft Windows Mesh Agent v1.70 to add a new location feature. First, this is a optional feature, you need to have it enabled in the mesh access policy for this to work, and existing meshes have this feature off by default. If you create a new mesh, just select it during mesh creation. For existing meshes, you need to use Mesh Connector to edit the policy and add the new feature.

    Once location access is enabled, the Windows v1.70 Mesh agent will periodically send nearby WIFI access points and signal strength to the Mesh Server. This is similar with that other services do on mobile phones. Meshcentral.com will compile a list of know access points and keep only the last seen access points for each node.

    I have not yet put any web site features using this data, but I do have a C# API that can connect to Meshcentral.com and ask the following questions:

    • What WIFI location enabled nodes are present in my account?
    • What access points does a given node see?
    • What nodes are visible from a given access point?
    • What nodes are near a given node?

    All queries only return nodes that are present in your Meshcentral.com account. So even if another node belonging to someone else is in the area, it will no show up in these queries. Initialy the idea is to use this information to know what nodes are located physically near each other. This can be used for ad-hoc collaboration, or other uses. In the future, I will be looking at converting this data into real coordinates using some type of 3rd party service so that users can see a map of the location of all nodes on their account. Could be useful for asset tracking and as an anti-theft feature.

    If someone want to try to mesh location API right away, let me know. Otherwise, I will be making it available generally when I get time. I also want to add some use of this data on the web site itself.

    Ylian
    meshcentral.com


  • Mesh. Meshcentral
  • MeshCentral.com
  • p2p
  • WiFi
  • Wireless
  • AP
  • Access Point
  • location
  • Geo-location
  • Geo
  • position
  • map
  • Ylian
  • Icon Image: 

    Make Apps Using the Intel HTML5 Development Environment

    $
    0
    0

    Intel is empowering Web developers to create incredible cross-platform experiences, reach more customers, reduce costs, and improve time-to-market.

    Attend this webinar to learn:

    • How to use the Intel HTML5 Development Environment to develop great apps
    • What tools are available to help developers test and debug their HTML5 apps
    • How developers can build their HTML5 apps for a variety of platforms as Web apps or Hybrid apps

    This Webinar is aimed at Web developers interested in using their talents to create cross-platform HTML5 applications for a variety of devices. Join this Webinar to learn how the Intel HTML5 Development Environment can help you!

  • javascript
  • hybrid apps
  • Developers
  • Android*
  • Apple iOS*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* 8
  • HTML5
  • HTML5
  • JavaScript*
  • Development Tools
  • URL
  • Getting started
  • Learning Lab
  • Part 1 of 4 - Make Apps Using the Intel HTML5 Development Environment

    $
    0
    0
    English
    Part 1 of 4 - Make Apps Using the Intel HTML5 Development Environment

    Attend this webinar to learn:

    • How to use the Intel HTML5 Development Environment to develop great apps
    • What tools are available to help developers test and debug their HTML5 apps
    • How developers can build their HTML5 apps for a variety of platforms as Web apps or Hybrid apps

    This Webinar is aimed at Web developers interested in using their talents to create cross-platform HTML5 applications for a variety of devices. Join this Webinar to learn how the Intel HTML5 Development Environment can help you!

    Click here to see the series

  • Tutorial
  • Developers
  • Getting started
  • Android*
  • Apple iOS*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* 8
  • HTML5
  • HTML5
  • JavaScript*
  • Development Tools
  • Part 2 of 4 - Make Apps Using the Intel HTML5 Development Environment

    $
    0
    0
    English
    Part 2 of 4 - Make Apps Using the Intel HTML5 Development Environment

    Attend this webinar to learn:

    • How to use the Intel HTML5 Development Environment to develop great apps
    • What tools are available to help developers test and debug their HTML5 apps
    • How developers can build their HTML5 apps for a variety of platforms as Web apps or Hybrid apps

    This Webinar is aimed at Web developers interested in using their talents to create cross-platform HTML5 applications for a variety of devices. Join this Webinar to learn how the Intel HTML5 Development Environment can help you!

    Click here to see the series

  • Tutorial
  • Developers
  • Getting started
  • Android*
  • Apple iOS*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* 8
  • HTML5
  • HTML5
  • JavaScript*
  • Development Tools
  • Part 3 of 4 - Make Apps Using the Intel HTML5 Development Environment

    $
    0
    0
    English
    Part 3 of 4 - Make Apps Using the Intel HTML5 Development Environment

    Attend this webinar to learn:

    • How to use the Intel HTML5 Development Environment to develop great apps
    • What tools are available to help developers test and debug their HTML5 apps
    • How developers can build their HTML5 apps for a variety of platforms as Web apps or Hybrid apps

    This Webinar is aimed at Web developers interested in using their talents to create cross-platform HTML5 applications for a variety of devices. Join this Webinar to learn how the Intel HTML5 Development Environment can help you!

    Click here to see the series

  • Tutorial
  • Developers
  • Getting started
  • Android*
  • Apple iOS*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* 8
  • HTML5
  • HTML5
  • JavaScript*
  • Development Tools
  • Part 4 of 4 - Make Apps Using the Intel HTML5 Development Environment

    $
    0
    0
    English
    Part 4 of 4 - Make Apps Using the Intel HTML5 Development Environment

    Attend this webinar to learn:

    • How to use the Intel HTML5 Development Environment to develop great apps
    • What tools are available to help developers test and debug their HTML5 apps
    • How developers can build their HTML5 apps for a variety of platforms as Web apps or Hybrid apps

    This Webinar is aimed at Web developers interested in using their talents to create cross-platform HTML5 applications for a variety of devices. Join this Webinar to learn how the Intel HTML5 Development Environment can help you!

    Click here to see the series

  • Tutorial
  • Developers
  • Getting started
  • Android*
  • Apple iOS*
  • Apple Mac OS X*
  • Linux*
  • Microsoft Windows* 8
  • HTML5
  • HTML5
  • JavaScript*
  • Development Tools

  • Intel® Memory Protection Extensions (Intel® MPX) Design Considerations

    $
    0
    0

    My very first exposure to buffer overflow was with Morris worm in 80’s and since then, we collectively have tried to get a good handle on buffer overflow as it impacts both security and robustness of C/C++ software. Needless to say, we have made significant progress with addressing buffer overflow via execute disable bit, Canary on stack etc. through which we are able to prevent a class of exploits after the buffer overflow has taken place.

    The work on Intel MPX started with a basic idea that if we can prevent buffer overflow, we can prevent “all” exploits using buffer overflow. At the same time, we recognized that changing C/C++ language (syntax or semantics) or ABI’s would be a deal breaker in terms of adoption. Ideally, we would have liked to have existing binaries be protected from buffer overflow, by inserting the necessary information to check for buffer overflow in the binaries, but this was simply not possible (at least for us). A solution had to be based on compilers, and knowing that having multiple binaries would only prolong its adoption, we had to come up with a creative (efficient) solution so the Intel MPX binary would not only run on legacy systems (albeit without protection) but will also provide end user flexibility in turning Intel MPX on or off at run time. We recognized that an application is not a monolith and it utilizes both OS APIs and third party libraries and not all of these libraries may be compiled/enabled for Intel MPX. Therefore, the Intel MPX-enabled application must be able to call legacy libraries and APIs, and therefore, while we can extend ABIs, we could not change them.

    In summary, we set the following goals for Intel MPX:

    1. No extensions or changes to C/C++
    2. Minimal to no changes to source code
    3. Enabled via compilation
    4. Runs on legacy CPUs with very small performance impact and no benefit
    5. Ability to dynamically turn Intel MPX on or off for an enabled program
    6. No performance impact to legacy applications, and very small performance impact to Intel MPX enabled apps that dynamically turned it off
    7. Hardware acceleration for Intel MPX enabled apps when Intel MPX is turned on.
    8. Extend existing ABIs (for popular OSes)
    9.  Interoperability with legacy libraries and APIs
    10. Support partial compilation/enabling of Intel MPX for incremental enabling and/or performance/security trade-off

     Please keep in mind that performance is highly dependent on nature of application, workload and specific hardware configuration and therefore, will vary.


    Over next few weeks, I will explain key aspects of Intel MPX design that helped us achieve the above goals.

  • MPX Buffer overflow Buffer overrun
  • Icon Image: 

    Meshcentral.com - Who is next to me?

    $
    0
    0

    Just a quick follow up on the new Meshcentral.com location feature from my previous post. I just added in the web UI a new entry in the device page that shows which other devices are physically nearby. The new entry is just below the Intel AMT line, and is ranked starting with the nearest node. The distance is determined by how many WIFI access points both devices can see in common. If you hover the mouse over the links, a little box will show the number of AP's in common.

    Ok, that is it. Again, this wifi feature is opt-in only and you need to set the mesh policy to enable it. Also, nodes need to have Wifi to have this work and it will show only other nearby devices that are also in your account.

    Ylian
    meshcentral.com

  • Mesh
  • MeshCentral
  • MeshCentral.com
  • p2p
  • geolocation
  • Geo
  • WiFi
  • Access Point
  • location
  • Ylian
  • Icon Image: 

    Fun with Intel® Transactional Synchronization Extensions

    $
    0
    0

    By now, many of you have heard of Intel® Transactional Synchronization Extensions (Intel® TSX). If you have not, I encourage you to check out this page (http://www.intel.com/software/tsx) before you read further. In a nutshell, Intel TSX provides transactional memory support in hardware, making the lives of developers who need to write synchronization codes for concurrent and parallel applications easier. It comes in two flavors: Hardware Lock Elision (HLE) and Restricted Transactional Memory (RTM). If you haven’t read the background, go and do so now, since from here on, I assume that you have that basic knowledge.

    I had been developing a PIN-based emulator for Intel TSX for the past few years. The emulator is now integrated into Intel Software Development Emulator. During the development, I had a lot of grins and grimaces with respect to HLE/RTM. I would like to share three such particularly memorable incidents.

    The Incidents

    Example 1.

    The following codelet is a part of a test program a colleague of mine wrote who wanted to learn how to use RTM. With the array ‘data’ containing integer values and the array ‘group’ mapping the data’s elements to the slots in the array ‘sums’, the test program tries to store the sum of the data belonging to a group in the corresponding slot in the array ‘sums’. Since multiple threads may access the same slot simultaneously, each addition is performed in an RTM transaction. When a transaction aborts, the thread re-executes the addition in the critical section along the fallback path (i.e. ‘else’). Do you think it is correct? If you don’t, can you spot what is wrong?

    #pragma omp parallel for
        for(int i = 0; i < N; i++){
            int mygroup = group[i];
            if(_xbegin()==-1) {
                  sums[mygroup] += data[i];
                _xend();
              } else {
                  #pragma omp critical
                  {
                      sums[mygroup] += data[i];
                  }
              }
          }

    Example 2.

    I was taught code reuse is imporant when I was in school (sorry, not in the kindergarten ;^)). So, I decided to put to work what I learned when a need arose to write an RTM test. The test was similar to the one in Example 1, except that this test alternates RTM and HLE transactions. (Notice that the test does not have the non-speculative fallback path required for the RTM transaction. Having no fallback path makes the test UNSAFE because Intel TSX does not guarantee forward-progress; i.e., it can abort RTM transactions forever.) The test has two addition statements: one is protected with RTM and the other is protected with HLE. Quite a feat, eh? I felt proud of myself ;-) ... until I started to run the test. The test occasionally printed out incorrect sums. I panicked at first because the test was simple and looked almost identical with other tests, leading me to believe, however briefly, that the emulator had a nasty bug that had hidden unnoticed for a long time. But after a closer look, I realized the test had a flaw. Can you see what I did wrong?

        #define PREFIX_XACQUIRE ".byte 0xF2; "    #define PREFIX_XRELEASE ".byte 0xF3; " 
        class mutex_elided {
          uint8_t flag;
          inline bool try_lock_elided() {
            uint8_t value = 1;
            __asm__ volatile (PREFIX_XACQUIRE "lock; xchgl %0, %1"                : "=r"(value),"=m"(flag):"0"(value),"m"(flag):"memory" );
            return uint8_t(value^1);
          }
        public:
          inline void acquire() {
            for(;;) {
                exponential_backoff backoff;
                while((volatile unsigned char&)flag==1)
                    backoff.pause();
                if(try_lock_elided())
                    return;
                __asm__ volatile ("pause\n" : : : "memory" );
            }
          }
     
          inline void release() {
            __asm__ volatile (PREFIX_XRELEASE "movl $0, %0"               : "=m"(flag) : "m"(flag) : "memory" );
          }
        };
        ...
     
     
          mutex_elided m;
    #pragma omp parallel for
        for(int i = 0; i < N; i++) {
            int mygroup = group[i];
            if( (i&1) ) {
                while(_xbegin()!=-1) ;
                // must have a fallback path
                sums[mygroup] += 1;
                _xend();
            } else {
                m.acquire();
                sums[mygroup] += 1;
                m.release();
            }
        }

    Example 3.

    A colleague of mine tried to use RTM to improve performance of a benchmark. (I changed function names for clarity.) The following fragment of the benchmark permutes an array of IDs by, for each ID, swapping its value with that of a randomly picked partner. In the fallback path, elements i and j are exclusively acquired in the increasing order of their indices, and then written back in the reverse order. He was running it on the emulator and came back to me with an occasional hang problem. Can you come up with a sequence of events that leads to an indefinite wait?

    bool pause( volatile int64_t* l ) {
        __asm__ __volatile__( "pause\n" : : : "memory" );
        return true;
    }
     
    int64_t read_and_lock( volatile int64_t* loc ) {
        int64_t val;
        while(1) {
            while( pause( loc ) )
                if(  empty_val != (val = *loc) )
                        break;
            assert( val!=empty_val );
            if ( __sync_bool_compare_and_swap( loc, val, empty_val ) )
                break;
        }
        assert( val!=0 );
        return val;
    }
     
    void write_and_release( volatile int64_t* loc, int64_t val ) {
        while( pause( loc ) )
            if( __sync_bool_compare_and_swap( loc, empty_val, val ) )
                break;
        return;
    }
     
    ...
    #pragma omp parallel for num_threads(16)
        for (int i=0; i<n; i++) {
            int j = (int64_t) ( n * gen_rand() );
     
            if( _xbegin()==-1 ) {
                if(i != j) {
                    const vid_t tmp_val = vid_values[i];
                    vid_values[i] = vid_values[j];
                    vid_values[j] = tmp_val;
                }
                _xend();
            } else {
                if (i < j) {
                    const vid_t tmp_val_i = read_and_lock( &vid_values[i] );
                    const vid_t tmp_val_j = read_and_lock( &vid_values[j] );
                    write_and_release( &vid_values[j], tmp_val_i );
                    write_and_release( &vid_values[i], tmp_val_j );
                } else if (j < i) {
                    const vid_t tmp_val_j = read_and_lock( &vid_values[j] );
                    const vid_t tmp_val_i = read_and_lock( &vid_values[i] );
                    write_and_release( &vid_values[i], tmp_val_j );
                    write_and_release( &vid_values[j], tmp_val_i );
                }
            }
        }

    Analysis

    Example 1.

    The fallback path has a race with the code in the RTM path. For example, the following interleaving may happen. (Always keep in mind that one should not make any assumption on relative speeds of threads!)

    Thread 1
    Thread 2
    start critical section
     
    read sums[mygroup]
     
     
    do transaction that updates 
    sums[mygroup]
    write sums[mygroup]
     

    As a result, the example occasionally loses the increment done in the RTM transaction.

    Example 2.

    Don’t let the HLE transaction fool you. When an HLE transaction gets aborted, it acquires the same mutex non-speculatively. When this happens, the case effectively becomes identical to Example 1.

    Example 3.

    Again, one should not make any assumption on relative speeds of concurrently executing threads. Even though the fallback path is race free on its own, it has a race with the code in the RTM path. For example, the following sequence of events may occur.

    Thread 1
    Thread 2
    read_and_lock( vid_values[i]  )
     
    do transaction that swaps vid_values[i] and
    vid_values[k] and makes vid_values[i] non-zero
    read_and_lock( vid_values[j] )
    write_and_release( vid_values[j] )
     
    Wait for vid_values[i] to become 0
     

    Possible Fixes

    Now that we have concrete diagnosis for each of the examples, the fixes are straightforward.

    Example 1.

    Replacing ‘omp critical’ with an atomic increment such as __sync_add_and_fetch would fix the problem. I.e.,

        __sync_add_and_fetch( &sums[mygroup], data[i] );

     A more general solution is to use a mutex in the fallback path and add it to the readset of the RTM transaction to force the transaction to abort if the mutex is acquired by another thread.

    mutex fallback_mutex;
     
    ...
    #pragma omp parallel for num_threads(8)
        for(int i = 0; i < N; i++){
            int mygroup = group[i];
            if(_xbegin()==-1) {
                if( !fallback_mutex.is_acquired() ) {
                    sums[mygroup] += data[i];
                } else {
                    _xabort(1);
                }
                _xend();
            } else {
                fallback_mutex.acquire();
                sums[mygroup] += data[i];
                fallback_mutex.release();
            }
        }

    Example 2.

    Similarly, we may extend mutex_elided to have the is_acquired() method. Since the lock variable is read inside the RTM transaction, any non-speculative execution of the HLE path which makes the change to the lock variable visible will abort the transaction.

        mutex_elided m;
    #pragma omp parallel for num_threads(8)
        for(int i = 0; i < N; i++) {
            int mygroup = group[i];
            if( (i&1) ) {
                while(_xbegin()!=-1) // having no fallback path is
                    ;                // UNSAFE
                if( !m.is_acquired() )
                    sums[mygroup] += data[i];
                else
                    _xabort(0);
                _xend();
            } else {
                m.acquire();
                sums[mygroup] += data[i];
                m.release();
            }
        }

    Example 3.

    We can also apply the mutex-based approach to this example. Another approach is to read the two ID values in the RTM transaction and check if either of them contains the ‘empty_value’. If so, we abort the transaction and force the thread to follow the fallback path.

    #pragma omp parallel for num_threads(16)
        for (int i=0; i<n; i++) {
            int j = (int64_t) ( n * gen_rand() );
            if( _xbegin()==-1 ) {
                if(i != j) {
                    const vid_t tmp_val_i = vid_values[i];
                    const vid_t tmp_val_j = vid_values[j];
                    if( tmp_val_i==0 || tmp_val_j==0 )
                        _xabort(0);
                    vid_values[i] = tmp_val_j;
                    vid_values[j] = tmp_val_i;
                }
                _xend();
            } else {
                if (i < j) {
                    const vid_t tmp_val_i = read_and_lock( &vid_values[i] );
                    const vid_t tmp_val_j = read_and_lock( &vid_values[j] );
                    write_and_release( &vid_values[j], tmp_val_i );
                    write_and_release( &vid_values[i], tmp_val_j );
                } else if (j < i) {
                    const vid_t tmp_val_j = read_and_lock( &vid_values[j] );
                    const vid_t tmp_val_i = read_and_lock( &vid_values[i] );
                    write_and_release( &vid_values[i], tmp_val_j );
                    write_and_release( &vid_values[j], tmp_val_i );
                }
            }
        }

    Conclusions

    So, what have I learned from these examples? As you may have already noticed, all of these are related to the ‘restricted’ part of RTM. Intel TSX has great potential for improving performance of concurrent/parallel applications. But, the synchronization between the speculative code inside the RTM transaction and the non-speculative fallback path needs to be carefully managed, since the interactions are subtle. I gather most programmers won’t need to worry too much about it because higher-level abstractions in supporting libraries should hide most of agonizing synchronization details. But for those who are willing to get their hands dirty to squeeze out the last drop of performance gain, it always pays to have a watchful eye on the interactions between an RTM code path and its non-speculative fallback. (And we have many tools such as Intel SDE to assist you.)

    Disclaimer: The opinion expressed in the blog is the author's own and reflects none of his employer's or his colleagues'.

  • Intel Transactional Synchronization Extensions (Intel TSX)
  • Restricted Transactional Memory (RTM)
  • Transactional memory
  • hardware lock elision
  • Icon Image: 

    Meshcentral.com - Server Issues & News Update

    $
    0
    0

    Quick post to update everyone on a few things:

    • Meshcentral.com has been having outages. A few hours 2 days ago and a few hours yesterday both times during the night. The server is actualy fine but administrators of my server room are doing some work on the network. I did get a few mails about this and forwarded the concerns to the server room administrators. Hopefully it will not happen again.
    • Mesh agent v1.71. I just release a new version of the agent to fix a problems with the agent running on some machines. Version 1.70 had a new wireless scanning feature and made use of "wlanapi.dll" which I assumed all versions of Windows had, even back to Windows XP. Well, the was not correct, some version of Windows Server don't come with wireless services installed and the new agent failed to run. Agent v1.71 has dynamic bindings to this DLL, so if the DLL is not present, it's ok, it will still run but with WiFi scanning disabled.
    • Intel Developer Forum. It's this time of year again, IDF 2013 will be in San Francisco September 10 to 12th. I will be a speaker this time around with one session and two labs. My topic is connecting Intel Platforms to the cloud, I will have a great time using a much hardware features as I can possibly use to make Intel computers work with the cloud. More blogs on this to come.

    That is it for now,
    Ylian
    meshcentral.com

  • Mesh
  • MeshCentral
  • MeshCentral.com
  • p2p
  • database
  • IDF
  • intel developer forum
  • IDF2013
  • Ylian
  • Icon Image: 

    Intel Highlights für Entwickler bei der Developer Week 2013 in Nürnberg

    $
    0
    0

    Die jährliche Developer Week 2013 Konferenz von der Neue Mediengesellschaft Ulm mbH fand vom 24. – 26.Juni 2013 in Nürnberg statt. Bei dieser Konferenz handelt es sich sogar um eine Sammlung unterschiedler Konferenzen. So trifft man auf die Developer Week (kurz DWX) die Web Developer Conference (WDC), Mobile Developer Conference (MDC) und die .NET Developer Conference (DDC) in einer Woche und an einem Ort. Das ist gerade hilfreich für Entwickler, die sich oft mehr als für einen Themenbereich interessieren und deswegen immer wieder im Konflikt stehen, welche Konferenz sie besuchen sollen.


    Kurz vor der Eröffnung der DWX 2013 Konferenz

    Wir vom Intel Developer Zone Team waren als Austeller dabei. In unserer Intel Developer Lounge stellten wir passend zum Konzept der Konferenz auch für jeden Themenbereich einen Entwickler-Trend vor. Diese Trends sind eine Kombination aus unseren Hardware- und Softwarelösungen. Einen Wow-Effekt lösten bereits die Softwarelösungen aus. Intel ist schließlich bekannt für gute Hardware, aber was haben wir mit Software für Entwickler zu tun? Genau das möchte ich hier mit ein paar Beispielen wiederholt demonstrieren:

    Perceptual Computing

    Steht im Deutschen für Wahrnehmungs-Computing und zeigt eine neue Art mit Computer agieren zu können. Dabei sind typische Eingabemedien wie die Tastatur, Maus oder Touchscreen von Gestern. Hier wird Software über Sprache und natürlichen Handbewegungen in der Luft gesteuert. Mit Hilfe einer 3D Kamera von Creative und dem Intel® Perceptual Computing SDK 2013, kann man via C++ oder auch mit C# diese neuen Möglichkeiten in die eigene Software implementieren.


    Tanja und Tina beim Spielen ihres Lieblingspiels Kung Pow Kevin

    Neu ist das Konzept nicht. Lange spricht man bereits von Argument Reality, das für erweiterte Realität steht. Aus Bildern von einer Videokamera, soll Software interaktiv eine Lösung bieten. Mit der Spielekonsole Xbox 360 schaffte Microsoft einen Durchbruch mit der ersten 3D Kamera Microsoft Kinect.


    Auch Christoph fuchtelte wild in der Luft herum

    Dennoch bietet derzeit das kostenfreie Intel® Perceptual Computing SDK 2013 eine innovative Lösung gegenüber bekannter Lösungen. Das SDK ist explizit für einzelne Fingergesten konzeptioniert. Womit zum Beispiel fertige Events für „Daumen hoch“, „Daumen runter“ oder dem bekannten „Peace zeichen aus zwei Fingern“ erkannt werden. Es geht noch weiter, eine integrierte Gesichtserkennung ermittelt die Stimmung, ob jemand lacht oder traurig ist. Aber nicht nur das, sondern auch welchem Geschlecht die aktuelle Person entspricht.

    Das kostenfreie Intel® Perceptual Computing SDK 2013 gibt es hier zum Download:
    http://software.intel.com/en-us/vcsource/tools/perceptual-computing-sdk

    Weitere Informationen folgen demnächst mit einem separaten Blog-Post meinerseits. 

    Intel´s App Framework - Eine App für jede Plattform

    Mit nur einem Source-Code, eine App für jede Plattform erstellen. Dieser Traum wurde bereits mit dem Mobile Development Framework PhoneGap ermöglicht. Die Entwicklung findet nur einmalig mit HTML5 und JavaScript statt, der Rest wird automatisch in der Cloud erzeugt.


    Mal was ganz anderes: Uli spielte einen Song passend zu seinem HTML5 Developer Tools Vortrag

    Intel´s App Framework ist quasi eine Erweiterung von PhoneGap und stellt noch viele weitere nützliche Komponenten zur Verfügung. Ein besonderes Highlight ist die Entwicklungsumgebung XDK. Die vollständig vom Browser aus als Web-Anwendung zur Verfügung steht. Das erspart mühevolles Installieren und kann jederzeit von jedem Gerät verwendet werden.


    Intel® XDK

    Ein weiteres persönliches Highlight gegenüber dem klassischen PhoneGap ist, dass Intel kostenfrei das Erstellen der App für jede Plattform in der Cloud erzeugt. Auch das App Framework + XDK bleibt kostenfrei. Was will man als Entwickler mehr?

    Weitere Informationen:
    http://html5dev-software.intel.com

    Auch hier folgen in nächster Zeit noch einige How-To´s meinerseits.

    Tablets, Ultrabooks und Ultrabook Convertibles

    Ultrabook ist ein Konzept von Intel für besonders kleine und leichte Notebooks mit Intel-Prozessoren. Um den Namen tragen zu dürfen, müssen die Geräte eine Reihe von Spezifikationen erfüllen. Dazu gehören eine hohe Akkulaufzeit, eine akzeptable Leistung und Tablet-Computer-ähnliche Eigenschaften wie ein schnelles Aufwachen aus dem Standby. Ein besonderes Merkmal sind ein MultiTouch-Screen und weitere zahlreiche Sensoren wie GPS, NFC, Accelerometer, Magnetometer, Gyrometer, und einen Ambient Light Sensor.


    Tablets, Ultrabooks und Ultrabooks Convertibles

    Einen Schritt weiter gehen Ultrabook Convertibles. Diese Ultrabooks sind Hybrid-Geräte und lassen sich jederzeit sekundenschnell zu einem Tablet verwandeln. Der Start von Windows 8 war gleichzeitig auch der Start dieser neuen Hardware-Generation und namenhafte Hersteller wie Dell, Lenovo, Asus und Toshiba veröffentlichten ihre Vision davon. So bietet jeder seinen eigenen Mechanismus zur Konvertierung an. Die zwei beliebtesten sind das Lenovo IdeaPad Yoga 13 und das Dell XPS 12.


    Acer Iconia W510 Tablets

    Somit sind diese beiden Gerätetypen ideale Kandidaten, wenn es um die App Entwicklung für Tablets und mobile Geräte geht. Auf dem folgenden Video zeige ich, wie einfach auf die Sensoren mit der neuen Windows Runtime zugegriffen wird:

    Mein Tipp: Windows 8 - App-Entwicklung für UltraBook Sensoren mit WinRT - Developer Garden TechTalk

    Smartphones mit ATOM Power

    Der legendäre Intel ATOM-Prozessor, der sich durch seine extrem lange Akkulaufzeit für Netbooks und Tablets bewährt hat, gibt es auch für Smartphones. Das ermöglicht zudem ein schnelles laden der Webseiten und Anwendungen. Auch das Wechseln von App zu App, geschieht flüssig und schnell. So wie man es eben von leistungsstarken Computern gewohnt ist.


    Hier zeigt Florian die Smartphones mit Intel® Technik

    Jedoch gibt es weitere interessante Intel Schmankerl. Das erste russische Android-Smartphone MegaFon Mint ermöglicht eine Full-HD-Wiedergabe von Videos im 1080p-Format. Die 8-MP-HD Kamera nimmt circa 10 Aufnahmen innerhalb 1 Sekunde auf. Damit wird garantiert kein kurzlebiger Augenblick verpasst. Das Beste kommt allerdings noch: Der Wireless-Display-Support. Damit werden Inhalte per Funk auf einen geeigneten HD-Fernseher mit entsprechendem Adapter übertragen. So kann man als Entwickler die eigene App ganz einfach professionell auf einem großen Bildschirm präsentieren.


    Ein Rennspiel was auf dem Smartphone läuft kann bequem via Mini-HDMI-Ausgang vom Bildschirm aus gespielt werden

    Mit einer solchen Vielzahl an Technologien für Smartphones, wird die App-Entwicklung zum Hochgenuss.

    Mein Tipp: Intel Smartphone Reference Demo

    Fazit

    Für mich persönlich war es spannend zu erfahren, welche Geschichte sich hinter jedem einzelnen Entwickler verbirgt. Die Konferenz hat angefangen mit einer jungen Dame, die mit Hilfe von Kinect Software für den Medizinbereich entwickelt. Die Herausforderungen der täglichen Spieleentwicklung brachten mich schon fast zum Schwitzen. Mein Mitgefühl erhielten die Web-Entwickler, die immer noch unter Kompatibilitätsproblemen der unterschiedlichen Browser mit HTML5 leiden.

    Spontan durfte ich für zwei ausgefallene Sessions Vorträge halten. So erzählte ich über "Entwickeln für Sensoren unter Windows 8" und "Softwarearchitektur mit dem Beispiel GoFish".



    Ein weiteres Highlight war unsere große Party bei der Teilnehmer die unseren Stand besuchten exklusiven Zutritt erhielten. Für die Musik sorgte Uli, der auch privat auf großen Bühnen unterwegs ist.

    Auf jeden Fall hat es uns großen Spaß gemacht für jeden etwas dabei zu haben und ich freue mich jetzt schon auf das nächste Jahr, wenn es heißt DWX 2014!

    Icon Image: 

    Viewing all 531 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>