<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>0ink.net</title>
<description><![CDATA[Not the site you are looking for...]]></description>
<link>https://www.0ink.net</link>
<image><title>0ink.net</title>
<link>https://www.0ink.net</link>
<url>https://www.0ink.net/images/2021/0ink.png</url>
</image>
<language>en</language>
<lastBuildDate>Fri, 10 Apr 2026 06:45:43 +0200</lastBuildDate>
<atom:link href="https://www.0ink.net/feeds/atom.xml" rel="self" type="application/rss+xml"></atom:link>
<generator>FeedWriter</generator>
<item>
<title>javascript snippets</title>
<link>https://www.0ink.net/posts/2026/2026-04-01-javascript-snippets.html</link>
<description><![CDATA[
Compute how an element is hidden
Iterate over LI elements
Adding/removing classes to/from elements
Get current date as YYYY-MM-DD
escape HTML characters
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Additional OpenSSL tips</title>
<link>https://www.0ink.net/posts/2026/2026-03-15-other-openssl-tips.html</link>
<description><![CDATA[
Self-signed certificates
Display cert extensions
Viewing certificate information
Checking server certificate
How to create a certificate chain ?
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Deploying your CA&#039;s root certificate</title>
<link>https://www.0ink.net/posts/2026/2026-03-01-deploy-root-certs.html</link>
<description><![CDATA[
Linux
Windows 10
iOS 14
Authenticating clients
Authenticating clients with nginx
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Revoking Certificates</title>
<link>https://www.0ink.net/posts/2026/2026-02-15-crls.html</link>
<description><![CDATA[
Certificate revocation lists
Prepare the configuration file
Create the CRL
Revoke a certificate
Server-side use of the CRL
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Your own Certificate Authority</title>
<link>https://www.0ink.net/posts/2026/2026-02-01-manual-ca.html</link>
<description><![CDATA[
Generating root cert

Preparation
Creating the root key
Creating the root certificate
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Certificate Authorities</title>
<link>https://www.0ink.net/posts/2026/2026-01-15-cas.html</link>
<description><![CDATA[
For home users there is not much use for running you own
Certificate Authority (CA), and with availability of
Letsencrypt and the plethora of ACME libraries
setting TLS encryption is quite straight forward.

...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>NEW YEAR 2026</title>
<link>https://www.0ink.net/posts/2026/2026-01-01-newyear.html</link>
<description><![CDATA[Happy New Year!

...]]></description>
<pubDate>Sat, 10 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>More Python GUI programming</title>
<link>https://www.0ink.net/posts/2025/2025-12-15-more-pygui.html</link>
<description><![CDATA[
Using threads with Python and Tkinter

Impelementation using queue.Queue
Key Components
Why Use Threads and Queues?
...]]></description>
<pubDate>Mon, 12 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Installing source using PIP</title>
<link>https://www.0ink.net/posts/2025/2025-12-01-pip-install.html</link>
<description><![CDATA[
Installing from github
Installing from ZIP file

How It Works:
Alternative: Local ZIP File Installation
...]]></description>
<pubDate>Mon, 05 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Copper anniversary</title>
<link>https://www.0ink.net/posts/2025/2025-11-15-12.5-years.html</link>
<description><![CDATA[Today, this blog reaches the 12.5 year mark (In the Netherlands, copper annyversary).

Actually 0ink.net has been running for much longer than that,
but as a blog format, it is from 2013-05-15 when it was migrated to Wordpress.
You can find the firs post here.
...]]></description>
<pubDate>Tue, 22 Oct 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Using the Github Container Registry</title>
<link>https://www.0ink.net/posts/2025/2025-11-01-using-ghcr.html</link>
<description><![CDATA[
Initialization
Basic env variables
Job declaration
Steps

...]]></description>
<pubDate>Mon, 05 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Using Excel files from Python</title>
<link>https://www.0ink.net/posts/2025/2025-10-15-python-excel.html</link>
<description><![CDATA[
Intro
XlsxWriter
openpyxl
xlwings
pywin32
...]]></description>
<pubDate>Mon, 05 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Using Podman on Alpine Linux</title>
<link>https://www.0ink.net/posts/2025/2025-10-01-podman.html</link>
<description><![CDATA[
Introduction
What is Podman?
Installation on Alpine Linux

Rootful vs Rootless
...]]></description>
<pubDate>Tue, 01 Apr 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>AdGuard Home</title>
<link>https://www.0ink.net/posts/2025/2025-09-15-adguardhome.html</link>
<description><![CDATA[
How does AdGuard Home compare to traditional ad blockers
Known limitations
Installation
Configuration
Reverse Proxy
...]]></description>
<pubDate>Wed, 12 Mar 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Using SSLH on Alpine Linux</title>
<link>https://www.0ink.net/posts/2025/2025-09-01-sslh-on-alpine.html</link>
<description><![CDATA[
Install sslh
apk add sslh
Configure sslh startup:
# /etc/conf.d/sslh
# configuration for /etc/init.d/sslh
...]]></description>
<pubDate>Tue, 21 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Writting a Geany plugin</title>
<link>https://www.0ink.net/posts/2025/2025-08-15-macrec.html</link>
<description><![CDATA[
Pre-requisites
Registering
Building
Binding keys
Callbacks
...]]></description>
<pubDate>Wed, 15 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Cinnamon Keyboard shortcuts</title>
<link>https://www.0ink.net/posts/2025/2025-08-01-cinnamon-shortcuts.html</link>
<description><![CDATA[
To familiarize with the Cinnamon desktop, here is a list of its shortcuts:



Function
...]]></description>
<pubDate>Tue, 21 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Lookup Ansible vars from the command line</title>
<link>https://www.0ink.net/posts/2025/2025-07-25-ansible-vars.html</link>
<description><![CDATA[This is a quickie.  If you want to look-up the value of an Ansible variable from
the command line:

ansible localhost -m ansible.builtin.debug -a "var=my_variable"
...]]></description>
<pubDate>Mon, 15 Sep 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Booting Refind on KVM</title>
<link>https://www.0ink.net/posts/2025/2025-07-20-refind.html</link>
<description><![CDATA[
This is a quick recipe to boot a refind image on KVM.  This is just to test UEFI boot
configuration in virtualized environments.
First step is to create a refind boot image.  For that I use this script:

To use this script, you need to download the binary zip file refind image from here.
...]]></description>
<pubDate>Tue, 15 Jul 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Saving Cinnamon customizations</title>
<link>https://www.0ink.net/posts/2025/2025-07-15-customizing-cinnamon.html</link>
<description><![CDATA[
When I switched Desktop Environments towards Cinnamon, I wanted
to save configuration settings so I could restore them later if I moved
to a different PC.
Pre-requisites:
We need the following packages
...]]></description>
<pubDate>Fri, 03 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Linux booting Linux</title>
<link>https://www.0ink.net/posts/2025/2025-07-01-lnxboot.html</link>
<description><![CDATA[
Introduction
Backing up
Installing Refind
Custom Linux

...]]></description>
<pubDate>Wed, 01 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Nemo file explorer custom actions</title>
<link>https://www.0ink.net/posts/2025/2025-06-20-cinnamon-actions.html</link>
<description><![CDATA[
Adding a &quot;Copy File Path&quot; Option to Nemo in Linux Cinnamon

Step 1: Create a Nemo Action File
Step 2: Define the Action

...]]></description>
<pubDate>Sun, 28 Sep 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Stretch Cluster notes</title>
<link>https://www.0ink.net/posts/2025/2025-06-15-stretchcluster.html</link>
<description><![CDATA[
Clustering
Stretched Clusters
Calculating latencies
Common storage stretched clusters

...]]></description>
<pubDate>Thu, 12 Dec 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Rewriting history in git</title>
<link>https://www.0ink.net/posts/2025/2025-06-10-gitfilter.html</link>
<description><![CDATA[
Coordinate with your team
The secret is in the last commit and there is nothing else
The secret is in the last commit but there are other changes
The secret is beyond the last commit

...]]></description>
<pubDate>Thu, 22 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Baremetal backup</title>
<link>https://www.0ink.net/posts/2025/2025-06-05-bm-imaging.html</link>
<description><![CDATA[
Preparation

Disabling BitLocker
Get Clonezilla

...]]></description>
<pubDate>Sat, 31 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>tcpdump snippets</title>
<link>https://www.0ink.net/posts/2025/2025-06-01-tcpdump.html</link>
<description><![CDATA[
List interfaces
GUI

Capture file rotation
stftime codes
...]]></description>
<pubDate>Thu, 12 Dec 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>About JS2Py</title>
<link>https://www.0ink.net/posts/2025/2025-05-25-js2py.html</link>
<description><![CDATA[Js2Py translates JavaScript to Python code. Js2Py is able to translate and execute
virtually any JavaScript code.
Js2Py is written in pure python and does not have any dependencies. Basically an implementation
of JavaScript core in pure python.
While intriguing, I do not see the point to do this.  Going from Python to JavaScript seems
to be more useful.
...]]></description>
<pubDate>Tue, 06 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>How SanDisk&#039;s ranges compare</title>
<link>https://www.0ink.net/posts/2025/2025-05-20-sd-classes.html</link>
<description><![CDATA[This is not a SanDisk advertisement!


...]]></description>
<pubDate>Thu, 22 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Using hooks in git</title>
<link>https://www.0ink.net/posts/2025/2025-05-15-git-hooks.html</link>
<description><![CDATA[

Add additional files to commit
List files that will be committed
Making hooks available

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Switching to Giscus</title>
<link>https://www.0ink.net/posts/2025/2025-05-08-giscus.html</link>
<description><![CDATA[So since last year I have been using utterances to add comments to my BLOG.  After
reading this post from Max Brenner, I decided to switch to giscus.
Giscus is a comments system powered by GitHub Discussions. It lets visitors leave
comments and reactions on your website via GitHub!
I agree with the comments from Mr. Brenner:

...]]></description>
<pubDate>Thu, 08 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Brython</title>
<link>https://www.0ink.net/posts/2025/2025-05-06-brython.html</link>
<description><![CDATA[Brython (Browser Python) is an implementation of Python 3 running in the browser,
with an interface to the DOM elements and events.
In a way it is similar to pyjs, however, looks like development has stalled.
Brython is designed to replace Javascript as the scripting language for the Web. As
such, it is a Python 3 implementation (you can take it for a test drive through a web console),
adapted to the HTML5 environment, that is to say with an interface to the DOM objects and events.
...]]></description>
<pubDate>Thu, 08 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Using LLDP on Linux</title>
<link>https://www.0ink.net/posts/2025/2025-05-01-discovery-protocols.html</link>
<description><![CDATA[
Introduction
Enabling LLDP on Linux

Using open-lldp
Using lldpd
...]]></description>
<pubDate>Sat, 23 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Using 7z for benchmarks</title>
<link>https://www.0ink.net/posts/2025/2025-04-15-7z-benchmark.html</link>
<description><![CDATA[
Syntax
LZMA benchmark details
LZMA benchmark in multithreading mode
7-Zip benchmark
Examples
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Replacing failed drives in a md array</title>
<link>https://www.0ink.net/posts/2025/2025-04-01-replacing-failed-drives.html</link>
<description><![CDATA[
In a Linux softraid, you may have to replace failed drives.  As usual,
backups are still needed, but hardware failures can be covered by
RAID levels.


...]]></description>
<pubDate>Tue, 01 Apr 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>3D Prints</title>
<link>https://www.0ink.net/posts/2025/2025-03-17-3dprint.html</link>
<description><![CDATA[The other day, the 3D model I created back in 2016
finally broke.
So, as such I created an updated model:


For this I am using the same service from my 3D Printing updates
...]]></description>
<pubDate>Sun, 16 Mar 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Filesystem discard</title>
<link>https://www.0ink.net/posts/2025/2025-03-15-discard.html</link>
<description><![CDATA[
Now with the prevalence of SSD's for storage, it is important
to make sure that the DISCARD operation is used.  This
is specially true as this can increase the lifetime of your flash
storage by reducing the need to re-map blocks by simply marking
them as freed.
...]]></description>
<pubDate>Sun, 16 Mar 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>DRBD Preload</title>
<link>https://www.0ink.net/posts/2025/2025-03-01-drbd-preload.html</link>
<description><![CDATA[
This is a continuation to VM disk replication.
One of the steps needed for VM disk replication
is the need to pre-load the replicated volume.
For the project I wrote, we had two mechanisms:

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>VM managed disk replication</title>
<link>https://www.0ink.net/posts/2025/2025-02-15-vm-disk-repl.html</link>
<description><![CDATA[
Introduction
High level overview
Deployment

Required packages
...]]></description>
<pubDate>Fri, 15 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Documenting Architecture Decisions</title>
<link>https://www.0ink.net/posts/2025/2025-02-01-doc-adr.html</link>
<description><![CDATA[
Context
Approach
Format
Conclusion

...]]></description>
<pubDate>Fri, 13 Dec 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Alpine Boot</title>
<link>https://www.0ink.net/posts/2025/2025-01-23-alpine-boot.html</link>
<description><![CDATA[
This is a quick note.  In Alpine linux you can run start-up scripts by enabling the
local service:
rc-update add local default
When this is enabled, it will run all executable scripts that end with .start on
start-up and scripts that end with .stop on shutdown.
...]]></description>
<pubDate>Thu, 23 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Y2K38 filesystems</title>
<link>https://www.0ink.net/posts/2025/2025-01-15-Y2038-fs.html</link>
<description><![CDATA[
Background
What to do
xfs
ext4

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>NEW YEAR 2025</title>
<link>https://www.0ink.net/posts/2025/2025-01-01-newyear.html</link>
<description><![CDATA[This year this Blog would have been up and running for 12 years!

Happy new year sticker created by Icon home - Flaticon
...]]></description>
<pubDate>Tue, 22 Oct 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Single Page Application</title>
<link>https://www.0ink.net/posts/2024/2024-12-31-spa.html</link>
<description><![CDATA[
As the last post of the year, I am posting my attempt at a simple &quot;Single Page Application&quot;.
A single-page application (SPA) is a web application or website that interacts with the
user by dynamically rewriting the current web page, instead of the default method of loading
entire new pages. The goal is faster transitions that make the website feel more like a native
app.
...]]></description>
<pubDate>Fri, 13 Dec 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Fitbit reset</title>
<link>https://www.0ink.net/posts/2024/2024-12-20-fitbit-stuff.html</link>
<description><![CDATA[

How to reset your Fibit Charge 5, 6 or Fitbit Luxe?
You can reset your Fitbit Charge 5, Charge 6, or Fitbit Luxe in 2 ways:

Soft reset: restart your Fitbit. You keep your data.
...]]></description>
<pubDate>Sat, 21 Dec 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Python development tips 2024</title>
<link>https://www.0ink.net/posts/2024/2024-12-15-pydev-tips.html</link>
<description><![CDATA[
Local install packages
Better debugging
Built-in exceptions
Adding site specific customizations
Constants
...]]></description>
<pubDate>Sat, 03 May 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Z-Wave Associations with Home Assistant</title>
<link>https://www.0ink.net/posts/2024/2024-12-01-zwave-pairing.html</link>
<description><![CDATA[
Introduction
Configuring associations
Setting associations
Removing associations
Last words
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Ansible Snippets</title>
<link>https://www.0ink.net/posts/2024/2024-11-15-ansible-tips.html</link>
<description><![CDATA[
Bootstraping
Execution order
Create a file without external template
Creating inventory script
Writing ansible modules in sh
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Modifying VM configuration with libvirtd</title>
<link>https://www.0ink.net/posts/2024/2024-11-01-virtxml.html</link>
<description><![CDATA[
The other day, I had to update a VM configuration managed via libvirt
from the command line.  There are different ways to do this.  The easiest probably
is to use the virt-manager application and use the GUI to modify things.

... virt-manager screenshot ...
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Comments enabled</title>
<link>https://www.0ink.net/posts/2024/2024-10-24-utterances.html</link>
<description><![CDATA[Today I enabled comments on this blog.
You need to have an github account in order to make comment.  This is because the
main audience for this blog is developers and this should cut down on the spam.
Comments are stored GitHub Issues using the Utterances comments widget.
I chose Utterances because:

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Tweaking HDMI dummies</title>
<link>https://www.0ink.net/posts/2024/2024-10-15-hdmi-dummy.html</link>
<description><![CDATA[
Prepare EDID blob
Modify Kernel command line
Update initramfs
Reboot
Post boot EDID
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Docker in Docker</title>
<link>https://www.0ink.net/posts/2024/2024-10-01-docker-in-docker.html</link>
<description><![CDATA[
Introduction
Method 1: Mounting /var/run/docker.sock

docker.sock permission error

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Telekom Cloud CI/CD demo</title>
<link>https://www.0ink.net/posts/2024/2024-09-15-telekom-cloud-demo.html</link>
<description><![CDATA[
Pre-requisites
Preparation
Base infrastructure

Notes
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Linux desktop default apps</title>
<link>https://www.0ink.net/posts/2024/2024-09-01-linux-apps.html</link>
<description><![CDATA[
User configuration
System-wide configuration
Additional files
References

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Linux Serial Consoles</title>
<link>https://www.0ink.net/posts/2024/2024-08-15-serial-tips.html</link>
<description><![CDATA[
Intro
Hardware

Null modem
Cisco style ports
...]]></description>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Adding a serial port to a QNAP TS-251D</title>
<link>https://www.0ink.net/posts/2024/2024-08-01-qnap-ts251d-serial.html</link>
<description><![CDATA[
I am using a QNAP TS-251D NAS.  Because I would like to switch from QTS to
Alpine Linux I though it would be useful to enable the serial port.
The TS-251D has a built-in serial port that is already enabled and only needs to be
connected.  For that you need a number of parts:

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>3D Printing updates</title>
<link>https://www.0ink.net/posts/2024/2024-07-15-3d-printing.html</link>
<description><![CDATA[A quick guide to 3D printing materials]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>UEFI boot on Raspberry PI</title>
<link>https://www.0ink.net/posts/2024/2024-07-01-pi-uefi-boot.html</link>
<description><![CDATA[
Introduction
Prepare SD card
Copy UEFI
UEFI boot
Adding grub
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Ansible Best Practices</title>
<link>https://www.0ink.net/posts/2024/2024-06-15-ansible-best.html</link>
<description><![CDATA[
This is a conversion from a presentation/pdf
by Tim Appnel.
I attached a copy here
too.
Roles and Modules
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>hoses: enhanced socks5 tools</title>
<link>https://www.0ink.net/posts/2024/2024-06-01-hoses.html</link>
<description><![CDATA[
Introduction
Features
Where to find
Examples

...]]></description>
<pubDate>Tue, 05 Mar 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>OpenSSH Certificate Authority</title>
<link>https://www.0ink.net/posts/2024/2024-05-15-openssh-ca.html</link>
<description><![CDATA[
Intro
Creating CA
Configuring Hosts
Singing user public keys
Using certificates
...]]></description>
<pubDate>Tue, 05 Mar 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Why Ansible?</title>
<link>https://www.0ink.net/posts/2024/2024-05-01-ansible.html</link>
<description><![CDATA[
As part of an effort of standardising my home lab I decided to migrate my
ad-hoc configuration scripts into a more standard tool set.  So I looked at:

puppet
chef
...]]></description>
<pubDate>Tue, 05 Mar 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>OpenTofu</title>
<link>https://www.0ink.net/posts/2024/2024-04-15-opentofu.html</link>
<description><![CDATA[
Introduction
Origins
Why use OpenTofu
Using OpenTofu

...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Inetd like service with systemd</title>
<link>https://www.0ink.net/posts/2024/2024-04-01-systemd-socket.html</link>
<description><![CDATA[
This is an example of a socket-activated per-connection service (which is usually referred to
as inetd-like service).
A thorough explanation can be found at 0pointer.de.
Define a socket unit
The key point here is to specify Accept=yes, which will make the socket accept connections (behaving like inetd) and pass
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Locking down SFTP</title>
<link>https://www.0ink.net/posts/2024/2024-03-15-sftp.html</link>
<description><![CDATA[
This is a small recipe to increase the security around a SFTP interface.
In the /etc/ssh/sshd_config file include the following settings:
Subsystem sftp internal-sftp
This configures the sftp subsystem to use the internal sftp implementation.
This is because inside the chroot, we usually will not have the normal
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Python GUI</title>
<link>https://www.0ink.net/posts/2024/2024-03-01-python-gui.html</link>
<description><![CDATA[
After looking a multiple options of GUI programming under python I
eventually settled for tkinter.  The main reason was that
tkinter is very ubiquitous and initially though the learning
curve wuld have shorter as I was very used to GUI programming using
TCL/TK.  Turned out that what I known TCL/TK did not translate
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>cisco bridging</title>
<link>https://www.0ink.net/posts/2024/2024-02-15-cisco.html</link>
<description><![CDATA[
This article is here as a reminder.
So, for testing, I needed to configure a
Cisco CSR1000V virtual router as a bridge.  So I used a version 16 Cisco
IOS XE image.  To make my life easier I used the &quot;wizard&quot; that runs the first
time to automatically configure bridgning. Ironically, this created an invalid
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Tunneling NFS over SSH</title>
<link>https://www.0ink.net/posts/2024/2024-02-01-nfs-over-ssh.html</link>
<description><![CDATA[
This recipe is for tunneling NFS traffic over SSH.  This adds encryption
and Public Key authentication to otherwise insecure NFS traffic.
For this recipe to work, requires NFSv4.  Earlier versions were
not tested, but I expect not all the functionality to work.
server configuration
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Optimizing shell scripts</title>
<link>https://www.0ink.net/posts/2024/2024-01-15-optimiz.html</link>
<description><![CDATA[
Introduction
Input Data
Desired Output
Approach
Original Script
...]]></description>
<pubDate>Tue, 05 Mar 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Happy New Year 2024</title>
<link>https://www.0ink.net/posts/2024/2024-01-01-new-year.html</link>
<description><![CDATA[
Best wishes for 2024!
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>IPv6 on 2023</title>
<link>https://www.0ink.net/posts/2023/2023-12-15-ipv6-2023.html</link>
<description><![CDATA[This is a sequel to my article IPv6 blues.


Layout
Enabling forwarding
Configure networking
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>libnss-db HOWTO</title>
<link>https://www.0ink.net/posts/2023/2023-12-01-libnss-db.html</link>
<description><![CDATA[This mini-howto illustrate how to use  libnss-db on a Ubuntu
Linux system.
Other installations should work to after adjusting package names and directory paths.
I myself use as a &quot;serverless&quot; lightweight user directory.  Essentially, I mount the
db directory and the home directory from an NFS server.
Package installation
...]]></description>
<pubDate>Tue, 05 Sep 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Alpine Linux Custom Interface names</title>
<link>https://www.0ink.net/posts/2023/2023-11-15-alpine-linux-custom-if-names.html</link>
<description><![CDATA[This article is a copy of this article
and  shows how to rename/change name of a network interface.
Alpine Linux uses busybox mdev to manage devices in /dev. mdev reads /etc/mdev.conf
and according to mdev documentation one
can define a command to be executed per device definition.
The command which is going to be used to change network interface name is nameif.
...]]></description>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Alpine boot menu</title>
<link>https://www.0ink.net/posts/2023/2023-11-01-alpine-boot.html</link>
<description><![CDATA[This article is an update to my
Alpine Boot Switcher article.

Contents:

Preparing boot device
...]]></description>
<pubDate>Sat, 03 Jun 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Adding static routes in alpine linux</title>
<link>https://www.0ink.net/posts/2023/2023-10-15-alpine-linux-static-route.html</link>
<description><![CDATA[There are several ways to do this documented
in the alpine linux wiki.
My preferred way is to configure it in /etc/network/interfaces.
For example:
auto eth0
iface eth0 inet static
...]]></description>
<pubDate>Sat, 03 Jun 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>New NacoWiki</title>
<link>https://www.0ink.net/posts/2023/2023-10-01-nacowiki.html</link>
<description><![CDATA[Release new version (3.2.1) of NacoWiki.
The following changes are included:

Added document properties
Added opts.yaml
API improvements
...]]></description>
<pubDate>Sun, 01 Oct 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Migrated to NacoWiki Albatros</title>
<link>https://www.0ink.net/posts/2023/2023-10-01-migrated.html</link>
<description><![CDATA[This edition marks the migration of my Blog from
Pelican to NacoWiki Albatros.
This is a mostly transparent change.  I wrote Albatros specifically
to migrate this web site from Pelican to a php based markdown
implementation.  As such, it uses a slightly modified version
of the Pelican theme.
...]]></description>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>File system encryption in Alpine Linux</title>
<link>https://www.0ink.net/posts/2023/2023-09-15-encrypting-fs-in-alpine.html</link>
<description><![CDATA[This is similar to my previous article
Encrypting Filesystem in Void Linux
but for Alpine Linux
The point of this recipe is to create a encrypted file sytem
so that when the disc is disposed, it does not need to be
securely erased.  This is particularly important for SSD devices
...]]></description>
<pubDate>Thu, 07 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>CSS Tips</title>
<link>https://www.0ink.net/posts/2023/2023-09-01-css-tips.html</link>
<description><![CDATA[
Style editor
Sending query string with PHP
Position sticky
Flexbox and Grid

...]]></description>
<pubDate>Thu, 18 May 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Local Startup</title>
<link>https://www.0ink.net/posts/2023/2023-08-15-local-startup.html</link>
<description><![CDATA[This is a method to control start-up of applications in a Linux Desktop session
that are run by a local default configuration, but can also be overriden by the user.
This is unlike the /etc/xdg/autostart which is mostly under the control of the
distro packager.
Aslo unlike the /etc/X11/profile.d directory, this runs inside the Desktop Session.
/etc/X11/profile.d gets started before the Desktop session is available.
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Pulse Audio control in python</title>
<link>https://www.0ink.net/posts/2023/2023-08-01-pulseaudio-py.html</link>
<description><![CDATA[I have been using a shell script to toggle pulse audio sinks for some time.  It worked well enough for
switching output among several profiles on a single audio card.  I recently upgraded
my set-up to new hardware.  This hardware for some reason, reported the analog stereo output and
the digital HDMI output as different sound cards.  So my patoggle script did not work well enough
anymore.
Since parsing the output of the pacmd in shell script was becoming a pain, I decided to re-write
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Global hotkeys</title>
<link>https://www.0ink.net/posts/2023/2023-07-15-global-hk.html</link>
<description><![CDATA[To make it easier to switch desktop environment I am using
a Desktop Environment independant hot keys configuration using
xbindkeys.  This lets me use the same
keybindings on different Window managers and Desktop Environments.
This code can be found in github.
Included are the follwoing:
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>XPrinterMgr</title>
<link>https://www.0ink.net/posts/2023/2023-07-01-xprtmgr.html</link>
<description><![CDATA[This is a small utility to manage a local printer(s) in
a home office setting.
It will show the state of the printer:

accepting or rejecting jobs
enable or disabled printing
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>rsync filter rules</title>
<link>https://www.0ink.net/posts/2023/2023-06-15-rsync-rules.html</link>
<description><![CDATA[
Rules
Simple include/exclude rules
Simple include/exclude example
Filter rules when deleting
Filter rules in depth
...]]></description>
<pubDate>Tue, 25 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Munin-tweaks</title>
<link>https://www.0ink.net/posts/2023/2023-06-01-munin-tweaks.html</link>
<description><![CDATA[Small recipes to tweak munin configurations.
Overriding critical and warning levels
In the node configuration enter:
plugin.field_name.critical value
plugin.field_name.warning value
The plugin name can be found by clicking in the graph with the value
...]]></description>
<pubDate>Tue, 25 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Desktop Environments 2023</title>
<link>https://www.0ink.net/posts/2023/2023-05-15-de-2023.html</link>
<description><![CDATA[Around April 2023, I decided to look for a new Linux Desktop Environment for my
personal void linux.  So I tried these distros:

lxqt: This is the one I eventually chose to switch to.  I liked it that it
was very small and light, and very modular, almost like a kit that you assemble
yourself.  Because I have thinking for some time that I would like to make my
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Personal thoughts on GUI programming</title>
<link>https://www.0ink.net/posts/2023/2023-05-01-gui-programming.html</link>
<description><![CDATA[I have been programming for about 40 years.  Going through a lot of different languages
and programming paradims.
Lately most of my programming is done in:

bash/shell script
Python
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>NacoWiki</title>
<link>https://www.0ink.net/posts/2023/2023-04-15-nacowiki.html</link>
<description><![CDATA[A few months ago I extensibly modify picowiki and creeated NanoWiki.
After using NanoWiki for a few months, the code became somewhat of an
spaghetti mess.  This has to do that picowiki was designed as a single
file, single class application with Plugin extension.  Since every change went
to a single class this quickly became difficult to manage.
Additionally, I realized that &quot;NanoWiki&quot; was not a very good name as this
...]]></description>
<pubDate>Sat, 15 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Python Development 2023</title>
<link>https://www.0ink.net/posts/2023/2023-04-01-python-dev-1.html</link>
<description><![CDATA[
Python development on Windows
Distributing Python scripts as single EXE or Directory
Installing netifaces on Windows
Documentation generation

...]]></description>
<pubDate>Tue, 25 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry Pi emulation with Qemu</title>
<link>https://www.0ink.net/posts/2023/2023-03-01-rpi-emulation.html</link>
<description><![CDATA[The idea here is that we use a Desktop PC for developing/debugging
Raspberry Pi set-ups using qemu for emulating Rasperrby Pi.
qemu currently supports the following configurations:

Raspberry Pi Zero and 1A+ (armhf)
Raspberry Pi 2B (armv7)
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Home Assistant Wall Panel</title>
<link>https://www.0ink.net/posts/2023/2023-02-20-wallpanel.html</link>
<description><![CDATA[For a while I was using TabletClock with old tablets.  But
this has not been updated in a while.  I was thinking of writing my
own version until I found WallPanel.
Essentially it is purposely built web-browser with special features which makes it
possible to use it to replaces TabletClock.  Essentially, I could
replace TabletClock with a web-page showing the time and a weather
...]]></description>
<pubDate>Wed, 11 Jan 2023 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>RDP vs VNC</title>
<link>https://www.0ink.net/posts/2023/2023-02-10-rdp-vs-vnc.html</link>
<description><![CDATA[For years I have been using VNC for my remote desktop needs.  This works
usually well enough.  The features that I like are:

Basic set-up is easy
Desktop sessions are persistent
Can be used to view an actual X11.org desktop.
...]]></description>
<pubDate>Wed, 11 Jan 2023 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>QNAP Snapshots</title>
<link>https://www.0ink.net/posts/2023/2023-02-01-qsnap.html</link>
<description><![CDATA[I wrote a small tool to access QNAP snapshots from the Linux command line.
Pre-requistes:

Snapshots have to be enabled
You need a /share/netcfg containing the file:

...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Docker on Void</title>
<link>https://www.0ink.net/posts/2023/2023-01-20-docker-on-void.html</link>
<description><![CDATA[This is a quick recipe to run Docker on void:

Make sure your system is up-to-date:

sudo xbps-install -Syu

...]]></description>
<pubDate>Tue, 01 Apr 2025 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Home Assistant sensors</title>
<link>https://www.0ink.net/posts/2023/2023-01-10-hassio-sensors.html</link>
<description><![CDATA[I finished migrating my VeraEdge to Home Assistant.  I think after
using it for some time, I find Home Assistant far superior to the
VeraEdge in every way.
So, I took the time to mostly standardise my sensors which make things simpler to
manage/mantain.
As such, essentially I am only using 4 types of sensors:
...]]></description>
<pubDate>Wed, 11 Jan 2023 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Happy New Year 2023</title>
<link>https://www.0ink.net/posts/2023/2023-01-01-new-year.html</link>
<description><![CDATA[
Best wishes for 2023!
This website is now 10 Years Old.
...]]></description>
<pubDate>Wed, 11 Jan 2023 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Home Assistant RFXCOM Integration</title>
<link>https://www.0ink.net/posts/2022/2022-12-20-hassio-rfx.html</link>
<description><![CDATA[RFXCOM RFXtrx
This integration is
to control RFXtrx devices.  I am using to control Somfy blinds and KlikAanKlikUit
remotes.

Add integration: RFXCOM RFXtrx
...]]></description>
<pubDate>Thu, 15 Dec 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Home Assistant Behind Reverse Proxy</title>
<link>https://www.0ink.net/posts/2022/2022-12-10-hassio-rev-proxy.html</link>
<description><![CDATA[To set-up a reverse proxy I took the following steps:

configure DNS
get Letsencrypt certificates
Configure NGINX
Configure Home Assistant to trust the proxy
...]]></description>
<pubDate>Thu, 15 Dec 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Looking up docker image tags</title>
<link>https://www.0ink.net/posts/2022/2022-12-01-docker-image-tags.html</link>
<description><![CDATA[This recipe is to check the tags defined for a specific Docker image
in docker.hub.
The basic API is at https://registry.hub.docker.com/v2
So the format is as follows:
https://registry.hub.docker.com/v2/repositories/{namespace}/{image}/tags/
Where:
...]]></description>
<pubDate>Thu, 15 Dec 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Home Assistant Large Clock</title>
<link>https://www.0ink.net/posts/2022/2022-11-21-hassio-large-clock.html</link>
<description><![CDATA[This recipe is my version of providing a &quot;large clock&quot; face in the
home assistant dashboard.
Enable serving local static files:

Create directory www in your config directory.
Restart home assistant.
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Home Assistant HTTP Based Authentication Backend</title>
<link>https://www.0ink.net/posts/2022/2022-11-11-hassio-httpbasicauth.html</link>
<description><![CDATA[This recipe is to authenticate users using a web server providing
Basic HTTP authentication
for it users.
This is useful if you want to consolidate users/passwords in a single
system.  So instead of managing users on Home Assistant you can
have all users managed from a central location.
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Moving to Home Assistant</title>
<link>https://www.0ink.net/posts/2022/2022-11-01-hassio.html</link>
<description><![CDATA[I am busy moving away from my VeraEdge
installation to a Home Assistant running on a Raspberry Pi 4.  This is
because it looks like the maker of the VeraEdge was bought and it is slowly being
phased out.
For this I am using the following parts:

...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Markdown cheat sheet</title>
<link>https://www.0ink.net/posts/2022/2022-10-20-md-cheatsheet.html</link>
<description><![CDATA[This is intended as a quick reference and showcase. For more complete info,
see John Gruber's original spec
and the Github-flavored Markdown info page.
Headers
Source:

...]]></description>
<pubDate>Wed, 12 Oct 2022 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Nanowiki</title>
<link>https://www.0ink.net/posts/2022/2022-10-10-nanowiki.html</link>
<description><![CDATA[NanoWiki is a Wiki implementation based on picowiki.
I have been using SimpleNote for a number of years.  It works pretty well
but somehow I was looking for:

Ability to include and render nice asciiart pictures
Organizes articles in a folder structure.
...]]></description>
<pubDate>Wed, 12 Oct 2022 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>X728 kit for Raspberry Pi 4</title>
<link>https://www.0ink.net/posts/2022/2022-10-01-x728.html</link>
<description><![CDATA[As part of my small project of movng my Z-Wave Hub to a Raspberry PI, I got an
X728 kit.  This has:

UPS controller board

RTC circuit
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>cuylib</title>
<link>https://www.0ink.net/posts/2022/2022-09-20-cuylib.html</link>
<description><![CDATA[This is a tiny library to implement Web server embedded editor.
You can find it in github.
Can be used either from haserl or directly from
a shell script.
Features:

...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Photoprism</title>
<link>https://www.0ink.net/posts/2022/2022-09-10-photoprism.html</link>
<description><![CDATA[photoprism is a web based photo management application.
From its website:

PhotoPrism® is an AI-Powered Photos App for the Decentralized Web.
It makes use of the latest technologies to tag and find pictures
automatically without getting in your way. You can run it at home,
...]]></description>
<pubDate>Tue, 20 Sep 2022 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SupervisorUI MF</title>
<link>https://www.0ink.net/posts/2022/2022-09-01-supervisorui-mf.html</link>
<description><![CDATA[In a previous article, I updated a supervisorui project to work for me.
This updated version supervisorui-redone is essentially a PHP application
which is a different approach from the original supervisorui project
which was more of a JavaScript application with some helper functionality implemented
in PHP.
As such, I figured that I could probably fix the supervisorui code base
...]]></description>
<pubDate>Thu, 01 Sep 2022 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Supervisorui REDONE</title>
<link>https://www.0ink.net/posts/2022/2022-08-25-supervisorui-redone.html</link>
<description><![CDATA[Currently I am using docker containers to deploy applications.  A number of those
containers make use of supervisord for managing processes.  While
supervisord itself comes with a UI, it is unhandy for me because each
container is its own supervisord instance.
So I was interested in some software that would let me manage multiple
supervisord instances in a single page.  Turns out that there
...]]></description>
<pubDate>Thu, 25 Aug 2022 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>voidlinux virtualization</title>
<link>https://www.0ink.net/posts/2022/2022-08-14-void-kvm.html</link>
<description><![CDATA[This recipe is for setting virtualization on a voidlinux desktop.
Use this setup script to set things up on void linux.
Connecting to libvirtd
Note that virsh and virt-manager commands connect to different libvirtd
sessions by defauult.
virsh defaults to qemu:///session while virt-manager to qemu:///system.
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>A couple of useful sites for development</title>
<link>https://www.0ink.net/posts/2022/2022-05-29-websites.html</link>
<description><![CDATA[Unicode
Can be useful for looking up unicode code points.  Particularly
useful for looking up accented characters.  Another interesting
use is for UI graphics characters.
Unicode search
Another site to search for unicode characters.
...]]></description>
<pubDate>Mon, 03 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Keyboard Mouse control</title>
<link>https://www.0ink.net/posts/2022/2022-02-13-keyboard_mouse.html</link>
<description><![CDATA[This comes in handy when working at a colo or someplace where you
don't have a mouse and then find yourself needing to use X11. Press
the following key combo:
Ctrl-Shift-Numlock
Now you can control the mouse pointer using the number pad.  The
key bindings are:
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>flatpak</title>
<link>https://www.0ink.net/posts/2022/2022-02-08-flatpak.html</link>
<description><![CDATA[Flatpak is a utility for software deployment and package management for
Linux. It is advertised as offering a sandbox environment in which users
can run application software in isolation from the rest of the system.
Flatpak was developed as part of the freedesktop.org project and was
originally called xdg-app.
Snap vs Flatpak
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My git release script</title>
<link>https://www.0ink.net/posts/2022/2022-01-12-ghrelease.html</link>
<description><![CDATA[I always had issues remembering how to create releases.
So in order to standardise things, I wrote this script:

ghrelease

So whenever I am ready to release I would then just issue
...]]></description>
<pubDate>Sun, 16 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Meta Database</title>
<link>https://www.0ink.net/posts/2022/2022-01-10-meta_db.html</link>
<description><![CDATA[So I was looking for a way to version control database schemas,
but I never found something that worked for me.  I found all
these options that never seem to match what I wanted:

metabase
dbv
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>lnbin</title>
<link>https://www.0ink.net/posts/2022/2022-01-10-lnbin.html</link>
<description><![CDATA[This is my lnbin script.
This is a program for managing symlink in a /usr/local/bin
directory.  It is similar to stow, lndir, cleanlinks and
others.
The approach used by lnbin is based on Stow, and it is to install
each into its own tree, then use symbolic links to make its bin
...]]></description>
<pubDate>Mon, 03 Jun 2024 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Linux Icons</title>
<link>https://www.0ink.net/posts/2022/2022-01-10-linux_icons.html</link>
<description><![CDATA[A quick note on how to add icons to menus in a Linux desktop.

Create the icon image in: /usr/share/pixmaps.

png and svg (and maybe others) are supported.
24x24 seems to be a good size for menus.
...]]></description>
<pubDate>Sun, 16 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>nas ops cmd</title>
<link>https://www.0ink.net/posts/2022/2022-01-05-ops.html</link>
<description><![CDATA[This is my op script.
This is stupidly simple script to elevate priviledges in order to
manage NFS shares on my QNAP NAS.
The idea is that NFS shares do squash-root so admin access is
disallowed through NFS.  This gives a convenient way to issue
root level commands without using NFS but instead use ssh
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Linux stuff</title>
<link>https://www.0ink.net/posts/2022/2022-01-04-linuxstuff.html</link>
<description><![CDATA[Sudoers
Since sudo v1.9, it is possible to use the following
statements:

#includedir
@includedir
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Graphviz markdown extensions</title>
<link>https://www.0ink.net/posts/2022/2022-01-04-graphviz.html</link>
<description><![CDATA[I have enabled several extensions to my pelican website.
One that I wanted to include was graphviz.  So, I searched
for one and while I found a few, they somehow, did not work for me.
So I wrote my own: mdx_graphviz.
It is quite straight forward.  You just need to create blocks:
dot {
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Pelican Test page</title>
<link>https://www.0ink.net/posts/2021/2021-12-26-pelican_tests.html</link>
<description><![CDATA[
shortcodes
mytags
Drawings

aafigure
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>DVTM</title>
<link>https://www.0ink.net/posts/2021/2021-12-23-dvtm.html</link>
<description><![CDATA[The other day I found dvtm.  Looking at it, it
looks very nice.  It appeals to me because I am particularly
fond of text user interfaces.

At the end I choose not to use it because:

...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Migration to Pelican</title>
<link>https://www.0ink.net/posts/2021/2021-12-22-pelican.html</link>
<description><![CDATA[Finally got fedup with github pages and its jekyll
static site generator.  Essentially things would break without
any particular reason and there would be nearly no way to
tell what went wrong.  I addition, it was not easy to test
changes before making them public.
So I switched to pelican, essentially because it was
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Storing secrets in git</title>
<link>https://www.0ink.net/posts/2021/2021-12-22-git-crypt.html</link>
<description><![CDATA[So I gave into the temptation to store &quot;secret&quot; data into
a git repository.  Of course, to keep things
safer, I chose to use an encryption tool.  So I tested:

git-crypt
git-secret
...]]></description>
<pubDate>Tue, 04 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Enable syslog with void</title>
<link>https://www.0ink.net/posts/2021/2021-12-21-void-syslog.html</link>
<description><![CDATA[In void Linux, the default is without logging.  Most
cases it is OK for desktop use.
If you want to enable syslog service in void,
you need to install:
socklog-void
Also to let your user have access to the logs, use:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Stupid SSL tricks</title>
<link>https://www.0ink.net/posts/2021/2021-12-21-ssl-tips.html</link>
<description><![CDATA[Some hints and tips foor doing SSL related things:
Netcat for SSL
This command lets you connect to a SSL server (a-la netcat):
cat request.txt | openssl s_client -connect server:443
Creating self-signed certificates
This is a single command to generate a self-signed certificate:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Linux Post Install tasks</title>
<link>https://www.0ink.net/posts/2021/2021-12-21-linux-tips.html</link>
<description><![CDATA[These tips are for void linux as that is the distro
I am using nowadays.

mate tricks: change background from cli

dconf write /org/mate/desktop/background/picture-filename "'PATH-TO-JPEG'"
...]]></description>
<pubDate>Sun, 26 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My tale of IPv6 blues</title>
<link>https://www.0ink.net/posts/2021/2021-12-21-ipv6-blues.html</link>
<description><![CDATA[My ISP provider is KPN.  They recently enabled
IPv6 in my street.  I was using before a IPv6 Tunnel Broker,
starting with SixXS and after they went out,
with Hurricane Electric.  So naturally,
I decided to switch to KPN's native IPv6 service.
They provide a /64 prefix, which is reasonable.  Would be better
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Replacing emacs...</title>
<link>https://www.0ink.net/posts/2021/2021-12-20-geany.html</link>
<description><![CDATA[So after over 30 years of using GNU emacs I have switched
to a more modern options.
So I am using:

Geany: For use in a Window environment (both X11 and MSWIN)
micro: For command line use
...]]></description>
<pubDate>Sun, 26 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Linux HDMI hotplug</title>
<link>https://www.0ink.net/posts/2021/2021-02-28-hotplug-hdmi.html</link>
<description><![CDATA[Now in 2024 this is usually no longer needed.
A more current solution is:

https://github.com/phillipberndt/autorandr

The point of this article is to document I workaround that I came
...]]></description>
<pubDate>Fri, 12 Jul 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Alpine Boot switcher</title>
<link>https://www.0ink.net/posts/2020/2020-10-04-alpine-boot-switcher.html</link>
<description><![CDATA[I boot from a USB boot drive using UEFI.  Because of the UEFI boot,
it just a matter of copying the files from the alpine
ISO to a USB thumbdrive VFAT32 partition.  Partition may be set to
EFI (but this doesn't seem to be required).
Since I would like to switch between different alpine versions,
I wrote a script to let me have multiple alpine versions and
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>PulseAudio hints and tricks</title>
<link>https://www.0ink.net/posts/2020/2020-10-03-pa-hints.html</link>
<description><![CDATA[PulseAudio is nowadays the default sound system in many Linux
distributions.  It lets you do a number of useful things.
PulseAudio comes with a handy command line utility pacmd to do a
number of things.
pacmd commands

...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Getting the current proxy pac configuration</title>
<link>https://www.0ink.net/posts/2020/2020-10-02-windows-proxy-pac.html</link>
<description><![CDATA[This is done using tcl for convenience.  If you
do not have it installed you can download freewrap
executable and rename freewrap.exe to wish.exe or freewrapTCLSH.exe to
tclsh.exe.
Registry Key : HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
REG_SZ AutoConfigURL = https://&lt;your url&gt;/proxy.pac
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Definiton of maturity</title>
<link>https://www.0ink.net/posts/2020/2020-04-06-maturity.html</link>
<description><![CDATA[Maturity is:
The ability to stick with a job until it’s finished.
The ability to do a job without being supervised.
The ability to carry money without spending it.
And the ability to bear an injustice without wanting to get even.
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Using XScreenSaver Hacks with mate-screensaver</title>
<link>https://www.0ink.net/posts/2020/2020-03-19-mate-screensaver-hacks.html</link>
<description><![CDATA[Here we explain how to use XScreenSaver EXCELLENT
screensaver hack collection with the MATE screensaver
applet.

Install xscreensaver and mate-screensaver
On my linux distribution this creates the following directories:
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>nginx&#039;s auth_request_module howto</title>
<link>https://www.0ink.net/posts/2019/2019-05-10-nginx_mod_authrequest.html</link>
<description><![CDATA[This article tries to supplement the nginx documentations
regarding the auth_request module
and how to configure it.  In my opinion, that documentation
is a bit incomplete.
What is the nginx's auth_request module
The documentation for this module says, it implements client
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Python Virtual Environments</title>
<link>https://www.0ink.net/posts/2019/2019-05-01-python-venv.html</link>
<description><![CDATA[This is the least you need to know to get to use a Python virtual
environment.
What is a Virtual Environment
At its core, the main purpose of Python virtual environments is to
create an isolated environment for Python projects. This means that
each project can have its own dependencies, regardless of what
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Secure erase of disc drives</title>
<link>https://www.0ink.net/posts/2019/2019-04-20-secure-erase.html</link>
<description><![CDATA[This article is about erasing disc drives securely.  Specially for SSD
drives, writing zeros or random data to discs is not good enough and
counterproductive.
One way to do secure erase (for disposal) is to begin with an encrypted
disc.  However, after the fact the following options are possible:
ATA Secure Erase
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Co-existing GLIBC binaries with Void-Linux MUSL edition</title>
<link>https://www.0ink.net/posts/2019/2019-04-10-void-musl-with-glibc.html</link>
<description><![CDATA[I am running void-linux at home with musl as the standard
C library.
While most things work well, there is a number of programs that
do not and must be using glibc counterparts.
To enable this I followed this guide here: Live switching Void Linux from glibc to musl.
To set-up:
...]]></description>
<pubDate>Wed, 01 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Calculate system availability</title>
<link>https://www.0ink.net/posts/2019/2019-04-01-availability-calculations.html</link>
<description><![CDATA[To calculate the availability of redundant systems you can
use this formula:
total_avail = 1-(1 - single_avail) ^ (number_of_nodes)


  Nodes: 
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Ad-Hoc rsync daemons</title>
<link>https://www.0ink.net/posts/2019/2019-03-20-adhoc-rsync.html</link>
<description><![CDATA[The other day I needed to copy a bunch of files between to servers
in my home network.  Because of the volume I wanted to copy the files
without having to go through ssh's encryption overhead.  So I
figured I could use netcat for the data transport.
To do that I wrote these short scripts.
Remote scripts
...]]></description>
<pubDate>Fri, 02 Feb 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Resizing Virtual Disks with virsh</title>
<link>https://www.0ink.net/posts/2019/2019-03-10-resizing-vdisks.html</link>
<description><![CDATA[I am currently using libvirt for managing my VMs.  For virtual discs
I am using LVM2 volumes.  On a regular basis I need to resize
these virtual discs, but not that often that I can do this from
memory.  This is a short procedure to do this:
ls -l /dev/vgX/lvX      # note down the major/minor numbers for later
lvextend -L +50G /dev/vgX/lvX   # adding 50GB to this volume
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Z-Wave Associations with With Vera UI</title>
<link>https://www.0ink.net/posts/2019/2019-03-01-z-wave-associations-with-vera.html</link>
<description><![CDATA[I couldn't find any to the point documentation on how to do this,
so I am writing this.
The way I understand Z-Wave associations work is that once devices
are in the same Z-Wave network, a device can directly send
a command to another device without intervention of the Hub
or controller.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Encrypting FileSystem in Void Linux</title>
<link>https://www.0ink.net/posts/2019/2019-02-28-encrypting-fs-in-void.html</link>
<description><![CDATA[The point of this recipe is to create a encrypted file sytem
so that when the disc is disposed, it does not need to be
securely erased.  This is particularly important for SSD devices
since because of block remapping (for wear levelling) data can't
be overwritten consistently.
The idea is that the boot/root filesystem containing the encryption
...]]></description>
<pubDate>Wed, 01 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Installing Void Linux</title>
<link>https://www.0ink.net/posts/2019/2019-02-19-installing-void.html</link>
<description><![CDATA[I made the switch to void linux.  Except for compatibility
issues around glibc, it works quite well.  Most compatibility
I have worked around with a combination of Flatpaks, chroots and
namespaces.
The highlights of void linux:

...]]></description>
<pubDate>Wed, 09 Jul 2025 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My Linux Keyboard Shortcuts</title>
<link>https://www.0ink.net/posts/2019/2019-02-11-my-linux-shortcuts.html</link>
<description><![CDATA[In general we try to be similar to MS-Windows shortcuts.
Default bindings (in MATE)



Key
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Global Windows Keyboard Shorcuts</title>
<link>https://www.0ink.net/posts/2019/2019-02-10-windows-shortcuts.html</link>
<description><![CDATA[Common Window Management Shortcuts



Key
Action
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Third Party SimpleNote clients</title>
<link>https://www.0ink.net/posts/2019/2019-01-08-simplenote-clients.html</link>
<description><![CDATA[An inventory of simplenote clients:
SimpleNote clients:

sncli
nvpy
notestack
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Docker on Alpine Linux</title>
<link>https://www.0ink.net/posts/2018/2018-09-22-docker-notes.html</link>
<description><![CDATA[Alpine Linux Quick installation
See wiki  For Alpine Linux &gt; 3.8

Un-comment community repo from /etc/apk/repositories
apk add docker
rc-update add docker boot
...]]></description>
<pubDate>Tue, 04 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Alpine on OTC</title>
<link>https://www.0ink.net/posts/2018/2018-08-29-alpine-on-otc.html</link>
<description><![CDATA[These are just random thoughts nothing really was implemented.
Alpine Linux image


preparation: jq and other deps to /apks/x86_64

...]]></description>
<pubDate>Tue, 04 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Windows Account Lockouts</title>
<link>https://www.0ink.net/posts/2018/2018-07-19-locking-account.html</link>
<description><![CDATA[To prevent windows lockouts the following can be done:

Delete Internet Explorer browsing history
Run the following:

Open Start --&gt; Search filed--&gt; Type in Run --&gt; rundll32.exe keymgr.dll, KRShowKeyMgr --&gt; Delete
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Skipping grep when using AWK</title>
<link>https://www.0ink.net/posts/2018/2018-07-11-awk-vs-grep.html</link>
<description><![CDATA[Over the years, We've seen many people use this pattern (filter-map):
$ [data is generated] | grep something | awk '{print $2}'
but it can be shortened to:
$ [data is generated] | awk '/something/ {print $2}'
You (probably) don't need grep
Following this logic, you can replace a simple grep with:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Naming Schemes</title>
<link>https://www.0ink.net/posts/2018/2018-07-04-Naming-schemes.html</link>
<description><![CDATA[This web site contains list of names of different topics.  This
can be used for naming schemes:
Naming Schemes
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Build a VR app in 15 minutes</title>
<link>https://www.0ink.net/posts/2018/2018-06-18-build-vr-app.html</link>
<description><![CDATA[In 15 minutes, you can develop a virtual reality application and run
it in a web browser, on a VR headset, or with Google Daydream.
The key is A-Frame, an open source toolkit built
by the Mozilla VR Team.
Test It
Open this link
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Set your google account to automatically delete</title>
<link>https://www.0ink.net/posts/2018/2018-06-17-google-auto-delete.html</link>
<description><![CDATA[Want to share your family photos after your death, but take your
search history to the grave? All that and more is possible with
Google's Inactive Account Manager.
How You Can Control Your Information After Death
It's not nice to think about, but one day, you will die, along with
the keys to your online kingdom. And these days, those online accounts
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>HTML Entities</title>
<link>https://www.0ink.net/posts/2018/2018-06-16-html-entities.html</link>
<description><![CDATA[(remember the ampersand at the start and the semi-colon at the end of each &quot;tag&quot;)
| &Aacute; | &amp;Aacute; |
| &aacute; | &amp;aacute; |
| &Agrave; | &amp;Agrave; |
| &Acirc; | &amp;Acirc; |
| &agrave; | &amp;agrave; |
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>3 Open Source Password Managers</title>
<link>https://www.0ink.net/posts/2018/2018-06-15-password-managers.html</link>
<description><![CDATA[Keep your data and accounts safe by using a secure open source
password manager to store unique, complex passwords.
Maintaining complex, unique passwords for each site and service you
use is among the most common pieces of advice that security
professionals provide to the public every year.
Yet no matter how many times it is said, it seems like a week doesn't
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>How to encrypt linux partitions with LUKS</title>
<link>https://www.0ink.net/posts/2018/2018-06-14-linux-disk-encryption.html</link>
<description><![CDATA[There are plenty of reasons why people would need to encrypt a
partition. Whether they're rooted it in privacy, security, or
confidentiality, setting up a basic encrypted partition on a Linux
system is fairly easy. This is especially true when using LUKS, since
its functionality is built directly into the kernel.
Installing Cryptsetup
...]]></description>
<pubDate>Fri, 29 Sep 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Open Source Alternatives to Visio</title>
<link>https://www.0ink.net/posts/2018/2018-06-11-visio-alternatives.html</link>
<description><![CDATA[Need to create diagrams, flowcharts, circuits, or other kinds of
entity-relationship models? Microsoft Visio is without a doubt the
best software for that, but that doesn't mean it's the best choice
for you.
Visio may be the industry standard in the corporate world, but it
comes with a huge drawback: it's expensive ($299 for the standard
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>10 tips for making documentation crystal clear</title>
<link>https://www.0ink.net/posts/2018/2018-06-10-documentation-tips.html</link>
<description><![CDATA[So you've some written excellent documentation. Now what? Now it's
time to go back and edit it. When you first sit down to write your
documentation, you want to focus on what you're trying to say instead
of how you're saying it, but once that first draft is done it's time
to go back and polish it up a little.
One of my favorite ways to edit is to read what I've written aloud.
...]]></description>
<pubDate>Tue, 22 Oct 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Project Requirements</title>
<link>https://www.0ink.net/posts/2018/2018-06-07-project-requirements.html</link>
<description><![CDATA[This is sometimes so true!

...]]></description>
<pubDate>Wed, 02 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Ascii Art Tools</title>
<link>https://www.0ink.net/posts/2018/2018-06-07-ascii-art.html</link>
<description><![CDATA[Here are some resources dealling with ASCII art...

AsciiToSVG - PHP code
to convert ascii art into SVG.
AsciiFlow - Web App implement an ascii art
editor.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>6 Cloud-Based Tools To Help You Build A Web App With Ease</title>
<link>https://www.0ink.net/posts/2018/2018-06-06-web-app-build-tools.html</link>
<description><![CDATA[In just a relatively short amount of time, building mobile apps has
transformed from a process that included lots of knowledge in
developing into something that almost anyone can do. Cloud-based tools
are quickly becoming the norm for app developers, and these are some
of the highest recommended tools, each one being ideal for certain
developers.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>So the server crashed</title>
<link>https://www.0ink.net/posts/2018/2018-05-17-crash.html</link>
<description><![CDATA[Now we have to re-create things...
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>custom desktop ideas</title>
<link>https://www.0ink.net/posts/2018/2018-04-18-custom-desktop-ideas.html</link>
<description><![CDATA[
fast boot

Window Manager

Snap windows to border/windows
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Retropie</title>
<link>https://www.0ink.net/posts/2018/2018-03-01-retropie-notes.html</link>
<description><![CDATA[

DVD player


Bluetooth receiver 
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>using cachefiles on an Linux NFS share</title>
<link>https://www.0ink.net/posts/2018/2018-01-30-cache-nfs-files.html</link>
<description><![CDATA[If you often mount and access a remote NFS share on your system, you
will probably want to know how to improve NFS file access performance.
One possibility is using file caching. In Linux, there is a caching
filesystem called FS-Cache which enables file caching for network file
systems such as NFS. FS-Cache is built into the Linux kernel 2.6.30
and higher.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>VNC desktop</title>
<link>https://www.0ink.net/posts/2017/2017-11-12-vnc-desktop-client.html</link>
<description><![CDATA[IDEA:
Client connects &gt;
        &lt; server sends version string (Use 3.3 only)
Client replies with actual verison string &gt;
        &lt; server sends security type; NONE
Client send ClientInit (shared flag) &gt; 
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SimpleNote/Markdown editor</title>
<link>https://www.0ink.net/posts/2017/2017-10-19-markdown-simplenote-editing.html</link>
<description><![CDATA[We just load SimpleNote as a Desktop WebApp

Create first a basic markdown editor

styling

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Interesting wordpress plugins</title>
<link>https://www.0ink.net/posts/2017/2017-10-02-wordpress-plugins.html</link>
<description><![CDATA[
restrict categories
access control by category
site member
user access mgr
paid members
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Rollback with YUM History Command</title>
<link>https://www.0ink.net/posts/2017/2017-09-21-yum-history-command.html</link>
<description><![CDATA[From 2daygeek.com
Server patching is one of the important task of Linux system administrator to make the system more stable and better performance. All the vendors used to release security/vulnerabilities patches very often, the affected package must be updated in order to limit any potential security risks.
Yum (Yellowdog Update Modified) is RPM Package Management utility for CentOS and Red Hat systems, Yum history command allows administrator to rollback the system to a previous state but due to some limitations, rollbacks do not work in all situations, or The yum command may simply do nothing, or it may remove packages you do not expect.
I advise you to take a full system backup prior to performing any update/upgrade is always recommended, and yum history is NOT meant to replace systems backups. This will help you to restore the system to previous state at any point of time.
n some cases, the hosted applications might not work properly or through some error due to recent patch updates (It could be some library incompatibility or package upgrade), what will be the solution in this case?
Get in touch with App Dev team and figure it out an issue creating library' and packages then do the rollback with help of yum history command.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SeedBoxes</title>
<link>https://www.0ink.net/posts/2017/2017-09-20-SeedBox.html</link>
<description><![CDATA[A seedbox is a dedicated server at a high speed datacenter with a
public IP address for the downloading and seeding of bittorrent files.
Persons who have access to a seedbox can download these files to
their personal computers at any time and from any place that has an
internet connection.
References:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Centos Install notes</title>
<link>https://www.0ink.net/posts/2017/2017-07-12-install-centos-notes.html</link>
<description><![CDATA[Set-up local.repo
yum installs:

nfs-utils autofs
@x11
@xfce
...]]></description>
<pubDate>Tue, 04 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>android development</title>
<link>https://www.0ink.net/posts/2017/2017-06-24-android-dev.html</link>
<description><![CDATA[Android devs
Install JAVA
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Install SDK Tools:
Download the sdk-tools zip from here
mkdir /opt/android
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Securing rsync on ssh</title>
<link>https://www.0ink.net/posts/2017/2017-06-01-Securing-rsync-on-ssh.html</link>
<description><![CDATA[Reference: positon.org
You have 2 systems and you want to set up a secure backup with rsync + SSH of one system to the other.
Very simply, you can use:
backup.example.com# rsync -avz --numeric-ids --delete root@myserver.example.com:/path/ /backup/myserver/
To do the backup, you have to be root on the remote server, because some files are only root readable.
Problem: you will allow backup.example.com to do anything on myserver.example.com, where just read only access on the directory is sufficient.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Desktop environments on Centos 7</title>
<link>https://www.0ink.net/posts/2017/2017-04-18-desktop-environments-on-centos-7.html</link>
<description><![CDATA[These are commands to install different Desktop environments
on Centos7
Gnome
yum groupinstall 'GNOME Desktop'
KDE
yum groupinstall "KDE Plasma Workspaces"
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Telegram</title>
<link>https://www.0ink.net/posts/2017/2017-04-12-Telegram.html</link>
<description><![CDATA[Telegram is a messenger designed to overcome
the limitations of other messengers like WhatsApp or similar ones. It
is different and better than other messengers on more than one level.
A few of the important features that make it stand out among other
messengers are:

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Free Clipart sites</title>
<link>https://www.0ink.net/posts/2017/2017-04-11-free-clipart-sites.html</link>
<description><![CDATA[In 2014, Microsoft killed and buried Clipart
in the digital graveyard.
Clipart had outlived its usefulness as users relied more on search
engines than Microsoft' somewhat limited supply through the Office
suite.
Today' clipart needs to be modern, colorful, and less cartoonish. An
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Anti Roboto skills</title>
<link>https://www.0ink.net/posts/2017/2017-03-30-Anti-Robot-skills.html</link>
<description><![CDATA[Losing your job to robots is no longer a sci-fi fantasy.
Some estimates say, robots may take over more than five million jobs
across 15 developed countries. Machines could account for more than
half the workforce in places like Cambodia and Indonesia, particularly
in the garment industry.
While such information has led many people to seek out higher-tech
...]]></description>
<pubDate>Wed, 02 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>stop procrastinating</title>
<link>https://www.0ink.net/posts/2017/2017-03-24-stop-procrastinating.html</link>
<description><![CDATA[We are all guilty of procrastinating from time to time--here's always
something more interesting than the work in hand. We usually think it's
no big deal, since deadline is our biggest inspiration, and we do our
best work when we're inspired. We may even joke about it.
However, procrastination is a massive waste of time as it turns out.
A survey in 2015 found that on average, a person loses over 55 days
...]]></description>
<pubDate>Wed, 02 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>manage busyness</title>
<link>https://www.0ink.net/posts/2017/2017-03-24-manage-busyness.html</link>
<description><![CDATA[Former United States President Dwight Eisenhower was responsible for
putting together one of the most important yet fundamentally simple
to understand concepts in time management. Eisenhower's
Urgent/Important Principle is a tool to help decipher what tasks need
to be addressed more immediately than others. Anyone who uses the
principle will be better able to organize and orchestrate their
...]]></description>
<pubDate>Wed, 02 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Kivy</title>
<link>https://www.0ink.net/posts/2017/2017-03-19-kivy.html</link>
<description><![CDATA[Today I want to briefly write about kivy.  kivy is an
Python library intended for developing Mobile Apps.  It is a
cross-platform library that runs on Android, iOS,
Linux, OS X and Windows.  It is licensed under
the MIT, so it is free and open source.
Kivy is the main framework developed by the Kivy organisation, alongside with Python for Android,
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Mail Archiver ideas</title>
<link>https://www.0ink.net/posts/2017/2017-03-10-mail-archiver-ideas.html</link>
<description><![CDATA[We use it for receiving junk e-mails (i.e. for those times where we need an e-mail address for sign-up to a service).
E-mails are of the form:
ar-XXXX@0ink.net
TODO:
Extend postie:

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Fixed drive letters for removable USB sticks</title>
<link>https://www.0ink.net/posts/2017/2017-02-03-fixed-drive-letters-for-removable-usb-sticks.html</link>
<description><![CDATA[If you use multiple USB drives, you've probably noticed that the drive letter can be
different each time you plug one in. If you'd like to assign a static letter to a drive that's
the same every time you plug it in, read on.
Windows assigns drive letters to whatever type of drive is available. This can be annoying
especially if you use backup tools or portable apps that prefer to have the same drive letter
every time.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Portable Console</title>
<link>https://www.0ink.net/posts/2017/2017-01-25-portable-console.html</link>
<description><![CDATA[portable console
Set scrolling region:
printf "\033[1;24r"
Reset scrolling region:
printf "\033[r"
However, it is easier/better to do:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Xnest</title>
<link>https://www.0ink.net/posts/2017/2017-01-24-xnest.html</link>
<description><![CDATA[This trick lets you run X-Windows within an X-Windows session.
This is kinda like running VNC.  It is useful for testing scenarios.
#!/bin/sh
Xnest :1 -name "Bla" -ac -geometry 800x600 &amp;amp;
sleep 1
export DISPLAY=:1
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>CyberWorld 2017.1</title>
<link>https://www.0ink.net/posts/2017/2017-01-20-cyberworld-2017.html</link>
<description><![CDATA[Development


travis cordova build


...]]></description>
<pubDate>Tue, 04 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Side Load apps on Android TV</title>
<link>https://www.0ink.net/posts/2017/2017-01-10-side-load-apps-on-android-tv.html</link>
<description><![CDATA[So we bough a Philips 50PFK6540.  This is a 50&quot; TV with
Ambi Ligh and
Android TV.
One of the things I wanted to do from the very start was to load my own APKs.  This was not
possible until a recent (2016) update that enabled the &quot;Install from Unknown Sources&quot;
setting option.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Building Signed APKs</title>
<link>https://www.0ink.net/posts/2016/2016-12-11-building-signed-apks.html</link>
<description><![CDATA[Building signed APK's for Android is easy if you know what you
are doing.
This article goes over the preparation steps and the additional
build instructions needed to created signed APKs.
Preparation
First you need to have a keystore.  Use this command:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Archiving DVDs and CDs</title>
<link>https://www.0ink.net/posts/2016/2016-12-05-archiving-dvds-and-cds.html</link>
<description><![CDATA[Since now I have a Android TV I put away my HTPC and with that the capability to view DVDs or
listen CDs directly.
So I converted my entire CD and DVD library to media files and stored in my home NAS.
Since we are talking hundreds of DVDs and CDs, I was using some tools.
CD ripping
For CD ripping, pretty much everything can be done with abcde.
...]]></description>
<pubDate>Sun, 26 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Writing Safe Shell scripts</title>
<link>https://www.0ink.net/posts/2016/2016-11-23-writing-safe-shell-scripts.html</link>
<description><![CDATA[Writing shell scripts leaves a lot of room to make mistakes, in ways that will cause
your scripts to break on certain input, or (if some input is untrusted) open up security
vulnerabilities. Here are some tips on how to make your shell scripts safer.
Don't
The simplest step is to avoid using shell at all. Many higher-level languages are both
easier to write the code in in the first place, and avoid some of the issues that shell
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>editor to replace emacs</title>
<link>https://www.0ink.net/posts/2016/2016-11-15-editor-evaluation.html</link>
<description><![CDATA[At the end, I switched to geany
GUI

TextAdept
Bluefish Editor
editra
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>MariaDB Quickest Quick start</title>
<link>https://www.0ink.net/posts/2016/2016-11-14-mariadb-quickest-quick-start.html</link>
<description><![CDATA[This article outlines the bare minimum to get
a MariaDB or MySQL database up and running.
It covers a CentOS/RHEL and an ArchLinux installs.
Make sure your system is up to date:


...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Jaxon: Call PHP classes from JavaScript using AJAX</title>
<link>https://www.0ink.net/posts/2016/2016-11-14-jaxon-call-php-classes-from-javascript-using-ajax.html</link>
<description><![CDATA[Jaxon is an open source PHP library for easily creating Ajax web applications. It allows into a web page to make direct Ajax calls to PHP classes that will in turn update its content, without reloading the entire page.
Jaxon implements a complete set of PHP functions to define the contents and properties of the web page. Several plugins exist to extend its functionalities and provide integration with various PHP frameworks and CMS.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Building chroots with yum</title>
<link>https://www.0ink.net/posts/2016/2016-11-14-building-chroots-with-yum.html</link>
<description><![CDATA[Building CHROOTs with Yum in a single command:
yum --releasever=7 --installroot=/chroot/jail2 -y install httpd
Will install httpd with all its dependancies.  If you are on x86_64 and want a 32 bit chroot:
setarch i386 yum --releasever=6 --installroot=/chroot/jail32 -y install httpd
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My WordPress plugins</title>
<link>https://www.0ink.net/posts/2016/2016-11-07-my-wordpress-plugins.html</link>
<description><![CDATA[For my own purposes I have written a number of WordPress plugins.

S3Copy - Makes backup copies of your pictures to an S3
Compatible server.  I use sirv.com myself.  It also mangles  tags so
files are server from the S3 bucket.
wptools - A collection of WordPress related functionality.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>vr starting points</title>
<link>https://www.0ink.net/posts/2016/2016-11-06-vr-startup.html</link>
<description><![CDATA[
vr boilerplate
threejs
vr chrome experimets
google cardboard
google cardboard
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Hosting WordPress on OpenShift</title>
<link>https://www.0ink.net/posts/2016/2016-10-29-hosting-wordpress-on-openshift.html</link>
<description><![CDATA[
So I finally moved my WordPress web sites to OpenShift.
OpenShift is a cloud based Platform-as-a-Service offering from RedHat.   And while there is a learning curve I would say that so far it works great.
My implementation is a fully cloud based solution. Makes use of the following services:

GitHub for code hosting
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>CSR ideas</title>
<link>https://www.0ink.net/posts/2016/2016-10-14-csr-ideas.html</link>
<description><![CDATA[Work improvements
NFR

Javascript single page application

JS GUI
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>game lists</title>
<link>https://www.0ink.net/posts/2016/2016-10-12-games-list.html</link>
<description><![CDATA[
Cybernator
Darius Twin
Another World | Out of this World
Front Mission Series
Strike Gunner
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>JavaScript resources</title>
<link>https://www.0ink.net/posts/2016/2016-08-23-javascript-links.html</link>
<description><![CDATA[
Typescript
voxeljs
ige

More powerful github web pages
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Programming 2016</title>
<link>https://www.0ink.net/posts/2016/2016-06-06-programming-2016.html</link>
<description><![CDATA[Programming 2016

GWT and GWT on Mobile and Java servlets

Generate Excel
http://www.gwtproject.org/overview.html
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Managing our personal finances</title>
<link>https://www.0ink.net/posts/2016/2016-05-22-managing-our-personal-finances.html</link>
<description><![CDATA[During my last vacation I wanted to move how we manage our personal
finances away from the ad-hoc spreadsheet that we had been using for
the past few years. I envisioned something server side, so I wouldn't
need to add software on my wife's computer. And initial quick run
through of server side software did not yield anything that interested
me. In general I could only find full accounting applications, which
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Starting with 3D Printing</title>
<link>https://www.0ink.net/posts/2016/2016-03-20-starting-with-3d-printing.html</link>
<description><![CDATA[So I finally tried my hand at 3D printing. Obviously I did not buy at 3D printer. These are either quite expensive or you need to assemble them yourself, which I don't think is in my capacity level.
To get started, you first need a 3D model to print. There are several 3D models available in Thingieverse, however I actually wanted to make my own model. After all, that is the whole point of 3D printing. Custom made parts/objects that can be printed as needed.
To create a 3D model you need some 3D modelling software. For my very first model I opted for TinkerCAD. This is software that runs on the cloud that lets you create your own 3D models. This is particularly interesting because you don't need to install anything on your computer and it would essentially run on anything where a web browser runs.
For a web based application, it is quite responsive and feature-full. You can use (like me) a facebook account to sign-in.
Models can then be downloaded as an &quot;.stl&quot; file (the format used by 3D printers) or send directly to 3D printing service such as 3D Hubs.
3D Hubs, is an online 3D Printing service which facilitates transactions betwen 3D Printer owners (Hubs) and people who want to make 3D prints. Printer owners can join the platform to offer 3D printing services while customers can locate printer owners to get their 3D models printed nearby.
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>OpenShift notes</title>
<link>https://www.0ink.net/posts/2016/2016-03-10-openshift-notes.html</link>
<description><![CDATA[THIS IS FOR ARCHIVAL PURPOSES.  THIS IS OUT-OF-DATE
backup OpenShift
openshift getenv(USER) from OpenShift php
ssh to {user}@{app-domain} gear snapshot  &gt; file
Run gear app
OpenShift migration further notes
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Windows administration from the command line</title>
<link>https://www.0ink.net/posts/2016/2016-02-02-windows-administration-from-the-command-line.html</link>
<description><![CDATA[Windows system administration is very mouse driven and to reach
all tools you need to browse through Windows explorer.
If you are like me and prefer to log on a limited privilege account and use Runas to perform admin tasks, you can open these consoles with the .msc file names.
Here is a list of admin tools with their .msc file names.

domain.msc: AD Domains and Trusts
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Deploying Kerberos based SSO</title>
<link>https://www.0ink.net/posts/2016/2016-01-11-deploying-kerberos-based-sso.html</link>
<description><![CDATA[This article goes over how to implement Single-Sign-On
on Linux.  It goes over the integration around
the Kerberos service and the applications, like for example
FireFox.
Pre-requisites

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>clipping ideas</title>
<link>https://www.0ink.net/posts/2015/2015-12-11-clipping-notes.html</link>
<description><![CDATA[
Divide into

Work : Only visible to company and clients
Personal: Public/Private areas

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Let&#039;s Encrypt</title>
<link>https://www.0ink.net/posts/2015/2015-12-04-lets-encrypt.html</link>
<description><![CDATA[This is a service that let's you get SSL certificates for HTTPS. These certificates are trusted by major browsers. See Let's Encrypt This is a barebones howto to get SSL certificates:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
This contains the client software for let's encrypt.
./letsencrypt-auto certonly --manual
This will start by updating and getting any needed dependencies and then jump to a wizard like configuration to get this done. Follow the prompts and pay special attention on the prompt used to validate your domain. (You need to create a couple of folders and a file with the right content). Afterwards your certificates will be in:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>undup</title>
<link>https://www.0ink.net/posts/2015/2015-11-30-undup.html</link>
<description><![CDATA[So, after a long while, I wrote a new C language program. As usual,
the same things that I dislike about C programming popped up,
specifically the need for low level data structures and manual
memory management.
I did learn some new things:

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Markdown Javascript editors</title>
<link>https://www.0ink.net/posts/2015/2015-11-11-md-js-editors.html</link>
<description><![CDATA[VUE JS: Includes a Markdown editor example that allows edit with online preview next to it
Embeddable JS Markdown editor : Has a button to
preview
Editors that edit in preview-like mode

editor
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Picade Todo</title>
<link>https://www.0ink.net/posts/2015/2015-10-11-picade-todo.html</link>
<description><![CDATA[
key mappings

look up and label default mappings


...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Centos7/RHEL7 FirewallD -- the least you need to know</title>
<link>https://www.0ink.net/posts/2015/2015-09-21-centos7rhel7-firewalld-the-least-you-need-to-know.html</link>
<description><![CDATA[This post is just a simple hints-tips to get something going with FirewallD without going into too much detail.

Checking if you are using firewalld:

firewall-cmd --state

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry Pi Thin Client</title>
<link>https://www.0ink.net/posts/2015/2015-08-17-raspberry-pi-thin-client.html</link>
<description><![CDATA[Thin Client project want to create a very low price thin client over
Raspberry Pi board! Microsoft RDC, Citrix ICA, VMWare View, OpenNX &amp;
SPICE
RPITC
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry pi notes</title>
<link>https://www.0ink.net/posts/2015/2015-08-11-rasp-pi-notes.html</link>
<description><![CDATA[raspberry pi shops

NL based

sos solutions
hackerstore
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Replacing Emacs with Atom</title>
<link>https://www.0ink.net/posts/2015/2015-07-24-replacing-emacs.html</link>
<description><![CDATA[
As an old UNIX guy I have been using
emacs for years.
So in a way, I am very comfortable with using it and most of keyboard
shortcuts. But, it really is an old animal and I have been thinking
that I should be moving to a more modern replacement to it for quite
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Online IDEs</title>
<link>https://www.0ink.net/posts/2015/2015-07-24-online-ides.html</link>
<description><![CDATA[If you want to move to the cloud and like to code like me, this is
kinda of a basic necessity.
This applies in particular to Chromebook users.
5 Best online IDEs
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Lifehacker App Guides</title>
<link>https://www.0ink.net/posts/2015/2015-07-24-lifehacker-app-guides.html</link>
<description><![CDATA[These two hyperlinks from Lifehacker are quite useful:

iPhone App Guide
Android App Guide

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Upload to OpenWRT</title>
<link>https://www.0ink.net/posts/2015/2015-07-11-openwrt-upd.html</link>
<description><![CDATA[Base 64 decoding: coreutils-base64
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/tmp 
content-type: text/html

&lt;html&gt;&lt;body&gt;
&lt;form action="&lt;% echo -n $SCRIPT_NAME %&gt;" method=POST enctype="multipart/form-data" &gt;
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>organizing notes</title>
<link>https://www.0ink.net/posts/2015/2015-06-11-org-notes.html</link>
<description><![CDATA[My Documents
DOCUMENTS

Project Folder

old
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Another Markdown Editor</title>
<link>https://www.0ink.net/posts/2015/2015-04-30-another-markdown-editor.html</link>
<description><![CDATA[This one is GitHubFlavored markdown...
markdown editor
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Web Links</title>
<link>https://www.0ink.net/posts/2015/2015-04-19-web-links.html</link>
<description><![CDATA[Here a few web-links to interesting web apps.
It covers stuff about password security and checking if web sites
are down, etc etc.

Down For Everyone or Just Me:
If you're getting an error when visiting a certain site, it could be down or something could be wrong on your end. To see which
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Fiddle Markdown Tool</title>
<link>https://www.0ink.net/posts/2015/2015-04-18-fiddle-markdown-tool.html</link>
<description><![CDATA[For a quick and simple Markdown Preview:

Fiddle
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Code Kingdoms</title>
<link>https://www.0ink.net/posts/2015/2015-04-17-code-kingdoms.html</link>
<description><![CDATA[Code Kingdoms is targeted towards six- to 13-year olds and looks very
much like your everyday puzzle adventure game. Choose an animal, walk
around a kingdom saving animals through puzzles. The difference is
most of the puzzles require kids to use code elements to solve the
puzzles. At first this is through dragging-and-dropping code snippets,
but as they progress, kids will be typing in code themselves.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Kerberos Client</title>
<link>https://www.0ink.net/posts/2015/2015-02-06-kerberos-client.html</link>
<description><![CDATA[This simple mini how-to goes over the configuration of a
linux system so it can use a Kerberos Realm server
for authentication.


Make sure you have the pam_krb5 rpm files installed. You can check this by running the rpm -qa | grep pam command and seeing whether the pam_krb5 rpm files are listed. If they aren't, you can typically download them in an update of the Linux or Unix operating system that you are running.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>HP Envy 4504 Set-up</title>
<link>https://www.0ink.net/posts/2015/2015-02-06-hp-envy-4504-set-up.html</link>
<description><![CDATA[I bought a HP Envy 4504.  Overall I am happy with it.  This is how
I configure it so I can use with Linux.
This mini howto applies to ArchLinux, void linux and Centos/RedHat distributions.
Installation
Archlinux:
cups, hplip, python2, sane
...]]></description>
<pubDate>Fri, 11 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>RPMGOT</title>
<link>https://www.0ink.net/posts/2015/2015-02-04-rpmgot.html</link>
<description><![CDATA[Software package download proxy
rpmgot is a simple/lightweight software package download proxy. It was designed to run on an OpenWRT router with some USB storage. So it is fully implemented as an ash script.
The basic idea has been implemented multiple times. For example refer to this article on a squid based implementation.
Unlike squid, which once you include all its dependencies can use up over 1MB of space just to install it, this software has very few dependencies.
The idea is for small developers running the same operating system version(s) would benefit from a local mirror of them, but they don't have so many systems that it's actually reasonable for them to run a full mirror, which would entail rsyncing a bunch of content daily, much of which may be packages would never be used.
rpmgot implements a lazy mirror something that would appear to its client systems as a full mirror, but would act more as a proxy. When a client installed a particular version of a particular package for the first time, it would go fetch them from a &quot;real&quot; mirror, and then cache it for a long time. Subsequent requests for the same package from the &quot;mirror&quot; would be served from cache.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SSL Certificates</title>
<link>https://www.0ink.net/posts/2015/2015-01-06-ssl-certificates.html</link>
<description><![CDATA[So it is is a more dangerous world out there. You can start securing web sites using self signed certificates. Another option is to:

Use CloudFlare. This will use a CF certificate from the CF CDN to the web site, while using a self-signed certificate between the CF CDN to your web server.
Use startssl

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Convert HTML to Markdown</title>
<link>https://www.0ink.net/posts/2015/2015-01-06-mardownifier.html</link>
<description><![CDATA[These web sites convert to Markdown:

Mardownifier: Convert the given URL
to-markdown: Convert HTML snippets
turndown

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry Pi - Low cost CCTV</title>
<link>https://www.0ink.net/posts/2014/2014-09-13-raspberry-pi-low-cost-cctv.html</link>
<description><![CDATA[A good tutorial on creating a low cost surveillance camera using
the raspberry Pi camera module and one of thos fake surveillance
camera things.

Instructables has a good tutorial on creating a low cost surveillance camera.
Essentially makes use of a Pi, the Camera module and fitted into one of those inexpensive fake surveillance cameras.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry Pi as a Stratum-1 NTP Server</title>
<link>https://www.0ink.net/posts/2014/2014-09-13-raspberry-pi-as-a-stratum-1-ntp-server.html</link>
<description><![CDATA[This is something I found:

http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html

Essentially it requires pairing a Raspberry Pi with a
NTPI Raspberry Pi GPS addon board
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Incredible PBX for RasPBX</title>
<link>https://www.0ink.net/posts/2014/2014-09-13-incredible-pbx-for-raspbx.html</link>
<description><![CDATA[This is a link to IncrediblePBX for RasPBX. Looks like bundles to run Asterisk PBX'es on a Raspberry Pi. Neat.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>dev notes 2014</title>
<link>https://www.0ink.net/posts/2014/2014-06-26-dev-notes.html</link>
<description><![CDATA[Replacment for Make and Autoconf:
MakeMe
(If you don't have root but have Android 4+ you can use the
command-line program adb from the Android SDK platform tools to make
backups via a desktop computer)
chromebook ides
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Resizing a Linux RAID</title>
<link>https://www.0ink.net/posts/2014/2014-06-04-resizing-a-linux-raid.html</link>
<description><![CDATA[It is possible to migrate the whole array to larger drives
(e.g. 250 GB to 1 TB) by replacing one by one. In the end the number
of devices will be the same, the data will remain intact, and you will
have more space available to you.
Extending an existing RAID array
In order to increase the usable size of the array, you must increase
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Wi-Fi Sd Cards</title>
<link>https://www.0ink.net/posts/2014/2014-05-11-wi-fi-sd-cards.html</link>
<description><![CDATA[My latest weekend project. Making a normal digital camera WIFI enabled.

With the Transcend Wi-Fi SD Card you can convert any digital camera into a Wi-Fi enable camera.
What I did here is to set it up so that it would automatically upload photos whenever I turn the camera on while at home.
The nice thing about this camera is that it runs a fully functional Linux environment within the card. The manufacturer was also nice enough to give you the opportunity to customize the card by running arbitrary shell scripts from the SD card itself.
My code is in github.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Raspberry Pi Weekend project</title>
<link>https://www.0ink.net/posts/2014/2014-04-26-raspberry-pi-weekend-project.html</link>
<description><![CDATA[So finally took the time to try out a Raspberry Pi. For this weekend project wanted to do something relatively simple.
Essentially, I wanted to recreate/enhance the functionality of a
TL-WR702N.

The TL-WR702N Nano Router is a neat device but being closed, can not be customized to what I wanted. It can be used in
the following modes:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>DVD archiving</title>
<link>https://www.0ink.net/posts/2014/2014-03-11-dvd-archiving.html</link>
<description><![CDATA[This is my simple procedure for backing up my DVD movies:
Examine the DVD:
dvdbackup -i /dev/sr0 -I
Create a full backup:
dvdbackup -i /dev/dvd -o ~ -M
Creating an ISO:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Private vs. Personal</title>
<link>https://www.0ink.net/posts/2014/2014-01-26-private-vs-personal.html</link>
<description><![CDATA[In Microsoft Outlook has the option to tag e-mails with a sensitivity tag. Technically this is fairly meaningless. However sometimes I like to use them.  
The confidential tag is quite self explanatory. I always confuse what is the difference between private and personal.   So here is one possibility...

Personal information are things like preferences, political association, likes and dislikes.
Private information are things like bank account numbers. Stuff that you probably would like to keep secret.

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Cleaning-up Outlook Calendar</title>
<link>https://www.0ink.net/posts/2013/2013-12-23-cleaning-up-outlook-calendar.html</link>
<description><![CDATA[This is a procedure I go through at the end of the year
to clean-up my Outlook Calendar.  Usually the Outlook
Calendar gets full of junk over time.  So this is something
worth doing on a regular basis.
Procedure for Outlook 2007

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Chrome Kerberos Authentication</title>
<link>https://www.0ink.net/posts/2013/2013-12-02-chrome-kerberos-authentication.html</link>
<description><![CDATA[To config chrome to use kerberos authentication you need to start the application the following parameter:

auth-server-whitelist - Allowed FQDN - Set the FQDN of the IdP Server. Example:

chrome --auth-server-whitelist="*aai-logon.domain-a.com"
auth-negotiate-delegate-whitelist - For which FQDN credential delegation will be allowed.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Deploying Chrome Extensions</title>
<link>https://www.0ink.net/posts/2013/2013-11-30-deploying-chrome-extensions.html</link>
<description><![CDATA[The following links outline how to deploy Chrome extensions in a enterprise manner:

Installing Chrome Extensions
Other Deployment Options
Force Installing Extensions

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My Must Have Android Apps</title>
<link>https://www.0ink.net/posts/2013/2013-11-08-my-must-have-android-apps.html</link>
<description><![CDATA[This is a list of my favorite Android Apps:
Essentials

Barcode Scanner - Play Store F-Droid
Ghost Commander - F-Droid
F-Droid Alternative Application Manager. Usually Open source stuff with significantly less crap ware and ads.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>wp-cron and cron</title>
<link>https://www.0ink.net/posts/2013/2013-11-01-wp-cron-and-cron.html</link>
<description><![CDATA[Normal WordPress operation has a cron like functionality that runs scheduled tasks as users visit the blog.
It is possible to replace this with a standalone cron (like UNIX cron).
To disable the &quot;webcron&quot; (i.e. trigerring tasks as URLs are visited) add to your wp-config.php the following:
 define('DISABLE_WP_CRON', true);

Then call this from cron:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Using wget with given IP/vhost</title>
<link>https://www.0ink.net/posts/2013/2013-10-31-using-wget-with-given-ipvhost.html</link>
<description><![CDATA[This is one neat trick.  For vhosts you can connect with an IP yet provide the right host name with the following:
 wget http://1.1.1.1/  --header 'Host: www.example.com'

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Using a NAS200 as a Print server</title>
<link>https://www.0ink.net/posts/2013/2013-10-22-using-nas-200.html</link>
<description><![CDATA[Last weekend I had a small weekend project to move my All-In-One Printer/Scanner from my Xen host server to a spare NAS200 I had lying around. Since the NAS200 has a i486 compatible CPU, and I had been able to run a CentOS 5 distro before, I figure it would make a good server with low power consumption.

For that I updated my NASCC firmware so that it would boot a USB key, and update my CentOS image creation script. This worked well, I was able to boot CentOS without that much effort altogether.
I myself have an Epson Stylus CX5500 which unfortunately only comes with binary drivers. This was not much of a problem since the NAS200 has a i486 compatible CPU. I find this is relatively unique among different NAS models.
Alas, the performance was quite disappointing. I should be used to the NAS200 underperforming. But really, this was truly sad. I did not bother to test the printing, but I did try scanning with it. Running scanimage to scan a single page was taking over 15 minutes before I hit Ctrl+C.
It was an idea, but the results were so sub par. The only take-aways of this are:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>UNIX find with dates</title>
<link>https://www.0ink.net/posts/2013/2013-10-14-unix-find-with-dates.html</link>
<description><![CDATA[-atime/-ctime/-mtime the last time a files's access time, file status and modification time, measured in days or minutes. Time interval in options -ctime, -mtime and -atime is an integer with optional sign.

n: If the integer n does not have sign this means exactly n days ago, 0 means today.
+n: if it has plus sing, then it means more then n days ago, or older then n,
-n: if it has the minus sign, then it means less than n days ago (-n), or younger then n. It's evident that -1 and 0 are the same and both mean today.

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Enable local file caching for NFS share on Linux</title>
<link>https://www.0ink.net/posts/2013/2013-10-07-enable-local-file-caching-for-nfs-share-on-linux.html</link>
<description><![CDATA[In Linux, there is a caching filesystem called FS-Cache which enables
file caching for network file systems such as NFS. FS-Cache is built
into the Linux kernel 2.6.30 and higher. In order for FS-Cache to
operate, it needs cache back-end which provides actual storage for
caching. One such cache back-end is cachefiles. Therefore, once you
set up cachefiles, it will automatically enable file caching for NFS shares.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>sdf.org</title>
<link>https://www.0ink.net/posts/2013/2013-09-30-sdf-org.html</link>
<description><![CDATA[sdf.org
This one is an interesting site.
The Super Dimension Fortress is a networked community of free software authors, teachers, librarians, students, researchers, hobbyists, computer enthusiasts, the aural and visually impaired. It is operated as a recognized non-profit 501(c)(7) and is supported by its members.
Our mission is to provide remotely accessible computing facilities for the advancement of public education, cultural enrichment, scientific research and recreation. Members can interact electronically with each other regardless of their location using passive or interactive forums.  Further purposes include the recreational exchange of information
concerning the Liberal and Fine Arts.
Members have UNIX shell access to games, email, usenet, chat, bboard, webspace, gopherspace, programming utilities, archivers, browsers, and more. The SDF community is made up of caring, highly skilled people who operate behind the scenes to maintain a non-commercial INTERNET.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Driving Continuous Integration from Git</title>
<link>https://www.0ink.net/posts/2013/2013-09-22-continous-integration-from-git.html</link>
<description><![CDATA[Testing, code coverage, style enforcement are all check-in and merge
requirements that can be automated and driven from Git.
If you're among the rising number of Git users out there, you're in
luck: You can automate pieces of your development workflow with Git
hooks. Hooks are a native Git mechanism for firing off custom scripts
before or after certain operations such as commit, merge, applypatch,
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Off site backup options</title>
<link>https://www.0ink.net/posts/2013/2013-09-19-off-site-backup-options.html</link>
<description><![CDATA[This is my working notes on doing off-site backups to the cloud.
Still trying to figure out where to keep Offsite backups.
These are the candidates:



...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>No Comment</title>
<link>https://www.0ink.net/posts/2013/2013-09-19-no-comment.html</link>
<description><![CDATA[
This should require no explanation...
...]]></description>
<pubDate>Wed, 02 Nov 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Alarm Notification</title>
<link>https://www.0ink.net/posts/2013/2013-09-19-alarm-notification.html</link>
<description><![CDATA[This tutorial describes how to use the alarm manager to set alarms and how to use the notification framework to display them. In short, the sequence goes like this:

In an Activity AlarmManager.set is called with a PendingIntent containing a Uri.
When the alarm goes off, the Uri is called triggering a BroadcastReceiver.
In the BroadcastReceiver NotificationManager.notify is called with a PendingIntent.
When the notification is clicked, the Activity in the PendingIntent is started.
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>DID vendors</title>
<link>https://www.0ink.net/posts/2013/2013-09-13-did-vendors.html</link>
<description><![CDATA[So I have been researching DID vendors with limited success.  So far my
leading candidates are:



Vendor
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Parsing JSON in Shell scripts</title>
<link>https://www.0ink.net/posts/2013/2013-09-06-parsing-json-in-shell-scripts.html</link>
<description><![CDATA[This can be simple by using jq.
This is a command line JSON processor.  Here are a couple of examples of what can be done:
$ cat json.txt

{
        "name": "Google",
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Yealink W52P</title>
<link>https://www.0ink.net/posts/2013/2013-08-28-yealink-w52p.html</link>
<description><![CDATA[Yealink W52P

So I was looking to replace my analog cordless phones mainly because I wanted to have a centralized way to maintain phonebooks. Right now I have two cordless phone that I have to manually enter phonebook entries on the two handsets independently.
Initially I was thinking of getting small/cheap Android tablet and load it with a SIP soft phone. Trying with a couple of tablets I had was not very successful. On one hand my network topology did not work very well, on the other hand, the integration of the SIP soft phone with the directory and the other phone functions did not work as well as I expected.
So when I came across the W52P, I was initially attracted to the low price. Grandstream had a cheaper phone, but it did not have remote phonebooks. After checking the documentation of the W52P, I confirmed that it did have a remote phonebook functionality. So bought it and tried it out.
As a phone itself, it is about the same as the analog phones that it was replacing. The voice quality was pretty good.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Grandstream GXP1400</title>
<link>https://www.0ink.net/posts/2013/2013-08-28-grandstream-gxp1400.html</link>
<description><![CDATA[Grandstream GXP1400

The other day I replaced an analog phone with a Grandstream GXP1400 IP phone. I think it is a great value phone. It is one of the cheapest I could find yet supports all the features I was looking.
Specifically I wanted a IP phone that could:

Have a remote phone directory
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Backing up GMail</title>
<link>https://www.0ink.net/posts/2013/2013-08-28-backing-up-gmail.html</link>
<description><![CDATA[The other day I found Gmvault.
Gmvault is an open source Gmail backup software written in Python.
This article provides a good overview on how it works (found it better than the Gmvault documentation):

How to back up and restore Gmail account on Linux

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>BOX.com promotions</title>
<link>https://www.0ink.net/posts/2013/2013-08-26-box-com-promotions.html</link>
<description><![CDATA[This is a good link to keep an eye on: box.com promotions
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Alternative to DynDNS</title>
<link>https://www.0ink.net/posts/2013/2013-08-23-alternative-to-dyndns.html</link>
<description><![CDATA[linuxaria blog article This article has a script how to use Dynamic DNS on afraid.org.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>assist</title>
<link>https://www.0ink.net/posts/2013/2013-08-22-assist.html</link>
<description><![CDATA[Assist is my archlinux scripted installation script.

https://github.com/alejandroliu/assist

By default it gives you a menu driven archlinux installation with supposedly sensible defaults.
It has command line hooks so that you can perform automated installs using bash scripts to customize it.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SSH Tricks</title>
<link>https://www.0ink.net/posts/2013/2013-08-21-ssh-tricks.html</link>
<description><![CDATA[A bunch of stupid SSH tricks that can be useful somehow, somewhere...
Forcing either IPv4 or IPv6
This is for the scenario that you know which specific protocol works
to reach a particular host. Usually good to eliminate the delay
for SSH to figure out to switch IP protocols. For IPv4:
ssh -4 user@hostname.com
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Running Windows on Linux for Free</title>
<link>https://www.0ink.net/posts/2013/2013-08-21-running-windows-on-linux-for-free.html</link>
<description><![CDATA[Microsoft is now making available Windows VM image for testing Internet Explorer for free. You can find them at: Modern IE testing Currently the following versions are available:

Windows XP Professional SP3 + IE 6 or 8
Windows Vista + IE 7
Windows 7 + IE 8, 9, 10 or 11
Windows 8 + IE 11
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Remote VirtualBox</title>
<link>https://www.0ink.net/posts/2013/2013-08-21-remotebox.html</link>
<description><![CDATA[RemoteBox is a Remote VirtualBox UI. It is similar phpVirtualBox in that allows to manage VirtualBox remotely (on a potentially headless server). They differ in their requirements:

RemoteBox does not require much on the server, but you need to install it on the client.
phpVirtualBox only requires a browser and rdp viewer on the client, but requires a web server with PHP support on the server.

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>IPv6 testing</title>
<link>https://www.0ink.net/posts/2013/2013-07-04-ipv6-testing.html</link>
<description><![CDATA[When trying to get on-to the IPv6 Internet, here are a couple of links to do diagnostics:

http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-ping.php
This actually contain generic network tools.
http://ds.testmyipv6.com/
Confirm if your browser is connecting through IPv6
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>PingTool.org</title>
<link>https://www.0ink.net/posts/2013/2013-07-03-pingtool-org.html</link>
<description><![CDATA[Another short and sweet. This web site provides a number of on-line
tools. Useful for diagnosing problems when setting a home server.
http://pingtool.org/
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Web Backups</title>
<link>https://www.0ink.net/posts/2013/2013-07-02-web-backups.html</link>
<description><![CDATA[
As usual with any IT system backups are important. This does not change when using a free shared hosting provider. Because it is free, one would argue it is even more important.
For my wordpress web site I used something called cli-exporter. It let's you create &quot;Wordpress&quot; export files from the command line so it can be run from cron. This is important because backups have to be automated.
In addition to that, I copy the backup files to an off-site location. I do this by copying files using WebDAV to a storage provider. I did this by writing a simple script and using the PHP library SabreDAV which makes writing DAV clients quite easy.
I myself don't mind using other people's Open Source code to do something. I was actually surprised that I was not able to find something that meet my criteria. However, thanks to the power of open source I was able to find something that fit the bill exactly.
To make things more interesting, because I wanted to keep backup files as compressed Zip archives, my backup scripts did not work in one of the web hosts that I was using. They did not have the zip extensions enabled. This is surprising considering is quite standard. Luckily I was able to find a pure PHP library pclzip.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Mini-Howto: Setup proxy on Ubuntu</title>
<link>https://www.0ink.net/posts/2013/2013-07-02-mini-howto-setup-proxy-on-ubuntu.html</link>
<description><![CDATA[A quick and dirty mini-howto to setup a proxy on Ubuntu.
This is meant mostly for doing quick setup of a proxy
on a cloud environment.


Install Squid with the following command at the Linux command prompt:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Using CloudFlare</title>
<link>https://www.0ink.net/posts/2013/2013-07-01-using-cloudflare.html</link>
<description><![CDATA[So I have signed up 0ink.net to use the CloudFlare service.

CloudFlare is a reverse proxy service that is supposed to speed up and improve web server security.
This is done by:

globally distributed reverse proxy cache network
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Askozia Desktop Appliance</title>
<link>https://www.0ink.net/posts/2013/2013-07-01-askozia-desktop-appliance.html</link>
<description><![CDATA[
So last weekend finally had some time to work with a Askozia Desktop Appliance.
It actually arrived much earlier but without a Power Supply. Initially I though, &quot;this is strange; I didn't know this supported PoE&quot;. (Power Over Ethernet). It turns out it didn't and there was a shipping mistake. After contacting the vendor, they sent me the required Power Supply.
Overall I think the product is quite nice. It has a very nice User Interface that is quite easy to use. Simple configurations are indeed very easy to set-up.
My feeling is that, as with any GUI, it usually trades user-friendly with expressiveness. So while I could configure most of the things I wanted from the UI, it did not support my home network topology fully.
Initially, I had a DMZ vs Home-LAN configuration, with the Askozia box in the DMZ. Because the separation between the DMZ and the Home-LAN was through the router, it considered all the IP phones (in the Home-LAN) on the other side of the NAT, so things did not work properly.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>CipherUSB</title>
<link>https://www.0ink.net/posts/2013/2013-06-24-cipherusb.html</link>
<description><![CDATA[This is an interesting concept. Essentially is an Encryption dongle
that encrypts stuff between your PC and your USB mass storage device.
Addonics Product: CipherUSB.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Upgrading pacman config files</title>
<link>https://www.0ink.net/posts/2013/2013-06-06-3-way-merging.html</link>
<description><![CDATA[So when upgrading software packages sometimes you need to merge changes. My recipe in archlinux is as follows:

Look for *.pacnew files.
Retrieve the original version (from /var/cache/pacman) from the old source package.
Use a 3 way merge tool between old version, current file and the pacnew file.

...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>libmspack</title>
<link>https://www.0ink.net/posts/2013/2013-06-05-libmspack.html</link>
<description><![CDATA[Recently I found this Open Source project. Apparently it recently
gained support to unpack Exchange Offline Address Book files. What
I don't know is after you unpack it, how would you use such a file.
Intriguing but apparently falls a little bit short. Probably would need
to try it out for myself to see how it works.
libmspack.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>atratus project</title>
<link>https://www.0ink.net/posts/2013/2013-06-05-atratus-project.html</link>
<description><![CDATA[The other day I came across this project. Looks an interesting idea. It is a project that lets you run unmodified Linux binaries on Windows. It is more similar to WINE than to for example coLinux. While I conceptually I understand how it would work at a low level, I am curious how it works with dynamically link executables. This is something I would like to test out when I have time.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Media Tips</title>
<link>https://www.0ink.net/posts/2013/2013-06-02-video-tips.html</link>
<description><![CDATA[This is an article about different media (and more specifically)
video files can be manipulated.
This is just for historical purposes as now almost everything can be
done using ffmpeg and the right options.

libmp4v2 contains:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Diskless Archlinux</title>
<link>https://www.0ink.net/posts/2013/2013-06-01-diskless-archlinux.html</link>
<description><![CDATA[I am still to test this recipe
Server Configuration
First of all, we must install the following components:

A DHCP server to assign IP addresses to our diskless nodes.
A TFTP server to transfer the boot image (a requirement of all PXE option roms).
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>OpenWRT web</title>
<link>https://www.0ink.net/posts/2013/2013-05-30-openwrt-tips.html</link>
<description><![CDATA[Some useful tidbits to use when using the OpenWRT embedded web
server (uHTTPD).
Embedded Lua
uHTTPd supports running Lua in-process, which can speed up Lua CGI
scripts. It is unclear whether LuCI supports running in this embedded
interpreter. LuCI seems to work fine (if not better) with the embedded
...]]></description>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Program Documentation</title>
<link>https://www.0ink.net/posts/2013/2013-05-29-program-documentation.html</link>
<description><![CDATA[So these are my ideas on how to document projects. There are three types of documentation types:

User guides
Targetted and end-users of the software and people who want a brief overview.
Man pages
Again targetted at end-users but also sysadmins. Usually to address a specific feature.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Git Tutorials</title>
<link>https://www.0ink.net/posts/2013/2013-05-28-git-tutorials.html</link>
<description><![CDATA[Reference for Git tutorials

http://linux.yyz.us/git-howto.html
http://git.or.cz/course/svn.html
http://spheredev.org/wiki/Git_for_the_lazy
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Remote Bridging</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-remote-bridging.html</link>
<description><![CDATA[Sometimes we need to connect two or more geographically distributed ethernet networks to one broadcast domain. There can be two different office networks of some company which uses smb protocol partially based on broadcast network messages. Another example of such situation is computer cafes: a couple of computer cafes can provide to users more convinient environment forr playing multiplayer computer games without dedicated servers. Both sample networks in this article need to have one *nix server for bridging. Our networks can be connected by any possible hardware that provides IP connection between them.
Connecting Two Remote Local Networks With Transparent Bridging Technique
Short description
In described configuration we are connecting two remote LANs to make them appearing as one network with 192.168.1.0/24 address space (however physically, presense of bridges in network configuration is not affecting IP protocol and is fully transparent for it, so you can freely select any address space). Both of the bridging servers has two network interfaces: one (as eth0 in our example) connested to the LAN, and second (eth1) is being used as transport to connect networks. When ethernet tunnel between gateways in both networks will be bringed up we will connect tunnel interfaces with appropriate LAN interfaces with bridge interfaces. Schematically this configuration can be following:


...]]></description>
<pubDate>Wed, 23 Oct 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>Network wiring notes - 8P8C / RJ45</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-network-wiring-notes-8p8c-rj45.html</link>
<description><![CDATA[What you were probably looking forT568A/B (10-BASE-T and 100-BASE-TX):
With pin positions are counted from left to right with the contacts facing you (clip on the back) and pointing up (cable coming out the bottom):



Color (568B)
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Native Kerberos Authentication with SSH</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-native-kerberos-authentication-with-ssh.html</link>
<description><![CDATA[This article is about integrating OpenSSH in a kerberos environment.
Allthough OpenSSH can provide passwordless logins (through Public/Private
keys), it is not a true SSO set-up.  This article makes use of
Kerberos TGT service to implement a true SSO configuration for OpenSSH.
Pre-requisites
First off, you'll need to make sure that the OpenSSH server's Kerberos configuration (in /etc/krb5.conf) is correct and works, and that the server's keytab (typically /etc/krb5.keytab) contains an entry for host/fqdn@REALM (case-sensitive). I won't go into details on how this is done again; instead, I'll refer you to any one of the recent Kerberos-related articles (like this one, this one, or even this one). Just be sure that you can issue a kinit -k host/fqdn@REALM and get back a Kerberos ticket without having specify a password. (This tells you that the keytab is working as expected.)
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>My new 0ink.net site</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-my-new-0ink-net-site.html</link>
<description><![CDATA[So one weekend went by and managed to finish up my 0ink.net web site. So now I have:

wordpress
For main content.
tt-rss
This is my answer to Google's shutdown of the Reader service.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Mirroring a Gitorious repository to GitHub</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-mirroring-a-gitorious-repository-to-github.html</link>
<description><![CDATA[There is nothing special with GitHub and
Gitorious here. This technique would work
exactly the same the other way around or with other servers.
In a nutshell
# Inital setup
git clone --mirror git://gitorious.org/weasyprint/weasyprint.git weasyprint
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Kerberos howtos</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-kerberos-howtos.html</link>
<description><![CDATA[Kerberos is a network authentication protocol which works on the basis
of &quot;tickets&quot; to allow nodes communicating over a non-secure network to
prove their identity to one another in a secure manner. (Source
Kerberos_(protocol) )
Backups
Create backup:
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Emacs Cheat Sheet</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-emacs-cheat-sheet.html</link>
<description><![CDATA[Quick reference article for how to use Emacs.  Yes, it is really
old skool!
Cursor Motion



...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>ArchLinux tips</title>
<link>https://www.0ink.net/posts/2013/2013-05-27-archlinux-tips.html</link>
<description><![CDATA[A bunch of recipes useful for an ArchLinux system environment.
Mostly around system administration.
Custom Repos and Packages
In the repo directory, put all the packages in there.
repo-add ./custom.db.tar.gz ./*

...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>PHP notes</title>
<link>https://www.0ink.net/posts/2013/2013-05-23-php-coding-style.html</link>
<description><![CDATA[Notes on doing different things within the PHP language.
Object oriented introspection

property_exists(obj,prop_name)
method_exists(obj,method_name)
is_a(obj,'clas_name') or ($obj instanceof ClassName)
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Git recipes</title>
<link>https://www.0ink.net/posts/2013/2013-05-23-git-recipes.html</link>
<description><![CDATA[
Sharing repositories
Rewriting history

Rolling back the last commit

...]]></description>
<pubDate>Wed, 01 Jan 2025 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Getting rid of DRM on e-books and videos</title>
<link>https://www.0ink.net/posts/2013/2013-05-22-getting-rid-of-drm-on-e-books-and-videos.html</link>
<description><![CDATA[Instructions on how to remove DRM from E-Books and videos.
How to Remove DRM from Ebooks (and Back Up Your Library Permanently)
The easiest way to strip DRM from Kindle books (and Barnes and Noble, Adobe Digital Content, etc) is with the free ebook software Calibre, DRM removal plugins, and a copy of the Kindle desktop software (PC/Mac). These directions are for Kindle, but will work with Barnes and Noble, Adobe Digital Editions, and older formats. Here's what you need to do:

Download Calibre, the the plugins, and the Kindle Desktop software.
Unzip the contents of the plugin directory.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Wordpress links</title>
<link>https://www.0ink.net/posts/2013/2013-05-21-wordpress-links.html</link>
<description><![CDATA[This article describes how you creeate hyperlinks within
Wordpress.  There are a number of ways to do this, depending
on the configuration and the types of data we are linking to.
Linking Without Using Permalinks
This actually works whether or not Permalinks are active. Using the numeric values found in the ID column of the Posts, Categories, and Pages Administration, you can create links as follows.
Posts
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>International Phonetic Alphabet</title>
<link>https://www.0ink.net/posts/2013/2013-05-21-international-phonetic-alphabet.html</link>
<description><![CDATA[Phonetic Alphabet



1
2
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Makefiles</title>
<link>https://www.0ink.net/posts/2013/2013-05-20-makefiles.html</link>
<description><![CDATA[Some notes on GNU Make.  I always have to look-up these in
the manual.  Here now for my own convenience.
GNU Make automatic variables:
From http://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html.

$@
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Issue Tracker</title>
<link>https://www.0ink.net/posts/2013/2013-05-19-issue-tracker.html</link>
<description><![CDATA[
Use DVCS as backend (GIT)
Output html
markdown
Prefer perl/python
Mostly RO so to avoid merge conflicts.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Cleaning up Google Calendar</title>
<link>https://www.0ink.net/posts/2013/2013-05-19-google-services-tips.html</link>
<description><![CDATA[Recipe for cleaning a google calendar.

Sign in to Google Calendar
Click on Calendar Settings (current version has this just above the list of personal calendars, under an arrow).
Click on &quot;Delete&quot; of the main calendar.
A confirmation dialog box appears telling you that that &quot;This deletes all events on primary Calendar&quot;.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Automatically adding systems to an AD domain</title>
<link>https://www.0ink.net/posts/2013/2013-05-19-automatically-adding-systems-to-an-ad-domain.html</link>
<description><![CDATA[When using virtualisation it is very common to create template VMs
that can be cloned from. This makes deployment much easier than having
to install a new VM from scratch. Unfortunately, the cloned VMs lack
any Active Directory memberships and the VMs have to be manually
added to the AD domain. For automated deployment scenarios this is
less than desirable. This recipe intends to solve that issue in a
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>SATA/IDE warm plug/unplug</title>
<link>https://www.0ink.net/posts/2013/2013-05-18-sataide-warm-plugunplug.html</link>
<description><![CDATA[This is for SATA and IDE interfaces that do not automatically detect added/removed devices.
Scanning for newly added discs:
echo "- - -" &gt; /sys/class/scsi_host/host0/scan

safely removing a disk
echo 1 &gt; /sys/block/sda/device/delete
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Icons</title>
<link>https://www.0ink.net/posts/2013/2013-05-17-icons.html</link>
<description><![CDATA[Finding icons:
iconfinder.
In 2023 I am using:
icons8
This allows to download icons in different formats, and also allows
you to do tweaks such as:
...]]></description>
<pubDate>Tue, 25 Apr 2023 00:00:00 +0200</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>On-line Web Authoring Resources</title>
<link>https://www.0ink.net/posts/2013/2013-05-16-web-authoring-tips.html</link>
<description><![CDATA[A collection of links for Web-Authoring.  This focuses on using
Web (HTML and CSS) technologies directly and not through a
CMS like Wordpress.

http://www.webestools.com/
Free online tools, generators, services, scripts, tutorials.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>First steps...</title>
<link>https://www.0ink.net/posts/2013/2013-05-16-first-steps.html</link>
<description><![CDATA[So finally took the time to re-launch the 0ink web site. This time used more off-the shelf
software. So this site is just a another plain wordpress powered site.
Actually I have to thank my son for introducing me to wordpress.
What happened is that my son, who is only seven wanted to have his own web site. (Due to peer
pressure, kids these days...)
He has an Android tablet that he uses quite often. Since I knew that wordpress can be
...]]></description>
<pubDate>Tue, 22 Oct 2024 00:00:00 +0200</pubDate>
<author>alex</author>
</item>
<item>
<title>We are back...</title>
<link>https://www.0ink.net/posts/2013/2013-05-15-we-are-back.html</link>
<description><![CDATA[After a long time in Limbo we are back with 0ink.net as a live
site.
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Local Perl packages</title>
<link>https://www.0ink.net/posts/2013/2013-05-15-perl-tips.html</link>
<description><![CDATA[Determine what is the local PERL5LIB configuration:
LIB=$(
  for d in `tr : ' ' &lt;&lt;&lt;$PERL5LIB
  do
    if [ -w $d ] ; then
      echo $d
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Linux Keyboard Tips</title>
<link>https://www.0ink.net/posts/2013/2013-05-13-linux-keyboard-tips.html</link>
<description><![CDATA[Miscellaneous hacks to use the keyboard under Linux.
Special Characters on X11
The compose key, when pressed in sequence with other keys, produces a
Unicode character. E.g., in most configurations pressing Compose e
``` produces &eacute;. Compose keys appeared on some computer keyboards
decades ago, especially those produced by Sun Microsystems. However,
...]]></description>
<pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Bash Tips</title>
<link>https://www.0ink.net/posts/2013/2013-05-13-bash-tips.html</link>
<description><![CDATA[Some bash one-liners:
echo ${!X*}

Will print all the names of variables whos name starts with X. To
output the contents of a variable so it can be parsed by
bash
...]]></description>
<pubDate>Sat, 09 Dec 2023 00:00:00 +0100</pubDate>
<author>alex</author>
</item>
<item>
<title>Keep e-mail private</title>
<link>https://www.0ink.net/posts/2013/2013-05-09-keep-e-mail-private.html</link>
<description><![CDATA[This is a handy tip.
If you don't want to give out your real email address to register for
a site and don't want to go through the hassle of creating a spam
email address, just point your browser to
Guerrilla Mail
upon loading the page you'll have an automatically assigned email
...]]></description>
<pubDate>Sat, 25 Dec 2021 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
<item>
<title>Git Workflows</title>
<link>https://www.0ink.net/posts/2013/2013-05-09-git-workflows.html</link>
<description><![CDATA[
Start working on a Topic Branch
Keep Topic Branch current
Merge a Topic Branch
Start working on a HotFix
Keep HotFix Branch current
...]]></description>
<pubDate>Fri, 22 Nov 2024 00:00:00 +0100</pubDate>
<author>Alejandro Liu</author>
</item>
</channel>
</rss>