Adventures & experiences in contemporary technology
Since I often use the tail command to look at the end of a log file and occasionally in combination with the watch command for constant updates, I got to wondering if the number of lines issued by the tail command could be changed. That is a simple thing to do with the -n switch. All you need is something like the following:
tail -n 20 logfile.log
Here the value of 20 is the number of lines produced when it would be 10 by default, and logfile.log gets replaced by the path and name of what you are examining. One thing to watch is that your terminal emulator can show all the lines being displayed. If you find that you are not seeing all the lines that you expect, then that might be the cause.
While you could find this by looking through the documentation, things do not always register with you during dry reading of something laden with lists of parameters or switches. That is an affliction with tools that do a lot and/or allow a lot of customisation.
In the times when all software was bought boxed, there were fewer issues with finding serial numbers, activation codes and the like. If you were tidy and retained the packaging and documentation while knowing where to find them, you were away. However, in these days of software distribution over the web, things are a little less clear cut. The said codes tend to reside in emails sent following the purchase and, if you are like me, they tend to be scattered around the place; it is not a good thing when you need to get your software reinstalled after a system meltdown, like what I am needing to do. Another trap is that expensive software could disappear all of a sudden if your hard drive crashes, not an enticing thought. A spot of backup of both the installer and product key seems very much in order.
GNOME 3.10 came out last month but it took until its inclusion into the Arch and Antergos repositories for me to see it in the flesh. Apart from the risk of instability, this is the sort of thing at which rolling distributions excel. They can give you a chance to see the latest software before it is included anywhere else. For the GNOME desktop environment, it might have meant awaiting the next release of Fedora in order to glimpse what is coming. This is not always a bad thing because Ubuntu GNOME seems to be sticking with using a release behind the latest version. With many GNOME Shell extension writers not updating their extensions until Fedora has caught up with the latest release of GNOME for a stable release, this is no bad thing and it means that a version of the desktop environment has been well bedded in by the time it reaches the world of Ubuntu too. Debian takes this even further by using a stable version from a few years ago and there is an argument in favour of that from a solidity perspective.
Being in the habit of kitting out GNOME Shell with extensions, I have a special interest in seeing which ones still work or could work with a little tweaking and those which have fallen from favour. In the top panel, the major change has been to replace the sound and user menus with a single aggregate menu. The user menu in particular has been in receipt of the attentions of extension writers and their efforts either need re-work or dropping after the latest development. The GNOME project seems to have picked up an annoying habit from WordPress in that the GNOME Shell API keeps changing and breaking extensions (plugins in the case of WordPress). There is one habit from the WordPress that needs copying though and that is with documentation, especially of that API for it is hardly anywhere to be found.
GNOME Shell theme developers don’t escape and a large border appeared around the panel when I used Elementary Luna 3.4 so I turned to XGnome Enhanced (found via GNOME-Look.org) instead. The former no longer is being maintained since the developer no longer uses GNOME Shell and has not got the same itch to scratch; maybe someone else could take it over because it worked well enough until 3.8? So far, the new theme works for me so that will be an option should there a move to GNOME 3.10 on one of my PC’s at some point in the future.
Returning to the subject of extensions, I had a go at seeing how the included Applications Menu extension works now since it wasn’t the most stable of items before. That has improved and it looks very usable too so I am not awaiting the updating of the Frippery equivalent. That the GNOME Shell backstage view has not moved on that much from how it was in 3.8 could be seen as a disappointed but the workaround will do just fine. Aside from the Frippery Applications Menu, there are other extensions that I use heavily that have yet to be updated for GNOME Shell 3.10. After a spot of success ahead of a possible upgrade to Ubuntu GNOME 13.10 and GNOME Shell 3.8 (though I remain with version 13.04 for now), I decided to see I could port a number of these to the latest version of the user interface. Below, you’ll find the results of my labours so feel free to make use of these updated items if you need them before they are update on the GNOME Shell Extensions website:
There have been more changes coming in GNOME 3.10 than GNOME Shell, which essentially is a JavaScript construction. The consolidation of application title bars in GNOME applications continues but a big exit button has appeared in the affected applications that wasn’t there before. Also there remains the possibility of applying the previously shared modifications to Nautilus (also known as Files) and a number of these usefully extend themselves to other applications such as Gedit too. Speaking of Gedit, this gains a very useful x of y numbering for the string searching functionality with x being the actual number of the occurrence of a certain piece of text in a file and y being its total number of occurrences.GNOME Tweak Tool has got an overhaul too and lost the setting that makes a folder path box appear in Nautilus instead of a location part, opening Dconf-Editor and going to org > gnome > nautilus > preferences and completing the tick box for always-use-location-entry will do the needful.
Essentially, the GNOME project is continuing along the path on which it set a few years ago. Though I would rather that GNOME Shell would be more mature, invasive changes are coming still and it leaves me wondering if or when this might stop. Maybe that was the consequence of mounting a controversial experiment when users were happy with what was there in GNOME 2. The arrival of Fedora 20 should bring with it an increase in the number of GNOME shell extensions that have been updated. So long as it remains stable Antergos is good have a look at the latest version of GNOME for now and Cinnamon fans may be pleased the Cinnamon 2.0 is another desktop option for the Arch-based distribution. An opportunity to say more about that may arrive yet once the Antergos installer stops failing at a troublesome package download; a separate VM is being set aside for a look at Cinnamon because it destabilised GNOME during a previous look.
In a previous post, I described how to add Perl modules in Linux Mint while mentioning that I hoped to add another that discusses the use of the Parallel::ForkManager module. This is that second post and I am going to keep things as simple and generic as they can be. There are other articles like one on the Perl Maven website that go into more detail.
The first thing to do is ensure that the Parallel::ForkManager module is called by your script and having the following line near the top will do just that. Without this step, the script will not be able to find the required module by itself and errors will be generated.
use Parallel::ForkManager;
Then, the maximum number of threads needs to be specified. While that can be achieved using a simple variable declaration, the following line reads this from the command used to invoke the script. It even tells a forgetful user what they need to do in its own terse manner. Here $0 is the name of the script and N is the number of threads. Not all these threads will get used and processing capacity will limit how many actually are in use so there is less chance of overwhelming a CPU.
my $forks = shift or die "Usage: $0 N\n";
Once the maximum number of available threads is known, the next step is to instantiate the Parallel::ForkManager object as follows to use these child processes:
my $pm = Parallel::ForkManager->new($forks);
With the Parallel::ForkManager object available, it is now possible to use it as part of a loop. A foreach loop works well though only a single array can be used with hashes being needed when other collections need interrogation. Two extra statements are needed with one to start a child process and another to end it.
foreach $t (@array) {
my $pid = $pm->start and next;
<< Other code to be processed >>
$pm->finish;
}
Since there often is other processing performed by script and it is possible to have multiple threaded loops in one, there needs to be a way of getting the parent process to wait until all the child processes have completed before moving from one step to another in the main script and that is what the following statement does. In short, it adds more control.
$pm->wait_all_children;
To close, there needs to be a comment on the advantages of parallel processing. Modern multi-core processors often get used in single threaded operations and that leaves most of the capacity unused. Utilising this extra power then shortens processing times markedly. To give you an idea of what can be achieved, I had a single script taking around 2.5 minutes to complete in single threaded mode while setting the maximum number of threads to 24 reduced this to just over half a minute while taking up 80% of the processing capacity. This was with an AMD Ryzen 7 2700X CPU with eight cores and a maximum of 16 processor threads. Surprisingly, using 16 as the maximum thread number only used half the processor capacity so it seems to be a matter of performing one’s own measurements when making these decisions.
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.
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.
As part of my backup workflow, I maintain a machine running OpenMediaVault that I only power up when backups are to be performed. Typically, this often happens when I have new photography images to load, and I have a NAS that acts as an online backup system. The OpenMediaVault machine is a near-offline counterpart to the NAS for added safety.
Recently, I needed to check on the number of image files in a directory from an SSH session because of a need to create a new repository for 2024. Some files from this year had ended up in the 2023 one, and I needed to be sure that nothing from last year ended in the 2024 folder, or vice versa. Getting a file count from a trusted source was a quick way of doing exactly this.
Due to clumsiness with the NAS, I had to do this using the OpenMediaVault machine. While I could go mounting drives on an interim basis, it was quicker to work from a BASH session. The trick was to use the wc
command for counting the lines output by an invocation of the ls
command. An example follows:
ls -l | wc -l
The -l (as in l
for Lima) switch forces wc
to count lines, while the counterpart (same letter) for ls forces it to list the contents in long form, one item per line. Thus, counting the number of lines gets you the count of the number of files. The call to the ls
command can be customised to add other things life the number of dot files, but the above was enough for my purposes. When the files in both 2023 directories matched, I was satisfied that all was in order.
When I started into the world of computing at university, 200-300 MB hard drives were the norm for PC’s. My own first PC had what was then thought a sizable 1.6 GB disk and things have increased in size since then. I now have access to several hundred gigabytes of storage at home and we are now seeing 1TB offerings for the PC market.
Terabyte storage has been the preserve of the server market but given the disk sizes that are available now, even larger units are needed to describe the sizes of data volumes, ones that I haven’t seen before. So here goes:
Unit | Number of bytes | Number of bytes | Number of bytes |
petabyte | 1024 TB | 2**50 | 10**15 |
exabyte | 1024 PB | 2**60 | 10**18 |
zettabyte | 1024 EB | 2**70 | 10**21 |
yottabyte | 1024 ZB | 2**80 | 10**24 |
* Binary measurements are used by operating systems like Windows while decimal ones are used by hard drive manufacturers
I know that the above strays into the realms of esoterica but, with the way that things have been going, we may be talking about petabytes before very long. As it so happens, HP recently mentioned zettabytes when talking about its range of UNIX servers and I needed to go looking up what it meant…
Recently, I tried code like this in a SAS macro:
data sections;
infile datalines dlm=",";
input graph_table_number $15. text_line @1 @;
datalines;
"11.1 ,Section 11.1",
"11.2 ,Section 11.2",
"11.3 ,Section 11.3"
;
run;
While it works in its own right, including it as part of a macro yielded this type of result:
ERROR: The macro X generated CARDS (data lines) for the DATA step, which could cause incorrect results. The DATA step and the macro will stop executing.
A bit of googling landed me on SAS-L where I spotted a solution like this one that didn’t involving throwing everything out:
filename temp temp;
data _null_;
file temp;
put;
run;
data sections;
length graph_table_number $15 text_line $100;
infile temp dlm=",";
input @;
do _infile_=
"11.1 ,Section 11.1",
"11.2 ,Section 11.2",
"11.3 ,Section 11.3"
;
input graph_table_number $15. text_line @1 @;
output;
end;
run;
filename temp clear;
The filename statement and ensuing data step creates a dummy file in the SAS work area that gets cleared at the end of every session. That seems to fool the macro engine into thinking that input is from a file and not the CARDS/DATALINES method to which it takes grave exception. The trailing @’s hold an input record for the execution of the next INPUT statement within the same iteration of the DATA step so that the automatic variable _infile_ can be fed as part of the input process in a do block with the output statement ensure that new records from the input buffer reach the data set being created.
This method does work but I would like to know the underlying reason as to why SAS Macro won’t play well with included data entry using DATALINES or CARDS statements in a data step, particularly when it allows other methods that using either SQL insert statements or standard variable assignment in data step. I find it such a curious behaviour that I remain on the lookout for the explanation why it is like this.
It might just be my experience of the things but I do tend to take claims about laptop or netbook battery life with a pinch of salt. After all, I have a Toshiba laptop that only lasts an hour or two away from the mains and that runs Windows 7. For a long time, my ASUS Eee PC netbook was looking like that too but a spot of investigation reveals that there is something that I could do to extend the length of time before the battery ran out of charge. For now, the solution would seem to be installing eee-control and here’s what I needed to do that for Ubuntu 11.04, which has gained a reputation for being a bit of a power hog on netbooks if various tests are to be believed.
Because eee-control is not in the standard Ubuntu repositories, you need to add an extra one for install in the usual way. To make this happen, launch Synaptic and find the Repositories entry on the Settings menu and click on it. If there’s no sign of it , then Software Sources (this was missing on my ASUS) needs to be installed using the following command:
sudo apt-get install software-properties-gtk
Once Software Sources opens up after you entering your password, go to the Other Software tab. The next step is to click on the Add button and enter the following into the APT Line box before clicking on the Add Source button:
ppa:eee-control/eee-control
With that done, all that’s need is to issue the following command before rebooting the machine on completion of the installation:
sudo apt-get install eee-control
When you are logged back in to get your desktop, you’ll notice a new icon in your top with the Eee logo and clicking on this reveals a menu with a number of useful options. Among these is the ability to turn off a number of devices such as the camera, WiFi or card reader. After that there’s the Preferences entry in the Advanced submenu for turning on such things as setting performance to Powersave for battery-powered operation or smart fan control. The notifications issued to you can be controlled too as can be a number of customisable keyboard shortcuts useful for quickly starting a few applications.
So far, I have seen a largely untended machine last around four hours and that’s around double what I have been getting until now. Of course, what really is needed is a test with constant use to see how it gets on. Even if I see lifetimes of around 3 hours, this still will be an improvement. Nevertheless, being of a sceptical nature, I will not scotch the idea of getting a spare battery just yet.
I have just discovered that if you have a number with a leading zero, such as 08, it is assumed to be an octal number, that is, one of base 8. The upshot of this is that you get errors when you have numbers like 08 and 09 in your arithmetical expressions; they are illegal in octal: 08 should be 10 and 09 should be 11. Og course, as luck would have it, you get exactly these expressions when date/time processing. Luckily you can forced things to be base 10 by having something like 10#08 or, when extracting the minute from a date-time value, 10#$(date +%M). Strange as it might appear, this behaviour is all by design. It is dictated in the POSIX standard that governs UNIX. That said, I’d rather it if 08 was interpreted as an 8 and 09 as a 9 rather than triggering the errors that we see but that could have been seen as muddying the simplicity of the standard.