A site for solving at least some of your technical problems...
A site for solving at least some of your technical problems...
When moving a database from one computer to another, you've got to copy all the data.
For that purpose PostgreSQL offers a pair of functions named pg_dump and pg_restore.
In most cases that works great, however, some applications may create things such as additional functions that will NOT make it across. I do not know how to get that to work (and maybe it works in newer version of PostgreSQL?)
In any event, in most cases the following commands are enough (I used them with Drupal websites and since they stopped using some of the definitions they have in the system.install file used on ...
Today I really wanted to write a command on multiple lines because I pass many command line options to it and it started to look really very long (much wider than my editor width).
There are many entries on how to run multiple commands: write one ADD_CUSTOM_COMMAND() per command. Simple enough. If you really only want one single ADD_CUSTOM_COMMAND(), you can always write a shell script (a .sh file) and put all the commands in there.
However, writing a single command with many command line options separated by spaces on multiple line is not well explained in the ADD_CUSTOM_COMMAND() ...
Now that I have an HP scanner that directly generates PDF files, I have a new problem:
In some cases. I scan multiple documents and get separate PDF files. Later I need to merge those separate PDF files together to form a single PDF that I can share with others.
The Poppler project actually includes the perfect tool for this purpose. Here is the command one uses to do the merging:
pdfunite in-1.pdf in-2.pdf ... in-n.pdf out.pdf
Voilà!
Now out.pdf is one single PDF composed of all the input PDFs 1 to n.
The default manner in installing files in a Debian or Ubuntu package is to create a <package-name>.install file. That file has an extremely simple format that goes like this:
<path & name of file to install> <installation path>
You can repeat this for each and every file you want to install.
99% of the time, that works great and I tend to use it a log.
There are several issues with the default format in this file:
The path to the files changes if you have a single package or if you have two or more. In the ...
The less tool does a lot more than just show plain text files now a day.
This is done by piping the output of one or more commands run against the input, instead of directly showing said file contents.
The extension works through a set of variables named LESSOPEN and LESSCLOSE.
The LESSOPEN has a pipe at the start, end the name "lesspipe" for the script doing the heavy lifting:
| /usr/bin/lesspipe %s
The idea is for that script to write the results you want less to display to stdout.
So for example that script could do:
echo ...
By default, VirtualBox assigns a default icon to your VMs. That icon appears in your bar of icons (usually on the left side of the screen) and also in the VirtualBox interface.
If you just have one or two VMs, that's certainly not a huge issue. When you have 50 to 100, it becomes tedious to know what's what since all the icons will look alike (by default, they select the icon based on the operating system defined for that VM).
The solution is to assign a new icon to your VMs.
First, make sure that your icon is a square such as 48x48, 96x96, ...
The Linux system comes with a tool named xxd, which is very useful to print binary files to a list of hexadecimal bytes.
It is pretty well thought of. I had my own atype command, but I now tend to use xxd because it's by default on most Linux systems, so no need to compile & install my own tool.
The most interesting feature, which I found out today, is that the tool is capable of doing the inverse (see the -r option): it can read its own output and generate a binary file again. It actually doesn't need to be output from xxd, just hexadecimal codes.
Once in a while, in rather complicated application, I end up with a deadlock.
Looking for what is happening can be tedious since a deadlock doesn't tell you anything other than: this thread is waiting on a mutex (or possibly even a condition on a mutex).
In case of a deadlock, though, the mutex is already locked by another mutex and it is easy to find out which other thread locked the mutex.
In many cases, when a deadlock occurs, the two threads use the same two (or more) mutexes and at some point both are trying to lock those two mutexes out of order (A then B for one and B then A ...
In the last two days, my Thunderbird installation was complaining about my GPG encryption key saying it was expired.
Error while saving draft - The key Alexis Wilke <alexis@m2osw.com> (key ID 0x123123123) has expired.
The interesting fact is that I created that key a long time ago so I guess even if you create a key for like 10 years, it still can expire...
I found this page by Henning Koch with very simple list of steps on how to update the key. Here I have an updated copy. His page has a few other options you may also be interested in.
On my end, I have Thunderbird and the error ...
The following probably works with other versions of Linux, but I ran those commands on Ubuntu, so if you have a different OS, you may want to verify each step closely first.
The idea when you upgrade to a new OS is that the new version is available in that OS and the old version is now obsolete, so the best is to upgrade to the new database and make sure that the new database work. Then you can get rid of the old cluster.
The following are the steps I used:
sudo su - su - postgresql pg_dropcluster --stop 12 main pg_upgradecluster 10 main
Once the transfer is done AND THE NEW ...
Recent Posts on The Linux Page: