May 29, 2010

Slackware 13.1 - Nvidia driver issue

I've been installing the latest Slackware stable release on my main machine these days and I have to say, it's great!!!. Most of the problems of Slackware 13 are now solved, it's pretty stable and so far without exceptions!!.


But I found a problem not related to Slackware, there is a problem with the kernel series 2.6.33.x and Nvidia legacy drivers. In short, once the driver is installed, the 'logout' action freezes the system and the only way to restore it is restarting manually, tough.

The solution, edit file '/etc/kde/kdm/kdmrc' and set:
# by default is false
#TerminateServer=true 
TerminateServer=true

Solution source: black-screen-after-logout-in-slackware

May 24, 2010

Slackware 13.1 released

Finally, after several modifications and security updates, we have a stable release of our beloved Slackware Linux. Slackware 13.1 has several improvements and changes, you can check it in the ANNOUNCEMENT or the RELEASE NOTES and also in CHANGES_AND_HINT.

May 20, 2010

Testing Ubuntu 10.4

I've been testing the new Ubuntu 10.4 distribution for a couple of weeks, just to see how much changed since last year.

I have to say that is really good, nice, lightweight, and really easy to use. Is taking the MacOS approach to attract users and I think it will work.

They are taking the right way for PC users, including very useful applications in a single-CD set. But I'm not a normal PC user, I'm a developer, a curious, stupid, bastard that wants to control everything in the system. Ubuntu doesn't let you do that (at least not in an easy way).

I have tried and tried many distributions and still can't find something better than Slackware. Not because it's easy to use(it really is), or because it has huge software sources. Is because its simplicity, is a very simple system, and allows you to change, modify, ruin everything without telling you 'gfy!'.


*Note: Is an old screenshoot, but is still valid.
If you are a developer, and you would like to learn how a Linux system is, or how to use it, you should give it a try.

May 11, 2010

May 7, 2010

Git svn dcommit, interruption recovery

As usual, I was doing all my work in my local copy(Git) of a SVN repository, when everything was stable and pretty, I started pushing everything to the central server. But in the middle of the operation the network was shutdown, some of my commits couldn't be pushed and my working tree was a mess!!.

"Ok" - I said - "I just have to point to HEAD again... which was the commit number?". I couldn't remember the commit number(is not so easy to do, admit it) but that's not necessary, right?, just do a 'git log --all' and you will see your commits. But NOOOOOOOOO, all commits were up to the last SVN dcommit entry!!!.
e.g.
                                                       * -> 'super commit'
                                                        |
                                                       * -> 'some other commit'
                                                        |
                                                      [*]-> 'where SVN commit crashed'
                                                        |

"Oh shit, oh dear Lord!!, don't worry, Git tracks content, can't lose my commits" - I said. But nevertheless all options I've tried, my commits seem to be lost.

After a few minutes reading Git's manual, I found this:
$> git rev-list --all --pretty=oneline
And.. YES!! all my commits are there, so, to make the long story short:
$> git checkout awfulCommitNumber
$> git svn rebase
$> git svn dcommit

May 4, 2010

External merge-diff - Git on windows

To configure and use Git in a Linux environment is quite easy, but if you are working in a Windows system, things get a little bit complicated.

I use MsysGit which is a great port to win32, and as a merge/diff tool I use WinMerge (I can't stand KDiff); to work with WinMerge as 'difftool' and 'mergetool' you could do this:

- First, create a wrapper script for our 'difftool', save this file as 'diff-tool.sh' in your $HOME folder:

#!/bin/sh
# Change "E:/bin/WinMerge/WinMergeU.exe" with your winmerge path
"E:/bin/WinMerge/WinMergeU.exe" -e -ub "$1" "$2" | cat

- Now, edit your $HOME/.gitconfig file, you can take as example my current configuration:
[core] 
autocrlf = false 

[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

[user]
name = Timoteo Ponce
email = timo.slack@gmail.com

[merge]
tool = winmerge

[mergetool "winmerge"]
cmd = "E:/bin/WinMerge/WinMergeU.exe" "$MERGED"
keepBackup = false

[diff]
tool = winmerge

[difftool "winmerge"]
cmd = $HOME/diffmerge-tool.sh "$LOCAL" "$REMOTE"