Browsed by
Author: Ryein C. Goddard

I’m a programmer, auto hobbyist, gardener, father, futurist and Linux enthusiast. I really like PHP for web development using laravel. For desktop/mobile development I like Qt. I also use Python for desktop scripting tasks. I am from the United States and currently live in South East Georgia, or better known as the Florida Georgia line.

Anaconda and ROS in Ubuntu 16.04 setup mistake

Anaconda and ROS in Ubuntu 16.04 setup mistake

I made a small mistake in my setup of Anaconda I believe that effected my install of ROS packages and effected using roslaunch.

I wanted to make a small blog post for my reference and anyone who happens to stumble upon it.

Basically when you edit your .bashrc you can set the PATH variable incorrectly.

Below is the variable as it should be, obviously you have to change the path to be your username.  If you put your path to the anaconda bin behind the $PATH variable appending it will cause your anaconda python version to be searched in first.  This is probably obvious to some, but I made the mistake.

export PATH=”$PATH:/home/username/anaconda3/bin”


If you made your install it is also useful to make sure your ROS install is also using Python 2 and not Python 3.  Also the reason “python” should be referred to as python 2 is because in the python documentation they tell developers to always refer to python as python 2 in the future and anything using python 3 should be referred to as python3 to avoid issues.

If for some reason you want to circumvent this you can install alternatives in Linux.

update-alternatives –install /usr/bin/python python /usr/bin/python2 1

update-alternatives –install /usr/bin/python python /usr/bin/python3 2


That adds those python binaries to the system for alternatives lists.  After you add them you can then set a default and easily alternate as well.  If you wish to assign it is easy.  I will also add this works for many different things on the system.

update-alternatives –config python

More cohesiveness on GUI applications

More cohesiveness on GUI applications

I am writing this because I am genuinely confused as to why I am writing this. Not because I am just confused, haha, that would be funny, but because Mozilla refuses to do something so simple it is amazing to me.

The Problem

Unless you venture away from a GTK related DE you might not realize this, but on Linux when you try to save a file when using Firefox, or Thunderbird it opens a GTK specific file dialog. People normally would say hey, it is a GTK application, isn’t that to be expected? To be fair, to non-programmers this is a solid argument and would make sense to most people. Here is the truth from some one who is a programmer and knows how this works vaguely in this regard because it isn’t my focus, but I have looked at the patches submitted by non-mozilla team members to remedy the issue and they are refused.

Any way, it works like this, when an application is created a developer/team of developers decides on their language which is usually tied to a gui toolkit, but not always, and if that is the case they decide on their gui toolkit of preference for what ever reason. The gui toolkit provides a lot of additional functionality and one piece of functionality provided is the file save dialog prompt. Some languages that have specific gui toolkits that are used most often like in java/swing have their own. KDE Plasma has their own and so does Gnome Shell. The part that most non-programmers don’t grasp is that this file save dialog for each user’s respective DE can be called upon with either some pretty small boiler plate code, or a small utility program. Each dialog works in mostly the same way. You save a file and the application provides a byte stream, or something along those lines and to open the application requests the byte stream or what have you, obviously brushing over things, but I am sure you can get an idea of how trivial this is.

Test Case or Example

In the case of Mozilla they have been working on making Firefox cross-platform and even going so far as to have it work on a multitude of devices and good on them. I love the privacy focus and keeping users protected, but for some programmers the gtk vs non-gtk, or qt vs non-qt, etc…etc.. Is a religious war. Users just want the best experience possible. When I save a file I want to be able to click on my already saved favorites that are linked to my file manager of choice and quickly get what ever task I am doing done. What users don’t want is another application that brings with it unnecessary usability complications.

Current Solution

Now some people might say, hey just compile the patch in it yourself. This is true and right now we do have a ppa for plasma users, It works well, but the point of writing this isn’t to introduce additional work for people that are annoyed it is in an attempt to add a little unity back to the conversation. This could easily be an upstream fix and this would in no way compromise Firefox in so much as it being a GTK application. This isn’t a slippery slope argument where if you accept this one patch then suddenly you will also need to accept more KDE related, or other DE specific patches. Most the other things in Firefox has been made so they are cross-platform so they would as the user would expect. Saving a file, or opening one is something I think falls into this category.

I want this to be clear, I am in no way saying any file open/save picker dialog prompt, or whatever you wanna call it is better then another. Each user has their reason selecting a certain one, or maybe they don’t care about the DE at all. Some applications that aren’t used so widely can probably totally ignore what I am saying, but here is my general idea.

Application gui toolkit providers and application developers need to have simple ways to allow for the creation of general purpose boiler plate code and recommend using it for all of their applications. I do have some software I plan on releasing and it is built using Qt and QWidgets. I am going to make sure that if a GTK user wants to download my application and use it needs to save a file they have their default DE specific file dialog shown. After all the goal with my software is to have it so everyone can use it on Linux and it works well and looks good. I don’t want to punish GTK users because I personally prefer Qt. The choice of gui toolkit was simply made for pragmatic reasons. I like several things about the work flow and design practices. I hope Firefox devs can do the same thing. It makes absolutely no sense to me personally and I hope we can just make Linux work better and have things be more polished and make EVERYONE happy if it is within our power to do so without going out of our way in the process as well. Mozilla developers are top notch and I am sure they could figure out a super elegant way to solve this problem if they were so inclined.

Here is a comparative picture while using the different versions with one using the default dialog picker for that DE and the other using the GTK specific version that doesn’t include the users favorites.

For reference, how you call a file dialog :

For Qt
QFileDialog fileDialog(0, 0/*default caption*/,
QDir::currentPath(), "All files (*.*)");

dialog = gtk_file_chooser_dialog_new ("Open File",

res = gtk_dialog_run (GTK_DIALOG (dialog));
char *filename;
GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
filename = gtk_file_chooser_get_filename (chooser);
open_file (filename);
g_free (filename);

gtk_widget_destroy (dialog);

Possible Solutions & Applications

Now I think the further implications of going down this road is potentially if the code can be written in such a way as to override ALL application file dialog prompts for all applications safely we could further integrate applications into ALL DE/WM’s experience.  If anyone thinks this is a good idea, or bad idea please let me know.

Other relevant conversations

Stop Hurricanes

Stop Hurricanes

After reading this older article while searching for current methods to stop a hurricane I was kind of let down by the fact it seems most current valid methods to stop a hurricane aren’t being attempted. We have already had 4 hurricanes within the last month and no one is even trying anything.

The article I am referring to –’t-we-stop-hurricane-it-hits-us#page-3

Saying we shouldn’t stop a hurricane because of unintended consequences seems irrational given we move water across the globe along with many gases, trash, etc.. with little regard. At least trying to stop a hurricane seems a worthy effort given the cost of attempting to stop something and succeeding would cost less then the damage it produces. If we eventually want to terraform other planets we should figure out how to control Earth.

If you aren’t familiar with the process of terraforming you can look here –

The process will never be understood if we can’t understand our own Earth processes. We need accurate models and readings from our Earth’s surface, oceans, airways and interior. Once we collect data we can do what many meteorologists already do. They create models or movement. I think employing artificial intelligence to this area will greatly improve the speed of our mastery in this area.

associate ssh key with git remote host

associate ssh key with git remote host

I often run into to issues where I like to use different ssh keys for different sites, servers, and other things.  It is a good practice not to use the same key for everything just in case you need to change it, or other various reasons.  If you are like me and don’t want to manually enter the path to theses keys each time you can associate them with a url.  So if you were connecting via ssh, or over git with ssh it works perfectly.

So first generate a key.  In this example we will create one for Bit Bucket.

ssh-keygen -f ~/.ssh/bitbucket

Now inside the ~/.ssh folder edit the config file and add the text below.

IdentityFile ~/.ssh/bitbucket
IdentitiesOnly yes

At this point when you push to bitbucket it will use this key.. For example if you added the remote repo as origin

git push origin master

It should prompt you for your ssh unlock pass phrase.

KDE audio higher than 100%

KDE audio higher than 100%

I don’t know about anyone else, but the default sound limitations are a tad too conservative for my laptop.  The sound is so faint at times I can hardly hear it on my Razer Blade 2015.  So if you want to boost the sound you can enable it past 100%, but be warned you also run the risk of harming your speakers if you aren’t careful.

So if you wish to proceed simply install Kmix if you are using Kubuntu and then enable “Overdrive”, you can do that by clicking on the system tray icon for sound, which you might have two now since Kmix isn’t normally installed any more and then clicking on the config button in the bottom right hand corner.  Then click on the General icon in the window that pops open.  You should then see a checkbox that is the “Enable Overdrive”

After this point you have to restart kmix/pulseaudio.  You can easily do that by simply restarting, or if you know how just restart it manually.

sudo apt install kmix

If you need more pictures – click here


UPDATE : A patch is on the way for the new sound widget so this won’t be required.  For more information visit – click here

Cool Tesla video for China

Cool Tesla video for China

This video is really cool.  The best quote is “if everyone drove an ev the sky would be blue again.”

While this may not be entirely true because other pollution sources exist it very well may be true.  I guess we all have to get EVs to find out.  I for one would love it if children weren’t born with lung cancer, asthma, or other illness related to chemicals in the air and soil.

mount a gnome disks image of a full disk

mount a gnome disks image of a full disk

I often to backups before big changes to my system, or just hacks that I am not sure if it will blow up my system.

Sometimes I run Unity from time to time and I am not sure if other back systems run in a similar fashion, but I assume they do.  The program I used for this particular back up was Gnome Disks.  Since I am normally a KDE user I had to figure out how to mount the img file without being in a GTK environment.

Fourtantely it is fairly easy to do.  Just three commands.

This mounts the image.

sudo losetup -f -P DiskImage.img


This displays the devices partition layout and assignments.

lsblk -f


This mounts the partition table.  Make sure you change /dev/loop0p7 to your device.

sudo mount /dev/loop0p7 /mnt/