September 2008
  Sun Mon Tue Wed Thu Fri Sat  
    1 2 3 4 5 6  
  7 8 9 10 11 12 13  
  14 15 16 17 18 19 20  
  21 22 23 24 25 26 27  
  28 29 30          

Archives

September 2009 (1)
July 2009 (2)
June 2009 (1)
March 2009 (3)
February 2009 (3)
January 2009 (3)
December 2008 (1)
November 2008 (1)
October 2008 (2)
September 2008 (7)
July 2008 (5)
June 2008 (1)
May 2008 (3)
April 2008 (4)
March 2008 (3)
February 2008 (3)
January 2008 (1)

September 8, 2008

My customized Firefox.

I've been using Firefox since a friend of mine (special thanks to Legueux) IM me "Try it, it's unbelievably better than IE" (with an IMed style). I start extending the Mozilla browser at the same time. It's, IMHO, the greatest strength of Firefox when compared to other browser. Extensions are incredibly compatible with each other, there are very few collisions compared to the number of extension that exists. My Firefox may be over-extended, but it does exactly what I want (except for a very few actions).

In the first place it's important to understand my goals when extending the Fox. I have a widescreen laptop and I'm not a big fan of keyboard shortcuts. This mean no middle-click, a desperately wide unused screen space and special drag and drop behavior. I've always been fitting my software right for my hardware.

Just look at the layout of my Firefox on my Ipernity account. There are 8 screen captures presenting different aspects of my browsing experiment.

Let's take a look at extension list (sorted by the arbitrary alphabet) with comments :
Adblock Plus is very helpful for taking all that flashy crap out of the browsing way. Creating advertising filters is easy and the exporting/importing tools are fine. It's a well known extension so I won't carry on the description.
Adblock Plus: Element Hiding Helper completes the first extension with help on creating filters for DOM elements. It works better on structured sites with serious webmastering.
All-in-One Sidebar brings major changes to the browser. the main feature is making "download window", "extension window", "page's information window" and the such open in the sidebar. When used in combination with other extension it brings a great browsing power. It also enhances everything that load in the sidebar (eg : you don't need any "extension manager" like this one) and makes sidebar show/hide really easy. If you want a one-window browser this is what you need.
Boost for Facebook considering the time <s>wasted</s> spent on Facebook... With a few good tricks really helping, it's worthy only for addicts but it's as addictive as the original service !
Cache Viewer list all your cache entries, support filtering, image preview and easy download. The extension becomes handy when crawling audioblogs (but it doesn't beat Songbird for this purpose) and flogs.
Cookie Button changes the cookie policy for the current site in two clicks : one to open the policy menu, one to choose. That simple... It does exactly what it's supposed to, nothing more, nothing less.
Customize Google considering the time spent on Google... The sticky-google-preferences (by modifying searchs' URL load a set number of result in a set language with a set interface language) feature and the WayBackMachine hack (adds link to see the cache of the page on google searches) are great.
Download Helper is deactivated. Download all that .flv content easily. For Youtube addicts it's a great saving tool, but for me it's not needed on a day to day basis.
DownThemAll! is deactivated, but I reactivate it from time to time when needed. It download every linked file (except .htm, .html, .js, etc.) on a page. The extension supports simultaneous downloads and filtering. Very handy for downloading every file from a FTP folder. I was once told that it was the perfect tool for warez leechers, but I never tried it this way.
FEBE comes as the most powerful recovering extensions. It makes your "customized" firefox installation a breeze. It backs-up every .xpi, preference file and the such along with whatever you want it to back-up wherever you want it to back up. It can also recover previous back-ups. A must-have for every power extender !
Firefm is great when it comes to make your computer a smart radio. It guesses right when using similar artist radio station. There are some bugs with using your last.fm profil data but the biggest issue is it takes way too much screen space. A dropdown button would be enough, I don't need a toolbar !
FireFTP
is deactivated and reactivated when needed. It's a simple FTP client with drag and drop capabilities, password remembering. It can seems basic but simplicity is his strength !
Gmail Space can turn your 6GB+ Gmail account into a storage place. Upload your files to a service that as almost no down-time. File size are limited (does have file cut and paste built in), but it is still great.
Googlepedia shows the wikipedia page corresponding to your google search right into the result page. This is typically a widescreen extension. It's slow but still worthy. The only enhancement I would ask is a multi-language integration (it searches only on the google interface language).
GooglePreview makes Exalead useless. Try Exalead ! You'll notice (and probably enjoy) the sites thumbnails beside the results. GooglePreview bring this power to Google with an amazing speed. It helps a lot (and should be a Google option).
Greasemonkey is deactivated because I didn't find any script worthy enough, and I can't write Javascript (yet). I'm waiting for the script that will change that and looking forward to code my own.
handytag really handy when tagging your bookmarks. One can even let the tagging occur by itself (with the risk of having too many tags) or simply quicken the manual tagging.
LastTab this one is kind of neutral. It has some great features, but has some serious issues in the option window. In order to get the visual part, changes to the CTRL+TAB behavior must be applied. CTRL+TAB pops-up a tab-list window with tab preview, tab list and mouse-over selection. But it sorts tabs by most recently used. It's not bad, just "compulsory". It also offers some other tab enhancement, but I don't use them.
Link Alert adds a small icon to warn you about the nature of the link you mouse-over. It also warn you about new window links. Considering how small is my status bar free space, It's great.
MultiSidebar is perfect. It allows you to open a maximum of four (left, right, top and bottom) sidebars simultaneously. Combined with Tab Sidebar and All-in-One Sidebar it's really great. It will be explained in the "sidebar section".
Operator is kind of experimental for now. It seriously lacks of customization capabilities, but should get really better quickly. It detects microformats and propose corresponding actions (looking an adress on googlemaps, adding an event to a web based calendar...). It will be more and more useful, as webmasters start using semantic web tools.
Personal Menu reallocate vertical space by deleting the menu bar. It replaces it by a very customizable drop down button. You can make your menu as you want it to be (eg : I placed "Option", "Recently closed tabs" and "Restart" as top entries, I removed the "For IE users" and I add a "extension" sub menu).
Scrapbook stores every page (and even site with the "in depth capture") on your hard drive. It's a great add-on very useful to get a site available off-line. I saved a bunch of programming tutorials for languages I use and the local search engine became an essential tool. It also support pages edition (notes, highlights...).
Tab History should be a firefox default. With this installed, new tabs inherit history. It's kind of an obvious feature for tab based browsing.
Tab Sidebar is TEH ONE ! It makes the tab bar vertical and populate it with (optionally up to date) thumbnails. It also add navigation buttons (Stop, History, Reload) on the page preview. Browsing without it became painful because of all I-change-size, I-have-a-short-and-generic-name (like all these "faceboo..." and "Gmai..." tabs you can't recognize from one another) and you-must-click-on-me-to-refresh-me tabs.
Tabs Open Relative should be a firefox default (or a least an option). It reorder tabs as you open them. Having three tabs open, say A, B and C and clicking on links X and Y from within tab A makes your tab bar (or sidebar) looks like A, X, Y, B, C. Related tabs being close to each other, it helps structure your tab browsing. You won't have to scroll your whole tab bar to get to the page you need.
United States English Dictionnary complete the French localized firefox I run.
userChrome.js
became essential to my browsing since firefox 3 is out. Mozilla decided that I would have to press ALT+ENTER in order to get typed URL to open in a new tab. The extension is similar to Greasemonkey except that it use chrome scripts. It runs a .js file located in your profile and apply it to the chrome of your browser. As I installed userChrome.js, I plugged my first script in it and it did make typed URL opens in a new tab ! I then found and installed other scripts (bookmarks open in a new tab ; allow smart bookmarks in the searchbar) and I really think that this add-on is useful !
WikiLook pops up word definition from wikitionnary on SHIFT+MOUSEOVER. It works in any language (haven't tested them all) and has a great speed.


A little explanation on my sidebar system would be good.
The first extension I installed was "Tab Sidebar" and I can't browse without it. Navigation buttons on thumbnails really changed my browsing, and I can't go back to the old way. I then had a problem with the tabbar reappearing (and stretching page content, taking precious vertical space) each and every time an other sidebar was opened (Bookmarks, History...). I discovered All-in-One Sidebar and MultiSidebar simultaneously and it really helped me out.

It now works very fine : I have a "stable" Tab Sidebar on the right of the screen, and a multitask sidebar on the left.
The right sidebar can be hidden or closed (only in the latter case is the normal tabbar opened)
The left sidebar can load various content : Bookmarks, Browsing History, Download Window, Extension Manager, Page's Information, Source Code, any web page, Error Console, Operator Sidebar, Scrapbook Sidebar.
Buttons have been placed all over the GUI with a special care for space usage and mouse moves optimization (eg : buttons that open a left sidebar are on the left ; personal bar is on the right (next to the Tab Sidebar))

Other extensions I like but I don't use :
Tree style tab : it's not compatible with Tab Sidebar so... I would have adopted it but I can't.
Multiple Tab Handeler : same thing...
GroovyNotes : I don't know that many geeks and it's a "social" extension so...


What I don't like about my Firefox's behavior.
The main issue is it doesn't load multiple bookmarks in a new tab. For normal bookmarks it doesn't behave that way thanks to a userChrome.js script. I'll fix the script as soon as I'm able to write javascript.
There is also something that I would like to see in the next version of Firefox (or in an extension) : multi-arguments smart bookmarks. For now, smart bookmarks only have one argument. But I want a smart bookmark that translates words from a language to another. I created several bookmarks referring to the google translate tool but it would be great to have something like "translate fr en traduction" leading to the same page. Maybe an Ubiquitous command would be easier to code !



Firefox can really change your browsing ; and your browsing can change your Firefox.

Published at 15:45 / 0 comments / 170 visits
This post is public

September 9, 2008

Athéisme ?

Ayant récemment terminé la lecture de "La main gauche de la nuit" (U. Le Guin) et l'ayant beaucoup apprécier, je me suis engagé dans quelques réflexions relatives aux sujets abordés. Avant de parler de ses réflexions, abordons le contenu et la forme de ce livre.

"La main gauche de la nuit" ("The left hand of darkness" en V.O.) est un livre de science fiction très particulier. Les sciences fictives utilisés par l'auteur ne sont pas classique dans ce genre littéraire. Usuellement, on observe un étalage de physique/chimie/astrophysique plus ou moins hypothétique. Dans cet œuvre, une part léonine est faite aux sciences sociales et politiques. Les seules "inventions" techniques remarquables sont "la communication inter-sidérale instantanée" et "l'hibernation". Rien de bien extravagant pour le genre. On peut même sourire à la lecture de : "A une distance de soixante-douze années-lumière, quelqu'un était certainement en train de perforer fiévreusement la carte à introduire dans un ordinateur[...]". C'est comme dans les vieux Star-Wars, quand l'amiral de la flotte transmets aux ingénieurs de bord les ordres de Dark Vador et que ceux-ci pressent assez aléatoirement des boutons lumineux disposés recouvrant d'immenses murs. L'informatique ne sent sort jamais bien en Science Fiction (sauf peut-être dans Blade Runner (version cinématographique uniquement)).

Revenons maintenant au sujet de départ de ce millet. Le livre présente à un moment de l'aventure une discussion entre le narrateur (messager du "gouvernement" interplanétaire) et un Devin de Géthen (planète sur laquelle se déroule l'histoire) dont l'idée principale est que croire en Dieu ou croire à l'inexistence de dieu (majuscule omise intentionnellement) c'est la même chose. Idée étrange sans un minimum d'explication !

En fait "croire en l'existence de Dieu" c'est donner fois à quelque chose qui ne peut pas être prouvé (et dont on peut prouver qu'elle ne peut pas être prouver). On peut remplacer "existence" par "inexistence" (et enlever une majuscule) sans changer la fausseté de la phrase. Si on replace ce texte dans son contexte géographique d'écriture (USA) on comprend mieux le raisonnement de l'auteur. En effet le concept de laïcité est très différent d'un coté et de l'autre de l'Atlantique (ce qui pousse parfois certains détracteurs à assimilés les USA à une théocratie). En fait la laïcité américaine consiste simplement à traiter toute les religions avec égalité. On peut par exemple remplacer la bible du tribunal ("levez la main droite et jurez de dire la vérité toute la vérité, rien que la vérité") (qui n'est pas utilisée dans tout les états) par n'importe quel texte sacré de son choix. Et dans ce contexte, les athées sont traités comme des membres de la religion "athéisme" (il peuvent jurer sur la déclaration d'indépendance si ça leur plait). Au fond, c'est reconnaitre à chacun (croyant ou athée) ses particularités (et ses différences).

Oui MAIS (car le "mais" est d'importance) on peut aussi voir l'athéisme d'une façon toute différente et lui redonner ainsi ce dont on vient juste de le priver.
On peut, comme le devin de l'histoire, dire "Noussouf" (expression géthenienne signifiant "ça ne fait rien", "c'est pas grave", "tant pis", "peu importe", "osef"... mais que l'auteur fait le choix de ne pas "traduire" explicitement). En effet, pourquoi se torturer à propos d'une question dont on peut prouver l'indécidabilité ? Pourquoi chercher à répondre quand la réponse est de toute façon sans fondement ? Pourquoi même poser la question ? L'athéisme se perçoit alors comme un refus catégorique de l'absurde.
On peut également réduire (c'est le cas de le dire) l'athéisme à une application du rasoir d'Occam. L'"existence de Dieu" n'est pas nécessaire pour expliquer ni le pourquoi, ni le comment du monde qui nous entoure. On peut progresser dans toute les sciences sans avoir besoin de l'hypothèse du divin. Si on n'a pas besoin de dieu, ne supposons pas "gratuitement" son inexistence. L'athéisme revêt un habit plus sérieux que dans la situation précédente.


En regardant bien, ça fait un bout de temps que je n'avais pas écrit un millet si sérieux. Et tout ça pour quoi ? "Accroissement de la complexité et de l'intensité du champ de la vie intellectuelle" (La main gauche de la nuit, U. Le Guin) ?

Published at 18:56 / 0 comments / 146 visits
This post is public

September 12, 2008

Séries

Bientôt la rentrée... Pas celle des classes (pour certains elle s'éloigne) mais celle des séries d'hiver.

CSI le 9 octobre, DH le 28 septembre, OTH il y a une semaine, Heroes le 22 septembre...

En attendant (ou pas) de pouvoir suivre les pérégrinations de Gilbert et compagnie, voici quelques séries qui ont égayé mon été (que la timidité du soleil rapprochait de l'automne). Les liens présentés listent des liens de streaming...

Weeds : les aventures d'une housewife américaine qui n'a pas grand chose de desperate. Vivant dans une gated-community, elle profite de la forte demande des habitants qui ne veulent pas se déplacer dans les quartiers pauvres (et noirs) pour chercher leur weed.

Skins : des jeunes anglais (avec l'accent !) qui traversent le lycée et son lot de tragédies/comédies/intérogations. Très plaisant dans le style inédit de la biographie collective et jouant très habilement la carte de l'identification du spectateur.

Dexter : un serial-killer qui travail comme BPA forensics pour la police de Miami, étonnant non ?

Joyeuse procrastination à tous !

Published at 11:15 / 0 comments / 122 visits
This post is public

September 17, 2008

Get a smarter browser.

Voici quelque temps maintenant que j'expérimente et que je modifie mon petit panda roux. Une des forces cachés (mais pas du coté obscure) de Firefox est incarnée par les "smart bookmarks". Que peut-on ajouter à des marque-pages ? Après tout ce sont seulement des raccourcis qui nous évitent de devoir mémoriser toutes ces adresses URL (qui sont elles même des moyens mnémotechniques nous évitant de devoir apprendre des adresses IP). Il y a quelques temps c'était vrai.



Un marque-page intelligent permet de gagner un petit peu de temps très souvent (globalement il fait donc gagner beaucoup de temps). Commençons avec un exemple assez facile et courant. Disons (pas seulement pour l'exercice) que j'aime bien regarder certaines séries en streaming. Il existe un site très utile pour les gnes comme moi :Sidereel. Pour chaque série, une collection de liens est présenté (exemple).

Un usage "normal" des marque-pages consisterait à marquer la page principale de Sidereel et à utiliser le moteur de recherche intégré à chaque fois ou bien à suffixer l'adresse URL afin de trouver la bonne série.

Un usage "raisonné" des marque-pages entrainerait la création d'un dossier de marque-pages nommé Sidereel contenant plusieurs marque-pages (un pour chaque série).

Un usage "intelligent" des marque-pages est de créer un marque page intelligent.

Pour cela :

1 - ouvrer votre barre latérale de marque-pages
2 - cliquez-droit sur votre zone de marque-pages
3 - choisissez "Nouveau marque-page..."
4 - dans le champ "emplacement" saisissez "www.sidereel.com/_search?searchQuery=%s"
5 - dans le champ "mot-clé" saisissez "stream" (ou bien le mot-clé de votre choix)
6 - dans le champ nom entrez ce qu'il vous plait.

Maintenant, supposez que l'on vous enjoigne à regarder Rome. Il vous suffit de placer votre curseur dans la barre d'URL (CTRL+L) et de taper "stream Rome". Pour "Skins" tapez "stream Skins" et pour "Weeds" tapez "stream Weeds".



Comment ça marche ?

On remarque que l'URL couvrant le champ "emplacement" contient l'étrange combinaison %s. Toute la magie tiens dans ces deux caractères. En fait Firefox remplace automatiquement "%s" par les mots qui suivent le mot-clé. Par exemple lors de la saisie de "stream One Tree Hill" l'URL chargée par Firefox est "www.sidereel.com/_search?searchQuery=One Tree Hill" qui correspond à la recherche de "One Tree Hill" sur Sidereel.



Qu'est ce qu'on peut faire d'autre avec des smart bookmarks ?

Les recherches c'est bien, mais ce n'est pas tout. Les smart bookmarks permettent bien d'autres choses. L'accès aux différentes pages d'un même site peut être accélérés. Par exemple on peut créer un marque page intelligent qui accélère votre navigation facebook : "www.new.facebook.com/%s.php" permet, associer au terme "home", d'obtenir votre "News Feed", au terme "profile" d'obtenir votre profile et au terme "photo" d'obtenir la page de l'application correspondante. De la même façon, vous avez peut-être remarqué que dans le premier exemple, l'action de "stream Weeds" conduisait à une page de résultat du moteur de recherche de Sidereel. En utilisant un marque-page intelligent sur "www.sidereel.com/%s" permet d'arriver directement à la page voulue (à condition d'éviter les fautes de frappe et d'adopter les mêmes conventions syntaxique que le site web).



Comment récupérer les adresse de recherche ?
Le plus simple est souvent de remplir le champ de recherche d'un mot déterminer (par exemple "test"), de repérer ce mot dans l'adresse obtenu et de le remplacer par %s...
Mais c'est parfois plus compliqué. En effet certains site redirige les résultats vers une page auto-générée ou vers la page de résultat exacte (exemple : http://www.sidereel.com/_search?searchQuery=Skins). Il faut alors user de malice : arrêter le chargement de la page avant la redirection, faire une fausse recherche (avec un mot sans aucune chance de résultat), trouver l'URL en demandant gentiment à Google...

Je ne vois toujours pas à quoi ça sert...
Il y a d'autres utilisations possibles aux marque-pages intelligent.
On peut automatiser certains paramètres de recherche dans certains moteurs (exemple : http://www.google.fr/search?num=100&safe=off&q=%s&btnG=Search permettra d'afficher 100 résultat sur la page à chaque fois)
utiliser des options de recherches avancées (exemple : http://www.google.fr/search?q=intitle%3A%22index+of%22+-inurl(html|htm|php)+%s&btnG=Search permet de chercher des FTP)
simuler un moteur de recherche pour n'importe quel site (exemple : http://www.google.fr/search?q=site%3Ahttp%3A%2F%2Flapin-blanc.net%2F+%s cherchera sur le site "lapin-blanc.net" par le moteur de google)
Et pour les hackers en herbe on peut aussi automatiser des ping, whois, tracert, lookup...

Si vous cherchez quelque chose de plus puissant,
vous pouvez tester Ubiquity. Certaines commandes sont assimilables à des smart bookmarks possédant plusieurs arguments. Par exemple : "translate this from japanese to german" (ici "this" est automatiquement remplacé par le texte couramment sélectionné) fait une traduction du japonais vers l'allemand. L'usage est très simple, mais la création de commande demande plus de maitrise de l'informatique que pour les simple marque-pages intelligents.


Tweak everything !

Published at 17:44 / 0 comments / 162 visits
This post is public

September 20, 2008

Instant noodles tweaks ou comment préparer une soupe instantanée...

Dans les rayons des supermarchés on trouve forcément des soupes instantanées (placez les nouilles et videz le sachet de poudre dans un bol, ajoutez de l'eau bouillante, couvrez, patientez 2 minutes, dégustez), ça devrait d'ailleurs être la différence entre une superette et un supermarché. Déjà fort plaisantes au goût (que l'on peut souvent choisir parmi "mushroom flavor", "chicken flavor", "beef flavor", "prawn flavor", "curry flavor", "crab flavor" et quelques autres) et à la vue (les emballages sino-américains souvent mal et parfois pas traduit) on peut améliorer ces soupes avec quelques épices et autres condiments.

En les rangeant par ordre d'étrangeté voici ceux que j'utilise :
curry
piment
sauce soja
tabasco
cannelle
miel
sucre
vinaigre balsamique
thé

Voila de quoi renouveler les "flavor" du rayon exotique de votre Franprix/Leader Price/Auchan/Attac/Casino/Leclerc/Géant/Marché Plus... (rayer les mentions inutiles)

Published at 13:38 / 0 comments / 177 visits
This post is public

September 27, 2008

Mi-math, mi-info...

Voilà comment ce passera mon année (estudiantine)... Partagée entre un M1 de math (Spécialité mathématiques, parcours "logique mathématique et fondements de l'informatique" (LMFI pour les intimes), avec comme choix d'UE "Logique de 1er ordre", "Logique et complexité" et "Algèbre") et une L3 d'info (Dispensé de certaines UE, il me reste "programmation système", "programmation fonctionnelle" et "programmation orientée objet").

Un emploi du temps tordu, des groupes de TD sélectionnés précautionneusement, des pauses rares (même entre 12H30 et 14H30), des cours géniaux, des cours nuls et un lundi étrangement vide. Et une variété de contenu qui pousse au grand écart mental.

Dans les cours géniaux, les maths tiennent le haut du pavé. Avec des UE choisies par goût (j'avais "Analyse", "Probabilités" et "Statistiques" comme alternatives), d'excellents profs, un effectif réduit...

Les cours d'informatiques sont plus hétérogènes :
Du très bon avec des cours de OCAML (officiellement "cours de programmation fonctionnelle") données par un membre du laboratoire PPS (l'élite de l'élite de la french touch informaticienne)
Du moyen avec des cours de JAVA (officiellement "cours de programmation orientée objet" (OOP pour les intimes)) qui démontrent avant tout les limites dues à la monoparadigmicité (oui oui, ça existe !) de ce langage destiné à produire du bytecode
Du très mauvais avec les cours de C (officiellement "cours de programmation système") sans commentaires !


"Et tout ça pour quoi ?" (Julien)
"Pour du schnaps !" (Étienne)

--Edit--

En regardant en arrière, les cours de C/"programmation réseau" étaient nettement supérieurs (du point de vue pédagogique et du point de vue du contenu) aux cours de JAVA (qui ne consistaient qu'en une succession de slides très mal formées (police variable, pas de structure commune, trop de contenu...)). Même si le C est bien plus agé et bien plus bas niveau que le JAVA, il n'a pas subit les transformations successives le faisant ressembler à... rien !

Published at 11:59 / 0 comments / 118 visits
This post is public

September 29, 2008

AutoHotKey for coders.

Thanks to Lifehacker.com website, I recently discovered AutoHotKey, a keyboard and mouse macro creator. It allows, by running small scripts, to automate some tasks, to create or change your keyboard shortcuts and more.

First thing first : HOWTO use AutoHotKey ?

Download it from the official web site ; install it ; create a new text file ; rename it with a ".ahk" extension. There, you have your first AutoHotKey script... Yes it's empty, but it's a script ! Continue the reading for a code example (or scroll down and stop wasting time correcting poor English and typos).

So far I use AHK (that's both AutoHotKey acronym and scripts extensions) for two purposes. The first thing I've done after downloading and installing was to change my CAPSLOCK behavior. Honestly, does anyone use it ? And if I really had to enter a long CAPITALIZED text I would use notepad++ command ! The previously mentioned useless key is now a shortcut launcher : CAPSLOCK+a launches Firefox ; CAPSLOCK+z launches Firefox (with special arguments) ; CAPSLOCK+e launches the explorer and so on. The script is still evolving and I'm not used to it yet, but I've never hit the CAPSLOCK button like I did last week.

The second script I've written was to simplify coding in my favorite language : OCAML (I'll will create Java, Python and C versions latter... maybe). But how could it be helping a coder ? An simple example is when you want to insert comments in your program you have to enter the starting sequence "(*" ("/*" in C and Java) type your human destined text and enter the closing sequence "*)" ("*/" in C and Java). With the ocaml.ahk script you can just hit the CAPSLOCK+c combination to have a full "(**)" as if you've typed it and guess what. Your caret is right in the middle, where you can right your comments. An other example is function declaration, CAPSLOCK+; create the function declaration frame and position your caret at the function name place.

Here's my script but beware, it's intended to be used for AZERTY (frenchy) keyboards with OCAML language. Well, to be honest ot's intended to show that AHK is cool, it's not a definitive version and will get more and more usefull.

; this is a script intended to empower productivity when coding in OCAML language

SetCapsLockState AlwaysOff
CapsLock & c::Send, (**){LEFT}{LEFT} ;create commentary field
CapsLock & 3::Send, ""{LEFT} ;create a pair of quote (or string field)
CapsLock & 4::Send, {{}{}}{LEFT} ;create {}
CapsLock & 5::Send, (){LEFT} ;create ()
CapsLock & 6::Send, {CTRLDOWN}{ALTDOWN}(){CTRLUP}{ALTUP}{LEFT} ;create []
;CapsLock & {LEFT}:: ;will jump to the previous (,[ or {
;CapsLock & {RIGHT}:: ;will jump to the next ), ] or }
CapsLock & i::Send, let{SPACE}{SPACE}={ENTER}{TAB}{ENTER}{BACKSPACE}in{UP}{UP}{END}{LEFT}{LEFT}
CapsLock & .::Send, let{SPACE}{SPACE}={ENTER}{TAB}{ENTER}{BACKSPACE}`;`;{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}
CapsLock & ENTER::Send, {ENTER}{TAB}

I think the Scheme (or every LISP based language) version would be even more power-full. It would, when well used, avoid parenthesis problems. In Java it'll simplify all the "public synchronized void whatever () {}" boring thing...

Updates will be posted as comments.

Published at 17:59 / 0 comments / 214 visits
This post is public

( 7 posts )

 

Català | Čeština nové | 中文 | Deutsch | English | Español | Esperanto | Ελληνικά | Français | Galego | Italiano | Nederlands | Português | More...