Recommend Me


Mardi 28 octobre 2008

Utiliser Mixr avec PHP

Classé dans : Mixr, PHP, Projets — greg @ 20:54

Je viens d’ajouter dans le repository de Mixr une classe cliente pour PHP.

Elle n’est pas encore aussi complète que la version Ruby, mais vous pouvez déjà en faire quelque chose :

  1. <?php
  2. require ‘mixr_client.php’;
  3.  
  4. $p = new MixrClient();
  5. echo $p->store( "k1", "v1" )."\n";
  6. echo $p->get( "k1" )."\n";
  7. echo $p->store( "k2", "v2" )."\n";
  8. print_r($p->to_hash());
  9. print_r($p->keys());
  10. print_r($p->values());
  11. echo $p->delete( "k2" )."\n";
  12. print_r($p->keys());
  13. print_r($p->values());
  14. $p->clear();
  15. if( $p->is_empty() == true ) {
  16.         echo "Mixr vide !\n";
  17. }
  18. ?>

Bon, je n’ai pas fait de PHP depuis des lustres… Si ça ce voit, n’hésitez pas à me le dire ;)

Bon, demain je vais faire du Java…

• • •

Lundi 27 octobre 2008

Wassup

Classé dans : Important, Tout et rien, Web — greg @ 14:27



• • •

Jeudi 23 octobre 2008

Mixr

Classé dans : Erlang, Mixr, Projets, Ruby — greg @ 0:41

Il n’y a pas que des désavantages à avoir des enfants qui boivent un biberon vers 2h du matin et d’autres qui collectionnent la gastro. En effet, cette soirée de veillée m’a permis de développer un nouveau petit projet : Mixr.

Mixr is a tiny memory object caching system

La partie serveur est écrite avec erlang (vous pourrez pas dire que je ne vous avais pas prévenu !). Coté client, le gem s’accompagne bien entendu d’une classe pour Ruby, mais je n’exclue pas, à la prochaine otite de vous proposer une classe pour PHP, Perl ou Python…

Bon…

sudo gem install mixr
• • •

Jeudi 16 octobre 2008

Tiny Tiny Erlang Web Server v0.2.0

Classé dans : Erlang, Projets, Web — greg @ 23:16

J’ai fait quelques modifications dans mon mini serveur HTTP.

En effet, il nécessite maintenant la création d’un fichier de configuration sur le format suivant :

{port, 9900}.
{rootdir, "/Users/greg/wwwroot"}.

Comme vous pouvez le voir, vous pouvez spécifier le port d’écoute du serveur et le DocumentRoot.

Le code est ici ou la.

Voici également un petit script pour démarrer facilement ce server :

  1. #!/usr/bin/env bash
  2. erlc rserver.erl
  3. erl -noshell -s rserver start -s init stop
• • •

Tiny Tiny Erlang Web Server

Classé dans : Erlang, Projets, Web — greg @ 0:42

Depuis quelques jours je m’amuse avec Erlang. Je vous livre mon “hello world”.

Ce n’est pas très beau, on peut certainement faire beaucoup mieux. Mais ça fait “Hello world” ;)

  1. -module(rserver).
  2. -author(’gregoire.lejeune@free.fr’).
  3. -compile(export_all).
  4.  
  5. start_server(Port) ->
  6.   {ok, ListenSocket} = gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}]),
  7.   io:format("** Server Started~n"),
  8.   loop(ListenSocket).
  9.  
  10. loop(ListenSocket) ->
  11.   case gen_tcp:accept(ListenSocket) of
  12.     {ok, Socket} ->
  13.       spawn(fun() ->
  14.         handle_connection(Socket)
  15.       end),
  16.       loop(ListenSocket);
  17.     {error, Reason} ->
  18.       io:format("Error: ~p~n", [Reason])
  19.   end.
  20.  
  21. handle_connection(Socket) ->
  22.   try communication(Socket)
  23.   catch
  24.     error:Reason ->
  25.       {gen_tcp:send(Socket, io_lib:format("Error: ~p~n", [Reason]))}
  26.   end,
  27.   ok = gen_tcp:close(Socket).
  28.  
  29. communication(Socket) ->
  30.   {ok, Binary} = gen_tcp:recv(Socket, 0),
  31.   % Do some stuff with Binary
  32.   {ok, [R|Z]} = regexp:split( binary_to_list(Binary), "\r\n" ),
  33.   {ok, [M,F,P]} = regexp:split( R, " " ),
  34.   case F =:= "/" of
  35.     true -> File = "index.html";
  36.     false -> {ok, File, _} = regexp:gsub(F, "^/", "")
  37.   end,
  38.   {WD, JJ, MD, AA, HH, MN, SS} = get_local_time(),
  39.   case file:read_file(File) of
  40.     {ok, Html} ->
  41.       gen_tcp:send(Socket, io_lib:format("HTTP/1.1 200 OK~nDate: ~s, ~p ~s ~p ~p:~p:~p GMT~nServer: Rserver/1.0.0~n~n~s", [WD, JJ, MD, AA, HH, MN, SS, binary_to_list(Html)]));
  42.     {error, _} ->
  43.       gen_tcp:send(Socket, io_lib:format("HTTP/1.1 404 Not Found~nDate: ~s, ~p ~s ~p ~p:~p:~p GMT~nServer: Rserver/1.0.0~n~n~s", [WD, JJ, MD, AA, HH, MN, SS, "<html><body>404 error</body></html>"]))
  44.   end.  
  45.  
  46. %%%%%%%%%%%%%%%%%%%%%%%%%%%
  47.  
  48. day(0) -> "Mon";
  49. day(1) -> "Tue";
  50. day(2) -> "Wed";
  51. day(3) -> "Thu";
  52. day(4) -> "Fri";
  53. day(5) -> "Sat";
  54. day(6) -> "Sun".
  55.  
  56. month(1) -> "Jan";
  57. month(2) -> "Feb";
  58. month(3) -> "Mar";
  59. month(4) -> "Apr";
  60. month(5) -> "May";
  61. month(6) -> "Jun";
  62. month(7) -> "Jul";
  63. month(8) -> "Aug";
  64. month(9) -> "Sep";
  65. month(10) -> "Oct";
  66. month(11) -> "Nov";
  67. month(12) -> "Dec".
  68.  
  69. get_local_time() ->
  70.   D = calendar:local_time(),
  71.   [{{AA,MM,JJ},{HH,MN,SS}}] = calendar:local_time_to_universal_time_dst(D),
  72.   WD = day(calendar:day_of_the_week(AA, MM, JJ)),
  73.   MD = month(MM),
  74.   {WD, JJ, MD, AA, HH, MN, SS}.
• • •

Mercredi 8 octobre 2008

L’argent dette

Classé dans : Important, Paslibre — greg @ 12:36



L’Argent Dette de Paul Grignon (Money as Debt FR) from Bankster on Vimeo.

• • •

Lundi 6 octobre 2008

T-Shirt

Classé dans : Important, Projets — greg @ 22:24



• • •

Dimanche 5 octobre 2008

API

Classé dans : Langage, Linux, People, Projets, libre — greg @ 22:12

“The userspace API you propose should however be taken out and shot, then buried with a stake through its heart, holy water in its mouth and its head cut off, at midnight in a pentacle at a crossroads in the presence of a priest”

Alan Cox (http://article.gmane.org/gmane.linux.kernel.malware/513)

• • •
Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS