Presentations offered by Daniel Hinojosa
What's new in Scala 3 "Dotty"?
In the alternative JVM Language arena, Scala has come out with a new feature set under the code name "Dotty", now called Scala 3. Let’s take a look at some of the cool new stuff that we can use. This presentation will assume basic Java knowledge and no Scala knowledge is required.
Personal Agility with the Pomodoro Technique
Time is very precious and is often threatened by phone calls, emails, co-workers, bosses, and most of all, yourself. The Pomodoro Technique reigns in unfocused time and gives your work the urgency and the attention it needs, and it’s done with a kitchen timer.
HTTP Client Deep Dive
JDK 11 saw the advent of a new HTTP Client and important new API for calling content on remote RESTful endpoints. This presentation will just focus on the HTTP Client are how to maximize its use.
Property Based Testing on the JVM
Property Based testing is letting the computer determine aggressive inputs for your subjects. When the computer provides edge cases, it highlights some of the typical problems that may still show up, so that you, the programmer, may have not thought about.
hashCode in a single class. Can you change implementations on the spot? Probably not, there may be too many dependencies on your implementation. Time to break out an adapter pattern, a utility class, or better yet, a type class! A type class is a kind of template in very static functional programming languages. Imagine a template that can read, write information as a side effect as well? Type classes are powerful.
In-Depth Jupyter Notebooks
Jupyter Notebooks has been a platform for Data Analysts and Data Scientists for the last few years but it may be expanding to a more general population including students, financial analysts, and other Scientific rigors. Running a Jupyter Notebook today is just as important as running a web browser. It is an essential platform for learning, conveying information, and telling a story.
For those still grappling with Generics? This will be an attempt to clear the air about generics. What are wildcards? What is extends? What is super? What is covariance? What is contravariance? What is invariance? What is erasure? Why and when do I need this?
Reactive Streaming with RXJava
ReactiveX is a set of Reactive Extensions developed by Netflix, and is developed for various programming languages, like Java, Scala, and Clojure. ReactiveX overhauls the observable design pattern to achieve reactive goals. This presentation will solely focus on the Java version of ReactiveX, RXJava.
Getting Started with Test Driven Development in Java
Test-Driven Development is a test-first practice that drives the code through tests. It is a simple practice but not an easy practice.
Quickly add a test.
Run all tests and see the new one fail.
Make a little change.
Run all tests and see them all succeed.
Refactor to remove duplication.
The details are what gets you. This presentation introduces you to Test Driven Development, how to get started, what modern tools are available, and the challenges you will face.
Graal The Magnificent
Kubernetes Security Concepts Parts 1 & 2
There are multiple elements to Kubernetes where each component seems like a character in a book, pods, services, deployments, secrets, jobs, config maps, and more. In this presentation, we just focus on the security aspect of Kubernetes and the components involved. Particularly centered around RBAC and ServiceAccounts. What they are, what they do. We discuss etcd and secrets. We will also discuss other options for security in Kubernetes.
In Depth Kafka Streams and KSQLDB
Kafka is more than just a messaging pub/sub with storage. It goes beyond that and with technology from Confluent open source it has become a full-fledged data ETL and data streaming ecosystem.
Testing Data Layers with TestContainers
In the past, testing the data layer was hard, really hard. It would include a test database, as opposed to the production which of course we didn’t want to use for testing. Maintaining any sort of consistency was a pain to do, and perhaps fell by the wayside because it was too tedious and too fragile. Then we used in-memory databases, but the only viable ones were HSQLDB or H2. The problem there though is that the SQL for the in-memory databases didn’t quite match up. Today we have Test Containers which uses a Docker Client to download a specific version of whatever database or messaging system you wish to integrate. The best part, you can test against the same version of the database or messaging system so you have higher confidence that your tests work.
Testing the Undesireable
In reality, our jobs aren’t dealing with new code, but old crufty and evil code. How do we test such code, how do we get through it? How can we surgically take some of this bad code apart and make it testable.
Machine Learning Data Pipelines
How do we move information realtime and connect machine learning models to make decisions on our business data? This presentation goes through machine learning and Kafka tools that would help achieve that goal.
Understanding JVM Futures
Starting with JDK 5, we have had Futures, and they mostly went ignored. Now with concurrency and reactive technology in demand, it is essential that we understand what futures are, and how to handle them and make use of their power in asynchronous systems.
Foundations of Facial Recognition
Facial Recognition whether you agree with it or not it is here to stay. Understand what the algebra is behind facial recognition, what is involved, and what kind of software there is out there.
Spinnaker and Kubernetes
Back in 2005, when an unknown program called Hudson came onto the scene, I was pretty excited. I had used CruiseControl up to that point and was getting pretty comfortable with the notion of Continuous Integration. Hudson had terrific graphics and an intuitive UI, unlike Cruise Control with XML laden directives. I thought the future was here. Then some cracks started showing, particularly in the delivery aspect of Hudson. I had used a Tomcat plugin, but trying to get a jar, use various environments, became a juggling act. Then came Docker, and I loved it because we get to deploy an image! No more SSHing into a box and messing things up. We had immutability. Now, we have Kubernetes, a system that takes these immutable containers and monitors them, among other great features. Jenkins still has its place but as CI, Continuous Integration. In this presentation, I will demonstrate Spinnaker, a system developed by Netflix for CD, Continuous Delivery. I will demonstrate how to set up, deploy, , monitor, rollback, and scale our pods with the ease of just selecting an item on a menu.
Kafka and Streaming
Kafka has captured mindshare in the data records streaming market, and in this presentation, we knock on its door and see what lies behind it. What is the draw? What makes it an attractive addition? How does it compare to Message Queues and other message streaming services?
Introduction to Vavr.io
Java 8 is pretty great, but mix in JavaSlang (now called Vavr) and get ready for some functional programming excitement.
Machine Learning with Spark MLLib
Spark has a machine learning aspect to it and it’s called Spark MLLib. We discuss an intro into machine learning, some models, then apply some of those common machine learning models.
Functional Reactive Programming on the Front-End using Elm
The silent and deadly competitor to React and Angular. Meet Elm. All functional and client language. Absolutely Clean.
Spark Streaming is one of the few additions that are available with Spark that uses its internal architecture and creates a Streaming processing framework to process data in real-time.