<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Tom Lankhorst · Notes</title>
<link href="https://blog.tomlankhorst.nl/"/><link rel="self" href="https://blog.tomlankhorst.nl/feed.xml"/><id>https://blog.tomlankhorst.nl/</id>
<author><name>Tom Lankhorst</name></author><updated>2021-04-05T00:00:00Z</updated>
<entry><title>Share Bluetooth adapter and devices between VMs</title><link href="https://blog.tomlankhorst.nl/share-bluetooth-adapter-between-vm/"/>
<id>https://blog.tomlankhorst.nl/share-bluetooth-adapter-between-vm/</id><updated>2021-04-05T00:00:00Z</updated><summary>I virtualize Windows on Linux via QEMU-KVM and VFIO. A Bluetooth adapter populates one of the USB ports of the Host. When I start a Windows VM, I have libvirt t</summary></entry>
<entry><title>Copy container images from one host to another</title><link href="https://blog.tomlankhorst.nl/copy-container-image-ssh/"/>
<id>https://blog.tomlankhorst.nl/copy-container-image-ssh/</id><updated>2021-02-18T00:00:00Z</updated><summary>Copy an image from one host to another, without using a Docker registry:</summary></entry>
<entry><title>Setting up LVM on a RAID array with mdadm</title><link href="https://blog.tomlankhorst.nl/setup-lvm-raid-array-mdadm-linux/"/>
<id>https://blog.tomlankhorst.nl/setup-lvm-raid-array-mdadm-linux/</id><updated>2021-02-09T00:00:00Z</updated><summary>License: CC BY 4.0</summary></entry>
<entry><title>Re-binding XHCI driver to make USB responsive again after resume</title><link href="https://blog.tomlankhorst.nl/unresponsive-usb-unbind-bind-linux/"/>
<id>https://blog.tomlankhorst.nl/unresponsive-usb-unbind-bind-linux/</id><updated>2020-10-31T00:00:00Z</updated><summary>After updating my Ubuntu 20.04 LTS installation’s Linux Kernel to 5.8 from 5.4, I started experiencing irregular problems with unresponsive USB devices after re</summary></entry>
<entry><title>Test codeblocks in markdown documents</title><link href="https://blog.tomlankhorst.nl/testing-code-in-markdown-doc-md-github/"/>
<id>https://blog.tomlankhorst.nl/testing-code-in-markdown-doc-md-github/</id><updated>2020-07-16T00:00:00Z</updated><summary>I enjoy a quick-start when I try out some new software. The sooner I see something blinking, the better. Straight-forward documentation and clear examples impro</summary></entry>
<entry><title>CORS on Apache: Cross-Origin Resource Sharing</title><link href="https://blog.tomlankhorst.nl/apache-cross-origin-resource-sharing-cors/"/>
<id>https://blog.tomlankhorst.nl/apache-cross-origin-resource-sharing-cors/</id><updated>2020-04-18T00:00:00Z</updated><summary>The Cross-Origin Resource Sharing or CORS policies of a webhost indicate whether a browser should allow a script to access their resources.</summary></entry>
<entry><title>Trigger build for all jobs in Jenkins organization</title><link href="https://blog.tomlankhorst.nl/jenkins-trigger-build-organization/"/>
<id>https://blog.tomlankhorst.nl/jenkins-trigger-build-organization/</id><updated>2020-04-14T00:00:00Z</updated><summary>Learn how to trigger all builds in a Jenkins organization or folder through the Groovy script console.</summary></entry>
<entry><title>distcc as a Docker system service</title><link href="https://blog.tomlankhorst.nl/distcc-docker-service/"/>
<id>https://blog.tomlankhorst.nl/distcc-docker-service/</id><updated>2019-12-28T00:00:00Z</updated><summary>Distcc allows you to distribute the compilation of C, C++ and Obj-C. It wraps your typical compiler executable and offloads the compilation to remote and local </summary></entry>
<entry><title>Get PhpDoc @params of a method</title><link href="https://blog.tomlankhorst.nl/get-phpdoc-parameters-of-a-method/"/>
<id>https://blog.tomlankhorst.nl/get-phpdoc-parameters-of-a-method/</id><updated>2019-04-28T00:00:00Z</updated><summary>A well-written PhpDoc is a goldmine of information. It may feel redundant, however, to document values that you use in your code too. Why not parse the PhpDoc i</summary></entry>
<entry><title>Chunk an Iterator into Arrays in PHP</title><link href="https://blog.tomlankhorst.nl/chunk-an-iterator-into-arrays/"/>
<id>https://blog.tomlankhorst.nl/chunk-an-iterator-into-arrays/</id><updated>2019-04-26T00:00:00Z</updated><summary>PHP’s iterators can take the heat out of memory consumption when processing big datasets. Typical for such datasets is that workers process them in manageable c</summary></entry>
<entry><title>Secure an NGINX Docker container with Let&#x27;s Encrypt</title><link href="https://blog.tomlankhorst.nl/secure-nginx-docker-container-with-lets-encrypt/"/>
<id>https://blog.tomlankhorst.nl/secure-nginx-docker-container-with-lets-encrypt/</id><updated>2018-12-04T00:00:00Z</updated><summary>For web-applications, securing the communication between client and application is essential. As containerisation of such applications becomes the standard, I w</summary></entry>
<entry><title>Compact `switch` alternative</title><link href="https://blog.tomlankhorst.nl/compact-switch-alternative-php/"/>
<id>https://blog.tomlankhorst.nl/compact-switch-alternative-php/</id><updated>2018-10-07T00:00:00Z</updated><summary>Some situations in PHP require a set of variables to have values depending on some condition. To achieve such variable-assignment, a switch statement is the tra</summary></entry>
<entry><title>Filtering and Control Library</title><link href="https://blog.tomlankhorst.nl/filtering-and-control-library/"/>
<id>https://blog.tomlankhorst.nl/filtering-and-control-library/</id><updated>2018-08-29T00:00:00Z</updated><summary>**Check out this header-only C++11 library of control and filter tools. Currently it features PID control, bi-quads (or second-order-sections), state-space syst</summary></entry>
<entry><title>True color support with (iTerm2 + tmux + Vim)</title><link href="https://blog.tomlankhorst.nl/iterm-tmux-vim-true-color/"/>
<id>https://blog.tomlankhorst.nl/iterm-tmux-vim-true-color/</id><updated>2018-08-07T00:00:00Z</updated><summary>The terminal can be an effective workhorse for achieving a job. It is fast and agile and allows you to do get things done that would have taken you much more ti</summary></entry>
<entry><title>Quick-fix: MATLAB FMU import error</title><link href="https://blog.tomlankhorst.nl/quick-fix-matlab-fmu-import-error/"/>
<id>https://blog.tomlankhorst.nl/quick-fix-matlab-fmu-import-error/</id><updated>2018-03-20T00:00:00Z</updated><summary>**MATLAB 2017b introduced support for the Functional Mock-up Standard by providing FMU-import blocks in Simulink. This open standard enables mixing of simulatio</summary></entry>
<entry><title>Fixing: Vagrant LXC error, mount.nfs: mount to NFS server 10.0.3.1:/path failed: timed out, giving up</title><link href="https://blog.tomlankhorst.nl/vagrant-lxc-nfs-timeout/"/>
<id>https://blog.tomlankhorst.nl/vagrant-lxc-nfs-timeout/</id><updated>2017-07-22T00:00:00Z</updated><summary>Vagrant-LXC is a plugin that provides integration of Vagrant with LXC containers, a modern virtualisation technology native to Linux. To share files between the</summary></entry>
<entry><title>Symlinks cause &amp;#8216;Not valid template file&amp;#8217; in Magento 1.9.3.4</title><link href="https://blog.tomlankhorst.nl/not-valid-template-file-magento-1-9-3-4-symlinks/"/>
<id>https://blog.tomlankhorst.nl/not-valid-template-file-magento-1-9-3-4-symlinks/</id><updated>2017-07-20T00:00:00Z</updated><summary>**Keeping Magento shops up to date is important to reduce their vulnerability. Sometimes, security updates introduce breaking changes. The recent Magento update</summary></entry>
<entry><title>Configuring MySQL with .my.cnf file</title><link href="https://blog.tomlankhorst.nl/mysql-my-cnf-options-file/"/>
<id>https://blog.tomlankhorst.nl/mysql-my-cnf-options-file/</id><updated>2017-02-24T00:00:00Z</updated><summary>**Connecting to a MySQL server often involves providing hostnames, usernames and passwords. Use a .my.cnf configuration file to provide defaults that simplify w</summary></entry>
<entry><title>Using Key-based SSH Authentication</title><link href="https://blog.tomlankhorst.nl/ssh-key-based-authentication/"/>
<id>https://blog.tomlankhorst.nl/ssh-key-based-authentication/</id><updated>2017-02-24T00:00:00Z</updated><summary>**If you use Git or remote terminal session a lot, consider using key-based authentication. Key-based authentication is generally considered more secure than pa</summary></entry>
<entry><title>Import Remote Database Directly over SSH</title><link href="https://blog.tomlankhorst.nl/import-remote-mysql-db-over-ssh/"/>
<id>https://blog.tomlankhorst.nl/import-remote-mysql-db-over-ssh/</id><updated>2017-02-24T00:00:00Z</updated><summary>Developing, maintaining and debugging web-applications often involves copying a remote database to a local or another remote machine. This post lists a number o</summary></entry>
<entry><title>Developing for AVR with JetBrains CLion on Mac OS</title><link href="https://blog.tomlankhorst.nl/avr-develop-debug-on-mac-os-x-with-clion/"/>
<id>https://blog.tomlankhorst.nl/avr-develop-debug-on-mac-os-x-with-clion/</id><updated>2017-01-21T00:00:00Z</updated><summary>Previously I used Atmel Studio 7 to do AVR development. This integrated development environment is unsurpassed in terms of ease of use and features for AVR deve</summary></entry>
<entry><title>Pick random values from an array in PHP</title><link href="https://blog.tomlankhorst.nl/pick-random-values-array-php/"/>
<id>https://blog.tomlankhorst.nl/pick-random-values-array-php/</id><updated>2017-01-07T00:00:00Z</updated><summary>PHP provides the array_rand( $arr, $num ) function which returns an integer or array containing the keys of the array.</summary></entry>
<entry><title>Laravel 5 Cron expression validation</title><link href="https://blog.tomlankhorst.nl/laravel-5-cron-expression-validation/"/>
<id>https://blog.tomlankhorst.nl/laravel-5-cron-expression-validation/</id><updated>2016-12-31T00:00:00Z</updated><summary>A Cron expression validator is created in Laravel 5.3. Laravel provides a versatile and extendable Validation class. Introducing new validations is done by regi</summary></entry>
<entry><title>Restore, Clone or Backup your Homebrew Setup</title><link href="https://blog.tomlankhorst.nl/brew-bundle-restore-backup/"/>
<id>https://blog.tomlankhorst.nl/brew-bundle-restore-backup/</id><updated>2016-12-23T00:00:00Z</updated><summary>**Homebrew is a popular package manager for MacOS. It provides easy access to thousands of programs and applications. It is developed and maintained by an open-</summary></entry>
<entry><title>Fix Magento 1.9.3 &amp;#8216;Notice: Undefined index: session_expire_timestamp  in &amp;#8230; on line 461&amp;#8217;</title><link href="https://blog.tomlankhorst.nl/fix-magento-undefined-index-session_expire_timestamp/"/>
<id>https://blog.tomlankhorst.nl/fix-magento-undefined-index-session_expire_timestamp/</id><updated>2016-10-15T00:00:00Z</updated><summary>**Some days ago the Magento security update SUPEE-8788 was released. This update fixes a number of critical vulnerabilities. To fix an existing shop one could e</summary></entry>
<entry><title>Implementing a MATLAB digital filter or controllers in C++</title><link href="https://blog.tomlankhorst.nl/filter-controller-cpp-implementation/"/>
<id>https://blog.tomlankhorst.nl/filter-controller-cpp-implementation/</id><updated>2016-09-13T00:00:00Z</updated><summary>Controllers and filters are often a good way to stabilise a system, condition a signal or make a system follow a reference. The usual approach is to model the s</summary></entry>
<entry><title>Update Rooted Nexus 6P to Android 7.0 Nougat with FlashFire</title><link href="https://blog.tomlankhorst.nl/update-nexus-6p-android-7/"/>
<id>https://blog.tomlankhorst.nl/update-nexus-6p-android-7/</id><updated>2016-09-01T00:00:00Z</updated><summary>Android 7.0 is out! I’m really wondering about the split view mode and the new notification. I wanted to upgrade my Nexus 6P as soon as possible. The update was</summary></entry>
<entry><title>Running JIRA Software securely behind Apache with ISPConfig 3.1</title><link href="https://blog.tomlankhorst.nl/jira-behind-reverse-proxy-ispconfig/"/>
<id>https://blog.tomlankhorst.nl/jira-behind-reverse-proxy-ispconfig/</id><updated>2016-08-06T00:00:00Z</updated><summary>If you use both JIRA and ISPConfig on a server you might want to set-up a reverse proxy to serve the JIRA frontend securely on the standard HTTPS port just like</summary></entry>
<entry><title>Random Midpoint Displacement Fractal (RMDF)</title><link href="https://blog.tomlankhorst.nl/rmdf-in-matlab-or-octave/"/>
<id>https://blog.tomlankhorst.nl/rmdf-in-matlab-or-octave/</id><updated>2016-08-06T00:00:00Z</updated><summary>The Random Midpoint Displacement Fractal (RMDF) is a fractal this is often used for generating height-maps, landscapes, rough surfaces and more. Its implementat</summary></entry>
<entry><title>Free SSL certificates: use Let&#x27;s Encrypt with ISPConfig 3</title><link href="https://blog.tomlankhorst.nl/free-ssl-certificates-use-lets-encrypt-with-ispconfig/"/>
<id>https://blog.tomlankhorst.nl/free-ssl-certificates-use-lets-encrypt-with-ispconfig/</id><updated>2016-04-17T00:00:00Z</updated><summary>As you might have noticed this site uses HTTPS. Obtaining SSL certificates was always a bit of a hassle. Finding a certificate authority, doing regular payment,</summary></entry>
<entry><title>Matlab2Tikz: Perfect MATLAB Figures in LaTeX</title><link href="https://blog.tomlankhorst.nl/matlab-to-latex-with-matlab2tikz/"/>
<id>https://blog.tomlankhorst.nl/matlab-to-latex-with-matlab2tikz/</id><updated>2016-04-14T00:00:00Z</updated><summary>Papers and reports can’t do without both but integrating MATLAB figures in LaTeX is not so obvious. Different methods for exporting and including graphics exist</summary></entry>
<entry><title>Estimating transmission time of a DecaWave DW1000 UWB transceiver frame</title><link href="https://blog.tomlankhorst.nl/estimating-decawave-dw1000-tx-time/"/>
<id>https://blog.tomlankhorst.nl/estimating-decawave-dw1000-tx-time/</id><updated>2016-04-13T00:00:00Z</updated><summary>I like to share with you my C implementation for estimating the DecaWave transmission time because it has been created with help from the community and thus sho</summary></entry>
<entry><title>Form submission CSRF issues in Magento 1.9.2.2</title><link href="https://blog.tomlankhorst.nl/no-post-response-due-to-csrf-in-magento/"/>
<id>https://blog.tomlankhorst.nl/no-post-response-due-to-csrf-in-magento/</id><updated>2015-11-10T00:00:00Z</updated><summary>Magento now includes CSRF (Cross-Site Request Forgery) protection on publicly available forms such as the new user registration form. The goal of this is to mak</summary></entry>
<entry><title>Fix Magento 1.9.2.2 &amp;#8216;Notice: Undefined variable: block  in &amp;#8230;/Template/Filter.php line 187&amp;#8217;</title><link href="https://blog.tomlankhorst.nl/fix-magento-1-9-2-2-notice-undefined-variable-block/"/>
<id>https://blog.tomlankhorst.nl/fix-magento-1-9-2-2-notice-undefined-variable-block/</id><updated>2015-10-29T00:00:00Z</updated><summary>This problem arose after upgrading to Magento 1.9.2.2. which is a patch release that patches a number of security flaws in Magento. After installation of the pa</summary></entry>
<entry><title>Overwrite Magento Core using a Module</title><link href="https://blog.tomlankhorst.nl/creating-module-to-overwrite-magento-core/"/>
<id>https://blog.tomlankhorst.nl/creating-module-to-overwrite-magento-core/</id><updated>2015-08-07T00:00:00Z</updated><summary>The layout of Magento’s information, warning and error messages cannot be easily changed using layout and template files. The HTML generation is done from a Blo</summary></entry>
<entry><title>MySQLi Database Driver for Kohana 3.3</title><link href="https://blog.tomlankhorst.nl/mysqli-database-driver-for-kohana-3-3/"/>
<id>https://blog.tomlankhorst.nl/mysqli-database-driver-for-kohana-3-3/</id><updated>2015-02-23T00:00:00Z</updated><summary>A couple of months ago I published my Kohana MySQLi database driver on GitHub. As the development of the framework came to a halt for the last few months the PH</summary></entry>
<entry><title>RADIUS Authentication driver for Kohana 3.3</title><link href="https://blog.tomlankhorst.nl/radius-authentication-driver-for-kohana-3-3/"/>
<id>https://blog.tomlankhorst.nl/radius-authentication-driver-for-kohana-3-3/</id><updated>2015-02-23T00:00:00Z</updated><summary>Lately I was in need for an authentication driver that supports RADIUS servers. Happily the Kohana Auth module supports easy development of custom authenticatio</summary></entry>
</feed>
