Expat-IT Tech Bits




Search this site:


/ (289)
  Admin/ (123)
    Apache/ (10)
      HTTPS-SSL/ (4)
      PHP/ (3)
      performance/ (2)
    Cherokee/ (1)
    LAN/ (4)
    LVM/ (6)
    Monitoring/ (2)
      munin/ (2)
    SSH/ (6)
    SSL/ (1)
    Samba/ (1)
    VPN-options/ (7)
      OpenVPN/ (1)
      SSH-Proxy/ (3)
      Tinc/ (1)
      sshuttle/ (1)
    backups/ (17)
      SpiderOak/ (1)
      backuppc/ (5)
      dirvish/ (1)
      misc/ (6)
      rdiff-backup/ (1)
      rsync/ (1)
      unison/ (2)
    commandLine/ (24)
      files/ (8)
      misc/ (10)
      network/ (6)
    crontab/ (1)
    databases/ (15)
      MSSQL/ (2)
      MySQL/ (8)
      Oracle/ (3)
      PostgreSQL/ (1)
    dynamicDNS/ (2)
    email/ (11)
      Dovecot/ (1)
      deliverability/ (1)
      misc/ (1)
      postfix/ (7)
      puppet/ (1)
    iptables/ (3)
    tripwire/ (1)
    virtualization/ (9)
      VMware/ (1)
      virtualBox/ (8)
  Coding/ (14)
    bash/ (1)
    gdb/ (1)
    git/ (3)
    php/ (5)
    python/ (4)
      Django/ (2)
  Education/ (1)
  Hosting/ (27)
    Amazon/ (18)
      EBS/ (3)
      EC2/ (10)
      S3/ (1)
      commandline/ (4)
    Godaddy/ (2)
    NearlyFreeSpeech/ (3)
    Rackspace/ (1)
    vpslink/ (3)
  Linux/ (31)
    Android/ (1)
    Awesome/ (3)
    CPUfreq/ (1)
    China/ (2)
    Debian/ (8)
      APT/ (3)
      WPA/ (1)
    audio/ (1)
    encryption/ (3)
    fonts/ (1)
    misc/ (6)
    remoteDesktop/ (1)
    router-bridge/ (3)
  SW/ (45)
    Micro$soft/ (1)
    browser/ (2)
      Chrome/ (1)
      Firefox/ (1)
    business/ (28)
      Drupal/ (9)
      KnowledgeTree/ (6)
      Redmine/ (2)
      SugarCRM/ (7)
      WebERP/ (2)
      WordPress/ (1)
      eGroupware/ (1)
    chat/ (1)
    email/ (1)
    fileSharing/ (2)
      btsync/ (1)
      mldonkey/ (1)
    graphics/ (2)
    research/ (2)
    website/ (6)
      blog/ (6)
        blosxom/ (3)
        rss2email/ (1)
        webgen/ (1)
  Security/ (15)
    IMchat/ (2)
    circumvention/ (2)
    cryptoCurrency/ (1)
    e-mail/ (4)
    greatFirewall/ (1)
    hacking/ (1)
    password/ (1)
    privacy/ (2)
    skype/ (1)
  Services/ (1)
    fileSharing/ (1)
  TechWriting/ (1)
  xHW/ (14)
    Lenovo/ (1)
    Motorola_A1200/ (2)
    Thinkpad_600e/ (1)
    Thinkpad_a21m/ (3)
    Thinkpad_i1300/ (1)
    Thinkpad_x24/ (1)
    USB_audio/ (1)
    scanner/ (1)
    wirelessCards/ (2)
  xLife/ (17)
    China/ (9)
      Beijing/ (5)
        OpenSource/ (3)
    Expatriation/ (1)
    Vietnam/ (7)


  • 2019/06
  • 2016/07
  • 2016/05
  • 2016/02
  • 2016/01
  • 2015/12
  • 2015/11
  • 2015/06
  • 2015/01
  • 2014/12
  • 2014/11
  • 2014/10
  • 2014/09
  • 2014/07
  • 2014/04
  • 2014/02
  • 2014/01
  • 2013/12
  • 2013/10
  • 2013/08
  • 2013/07
  • 2013/06
  • 2013/05
  • 2013/04
  • 2013/02
  • 2013/01
  • 2012/12
  • 2012/10
  • 2012/09
  • 2012/08
  • 2012/07
  • 2012/06
  • 2012/05
  • 2012/04
  • 2012/03
  • 2012/01
  • 2011/12
  • 2011/11
  • 2011/10
  • 2011/09
  • 2011/08
  • 2011/07
  • 2011/06
  • 2011/05
  • 2011/04
  • 2011/02
  • 2010/12
  • 2010/11
  • 2010/10
  • 2010/09
  • 2010/08
  • 2010/07
  • 2010/06
  • 2010/05
  • 2010/04
  • 2010/03
  • 2010/02
  • 2010/01
  • 2009/12
  • 2009/11
  • 2009/10
  • 2009/09
  • 2009/08
  • 2009/07
  • 2009/06
  • 2009/05
  • 2009/04
  • 2009/03
  • 2009/02
  • 2009/01
  • 2008/12
  • 2008/11
  • 2008/10
  • 2008/09
  • Subscribe XML RSS Feed

    Creative Commons License
    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

    This site has no ads. To help with hosting, crypto donations are accepted:
    Bitcoin: 1JErV8ga9UY7wE8Bbf1KYsA5bkdh8n1Bxc
    Zcash: zcLYqtXYFEWHFtEfM6wg5eCV8frxWtZYkT8WyxvevzNC6SBgmqPS3tkg6nBarmzRzWYAurgs4ThkpkD5QgiSwxqoB7xrCxs

    Sun, 30 May 2010

    /SW/business/Redmine: Installing Redmine on Debian Linux

    I have found Redmine to be extremely sensitive to the Ruby environment, often requiring that librairies be of exactly a certain version (not older, not newer). Configuration documentation is not sufficiently detailed. And error and diagnostic information is extremely difficult to obtain in a typical hosting account.

    So if you are trying to install Redmine in a hosting account that supports Ruby on Rails, you would be well-advised to get the application running first in a controlled environment where you have root. In my case, that was my Debian Linux desktop. After flailing around for hours in the hosting account, everything simply fell into place when I went back to basics and installed the Redmine application locally.

    These[1][2] were the main references for getting this working on Debian.

    apt-get install ruby rake rubygems libmysql-ruby
    gem install rails -v=2.3.5 (takes quite a while!)
    gem install rake -v=0.8.3
    gem install hoe -v=1.3.0
    Checkout a fresh copy of the latest Redmine stable, currently:
    svn co svn://rubyforge.org/var/svn/redmine/branches/0.9-stable redmine-0.9
    Start the native Ruby web server and see what happens:
    cd [...]/redmine-0.9
    ruby script/server production
    At this point I got a complaint about a missing database.yml. In my case, I was actually migrating Redmine from one hosting account where it suddenly broke, to another hosting account. So I installed the MySQL database from the old account to a database called mentage_redmine, then created a config/database.yml as follows:
      adapter: mysql
      database: mentage_redmine
      host: localhost
      username: mentage_redmine
      password: ***********
      encoding: utf8
      adapter: mysql
      database: mentage_redmine
      host: localhost
      username: mentage_redmine
      password: ***********
      encoding: utf8
    Restart the server: this time an "Internal Server Error" that gave very specific instructions about adding a line pertaining to cookies to the config/environment.rb file. After adding this line, it basically worked.

    In my particular case, again because I was migrating an existing application, in the new site I replaced the public/images, javascripts, stylesheets, and themes directories with those from the old site's public directory. After that, everything looked right as well.

    [1] http://www.redmine.org/wiki/1/RedmineInstall
    [2] http://www.redmine.org/wiki/1/HowTo_Install_Redmine_in_a_home_directory_on_Debian

    posted at: 07:30 | path: /SW/business/Redmine | permanent link to this entry

    Sat, 29 May 2010

    /SW/business/Redmine: Installing Redmine in a Hostgator Hosting Account

    To their credit, Hostgator[1] actually provides some documentation[2] about getting Ruby applications working in their hosting account. I, however, found them to be inadequate, and debugging information availability was little to none, so for me the magic key was getting Redmine working first on my desktop, then migrating to the Hostgator hosting account.

    One of the first things one notices when looking at the rather sparse Redmine installation manual[3] is the need for specific versions of a number of Ruby librairies. This is what I found:
    My Debian DesktopHostgator Account
    rails (2.3.5)rails (2.3.8)
    rack (1.0.1)rack (1.1.0)
    rake (0.8.3)rake (0.8.7)
    hoe (1.3.0)hoe (2.6.0)

    In the Hostgator account, I got the above librairy versions using "gem list --local". I then installed in the account the correct versions as follows:

    gem install rails -v=2.3.5
    gem install hoe -v=1.3.0

    Now transfer Redmine from desktop to Hostgator, placing it in /home/mentage/redmine-0.9.

    In /home/mentage/public_html, create the following symlink: redmine -> /home/mentage/redmine-0.9/public/

    Hostgator is using Apache to server up Ruby applications. Create a public/.htaccess[2] file with the following contents:

    AddHandler fcgid-script .fcgi 
         AddHandler cgi-script .cgi 
         Options +FollowSymLinks +ExecCGI 
         RewriteEngine On 
         RewriteCond %{REQUEST_URI} ^/notrails.* 
         RewriteRule .* - [L] 
         RewriteRule ^$ index.html [QSA] 
         RewriteRule ^([^.]+)$ $1.html [QSA]     
         RewriteCond %{REQUEST_FILENAME} !-f 
         RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

    After that, it worked for me by pointing a browser at the redmine directory.

    [1] http://www.hostgator.com/
    [2] http://forums.hostgator.com/ruby-rails-support-t13038p8.html
    [3] http://www.redmine.org/wiki/1/RedmineInstall

    posted at: 09:08 | path: /SW/business/Redmine | permanent link to this entry

    Thu, 27 May 2010

    /Admin/backups/backuppc: Using rysnc-over-SSH and BackupPC

    The goal here, of course, is to protect your login credentials and the data transferred for backup with encryption. The downside, however, is that you must give your backup server the right to SSH into the client being backed up without a password (configured thusly[1]). One must carefully consider the actual security of the backup server, and whether the degraded security of the client being backed-up is acceptable.

    Assuming passwordless authentication has been configured, test that everything is setup on both ends to do rysnc-over-SSH by running this command on the backup server:

    rsync -avz -e ssh username@client-domain.com:/path/to/testdirectory testing/
    The contents of testdirectory on the client should be copied to testing on the server. Note that one of the advantages of rysnc-over-SSH is that there *is* no other client-side configuration, other then making sure that SSH and rsync are working on that end, and installing the public key of the backup server to enable passwordless authentication.

    If that worked, go ahead and configure BackupPC. First create your /etc/backuppc/client.pl file (borrowed from [2]):

    $Conf{XferMethod} = 'rsync'; $Conf{RsyncClientPath} = '/usr/bin/rsync'; $Conf{RsyncClientCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+'; $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+'; $Conf{RsyncShareName} = ['/etc', '/home', '/var/www'];
    Assuming your client has been added to /etc/hosts as "clienthost", one now just needs to add clienthost to /etc/backuppc/hosts thusly:
    clienthost 0 backuppc
    and restart backuppc. Now "client" should show up in BackupPC's list, and you can start the first backup.

    Should the client be using a non-standard SSH port, the easiest solution is to use an SSH alias. I have this working with the following:

    $ cat .ssh/config
    Host olmserver
    Hostname olmserver
    Port 123
    $ cat /etc/hosts | grep olmserver olmserver
    $ cat /etc/backuppc/hosts | grep olmserver
    olmserver 0 backuppc
    Note that there is no need to change the backuppc configuration for this to work, or in fact even to change the port of the client SSH server. All of the SSH port configuration is handled by the SSH configuration.

    [1] http://blog.langex.net/index.cgi/Admin/SSH-SSL/passwordless-ssh-authentication.html
    [2] http://www.howtoforge.com/linux_backuppc_p3

    posted at: 06:37 | path: /Admin/backups/backuppc | permanent link to this entry

    Wed, 12 May 2010

    /xHW/Lenovo: Debian Linux on Mystery (Olympic?) Lenovo Notebook

    $ lspci
    00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 04)
    00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 04)
    00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04)
    00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04)
    00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04)
    00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04)
    00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4)
    00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04)
    00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 04)
    00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04)
    00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 04)
    00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04)
    01:00.0 VGA compatible controller: ATI Technologies Inc M24 1P [Radeon Mobility X600]
    02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev 80)
    02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)
    02:03.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
    02:04.0 CardBus bridge: ENE Technology Inc CB-710/2/4 Cardbus Controller
    02:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller
    02:04.2 SD Host controller: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller

    I just bought this lovely big used single core 1.73GHz (Pentium IVish?) desktop replacement machine (15.4" widescreen) notebook, and I am absolutely baffled by the lack of any indication of what it's model number might be. There is only the 5-ring Olympic symbol on the top of the case, suggesting that it came out in the run-up to the Beijing 2008 Olympics. In fact, it is in such flawless physical condition for its age of several years that I am thinking it might have been used for just a few weeks during the Olympics.

    So far everything I have tried works great with Debian testing, including suspend to RAM right from the KDE desktop menu. After installing the firmware-ipw2x00 package the internal wireless card became visible via ifconfig -a, but iwconfig was reporting "radio off". After some hunting around in a room without enough light, I discovered that the large round LED on the front edge to the right of the CD controls is actually also a pushbutton that controls the state of the wireless card radio.


    Grub. Grrrrr. During my first install there was one glitch when upgrading from grub to grub2 (I started with a base install of Lenny) leaving me with an unbootable machine (first lesson learned: never just ignore grub errors while upgrading....)

    This blog post[1] got my grub2 booting again quickly. I will not repeat the post's verbiage, but this is the sequence of commands that got me back on track (I thought....) after booting from an old Ubuntu live CD:

    sudo fdisk -l
    sudo mount /dev/sda5 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot /mnt
    (optional, only if you're on Ubuntu/Debian) apt-get install grub-pc
    grub-mkconfig -o /boot/grub/grub.cfg
    grub-install /dev/sda (try grub-install --recheck /dev/sda if it fails)
    Ctrl+D (to exit out of chroot)
    sudo umount /mnt/dev
    sudo umount /mnt/sys
    sudo umount /mnt/proc
    sudo umount /mnt

    And then I discovered that somehow, although I was able to boot, as far as fdisk and parted were concerned, my partition table was hosed. Strike two against grub2. Second lesson learned: grub2 is not stable, and after wasting hours of my time it will be a while before I allow it onto a new install again. Now for install, take two, this time no upgrade from grub to grub2.....

    That worked, sort of. No matter what I try, I cannot get the swap partition to work. With 2 Gig of RAM, perhaps not a huge deal, but I would at least like to try suspend to disk and see if it works. When I was in the shop getting more RAM, the technician also pointed out that there is a password on the BIOS, and that there is no easy way to remove it (not yet verified). One more thing to check next time I buy a new notebook....

    A couple gotchas along the way, but I am not in the mood for complaining in light of how little I paid (about US$300, in the end) for a machine in like-new condition that works very well for me. Hopefully the swap partition thing will sort itself out in a future OS upgrade.

    [1] http://grub.enbug.org/Grub2LiveCdInstallGuide

    posted at: 10:56 | path: /xHW/Lenovo | permanent link to this entry