react bash golang perl docker nodejs

My first experiment with NodeJS was on August 2012: I wrote a prototype of a multiplayer game with Socket.io and I was amazed by its power and simplicity. Also, npm was a step forward at that time in the world of package management. Nowadays I still appreciate this concept: using one language for backend and frontend. Few years later there was a quantum leap in the JavaScript ecosystem, the language evolved and the transition was handled in the best way (IMO). In general, I consider JavaScript the lingua franca of IT: if I write an algorithm in JavaScript almost any developer can read it and translate it in any other language.

I started using React in early 2016, when I discovered Redux and I thought: this is the right way to do it.

I wrote some NodeJS micro packages.

algebra-group
defines an algebra group structure
algebra-cyclic
creates a space isomorphic to Zp: the cyclic ring of order p, where p is prime
algebra-ring
defines an algebra ring structure
aws-lambda-res
is a tiny helper to create a response object for AWS Lambda with Proxy integration
bitstamp-kiss
is a Bitstamp API v2 wrapper with the joy of kiss literate programming
cayley-dickson
implements Cayley-Dickson construction to produce a sequence of algebras over a field
country-isocode2
bare list of country codes
dextop
provides a minimal window manager in your browser
dot-editorconfig
creates a .editorconfig file in your package dir
fa-svg-icon
free Font-Awesome SVG icons
flow-chart
is a collection of React components to draw an algorithm, workflow or process diagram
geohash-neighbours
finds the cells near a given geohash
i-am-not-a-robot
cause I can play games
indices-permutations
is a recursive reducer to all permutations with repetitions of multi dimensional array indices
inlined
throws if some module body length exceeds *max_inlined_source_size* number of chars
laplace-determinant
recursive determinant computation using Laplace expansion
mdconf-from
parses a markdown file and returns a configuration object
mobius-transformation
implements beautiful geometric transformations that preserve angles and circles
matrix-multiplication
implements row by column multiplication
markdown2code
extracts code blocks (surrounded by triple backticks) from markdown and streams it out as JSON
multidim-array-index
Computes index of multi dimensional array
numerology
converts a string to a number
not-defined
checks if foo is not defined, i.e. undefined, null, an empty string, array, object or NaN
npm-start-command
creates a file you can double click to launch npm start
OLAP-cube
is an hypercube of data
prime-number
is a slow recursive function to check if a number is prime (and a benchmark to test how slow it is :)
read-file-utf8
shortcut to fs.readFile or fs.readFileSync
regex-weburl
Regular Expression for URL validation, packaged from https://gist.github.com/dperini/729294
standa
JavaScript Standa•Rd Style minus R{eact} d{evelopment} stuff
static-props
defines static object attributes using `Object.defineProperties`
strict-mode
enables strict mode in your package
SQL-tokenizer
analyzes SQL and converts it into a list of tokens
SQL92-JSON
can stringify a JSON into an SQL and viceversa parse an SQL and serialize it into a JSON
SQL92-keywords
is the list of reserved words in SQL92 specification
SQL92-operators
is the list of operators in SQL92 specification
tensor-contraction
implements tensor contraction on a single mixed tensor
tensor-product
computes the product of tensors
three-orbitcontrols
is the three.js OrbitControls from official repo examples
tris3d
is a 3d tic tac toe algorithm powered by Z3 space
tris3d-ai
tris3d surrogate player
tris3d-canvas
is a placeholder to play tic tac toe in 3d
volatility
is the degree of variation of a trading price series over time
write-file-utf8
shortcut to fs.writeFile
x3dom-livereload
x3dom boilerplate with livereload server
y-combinator
is one of the fixed-point combinators in untyped lambda calculus

The following packages are not in the npm registry.

npm-config
my npm init defaults
redux-todoapp
is an example React/Redux app

I like the concept of reproducibility: I did few experiments with Docker. It is a great tool, but sincerely I still use more Amazon AMIs.

fake-aws-redshift
is a docker image with a PostgreSQL 8.0.2, i.e. compatible with AWS Redshift

I am addicted to CLIs and the shell. I wrote few tools and my opinion is that a bash script is still the cheapest and fastest way to automate a task.

bb-clone
Bitbcuket clone repo util
dir
create a folder and enter into it
gh-clone
GitHub clone repo util
home
All my *nix home versioned, not only dotfiles
dotsoftware
build & install software locally
yyyymmdd
uses cal Unix program to print out the days in a month
KLP
is a minimal literate programming boilerplate

Probably Golang is not the definitive language, but, for me is perfect. First of all, a compiled language was missing in my reportoire. Deploying or distribute a single executable is a big win. I also like the simplicity of the language: yes, only 25 keywords actually attract me. I really like the fact that it handles concurrency and it is multicore out of the box: it relaxes me, I can focus only on the algorithm... but I confess that, as a mathematician, I felt in love with Golang cause it has builtin complex number data type. Wow!

m2c
go for 2x2 complex matrices
primes
is a list of prime numbers
s2
go for the Reimann sphere

When I started working in IT in 2005 my boss said: you need to learn Perl. Big respect for the camel, I learned a lot from this language and its community. It is still my preferred language for string manipulation and parsing.

App-cloc-pm
CPAN packaging of the famous CLOC utility
Task-BeLike-FIBO-pm
Leonardo Pisano a.k.a. Fibonacci (Bonacci's son)
Sweet-Home-pm
HomeDir, File, Path and other sweet classes
netvision
IPv4 space data scanner