Tutorial presentation about embedded development on the Openmoko platform. Presented at the fosslc.org event "Free/Open Source Mobile Development: An Introduction" in Waterloo, Canada
Openmokast: The open broadcasting software stack for mobile devicesJean-Michel Bouffard
Presentation about the Openmokast project and the Openmoko platform that was used as the base component. Presented at the fosslc.org event "Free/Open Source Mobile Development: An Introduction" in Waterloo, Canada
Building a plug-in for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plug-in development.
In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
This session is an introduction to Golang - the Go programming language - for IT Professionals. We'll explain how to setup a GO development environment, create a simple HTTP/2 Web API, and embed our code into a Docker container. We'll also go through the reasons why the language is so popular to create network applications by showing how the language is expressive, concise, clean, and efficient. Join this session if you've started writing Python scripts that consume Web APIs, and you now want to go to the next stage by creating your own APIs to expose or store Enterprise Data.
DEVNET-1808
https://www.ciscolive.com/us/learn/sessions/session-catalog/?search=DEVNET-1808
This document discusses developing web applications on Ubuntu. It covers creating online web apps, local HTML5 apps, Cordova apps, and using the online accounts API. The key points covered are:
- There are two main types of webapps on Ubuntu - online webapps hosted on a server and local HTML5 apps that run from the filesystem.
- Both types use the Oxide web engine based on Chromium. HTML5 APIs and plugins provide access to device features and platform services.
- Online webapps are simple to create and publish, while local apps have direct access to system APIs through JavaScript bindings.
- Cordova allows developing cross-platform hybrid apps for Ubuntu and other platforms like iOS and Android
WebGL enables 3D graphics and hardware-accelerated rendering within web browsers without plugins. This allows for rich 3D graphics and gaming experiences to be developed for the web. There are many experiments underway with WebGL across areas like science visualization, graphics demos, and games. Over the next few years, best practices are expected to emerge from a variety of approaches, lowering barriers to entry while also pursuing high performance. WebGL has the potential to significantly expand the scope of web development.
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKMarco Cavallini
Excerpt of the lectures at Yocto Project Dev Day in Prague, 2017
During the advanced class Marco Cavallini ran this presentation about the creation of a Linux kernel module with eSDK.
An IP Based File Delivery Platform for Mobile Multimedia BroadcastingJean-Michel Bouffard
This document proposes an IP-based file delivery platform for mobile multimedia broadcasting. The system would use a broadcast file server to store and distribute files, a service announcement system to advertise available files, and a broadcast download manager on mobile devices to select and receive files over high-capacity downlink channels provided by digital broadcast networks. The platform seeks to leverage existing IP tunneling capabilities in networks like DAB and DVB-H to provide a common IP-based transport mechanism for multimedia file delivery to mobile users.
Radio broadcasting involves transmitting audio over radio waves to reach a wide audience. There are three main types of radio broadcasting in the UK: public service broadcasting like the BBC, commercial broadcasting run by private companies, and community radio. The BBC is the largest public service broadcaster in the UK, operating numerous national and regional radio stations across genres like news, music, and speech. It is funded by an annual license fee paid by households rather than through advertising. Commercial radio stations make money primarily from airing advertisements.
Openmokast: The open broadcasting software stack for mobile devicesJean-Michel Bouffard
Presentation about the Openmokast project and the Openmoko platform that was used as the base component. Presented at the fosslc.org event "Free/Open Source Mobile Development: An Introduction" in Waterloo, Canada
Building a plug-in for the Notes client is hard and you need to be a rocket scientist to write a simple menu extension. This is exactly, what I thought, when I first heard of plug-in development.
In this session, you will learn, how to setup an Eclipse environment, connect it to your Notes Client for debugging and testing, and finally deploy your plugin to your users. Become familiar with the basics, and you will no longer be scared.
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
This session is an introduction to Golang - the Go programming language - for IT Professionals. We'll explain how to setup a GO development environment, create a simple HTTP/2 Web API, and embed our code into a Docker container. We'll also go through the reasons why the language is so popular to create network applications by showing how the language is expressive, concise, clean, and efficient. Join this session if you've started writing Python scripts that consume Web APIs, and you now want to go to the next stage by creating your own APIs to expose or store Enterprise Data.
DEVNET-1808
https://www.ciscolive.com/us/learn/sessions/session-catalog/?search=DEVNET-1808
This document discusses developing web applications on Ubuntu. It covers creating online web apps, local HTML5 apps, Cordova apps, and using the online accounts API. The key points covered are:
- There are two main types of webapps on Ubuntu - online webapps hosted on a server and local HTML5 apps that run from the filesystem.
- Both types use the Oxide web engine based on Chromium. HTML5 APIs and plugins provide access to device features and platform services.
- Online webapps are simple to create and publish, while local apps have direct access to system APIs through JavaScript bindings.
- Cordova allows developing cross-platform hybrid apps for Ubuntu and other platforms like iOS and Android
WebGL enables 3D graphics and hardware-accelerated rendering within web browsers without plugins. This allows for rich 3D graphics and gaming experiences to be developed for the web. There are many experiments underway with WebGL across areas like science visualization, graphics demos, and games. Over the next few years, best practices are expected to emerge from a variety of approaches, lowering barriers to entry while also pursuing high performance. WebGL has the potential to significantly expand the scope of web development.
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKMarco Cavallini
Excerpt of the lectures at Yocto Project Dev Day in Prague, 2017
During the advanced class Marco Cavallini ran this presentation about the creation of a Linux kernel module with eSDK.
An IP Based File Delivery Platform for Mobile Multimedia BroadcastingJean-Michel Bouffard
This document proposes an IP-based file delivery platform for mobile multimedia broadcasting. The system would use a broadcast file server to store and distribute files, a service announcement system to advertise available files, and a broadcast download manager on mobile devices to select and receive files over high-capacity downlink channels provided by digital broadcast networks. The platform seeks to leverage existing IP tunneling capabilities in networks like DAB and DVB-H to provide a common IP-based transport mechanism for multimedia file delivery to mobile users.
Radio broadcasting involves transmitting audio over radio waves to reach a wide audience. There are three main types of radio broadcasting in the UK: public service broadcasting like the BBC, commercial broadcasting run by private companies, and community radio. The BBC is the largest public service broadcaster in the UK, operating numerous national and regional radio stations across genres like news, music, and speech. It is funded by an annual license fee paid by households rather than through advertising. Commercial radio stations make money primarily from airing advertisements.
Buildout provides an easy way to manage Python dependencies and environments through a single configuration file. It can install packages from various sources like PyPI or SVN checkouts. The djangorecipe recipe simplifies creating Django projects and their dependencies with Buildout. It generates a manage.py wrapper and WSGI script with all dependencies included. Migrating existing projects to use Buildout and djangorecipe for dependency and environment management is straightforward.
This document discusses how Docker can be used to improve the Java development environment. It outlines problems with traditional development environments like long setup times and differences between local and production environments. Docker Toolbox allows running Docker on Windows and Macs. Examples show setting up multiple apps with different stacks using Docker Compose. Use cases demonstrated include debugging, continuous deployment from IDEs, integration testing, and reproducing production issues. Best practices recommend using Docker Machine and volumes. The overall message is that Docker can make the development environment more consistent with production.
Automatisation in development and testing - within budgetDavid Lukac
Working on client projects with very strict budget and resource restrictions, tight deadlines and pressure, many times does not allow for full blown Test Driven Development, Continuous Delivery and other software engineering goodness we would love to have. We will show you easily accessible and quickly implementable options, that allow you to automate your development and testing process, or at least the most painful parts, without blowing the budget. Finally you can relax during deployments of the code to production! :-)
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseRalf Sternberg
This document provides instructions for setting up and configuring a tutorial workspace to demonstrate single sourcing a Rich Ajax Platform (RAP) and Rich Client Platform (RCP) application. It describes importing a sample project, resolving compile errors, creating a RAP fragment project, implementing a custom About action, configuring the RAP entry point, styling the application layout and branding, and applying a theme. The goal is to share code between the RAP and RCP versions of the application through single sourcing.
This document discusses using Docker and Ansible together for infrastructure as code. It begins with an overview of problems with traditional deployment approaches and advantages of defining infrastructure programmatically. It then provides in-depth explanations of Docker concepts like images, containers, Dockerfiles and how Docker works. The remainder covers using Ansible for configuration management, explaining concepts like modules, inventory, playbooks and roles. It emphasizes that Docker and Ansible together provide an easy way to start automating infrastructure while removing dependencies on specific technologies.
The document provides instructions for compiling OpenCPN from source on Windows. It details downloading and installing prerequisites like Visual Studio 2010, Git, CMake, wxWidgets. It describes configuring the build with CMake, compiling the code from the command line or Visual Studio, and optionally creating an installer package. Debugging requires copying DLL and data files to the build directory.
Advanced Mac Software Deployment and Configuration: Just Make It Work!Timothy Sutton
This presentation was given at the Mac Admin & Developer Conference UK in February 2017. Session description follows:
You’re dealing with terrible installer packages, applications that perform ad-hoc system setup tasks and assume every user is an admin. It seems so often they were never tested in multi-user or enterprise environments. Your colleagues wonder “How hard could this be? At home I just install it and it works,” and they roll their eyes as you bemoan the sad realities of deploying desktop software.
This session will explore techniques for identifying the causes of these issues, and how to approach the various problems systematically to develop solutions. In no particular order, we’ll visit Bash, Python, packaging, launchd, configuration profiles, defaults, and the Hopper Disassembler.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
Orangescrum In App Chat Add-on User ManualOrangescrum
The In-App chat add-on will help you to install the add-on & guide you about the features of chat add-on.
It's a real-time chat widget built for the Orangescrum Community Version. It offers fully secure, single or multi-user chat with private messaging, chat invitations and more.
Explore chat add-on details at: http://www.orangescrum.org/add-on/chat
The document provides steps to create JSR-168/JSR-286 portlets using Google Web Toolkit (GWT) with Liferay Portal. It outlines installing necessary software including Eclipse, GWT, Java JDK, Ant, and Liferay Portal. It then describes creating a Liferay project and portlet, adding GWT to the portlet, and deploying the portlet on Liferay Portal.
The document discusses setting up a Hackintosh (macOS on non-Apple hardware) to use as a local build server for continuous integration with Jenkins. It describes choosing hardware components, installing macOS using Clover and related tools, setting up Jenkins, addressing performance issues, and procedures for updating macOS, Xcode, Nvidia drivers and other software. Maintaining a Hackintosh may require more troubleshooting than a standard Mac but provides better performance and value than Apple hardware.
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedFabian Jakobs
This presentation introduces the Qooxdoo JavaScript framework. Qooxdoo allows building rich desktop-style applications that run in a web browser. The presentation covers the architecture of Qooxdoo applications, the available widgets and layout managers, and demonstrates how to create a simple temperature converter application using test-driven development principles in Qooxdoo. Hands-on exercises guide attendees in using the Qooxdoo tooling and developing a basic user interface.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Plugins have evolved in the past year, and the new plugin architecture will be incorporated in all products in 2009. This session dives into the detail of the new plugins system, guides developers on the best techniques and approaches and explores how the architecture will evolve further.
Atlassian Speaker: Don Brown
Key Takeaways:
* In-depth look at plugins 2
* How-tos and code samples
The document describes Splunk n' Box, a tool created by Mohamad Hassan to quickly build Splunk multi-site clusters within Docker containers in under 40 minutes. It allows users to focus on Splunk without needing to learn Docker or virtual machines. Splunk n' Box uses extensive automation and error checking to provision and configure large numbers of virtual Splunk instances across multiple sites. It provides a way for users to test Splunk configurations, upgrades, and applications in an isolated replicated production environment on their own laptop or lab.
DevNet Associate : Python introductionJoel W. King
The document provides an introduction to Python programming and resources for learning Python. It discusses installing Python on personal computers or using containers. It also summarizes using Jupyter notebooks for Python, debugging Python code in VS Code, and additional learning resources like Coursera courses and DevNet labs. Key takeaways are that the session provides a foundation for learning Python concepts and using additional resources for more in-depth learning.
BLCN532 Lab 1Set up your development environmentV2.0.docxmoirarandell
BLCN532 Lab 1
Set up your development environment
V2.0
Introduction
This course introduces students to blockchain development for enterprise environments. Before you can develop software applications, you need to ensue your development environment is in place. That means you’ll need all the tools and infrastructure installed and configured to support enterprise blockchain software development projects.
In this lab you’ll set up your own Hyperledger Fabric development environment and install the course software from the textbook. When you finish this lab, you’ll have a working development environment and will be ready to start running and modifying blockchain applications.
The instructions in your textbook are for Mac and Linux computers.
However
, there is no guarantee that your installation of MacOS or Linux is completely compatible with the environment in which the commands from the textbook work properly. For that reason, I
STRONGLY SUGGEST
that you acquire an Ubuntu 16.04 Virtual Machine (VM) for your labs. Using an Ubuntu 16.04 VM will make the labs far easier to complete.
The instructions in this course’s labs assume that your computer runs the Windows operating system. If you run MacOS or Linux, you can get
Vagrant
and
VirtualBox
for those operating systems and follow the gist of the “Initial setup for Windows computers”.
Lab Deliverables:
To complete this lab, you must create a
Lab Report file
and submit the file in iLearn. The Lab Report file must be a Microsoft Word format (.docx), and have the filename with the following format:
BLCN532_SECTION_STUDENTID_LASTNAME_FIRSTNAME_Lab01.docx
· SECTION is the section number of your current course (2 digits)
· STUDENTID is your student ID number (with leading zeros)
· LASTNAME is your last name, FIRSTNAME is your first name
To get started, create a Microsoft Word document (.docx) with the correct filename for this lab. You’ll be asked to enter text and paste screenshots into the lab report file.
NOTE: All screenshots MUST be readable. Use the Ubuntu Screen Capture utility (see the lab video.) Make sure that you label each screenshot (i.e. Step 2.1.3) and provide screenshots in order. For commands that produce lots of output, I only want to see the last full screen when the command finishes. Provide FULL screenshots, NOT cropped images.
SECTION 1: Initial setup for Windows computers (Chapter 3)
Step 1.1: Install Oracle Virtualbox (Windows, Linux, MacOS)
Oracle Virtualbox is an open source virtualization environment that allows you to run multiple virtual machines and containers on a single personal computer. Virtualbox is free and it is easy to install.
In your favorite web browser, navigate to:
https://www.virtualbox.org/
and click the “Download Virtualbox” button. Click the “Windows hosts” link to download the main installation executable. You should also click the “All supported platforms” under the “Extension Pack” heading to download extra software supp.
Buildout provides an easy way to manage Python dependencies and environments through a single configuration file. It can install packages from various sources like PyPI or SVN checkouts. The djangorecipe recipe simplifies creating Django projects and their dependencies with Buildout. It generates a manage.py wrapper and WSGI script with all dependencies included. Migrating existing projects to use Buildout and djangorecipe for dependency and environment management is straightforward.
This document discusses how Docker can be used to improve the Java development environment. It outlines problems with traditional development environments like long setup times and differences between local and production environments. Docker Toolbox allows running Docker on Windows and Macs. Examples show setting up multiple apps with different stacks using Docker Compose. Use cases demonstrated include debugging, continuous deployment from IDEs, integration testing, and reproducing production issues. Best practices recommend using Docker Machine and volumes. The overall message is that Docker can make the development environment more consistent with production.
Automatisation in development and testing - within budgetDavid Lukac
Working on client projects with very strict budget and resource restrictions, tight deadlines and pressure, many times does not allow for full blown Test Driven Development, Continuous Delivery and other software engineering goodness we would love to have. We will show you easily accessible and quickly implementable options, that allow you to automate your development and testing process, or at least the most painful parts, without blowing the budget. Finally you can relax during deployments of the code to production! :-)
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseRalf Sternberg
This document provides instructions for setting up and configuring a tutorial workspace to demonstrate single sourcing a Rich Ajax Platform (RAP) and Rich Client Platform (RCP) application. It describes importing a sample project, resolving compile errors, creating a RAP fragment project, implementing a custom About action, configuring the RAP entry point, styling the application layout and branding, and applying a theme. The goal is to share code between the RAP and RCP versions of the application through single sourcing.
This document discusses using Docker and Ansible together for infrastructure as code. It begins with an overview of problems with traditional deployment approaches and advantages of defining infrastructure programmatically. It then provides in-depth explanations of Docker concepts like images, containers, Dockerfiles and how Docker works. The remainder covers using Ansible for configuration management, explaining concepts like modules, inventory, playbooks and roles. It emphasizes that Docker and Ansible together provide an easy way to start automating infrastructure while removing dependencies on specific technologies.
The document provides instructions for compiling OpenCPN from source on Windows. It details downloading and installing prerequisites like Visual Studio 2010, Git, CMake, wxWidgets. It describes configuring the build with CMake, compiling the code from the command line or Visual Studio, and optionally creating an installer package. Debugging requires copying DLL and data files to the build directory.
Advanced Mac Software Deployment and Configuration: Just Make It Work!Timothy Sutton
This presentation was given at the Mac Admin & Developer Conference UK in February 2017. Session description follows:
You’re dealing with terrible installer packages, applications that perform ad-hoc system setup tasks and assume every user is an admin. It seems so often they were never tested in multi-user or enterprise environments. Your colleagues wonder “How hard could this be? At home I just install it and it works,” and they roll their eyes as you bemoan the sad realities of deploying desktop software.
This session will explore techniques for identifying the causes of these issues, and how to approach the various problems systematically to develop solutions. In no particular order, we’ll visit Bash, Python, packaging, launchd, configuration profiles, defaults, and the Hopper Disassembler.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
Orangescrum In App Chat Add-on User ManualOrangescrum
The In-App chat add-on will help you to install the add-on & guide you about the features of chat add-on.
It's a real-time chat widget built for the Orangescrum Community Version. It offers fully secure, single or multi-user chat with private messaging, chat invitations and more.
Explore chat add-on details at: http://www.orangescrum.org/add-on/chat
The document provides steps to create JSR-168/JSR-286 portlets using Google Web Toolkit (GWT) with Liferay Portal. It outlines installing necessary software including Eclipse, GWT, Java JDK, Ant, and Liferay Portal. It then describes creating a Liferay project and portlet, adding GWT to the portlet, and deploying the portlet on Liferay Portal.
The document discusses setting up a Hackintosh (macOS on non-Apple hardware) to use as a local build server for continuous integration with Jenkins. It describes choosing hardware components, installing macOS using Clover and related tools, setting up Jenkins, addressing performance issues, and procedures for updating macOS, Xcode, Nvidia drivers and other software. Maintaining a Hackintosh may require more troubleshooting than a standard Mac but provides better performance and value than Apple hardware.
Lecture 8 - Qooxdoo - Rap Course At The University Of SzegedFabian Jakobs
This presentation introduces the Qooxdoo JavaScript framework. Qooxdoo allows building rich desktop-style applications that run in a web browser. The presentation covers the architecture of Qooxdoo applications, the available widgets and layout managers, and demonstrates how to create a simple temperature converter application using test-driven development principles in Qooxdoo. Hands-on exercises guide attendees in using the Qooxdoo tooling and developing a basic user interface.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Plugins have evolved in the past year, and the new plugin architecture will be incorporated in all products in 2009. This session dives into the detail of the new plugins system, guides developers on the best techniques and approaches and explores how the architecture will evolve further.
Atlassian Speaker: Don Brown
Key Takeaways:
* In-depth look at plugins 2
* How-tos and code samples
The document describes Splunk n' Box, a tool created by Mohamad Hassan to quickly build Splunk multi-site clusters within Docker containers in under 40 minutes. It allows users to focus on Splunk without needing to learn Docker or virtual machines. Splunk n' Box uses extensive automation and error checking to provision and configure large numbers of virtual Splunk instances across multiple sites. It provides a way for users to test Splunk configurations, upgrades, and applications in an isolated replicated production environment on their own laptop or lab.
DevNet Associate : Python introductionJoel W. King
The document provides an introduction to Python programming and resources for learning Python. It discusses installing Python on personal computers or using containers. It also summarizes using Jupyter notebooks for Python, debugging Python code in VS Code, and additional learning resources like Coursera courses and DevNet labs. Key takeaways are that the session provides a foundation for learning Python concepts and using additional resources for more in-depth learning.
BLCN532 Lab 1Set up your development environmentV2.0.docxmoirarandell
BLCN532 Lab 1
Set up your development environment
V2.0
Introduction
This course introduces students to blockchain development for enterprise environments. Before you can develop software applications, you need to ensue your development environment is in place. That means you’ll need all the tools and infrastructure installed and configured to support enterprise blockchain software development projects.
In this lab you’ll set up your own Hyperledger Fabric development environment and install the course software from the textbook. When you finish this lab, you’ll have a working development environment and will be ready to start running and modifying blockchain applications.
The instructions in your textbook are for Mac and Linux computers.
However
, there is no guarantee that your installation of MacOS or Linux is completely compatible with the environment in which the commands from the textbook work properly. For that reason, I
STRONGLY SUGGEST
that you acquire an Ubuntu 16.04 Virtual Machine (VM) for your labs. Using an Ubuntu 16.04 VM will make the labs far easier to complete.
The instructions in this course’s labs assume that your computer runs the Windows operating system. If you run MacOS or Linux, you can get
Vagrant
and
VirtualBox
for those operating systems and follow the gist of the “Initial setup for Windows computers”.
Lab Deliverables:
To complete this lab, you must create a
Lab Report file
and submit the file in iLearn. The Lab Report file must be a Microsoft Word format (.docx), and have the filename with the following format:
BLCN532_SECTION_STUDENTID_LASTNAME_FIRSTNAME_Lab01.docx
· SECTION is the section number of your current course (2 digits)
· STUDENTID is your student ID number (with leading zeros)
· LASTNAME is your last name, FIRSTNAME is your first name
To get started, create a Microsoft Word document (.docx) with the correct filename for this lab. You’ll be asked to enter text and paste screenshots into the lab report file.
NOTE: All screenshots MUST be readable. Use the Ubuntu Screen Capture utility (see the lab video.) Make sure that you label each screenshot (i.e. Step 2.1.3) and provide screenshots in order. For commands that produce lots of output, I only want to see the last full screen when the command finishes. Provide FULL screenshots, NOT cropped images.
SECTION 1: Initial setup for Windows computers (Chapter 3)
Step 1.1: Install Oracle Virtualbox (Windows, Linux, MacOS)
Oracle Virtualbox is an open source virtualization environment that allows you to run multiple virtual machines and containers on a single personal computer. Virtualbox is free and it is easy to install.
In your favorite web browser, navigate to:
https://www.virtualbox.org/
and click the “Download Virtualbox” button. Click the “Windows hosts” link to download the main installation executable. You should also click the “All supported platforms” under the “Extension Pack” heading to download extra software supp.
Similar to Getting started with open mobile development on the Openmoko platform (20)
The document discusses developments in bringing FM radio functionality to mobile devices using FM-RDS technology. It describes efforts to develop FM receiver apps for Windows Mobile and Android phones between 2009-2010. It also outlines the creation of an FM-RDS test platform using GNU Radio and USRP hardware to experiment with RDS features. More recent progress includes the development of an FM API and app for a new Android phone that includes an FM-RDS chip, allowing for advanced FM features and opening the door to new hybrid radio innovations using RDS.
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Jean-Michel Bouffard
Aperçu des caractéristiques qui définissent le web2.0 ainsi que les technologies qui ont permis son évolution. Plusieurs exemples de services Web sont aussi présentés.
Large Scale Distribution of Popular Internet “User Generated Content” to Mobi...Jean-Michel Bouffard
Large-scale distribution of popular user-generated internet content to mobile devices. The document discusses broadcasting popular user-generated internet content to mobile devices using new broadcasting networks, as an alternative to unicast over mobile networks. It provides an overview of the service architecture used for trials and presents results and conclusions.
This document discusses multimodal applications for mobile multimedia broadcasting. It introduces digital multimedia broadcasting (DMB) networks, which provide high-capacity downlinks and the ability to transport digital data. The document notes that current DMB services allow user interaction through typing on mobile devices, but proposes expanding this to include voice applications for a more natural multimodal experience. It provides an overview of a proposed DMB voice applications system and discusses open implementation and conclusions.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. Summary
Setting up the development environment
✔
OM toolchain
✔
OpenEmbedded build system
✔
Creating a simple first project for the platform
✔
Running the application
✔
Openmoko emulator
✔
FreeRunner device
✔
Packaging a custom distribution
✔
Adding new hardware components
✔
2
3. Introduction
Openmoko OM2008.x distribution build environment is
✔
using:
OpenEmbedded (http://wiki.openembedded.net)
✔
Examples from this tutorial are done using:
✔
Ubuntu 8.10 i686 host system
✔
Official OM2008.x Openmoko distributions
✔
3
5. Introduction
Choose your build system
✔
Toolchain
✔
✔ Installs only a crosscompiler and basic libraries for
application development
✔ Can build applications only
Unstable and less recommended
✔
OpenEmbedded
✔
✔ Install the complete build system for Openmoko
distributions
✔ Can build applications and full OS images
More stable and recommended
✔
5
6. Setting up the development environment
Toolchain
Requirements
✔
autotools build system
✔
default packages:
✔
✔ autoconf, automake, binutils, gcc, gccc++, libtool, ccache,
intltool
distro dependent packages (Ex. Ubuntu 8.10):
✔
✔ libglib2.0dev libxrenderdev libmokoui2dev libgconf2dev
mtools fakeroot alien check ubootmkimage
Complete list available on the openmoko wiki at
✔
http://wiki.openmoko.org/wiki/Toolchain
6
7. Setting up the development environment
Toolchain
Installation
✔
download toolchain archive from
✔
http://downloads.openmoko.org/toolchains
extract archive to /
✔
Prepare environment variables
✔
use “setupenv” script
✔
> wget
http://downloads.openmoko.org/toolchains/openmokoi686armlinuxgnueabitoolchain.tar.bz2
> cd /
> tar xjvf ~/openmokoi686armlinuxgnueabitoolchain.tar.bz2
> . /usr/local/openmoko/arm/setupenv
7
8. Setting up the development environment
Toolchain
The clean toolchain is like a Linux system without any
✔
development libraries, so dependencies related to the
new software project must be installed
Preparation of environment
✔
Modifications of the toolchain must be done as a “super user”
✔
Set environment with the “setupenv” script
✔
Installation of libraries
✔
Update packages list with “opkgtarget”
✔
Search and install packages with “opkgtarget”
✔
> sudo bash
> . /usr/local/openmoko/arm/environmentsetup
> opkgtarget update
> opkgtarget list | grep gtk+dev
> opkgtarget install gtk+dev
8
9. Setting up the development environment
Toolchain
Application development can be done on the host
✔
system with desktop development tools
Building for the target platform using the toolchain
✔
Preparation of environment
✔
✔ Application development can be done as a “normal user”
✔ Set environment with the “setupenv” script
Building applications
✔
✔ Configure application with “omconf”
✔ Build application as usual with “make”
> . /usr/local/openmoko/arm/environmentsetup
> cp r /usr/local/openmoko/source/openmokosample2 ~/
> omconf openmokosample2
> cd openmokosample2
> make
9
10. Setting up the development environment
OpenEmbedded
Install required packages
✔
Default packages:
✔
✔ subversion, texi2html, texinfo, help2man
✔ ncurses, zlib (or libz), OpenSSL, GTK++
Complete list can be found at
✔
http://wiki.openmoko.org/wiki/MokoMakeFile#Required_software
Download MokoMakefile
✔
http://www.rwhitby.net/files/openmoko/Makefile
✔
> mkdir ~/moko; cd ~/moko
> wget http://www.rwhitby.net/files/openmoko/Makefile
10
11. Setting up the development environment
OpenEmbedded
Start build:
✔
make setup
✔
To accelerate the build on a multicore computer, add these two
✔
lines in the file “build/conf/local.conf”
✔ PARALLEL_MAKE = quot;j 4quot;
✔ BB_NUMBER_THREADS = quot;4quot;
make setupmachineomgta02
✔
make image
✔
Wait (6220 steps generate 10GB of data in ~10 hours!)
✔
> make setup
> make setupmachineomgta02
> make image
11
12. Setting up the development environment
OpenEmbedded
You will encounter build errors
✔
Check errors in log files
✔
For instance, compilation log files for the alsautils package
✔
can be found in ~/moko/build/tmp/work/armv4tangstromlinux
gnueabi/alsautils1.0.15r1/temp/log.do_compile.xxxx
Correct errors if any
✔
Update environment, clean package and restart build
✔
make updatemakefile setup update
✔
make cleanpackage<pkg_error>; make image
✔
> tail ~/moko/build/tmp/work/armv4tangstromlinuxgnueabi/alsautils1.0.15
r1/temp/log.do_compile.25688
> make updatemakefile
> make setup update
> make cleanpackagealsautils
> make image
12
13. Setting up the development environment
OpenEmbedded
Add additional requirements for the development
✔
make buildpackage<pkg_req>
✔
Newly built packages will be written to the deployment
✔
folder
~/moko/build/tmp/deploy/glibc/opk/armv4t/
✔
Missing packages are not part of the generated
✔
OM2008.x image, they need to be installed along with
the new application
> make buildpackagelibglade
13
17. Creating a simple first project for the platform
Glade interface designer lets you create an interface
✔
easily for your new application
Follow UI design recommendations
✔
✔ Instantaneous save, finger usage, efficient layout, etc
17
18. Creating a simple first project for the platform
An icon and desktop item must be
✔
added
/data/openmokocalc.png
✔
/data/openmokocalc.desktop
✔
/data/openmokocalc.png
/data/Makefile.am
✔
[Desktop Entry] #
Encoding=UTF8 # desktop integration: .desktop file
Name=Openmoko Calc #
Comment=Simple calculator application desktopdir = $(datadir)/applications
Exec=openmokocalc dist_desktop_DATA = openmokocalc.desktop
Icon=openmokocalc
Terminal=false #
Type=Application # desktop integration: application icon
Categories=Application;Utilities; #
MimeType=text/xvcard; appicondir = $(datadir)/pixmaps
SingleInstance=true dist_appicon_DATA = openmokocalc.png
StartupNotify=true
/data/openmokocalc.desktop /data/Makefile.am
18
21. Creating a simple first project for the platform
BitBake is used to manage builds in OpenEmbedded
✔
A BitBake recipe is needed to identify how to build a
✔
package
DESCRIPTION = quot;Openmoko Calculatorquot;
AUTHOR = quot;JeanMichel Bouffard <jeanmichel.bouffard@crc.ca>quot;
HOMEPAGE = quot;http://www.crc.ca/mmbquot;
SECTION = quot;console/applicationsquot;
PRIORITY = quot;optionalquot;
LICENSE = quot;GPLquot;
DEPENDS = quot;quot;
RDEPENDS = quot;quot;
PN = quot;openmokocalcquot;
PV = quot;0.1quot;
PR = quot;r0quot;
EXTRA_OECONF += quot;quot;
SRC_URI = quot;file://openmokocalc0.1.tar.gzquot;
inherit autotools
/openmokocalc.bb
21
22. Creating a simple first project for the platform
Build application for Openmoko using the “bitbake”
✔
command
configuration script is executed with flags for crosscompiler
✔
compiler and linker are executed
✔
application installation is validated
✔
ipk package is created
✔
application can be found in:
✔
~/moko/build/tmp/deploy/glibc/opk/armv4t/
✔
> cd ~/moko/build
> . ../setupenv
> bitbake b ~/workspace/openmoko_calc/openmokocalc.bb
> cp ~/moko/build/tmp/deploy/glibc/opk/armv4t/openmokocalc_0.1r0_arm4t.ipk ~/.
22
23. Running the application
Emulator
An emulator base on the QEMU project is available
✔
The use of the emulator is not recommended
✔
The emulator supports the Neo 1973 only
✔
The latest ON2008.x distributions do not support the Neo
✔
1973
To use the emulator anyway:
✔
The MokoMakefile can build and install the emulator
✔
automatically
> cd ~/moko
> make qemu
23
24. Running the application
Device
Flashing the operating system into the device
✔
Two main partitions must be written into internal flash memory
✔
✔ The Linux kernel (kernel)
✔ The OS and applications files (rootfs)
Start the phone in flashing mode by holding the option button
✔
while pressing the power button
Use “dfuutil” (distributed with OpenEmbedded)
✔
✔ “dfuutil l“ confirms that the phone is working if listed
✔ “dfuutil a <partition> R D <image>” starts flashing
> ./dfuutil l
> sudo ./dfuutil a kernel R D ./uImage2.6.24+gitr0r2.01omgta02.bin (takes 12
minutes)
> sudo ./dfuutil a rootfs R D ./openMokoasuimageomgta02.jffs2 (takes 1015 minutes)
24
25. Running the application
Device
Boot Neo FreeRunner by pressing the power button
✔
Connect USB connector
✔
Activate networking
✔
By default, the usb0 interface is enabled on the FreeRunner at
✔
address 192.168.0.202
Use “ifconfig” to enable usb0 interface on host
✔
Add “route” to usb0 if host main address is 192.168.0.x
✔
> sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0
> sudo route add host 192.168.0.202 dev usb0 (required if host address is in 192.168.0.x
range)
25
26. Running the application
Device
Transfer application package to device
✔
Use Secure copy (scp) to root@192.168.0.202
✔
Connect to device
✔
Use secure shell (ssh) connection root@192.168.0.202
✔
Install application
✔
Use opkg package manager to install .ipk files
✔
host> scp *.ipk root@192.168.0.202:.
host> ssh root@192.168.0.202 (no password)
freerunner> opkg install libglade2.00_2.6.2r2_arm4t.ipk
freerunner> opkg install openmokocalc_0.1r0_arm4t.ipk
freerunner> exit
26
28. Packaging a custom distribution
Custom distribution can be generated by using the
✔
“local overlay” option from OpenEmbedded
Provides a local structure for custom code and build
✔
configurations
Create the following file structure in ~/moko
✔
local local/conf local/classes local/packages
✔
local/packages/images local/packages/tasks
> mkdir local local/conf local/classes local/packages local/packages/images
local/packages/tasks p
28
29. Packaging a custom distribution
Copy the main configuration file into the local overlay
✔
from “build/conf/site.conf” to “local/conf/site.conf”
✔
Edit these lines
✔
BBFILES := quot;${OMDIR}/openembedded/packages/*/*.bb $
✔
{OMDIR}/oe/packages/*/*.bb ${OMDIR}/local/packages/*/*.bbquot;
BBFILE_COLLECTIONS = quot;upstream local overlayquot;
✔
Add these lines
✔
BBFILE_PATTERN_overlay = quot; ^ ${OMDIR}/local/quot;
✔
BBFILE_PRIORITY_overlay = quot;20quot;
✔
> cp build/conf/site.conf local/conf/site.conf
> vi local/conf/site.conf
29
30. Packaging a custom distribution
Modify “~/moko/setupenv” script to take into account
✔
the new local overlay
export BBPATH=quot;${OMDIR}/local:${OMDIR}/build:$
✔
{OMDIR}/openembeddedquot;
The local overlay will now be taken into account when
✔
building packages
> vi ~/moko/setupenv
30
32. Packaging a custom distribution
local/packages/tasks/taskopenmokocreator.bb
✔
DESCRIPTION = quot;OpenMoko: Example of a custom configurationquot;
SECTION = quot;openmoko/basequot;
LICENSE = quot;originalquot;
PR = quot;r0quot;
inherit task
RDEPENDS_taskopenmokoexample = quot;
libglade
openmokocalc
quot;
Start build operation
✔
Using the “bitbake” command
✔
> cd ~/moko/build
> . ../setupenv
> bitbake exampleopenmokodevelimage
32
33. Adding new hardware components
Different connections are available to extend hardware
✔
capabilities:
USB
✔
SDIO
✔
Bluetooth
✔
I2C
✔
Serial interfaces
✔
USB port is available outside the case. Other
✔
connections would require further modifications
33
34. Adding new hardware components
USB peripherals
Internal USB test points can be
✔
used to integrate a USB component
Schematics available from
✔
http://openmoko.com
Marked on FreeRunner schematic as
✔
HTP4901, HTP4902, HTP4903, H
TP4904
Configuration
✔
USB port must be switched from
✔
device to host mode of operation
USB power mode can be selected to
✔
provide power to the device from the
FreeRunner battery
34
35. Conclusion
Application development for the Openmoko platform is
✔
comparable to desktop development
Many new improvements of the operating system and
✔
the available software are expected in the next months
Development tools need to be improved to offer better
✔
stability and ease of use
The toolchain should be the way to go for easy software
✔
development, but configuration issues make it difficult to use
The OpenEmbedded environment is not practical because of
✔
the large disk space and build time requirements
35
36. Conclusion
More information at:
✔
Openmoko Open. Mobile. Free.
✔
http://wiki.openmoko.org
Openmoko developer guide
✔
http://wiki.openmoko.org/wiki/Openmoko_developer_guide
OpenEmbedded Crosscompile environment to create a
✔
complete Linux Distribution for embedded systems.
http://wiki.openembedded.net/index.php/Main_Page
✔
36