Version Control Systems

All version control systems (VCS) suck in one way or the other. It's just that some suck less than others, and of the VCS that I have used over many years so far, the one that is the absolute winner of crappiness is called MKS Integrity. It is a miracle to me how people get used to this monstrosity of non-usability and slow operation, paired with unsafe operations that make your local changes to the code you are writing vanish with a click of a mouse button. If anyone does ever get used to it, that is.

How a system as bad as MKS was conceived, or more likely how it has congealed, I can only speculate. Not only does it appear to be a threat to your code base, it also makes your developers work slower. Who in the world could want something like that? Sigh.

2013/10/10 22:45 · Christian · 0 Comments

Best Of Jelly Bean

I recently got Android 4.1 on my phone, and the very best thing about it so far is this: it finally has a Colemak on-screen keyboard, which is slightly less idiotic than QUERTY. Yay.

2013/05/01 15:07 · Christian · 0 Comments

TypeMatrix Special Keys In XMonad

I got a TypeMatrix Keyboard recently. It has a few buttons for starting up some applications directly, which did not work out of the box in my xmonad setting.

A little playing with xev lets us add a few keys to ~/.xmonad/xmonad.hs:

import XMonad                                                                                             
import XMonad.Config.Xfce                                                                                 
import XMonad.Util.EZConfig (additionalKeys)                                                              
main = xmonad $ xfceConfig                                                                                
         { modMask = mod4Mask,                                                                            
           terminal = "xfce4-terminal"}                                                                   
         `additionalKeys` [ ((mod4Mask, xK_F5), spawn "virtualbox --startvm Vista"),                      
                            ((mod4Mask, xK_F2), spawn "emacs"),                                           
                            ((mod4Mask, xK_F3), spawn "firefox"),                                         
                            ((mod4Mask, xK_F4), spawn "thunar"),                                          
                            -- Typematrix special keys                                                    
                            -- fn-sleep:                                                                  
                            ((0, 0x1008ff2f), spawn "dbus-send --system --print-reply --dest=org.freedesk\
top.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"),                                      
                            -- Web browser                                                                
                            ((0, 0x1008ff18), spawn "firefox"),                                           
                            -- EMail                                                                      
                            ((0, 0x1008ff19), spawn "evolution"),                                         
                            -- Calculator                                                                 
                            ((0, 0x1008ff1d), spawn "xfce4-terminal -e \"ghci\"")                                                                                                     

This works very well for me, let me know if you make use of this and whether you needed to change anything!

2012/05/07 22:16 · Christian · 0 Comments

Jalla is on Hackage Now

jalla is now also available on hackage and can be downloaded with cabal. It does not build on hackage because lapacke is not available there, so see the above link for the documentation (which is also not built on hackage).

2012/04/01 20:20 · Christian · 0 Comments

Building Dynamic LAPACKE With SCons

I wanted a shared library of LAPACKE on my linux box. I did this so that I can work with Jalla in GHCi, but it might be useful in other cases too. Since LAPACKE comes with a plain makefile, and I had to also leave out some files depending amongst others on XBLAS, I wrote a SConstruct file (for the great SCons build system) to build a dynamic as well as a static LAPACKE:

# This file is part of Jalla <>.
# Copyright 2012 Christian Gosch.
# 1. You may have to modify the library paths and/or names below to suit your system.
# 2. Copy this SConstruct file to the top level directory of LAPACKE
# 3. Call "scons" on the command line, possibly "scons -jN" where N is the
#    number of processors to use.
# 4. Copy the built libraries where you need them.
# This worked for the LAPACKE which was delivered with LAPACK 3.4.0.
# Builds a shared and a static library.
# Dependencies: LAPACK, BLAS, CBLAS
import re, sys, glob
env = Environment ()
utils_sources   = Glob ('utils/*.c')
# XBLAS dependent functions
x_regex = re.compile ('xx\.c$|sx\.c$|xx_work\.c$|sx_work\.c$') # |^cla_|^sla_')
# Test generation functions
testing_regex = re.compile ('.*lapacke_[sdcz]la')
# Functions apparently not available in stock Ubuntu 11.10 LAPACK, only in LAPACK 3.4.0
other_regex = re.compile ('qrt\.c$|qrt2\.c$|qrt3\.c|rfb\.c$|qrt_work\.c$|qrt2_work\.c$|qrt3_work\.c|rfb_work\.c$')
# Filtering out XBLAS dependencies
lapacke_sources = filter (lambda fn: == None, glob.glob ('src/*.c'))
# Filtering out testing dependencies
lapacke_sources = filter (lambda fn: == None, lapacke_sources)
# Filtering out other (new 3.4.0 functions??) dependencies
lapacke_sources = filter (lambda fn: == None, lapacke_sources)
env.Append (LIBS = ['lapack', 'f77blas', 'cblas', 'm'])
env.Append (CPPPATH = ['../include', './include'])
env.Append (LIBPATH = ['/usr/lib/atlas-base/'])
env.SharedLibrary ('lapacke', lapacke_sources + utils_sources)
env.StaticLibrary ('lapacke', lapacke_sources + utils_sources)
2012/03/13 22:44 · Christian · 0 Comments

Older entries >>

blog.txt · Last modified: 2009/02/26 15:32 by wurzel
Recent changes RSS feed Driven by DokuWiki