-
August throughts
Programming is like writing.Code must be easy to read, and understand. For this reason I do not like very much technologies like:
- Aspect oriented programming
- SQL Triggers
- Web filters
- Last minute event listeners (like the one check before an entity save and 'patch' some data on the fly or launch additional events).
Side effects are the evil of programing in my humble opinion because can create unexpected bugs.
Read More -
I will admit it right now: I like to small talk, even at work.
Italian meetings are time-stealer nightmares.
So I have developed three simple rules, for my remote work:
- Pretend and provide a meeting Agenda or at least a meaningful subject
- Space out meeting with at least 15 minutes between them, to be able to prepare them
- Try to be very time boxed, and alert when 15 minutes remaining (for Italian guys, 30 minutes :) If you present, be very clear and ask confirmation, because guys sometimes does not listen to you or play with web browser. Speak slowly if needed.
-
I the last years I decided to put a stop on my RasperryPI2 and have a mini pc always on.
It is a very slow centrino with 2 CPU threads and 8Gb of RAM, a huble micro SATA SSD and works great with Debian Linux. I use it as a benchmark to understand if a project is worth studying: if the CPU Load stay low, the code is very well written.
Read More -
A friend of mine asked some insight on how to harden a Gitea server on Internet. Gitea is a web application for manging git repositories.
Gitea is quite compact and is less feature-rich than GitLab, but it is light and can manage issues, wiki and users.
Read More -
On these days I stumbled upon Forth, a 1970 programming language which is quite similar to HP48 internal programming language.
Like the HP48 language, Forth uses RPN, it is stack based and have some success for being tiny and easy to implement.
For a 6502 Forth compiler you can refer to https://github.com/piotr-wiszowaty/foco65
Read More -
Do you STILL love taking notes by hand? I have created different types of composition notebook, even retro-style one, inspired by MOS6502, with Sprite Editor sheets, and some nice goodies. Give them a try!
Read More -
Do you STILL love taking notes by hand? I have created different types of composition notebook, even retro-style one, inspired by MOS6502, with Sprite Editor sheets, and some nice goodies. Give them a try!
Below a selection of screenshot from my composition notebook, called The Retro Notebook: you can click on the image below to get a larger one.
Read More -
Bullet points:
- 1979: Unix V7 Introduced the chroot command to isolate the filesystem a process "access" to.
- Various technology was introduced up to 2006, like Virtuozzo (which patched Linux in a proprietary ways)
- 2006: Process Containers Launched by Google in 2006 was designed for limiting, accounting and isolating resource usage (CPU, memory, disk I/O, network) of a collection of processes. It was renamed “Control Groups (cgroups)” a year later and eventually merged to Linux kernel 2.6.24.
- 2008: LXC LXC (LinuX Containers) was the first, most complete implementation of Linux container manager. It was implemented in 2008 using cgroups and Linux namespaces, and it works on a single Linux kernel without requiring any patches.
- 2013: Docker Docker used LXC in its initial stages and later replaced that container manager with its own library, libcontainer. Docker offered a way to configure and manage containers, i.e a standard de-facto for this technology. As you see Docker was based on cgroups and LXC, seven-years old technologies
- On September 2014 Google published the first release of Kubernetes
- In 2015 Docker, CoreOS and others founded the Open Container Initiative's (OCI). K8s does not need docker anymore to work, but Docker traction is still strong.
References:
Read More -
Today, we are excited to release optimizations to Core ML for Stable Diffusion in macOS 13.1 and iOS 16.2, along with code to get started with deploying to Apple Silicon devices. Rif e commenti su hacker news
Read More -
NILFS is a log-structured file system supporting versioning of the entire file system and continuous snapshotting, which allows users to even restore files mistakenly overwritten or destroyed just a few seconds ago.
Discussion on Hacker NewsNILFS was developed by NTT Laboratories and published as an open-source software under GPL license, and now available as a part of Linux kernel.
Read More -
I am studying a bit of Reactjs because I got excited with Next.js.
After reading the basic tutorial, I got a bit disappointed on how to manage forms: cit
ing react doucmentation “form elements naturally keep some internal state”. So the tutorial seems to suggest an approach to keep in sync the form state with the react state object. This article cast some lights on the two ways to manage forms in reactjs: and explain the Controlled and Uncontrolled options you have.
Read More -
Nice tool to test:
Git hook scripts are useful for identifying simple issues before submission to code review. We run our hooks on every commit to automatically point out issues in code such as missing semicolons, trailing whitespace, and debug statements. By pointing these issues out before code review, this allows a code reviewer to focus on the architecture of a change while not wasting time with trivial style nitpicks.
As we created more libraries and projects we recognized that sharing our pre-commit hooks across projects is painful. We copied and pasted unwieldy bash scripts from project to project and had to manually change the hooks to work for different project structures.
Read More -
My true personal opinion based on what customers asks and what co-worker uses:
- docker , docker-compose is still the dev winner
- Podman is rising but it has no extra feature, because docker support the rootless mode too.
- Ignite – Use Firecracker VMs with Docker images (github.com/weaveworks) Super-fast VM based on container are gaining traction. Driving force are cloud providers, but this idea can eventually be helpful for some service providers.
- K8s + Helm keep going K8s is "the" abstraction layer for Cloud providers, to some extent. K8s offers tons of extension points, for automation tools and for cloud providers. The only downside is its heavy lifting: for very simple deploy (less than 3 physicals nodes) it is still an overkill in pricing and management overhead. Also it needs at least a speedy 2-Core CPU to work. Cost rising due to inflation can have a negative impact on "Fat"-K8s solution.
- Jenkins pipeline sucks It is sad to say, but GitHub actions & similia (like GitLab pipelines, Bitbucket pipelines and Cloud provider similar services like AWS CodePipeline) are a winner. Jenkins declarative pipeline are elegant, but its declarative language depends on Jenkins plugins, so you must keep track of them. Also, it is frequent to build groovy library on top of it And when you need to upgrade Jenkins from time to time, you face a lot of refactoring on pipeline syntax, and it is increasing difficult to estimate.
- docker , docker-compose is still the dev winner