taldius a écrit 5 commentaires

  • [^] # Re: asyncweb & streaming

    Posté par  . En réponse à la dépêche Play!, un autre framework web Java. Évalué à 5.

    Yep,

    C'est un truc qu'on avait identifié rapidement. Donc, du coup on a fait 2-3 hacks dans asyncweb pour streamer dans des fichiers temporaires quand ça devient trop gros. Et il reste dans la todo-list de remonter ces hacks au projet si ça les interesse. Enfin je devrais peut-être dire "tu", vu ta page perso et ton message :) Sauf erreur/oubli, on a pas ce problème là.

    Sinon oui, faut qu'on essaye le M3, mais déjà les performances entre la version précédente de play (tomcat embed) et celle ci (mina+asyncweb), ya pas photo. On peut y aller au "ab -c 100", ca encaisse sans broncher.
  • # Et Ubuntu ?

    Posté par  . En réponse au message quelle distrib choisir. Évalué à 1.

    T'as essayé Ubuntu ? Je sais pas si ca supporte ton dongle, mais c'est une bonne distrib de fénéant ;) Et comme c'est basé sur debian, apt-get pawa. Pour mon cas, j'ai un portable dell centrino, et ça a marché direct niveau wifi.
  • # Quelques pistes

    Posté par  . En réponse au message Distribution Linux Serveur. Évalué à 1.

    Si tu dois créer une distribution, tu peux regarder la méthode Linux From Scratch (LFS,http://www.linuxfromscratch.org/(...) ), c'est très didactique. Ca va te montrer les outils de base à compiler pour te faire un os.

    Le déploiement rapide sur des serveurs, c'est une autre histoire. J'aime bien debian avec un boot PXE si la carte réseau / bios de tes serveurs cible le supportent. Grosso modo, tu pars d'un serveur avec les images network install de debian. Quand ta machine cible démarre, le dhcp explique à ta cible qu'il faut charger une image depuis le serveur source, et hop ca boote sans disque (l'installeur debian).

    Tu peux aussi effectivement créer un CD d'install. A mon sens, c'est un mini linux qui démarre depuis le CD et qui est chargé en RAM. Une fois le système temporaire booté, faut écrire un installeur qui pose les questions et invoque les outils appropriés : partitionner (cfdisk par ex), formater, fabriquer un fstab, copier le système de base dessus (kernel, libc, pam, init, shell, etc....), créer les fichiers de mot de passe, etc... Puis faut aussi imaginer un système de packages, dépendances. Ce n'est pas une mince affaire ;)

    Quoiqu'il en soit, ça serait bien que tu demandes ce qu'ils entendent par "Concevoir" (faire une distrib en partant de rien, ou se baser sur quelque chose d'existant), et "deploiement rapide" (CD d'install, image disque à cloner, netboot, scripts de configuration d'une distribution existante ...)

    Bon courage pour la suite.
  • # rfc correspondante

    Posté par  . En réponse au message courrier @ip. Évalué à 4.

    Voir la RFC 2821, laquelle revisite la RFC 821 (qui définit le protocole SMTP). Dedans, ils expliquent que pour plusieurs fonctionalités, il doit y avoir requette DNS (enregistrements MX).

    Section 3.6 Domains
    Ils en parlent

    Section 3.7 Relaying
    "A relay SMTP server is usually the target of a DNS MX record that designates it, rather than the final delivery system. The relay server may accept or reject the task of relaying the mail in the same way it accepts or rejects mail for a local user."

    Section 5. Address Resolution and Mail Handling
    "Once an SMTP client lexically identifies a domain to which mail will be delivered for processing (as described in sections 3.6 and 3.7), a DNS lookup MUST be performed to resolve the domain name [22]. The names are expected to be fully-qualified domain names (FQDNs)...."

    Et puis, comme dit doublehp, sans ça, comment déterminer le domaine cible dans un hébergement virtuel ?
  • # Suggestion

    Posté par  . En réponse au message relier deux points. Évalué à 1.

    A ta place, je ferais : Un composant graphique qui dérive de JComponent. Il redéfinie la méthode paint. Tu l'attache dans ta JFrame. Un composant controleur : Il gère ta souris (implémente MouseListener, MouseMotionListener par exemple). Tu peut stocker quelques informations dans ce composant, ou les éclater dans une troisième classe "Modèle". L'idée, c'est que le controleur connait le composant graphique et vis et versa. Quand ton controleur détecte un changement qui nécéssite un rafraichissement, il invoque la méthode repaint du composant graphique, et c'est tout. La méthode paint prend ses informations sur le modèle, et le dessine. Voici un exemple à ajouter en JFrame. Quand tu clique une fois, ca mémorise la position. Une deuxième fois et ca trace un trait entre les 2. Composant graphique :
    package test;
    import java.awt.Graphics;
    import javax.swing.JComponent;
    
    public class GComp extends JComponent {
    MouseControler ctr=null;
    	
    	public GComp ()
    	{
    		ctr=new MouseControler(this);
    		this.addMouseMotionListener(ctr);
    		this.addMouseListener(ctr);
    	}
    	
    
    	public void paint(Graphics g) {
    		if (ctr.isLineValid())
    			g.drawLine(ctr.getStart().x,ctr.getStart().y,ctr.getStop().x,ctr.getStop().y);
    	}
    }
    
    Contrôleur / Modèle
    package test;
    
    import java.awt.Point;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
    
    
    public class MouseControler implements MouseListener, MouseMotionListener {
    	private Point mousePos=new Point(0,0);
    	private Point start=null;
    	private Point stop=null;
    	
    	private int state=0;
    	
    	private GComp c;
    	public MouseControler (GComp c)
    	{
    		this.c=c;
    	}
    
    	public void mouseMoved(MouseEvent e) {
    		mousePos=e.getPoint();
    		c.repaint();
    	}
    
    	public Point getMousePos() {
    		return mousePos;
    	}
    
    	public boolean isLineValid()
    	{
    		if (state==2)
    			return true;
    		return false;
    	}
    
    	public void mouseClicked(MouseEvent e) {
    		switch (state) {
    		case 0:
    			state=1;
    			start=e.getPoint();
    			break;
    		case 1:
    			state=2;
    			stop=e.getPoint();
    			c.repaint();
    			break;
    		default:
    			break;
    		}
    	}
    
    	public void mouseEntered(MouseEvent e) {
    
    	}
    
    
    	public void mouseExited(MouseEvent e) {
    
    	}
    
    
    	public void mousePressed(MouseEvent e) {
    
    	}
    
    
    	public void mouseReleased(MouseEvent e) {
    
    		
    	}
    
    	public void mouseDragged(MouseEvent e) {
    	
    	}
    
    	public Point getStart() {
    		return start;
    	}
    
    	public Point getStop() {
    		return stop;
    	}
    }