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.
- algebra
- means completeness and balancing, from the Arabic word الجبر
- dflow
- is a minimal Dataflow programming engine
- flow-view
- is a visual editor for Dataflow programming
- games-of-life
- is a Mathematical solution of any Game of Life variation
- iper
- Hypergraphs for breakfast
I started using React in early 2016, when I discovered Redux and I thought: this is the right way to do it.
- react-clipboard-icon
- is an svg icon from clipboard.js site assets, packaged as a React stateless component
- react-intl-inject
- react-intl helper, can translate props easily
- trunx
- Super Saiyan React components, son of awesome Bulma
- zeroconf-redux
- is a minimal React/Redux dev stack, on top of browserify + budo
- SVGx
- is a universal SVG renderer
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
- geohash-neighbours
- finds the cells near a given geohash
- https-scheme
- redirects window location to HTTPS scheme
- 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
- load-html
- include HTML code inside HTML pages using a custom tag load-html to load content dynamically
- 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
- 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
- os-icons8
- is a small set of operating system icons, distributed by icons8
- pdsp
- saves bytes in your build with a shortcut to event preventDefault and stopPropagation
- prime-number
- is a recursive function to check if a number is prime (and a benchmark to test how slow it is :)
- read-file-utf8
- reads content from file using utf-8 encoding
- 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
- trend-steps
- reduces math series to a square curve of its trend steps
- 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
- writes content to file using utf-8 encoding, nested folders will be created if they do not exist yet
- 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
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.
- dir
- create a folder and enter into it
- gh-clone
- GitHub clone repo util
- home
- All my *nix home versioned, not only dotfiles
- yyyymmdd
- uses cal Unix program to print out the days in a month
- 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
- 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