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.
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率Shengyou Fan
?
Spring Boot 一直是 Java 開發生態系裡市佔率最高的框架,許多企業都採用其開發自身服務。隨著開發典範的轉移,即便 Spring 提供完整方案,開發者往往對架構修改及服務管理的工作怯步,是否移轉上雲也有所疑慮。在這場分享裡,將會介紹由 Azure 提供的 Spring Cloud 解決方案,並從最簡單的一個 Spring Boot 應用開始,逐步導入微服務架構、連接 Azure DB、藍綠部署到服務監控,讓開發者了解使用 Azure 運行 Spring 是一個簡單又有效率的體驗,加速將 JVM 應用上雲。
The document introduces coroutines in Kotlin. It discusses how coroutines make asynchronous code easier to write by allowing suspending functions and avoiding callback hell. Coroutines were introduced in early languages like Simula but fell out of favor due to multithreading. They are now regaining popularity for writing asynchronous non-blocking code. The document then covers how coroutines work in Kotlin, including suspending functions, coroutine builders like launch and async, and how coroutines avoid issues with approaches like callbacks and futures. It notes that coroutines in Kotlin are currently experimental but can be used in production code.
The document discusses Docker containers and their architecture. It begins by explaining that Docker originated as a tool called Docker created by dotCloud to manage customer applications in the cloud. It became very popular with developers and dotCloud changed its name to Docker, Inc. and focused its business on Docker. The document then discusses how Docker uses Linux kernel features like control groups (cgroups) and namespaces to isolate containers and their resources. It explains that Docker architecture includes a client, daemon, containers running applications, and an optional distributed data store. Finally, it provides an example of basic Docker commands to check the Docker version and run a test container.
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.
Kubernetes Summit 2023: Head First Kubernetes smalltown
?
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called pods. It helps with deployment, maintenance, and scaling of containerized applications. It provides basic mechanisms for deploying containers on a cluster of nodes, load balancing, scaling, and ensuring availability.
.NET Core is a cross-platform version of .NET that allows developers to build applications that run on Windows, Linux and Mac. It features a modular design that only includes necessary components, is lightweight and fast. It also introduces a new model for hosting applications, dependency injection, configuration and logging. ASP.NET Core unifies the web frameworks like MVC, Web API and Web Pages on a single shared framework.
[Container Plumbing Days 2023] Why was nerdctl made?Akihiro Suda
?
nerdctl (contaiNERD CTL) was made to facilitate development of new technologies in the containerd platform.
Such technologies include:
- Lazy-pulling with Stargz/Nydus/OverlayBD
- P2P image distribution with IPFS
- Image encryption with OCIcrypt
- Image signing with Cosign
- “Real” read-only mounts with mount_setattr
- Slirp-less rootless containers with bypass4netns
- Interactive debugging of Dockerfiles, with buildg
nerdctl is also useful for debugging Kubernetes nodes that are running containerd.
Through this session, the audiences will learn these functionalities of nerdctl, relevant projects, and the roadmap for the future.
https://containerplumbing.org/sessions/2023/why_was_nerdctl_
The document provides an overview of continuous integration and continuous delivery practices. It discusses continuous integration, which involves integrating code changes frequently and verifying them through automated builds and tests. Continuous delivery is described as building software in a way that allows release to production at any time, while continuous deployment means any change is automatically deployed to production. Jenkins, an open source automation server, is introduced as a tool that enables continuous integration and deployment through jobs, credentials, scheduling, build steps, and post-build actions. Pipelines in Jenkins are discussed as dividing deployment into stages to provide quick feedback. The Blue Ocean plugin is highlighted as providing a simplified user interface for Jenkins pipelines.
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
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.
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率Shengyou Fan
?
Spring Boot 一直是 Java 開發生態系裡市佔率最高的框架,許多企業都採用其開發自身服務。隨著開發典範的轉移,即便 Spring 提供完整方案,開發者往往對架構修改及服務管理的工作怯步,是否移轉上雲也有所疑慮。在這場分享裡,將會介紹由 Azure 提供的 Spring Cloud 解決方案,並從最簡單的一個 Spring Boot 應用開始,逐步導入微服務架構、連接 Azure DB、藍綠部署到服務監控,讓開發者了解使用 Azure 運行 Spring 是一個簡單又有效率的體驗,加速將 JVM 應用上雲。
The document introduces coroutines in Kotlin. It discusses how coroutines make asynchronous code easier to write by allowing suspending functions and avoiding callback hell. Coroutines were introduced in early languages like Simula but fell out of favor due to multithreading. They are now regaining popularity for writing asynchronous non-blocking code. The document then covers how coroutines work in Kotlin, including suspending functions, coroutine builders like launch and async, and how coroutines avoid issues with approaches like callbacks and futures. It notes that coroutines in Kotlin are currently experimental but can be used in production code.
The document discusses Docker containers and their architecture. It begins by explaining that Docker originated as a tool called Docker created by dotCloud to manage customer applications in the cloud. It became very popular with developers and dotCloud changed its name to Docker, Inc. and focused its business on Docker. The document then discusses how Docker uses Linux kernel features like control groups (cgroups) and namespaces to isolate containers and their resources. It explains that Docker architecture includes a client, daemon, containers running applications, and an optional distributed data store. Finally, it provides an example of basic Docker commands to check the Docker version and run a test container.
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.
Kubernetes Summit 2023: Head First Kubernetes smalltown
?
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called pods. It helps with deployment, maintenance, and scaling of containerized applications. It provides basic mechanisms for deploying containers on a cluster of nodes, load balancing, scaling, and ensuring availability.
.NET Core is a cross-platform version of .NET that allows developers to build applications that run on Windows, Linux and Mac. It features a modular design that only includes necessary components, is lightweight and fast. It also introduces a new model for hosting applications, dependency injection, configuration and logging. ASP.NET Core unifies the web frameworks like MVC, Web API and Web Pages on a single shared framework.
[Container Plumbing Days 2023] Why was nerdctl made?Akihiro Suda
?
nerdctl (contaiNERD CTL) was made to facilitate development of new technologies in the containerd platform.
Such technologies include:
- Lazy-pulling with Stargz/Nydus/OverlayBD
- P2P image distribution with IPFS
- Image encryption with OCIcrypt
- Image signing with Cosign
- “Real” read-only mounts with mount_setattr
- Slirp-less rootless containers with bypass4netns
- Interactive debugging of Dockerfiles, with buildg
nerdctl is also useful for debugging Kubernetes nodes that are running containerd.
Through this session, the audiences will learn these functionalities of nerdctl, relevant projects, and the roadmap for the future.
https://containerplumbing.org/sessions/2023/why_was_nerdctl_
The document provides an overview of continuous integration and continuous delivery practices. It discusses continuous integration, which involves integrating code changes frequently and verifying them through automated builds and tests. Continuous delivery is described as building software in a way that allows release to production at any time, while continuous deployment means any change is automatically deployed to production. Jenkins, an open source automation server, is introduced as a tool that enables continuous integration and deployment through jobs, credentials, scheduling, build steps, and post-build actions. Pipelines in Jenkins are discussed as dividing deployment into stages to provide quick feedback. The Blue Ocean plugin is highlighted as providing a simplified user interface for Jenkins pipelines.
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
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.
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.
- 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)
}
}