Outils

Entries list

vendredi 13 novembre 2015

Follow-up to my current migration to Atom Editor

After my recent blog post announcing that I was transisionning from Sublime Text to Atom, I got a couple of nice surprises from the community that fix some of the annoyances I have with Atom or that will just make it better.

How to fix the keyboard shortcut to comment out a single line on a French keyboard

Just click on the  'Edit/Open your Keymap' menu item and put that line at the bottom:

'.platform-linux atom-text-editor': 'ctrl-:': 'editor:toggle-line-comments'

That will make the shortcut work along with the keyboard localization package installed for French (and Belgian French too). If you are on Windows, use the selector .platform-win32 (I don't know what the MacOS one is).

How to have a basic project mode like in Sublime text and be able to switch projects

Install the Project Manager package (thanks to Giorgio Maone, mozilla Add-on dev for the tip), it's roughly equivalent in functionnality to Sublime's built-in project manager and it seems good enough to me. One caveat is that switching from one project to another is a bit slow.

Support for .lang Mozilla syntax files in Atom

This is a nice gift from my colleague Francesco Lodolo, he made a syntax highlighter for the DotLang localization text format we use for mozilla.org and other sites for which we need fast translations for, this will be useful to me but also to Mozilla localizers that could want to use Atom to edit their translations, here is the package:

DotLang language support in Atom

And a screenshot to give you an idea of the end result.

langAtom.png
 
 

New Version of Atom 1.2 stable and 1.3beta released

This is always nice to have, I like new stuff :) Here is their blog post about it: Atom 1.2

Codeintel equivalent in Atom for PHP ?

There is a series of packages called php-integrator-* (base, autocomplete plus, tooltips, annotations...) that are supposedly providing the equivalent services as Codeintel  but after indexing a single project for an hour (bringing my computer to its knees), I couldn't make it work. On a couple of occasions I saw a nice tooltip for a method indexed, but I don't know how I triggered it and I don't get any autocompletion of classes while typing. I guess it's still pretty much alpha stuff  but hopefully that will work some day. Also I suspect it tried to index all of my dependencies in the vendor directory… I only need my own code to be indexed, not the external dependencies or a whole framework. The good news I guess is that something is developped and I might get that feature one day.

Atoum integration in Atom ?

Another nice surprise from the community, looks like Julien Bianchi, one of Atoum developers is working on a package to get Atoum in Atom following my request on Twitter:

Capture_d_ecran_2015-11-13_a_06.26.07.png

 

Many many thanks to him, I am always amazed at how nice the people in the Atoum project are with their users :)

UPDATE: here is the Atoum plugin and a video demoing it

Conclusion of the day

My transition is going well and progressing quickly, today I coded exclusively in Atom, I found some small bugs and needed to get my marks in the new environment  but it's not a revolution compared to Sublime and so far I felt rather productive. Most of the problems I have really are in the realm of polishing and finding where an option is set up or what a new shortcut is, that said, the experience is satisfying and I probably didn't get today more headaches than I had when I switched from Geany to Sublime a couple of years ago. So far, so good :)

 

mercredi 11 novembre 2015

Progressively moving from Sublime Text 3 to Atom

I am currently moving from Sublime Text (I am a happy paying customer) to Atom. I love Sublime but unfortunately, the project is dying and I want to invest in tools that are maintained in the long term.

Sublime 3 is still not release after years, the only developper completely disappeared for months and this is not the first time it happens, this is also not an open source project which means that the project will die if this only developper leaves. The support forum is filled with spam and basically, there is no roadmap nor any official commitment to pursue the project.

Of course, Sublime still works fine, but there are already reports of it getting crashy on newer version of Linux, the addons ecosystem is slowing down and in the meantime, there is Atom created by the vibrant GitHub community with regular releases and attractive features (mainly clearly copied from Sublime).

So far I hadn't switched because Atom was not ready for prime time, despite its 1.0 number. It was just not usable on my machine for any serious dev work.

That said, the recent 1.2beta builds did get improvements and many extensions are actually working around core bugs that were making Atom a no go until now. So today, I am trying to use Atom 50% of the time instead of 10% as before.

So as to get a working setup, I did have to install a few must have extensions that just make the app usable. First and foremost, I needed Atom to work on my X1 carbon which boasts a 2560*1440 resolution and well, hiDPI is not Chrome Forte, I couldn't even read the microscopic UI and using CSS to fix that was a pain and not scalable when you switch your screen to a external monitor or for a presentation with a different resolution, one point for Sublime which just respects my OS DPI settings. Fortunately, this extension fixes it all:

HiDPI

The second thing I needed was decent speed, it's still lagging behind Sublime but the recent Atom builds over the summer did make a significant effort in that respect and the boot up time is now acceptable for my daily use.

The third problem which is probably still a blocker for me is that Atom basically sucks at managing non-US Qwerty keyboards, like seriously, it's bad. Most of the shortcuts didn't work on my French keyboard and this is the same problem for most keyboards in the world. Again this seems to be a Chrome engine limitation according to Github Issues and it should be fixed upstream in a few versions of Chrome from now. In the meantime, this package is an acceptable workaround that makes many non-US keyboards work more or less with Atom:

Keyboard Localization

There is one big caveat and one of my day to day blockers, I can't comment out a single line from a keyboard shortcut, if that simple bug were fixed in the package or Atom, I would certainly use it 75% of the time and not 50%.

In terms of UI and color scheme, it took me some time to find something agreable to the eyes (On Sublime, I tended to like Cobalt color scheme) but Atom Light for the UI and Code Dark for color scheme are rather agreable. Of course I am a PHP developper, so my color scheme tends towards having clear syntax in this language. The 1.2beta builds also stopped opening context menu in silly locations on my screen instead of below my cursor, another pain point gone.

The Zen and minimap extensions are just must haves for Sublime defectors like me:

Other extensions I use a lot are available:

In terms of PHP specific extensions, I found several equivalents to what I use in Sublime:

There are other PHP extensions I installed but didn't have much chance with them yet, some require configuration files, others don't seem to work or conflict with the keyboard shortcuts (stuff like php-cs-fixer).

The one extension I really miss from Sublime is Codeintel that autocompletes method names and gives tootips explaining methods from the data extracted from Dockblocks in classes. I really wish this will be ported some day or that an equivalent feature will be created.

I also need to see how to launch simple scripts on saving files, to launch Atoum unit tests for example, hopefully somebody will hack it and I won't have to dig into doing it myself ;)

On the plus side for Atom, Git/GitHub integration in the UI is obviously out of the box, I didn't have to install any extension for that. The UI is also improving regularly and just more pleasing to the eyes than Sublime's, which is a bit too geeky to my taste. There is a real preference panel where you can manage your extensions and many interesting small features for which you don't have to edit configuration files like in Sublime (seriously, setting your font size in a JSON file is not user friendly).

It does have its share of bugs though, for example color syntaxing seems to choke on very large files (like 2MB) and everything is displayed as text (not cool for XML or long PHP arrays for example). There are also sometimes lock ups of the UI, often when I switch to preferences.

But all in all, the experience is getting better over time and I think that I found a credible alternative to Sublime for 2016. I know there are other options, I actually have PHPStorm for example which is super powerful, but just as with Eclipse, Netbeans and other heavy-weight IDEs, I have better things to do in my life than spend 3 months just learning the tool to be able to edit a couple of files and I don't buy the argument that this is a life investment ;)

The one aspect of Atom that I think is still basic is project management, I need something just as simple as Sublime but I may just have overlooked the right extension for that and anyway, it's such a popular request that I have no doubt it will be in core at some point.

That's it, if you haven't tried Atom in a while and like me are worried about Sublime Text future, maybe that post will make you want to give it a try again.

I still love Sublime, even in its beta form it is a solid and complete product and I would be happy to keep on paying for it and get updates, but unfortunately, its days seem to be doomed because all the eggs are in the same basket of a single developer that may have good reasons to have vanished, but I just need work done and there are enough bus factor people in my own job to afford having also this problem with the main tool I use on a daily basis. I'd be happy to be proven wrong and see a Sublime Renaissance, the only dev is obviously incredibly talented and deserves to make a living out of his work, I just think he got overwelmed by the incredible success he had with his product and just can't keep up. At some point, open source or prioritary software, you need a team to scale up and meet your customers satisfaction. I do hope that if he completely gives up on this project to pursue other adventures, he will open source Sublime Text and not let all this coding beauty disappear in the prioritary world limbos forever :)

PS: And yes, I prepared this blog post in Markdown syntax thanks to the built-in Markdown previewing pane in Atom ;)

jeudi 3 août 2006

HTML-Kit pour Linux

Sous Windows j'utilise depuis des années HTML-Kit comme éditeur de texte, il est très puissant, néanmoins assez simple d'utilisation et il a deux atouts géniaux : la pré-visualisation des pages dans gecko (et IE) directement dans l'interface et un client ftp graphique très bien intégré et très intuitif.

Il a deux gros défauts, le premier est que c'est un éditeur maintenant assez ancien, qui ne travaille pas en unicode, le second est qu'il ne marche pas sous Linux.

Paradoxalement, cet éditeur de texte est l'une des choses qui me manque le plus sous Linux qui a pourtant pléthore d'éditeurs, mais aucun vraiment bien foutu pour le html/css à mon avis.

La bonne nouvelle est qu'une nouvelle version réécrite (grace à Mono) de HTML-kit pour Linux est en développement, j'aurai donc de nouveau bientôt accès à mon éditeur de textes favoris ! Vu la popularité d'HTML-kit dans le monde Windows, ça peut aussi favoriser des conversions à Linux.

vendredi 16 juin 2006

spamplemousse

Je viens de passer à la version 0.1.5 de splamplemousse, j'avais la 0.1.4, je vais voir si ça améliore le filtrage.

Pour ceux qui se demandent pourquoi je n'ai pas installlé un captcha comme beaucoup d'utilisateurs de Dotclear récemment, en dehors du fait que je n'aime pas ça sur les autres blogs donc je n'ai pas envie de le mettre chez moi, c'est essentiellement parce que 95% du spam que je reçois arrive par les trackbacks et pas par les commentaires, ça ne serait donc pas efficace dans mon cas.

Dans l'idéal, il faudrait un système de mise en obsolescence des trackbacks pour le carnet qui permetrait de dire à Dotclear : "quand un billet à plus de un mois, ferme automatiquement les rétroliens".

MàJ: je viens d'installer SpamTimeout, complément de Spamplemousse, je verrai ce que ça donne. L'adresse de rétrolien est valable pendant 5mn puis est renouvellée aléatoirement, ce qui doit empêcher les spammeurs de les collecter dans des bases de données et de nous arroser régulièrement.

lundi 17 mai 2004

Changement d'adresse

Aujourd'hui Free a lancé un coup de semonce à ses utilisateurs, suppression de la voie descendante (download) en FTP, suppression de la fonction fopen(), suppression des includes de fichiers externes.

Devant le tollé de ses utilisateurs, ils ont provisoirement fait machine arrière, quand à moi j'ai décidé de ne pas prendre de risque et de tout migrer sur http://www.chevrel.org, les curieux y trouveront aussi mes ressources en espagnol (traduction de la FAQ, forums à la mozillazine, carnet web...).

Free n'a plus de gratuit que le nom, il est désormais impossible d'ouvrir des comptes si l'on n'est pas client, ils filtrent l'accès FTP par IP et l'offre d'hébergement est devenue une offre au rabais, dommage...

Mettez donc à jour vos liens ! J'ai mis des redirections sur les plus grandes sections mais pas sur tout.

mardi 11 mai 2004

Mise à jour des outils ;)

Ce billet est écrit sur mon nouveau portable centrino !! :) Il est joli, il a un bon écran et il n'est pas trop cher (c'est un Medion de chez Carrefour). Enfin bref, je suis content :) En plus ça me permettra de présenter Mozilla partout...

Mon nouveau portable

lundi 10 mai 2004

Blogger fait peau neuve avec Zeldman et Bowman !

Je suis sûr qu'ils en ont fait exprès juste pour m'embêter ! ;-) Deux jours après mon passage de Blogger à Dotclear, Blogger subit une mise à jour majeure. Commentaires, système de templates entièrement en CSS (écrits par des pointures comme Zeldman ou Bowman), interface qui marche enfin parfaitement sous Mozilla... Du tout bon.

Un exemple de mon ancien carnet sous Blogger : Carnet de pascal sous Blogger

vendredi 7 mai 2004

Histoire de migration

Pour ceux que ça pourrait intéresser, voici comment j'ai migré de Blogger à Dotclear .

Un outil abandonné de journal web, B2, permettait dimporter les archives Blogger. Dotclear permettait d'importer des archives B2. A priori ça semblait assez facile, détrompez-vous...

  • Installation de B2 dans un dossier toto à la racine de mon site
  • ouverture du fichier toto/blogger-2-b2.php et configuration de Blogger selon les instructions

Blogger exporte ses archives dans le dossier toto, une fois que c'est fait, on clique sur le bouton ok de B2 et l'importation commence. Problème, ça plante à partir de mes archives de juin 2003 avec une erreur me disant que j'ai une id en double. Après moults recherches, je découvre que les ID de Blogger sont tellement longues quelles sont tronquées lors de l'insertion dans la base !! Je modifie donc le champ ID de la table b2post en la faisant passer de INT(10) à BIGINT(30). Je vide la table et je recommence, ça marche, mon carnet Blogger est totalement importé dans B2 :-)

Deuxième étape, installation de Dotclear dernière version dans le dossier actuel de mon carnet, confifuration facile via le super assistant en ligne, je vais dans l'onglet outils et là Argghhh... l'outil d'import B2 n'est plus là !!! Ok, suppression de tous les fichiers Dotclear, suppression de toutes les tables Mysql Dotclear et je pars à la recherche de la version de Dotclear qui avait l'outil d'import. C'est la 1.0 RC2.

Installation de la 1.0RC2 dans mon carnet, import des données B2 et là même sanction que précédemment, je dois modifier INT(11) en BIGINT(30) pour pouvoir importer.

Ca y est, mes messages sont importés !!! Bon Maintenant, ménage dans les ID parceque je ne veux pas faire merder l'outil en changeant sa structure. Au début je pense tout simplement à renuméroter mes 274 messages un par un via phpmyadmin mais j'abandonne rapidemment, c'est trop long, trop chiant.

Je suis pas très bon en php/mysql mais je me dis que c'est faisable de changer tout dans une boucle, voici le code :

<?
pages = mysql_query( "SELECT * FROM  dc_post  ORDER BY  post_id ASC");

$nb_lignes = mysql_num_rows( $pages );
print "<h4>Il y a $nb_lignes pages</h4>
";
$increment=1;
while ($une_ligne = mysql_fetch_array( $pages))

{

         mysql_query("UPDATE dc_post SET post_id='$increment' WHERE post_id="$une_lignepost_id");
        $increment++;

}

?>

(edit : la syntaxe wiki a changé mon code php en lien, il faut lire WHERE post_id='$une_ligne CROCHET OUVRANT post_id CROCHET FERMANT ");

Nouveau problème, le champ id étant sur autoincrement, il est déjà à la limite maximale possible, en d'autres termes, si vous avez 50 messages, le prochain ne sera pas le 51 mais le 2147483647, limite maximale pour un int(11) atteinte lors de l'importation des ID à rallonge de Blogger. Il Faut donc depuis phpMyadmin faire une copie de la table dc_post sans cocher "autoincrement" puis intervertir la table dc_post originale et la table dc_post copiée et dont l'autoincrement est réinitialisé.

Dernière étape, supprimer tous les fichiers 1.0RC2 et mettre les fichiers de la 1.2beta sur le serveur, lancer l'installation qui proposera la mise à jour.

Voilà, je vous ai épargné tous les processus d'essai/erreur qui m'ont permis de faire la migration, vous avez le produit fini, bande de veinards... ;-)

Propulsé par Dotclear 1.2 beta !!

J'y ai mis quelques heures, mais ça ya est ! Mon Carnet passe de Blogger à Dotclear dernière version. Je détaillerai une autre fois comment j'ai fait migrer les archives de blogger ;-)

Le système de thèmes est assez souple, j'ai mis deux heures à me faire un modèle assez proche de mon ancien look. Aux nouveautés pour les utilisateurs pour ceux qui ne connaîtraient pas dotclear :

  • la possibilité d'ajouter des commentaires !
  • un moteur de recherche interne
  • du RSS, de l'ATOM, des rétroliens
  • une gestion des archives mieux foutue

De mon côté, c'est sans commune mesure, Blogger est tellement peu maniable (et déconne avec les dernières versions de Mozilla) qu'écrire un billet ressemblait à un parcours du combattant. Attendez-vous donc à plus de messages sur mon carnet dorénavant ;-)

L'ergonomie de Dotclear est tout simplement étonnante ! Bravo Olivier !

mardi 2 mars 2004

Virus : Protégez-vous !

Je reçois une quantité impressionante de virus, et après des wagons de MyDoom, depuis ce matin ce sont des brouettées de NetSky.d qui arrivent dans mes boîtes à lettres alors un peu de pub pour les antivirus ne peut pas faire de mal. Quelques évidences tout d'abord. :

  • Un antivirus dont le fichier de signatures n'est pas mis à jour (au moins une fois par semaine, tous les jours de préférence) ne sert à rien
  • Un antivirus qui n'est pas activé ça ne sert pas à grand chose non plus
  • Un firewall est un outil indispensable quand on a une connexion permanente à internet
  • Tous ceux qui disent "je n'ai jamais eu d'antivirus ni de firewall et pourtant je n'ai jamais eu de virus " sont des crétins, dans 90% des cas leurs machines sont des nids à virus, dailleurs ce sont les mêmes qui disent que windows XP n'est pas stable et qui passent leur temps à reformater et réinstaller leur système, forcément, leur système est vérolé jursqu'à l'os.

Voilà, maintenant que j'ai versé ma bile, quelques outils :

  • Antivirus gratuit : antivir
  • Antivirus spécialisé pour MyDoom : mydoom
  • Antivirus spécialisé pour NetSky : netsky

Je rappelle que contrairement à outlook express, les clients courrier Mozilla (Mozilla Mail et Mozilla Thunderbird) sont insensibles aux virus reçus, je vous conseille donc de les utiliser. Ah, un dernier point, vous avez sûrement de la famille, des amis qui n'y connaissent rien en informatique, installez leur un antivirus d'urgence !! Merci.