Tag Archives: tech

Let’s make an Amazon Alexa device!

Wow, it’s been a while since I posted on here. I’ve been really busy working on programming projects with some of my friends and just haven’t had anything super interesting to blog about.

Enough with that though, let’s get on to what this is actually about! I recently saw a video done by the Youtuber Novaspirit Tech where he takes a Raspberry Pi 2 and implements the Amazon Alexa system!

I’ve had a Pi Model B since a few months after they initially launched and more recently received a Pi 2 from Element14 (you can watch my video reviews of them over on my, admittedly also recently neglected, Youtube channel AEVES Tech) and have been looking for interesting projects to do with them.

This hit the spot perfectly, and so I started out setting up my Pi Model B! Now, most of the tutorials use the Pi 2 as the base device, but my Pi 2 is currently serving as a code server for me, and I didn’t really want to go through the trouble of transferring everything over. Plus, I figured it might make the process a bit more interesting, in case I had to tweak some values.


Setting up the Pi

Obviously, the first thing needed here is to get the Raspberry Pi up and running.

The process of installing Raspbian differs a bit between whatever OS you’re using (Linux, Mac OS X, Windows) so I’m just going to give you a link to the official Raspberry Pi foundation’s page on how to do it.

Once you’ve got the SD card flashed, go ahead and stick it in the Pi. The next part depends on whether or not you want to have the Pi connected over WiFi or not. If you’re planning to just connect over Ethernet then you can skip over this section and move on.

I’ve always used the Edimax EW-7811UN and never had any problems with it on Raspbian, so if you need to buy an WiFi dongle I can definitely recommend this one.

I set up WiFi via the Terminal over SSH, which can be a little bit complicated, so I’m going to go over that here. If you’ve got your Pi connected up to screen and are using the GUI it’s easier.

Once you have terminal access (via SSH over Ethernet or via a Serial to USB cable) you’re going to need to find the SSID for your network. To do this, go ahead and run sudo iwlist wlan0 scan.

This is going to spit out a whole bunch of information, most of which we’re not going to need. Look out for these two lines:

  • ESSID:"networkNameHere"

    This is the network name that you want to connect to. Make sure it’s your network, we’re going to use this value later on.

  • IE: IEEE 802.11i/WPA2 Version 1

    This is the security type. Most modern routers are set up to use WPA2 Personal, and this tutorial will work with both that and WPA, but it may have issues with WPA2 Enterprise or WEP. If your network is set up with WEP, then you’ll have to adjust the setup a bit later on, and you really should think about changing to WPA2.

Now that we have that information, go ahead and run sudo nano /etc/wpa_supplicant/wpa_supplicant.conf and enter the following text:

network={
    ssid="networkNameFromEarlier"
    psk="yourWiFiNetworkPassword"
}

If you’ve got a WEP network, then you’ll need to change out the psk line for wepkey0=your104BitWEPkey. Make sure you don’t put quotes around that key.

To save the file, press Ctrl-X then Y and then Enter. This will save the file. Go ahead and reboot the Pi via sudo reboot.

Once you’ve rebooted, you can check if you’re connected or not via running ifconfig wlan0 and seeing if there is an IP address next to the inet addr field:

$ ifconfig wlan0
    wlan0 Link encap:Ethernet HWaddr 80:1f:02:bf:04:ec 
     inet addr:192.168.0.12 <-- there is a number here Bcast:192.168.0.255 Mask:255.255.255.0
     inet6 addr: fe80::8ec:9767:b412:4a91/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:20891 errors:0 dropped:209 overruns:0 frame:0
     TX packets:7167 errors:0 dropped:4 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:22347220 (21.3 MiB) TX bytes:996632 (973.2 KiB)

If you have an IP address, then we can move on. Otherwise, make sure you typed the network password correctly in that file and try again.


Setting up Alexa

Hooray! You got the Pi set up, now we get to get started on the fun part, setting up Alexa!

You’re going to need to sign up for an Amazon Developer account, which you can do here. You’ll need to sign in to your Amazon account, and then go to this address: developer.amazon.com/edw/home.html. Once you’re there, click on the Get Started> button for Alexa Voice Service:

Selection_019

From there, you’re going to click on Register a Product and in the drop-down, select Device:

Selection_020

Now, you’re going to proceed through the four parts of the setup process. They’re personal choice for the most part, and the site does a good job of guiding you through, so there’s nothing I really need to explain other than the Web settings part.

This is important because of how you get permission to use Alexa (via OAuth), you have to set up origins and return URLs, otherwise you won’t be allowed to connect to the Alexa voice service. So, you’re going to need your local IP address for the Pi. This is pretty simple to get, just run ifconfig wlan0 | grep "inet addr" (swap wlan0 for eth0 if you’re connecting over Ethernet.). You’re going to want to take the value right after the red text:

Selection_021

In my case, it’s 192.168.0.106.

Take that value and under the Web Settings tab on the Security Profile page:

Selection_024

put that value in like this:

Selection_023

swapping out 192.168.0.106 for whatever IP address you got. Finish up the rest of the setup, and you’re ready to get on to the rest of the setup. Make sure to write down the Device Type ID, Security Profile Description, Security Profile ID, Client ID, and Client Secret – you’ll need them for the setup script later.

I’m using the code from sammachin’s AlexaPi repository, but it’s going to require a few tweaks to actually work. For now, just run git clone https://github.com/sammachin/AlexaPi and it should get the code right off Github!

If you get an error about git not being installed, just run

sudo apt-get update && sudo apt-get install git

and then try again.

Once you get the code, go ahead and type cd AlexaPi and then sudo ./setup.sh. This is going to install a few different required libraries and set up the Python code. You’re going to need the credentials you got from Amazon earlier, so put those in as requested.

Now, the setup script doesn’t work correctly, it doesn’t actually create the required creds.py file, so we’re going to have to manually do that ourselves.

Run mv example_creds.py creds.py and then nano creds.py. You’ll get a file that looks something like this:

# RENAME THIS FILE TO creds.py before use!
import os

#Alexa Settings
ProductID = ""
Security_Profile_Description =""
Security_Profile_ID  = ""
Client_ID = ""
Client_Secret = ""

# Alexa Refresh Token
refresh_token = ''

and put in the information from Amazon where it belongs in the file. Don’t worry about refresh_token still being blank, that gets taken care of in a bit.

If you are logged into your Pi as root, then you’re ready to go, go ahead and skip down to the hardware setup section. If not, read on.

The original code was written to be run as root, but this isn’t exactly good practice, so we’re going to have make a few changes to make it run correctly.

First you’re going to need to edit the startup script in /etc/init.d/alexa, run sudo nano /etc/init.d/alexa and look for the line

python /root/AlexaPi/main.py &

and change out /root for /home/pi. Once you do that, save and exit via Ctrl-X, Y, Enter.


Setting up the hardware

Since the Pi doesn’t have a built-in Microphone port, you’re going to have to use a USB device. It can be a USB microphone or a USB soundcard that has a microphone port. Plug that in, as well as connecting a speaker, either via the Pi’s 3.5mm jack, or via USB.

I’m using my CAD U1 USB microphone, and connecting a speaker up via the 3.5mm jack and it works just fine.

You’re also going to need to hook up a push-button connected to GPIO pin 18 and GND. Part of the terms & conditions of using the Alexa voice service is you can’t have it be voice activated, so we have to manually activate the listening via pressing a button.

Here’s a diagram to show you how to connect it up, if you don’t already know:

pi_alexa


Final Setup

Now that we have the microphone, speaker, and button connected, we can go ahead and finish everything up!

You’re going to need to run sudo python auth_web.py and then go in a webbrowser to yourPisLocalIPAddress:5000. This will redirect you to an Amazon page asking you to log in and then confirm that you want this device to have access to parts of your account. Go ahead and continue through the login process.

After you log in, it should show a page letting you know that it succeeded and you can now reboot your Pi. Go ahead and do that via sudo reboot and wait for it to reboot.

You should now be able to boot your Pi and hear a female voice say “Hello”. Once you hear this, you can press and hold the button and ask Alexa a question!

If you don’t hear this after a while, you may have to SSH in and manually run the script. Just ssh in to the Pi and run

cd AlexaPi && sudo python main.py &

You should hear the “Hello” voice in a bit, and you can go ahead and ask away.

Congratulations, you’ve just created your own Raspberry Pi-based Alexa device!


Conclusion

Is this really useful? I suppose it depends on how you define that.

It’s a bit cheaper to build this than buy the $129 Amazon Tap, especially if you already have all the parts on hand. However, it looks far less pretty and isn’t officially supported by Amazon, so they could decide to end the AVS (Alexa Voice Service) at any time, leaving you with a Raspberry Pi connected to a speaker and microphone.

For the time being, it’s a fun little way to put your Raspberry Pi to use, and, if you really wanted an Amazon Echo and don’t mind a little bit of open circuitry, it’s saves you a little bit of money.

 

Tagged , , , , , ,

Fixing GPG ERROR NO_PUBKEY on Ubuntu 14.04

I recently was working on installing pipelight-plugin so I could get the Unity3D plugin working on my Ubuntu desktop. Getting that working is another subject, but part way through the installation process I ran into an issue.

Part of what I had to do to install the Pipelight plugin was add a PPA; ppa:pipelight/stable to be exact. Normally, this would be totally fine. After I ran sudo add-apt-repository ppa:pipelight/stable, I ran the usual sudo apt-get update so I would have up to date software lists.

However, at the end of the output from the apt-get update command I noticed that there were a whole bunch of

GPG ERROR NO_PUBKEY : WARNING: The following packages cannot be authenticated!

errors!

This had been happening previously, but it was only the Virtualbox PPA, so I figured that their GPG public key had expired or been removed for whatever reason, and so didn’t give it any more thought. But now there were at least 5, if not 10 of these errors, including for various PPAs that I was fairly certain wouldn’t let their key expire.

Again, I continued working, thinking it strange, but not dangerous. However, then I started seeing

WARNING: The following packages cannot be authenticated!

when I was attempting to install new software or update via apt-get upgrade.

Now I knew something was up. So, I started researching via our ever-present and usually quite useful overlord, Google. While I did come across several Ask Ubuntu answers, it finally took a combination of four different answers (here, here, here, and here) and a Launchpad bug report to come up with the solution.

Basically, there is/was a bug in apt-get where it will return GPG ERROR NO_PUBKEY : WARNING: The following packages cannot be authenticated! for PPAs, even when the key is present on your system.

This leads to the WARNING: The following packages cannot be authenticated! error. From what I have seen, it doesn’t actually cause any issues initially, but it’s still good to resolve issues like these if possible.

So, I tried just running sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys x x x x x replacing the x with the public key number for the various “missing” keys, as recommended by this Q/A.

However, I still got the NO_PUBKEY error, along with a bunch of new ones that all said gpg: keyblock resource '/etc/apt/trusted.gpg.d/X.gpg.gpg': resource limit (replacing X with the various GPG files.)

So, I tried the solution suggested here, running sudo apt-key update followed by sudo apt-get update.

Again, I received the NO_PUBKEY error. So, I moved on to the final Q/A I found. The answer pointed me to Launchpad Bug #1263540, which had two solutions.

The first was to run this series of commands:

  1. sudo apt-get clean
  2. sudo mv /var/lib/apt/lists /var/apt/lists.old
  3. mkdir -p /var/lib/apt/lists/partial
  4. sudo apt-get update

However, this returned the same error. Again.

So, I scrolled down a bit further, and found this comment. This solution is what ultimately resolved the issue for me.

I went into /etc/apt/trusted.gpg.d/ and manually deleted a few of the .gpg files for PPAs I had removed/didn’t use anymore and voilà! running apt-get update worked and apt-get upgrade no longer complained of un-authenticated packages.

As for what was causing this, it turns out that GnuPG has a limit of 40 keys GPG keys. Beyond that, it won’t accept any more.

Because apt-get/add-apt-repository don’t remove old and unused PGP/GPG keys, I had met the 40 key limit. When I removed the few un-used keys it brought the count under 40 and the issue was resolved.

Although there was a fix released for this in October of 2014, it has, for whatever reason, not been back-ported to Ubuntu 14.04, thus causing the issue I was having. According to this Debian bug report the package that contains the fix (libapt-pkg4.12) has not yet been back-ported to 14.04 as of June 2015, so anyone who runs into this issue is going to have to use this workaround in the meantime.

TL;DR: If this happens, then go into /etc/apt/trusted.gpg.d/ as root and delete any .gpg files for PPAs you have disabled. Then, run sudo apt-get update and everything should work again!

Thanks for reading, let me know if you run into any issues down in the comments section and I’ll if I can help!

Tagged , , , , ,

Ubuntu Tech Snippet #12 – Fix the NVIDIA screen flicker bug in Ubuntu

NVIDIA. Oh how we love to hate thee.

NVIDIA and its proprietary graphics drivers have long been a bane of users on Ubuntu. If you needed performance, then you had to use the proprietary drivers, as Nouveau just couldn’t keep up. However, the NVIDIA drivers can be fickle to install and keep up to date, and often cause graphical issues like black screens or, as this post talks about, screen flickering.

This bug has been around since Ubuntu 8.04 Hardy Heron, and is still present in Ubuntu 14.04.1 – this bug refuses to die. This issue cropped up for me and some other users after a recent kernel upgrade.

There have been numerous attempts to fix it, including going so far as to patch Compiz to attempt to fix this. However, I’m going to be showing you a far simpler method.


Solution:

I originally found this solution over on the Ubuntu forums, you can read that post here and the bug (started way back in September of 2008) on Launchpad.

To fix this you’re going to need the CompizConfig Settings Manager software. If you don’t already have it installed, press Ctrl+Alt+T to open a Terminal:

Screenshot from 2015-01-31 10:34:36

Once that terminal is open, enter sudo apt-get install compizconfig-settings-manager and hit enter. You’ll probably need to enter your password, but once you do it will install. Don’t close the terminal.

Once installed, go ahead and enter sudo ccsm. This will launch CompizConfig Settings Manager. It will show you a warning about the program being very powerful, probably say something along the lines of “With Great Power comes Great Responsibility”. Just click okay:

Screenshot from 2015-01-31 10:35:40

Once it comes up, search for workarounds and select the only option that comes up:

CompizConfig Settings Manager_001

Then, scroll down and select the Force full screen redraws (buffer swap) on repaint option:

CompizConfig Settings Manager_002

Once you’ve done that, you can close Settings Manager, and you’re done! This should have helped if not resolved the screen flicker issue for you!

Obviously, this isn’t an actual solution or bug fix, but it’s a workaround that does its job – stops the dreadful NVIDIA redraw bug from doing it’s horrible deed.

 

Tagged , , , , , ,

Fixing the infamous wallpaper and mouse Ubuntu 14.04 bug

I recently blogged about the trial and tribulations of installing the NVIDIA graphics drivers on my Ubuntu 14.04 system. And, although I had much better performance, my ventures into the underground world of drivers and bugs was far from over.

I had been happily using my deskop with my newly installed NVIDIA drivers – no problems whatsoever. I shut down after a while because I was done with what I was doing and left my PC.

I came back a while later, started up the system, logged in, and it just sat there. I waited about 5 minutes and was becoming really worried, because this computer definitely should not take more the 20 seconds tops to log in. All that was showing up was the wallpaper and the mouse – no Unity menus or anything. I rebooted several times, same thing – wallpaper and mouse, but no GUI.

By this time I was freaking out. The last I thing I wanted to deal with was having to reinstall and lose all the time and effort I had spent getting this system where I wanted it. I booted up the LiveUSB stick I always have with me and started looking at solutions online – all of which required terminal access – something I didn’t have.

I tried everything from installing GRUB Repair to the LiveUSB and using that to add the nomodeset flag to GRUB, to using chroot to attempt to run commands off the LiveUSB to affect my system – neither of which worked.

By that point I actually had to go somewhere, so I had to shutdown the computer and leave it be for ~30 minutes. After I came back I started up the computer and, for whatever strange reason, now had access to the TTYs. I had no clue why waiting half an hour changed something – but it did.

This was quite calming because I knew that once I had access to a TTY I could fix basically anything. I started trying out solutions again. I looked at tons of different posts on various sites, namely Ask Ubuntu, but also the Ubuntu Forums and Launchpad.

I ended up coming across this question, here, and worked my way through those solutions.

I tried resetting the desktop as per the first, second, and sixth fixes listed – none of those work.

I then the third solution, purging and reinstalling ubuntu-desktop, compizconfig-settings-manager, upstart, and unity. I did this via sudo apt-get install --reinstall ubuntu-desktop unity compizconfig-settings-manager upstart – but nothing happened.

I then tried the fifth fix, clearing Unity, and that brought some improvement. I rebooted after running those commands and I had desktop icons back! Yay!

However, it still wasn’t totally fixed, and the only solution left was the fourth one.

I had held off on the fourth fix, because the Xorg-edgers PPA is a bleeding edge repository and so it can be dangerous to system stability. I was trying to fix a problem, not make it worse. However, after working through all of the other solutions, and having no results, I was left with the only choice of adding the repository.

So, I added the repository, ran sudo apt-get update and then ran sudo apt-get install nvidia-340. I rebooted, and had a working system. Because of the fact that I had removed all the configuration files previously, I had lost my background and icons that I had pinned to the dash, but that wasn’t an issue.

I removed the Xorg-Edgers PPA via sudo add-apt-repository --remove ppa:xorg-edgers/ppa -y, just to make sure that I didn’t have any updates in the future to break my PC. Hopefully, this is the last of driver derping I’ll have to do for a while.

Make sure to leave a comment saying what you thought of this post, and tell any experiences you’ve had with drivers and NVIDIA with Ubuntu!

Tagged , , , , , ,

Using Buttons with Arduino

Introduction

This tutorial shows you how to use a simple push-button with your Arduino to light up an LED, not unlike the Flashing an LED tutorial on this site except we are flashing it only when the button is pressed.

Buttons are pretty important in Arduino, not to mention breadboarding and DIYing in general. By the end of this tutorial you should know how to wire a push-button for use with your Arduino.

This is a nice and easy first-time project for you to try out on your brand new Arduino!

For this tutorial you’ll need:

Finally, few pieces of hookup wire, or breadboard jumper wires – just to hook everything together.

Please note, I am not affiliated or being paid in any way with/by Foxytronics. It’s simply a good store that provides quality components at great prices and my experience has been only good with them.

 Electrical

The wiring for this tutorial is pretty simple, just follow this graphic:

Using Buttons with Arduino Wiring – Image made with Fritzing

First, connect 3.3V and GND to their respective rails on the breadboard.

Second, place the button. You have to place the button straddling the center gap on the breadboard to correctly place it. Just follow the orientation shown above and you’ll be fine.

Next, place the LED. You’ll want the bent leg facing towards the button, the straight leg facing away.

Next, you’ll need to place two 4.7kΩ resistors. One will be connected to the button, on the lower-right-hand corner. The second will be connected to the non-bent leg of the LED. The reason we’ve got a resistor in front of the button is because we’d be getting the full 3.3V through the button and feeding that right back into the Arduino, and we don’t want that. As for why we’re placing a resistor after the LED, if we didn’t have that resistor we’d be putting 3.3V through our LED, which would burn out the LED quite quickly.

Finally, complete the wiring for the button and LED. Nothing too complicated here, just connecting the button to the ground rail to complete that circuit, connecting the button to pin 7 so we can get input from it, and then connecting the LED to the Arduino.

If you followed the diagram correctly, that’s all the Electrical work you need to do, time to get programming!


Programming

This code is fairly simple. Just copy/paste or type it all into your Arduino IDE, explanation comes after.

/* Button Tutorial Code
 * Version: 1.0.3
 * Author: RPiAwesomeness
 * Modified: 12/9/14
 */
// First define some constants for the pins
 #define PIN_BUTTON 7
 #define PIN_LED 2
// Define some variable that we'll be using later
 int buttonState = 0; // Keeps track of button state
 // 0 = NOT pressed, 1 = IS pressed
 /*
 * setup() is called when the Arduino is turned on or resets
 */
 void setup()
 {
   Serial.begin(9600); // Start the Serial console at a baud rate of 9600
   pinMode(PIN_BUTTON, INPUT); // Declare the 7 digital pin's mode as input
   pinMode(PIN_LED, OUTPUT); // Declare the 2 digital pin's mode as output
 }
/*
 * void loop() loops constantly while the Arduino is powered
 */
 void loop()
 {
   checkButtonState(); // Check the state of the button
 }
/*
 * This function checks the state of the button
 */
 void checkButtonState()
 {
 // Read the state of the button into the buttonState variable
 buttonState = digitalRead(PIN_BUTTON);
// Check if the pushbutton is pressed
 // if it is, the button's state will be HIGH
 if (buttonState == !HIGH) {
 // Turn our LED on
 digitalWrite(PIN_LED, HIGH);
 }
 else {
 // Turn our LED off
 digitalWrite(PIN_LED, LOW);
 }
 }

What this code does is checks whether or not the button is pressed and turns on the LED if it is.

First off, we’ve got the #define PIN_BUTTON 7 line and the #define PIN_LED 2 statements. These simply set the variables PIN_BUTTON and PIN_LED to equal 7 and 2 respectively, which allows us to easily reference the pin we want in the future and helps keep our code readable and easily understandable.

Next, we declare the buttonState variable as an integer (int) and set its default value to equal 0 – meaning that the button is NOT pressed.

Next up is the setup() function. Any and every Arduino program must have this function and it’s what is called automatically when the Arduino first starts up. We’re going to start the Serial console at a 9600 baud rate (don’t worry about this, that’s just what you should default to for now.) We’re also going to set the pin mode for the PIN_BUTTON (pin 7) as an input pin and PIN_LED (pin 2) as an output pin.

The loop() function is continuously called automatically and is yet another required function. In our case we’re simply calling the checkButtonState() and nothing else.

Finally, we’ve got the checkButtonState() function. This function gets the current state of the button and stores that in the buttonState variable. It then checks that variable to see whether or not the button is pressed and if the button IS pressed, then it lights up the LED. 1

And that’s all there is to it! Upload your code to your Arduino:

Selection_001

and once it’s uploaded, go ahead and press the button on the breadboard. If you wired everything up correctly and your code doesn’t have any bugs from copying, compiling, or uploading you should  see the LED turn on when you press it!

Congratulations! You’ve just completed the Using Buttons with Arduino tutorial! The ability to use buttons in your projects is incredibly useful and is definitely something you will most definitely use down the road if you continue working with Arduino!

1 One thing you may notice about the code here is that we’re using what looks like a DOES NOT EQUAL statement that got typed in incorrectly. However, this isn’t the case. When I coded if (buttonState == !HIGH) { statement, I meant that. You see, there’s the NOT operator in C++/Arduino code, and it’s expressed via the exclamation mark (!).
In a nutshell, it takes whatever the normal result would be (has to be a true/false result) and inverts it. If you want more explanation, read here.
Tagged , , , ,

Ubuntu Tech Snippet #11 – Speed up your Ubuntu installation with Preload

One of the great time & space conundrums is the need for speed. Everyone wants things, especially their computers, to be fast. And while Ubuntu can be much lighter on system resources than Windows or OS X, any extra speed is awesome and probably accepted by most people.

And so, I present to you Preload. Preload is, according to the manpage (man preload):

“an adaptive readahead daemon that prefetches files mapped by applications from the disk to reduce application startup time.”

Basically, this means that it keeps files loaded that are accessed by applications you commonly use, thus speeding up application startup time.

Note, if you’ve got a smaller amount of RAM (4GB or less) this may not be the best idea for you, as it stores all of the data in RAM – which may lead to slower overall system responsiveness.

However, if you’ve got more than 4GB of RAM or want to try it regardless, here’s the steps:

Tech Tip:

  1. Open Terminal (Ctrl+Alt+T)
  2. Enter sudo apt-get install preload
  3. Hit Enter.
  4. There is no step four

Yeah, it’s that simple.

Of course, if you really want to tweak it, there is a config file stored at /etc/preload.conf.

Conclusion:

What’s this good for? Well, it depends on what you do.

If you’re a developer, video editor, music maker, basically any content creator and are constantly launching a few key programs, then Preload is great. It speeds up launch times for those apps you use all the time and may only launch for a few minutes or seconds at a time.

If you’re just using your system for general work, like writing papers, checking stocks, or balancing a spreadsheet, this may not be as useful and may in fact harm performance, as you’re using up RAM to save a few seconds off the launch of an application that you’re going to leave open for quite a while.

This should work on basically any supported desktop and server Ubuntu release (at the time of writing, this is Desktop: Ubuntu 12.04.5, Ubuntu 14.04, and Ubuntu 14.10 and Server: 10.04.4)

Leave a comment down below telling me what you thought of this article, tell me something you want me to write about, and feel free to share any tech tips of your own!

Tagged , , , , , ,

Ubuntu 14.10 has been Released!

That’s right everyone, it’s that time of year again. When the internet is humming and servers are busy serving downloads, a new Ubuntu version is released. And this time… Unicorns!

Yup, the curiously named Utopic Unicorn release, 14.10, is live on the Ubuntu servers and upgrade notices should be sent out to everyone who is set to get them. If you’re curious about how to upgrade, I’ll be doing another post later, explaining how to do it and what to do after upgrading/installing Ubuntu 14.10. You can read it here (post coming soon!)

What’s New?

This release is a bit, well, underwhelming. It’s more of an update, stability, security release, with no major changes to user experience or included software. Kinda sad for a release occurring over the same week as Ubuntu’s 10th birthday.

And this may not be bad, as it, hopefully, means that Ubuntu 15.04 Versatile Vervet will have plenty of features and new stuff!

Obviously, the usual changes occurred; new community backgrounds – though no new default one and the change of the release number and code name through-out the system.

But, beyond that, there isn’t much. For the developers a very useful addition is the inclusion of the Ubuntu Developers Center. This is very useful, as it simplifies the process of installing the Android SDK and all the dependencies and addons and whatnot, with a single command.

There are a few major software release upgrades, namely the upgrades for the default software to:

  • LibreOffice 4.3.2.2
  • Firefox 33
  • Thunderbird 33
  • Nautilus 3.10
  • Evince 3.14
  • Rhythmbox 3.0.3
  • Unity 7.3.1

Also, the Linux kernel has been updated to Linux Kernel 3.16, which offers support for the latest Intel CPUs (Haswell and the upcoming Broadwell architectures, better support for NVIDIA and AMD graphics, and improved audio via the Radeon H.264 video decoder.

Consensus time

All in all, Ubuntu 14.10, in my opinion, is a solid OS that could probably serve as an LTS release. For users worried about stability, 14.10 would be a fine, although the nine month support cycle may be a hastle that users might not want.

There are very few major changes, and, if for no other reason, upgrade because of the wallpapers. This set is probably my favorite yet.


Upgrade anyone?

You can simply upgrade via Update Manager, though you may have to enable upgrade notifications for non-LTS releases. Here’s how you can do that:

Open the Unity dash by pressing the Super button (Windows button for all you non-l33t Ubuntu users). You can also click on it, just so long as you can open the Unity dash.

Once open, search for Software & Updates and select the first option that comes up. This is what it looks like on my system, with the Numix Circle icon set – it will probably look different on your system unless you have the same icon set:

Selection_091

Once the application opens up, click on the Updates tab:

Software & Updates_093

As you can see, on my system the option Notify me of a new Ubuntu version is set to For any new version. If you want to receive a notification when a non-LTS version is released you need to make sure that you have it set the same as I do, For any new version.

Simple Version:

  • Search for and open Software & Updates
  • Click on the Updates tab
  • Find option with the label Notify me of a new Ubuntu version
  • Change the selection in the drop-down menu from For long-term support versions to For any new version

Fresh Install

Of course, you can download the ISO file for Ubuntu 14.10. There are all the usual options available on the Ubuntu site. Here are the links to the Ubuntu 14.10 Desktop (64 bit) Torrent and Ubuntu 14.10 Desktop (32 bit) Torrent

Comment down below with what you think of the Utopic Unicorn and whether or not you’ve upgraded yet, plan to upgrade, or are just going to jump from the current LTS release (14.04 Trusty Tahr) to another future release or the next LTS release (16.04).

Tagged , , , , , ,

Ubuntu Tech Snippet #9 – Change out the Unity launcher icon

One of the great things about Ubuntu is that it is so customizable. And one of the most commonly customized features is the theme. I currently run the Numix Circle icon theme with the Numix system theme. You can see an example below:

themes

Numix Circle Circle Icon Theme w. Numix Window theme

This screenshot doesn’t really show off the circle element of the icon theme, but this next screenshot does:

unity launcher w. numix circle

Unity Launcher with the Numix Circle icon theme

As you can see, the application icons are circular (thus, Numix Circle.)

Yay, cool. Icons. What’s the Tech Tip?

If you notice at the top of the panel (second screenshot) the BFB (Big Freakin’ Button) isn’t the normal Ubuntu 14.04 version. It’s a flat, circular version that fits much better with the Numix Circle icon theme than the default:

unity launcher icon 14.04

Unity Launcher Icon – Ubuntu 14.04 Default

Obviously, the first, flat icon would (and does) fit with the theme a lot better. So, I went a-searching on how to change out the Unity launcher icon (aka, the BFB) and found one that fit.

There aren’t any automatic ways to do this. However, the manual process isn’t that complicated, involving just copying and renaming a few files.

The Process

To change out the BFB, open up either Terminal or the file browser. As a side-note, you’ll need the ability to run commands as root via sudo. If you don’t have these rights, this tutorial won’t work for you, sorry 😦 Also, these actions set the icon for the entire system, I have yet to find a user-specific way to do this.

I suggest using Terminal (Ctrl+Alt+T) and that’s what this tutorial will be via, though some people may find the file browser easier. If you do decide to use the file browser, you’ll need to launch it with root privileges, which you can do via pressing Alt+F2 and then entering

gksudo nautilus
If you are using the file browser and run into issues, please feel free to ask for help, I’ll try to help as I can.

In Terminal, you’ll need to get to the directory your replacement icon is in. If you downloaded it via Firefox or Chromium, it’s probably in your ~/Downloads folder.

Get to the folder that the icon is stored in via the command

cd WHATEVERFOLDERITSIN/FILEHERE.png

Make sure the icon you downloaded is an .svg or .png, as those tend to work the best. You can find the file’s location by finding it in the file browser and then right-clicking and selecting Copy.

Menu_081

Then, go into the terminal and type in sudo cp and then select Paste Filename

Menu_082

This will make the terminal look like this:

nate@excelion-Satellite-A105: ~_085

Without pressing enter, press Space and enter the following:

/usr/share/unity/icons/launcher_bfb_new.png

Your terminal should now look like this:

nate@excelion-Satellite-A105: ~_087

Go ahead and press enter, and you should be prompted for your password. Enter it in and then press enter again and it should instantly copy the file. If you’re get an error, make sure you put in all of the file names and paths correctly, maybe you entered cd where it should have been cp (those two are very easy to mix up, believe me, I do it all the time.)

Next, enter the following command:

sudo cp /usr/share/unity/icons/launcher_bfb.png /usr/share/unity/icons/launcher_bfb.bak && 
sudo cp /usr/share/unity/launcher_bfb_new.png /usr/share/unity/icons/launcher_bfb.png

This will create a backup of the original BFB (always, always, always make a backup when messing with system files) and then set your BFB icon as the default BFB icon.

Conclusion

Once you complete all of these steps without any errors, you should log out and back in again, and your new icon should be in place! If you have trouble understanding this tutorial, or get stuck somewhere, or get some strange error, comment down below and I’ll try my best to answer your question for you!

Tagged , , , , , , ,

PiTop Status Update – Indiegogo campaign launched today

You may remember a little while ago I posted about a cool new project I had found out about, the PiTop.

As you may remember, the PiTop is a project that gives you all the pieces you need to create a Raspberry Pi (Model B+) powered laptop. From the 3D-printed case, to the 13 inch HD screen, to the built-in WiFi & Bluetooth, you get to create a full-on, portable, Raspberry Pi-powered laptop.

If you want to know more about the project, go ahead and click through on the link above, as this post is just simple status update.

Status update inbound!

So, what’s this status update you’re talking about? Well, it’s that the PiTop’s crowd-funding, indiegogo campaign has been launched. This means you can now back the project, and get early-bird pricing on the product.

Currently $229, the Super Early Bird discount (full kit, including Model B+ Pi) has already sold out and the project is already at 47% of its $80,000 goal. Pretty impressive for the first day and the full goal should be easily reached, with an entire month left.

You can still pick up an early-bird version of the PiTop, albeit sans-Pi, for $209; and a full, non-Super Early Bird version for $249. Information on the project and all of the information about the campaign are available on the project’s Indiegogo campaign page.

Tagged , , , , , ,

EmoJS: Programming Javascript in Emoji

EmoJS is a neat little project I recently was told about. Essentially (as you may have gathered from the title) it allows you to write Javascript, in Emoji. That’s right, Emoji Javascript.

The world’s most popular language, now in the world’s most popular language

The Project’s Tagline

The idea is actually quite fun, though not terribly practical. The project is far from a 1.0 release, currently in Alpha on the 0.2.1 release. There are, at the time of writing, twenty-seven (27) different emoji characters that have been: three escape characters, twenty-two single characters, and two multicharacters. However, not all of these can be used; some being reserved for later implementation.

You can currently see two example sets of EmoJS on the github page, though I have a screenshot below, just so I can explain the idea a little better:

emojs examples

EmoJS Examples – MIT EmoJS (emojs.github.com)

These are some basic examples, just showing off what the project is intended to do. Not terribly practical, but quite fun. They plan on adding an option to try out the language further down the road, but this is still very much in the works.

Yeah, that’s about all there is about this project right now. If you’re a programmer and want to help out, check out the projects page on GitHub. And/or, if you’re curious about the code behind the project, you can check out the project’s repository page on GitHub.

Tagged , , , ,
%d bloggers like this: