Quand une boite devient un peu grosse, il peut arriver qu'elle choppe des tendance schizophréniques. Par exemple, si on fouille bien dans le code source de Go, on trouve ça :
C:
-
// Is it a broken browser?
-
var msg string;
-
switch agent := req.UserAgent; {
-
case strings.Index(agent, "MSIE")>= 0:
-
msg = "Internet Explorer"
-
case strings.Index(agent, "Chrome/")>= 0:
-
msg = "Chrome"
-
default:
-
return
-
}
J'aime bien le principe d'un produit "Google" (le Go n'a pas l'air si Google que ça) qui en insulte un autre
(pour info, on trouve ça dans le fichier $GOROOT/src/pkg/http/server.go, vous aurez l'explication complète de pourquoi Chrome se fait traiter de broken en commentaire de la fonction
)
November 17th, 2009
Dans la catégorie je fais mumuse avec Go : je fais un serveur TCP qui répond invariablement "Hello, World !" à tous les clients qui se connectent.
C:
-
package main
-
-
import (
-
"fmt";
-
"net";
-
"strings";
-
);
-
-
func handler(c *net.TCPConn) {
-
c.Write(strings.Bytes("Hello, World !\n"));
-
c.Close();
-
}
-
-
func main() {
-
addr, err := net.ResolveTCPAddr("127.0.0.1:5896");
-
l, err := net.ListenTCP("tcp4", addr);
-
-
if l == nil {
-
fmt.Println("Could not listen : ", err);
-
}
-
-
for {
-
a, err := l.AcceptTCP();
-
if a == nil {
-
fmt.Println("Could not accept : ", err);
-
}
-
go handler(a);
-
}
-
}
November 15th, 2009
Me voici en train de faire mumuse avec le Go, nouveau langage fraîchement annoncé par Google (j'sais pas si le projet est bien porté à cœur par Google même quand on voit la tronche de leurs t-shirts et de leur site, sans compter l'annonce lors d'un simple tech talk). Même si leur mascotte ressemble largement trop à Glenda, j'ai donc quand même décidé de leur porter un peu d'attention. Dans ce but, j'ai suivi leur tuto d'installation, mais pour le compléter j'ai écris un Makefile pour compiler un seul fichier (la flemme de faire la compilation "à la main") :
CODE:
-
GOARCHPREF=6
-
GOCOMPILE=$(GOARCHPREF)g
-
GOLINK=$(GOARCHPREF)l
-
-
%: %.$(GOARCHPREF)
-
$(GOLINK) -o $@ $<
-
-
%.$(GOARCHPREF): %.go
-
$(GOCOMPILE) $<
Mettons que je veuille compiler truc.go :
On récupère à la sortie un fichier truc exécutable.
Ça c'est le Makefile pour amd64. Si vous êtes sous x86, mettez le GOARCHPREF à 8, et si vous êtes sous ARM mettez le à 5.
Ah et j'oubliez, comment coder sans coloration syntaxique dans Vim ? Ils sont gentil, ils donnent les règles de coloration syntaxique pour Vim (et d'autres éditeurs sans importance) dans le répertoire $GOROOT/misc/vim. Pour l'installer, il faut le copier (au moins sous Debian) dans /usr/share/vim/vim72/syntax/, puis ajouter la ligne
CODE:
-
au BufNewFile,BufRead *.go setf go
Au fichier /usr/share/vim/vim72/filetype.vim
Et ça sera tout pour aujourd'hui
Moi j'men vais coder un serveur quelconque en Go
EDIT : ouais non définitivement, ce projet Google s'en tape en fait. Par exemple, le site du langage ne parle nulle part de "Google"...
November 12th, 2009