Ruby France, Silicon Sentier et AF83 ont le plaisir de vous annoncer l’organisation du premier RailsCamp (BarCamp/DevCamp dédié à Ruby on Rails) parisien. Il aura
lieu le samedi 17 mai 2008 dans le cadre convivial de la Cantine, Paris, France.
Le thème de cette non-conférence est bien sûr Ruby on Rails, mais aussi des sujets afférents : Capistrano, Mongrel, Prototype, Script.aculo.us…
L’événement est gratuit et ouvert à tous, des experts Rails aux débutants. Il suffit de s’inscrire et toutes les explications complémentaires sont lÃ
N’oubliez pas que vous pouvez participer en proposant des présentations, en prenant part aux ateliers / sessions de développement, en nous faisant des suggestions, en devenant sponsor !
Posted in planet on March 31st, 2008 | Comments Off
Ruby France, Silicon Sentier et AF83 ont le plaisir de vous annoncer l’organisation du premier RailsCamp (BarCamp/DevCamp dédié à Ruby on Rails) parisien. Il aura
lieu le samedi 17 mai 2008 dans le cadre convivial de la Cantine, Paris, France.
Le thème de cette non-conférence est bien sûr Ruby on Rails, mais aussi des sujets afférents : Capistrano, Mongrel, Prototype, Script.aculo.us…
L’événement est gratuit et ouvert à tous, des experts Rails aux débutants. Il suffit de s’inscrire et toutes les explications complémentaires sont lÃ
N’oubliez pas que vous pouvez participer en proposant des présentations, en prenant part aux ateliers / sessions de développement, en nous faisant des suggestions, en devenant sponsor !
Posted in planet on March 31st, 2008 | Comments Off
Je devrais très bientôt (ce soir ?) de mettre à disposition la version 0.2.0 de bivouac.
Il s’agit d’une version majeur dans laquelle le générateur a été réécrit en grande partie. Ceci afin non seulement d’améliorer le code, mais également de permettre le support des générateurs dans les plugins. Je profite donc pour déplacer le générateur scaffold et le proposer comme nouveau plugin.
Le plugin iUI’s Tent, permettant de créer des applications pour iPhone, passe en version alpha-2. Il est encore loin d’être fonctionnel, mais donne déjà une bonne vision de ses futures possibilités.
La branche 0.2.x ouvre la voie vers la première version stable. En attendant, il reste pas mal de choses à faire :
- Réorganisation de certaines classes de façon à faciliter la création de plugins.
- Ajout du générateur mailer.
- Support des WebServices.
- Stabilisation des plugins iUI’s Tent et Scaffold’s Tent.
- Modification du script plugin afin de support la récupération via http (en plus de svn)
- Documentation…
Posted in planet on March 31st, 2008 | Comments Off
Posted in planet on March 31st, 2008 | Comments Off
Les versions s’enchaînent… Dans celle-ci, j’ai supprimé tooltip pour le rétrograder au rang de plugin. Ceci est possible grâce au support des tâches rake dans les plugins.
Vous trouverez également dans le repository une pre-version du plugin iUI.
Pour utiliser le plugin tooltip :
$ bivouac test_tooltip
create /Users/greg/temp/test_tooltip
…
create /Users/greg/temp/test_tooltip/app/controllers/index.rb
$ ruby script/plugin install tooltip
A tooltip/LICENCE
A tooltip/init.rb
A tooltip/tasks
A tooltip/tasks/tooltip.rake
A tooltip/INSTALL
A tooltip/lib
A tooltip/lib/tooltip
A tooltip/lib/tooltip/view_helpers.rb
A tooltip/copy_on_install
A tooltip/copy_on_install/public
A tooltip/copy_on_install/public/javascripts
A tooltip/copy_on_install/public/javascripts/tooltip.js
A tooltip/README
Checked out revision 31.
$ rake plugin:tooltip:install
(in /Users/greg/temp/test_tooltip)
Install /Users/greg/temp/test_tooltip/public/javascripts/tooltip.js
$ ruby script/generate controller tooltip
create /Users/greg/temp/test_tooltip/app/controllers/tooltip.rb
create /Users/greg/temp/test_tooltip/app/views/tooltip.rb
create /Users/greg/temp/test_tooltip/test/test_tooltip.rb
Puis, modifiez app/views/tooltip.rb comme ceci :
-
module Ttt::Views
-
def testtt
-
html do
-
head do
-
javascript_include_tag :defaults
-
javascript_include_tag "tooltip"
-
end
-
body do
-
div( :id => "tooltip_me" ) do
-
"Hello World"
-
end
-
tooltip( "i_m_the_tooltip", "tooltip_me" ) do
-
"Content of the tooltip"
-
end
-
end
-
end
-
end
-
end
Posted in planet on March 24th, 2008 | Comments Off
Vu sur le blog de Seesmic la possibilité de suivre par un bot Jabber des évènements sur des contenus ou des utilisateurs. Le bot permet de tracker du texte ou des vidéos de la même manière que le bot Jabber de Twitter.
Même si Jabber / Gtalk n’est pas encore l’IM le plus usité sur le Net il n’en reste pas moins que c’est celui le plus implémenté grâce au standard ouvert qu’est XMPP. Sachant que les messageries instantanées sont au moins, sinon plus, autant employées qu’un navigateur web je pense que l’implémentation de quelques XEP tel que la XEP-0071: XHTML-IM qui permet d’envoyer au client du texte riche au format XHTML, comme le fait Gajim, pourrait aider à populariser Jabber. Les wallpapers animés dans le texte c’est le minimum syndical il parait
Posted in planet on March 24th, 2008 | Comments Off
La version 0.1.5 de bivouac est disponible. Au programme, le passage à la version 1.6.0.2 de prototype et à la version 1.8.1 de Script.aculo.us. J’en ai profité pour ajouter un nouveau helper sound. Voici un petit bout de code (directement inspiré des exemples de Script.aculo.us) que vous pourrez retrouver dans bivouac_sample :
module BivouacSample::Views
def sound
html do
head do
javascript_include_tag :defaults
end
body do
h1 "Sound"
a "play sound (parallel)", :href => "#", :onclick => play_sound_js( "sound/sword.mp3" ); br
a "play sound (overwrite)", :href => "#", :onclick => play_sound_js( "sound/sword.mp3", :replace => true ); br
a "Mute", :href => "#", :onclick => disable_sound_js
a "Enable sounds", :href => "#", :onclick => enable_sound_js
end
end
end
end
Posted in planet on March 23rd, 2008 | Comments Off
Mon DSL commence à prendre ses formes maintenant que j’ai résolu mes petits problèmes. Il ne m’en reste qu’un sur lequel je reviendrais plus tard (quand j’aurais fait une première release). Mon premier exemple est un navigateur :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Qt.app do
window :main do
options :title => "Safari 10.2"
def browser
@browser ||= web_view
end
hbox do
field = line_edit
push_button "Go" do
browser.load(Qt::QUrl.new(field.text))
end
end
browser.load(Qt::QUrl.new('http://google.fr'))
end
end |
Qt.app englobe toute l’application (pour l’instant tout doit être dans un seul fichier mais je changerais ça). On définit à l’intérieur autant d’objets window que l’on veut et on a une méthode open pour afficher ces fenêtres. Au lancement de l’application Qt.app charge la fenêtre main si elle existe, donc pas besoin de le faire à la main.
A l’intérieur de la fenêtre on définit les options : le titre, les dimensions… Il y a aussi la gestion des layouts HBox et VBox, les autres viendront après. Le push_button accepte un bloc optionnel qui gère l’évènement pressed (le clicked avec JRuby bug) et enfin le browser avec WebKit. Pour les objets Qt autres que les widgets on peut les appeler avec le namespace Qt.
Certaines choses pourraient encore changer, mais je trouve ça déjà plutôt bien. J’ai aussi testé avec plusieurs fenêtres et c’est vraiment le top. Créer une application aussi simplement que Shoes mais avec les fontionnalités de Qt, c’est génial !
Posted in planet on March 23rd, 2008 | Comments Off
Un des problèmes rencontrés avec Qt Jambi utilisé avec JRuby est une incompatibilité au niveau de la gestion des évènements (le système de signaux et de slots en Qt). Vous pouvez trouver plus d’informations de ce système sur la documentation de Qt Jambi
Il existait déjà une petite extension pour palier à ce problème pour Jython, je l’ai donc reprise et adapatée pour JRuby. La petite différence avec Ruby ce sont les blocs, j’ai donc rajouté à cette petite extension un support des blocs. Petit exemple rapide avec un simple bouton qui quitte l’application quand on le clique :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
include Java
module Qt
include_package 'com.trolltech.extensions.jruby'
import 'com.trolltech.qt.gui.QApplication'
import 'com.trolltech.qt.gui.QPushButton'
def self.event(*args, &block)
block.call(*args) if block_given?
end
end
Qt::QApplication.new(ARGV.to_java(:string))
btn = Qt::QPushButton.new "My Button"
Qt::Signals.connect(btn.clicked, Qt.method('event'), Proc.new {
Qt::QApplication.quit
})
btn.show
Qt::QApplication.exec |
Sommairement, j’ai écrit une classe Signals avec une méthode connect qui prend en premier argument l’évènement, le signal, et en deuxième argument la méthode à éxécuter, le slot (sous la forme MyObject.method('methode_a_executer')). Le bloc est optionnel et s’il est présent, va être ajouté à la méthode à exécuter. Ce que j’ai fait dans l’exemple est une méthode générique qui va récupérer le bloc et l’appeler. Au clic du bouton, le bloc sera donc appelé.
Via le DSL que je suis en train de développer, ce sera beaucoup plus simple. Il suffira d’appeler le signal et de lui passer le bloc :
1
2
3
4
5
6
|
Qt.application do
btn = push_button "My Button"
btn.clicked do
app.quit
end
end |
On sent plus le Ruby déjà . Je mettrais bientôt à disposition cette extension avec quelques exemples (celui de la documentation de Qt Jambi, celui-là et encore d’autres), mais j’aimerais bien finir une première version de mon DSL avant.
Posted in planet on March 23rd, 2008 | Comments Off
Depuis quelque temps, j'ai commencé à utiliser yoolink pour remplacer del.icio.us. Yoolink est exactement comme del.icio.us dans son concept. Mais il a une interface beaucoup plus sympathique et avec des nouvelles fonctionnalités plus interressante. J'utilisais sur ce blog le plugin del.icio.us pour afficher les derniers bookmarks que j'ai ajouté sur del.icio.us. Mais n'utilisant plus ce service et utilisant yoolink à la place, j'ai décidé d'adapter le plugin del.icio.us pour yoolink.
Voici comment vous pouvez l'installer :
- Récupérer le plugin en le téléchargeant sur Github : Yoolink-sidebar-0.1.0
- Copier le contenu du plugin dans le dossier /vendor/plugins
- Redémarrer Typo
- Dans l'administration, vous pouvez désormais placé le plugin yoolink.
-
Configurer le plugin yoolink :
- Login : indiquez votre login yoolink
- items limit : indiquez le nombre de bookmark afficher par le plugin
- groups link by days : Groupez les bookmarks par date avec celle-ci d'afficher
- Allow links in description : Permettre les hyperliens dans les descriptions des bookmark. Par défaut, ils sont désactivés
Au niveau des CSS, le plugin est contenu dans une balise div avec comme id "yoolink". De base, c'est celle utilisé par votre thème.
Posted in planet on March 23rd, 2008 | Comments Off