Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2561 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  11910  11911  11912  ..  19544  19545  19546  19547  19548  19549
Auteur Sujet :

[blabla@prog] Omaha Beach : le topic dédié

n°1567389
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 16:51:57  profilanswer
 

Reprise du message précédent :

Mackila a écrit :

En fait j'aurais aimé que quelqu'un me dise qu'il existe des trucs qui se font passer pour des systèmes de fichiers mais qui en fait sont des interfaces pour des SCM (on trouve bien des programmes qui permettent d'avoir des lecteurs de disques qui sont en fait des redirections sur un ftp, bah j'voudrais la même chose avec un SCM  [:dawa] )


Marrant, je pensais à la même chose ce matin dans le métro.
Linus vantait les perfs de son SCM git sur une vidéo que j'ai matée l'autre jour, disant que créer une version du kernel repo ne prenait qu'une fraction de seconde sur un PC récent.

 

Pourquoi ne pas faire une sorte de gitfs qui agirait sur des partitions données ? (à supposer que l'on puisse trouver des algos suffisamment performants pour que les perfs soient scalables jusqu'à des millions de fichiers)
Un git daemon ferait une version de la partition toutes les n minutes par exemple, ne sauvegardant que les diffs.

 

Avantages:
- possibilité de revenir à tout moment en cas de corruption/attaque de vers/etc à un état donné du disque
- intégrité des données verifiée par hash
- le SCM est directement intégré dans le système et les commandes sont directement passées au shell.

 

L'OS VMS des Dec VAX versionnait d'ailleurs tous les fichiers.
Puis en y réfléchissant, il y a quand même au moins un problème majeur: quand le système effectue une sauvegarde complète dans un système de versionnement à la SVN/git, cette opération doit être atomique. Ce qui interdit tout accès en écriture pednant toute l'opération. :/
Puis faire une sauvegarde de fichiers de plusieurs dizaines de Mo, c'est pas instantané.

Message cité 3 fois
Message édité par el muchacho le 30-05-2007 à 17:18:57
mood
Publicité
Posté le 30-05-2007 à 16:51:57  profilanswer
 

n°1567398
schnapsman​n
Zaford Beeblefect
Posté le 30-05-2007 à 17:00:27  profilanswer
 

Ci-gît Linus Torvald, enculeur de pingouins.

n°1567400
0x90
Posté le 30-05-2007 à 17:01:51  profilanswer
 

el muchacho a écrit :


Puis en y réfléchissant, il y a quand même au moins un problème majeur: quand le système effectue une sauvegarde complète dans un système de versionnement à la SVN/git, cette opération doit être atomique. Ce qui interdit tout accès en écriture pednant toute l'opération. :/
Puis faire une sauvegarde de fichiers de plusieurs dizaines de Mo, c'est pas instantané.


A partir du début de la sauvegarde, tu stoque toute les écritures dans une zone séparée, à la fin de la sauvegarde tu commite tout ça dans le "vrai" fs. Le seul problème c'est si t'as le temps d'écrire plus que l'espace libre dans le temps de la sauvegarde.
 
Mais sinon y'a ptêtre la solution des triggers genre inotify, pas besoin de faire des scans périodiques, tu est avertit à chaque accès d'un certain type sur les fichiers que tu veut.


---------------
Essais en C++0x: signaux et slots, compilateur brainf*ck statique; en Java: stack web compacte.
n°1567401
_darkalt3_
Proctopathe
Posté le 30-05-2007 à 17:02:01  profilanswer
 

Un outils de vérification respect de règles de codage automatique, multi langages peut-être, dont on pourrait étendre les règles et s'en faire des persos, ca vous dit quelque chose ?


---------------
Top of the plop - Eternity4Life - Putain ça craint... Je crache du sang et c'est pas le mien.
n°1567403
schnapsman​n
Zaford Beeblefect
Posté le 30-05-2007 à 17:03:30  profilanswer
 

el muchacho a écrit :


Pourquoi ne pas faire une sorte de gitfs qui agirait sur des partitions données ?
Un git daemon ferait une version de la partition toutes les n minutes par exemple, ne sauvegardant que les diffs.


zfs gere pas mal de trucs en delta, d'après ce que j'ai lu rapidement ici ou là... :o

n°1567408
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 17:10:22  profilanswer
 

0x90 a écrit :

A partir du début de la sauvegarde, tu stoque toute les écritures dans une zone séparée, à la fin de la sauvegarde tu commite tout ça dans le "vrai" fs. Le seul problème c'est si t'as le temps d'écrire plus que l'espace libre dans le temps de la sauvegarde.
 
Mais sinon y'a ptêtre la solution des triggers genre inotify, pas besoin de faire des scans périodiques, tu est avertit à chaque accès d'un certain type sur les fichiers que tu veut.


Ah oui, c'est pas idiot, ça. Tu rediriges tes écritures sur une zone spéciale pendant le commit.
Donc en théorie, un tel filesystem est possible, en fait (même si sans doute pas coton à implémenter...)
Pour ce qui est d'une sauvegarde par écriture, ça me parait dangereux, dans la mesure où si un programme multiplie les écritures à toute vitesse (genre un download de film en streaming), tu vas multiplier les commits de façon inconsidérée. En plus, c'est d'un intérêt assez discutable, parce que tu ne vas pas t'amuser à revenir sur toutes les versions générées par les x dernières écritures quelconques sur le disque.

n°1567411
red factio​n
Posté le 30-05-2007 à 17:13:42  profilanswer
 

uriel a écrit :

up [:petrus75]
 
 
 pour vous occuper en attendant la reponse: http://mykeyboard.co.uk/microswitch/


genre ça marchera jamais la connection avec les fils rouges...  
http://mykeyboard.co.uk/microswitch/graphics/construction_11.jpg

n°1567418
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 17:24:53  profilanswer
 

schnapsmann a écrit :

zfs gere pas mal de trucs en delta, d'après ce que j'ai lu rapidement ici ou là... :o


ah ouais, zfs, ça a l'air très très balèze, comme truc :jap:  :jap:
Ca a même l'air de ressembler carrément au système qu'on vient de décrire: :love:  :love:
"All operations are also copy-on-write. Live data is never overwritten. ZFS writes data to a new block before changing the data pointers and committing the write."
# Always-valid on-disk state
# Consistent, reliable backups
# Data rollback to known point in time
"ZFS is the only file system that conducts end-to-end 64-bit checksums on all data to prevent silent data corruption"
http://www.sun.com/2004-0914/feature/

 

C'est exactement ça. Putain, sont forts chez Sun, quand ils veulent !


Message édité par el muchacho le 30-05-2007 à 17:25:53
n°1567420
Lam's
Profil: bas.
Posté le 30-05-2007 à 17:27:11  profilanswer
 

Question conne: en python, pour convertir une liste de string [a,b] en "a b" (donc faire un join() avec des espaces entre les éléments), il y a une méthode simple et élégante ?
 
Parce que bon:
   args = "".join(["%s " % (s) for s in sys.argv[1:]])
C'est moche.

n°1567421
0x90
Posté le 30-05-2007 à 17:28:18  profilanswer
 

>>> lala = ["coin", "plop"]
>>> " ".join(lala)
'coin plop'
Ou alors j'ai pas compris la question...
( le string sur lequel tu fais join est le séparateur )

Message cité 2 fois
Message édité par 0x90 le 30-05-2007 à 17:28:37

---------------
Essais en C++0x: signaux et slots, compilateur brainf*ck statique; en Java: stack web compacte.
n°1567423
Loom the G​loom
Even coders get the blues...
Posté le 30-05-2007 à 17:30:35  profilanswer
 

:sleep:


---------------
Music|Market|Feed|Loom|DVD
n°1567425
Chaos Inte​stinal
Posté le 30-05-2007 à 17:32:17  profilanswer
 

Unbelieveubale [:johneh]

n°1567426
Lam's
Profil: bas.
Posté le 30-05-2007 à 17:33:07  profilanswer
 

0x90 a écrit :

>>> lala = ["coin", "plop"]
>>> " ".join(lala)
'coin plop'
Ou alors j'ai pas compris la question...
( le string sur lequel tu fais join est le séparateur )


Nan c'est rien, c'est moi qui suit d'une connerie rare. J'ai un peu zappé ce qui se trouve à gauche du join... [:kiki]
Donc, oui, c'est bien ça que je voulais faire.

n°1567427
Masklinn
í dag viðrar vel til loftárása
Posté le 30-05-2007 à 17:36:10  profilanswer
 

el muchacho a écrit :

Pourquoi ne pas faire une sorte de gitfs qui agirait sur des partitions données ? (à supposer que l'on puisse trouver des algos suffisamment performants pour que les perfs soient scalables jusqu'à des millions de fichiers)
Un git daemon ferait une version de la partition toutes les n minutes par exemple, ne sauvegardant que les diffs.


http://en.wikipedia.org/wiki/ZFS#Snapshots_and_clones http://www.apple.com/macosx/leopard/timemachine.html http://en.wikipedia.org/wiki/Ext3cow http://en.wikipedia.org/wiki/NILFS http://en.wikipedia.org/wiki/Fossil_%28file_system%29


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1567430
pactole@
la croissance est sous contrôl
Posté le 30-05-2007 à 17:40:47  profilanswer
 

mon fichier .properties est listé dans le classpath -cp de la commande de lancement de la JVM.
 
j'ai fait cette methode pour recuperer les properties
 
 

Code :
  1. private static Properties loadProperties(String propertieFileName) throws IOException {
  2.  InputStream inputSream = ClassLoader.getSystemResourceAsStream(propertieFileName);
  3.  if (inputSream == null)
  4.   throw new FileNotFoundException("Could not find " + propertieFileName + ". The file must be in the classpath or eclipse buildpath" );
  5.  Properties props = new Properties();
  6.  props.load(inputSream);
  7.  return props;
  8. }


 
 
Quand je fait un "run as ..." sous eclipse ça marche quand le fichier properties en question est dans un dossier du buildpath, sinon ça merde tout comme si je lance en ligne de commande.
 
je ne veux pas metre ce fichier de config soit dans un jar car certaines variables doivent être modifiées depuis un shell.
 

n°1567431
Masklinn
í dag viðrar vel til loftárása
Posté le 30-05-2007 à 17:41:13  profilanswer
 

_darkalt3_ a écrit :

Un outils de vérification respect de règles de codage automatique, multi langages peut-être, dont on pourrait étendre les règles et s'en faire des persos, ca vous dit quelque chose ?


http://en.wikipedia.org/wiki/Lint_programming_tool
 
Il y en a des dérivations sous tous les noms (JSLint en JS, PyLint et PyChecker en Python, ...)

0x90 a écrit :

>>> lala = ["coin", "plop"]
>>> " ".join(lala)
'coin plop'
Ou alors j'ai pas compris la question...
( le string sur lequel tu fais join est le séparateur )


Pas mieux :o


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1567440
Lam's
Profil: bas.
Posté le 30-05-2007 à 17:57:39  profilanswer
 

Tiens, je connaissais pas setDaemon (en Java ou en Python). C'est pratique.

n°1567442
nraynaud
trainoo.com
Posté le 30-05-2007 à 18:04:02  profilanswer
 
n°1567443
Lam's
Profil: bas.
Posté le 30-05-2007 à 18:05:07  profilanswer
 

Tu m'excuses, mais je suis resté sur le meilleur modèle de threads du monde: le modèle c++/pthreads.

n°1567444
zapan666
Tout est relatif
Posté le 30-05-2007 à 18:11:48  profilanswer
 

Code :
  1. def megadeth():


Ca, c'est du bon nom de fonction


---------------
my flick r - Just Tab it !
n°1567446
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 18:17:58  profilanswer
 

pactole@ a écrit :

mon fichier .properties est listé dans le classpath -cp de la commande de lancement de la JVM.

 

j'ai fait cette methode pour recuperer les properties

 


Code :
  1. private static Properties loadProperties(String propertieFileName) throws IOException {
  2.  InputStream inputSream = ClassLoader.getSystemResourceAsStream(propertieFileName);
  3.  if (inputSream == null)
  4.   throw new FileNotFoundException("Could not find " + propertieFileName + ". The file must be in the classpath or eclipse buildpath" );
  5.  Properties props = new Properties();
  6.  props.load(inputSream);
  7.  return props;
  8. }
 


Quand je fait un "run as ..." sous eclipse ça marche quand le fichier properties en question est dans un dossier du buildpath, sinon ça merde tout comme si je lance en ligne de commande.

 

je ne veux pas metre ce fichier de config soit dans un jar car certaines variables doivent être modifiées depuis un shell.


Et avec le chemin complet ? (je sais , ça parait pas logique...)

Message cité 1 fois
Message édité par el muchacho le 30-05-2007 à 18:18:30
n°1567450
Lam's
Profil: bas.
Posté le 30-05-2007 à 18:23:18  profilanswer
 

zapan666 a écrit :

Code :
  1. def megadeth():


Ca, c'est du bon nom de fonction


Pourquoi il ne l'a pas plutôt appellé jam, leppard, ou enestré ?  

n°1567453
Shinuza
This is unexecpected
Posté le 30-05-2007 à 18:27:18  profilanswer
 

Quand j'ouvre un groupe de bookmarks avec FF, je perds tous mes cookies d'authentification [:bien]


---------------
“When I use a word, it means just what I choose it to mean—neither more nor less.” - Humpty Dumpty
n°1567454
nraynaud
trainoo.com
Posté le 30-05-2007 à 18:28:47  profilanswer
 

merde, j'avais que leppard en stock, je te rends ton point perdu pour cause de setDaemon()


---------------
trainoo.com, re-faisez du sport | Mes derniers entraînements
n°1567457
pactole@
la croissance est sous contrôl
Posté le 30-05-2007 à 18:43:19  profilanswer
 

el muchacho a écrit :

Et avec le chemin complet ? (je sais , ça parait pas logique...)


 
bah je veux éviter d'utiliser le chemin complet.
 
Je l'ai déjà fait sinon avec variable d'environnement genre java -Dconfig.path=/bidule/truc/muche/chouette/machin et le recuperer ce path avec getproperties, mais ça oblige a seter une autre variable d'environnement.
Et je vais revenir à cette solution.

n°1567467
Lam's
Profil: bas.
Posté le 30-05-2007 à 19:03:37  profilanswer
 

Pourquoi on a pas le droit à ça nous ?  
   http://www.google.co.kr/ig?sp=korea&hl=ko
 

n°1567468
vapeur_coc​honne
méchant
Posté le 30-05-2007 à 19:06:06  profilanswer
 
n°1567475
Masklinn
í dag viðrar vel til loftárása
Posté le 30-05-2007 à 19:24:01  profilanswer
 

Lam's a écrit :

Pourquoi on a pas le droit à ça nous ?  
   http://www.google.co.kr/ig?sp=korea&hl=ko


T'es un peu fatigué non?
 
PS: Java c'est naze, ya même pas de méthode capitalize sur les String bordel [:mlc]


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1567481
gfive
Posté le 30-05-2007 à 19:54:19  profilanswer
 

Masklinn a écrit :

T'es un peu fatigué non?
 
PS: Java c'est naze, ya même pas de méthode capitalize sur les String bordel [:mlc]


 
toUpperCase?

n°1567485
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 20:02:42  profilanswer
 

Mackila a écrit :

Yo les moules.

 

J'ai un environnement de développement spécifique, qui permet de créer des applications.
Le dit environnement de développement permet d'organiser son application sous forme arborescente (par "objets", qui contiennent leur code de comportement, leurs parties d'IHM, etc,...).
L'application correspond sur le disque à un ensemble de fichiers et de répertoires qui suit la structure de l'application vue de l'environnement de développement (= si je crée une IHM X dans un objet Z de la branche Y de l'application, ca va créer un fichier X.ihm dans le sous répertoire Y\X de l'application).

 

Admettons maintenant que la dite application se voit stockée sur le disque dans un dossier de près de 200Mo pour un total de 8000 fichiers (pour 1500 dossiers).

 

Admettons qu'il y ait plusieurs personnes qui travaillent à faire évoluer la dite application (en passant par l'environnement de développement spécifique) de facon simultanée. Que donc c'est la merde à faire des merges à la main des modifs de chacun au fur et à mesure  [:pingouino] . Que le suivi des modifications se fait dans un fichier evolutions.txt dans le dossier racine de l'application, la seule fonction de suivi de version de l'environnement de développement étant une liste de numéro de version avec le texte associé dans une pauvre boite de dialogue planquée dans un sous menu...  :sweat:

 

C'est l'horreur  [:madlo]

 

Arrivant la dessus, je dis "Je vais vous sauver  :sol: " et me propose de tester ce que donnerait l'utilisation de SVN la dessus. Une fois résolu le problème "l'environnement de dev stocke le chemin absolu de l'appli dans TOUS les fichiers" à coup de "faites pas chier, travaillez tous dans le même dossier (à coup de subst si besoin)", on se heurte maintenant à d'autres problèmes :
- [problème 1] Si on renomme un objet (depuis l'environnement de dev), cela se traduit par le renommage du dossier associé. Problème, SVN pense alors qu'on a viré le dossier portant l'ancien nom de l'objet (missing) et qu'il y a un nouveau dossier portant le nouveau nom. Normal jusque la, on est obligés pour renommer un objet, de faire la manip dans l'environnement de dev, d'enregistrer, d'aller dans le dossier correspondant dans la copie de travail SVN, de renommer le nouveau dossier en ancien dossier, puis de faire le renommage en passant par les commandes SVN.
- [problème 2] Si on supprime un objet (depuis l'environnement de dev), cela se traduit par :
  * la modification d'un fichier d'index dans le répertoire parent de l'objet ;
  * la suppression du dit répertoire sur le système de fichiers ;
Le problème étant la que le fichier d'index est bien modifié (OK), donc l'environnement de dev ne "voit" plus l'objet, mais le dossier (ni tout son contenu) n'est pas supprimé car le répertoire .svn rajouté par tortoise SVN dans la copie de travail l'en empeche -> on est obligés d'aller faire la suppression soi même.

 

En gros, pour certaines manips (renommage, suppression), on est obligés de faire la manip 2 fois : une fois avec l'environnement de développement, et une fois avec tortoise.

 

C'est très très chiant, sans compter le fait que quelqu'un qui ne connait pas le truc (ou l'a tout simplement oublié) va flinguer tout l'historique des fichiers. [:petrus75]

 

Vous qui êtes tous des experts, avez vous une solution ?


Essaye voir avec Mercurial. Mercurial peut il me semble détecter les renommages de fichiers au commit, si on le désire. De plus, il ne met rien dans la copie locale. Donc il n'a aucun des inconvénients que tu as cité.

 

edit: ah non, j'ai écrit une çonnerie, il ne détecte pas le rename. Il traite le rename comme une suppression-création, ce qui est dommage.

Message cité 1 fois
Message édité par el muchacho le 30-05-2007 à 20:07:40
n°1567490
vapeur_coc​honne
méchant
Posté le 30-05-2007 à 20:15:23  profilanswer
 
n°1567502
_darkalt3_
Proctopathe
Posté le 30-05-2007 à 21:05:42  profilanswer
 

Masklinn a écrit :

http://en.wikipedia.org/wiki/Lint_programming_tool
 
Il y en a des dérivations sous tous les noms (JSLint en JS, PyLint et PyChecker en Python, ...)


 
Thx :jap:
 


---------------
Top of the plop - Eternity4Life - Putain ça craint... Je crache du sang et c'est pas le mien.
n°1567506
Shinuza
This is unexecpected
Posté le 30-05-2007 à 21:15:47  profilanswer
 

Masklinn a écrit :

http://en.wikipedia.org/wiki/Lint_programming_tool
 
Il y en a des dérivations sous tous les noms (JSLint en JS, PyLint et PyChecker en Python, ...)
 
Pas mieux :o


Je pensais que JSLint était un outils de vérification de syntaxe js  [:sinclaire]


---------------
“When I use a word, it means just what I choose it to mean—neither more nor less.” - Humpty Dumpty
n°1567516
Mackila
Posté le 30-05-2007 à 21:32:58  profilanswer
 
n°1567521
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 21:45:50  profilanswer
 


 :lol: Maintenant, je veux le même mais qui permette de tourner les pages d'une seule main. :D

n°1567522
Masklinn
í dag viðrar vel til loftárása
Posté le 30-05-2007 à 21:46:35  profilanswer
 

gfive a écrit :

toUpperCase?


Toute une éducation à refaire [:sisicaivrai]
 

Code :
  1. >>> "foo".upper()
  2. 'FOO'
  3. >>> "foo".capitalize()
  4. 'Foo'
  5. >>>


Ya comme une nuance [:aloy]  
 
Pour faire ça avec toUpperCase, faut écrire une horreur du style

Code :
  1. String s = "foo";
  2. s.substring(0,1).toUpperCase().concat(s.substring(1));


[:bien]

Shinuza a écrit :

Je pensais que JSLint était un outils de vérification de syntaxe js  [:sinclaire]


Pour JSLint je sais pas mais je pense qu'il est comme les autres: il est possible de le configurer pour checker certaines règles genre noms de variables, syntaxe des noms de fonctions, indentation, ....
 
Ce qui est ce qu'il a demandé [:spamafote]


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1567531
el muchach​o
Comfortably Numb
Posté le 30-05-2007 à 22:03:06  profilanswer
 

Bon, va falloir que je cherche pourquoi mon PC reboote de temps en temps sans raison. [:benou]

n°1567540
flo850
moi je
Posté le 30-05-2007 à 22:27:08  profilanswer
 

el muchacho a écrit :

Bon, va falloir que je cherche pourquoi mon PC reboote de temps en temps sans raison. [:benou]


par ordre de priorité decroissante :
ram a tester avec memtest86+
drivers foireux
alim ( n'importe quel soft de monitoring )
HDD ( scandisk )

 


bon sinon, tu install occt pour faire chauffer un peu ta machine et voir ce que ca donne

 


EDIT : testage de vista

Message cité 1 fois
Message édité par flo850 le 30-05-2007 à 22:27:33
n°1567541
gfive
Posté le 30-05-2007 à 22:31:59  profilanswer
 

Masklinn a écrit :

Toute une éducation à refaire [:sisicaivrai]
 

Code :
  1. >>> "foo".upper()
  2. 'FOO'
  3. >>> "foo".capitalize()
  4. 'Foo'
  5. >>>


Ya comme une nuance [:aloy]  
 
Pour faire ça avec toUpperCase, faut écrire une horreur du style

Code :
  1. String s = "foo";
  2. s.substring(0,1).toUpperCase().concat(s.substring(1));


[:bien]
[:spamafote]


 
Ah ouais, oups, j'avions pas compris à qui servait capitalize.
 

n°1567547
Harkonnen
Modérateur
SQL is evil
Posté le 30-05-2007 à 22:52:29  profilanswer
 

alors les esquimaux, on s'tripote le batonnet ?

n°1567568
nraynaud
trainoo.com
Posté le 30-05-2007 à 23:30:52  profilanswer
 
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  11910  11911  11912  ..  19544  19545  19546  19547  19548  19549

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@prog] Omaha Beach : le topic dédié


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware