Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
This document provides information about a workshop on the Yocto Project being conducted by Marco Cavallini of KOAN. The workshop will cover setting up a Yocto Project build environment using Docker, basics of the Yocto Project including layers and recipes, debugging builds, and creating new images. Attendees will learn how to build a basic embedded Linux system from source and boot it in QEMU.
Droidcon Berlin 2021 - With coroutines being the de facto way of exposing async work and streams of changes for Kotlin on Android, developers are obviously attempting to use the same approaches when moving their code to Multiplatform.
But due to the way the memory model differs between JVM and Kotlin Native, it can be a painful experience.
In this talk, we will take a deep dive into the Coroutine API for Kotlin Multiplatform. You will learn how to expose your API with Coroutines while working with the Kotlin Native memory model instead of against it, and avoid the dragons along the way.
This document provides an overview and examples of using the Pytest testing framework. Some key points:
- Pytest allows writing tests in plain Python functions, with test discovery and running. It supports fixtures for dependency injection and parametrizing tests.
- Basic usage involves writing test functions prefixed with "test_" and running pytest to discover and execute them. Fixtures provide a way to inject dependencies into tests.
- Fixtures can be defined and applied at various scopes (function, class, module). They support dependency injection, parameterization, setup/teardown functionality.
- Pytest offers many options for running tests selectively, debugging failures, tracing execution, and extending functionality through plugins. It aims to make
GraphQL is a specification created by Facebook that defines a query language for fetching data from backend services. It allows clients to request specific data fields from a server in a hierarchical manner and receive only the requested data. GraphQL queries are strongly typed and introspective, allowing clients to understand the structure of the returned data. While still in draft form, GraphQL is used in production by Facebook's mobile apps and provides advantages over traditional REST APIs by being more product-centric and client-driven.
Jetpack Compose is a new UI toolkit for Android that uses a declarative paradigm where the UI is defined as a function of app state, rather than as interacting objects. It allows defining UI using Kotlin instead of XML layouts. Compose provides composable functions to build UI in a declarative way and allows observing state changes. However, Compose is still in early development and requires unreleased versions of Android Studio, Kotlin, and the Android Gradle plugin to use.
This document provides an overview of Jest, a JavaScript testing framework built by Facebook. It discusses Jest's features like testing, mocking, snapshots, and best practices. Key features include built-in support for mocking, coverage, isolation, and watch mode. It also covers how to write tests with Jest including describing tests, modifiers, setup/teardown, and mocking modules, objects, functions, and timers.
Debian or Yocto Project? Which is the best for your Embedded Linux project?Chris Simmonds
The document discusses the tradeoffs between using Debian vs. Yocto Project for embedded Linux projects. Debian offers a full and stable distribution with many packages but images can be large, may not be optimized for hardware, and updates are not atomic. Yocto Project allows fully customizing the system but has a steep learning curve. Debian is best for prototypes while Yocto is recommended for production on custom hardware.
This document provides an overview of embedded Android. It discusses Android's features, history, ecosystem, legal framework, hardware requirements, and development tools. The document summarizes Android's evolution over time, different Android "flavors" for different device types, the open source nature and licenses of Android code, compatibility testing requirements, and Google's Project Treble which aims to make Android updates easier.
The document provides an introduction to asynchronous JavaScript. It discusses callbacks and their disadvantages like callback hell. Promises are introduced as a better way to handle asynchronous code by making it easier to write and chain asynchronous operations. Async/await is described as syntactic sugar that allows asynchronous code to be written more readably in a synchronous style using await and try/catch. Key aspects like the event loop, microtask queue, and Promise methods like all and race are explained. Overall the document aims to help understand what makes asynchronous code different and newer methods like promises and async/await that improve handling asynchronous operations in JavaScript.
The document provides instructions on installing git and creating a GitHub account, then defines important git concepts like repositories, commits, branches and remotes. It explains how to initialize a local git repository, add and commit files, and then push the repository to GitHub. Key steps include downloading git, signing up for GitHub, initializing a local repo, making commits, and linking the local repo to a new remote repo on GitHub.
OpenCL source code is separated “host source code” as C Language file & “kernel(device) source code” as CL file.
But Android’s APK can NOT include “kernel(device) source code” as CL file in APK file.
In this case, I Introduce "OpenCL CL files header Generator". It generates Convert CL files to const char* in Single C header file.
These are the slides of my "Fake it Outside-In TDD" session at the #XP2017 conference. Do not miss to check out the referenced screencasts that illustrate the approach very well: https://www.youtube.com/playlist?list=PL_ueet93U84VIy8O7U4dUV0GyGvuzFAt8
Droidcon Berlin 2021 - With coroutines being the de facto way of exposing async work and streams of changes for Kotlin on Android, developers are obviously attempting to use the same approaches when moving their code to Multiplatform.
But due to the way the memory model differs between JVM and Kotlin Native, it can be a painful experience.
In this talk, we will take a deep dive into the Coroutine API for Kotlin Multiplatform. You will learn how to expose your API with Coroutines while working with the Kotlin Native memory model instead of against it, and avoid the dragons along the way.
This document provides an overview and examples of using the Pytest testing framework. Some key points:
- Pytest allows writing tests in plain Python functions, with test discovery and running. It supports fixtures for dependency injection and parametrizing tests.
- Basic usage involves writing test functions prefixed with "test_" and running pytest to discover and execute them. Fixtures provide a way to inject dependencies into tests.
- Fixtures can be defined and applied at various scopes (function, class, module). They support dependency injection, parameterization, setup/teardown functionality.
- Pytest offers many options for running tests selectively, debugging failures, tracing execution, and extending functionality through plugins. It aims to make
GraphQL is a specification created by Facebook that defines a query language for fetching data from backend services. It allows clients to request specific data fields from a server in a hierarchical manner and receive only the requested data. GraphQL queries are strongly typed and introspective, allowing clients to understand the structure of the returned data. While still in draft form, GraphQL is used in production by Facebook's mobile apps and provides advantages over traditional REST APIs by being more product-centric and client-driven.
Jetpack Compose is a new UI toolkit for Android that uses a declarative paradigm where the UI is defined as a function of app state, rather than as interacting objects. It allows defining UI using Kotlin instead of XML layouts. Compose provides composable functions to build UI in a declarative way and allows observing state changes. However, Compose is still in early development and requires unreleased versions of Android Studio, Kotlin, and the Android Gradle plugin to use.
This document provides an overview of Jest, a JavaScript testing framework built by Facebook. It discusses Jest's features like testing, mocking, snapshots, and best practices. Key features include built-in support for mocking, coverage, isolation, and watch mode. It also covers how to write tests with Jest including describing tests, modifiers, setup/teardown, and mocking modules, objects, functions, and timers.
Debian or Yocto Project? Which is the best for your Embedded Linux project?Chris Simmonds
The document discusses the tradeoffs between using Debian vs. Yocto Project for embedded Linux projects. Debian offers a full and stable distribution with many packages but images can be large, may not be optimized for hardware, and updates are not atomic. Yocto Project allows fully customizing the system but has a steep learning curve. Debian is best for prototypes while Yocto is recommended for production on custom hardware.
This document provides an overview of embedded Android. It discusses Android's features, history, ecosystem, legal framework, hardware requirements, and development tools. The document summarizes Android's evolution over time, different Android "flavors" for different device types, the open source nature and licenses of Android code, compatibility testing requirements, and Google's Project Treble which aims to make Android updates easier.
The document provides an introduction to asynchronous JavaScript. It discusses callbacks and their disadvantages like callback hell. Promises are introduced as a better way to handle asynchronous code by making it easier to write and chain asynchronous operations. Async/await is described as syntactic sugar that allows asynchronous code to be written more readably in a synchronous style using await and try/catch. Key aspects like the event loop, microtask queue, and Promise methods like all and race are explained. Overall the document aims to help understand what makes asynchronous code different and newer methods like promises and async/await that improve handling asynchronous operations in JavaScript.
The document provides instructions on installing git and creating a GitHub account, then defines important git concepts like repositories, commits, branches and remotes. It explains how to initialize a local git repository, add and commit files, and then push the repository to GitHub. Key steps include downloading git, signing up for GitHub, initializing a local repo, making commits, and linking the local repo to a new remote repo on GitHub.
OpenCL source code is separated “host source code” as C Language file & “kernel(device) source code” as CL file.
But Android’s APK can NOT include “kernel(device) source code” as CL file in APK file.
In this case, I Introduce "OpenCL CL files header Generator". It generates Convert CL files to const char* in Single C header file.
These are the slides of my "Fake it Outside-In TDD" session at the #XP2017 conference. Do not miss to check out the referenced screencasts that illustrate the approach very well: https://www.youtube.com/playlist?list=PL_ueet93U84VIy8O7U4dUV0GyGvuzFAt8
Building a server to manage high concurrent connections is non-trival task. For those developers that use ActionScript 3 to build games on the client side it means having a totally different skillset. Being able to use ActionScript 3 on the server to build MMO’s or port client code to the server allows developers to leverage their skills on the server.
By walking through a live game example with more then 15,000 concurrent connections running on a medium Amazon EC2 server the presentation will:
1. Introduce Linux server configuration for high concurrent connected usage.
2. Introduce Socket class based on libev library for high concurrent connection.
3. Introduce leveraging Tamarin project for ActionScript 3 on the server.
Jserv gave a talk about the conceptual introduction to LLVM. The session mentioned the evolution of compiler technologies, paradigm shift, LLVM as a promising open source project, and how LLVM changes the IT world.
How I make a podcast website using serverless technology in 2023Shengyou Fan
In 2022, I launched a Kotlin podcast show, Kotlin Fireside Chat, with my friends in Kotlin User Group. Now, we're taking things to the next level by building a podcast website with a statistical analysis dashboard. We've built a static website using Jamstack and connected it to a serverless API written in Kotlin. In order to aggregate the listener number across platforms, such as YouTube, BiliBili, Ximalaya, Lizhi, Qingting, we've also created a crawler to grab those numbers and display them in a custom dashboard. Everything is made by open source technology and deployed on Google Cloud Platform. In this talk, I'll share my experience and the lessons I learned when using all the technologies in 2023.
Using the Exposed SQL Framework to Manage Your DatabaseShengyou Fan
The document discusses using the Exposed SQL framework to manage databases in Kotlin. It introduces Exposed as an open source SQL framework made by JetBrains that supports PostgreSQL, SQLite, Oracle, SQL Server and H2. Exposed provides two levels of database access - a DSL for type-safe SQL and DAOs for lightweight data objects. It demonstrates defining database schemas, connecting to databases, interacting with tables using the DSL and DAO, and building relationships between tables.
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率Shengyou Fan
Spring Boot 一直是 Java 開發生態系裡市佔率最高的框架,許多企業都採用其開發自身服務。隨著開發典範的轉移,即便 Spring 提供完整方案,開發者往往對架構修改及服務管理的工作怯步,是否移轉上雲也有所疑慮。在這場分享裡,將會介紹由 Azure 提供的 Spring Cloud 解決方案,並從最簡單的一個 Spring Boot 應用開始,逐步導入微服務架構、連接 Azure DB、藍綠部署到服務監控,讓開發者了解使用 Azure 運行 Spring 是一個簡單又有效率的體驗,加速將 JVM 應用上雲。
- The document discusses using Kotlin to build chatbots and provides code samples for building bots using the Telegram and LINE messaging APIs.
- It introduces Kotlin as a programming language and covers how to create Telegram and LINE bots using Kotlin with libraries like kotlin-telegram-bot and line-bot-sdk-java.
- Code examples are provided for building echo bots that can respond to text messages as well as handle other message types like stickers for both Telegram and LINE bots built with Kotlin.
This document provides an overview of Kotlin, including that it is a general purpose, statically typed programming language that supports both object-oriented and functional programming. It notes that Kotlin is developed by JetBrains and is open source under the Apache 2.0 license. Details are given about using Kotlin on JVM, JS, Native and Android platforms. Information is also provided about installing JDKs and IDEs like IntelliJ IDEA for developing Kotlin applications.
[HKOSCon 2020] Build an api service using ktor rapidlyShengyou Fan
Kotlin is not only for mobile development but also for backend (it could be used everywhere actually!). In JetBrains, we build Ktor framework for backend development such as website, API, microservice. In this talk, I will introduce what Ktor is, how to integrated with Exposed SQL library, demonstrate how to build a RESTful API service in just a few lines of code. After listening to this talk, you will learn how to build API with Ktor rapidly.
24. pt.1
(expect )
—
// shared class
class Detector {
fun detect(): String {
return Platform().platform
}
}
// expect
expect class Platform() {
val platform: String
}
25. pt.2
(actual )
—
// androidMain
actual class Platform actual constructor() {
actual val platform: String =
"Android version" +
android.os.Build.VERSION.SDK_INT
}
// iosMain
actual class Platform actual constructor() {
actual val platform: String =
UIDevice.currentDevice.systemName() +
" version " +
UIDevice.currentDevice.systemVersion
}
26. pt.3
(Android )
— class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// ...
val messageTextView: TextView = findViewById(…)
messageTextView.text = Detector().detect()
}
}
27. pt.4
(iOS )
— struct ContentView: View {
@State private var messageText = Detector().detect()
var body: some View {
Text(messageText)
.font(.subheadline)
.foregroundColor(messageTextColor)
}
}