GVim on Windows 7 x64

EDIT: The latest installer works fine.

EDIT (2009-10-27): A way better solution is to use the x64 package of gVim from http://code.google.com/p/vim-win3264/. I say it’s way better because it adds diff with vim to the context menu when selecting 2 files, something I use really often. There is surely a way to add this one to the context menu using regedit, but I didn’t search for it.

After installing GVim on Windows 7 x64, we don’t get the useful edit with vim in the context menu.

Hack with registry:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Edit with Vim]
[HKEY_CLASSES_ROOT\*\shell\Edit with Vim\command]
@="C:\\Program Files (x86)\\Vim\\vim72\\gvim.exe \"%1\""

Ordonner l’union ou unir l’ordre?

Disons que nous avons une table yo comportant les colonnes meh et mih. Disons aussi que nous voulons avoir le premier et le dernier record de cette table, ordonné par meh.

Séparément, en sqlite3, on aurait

select * from yo order by meh asc limit 1;

pour le premier, et

select * from yo order by meh desc limit 1;

pour le dernier.

Bon, il ne reste plus qu’à faire une union alors:

select * from yo order by meh asc limit 1 union all select * from yo order by meh desc limit 1;

Et bien non. Sur sqlite3, on reçoit l’erreur:

SQL error: ORDER BY clause should come after UNION ALL not before

D’abord, joli manque de ponctuation, mais ensuite, pourquoi cela?, se dit-on. Quand on y pense purement du côté de l’union, il ne fait effectivement aucun sens d’ordonner les éléments des 2 tables dès le début — on ordonnerait plutôt après l’union. Le problème ici est que je ne veux pas ordonner le résultat de mon union, mais plutôt unir 2 résultats ordonnés. Aussi, on ne saurait dire si le dernier order by servirait à ordonner la deuxième table, ou bien à ordonner le résultat de l’union.

Et non, on ne peut pas faire:

(select * from yo order by meh asc limit 1) union all (select * from yo order by meh desc limit  1);

Ça serait trop facile. Si j’ai pensé à mettre ces parenthèses, c’est peut-être parce que je m’obstine à penser que SQL est un langage simple à utiliser…

Un compagnon de travail m’a fait part du blog de Pinal Dave, http://blog.sqlauthority.com, où dans un de ses posts parle justement de ce problème. La solution rapide de Pinal ressemblait à:

select * from yo where meh in(
select min(meh) from yo union all
select max(meh) from yo
);

Je ne trouve pas que c’est très élégant, en plus de peut-être donner plus de 2 lignes de résultats si les valeurs de “meh” ne sont pas distinctes.

Je suis déjà nostalgique envers ma solution avec des parenthèses, et je vois un commentaire de Dave Arthur au post de Pinal utilisant cette solution, mais d’un moyen correct, soit:

select a.* from (
  select * from yo order by meh asc limit 1
) a
union all
select b.* from (
  select * from yo order by meh desc limit 1
) b

C’est la joie. Je trouve cela complètement stupide et redondant, mais ça colle déjà mieux avec l’idée initiale. De plus, on peut facilement changer le nombre de lignes des 2 queries, séparément.

delicious with chrome

Delicious est un genre de bookmarking online avec du partage et des tags. Je l’utilise surtout comme synchronisation de mes bookmarks entre le travail et la maison.

On peut ajouter des boutons pour Chrome en suivant les instructions à http://delicious.com/help/bookmarklets.

Parlant de Chrome, j’aimerais avoir un équivalent de Vimperator avec Firefox, mais rien n’y ressemblant est aussi complet et fonctionnel.

focus-follows-mouse-noautoraise on win7

Ça commence à faire trop longtemps que je cherche une façon de faire ça.

Tweak UI fonctionnait sous XP, mais il fait sa chochotte et ne s’installe pas sur 7.

La case à cocher nommée Activate a window by hovering over it with the mouse dans l’Ease of Access (attention à la voix) m’a rendu souriant pendant environ 3 secondes, durant lesquelles je réalise la triste vérité; ça autoraise. AH! Tellement désagréable. J’ai failli vomir.

Je suis aussi tombé sur http://steve-yegge.blogspot.com/2008/04/settling-osx-focus-follows-mouse-debate.html qui parle de la chose pour OS X. Bien intéressant. Commentaires hilarants.

Bref, j’ai vu TXMouse à quelques reprises mais on dirait que chaque recommandation de ce software venait avec un désavantage. Je vais peut-être l’essayer quand même…

Edit 2009-11-12: J’ai utilisé TXMouse pendant quelques temps et ce n’est pas très agréable. Ça chie les menus de la barre de tâches et casse le behavior de Alt-Tab. En plus, je n’ai pas réussi à faire un “raise” en “alt-cliquant”, même avec PowerPro (qui d’ailleurs, parlant de caca, a une interface des plus merdiques).

Edit 2010-02-18: Sans trop d’effets secondaires désagréables, on peut modifier de quoi dans le registre.
Par effets secondaires j’entends, par exemple, que le joli menu contextuel qui apparaît quand on right-click sur un programme de la task bar est difficile à atteindre. Souvent je m’y prend à 2 ou 3 coup de garochage de souris vers l’avant pour pas register un déplacement dans le petit espace de quelques pixels entre la barre de tâches et le menu contextuel (qui est le desktop, qui va focusé, et le menu disparaît car il perd le focus). Ce n’est pas parfait mais c’est bien utilisable. Ça fait faire un peu de sport. Trop de choses disparaissent lors de la perte de focus (comme le start menu).
ALORS DONC:
[HKEY_CURRENT_USER\Control Panel\Desktop]
On doit ajouter 0x41 au premier (gauche) nombre de UserPreferencesMask pour avoir Full-x (pas testé) ou 0x01 pour focus-follows-mouse seulement. La valeur dans mon registre est alors devenu 9F 3E 07 80 12 00 00 00.
On pourrait mettre un délai par cette clef?: ActiveWndTrkTimeout.

ref: http://www.vistax64.com/vista-installation-setup/23538-focus-follows-mouse-possible-vista.html#post363137
http://www.jan-olof-lindqvist.se/windows7_and_vista/windows-7-and-vista-mouse-focus-on-window-without-raising-the-window/

Montrez vos paysages favoris

En cherchant de la documentation sur les joins en T-SQL, je suis tombé sur une page montrant du code LINQ pour faire un left join.

Premièrement, je fût choqué. C’est laid. Mais là n’est pas du tout le but de mon intervention. Quelques posts de blogues plus loin, l’auteur me demande si je désire une pause et m’offre de voir ses photos de voyages. Bof, non.

Cependant, le mec en question nous dit que son slideshow est fait avec un tool en forth pour interfacer du Google Street. WTF. Bref, il utilise un interpréteur forth codé en java pour envoyer des commandes de mouvements à google street pour finalement nous étourdir avec des 360 pans. J’en croyais pas mes yeux. C’est une idée très bizarre. Allez voir par vous-même: http://solidcoding.blogspot.com/2009/01/virtual-florida-keys-vacation-with.html. Solid code. C’est fou.

\begin{document}

J’ai été au meilleur dépanneur de Laval, À tout prix, plus précisément à Duvernay.

Il y a vraiment beaucoup de bière.

J’ai entre autres gouté à l’Étoile du Nord, caractérisée d’abord par une violente décharge de pression à l’ouverture. Je croyais qu’elle m’avait explosé dans les mains. Aucun mélange précieux n’a été perdu, à mon grand étonnement. Malgré tout, elle était bien bonne.

Ce post est d’abord un test, étant le premier.