The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise boosts blood flow, releases endorphins, and promotes changes in the brain which help regulate emotions and stress levels.
The document discusses Scala implicits, including how they work, how IDEs can help with them, and possibilities to improve their performance. It covers implicit conversions, extension methods, implicit parameters, and how the compiler handles implicit resolution and type inference. The presenter advocates using implicits as a key Scala feature while also choosing tools that help debug issues and analyze available implicit conversions.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise boosts blood flow, releases endorphins, and promotes changes in the brain which help regulate emotions and stress levels.
The document discusses Scala implicits, including how they work, how IDEs can help with them, and possibilities to improve their performance. It covers implicit conversions, extension methods, implicit parameters, and how the compiler handles implicit resolution and type inference. The presenter advocates using implicits as a key Scala feature while also choosing tools that help debug issues and analyze available implicit conversions.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms for those who already suffer from conditions like anxiety and depression.
Краткое введение в Scala для разработчиков на других языках. Рассмотрены несколько простых программ, написанных с использованием красивых возможностей Scala.
This document discusses how implicits work in Scala, including how implicit conversions, parameters, and classes are resolved by the compiler. It explains how the compiler searches for implicits, potentially including extended implicit scopes, and how it handles recursion and complexity to avoid stack overflow errors. It also discusses how IDEs can help with implicits by analyzing available conversions and parameter types.
This document discusses transitioning a team from Java to Scala. It covers reasons for choosing Scala like its syntax and libraries. It also discusses challenges like testing and shared state in Scala. It provides recommendations to incrementally introduce Scala to avoid issues and constantly learn the new language through projects.
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
This document discusses using Javassist, a bytecode manipulation library, for tasks like adding logging to existing code without modifying the source code. It provides examples of using Javassist to inject logging into a method and creating a Java agent to manipulate bytecode. The document also summarizes how Javassist works under the hood to modify class files and how frameworks like JRebel use it to reload configurations without restarts.
JavaOne 2015 - Having fun with JavassistAnton Arhipov
The document provides examples of using Javassist, an open-source bytecode engineering library, to dynamically generate, instrument, reflect and modify Java bytecode. It demonstrates how to use Javassist to generate proxy classes, insert logging before methods, and modify existing classes at runtime without recompilation. Key classes and methods discussed include ClassPool, CtClass, CtMethod and insertBefore.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms for those who already suffer from conditions like anxiety and depression.
Краткое введение в Scala для разработчиков на других языках. Рассмотрены несколько простых программ, написанных с использованием красивых возможностей Scala.
This document discusses how implicits work in Scala, including how implicit conversions, parameters, and classes are resolved by the compiler. It explains how the compiler searches for implicits, potentially including extended implicit scopes, and how it handles recursion and complexity to avoid stack overflow errors. It also discusses how IDEs can help with implicits by analyzing available conversions and parameter types.
This document discusses transitioning a team from Java to Scala. It covers reasons for choosing Scala like its syntax and libraries. It also discusses challenges like testing and shared state in Scala. It provides recommendations to incrementally introduce Scala to avoid issues and constantly learn the new language through projects.
Con-FESS 2015 - Having Fun With JavassistAnton Arhipov
This document discusses using Javassist, a bytecode manipulation library, for tasks like adding logging to existing code without modifying the source code. It provides examples of using Javassist to inject logging into a method and creating a Java agent to manipulate bytecode. The document also summarizes how Javassist works under the hood to modify class files and how frameworks like JRebel use it to reload configurations without restarts.
JavaOne 2015 - Having fun with JavassistAnton Arhipov
The document provides examples of using Javassist, an open-source bytecode engineering library, to dynamically generate, instrument, reflect and modify Java bytecode. It demonstrates how to use Javassist to generate proxy classes, insert logging before methods, and modify existing classes at runtime without recompilation. Key classes and methods discussed include ClassPool, CtClass, CtMethod and insertBefore.
The document discusses Uber's APIs and how they can be used to build experiences that enhance transportation. It notes that Uber has facilitated over 2 billion trips across more than 470 cities. Developers can integrate their apps with Uber's APIs to authenticate users, request rides, access ride details and context through the trip to improve users' experiences. The document provides examples of how ride context could be used to suggest local guides, play media based on trip duration, and control smart home devices like heating when approaching home.
This document discusses building and shipping software using GitHub. It provides key facts about GitHub such as being founded in 2008, having over 15 million registered users and 36 million repositories. It also shares principles from "The Zen of GitHub" including that responsive is better than fast, practicality beats purity, and favor focus over features. The document advocates for empowering businesses to build great software through culture, tools, process and a DevOps approach.
This document introduces .NET Core and its advantages over the .NET Framework. It discusses how .NET Core is cross-platform, uses the .NET Standard library, and can create self-contained applications. It also highlights how .NET Core applications are smaller, faster, and container-friendly. The document demonstrates how to use the dotnet CLI and publish .NET Core applications to reduce their deployment size. Overall, it promotes adopting .NET Core for its performance, portability, and familiar .NET APIs.
René Gröschke gave a talk on the latest features and future direction of Gradle. Some of the key points included:
- Gradle is moving to a Kotlin-based DSL for improved performance, tooling support, and bringing application patterns to builds.
- Performance improvements include a dedicated performance team that has improved Android Gradle Plugin build times significantly.
- Composite builds allow including external projects to debug dependencies or test plugins against real projects.
- Build cache and distributed build cache are incubating features to cache and share build results for faster rebuilds.
- Gradle build scans provide insights into builds to debug issues, optimize performance, and compare builds
The document discusses containerizing ASP.NET Core applications with Kubernetes. It begins with an overview of .NET Core and containers, and how they have converged. It then discusses Kubernetes and how it can help manage containers at scale. It covers Kubernetes building blocks like deployments, pods, labels, services, and replica sets. It provides examples of deploying containers with Kubernetes, including demonstrations of creating deployments, services, scaling applications, and rolling updates.
7. autowireautowire
trait Api {
def order(itemIds: List[Int]): Order
def submit(order: Order): Unit
}
val client = Ajax[Api]
val z: Future[Unit] = for {
order <- client.order(itemIds).call()
result <- client.submit(order).call()
} yield result
9. scala-js-reactscala-js-react
@scalax
def render(self: This) = {
val todo = self.state.todos.count(!_.completed)
<section id="todoapp">
<header id="header">
<h1>todos</h1>
<input id="new-todo"
onChange={self.onChange}
onKeyUp={self.onKeyPress}
value={self.state.text}
placeholder="What needs to be done?"
autofocus={true}></input>
</header>
</section>
}
10. scodecscodec
case class Person(name: String, title: String)
object Person {
implicit val codec = Codec[Person]
}
sealed trait Tree
case class Node(l: Tree, r: Tree) extends Tree
case class Leaf(n: Int) extends Tree
object Tree {
implicit lazy val codec: Codec[Tree] = {
discriminated[Tree]
.by(uint8)
.typecase2(0, int32.as[Leaf])
.typecase2(1, lazily { (codec :: codec).as[Node] })
}
}
13. АА тактак жеже
поддержка IDE
инкрементальная компиляция
source maps
Google Closure Compiler
размеры JS
минимум - 100 Кб
TODO MVC - 250 Кб (64 Kb gzip) + react
максимум - 1Mb
14. ЗаключениеЗаключение
Можно скомпилировать Scala в JS
Scala код можно звать из JS, и наоборот
Производительность сопоставима с JS
Есть много библиотек
Можно все написать на ScalaJS :)
Есть альтернативы, см. Haskell, Erlang, Clojure