Kotlin DSLLearn how to create type-safe and statically typed DSLs in Kotlin. Uncover the language features that make DSL creation possible. We’ll take a look at a few practical examples and create a simple DSL ourselves.
This document discusses Biicode, a code reuse platform that allows developers to easily share and reuse code across projects. It provides examples of how Biicode works, including creating a new project, adding dependencies on existing code, resolving dependencies, building projects, and publishing code for others to reuse. Biicode aims to simplify code reuse through features like automatic dependency management, versioning, collaboration tools, and metrics.
An exploration of how Yext adopted Go for building command line tools, the language features and third-party packages that helped along the way, and how we manage distribution to an 90-strong team.
Go debugging and troubleshooting tips - from real life lessons at SignalFxSignalFx
Exploring tips and advice on writing production Go systems that are easy to debug and troubleshoot. Jack Lindamood from SignalFx presents patterns that facilitate this process.
Jack addresses tools built into Go you can take advantage of, build process techniques they've learned over time, and open source tools and libraries you can use that help troubleshoot your production code when things go wrong.
Read more here: http://blog.signalfx.com/a-pattern-for-optimizing-go
This document discusses analyzing and reversing Go binaries. It shows that Go binaries contain the Go runtime, main code, and imported libraries. The .gopclntab section contains function information like addresses and name offsets that can be used to recover function names in stripped binaries. Analyzing the .gopclntab section is one way to reverse engineer stripped Go binaries along with using the debug/gosym Go package.
This document discusses using protocols and Codables to build REST APIs in Swift. It introduces Encodable and Decodable protocols which allow objects to be encoded to and decoded from data. This enables sending objects over REST without serialization code. Commands define API requests and responses. ObjectType is a protocol for objects that can be saved and fetched. Extensions add saving and fetching methods. The SDK handles encoding/decoding and executing requests on a background queue for asynchronous access to APIs.
This document discusses Go memory management and garbage collection. It explains that Go uses garbage collection to free unused memory blocks and scavenging to return idle memory to the operating system. It provides details on allocation primitives like new() and make(), garbage collection configuration using GOGC, and memory statistics available via runtime.ReadMemStats(). Code examples are provided to demonstrate buffer pooling to reduce garbage collection overhead.
Visualizing ORACLE performance data with R @ #C16LVMaxym Kharchenko
A picture is worth a thousand words.
This is especially true during performance problems investigations where a well done graph of the issue can often cut resolution time from days to mere minutes.
ORACLE database provides a wealth of performance information, but unfortunately only a small part of it is currently visualized by standard tools, such as Enterprise Manager.
Enter R: a well known (and free) statistical analysis and graphing framework that can create relevant and interesting visualizations on pretty much any data.
Go was created at Google in 2007 and open sourced in 2009. It was influenced by C syntax, Oberon-2 packages and imports, and Alef concurrency. Go aims to provide fast compilation, make concurrency easy to use with built-in channels, allow pass by reference for better performance, and have readable, standardized code through features like go fmt. It also aims to simplify dependencies through its package management.
The document discusses Go memory management and garbage collection. It explains that Go uses garbage collection to reclaim unused memory blocks and scavenging to return unused memory to the operating system. The garbage collector is controlled by the GOGC environment variable and debug.SetGCPercentage(). Scavenging runs once per minute and returns unused spans after 5 minutes. Various functions like runtime.ReadMemStats() can provide memory usage statistics. Examples are given to demonstrate how to reduce garbage collection by maintaining object pools and using channels for sharing objects between goroutines.
This document discusses using Anko to create Android UI layouts in Kotlin as an alternative to XML. It covers setting up an Anko project in Android Studio, using Anko to define a vertical layout with an EditText and button, how Anko works through extension functions and lambdas, and suggests topics for further discussion like AnkoComponents vs XML, styles and themes, and different types of drawables.
This document contains code snippets from multiple C# console application namespaces that demonstrate various C# concepts like string formatting, object methods, enums, date/time formatting, string methods, and escape sequences. The code examples show how to format output, work with objects and references, iterate over arrays and strings, parse user input, and more.
This document outlines steps for contributing to an open source project called coala, including forking and cloning a repository, making commits, and creating pull requests. It discusses workflows for git, coding, code review, and rebasing. The document also provides an overview of coala and asks for feedback on the workshop.
This document discusses profiling Go programs. It begins by stating the golden rule of premature optimization and emphasizes the importance of measuring before optimizing. Several Go profiling tools are described, including tools for timing, CPU profiling, and memory profiling. An example of a badly implemented LRU cache is provided and profiled to identify inefficiencies. Various improvements are then made to the LRU cache and tested, including using a linked list, random eviction, and eliminating slice operations. The document concludes with a discussion of memory recycling in Go programs.
Source plugins are new in GHC 8.6 and provide a convenient mechanism for a user to inspect and modify the internal source code representation of a Haskell program. They are an extension to the existing plugins mechanism which adds passes which run after parsing, renaming and typechecking. This allows users to extend the compiler without having to modify GHC itself.
This document contains a collection of notes on various programming topics including:
- Commands for Unix shells like grep, sed, awk, and tools like OpenSSL and factor.
- Examples of using pipes, redirection, and commands together in sequences.
- Brief mentions of other topics like Excel, LaTeX, gnuplot, and programming languages like Perl, Python, and C.
- Links to blog posts and resources about Unix tools, Emacs, Vim, and Shell scripting jokes and tutorials.
The document contains code snippets for various sorting and searching algorithms including bubble sort, insertion sort, selection sort, and linear search. It also includes code to find the sum and largest value of arrays, determine angle type, and solve quadratic equations.
Groovy is a dynamic language for the Java Virtual Machine that adds features from languages like Python, Ruby, and Smalltalk. It supports domain-specific languages and integrates with all Java objects. Groovy compiles to Java bytecode so it runs on the JVM and can be used anywhere Java is used, including J2EE, Swing, Spring, and Seam applications. Groovy allows writing JUnit tests and development in Eclipse with debugging support.
Adam Polak: Tworzenie oprogramowania to nie tylko implementacja nowych funkcjonalności, ale również utrzymanie istniejącego kodu oraz naprawianie potencjalnych błędów. Na prezentacji pokażę jak debugować zarówno uruchomioną wcześniej aplikację, jak i taką, nad którą dopiero pracujemy. Co to jest memory leak, po co nam debugger, co daje monitorowanie, czy dev tools to tylko frontend, a flame charts to coś więcej niż kolorowe wykresy – tego wszystkiego dowiecie się na prezentacji.
Anko - The Ultimate Ninja of Kotlin Libraries?Kai Koenig
Kotlin is a new language for the JVM that aims to be a ””better Java”“. Made in-house by Jetbrains, the company behind IntelliJ IDEA and also Android Studio, it’s been in development for more than 5 years. Just a few weeks ago the final version of Kotlin 1.0 saw the light of day.
The language itself gives one so much niceness and syntactic sugar that you’d probably never want to go back to coding in Java again. Things get even better with Anko. Anko is pretty much the ultimate Ninja of Kotlin libraries. The feature it’s best know for is its Layout DSL that allows one to programatically write UI code in Kotlin. No more XML layout and no awkward piecing together of your UI through clunky Java APIs. We will look at how to use and how to extend the Layout DSL for your own requirements and then move on to Anko’s advanced, non-layout-related features:
- Intent wrappers
- Shortcuts to system services
- Asynchronous task management
- Anko SQLite and more
Maxym Kharchenko presented ways to manage Oracle databases with Python. He demonstrated a Python tool to ping multiple Oracle databases concurrently and time the execution. The tool reports the status and timing for each database pinged. Python enforces good coding practices and interfaces well with databases, APIs, and other systems. Learning Python helps develop a more Pythonic way of thinking that can improve code quality and productivity.
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.
CRaSH the shell for the Java Virtual MachineGR8Conf
CRaSH is the open source shell for the JVM. The shell can be accessed by various ways, remotely using network protocols such as SSH, locally by attaching a shell to a running virtual machine or via a web interface. Commands are written Groovy and can be developed live making the extensibility of the shell easy with quick development cycles. Since the version 1.3, the REPL also speaks the Groovy language, allowing Groovy combination of command using pipes.
CRaSH comes with commands such as thread management, log management, database access and JMX. The session will begin with an introduction to the shell. The main part of the session will focus on showing CRaSH commands development with few examples, showing how easy and powerful the development is.
The audience will learn how to use CRaSH for their own needs: it can be a simple usage or more advanced like developing a command or embedding the shell in their own runtime like a web application or a Grails application.
ECMAScript 6: A Better JavaScript for the Ambient Computing EraAllen Wirfs-Brock
We've entered the Ambient Computing Era and JavaScript is its dominant programing language, But a new computing era needs a new and better JavaScript. It's called ECMAScript 6 and it's about to become the new JavaScript standard. Why do we need it? Why did it take so long? What's in it? When can you use it? Answers will be given.
Kotlin Coroutines allow for writing asynchronous non-blocking code using coroutines and suspending functions. Key features include cooperative multitasking on a single thread, using coroutines instead of threads, and dispatchers to control coroutine execution. Examples demonstrate loading data asynchronously for UI, updating multiple objects concurrently using coroutines, and checking server validity in a non-blocking suspending function.
A presentation about combining the powers of the Go language and Asterisk in order to provide fast, reliable and hugely scalable voice applications. A brief introduction about why Go presents a big opportunity for the asterisk community, a primer into developing FastAGI applications, demonstration of the AGI package [1] and a walk through the idioms and challenges of developing in Go. The talk is focused mainly on our experience of porting existing code into Go with the aim to scale our services to larger numbers accompanied with benchmarks and an introduction to some tools [2] we developed to help us test, debug and benchmark AGI applications.
JavaZone 2022 - Building Kotlin DSL.pdfAnton Arhipov
The document discusses Kotlin DSL and provides examples of using Kotlin as a domain specific language. It demonstrates how to build type-safe builders using Kotlin, including defining DSL blocks, extension functions and properties, infix notation, lambda receivers, and context receivers to define internal and external DSLs. Code samples are provided of building clients and dates using DSL syntax and context requirements.
The Ring programming language version 1.7 book - Part 44 of 196Mahmoud Samir Fayed
The document provides documentation on using Ring for web development, including instructions on setting up a web server to run Ring applications, and examples of writing simple "Hello World" programs using Ring's built-in web library and features like handling HTTP GET and POST requests, uploading files, and using templates. It also includes screenshots of example programs.
This document discusses Go memory management and garbage collection. It explains that Go uses garbage collection to free unused memory blocks and scavenging to return idle memory to the operating system. It provides details on allocation primitives like new() and make(), garbage collection configuration using GOGC, and memory statistics available via runtime.ReadMemStats(). Code examples are provided to demonstrate buffer pooling to reduce garbage collection overhead.
Visualizing ORACLE performance data with R @ #C16LVMaxym Kharchenko
A picture is worth a thousand words.
This is especially true during performance problems investigations where a well done graph of the issue can often cut resolution time from days to mere minutes.
ORACLE database provides a wealth of performance information, but unfortunately only a small part of it is currently visualized by standard tools, such as Enterprise Manager.
Enter R: a well known (and free) statistical analysis and graphing framework that can create relevant and interesting visualizations on pretty much any data.
Go was created at Google in 2007 and open sourced in 2009. It was influenced by C syntax, Oberon-2 packages and imports, and Alef concurrency. Go aims to provide fast compilation, make concurrency easy to use with built-in channels, allow pass by reference for better performance, and have readable, standardized code through features like go fmt. It also aims to simplify dependencies through its package management.
The document discusses Go memory management and garbage collection. It explains that Go uses garbage collection to reclaim unused memory blocks and scavenging to return unused memory to the operating system. The garbage collector is controlled by the GOGC environment variable and debug.SetGCPercentage(). Scavenging runs once per minute and returns unused spans after 5 minutes. Various functions like runtime.ReadMemStats() can provide memory usage statistics. Examples are given to demonstrate how to reduce garbage collection by maintaining object pools and using channels for sharing objects between goroutines.
This document discusses using Anko to create Android UI layouts in Kotlin as an alternative to XML. It covers setting up an Anko project in Android Studio, using Anko to define a vertical layout with an EditText and button, how Anko works through extension functions and lambdas, and suggests topics for further discussion like AnkoComponents vs XML, styles and themes, and different types of drawables.
This document contains code snippets from multiple C# console application namespaces that demonstrate various C# concepts like string formatting, object methods, enums, date/time formatting, string methods, and escape sequences. The code examples show how to format output, work with objects and references, iterate over arrays and strings, parse user input, and more.
This document outlines steps for contributing to an open source project called coala, including forking and cloning a repository, making commits, and creating pull requests. It discusses workflows for git, coding, code review, and rebasing. The document also provides an overview of coala and asks for feedback on the workshop.
This document discusses profiling Go programs. It begins by stating the golden rule of premature optimization and emphasizes the importance of measuring before optimizing. Several Go profiling tools are described, including tools for timing, CPU profiling, and memory profiling. An example of a badly implemented LRU cache is provided and profiled to identify inefficiencies. Various improvements are then made to the LRU cache and tested, including using a linked list, random eviction, and eliminating slice operations. The document concludes with a discussion of memory recycling in Go programs.
Source plugins are new in GHC 8.6 and provide a convenient mechanism for a user to inspect and modify the internal source code representation of a Haskell program. They are an extension to the existing plugins mechanism which adds passes which run after parsing, renaming and typechecking. This allows users to extend the compiler without having to modify GHC itself.
This document contains a collection of notes on various programming topics including:
- Commands for Unix shells like grep, sed, awk, and tools like OpenSSL and factor.
- Examples of using pipes, redirection, and commands together in sequences.
- Brief mentions of other topics like Excel, LaTeX, gnuplot, and programming languages like Perl, Python, and C.
- Links to blog posts and resources about Unix tools, Emacs, Vim, and Shell scripting jokes and tutorials.
The document contains code snippets for various sorting and searching algorithms including bubble sort, insertion sort, selection sort, and linear search. It also includes code to find the sum and largest value of arrays, determine angle type, and solve quadratic equations.
Groovy is a dynamic language for the Java Virtual Machine that adds features from languages like Python, Ruby, and Smalltalk. It supports domain-specific languages and integrates with all Java objects. Groovy compiles to Java bytecode so it runs on the JVM and can be used anywhere Java is used, including J2EE, Swing, Spring, and Seam applications. Groovy allows writing JUnit tests and development in Eclipse with debugging support.
Adam Polak: Tworzenie oprogramowania to nie tylko implementacja nowych funkcjonalności, ale również utrzymanie istniejącego kodu oraz naprawianie potencjalnych błędów. Na prezentacji pokażę jak debugować zarówno uruchomioną wcześniej aplikację, jak i taką, nad którą dopiero pracujemy. Co to jest memory leak, po co nam debugger, co daje monitorowanie, czy dev tools to tylko frontend, a flame charts to coś więcej niż kolorowe wykresy – tego wszystkiego dowiecie się na prezentacji.
Anko - The Ultimate Ninja of Kotlin Libraries?Kai Koenig
Kotlin is a new language for the JVM that aims to be a ””better Java”“. Made in-house by Jetbrains, the company behind IntelliJ IDEA and also Android Studio, it’s been in development for more than 5 years. Just a few weeks ago the final version of Kotlin 1.0 saw the light of day.
The language itself gives one so much niceness and syntactic sugar that you’d probably never want to go back to coding in Java again. Things get even better with Anko. Anko is pretty much the ultimate Ninja of Kotlin libraries. The feature it’s best know for is its Layout DSL that allows one to programatically write UI code in Kotlin. No more XML layout and no awkward piecing together of your UI through clunky Java APIs. We will look at how to use and how to extend the Layout DSL for your own requirements and then move on to Anko’s advanced, non-layout-related features:
- Intent wrappers
- Shortcuts to system services
- Asynchronous task management
- Anko SQLite and more
Maxym Kharchenko presented ways to manage Oracle databases with Python. He demonstrated a Python tool to ping multiple Oracle databases concurrently and time the execution. The tool reports the status and timing for each database pinged. Python enforces good coding practices and interfaces well with databases, APIs, and other systems. Learning Python helps develop a more Pythonic way of thinking that can improve code quality and productivity.
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.
CRaSH the shell for the Java Virtual MachineGR8Conf
CRaSH is the open source shell for the JVM. The shell can be accessed by various ways, remotely using network protocols such as SSH, locally by attaching a shell to a running virtual machine or via a web interface. Commands are written Groovy and can be developed live making the extensibility of the shell easy with quick development cycles. Since the version 1.3, the REPL also speaks the Groovy language, allowing Groovy combination of command using pipes.
CRaSH comes with commands such as thread management, log management, database access and JMX. The session will begin with an introduction to the shell. The main part of the session will focus on showing CRaSH commands development with few examples, showing how easy and powerful the development is.
The audience will learn how to use CRaSH for their own needs: it can be a simple usage or more advanced like developing a command or embedding the shell in their own runtime like a web application or a Grails application.
ECMAScript 6: A Better JavaScript for the Ambient Computing EraAllen Wirfs-Brock
We've entered the Ambient Computing Era and JavaScript is its dominant programing language, But a new computing era needs a new and better JavaScript. It's called ECMAScript 6 and it's about to become the new JavaScript standard. Why do we need it? Why did it take so long? What's in it? When can you use it? Answers will be given.
Kotlin Coroutines allow for writing asynchronous non-blocking code using coroutines and suspending functions. Key features include cooperative multitasking on a single thread, using coroutines instead of threads, and dispatchers to control coroutine execution. Examples demonstrate loading data asynchronously for UI, updating multiple objects concurrently using coroutines, and checking server validity in a non-blocking suspending function.
A presentation about combining the powers of the Go language and Asterisk in order to provide fast, reliable and hugely scalable voice applications. A brief introduction about why Go presents a big opportunity for the asterisk community, a primer into developing FastAGI applications, demonstration of the AGI package [1] and a walk through the idioms and challenges of developing in Go. The talk is focused mainly on our experience of porting existing code into Go with the aim to scale our services to larger numbers accompanied with benchmarks and an introduction to some tools [2] we developed to help us test, debug and benchmark AGI applications.
JavaZone 2022 - Building Kotlin DSL.pdfAnton Arhipov
The document discusses Kotlin DSL and provides examples of using Kotlin as a domain specific language. It demonstrates how to build type-safe builders using Kotlin, including defining DSL blocks, extension functions and properties, infix notation, lambda receivers, and context receivers to define internal and external DSLs. Code samples are provided of building clients and dates using DSL syntax and context requirements.
The Ring programming language version 1.7 book - Part 44 of 196Mahmoud Samir Fayed
The document provides documentation on using Ring for web development, including instructions on setting up a web server to run Ring applications, and examples of writing simple "Hello World" programs using Ring's built-in web library and features like handling HTTP GET and POST requests, uploading files, and using templates. It also includes screenshots of example programs.
This document discusses domain-specific languages (DSLs) in Kotlin. It provides examples of embedded DSLs in Kotlin for HTML, JSON, and Gradle. It explains how to build your own DSLs in Kotlin using extension functions, lambda expressions with receivers, and DSL markers to control scope. Finally, it discusses using the invoke operator to make DSL syntax more concise.
This document discusses using Groovy transformations like @EqualsAndHashCode to add functionality to classes at compile time through AST transformations. It provides an example of adding equals() and hashCode() methods to a Person class using the @EqualsAndHashCode transformation. It also shows how to create a customized Groovy shell that applies transformations like @ThreadInterrupt by configuring the CompilerConfiguration with ASTTransformationCustomizers.
«Продакшн в Kotlin DSL» Сергей РыбалкинMail.ru Group
- Как пришли к использованию и разработки своих DSL
- Посмотрим примеры используемых в экосистеме DSL - gradle, spek, spring
- Рассмотрим базис для конструирования DSL на примере kohttp
The last decade belonged to virtual machines and the next one belongs to containers. CoreOS is a new Linux distribution designed specifically for application containers and running them at scale. This talk will examine all the major components of CoreOS (etcd, fleet, docker, systemd) and how these components work together.
This document provides a summary of a presentation about modern container orchestration with Kubernetes and CoreOS. It discusses what CoreOS is, how to easily set up CoreOS and Kubernetes, machine configuration, distributed configuration with etcd, scheduling and running workloads with Kubernetes, and service discovery using Kubernetes labels. It also briefly mentions CoreOS careers and continuous delivery of the OS.
This is a material for "Programming in Linux" seminar for students of Seoul National University Interactive and Networked Robotics Laboratory.
Topics: Bash / Vim / GCC / Make / Git...
Author: Dongho Kang
Top 28 programming language with hello world for artificial intelligenceAL- AMIN
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output. Programming languages generally consist of instructions for a computer.
This document summarizes key features of the Crystal programming language. It discusses Crystal's syntax, compilation process, type checking, concurrency features, metaprogramming capabilities, and integration with C. Examples are provided to illustrate how Crystal avoids runtime errors, supports generics and multi-dispatch, and promotes efficient use of resources. The document concludes by listing some Crystal web frameworks, applications, and resources for learning more about the language.
The Ring programming language version 1.8 book - Part 19 of 202Mahmoud Samir Fayed
Here are the key steps to build Ring from source code on different platforms:
Windows:
- Clone the Ring source code repository
- Run build scripts (buildvc.bat, buildvcw.bat) in src folder to build compiler/VM
- Run build scripts in extensions folders to build extensions
- Generate source code and build for extensions that use code generator
- Add Ring/bin folder to PATH
- Run Ring programs
Ubuntu:
- Clone repository
- Install dependencies
- Run build scripts (buildgcc.sh) in src folder
- Run build scripts in extensions folders
- Generate/build extensions that use code generator
- Install Ring
- Run programs
Fedora
The document defines a class called ofBlob that represents a circle object that can be drawn and manipulated. It includes private variables to store the blob's position, dimension, speed, and phase. Methods are defined to initialize the blob, set/get its properties, update its position, and draw it. A testApp class is also defined that initializes a vector of ofBlob objects and calls their update and draw methods in a loop.
This document compares the Kotlin and Swift programming languages. It provides an overview of key features of each language such as variables, functions, classes, inheritance, protocols/traits, enums, null safety, type checks and extensions. It also includes code examples to illustrate similarities and differences between the two languages. The document concludes with a comparison of other features and a diagram showing how each language fits into a typical mobile application architecture.
Rust is a systems programming language that provides memory safety without using a garbage collector. It achieves memory safety through rules of ownership, borrowing, and lifetimes that are checked at compile time. These rules prevent common memory bugs like memory leaks, dangling pointers, and use-after-free errors that are common in C and C++.
CouchDB Mobile - From Couch to 5K in 1 HourPeter Friese
This document provides an overview of CouchDB, a NoSQL database that uses JSON documents with a flexible schema. It demonstrates CouchDB's features like replication, MapReduce, and filtering. The presentation then shows how to build a mobile running app called Couch25K that tracks locations using CouchDB and syncs data between phones and a server. Code examples are provided in Objective-C, Java, and JavaScript for creating databases, saving documents, querying, and syncing.
Presentation for Android Developers about why they should consider using Kotlin. Key features of the language are discussed in comparison with Java. #LanguageChoiceMatters
http://blog.jimbaca.com
The Ring programming language version 1.10 book - Part 22 of 212Mahmoud Samir Fayed
This document describes how to build Ring from source code on Microsoft Windows. It outlines the steps to clone the Ring source code repository, generate code for Ring extensions, and build the Ring compiler, virtual machine, Ring2EXE tool, and various Ring extensions like RingConsoleColors, RingInternet, RingCurl, RingPM, RingODBC, RingMySQL, RingSQLite, RingPostgreSQL, RingOpenSSL, RingMurmurHash, RingAllegro, RingZip, RingLibuv, RingFreeGLUT, and RingOpenGL using batch scripts. The process involves changing directories, running gencode.bat to generate source code for some extensions, and running buildvc.bat scripts to compile the code using Visual
This document provides an overview of using Python and GTK to build graphical user interfaces (GUIs). Some key points:
- GTK is a cross-platform GUI toolkit that can be used with Python to develop applications for Linux, Windows, and Mac.
- The document demonstrates basic GTK widgets like windows, buttons, labels and layout containers. It also covers using event handlers and object-oriented programming with GTK.
- More advanced topics covered include using threads to prevent the GUI from freezing during long operations, loading interfaces from UI files, and building a weather checking application with model-view architecture.
Slide de ma présentation au Voxxed Days Luxembourg 2017.
http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!
"Document as code" consiste à utiliser toutes les bonnes pratiques que nous utilisons pour notre source code et de les appliquer à la documentation. Les points clés sont :
* Utiliser un outil de gestion des sources (git) et de préférence le même que pour les sources.
* Un format de texte simple (pas de XML) comme AsciiDoc.
* Mettre en place des outils d'intégration continu et déploiement continu
Lorsque cette bonne pratique est en place, se pose une seconde catégorie de problème. Comment garantir la qualité :
* Faciliter la barrière à l’entrée en proposant un lien pour éditer la documentation sur chaque page et pour soumettre une pull request.
* Test systématique des exemples de code
* Respect des conventions de documentation
* Métriques et dashboard pour garantir la qualité
* Partage de bonnes pratiques/revue de documentation.
Cette présentation est un retour d’expérience et donne quelques bonnes pratiques de documentation. C'est un aperçu de ce qui peut être mis en place pour s’assurer de la qualité de la doc.
The document discusses idiomatic Kotlin programming. It covers several topics including:
- Using expressions idiomatically in Kotlin like if/when expressions
- Examples of idiomatic patterns from the Kotlin standard library
- Best practices for null safety using safe calls, let, elvis operator
- Idiomatic use of classes, functions, and data classes
- Leveraging the Kotlin standard library
TeamCity is a great tool for Continuous Integration with a lot of advanced features provided out-of-the-box. In this session, we will go through how TeamCity helps the software development with the daily routine; what was added to the product in the latest releases; and what features are coming next.
You will learn why build pipelines are useful, and how the CI server can be optimized when properly configured. I will also demonstrate how to configure the builds using the special Kotlin DSL provided with TeamCity.
TeamCity is a build management and continuous integration tool created by JetBrains that allows building pipelines of steps. It supports over 2000 projects with 12,000 build configurations running on 500 agents. Key features include a Kotlin DSL, HA read-only servers, Docker runner improvements, templates for step ordering, enforced settings, .NET Core support, and plugins. Pipelines allow breaking up builds into sequential steps like compiling, running tests, and publishing results to improve efficiency.
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
- TeamCity allows building software projects and managing build pipelines for continuous integration and delivery (CI/CD)
- A build pipeline in TeamCity refers to the sequence of build steps such as compiling code, running tests, and deploying artifacts that are automatically triggered by code changes
- The document demonstrates how to define a build pipeline in TeamCity using Kotlin DSL that compiles and packages a Java application project and its dependency library project
A build pipeline refers to the automated process of building software by breaking it down into discrete steps. This document discusses how TeamCity, a build management and continuous integration tool, can be used to create build pipelines. It provides an example pipeline with steps for checking out sources, compiling code, running tests at different stages, generating reports, and publishing results. The benefits of a pipeline include running different test types in parallel and tracking dependencies between steps to speed up the overall build process.
JavaDay Kiev 2017 - Integration testing with TestContainersAnton Arhipov
This document introduces TestContainers, an open source Java library that supports integration testing for applications that depend on external resources like databases. It allows tests to use real Docker containers to manage these dependent services. Tests run quickly and are portable across environments because the containers are started and stopped for each test. The document provides examples of using TestContainers with Spring Boot tests to launch containers for PostgreSQL and Redis, and to configure a MockServer container to handle external API dependencies. It suggests TestContainers is useful for testing microservices and Java agents that depend on external services or APIs.
TestContainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
This document discusses different techniques for reloading Java classes at runtime:
- HotSwap allows reloading individual statements but is limited. Class loaders allow reloading entire classes but each class loader isolates its classes.
- More advanced techniques like Java agents and bytecode instrumentation allow redefining classes in-place and reloading methods, fields, and class hierarchies in a binary-compatible way.
- Demonstrations show reloading an entire "region" of related classes like a service class and its dependencies, allowing a live application thread to see the changes immediately without restarts. Java agents in particular provide a powerful but complex way to implement class reloading.
JavaOne 2017 - TestContainers: integration testing without the hassleAnton Arhipov
This document introduces TestContainers, an open source tool for running Docker containers as part of integration tests. It discusses why integration testing is important for reproducibility, isolation, and realism. TestContainers allows setting up Docker containers programmatically and automatically cleaning them up after tests complete. It supports starting individual containers, Docker Compose environments, and custom container types. Examples are given for testing services that depend on databases, caches, and external APIs using TestContainers without complex test environment configuration. The document also describes how to use TestContainers to test Java agents by modifying bytecode at runtime within a container during tests.
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
In Java, a typical workflow involves restarting the application with (almost) every class change. For some applications, it is not a problem at all; for others, it is a disaster, from HotSwap to agent-based reloading. This session takes a look at the options available for Java class reloading. There are plenty of tools you can use for this task: rely on standard JVM HotSwap, redesign your application to rely on dynamic class loaders, comprehend the Zen of OSGi, or integrate a reloading agent. Every option has its own drawbacks and benefits, and the presentation takes a deep dive into the subject. Come get a better understanding of class reloading technologies and become a more productive Java developer.
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingAnton Arhipov
This document discusses techniques for reloading Java classes at runtime, including using class loaders to load updated classes, Java agents to instrument classes, and frameworks like HotSwap that utilize these techniques. It provides examples of how class loaders can be used to reload specific parts of an application while a program is running. The goal is to achieve hot reloading that is binary compatible and allows updating code without restarting the Java virtual machine.
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
This document discusses techniques for reloading Java classes at runtime, known as hot reloading or hot swapping. It begins with an introduction and overview of class loaders, Java agents, and instrumentation which can be used to dynamically modify classes. Specific techniques are then presented for reloading classes, fields, methods and code using custom class loaders and bytecode manipulation. The goal is to allow reloading parts of an application without restarting the Java Virtual Machine.
GeeCON 2017 - TestContainers. Integration testing without the hassleAnton Arhipov
TestContainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
In Java, a typical workflow involves restarting the application (almost) with every class change. For some applications it is not a problem at all, for some – it is a disaster.
From HotSwap to agent-based reloading. In this session, we are going to take a look at the options available for Java class reloading. There is plenty of tools that you can use for this task: rely on standard JVM HotSwap, redesign your application to rely on dynamic class loaders, to comprehend the Zen of OSGi, or to integrate a reloading agent. Every option has its own drawbacks and benefits and we’re going to take a deep dive on the subject.
Finally, there are also the conceptual challenges in reloading Java classes. What to do with the state? What should happen with the static initialisers? What if super class changes? Join this session to gain a better understanding of class reloading technologies and become more productive Java developer.
JEEConf 2017 - Having fun with JavassistAnton Arhipov
Javassist makes Java bytecode manipulation simple. At ZeroTurnaround we use Javassist a lot to implement the integrations for our tools.
In this talk we will go through the examples of how Javassist can be applied to alter the applications behavior and do all kind of fun stuff with it.
Why is it interesting? Because while trying to do unusual things in Java, you learn much more about the language and the platform itself and learning about Javassist will actually make you a better Java developer!
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
34. final ClientBuilder builder = new ClientBuilder();
builder.setFirstName("Anton");
builder.setLastName("Arhipov");
final TwitterBuilder twitterBuilder = new TwitterBuilder();
twitterBuilder.setHandle("@antonarhipov");
builder.setTwitter(twitterBuilder.build());
final CompanyBuilder companyBuilder = new CompanyBuilder();
companyBuilder.setName("JetBrains");
companyBuilder.setCity("Tallinn");
builder.setCompany(companyBuilder.build());
final Client client = builder.build();
System.out.println("Created client is: " + client);
val client = createClient {
firstName = "Anton"
lastName = "Arhipov"
twitter {
handle = "@antonarhipov"
}
company {
name = "JetBrains"
city = "Tallinn"
}
}
println("Created client is: " + client.consoleString)
35. //extension property
val Client.consoleString: String
get() = "${twitter.handle} ${company.name}"
//extension method
fun Client.toConsoleString(): String {
return "${twitter.handle} ${company.name}"
}
36. fun createClient(c: ClientBuilder.() -> Unit): Client {
val builder = ClientBuilder()
c(builder)
return builder.build()
}
fun ClientBuilder.company(t: CompanyBuilder.() -> Unit) {
company = CompanyBuilder().apply(t).build()
}
fun ClientBuilder.twitter(t: CompanyBuilder.() -> Unit) {
twitter = TwitterBuilder().apply(t).build()
}
Lambda with receiver
Extension methods
37. twitter {
handle = "@antonarhipov"
company {
name = "JetBrains"
city = "Tallinn"
}
}
@DslMarker
annotation class ClientDsl
@ClientDsl
class CompanyBuilderDsl : CompanyBuilder()
@ClientDsl
class TwitterBuilderDsl : TwitterBuilder()
twitter {
handle = "@antonarhipov"
company {
name = "JetBrains"
city = "Tallinn"
}
}
Scope control