2020-11-03
This is a short summary of what I learned while playing around with my Bangle.js Watch. I managed to - add an application to the Bangle.js (with create-bangle-app
) - send accelerometer data over Bluetoot Low Energy - discover & connect to BLE devices with Node.js - read accelerometer data with Node.js (coming from the watch)
2021-12-27
Right now I am reading "Domain driven design distilled" to get started with DDD. Some notes on domain events worth a TIL entry:
2021-10-30
A charlist in Elixir is > a list of Unicode code points
2021-12-27
Right now I am reading "Domain driven design distilled" to get started with DDD. Some notes on aggregates worth a TIL entry:
2022-04-07
Recently experimented with vanilla JS and a basic Web Worker to set up a search for a static website (but not only). In this post I'll go through the basic idea, implementation and examples to set up a blog search for Eleventy, Hugo, Jekyll and other static-site generators.
2021-06-01
Scrolling/Jumping to a specific part of a webpage can be achieved in various ways, and with different bevaviours. E.g. - JavaScript - CSS - HTML
2021-05-22
Today I had an issue with my Manjaro installation, namely I wasn't able to login to my usual desktop environment.
This because plasma
packages were removed accidentally.. I needed to connect to the internet to update some packages. To do this, I found the tool
nmtui
very useful.
2022-04-08
Here I want to describe what I discovered regarding GenServer and their name registration across the BEAM. I'll touch on Process.register/2
and GenServer.start_link/3
.
2021-06-06
Finally found the correct bluetooth configuration to let my bluetooth keyboard connect at login. This allows me to use it on the login screen to enter my password in Manjaro Linux.
2021-05-17
Video:
Why captchas are getting harder CAPTCHA stands for -
Completely -
Automated -
Public -
Turing test to tell -
Computers and -
Humans -
Apart
2021-08-01
https://martinfowler.com/bliki/BeckDesignRules.html by Martin Fowler Developed in the late 1990âs, the rules of simple design are:
2021-10-30
One of the most useful shortcuts on a Mac has to be â
+ <
.
2022-06-05
Had an issue with nvm
not loading node
and npm
. Rightfully in my session I was getting command not found: node
when trying to run node
or npm
. Most likely it's an issue related to my previous installation with brew
..
2021-12-27
Here you can find some resource I found myself useful while learning about Domain Driven Design.
2021-06-03
Yes, you read that right. I'm a JavaScript Developer, and I'm currently navigating the web with JavaScript disabled. WTF? Why? How? But seriously, WHY?
2022-01-18
Here are some tips and tricks I adopt to be more productive in macOS.
2021-03-03
Below you can find resources for getting started with Elixir.
2021-10-27
Today I was setting up my new work notebook, and was about to go the usual flow of creating/configuring SSH keys linked to your GitHub account, through github.com Decided to explore the
GitHub CLI and make good use of some fancy GitHub CLI commands to improve my Git(Hub) workflow.
2021-08-01
Below you'll find a list of homebrew formulas I personally use. I have also attached some more sources for further inspiration.
2021-07-14
VSCode is my favourite code editor, and here are some extensions I use daily and worked very well for my needs. Focus is on Web Development with JavaScript, TailwindCSS, node.js + npm, some personal templating choices and Material skin.
2021-07-14
After installing Big Sur, I was having issues with Spotlight. Applications were not listed and generally it didn't seem to work properly. These are the steps that helped me to fix Spotlight indexing on Big Sur.
2021-06-02
A few months ago I announced that I am bringing back comments to this blog. I got a few comments, but I came to the conclusion that it's not worth it.
2021-01-03
> Webmention is a simple way to notify any URL when you mention it on your site. From the receiver's perspective, it's a way to request notifications when other sites mention it. From https://www.w3.org/TR/webmention/
2021-01-22
Incredible! 70k visitors / 100k pageviews (excluding those with analytics blockers installed) reached this very website in the last year.
2021-05-22
If you're suddenly presented with a different login screen, and can't login to your manjaro installation, here is how you can solve the issue.
2021-05-14
Self-hosting applications and services has never been easier. Here I want to outline how I
deploy and manage my self-hosted services on
Linode with
nginx,
docker-compose and
CloudFlare2021-05-23
In the past month I tried to understand how many visitors on this very site are blocking the Plausible Analytics tracker script. Here are my findings.
2021-04-15
While scrolling through my GitHub feed I noticed a recent fork (5 hours ago) of
a repo of mine. Nothing so weird so far. Out of curiosity I checked if the user wanted to make a decent PR and improve something in the code. The user in fact made a new commit on their fork and added a new file. A new GitHub action. Let me explain what happened.
2021-05-11
Here I want to show how you can create your own 11ty plugin. Below I'm going to illustrate how to lazy load images using Eleventy plugins.
2021-05-11
With Server-sent events you are able to send one-directional events to a web page. Here is an example of how I used this functionality in
Minimal Analytics2021-04-28
Web Analytics & dashboards always fascinated me. This is my approach to a self-hosted, simple web analytics solution. It also helped me to get back to Full stack web development, using a clean and testable approach.
2021-04-06
Insieme a
Fightbean e
Matteo Cavucci abbiamo costruito il
Lean Validation Playbook. Che cos'è? > The Lean Validation Playbook è una raccolta di metodi per testare idee e soluzioni legate alla creazione di prodotti digitali e affronta il lato operativo che manca a molte strategie di business. In questo post descrivo come abbiamo messo online un sito statico con
11ty
e altri strumenti utilizzati per organizzare il lavoro.
2021-05-06
While building
Minimal Analytics I had the need to test a function that was dependent on time. In my case, the function returned the milliseconds until midnight. Here is a simple way to test the function
msUntilMidnight
.
2021-03-24
Found a way to easily connect and disconnect from a network in Manjaro. The solution is having separate connections for your Wireguard VPN or Pi-hole instance, alongside your usual network you connect to.
2021-04-06
This is my approach to a purely client side search feature for static blogs and sites. I am currently using this under
/posts to let readers search through my blog posts. Read more below about how to integrate it in your site.
2021-04-13
Read more about my experience switching the static hosting for this very site. Namely from a combination of AWS S3 + CloudFlare, to only CloudFlare Pages. Will get into hiccups, overall experience and ease of use.
2021-04-05
Wanted to share what apps & services I'm currently self-hosting on my small
Linode VPS2021-03-23
Found the perfect combination for self-hosting my reading stack: Miniflux and Wallabag, you may now kiss!
2021-02-18
A few months ago I requested a data export from my former google account. Especially containing emails and contacts saved in my account. Received a 3GB zip file containing a 10GB mbox file. This is how I managed to read it, either in the terminal (mutt
) or with Thunderbird.
2021-03-10
UTM parameters are used since the dawn of time to track marketing campaigns. Can you use them to reduce dark/direct traffic and label RSS subscriptions?
2021-02-17
Bitcoin, the cryptocurrency invented in 2008 by an unknown person or group of people using the name Satoshi Nakamoto, is trademarked? Is it really?
2021-02-01
This will take you less than 5 minutes to get a private VPN on your own Ubuntu server.
2021-01-30
YES! Comments are back, and I'm curious to see if this can spark some interesting discussions and be worth the hassle of self-hosting the comments.
2020-07-08
Purchased a convenient bundle of "Marketing for Developers"
a few years ago. Time passes, and nearly forgot about the book and course. Priorities. Life. You know, first world problems. Resumed the course, this time for real, and Iâm trying to motivate myself by taking notes about my learnings. Buy it here
Marketing for Developers â advice for programmers, software, and SaaS2021-02-04
These are my notes for learning Elixir.
2021-01-19
First of all,
what is Mastodon? From
joinmastodon.org > it's a network of thousands of communities operated by different organizations and individuals that provide a seamless social media experience
2021-02-01
Setting myself the challenge to learn Elixir, again.
2021-02-09
I want to outline the tools I use to consume textual content, and why it perfectly fits my needs. Who knows, maybe this can be helpful for you too.
2021-01-28
Be it a filter for your dashboard, the date of an article, or a simple pagination number. Please, put that in the URL, ok?
2020-09-01
Time-lapses always fascinated me. So I wanted to create one on my own. Had a spare Raspberry Pi Zero W catching dust, you can purchase one for ~ 25$ and the related Raspberry Pi Camera module for < 20$.
2020-07-17
After using
Brave for almost a year, I can extract some stats from its usage over time: - 152,906 trackers blocked - 2,26GB of bandwidth saved - "2,1 hours saved" (no clue how this is calculated) But more importantly, I made some bucks!
2020-11-06
This is a short summary of my experience while writing a simple HackerNews scraper. As a pure exercise or kata if you want, I tried to apply Clean code, Refactoring and Testing priciples for this small npm module. The task is simple: Get the posts on the front page of https://news.ycombinator.com and parse them.
2020-12-02
At the end of November I came across this Green sustainability challenge for Madrid: https://challenge.greemta.eu/
GreeMta is a project of Bruno Kessler Foundation promoted by EIT Climate-KICâs Cross-KIC Sustainable Cities program together with the municipality of Madrid.
After taking a look at the datasets and the Madrid Open Data Portal, I decided to particate.
2021-01-03
I am switching from Mac to Linux.
This is how the adventure started to find the best linux distro, with a seemless user experience and minimum maintenance.
In the past months I experimented with various distros:
- bare debian
- Pop!_OS
- Ubuntu
- Elementary OS
- Manjaro
I didnât even want to get my hands dirty with bare Arch. To each their own, right?
Read below to read my experience and to which distro I settled using.
2020-11-05
Plausible Analytics
recently introduced Custom props for events (here
the docs). This was the perfect opportunity for me to implement an idea I had long time ago: (Privacy-friendly) Polls with Plausible Analytics! The idea is to use Plausible's Custom props and hook them up to a simple poll component in JavaScript! Let's get started đ
2021-01-02
I hesitated to write this for a while.
Why?
Because it means talking about many failures.
And Iâm just thinking about personal things: not even mentioning the political or healthcare landscape.
Achievements and things learned are small, but still noteworthy and Iâm proud for trying my best.
This â2020 in reviewâ will be in form of a retrospective, namely the 4 questions retrospective".
2020-11-25
In a sentence: Anything about your code and development environment that slows you down.
2020-11-28
Here you can find my notes about the course
"Blogging for business" by ahrefs.com I highly recommend following the step by step course to convert your blogging from a waste of time to a source of potential customers and sales.
2020-11-27
Node.js 15 has been released, with exciting changes and improvements!
2020-11-04
This happened to me recently, and I couldn't understand the cause. "Suddenly", after updating some npm packages, my npm install was "not working". It exited abrubtly with status code 137, with the error message "Killed".
2020-11-18
The Sunk Cost Fallacy is a real pain. It's a cost that you sustained in the past (be it time, money, energy, whatever) and cannot be reversed, cancelled or undone. The fallacy is that yet knowing about the sunk cost of a project, you are often tempted to justify your future investments because of your past (most likely lost) investments. The sunk cost should not influence your future decisions, yet it does. And the outcomes are often delusion, sadness and stress.
2020-11-06
First of all: this is based on the idea of https://simonwillison.net/2020/Oct/9/git-scraping/ and https://github.com/simonw/ca-fires-history The gist: - every 20min - scrape hackernews frontpage items - save them in
hn.json
- commit and push Find the git repository here at
christian-fei/hn-history2020-04-04
After quite a bit of research, I found the full list of
Chromium Command Line Switches.
2020-11-02
Saw the following error when I was trying to install an npm dependency, that had native C bindings:
2020-11-02
Recently I got myself a treat: a Bangle.js Watch! âď¸ It's a pretty awesome, open-source watch based on Espruino and Node.js, and much more! đ¤ Read about my experiments here especially for creating a mouse-watch app with Node.js and Bluetooth Low Energy!
2020-10-17
My notes about the Ted X talk by Gleen Greenwald at Ted X Global 2014. The recording of the talk can be found here on
yewtu.be2020-10-20
plausible.io is my favourite Analytics service out there. Itâs open-source and you have the ability to self-host it.
2020-10-12
If you need to show many list items, one common technique to overcome this issue, is to apply the concept of "virtual scrolling".
2020-10-17
These are my notes about the Interview of Edward Snowden by Ron Paul at the Liberty Report. Video can be found here on
yewtu.be2020-09-24
Learn what a retrospective is, Prime directive and the four questions retrospective
2020-10-11
Read about how I personally get things done.
2020-09-08
Some resources I found while researching the argument of "I have nothing to hide":
2020-10-02
Recently I stumbled upon this paper about
âI've Got Nothing to Hideâ and Other Misunderstandings of Privacy by Daniel J. Solove Do yourself a favor and
read it here2020-09-03
Using an ESP8266 for IoT projects makes me go fast while prototyping. The compact format is perfect for small DIY devices. Wi-Fi connectivity is built-in, and it's super affordable. > The ESP8266 is a low-cost Wi-Fi microchip, with a full TCP/IP stack and microcontroller capability (
wikipedia)
2020-09-12
Doing an experiment with my RPi 4, using it as a small but powerful local server. My current PC is a 10 year old Macbook Pro 13" 2010, which is sluggish sometimes. So I want to offload some heavy tasks (ffmpeg time-lapse creation, long-running tasks and services) to the Raspberry Pi and connect to it either via LAN or Wi-Fi. Below you can read my findings about performance, applications and general issues I encountered and tried to solve.
2020-07-28
## Rough overview | Name | CPU | RAM | |-|-|-| |
Chuwi Herobox | Intel Gemini-Lake N4100 | 8GB LPDDR4 | |
Intel NUC | Intel Core i3 8109U | Max 32GB DDR4 2400 MHz | |
AcePC AK1 | Intel Celeron Apollo Lake J3455 | 8GB DDR3 SDRAM | |
Coofun CJ34 | Intel Apollo Lake Celeron J3455 | 8GB LPDDR4 |
2020-07-21
Struggling with dozens of newsletters in your inbox? (or should I say "Imbox"? </troll>) I use this super simple organizational trick / habit when signing up for newsletters.
2020-07-06
I would like to extract statistics about sub-documents in a collection. E.g. in the form of count
, sum
and average
for each field Let's say you have the following documents in the items
collection: js db.items.find() { "_id" : ObjectId("5f034ce90b15686f5d78baed"), "subDocument" : { "field1" : 42, "field3" : 10 } } { "_id" : ObjectId("5f034ce90b15686f5d78baee"), "subDocument" : { "field2" : 14, "field3" : 6 } } { "_id" : ObjectId("5f034ce90b15686f5d78baef"), "subDocument" : { "field1" : 6, "field4" : 11 } } { "_id" : ObjectId("5f034cea0b15686f5d78baf0"), "subDocument" : { "field3" : 3, "field4" : 26 } }
How would you solve the use-case of aggregating each field of the subDocument
's dynamically? Event without actually "knowing" which fields are contained in subDocument
?
2020-02-05
The alternative title could be Lazy loading images in 900B.
2020-07-18
> To be found, you need to describe yourself well to computers SEO is as important as a good
mailing-list to reach your (potential) audience. Over the past 10 years, I've made some mistakes and also took home some knowledge about SEO for
blogs and
websites. Below I've compiled a list of techniques and code-snippets that I personally use (hint:
view-source
) to improve for organic website traffic and SEO. To make your content more
enjoyable by users (social media sharing, RSS, search results) and
descriptive to machines (SEO).
2020-07-14
Do you want to know how users make use of your site? Which links they click most and what converts most? From the
official documentation you can trigger custom events via JS, by including a small utility function
plausible
:
html <script> window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) } </script>
Whenever you call
plausible('...event...')
you put a tracking event in a
queue (
window.plausible.q
) and will be tracked.
2020-06-20
Recently I got into Linux
again after a long hiatus. I fell in love with
Pop!_OS by
System76. Ubuntu 20.04 also looks gorgeous and made me want to go back to the Linux side. So I started looking for a worthy laptop for the job, with excellent support for Linux, and these are my findings.
2020-07-06
Let's say you have these documents in your collection items
:
2020-05-28
What:
Code BEAM V official website When: 2020/05/28 - 2020/05/29 Where: On the interwebz Schedule:
code-beam-v#schedule2020-05-26
As cited on the
official release notes: > To upgrade an existing MongoDB deployment to 4.2, you must be running a 4.0-series release. So, a little bit of context: Let's say you are currently running on version 3.6. You want to upgrade to the latest version. You would be inclined to directly upgrade from 3.6 to 4.2. Not so fast.
2020-05-20
Iâm going to outline an example to make the concept clearer:
You need to send a recurring email to some users (a newsletter for example), based on some business logic.
The business logic / user story could say:
"As a user
I want to receive an email every week
So that I can stay up to date with the latest news."
This is intentionally a contrived example to reduce the scope of the exercise.
Concepts discussed below are
- SOLID principles
- Single Responsibility Principle
- Open-Closed Principle
- Dependency Inversion Principle
- Reason for a software component to change
- Test doubles like Spies and Stubs
- Collaborators in tests
- User Acceptance tests
- Unit tests
On the technical side, I am going to use the following tools
- sinon for easy Test Doubles
- ava for running the tests
- MongoDB as an example, but of course the persistence can be changed at your liking
- no real email API service, to keep it simple
2020-06-07
home-assistant.io is the latest great tool I discovered, it's simply a beautiful piece of technology. > Open source home automation that puts local control and privacy first I recommend installing the Hass OS on a
Raspberry Pi 4 with an
SD Card of at least 32GB.
2020-05-26
Recently I stumbled upon an issue with a web application that was proxied by HAProxy. The issue was that the requests that started from the HTML document were served and requested over HTTPS, but "inner" resources (AJAX calls, images, etc.) were configured as HTTP.
2020-02-25
One way to provide environment variables when running a script with npm, is to create a file called .npmrc
in the root of the project (same level as package.json
).
2020-05-20
My disk space was running low. I had less than 100MB of free space. I was sick of running low on disk space. Clean My Mac wasn't an option. I don't want to spend 40$ for a cleaning tool, if you're so inclined feel free to do it.
2020-02-08
An example of connecting to mongodb with the Monk NPM module.
2020-05-15
In case the npm
registry goes down, it's wise to have a backup registry.
2020-05-26
How to configure authenticated uplinks with Verdaccio.
2020-05-12
> privacy matters, and coherence costs ### Motivation I tried to do a self-examination, reflecting on what matters to me about Privacy. Being more aware of what you share while browsing the web comes with experience and can be seen as a journey.
2020-05-18
You're seeing a blank page saying "HTTP_ERROR 431"? And you're running a Node.js HTTP server, like express or fastify?
2020-05-10
Yesterday I wanted to monitor the processes that my Elixir application was spawning. I knew there was something called
Observer
, but couldn't remember exactly how to do it. Taking a look at the doc, I found this
debugging page that mentioned
:observer.start()
. The suggested usage was with
iex -S mix
and then running
:observer.start()
in the
mix
shell manually. I don't like manual things that much.
2020-05-03
Âľcompress
is a lovely utility by
WebReflection that compresses common static files. > A micro, all-in-one, compressor for common Web files Using it since
commit ce0a9e on this very website, in my
GitHub Actions workflow.
2020-05-07
Dark mode is everywhere nowadays. Personally using
darkreader as an extension of
Brave browser, and I'm loving it. But if you want to roll your own, for fun or for whatever reason, continue reading to understand how I did it.
2020-05-01
The Nullish coalescing operator in useful to handle default values, without short-circuiting on values that result as falsy
. Falsy values are undefined
, null
, false
, 0
, NaN
, and ''
in JavaScript, and sometimes you want to retain those values, explicitly excluding null
and undefined
.
2020-05-07
Today a
dear user made me aware that my RSS feed broke. There was a
XML Parsing Error for
cri.dev/rss.xml. ASAP after work I checked the validity through
validator.w3.org/feed/ and in fact there were some issues with it.
2020-05-01
A long awaited feature of the language and runtime has been
released and is available in Node.js 14 (and modern browsers): Optional chaining!
2020-04-24
As soon as Elixir was released a few years ago, I got into it and started learning and building things with it. Thanks to the help of some
dear colleagues I had the opportunity to get valuable feedback and learn even more concepts about GenServers, the BEAM virtual machine, ETS and Erlang+Elixir in general. I also went to my first Erlang+Elixir conf, and had the chance & honour to meet Joe Armstrong,
#rememberingjoe. On 2020/04/22, during quarantine, I decided to get back to Elixir (who knows: maybe even dabble with Erlang directly). I post-poned this too much now, it's time to get back to the distributed programming world. Without further ado, below my journey (in form of a daily journal) about learning more about Elixir (again), the BEAM,
plausible analytics and things discovered along the way!
2020-04-23
Since Cypress.io starts a browser to run the end-to-end tests, your Google Analytics tracking calls (also from other analytics services like plausible.io) are made, and you don't want to have wrong analytics.
2020-05-03
Sick of ads on the Web, YouTube and other services? Do you have a Raspberry Pi (4, 3, or even a Zero like me) laying around collecting dust and you want to make use of it? Use it for ad-blocking in your home network and to finally browse the web, watch videos etc. without annoying ads.
2020-04-28
Let's try to monitor crypto assets through the
Coinmarketcap API, with Elixir! Topics I want to explore in this exercise are: - Elixir Supervision trees - HTTP calls with Elixir (with HTTPoison) - TDD and Refactoring
2020-04-07
Below my favourite Visual Studio Code theme Iâve come to like over time.
2020-04-19
devblog
is yet another lightweight static site generator. Although there are widely used SSG like 11ty (which this blog was previously based on), Jekyll (also previously used), GatsbyJS and many others,
I wanted to get my hands dirty and understand how to make the process of building a static blog even simpler, if possible. Even simpler in the sense of
"it does just what I need and nothing more". Install via
npm i -g devblog
or create a blog with a one-liner
npx devblog init my-new-blog
,
cd my-new-blog
and serve with
npx http-server _site 8080
. It's that easy. Rebuild the blog by running
npx devblog
(or
npm i -g devblog
and then just run
devblog
in the main directory) Continue reading my story of building
devblog
.
2020-03-27
If you add a remote
to an existing repository or you create a new branch, you have to set up the remote branch tracking yourself.
2018-04-12
Rate limiting API calls to an HTTP service doesn't have to cumbersome and too complicated. A simple way to achieve this (and that I use all the time) is to combine
Promise.all
with an npm package called
p-limit
.
p-limit
is used to run multiple promise-returning & async functions with limited concurrency.
2020-03-30
I was encountering this error when trying to set up a puppeteer instance with a proxy.
2020-03-30
In a
previous post I tried to explain how to troubleshoot an issue when connecting to a Proxy with Puppeteer investigating
API documentations ,
Chromium flags and all that funny jazz..
2020-03-09
Example repository and explanation to a practical crawling with browserless and puppeteer.
2020-03-08
> Browser automation built for enterprises, loved by developers.
browserless.io is a neat service for hosted puppeteer scraping, but there is also
the official Docker image for running it locally. I was amazed when I found out about it đ¤Ż! Find the whole source code on
Github christian-fei/browserless-example!
2020-03-05
Lately I found myself dealing with Twitter and Google OAuth (1.0a and 2.0) to authorize a user to act on their behalf, namely reading profile information, reading and posting content on their behalf or other common permissions. Since my process of trying to understand and make sense of OAuth has been both fun and rough, I wanted to summarize a full example in a single JavaScript file and document other findings along the way.
2020-03-04
In this example you can see how to emit a Worker event with Darklang.
2020-03-07
## GitHub example repo At
christian-fei/twitter-oauth-login-in-nodejs on GitHub you can find the
whole source code. Learn how to create a
Twitter OAuth Application2020-03-02
# What is it? > Programming language, editor, and infrastructure for building backends Functional / imperative hybrid language is influenced by Elm, Rust, OCaml, Swift, Ruby on Rails, Clojure, TypeScript.
2020-02-29
>
raspistill
is the command line tool for capturing still photographs with the camera module. Here you can find the
official docs.
2020-03-01
Today I stumbled upon this official
doc by cloudflare stating the current TLD - Policies. It is like finding a treasure for me because I was looking for an official list of supported domains on Cloudflare, since I own a few
.cc
,
.ninja
,
.xyz
domains.
2020-02-15
Curious about how to call an HTTP API like Twitter or GitHub by authenticating through OAuth (1.0a and 2.0)? Read more about how to do it with Node.js Learn how to
create Twitter login with OAuth 1.0a.
2020-02-13
# đ
As much as it hurts, this action had to be taken due to apparent trademark issues with the word pomodoro. pomodoro.cc has to close.
2020-02-08
After the
Simple-Jekyll-Search experience I found a perhaps simpler way to do blog search without all the fuzz. ~ 50 lines of generic JavaScript will suffice.
2020-02-08
Personally I use dotenv
to handle different environments in my Node.js applications. It gives you the ability to specify a .env
file (generally provisioned on each environment with the corresponding environment variables), along these lines:
2020-01-29
Lately, I was having issues with lerna
while trying to publish packages from a mono-repo. The problem was that lerna
, sometimes, failed while publishing the changed packages (with the command lerna publish --conventional-commits
)!
2020-01-28
I want to share how I maintain my
connect /
express middlewares for simple HTTP APIs in Node.js The code snippets below are taken from
pomodoro.cc api source code.
2019-08-29
Letâs get straight to the point.
After reading this, youâll be able to send a telegram message to a chat_id
with one command.
2020-01-03
Having trouble SSHâing to your Raspberry Pi over Wi-Fi?
Same hereâŚ
Here some troubleshooting steps that may solve your issue:
2019-10-27
tldr; - pandoc đ 11ty (static site generator) - cypress (uat) - github actions (cd) - aws s3 (hosting) - cloudflare (dns + cdn + ssl)
2019-12-11
Web scraping [âŚ] is used for extracting data from websites
from Wikipedia âWeb scrapingâ
2019-08-30
Yes you read that right. Figured out a way to make a timelapse thanks to AWS Lambda and a bucket with images on S3.
2019-08-29
I
finally managed to get the deployment of an
eleventy - 11ty site (
namely this one) and sync with AWS S3, where this blog is hosted.
2019-07-19
here all single letter commands from my dotfiles
2019-07-16
Do you need to upgrade from MongoDB version 3.4 / 3.6 to version 4.0 ?
2019-08-25
# speed matters trying to work on your pc in 2019 is the worst if you are experiencing a slow internet connection.
2019-04-04
Got the following error when running my playbook, with a newly installed external role: bash fatal: [52.28.21.116]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'ansible_distribution' is undefined\n\nThe error appears to have been in '.../tasks/main.yml': line 1, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- debug:\n ^ here\n"}
2018-11-28
If you stumbled upon this article, you are probably seeing the following error message on travis in the deployment stage:
2018-10-06
To make Anaconda executables like conda
or anaconda-navigator
available in your shell, you'll need to edit your ~/.config/fish/fish.config
and add the directory where the commands are located. If you're using Anaconda with Python 2.x, the path will be /anaconda2/bin/
. For Python 3.x and up: /anaconda3/bin/
2018-04-05
Lately I felt overwhelmed by my
Obsessive Compulsive Reminder Disorder â˘. In other words, my
Inbox was full of interesting links that I saved as a reminder, but easily got out of hand:
2018-07-11
Here the methods I follow to clean my Android device in 2018.
2018-04-12
Today I attended an event about
"Blockchain for Smart Communities" during the
Trento Smart City Week. The topics discussed are: - the impact on citizens, businesses & public administration - new opportunities offered by blockchain technology and smart contracts - use cases like automating insurances, providing transparency and resilience on administrative tasks and much more
2018-07-03
I found it. It found me... Whatever! I came across the only documentation about cloning a git repo with the [--depth
option](https://git-scm.com/docs/git-clone#git-clone
2017-12-11
Market data is generally represented as an array of arrays, and each entry is a data point that represents a "snapshot" of the market in a given period of time.
2018-04-09
After some time, I picked up a project where LaTeX was involved, to find out it didnât work anymore.
I couldnât run the script with the pandoc
command, a few errors came up.
2018-01-31
Today I sat down and wrote a tiny package called
wait-for-user-input. it can be used to wait for
stdin
 input in a command line script.
2017-10-21
using github projects to keep track of activities and being public about it has been a very pleasant experience.
in the next sections youâll understand what changed.
2017-03-30
I want to talk a little bit about my dotfiles
.
You can find them on Github (obviously).
2017-02-24
Today I installed
redash with AWS EC2 and AWS SES, with the help of
the official guide.
2017-02-05
Requirements - a Jekyll blog (of course)
2017-02-10
Today, at the issue date of #338 of Hacker Newsletter, I tried: - not to read ahead - not to "spoil" me any links (maybe it's just me) - to reflect on how to learn the most out of each issue of Hacker Newsletter
2017-02-22
Lately I have been following the
Standard.JS style guide (after disliking
ava &
xo) and took style-guides in general more seriously.
2016-02-03
I had a blast at this year's
FOSDEM.
2015-10-25
I ran into this gotcha today as I was
playing with
Plug of Elixir.
2015-10-18
As you may be accustomed by now, in the JavaScript scene there is
almost never a single way to program. I think it`s very difficult to find an idiomatic styleguide for the language/framework. What I found is that
lots of intelligent people were talking about idiomatic solutions they found to write maintainable AngularJS applications, and some similarities caught my attention. One of them was the preference to use the
controller as syntax, I definitely do too, and here is why.
2015-10-20
Angular is a JavaScript framework for creating modern web applications, which are inherently declarative, modular, with testability in mind.
2021-02-11
This is something I wanted to build for a long time: a Bitcoin price watcher and indicator as an elegant desk accessory.
2015-10-15
> Angular`s digest loop is like a baby: you need to take care of it and feed it well, or it will puke all over your nice shirt. > Actually, it will probably, eventually do it anyway.
2015-08-12
AppCache is a nice guy when it comes to caching stuff, but at the end of the day it is just a
fucking douchebag. For me AppCache is a smelly, almost invisible, annoying little parasite. If you're having trouble cleaning up the mess this guy did (aka invalidate the cache), these simple steps will lessen your burden and throw this douchebag out of the parents' house.
2015-02-21
If youâre trying to finish a coding kata in a pomodoro, youâll most likely have a hard time.
I was sick of almost never finishing a kata, but then this idea hit me:
It would be awesome if you could start a kata from a fresh, already set up workspace, with preconfigured test framework and boilerplate classes.
I found two options suitable to support this workflow.
2015-05-09
Let's say you want to filter odd numbers from a list of numbers, like [1,2,3,4,5,6]
should become [1,3,5]
. One way to solve this problem in a functional fashion is to provide an odd
filter function, that is internally composed by a negation of an even
filter on those numbers.
2015-04-27
Recently I got the opportunity to work in a legacy, and wanted to share what I learned about gaining confidence and still deliver business value.
2015-03-04
I hope this will help you to push your productivity level to the edge and to find the ultimate flow to contribute to open source projects with ease :) You need to install
hub, which is a tool that will wrap your
git cli tool with some useful utility functions to interact with GitHub.
2015-01-17
tldr;
First of all I would like to explain why:
In my opinion sometimes you can write some of your E2E tests and your User-acceptance tests in one go, together.
Iâm not saying all of them, some E2E tests can cover exceptional cases and often are on the sad path in terms of UAT.
Both of them are rather flaky in terms of feedback and canât give any detailed hint where the test failed, except the approximate region of your application.
Both hit the application in the running state, so why not write some of them in the language of the business while testing technical aspects hidden behind?
Itâs just a thought, probably Iâm totally wrong and should read more about both aspects :)
Anyways:
2014-08-22
Let's say you have an array of things. You want to provide to your user the ability to select two things from this array. If you use the <select>
tag you won't be able to select multiple options from this list unfortunately. You can either come up with a new directive that handles this, use somebody else's plugin, or roll your own Angular filter (probably for learning purposes).
2014-08-02
There are countless continous integration continuous integration tools: Travis, Jenkins, Shippable, Circle, CodeShip, Wercker, etc.
2014-08-03
Drone listens on port 80
by default. If you want to host your application on the same server, then that's an issue.
2014-03-04
Let's take a simple example: a TicTacToe gamefield saved as a nested array in MongoDB. In the Collection a gamefield document has the following structure:
2014-07-05
Resizing an image to the desired size and proportion sounds like a simple process, but I found it quite challenging using Preview since I don't own a legitimate copy of Photoshop. Fortunately I came across a nice tool that exists since the archaic times of computers (for me at least), since 1999, that gives me very handy commands to solve this workflow. It's called
ImageMagick.
2014-05-26
Angular's DI in combination with lazy loading of dependencies is one of my favourite features of Angular. I was fascinated about the simplified API that Angular provides to make DI happen and the ability to create testable, modular code out of the box. Anyways we are here to look what's behind Angular's DI, so here we go.
2014-01-19
Getting permission errors when installing a module? Are 'sudo: node: command not found' errors taking away your precious sleeping hours?
2014-01-18
I want to share the most simple and straightforward configuration that suited my needs for developing locally.
2014-01-05
The steps explained in this guide can be automated by a handy utility called
hub. But if you want to get your hands dirty with the Github API, this article is for you.
2013-10-12
Let's say you made a jQuery plugin and want to have an output (like a list of search results), whose aspect and format can be defined by the user.
2013-07-16
Let me show you how many Kilobytes you can save by compressing files with Gzip (a real world example):

2014-01-04
Seeing that after having posted an article on Hackernews brings more than 5k visits feels really nice, you can't argue about that with me.
2013-05-08
Let's get straight to the point: First you need to find out the device file of the partition you want to automatically mount on start up.
2013-06-06
Disqus is definitely one of the best commenting systems out there (not to mention that it is responsive). As a speed freak I'm always concerned how much assets a website needs to load, affecting the overall load time of it.
2013-04-20
Here are some photographs I took when I was in Berlin in April with my class. The weather was bad the first two days but on the last day the clouds drove away and we could enjoy some Berliner Kindl beers while admiring the artworks on the Berliner Wall. Not to mention the great TV tower in Berlin, the St. Hedwigs Cathedral, the Brandenburg Gate, Check Point Charlie and the Nofretete museum.
2013-03-29
You need to replace a string with special characters (like http://) and don't want to do that manually? I've found the solution.
2012-12-23
Recently I found myself in a strange situation, where I was searching for a certain document located on my NTFS Data partition, but Spotlight wasn't able to find it.
2021-01-09
You just got your 3D printer, and you already plugged it in. Assembly: done đď¸ Filament: ready âď¸ STL file: affirmative âłď¸ You put your SD card in and hit "Print" đ¨ď¸