A GUI toolkit for Common Lisp

What is McCLIM?

McCLIM is a FOSS implementation of the Common Lisp Interface Manager specification, a powerful toolkit for writing GUIs in Common Lisp. It is licensed under the GNU Library General Public License.

You can access the McCLIM manual draft PDF if you want, but it’s still a work in progress. To reach the developers you may either write to the mailing list or on the #clim irc channel.


  • Mature yet modern CLIM II protocol implementation
  • Extensible GUI toolkit for applications
  • Sophisticated interface manager for Common Lisp
  • Portable between various Common Lisp implementations
  • Robust solution for creating end-user applications


Some external tutorials for CLIM may be found here:


Machine Learning for Humans

Simple, plain-English explanations accompanied by math, code, and real-world examples.


Part 1: Why Machine Learning MattersThe big picture of artificial intelligence and machine learning — past, present, and future.

Part 2.1: Supervised LearningLearning with an answer key. Introducing linear regression, loss functions, overfitting, and gradient descent.

Part 2.2: Supervised Learning IITwo methods of classification: logistic regression and SVMs.

Part 2.3: Supervised Learning IIINon-parametric learners: k-nearest neighbors, decision trees, random forests. Introducing cross-validation, hyperparameter tuning, and ensemble models.

Part 3: Unsupervised LearningClustering: k-means, hierarchical. Dimensionality reduction: principal components analysis (PCA), singular value decomposition (SVD).

Part 4: Neural Networks & Deep Learning. Why, where, and how deep learning works. Drawing inspiration from the brain. Convolutional neural networks (CNNs), recurrent neural networks (RNNs). Real-world applications.

Part 5: Reinforcement LearningExploration and exploitation. Markov decision processes. Q-learning, policy learning, and deep reinforcement learning. The value learning problem.

Appendix: The Best Machine Learning ResourcesA curated list of resources for creating your machine learning curriculum.


How to make complex requests simple with RxJava in Kotlin

It is a common problem in Android development when your API is not sending you exactly the same data, what you want to show in your views, so you need to implement more complex requests. Possibly your app needs to make multiple requests, that wait for each other, or call multiple requests after the previous one finished. Sometimes you even need to combine these two approaches. This can be challenging in plain Java and will often result in unreadable code, what is also painful to test.

Today I’m going to show you in a simple example how this can be achieved in a clean way using RxJava. The example is written in Kotlin, what makes the code more concise and easy to read. If you are completely new to RxJava or Kotlin, I suggest you catch up on the basics. There are some great resources here as well.


Up  – Deploy serverless apps in seconds

Last year I wrote Blueprints for Up, describing how most of the building blocks are available to create a great serverless experience on AWS with minimal effort. This post talks about the initial alpha release of Up.

The TL;DR was to run your “vanilla” HTTP server inside of Lambda on a unprivileged port, and relay requests to it, so that you don’t have to write code specifically targeting Lambda or other platforms.

Roughly a month ago I decided to start working on it over at apex/up, and wrote the first small serverless sample application tj/gh-polls for live SVG GitHub user polls. It worked well and costs less than $1/month to serve millions of polls, so I thought I’d go ahead with Up and see if I can offer open-source and commercial variants.

The long-term goal is to provide a “Bring your own Heroku” of sorts, supporting many platforms. While PaaS is nothing new, the serverless ecosystem is making this kind of program increasingly trivial, however AWS and others often suffer in terms of UX due to the flexibility they provide. Up aims to abstract platform internals away and provide a user-friendly solution.


Firebase Cloud Functions with Typescript and Webpack

Recently Firebase launched Cloud Functions–a way to run your code on their servers. It’s a game changer! Now you can run code that you trust to manage many parts of your Firebase Project.

The downside of Cloud Functions is that it only supports NodeJs, forcing you to use Javascript. Fortunately, we can mitigate some of the issues that Javascript brings with Typescript.

In this post we’ll build Firebase Cloud Functions using Typescript and Webpack.


Tensorflow tutorials and best practices

  1. Tensorflow Basics
  2. Understanding static and dynamic shapes
  3. Broadcasting the good and the ugly
  4. Understanding order of execution and control dependencies
  5. Control flow operations: conditionals and loops
  6. Prototyping kernels and advanced visualization with Python ops
  7. Multi-GPU processing with data parallelism
  8. Building a neural network framework with learn API
  9. Tensorflow Cookbook