OpenCascade.js is a port of the amazing CAD library OpenCascade to Javascript. It’s the tool that powers CascadeStudio and CadHub.

Nice, but… what does that mean?

It means you can build models for a 3D printer or CNC inside your browser using code and cutting-edge technology.

Kurt Hutten has a nice article here about the benefits of code for creating 3D models (and a nicely curated software list for that). Check that out.

Getting started

Open CadHub or CascadeStudio, that’s it. No need to download or install anything.

Draw and extrude

Let’s draw something in 2D first then extrude it into the third dimension. Delete…

Here’s how you create a regexp in Racket:


That suffers from the “double backslash” curse that plagues every language where regular expressions are second class citizens.

I’d like to fix that and bring them to the first class, like this:


For that, I need a reader macro. It controls how parsing is done in Racket. I’m learning how to do it and I’d like to share what I’ve learned so far.

First, let’s create a new package:

> raco pkg new regexp-reader

Then, let’s link the new project as a locally installed package:

> cd regexp-reader > raco…

Generate sequences that have their elements computed as you go seems challenging, but fear not, we can tackle it!

“Oh… May I help?”*

So, I stumble upon this when I was trying to solve day 10 of Advent of Code 2020 (my code is here, but I’m laaaaate!). I’d like to get sequences of consecutive elements that meet some criteria. For example, getting all consecutive odd numbers in the list '(1 3 5 6 7 8) will return '((1 3 5) (7)).

I was pretty sure that exists, but I couldn’t find it. So I build it myself.

First, I’m using the excellent collections-lib

A little note to myself on “why graph models” for data science.

Machine learning is dominated by statistical models. And that’s for a good reason, they perform quite well. Amazingly well, to be honest.

Graph models don’t get much attention, except maybe in the Neo4j community and for fraud detection. Here are 3 points where they shine over statistical models.

1 — It’s difficult for a statistical model to use signals with a small sample. A single phone number is associated with a few people. …

CRUD is a very well known acronym for software. It stands for Create, Read, Update, and Delete and they are the basic operations you need in any system that stores data.

“CUDLS” a better acronym?

When talking about user-interface, the “read” part is usually broken in two: list the records, and show a detailed view of each one. As far as I know, Rails popularized that convention, and several frameworks have adopted it.

So, this is a note for me, but it might be useful for others: let’s use “CUDLS” (cuddles?) as an acronym for that interface operations and let “CRUD” stand for the storage operations.

Spacemacs has what we love from VI, but with batteries included and with sane defaults.

Silhouette of person in the middle of a heart shape firework at night
Silhouette of person in the middle of a heart shape firework at night
Love is in the… space

The idea here is to show some concepts to help understand why a lot of people like Spacemacs and VI editing style. Then give you some helpful commands to play with.

So, here are the two concepts to understand why we ❤️ Spacemacs:

  • Write in short bursts. We spend most of the time moving around and copying/deleting/changing text. When we write, we do it in short bursts and then go back to navigation and edition.
  • Operate it as an instrument. The commands are composable, so…

I’ve been toying with Scheme for quite some years, first with Racket and recently with Guile. I was never a heavy user of them, but I learned a trick here and there. It was not until today I realized that Scheme is the “Linux” of the programming languages (I’ll explain that soon).

Image by Robert Waghorn from Pixabay

Pimp my Scheme!

I was just playing again with the excellent book “Maze for Programmers” from Jamis Buck (ten minutes ago, to be honest) when I commented to my wife:

_ You know what? I don’t have fun like this since I learned Ruby for the first time.

My English was never great, but as I’m going to apply to the IELTS I need to polish all rough edges and, of course, learn more.

One thing that bothers me is the use of prepositions, I never get that right: “on”, “in”, and “at” are a big source of confusion, as “to”, “for”, and “by”. So, I wanted to trick my future self into learning those as I know he’s lazy. The solution? To create a small game I can play anytime because the boring task becomes fun.

I created a bookmarklet (yeah, yeah, bookmarklets are dead, I know!)…

PCA is a technique used mainly with 3 goals:

  1. Deal with correlated features (a weakness of Linear Regression).
  2. Reduce dimensionality (number of features) without losing too much information.
  3. “See” a high dimension model in a 2D scatter plot.

It’s not difficult to find articles about it all over the internet, but I’m struggling to get an intuitive understanding of PCA. Almost everything I found tries to explain the linear algebra behind it, but don’t give too much insight (at least for my non-mathematical mind).

So, here I try to understand what it does and to give a non-mathematical explanation. Of…

I was trying to get a better understanding of the “C” regularization term in SVM with a Gaussian kernel. When I tried some low values, I got VERY weird results (wait for it…)

Here is an animated gif with the problem:

“predict” and “decision_function” methods

It’s a dataset from this nice Udemy course. The task is to predict a buyer for an SUV based on its age and estimated salary.

The gif shows the behavior of the SVC using “predict” and “decision_function” methods. The background is the prediction and the points are the training values. So, what’s wrong?

  1. For low values of “C”, everything…

Ronie Uliana

Just a common guy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store