python-tokyotyrant (pytyrant) RPM

I’ve packaged pytyrant–a pure python client implementation of the Tokyo Tyrant protocol–as an RPM.

python-tokyocabinet (pytc) RPM

I’ve packaged pyrc–Python bindings for Tokyo Cabinet–as an RPM.

Profile Management with Git and GitHub

The following describes a simple way to manage you profile configuration files using GitHub.

Features

  • Centralized configuration management
  • Files live in their native locations (no symbolic linking)
  • Home directory is not a Git repository
  • All the power of git with a simple alias

Setup Repository

  1. Log into GitHub and create a repository named config
  2. Add your public keys to GitHub (if you haven’t done so already)
  3. Open a terminal and switch to your home directory
    cd ~
  4. Create a configuration directory
    mkdir .config.git
  5. Add the following alias to your current session and your .bash_profile
    alias config='git --git-dir=$HOME/.config.git/ --work-tree=$HOME'
    echo "alias config='git --git-dir=$HOME/.config.git/ --work-tree=$HOME'" >> .bash_profile
  6. Add your .bash_profile to the configuration repository
    config add .bash_profile
  7. Commit the changes
    config commit -m 'Initial commit'
  8. Change the origin to GitHub
    config remote add origin git@github.com:GITHUB_USERNAME/config.git
  9. Push the changes
    config push origin master

If you get an error when running config pull to the effect of You asked me to pull without... run the follow:

echo -e '[branch "master"]\n  remote = origin\n  merge = refs/heads/master' >> ~/.config.git/config

Setup Configuration Management on a Different System

  1. Add your public keys to GitHub (if you haven’t done so already)
  2. Switch to your home directory
    cd ~
  3. Backup your local configuration files, example:
    mv .bash_profile .bash_profile.bk
  4. Clone your configuration repository
    git clone git@github.com:GITHUB_USERNAME/config.git config.git
  5. Move the git metadata to ~/.config.git
    mv config.git/.git .config.git
  6. Enable dotglob
    shopt -s dotglob
  7. Move your configuration files to your home directory
    mv -i config.git/* .
  8. Delete the config.git directory
    rmdir config.git
  9. Logout and log back in

Basic Usage

  • config pull – get latest configuration changes
  • config add FILENAME – add a configuration file
  • config commit -a – save all configuration changes
  • config push – push configuration changes to GitHub
  • and any other config GIT_OPTION

You can see my configuration repository at http://github.com/silas/config.

Source: Manage your $HOME with git by Robert Escriva

Updated Fabric RPM to 0.1.0

I’ve updated the Fabric RPM to version 0.1.0 which was released on February 17, 2009.

Mp3splt & libmp3splt RPM

I’ve packaged Mp3split–a tool to split mp3 and ogg files without decoding them–as an RPM.

Note: This package depends on libmad which is provided by RPM Fusion.

Upgrade the Android Developer Phone (ADP) to RC33 Manually

Please note that you will lose all data on your phone when performing these steps.

  1. Mount the ADP MicroSD card
  2. Download hboot-0.95.0000.zip to the mount and rename it to update.zip
  3. Unmount the card and shutdown the phone (unplug the USB cable if connected)
  4. Hold Home+Power to boot
  5. When prompted press Alt+S and wait for the update to finish
  6. Press Home+Back to reboot and wait for second update to finish and boot into the Android recovery system
  7. Press Home+Back to reboot again
  8. Mount the MicroSD card
  9. Delete update.zip
  10. Download signed-holiday_devphone-ota-130444-debug.55489994.zip to the mount and rename it to update.zip
  11. Unmount the card and shutdown the phone
  12. Hold Home+Power to boot
  13. Press Alt+S to update and wait for update to finish
  14. Press Home+Back to reboot and wait for the second update to finish and boot into the Android system recovery utility
  15. Press Alt+W to wipe all data
  16. Press Home+Back to reboot and wait for the reboot to finish (this could take a couple of minutes)
  17. Re-setup the ADP (hint: press menu to setup custom APN settings)

Introducing the FuncShell

Update: I am currently refactoring FuncShell; please use the following code: shell.py

I created FuncShell for running Func modules in a more intuitive manner.

The current implementation only supports the command module, but more will be released shortly.

Code: http://github.com/silas/funcshell

Example Usage

[root@pluto ~]# python shell.py
fs> use web*.example.org
fs> get hosts
web01.example.org
web02.example.org
fs> !du -sh /tmp
================================================================================
== web02.example.org                                                          ==
================================================================================

236K    /tmp

================================================================================
== web01.example.org                                                          ==
================================================================================

217M    /tmp

fs> !cat /proc/meminfo | grep MemTotal | awk '{ print $2 }'
================================================================================
== web02.example.org                                                          ==
================================================================================

1027116

================================================================================
== web01.example.org                                                          ==
================================================================================

1027116

fs> exit
[root@pluto ~]#

Python Stomp Client (Stomper) RPM

I packaged Stomper, a transport neutral Python STOMP client, as an RPM.

Android Dev Phone 1 – AT&T

I received my Android Dev Phone 1 today and wanted to report that with the following APN settings it works great (setup instructions come with the phone).

Name: AT&T
APN: wap.cingular 
Proxy: <Not set> 
Port: <Not set> 
Username: wap.cingulargprs.com 
Password: CINGULAR1 
Server: <Not set> 
MMSC: mmsc.cingular.com 
MMS proxy: <Not set> 
MMS port: 80 
MCC: 310 
MNC: 410 
APN type: <Not set>

Source Jackson Miller

Fabric RPM Package

I’ve packaged Fabric–the simple pythonic remote deployment tool–as an RPM.

Here is a simple guide on creating binary RPMs from source RPMs.