Adventures & experiences in contemporary technology
There are times when I just need to share some links outside the fleeting environment of Twitter, and this is where they might appear. The practice is very much in the spirit of the original weblog idea when it was about link sharing and not about writing down one’s thoughts as it subsequently became before sharing of photos, videos and other multimedia content became a mainstay of (legal) sharing for some people.
22:22 September 26, 2024
21:46 September 22, 2024
21:43 September 22, 2024
22:32 September 13, 2024
22:47 September 12, 2024
23:18 September 11, 2024
23:39 August 29, 2024
18:03 August 27, 2024
18:02 August 27, 2024
20:34 August 26, 2024
Installing and Configuring LAMP on Ubuntu 22.04 with Ansible
20:33 August 26, 2024
18:08 August 26, 2024
21:46 August 25, 2024
21:45 August 25, 2024
21:44 August 25, 2024
21:42 August 25, 2024
11:59 August 14, 2024
15:08 August 8, 2024
17:34 January 21, 2024
17:32 January 21, 2024
17:33 January 16, 2024
17:59 January 15, 2024
17:58 January 15, 2024
17:58 January 15, 2024
13:23 January 15, 2024
18:44 January 14, 2024
22:33 January 8, 2024
22:20 January 6, 2024
13:32 January 5, 2024
21:47 December 23, 2023
How to stop websites from sending Bitdefender Safepay notifications
18:19 December 18, 2023
18:18 December 18, 2023
16:33 December 18, 2023
22:26 November 19, 2023
19:02 November 10, 2023
19:14 November 9, 2023
23:04 October 20, 2023
20:26 July 31, 2023
So you want to build your own open source ChatGPT-style chatbot…
16:42 July 31, 2023
16:37 July 31, 2023
16:33 July 31, 2023
19:52 July 4, 2023
09:32 May 12, 2023
16:30 March 17, 2023
13:42 March 15, 2023
19:35 March 14, 2023
13:15 March 10, 2023
Set Up SSH Two-Factor Authentication (2FA) on Debian 11 Server
13:51 March 9, 2023
10:25 March 6, 2023
WordPress 4.6 Admin Font Change Fix – How To Restore Open Sans Font?
10:24 March 6, 2023
20:14 February 24, 2023
20:11 February 24, 2023
14:35 February 24, 2023
01:31 February 20, 2023
01:31 February 20, 2023
Why is the Filter Gallery Greyed Out in Photoshop and How to Fix it
10:18 February 7, 2023
11:00 January 27, 2023
How to take a full-page screenshot with a hidden Chrome shortcut
14:53 January 23, 2023
15:52 January 19, 2023
10:15 January 12, 2023
10:12 January 12, 2023
18:08 January 10, 2023
18:08 January 10, 2023
18:07 January 10, 2023
18:06 January 10, 2023
17:12 January 10, 2023
Proton Mail Bridge Microsoft Outlook for Windows 2019 setup guide
08:07 January 4, 2023
22:39 December 4, 2022
10:50 December 2, 2022
21:48 November 22, 2022
10:00 November 21, 2022
09:59 November 21, 2022
14:29 November 18, 2022
14:08 November 14, 2022
15:17 November 1, 2022
19:51 October 29, 2022
How to Upload or Download Files/Directories Using sFTP in Linux
19:50 October 29, 2022
19:49 October 29, 2022
17:00 October 27, 2022
[FIX] Memory integrity due to Incompatible drivers cannot be enabled in Windows 11
19:20 October 25, 2022
How can I redirect and rewrite my URLs with a .htaccess file?
13:49 October 25, 2022
How to change the maximum number of IMAP connections in Mozilla Thunderbird
20:49 October 23, 2022
18:06 October 23, 2022
13:46 October 23, 2022
11:49 October 22, 2022
11:49 October 22, 2022
Secure Tutanota desktop clients for Linux, Windows and Mac OS
11:48 October 22, 2022
11:47 October 22, 2022
11:47 October 22, 2022
How to Access the Hidden Symbols on Your Android Phone’s Keyboard
08:43 October 22, 2022
10:31 October 13, 2022
Enable or Disable Automatic Sign-in at Startup in Windows 11
10:25 October 13, 2022
13:25 October 12, 2022
12:03 October 12, 2022
11:52 October 12, 2022
4 Ways to Embed User Privacy & Data Security in Your Business
11:48 October 12, 2022
11:47 October 12, 2022
11:47 October 12, 2022
11:47 October 12, 2022
11:46 October 12, 2022
11:45 October 12, 2022
11:45 October 12, 2022
11:44 October 12, 2022
11:44 October 12, 2022
11:43 October 12, 2022
11:42 October 12, 2022
11:40 October 12, 2022
11:40 October 12, 2022
11:39 October 12, 2022
11:38 October 12, 2022
11:37 October 12, 2022
11:37 October 12, 2022
11:36 October 12, 2022
11:33 October 12, 2022
09:46 October 12, 2022
09:30 October 12, 2022
Introducing Improvements to the Opt-Out Form Feature in Matomo
14:14 October 11, 2022
17:51 October 3, 2022
12:06 September 29, 2022
15:01 September 28, 2022
10:58 September 15, 2022
How to automatically decline meeting invites from specific people in Outlook
10:46 August 25, 2022
16:06 August 20, 2022
15:34 July 29, 2022
15:32 July 29, 2022
15:32 July 29, 2022
12:02 July 28, 2022
12:01 July 28, 2022
10:57 July 27, 2022
10:57 July 27, 2022
10:56 July 27, 2022
10:55 July 27, 2022
10:55 July 27, 2022
18:39 July 26, 2022
18:38 July 26, 2022
18:37 July 26, 2022
18:36 July 26, 2022
18:35 July 26, 2022
18:35 July 26, 2022
18:34 July 26, 2022
18:34 July 26, 2022
09:16 July 25, 2022
19:03 July 22, 2022
What is a Cloud-Native Application Protection Platform (CNAPP)?
17:43 July 21, 2022
17:40 July 21, 2022
14:20 July 21, 2022
17:47 July 20, 2022
How to set rsync speed limit from eating all bandwidth with ‐‐bwlimit option
17:47 July 20, 2022
09:20 July 14, 2022
09:03 July 11, 2022
09:05 July 1, 2022
09:00 July 1, 2022
14:05 June 29, 2022
14:05 June 29, 2022
11:05 June 29, 2022
16:43 June 26, 2022
13:26 June 26, 2022
How to Reduce Eric Jones Spam (and all the other Contact Form Spam)
12:43 June 26, 2022
12:42 June 26, 2022
12:41 June 26, 2022
12:40 June 26, 2022
19:36 June 25, 2022
17:13 June 24, 2022
15:32 June 20, 2022
14:13 June 14, 2022
Handling False Positives with the OWASP ModSecurity Core Rule Set
11:10 June 14, 2022
How To Use a Multimeter to Measure Voltage, Current and More
13:11 May 26, 2022
13:10 May 26, 2022
15:36 May 9, 2022
14:53 April 27, 2022
19:28 March 27, 2022
19:27 March 27, 2022
20:25 March 17, 2022
15:22 March 16, 2022
09:10 February 26, 2022
Show Amount Of Posts, Pages, Categories, Tags, Comments For WordPress Themes
09:09 February 26, 2022
How to Develop a WordPress Theme from Scratch – Beginners Guide
09:08 February 26, 2022
Count the number of posts in the custom post type in WordPress
09:41 February 23, 2022
09:41 February 23, 2022
20:59 February 22, 2022
18:54 February 22, 2022
10:19 February 22, 2022
21:24 February 21, 2022
21:24 February 21, 2022
18:52 February 18, 2022
18:51 February 18, 2022
18:51 February 18, 2022
18:50 February 18, 2022
How To Configure Apache HTTP with MPM Event and PHP-FPM on Ubuntu 18.04
16:45 February 18, 2022
Protecting WordPress with Open Source Web Application Firewall ModSecurity
14:35 February 16, 2022
14:35 February 16, 2022
09:32 February 16, 2022
09:26 February 15, 2022
18:56 February 14, 2022
How To Configure Nginx to Use Custom Error Pages on Ubuntu 14.04
09:24 February 14, 2022
19:42 February 13, 2022
19:42 February 13, 2022
19:41 February 13, 2022
13:02 February 13, 2022
08:55 February 13, 2022
08:54 February 13, 2022
08:53 February 13, 2022
How To Install Linux, Nginx, MySQL, PHP (LEMP Stack) on Ubuntu 18.04
09:03 February 11, 2022
09:03 February 11, 2022
09:02 February 9, 2022
20:35 February 8, 2022
20:34 February 8, 2022
20:33 February 8, 2022
10:02 February 8, 2022
09:59 February 8, 2022
09:57 February 8, 2022
09:57 February 8, 2022
09:56 February 8, 2022
09:55 February 8, 2022
09:54 February 8, 2022
09:54 February 8, 2022
09:53 February 8, 2022
Talkyard with Nginx as a reverse proxy and Letsencrypt for HTTPS
09:53 February 8, 2022
09:52 February 8, 2022
To Fix The Docker and UFW Security Flaw Without Disabling Iptables
09:51 February 8, 2022
09:47 February 8, 2022
09:47 February 8, 2022
09:46 February 8, 2022
09:46 February 8, 2022
Comments on a static website? That’s possible with utteranc.es!
09:39 February 8, 2022
09:37 February 8, 2022
09:35 February 8, 2022
09:29 February 8, 2022
09:29 February 8, 2022
15:35 February 5, 2022
15:34 February 5, 2022
Tutorial: How to Add Self-hosted Comments to Your Static Site
15:33 February 5, 2022
15:32 February 5, 2022
15:31 February 5, 2022
10:30 February 5, 2022
16:16 February 4, 2022
16:12 February 4, 2022
16:01 February 4, 2022
16:00 February 4, 2022
15:59 February 4, 2022
Build a Search Bar for Your Hugo Blog With a JSON Index and Some Vanilla JS
15:59 February 4, 2022
15:58 February 4, 2022
15:56 February 4, 2022
15:56 February 4, 2022
15:55 February 4, 2022
15:54 February 4, 2022
21:54 January 29, 2022
21:54 January 29, 2022
21:20 January 29, 2022
How the Bootstrap 4 Grid Works
This also helps with understanding Bootstrap 5 as well. That was something that I discovered while porting a website from WordPress to Hugo.
21:14 January 29, 2022
21:13 January 29, 2022
21:12 January 29, 2022
21:04 January 29, 2022
How to Open Link in New Tab with Hugo’s new Goldmark Markdown Renderer
21:04 January 29, 2022
21:03 January 29, 2022
21:02 January 29, 2022
21:02 January 29, 2022
21:01 January 29, 2022
21:00 January 29, 2022
Overview of the best commenting systems for your static website
11:55 January 27, 2022
11:54 January 27, 2022
11:52 January 27, 2022
11:50 January 27, 2022
11:49 January 27, 2022
11:49 January 27, 2022
11:48 January 27, 2022
11:48 January 27, 2022
11:47 January 27, 2022
09:00 January 24, 2022
18:16 January 23, 2022
18:16 January 23, 2022
18:15 January 23, 2022
18:14 January 23, 2022
08:36 January 23, 2022
How to upgrade Debian 10 to Debian 11 Bullseye using the CLI
08:32 January 23, 2022
15:51 January 22, 2022
15:17 January 22, 2022
11:13 January 22, 2022
11:12 January 22, 2022
11:12 January 22, 2022
11:11 January 22, 2022
11:11 January 22, 2022
11:06 January 22, 2022
11:05 January 22, 2022
10:48 January 22, 2022
11:07 January 20, 2022
13:00 January 19, 2022
15:14 January 18, 2022
13:55 January 16, 2022
18:22 January 13, 2022
13:17 January 8, 2022
18:12 January 2, 2022
18:12 January 2, 2022
18:11 January 2, 2022
17:59 December 24, 2021
17:04 December 10, 2021
16:56 December 10, 2021
10:07 December 9, 2021
10:05 December 9, 2021
13:47 December 7, 2021
11:36 December 2, 2021
15:11 November 30, 2021
14:44 November 30, 2021
18:55 November 29, 2021
[Postfix] – warning: mail_queue_enter: create file maildrop Permission denied
14:52 November 17, 2021
14:42 November 17, 2021
08:16 November 17, 2021
09:05 November 13, 2021
13:18 November 9, 2021
13:18 November 9, 2021
09:01 November 5, 2021
How to Enable clipboard and folder sharing in Qemu/KVM on Windows Guest
08:59 November 5, 2021
08:50 November 5, 2021
“Error 1067: The process terminated unexpectedly” on Windows 10, 7 & 8
16:38 November 4, 2021
Error: No CurrentVersion entry in Software/JavaSoft registry
10:00 November 4, 2021
20:40 November 2, 2021
20:38 November 2, 2021
20:37 November 2, 2021
20:37 November 2, 2021
13:43 November 2, 2021
How to Change the Default Browser in Windows 11, Even for Widgets and Search
How to Move the Taskbar to the Top in Windows 11
How to Replace the Start Menu in Windows 11
13:57 October 30, 2021
20:09 October 26, 2021
16:15 October 26, 2021
16:15 October 26, 2021
16:14 October 26, 2021
17:09 October 24, 2021
17:09 October 24, 2021
17:08 October 24, 2021
How To Convert VirtualBox Disk Image (VDI) and img to Qcow2 format
17:08 October 24, 2021
17:07 October 24, 2021
17:06 October 24, 2021
21:07 October 22, 2021
How to Enable HTTP/2 in Apache Web Server on Ubuntu and Debian
10:29 October 21, 2021
10:29 October 21, 2021
15:46 October 19, 2021
How to Run Windows 11 on a USB Drive (and Take it With You)
How to Bypass Windows 11’s TPM Requirement and Upgrade from Windows 10
13:12 October 12, 2021
15:31 October 8, 2021
15:30 October 8, 2021
15:29 October 8, 2021
Enable Virtualization-based Protection of Code Integrity in Microsoft Windows
15:28 October 8, 2021
18:25 October 5, 2021
17:05 October 5, 2021
11:47 October 2, 2021
11:46 October 2, 2021
19:21 October 1, 2021
13:26 September 29, 2021
14:48 September 28, 2021
15:14 September 25, 2021
Whitelist an IP using WAF -- ModSecurity Whitelisting IP addresses
10:59 September 25, 2021
14:56 September 24, 2021
14:56 September 24, 2021
09:03 September 24, 2021
09:03 September 24, 2021
09:02 September 24, 2021
09:02 September 24, 2021
13:07 September 23, 2021
13:06 September 23, 2021
13:06 September 23, 2021
09:10 September 23, 2021
09:09 September 23, 2021
17:09 September 22, 2021
17:08 September 22, 2021
17:07 September 22, 2021
17:07 September 22, 2021
09:12 September 22, 2021
16:22 September 21, 2021
08:35 September 20, 2021
Integrating AbuseIPDB with Fail2Ban -- Automatically Report Bad IPs
21:10 September 19, 2021
21:09 September 19, 2021
13:24 September 17, 2021
12:19 September 4, 2021
09:46 September 4, 2021
16:58 August 31, 2021
How to backup and load Cron Jobs from a File in Linux and UNIX? Crontab Command Example
16:58 August 31, 2021
14:19 August 27, 2021
14:19 August 27, 2021
08:46 August 18, 2021
18:26 August 17, 2021
18:26 August 17, 2021
18:25 August 17, 2021
Webmin: One big drawback to using this data centre management tool
10:32 August 13, 2021
18:09 August 12, 2021
18:05 August 12, 2021
How to prevent the “are you sure you want to leave this page?” prompt on Facebook?
18:05 August 12, 2021
Extending a Logical Volume on a Linux Virtual, Cloud or CloudNX server
11:41 August 11, 2021
11:41 August 11, 2021
11:40 August 11, 2021
18:00 July 27, 2021
17:59 July 27, 2021
17:59 July 27, 2021
19:07 July 24, 2021
11:03 July 23, 2021
Change user password in MySQL 5.7 with “plugin: auth_socket”
11:03 July 23, 2021
How to enable AMD Virtualization on the Aorus X570 Motherboard
09:30 July 15, 2021
08:04 July 15, 2021
18:09 July 13, 2021
08:16 July 13, 2021
13:58 July 11, 2021
08:36 July 8, 2021
08:35 July 8, 2021
15:40 July 6, 2021
09:28 July 3, 2021
09:06 July 2, 2021
10:13 July 1, 2021
How to install Windows 11 Insider preview on unsupported devices
14:55 June 28, 2021
13:30 June 24, 2021
23:47 June 5, 2021
16:38 June 3, 2021
13:27 June 3, 2021
10:02 June 1, 2021
11:00 May 28, 2021
10:59 May 28, 2021
10:58 May 28, 2021
10:58 May 28, 2021
10:57 May 28, 2021
dbxcli: A command line tool for Dropbox users and team admins
09:00 May 27, 2021
08:58 May 27, 2021
08:57 May 27, 2021
How to stop loading Microsoft Edge processes at startup on Windows 10
13:50 May 16, 2021
13:49 May 16, 2021
13:46 May 16, 2021
13:42 May 16, 2021
09:34 May 13, 2021
09:33 May 13, 2021
10:47 May 12, 2021
17:01 May 11, 2021
16:55 April 22, 2021
16:54 April 22, 2021
16:48 April 22, 2021
16:48 April 22, 2021
16:47 April 22, 2021
16:46 April 22, 2021
14:19 April 22, 2021
10:02 April 22, 2021
10:00 April 22, 2021
10:00 April 22, 2021
11:37 April 16, 2021
11:37 April 16, 2021
11:36 April 16, 2021
11:33 April 16, 2021
11:32 April 16, 2021
11:30 April 16, 2021
11:30 April 16, 2021
11:29 April 16, 2021
11:29 April 16, 2021
11:16 April 16, 2021
12:52 April 15, 2021
12:59 April 13, 2021
13:08 April 8, 2021
09:42 March 17, 2021
09:09 March 16, 2021
09:08 March 16, 2021
14:06 March 9, 2021
18:38 March 2, 2021
13:48 January 27, 2021
13:46 January 27, 2021
13:39 January 27, 2021
13:38 January 27, 2021
13:37 January 27, 2021
13:35 January 27, 2021
13:34 January 27, 2021
Connecting to Microsoft Exchange Calendar from Mozilla Thunderbird
13:03 January 27, 2021
11:10 January 10, 2021
11:09 January 10, 2021
11:08 January 10, 2021
11:07 January 10, 2021
11:07 January 10, 2021
09:26 January 7, 2021
09:41 December 17, 2020
Using mod_security2 with WordPress
WordPress – Mod_security problems with posts and comments fixed
17:59 December 14, 2020
17:46 December 12, 2020
20:54 December 6, 2020
20:53 December 6, 2020
14:51 November 23, 2020
How to force your computer to download the Windows 10 May 2020 Update
14:44 November 11, 2020
16:00 November 10, 2020
09:18 November 9, 2020
09:27 October 19, 2020
14:16 October 18, 2020
09:31 October 18, 2020
13:36 October 10, 2020
16:12 October 7, 2020
14:59 October 7, 2020
10:55 October 6, 2020
15:15 October 1, 2020
14:03 September 29, 2020
14:02 September 29, 2020
12:36 September 18, 2020
12:35 September 18, 2020
12:34 September 18, 2020
12:33 September 18, 2020
Everything you need to know about DNS -- Plus a list of free public DNS servers
12:27 September 18, 2020
Securing DNS across all of my devices with Pi-Hole + DNS-over-HTTPS + 1.1.1.1
10:47 September 18, 2020
16:11 September 17, 2020
17:04 September 11, 2020
Improve Firefox Performance on Linux by Turning WebRender On
16:46 September 9, 2020
How to Embed an External RSS Feed in WordPress Posts via Shortcode
13:43 July 31, 2020
19:03 July 18, 2020
13:43 July 13, 2020
17:51 July 4, 2020
09:33 June 16, 2020
Linux Mint 20 Blocks Snap App Installs, So Here’s the Workaround
09:30 June 16, 2020
08:11 June 10, 2020
09:31 June 4, 2020
13:48 March 8, 2020
17:11 March 2, 2020
14:27 February 29, 2020
17:05 February 26, 2020
14:55 February 23, 2020
14:51 February 23, 2020
10:35 February 20, 2020
Change User’s MySQL Password | Reset MySQL Root Password Guide
12:38 February 19, 2020
09:35 February 17, 2020
09:34 February 17, 2020
09:32 February 17, 2020
13:14 February 16, 2020
13:10 February 16, 2020
20:34 February 15, 2020
14:29 February 14, 2020
14:29 February 14, 2020
09:46 February 14, 2020
09:45 February 14, 2020
How to move docker data directory to another location on Ubuntu
09:45 February 14, 2020
The Complete Guide to “useradd” Command in Linux – 15 Practical Examples
09:43 February 14, 2020
09:42 February 14, 2020
20:30 February 12, 2020
How to Optimize and Compress JPEG or PNG Images in Linux Command Line
17:41 January 29, 2020
20:21 January 28, 2020
18:37 January 17, 2020
12:45 January 17, 2020
12:44 January 17, 2020
12:43 January 17, 2020
12:43 January 17, 2020
12:42 January 17, 2020
12:41 January 17, 2020
21:01 January 16, 2020
20:59 January 16, 2020
At the time of writing, this website uses an older version of TLS so you may see browser messages on visiting it. Hopefully, that will get sorted since it looks out for a security tool website.
20:57 January 16, 2020
12:19 January 15, 2020
12:17 January 15, 2020
The most important steps to take to make an Apache server more secure
12:17 January 15, 2020
How to Implement Security HTTP Headers to Prevent Vulnerabilities?
12:16 January 15, 2020
21:38 December 31, 2019
21:37 December 31, 2019
14:41 December 24, 2019
14:24 December 24, 2019
How To Protect an Apache Server with Fail2Ban on Ubuntu 14.04
This may refer to an older Ubuntu version but the advice contained in the article remains relevant to current ones. In fact, I have used it to harden some VPS systems that I have. Now, I only need to see what impact this action might have.
13:12 December 23, 2019
16:47 December 6, 2019
16:01 November 26, 2019
21:28 November 7, 2019
15:40 November 7, 2019
12:51 August 31, 2019
22:09 July 6, 2019
14:16 June 11, 2019
14:14 June 11, 2019
14:46 June 10, 2019
10:55 June 8, 2019
How to disable Sign-in screen acrylic (blur) background on Windows 10 May 2019 Update
11:47 May 22, 2019
11:39 January 30, 2019
Psensor – A Graphical Hardware Temperature Monitoring Tool for Linux
13:34 January 29, 2019
20:03 December 8, 2018
How to commit changes to a docker image
Five Ways to Slim Your Docker Images
09:59 December 8, 2018
09:58 December 8, 2018
14:04 December 6, 2018
15:53 December 5, 2018
Show the slide number and total number of slides on every PowerPoint slide
21:28 December 4, 2018
19:53 December 4, 2018
18:03 November 26, 2018
Configure Postfix to Send Mail Using Gmail and Google Apps on Debian or Ubuntu
18:02 November 26, 2018
Configure Postfix to Send Mail Using an External SMTP Server
18:01 November 26, 2018
18:01 November 26, 2018
18:00 November 26, 2018
11:09 November 26, 2018
11:07 November 26, 2018
How to Setup a Complete Mail Server (Postfix) using ‘SquirrelMail’ (Webmail) on Ubuntu/Debian
14:51 November 25, 2018
11:43 November 25, 2018
How to Configure WordPress to Use SMTP For Sending Emails Tutorial
11:42 November 25, 2018
11:41 November 25, 2018
11:41 November 25, 2018
11:39 November 25, 2018
11:38 November 25, 2018
11:38 November 25, 2018
11:37 November 25, 2018
10:51 November 25, 2018
10:45 November 25, 2018
20:31 November 24, 2018
20:30 November 24, 2018
17:44 November 24, 2018
17:37 November 24, 2018
Redirecting HTTP to HTTPS Using .htaccess File: Step by Step
21:45 November 22, 2018
21:43 November 22, 2018
12:10 November 17, 2018
12:08 November 17, 2018
apt-get install linux-image-extra getting “W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.”
12:04 November 17, 2018
15:40 November 4, 2018
Here are the 13 most useful Mac shortcuts that will help you do everything faster
11:02 October 21, 2018
09:05 October 13, 2018
11:48 September 22, 2018
16:12 September 20, 2018
Use an Easy PowerShell Command to Search Files for Information
12:20 September 19, 2018
10:06 September 9, 2018
21:18 August 5, 2018
13:42 July 22, 2018
17:27 July 21, 2018
14:27 July 15, 2018
16:27 July 13, 2018
10:13 June 25, 2018
11:35 June 21, 2018
17:17 June 8, 2018
12:24 June 8, 2018
15:13 May 31, 2018
15:13 May 31, 2018
20:48 May 29, 2018
20:47 May 29, 2018
11:02 May 28, 2018
10:26 May 28, 2018
09:54 May 28, 2018
16:02 May 25, 2018
Performance optimizations you can apply today to load the Matomo JavaScript tracker faster
16:01 May 25, 2018
Different ways of embedding the Matomo tracking code for faster website performance
11:24 May 16, 2018
23:18 May 13, 2018
23:15 May 13, 2018
23:13 May 13, 2018
11:02 May 12, 2018
10:59 May 12, 2018
10:52 May 12, 2018
10:32 May 12, 2018
10:30 May 12, 2018
10:27 May 12, 2018
21:42 May 5, 2018
12:23 April 18, 2018
How to troubleshoot the error code “SEC_ERROR_UNKNOWN_ISSUER” on secure websites
09:34 April 15, 2018
10:08 April 14, 2018
22:25 April 13, 2018
18:20 April 10, 2018
Write your best resume in Word with help from LinkedIn in Resume Assistant
09:59 March 29, 2018
16:37 March 28, 2018
15:58 March 28, 2018
14:12 March 28, 2018
14:00 March 28, 2018
10:35 March 27, 2018
10:33 March 27, 2018
14:03 March 26, 2018
14:05 March 17, 2018
14:01 March 17, 2018
13:59 March 17, 2018
11:11 March 17, 2018
13:53 March 7, 2018
10:17 November 25, 2017
10:17 November 16, 2017
Diving Into the New Gutenberg WordPress Editor (Pros and Cons)
19:11 November 15, 2017
19:09 November 15, 2017
16:44 October 31, 2017
23:34 October 25, 2017
The care and feeding of software engineers (or, why engineers are grumpy)
23:32 October 25, 2017
23:31 October 25, 2017
19:20 October 24, 2017
19:19 October 24, 2017
19:18 October 24, 2017
23:37 October 22, 2017
23:36 October 22, 2017
23:32 October 22, 2017
23:31 October 22, 2017
23:30 October 22, 2017
23:29 October 22, 2017
23:25 October 22, 2017
10:19 October 14, 2017
17:03 October 7, 2017
17:01 October 7, 2017
Get rid of those extra TIFFs & PSDs in your Lightroom Library fast!
11:57 September 15, 2017
09:47 September 11, 2017
09:45 September 11, 2017
17:11 August 13, 2017
14:21 July 22, 2017
12:13 July 8, 2017
20:03 July 1, 2017
18:58 June 21, 2017
17:03 April 24, 2017
12:01 April 2, 2017
Windows 7: Windows 7 Not Updating
Windows Update error “0x80070002” or “0x80070003”
Fix Windows Update errors by using the DISM or System Update Readiness tool
18:17 March 22, 2017
23:25 March 12, 2017
22:08 March 7, 2017
Review: Evoluent Vertical Mouse 4 (and how to make it work in Ubuntu)
11:14 February 25, 2017
18:38 February 16, 2017
18:34 February 16, 2017
10:35 February 5, 2017
00:45 December 3, 2016
16:02 July 18, 2016
18:21 June 9, 2016
15:22 May 13, 2016
15:13 January 15, 2016
Get rid of the annoying formatting pop-up when you paste in Word
11:15 December 5, 2015
16:23 December 4, 2015
14:08 December 3, 2015
14:07 December 3, 2015
22:16 November 12, 2015
11:08 November 12, 2015
Fedora 23/22/21 nVidia Drivers Install Guide
09:56 October 30, 2015
20:15 October 29, 2015
20:10 October 29, 2015
20:06 October 29, 2015
21:01 October 2, 2015
22:02 September 28, 2015
11:28 August 7, 2015
16:14 July 27, 2015
11:18 July 24, 2015
18:40 July 10, 2015
15:16 July 9, 2015
18:41 July 6, 2015
07:24 July 2, 2015
The Command Prompt is Outdated: 2 Command Prompt Replacements for Windows
6 Great Windows 10 Features You Can Get Today on Windows 7 or 8
07:35 June 23, 2015
20:12 June 18, 2015
12:08 May 8, 2015
20:00 May 4, 2015
20:00 May 4, 2015
11:07 May 4, 2015
10:51 May 1, 2015
10:44 April 16, 2015
10:39 April 13, 2015
09:45 April 12, 2015
09:45 April 12, 2015
15:04 April 11, 2015
12:42 April 6, 2015
14:01 April 3, 2015
How to fix “System program problem detected” error on Ubuntu
19:27 March 28, 2015
11:34 March 27, 2015
11:21 March 27, 2015
11:04 March 27, 2015
16:51 March 26, 2015
16:53 March 18, 2015
04:00 March 7, 2015
02:39 March 5, 2015
Google Translate CLI Lets You Translate Text From The Command Line
01:51 March 5, 2015
23:19 February 21, 2015
14:25 February 19, 2015
11:56 February 16, 2015
22:29 February 9, 2015
15:45 February 5, 2015
Switch Windows by Hovering the Mouse Over a Window in Windows 7 or Vista
10:32 February 4, 2015
15:30 January 30, 2015
10:17 January 21, 2015
12:56 December 31, 2014
10:05 December 11, 2014
17:05 December 9, 2014
16:22 December 6, 2014
18:45 December 5, 2014
The crop tool is stuck in a fixed shape. How can I make it work properly?
14:55 November 26, 2014
22:12 November 18, 2014
How To Install MATE Desktop on Ubuntu 14.04 LTS
Cinnamon 2.4 Debuts With New Features, Here’s How To Install It In Ubuntu
FSF-Endorsed Linux Distro ‘Trisquel 7.0′ Released
19:53 November 11, 2014
21:54 November 4, 2014
21:52 November 4, 2014
22:30 October 30, 2014
21:34 June 11, 2014
18:57 January 24, 2014
Archive area of old releases of Java for those who need them.
Much of what you find here once got strewn around the LinkBlog and Data Science Directory pages because I have taken to trying out new computing languages. R, Python and Julia were among those that were new to me, and I am curious about Go too. My way of learning often involves trying out things and finding out possible approaches from the web. This collation comes from those ongoing efforts. More may follow them.
20:33 October 2, 2024
22:23 September 26, 2024
22:20 September 26, 2024
16:10 September 26, 2024
14:24 September 25, 2024
21:45 September 22, 2024
21:54 September 3, 2024
22:27 August 25, 2024
21:58 August 15, 2024
20:47 April 17, 2024
15:20 March 14, 2024
16:59 February 26, 2024
16:29 February 2, 2024
22:26 January 31, 2024
23:19 January 29, 2024
19:53 July 4, 2023
09:33 May 12, 2023
14:01 May 11, 2023
17:14 April 25, 2023
14:51 April 23, 2023
11:06 April 15, 2023
11:06 April 15, 2023
11:05 April 15, 2023
11:04 April 15, 2023
19:21 March 19, 2023
19:20 March 19, 2023
13:52 March 9, 2023
11:44 February 20, 2023
14:28 February 12, 2023
18:20 February 10, 2023
14:04 February 8, 2023
10:32 February 7, 2023
10:31 February 7, 2023
10:30 February 7, 2023
10:29 February 7, 2023
10:28 February 7, 2023
16:37 February 5, 2023
16:36 February 5, 2023
16:35 February 5, 2023
16:34 February 5, 2023
23:47 February 3, 2023
23:46 February 3, 2023
23:44 February 3, 2023
23:43 February 3, 2023
23:42 February 3, 2023
23:41 February 3, 2023
How to run command or code in parallel in bash shell under Linux or Unix
23:39 February 3, 2023
23:28 February 3, 2023
17:55 January 20, 2023
11:31 January 20, 2023
13:18 November 30, 2022
11:38 November 21, 2022
09:57 November 21, 2022
18:14 November 19, 2022
17:00 October 27, 2022
09:40 October 24, 2022
09:39 October 24, 2022
The JSON LIBNAME Engine: Real-World Applications Using Open APIs
09:37 October 21, 2022
09:35 October 21, 2022
09:25 October 14, 2022
LEAVE and CONTINUE: Two ways to control the flow in a SAS DO loop
11:57 October 12, 2022
14:04 October 3, 2022
14:03 October 3, 2022
14:03 October 3, 2022
09:38 October 1, 2022
09:37 October 1, 2022
Linux / UNIX: Bash Script Sleep or Delay a Specified Amount of Time
12:05 September 29, 2022
12:05 September 29, 2022
15:14 September 28, 2022
17:01 September 27, 2022
17:00 September 27, 2022
12:41 September 16, 2022
18:06 August 24, 2022
18:05 August 24, 2022
11:54 August 20, 2022
Using Pandas with Python Decimal for accurate currency arithmetic
13:10 August 18, 2022
12:56 August 13, 2022
15:34 July 29, 2022
15:33 July 29, 2022
15:33 July 29, 2022
18:33 July 21, 2022
15:54 July 8, 2022
09:02 July 1, 2022
16:23 June 16, 2022
16:22 June 16, 2022
16:22 June 16, 2022
16:21 June 16, 2022
14:35 June 15, 2022
14:55 April 27, 2022
10:21 April 4, 2022
10:20 April 4, 2022
19:30 March 27, 2022
20:59 March 18, 2022
15:13 March 9, 2022
15:24 March 8, 2022
14:35 March 7, 2022
07:55 February 28, 2022
09:15 February 24, 2022
11:07 February 21, 2022
11:06 February 21, 2022
16:33 February 18, 2022
11:06 February 18, 2022
10:39 February 18, 2022
15:48 February 16, 2022
09:30 February 8, 2022
22:06 January 29, 2022
22:05 January 29, 2022
22:05 January 29, 2022
22:03 January 29, 2022
22:03 January 29, 2022
15:19 January 22, 2022
21:09 January 16, 2022
14:22 January 16, 2022
14:13 January 16, 2022
14:01 January 16, 2022
5 Julia Projects for Beginners — Easy Ideas to Get Started Coding in Julia
13:58 January 16, 2022
17:52 January 14, 2022
18:22 January 13, 2022
15:45 January 12, 2022
09:02 January 12, 2022
13:16 January 11, 2022
12:15 January 10, 2022
12:08 January 10, 2022
Top 7 Best R Shiny Books and Courses That Are Completely Free
12:06 January 10, 2022
How renv restores packages from r-universe for reproducibility or production
12:04 January 10, 2022
13:58 January 8, 2022
13:18 January 8, 2022
09:49 January 8, 2022
New features in DataFrames.jl 1.3: Part 1
New features in DataFrames.jl 1.3: Part 2
New features in DataFrames.jl 1.3: Part 3
15:41 December 25, 2021
15:39 December 25, 2021
Tips to create beautiful, publication-quality plots in Julia
14:38 December 25, 2021
11:39 December 25, 2021
DTable – an early performance assessment of a new distributed table implementation
18:08 December 24, 2021
18:07 December 24, 2021
17:54 December 24, 2021
17:38 December 23, 2021
13:58 December 23, 2021
13:56 December 23, 2021
13:55 December 23, 2021
10:34 December 23, 2021
10:31 December 23, 2021
11:45 December 12, 2021
17:07 December 10, 2021
17:05 December 10, 2021
17:01 December 10, 2021
16:58 December 10, 2021
13:38 December 7, 2021
16:54 December 2, 2021
14:45 November 30, 2021
16:04 November 29, 2021
15:15 November 28, 2021
15:13 November 28, 2021
15:12 November 28, 2021
15:10 November 28, 2021
15:10 November 28, 2021
15:09 November 28, 2021
DataFrames.jl: why do we have both subset and filter functions?
15:08 November 28, 2021
15:08 November 28, 2021
15:07 November 28, 2021
15:06 November 28, 2021
15:05 November 28, 2021
15:04 November 28, 2021
15:03 November 28, 2021
15:02 November 28, 2021
08:58 November 26, 2021
08:57 November 26, 2021
08:57 November 26, 2021
11:55 November 25, 2021
16:14 November 18, 2021
16:12 November 18, 2021
08:13 November 18, 2021
14:53 November 17, 2021
12:18 November 10, 2021
08:55 November 2, 2021
How To Add Labels to Grouped Barplot with Bars Side-By-Side in R?
12:47 October 21, 2021
SAS Problem Note 31278: Table 1 node generated by PROC REPORT
18:24 October 5, 2021
14:14 October 5, 2021
19:20 October 1, 2021
12:44 September 30, 2021
13:27 September 29, 2021
13:36 September 27, 2021
19:10 September 26, 2021
09:13 September 22, 2021
14:24 September 20, 2021
14:03 August 26, 2021
Using SYSTASK and SAS macro loops for massively parallel processing
21:31 August 24, 2021
21:30 August 24, 2021
21:29 August 24, 2021
21:27 August 24, 2021
10:58 August 23, 2021
18:18 August 22, 2021
18:27 August 17, 2021
18:27 August 17, 2021
How to Sort Output of ‘ls’ Command By Last Modified Date and Time
12:45 August 16, 2021
11:17 August 16, 2021
10:31 August 13, 2021
10:47 August 9, 2021
14:10 August 4, 2021
SAS OnDemand for Academics: Working with Python, including Jupyter Notebook
09:02 August 4, 2021
09:02 August 4, 2021
JuMP | JuMP is a modeling language and supporting packages for mathematical optimization in Julia.
14:12 July 26, 2021
10:26 July 21, 2021
14:57 July 15, 2021
Get image size (width, height) with Python, OpenCV, Pillow (PIL)
14:56 July 15, 2021
09:32 July 15, 2021
09:31 July 15, 2021
09:15 July 15, 2021
How to conditionally stop SAS code execution and gracefully terminate SAS session
09:14 July 15, 2021
09:14 July 15, 2021
09:11 July 15, 2021
12:01 July 13, 2021
08:22 July 12, 2021
Adding lines or other geoms to a plot in ggplot by calling a custom function
12:36 July 11, 2021
12:34 July 11, 2021
09:27 July 11, 2021
09:26 July 11, 2021
4 tricks you should know to parse date columns with Pandas read_csv()
09:26 July 11, 2021
13:12 July 8, 2021
18:19 July 5, 2021
09:04 July 5, 2021
19:26 July 4, 2021
09:31 July 3, 2021
16:54 July 2, 2021
16:48 July 2, 2021
09:26 June 27, 2021
16:44 June 25, 2021
14:49 June 25, 2021
12:37 June 24, 2021
12:36 June 24, 2021
12:15 June 24, 2021
12:14 June 24, 2021
12:44 June 23, 2021
16:22 June 21, 2021
16:58 June 15, 2021
16:49 June 11, 2021
Problem Note 41684: RTF output appears truncated when a very long text string spans multiple pages
10:53 June 11, 2021
Adding a Column to a Pandas DataFrame Based on an If-Else Condition
11:37 June 9, 2021
16:37 June 3, 2021
13:57 June 3, 2021
09:10 June 3, 2021
09:10 June 3, 2021
09:09 June 3, 2021
11:25 May 28, 2021
11:23 May 28, 2021
11:22 May 28, 2021
11:18 May 28, 2021
11:17 May 28, 2021
11:16 May 28, 2021
11:15 May 28, 2021
11:13 May 28, 2021
11:12 May 28, 2021
11:11 May 28, 2021
11:10 May 28, 2021
11:09 May 28, 2021
11:08 May 28, 2021
11:06 May 28, 2021
11:05 May 28, 2021
11:05 May 28, 2021
11:04 May 28, 2021
11:01 May 28, 2021
10:52 May 28, 2021
10:33 May 28, 2021
Pandas Groupby: Summarising, Aggregating, Grouping in Python
10:17 May 28, 2021
10:16 May 28, 2021
Customize Dates on Time Series Plots in Python Using Matplotlib
10:15 May 28, 2021
10:09 May 28, 2021
10:08 May 28, 2021
10:07 May 28, 2021
10:07 May 28, 2021
10:06 May 28, 2021
10:05 May 28, 2021
10:04 May 28, 2021
10:03 May 28, 2021
09:50 May 28, 2021
09:49 May 28, 2021
09:03 May 27, 2021
Sample 24820: Creating a Directory Listing Using SAS for Windows
09:17 May 19, 2021
Python Data Wrangling Solutions — Dynamically Creating Variables When Slicing Data Frames
13:52 May 16, 2021
13:48 May 16, 2021
13:45 May 16, 2021
% Macro Core -- Production Ready Macros for SAS Application Developers
13:44 May 16, 2021
13:39 May 16, 2021
13:17 May 16, 2021
Create a nice looking table using R
17:02 May 13, 2021
15:43 May 13, 2021
15:25 May 13, 2021
15:24 May 13, 2021
11:22 May 12, 2021
11:17 May 12, 2021
11:16 May 12, 2021
11:15 May 12, 2021
11:08 May 12, 2021
11:07 May 12, 2021
11:07 May 12, 2021
11:05 May 12, 2021
11:03 May 12, 2021
11:01 May 12, 2021
10:50 May 12, 2021
10:48 May 12, 2021
How to Check if a File or a Directory exists in R, Python and Bash
10:46 May 12, 2021
10:42 May 12, 2021
10:42 May 12, 2021
17:02 May 11, 2021
17:02 May 11, 2021
17:01 May 11, 2021
How to fix common problems in output from SAS ODS Graphics procedures
17:12 May 10, 2021
17:05 May 10, 2021
09:43 May 5, 2021
09:14 April 2, 2021
14:14 March 12, 2021
Using SAS with Microsoft 365 (OneDrive, Teams, and SharePoint)
14:02 March 9, 2021
14:00 March 9, 2021
13:59 March 9, 2021
10:52 March 3, 2021
18:43 March 2, 2021
18:41 March 2, 2021
How to create stunning visualizations from scratch using Python
18:39 March 2, 2021
13:53 January 27, 2021
13:01 January 27, 2021
10:56 December 31, 2020
20:47 December 6, 2020
17:17 November 28, 2020
17:15 November 28, 2020
13:07 November 27, 2020
20:24 October 20, 2020
14:08 October 14, 2020
10:43 October 4, 2020
11:08 September 25, 2020
09:36 September 17, 2020
09:16 September 17, 2020
08:53 September 17, 2020
13:44 July 13, 2020
10:25 June 29, 2020
12:32 February 25, 2020
12:31 February 25, 2020
12:30 February 25, 2020
11:26 February 25, 2020
11:16 February 25, 2020
22:20 February 24, 2020
13:02 February 17, 2020
21:42 November 16, 2019
14:14 November 5, 2019
14:13 November 5, 2019
11:54 November 4, 2019
10:13 November 4, 2019
10:12 November 4, 2019
16:24 October 18, 2019
16:22 October 18, 2019
15:41 October 18, 2019
20:02 September 6, 2019
13:03 August 31, 2019
20:25 August 29, 2019
20:23 August 29, 2019
20:22 August 29, 2019
20:22 August 29, 2019
14:30 June 8, 2019
09:05 May 18, 2019
14:43 January 22, 2019
How to change your working directory for SAS with the DLGCDIR DATA step function
16:45 January 16, 2019
Working with Dates and Times Using the ISO 8601 Basic and Extended Notations
11:25 January 15, 2019
Have you created Scalable Vector Graphics with SAS?
Creating SVG (Scalable Vector Graphics) Files Using Universal Printing
14:19 December 20, 2018
18:58 December 10, 2018
15:19 October 4, 2018
15:28 October 2, 2018
Summary of SAS Macro Quoting Functions and the Characters They Mask
17:11 September 8, 2018
17:50 September 3, 2018
17:09 August 10, 2018
17:07 August 10, 2018
Five things you (probably) don’t know you can do with a hash table in SAS
22:37 June 28, 2018
Summary of SAS Macro Quoting Functions and the Characters They Mask
09:58 May 28, 2018
10:42 May 8, 2018
10:36 May 8, 2018
20:01 October 16, 2017
20:00 October 16, 2017
19:59 October 16, 2017
19:55 March 21, 2017
18:23 January 31, 2017
17:51 January 27, 2017
Sample 35864: Change line colors and styles for PROC SGPLOT output
11:23 November 14, 2016
19:06 September 22, 2016
22:20 March 1, 2016
10:38 February 10, 2016
SAS trick: get the LIBNAME statement to create folders for you
10:36 February 10, 2016
10:19 February 5, 2016
Usage Note 38339: SAS® file compatibility when upgrading from 32-bit to 64-bit Microsoft Windows
The top gotchas when moving to 64-bit SAS for Windows
Migrating from 32-bit SAS to 64-bit SAS
Migrating to a 64-bit operating system: Quick pointers
Converting SAS Formats from 32-Bit to 64-Bit
Excuse Me; But, Is That a 32-Bit or a 64-Bit SAS Catalog?
Handling SAS Formats Catalogs across Versions
Proc Migrate: How to Migrate Your Data and Know You’ve Done It Right!
20:41 January 30, 2016
12:14 November 30, 2015
11:15 July 24, 2015
09:24 June 12, 2015
Flag an item without associating a date
Excel import from Word: Extracting data from merged cells in a Word 2010 Table using VBA
01:55 March 5, 2015
17:06 December 9, 2014
LIBNAME Statement Syntax :: SAS/ACCESS 9.3 Interface to PC Files: Reference
15:17 November 14, 2014
19:14 November 8, 2014
Here is some desktop software that is either commonplace in the world of Linux or needs a bit more publicity, at least in my opinion. The list is sorted alphabetically, in case you are left wondering at its first entry. As with everything in this place, it may grow or contract, but change certainly is a feature of the world of Linux anyway. That’s never a bad thing, even if it upsets some from time to time.
This suite comes from the KDE project and includes office and graphical software. The latter includes Krita, which is described separately below, so this is an interesting collection of software.
Linux does have a choice of Twitter/X clients and this is one of them. It’s a KDE application that also supports Pump.IO, GNU Social and Friendica instances. There are others on the support list too, though Mastodon is a surprising absence given the recent furore surrounding Twitter/X.
The name is a play on that of Adobe’s Lightroom, and that gives you an idea of what it is about. This too allows non-destructive editing of images with the added information being kept in associated files with XMP extensions, one for each image. What the software does not have though is an image management interface like that of Lightroom or digiKam.
This is more than an organiser, and may be the KDE project’s counterpart to Adobe’s closed source Lightroom. Its photo organising doesn’t mean automated folder creation from EXIF information like F-Spot, Shotwell or Rapid Photo Downloader. It is for that reason that I combine digiKam with the last entry on the preceding list, since I jumped ship from Shotwell. The image processing part of the application is something that I have to explore.
Other IDE’s have taken over me these days, but this had a use for editing PHP scripts once upon a time. It is better known for what it offers Java developers, though.
A long-standing UNIX/Linux text editor that has been doing battle with Vi for longer than many can remember. Like the alternative, it has keyboard shortcuts that do anything but make concessions to Windows conventions, add needless steepening of any learning curve unless you find the appropriate option (CUA) that allows for some emulation of mainstream keyboard shortcuts. Nevertheless, there also is a GUI variant that makes life easier, and I have to concede that it has a history that is longer than even Microsoft itself. As if that weren’t enough compensation, it is a powerful piece of software whose functionality goes much further than text editing, whose surface I have only barely begun to scratch. The logic of the interface may differ from that to which many are accustomed, but it is consistent and well-thought-out nonetheless.
For a while, this was my photo organiser of choice, but it has not seen a new release since December 2010. Maybe that’s because it works well enough as it is, yet you cannot help thinking that a project with no new releases is a dead one, even if that sometime reflects how right they got things at the time.
Before my quest for added automation took over, this was my FTP client of choice, and its advent has made the need to buy such software extinct. That it works on both Windows and Linux is a bonus.
The ubiquitous Photoshop challenger is maturing nicely, though its interface may not please some.
This is very like ImageMagick (see below) with its main selling point being that it’s faster than its parent for the purpose of command line image editing; my own testing seems to support this so far. The commands that you use are similar to ImageMagick too, apart mainly from adding the gm command before the likes of convert and others. Speaking of convert, the GraphicsMagick version has yet to support the -annotate switch, so -draw needs to be used in its place.
Using a command line tool for image processing may seem counter-intuitive, but there are operations where you need not have much user intervention. Included among these is image resizing and conversion between file formats, and yours truly has done both. Processing many files at a stroke comes naturally to this very useful and talented piece of software, too.
Software media centres lie largely beyond my purview, but this seems to be one of the better known of the breed. It overlays the desktop when it is running and caters for consumption of music, movies, TV, photo slideshows and games. Controversially, there even is PVR capability for recording live broadcasts as well.
For those with a more artistic bent, this is a digital drawing and illustration package that will work not only on Linux but also on Windows or OS X. The results can be striking, so it looks as if your talent may be the only limitation with this tool.
Oracle’s takeover of Sun Microsystems meant that some feathers were ruffled in the open-source and free software community, and one example of a change coming from this is the forking of OpenOffice. It is that act that has brought LibreOffice into being, and it then gained so much ground that it eclipsed its parent.
Mozilla may promote their wares as bing privacy-friendly, yet others are not sure, so Firefox has been forked to give LibreWolf. This removes telemetry, adds a content blocker along with other enhancements.
There’s no way that I could not include what once was the de facto standard web browser for Linux, though there’s competition from Chrome/Chromium now too. There is also a mobile version for phones running the Android OS.
The original Mozilla suite still lives on, and this is what it’s called nowadays.
This has replaced Evolution on Linux systems that I use, and it comes close to eclipsing Microsoft Outlook everywhere else, too.
The main function of this piece of software is to record broadcast TV, hence that part of the name. It also has media playback capability, and that is what makes it more of a media centre than the digital video recording functionality may suggest.
UNIX/Linux offers plenty of text editors, so here’s another of the less well-known ones that I have encountered. Syntax highlighting is part of the offer and some menu customisation is possible too. In essence, it is a straightforward text editor that works with Windows keyboard shortcuts, but that can be no bad thing.
You cannot feature Eclipse in a software listing without having NetBeans too. In fact, it was NetBeans that I first encountered, and that was many moons ago. There is a PHP variant available, but that seemed very sluggish when I tried it and turned back to Eclipse, with which I have stuck ever since. That poor performance may have been caused by the variant of Java that was available to it, so I may give it another ago when I have the time.
Here, OBS stands for Open Broadcaster Software, and that somewhat says what it does. In essence, we are talking about video recording and live-streaming. With the increasing pervasiveness of video like what once was the case with photography, it is easy to see the use case for this kind of software.
Is this the office suite of choice for Linux? It certainly felt that way before Oracle bought Sun Microsystems and upset a few open-source developers. Now, the appearance of LibreOffice is going to make things look a little more interesting.
This is a far more user-friendly way to run Windows software on Linux, using the WINE libraries in the background. The name seems to originate from game playing, though web browsers like Internet Explorer and Safari are available too, along with a selection of other software. For the adventurous, there also is the possibility of installing something you have yourself.
Here’s the description from the website:
Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk.
It’s available for a number of platforms, including Linux and UNIX, and offers a way of blocking ads in Google Chrome, which is how I got to hear about it. Ubuntu users can snag a copy from the usual repositories too.
Configuration is by editing text files, but the default settings have sufficient so far. Setting a browser to use it means searching through settings for the means of making it use IP address 127.0.0.1 and port 8118 for ordinary and secure HTTP connections.
When Shotwell, started to fail to download photos from ever larger memory cards, it was time to look at something else and this became the replacement. You can use it to copy images from any card reader into the directory structure of your choosing. It does nothing more than downloading, and it does it so well that it merits a mention on here.
This was my photo library manager of choice until its limitations when it came to handling large data volumes came to light. It is written for the GNOME desktop environment and worked well for a few years before technology overtook it. Still, it also offers limited photo editing capabilities to go with its organising skills.
This reader and manipulator of raw digital camera image formats acts either alone or as a plugin. It can be used via the command line or using a GUI. That makes it flexible for those times when you need things to happen without much input from yourself.
All in all, this is an excellent piece of virtualisation software that makes you wonder why you’d pay for something like VMware Workstation. There is a closed source variant, but the open-source equivalent has what you’d want for personal use anyway. Windows 11 support took a while to come into place because of its TPM requirements, but that is steady these days.
Since the widely used VSCode is so available and appears to be open-source in nature, one does wonder why this project exists. Here is their take on that conundrum:
Microsoft’s VSCode source code is open source (MIT-licensed), but the product available for download (Visual Studio Code) is licensed under this not-FLOSS licence and contains telemetry/tracking. According to this comment from a Visual Studio Code maintainer:
When Microsoft builds Visual Studio Code, we do exactly this. They clone the VSCode repository, they lay down a customized product.json that has Microsoft-specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under their licence.
When you clone and build from the VSCode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a “clean” build, without the Microsoft customisations, which is by default licensed under the MIT licence.
The VSCodium project exists so that you don’t have to download and build from source. This project includes special build scripts that clone Microsoft’s VSCode repo, run the build commands, and upload the resulting binaries for you to GitHub releases. These binaries are licensed under the MIT licence. Telemetry is disabled.
If you want to build from source yourself, head over to Microsoft’s VSCode repo and follow their instructions. VSCodium exists to make it easier to get the latest version of MIT-licensed VS Code.
This is a fork of Firefox that claims to be faster and more private. From my brief test, it certainly feels faster, though I was not as able to test things on the privacy end.
While I continue to use Spyder as my preferred Python code editor, I also tried out Visual Studio Code. Handily, this Integrated Development Environment also has facilities for working with R and Julia code as well as MarkDown text editing and adding the required extensions is enough for these applications; it helps that there is an unofficial Grammarly extension for content creation.
My Python code development makes use of the Pylance extension and it works a little differently from Spyder when it comes to including files using import statements. Spyder will look into the folder where the base script is located but the default behaviour of Pylance is that it looks in the root path of your workspace. This meant that any code that ran successfully in Spyder failed in Visual Studio Code.
The way around this was to add the required location using the python.analysis.extraPaths setting for the workspace. That meant opening Settings by navigating to File > Preferences > Settings in the menu system and entering python.analysis.extraPaths into the search box. That took me to the section that I needed and I then clicked on Add Item before entering the required path and clicking on the OK button. That was enough to fix the problem and all worked as it should after that.
While there is a LinkBlog on here, it has caught many different things, so I want to split off links to Data Science material and that is what you find here. Meanwhile, the world of GenAI has burst upon us, so you will find something from there in here too. There is so much happening, that just keeping up can become an effort all of its own. Even so, I will try to stop things getting lost in a growing pile.
15:49 October 25, 2024
15:43 October 25, 2024
15:41 October 25, 2024
20:35 October 2, 2024
20:35 October 2, 2024
15:21 March 14, 2024
15:20 March 14, 2024
20:01 January 22, 2024
Flight, DataFusion, Arrow, and Parquet: Using the FDAP Architecture to build InfluxDB 3.0
16:04 January 22, 2024
11:58 December 6, 2023
16:47 November 3, 2023
17:13 June 14, 2023
17:02 June 14, 2023
17:01 June 14, 2023
09:10 April 26, 2023
Shiny User Adoption Fails: 9 Reasons Why Nobody Uses Your App
15:26 March 19, 2023
01:30 February 25, 2023
10:13 January 12, 2023
16:27 November 30, 2022
What is Chebychev’s Theorem and How Does it Apply to Data Science?
18:22 November 19, 2022
14:50 November 19, 2022
22:46 November 18, 2022
22:34 November 18, 2022
14:58 October 26, 2022
14:57 October 26, 2022
09:12 October 26, 2022
09:25 October 24, 2022
15:51 October 21, 2022
11:57 October 12, 2022
How to reveal new connections in a knowledge graph with link prediction
11:52 October 12, 2022
11:43 October 12, 2022
11:42 October 12, 2022
11:41 October 12, 2022
09:39 October 1, 2022
15:09 September 28, 2022
17:02 September 27, 2022
09:16 September 15, 2022
How to Hide a Worksheet in Excel (that can not be unhidden easily)
13:49 September 8, 2022
16:54 August 17, 2022
17:50 July 21, 2022
15:54 July 8, 2022
14:32 April 28, 2022
14:31 April 28, 2022
14:56 April 27, 2022
14:54 April 27, 2022
14:54 April 27, 2022
15:30 February 21, 2022
21:14 February 10, 2022
22:02 January 29, 2022
22:02 January 29, 2022
08:54 January 24, 2022
21:09 January 16, 2022
21:03 January 16, 2022
Freeing the data scientist mind from the curse of vectoRization
14:15 January 16, 2022
14:12 January 16, 2022
14:07 January 16, 2022
The Future of Machine Learning and why it looks a lot like Julia
18:05 January 13, 2022
17:53 January 13, 2022
09:43 January 13, 2022
13:58 January 8, 2022
14:00 December 23, 2021
10:31 December 23, 2021
18:33 December 10, 2021
SAS Institute has shared a few COVID resources for data scientists and others so I have shared links to them here as well:
United States Covid 19 Vaccination Data
8 terms you need to understand when assessing COVID-19 data
Track the spread of the pandemic
Vaccine Efficacy, Clinical Trials, and SAS: Part 4 of Biostats in the Time of Coronavirus
13:38 December 7, 2021
13:37 December 7, 2021
16:46 December 2, 2021
16:49 October 21, 2021
16:21 October 9, 2021
No line in plot chart despite + geom_line()
5 Ways to Subset a Data Frame in R
Eclipse StatET: Tooling for the R language
My favourite R package for: summarising data
Formatted Summary Statistics and Data Summary Tables with qwraps2
How to Easily Create Descriptive Summary Statistics Tables in R Studio – By Group
Saving plots to a file with pdf(), jpeg() and png()
YaRrr! The Pirate’s Guide to R
Convert Data Frame Column to Vector in R (3 Examples)
ggplot does not work if it is inside a for loop although it works outside of it
strptime: Date-time Conversion Functions to and from Character
How to sum a variable by group in R?
How to write your own ggplot2 functions in R
Rename Data Frame Columns in R
Reordering Data Frame Columns in R
How to calculate a rolling average in R
Remove Element from List in R (7 Example Codes) | How to Delete a List Component
Journal of Statistical Software
ggplot2: Elegant Graphics for Data Analysis
Run system commands or shell scripts from an interactive R session
R Markdown: The Definitive Guide
Tables in R (And How to Export Them to Word)
How to Create Customized Tables in Displayr Using R
Create Awesome HTML Table with knitr::kable and kableExtra
How to Make Beautiful Tables in R
High Performance Computing in R
Speed Up Your Code: Parallel Processing with multidplyr
Using the {plyr} (1.2) package parallel processing backend with Windows
R Programming for Data Science
Remove grid and background from plot (ggplot2)
Download, Tidy and Visualize Covid-19 Related Data
Data Visualization: A practical introduction
The Mathematics and Statistics of Infectious Disease Outbreaks
16:56 September 29, 2021
Compare the default definitions for sample quantiles in SAS, R, and Python
14:47 September 28, 2021
10:34 September 28, 2021
10:44 September 23, 2021
GxP Compliance in Pharma Made Easier: Good Documentation Practices with R Markdown and {officedown}
17:09 September 22, 2021
20:32 September 13, 2021
12:19 September 11, 2021
Parallel Processing in Python – A Practical Guide with Examples
Multithreading in Python: Running Functions in Parallel
Python: run functions in parallel with a multiprocessing wrapper function
Python – Run same function in parallel with different parameters
Run Python Code In Parallel Using Multiprocessing
Asynchronous Parallel Programming in Python with Multiprocessing
Python Multithreading and Multiprocessing Tutorial
15:51 September 9, 2021
15:50 September 9, 2021
13:55 September 2, 2021
14:03 August 26, 2021
14:02 August 26, 2021
11:13 August 25, 2021
17:55 August 7, 2021
14:09 August 4, 2021
14:02 August 4, 2021
14:01 August 4, 2021
09:01 August 4, 2021
NumFOCUS: A Nonprofit Supporting Open Code for Better Science
09:03 July 5, 2021
09:19 June 30, 2021
Common Format and MIME Type for Comma-Separated Values (CSV) Files
12:44 June 23, 2021
10:11 June 23, 2021
16:21 June 21, 2021
11:03 May 28, 2021
5 Tips for Writing Clean R Code – Leave Your Code Reviewer Commentless
11:02 May 28, 2021
10:02 May 28, 2021
09:58 May 28, 2021
09:01 May 27, 2021
09:01 May 27, 2021
08:59 May 27, 2021
13:52 May 16, 2021
13:47 May 16, 2021
13:43 May 16, 2021
13:42 May 16, 2021
Pandas Split strings into two List/Columns using str.split()
13:41 May 16, 2021
11:02 May 12, 2021
10:53 May 12, 2021
10:52 May 12, 2021
10:50 May 12, 2021
10:49 May 12, 2021
10:47 May 12, 2021
10:45 May 12, 2021
17:12 May 10, 2021
17:06 May 10, 2021
17:05 May 10, 2021
17:02 May 10, 2021
17:02 May 10, 2021
17:01 May 10, 2021
12:48 April 15, 2021
10:49 April 9, 2021
18:42 March 2, 2021
13:52 January 27, 2021
13:51 January 27, 2021
Combine Data From Multiple Worksheets into a Single Worksheet in Excel
15:21 December 10, 2020
LET() assigns names to calculations in Excel
The big difference between what Excel shows and what Excel knows
Excel is getting better Conditional Formatting with much needed improvements
Many Ordinal RANK() options in Excel with joint, equal rankings, words and more
20:47 December 6, 2020
20:43 December 6, 2020
15:12 November 18, 2020
09:20 November 9, 2020
09:17 November 9, 2020
09:15 November 9, 2020
13:53 October 23, 2020
rOpenSci Packages: Development, Maintenance, and Peer Review
09:25 October 7, 2020
09:22 October 7, 2020
09:21 October 7, 2020
09:37 September 17, 2020
09:15 September 17, 2020
14:10 July 1, 2020
23 sources of data bias for Machine Learning and Deep Learning
16:46 June 8, 2020
Summary of SAS Macro Quoting Functions and the Characters That They Mask
20:23 March 4, 2020
20:22 March 4, 2020
20:22 March 4, 2020
17:38 November 25, 2019
14:54 November 9, 2019
16:54 October 31, 2019
09:19 October 31, 2019
22:02 October 23, 2019
What is eCOA and How Does it Improve Clinical Trial Data Quality?
16:23 October 18, 2019
15:08 October 1, 2019
15:56 December 5, 2018
A Second Look at the ODS Destination for PowerPoint
The Dynamic Duo: ODS Layout and the ODS Destination for PowerPoint
Square Peg, Square Hole—Getting Tables to Fit on Slides in the ODS Destination for PowerPoint
23:43 October 25, 2017
23:42 October 25, 2017
23:42 October 25, 2017
19:21 October 24, 2017
23:26 October 22, 2017
19:59 October 16, 2017
19:55 October 16, 2017
Here are a few SAS functions that are less well known to me:
10:21 October 14, 2017
13:51 October 4, 2017
Association for Computing Machinery
Visualizing and Understanding Convolutional Networks
10:27 August 30, 2017
Prevent a SAS Session from Connecting to a SQL Database Until Required
16:50 March 10, 2017
12:36 May 19, 2016
12:14 May 19, 2016
12:10 February 8, 2016
10:10 February 5, 2016
18:16 January 13, 2016
10:11 November 7, 2015
02:40 March 5, 2015
Recently, I needed to inactivate blocks of code in a Perl script while doing some testing. This is something that I often do in other computing languages so I sought the same in Perl. To do that, I need to use the POD methodology. This meant enclosing the code as follows.
=start
<< Code to be inactivated by inclusion in a comment >>
=cut
The =start line could use any word after the equality sign but it seems that =cut is needed to close the multi-line comment. If this was actual programming documentation, then the comment block should include some meaningful text for use with perldoc but that was not a concern here since the commenting statements would be removed afterwards anyway and it is good practice not to leave commented code in a production script or program to avoid any later confusion.
In my case, this facility allowed me to isolate the code that I needed to alter and test before putting everything back as needed. It also saved time since I did not need to individually comment out every executable line because multiple lines could be inactivated at a time.
Using hash objects in SAS data step code offers some great advantages from the speed point of view; having a set of data in memory rather than on disk makes things much faster. However, that means that you need to keep more of an eye on the amount of memory that’s being used. The first thing is to work out how much memory is available and it’s not necessarily the total amount installed on the system or, for that matter, the amount of memory per processor on a multi-processor system. What you really need is the number, in bytes, that is stored in the XMRLMEM system option and here’s a piece of code that’ll do just that:
data _null_;
mem=getoption('xmrlmem');
put mem;
run;
The XMRLMEM is itself an option that you can only declare in the system call that starts SAS up in the first place and there are advantages to keeping it under control, particularly on large multi-user servers. However, if your hash objects start to exceed what is available, here’s the sort of thing that you can expect to see:
ERROR: Hash object added 49136 items when memory failure occurred.
FATAL: Insufficient memory to execute data step program. Aborted during the EXECUTION phase.
NOTE: The SAS System stopped processing this step because of insufficient memory.
NOTE: SAS set option OBS=0 and will continue to check statements. This may cause NOTE: No observations in data set.
Those messages are a cue for you to learn to keep those hash objects and to only ever make them as large as your memory settings will allow. Another thing to note is that hash objects are best retained for rather fixed data volumes instead of ones that could outgrow their limits. There’s a certain amount of common sense in operation here but it may be that promoters of hash objects don’t mention their limitations as much as they should. If you want to find out more, SAS have a useful paper on their website and the their Knowledge Base has more on the error messages that you can get.
Here’s a possible bugbear with programming using the SAS Display Manager in UNIX, selecting sections of code and running them. In the installations that I have encountered, the mouse selection is not retained so the code selection cannot be run. There is a fix for this and it is not the most obvious. Going to the Preferences dialogue box (Tools > Options > Preferences… from the menu bar) and selecting the Editing tab brings up the screen below:
Ensuring that "Automatically store selection" is switched off, as shown above, will allow one to select and submit sections of code from a SAS program like what is normal practice with Windows SAS. It isn’t an obvious solution but it does the trick for me.
At times in the past, I have complained about there not being sufficient documentation of the actual code used in WordPress itself. True, there is the venerable Codex but that can be incomplete and any extra help is always useful. Peter Westwood (a.k.a westi) has generated documentation from the code itself and put it up on the web for all to peruse. While we are on the subject of information on the more advanced aspects of WordPress, blogs by Mark Jaquith and Andrew Ozz are also worth a look. As the cliché goes, every little helps…
Recently, I needed to put in place some code to detect the presence or absence of a variable in a dataset and I chose SAS Macro programming as the way to do what I wanted. The logic was based on a SAS sample that achieved the same result in a data step and some code that I had for detecting the presence or absence of a dataset. Mixing the two together gave me something like the following:
%macro testvar(ds=,var=);
%let dsid=%sysfunc(open(&ds,in));
%let varexist=%sysfunc(varnum(&dsid,&var));
%if &dsid > 0 %then %let rc=%sysfunc(close(&dsid));
%if &varexist gt 0 %then %put Info: Variable &var is in the &ds dataset;
%else %put Info: Variable &var is not in the &ds dataset;
%mend testvar;
%testvar(ds=dataset,var=var);
What this does is open up a dataset and look for the variable number in the dataset. In datasets, variables are numbered from left to right with 1 for the first one, 2 for the second and so on. If the variable is not in the dataset, the result is 0 so you know that it is not there. All of this is what the VARNUM SCL function within the SYSFUNC macro function does. In the example, this resolves to %sysfunc(varnum(&dsid,var)) with no quotes around the variable name like you would do in data step programming. Once you have the variable number or 0, then you can put in place some conditional logic that makes use of the information like what you see in the above simple example. Of course, that would be expanded to something more useful in real life but I hope it helps to show you the possibilities here.