Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
Author: Oleg Godovykh, eastbanctech.com
Kotlin is a new programming language built by Jetbrains and is a new member of JVM family. As opposed to typical reason to introduce some new language, Kotlin main goal isn't to create new paradigm or fill a new niche, but to make routine tasks much easier and safer. Kotlin gains popularity across Android developer community, and in this presentation it is shown how Kotlin usage can dramatically simplify typical mobile app development.
Kotlin is a new programming language for Android App development and it is discovered by Google.It will be an alternate option in place of Java language for android app development.
This document compares Kotlin and Java programming languages. It discusses what Kotlin and Java are, their key features and parameters for comparison such as compilation time, null safety, lambda functions, and community support. While Java has a larger community and is more established, Kotlin has advantages like easier learning curve, concise syntax, and null safety. The document also questions whether Kotlin will replace Java in the future.
Kotlin is free, open-source, statically typed, and flexible with a strong emphasis on optimization. The tool is designed to facilitate interoperability, safety, clarity, and tool support. Kotlin language is now preferred by many companies for Android development.
Kotlin is a statically typed programming language that targets the JVM, Android, JavaScript and Native platforms. It was developed by JetBrains and released in version 1.0 in 2016. Kotlin aims to be concise, safe, pragmatic and focused on interoperability with Java. It can be used for both server-side and Android development and works with existing Java libraries and frameworks.
The document introduces the Kotlin programming language developed by JetBrains. It provides an overview of Kotlin's motivation, features, syntax and tooling. Key points include Kotlin being a statically typed JVM language intended for industrial use, its focus on common sense features from other languages, and full interoperability with Java.
The document provides an introduction to an Android development course focused on Kotlin. It discusses why Kotlin is the preferred language for Android development, highlighting that it is more concise, safer, and interoperable with Java compared to other languages. The course will cover Kotlin fundamentals like variables, data types, conditions, loops, functions, and classes. It will explore Kotlin features such as null safety, smart casts, and being more productive than Java. The learning plan for September to October 2021 includes an introduction to the Kotlin programming language and object-oriented programming concepts.
Kotlin is a general-purpose programming language that runs on the Java Virtual Machine (JVM) and can be used to build Android and server-side applications. It is statically typed, open-source, and interoperable with Java. Kotlin aims to eliminate null pointer exceptions and reduce boilerplate code compared to Java. The document then provides an overview of Kotlin's history, syntax features like variables, data types, conditions, loops, functions and classes, and advantages like conciseness, null safety, and smart casts.
Kotlin is a programming language which you can use for multi-platform mobile app development, server-side development, Frontend and most importantly Android development.
Kotlin is a concise, safe, and statically typed programming language that compiles to JVM bytecode and JavaScript. It focuses on interoperability with Java and solves many Java pitfalls. Kotlin removes verbosity like semicolons and replaces "extends" and "implement" with a colon. Functions are defined with the "fun" keyword and return types follow. Properties are treated like fields. Kotlin avoids null references through null safety features like the safe call operator and non-null assertion operator. When expressions replace switch statements. Extension functions can extend existing classes without subclassing.
Kotlin InDepth Tutorial for beginners 2022Simplilearn
This tutorial by Simplilearn is based on Kotlin In-Depth Tutorial for 2022. This video is curated by industry experts based on the current IT standards and organized in the learning order. This Kotlin tutorial will help you with the fundamentals of kotlin programming language and also Android development with kotlin. This kotlin tutorial will guide you with critical skills, tips, and tricks required to be an expert in kotlin programming language.
In this tutorial, on the Kotlin tutorial, we will be learning about the important topics and basics of Kotlin language that one should know to understand Kotlin language. In this Kotlin tutorial for beginners, we will be learning about the Variables in Kotlin, String templates, if-else, and when statements. We will also learn about arrays, loops, ranges, and much more with help of hands-on examples.
The document discusses object-oriented programming concepts in Java, including classes, objects, inheritance, encapsulation, and polymorphism. It provides examples and definitions of key OOP concepts like class, object, inheritance, abstraction, encapsulation, polymorphism, and the SOLID principles (single responsibility, open/closed, Liskov substitution, interface segregation, and dependency inversion). It also covers Java specifics like access modifiers, variables, and how to create objects in Java.
Kotlin Basics & Introduction to Jetpack Compose.pptxtakshilkunadia
The document provides information about an upcoming Compose Camp on September 27th, 2022 that will introduce participants to Kotlin and Jetpack Compose. The camp will be facilitated by Takshil Kunadia and Apoorva Rumale and will focus on building Android apps using Kotlin and Jetpack Compose. Participants will learn how to set up Android Studio, the basics of Kotlin, Jetpack Compose, and find additional resources for continued learning. The document also outlines the camp's learning objectives and includes sections on the history of Android and Android architecture.
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.
I used these slides to present the benefits of using Kotlin to a group of people I work with. The presentation focuses on comparing Kotlin to Java, and in particular showing how Kotlin can help in writing safer, more concise and readable code. I used a few java gotchas/puzzles to demonstrate how Kotlin may prevent us from doing silly things.
The document provides information on Java OOP concepts including objects, classes, inheritance, polymorphism, abstraction, and encapsulation. It defines objects as entities with state and behavior, and classes as collections of objects. Inheritance allows objects to acquire properties of parent objects. Polymorphism allows one task to be performed in different ways. Abstraction hides internal details and shows functionality, while encapsulation binds code and data together into a single unit.
The document is a presentation about Kotlin vs Java that was presented by Rupali Singh. It introduces Kotlin as a statically typed programming language that runs on the JVM and is interoperable with Java. It outlines several features of Kotlin like null safety, type inference, and extension functions. It also provides interesting facts about Kotlin's growing popularity and adoption by companies like Google and Atlassian. The document compares basic syntax examples of Kotlin and Java code and lists several major projects and companies using Kotlin like Android, Corda, Gradle, Evernote and Coursera.
The document discusses operator overloading in Kotlin using the example of a Coin enum and Wallet class. It defines a Coin enum with values for common coins (PENNY, NICKEL, etc) that each have a cents value. A Wallet class is defined with a plusAssign operator function that allows adding Coin values to the wallet amount. Examples are shown incrementing a wallet variable by adding Coin values like QUARTER to demonstrate operator overloading.
Kotlin is a statically typed programming language that runs on the Java Virtual Machine and is fully interoperable with Java. It was developed by JetBrains as an alternative to Java for Android development, with improvements like null safety, lambdas, and concise syntax. Kotlin aims to be a safer language than Java by eliminating NullPointerExceptions and adding features like data classes, extensions, and higher-order functions. These features allow for more readable, concise code compared to Java.
In this PDF you can learn about Kotlin Basic as well as Intermediate part. As also you can develop the android apps and publish in a google play store.
Kotlin: A pragmatic language by JetBrainsJigar Gosar
A pragmatic language for JVM and Android.
Combines OO and functional features.
Focused on interoperability, safety, clarity, tooling support.
Open Source.
Works everywhere where Java works.
Key focus on interoperability and seamless support for mixed Java+Kotlin projects.
This document provides an introduction and overview of the Kotlin programming language. It covers key Kotlin concepts and features such as properties, null safety, classes, interfaces, extensions, and collections. It also includes Kotlin's timeline, development tools, and basic data types. The agenda outlines topics like String templates, OOP concepts, lambdas, and infix notation that are explained further in the document.
This document discusses how Kotlin can help improve Android app quality by eliminating common issues like crashes and null pointer exceptions. It highlights Kotlin features like non-nullable types, the safe call operator, and extension functions. Kotlin offers improvements over Java like optional and collection APIs without nullability and verbosity issues. It also maintains full interoperability with Java while providing better tools for static analysis and debugging.
Kotlin for Android - Vali Iorgu - mRreadyMobileAcademy
Kotlin is a programming language that runs on the Java Virtual Machine and is fully interoperable with Java. It aims to combine object-oriented and functional programming features and to improve developer productivity. Some key features of Kotlin include null safety, extension functions, inline functions and lambdas, and support for coroutines. It provides painless Java interoperability so existing Java code and libraries can be used from Kotlin.
The document discusses Kotlin and its use for Android application development. Some key points:
- Kotlin is a programming language developed by JetBrains for multiplatform applications, and is now widely used for Android development instead of Java.
- Kotlin code is considered safer, more concise, and easier to read/write compared to Java.
- The document covers Kotlin syntax including functions, variables, classes, constructors, and comments. It provides examples of basic Kotlin code structure and features.
- Kotlin is fully interoperable with Java code and allows developing Android apps in a more efficient way than using Java alone.
The Jetbrain's Kotlin language cheat sheet, created by ekito and launched for the Toulouse's devfest - https://www.ekito.fr/people/kotlin-cheat-sheet/
This paper helps you keep the main feature of the Kotlin language, under the hand. Just download it & print it !
Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax.
This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.
Kotlin what_you_need_to_know-converted event 4 with nigeriansjunaidhasan17
Kotlin is a cross-platform, statically typed programming language that runs on the JVM and JavaScript. It was developed by JetBrains as a pragmatic language for building production-grade applications. Kotlin is fully interoperable with Java and has many features that improve code safety, brevity, and readability compared to Java, like null safety, data classes, string templates, and extension functions. Popular companies like Google, Pinterest, and Square use Kotlin for Android development due to its interoperability with Java and improvements over Java.
Kotlin is a JVM language developed by Jetbrains. Its version 1.0 (production ready) was released at the beginning of the year and made some buzz within the android community. This session proposes to discover this language, which takes up some aspects of groovy or scala, and that is very close to swift in syntax and concepts. We will see how Kotlin boosts the productivity of Java & Android application development and how well it accompanies reactive development.
This document provides a summary of an introduction to the Clojure programming language. It discusses what Clojure is, its timeline and adoption, functional programming concepts, concurrency features using Software Transactional Memory, the Lisp ideology it is based on including homoiconicity and its macro system. It also provides an overview of getting started with Clojure including using the REPL, basic syntax like symbols and keywords, data types, sequences, functions, and Java interoperability. Resources for learning more about Clojure are also listed.
- Kotlin is a compiled, statically typed language that is interoperable with Java libraries and seamlessly bidirectional with Java.
- Kotlin offers more compile time safety compared to other statically typed languages as code will fail fast during compilation rather than at runtime.
- Kotlin has an easy learning curve for Java developers and allows freedom to mix imperative and functional programming styles.
Kotlin - The Swiss army knife of programming languages - Visma Mobile Meet-up...Tudor Dragan
Kotlin is a powerful language, but it also comes with its traps and pitfalls. This presentation is about uncovering the very nice features and strange particularities that the language has to offer.
The Kotlin 101 presentation was the very first presentation of the Kotlin Usergroup Vienna (https://www.meetup.com/Kotlin-Vienna/), held at a meeting from the Java Student Usergroup in 2016 (https://www.meetup.com/Java-Vienna/). It explains the raw (syntactical) fundamentals of the language targeting a Java developer audience.
The document provides an introduction to Kotlin programming and its use in Android development. It discusses why Kotlin is a good choice, its key features like interoperability with Java, concise code, and tool support. It also outlines Kotlin constructs like functions, variables, conditionals, loops, classes and objects. The document demonstrates basic Kotlin code examples and how to create an Android app with Kotlin. It positions Kotlin as a growing option for cross-platform apps, services, machine learning and more.
The document discusses Scala and why some developers think it could replace Java on the JVM. It provides quotes from several influential developers, including the creator of Java and Groovy, expressing their view that Scala is the best candidate to replace Java in the long run. Specifically, James Gosling says that if he had to pick another language on the JVM besides Java, it would be Scala. Charlie Nutter describes Scala as the current heir apparent to the Java throne and the momentum behind Scala is now unquestionable. James Strachan says that if he had seen the Programming in Scala book in 2003, he may have never created Groovy and that his tip for a long term replacement for Java is
Jenkins shared libraries allow teams to create reusable pipeline code to avoid duplicating steps like deploying across multiple pipelines. The libraries separate common concerns from team-specific code and can make things like configuration changes opaque to teams. The libraries code is organized into directories for Java sources and global variables, and classes should implement Serializable to allow resuming pipelines. Logging must use the pipeline context steps echo rather than println. Shared libraries help "Don't Repeat Yourself" with common pipeline patterns.
An overview about Continuous Delivery. What is it? Why should you care about it? See how your team can implement Continuous Delivery in order to deliver business value in a sustainable yet efficient way.
Il fatto che rilasci continui e frequenti portino estremo valore è un fatto noto a tutti, ma spesso averne coscienza non è sufficiente per iniziare un percorso di cambiamento. Servono investimenti, formativi e tecnologici, che vanno motivati anche economicamente.
Nel mio talk vi parlerò di casi reali in cui abbiamo costruito una soluzione pratica, basata su alcune metriche del Lean, che permette di rispondere alla domanda:
“Come posso valutare il ritorno dell’investimento di questo cambiamento?”
Talk presentato all'Italian Agile Days 2016 https://vimeo.com/197750655
How do you handle renaming of a resource in RESTful wayXPeppers
In this presentation we are going to investigate the issue regarding the move or rename of an existing resource in RESTful. Have you ever encountered this problem? How did you handled it? Let's talk about it.
La tecnica del pomodoro - Come viene adottata in XPeppersXPeppers
Vi raccontiamo come in XPeppers siamo abituati a usare la tecnica del pomodoro. Quali sono i benefici e i consigli che raccomandiamo a chi si avvicina per la prima volta.
Collective code ownership in Extreme ProgrammingXPeppers
What can we do to improve communication and knowledge sharing in an Agile team? Collective Code Ownership is one of the most important rules in Extreme Programming: every member of the team is responsible for the architecture.
In this talk we'll explore the connection between CCO and the other XP rules, and we'll see some techniques that can help us in following this good practice.
Most of the times Agile is described as a set of practices. In this presentation I will give a different point of view of Agile, where practices are just a means to build an effective working culture.
An amazing opportunity for all the coders to improve their TDD skills in a safe and thrilling environment. Our lab is a 3 hours intensive practice event, focusing on the practice of TDD, essential for software development and design, away from the pressures of ‘getting things done’.
Many IT operations teams are used to managing infrastructure manually or with simple one-off scripts. This manual work and lack of verifiable behavior results in many issues and in uncertainty. In software development, Test Driven Development (TDD) is well recognized for improving design, increasing code quality, and allowing refactoring and better knowledge sharing.
Similar benefits can be gained in infrastructure projects when infrastructure is treated as code, driving that code development with tests. Configuration management tools such as Chef and Puppet allow infrastructure to be easily described as code and provide a complete support to introduce and run tests. This can allow development and operations teams to collaborate and confidently deliver working infrastructure code.
Pensate ad un’azienda fortemente gearchica, command & control, con procedure da seguire tassativamente.
Fatto? Se rispondete “una Banca” avete indovinato.
Come si fa a introdurre l’Agile in una cultura così diversa rispetto ai valori agili?
Vogliamo raccontarvi la nostra esperienza nel condurre l’introduzione dell’Agile in una delle più importanti banche italiane.
Vi racconteremo i successi, gli ostacoli, i fallimenti, le cose che abbiamo imparato, a quali compromessi siamo scesi, e cosa rimane da fare per uscire dalla fase pilota e estendere l’adozione nel 2016.
Hiring Great People: how we improved our recruiting process to build and grow...XPeppers
Check for open positions in XPeppers and send us your cv http://bit.ly/1Y1rClm
Getting the right people will help create a great team, and will let it grow healthy. Moreover, it will keep it rooted in your company culture, and sustaining that same culture in turn.
Nevertheless, too often recruiting is overlooked or completely delegated to HR or external recruiting agencies.
We share our experience in building our actual recruitment process, how we got to this recruitment workflow, what lessons we’ve learned and what are the key elements of a recruitment process. We also examine some differences compared to a more “traditional” way of selecting and assessing people.
An example of Continuous Delivery in Java presented at Italian Agile Days 2015. How you can improve your Continuous Delivery pipeline using an iterative and incremental approch
Xpeppers delivers constant value and incremental improvements to businesses through agile innovation. They use agile methodologies like Scrum and Kanban and practices like pair programming, daily stand-ups, and retrospectives. Xpeppers is looking for passionate developers to join their team in Trento, Italy to work on challenging projects and continuously learn and improve.
This document discusses company culture and how to introduce agile methodologies. It defines culture as "how we do things in order to succeed." The core of a company's culture is either control, collaboration, competence or cultivation. While changing culture is difficult, starting with subgroups already aligned with agile values and focusing on solving problems can help facilitate the transition. Introducing agile practices should be an evolution, not an attempt to logically explain why agile works. Patience and involvement of others experienced with agile adoption is also advised.
La passione non è sufficiente e il talento è sopravvalutato.
La vera differenza tra chi eccelle in una disciplina e tutti gli altri
è la pratica.
I risultati ottenuti facendo pratica sono funzione non solo della
quantità di tempo investito ma anche della qualità della pratica
stessa, è quindi importante un approccio strutturato.
Partendo dagli studi del Dr. K. Anders Ericsson sulla pratica
deliberata vedremo una carrellata delle tecniche che ci permettono di
migliorare nella programmazione e nell’applicazione dei metodi agili.
Gestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
How to Avoid Learning the Linux-Kernel Memory ModelScyllaDB
The Linux-kernel memory model (LKMM) is a powerful tool for developing highly concurrent Linux-kernel code, but it also has a steep learning curve. Wouldn't it be great to get most of LKMM's benefits without the learning curve?
This talk will describe how to do exactly that by using the standard Linux-kernel APIs (locking, reference counting, RCU) along with a simple rules of thumb, thus gaining most of LKMM's power with less learning. And the full LKMM is always there when you need it!
this resume for sadika shaikh bca studentSadikaShaikh7
I am a dedicated BCA student with a strong foundation in web technologies, including PHP and MySQL. I have hands-on experience in Java and Python, and a solid understanding of data structures. My technical skills are complemented by my ability to learn quickly and adapt to new challenges in the ever-evolving field of computer science.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
Blockchain and Cyber Defense Strategies in new genre timesanupriti
Explore robust defense strategies at the intersection of blockchain technology and cybersecurity. This presentation delves into proactive measures and innovative approaches to safeguarding blockchain networks against evolving cyber threats. Discover how secure blockchain implementations can enhance resilience, protect data integrity, and ensure trust in digital transactions. Gain insights into cutting-edge security protocols and best practices essential for mitigating risks in the blockchain ecosystem.
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
Data Protection in a Connected World: Sovereignty and Cyber Securityanupriti
Delve into the critical intersection of data sovereignty and cyber security in this presentation. Explore unconventional cyber threat vectors and strategies to safeguard data integrity and sovereignty in an increasingly interconnected world. Gain insights into emerging threats and proactive defense measures essential for modern digital ecosystems.
MYIR Product Brochure - A Global Provider of Embedded SOMs & SolutionsLinda Zhang
This brochure gives introduction of MYIR Electronics company and MYIR's products and services.
MYIR Electronics Limited (MYIR for short), established in 2011, is a global provider of embedded System-On-Modules (SOMs) and
comprehensive solutions based on various architectures such as ARM, FPGA, RISC-V, and AI. We cater to customers' needs for large-scale production, offering customized design, industry-specific application solutions, and one-stop OEM services.
MYIR, recognized as a national high-tech enterprise, is also listed among the "Specialized
and Special new" Enterprises in Shenzhen, China. Our core belief is that "Our success stems from our customers' success" and embraces the philosophy
of "Make Your Idea Real, then My Idea Realizing!"
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Hire a private investigator to get cell phone recordsHackersList
Learn what private investigators can legally do to obtain cell phone records and track phones, plus ethical considerations and alternatives for addressing privacy concerns.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Interaction Latency: Square's User-Centric Mobile Performance MetricScyllaDB
Mobile performance metrics often take inspiration from the backend world and measure resource usage (CPU usage, memory usage, etc) and workload durations (how long a piece of code takes to run).
However, mobile apps are used by humans and the app performance directly impacts their experience, so we should primarily track user-centric mobile performance metrics. Following the lead of tech giants, the mobile industry at large is now adopting the tracking of app launch time and smoothness (jank during motion).
At Square, our customers spend most of their time in the app long after it's launched, and they don't scroll much, so app launch time and smoothness aren't critical metrics. What should we track instead?
This talk will introduce you to Interaction Latency, a user-centric mobile performance metric inspired from the Web Vital metric Interaction to Next Paint"" (web.dev/inp). We'll go over why apps need to track this, how to properly implement its tracking (it's tricky!), how to aggregate this metric and what thresholds you should target.
AI_dev Europe 2024 - From OpenAI to Opensource AIRaphaël Semeteys
Navigating Between Commercial Ownership and Collaborative Openness
This presentation explores the evolution of generative AI, highlighting the trajectories of various models such as GPT-4, and examining the dynamics between commercial interests and the ethics of open collaboration. We offer an in-depth analysis of the levels of openness of different language models, assessing various components and aspects, and exploring how the (de)centralization of computing power and technology could shape the future of AI research and development. Additionally, we explore concrete examples like LLaMA and its descendants, as well as other open and collaborative projects, which illustrate the diversity and creativity in the field, while navigating the complex waters of intellectual property and licensing.
2. KOTLIN
● Primary target JVM
● Javascript
● Compiled in Java byte code
● Created for industry
Core goals is 100% Java interoperability.
3. KOTLIN main features
Concise
Drastically reduce the amount of
boilerplate code you need to write.
Safe
Avoid entire classes of errors such
as null pointer exceptions.
Interoperable
Leverage existing frameworks and
libraries of the JVM with 100% Java
Interoperability.
4. data class Person(
var name: String,
var surname: String,
var age: Int)
Create a POJO with:
● Getters
● Setters
● equals()
● hashCode()
● toString()
● copy()
Concise
public class Person {
final String firstName;
final String lastName;
public Person(...) {
...
}
// Getters
...
// Hashcode / equals
...
// Tostring
...
// Egh...
}
5. KOTLIN lambdas
● must always appear between curly brackets
● if there is a single parameter then it can be referred to by it
Concise
val list = (0..49).toList()
val filtered = list
.filter({ x -> x % 2 == 0 })
val list = (0..49).toList()
val filtered = list
.filter { it % 2 == 0 }
10. Extend existing classes functionality
Ability to extend a class with new functionality without having to inherit from the class
● does not modify classes
● are resolved statically
11. Extend existing classes functionality
fun String.lastChar() = this.charAt(this.length() - 1)
// this can be omitted
fun String.lastChar() = charAt(length() - 1)
fun use(){
Val c: Char = "abc".lastChar()
}
12. Everything is an expression
val max = if (a > b) a else b
val hasPrefix = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
when(x) {
in 1..10 -> ...
102 -> ...
else -> ...
}
boolean hasPrefix;
if (x instanceof String)
hasPrefix = x.startsWith("prefix");
else
hasPrefix = false;
switch (month) {
case 1: ... break
case 7: ... break
default: ...
}
14. for loop
can iterate over any type that provides an iterator implementing next() and hasNext()
for (item in collection)
print(item)
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
15. Collections
● Made easy
● distinguishes between immutable and mutable collections
val numbers: MutableList = mutableListOf(1, 2, 3)
val readOnlyNumbers: List = numbers
numbers.add(4)
println(readOnlyView) // prints "[1, 2, 3, 4]"
readOnlyNumbers.clear() // -> does not compile
22. Easily mixed with Java
● Do not have to convert everything at once
● You can convert little portions
● Write kotlin code over the existing Java code
Everything still works
23. Kotlin costs nothing to adopt
● It’s open source
● There’s a high quality, one-click Java to Kotlin converter tool
● Can use all existing Java frameworks and libraries
● It integrates with Maven, Gradle and other build systems.
● Great for Android, compiles for java 6 byte code
● Very small runtime library 924 KB
24. Kotlin usefull links
● A very well done documentation : Tutorial, Videos
● Kotlin Koans online
● Constantly updating in Github, kotlin-projects
● Talks: Kotlin in Action, Kotlin on Android
25. What Java has that Kotlin does not
https://kotlinlang.org/docs/reference/comparison-to-java.html
26. Primitive Types
Everything is an object
we can call member functions and properties on any variable.
What Java has that Kotlin does not
val a: Int? = 1
val b: Long? = a
print(a == b)
27. Primitive Types
Everything is an object
we can call member functions and properties on any variable.
What Java has that Kotlin does not
val a: Int? = 1
val b: Long? = a
print(a == b) // FALSE //
28. Primitive Types
Everything is an object
we can call member functions and properties on any variable.
What Java has that Kotlin does not
val b: Byte = 1
val i: Int = b
val i: Int = b.toInt()
val a: Int? = 1
val b: Long? = a
print(a == b) // FALSE //
29. Primitive Types
Everything is an object
we can call member functions and properties on any variable.
What Java has that Kotlin does not
val b: Byte = 1
val i: Int = b // ERROR //
val i: Int = b.toInt() // OK //
val a: Int? = 1
val b: Long? = a
print(a == b) // FALSE //
30. Static Members
class MyClass {
companion object Factory {
fun create(): MyClass = MyClass()
}
}
val instance = MyClass.create()
What Java has that Kotlin does not
Singleton
object MyClass {
// ....
}