• Chromium to Firefox Experience

    A while ago, I decided to give Firefox a try. Here I’m going to share why and how it happened. Also I’ll share how I configured my work and personal browser profiles on my Gnome desktop.

    Screenshot of Firefox profile launchers

  • Don’t listen to them, learn Cats this way

    OK, you came to the conclusion that type-safety is good. It helps you get things done in a safer manner, at least for whatever you’re working on at the moment. So you started using types more than before to describe what a piece of code does without the need to run. In another word, to bring forward unwanted errors.

  • Learning about the way we learn

    Sometimes, we need to invoke our own brain to describe some facts about itself but in a more pleasant way to help ourselves move on. It’s not a bad thing at all, but I prefer to know the scientific facts, no matter what’s the cost.

  • How to apply settings to multiple projects using SBT triggered plugins

    SBT is the main build tool for Scala projects. It’s simply one of the most powerful build tools available. You’re not limited to a single method for doing a specific job and there is no predefined and restricted rules. You can automate things as much as you want. And the good news is that SBT tries to run the tasks in parallel as much as possible.

  • Comparing Scala Editors

    Choosing the best editor/IDE for your favorite programming language is not as easy as it seems to be. Obviously, that’s not the case if you work with the main-stream technologies or if you don’t consider yourself a geek programmer!

    Right now, Scala is my favorite language and fortunately, contrary to what most developers think, there are a good number of available choices as editor/IDE. This post is about my experiences of using these tools.

  • Back to Ubuntu from Arch

    Several month ago, I left Ubuntu for Arch. This post is about my experiences and the reasons that led me to move back to Ubuntu.

    Update 2017-01-21: As the VirtualBox bug, which made me go back to Ubuntu, is resolved, I couldn’t resist going back to Arch. This time I tried i3 instead of a full fledged DE and I’m very happy so far.

  • Type Injection in Scala

    I’m not sure if it’s a good name but as we inject types into our classes, type injection seems a good name. I used this technic in my latest project to build a database-agnostic data-access layer on top of Slick 3.

  • Running SBT on a Linux encrypted home

    If you use Linux and encrypt your home folder, you may get the following error when compiling a SBT project:

    [error] File name too long
    [error] one error found
    [error] (compile:compile) Compilation failed
  • The hacker scripts in Scala

    You may have read or heard about that amazing true story about a hacker scripts which inspired hackers who enjoy living inside the terminal!

  • How to run 32-bit Andorid SDK on 64-bit Arch Linux

    Andorid SDK is a 32-bit application and needs some extra works to run on a 64-bit Arch Linux.

  • Non-verbose SEO friendly internationalization for Play framework

    Default internationalization support in Play works with cookies which is not SEO-friendly. It would be very nice if it was possible to use route parameters instead of cookies but as Play routes are (nicely, truly and correctly) type-safe, this will come at some cost; verbosity. Albeit it’s not true for smart people who code in Scala :D

  • Akka: Integration Tests for Single Node Cluster Sharding

    Multi-JVM tests are the default way of testing an Akka cluster sharding application. But sometimes you just need the sharding functionality where multi-JVM tests are just overkill. I didn’t find any sample or guide describing the best practices for this situation.

  • How I Deploy My Play! Apps

    I don’t use services like Heroku as deployment infrastructure. They are amazing but I have my reasons.

  • Installing RVM on Ubuntu Desktop

    RVM installation is clearly described at, but I’ve always had problem loading the Ruby after installing RVM.

  • Why Functional Programming?

    There are plenty of reasons why functional programming are becoming mainstream, but I came across the one I think is the most visible.

  • Hello World (with the help of the community)

    I’ve always liked to have an international blog. I’m not very fluent in English and I’m afraid to share my experiences in English in the fear of making mistakes.

subscribe via RSS