Blog Articles - page 4
-
Automatic Releases to Maven Central with Travis and SBT
Enabling automatic releases for your open source Scala project with Travis and SBT.
Read article → -
Functional Programming Inception (Presentation)
My presentation from the Bucharest FP meetup.
Read article → -
Asynchronous Programming and Scala
Asynchrony is everywhere and it subsumes concurrency. This article explains what asynchronous processing is and its challenges.
Read article → -
Fixing scala.collection.Iterator
The venerable Iterator interface we all love and hate could use some improvements. This is a follow-up to my previous article, in which I talked about getting rid of Traversable because the Iterable and Iterator duo is enough for Scala’s standard library.
Read article → -
Why Scala's Traversable Is Bad Design
Traversable was a design mistake, is redundant and we should remove it.
Read article → -
Add to NewsBlur Bookmarklet
An Add to NewsBlur bookmarklet that you can copy-paste for iPhone/iPad/Android usage
Read article → -
Monix Task vs Scalaz vs Future, The Benchmark
The Task in Monix has really good performance. See the benchmark.
Read article → -
Akka & Monix - Typelevel Summit, Oslo 2016
Presentation from Typelevel Summit, Oslo, 2016, about my experience in dealing with modeling behavior by processing asynchronous soft-real time signals using Akka & Monix.
Read article → -
Monix Task - flatMap(Oslo) 2016
My presentation from flatMap(Oslo) 2016. It’s about the Monix Task, a new type for dealing with asynchronous processing on top of Scala and Scala.js.
Read article → -
Avoid Javaisms: Mocks, Stubs, DI is Code Smell
Such practices represent clear signals for code smell, meaning code that sucks as a symptom of a bigger problem, one of design. The lumping together of these practices is not an accident, as they are related.
Read article → -
Monifu vs Akka Streams
Back in June I attended Scala Days in Amsterdam and participated at a talk by Mathias Doenitz on The Reactive Streams Implementation Landscape. It was a good talk, yet I felt a little bias towards Akka Streams, which is natural coming from somebody that is contributing to Akka, but let me give you the perspective from the other side.
Read article → -
Scala Best Practices
This is a collection of best practices for Scala, something to get you started.
Read article → -
Resources for Learning Scala
Getting started with a new programming language shouldn't be hard, however navigating the web for resources on getting started with Scala can be a doubting experience, as many such resources are either out of date, or wrong, or both. This post is intended to reduce the noise for my colleagues and other people that are interested in Scala development.
Read article → -
Towards a Better AtomicReference
The AtomicReference is like a container for a volatile reference. Usage of volatile references is useful for the issue of visibility in concurrent code, however AtomicReference also supports the atomic Compare-and-Swap operation (CAS for short), which is the pillar of all non-blocking data-structures and algorithms built on top of the JVM, including complex ones like the ConcurrentLinkedQueue, an implementation based on the Michael-Scott non-blocking queues.
Read article → -
JVM Multithreading: Monitor Locks and Visibility
Multithreading is a pain to deal with. While interviewing developers, I noticed that surprisingly many don't have knowledge about this topic and I can't blame them really. However, in this day and age, for some problem domains building highly-concurrent architectures may be paramount to the success of demanding projects. As you'll see, there are many high level solutions, but I personally prefer to learn with a bottom up approach, starting from the basic and unsafe primitives, as understanding the problem is always the first step to real solutions.
Read article → -
Notes On JavaScript Client-side Development
Client-side JavaScript development can be quite overwhelming, even for senior developers. I’m describing here what I did in a recent piece of client-side functionality to keep my sanity. This interface I’m talking about is served on mobile-phones, so it must be pretty bloat-free, adding salt over injury.
Read article → -
On Scala, Functional Programming and Type-Classes
I’ve been following the excellent Coursera course on Functional Programming Principles in Scala led by Martin Odersky. This was not my first encounter with Scala as I’ve been using it including for my day job. In this article I’m describing my impressions of the Scala programming language and why I fel in love with it.
Read article → -
How To Build a Naive Bayes Classifier
In machine learning a classifier is able to predict, given an input, a probability distribution over a set of categories. Some use-cases for building a classifier: spam detection, for example you could build your own Akismet API, automatic assignment of categories to a set of items, automatic detection of the primary language (e.g. Google Translate), sentiment analysis, which in simple terms refers to discovering if an opinion is about love or hate about a certain topic.
Read article → -
Data Mining: Finding Similar Items and Users
How to find related items? Here are recipes based on really simple formulas. If you pay attention, this technique is used all over the web (like on Amazon) to personalize the user experience and increase conversion rates. Because we want to give kick-ass product recommendations.
Read article → -
Blogging Platform for Hackers
Host your own static website on Heroku’s free plan, use Google’s App Engine as a CDN, keep Heroku’s free dyno alive, generate the website via Jekyll.
Read article →