Ils correspondent à ceux proposé ici http://www.fzu.cz/~kolorenc/d620/, mais avec les noms de fichiers corrigés pour être appliqués sur un Xorg vanilla.
Pour le WiFi, il n'y a ma connaissance aucun driver *entièrement* libre sous Linux pour le chip ipw3945 (par contre les BSDistes en ont un en OpenBSD-current); donc il est probable que le petit daemon binaire intel tourne en root sur ta bécane sans même que tu le saches.
Ou alors tu as un ipw2200 et tu es un veinard :)
Pour le suspend, c'est assez fourbe car il y a plusieurs patches. Celui intégré au noyau est semble-t-il moins avancé que le patch populaire Suspend2; par exemple il ne gère pas le SMP, ce qui est plutôt balot sur du dual core. (on peut tricher en utilisant le CPU hotplug cependant)
Comme Ubuntu patche violemment ses noyaux je n'ai aucune idée de celui utilisé par ta distrib.
Pour réveiller il faut passer resume2=/dev/ta_partition_swap en paramètre au noyal en admettant que tu utilises Suspend2, que tu suspendes sur le swap et non dans un fichier, et que tu aies une image correcte dans ton swap (pas de reboot ni de montage de partitions entre deux sous peine de corruptions).
J'utilise des profils file et web très proches des tiens, mais cependant un petit bug subsiste: de temps en temps, la barre de bookmarks apparaît en mode file ou disparaît en mode web :(
Si tu arrives à contourner ce petit quirck, je suis très intéressé :)
(je ne suis pas sûr que ça soit le même bug que celui que tu as avec le preloading, notamment car quelque fois la barre de bookmark apparait en mode file alors que dans ton bug c'est seulement le profil file qui remplace le profil web).
Certes, les jolies courtisanes sont coûteuses à entretenir de nos jours. Il m'a fallut débourser pas moins de ~1340¤ (livraison gratuite) pour accéder à ses faveurs (avec une batterie en rab'): en gros le prix d'un MacBook 2 ghz de base.
Ne te fait pas avoir: ce n'est pas une carte son sound blaster, malheureusement, mais une suite d'applications fournie par Creative. D'où le Trial Version, car en plus les Windowsiens doivent payer un supplément pour avoir le truc complet.
Le chipset son intégré à l'ICH7 c'est un Intel HDA Sigmatel, que je trouve fort acceptable au demeurant. Dommage qu'il ne fasse pas de mixage hardware.
Je viens d'acheter ce même modèle, et j'en suis très content.
En gros, pour ~1300¤ j'ai la configuration suivante:
* Core Duo T2500 @2ghz
* 2 gigs de RAM @ 533 mhz (promotion DELL)
* écran 14" 1200x800 mat
* chip vidéo i945gm (marche en recompilant xorg 6.9 et en utilisant 955resolution - out of the box avec un Xorg 7.1 paraît-il)
* son Intel HDA (marche out of the box avec kernel 2.6.17 - prévoir asound.conf)
* ethernet broadcom BCM4401 (marche nickel avec le 2.6.17)
* wifi intel 3945 a/b/g (driver douteux d'intel, si tu te fous du daemon binaire ça marche donc)
* lecteur de carte SD/MMC Ricoh R5C822 géré par le 2.6.17 mais je n'ai pas testé
* graveur Philips reconnu par cdrecord et k3b
* une batterie supplémentaire
En gros, c'est équivalent à un macbook 2 ghz sans l'écran brillant douteux ni la puce TPM diabolique.
Le bousin est donc plutôt Linux-friendly, chauffe très peu (on peut le mettre sur ses genoux sans se brûler, même en compilant), silencieux, bref ça correspond tout à fait à ce que je cherchais dans mon journal d'il y a pas longtemps (merci au passage à ceux qui m'ont conseillé) :)
Pour la livraison, j'ai commandé un mercredi soir et j'ai reçu la machine le lundi, donc c'est honnête.
Et avant de faire ma décision j'avais lu ça: http://www.notebookreview.com/default.asp?newsID=2950&re(...)
(à noter, mon transfo ne fait pas de bruit bizarre, par contre moi aussi le petit taquet de fermeture bouge un peu si on le triture, m'enfin rien de génant)
Quand j'aurais fini de tout configurer je posterais un journal ici :) (il me reste encore les touches spéciales à binder et à configurer le software suspend :D).
... se sont posé la question bien avant toi, petit scarabée :)
Il suffit de faire une recherche quelconque sur aMule pour voir que les formats les plus employés sont le bon vieux MPEG2 qui passe vraiment partout (mais que tu as oublié dans ta liste ! compression trop faible à ton goût ?) et le avi/MPEG4/mp3 qui a le vent en poupe depuis que le grand public a découvert les "divisques".
Tu peux essayer flock(2) (BSD) ou lockf(3) (POSIX), mais ce sont des verrous 'coopératifs'; c'est à dire que si une autre application quelconque a les droits sur le fichier verrouillé, elle peut passer outre.
Si tu n'a pas d'impératif de portabilité, tu peux faire du mandatory locking (imposé à tous les processus) avec fcntl(2), mais bon il faut que le système de fichier le gère et soit monté avec l'option -o mand, etc... Donc je suis pas sûr que ça t'intéresse.
Sinon, une solution bête et méchante serait de copier le fichier en mémoire (pas avec mmap(2), les changements faits par d'autre processus seraient visibles) et d'écraser l'original quand tu as fini de travailler dessus en mémoire.
Le coup des lemmings suicidaires ça vient d'un documentaire Disney: ne sachant pas expliquer la diminution soudaine et massive des lemmings à certaines saisons, ils ont popularisé une théorie selon laquelle ils se jetaient des falaises ivres de suicide comme des moutons de panurge idiots.
En fait, leur population décroît sauvagement à cause des renards et des chouettes du coin qui arrivent à maturité à la période propice et se baffrent de lemmings.
En C une solution serait de trafiquer le processus fils pour remplacer son stdin par un pipe, en utilisant popen(3) par exemple. popen(3) étant POSIX.2, peut être est-elle disponible directement dans l'API Java.
Plus particulièrement, la fonction:
public java.io.OutputStream getStandardInputStream()
throws ExecutionComponentStateException
Get the OutputStream for writing to the process's stdin pipe. It is available after process is launched.
En plus, passer ce firewall c'est bien, la beauté du geste, toussa... mais ce firewall est là comme mise en application de la loi Chinoise.
L'utilisateur Chinois qui arrêtera les paquets RST peut donc avoir des ennuis: il suffirait d'enregistrer les clients auxquels on a envoyé plusieurs RST sur une même connexion pour le repérer.
De plus, il y a déjà moyen de passer le firewall sans bricoler la pile TCP/IP, en utilisant des réseaux comme Tor par exemple (avec les même inconvénients si on se fait attraper).
Une vraie solution, ce serait que les internautes Chinois obtiennent la suppression de ce firewall, mais je pense que lorsqu'on vit en Chine la censure sur le net doit être le cadet de ses soucis.
Euh, pas de driconf sur ma Slack, j'ai juste RTFM :)
Pour le RenderAccel, c'est mieux avec l'option XaaNoOffscreenPixmaps désactivée[1] comme dans ma config, sinon ça ralentit plus qu'autre chose; à part ça, aucun problème.
[1] Ce n'est pas de la magie noire :)
L'accélération de RENDER n'est que partiellement matérielle dans le cas du driver radeon; or, quand une partie de RENDER est implémentée en software dans le serveur X, ce dernier est régulièrement amené à lire certains pixels en mémoire vidéo, les traiter et ré-afficher le résultat derrière (pour faire de l'alpha blending par exemple).
Lire en mémoire vidéo, c'est super lent sur x86, d'où le ralentissement quand on active l'option à sec. Mais en désactivant XaaNoOffscreenPixmaps, on permet au serveur X de stocker certaines pixmaps en mémoire système, et donc les accès sont beaucoup plus rapides \o/
Au sujet des MacBook, je serais effectivement intéressé, mais plusieurs choses me chiffonnent:
* le support Linux semble jeune, je ne suis pas sûr que tout fonctionne bien
* il y a une puce TPM dedans, peut-on l'utiliser comme 'porte clé' ou bien n'est-elle utilisable que par Apple pour autoriser le boot de Mac OS X ?
* il paraît qu'ils chauffent énormément
Si tu as de plus ample informations sur Linux avec un Mac Book, je serais très intéressé :)
Mais c'est vrai que ce sont de bien belles machines :d
En fait je compte continuer à utiliser Slackware (ou Slackintosh http://workaround.ch/index.html ;) ), mais ton lien est fort intéressant.
Ça semble confirmer ce que j'avais trouvé, les Centrino Core Duo nécessitent un daemon binaire pour le wifi et le chip graphique n'est pas encore parfaitement supporté.
D'un autre côté, avec le nouveau driver propre d'OpenBSD et Xorg modulaire, ...
Ça fait plusieurs fois que je croise l'expression "logorrhée diarrhéique"; mais c'est très proche d'un pléonasme en fait, je trouve. Du même style que "panacée universelle".
Le suffixe -rrhée (importé du grec) de ces deux mots a en effet le sens de couler (pour un flot).
diarhéee > diarroia > diarrein c'est couler à travers, et logorrhée > logos + rein c'est un flot de paroles.
Logorrhée purineuse ou diarrhée verbale, par exemple, transmettraient tout aussi bien l'idée de flot de mots et d'étron liquide sans répétition sémantique.
static inline void _strtoupper(char *s)
{
do *s = toupper(*s); while (*s ++);
}
int main(void)
{
pid_t pid = 0;
char buf[BUFSIZ]; /* buffer de lecture */
int in[2], out[2]; /* les pipes */
fd_set fd;
struct timeval tmout;
int run = 20; /* nombre de tours */
int len = 0; /* retour de read */
/* ouvre les pipe d'input/output */
if (pipe(in) == -1) {
perror(ERR(main, pipe)); exit(EXIT_FAILURE);
}
if (pipe(out) == -1) {
perror(ERR(main, pipe)); exit(EXIT_FAILURE);
}
case 0: /* papa */
/* on veut ecrire dans l'input, et lire dans l'output (point de vue fiston) */
close(in[0]); close(out[1]);
if (dup2(out[0], STDIN_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
if (dup2(in[1], STDOUT_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
/* ecrit un message d'initialisation au bout de cinq secondes */
sleep(5);
printf("salut fiston !");
fflush(stdout);
break;
default: /* fiston */
/* on veut lire dans l'input, et ecrire dans l'output */
close(in[1]); close(out[0]);
if (dup2(in[0], STDIN_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
if (dup2(out[1], STDOUT_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
}
/* boucle de lecture/ecriture commune */
while (run --) {
/* une seconde de timeout */
tmout.tv_sec = 1;
tmout.tv_usec = 0;
/* c'est pas portable de faire ca avec le vrai stdin, mais la c'est notre pipe */
FD_SET(STDIN_FILENO, & fd);
[^] # Re: probleme de liens :)
Posté par JaguarWan . En réponse au journal Pr0nographie sur l'intarweb. Évalué à 3.
Le patch pour Xorg vient de http://www.alib.jp/files/patch-i945GM (pour FreeBSD) à la base, et celui pour Mesa d'Ubuntu il me semble.
Ils correspondent à ceux proposé ici http://www.fzu.cz/~kolorenc/d620/, mais avec les noms de fichiers corrigés pour être appliqués sur un Xorg vanilla.
[^] # Re: Coïncidence...
Posté par JaguarWan . En réponse au journal Pr0nographie sur l'intarweb. Évalué à 3.
Ou alors tu as un ipw2200 et tu es un veinard :)
Pour le suspend, c'est assez fourbe car il y a plusieurs patches. Celui intégré au noyau est semble-t-il moins avancé que le patch populaire Suspend2; par exemple il ne gère pas le SMP, ce qui est plutôt balot sur du dual core. (on peut tricher en utilisant le CPU hotplug cependant)
Comme Ubuntu patche violemment ses noyaux je n'ai aucune idée de celui utilisé par ta distrib.
Pour réveiller il faut passer resume2=/dev/ta_partition_swap en paramètre au noyal en admettant que tu utilises Suspend2, que tu suspendes sur le swap et non dans un fichier, et que tu aies une image correcte dans ton swap (pas de reboot ni de montage de partitions entre deux sous peine de corruptions).
Ça fait beaucoup de 'si' n'est-ce pas ?
# bug
Posté par JaguarWan . En réponse au journal Profils et Konqueror. Évalué à 3.
Si tu arrives à contourner ce petit quirck, je suis très intéressé :)
(je ne suis pas sûr que ça soit le même bug que celui que tu as avec le preloading, notamment car quelque fois la barre de bookmark apparait en mode file alors que dans ton bug c'est seulement le profil file qui remplace le profil web).
[^] # Re: le parfait amour c'est jamais gratuit.
Posté par JaguarWan . En réponse au journal Pr0nographie sur l'intarweb. Évalué à 4.
[^] # Avec plaisir :)
Posté par JaguarWan . En réponse au journal Pr0nographie sur l'intarweb. Évalué à 8.
00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
00:1b.0 Class 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controllers cc=IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
02:01.0 FireWire (IEEE 1394): Ricoh Co Ltd: Unknown device 0832
02:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
02:01.2 System peripheral: Ricoh Co Ltd: Unknown device 0843 (rev 01)
02:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
02:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Intel Corporation: Unknown device 4222 (rev 02)
[^] # Re: Quelques conseils
Posté par JaguarWan . En réponse au journal Achat d'ordinateur portable. Évalué à 3.
Ne te fait pas avoir: ce n'est pas une carte son sound blaster, malheureusement, mais une suite d'applications fournie par Creative. D'où le Trial Version, car en plus les Windowsiens doivent payer un supplément pour avoir le truc complet.
Le chipset son intégré à l'ICH7 c'est un Intel HDA Sigmatel, que je trouve fort acceptable au demeurant. Dommage qu'il ne fasse pas de mixage hardware.
[^] # Re: Quelques conseils
Posté par JaguarWan . En réponse au journal Achat d'ordinateur portable. Évalué à 2.
En gros, pour ~1300¤ j'ai la configuration suivante:
* Core Duo T2500 @2ghz
* 2 gigs de RAM @ 533 mhz (promotion DELL)
* écran 14" 1200x800 mat
* chip vidéo i945gm (marche en recompilant xorg 6.9 et en utilisant 955resolution - out of the box avec un Xorg 7.1 paraît-il)
* son Intel HDA (marche out of the box avec kernel 2.6.17 - prévoir asound.conf)
* ethernet broadcom BCM4401 (marche nickel avec le 2.6.17)
* wifi intel 3945 a/b/g (driver douteux d'intel, si tu te fous du daemon binaire ça marche donc)
* lecteur de carte SD/MMC Ricoh R5C822 géré par le 2.6.17 mais je n'ai pas testé
* graveur Philips reconnu par cdrecord et k3b
* une batterie supplémentaire
En gros, c'est équivalent à un macbook 2 ghz sans l'écran brillant douteux ni la puce TPM diabolique.
Le bousin est donc plutôt Linux-friendly, chauffe très peu (on peut le mettre sur ses genoux sans se brûler, même en compilant), silencieux, bref ça correspond tout à fait à ce que je cherchais dans mon journal d'il y a pas longtemps (merci au passage à ceux qui m'ont conseillé) :)
Pour la livraison, j'ai commandé un mercredi soir et j'ai reçu la machine le lundi, donc c'est honnête.
Si tu veux plus d'informations, regarde sur OSnews ici:
http://osnews.com/comment.php?news_id=15117
Et avant de faire ma décision j'avais lu ça:
http://www.notebookreview.com/default.asp?newsID=2950&re(...)
(à noter, mon transfo ne fait pas de bruit bizarre, par contre moi aussi le petit taquet de fermeture bouge un peu si on le triture, m'enfin rien de génant)
Quand j'aurais fini de tout configurer je posterais un journal ici :) (il me reste encore les touches spéciales à binder et à configurer le software suspend :D).
# Les maîtres pornographes...
Posté par JaguarWan . En réponse au journal Encoder ses vidéos pour le web. Évalué à 6.
Il suffit de faire une recherche quelconque sur aMule pour voir que les formats les plus employés sont le bon vieux MPEG2 qui passe vraiment partout (mais que tu as oublié dans ta liste ! compression trop faible à ton goût ?) et le avi/MPEG4/mp3 qui a le vent en poupe depuis que le grand public a découvert les "divisques".
# flock(2)
Posté par JaguarWan . En réponse au message Bloquer l'accès à un fichier utilisé. Évalué à 6.
Si tu n'a pas d'impératif de portabilité, tu peux faire du mandatory locking (imposé à tous les processus) avec fcntl(2), mais bon il faut que le système de fichier le gère et soit monté avec l'option -o mand, etc... Donc je suis pas sûr que ça t'intéresse.
Sinon, une solution bête et méchante serait de copier le fichier en mémoire (pas avec mmap(2), les changements faits par d'autre processus seraient visibles) et d'écraser l'original quand tu as fini de travailler dessus en mémoire.
# Indentation
Posté par JaguarWan . En réponse au journal identification sur freenode et ghost. Évalué à 4.
Quand je veux copier du code ici, je remplace les Quatre Espaces® d'indentation par des espaces insécables, qui sont épargnés par Templeet.
[^] # Re: plus de serveur que de site client
Posté par JaguarWan . En réponse au journal OpenID : l'authentification décentralisée.. Évalué à 5.
Le coup des lemmings suicidaires ça vient d'un documentaire Disney: ne sachant pas expliquer la diminution soudaine et massive des lemmings à certaines saisons, ils ont popularisé une théorie selon laquelle ils se jetaient des falaises ivres de suicide comme des moutons de panurge idiots.
En fait, leur population décroît sauvagement à cause des renards et des chouettes du coin qui arrivent à maturité à la période propice et se baffrent de lemmings.
Je sais plus trop où j'avais lu ça à l'origine, dans Science & Vie je crois, mais c'est aussi cité dans wikipedia:
http://fr.wikipedia.org/wiki/Lemming
http://en.wikipedia.org/wiki/Lemming
On est probablement aussi la seule espèce à prendre les autres espèces pour des cons par défaut.
[^] # Re: stdin
Posté par JaguarWan . En réponse au message Authentification pour une commande exécutée dans un exec(). Évalué à 2.
FILE *s1 = popen("command", "r");
=
Process process = Runtime.getRuntime().exec("command");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
Y a pas à dire c'est verbeux le Java :)
# stdin
Posté par JaguarWan . En réponse au message Authentification pour une commande exécutée dans un exec(). Évalué à 2.
En Java pur, en regardant sur google vite fait j'ai trouvé ça:
http://download.eclipse.org/tptp/4.2.0/javadoc/Platform/publ(...)
Plus particulièrement, la fonction:
public java.io.OutputStream getStandardInputStream()
throws ExecutionComponentStateException
Get the OutputStream for writing to the process's stdin pipe. It is available after process is launched.
Voilà, j'espère que ça pourra t'aider.
[^] # Re: Mmmmoui ...
Posté par JaguarWan . En réponse au journal Contourner les firewalls de la censure chinoise. Évalué à 8.
L'utilisateur Chinois qui arrêtera les paquets RST peut donc avoir des ennuis: il suffirait d'enregistrer les clients auxquels on a envoyé plusieurs RST sur une même connexion pour le repérer.
De plus, il y a déjà moyen de passer le firewall sans bricoler la pile TCP/IP, en utilisant des réseaux comme Tor par exemple (avec les même inconvénients si on se fait attraper).
Une vraie solution, ce serait que les internautes Chinois obtiennent la suppression de ce firewall, mais je pense que lorsqu'on vit en Chine la censure sur le net doit être le cadet de ses soucis.
Donc "mouais" :/
[^] # "mouvement Goatse"
Posté par JaguarWan . En réponse au journal Olivia Ruiz, Olivia Rox !. Évalué à 0.
http://en.wikipedia.org/wiki/Goatse.cx *
Désolé /o\
* Et quelqu'un trouvait que la précision de la page consacrée aux vidéo projecteurs à faire soi-même faisait peur, l'autre jour...
[^] # Re: Absurde
Posté par JaguarWan . En réponse au journal ATI n'aime pas ABI. Évalué à 5.
Pour le RenderAccel, c'est mieux avec l'option XaaNoOffscreenPixmaps désactivée[1] comme dans ma config, sinon ça ralentit plus qu'autre chose; à part ça, aucun problème.
[1] Ce n'est pas de la magie noire :)
L'accélération de RENDER n'est que partiellement matérielle dans le cas du driver radeon; or, quand une partie de RENDER est implémentée en software dans le serveur X, ce dernier est régulièrement amené à lire certains pixels en mémoire vidéo, les traiter et ré-afficher le résultat derrière (pour faire de l'alpha blending par exemple).
Lire en mémoire vidéo, c'est super lent sur x86, d'où le ralentissement quand on active l'option à sec. Mais en désactivant XaaNoOffscreenPixmaps, on permet au serveur X de stocker certaines pixmaps en mémoire système, et donc les accès sont beaucoup plus rapides \o/
[^] # Re: Absurde
Posté par JaguarWan . En réponse au journal ATI n'aime pas ABI. Évalué à 6.
D'ailleurs j'aurais bien aimé trouver un ordinateur portable équipé d'un R200 dans le commerce, mais apparemment ça ne se fait plus :'(
# Absurde
Posté par JaguarWan . En réponse au journal ATI n'aime pas ABI. Évalué à 10.
Pourquoi les vendre alors qu'elles fonctionnent à merveille avec le driver libre intégré à X.org ?
-- Un heureux possesseur de radeon 9250.
[^] # Re: iBook G4
Posté par JaguarWan . En réponse au journal Portable optimisé libre. Évalué à 4.
Au sujet des MacBook, je serais effectivement intéressé, mais plusieurs choses me chiffonnent:
* le support Linux semble jeune, je ne suis pas sûr que tout fonctionne bien
* il y a une puce TPM dedans, peut-on l'utiliser comme 'porte clé' ou bien n'est-elle utilisable que par Apple pour autoriser le boot de Mac OS X ?
* il paraît qu'ils chauffent énormément
Si tu as de plus ample informations sur Linux avec un Mac Book, je serais très intéressé :)
Mais c'est vrai que ce sont de bien belles machines :d
[^] # Re: Pour compiler?
Posté par JaguarWan . En réponse au journal Portable optimisé libre. Évalué à 2.
Ça semble confirmer ce que j'avais trouvé, les Centrino Core Duo nécessitent un daemon binaire pour le wifi et le chip graphique n'est pas encore parfaitement supporté.
D'un autre côté, avec le nouveau driver propre d'OpenBSD et Xorg modulaire, ...
[^] # Message de la Kommandantür Grammairienne
Posté par JaguarWan . En réponse au journal Petite merde sèche [encore à coté de la plaque]. Évalué à 10.
Le suffixe -rrhée (importé du grec) de ces deux mots a en effet le sens de couler (pour un flot).
diarhéee > diarroia > diarrein c'est couler à travers, et logorrhée > logos + rein c'est un flot de paroles.
Logorrhée purineuse ou diarrhée verbale, par exemple, transmettraient tout aussi bien l'idée de flot de mots et d'étron liquide sans répétition sémantique.
Mes deux ¢ :)
[^] # Re: Pour la Slackware
Posté par JaguarWan . En réponse au journal osinfo. Évalué à 2.
Slackware 10.2.0
jaguarwan@Jaguar:~$
# La question qui brûle toutes les lèvres:
Posté par JaguarWan . En réponse au journal Bill Gates réorganise ses priorités. Évalué à 3.
[^] # Re: Details
Posté par JaguarWan . En réponse au message [C Posix] Histoire de fork de pipe et de select. Évalué à 2.
static inline void _strtoupper(char *s, size_t len)
{
if (! s || ! len) return;
while (len --) s[len] = toupper(s[len]);
}
en utilisant la longueur renvoyée par read(2)...
/!\ le paramètre len revient à strlen() + 1 là (read(2) compte le NUL final)
[^] # Re: Details
Posté par JaguarWan . En réponse au message [C Posix] Histoire de fork de pipe et de select. Évalué à 2.
/* gcc -W -Wall -std=c99 -posix -pedantic posix.c */
#define _BSD_SOURCE
#define _ISOC99_SOURCE
#include <stdlib.h> /* libc */
#include <unistd.h> /* pipe(), fork(), *_FILENO ... */
#include <stdio.h> /* printf(), BUFSIZ, ... */
#include <ctype.h> /* toupper() */
#include <string.h> /* memset() */
#include <sys/types.h> /* pid_t, ... */
#include <sys/wait.h>
#define STRINGIFY(x) #x
#define STR(x) STRINGIFY(x)
#define ERR(c, f) #c "()::" #f "() @ " __FILE__ ":" STR(__LINE__)
static inline void _strtoupper(char *s)
{
do *s = toupper(*s); while (*s ++);
}
int main(void)
{
pid_t pid = 0;
char buf[BUFSIZ]; /* buffer de lecture */
int in[2], out[2]; /* les pipes */
fd_set fd;
struct timeval tmout;
int run = 20; /* nombre de tours */
int len = 0; /* retour de read */
/* ouvre les pipe d'input/output */
if (pipe(in) == -1) {
perror(ERR(main, pipe)); exit(EXIT_FAILURE);
}
if (pipe(out) == -1) {
perror(ERR(main, pipe)); exit(EXIT_FAILURE);
}
/* pipe[0] = lecture, pipe[1] = ecriture */
switch ( (pid = fork()) ) {
case -1: /* failed */
close(in[0]); close(in[1]);
close(out[0]); close(out[1]);
exit(EXIT_FAILURE);
case 0: /* papa */
/* on veut ecrire dans l'input, et lire dans l'output (point de vue fiston) */
close(in[0]); close(out[1]);
if (dup2(out[0], STDIN_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
if (dup2(in[1], STDOUT_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
/* ecrit un message d'initialisation au bout de cinq secondes */
sleep(5);
printf("salut fiston !");
fflush(stdout);
break;
default: /* fiston */
/* on veut lire dans l'input, et ecrire dans l'output */
close(in[1]); close(out[0]);
if (dup2(in[0], STDIN_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
if (dup2(out[1], STDOUT_FILENO) == -1) {
perror(ERR(main, dup2)); exit(EXIT_FAILURE);
}
}
/* boucle de lecture/ecriture commune */
while (run --) {
/* une seconde de timeout */
tmout.tv_sec = 1;
tmout.tv_usec = 0;
/* c'est pas portable de faire ca avec le vrai stdin, mais la c'est notre pipe */
FD_SET(STDIN_FILENO, & fd);
if (select(1, & fd, NULL, NULL, & tmout) == -1) {
perror(ERR(main, select)); exit(EXIT_FAILURE);
}
if (FD_ISSET(STDIN_FILENO, & fd)) {
memset(buf, '\0', sizeof(buf));
if ( (len = read(STDIN_FILENO, buf, sizeof(buf))) == -1) {
perror(ERR(main, read)); exit(EXIT_FAILURE);
}
if (len == 0) {
fprintf(stderr, "%s: connection morte\n", (pid) ? "fiston" : "papa");
break;
}
if (pid == 0) {
/* papa */
fprintf(stderr, "Le fiston a ecrit: %s\n", buf);
printf("met-moi ca en caps fiston...");
fflush(stdout);
} else {
/* fiston */
_strtoupper(buf);
printf("%s", buf);
fflush(stdout);
}
} else {
fprintf(stderr, "%s: j'ai rien a faire !\n", (pid) ? "fiston" : "papa");
}
}
/* normalement le fils creve toujours avant, mais soyons propre */
if (pid == 0) wait(NULL);
/* vu qu'on a branche les pipe sur stdin/out, cleanup automatique */
exit(EXIT_SUCCESS);
}