GNOME session save and restore

Save and restore your GNOME Shell desktop active running application windows and their positions across multiple workspaces using an automated command line script. Synopsis:

To save your session, press Alt+F2 or on a terminal:

>session save

To restore your session, press Alt+F2 or on a terminal:

>session restore

To restore your . . . → Read More: GNOME session save and restore

Thunderbird: Highlight row on focus

I use the keyboard a lot. For many years now, Thunderbird’s default theme (probably inherited from the desktop, which does the same thing on many dialogues) has had a little quirk that is slightly less conducive to keyboard use: It does not highlight the row with focus. Here is an example:

This way, I . . . → Read More: Thunderbird: Highlight row on focus

https and the browser conspiracy

While Google promotes HTTPS Everywhere, browsers have been working with a certifying authority oligopoly for many years promoting and enforcing an industry based on perception.

https: The good and the bad

The ‘s’ in https stands for ‘secure’ and indicates use of the SSL or TLS protocol. The SSL protocol serves 2 primary purposes:

Verification: . . . → Read More: https and the browser conspiracy

HTTP DDoS: “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”

Our servers were attacked recently by a constant stream of HTTP POST requests. The requests were coming in from a large range of IP addresses, at a rate of about 5-10 per second, with random POST data. However, all the requests had the same UserAgent, they always accessed the non-www form of the same domain, . . . → Read More: HTTP DDoS: “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”

Shell escaping in Perl

Shell Escaping:

There are several methods for escaping special characters in the Linux shell:

Double quotes: Double-quoted strings require escaping of only a few characters. Example: >echo “Some String: &>|\”\$’\`\s\\” Some String: &>|”$’`\s\ This method is useful as long as the string contains few or no characters that are special to the shell. It also . . . → Read More: Shell escaping in Perl

GNOME session save and restore

A newer version of this script is now available.

This script is used to save and restore a desktop session.

Why this script?

Some desktop managers do offer some session management features. Under GNOME it may be possible to run gnome-session-properties manually and turn on “Automatically remember running applications when logging out”. However, some GNOME . . . → Read More: GNOME session save and restore

Prevent GNOME screensaver during full-screen Flash videos

While movie players (such as VLC) prevent the GNOME screensaver from activating during movie playback, playing Flash videos does not affect the screensaver, which means having to move the mouse occasionally, or turning off the screensaver while watching YouTube videos and the like.

There is no perfect solution to this, but using a script, it . . . → Read More: Prevent GNOME screensaver during full-screen Flash videos

utf8::decode() may actually unset the UTF-8 flag

According to the documentation, the utf8::decode() function should generally set/turn on the UTF-8 flag for a string that contains multi-byte characters. However, apparently, there are circumstances under which utf8::decode() may not only not set the flag, but may actually unset/clear/turn off the flag for a string that contains multi-byte characters.

The following script contains 4 . . . → Read More: utf8::decode() may actually unset the UTF-8 flag

Virtualmin + SFTP + chroot

This guide examines setting up chroot’ed SFTP-only user accounts under Virtualmin.

The Rationale:

SFTP is a secure alternative to FTP and FTPS that uses SSH. With this setup, no FTP server is needed, as the native sshd server is used instead, SSH does not require an SSL certificate (like FTPS), and is usually considered more . . . → Read More: Virtualmin + SFTP + chroot

Perl: Default to UTF-8 encoding

The UTF-8 (Unicode) character encoding system is a well supported alternative to the older ISO-8859-1 (Latin-1) system that can make it easier to work with special characters and multiple languages. Many developers can exercise sufficient control over their system to ensure that:

All Perl source code is encoded in UTF-8 All text input files and . . . → Read More: Perl: Default to UTF-8 encoding