Oui, enfin sans pilotes performant, tu aura beau savoir coder, tu n'ira pas loin. Par exemple, sur mon laptop, avec une ATI x200m, le lissage de lignes (GL_LINE_SMOOTH) n'est pas pris en charge par le driver.
Consequences, c'est tout moche, pire encore en dessinant une grille.
En tout cas, si deja on avait un moteur de jeux decent, ca permettrait de lancer plus de projet, parce que ce n'est pas avec irrlicht ou ogre que l'on fera un jeu de niveau pro...
Mandriva qui a viré son fondateur, Debian qui perd des programmeurs, SuSE qu'est de nouveau plus libre, Ubuntu qui l'a jamais été, Gentoo qu'est pas écologique, Fedora qui suce, Slackware qu'est sur le point de succomber à une extinction massive, les BSD qui carburent pas au GPL, Ulteo qui n'en fini pas de révolutionner le monde du logiciel... Ça devient de plus en plus difficile de choisir aujourd'hui !
Il est vrai que je ne suis pas particulièrement bien placé pour affirmer quoi que ce soit, maintenant je dis des choses qui me semblent logiques d'après ce que j'ai compris des distribution linux.
C'est dommage d'ailleurs, moi même je n'ai aucun moyen d'évaluer la pertinence de vos commentaires.
Vous y allez un peu fort tous les deux, il faut assumer son incompétence ! Et suivre un tutorial vidéo pour créer un paquet ubuntu... sa en dit long sur ton investissement.
Vous croyez quoi ? qu'un logiciel se développe avec un petit amateur dans son coin qui fait tous les paquets grâce aux 50 distribs installées sur son PC ?
Ben non, sa se passe pas comme sa le développement logiciel, on appuie pas sur F7 pour avoir un joli binaire qui passe partout : il faut du travail et des contributeurs pour développer un logiciel digne du nom.
J'ai vraiment l'impression que ce journal n'est visité que par des gens qui développent en java sous windows.
Je ne suis pas d'accord : ce que j'ai le plus apprécié en passant à linux c'est d'avoir un gestionnaire de paquets qui installe et télécharge tout seul les logiciels dont j'avais besoin.
Et tu peux très bien installer un logiciel en tant que simple utilisateur en le compilant ou en utilisant un autopackage.
Je me repete mes sous Windows, il existe des outils pour identifier les programmes qui seront executé au démarrage.
Sauf qu'ils ne marchent pas. Enfin, il est tres simple de creer un programme qui sera execute a chaque demarrage, mais qui ne sera pas liste par cet outil.
Faut vraiment etre naif pour penser qu'un outil va pouvoir te permettre de lister absolument tous les programmes executes au cours du demarrage.
A l'inverse quand on regarde Windows, ces endroits se limitent à quelques hot spot qui sont facilement identifiable avec des outils de scan de la base de registre.
C'est faux, il y a enorment d'endroits ou il est possible d'inserer des virus, et ca ne se limite pas a la base de registre.
D'ailleur, je vire le 3/4 des virus et autre malware de mon réseau à la main.
3/4 de ceux que tu remarque. Tu connais la base de registre par coeur pour reconnaitre tout truc anormal ? Tu fais comment pour retirer un virus qui s'insere dans notepad.exe ou machintruc.dll ?
D'ailleurs, les antivirus ne detectent que les virus qu'ils connaissent, et il est tres simple d'en ecrire un qui ne sera pas detecte (et a moins qu'il soit bien repandu ou tres actif, il risque de continuer a ne pas etre detecte). Le seul moyen de s'assurer que la machine n'est pas infectee, c'est de calculer les sommes md5 (ou equivalent) de tous les binaires, et les comparer avec ceux des binaires originaux.
Accessoirement, tu crois que la gars de chez google code comme çà regarde le code source de cette page. Particulierement , le javascript ; )
Leur code est sans doute genere par un autre outil, et ce code n'est pas fait pour etre lu par des humains.
Je pense pas qu'ils rendent le code volontairement illisible.
En fait, il est assez difficile et très technique pour un programme binaire de s'inserer dans un autre programme binaire.
Pas du tout. On trouve quelques centaines de milliers de virus pour Windows qui font exactement ca. Ca pose absolument aucun probleme.
En plus vu qu'il n'est pas executer par le système mais par la machine virtuel executant le script. Un ps ne montra rien.
Ben tout depend si le script fork ou pas. Et c'est pareil avec un binaire, si tu rajoutes quelquechose dedans, ca se voit pas avec un ps non plus.
Autre avantage des scripts est que tu peux très facilement les brouillers à la différence d'un binaire, ou il faudrait presque que le virus se ballade avec son gcc embarqué :)
Qu'est ce que tu appelles brouiller ? En quoi brouiller un script est plus simple que brouiller un binaire ? Et quel est l'interet ?
De toute facon, qui va lire ses binaires a la main ?
Le principe de dire que pour qu'un logiciel fonctionne sur ma distribution X il doit être compilé et fourni pour cette même distribution et en soit une limitation forte à la diffusion de nos logiciels.
Bah sa on y peut rien, il faut bien que les logiciels soient compilés différemment selon les contraintes imposées par chaque distribution.
Je pense que ce que tu n'as pas compris c'est que le but d'une distribution est justement de fournir des logiciels à l'utilisateur.
Le logiciel ne prend pas en charge son installation, c'est un logiciel tiers qui s'en occupe comme par exemple aptitude, rpmdrake, autopackage...
Il n'est pas possible d'imposer une distribution unique, mais c'est sur qu'il vaut s'unir plutot que de développer trop de systèmes différents.
J'ai l'impression que debian dispose de beaucoup plus de paquets que mandriva et qu'ils sont mis à jour plus souvent.
Sa doit pouvoir se vérifier en regardant le nombre de paquets dans les dépots.
Il ne faut pas voir le système de paquets des distributions comme une limitation car, comme tu l'as dit, tu peux très bien installer d'autres binaires ou compiler toi même le programme dont tu as besoin.
De plus, tu peux toujours faire toi même les paquets dont tu as besoin, les installer et en faire profiter les autres en les envoyants à ta distribution.
Au début il est vrai que ce mode de fonctionement est assez déroutant mais on se rend vite compte que le système de paquets est très très pratique.
Et voilà, c'est magique. En 1h30 j'ai téléchargé une mini-distrib, installé le système et retrouvé mon environnement de travail et mes données tels que je l'avais laissés (merci le /home séparé !).
Mouarf, mon disque dur vient de lâcher, et c'est exactement le problème que j'ai rencontré ! Om ai-je bien pu ranger ce p*t*in de CD/DVD ?
Bref, heureusement que j'achète régulièrement des Linux Pratique, il y a pas mal de CD Live à l'intérieur. Ça m'a permis de booter et de lancer le téléchargement d'une mini-iso pour pouvoir réinstaller mon système tout à l'heure.
C'est marrant, parce que dans mes fouilles, j'ai retrouvé moults CD de Windows toutes versions confondues, alors qu'elles ne me servent plus depuis des années (et ce n'est pas près de changer !).
*alloc.addrStart = 0xdeadbeef;
Me renvoit l'erreur illegal indirection...
parce que l'operateur * sert a dereferencer un pointeur.
si alloc est un pointeur, *alloc correspond a l'adresse stockee dans alloc
et alloc->addrStart est equivalent a (*alloc).addrStart (les parentheses sont importantes)
si alloc est une variable statique, *alloc ne correspond pas a une adresse memoire, mais a la valeur d'une variable. Donc *alloc.addrStart equivaut a prendre cette valeur comme une adresse memoire (ce qu'elle n'est pas sauf effet de bord) et a regarder ce qu'elle contient, ce qui mene irremediablement a une erreur.
Arrgggg je viens de passer 30 min a pondre un pave pour essayer de t'expliquer ca et je me suis rendu compte que ca t'embrouillerai plus la tete qu'autre chose.
Pour faire simple, pour un tableau T contenant n variable de structure S telle que:
struct S
{
int v;
}
"." s'emploie lorsque la memoire utilisee pour stocker T est allouee de maniere statique:
struct S T[n]; /* Tableau de n variable de structure S.
A la compilation, le compilateur sait qu'il doit reserver n blocs
consecutifs de memoire de taille sizeof(S), soit 4 octets sur une
architecture 32 bits.
*/
on aura alors:
T[0].v=0xdeadbeef+0;
.
.
.
T[n].v=0xdeadbeef+n;
"->" s'emploie lorsque la memoire utilisee pour stocker T est allouee de maniere dynamique:
struct S *T; /* Pointeur vers une zone memoire a definir qui contiendra un nombre
de structure S qui est inconnu au moment de la compilation.
*/
T=malloc(n*sizeof(S)); /* on alloue cette zone memoire pour n structures S
au moment de l'execution du programme.
*/
on aura alors:
T[0]->v=0xdeadbeef+0;
.
.
.
T[n]->v=0xdeadbeef+n;
La difference se fait dans la maniere dont le programme va chercher ses donnees:
"." indique que les donnees se trouvent directement a la suite de l'adresse memoire T.
"->" indique que les donnees se trouvent a l'adresse qui est stockee à l'adresse memoire T.
Je ne sais pas si j'ai ete suffisament clair, mais a cette heure ci c'est tout ce que je peux faire !
PS: ce systeme de balise sans retour chariot est vraiment tout pourrite!
Les binaires que distribue Maniadrive sont compilés statiquement donc c'est pas franchement optimal comme installation.
On est déjà libres d'installer ce qu'on veut, on est content quand y'a des paquets et on rale quand y'en a pas mais il faut bien que quelqu'un les fasse...
Personellement je trouve mon système assez simple d'utilisation, même plus simple que Windows.
Pour ceux qui le savent pas, Gameforge sont les marrants qui développent ogame, le jeu (tout pourris) qui a beaucoup de succès chez les djeunz.
Le truc encore plus fun, c'est qu'un ami (je ne siterais pas de nom), s'est amusé à bidouiller ogame et c'est rendu compte que ces gens là ne savaient pas coder. ogame est bourré à ras bord de failles de niveau débutant, à un tel point que le célèbre mode payant rajoutant des infos est obtenu avec quelques petits javascript sans le moindre problème et pour pas un sous. Je ne parlerais même pas des bugs en série, jamais corrigés, et surtout de la facilité avec laquelle on peut faire jouer des fermes entières de bots sans jamais se faire détecter.
Bref, Ryzom, ça craint, et même s'ils proposent un client Linux, je ne lancerai jamais le binaire sans avoir pu lire les sources de A à Z.
Ah ui, il parait aussi que Gameforge a la gachette légale facile, mais rien à battre, s'ils ne sont pas contents de ce que je raconte, ils n'ont qu'à venir le dire ici.
faux: tu ecris deux fois la meme chose
pour strlen(x)=3,
i<strlen(x)+1 (soit i<4) appliquera la boucle pour i={0,1,2,3}
i<=strlen(x) (soit i<=3) appliquera la boucle pour i={0,1,2,3}
le +1 ne permet pas "d'eviter d'oublier le dernier caractere" mais prend en compte l'octet NULL de terminaison de la chaine, ce qui semble etre une erreur.
si ptr est ton pointeur vers un dword (c'est a dire un unsigned int sur une architecture 32 bit), addrStart est l'adresse vers laquelle pointe ton pointeur et Value est la valeur a ecrire, alors ce que tu veux faire est:
unsigned int *ptr=addrStart; /* declaration et initialisation du pointeur */
*ptr=Value; /* Value est copiee a l'adresse pointee par ptr */
mais j'ai le sentiment que ce n'est pas exactement ce que tu recherches, me gourre-je ?
c'est peut etre parce que je n'ai pas pris de petit dejeuner ce matin, mais ta description du probleme ne me semble pas tres claire
Sans comprendre le probleme en lui meme, ton code me semble bizarre lui aussi:
int* pos=(int*)malloc(sizeof(int));//allouer la memoire pour le tableau position//
tu reserves la taille d'un entier (taille variable en fonction de l'architecture sur laquelle tu compiles ton code) en memoire sur laquelle tu fais pointer ton pointeur pos. Tu ne pourras donc stocker qu'un seul entier a cet emplacement. Je doute que ce soit ce que tu souhaites faire a l'origine (utiliser un tableau, donc priori un serie d'entiers).
En C les commentaires sont soient entre /* et */, soient sur une seule ligne precedes de //
Le // a la fin de ton commentaire est inutile.
Dans tes boucles, tu t'obstines a utiliser comme condition strlen(s)+1 , ce qui signifie que tu vas appliquer le contenu de ta boucle sur toute la longueur de ta chaine [strlen(s)] ET sur l'octet NULL terminant ta chaine [+1]... je doute de l'utilite d'un tel comportement.
enfin, ne sachant pas ce que font les fonctions AllouerMatrice et position, il va etre difficile de savoir ce que fait ton morceau de code
Essaies d'etre plus clair dans l'expose de ton probleme et fourni la totalite du code que tu souhaites verifier
[^] # Re: pilote graphique
Posté par Anonyme . En réponse au journal Un jeu libre, un vrai ?. Évalué à 2.
Consequences, c'est tout moche, pire encore en dessinant une grille.
En tout cas, si deja on avait un moteur de jeux decent, ca permettrait de lancer plus de projet, parce que ce n'est pas avec irrlicht ou ogre que l'on fera un jeu de niveau pro...
# Féchié...
Posté par Anonyme . En réponse au journal Jeremy Allison quitte Novell pour rejoindre Google.. Évalué à 5.
# Alors...
Posté par Anonyme . En réponse au journal C'est pas un coup de gueule. Évalué à 8.
[^] # Re: Multiples paquets
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 1.
C'est dommage d'ailleurs, moi même je n'ai aucun moyen d'évaluer la pertinence de vos commentaires.
[^] # Re: Possible
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 3.
# Superbe poème
Posté par Anonyme . En réponse au journal C'est pas un coup de gueule. Évalué à 2.
Quel vecteur d'improductivité ce linuxfr tout de même, et quelle bizarre coutume que celle du vendredi !
[^] # Re: Multiples paquets
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à -2.
Vous croyez quoi ? qu'un logiciel se développe avec un petit amateur dans son coin qui fait tous les paquets grâce aux 50 distribs installées sur son PC ?
Ben non, sa se passe pas comme sa le développement logiciel, on appuie pas sur F7 pour avoir un joli binaire qui passe partout : il faut du travail et des contributeurs pour développer un logiciel digne du nom.
J'ai vraiment l'impression que ce journal n'est visité que par des gens qui développent en java sous windows.
[^] # Re: Compilés statiquement
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 1.
Et tu peux très bien installer un logiciel en tant que simple utilisateur en le compilant ou en utilisant un autopackage.
[^] # Re: l'architecture de Firefox dangereuse
Posté par Anonyme . En réponse au journal Un système véritablement sécurisé devrait.... Évalué à 3.
Sauf qu'ils ne marchent pas. Enfin, il est tres simple de creer un programme qui sera execute a chaque demarrage, mais qui ne sera pas liste par cet outil.
Faut vraiment etre naif pour penser qu'un outil va pouvoir te permettre de lister absolument tous les programmes executes au cours du demarrage.
# absolument n'importe quoi !
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 4.
C'est faux, il y a enorment d'endroits ou il est possible d'inserer des virus, et ca ne se limite pas a la base de registre.
D'ailleur, je vire le 3/4 des virus et autre malware de mon réseau à la main.
3/4 de ceux que tu remarque. Tu connais la base de registre par coeur pour reconnaitre tout truc anormal ? Tu fais comment pour retirer un virus qui s'insere dans notepad.exe ou machintruc.dll ?
D'ailleurs, les antivirus ne detectent que les virus qu'ils connaissent, et il est tres simple d'en ecrire un qui ne sera pas detecte (et a moins qu'il soit bien repandu ou tres actif, il risque de continuer a ne pas etre detecte). Le seul moyen de s'assurer que la machine n'est pas infectee, c'est de calculer les sommes md5 (ou equivalent) de tous les binaires, et les comparer avec ceux des binaires originaux.
[^] # Re: Possible
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 2.
Leur code est sans doute genere par un autre outil, et ce code n'est pas fait pour etre lu par des humains.
Je pense pas qu'ils rendent le code volontairement illisible.
[^] # Re: Possible
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 3.
Pas du tout. On trouve quelques centaines de milliers de virus pour Windows qui font exactement ca. Ca pose absolument aucun probleme.
En plus vu qu'il n'est pas executer par le système mais par la machine virtuel executant le script. Un ps ne montra rien.
Ben tout depend si le script fork ou pas. Et c'est pareil avec un binaire, si tu rajoutes quelquechose dedans, ca se voit pas avec un ps non plus.
Autre avantage des scripts est que tu peux très facilement les brouillers à la différence d'un binaire, ou il faudrait presque que le virus se ballade avec son gcc embarqué :)
Qu'est ce que tu appelles brouiller ? En quoi brouiller un script est plus simple que brouiller un binaire ? Et quel est l'interet ?
De toute facon, qui va lire ses binaires a la main ?
# oui !
Posté par Anonyme . En réponse au journal Affligeant [Mort d'un enfant]. Évalué à 6.
et ceux qui tirent des conclusions avant d'avoir tous les elements de l'affaire en main:
http://www.lexpress.fr/info/infojour/reuters.asp?id=33879&am(...)
ou qui decident de l'issue d'un proces avant que celui ci n'aie commence:
http://maitre-eolas.fr/2006/12/20/494(...)
tu en penses quoi ?
tu diras bonjour à JP Pernault de ma part...
[^] # Re: Compilés statiquement
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 1.
Bah sa on y peut rien, il faut bien que les logiciels soient compilés différemment selon les contraintes imposées par chaque distribution.
Je pense que ce que tu n'as pas compris c'est que le but d'une distribution est justement de fournir des logiciels à l'utilisateur.
Le logiciel ne prend pas en charge son installation, c'est un logiciel tiers qui s'en occupe comme par exemple aptitude, rpmdrake, autopackage...
Il n'est pas possible d'imposer une distribution unique, mais c'est sur qu'il vaut s'unir plutot que de développer trop de systèmes différents.
[^] # Re: Compilés statiquement
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 1.
Sa doit pouvoir se vérifier en regardant le nombre de paquets dans les dépots.
[^] # Re: Compilés statiquement
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 2.
De plus, tu peux toujours faire toi même les paquets dont tu as besoin, les installer et en faire profiter les autres en les envoyants à ta distribution.
Au début il est vrai que ce mode de fonctionement est assez déroutant mais on se rend vite compte que le système de paquets est très très pratique.
[^] # Re: Possible
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 4.
[^] # Re: Possible
Posté par Anonyme . En réponse au journal A l'avenir, Linux et Firefox seront-ils plus sensible que Windows/IE au logiciel malveillant.. Évalué à 4.
Bref, heureusement que j'achète régulièrement des Linux Pratique, il y a pas mal de CD Live à l'intérieur. Ça m'a permis de booter et de lancer le téléchargement d'une mini-iso pour pouvoir réinstaller mon système tout à l'heure.
C'est marrant, parce que dans mes fouilles, j'ai retrouvé moults CD de Windows toutes versions confondues, alors qu'elles ne me servent plus depuis des années (et ce n'est pas près de changer !).
[^] # Re: .
Posté par Anonyme . En réponse au message Pointeurs et structures. Évalué à 2.
parce que l'operateur * sert a dereferencer un pointeur.
si alloc est un pointeur, *alloc correspond a l'adresse stockee dans alloc
et alloc->addrStart est equivalent a (*alloc).addrStart (les parentheses sont importantes)
si alloc est une variable statique, *alloc ne correspond pas a une adresse memoire, mais a la valeur d'une variable. Donc *alloc.addrStart equivaut a prendre cette valeur comme une adresse memoire (ce qu'elle n'est pas sauf effet de bord) et a regarder ce qu'elle contient, ce qui mene irremediablement a une erreur.
[^] # Re: .
Posté par Anonyme . En réponse au message Pointeurs et structures. Évalué à 7.
# Compilés statiquement
Posté par Anonyme . En réponse au journal Utiliser un système libre.... Évalué à 1.
On est déjà libres d'installer ce qu'on veut, on est content quand y'a des paquets et on rale quand y'en a pas mais il faut bien que quelqu'un les fasse...
Personellement je trouve mon système assez simple d'utilisation, même plus simple que Windows.
# ahahah
Posté par Anonyme . En réponse au journal Ryzom restera propriétaire. Évalué à 2.
Le truc encore plus fun, c'est qu'un ami (je ne siterais pas de nom), s'est amusé à bidouiller ogame et c'est rendu compte que ces gens là ne savaient pas coder. ogame est bourré à ras bord de failles de niveau débutant, à un tel point que le célèbre mode payant rajoutant des infos est obtenu avec quelques petits javascript sans le moindre problème et pour pas un sous. Je ne parlerais même pas des bugs en série, jamais corrigés, et surtout de la facilité avec laquelle on peut faire jouer des fermes entières de bots sans jamais se faire détecter.
Bref, Ryzom, ça craint, et même s'ils proposent un client Linux, je ne lancerai jamais le binaire sans avoir pu lire les sources de A à Z.
Ah ui, il parait aussi que Gameforge a la gachette légale facile, mais rien à battre, s'ils ne sont pas contents de ce que je raconte, ils n'ont qu'à venir le dire ici.
[^] # Re: Juste une petite remarque
Posté par Anonyme . En réponse au message creation d'une matrice de sous mot. Évalué à 2.
pour strlen(x)=3,
i<strlen(x)+1 (soit i<4) appliquera la boucle pour i={0,1,2,3}
i<=strlen(x) (soit i<=3) appliquera la boucle pour i={0,1,2,3}
le +1 ne permet pas "d'eviter d'oublier le dernier caractere" mais prend en compte l'octet NULL de terminaison de la chaine, ce qui semble etre une erreur.
# .
Posté par Anonyme . En réponse au message Pointeurs et structures. Évalué à 4.
unsigned int *ptr=addrStart; /* declaration et initialisation du pointeur */
*ptr=Value; /* Value est copiee a l'adresse pointee par ptr */
mais j'ai le sentiment que ce n'est pas exactement ce que tu recherches, me gourre-je ?
# rien compris
Posté par Anonyme . En réponse au message creation d'une matrice de sous mot. Évalué à 3.
Sans comprendre le probleme en lui meme, ton code me semble bizarre lui aussi:
tu reserves la taille d'un entier (taille variable en fonction de l'architecture sur laquelle tu compiles ton code) en memoire sur laquelle tu fais pointer ton pointeur pos. Tu ne pourras donc stocker qu'un seul entier a cet emplacement. Je doute que ce soit ce que tu souhaites faire a l'origine (utiliser un tableau, donc priori un serie d'entiers).
En C les commentaires sont soient entre /* et */, soient sur une seule ligne precedes de //
Le // a la fin de ton commentaire est inutile.
Dans tes boucles, tu t'obstines a utiliser comme condition strlen(s)+1 , ce qui signifie que tu vas appliquer le contenu de ta boucle sur toute la longueur de ta chaine [strlen(s)] ET sur l'octet NULL terminant ta chaine [+1]... je doute de l'utilite d'un tel comportement.
enfin, ne sachant pas ce que font les fonctions AllouerMatrice et position, il va etre difficile de savoir ce que fait ton morceau de code
Essaies d'etre plus clair dans l'expose de ton probleme et fourni la totalite du code que tu souhaites verifier