Building Finite State Machines with Python Coroutines
Finite State Machine is a mathematical model of computation that
models a sequential logic. FSM consists of a finite number of
states, transition functions, input alphabets, a start state and end
state(s). In the field of computer science, the FSMs are used in
designing Compilers, Linguistics Processing, Step workflows, Game
Design, Protocols Procedures (like TCP/IP), Event-driven
programming, Conversational AI and many more.
If you have multiple computers and you subscribe to RSS
feeds - which you probably do,
it would be great if you could read the feeds from all your
computers and have the feeds’ read state synchronized.
Tiny Tiny RSS runs on
a server, aggregates your feeds, shows them with a web interface and
exposes API for clients - such as
elfeed - to consume.
The daughter of a U.S. Senator is monitoring her social media
presence when she finds a picture of herself on a strange blog. And
there are other pictures . . . of the children of other influential
Washington politicians, walking or standing outside their schools,
each identified by name. Surrounding the photos are texts of vicious
political rants from a motley variety of radical groups.
It's obviously alarming--is there an unstable extremist tracking the
loved ones of powerful politicians with deadly intent? But when the
FBI is called in, there isn't much the feds can do. The anonymous
photographer can't be pinned down to one location or IP address, and
more importantly, at least to the paper-processing bureaucrats, no
crime has actually been committed. With nowhere else to turn,
influential Senators decide to call in someone who can operate
outside the FBI's constraints: Lucas Davenport.
In the afternoon I started in Masked
the 30th Prey novel by John Sandford. As I have enjoyed the
other books in the series a lot I expect another great.
Raku vs. Perl – save 70%
Having hit rock bottom with an ‘I can’t understand my own code
sufficiently enough to extend/maintain it’, I have been on a journey
to review the perl5 Physics::Unit design and to use this to cut
through my self made mess of raku Physics::Unit version 0.0.2.
A few months ago, I read a very interesting article that contained
some good information about a Linux feature that I wanted to learn
more about. I won’t tell you the name of the article, what it was
about, or even the web site on which I read it, but the article just
made me shudder.
The reason I found this article so cringe-worthy is that it prefaced
every command with the sudo command. The issue I have with this is
that the article is allegedly for sysadmins, and real sysadmins
don’t use sudo in front of every command they issue. To do so is a
gross misuse of the sudo command. I have written about this type of
misuse in my book, “The Linux Philosophy for SysAdmins.” The
following is an excerpt from Chapter 19 of that book.
In the afternoon I finally finished The Noise
by Ian Whates. I started reading this SF back in
February, so it took me
quite a while. Why? I don't know. The book is not that bad, but I
doubt I will read the sequel even though the book ends in a
dotfiles - Document and automate your Macbook setup
Then I learned that users share their configuration and setup
commands in a Git repository which is called “dotfiles”. At first
glance, a dotfile is a hidden file on a Linux/Unix system,
containing tool specific settings. Common tools are Git, vim, bash
storing their configuration in a dotfile in the user’s home
directory. These dotfiles were enriched with scripts to install
additional software via package managers, and to apply certain
runtime configuration after the work environment was setup the first
Just after 5PM I handed a fresh mealworm pupa, Tenebrio molitor, to
the Psalmopoeus irminia I keep since the 7th of
April. Instead of
grabbing the pupa and disappearing in a flash as on a previous
occasion it stuck around long enough to take some photos.
It currently has turned the end of a cork tube, which I closed with
some dry moss, into its hiding place. While this makes for easy
feeding it also makes for an easy escape, as its near the top of the
terrarium. And in my experience, this specimen can move very fast; so
I have to be careful.
In the above photo you can see the end of the cork tube on the
left. The plants are fake, but the dry moss is real. I like this set
up a lot.
Solving an age-old problem using Bayesian Average
Coming up with an aggregated score is not an easy thing - we need to
crunch a millions of ratings and then see that the score is, in
fact, the true measure of quality. If it isn't then it would
directly affect the business. Today we discuss how we should define
this score in a rating based system; spoiler alert! the measure is
called Bayesian Average.
There's a fascinating link between minimization of quadratic
functions and polynomials. A link that goes deep and allows to
phrase optimization problems in the language of polynomials and vice
versa. Using this connection, we can tap into centuries of research
in the theory of polynomials and shed new light on old problems.
Pandas pivot is an essential tool of every Data Scientist. Some use
it daily and others avoid it because it seems complex. I was in the
latter group for quite a while. After I took the time and did some
research, I felt like I wasted a lot of time writing unnecessary
code. To my surprise, I already knew the main building blocks of
pandas. It is all simpler than it may seem.
The new Facebook design started rolling out for users lately, and I
got it almost two weeks ago. At first, every UI element was a bit
bigger for me but it was a matter of days until I got used to it. In
this article, I will talk about all the interesting things I saw.
The use of mocks in unit testing is a controversial topic (maybe
less so now than several years ago). I remember how, throughout my
programming career, I went from mocking almost every dependency, to
the "no-mocks" policy, and then to "only mock external
None of this practices are good enough. In this article, I’ll show
you which dependencies to mock, and which to use as is in your
In this post we're going to set up Google single sign-on for
SSH. Behind the scenes, we'll use OpenID Connect (OIDC), short-lived
SSH certificates, a couple of clever SSH configuration tweaks, and
step packages. We will set up an SSH
Certificate Authority, and use it to bootstrap a new host and a new
user in our system. While this approach requires more up-front work
than a typical SSH public/private key setup, it comes with a lot of
benefits beyond single sign-on. It eliminates the need for gathering
and shipping and managing authorized_keys files.
I admit that I’d only used a debugger for Go a couple of times; up
until now all my debugging involved writing a new test, or multiple
fmt.Printf statements. This past weekend I decided to finally
learn how to use Delve.
As you might know, I’m writing a book called Compiling to Assembly
I tweeted about my book-writing setup, and there was a lot of
interest in the details of my setup. I’m only halfway through with
writing the book (or, so I think), so my setup will likely to change
as I go. But here it is, anyway.
Things software engineers trip up on when learning Haskell
Let’s say you asked me whether I thought that learning Haskell was
difficult, coming from this background. My answer would be,
“probably not,” as long as you approach things calmly and prepare
yourself to not have skills or concepts transfer over, and to start
over from a blank slate.
Inline SVG refers to the embedded code written within HTML to
generate these graphics in a browser, which will be the focus of
There are many advantages to using SVG this way, including having
access to all the graphic's individual parts for interactivity
purposes, generating searchable text, DOM access for direct edits,
and promoting user accessibility.