Category Archives: geekdom

LaTeX formula editor in Chrome

Browsing the Chrome Webstore I came across the Daum Equation Editor which is a WYSIWYG editor in Chrome for LaTeX math formula.

It does render LaTeX math code into a PNG or save it as a TXT file. I see this app for quickly sketching a formula on a beamer without the need of a whole LaTeX environment or when you want to export it to a PNG file to be attached in an email or something like that.

Timer for reminder

So, I was working on my computer and forgot that I had something in the laundry (or similar), and then the sun set and the laundry was still in the machine and didn’t sun dry. Does this remind you of something? Well, I searched for a little tool that does remind my to get my tea, to empty the laundry etc. and found Menubar Countdown (GPL, OpenSource). It just puts you a little clock in the menubar (hours:minutes) and that’s it. No fancy animations, no disturbance … just what I need.

Privacy respecting 2-click social media plugins

A few days ago I read this article over at Heise about a new era of privacy respecting social media plugins (german) and today I read in Denis’ blog that there already exist a WordPress plugin(german). I installed it today and removed to old Google +1 plugin, unfortunately since I don’t have Facebook (and don’t want/need/whatever) the Like-button won’t work. Though I use identi.ca I also have a twitter-account which I don’t use, it’s more that I have my nickname reserved.

The plugin (with german localization though)

I noticed that this greyish look matches my theme, neat side-effect!

SCM with git, for the graphically minded

SCM means Source Code Management and is not much of a magic when I tell you that basically it’s not much more than using CVS, SVN, git or mercurial for instance. These are very powerful tools indeed and sometimes a CLI just doesn’t feel intuitive in world where we judge the tools by their look&feel and sincerly a visual diff is easier to understand. Also I wanted to make a translation of my post over at G+.

Mac OS X

Free/FOSS

Gity App

It is FOSS (GPLv3) and runs 10.6 and 10.7. Frankly I didn’t run into any limitations but probably because I’m not using all git’s power and complexity. I think this is a good tool for daily use.

Gity App

http://gityapp.com/

Gitx

Also FOSS (GPLv2) but with a very simple interface, in my opinion a bit too simple so I can only recommend it for the very very beginner, though a very good app.

Gitx App

http://gitx.frim.nl/

Gitti

Gitti is free of charge, but I’m not sure how the development is going on. It is noted as ‘Beta’ which could mean that the final version may be shareware. However I found the interface a bit disturbing: I don’t see the changes in the commit area which makes it hard to know what to write in the commit message. On the other hand I found the Configuration area quite interesting.

Gitti App

http://www.gittiapp.com/

SmartGit

SmartGit is also free and provides also clients for Windows and Linux. You may use it free for non-commercial use, but the interface looks more like a tool from a few years ago. Oh, and the log buttons opens a new window. Probably not the worst client for code review but … no, I’m not convinced.

SmartGit

http://www.syntevo.com/smartgit/

Gitbox

Well, it’s not exactly shareware though $39.00 (50% discount for students), it just restricts you to three projects in the sidebar, but if you remove a project from the sidebar and add a other one, it works. Unfortunately it lacks of an integrated diff view.

Gitbox

http://gitboxapp.com/

Shareware

Tower

Unfortunately it is shareware and costs €49.00 but on the other side you can test it for 30 days. You get 50% discount as a student. The earlier beta versions were free of charge, but you were forced to update every 30 days or so.

Tower App (git-tower)

http://git-tower.com

SourceTree

SourceTree (€45.00, 21 days trial) brings the most complicated interface I think but also feels like it uses the whole power git provides. It also supports mercurial, so if you ever happen to use both, you should consider this GUI. Oh, but I don’t like the icons, the look too candy to me.

SourceTree

http://www.sourcetreeapp.com/

Sprout

Sprout is only sold via the Apple App Store for $35.00 but doesn’t make a good figure. The log doesn’t show any changes in the code which disappoints. In my opinion it’s not worth testing, but the low version number indicates there might be some changes in the future.

Sprout
http://gitmacapp.com/sprout

Windows

Since I no longer use Windows I just googled a bit.

Free/FOSS

tortoisegit

When you know tortoisesvn, you’ll know your way around tortoisegit. It’s FOSS and brings a redmine bugtracker plugin.

Linux

Well, I never used any GUI for git under Linux, but I’d like to point out to two good looking: qgit and gitg. You should find them in your distros repo.

Android

FOSS

agit

Yes, there is a git client for android! But it costs you something like CHF 2.20. I didn’t try it out, I followed the instruction to build your own agit and I didn’t managed to get it work. Maybe you are more lucky than I am.

Crash course!

Well, finally we got some tools to work with but the code also should find its way to a centralized place. I suggest to have a look at setting up your own server and then setting tortoisegit if you use windows and github.

There’s also my tutorial for setting up redmine (a bugtracker with git support) on debian or you can take a look at gitorious which provides hosting for code for free. And if you’re still thinking that this is soooo complicated, have a look here.

Finally I’d like to point you to the most valuable document for entry level git user: Everyday GIT With 20 Commands Or So

Final words

If you happen to use a GUI I didn’t mention or found other good or interesting stuff, let me know. I acknowledge that this post is a bit long on Mac OS X apps due I use this daily, I’d be really happy if you write a post about linux GUIs and I’ll link to your post, I promise!

Personally I use Gity and maybe I’ll buy Tower one day, depending how much I’ll use git. I also like to thank my friends over at NGAS for their support!

Installing Redmine and gitosis on a Debian root-server with MySQL

So I wanted a bugtracker with a little of everything and git integration. First of all I must admit that this wasn’t easy and I wasted some time figuring out how to get this stuff working. Since I love to see tutorials and manuals myself, I’ll share my experience.

Be aware though that Ruby on Rails consumes a lot of RAM and will not run on 128MB RAM. I had to upgrade my VPS which now runs fine with 512MB RAM. I installed Redmine 1.0.1-stable on my Debian Squeeze 6 with the MySQL backend, but not without getting serious trouble when enabling the gitosis plugin: Whenever a username in git contained a umlaut, it just threw a server error. Finally I was able to tackle down the problem with a lot of help from friends over at #bsdprojects.

WARNING: This post is not intended to provide a foolproof guide or a newbie tutorial. This is meant for someone being able to handle a full root server.

INSTALLING PACKAGES

Install the needed debian packages:

apt-get install acl apache2 apache2-mpm-prefork apache2-prefork-dev build-essential cron git-core gitosis git-daemon-run libapache-dbi-perl libapache2-mod-passenger libapache2-mod-perl2 libcurl4-openssl-dev libdigest-sha1-perl libgemplugin-ruby libgemplugin-ruby1.8 libmysqlclient15-dev libnet-ssh-ruby1.8 librmagick-ruby1.8 libruby-extras libruby1.8-extras mysql-server python-setuptools rake redmine redmine-mysql ruby ruby1.8-dev rubygems sudo wget

CONFIGURING & SETUP

MySQL

This is where I failed in the first attempt, MySQL obviously has severe problems with the encoding and a configuration change was the solution eventually. Be sure to add the following to  /etc/mysql/my.cnf before you do anything else:

[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

Now create the DB:

mysql -u root -p

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';
quit;

Configure redmine:
vi /etc/redmine/default/database.yml

  production:
    adapter: mysql
    database: redmine
    host: localhost
    username: redmine
    password: my_password
    encoding: utf8

Installing the gems

Now comes the funny part, you need to exactly these versions or you’ll encounter strange errors:
gem install rails -v=2.3.11
gem install rack -v=1.1.0
gem install mysql
gem install -v=0.4.2 i18n
gem install inifile lockfile net-ssh

Get Redmine in place

ln -s /usr/share/redmine /var/www/redmine
chown -R www-data:www-data /var/www/redmine
chmod -R 755 /var/www/redmine
cd /var/www/redmine
rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Apache

a2enmod passenger
vi /etc/apache2/sites-avaible/redmine

    <VirtualHost *:80>
        ServerName redmine.domain.tld
        DocumentRoot /usr/share/redmine/public
        <Directory /usr/share/redmine/public/>
                Options -MultiViews
        </Directory>
    </VirtualHost>


a2ensite redmine
/etc/init.d/apache2 reload
/etc/init.d/apache2 restart

Now your Apache should be able to handle the redmine bugtracker.

 Integrate gitosis

vi /etc/fstab

    …
    /dev/foo /  ext3  acl,errors=remount-ro 0 1
    …

reboot
sudo -H -u gitosis ssh-keygen -t dsa

Set no password, use standard path/file

sudo -u gitosis cat ~gitosis/.ssh/id_dsa.pub | sudo -H -u gitosis gitosis-init
sed -i.orig 's:/var/cache:/srv/gitosis:g' /etc/sv/git-daemon/run
sv restart git-daemon
setfacl -m user:www-data:r-x,mask:r-x ~gitosis/.ssh
setfacl -m user:www-data:r--,mask:r-- ~gitosis/.ssh/id_dsa
script/plugin install git://github.com/xdissent/redmine_gitosis.git
sudo -u www-data X_DEBIAN_SITEID=default RAILS_ENV=production rake db:migrate:plugins
/etc/init.d/apache2 restart

Point your browser to your installation, log in, go to Administration -> Plugins -> Configure Redmine Gitosis, change ‘localhost’ to your domain, change xdissent.com to your domain.

The repository

Now …

  • create a normal user
  • give him administrator access
  • logout as admin, login as user
  • create new project
  • give yourself at least ‘Developer’ role (Settings -> Members)
  • go to Settings -> Repository, choose git as SCM (this step was actually nowhere mentioned …)
  • now you’ll see a new menu (on the blue background) called ‘Repository’, click on it and follow the instruction written there.

You should be able to push your git repo to the redmine server finally.

SOURCES

MySQL + UTF-8 = Not So Obvious
TUTORIAL: REDMINE WITH GIT AND GITOSIS ON UBUNTU 11.04
GitHub Clone with Redmine

Android Motorola Xoom

So I own this Motorola Xoom (the WiFi only vesion) for a little over six weeks and would like to share my review of this tablet. It’s not like there wouldn’t be enough reviews, but most of them don’t point the finger where it hurts and don’t look like they come from real usage.

UPs

  • 10-finger multitouch
  • nice UI, needs some accomodation time though, I was always trying to hit a physical button where there wasn’t.
  • good battery lifetime. Doesn’t apply when you leave your device on stand-by for a few days, the battery will be empty.
  • only three physical buttons
  • speaker quite good for their size
  • fits in most iPad sleeves (well at least in a softshell one)
  • encryption with boot-lock, if your device gets stolen the thief will have a very expensive salver.
  • gmail, maps and talk do rock with the honeycomb UI
  • ConnectBot does fine

But as always there are some serious downsides:

DOWNs

  • hard to type fast
  • only a few honeycomb UI adapted apps are available in the market.
  • preinstalled keyboard fails when you had a trackball before, there are no arrow keys to move around in connectbot. I had to install hackers keyboard, now I miss often the shift key.
  • video codec support is ok, but does not play MKV natively, needs MoboPlayer which does perform badly with 720p MKV (those I got from the usual torrent pages like vodo). It simply doesn’t support the High Profile, as far as I can tell it does only support the Main Profile, but this is subject to further investigation.
  • does not support files bigger than 4GB.
  • connectors for earphone are at the top; very weird.
  • does NOT charge when connected to USB, only with separate charger (sucks when leaving for holiday, need too take separate charger)
  • reader, google+ and many other often used apps by me do not have a honeycomb/tablet UI yet even though created by Google. When you point the browser to Google+ it will only load the mobile version. Sorry Google, but here I expected more. You actually have to type “about:debug” (without the “) in the address bar, then go to settings, debug and select ‘desktop’ in the UAString entry. Then you’ll be able to switch over to the desktop version of Google+ and many other websites which force you to use their mobile view.
  • the browser does not cache the website for later offline read nor does it allow to change UAgent by default, stuck in mobile mode (see above how to fix this).
  • no stand, it is very annoying to read with the xoom when it lays flat on the table. I bought a little stand which does perfectly fine, even on my knees.

Apps

Yes, it is harder to find good apps which do take in account the bigger screen. That’s why I share my list of apps I found:

  • Aldiko, a very good eBook reader, does epub and PDF. No surprises here.
  • Angry Birds Rio, one of the most addictive games out there. Superbe graphics!
  • Evernote, a very good note management, syncing and writing app. It has a very clean and clear interface and allows to put shortcuts of often used notes to the “desktop”.
  • ezPDF, one of the rare application I bought, it is a quite powerfull PDF annotating application, the best I found so far.
  • FBReader, also a good eBook reader, personally I prefer Aldiko.
  • File Manager HD, a file manager with an adapted interface for tablets.
  • Google Docs, the app for Google Docs. No surprises here neither, it feels like a mobile web app. Editing doesn’t work really well. For correcting a few typos and add two or three sentences it’s ok. But not much more.
  • Google Earth, makes me feel like a CIA agent running around with his tablet and have all sensitive mission data and maps at his fingertips. This application is fast!
  • GMail, with its new honeycomb interface writing emails is now fun.
  • KeePassDroid, it is not adapted to the bigger screen but since I store all my passwords in the encrypted file it is handy to have it installed.
  • Moodwriter, when you need a simple and easy to use writter app, try this. It’s actually just a texteditor but sometimes you just don’t want more.
  • Reader HD, since the Google Reader is not really cool on honeycomb I bought this one. It has the classy two-column view, syncs very fast and works for offline reading.
  • ReadItLater, this app is not really adapted for honeycomb. It still looks very good and I couldn’t find any issues, I installed it to be able to read websites offline. And it does work as expected.
  • SketchBook Express, when you want to doodle, draw, sketch etc. go with this. I recommend to buy a pen, it’s easier to draw than with your fingers.
  • Youtube, makes fun again to watch youtube videos on your mobile device.

Of course these are not all honeycomb-able apps avaible, I just don’t use all of those avaible. But if you happen to come accross some good code editor with syntax highlighting or a good git tool, let me know!

Get VMWare tools running in Fedora 14 with a Mac OS X as a host

  1. Open a terminal and update the system with yum update
  2. Install the following packages with yum install gcc make kernel-devel perl kernel-headers
  3. Execute echo “#define UTS_RELEASE “$(uname -r)”” >> /usr/src/kernels/$(uname -r)*/include/linux/version.h
  4. Mount the VMWare Tools from the VMWare menu and unpack them with tar xvf FILENAME.tgz
  5. cd into new directory and execute ./vmware-install.pl
  6. READ the last messages about how to use the VMWare Tools.

Sources:

And thx to @gbraad and @lovenemesis for their support.

Why iPhones suck, why Android phones suck.

iPhone/iPod pros

  • superbe display, the best I’ve actually seen so far, readability is still fair in bright sunlight.
  • slick device, feels like one block in the hand.
  • responsive and has a very consistent looking UI.

iPhone/iPod cons

  • built in bluetooth is actually only good for headsets, the rest is completely crippled and I wonder why it even was introduced.
  • some kids asked me if they could have a few songs from me. Plugging the iPhone to my MacBook, firing up iTunes and then … oh misery, this doesn’t work, because this is not the same account and if I want to put a single song on their iPhone, it would get wiped. Well, paying that much and getting a completely crippled device with a lot of completely insane restrictions is stupid.
  • it plays only a small subset of audio formats.
  • it doesn’t work with linux. (Well not supported by Apple)
  • it’s not FOSS.

What I don’t understand is the fact I cannot load somebodys iPod/iPhone with songs from me. This works with Android as simple as you could think: Plug, drag&drop, listen. I just hope the kids learned that this is a serious problem and you should look for real solutions, not alternatives to solution as iPhones/iPods are.

I confess, I once had an iPod nano and later an iPod touch. This was back then when there was no real alternative. But the first thing I did with the iPod touch was to jailbreak it. And yes, if somebody jails you even though you pay money you would be a idiot, moron and dumbass not to use a jailbreak, regardless if legal.

Update: Yesss, I forgot the part about why Android sucks, but seriously that part is not very hard. So here it comes:

Android cons

  • needless to say that it sucks hard if your neighbour has the newest version (ATM 2.3 Gingerbread) running on his phone while you are still stuck at 1.6. So there would be the option manufacturer open their system and say: «Hey, after 2 years of updates by us, you are free to install custom ROMs on your own!» But no … they don’t. Oh, and I forgot: If your phone is branded, happy waiting!
  • sometimes I have the feeling things are not implemented to its very end. Why the heck do I have to unlock my phone (I’m talking about entering my PIN on the lockscreen) to skip a music track?! Cyanogenmod made some tiny buttons on the bottom of the screen which works fine.
  • many big companies ignore Android and its user. I wrote at least two emails to my carrier saying that they should add a functionality to their proprietary app. Well … guess what happened? Nothing.
  • I’m a bit disappointed that Java is the language they choosed for developing apps.

Android pros

  • it’s FOSS!
  • it has a huge bandwidth of different device from simple cellphones to highend-smarter-than-the-user-phones. You’ll find your matching one.
  • it’s very customizable and offers the capability (ok, at least my Nexus One) to install custom ROMs.
  • it does backup my SMS to a XML file.
  • it work’s like a charm with my google account.
  • it even has a console if needed.
  • there is no censorship on the market (AFAIK).

As a reminder, this is my personal oppinion and does not mean I’m right or whatsoever (well … finally I am always right … ;-) ) and if you have comments please write an email since nanoblogger does not support commenting. Ah, and if you happen to know a blogging software that uses Cassandra and Ruby, let me know.