You may have read my post on setting up the Raspberry Pi to access the desktop remotely.  I got most of that accomplished with a bit of determination and some help from the good people of Reddit /RaspberryPi.   Once I’d sent reddit my post, u/newdles and u/wittless both made some really good suggestions about using an SSH Tunnel to route traffic from the browser on my current computer to the Rasberry Pi. This eliminates the need for any remote desktop software like VNC which is inherently insecure because the data it sends isn’t encrypted.

SSH (Secure SHell) is a much better option than my original plan for a few reasons.  First as the name implies, it’s relatively secure.  The web traffic is encrypted while it’s travelling back and forth between my laptop and the Raspberry Pi.  For the time being, short of the NSA, most people won’t have access to the traffic stream.

Second, it’s far faster than VNC.  Because VNC has to send graphics data between two computers it tends to be pretty slow and finicky when you’re trying to move about the desktop, open files and applications, and manipulate settings. It’s always been like this and even with significantly higher internet speeds, it hasn’t drastically improved in the 15 years I’ve used it.

I found a great walk through from Hey Stephen Wood on SSH Tunnelling on the Mac, and since I was already set up for SSH terminal access, it was really just the proxy configuration I needed.   The only thing different in my own setup was that I’d changed my default port from 22 to (something else) on the advice of u/witless on that reddit thread.

Stephen suggests using this to connect to your Pi:

$ ssh -D 8888 username@yourwebserver.com -vv

But when the default port has been changed, this is actually what you’ll need to do.

$ ssh -D 8888 -p [YourNewPortNumber] username@yourwebserver.com -vv

I got a bit confused by his 8888, and tried to jam my port number in there unsuccessfully.  The -D 8888 specifies a port on the local computer where that tunnel can transit through. Obviously my non-default port needed to be specified separately. :)

Tagged with:
 

Apple’s iWork kept asking me to register, and even after I did, it continued to pester me.. Read on for the solution!

I use an admittedly old version of Apple’s iWork on occasion to make documents that need to be pretty. It’s got some really elegant layouts and makes use of unique fonts that Microsoft’s Office package just can’t compete with. I’ve always found that Office creates documents that have a clunky, designed-by-a-12-year-old feel to them. They work, but they’re not nice to look at.

Somehow with a recent reinstall on top of OSX Yosemite, the iWork package wouldn’t take the hint that I didn’t want to register, and kept pestering me even after I capitulated and fed it my standard registration email address (getlost@getstuffed.com).

Turns out others have had this problem too, and I found this thread on StackExchange relating to the issue. The solution is pretty simple, but the proper step is tucked down at the bottom of the page, and you’d miss it if you don’t read all the way down.

Disable the registration dialog:

  1. Open Terminal.app (this should be in the /Applications/Utilities folder)
  2. Type the following:
     sudo defaults write /Library/Preferences/com.apple.iWork08 RegistrationHasBeenSent true
  3. Enter your password (your account will need to be an administrator of the computer)

How this works:

Sudo allows the computer to act as an administrator for this session alone.

Defaults is a little utility that lets you edit .plist files

com.apple.iwork08 (or .iwork09 if that’s what you’re using) is a .plist or Property List file that is built in XML and stores application specific data like RegistrationHasBeenSent. We just set that to true and tricked the computer into believing that it doesn’t need the information any longer!

Presumably (According to Mark) this works on iWork ’09, and I’ve confirmed it also works on iWork ’08 (at least on my machine). Let me know if it works for you on these or other versions, or if it just doesn’t!

Tagged with:
 

Attention: If you’re the type that gets hives thinking about technology, this post isn’t for you (and please don’t feel bad for just completely skipping it!) 

I’ve finally managed to get myself a Raspberry Pi from the wonderful people at Solarbotics.  As a technical guy, I’ve long struggled with trying to get Unix computers up and running.. I’ve always found the Unix documentation and tutorials tough to get through, primarily because they tend to make a lot of assumptions about what the reader might know. (A lot!) Usually I find this leads me in circles and spirals trying to sort out a problem related to some minor version change, or difference in configuration.  Also, I think I’m pretty much checked out of digging through obscure technical documentation.  Thankfully, because of this new class of hardware, there is a new class of writer building documentation now, and we have people like the Raspberry Pi founders, and countless other makers to thank for that.

So, now that I’ve got a specific need to be addressed, I’m going to give this a shot.

The following are some of the tutorials and instructions that’ve helped me solve the problems I’ve encountered in the configuration.  The post is mainly a repository for my own use (any name-calling is aimed solely toward me, myself, and I), but I’ll keep it posted here to help others who may have the same issues. Because this isn’t a tutorial or even a fully fleshed out article, it’s possible that I haven’t fully explained something that you’re struggling with. I may have chosen not to because it’s part of my own knowledge, but I recognize that it may not be part of yours. Please give me a shout or drop me an email if you’d like more clarity about what I’ve written. Hope this helps!

First things first..

Purpose:

I wanted a little tiny computer to tuck in to a corner  and that could be remote controlled from elsewhere on the internet, mainly for web browsing.   Because this will be living at a borrowed offsite location, I didn’t want to take up a lot of space with an old laptop or something more intrusive.  The Pi is a good choice because it’s itty bitty, and will easily tuck in to a corner with a wireless router, and won’t consume a shed load of electricity either..

RaspberryPi2 - an itty bitty computer

RaspberryPi2 – an itty bitty computer (With an SD card for scale)

So, there are two specific technical challenges that need to be addressed:

  1. How do I get access to the desktop of the computer remotely?
  2. How do I connect to the computer when its IP Address may change at random?

The solutions are pretty straight forward in theory, but a little more complicated to put in to practice but I’ll be using the following to reach my goal…:

  1. Virtual Network Computing (VNC) which I’ve been using for countless years to connect to my old windows machines
  2. Dynamic DNS, a way of letting the computer update its own internet address so that I can always find it..

Implementation:

I’m using the NOOBS distribution of Raspberry Pi.   It came preinstalled on the Raspberry Pi 2 Bundle I got from Solarbotics.  While setting up, I managed to change the password and figured I messed up because on my first reboot, I couldn’t log in..  Crap.

For the record, the default username is Pi (not Raspberry as I was thinking..)

Unnecessarily reinstalled NOOBS on my SD card, learning the following:

  • Don’t Panic.  Douglas Adams taught us this, and I’d forgotten the rule.   Rather than thinking through the problem, my first reaction was format, reinstall.
  • When you format the SD card through disk utilities on a mac, you have to unmount each of the mounted partitions on the disk.

    Unmount a disk in OSX

    Right click the disk to reveal the unmount option. This is necessary to do for partitions of a larger disk when you want to save an image..

  • Raspberry Pi NOOBS requires a FAT formatted disk to run.  This information is a bit scarce on the internets.
  • The above linked NOOBS distro is a little larger than the Solarbotics supplied version.  Not sure how, but it includes a few more options to install.  Not necessary for a noobie, but may be useful if you want to play and explore with your new device.
  • Make sure you choose the right Keyboard and region when NOOBS is installing your OS.  Changing the keyboard later is convoluted and frustrating.  As is inadvertently typing the £ symbol instead of the # I was expecting..

Display problems

I had a couple of issues with my display, one that was relatively straight forward, and the second that was a little more befuddling.

  1. Screen resolution greater than 700xSomething was displaying on a monitor that easily displays 1920 x 1080..
    Turns out, the HDMI cable was loose on the Pi connection.   Rule number 2 of computer troubleshooting,  ALWAYS CHECK YOUR CABLES, DUMBASS.
  2. After mucking around with some VNC settings, somehow I managed to reduce the maximum resolution of the Pi so that there was  black border of unused pixels surrounding the display area.  <sigh>

    Extra Pixels around the Raspbian Linux interface

    Extra Pixels around the Raspbian Linux interface

  • Reinstalled OS again after failing google-fu and not finding a solution.
  • Problem persisted with new OS install, so somehow I managed to change something on the Pi Configuration itself..
  • This turned out to be the solution: http://www.opentechguides.com/how-to/article/raspberry-pi/28/raspi-display-setting.html
  • One thing the tutorial doesn’t mention is that the Overscan settings in step 4 exist in TWO places in the config file. The ones at the bottom were what fixed my problem in the end.   I only learned this after several reboots and some head scratching
  • Also, the Pi Config file is called /boot/config.txt
  • And, I far prefer using Nano to VI for editing..

Backup, backup, backup..

Okay, I’ve started from scratch enough times, I’d like to backup the 4Gb SD card and create some checkpoints when I install new software or make changes.

Unfortunately it wasn’t as easy as just making an image in Disk Utility on the Mac without first Unmounting the boot and recovery partitions.  Once you do though, you can click the SD card, and choose New Image from the icons at the top of the Disk Utility screen..

Install VNC on Raspberry Pi

There are loads of tutorials on this step, so I won’t record a complete step by step, but I find I always encounter issues beyond the provided tutorials, so I’ll record any additional issues I encounter.

I used this write up primarily: https://www.raspberrypi.org/documentation/remote-access/vnc/

But I failed to make things work properly..  Mostly because of my own ignorance I think..

Trying this instead: https://learn.adafruit.com/adafruit-raspberry-pi-lesson-7-remote-control-with-vnc/installing-vnc

(It should be noted that Adafruit has been making a huge contribution to the maker movement since they started out. they’re reputable, and well worth exploring if you’re at all smitten with building electronics)

Lessons:

  • To SSH from another unix machine (like a Mac), you’ll need to provide the appropriate user to connect use ssh pi@192.168.9.9 or whatever your address is to login as user pi
  • Starting VNC is as simple as using vncserver :1  This starts the server, and allows you to create different sessions by incrementing the :[number].  As you’ll see below, this is limited by your router configuration..
  • There are a few different ways to connect to the Pi from another computer.  I chose to use RealVNC viewer and just connect.  You can use Mac Screen Sharing, but at the moment I don’t mind having another software package do the work..
  • There were a couple of things conspicuously missing from the first tutorial..
  • When connecting to the vnc server with the viewer, use the format [IP address]:[Session Number].  In the case of the adafruit tutorial, we create session number 1, so when I connect to my pi it’s address 192.168.9.9:1 that I use to connect.
  • Annd Success!

    Raspberry Pi by VNC!

    Raspberry Pi by VNC!

  • Now to change the default resolution on my VNC window to match my laptop resolution 1680×1050.
  • The first tutorial sets up a script to automatically start the VNC service when you boot your Pi.  If this is desirable, it’d be worth trying out. After a bit of thought though, I’d rather not have a whole pile of access methods hanging off my machine while it’s just sitting on the internets.   So for now I think I’ll just start it using SSH (as is shown in tutorial 2) with the simple command vncserver :1.  It’s pretty easy and gives me the option of running it or not regardless of who is monitoring it on the home side.

Dynamic DNS – Letting the computer tell you where it lives..

So, I’ve looked a couple of options for dynamic DNS services.

  • DynDNS.org was what I used decades ago, but they’ve since gone to a pay model.. This application isn’t so mission critical that this is necessary
  • Looked at NO-IP but I wasn’t quite able to make things work correctly at first try.. The service is actually pretty good but I ended up looking at..
  • DuckDNS instead through the recommendations of a couple of kind Redditors.
  • If you haven’t had a chance to explore Reddit, I would highly recommend it.   There are a tonne of subreddits that you could while away a lifetime with, but when you’re trying to accomplish something specific or have unique interests like the Raspberry Pi there is surely a community of other inspired users that are always willing to help..

Lessons:

  • Authentication through Persona, a Mozilla initiative, will fail on the Pi’s Epiphany web browser
  • Reddit Authentication works great though!
  • DuckDNS instructions aren’t readily available when you’re not logged in.  This makes it tough to research what steps you might have to perform before you commit to logging in, but it’s not really too intrusive.
  • To get install instructions for your platform, and once you’re logged in, choose the platform option (“Operating system” in this case), then chose the drop-down menu item for the domain you want to configure.
  • If you get to the point where you download the Linux GUI version, make sure you move it to the home folder on your Pi (that’s the Pi folder by default).  Following the instructions while it’s in the downloads folder will fail your config!
  • I wasn’t able to get the GUI version to launch through the CHMOD line, but I could navigate to it with the file browser in the GUI and double-click, then choose execute.
  • Your Token is listed in the setup instructions, sandwiched between too screen shots look closely to find it, you may
  • I get the [Error] Duck DNS did not update correctly when I complete the configuration.  You also get an error when your IP address hasn’t changed so I’m hoping this may be the same issue as the machine has already been registered with the current IP.
  • Also, I’ve changed my default CRON updating to 720 minutes (12 hours) because IP addresses on home internet packages don’t update all that often.  If I’m locked out for a half day, this won’t kill me.   (I used the CRON instructions on the DuckDNS website to learn that crontab -e will let me edit this)
  • To this point I’ve been using internet sharing from my laptop because the router is in a bedroom and I didn’t want to sit on a bed to configure this all.  Now it’s time to try this out properly  and I’ll have to move it and see if I can get all this working remotely.
  • Errrgh..    Turns out there are PI instructions on the duckDNS website.  I didn’t notice them because the button only says “Pi” and is really tiny.
    • On the “let’s test the script” step I get the error: Warning: Failed to create the file /root/duckdns/duck.log: No such file or
      Warning: directory.  The file is legitimately not there (because I didn’t follow instructions from the start), so I just created a blank text file at /root/duckdns and called it duck.log (I also created the duckdns directory)…
    • Make sure you choose your domain from the dropdown box at the bottom of the page.  This will generate all the instructions for you.

Router Configuration

In order for a dynamic DNS address to work, port forwarding is required to make sure that the internet router and/or modem send internet traffic to the right device.   It picks up the public ip address of your modem and this just directs stuff from the router to the Pi..

For Tight VNC the following ports are listed as required:

Application Start
Port
End
Port
Protocol
TightVNC 5900 5900 TCP
TightVNC 5800 5800 TCP

But that’s not all..

If you start your VNC Server with something like vncserver :1, (as suggested by the Adafruit instructions) the server will use port 5901 for your connection, vncserver :2 will use 5902 and so on.  So unless you use vncserver:0 and it actually works (I haven’t tried) the above rules will prove insufficient, so in practice, this is actually what I’ve set on my own router to ensure that it’ll take connections from 1 to 5..

This is what I ended up using for port settings:

Application Start
Port
End
Port
Protocol
TightVNC 5900 5905 TCP
TightVNC 5800 5805 TCP
SSH 22 22 TCP

I should read the error messages more thoroughly, as they would have easily provided the solution.

VNC Error showing which port it actually connects to

VNC Error showing which port it actually connects to

 Conclusion..

So, this has taken me the better part of 7 hours to muck around with and set up (with the odd interruption for this and that)..    It seems like an inordinate amount of time, but bear in mind I’m learning all about linux and working with the new hardware, and a completely new flavour of Unix at the same time.

This is actually a pretty straight forward and a great learning experience. With this experience now,  I’m pretty confident the exercise wouldn’t take more than an hour of manipulation time to set up (not counting computer time for installing the OS and such)

Hopefully this will be helpful for those of you who’re going through your own setup process, and save you a bit of time yourself!  And seriously, try to figure things out, but if you’re really stuck and google lets you down, drop me a note and let’s see if we can work out the problem together!

 

As I hit send on my last post, a feeling of dread and doom passed over me…  The download of OSX 10.8 something (Yosemite anyway) has finished downloading.   I’ve been blocked twice in as many weeks from installing new software that I need to complete some upcoming projects because my OS (10.7.5 something) is outdated..

OSX Yosemite - Doesn't look good

OSX Yosemite – Doesn’t look good

Given the ratings I’ve seen pop up in the App store, I’ve been reluctant to try any sort of upgrade, content to wait until the next version, but it doesn’t look like that will be possible now.  So, if you don’t hear from me for a while, well, you’ll know what happened.. :)

Tagged with:
 

What?
So, I reopened my copy of Firefox this evening to find that they’d done one of their background updates. I’ve trusted Mozilla to have my best interest at heart for the most part (and for countless years), but frankly I was a bit surprised by their announcement that they’ve blatantly modified settings that I as a user have already set up in my software.

It’s been so long since I’ve actually had to modify the search settings in Firefox that I had to do a little YahGoogling to figure out how to re-brain my lobotomized search capabilities.

Yahoo Search Screen Shot

Mozilla changes Firefox default search engine to Yahoo without user input.

Naturally, the first search result is completely useless to actually solve the problem, but luckily, c-net has posted a simple tutorial here to help you get your Goo-I Mean, favourite search engine back..

As an added bonus, they added a wholly redundant search box to my toolbar (which of course defaulted to yahoo).  If your browser has suffered the same fate, you may right click the toolbar and choose customize which will let you drag the search bar in to oblivion.   Hope this helps.

And Mozilla, frankly that was a dick move. Shame on you.

Tagged with:
 

For the last few years, I’ve organized my email Inbox by filing messages in a folder that will help me find the messages later. I use one folder to hold individuals I deal with regularly, and another to hold folders for companies where I may deal with a bunch of random people, or if I don’t deal with them regularly.

Something like this:
 Inbox
   - People
      - Bob
      - Jane
      - Jim
  - Companies
      - Adobe
      - Dynatech
      - Grimm's

Doing this, I can use my Inbox as a sort of ‘to-do’ list that lets me know what I’ve got to accomplish in a very dynamic fashion. Need something from me? Send a quick email, and it’ll get done. I even send myself notes on occasion to keep a record of something that needs to be done.

One downside to this, is a long list of people and suppliers that end up making the filing of these emails kind of onerous. Lately I’ve been dealing with a number of companies in the search for a new software solution, and I find that Microsoft Outlook folders all tend to look alike when you get a long list of them running down the side of your screen.

The solution I’ve come up with is to mark a single message as “read” in the folder that I’m regularly filing to, to highlight it in bold and make the folder easy to find when I’m quickly scrolling through the folder tree.  This will work in Microsoft Outlook, Apple (Mac) Mail, on your smart phone, gmail, hotmail, or any other email applications you’re using.

FileList

File list in Microsoft Outlook

 

 

 

 

 

 

 

 

 

 

 

I’d encourage you to try this system and see how it works for you!

Tagged with:
 

I’ve been using a fantastic little application called MAMP to develop my websites and do some work for clients over the past year or so..  However, after a recent re-installation of my MacOS and subsequent MAMP installation I got a little excited about getting things customized and wiped out the MAMP Start Page URL in my haste to get the proper document location configured. After countless web searches with way more information than was helpful I wasn’t able to find a link with the default start page path.

Unfortunately, reinstalling MAMP has no effect on the silly change I made, so I suspect the information is stored in some random hidden file..

So.  For the record (and so I don’t have to go searching for this info again).  The MAMP Start Page value should be /MAMP (and be sure to keep it upper case!)..

MAMP Start Page setting

MAMP Start Page setting

Also for the record, I store my documents in a folder called MAMPserverData that lives in the documents folder of my profile.  This ensures that when I do a backup I don’t have to go searching for the code behind my development sites..

MAMP alternate document root

MAMP alternate document root

And one more also.. If you’re looking for a good quick tutorial or refresher on how to set up MAMP, have a look here!

(Post-Edit: This link has been updated to point to a video tutorial Addison Berry has recorded for installing the new version of MAMP to get a Drupal installation started.  I haven’t personally tried the new version of MAMP (the old one still works just fine), but it sounds like she’s nailed the pertinent features and the finer points of the new version. Definitely worth trying to follow along. If you have success (or trouble) with it, please leave a comment and perhaps we can all explore it together. )