Cross platform GUIs and Nim macros
A while ago I read John Novaks great rant on how hard and annoying it can be to do something as simple as extending a cross-platform application with the simplest of GUIs. Or as he puts it:
A while ago I read John Novaks great rant on how hard and annoying it can be to do something as simple as extending a cross-platform application with the simplest of GUIs. Or as he puts it:
Are you arguing that undefined behaviour should not be a thing in, e.g., C? It sounds like you’re claiming that the fabled sufficiently smart compiler could take code in a C-like language with no UB, and emit something equivalent to what a C compiler would produce given equivalent input in C that correctly avoids UB…
I believe that to really learn a programming language, I have to get involved in a project. Getting an overview of the Elixir language was…
For better or worse, we count lines of code. We (hopefully) feel a little dirty when we do it, because it's a flawed metric. But we do it . We do it on large codebases and small code snippets . Even badass hacker David Nolen does it .
Time-traveling in the execution history of a program during debugging enables a developer to precisely track and understand the sequence of statements and program values leading to an error. To provide this functionality to real world developers, we embarked on a two year journey to create a production quality…
Today's article is a short one. Not because Singular Value Decomposition (SVD) is not important, but because it is so ubiquitous that we'll touch it in other...
The relative performance of C and C++ is the stuff of folk legends and Very Strong Opinions. There are microbenchmarks that can prove differ...
In this post I will walk you through how to teach a computer to master a simple video game using the q-learning reinforcement learning algorithm. We will implement the algorithm from scratch in Ruby without the use of external gems. To enable us to illustrate the inner workings of the algorithm we will be teaching […]
In a previous blog post we discussed a brief history of the select(2) syscall . The article concludes that some I/O multiplexing was necessary to do console emulation, games and non-trivial TCP/IP applications.
These are notes I’m creating for myself as I explore functions \(f\) that can be written as a sum \(f = g_1 + g_2\) where \(g_1\) and \(g_2\) are shifted and possibly reflected versions of each other, both strongly resembling the original function \(f\) . When a function \(f\) has these properties, I informally call…
I myself was not on the famous C3 (Chrysler Comprehensive Compensation System) project in 1996-2000 that is pivotal to ‘Extreme Programming’ (XP). That project used Smalltalk, and team contribution was provided by Object Technology International’s ENVY version control system. I wanted to know more about that so I…
The Word2Vec model has become a standard method for representing words as dense vectors. This is typically done as a preprocessing step, after which the learned vectors are fed into a discriminative model (typically an RNN) to generate predictions such as movie review sentiment, do machine translation, or even…
This week, I’ve been working on an application that sets up IPsec connections. PF_KEYv2 is the standard interface for configuring IPsec. PF_KEYv2 is widely-available; even systems with more advanced IPsec stacks (like XFRM on Linux) provide a PF_KEYv2-compatible wrapper. I want my application to work on OS X and…
In 1996, Paul Kocher published a novel attack on RSA, specifically on RSA implementations , that extracted information on the private key by simply measuring the time taken by the private key operation on various inputs. It took a few years for people to accept the idea that such attacks were practical and could be…
Little Lisp is an interpreter that supports function invocation, lambdas, lets, ifs, numbers, strings, a few library functions, and lists. I wrote it for a l...
If you have never heard about functional programming before, I’ll have the honor to instill in you my view on it. If you have, you might know that it’s usually defined by some of …
Explore the Qt Blog for the latest insights on e.g. Qt Creator, your go-to source for cross-platform development tips and updates.