Scala Books: The Ultimate Guide for Aspiring Scala Developers Scala, a powerful language for functional programming, offers a unique blend of object-oriented and functional programming paradigms. Whether you’re a beginner or an experienced developer looking to delve deeper into Scala, the right resources are crucial. Here’s my handpicked list of books, each serving a specific purpose in your Scala learning journey.
Essential Scala Essential Scala: Ideal for beginners, this short book provides a concise introduction to Scala.
[Read More]
Achieve a Computer Science Bachelor's Degree Online with MOOCs
Achieve a Computer Science Bachelor’s Degree Online with MOOCs August 31, 2023
In the ever-evolving world of technology, the demand for skilled software engineers continues to soar. But what if I told you that you could gain the knowledge equivalent to a computer science bachelor’s degree, all from the comfort of your home and without breaking the bank? Yes, it’s possible through a carefully curated list of Massive Open Online Courses (MOOCs).
[Read More]
How to deploy a vite service in heroku
There are many suggestions online to use the heroku-buildpack-static .
The problem with this is that it is deprecated and will not work with the latest heroku stacks.
In their readme file they suggest to use an NGINX buildpack, but it looks like an error prone process.
I have figured other another way just by using the heroku/nodejs build pack
You can start by setting the heroku/nodejs in your application
[Read More]
Bower integration in play
If you want to use a package.json in your play application add
the webjars dependency a package.json in root and the following in sbt , so you can access the javascript libraries. val bowerPath = SettingKey[String]("bower-path", "where bower is installed") lazy val bowerGenerateTaskImpl: Def.Initialize[Task[Seq[File]]] = (bowerPath, baseDirectory, streams) map { (bower, base, s) => try { Process("npm" :: "install" :: Nil) ! s.log Process(bower :: "install" :: "--allow-root" :: Nil, base) !
[Read More]
Lessons learned from Pieter Hintjens
The Confessions of a Necromancer is a professional road trip, written by Pieter Hintjens for his fellow programmers. He shares all the lessons that he learned in his life.
Some of them are :
Most of the time, most large software projects fail, and this is still true in 2016. The very notion of individual intelligence is a dangerously simplified myth. Technology is a slave to personality. You need to follow the money, and understand how it flows.
[Read More]
Polymer
Useful resources
Architecture webcomponents
Instant Loading Web Apps with An Application Shell Architecture this article describes the application shell
Progressive Web Apps
What is a Service Worker
Promises
PRPL pattern
Service Worker Precache
Service Worker resources
The offline cookbook this is useful when working with Service Worker Precache to provide the best experience for your users. Service worker lifecycle is explained in the second chapter of the udacity course Offline Web Applications which explains how to use IndexedDB & Service Worker
[Read More]
Akka Best Practices
Don’t share mutable state among actors
Do not close on the sender
Do not close over an actor’s context
Do not use the scheduler with the Runnable trait
Do not declare one actor within another.
Never pass an actor’s this reference into Props
Actors do not stop automatically when no longer referenced, every Actor that is created must also explicitly be destroyed. The only simplification is that stopping a parent Actor will also recursively stop all the child Actors that this parent has created.
[Read More]
Free Monads
Resources on learning free monads
Here are some resources about the free monad in scala . At some point I need to write summaries for each entry :)
Blog posts Free Monads I had bookmarked this sometime ago and seems to be very to the point without a lot of theotitical analysis
Free Monad - Cats Documentation by Pascal Voitot
herding cats - Free monads by Eugene Yokota
Deriving the Free Monad by Noel Welsh
[Read More]
Shapeless: Introduction resources
Where to start if you want to learn shapeless
Recently I decided to have a better look at shapeless, the generic programming library for scala. In the previous couple of years I had bookmarked several links and have recently read all of them . In this blog post I present the most useful ones for someone who want to be introduced to the library.
The following blog posts are introductory to shapeless. Basically they are a smooth introduction to shapeless , something to warm up
[Read More]
Shapeless : Computing deltas
A real life example
This is the code and some personal notes from the Shapeless? - Easy! talk where Valentin Kasas explains in a great way an advanced example of a real life use case (with slides).
Computing deltas Imagine we want to be able to determine what are the difference between two objects of the same type For example, we need to know what have changed in our DB since the last backup We need to be able to compute such deltas over a wide variety of classes, that are unrelated Of course, doing this by hand for each and every class is not an option Our diff representation
[Read More]