My Bookmarks

“Design patterns are a surefire way to make your projects scalable, maintainable and optimised. At Google I/O 2018, Google introduced the BLoC pattern. It took a bit of time for me to understand the concept totally and to be able to actually use it in one of my projects. To help my fellow developers out, I detailed below my process of integrating BLoCs in the applications that I develop. I hope sharing this can help other developers understand the pattern easily.”

Here is a collection of links related to performing a Github pull request, including a few different versions of that workflow:

A good link on where to find good fonts for games, arcade games, etc.

I just started working with TypeScript, and here are some good links:

And an unrelated link on React:

The URL I linked to is a story about how to convert a Drupal 8 website into a static website. What it comes down to is, if you’re just running a blog and you don’t care about comments, why bother dealing with all the ugliness of maintaining a Drupal 8 website?

RxJava's Observable class has plenty of methods that can be used to transform the stream of emitted items to the kind of data that you need. Those methods are at the very core of RxJava and form a big part of it's attraction. But there are other methods, that do not change the stream of items in any way - I call those methods side effect methods.

Butter Knife is an Android library that can help you get rid of all those ugly findViewById calls. Android Data Binding may be a better solution, but at the moment I prefer the tag/annotation approach of Butter Knife.

If you want to automatically generate getters and setters for your Java JavaBean classes, Project Lombok has some annotations that you can use.

I learned about the Android Dexter project today, which simplifies the process of requesting permissions at application runtime.

At a Meetup in Boulder, Colorado last night I learned about the Jupyter Notebook project.

As a brief note to self, these were the two best Jenkins tutorials I found in early 2019:

The first one shows how to run Jenkins with Docker, and the second one shows how to build a Java/Maven/Git project.

This tutorial on how to use Jenkins with Scala and SBT was also helpful:

A friend sent me this link about computer latency.

Kaleidoscope is a Scala pattern-matching library created in a string interpolator style.

It turns out that converting AsciiDoc to HTML without including a bunch of undesired CSS is a problem, and converting AsciiDoc to Markdown is also a problem. The page I linked to shows the best way I’ve found to convert AsciiDoc to Markdown, which can then be converted to CSS-free HTML. In case that page ever disappears, the basic commands are:

Install pandoc and asciidoc:

sudo apt install pandoc asciidoc

Convert asciidoc to docbook:

asciidoc -b docbook foo.adoc

Convert docbook to markdown:

From the URL:

Q: Scala makes a big deal about how what seem to be language features are implemented as library features. Is there a list of types that are treated specially by the language?

A: The following types are crucial to Scala's type system. They have an influence on how type checking itself is performed.

It’s interesting that you can do some research on this by looking at Definitions.scala.

I haven’t read the article I’ve linked to yet, I’m just saving it here for future reading.

The project I linked to demonstrates a complicated SBT build.sbt file for a multi-project build.

If/when you need to know what keys are available in a Scala SBT build.sbt file, you can find them all listed in the Keys object. At the current moment, here’s the Scaladoc for the SBT Keys object.

Note that the first two SBT keys you’ll probably see are name and scalaVersion.

From the URL I linked to, “fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.”