Blog Articles - page 3
-
Introduction
JavaScript’s Promise leaks memory in recursive loops and what you can do about it.
Read article → -
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 → -
Crawling the Android Marketplace
I had a very specific need for fetching the details for some apps in the Android marketplace, in an automated manner. Here I’m describing a script that I used to crawl the marketplace back in 2011.
Read article → -
Android Learning Resources
Starting out learning Android development may be intimidating at first, as with any new platform of reasonable complexity you’ll have a lot to learn. However the learning process is fun. So here are some learning resources that I’m currently following.
Read article → -
Earning Money as an Amazon Affiliate
I published an article that I've meant to publish for a long time. I'm usually lazy to not bother writing many articles, however this time I also thought about doing an experiment - you see I'm (1) on a tight budget and (2) a cheap bastard - so what if I could get enough money to pay for my monthly hosting on Linode, while satisfying my urge to write from time to time?
Read article → -
4 Books For Learning to Design, The Hard Way
I present some books I enjoyed, which is the path I’m taking to get better at design and user experience.
Read article → -
How I Use Flickr: For Backup
I’ve got a growing number of personal pictures and the collection is growing since 2003 … Pro accounts on Flickr have unlimited storage and can upload and access full-resolution pictures.
Read article → -
Why I Find Heroku Suboptimal
Heroku is great. It basically allows you to avoid growing-up. The deployment itself couldn’t be simpler, and when browsing their web interface for available add-ons, I feel like a child in a candy-store. But I’ve outgrown it.
Read article → -
Cross-Domain, Cross-Browser AJAX Requests
This article describes how to make cross-browser requests, in all browsers (including IExplorer 6), using web standards along with fallbacks and without using a proxy or JSONP (which is limited and awkward) – as long as you control the destination server, or if the destination server allows.
Read article → -
I hate NULL and all its variants!
How many times have you had a chain of methods like this (example showing BeautifulSoup in action) …
Read article → -
Introduction
FreeSWITCH is a free and open source application server for real-time communication, WebRTC, telecommunications, video and Voice over Internet Protocol. Let’s build a VoIP dialer with it.
Read article → -
Using the Best Tools in Programming: Not Really Doable
There's something that bothers me when it comes to starting a new project. You can't really use the best tool for a certain job, if that tool is not integrated with the rest of your platform. Let me explain.
Read article →