The Web is a vital part of our daily lives, and as we begin using the Web for tasks traditionally performed on the desktop, such as word processing, software as a service (SaaS) and software + services models are becoming more important. Web developers are caught in the cross hairs of these merging industries. They have the know-how of web development but, often, none of the skills for traditional desktop or mobile development.
Enter Titanium. Appcelerator Titanium is an open source platform for developing native desktop and mobile applications using the web technologies you're already familiar with. Now, web developers can use their skills to develop for both the Web and desktop/mobile platforms. Ben Ramsey will demonstrate how to create a simple application in Titanium Desktop, showing examples using JavaScript and PHP working together in the Titanium run time environment to power dynamic desktop applications that communicate easily with external web services.
Filip Rakowski "Web Performance in modern JavaScript world"Fwdays
In mobile-first era where network connectivity is not always stable and low-end devices are widely used it’s extremely important to keep your web applications smooth and optimized. During the talk we’ll take a look at the performance challenges we are facing every day and how modern JavaScript technologies such as PWA and AMP can help solving them. We will investigate how to optimize our app loading time, make JavaScript parsing faster, how to deliver reliable waiting experience to our users and much more.
Writing applications for phones has been a daunting task since every platform uses it's own language and API's. PhoneGap will solve this problem for you by utilizing the browser capabilities. In this session we will see how we can turn a web based application into a native app. We will also look at posibilites to integrate native functionality, like the camera or accelerometer, in our application. The final part of the presentation is about deployment of these applications. Adobe offers a cloud based service called PhoneGap Build which easily builds your application for all platforms.
For new and veteran PHP programmers alike, it’s often difficult to find the right place to ask questions and find the best answers and solutions to programming challenges. This month, Ben Ramsey takes us on a journey through the PHP Community to discover the websites the experts use to get PHP news and information and the places they go to ask for help (because even experts need help). He’ll wrap up the talk with a brief who’s who in the PHP Community, introducing you to some of the core developers and familiar faces around the community.
Slobodan Stojanovic - 8 1/2 things about serverless FDConf
What is serverless? How does it work? Can you explain it with something as simple as Lego bricks?
This talk will answer that and at least five and a half more questions. It’s main goal is to explain serverless architecture, show you why it’s important, and finally, show you why it works great with Node.js and how to use it.
Teerasej Jiraphatchandej, as speaker in BKK Web Meetup's session, explain about current state of hybrid mobile application development technology, PhoneGap and Cordova, Ionic framework and iOS 8 touch id.
Front-end and web developer can gain benefit from PhoneGap/Cordova to create cross-platform mobile application development with HTML, CSS, Javascript.
From NDC Oslo 2020: https://ndcoslo.com/talk/choosing-the-best-mobile-framework/
Choosing a mobile app framework is overwhelming - there are dozens to evaluate. From native frameworks written in Swift, ObjC, Java, and Kotlin to cross-platform frameworks like React Native and Xamarin, it is difficult to understand the key differences between them.
The Web is a vital part of our daily lives, and as we begin using the Web for tasks traditionally performed on the desktop, such as word processing, software as a service (SaaS) and software + services models are becoming more important. Web developers are caught in the cross hairs of these merging industries. They have the know-how of web development but, often, none of the skills for traditional desktop or mobile development.
Enter Titanium. Appcelerator Titanium is an open source platform for developing native desktop and mobile applications using the web technologies you're already familiar with. Now, web developers can use their skills to develop for both the Web and desktop/mobile platforms. Ben Ramsey will demonstrate how to create a simple application in Titanium Desktop, showing examples using JavaScript and PHP working together in the Titanium run time environment to power dynamic desktop applications that communicate easily with external web services.
Filip Rakowski "Web Performance in modern JavaScript world"Fwdays
In mobile-first era where network connectivity is not always stable and low-end devices are widely used it’s extremely important to keep your web applications smooth and optimized. During the talk we’ll take a look at the performance challenges we are facing every day and how modern JavaScript technologies such as PWA and AMP can help solving them. We will investigate how to optimize our app loading time, make JavaScript parsing faster, how to deliver reliable waiting experience to our users and much more.
Writing applications for phones has been a daunting task since every platform uses it's own language and API's. PhoneGap will solve this problem for you by utilizing the browser capabilities. In this session we will see how we can turn a web based application into a native app. We will also look at posibilites to integrate native functionality, like the camera or accelerometer, in our application. The final part of the presentation is about deployment of these applications. Adobe offers a cloud based service called PhoneGap Build which easily builds your application for all platforms.
For new and veteran PHP programmers alike, it’s often difficult to find the right place to ask questions and find the best answers and solutions to programming challenges. This month, Ben Ramsey takes us on a journey through the PHP Community to discover the websites the experts use to get PHP news and information and the places they go to ask for help (because even experts need help). He’ll wrap up the talk with a brief who’s who in the PHP Community, introducing you to some of the core developers and familiar faces around the community.
Slobodan Stojanovic - 8 1/2 things about serverless FDConf
What is serverless? How does it work? Can you explain it with something as simple as Lego bricks?
This talk will answer that and at least five and a half more questions. It’s main goal is to explain serverless architecture, show you why it’s important, and finally, show you why it works great with Node.js and how to use it.
Teerasej Jiraphatchandej, as speaker in BKK Web Meetup's session, explain about current state of hybrid mobile application development technology, PhoneGap and Cordova, Ionic framework and iOS 8 touch id.
Front-end and web developer can gain benefit from PhoneGap/Cordova to create cross-platform mobile application development with HTML, CSS, Javascript.
From NDC Oslo 2020: https://ndcoslo.com/talk/choosing-the-best-mobile-framework/
Choosing a mobile app framework is overwhelming - there are dozens to evaluate. From native frameworks written in Swift, ObjC, Java, and Kotlin to cross-platform frameworks like React Native and Xamarin, it is difficult to understand the key differences between them.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
There are cases when product has a lot of business logic and want's to share it across web and mobile platforms, especially when the web part uses React and mobile - React Native. Sharable code adds development speed, simplified communication between teams, removes behaviour differences between web and mobile. At the same time there are a lot of things which can increase a solution complexity and add some limits to the final product.
There are cases when product has a lot of business logic and want's to share it across web and mobile platforms, especially when the web part uses React and mobile - React Native. Sharable code adds development speed, simplified communication between
teams, removes behaviour differences between web and mobile. At the same time there are a lot of things which can increase a solution complexity and add some limits to the final product.
Create a Bot with Delphi and Telegram - ITDevCon 2016Marco Breveglieri
Bots are virtual assistants and they are able to send messages and notifications, live updates and news to any user and also answering commands and do tasks. With their simplicity and ease of use, they are gaining popularity among local administrations, private companies and other business activities. In this session you will see how to use bots and create a new one from scratch with Delphi leveraging the Telegram Bot platform APIs.
Choosing a mobile app framework can be overwhelming; there are dozens available on the market to evaluate. From native frameworks written in Swift, ObjC, Java, and Kotlin to cross-platform frameworks like React Native and Xamarin, it can be really difficult to understand the key differences between all of them.
In this talk, I'll review the pros and cons of popular mobile app frameworks to help you determine which one is right for you
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023Pedro Vicente
What if you had to build a multiplatform (Android & iOS) and multi-tenant app with the objective of sharing the biggest amout of code possible while having all apps being UI/UX independent?
We want to take you through the discovery trip we made while building this. From architecture to ins and outs of KMM via Gradle magic that enabled us to have a Android, iOS and Desktop app.
Also sharing our rational over each of the options we took: Why not React Native? Or Xamarin? Should we use Compose Multiplatform?
Tek13 - Creating Mobile Apps with PHP and SymfonyPablo Godel
In this talk we will look at some of the reasons on why mobile applications are important, including some history on the mobile market. Then we will look at some frameworks that help develop high-quality mobile apps and we will showcase a mobile app developed with PHP and Symfony2, including the source code which will be available on Github.
WebRTC has had a tough 3 or 4 years. But it's gone through a rebirth. Node.js developers are a perfect match for the technology. Come and play with it!
Talk given at Hackference in Birmingham
WebRTC has had a tough 3 or 4 years. But it's gone through a rebirth. Node.js developers are a perfect match for the technology. Come and play with it!
Talk given at Full Stack Conference in London
Slides from a presentation I gave at these conferences:
— Big Design
— Front Porch
— Thunder Plains
— Web Afternoon
I co-presented at Big Design with Matt Baxter.
http://twitter.com/mbxtr
How to use OpenData, Firefox OS and a Raspberry Pi to build a better Washing ...André Fiedler
André is a Mozillian and developer for mobile applications. He works on applications for the Internet of Things. Currently his focus is an app for washing machines that helps people to save energy and water.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
There are cases when product has a lot of business logic and want's to share it across web and mobile platforms, especially when the web part uses React and mobile - React Native. Sharable code adds development speed, simplified communication between teams, removes behaviour differences between web and mobile. At the same time there are a lot of things which can increase a solution complexity and add some limits to the final product.
There are cases when product has a lot of business logic and want's to share it across web and mobile platforms, especially when the web part uses React and mobile - React Native. Sharable code adds development speed, simplified communication between
teams, removes behaviour differences between web and mobile. At the same time there are a lot of things which can increase a solution complexity and add some limits to the final product.
Create a Bot with Delphi and Telegram - ITDevCon 2016Marco Breveglieri
Bots are virtual assistants and they are able to send messages and notifications, live updates and news to any user and also answering commands and do tasks. With their simplicity and ease of use, they are gaining popularity among local administrations, private companies and other business activities. In this session you will see how to use bots and create a new one from scratch with Delphi leveraging the Telegram Bot platform APIs.
Choosing a mobile app framework can be overwhelming; there are dozens available on the market to evaluate. From native frameworks written in Swift, ObjC, Java, and Kotlin to cross-platform frameworks like React Native and Xamarin, it can be really difficult to understand the key differences between all of them.
In this talk, I'll review the pros and cons of popular mobile app frameworks to help you determine which one is right for you
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023Pedro Vicente
What if you had to build a multiplatform (Android & iOS) and multi-tenant app with the objective of sharing the biggest amout of code possible while having all apps being UI/UX independent?
We want to take you through the discovery trip we made while building this. From architecture to ins and outs of KMM via Gradle magic that enabled us to have a Android, iOS and Desktop app.
Also sharing our rational over each of the options we took: Why not React Native? Or Xamarin? Should we use Compose Multiplatform?
Tek13 - Creating Mobile Apps with PHP and SymfonyPablo Godel
In this talk we will look at some of the reasons on why mobile applications are important, including some history on the mobile market. Then we will look at some frameworks that help develop high-quality mobile apps and we will showcase a mobile app developed with PHP and Symfony2, including the source code which will be available on Github.
WebRTC has had a tough 3 or 4 years. But it's gone through a rebirth. Node.js developers are a perfect match for the technology. Come and play with it!
Talk given at Hackference in Birmingham
WebRTC has had a tough 3 or 4 years. But it's gone through a rebirth. Node.js developers are a perfect match for the technology. Come and play with it!
Talk given at Full Stack Conference in London
Slides from a presentation I gave at these conferences:
— Big Design
— Front Porch
— Thunder Plains
— Web Afternoon
I co-presented at Big Design with Matt Baxter.
http://twitter.com/mbxtr
How to use OpenData, Firefox OS and a Raspberry Pi to build a better Washing ...André Fiedler
André is a Mozillian and developer for mobile applications. He works on applications for the Internet of Things. Currently his focus is an app for washing machines that helps people to save energy and water.
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
It has never been easier to build hybrid applications by using the Ionic Framework with technology that you already know and love such as AngularJS and Html 5. You will learn to love mobile development again.
WebRTC has had a tough 3 or 4 years. But it's gone through a rebirth. Node.js developers are a perfect match for the technology. Come and play with it!
Talk given at Cloud Expo / WebRTC Summit in Santa Clara
Appium - Reality check on the world’s leading Open Source Framework for Mobil...Asaf Saar
Appium is clearly the world leading framework for mobile apps test automation. Adoption of Appium is in constant rise, and for the good reasons.
Yet, in many cases those who do their initial steps or even progressing with the framework realize that the world is not that simple, challenges arise, limitations are discovered and one can find himself wondering whether the right decision was taken in investing the time and money into it (yes... open source cost you money).
In this talk we will pause for a while, review why Appium is an outstanding framework, while also do a reality check of the cons and pros of Appium, helping you make the best out of it, or at least have a clear understanding of what's ahead of you.
Adding intelligence to your LoRaWAN deployment - The Things Virtual ConferenceJan Jongboom
LoRaWAN devices are typically simple, they grab some sensor data and deliver it back to the network. By adding some embedded machine learning we can make them a lot more intelligent!
Teaching your sensors new tricks with Machine Learning - CENSIS Tech Summit 2019Jan Jongboom
We collect more sensor data than ever, but throw most of it away due to cost, bandwidth or power constraints. In this presentation we'll look at embedded machine learning, pushing intelligence directly to the sensor edge. Given during the CENSIS Tech Summit 2019 in Glasgow, Scotland.
Adding intelligence to your LoRaWAN devices - The Things Conference on tourJan Jongboom
Want to get started? Check the tutorial here: https://www.edgeimpulse.com/blog/adding-machine-learning-to-your-lorawan-device/
Talk about machine learning for IoT devices (TinyML), and everything that it entails. From signal processing to neural networks to classic ML algorithms. Presented in Reading, UK and Hyderabad, India during The Things Conference on Tour.
Machine learning on 1 square centimeter - Emerce Next 2019Jan Jongboom
Machine Learning is widely applied, but the models operate on digital data and run in big data centers. But there's more to the world. This is my presentation from Emerce Next 2019 about pushing ML to the smallest of devices.
Fundamentals of IoT - Data Science Africa 2019Jan Jongboom
As data scientists your job is to create order in the data chaos. But where does this data come from? Real-world data does not magically appear cleanly in your Matlab scripts. This is a talk about the fundamentals of IoT, and how to retrieve data from the real world using sensors and devices. Given during Data Science Africa 2019 in Addis Ababa.
Recording: https://www.youtube.com/watch?v=DxTetwYsXvo&index=1&list=PLiVCejcvpsevQ_I9oDIK6eIgau45fWje2
The Mbed Simulator allows you to cross-compile Mbed OS 5 applications and run them on your computer.
LoRaWAN is great, but it requires so much hardware. As I live on a plane I want something better. Presentation about simulating LoRaWAN devices. Here's a video of the simulator: https://www.youtube.com/watch?v=C1S8knMlX7w
Firmware Updates over LoRaWAN - The Things Conference 2019Jan Jongboom
IoT deployments last for ten years, but that's a long time. Requirements change, vulnerabilities are found, and standards evolve. You'll need a firmware update solution.
Talk during The Things Conference 2019.
Faster Device Development - GSMA @ CES 2019Jan Jongboom
Presentation about interesting open source developments that can be used in conjunction with LTE Cat-M1 and NB-IoT. Presentation from the GSMA IoT workshop at CES 2019.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
1.Wireless Communication System_Wireless communication is a broad term that i...
From HTML5 to Hardware - Simonyi Conference Budapest April 15
1. From HTML5 to hardware
@janjongboom
Simonyi Conference, Budapest, April 15
Tuesday, April 15, 14
2. @janjongboom
Tuesday, April 15, 14
I’m Jan, live in Amsterdam. Work for Telenor on Mozilla products. Firefox OS contributor & keyboard peer. I write code for Gaia
and Gecko.
3. @janjongboom
Tuesday, April 15, 14
I’m Jan, live in Amsterdam. Work for Telenor on Mozilla products. Firefox OS contributor & keyboard peer. I write code for Gaia
and Gecko.
4. @janjongboom
Tuesday, April 15, 14
I’m Jan, live in Amsterdam. Work for Telenor on Mozilla products. Firefox OS contributor & keyboard peer. I write code for Gaia
and Gecko.
5. Tuesday, April 15, 14
Internet is normal for western world, but big part of the world doesnt have it.
Click Only 2.5 billion people out of 7.
6. 4,500,000,000
Tuesday, April 15, 14
Internet is normal for western world, but big part of the world doesnt have it.
Click Only 2.5 billion people out of 7.
7. The web has everything
Information does not like to be locked down
Tuesday, April 15, 14
We want people to access the web, not the closed silo’s that Android / iOS are, because thats not where the information is
8. Affordable device to access the
internet
Tuesday, April 15, 14
So goal: affordable device that people can use to get on the internet
10. 19,000 HUF
Tuesday, April 15, 14
First generation came out last year. Goes for about 19000 HUF here in Hungary (65 eur)
11. Tuesday, April 15, 14
Next generation is going to be lower. System requirements are four times as low as Android.
12. Great performance on cheap
hardware?
Tuesday, April 15, 14
So if we want to get great performance out of cheap hardware, how do we do it?
13. Tuesday, April 15, 14
Traditional model: Application -> VM (f.e. Dalvik on Android; .NET on Windows Phone, JavaScript in V8)
14. Dalvik .NET V8
Tuesday, April 15, 14
Traditional model: Application -> VM (f.e. Dalvik on Android; .NET on Windows Phone, JavaScript in V8)
15. Dalvik .NET V8
Apps Apps Apps
Tuesday, April 15, 14
Traditional model: Application -> VM (f.e. Dalvik on Android; .NET on Windows Phone, JavaScript in V8)
16. Most mobile OS’es
App
Tuesday, April 15, 14
VM on top of OS. Kernel is hardware dependent. But always two layers between App and Kernel.
17. Most mobile OS’es
App VM
Tuesday, April 15, 14
VM on top of OS. Kernel is hardware dependent. But always two layers between App and Kernel.
18. Most mobile OS’es
App VM OS
Tuesday, April 15, 14
VM on top of OS. Kernel is hardware dependent. But always two layers between App and Kernel.
19. Most mobile OS’es
App VM OS Kernel
Tuesday, April 15, 14
VM on top of OS. Kernel is hardware dependent. But always two layers between App and Kernel.
20. Most mobile OS’es
App VM OS Kernel Hardware
Tuesday, April 15, 14
VM on top of OS. Kernel is hardware dependent. But always two layers between App and Kernel.
21. Firefox OS
App
JS VM
Browser
Kernel Hardware
Tuesday, April 15, 14
Firefox OS only has one intermediate layer. The browser. Everything has to go through there. No exceptions like proprietary APIs
(ok, well a few)
22. One application runtime
Browser runs directly on top of the kernel
Tuesday, April 15, 14
So browser directly on top of the kernel. No overhead.
23. Everything runs in browser
SMS, Payments, Marketplace
Tuesday, April 15, 14
System itself can’t take shortcuts. Everything is browser. Also system apps.
24. Small Kernel
• Small Linux kernel
• Based on Android Open Source Project
• Contains Hardware Abstraction Layer
• Porting target
• Boot straight into Gecko
Tuesday, April 15, 14
All runs on top of a very small kernel. Based on Android OSP. Contains HAL and boots straight into Gecko. Gecko is browser
engine.
25. Windows
Tuesday, April 15, 14
Makes it easier and light weight. Windows: 998 lines of calls to Win32 API on clipboard code.
26. Firefox OS
Tuesday, April 15, 14
Firefox OS: 200 lines, just have a var that holds the clipboard. Other stuff is IPC.
28. Window Manager
• Boot into HTML app (system)
• System is the window manager
• Applications are loaded in iframe
• iframes can be ran out of process
Tuesday, April 15, 14
The window manager is called the system app. It creates the iframes on demand. There is automatic process isolation in place.
For example Here maps.
29. remote=true
Tuesday, April 15, 14
It’s an iframe that points to a special URL that maps to a location on disk. But it has remote=true.
30. Tuesday, April 15, 14
Automatic process isolation, and automatic user isolation. Security ftw.
31. Tuesday, April 15, 14
Automatic process isolation, and automatic user isolation. Security ftw.
32. Tracing down a SMS message
From HTML to the RIL
Tuesday, April 15, 14
All cool, but now let’s talk about some actual code. How does it look like if you make a call from HTML to the RIL.
33. I NEED AN ADULT!
Tuesday, April 15, 14
No clue what the RIL is? I’ll walk you through it.
34. Tuesday, April 15, 14
We’ll walk over what happens if you click Send, up until the moment it reaches the cell tower.
36. Gaia
• Frontend
• github.com/mozilla-b2g/gaia
• All system applications
• HTML/CSS/JS
• SMS app code under /apps/sms
(that easy!)
Tuesday, April 15, 14
Gaia, open source frontend. Not limited to only run on Gecko (but at the moment it is).
58. MobileMessageManager.cpp
Services are platform speci!c
Tuesday, April 15, 14
Then in the same function we make a call to the SMS Service. This is platform specific. Android does different than FFOS.
59. moz.build
Service injection at compile time
Tuesday, April 15, 14
This is the service injection in moz.build. Happens at compile time. In android we need Android SMS database access. FFOS we
don’t.
60. moz.build
Service injection at compile time
Tuesday, April 15, 14
This is the service injection in moz.build. Happens at compile time. In android we need Android SMS database access. FFOS we
don’t.
62. Gonk
• Kernel
• Hardware Abstraction
• Think of the clipboard example
• Android code calls back to Android
• We can go straight to the RIL
Tuesday, April 15, 14
Gonk is the kernel. If you have platform dependent code it’s not in Gecko but in Gonk. Target for Gecko.
66. dom/system folder
Tuesday, April 15, 14
There are a bunch of platforms, they implement the services. In this case the RIL service is implemented by Gonk.
70. RadioInterfaceLayer.js
Could also be .cpp
Tuesday, April 15, 14
RIL code has been written in javascript in this case. It does stuff like normalizing phone numbers, because the chipset won’t do
that for you
71. RadioInterfaceLayer.js
Could also be .cpp
Tuesday, April 15, 14
RIL code has been written in javascript in this case. It does stuff like normalizing phone numbers, because the chipset won’t do
that for you
72. RadioInterfaceLayer.js
Could also be .cpp
Tuesday, April 15, 14
RIL code has been written in javascript in this case. It does stuff like normalizing phone numbers, because the chipset won’t do
that for you
73. RadioInterfaceLayer.js
Tuesday, April 15, 14
Now dispatch to a worker. JS single-threaded. Can’t wait for the response from hardware. Response codes are RIL data. Use these
to feed back into the DOMRequest.
74. RadioInterfaceLayer.js
Tuesday, April 15, 14
Now dispatch to a worker. JS single-threaded. Can’t wait for the response from hardware. Response codes are RIL data. Use these
to feed back into the DOMRequest.
75. RadioInterfaceLayer.js
Tuesday, April 15, 14
Now dispatch to a worker. JS single-threaded. Can’t wait for the response from hardware. Response codes are RIL data. Use these
to feed back into the DOMRequest.
80. Mindig írni
byte az én RIL!
Tuesday, April 15, 14
I always write bytes to the RIL. RIL doesn’t understand JS or CPP. Only understands bytes.
81. ril_worker.js
Tuesday, April 15, 14
So now depending on protocol we talk, we dump bytes. SEND_SMS is 25, then some options. Send the parcel and now it’s on the
actual RIL.
82. ril_worker.js
Tuesday, April 15, 14
So now depending on protocol we talk, we dump bytes. SEND_SMS is 25, then some options. Send the parcel and now it’s on the
actual RIL.
83. ril_worker.js
Tuesday, April 15, 14
So now depending on protocol we talk, we dump bytes. SEND_SMS is 25, then some options. Send the parcel and now it’s on the
actual RIL.
84. ril_worker.js
Tuesday, April 15, 14
So now depending on protocol we talk, we dump bytes. SEND_SMS is 25, then some options. Send the parcel and now it’s on the
actual RIL.
85. Radio Interface Layer
• Proprietary
• Comes with chipset
• Trade secret
• Delivered to RIL? Done!
• See how it looks like?
https://github.com/mozilla-b2g/b2g/
Tuesday, April 15, 14
And that’s where our job is done. RIL is proprietary and comes with chipset. RIL calls back with the token, we bubble it up back
to Gecko and eventually Gaia, and show user the feedback. This happens in under a second. There is ref implementtion from
Mozilla if you want to look at it.
86. OMGAWESOME
Play around? I have devices with me.
Tuesday, April 15, 14
OMG AWESOME SHIT. All open source. I have some devices, including the 25$ phone with me.