My Bookmarks

Scala Native relies on LLVM as its primary optimizer as of the latest 0.3.7 release. Overall, we’ve found that LLVM fits this role quite well, after all, it is an industry-standard toolchain for AOT compilation of statically typed programming languages. LLVM produces high-quality native code, and the results are getting better with each release.

In this short blog post I will try, in 10 minutes or less, to present what Monix library is and convince you that it is good to know it.

Formerly known as Monifu, Monix is a library for asynchronous programming in Scala and Scala.js

Taken from shapeless' README:

Shapeless is a type class and dependent type based generic programming library for Scala.

To me, Shapeless is a toolkit to leverage Scala's type system at your own profit. You may use it to have more "precise" types, like statically sized list (lists which size is known at compile time), you may also use HList as a better tuple.

More generally, Shapeless can be used to make the compiler work for you, scrape some boilerplate, and gain a little extra typesafety.

The Visitor Pattern is one of the most mis-understood of the classic design patterns. While it has a reputation as a slightly roundabout technique for doing simple processing on simple trees, it is actually an advanced tool for a specific use case: flexible, streaming, zero-overhead processing of complex data structures. This blog post will dive into what makes the Visitor Pattern special, and why it has a unique place in your toolkit regardless of what language or environment you are programming in.

From the article I linked to: “Generics can often seem confusing. How often have you started to solve a problem with generics, only to realize that they don’t quite work like you thought they did? The good news is that there are some simple, foundational concepts that underpin generic variance. And once you understand those concepts, you won’t have to memorize acronyms or resort to trial-and-error - you’ll simply understand how and why they work.”

This link contains the closest thing I can find to Scaladoc for Play Framework helpers like checkbox, form, input, inputDate, inputFile, inputPassword, select, textarea, and more.

This is a decent article about how to start the Mac/MacOS screensaver using a keyboard shortcut (keystroke).

A few notes from the article I linked to:

This post discusses medications used to treat MCAS. Doses listed are taken directly from “Presentation, diagnosis and management of mast cell activation syndrome” by Lawrence B. Afrin. These doses are general recommendations. Medication should always be taken under the direction of a provider who knows you and your case personally.

Anki is a flashcards application with desktop, web, Android, and iOS clients. The desktop and web parts are free.

This is a good resource for JavaFX dialogs and alerts.

Here’s a link to an H2 JDBC database tutorial (just some sample code).

This is a good resource for LibGDX programming on Android.

This page, titled, “How to Make a Kindle eBook from Scratch,” was very helpful for me in the process of creating my new Kindle eBook, which I created from scratch with HTML, CSS, and the other necessary files (OPF, NCX).

If you have a Motley Fool account, this URL shares a nice analysis of iRobot, related to the recent “strong sell” call by Spruce Point Capital.

I was going to write a little application to let me annotate my MacOS screen during presentations, but the Ink2Go product looks like it does exactly what I was thinking. As I’m creating a video presentation, such as when showing how to write some Scala or Android code, I want to be able to draw on the screen, such as writing text, arrows, circles, and boxes to highlight parts of the screen. Ink2Go looks like what I want.

This is a good guide for things to be aware of when creating Mac/macOS applications using Java. It mostly includes a lot of information about the library/classes.

This is a good article that shows several different ways to handle background tasks in Android, including

  • AsyncTask
  • IntentService
  • Loader
  • JobScheduler
  • CountdownTimer
  • Java threads
  • Android HandlerThread
  • FutureTask
  • Java Timer

From the article: “The reality is that Go’s GC does not really implement any new ideas or research. As their announcement admits, it is a straightforward concurrent mark/sweep collector based on ideas from the 1970s. It is notable only because it has been designed to optimise for pause times at the cost of absolutely every other desirable characteristic in a GC.

This link has the source code for the online book, The Busy Coder's Guide To Advanced Android Development.