Monday, December 27, 2010

Installing Dropbox 1.0 in Ubuntu 10.10

Dropbox recently released a new 1.0 client for all platforms with several new features. Particularly, the selective folder syncing would be very helpful for the Ubuntu netbook my wife uses. However, the Dropbox website only offers Linux downloads for the 0.6.7 version. Strange.

A little googling led to this forum discussion, which linked to this forum post and this French-language blog posting. The steps are quite easy, but it's bothersome that Dropbox hasn't made this obvious. The download and installation process is seamless for both other platforms.
  1. Stop the Dropbox client to your home folder.
  2. Download the appropriate 1.0.10 linux client for x86 or x86_64.
  3. Rename or delete the '.dropbox-dist' folder (in a terminal at ~, mv .dropbox-dist .dropbox-dist.backup).
  4. Unpack the downloaded client archive (tar zxvf dropbox-lnx.x86-1.0.10.tar.gz).
  5. Restart the Dropbox client from the Ubuntu menu (Applications -> Internet -> Dropbox).
The Dropbox icon should appear in the Ubuntu notification area. The new version (1.0.10) should show in the Preferences window, on the Account tab.

Update 1/31/2011: I installed Dropbox on my new laptop Ubuntu install using the 0.6.7 installer downloaded from the website. After installing, it immediately downloaded an update to the 1.0.20 version. Thanks, Dropbox team.

Tuesday, December 14, 2010

Deluge Icons for Ubuntu Ambiance Theme

I prefer the Deluge bit-torrent client over Ubuntu's default of Transmission, but it's always been a minor annoyance that Deluge's icon in the notification area didn't match the mono-chromatic icons of Ubuntu's excellent Ambiance theme. Fortunately, numbfall over at deviantart has created a set of deluge icons to compliment this theme.

His instructions are pretty clear, so enjoy!

Sunday, November 21, 2010

Fixing Android ADT After Upgrade to Ubuntu 10.10

After upgrading from Ubuntu 10.4 to Ubuntu 10.10, I found that the Android ADT plug-in was not showing up in Eclipse anymore. None of the features were accessible from the Eclipse menus. The "Help -> Install New Software..." dialog would hide the packages when "Hide items that are already installed" was checked, and attempting to re-install gave an "already installed" error message.

Some googling uncovered others with this problem, particularly this helpful post from Sonal. The fix is, basically, to delete the entire configuration directory for eclipse. While a bit heavy-handed for those with complex installations and many installed components, it was fine for me as all I'm doing is Android development. My steps were slightly different from Sonal's, so here's a recap:
  1. Exit eclipse if running
  2. Delete (or backup) ~/.eclipse/org.eclipse.platform_3.5.0_155965261
  3. Start eclipse
  4. Open Help->Install New Software
  5. Add the Eclipse 3.5 Default update site: http://download.eclipse.org/releases/galileo/
    (Note that I explicitly installed the WST Server Adapters, though adding the update site may be enough.)
  6. Add the GEF (Graphical Editor Framework) plugin update site: http://download.eclipse.org/tools/gef/updates/releases
    (I did not explicitly install GEF.)
  7. Add the Google Android ADT plugin update site: https://dl-ssl.google.com/android/eclipse
  8. Install the "Android DDMS" and "Android Development Tools" packages from the Android ADT update site.
Notably, the GEF plugin appears to be new. I don't recall installing this under Ubuntu 10.4. Also, I believe that if you just add the update sites for the dependancies (WST Server Adapters and GEF), they will be installed automatically when you install the Android ADT packages. No need to hunt them down and install them directly. I haven't verified this though.

There may be more re-configuration to be done. I'll update this post with anything I find as it comes up.

Saturday, November 13, 2010

(Not) Fixing Banshee Notification Area Icon in Ubuntu

I've been annoyed by the Banshee notification area icon in Ubuntu for a while now. I've changed Ubuntu to use the darker Ambiance theme as opposed to the light (blinding) Radiance theme. I really like it, except that Banshee's notification area icon displays the same with either theme, so it appears as a grey icon on an ugly white block.

I finally googled the issue and found these comments on the Ubuntu Forums. The wonderful Ubuntu community has created a replacement Banshee notification area plugin. The downside is that I've lost the notification popups that appear on song changes (which I kind of liked) and can no longer get a quick display/control area by hovering over the icon (which I never used anyway and actually found a little annoying). All-in-all it's a win for me!

Update 11/13/2010: Gah! Just after saving this post, I discovered that closing Banshee with this new notification icon in effect actually closes the program. With the default icon, "closing" the program leaves it running in the background while the notification icon stays in place, allowing you to control the "hidden" program from there. With the new community extension, this is no longer the case. A deal-breaker for me!!!

Update 11/14/2010: After upgrading to Ubuntu 10.10, all is well. The icon matches the rest of the supported notification area, and all functionality is intact. Phew!

Changing the Default Java Runtime Environment in Ubuntu

I've been having trouble with a couple Java programs in Ubuntu, so I'm attempting to switch the Java Runtime Environment from the OpenJDK, which is default in Ubuntu, to the official Sun runtime. I found instructions, which I've followed with the following changes:
  • the partner repository was added through the GUI Software Sources utility (System menu -> Administration -> Software Sources, or from the Ubuntu Software Center, Edit -> Software Sources)
  • The sun-java6-jre and sun-java6-fonts packages were installed by searching in the "Canonical Partners" section of the Ubuntu Software Store. The sun-java6-plugin package was not found and not installed.
Here's hoping things improve, and that there are no problems because of not installing the plugin package.

Thursday, November 11, 2010

Android Development - Starters Guide

I'm giving Android development another shot, and had to install Eclipse and the Android Development Tools again. Note that this is all on a box running Ubuntu 10.4.

The Android Developers site is a plethora of information, including setup instructions, a developer guide and reference, videos, tutorials, etc. The following pages seem to be the most relevant when first getting started:
  • SDK Download and Quick Start, which includes a to-the-point SDK Quick Start guide
  • Installing the SDK is a more thorough version of the Quick Start guide, including next steps such as recommended reading and tutorials
  • A Hello, World tutorial, the recommended first step for new developers
  • A Notepad tutorial, the recommended second step for new developers
  • Developer Resources lists a few other tutorials that may be worth looking at
Here are the steps I took to prepare my development environment per the 'Installing the SDK' instructions:
  1. I followed (and updated) my old post on Setting up Eclipse and Android Development Tools in Ubuntu to install the required Eclipse packages, and install the Android Development Tools plug-in for Eclipse. This covers steps 1 & 3 of the Quick Start / Installing the SDK guides.
  2. For step 2 of the guides, installing the Android SDK, I downloaded the Linux platform SDK file from the SDK download page and unpacked it from the terminal with 'tar xzvf [filename]'. I also added the SDK tools directory to my path, per instructions in the Installing the SDK guide.
  3. For step 4 of the guides, I ran the GUI 'Android SDK and AVD Manager' by typing 'android' at the terminal (the 'android' executable is in the SDK 'tools' folder). In the 'Available Packages' section, I installed everything. At this time, it included the SDK Platform and Google API packages for Android versions 1.5 - 2.2, the Samples for SDK API 7 and 8 (Android 2.1 and 2.2), and the latest Documentation package.
Note, I've let Eclipse use it's default '~/workspace/' path as my workspace, and I've unpacked the Android SDK into a folder under '~/dev/'. Also, the "Android SDK and AVD Manager" can also be launched from within Eclipse by selecting "Window -> Android SDK and AVD Manager". You must first tell it where to find the SDK by going to "Window -> Preferences -> Android".

From here I was able to successfully complete the "Hello, World" tutorial. Good luck, and happy coding!

Monday, July 26, 2010

Windows Batch Script to Write to a Daily Log File

Here is a Windows batch script to append a passed line of text to the specified file (prepending the text with a date/time stamp). The idea is to use it to capture your day's activities in a daily log format. It's especially useful when combined with a tool like Launchy.


@echo off
setlocal

set MYDOCSPATH=[replace]
set LOGSUBPATH=[replace]
set FILENAME=DailyLog
set FILEEXT=txt

:: Generate date/time stamp
for /F "tokens=1 delims=/ " %%G in ('echo %DATE%') do set WEEKDAY=%%G
for /F "tokens=2 delims=/ " %%G in ('echo %DATE%') do set MONTH=%%G
for /F "tokens=3 delims=/ " %%G in ('echo %DATE%') do set DAY=%%G
for /F "tokens=4 delims=/ " %%G in ('echo %DATE%') do set YEAR=%%G
set YMD=%YEAR%%MONTH%%DAY%
for /F "tokens=1 delims=:." %%G in ('echo %TIME%') do set HOUR=%%G
for /F "tokens=2 delims=:." %%G in ('echo %TIME%') do set MIN=%%G
for /F "tokens=3 delims=:." %%G in ('echo %TIME%') do set SEC=%%G
if %HOUR% LSS 10 set HOUR=0%HOUR%
set HMS=%HOUR%%MIN%%SEC%
set DATETIMESTAMP=%YMD%-%HMS%

set LOGFILE=%MYDOCSPATH%\%LOGSUBPATH%\%FILENAME%.%FILEEXT%
set MESSAGE=%WEEKDAY% %YEAR%-%MONTH%-%DAY% %HOUR%:%MIN%:%SEC% \\ %*
if "%*"=="" (
echo No log message provided. Displaying contents of log file.
) else (
echo Writing log message: %*

echo %MESSAGE% >> "%LOGFILE%"
)
echo ----------------------------------------------------------------------
type "%LOGFILE%"
echo ----------------------------------------------------------------------
pause

endlocal

Sunday, May 16, 2010

Ubuntu - Secure, Automated File Backup Using Dropbox and 7zip

Since switching to Ubuntu as my primary OS, I've been lax in setting up an automatic backup of important files. I finally got around to it this weekend, using a combination of cron (via Gnome Scheduler), 7zip, some simple shell scripting, and the Dropbox application for linux.

At this point, I'm not concerned about backing up every little thing. Just the file-based equivalent of "what would you grab if the house was on fire". So no music, videos, or large amounts of photos for this. And, of course, some of these files will be sensitive or personal in nature, so I want to make sure they're encrypted. Dropbox does a fine job of encrypting the files they store, but they're still just a password hack away from public access, so providing a second encryption password for sensitive data is at least a step towards more protection.

So let's get this set up...

First things first, I installed the Dropbox client for linux. Dropbox creates a folder in your home directory that is automatically backed up to their servers, and is synced among any other computers or devices connected to your account. They have clients for the three major platforms (Win/Mac/Lin) plus iPhone and Android apps. You can check out their website for instructions or more info.

Second, I installed 7zip (search "7zip" in the Ubuntu Software Center) to get the best compression rate. I don't want to eat up more of my limited Dropbox storage than I need to. I got some help on the 7zip command-line options from (what else?) the man page.

Next, I created a shell script to create a compressed and encrypted archive of any specified folder:

#!/bin/bash

if [ -z "$1" ]; then
echo usage: first parameter must be a target filename
exit
fi
if [ -z "$2" ]; then
echo usage: second parameter must be the folder to backup
exit
fi

FILENAME=$1
FILESTOCOMPRESS=$2/*
DESTINATION=~/Dropbox/Backup/[computername]
PASSWORD=[password]

7z a -mhe=on -mx=9 -p"$PASSWORD" ~/$FILENAME $FILESTOCOMPRESS
mv ~/$FILENAME $DESTINATION/$FILENAME

Note the use of the "-mhe=on" switch to encrypt the archive header, which includes the list of files in the archive. And also the use of "-mx=9" to enforce the highest level of compression.

I also created another script which calls this one multiple times, once for each folder I want backed up. I'm quite the shell script novice, so there are probably better ways to do this. Perhaps with a function and by reading the filename and a list files to archive out of a text file. I'll get around to it eventually (maybe).

Finally, I set up this script to run daily using Gnome Scheduler (a GUI frontend for cron). Search "Gnome Scheduler" in the Ubuntu Software Center. Here's a nice overview of the tool. For those who wish to apply their command-line kung fu directly to cron and the crontab, this page from the Ubuntu Community Documentation may be of use.

There are some things to keep in mind with this backup option. There are certainly more secure backup options available. Although Dropbox uses high-end encryption when it stores your files on their servers, anyone with your Dropbox account password can access your files through the Dropbox website. So your files are only as secure as your account password. Adding a second level of encryption with 7zip is a step in the right direction, but of course you should be sure not to use the same password for 7zip encryption and for your Dropbox account. All in all, though, this seems like a decent trade-off between security and ease-of-use.

Saturday, January 16, 2010

Setting up Eclipse with Android Development Tools in Ubuntu

To get set up for Android App development, I'm following the instructions from Google here:
http://developer.android.com/sdk/installing.html

I installed Eclipse through the Ubuntu Software Center (searched for "eclipse" and clicked install).

Also had to install eclipse-jdt (Java Development Tools) through the Synaptic Package Manager.
Also had to install eclipse-pdt (Plugin Development Tools) through Package Manager.
(Edit 11/11/2010: When going through this process again with Ubuntu 10.4, I used the Ubuntu Software Center instead of the Synaptic Package Manager. Also, I must have meant eclipse-pde - Plugin Development Environment, as I can't find eclipse-pdt listed as an available package.)

Through Eclipses "Help -> Install New Software" dialog, I had to add the basic software source for eclipse (don't know why this isn't set up by default) which is:
http://download.eclipse.org/releases/galileo/
and install "WST Server Adapters" which is apparently a prerequisite for the ADT plugin. Learned that from this site: http://groups.google.com/group/android-developers/browse_thread/thread/1da899d34557f2e8?pli=1

Now to try installing the android plugin (ADT) by adding:
https://dl-ssl.google.com/android/eclipse/
to the eclipse list of software sources.

Looks like that did it! ADT is installed... (now what's next?)