Always search before coding

This is a annoying, even if it take 5mn to code thing like that :

(defun my-dired-rm-rf()
  "Rm -rf directories"
  (interactive)
  (let ((sel (selected-window)))
	(dolist (curFile (dired-get-marked-files))
	  (if (yes-or-no-p (concat "Do you want to remove \"" (file-name-nondirectory curFile) "\" ? "))
		  (progn
			(shell-command (concat "rm -rvf " curFile) 
"*Removing Directories*")
			(kill-buffer "*Removing Directories*")
			(select-window sel)
			(revert-buffer)
			)
		))
	))

you discover after a litlle while that if you have did a lilt bit of searching before, you will have discovered a variable call `dired-recursive-deletes` that would do the thing in a much better way.

Posted in Emacs | Leave a comment

Import Export to different tablespace names with Oracle 9i

Renaming Oracle Database is a pain, coming from OpenSource DB like
MySQL or PostGres where we do that all the time i did not think that
Oracle have to be such a pain.

My only way i can find.

- If i have the tablespace named tablesp1 and owned by the
user user1, and i want to import it to another tablespace
called tablesp2 in an another Oracle 9i tablespace with the user
name user2.

  • I import the tablesp1 in an Oracle 10 (if you are lucky to have
    one).
  • Make sure i create the user2 in the Oracle10 DB.
  • I connect as DBA access and i rename the tablespace with :
    [code lang="sql"]
    ALTER TABLESPACE tablesp1 RENAME TO tablesp2
    ALTER TABLESPACE tablesp2 OWNER TO user2
    [/code]

  • Export the Oracle10 tablespace with Oracle 9 exp.
    Sometime sometime you may encounter that famous error

    "EXP-00003 : no storage definition found for segment .....".
    

    So you have have to
    do this as well.

  • That’s it. The dump should be under tablespace name tablesp2 with
    owner user2.
Posted in Oracle | Leave a comment

SVN Diff against changes in the remote repository.

A useful svn wrapper scripts. Get a diff of your local repostitory against the upstream repository changes. I wonder why it is not builtins though like a svn status -u but for dif.

#!/bin/bash
 
IFS="
"
for line in `svn status -u`;do
    [[ $line != "   "* ]] && continue
    rev=`echo $line|awk '{print $2}'`
    ff=`echo $line|awk '{print $3}'`
    svn diff -r${rev}:HEAD $ff
done
Posted in Scripts | 3 Comments

Stopped smoking

Cigarette Ashtray
While reading this entry. I just remembered that it has been a a litle bit more than a month that i stopped smoking. I was a real smoker, smoking a 25 red malboro every day. But one day i wake up (one of those
days you know) and like that i thought to maybe stop smoking. So far it has been good, the hardset part is the first days really, after it get OK. I hope it will last for me, i feel so much better i think since i stopped smoking.

Posted in Life | Leave a comment

OpenSource Jokes

Funny website that you should checkout :

http://opensourcejokes.com/

i wish theses guys were not putting some stupids google ads on the site. But well i know them it’s a day to day full time job to be the funny guys of the place ;)

Posted in Misc | 1 Comment

Emacs nighly cvs snapshot with xft on Ubuntu Edgy

I wanted to try the latest cvs snapshot with XFT support, since i did not want to screw up more my workstation i have used packages instead of make install blindy.

Basically i have a script called ./build.sh

#!/bin/bash
set -e
 
d=$(date '+%Y%m%d')
debpatch=20061218-1
 
mkdir -p cvs
 
pushd cvs >/dev/null && {
cvs -Q -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs
} && popd >/dev/null
 
mkdir -p build
[[ -d build/emacs-${d} ]] && rm -rf build/emacs-${d}
cp -al cvs/emacs build/emacs-${d}
 
zcat patches/emacs-snapshot_${debpatch}.diff.gz|patch -p1 -d build/emacs-${d}
cat patches/with-font.patch|patch --silent -p1 -d build/emacs-${d}
 
pushd build/emacs-${d} >/dev/null && {
    chmod +x debian/rules
    dch -v "1:${d}-1" "New snapshot."
    dch "Build with xft."
    fakeroot dpkg-buildpackage -b
} && popd >/dev/null

in patches/with-font.patch i have :

--- c/debian/rules.chmou        2007-01-21 23:21:09.486353750 +1100
+++ c/debian/rules      2007-01-21 23:21:13.914630500 +1100
@@ -393,7 +393,7 @@
 # Emacs-gtk confflags
 emacs_gtk_confflags := ${confflags}
 emacs_gtk_confflags += --with-x=yes
-emacs_gtk_confflags += --with-x-toolkit=gtk
+emacs_gtk_confflags += --with-x-toolkit=gtk  --enable-font-backend --with-xft
 
 # Emacs-nox confflags
 emacs_nox_confflags := ${confflags}
--- c/src/emacs.c.chmou 2007-01-21 23:21:09.486353750 +1100
+++ c/src/emacs.c       2007-01-21 23:22:18.430662500 +1100
@@ -1408,10 +1408,10 @@
     = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
 
 #ifdef USE_FONT_BACKEND
-  enable_font_backend = 0;
-  if (argmatch (argv, argc, "-enable-font-backend", "--enable-font-backend",
-               4, NULL, &skip_args))
     enable_font_backend = 1;
+  if (argmatch (argv, argc, "-disable-font-backend", "--disable-font-backend",
+               4, NULL, &skip_args))
+    enable_font_backend = 0;
 #endif /* USE_FONT_BACKEND */
 
 #ifdef HAVE_X_WINDOWS
@@ -1816,7 +1816,7 @@
   { "-unibyte", "--unibyte", 81, 0 },
   { "-no-multibyte", "--no-multibyte", 80, 0 },
   { "-nl", "--no-loadup", 70, 0 },
-  { "-enable-font-backend", "--enable-font-backend", 65, 0 },
+  { "-disable-font-backend", "--disable-font-backend", 65, 0 },
   /* -d must come last before the options handled in startup.el.  */
   { "-d", "--display", 60, 1 },
   { "-display", 0, 60, 1 },

i have as well in patches/ the ubuntu (or could be debian) patch downloaded from the ubuntu (or debian archive) archive which is for ubuntu on

http://archive.ubuntu.com/ubuntu/pool/universe/e/emacs-wiki

If there is a new version you will need to increase the version in build.sh to match the patch downloaded.

When running build.sh it should produce binary in build/* with xft enabled by default. Make sure to have all the dependencies (dpkg-buildpackages should tell you if there is unresovled one).

One screenshot :

Screenshot of Emacs snapshot with XFT

Posted in Emacs | 12 Comments

History expansion and substitions in ZSH

I better to keep that somewhere since i always forget that thing, to do a search and replace from the command line in zsh. you just have to do the :s^FOO^BAR after your expansion

For example you just have typed the long command line :

blah bar FOO=1 FOO=3 FOO=6 cnt=1

you can just type :

!blah:s^FOO^VALUE^:G

and it will be expanded to :

blah bar VALUE=1 VALUE=3 VALUE=6 cnt=1
Posted in Scripts | Leave a comment

Noah latest update

Litle one is growing and soon one year old

Noah dans les bareauxNoah latest

Posted in Noah | 1 Comment

Rename bunch of file via regexp

To rename bunch of files via regexp i was using before a homegrown python script call rename-regexp.py to change bunch of files with a regexp.

But since then i discovered wdired which is pretty fantastic to use that from emacs. With the extended “query-replace-regexp“ from Emacs22 stuff are much easier to rename.

Posted in Emacs | Leave a comment

Benchmarking with PGBench: TPS results.

pgbench is not the best tools to benchmark postgres but it’s
the one shipped by default with postgres.
It does not do a good job for benchmarking your “web apps” SQL wise, it will give you some
good indication about how fast is your server for postgres.

Here are some results we have collected using theses options :

pgbench -Uuser  -s 10 -c 10 -t 3000 benchmark

We configure servers with RAID 1+0 with write-cache and a battery
backup, we have tested with postgres 8.1.5 and here are the best
results for different type of servers :

IBM x3650 : 729tps
HP DL385 : 717tps
Dell PowerEdge 2950: 708tps

Posted in postgres | Leave a comment