Actors and the Internet of (Lego) Things

Last year, Johan Janssen started a Lego Internet of Things project. Using Scala, Akka and Raspberry Pi, he controlled a Lego train set. At Voxxed Days Athens, Johan will live demo his project and discuss how to use Akka HTTP and actors. We asked him about the technology.   What is Akka HTTP and what is a remote actor? Akka HTTP is a toolkit which enables you to provide and consume

Domain Specific Simplicities

Domain Specific Languages can be mysterious beasts. Federico Tomassetti is giving at talk at Voxxed Days Ticino about how to build DSLs in a simple and pragmatic way. We asked him who could benefit from them. Why do we need DSLs, and why are they important? Domain Specific Languages are languages that do one thing, and do it well. We use this kind of languages every day: HTML and CSS

DOT, Dotty and the future of Scala

Dotty started as an experiment aiming to simplify Scala’s types and syntax, based on DOT. It is a new prototype compiler. We interviewed inventor of Scala Martin Odersky at Voxxed Days CERN to ask about the developments, and the future of Scala. For the full talk, see below: From DOT to Dotty Objects are useful because they are natural modules, that is, building blocks from which larger systems are defined. Static

JVMs, Compilers, and Time with Cliff Click

“When you start writing a program, there’s always an implicit time requirement. “Sometimes it’s pretty loose and there’s no real rush for getting a job done. But if its a hard real time system controlling a motor controller or a pace maker… or a flight system on an airplane, these have very strict requirements on time. But a programming language like Java and actually, C and Fortran, just don’t mention

Java 9 series: Segmented Code Cache

This week we’re looking at JEP 197: Segmented Code Cache as part of the Java 9 series: looking at some of the JDK Enhancement Proposals (JEPS) hoping to make their way into Java 9. Last week we looked at multi-release JAR files: MRJARs. This week, we look at the proposal to spilt out the code cache so there is a code cache per top-level type of compiled code, as “the organization and

Presentation – Extreme Profiling: Digging Into Hotspots

Extreme Profiling: Digging Into Hotspots by Nitsan Wakart Hold onto your hats! On bunny ears, if you like. Diving down the rabbit hole we will explore a host of advanced tools for analysing performance hotspots in Java code: The Code is a Lie: why the line of code indicator is broken JMH perfasm: looking at microbenchmarks under the microscope JITWatch: digging into compilation process and stages Solaris Studio: Not just

RxJava 2.0.0 General Availability Release

A few weeks ago, the release of RxJava 2.0.0 was announced. It has been completely written from scratch, around the Reactive Streams specification. RxJava 2.0.0 final is out! Thanks for all the feedback and contributions over the last 18 months! https://t.co/xZDxrA9Qiw — RxJava (@RxJava) October 29, 2016 Backpressure We discussed the Reactive Streams initiative in Java 9 series: Concurrency Updates. It is an initiative that provides a standard for asynchronous stream processing with non-blocking backpressure.

Native Ahead-of-Time Compilation in Java

A new official proposal to add ahead of time compilation for the JVM has been submitted as JEP 295. As the name suggest the idea is to add compilation to native code prior to launching the virtual machine. The main goal of the proposal is to improve the start-up time of Java applications, with as little as possible impact on overall performance. How would this work in practice ? This

Setting up Scala on Android

This article was originally published over at the Codurance blog.   Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be done, we are going to create new project template using the Android SDK Plugin

Py4J: Building bridges between Python and Java

Last week, Py4J version 0.10.4 was released. Py4J is a bidirectional bridge between Python and Java. It enables Python programs running in a Python interpreter to dynamically access Java objects in a JVM. Py4J Version 0.10.4 of Py4J allows you to set a value in a Java array that will convert to the Python type, so the value types don’t have to exactly match. A GatewayServer instance allows Python programs to communicate with