Archive for the ‘emacs’ Category

HOWTO get your Raspberry Pi running owncloud, tt-rss and thinkup

Thursday, March 21st, 2013

Today a case for my Raspberry Pi arrived from Adafruit arrived and it is time for some spring cleaning.

I was running the XBMC distro on the pi, but found it cumbersome to listen to music in the home office that way. So time to start with a fresh Raspbian install.

Here are my notes:

  • Get the current Raspbian release from and install it on a
    4GB flash disk.
  • Boot the new disk and make the following configurations using
    raspi-config which is run the first time it starts up.

    – Use only 16M for GPU since I’m not running an X desktop
    – set appropriate timezone
    – set appropriate locale
    – expand fs to use entire 4GB disk
    – change pi passwd
    – enable ssh access
    – update
    – reboot

  • Now some miscellaneous setup to make life easier later on. Both tt-rss and thinkup require MySQL, but I’ll also want to use it for
    owncloud too. So install MySQL server:

    sudo apt-get install mysql-server

    Avahi (aka bonjour) is a very nice network tool that is a DNS-less way
    to announcing your hostname on the local network. Most (all) linux
    tools support it, but you’ll need Apple’s Bonjour kit for Windows.
    That means you can just ‘ssh raspberrypi.local‘ or browse to

    sudo apt-get install avahi-utils

    I like emacs and screen is useful.

    sudo apt-get install emacs23-nox screen

    At this point I stop using the keyboard/monitor connected to the Raspberry Pi and use an ssh session from my laptop to do the rest.

  • First install ownCloud by taking a look here: Then connect to your Raspberry Pi:

    ssh pi@raspberrypi.local
    sudo -i

    Now run this script which I slightly modified from their page:

    apt-key add - < Release.key

    echo 'deb /' >> /etc/apt/sources.list.d/owncloud.list
    apt-get update
    apt-get install owncloud

    At this point you’ll have all the required packages are installed. Now point a browser to http://raspberrypi.local/owncloud

    You will need to create an owncloud admin account and will want to then expand the Advanced tab and to use a MySQL server instead of SQLite. Fill in root, mysql root password (I didn’t bother to set an mysql admin password, so null in my case). For the database, use owncloud and database host localhost. It may take a couple minutes to be complete, so be patient.

  • Now install tt-rss doing the following steps:

    cd /var/www/

    wget -c

    And follow the instructions here which are essentially:

    tar zxvf 1.7.4.tar.gz
    mv Tiny-Tiny-RSS-1.7.4 tt-rss

    chown -R www-data:www-data tt-rss

    You will have to manually create a mysql database and import the schema

    mysql -u root
    mysql> create database ttrss;
    mysql> quit

    Now import the database schema (a fancy way to say the database tables and some initial data)

    cd tt-rss/schema
    mysql -u root ttrss < ttrss_schema_mysql.sql

    And a little editing the configuration file...

    cd /var/www/tt-rss

    cp config.php-dist config.php

    emacs config.php (or use vi, nano, etc)

    I made the following edits:

    define('DB_TYPE', "mysql");
    define('DB_HOST', "localhost");
    define('DB_USER', "root");
    define('DB_NAME', "ttrss");
    define('DB_PASS', "");

    define('SELF_URL_PATH', 'http://raspberrypi.local/tt-rss/');
    define('SINGLE_USER_MODE', true);

    Point a browser to http://raspberrypi.local/tt-rss

    From there login with default login/password of admin/password and you are done.

  • Finally install

    The one package you’ll need that isn’t already installed at this point is php5-curl.

    apt-get install php5-curl

    Now get the kit. I used wget and the site provided the kit, but with an unusual name.

    cd /var/www
    wget -c
    mv index.html
    unzip thinkup-1.3.1
    chown -R www-data:www-data thinkup

    Almost done. Point a browser to http://raspberrypi.local/thinkup and complete the configuration.

    database host: localhost

    database name: thinkup

    user: root

    password: blank, in my case or whatever you set the mysql root password to.

    I (and probably you) don’t have a smtp server configured, so in order to activate your account, you’ll need to do this:

    # mysql -u root thinkup

    mysql> select id,full_name,is_activated from tu_owners;
    | id | full_name | is_activated |
    | 1 | Marc Nozell | 0 |
    1 row in set (0.00 sec)

    mysql> update tu_owners set is_activated=1 where id=1;
    mysql> quit

    Done! Now go back to http://raspberrypi.local/thinkup and configure the plugins to your favorite social media sites.

ThinkUp on Raspberry Pi

Monday, June 11th, 2012

Tonight I installed the cool social networking monitoring tool ThikUp on my new Raspberry Pi with the lastest debian code drop.

  1. Downloaded the new (11-Jun-2012) test Debian/Wheezy image as announced on
  2. Since I’m using a new 4GB MMC card and the image was built for 2GB, ran “sudo rasp_config” to resize the disk and bias memory toward SoC instead of the video card. Rebooted. Realized it didn’t reboot, pull power and boot
  3. 3) I run a a local apt-proxy to save bandwidth, so created /etc/apt/apt.conf that contains:

    Acquire::http::Proxy "";

  4. 4) Update the apt-cache:

    sudo apt-get update

  5. Install useful bits:

    sudo apt-get install emacs screen mysql-server php5 php5-curl php5-gd php5-mysql

    This installs ~61M of new packages and pulls in a suitable apache server.

  6. Now time to install thinkup:

    sudo -i
    cd /var/www/
    unzip ~pi/
    chown -R www-data /var/www/thinkup/data/
    sudo touch /var/www/thinkup/
    sudo chown www-data /var/www/thinkup/
  7. point a browser to
  8. Since I didn’t bother to setup outbound email, need to manually
    update the thinkup table. See

    mysql -u root -p
    mysql> use thinkup;
    mysql> select id,full_name, is_activated from tu_owners;
    | id | full_name | is_activated |
    | 1 | Marc Nozell | 0 |

    1 row in set (0.00 sec)

    mysql> update tu_owners set is_activated=1 where id=1;
    mysql> commit;
    mysql> exit;

  9. Point a browser to and setup
    connections to your favorite social media sites.

org-mode configuration

Wednesday, January 4th, 2012

I’ve been using org-mode for all of 2011 to track status, info, general notes related to work and some home projects. This year I’ve resolved to use it much more and take advantage of more of the features like tags, agenda, schedule dates, etc.

This is the org-mode bits of ~/.emacs

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
; Clean View
(setq org-startup-indented 1)
; Org buffers only
(add-hook 'org-mode-hook 'turn-on-font-lock)
(setq org-directory "~/Dropbox/Notes/Org")
(setq org-mobile-directory "~/Dropbox/MobileOrg")
(setq org-mobile-inbox-for-pull "~/Dropbox/Notes/Org/")
(setq org-agenda-files (list
     (concat org-directory "/") ; work project 'AAAA' notes
     (concat org-directory "/") ; personal
     (concat org-directory "/") ; home
     (concat org-directory "/") ; reoccurring and one off
     (concat org-directory "/") ; bulk of work notes
     (concat org-directory "/") ; remove later

(setq inhibit-startup-screen t)
(put 'downcase-region 'disabled nil)
(put 'erase-buffer 'disabled nil)

For historical purposes my mini-talk from last year on orgmode at our LUG can be found here in the original org file I presented from or view the generated webpage manchlug-orgmode.html