RaspberryPi and Pushbullet Notifications

I posted previously about using Twlio to get an RPi to send text message notifications to me using a Twilio trial account. These trial accounts used to keep going unless you stopped using them for a period of time, but now they time out like most trial accounts do.

I scouted around looking for another notification method. I didn’t want to use email. I’d previously used sSMTP with some success, but I wanted to try something different.

Pushbullet is working well for me. You can get a free account, and apps for Android and Apple. Once you’ve got your free API authentication key you can make web requests to the Pushbullet service and they’re delivered to your mobile.

I use the cUrl app to make the requests. If you need to install it, you can do so by entering this command in a terminal. (For other unrelated purposes, I also incorporate cUrl into some applications I develop, so I always install the libcurl3 development libraries as well. If you don’t need them you can leave them off the command. For completeness, this is the command I use to install all things cUrl on my boxes.)

sudo apt-get -y install curl libcurl3 libcurl3-dev

Then I create shell scripts similar to the following which can be called by other scripts or applications, or triggered by cron.

In the title= parameter, it is often convenient to use the name of the process you’re reporting on, or the name of the RPi or PC it is running on.

#!/bin/bash

API="enter your API key here"
MSG="This is where you would put your message text"

curl -u $API: https://api.pushbullet.com/v2/pushes -d type=note -d title="Message Title" -d body="$MSG"

Nice and simple, and free.

Tags : , ,

Nautilus Showing Hidden Files By Default

Out of nowhere, each time I opened Nautilus it was showing hidden files by default.

If I used Ctrl-H to hide them they went away. But next time I opened Nautilus, they were back. This was a global issue, not something goofy with a single folder. So the issue seemed to reside with Nautilus itself.

I found a way to correct it by using the dconf-editor application. Open dconf-editor (you may need to install it first, it isn’t a default part of Ubuntu 16.04) and navigate to org, gtk, file-chooser and then uncheck the show-hidden checkbox.

dconf-editor

Tags : ,

Reigning in the Dash

The Dash in Ubuntu 6.04 had decided to come up in full screen mode every time I opened it. This wasn’t what I wanted. After a period of Googling (during which I was surprised to discover that most questions on the Dash were asking how to make that the default behaviour) I found the command I was looking for:

gsettings set com.canonical.Unity form-factor Desktop

Entering this in a terminal forces the Dash to adopt my preferred fashion, taking up the top left of the screen only.

Dash

Tags : , ,

Google Earth and Ubuntu 16.04

After upgrading to 16.04 (for upgrade, read wipe and re-install) I needed to re-install all my applications. I have a shell script that runs through them and installs them in one quick batch, which is great.

There’s one package that requires manual intervention and I haven’t found a way round that, so I set that to be installed last. When I leave my shell script running and come back to it, it’ll be sat waiting for the few options to be selected in this particular package, and then I’m done. That package is the ttf-mscorefonts-installer package that installs some of the common Microsoft TrueType fonts.

From a backup, I drag back in the appropriate dot folders and files and pull back in my data and that’s it, we’re good to go.

Apart from Google Earth.

Desktop with Google Earth

To install Google Earth in Ubuntu always seems to require a special incantation, and that incantation changes (in my personal experience, your mileage might vary) for each new version of Ubuntu. It’s a pain, because it means it can’t be automated.

Anyway, after the usual period of research and frustration (do people even test the instructions they post online?) I whittled the required steps down to this sequence below.

To be specific, this loaded Google Earth onto Ubuntu 16.04 on an Asus R500V core i7 laptop with an nVidia Geforce 610m graphics card. It has been tested on two other lower-spec dekstop PCs.

You need to download these packages first:

http://ftp.us.debian.org/debian/pool/main/l/lsb/lsb-security_4.1+Debian13+nmu1_amd64.deb
http://ftp.us.debian.org/debian/pool/main/l/lsb/lsb-invalid-mta_4.1+Debian13+nmu1_all.deb
http://ftp.us.debian.org/debian/pool/main/l/lsb/lsb-core_4.1+Debian13+nmu1_amd64.deb

Then open a terminal and cd to the folder containing the downloaded files and install them one after the other.

sudo dpkg -i lsb-security_4.1+Debian13+nmu1_amd64.deb
sudo dpkg -i lsb-invalid-mta_4.1+Debian13+nmu1_all.deb
sudo dpkg -i lsb-core_4.1+Debian13+nmu1_amd64.deb

If you have any dependency issues this should fix them (although on my box it didn’t appear to do anything at all).

sudo apt-get install -f

Reboot, then go to the following page and download the Google Earth .deb. Note that although I have a 64bit machine and 64bit Ubuntu, I had to use the 32bit .deb package.

http://www.google.com/earth/download/ge/agree.html

Install the downloaded file. Substitute the name of the file you’ve downloaded, the 32bit .deb is shown in the example below.

sudo dpkg -i google-earth-stable_current_i386.deb

That should be it. Google Earth should now run. It is still a bit flaky trying to show the embedded Panorama photographs, but that is a feature I never use anyway. If I find a way to make that work I’ll post it here.

Tags : ,

Sending SMS Texts from a Raspberry Pi or Ubuntu Box

[Edit] It seems that Twilio trial accounts timeout after all. They used to keep going so long as you didn’t go 30 days or more without using it. So this was a short lived success. I’ll look for alternate solutions.

I wanted a simple and free way to send texts to myself from one of my Raspberry Pi’s. The Pi is running the Jessie release of Debian. Debian, as the universe and its dog knows, is the OS that Ubuntu is built on, so these instructions apply to Ubuntu as well. I have tested on Ubuntu 15.10 and 16.04.

I got my Pi to send texts to my mobile using a free account from Twilio. Twilio is a Platform as a Service (PaaS) company based in California. Their platform and API’s allow developers to build applications that can make telephone calls, send text messages and much, much more.

Of course, for all of this goodness there is a charge. This is a paid for service. But luckily for me, you can get a free trial account. And although it is a trial it seems to run forever, unless you stop using it for a thirty day period. There are restrictions, naturally. You can only send out to one mobile phone number, for one thing. I only wanted to send to one number (my own mobile phone) so that was perfect for me.

To get your Ubuntu box or Raspberry Pi to send texts you need to register with Twilio and sign up for a free account. You will have to nominate the mobile number you’re going to text out to. Twilio verify this number by sending a code to it that you need to enter back into the website during the registration process. Once you have completed the registration you will get three things. One is a virtual phone number that the texts will be sent from. The other two are an account Id and an API authentication token. You’ll need all three of these to make the API call that will send the text.

You also need to have Pyhton, pip and Twilio installed on your system. Most systems will have Python and some will have pip (my Pi did, my Ubuntu did not). You will need to install Twilio as well. If any of these are missing from your system, you can install them with:

sudo apt-get install python
sudo apt-get install python-pip
sudo pip install twilio

The minimum Python script that you need to send a text is shown below (with my details obscured). Of course, you need to replace the account=, token= and from= and to= values with your own account ID, authentication token, virtual telephone number and the number that you want to have the text sent to. This last one must be the mobile number you verified during the Twilio registration process.

import os

from twilio.rest import TwilioRestClient

client = TwilioRestClient(account=’AC79******************************’, token=’d2b*****************************’)

client.messages.create(to=’+4478********’, from_=’+4412********’, body=”Hello, World!”)

In a worthwhile script you’d probably want to include logic in it that queried the system parameters that were of interest to you. It would then compose the content of the text body into something valuable. But even a simple script like this with a single, unchanging message could be used as a sort of system heartbeat check if it was inserted into a scheduled Cron job.

So, to recap. Register with Twilio. Get your account details. Install Twilio. Enter your details into the above script, and save it as (say) send_text.py.

invoke it as follows

python send_text.py

And you should receive a text on your mobile.

Tags : , ,

Stop Google Chrome From Asking to Make it the Default Browser

I had a strange problem show up out of the blue on Ubuntu 15.10 with Google Chrome Version 46.0.2490.80 (64-bit). It kept saying it wasn’t the default browse. It opened the ‘Set as default / Don’t ask again’ dialog each time it started.

In the Ubuntu Default Applications dialog Chrome was the default browser, but it still prompted every time it started. It got old real fast.

I did a bit of digging and found a workaround. Edit

~/.config/google-chrome/Default/Preferences

..and change the following:

“check_default_browser”: true

to be:

“check_default_browser”: false

Save the file and reboot.

Until a bug fix comes round that’ll have to do. The same thing is currently happening with Chromium too.

Tags :

The Case of the Vanishing Cursor in 15.04

I’d been having an issue in 15.04 with Nvidia graphics where the cursor vanished when it was pushed right to the top of the screen. Using menus or closing maximised windows was tough. I eventually found a solution in this bug listing.

Near the bottom there is an entry by Heath Jones (hjones014) from the 2015-05-18.

He says:

“I finally remedied the problem, using the xorg-edgers ppa. This is what I did –

1. sudo apt-add-repository ppa:xorg-edgers/ppa
2. sudo apt-get update
3. goto additional drivers and select driver 349.16
4. reboot
5. goto software/updates and goto the “Other Software” tab and UNCHECK the xorg-edgers ppa. I DID NOT PURGE THIS PPA.

The reason why I nixed this ppa is because after selecting driver 349, the software updater would try to pull in other updates from the xorg-edgers ppa which kept crashing my system. This allowed me to keep the driver 349 and not pull in any other updates. If you do a ppa-purge, it will also nix the driver, hence why i just unchecked it in the sources tab.”

I followed those instructions and it worked for me. Hopefully it’ll help someone else.

Tags : , ,

Restarting the Printing Daemon

I’ve got a recurring issue with my laptop, that even a recent re-install didn’t cure. Periodically, but thankfully not too frequently, when I attempt to print from within an application such as LibreOffice, none of my printers are listed. I haven’t got to the bottom of it yet, but I have a recovery step that doesn’t take much to perform, so it hasn’t become too much of a pain yet.

The quick remedy (but alas not the cure) is to execute the following in a terminal window:

sudo /etc/init.d/cups restart

Straight away my printers are back. I’ll dig deeper into it once I get a spare hour or two.

Tags : , , ,

Restoring a Missing Date and Time Indicator

The little date and time indicator vanished from the top panel of the screen. This is what I did to get it back.

I made sure all elements of it were still installed (in case anything had borked any of the required files).

sudo apt-get install indicator-datetime

I issued the following command to reconfigure the date and time timezone data through dpkg.

sudo dpkg-reconfigure –frontend noninteractive tzdata

Finally I restarted Unity.

sudo killall unity-panel-service

That was it. Short and sweet.

Tags :

Shellshock – What To Do To Make Yourself Safe

Shellshock is a vulnerability in the Bash shell. A shell is the program that provides a command line interface. Bash is the default shell in the Ubuntu universe. The Bash shell is vulnerable to a particular type of attack, described here: GNU Bash Remote Code Execution Vulnerability (CVE-2014-6271).

To determine if your Ubuntu box is vulnerable, Type the following at a command line, and then press enter. It is probably easiest to copy this and paste it into the terminal window, it must be typed exactly as shown and the spaces are important.

env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

If your system has the vulnerability, the output to the terminal window will be:

vulnerable
this is a test

If your system is secure, the output to the terminal window could show one of two things. One is this longer message:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

The other, shorter message is simply:

This is a test

If you find you have the vulnerability you can update your system to a patched version of Bash by entering the following at a command line and then pressing enter:

sudo apt-get update && sudo apt-get upgrade

You will be prompted for your password. A lot of screen output will be displayed, and eventually you will be returned to a command prompt. You can then repeat the above test to check that the vulnerability has now been secured.

Following my own updates on my Trusty Tahr 14.04 the version of Bash I was upgraded to is version 4.3.11(1)-release, and this passes the vulnerability test.

Tags : , ,