Accueil » Forum » Centrale informatique » Aide à la programmation générale

  • Aide à la programmation générale -
4 Pages1 2 3 4

Le 10/08/2007 à 21:01:15

Johann
Avatar de Johann
Inscrit le : 12/12/2006
Commentaires : 1697

Tiens, tu es la première personne à me dire ça. Qu’utilises-tu maintenant, enfin pour le développement web, si tu continues à en faire?

Ça m’étonne pas vraiment, c’est un point de vue que je retrouve plutôt chez une certaine catégorie de professionnels. Tu dois pas fréquenter les bons cercles. Là où je traîne sur Freenode, les deux ennemis à abattre sont Java et PHP :o
J’ai pas abandonné le web pour autant, je suis toujours sur LE après tout. C’est pas bien difficile à deviner vu le sujet de discussion avec Hades_L, mais je suis passé au couple Python/Django. J’ai pris la décision quand j’ai voulu chercher un bon framework pour la prochaine version de Lost Edens et que j’ai trouvé l’offre du monde PHP incomparable avec ce qu’offraient Ruby et Python.

Qu’entends-tu par là? De PHP6 et des nombreuses restrictions et abbérations qu’il apporte? Si oui, je pense qu’on a encore du soucis à se faire quand on voit que beaucoup des hébergeurs propose encore PHP4 alors que le support arrive à son terme. Après il est sur les professionnels vont déserter, donc faudra voir ce qu’il reste.

Exactement. Encore que la plupart des changements que j’ai pu voir sont surtout un ménage des erreurs du passé, quelque chose qui aurait du être fait il y a déjà bien longtemps. Mais j’ai été plié de rire quand j’ai entendu l’histoire des deux PHP6. Et j’ai encore en mémoire toute l’histoire pas très nette autour de la PHP Security Team il n’y a pas si longtemps que ça.
Pour ce qui est de PHP4, ils ont prévu de stopper son développement d’ici la fin de l’année je crois, plus qu’à espérer que le signal sera suffisamment fort pour convaincre les derniers résistants.
C’est pas vraiment les professionnels qui m’inquiètent le plus, vu que ce milieu a un meilleur contrôle sur ce qu’il fait et sur l’environnement de distrubtion. Je pense plutôt aux applications faites pour être distribuées. Eux doivent se débrouiller pour tourner sur le plus de configurations possibles, et le langage ne facilite vraiment pas le travail à ce niveau. De tête, je peux citer le problème de la librairie standard pas vraiment standard vu que librement modifiable par le sysadmin pour le meilleur et pour le pire. Ou encore les erreurs du passé comme magic_quote et safe_mode. Avec PHP6, on se débarrasse des ces dernières, mais on se retrouve carrément avec deux versions du langage. Pas sûr que ça va améliorer les choses. Je sais que je devrais être optimiste, que ça ne sortira pas avant au moins une bonne année, mais de toutes façon c’est plus vraiment mon problème. Je peux donc maintenant me contenter d’apprécier le spectacle.

Hades_L > Je trouve que rajouter ce genre de logique dans des tags est plutôt une mauvaise idée. extra_context n’a rien de bien complexe, c’est juste un dictionnaire de valeurs à passer dans la template. Par exemple

list = Obj.objects.all()
urlpatterns = patterns('django.views.generic.list_detail',
    (r'^$', 'object_list', dict(list, paginate_by=10, extra_context={'categories': Categorie.object.all})),
)

Tu peux remarquer l’absence de parenthèses après all, je peux passer un “callable” via extra_context, il sera appelé juste avant le rendu. Ça évitera de faire un appel à la base de données lors de l’itération sur urlpatterns.

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3605/#3605

Le 10/08/2007 à 21:24:36

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

Ouais, c’est logique en fait le extra_context (:

Sinon cet aprem’ j’ai implémenté le solution du templatetags, je trouve ça pas mal moi, du coup avec ça, j’ai dérivé une première fois ma template de base pour ajouter les catégories dans une “sidebar”, et mes autres templates dérive de ce nouveau template. Ca fait très “DRY” je trouve (:. Avec la solution de l’extra_context, je serais obligé de répété l’opération pour chacune des vues, à moins que tu as une meilleure solution :D

Sinon j’ai pas trouvé comment, avec les generics, lister des objets en fonction d’un paramètre (/journal/[categorie]). J’ai donc fait une vue personalisée, pas d’autre solution là non plus ?

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3606/#3606

Le 10/08/2007 à 21:59:46

Johann
Avatar de Johann
Inscrit le : 12/12/2006
Commentaires : 1697

Sinon cet aprem’ j’ai implémenté le solution du templatetags, je trouve ça pas mal moi, du coup avec ça, j’ai dérivé une première fois ma template de base pour ajouter les catégories dans une “sidebar”, et mes autres templates dérive de ce nouveau template. Ca fait très “DRY” je trouve (:. Avec la solution de l’extra_context, je serais obligé de répété l’opération pour chacune des vues, à moins que tu as une meilleure solution :D

Disons que j’aime pas l’idée de balancer du code de DB dans la template. Pour moi ça viole le cloisonnement que je m’éfforce de respecter.

j’ai pas trouvé comment, avec les generics, lister des objets en fonction d’un paramètre (/journal/[categorie]). J’ai donc fait une vue personalisée, pas d’autre solution là non plus ?

Sisi. Suffit de passer un Foo.objects.filter(monparam=‘bar’) au lieu Foo.objects.all()

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3607/#3607

Le 10/08/2007 à 23:15:03

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

Ouais je connais les filters, en fait mon problème, c’est pour récupérer la valeur de [category] pour faire le filtre :/

En fait là j’ai ça :

urlpatterns += patterns('',    
    (r'^(?P<cat>[-\w]+)$', 'adslbox.blog.views.list'),
)

qui appelle donc une vue de ce genre

def list(request, cat=''):
   try:
      c = Category.objects.get(stripped_name = cat)
      p = Post.objects.filter(category=c)
      #etc...

Le but ça serait donc de transformer ça pour utiliser les vues génériques à la place, mais là je bloque, comment je créé ma queryset ? Il y a un moyen de récupérer la valeur capturée dans l’url directement pour écrire la queryset ?

PS : Textile ça me saoule :D

Edit echy > bc[py] à la place de bc[python], on utilise les extensions comme dénominateur. ^^

Edit²: merci :D Je m’étais basé sur le début du topic textile ou l’exemple était donné avec bc[python], c’est vot’ faute quoi :D

_________________

Edité par : Hades_L
  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3608/#3608

Le 11/08/2007 à 00:07:55

Johann
Avatar de Johann
Inscrit le : 12/12/2006
Commentaires : 1697

Dans ce cas là, ce que tu peux faire c’est utiliser une vue générique object_details sur la catégorie, puis récupérer tous les posts concernés dans la template via une relation inverse.

{% for post in object.post_set.all %}
bla bla bla
{% endfor %}

Sinon, je sais pas vraiment où est le problème avec bc[python], ça marche très bien avec moi.

from __future__ import braces

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3609/#3609

Le 11/08/2007 à 11:23:35

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

J’ai réussi à le faire avec ce que tu m’as montré, merci :)

Ya plus qu’a trier les résultats dans l’ordre antichronologique et ça sera bon :D

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3610/#3610

Le 11/09/2007 à 18:52:57

Angellore
Avatar de Angellore
Inscrit le : 16/02/2007
Commentaires : 25

Hellow

J’ai une petite erreur python que je n’arrive pas à résoudre :/
J’espère que vous serez plus efficace que moi (ca va pas être dur xD)

IndentationError at /blog/
unexpected indent (urls.py, line 11)
Request Method:    GET
Request URL:       http://localhost:8000/blog/
Exception Type:   IndentationError
Exception Value:  unexpected indent (urls.py, line 11)
Exception Location:       /usr/lib/python2.5/site-packages/django/core/urlresolvers.py in _get_urlconf_module, line 251
Python Executable:         /usr/bin/python
Python Version:    2.5.1

Le-dit fichier urls.py:

from django.conf.urls.defaults import *


urlpatterns = patterns('monBlogDjango.blog.views',
    (r'^$', 'index'),
    (r'^(?P<blog_year>\d{4})/$', 'post_list'),
    (r'^(?P<blog_year>\d{4})/(?P<blog_month>\d{1,2})/$', 'post_list'),
    (r'^(?P<blog_year>\d{4})/(?P<blog_month>\d{1,2})/(?P<blog_day>\d{1,2})/$', 'post_list'),
    (r'^(?P<blog_year>\d{4})/(?P<blog_month>\d{1,2})/(?P<blog_day>\d{1,2})/(?P<blog_title>.*).html$', 'post_detail'),
    (r'^(?P<blog_lang>[a-z]{2})/$', 'post_list'),
    (r'^(?P<blog_cat>\D{3,})/$', 'category_archive'),
)

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3877/#3877

Le 11/09/2007 à 18:57:22

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

Vérifie que toute tes indentations sont du même “type”. Si tu utilises des espaces, vérifie qu’il n’y a pas de tabulation qui traine ou vice-versa.

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3878/#3878

Le 11/09/2007 à 19:45:43

Angellore
Avatar de Angellore
Inscrit le : 16/02/2007
Commentaires : 25

Bah j’ai toujours appris avec soit BSD soit GNU pour l’indentation.
Sous python, j’y ai pas réfléchis, mais peut-etre qu’il y a un type d’intentation particulier à respecter?
Mais là, j’utilise que des espaces, il y a aucune tabulation.

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3880/#3880

Le 11/09/2007 à 19:53:55

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

Bah j’ai toujours appris avec soit BSD soit GNU pour l’indentation.
Sous python, j’y ai pas réfléchis, mais peut-etre qu’il y a un type d’intentation particulier à respecter?
Mais là, j’utilise que des espaces, il y a aucune tabulation.

Python supporte l’un ou l’autre, mais pas les deux en même temps, si on commence avec des espaces, on ne doit pas utiliser de tabulations ailleurs. Enfin de toute façon espace > tab. ^^

Si ton problème vient pas de ça j’vois pas, vu le message d’erreur que tu as pourtant ça doit pas être très loin de ça. Maintenant j’suis pas du tout un expert python, j’en fait pas depuis longtemps non plus. :(

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/3881/#3881

Le 28/09/2007 à 19:04:59

Angellore
Avatar de Angellore
Inscrit le : 16/02/2007
Commentaires : 25

Plop plop.

J’ai une petite question à l’intention des experts que vous êtes =)
Etant dans l’apprentissage de Python et parallelement dans celui de Django, je voulais savoir si il était possible d’installer Python sur n’importe quel hébergeur mutalisé? Pour Django?
Je suppose qu’il faut qu’il propose le Python comme langage de developpement.
OVH le propose, mais est-il possible d’installer Django dessus?

V’la les p’tites questions du moment, histoire que je me retrouve pas coincé plus tard.

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4063/#4063

Le 01/10/2007 à 16:40:36

Johann
Avatar de Johann
Inscrit le : 12/12/2006
Commentaires : 1697

Pour le coup du langage de dev mentionné sur le site de l’hébergeur, oui et non. La plupart des Linux récents ont Python installé de base. Il est donc probablement disponible même si l’hébergeur ne fait pas de pub dessus. Cettte logique a toutefois des limites, certains modules comme les pilotes de base de données ne seront pas installés de base, devront être linkés contre les libs du système, et il sera donc difficile de les installer soi-même. Et de toutes façon, sans les modules adéquats chargé dans le serveur web (mod_fastcgi, mod_scgi, mod_python, mod_fcgid, etc), tu seras contraint de passer par CGI et ça va ramer à mort. Faut voir si ton hébergeur autorise les processus persistants, si oui il a probablement installé ce qu’il faut pour les supporter.

Il est indispensable d’avoir Python installé, 2.3 au minimum. Vu que 2.4 et 2.5 apportent quand même des gros plus, faut pas cracher sur une version plus récente. Django peut être installé en bourrin, lui. C’est même préférable, comme ça tu peux avoir la version de développement qui est assez stable et propose beaucoup d’améliorations.

Un hébergement mutualisé OVH ne conviendra pas : leur Python est en 2.3, mais c’est via CGI uniquement. Faudra aller chercher à l’étranger pour trouver des hébergeur mutualisés qui supportent correctement ce genre de framework. Webfaction par exemple. Sinon, il reste la solution des serveurs dédiés ou virtuels.

_________________

Edité par : Johann
  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4112/#4112

Le 03/10/2007 à 17:10:59

Angellore
Avatar de Angellore
Inscrit le : 16/02/2007
Commentaires : 25

Merci de la réponse.
Entre temps j’ai trouvé Haisoft, qui propose Python 2.4 et 2.5 avec mod_python sur toutes ses offres, donc plutôt sympa. Et j’ai même été étonné mais il propose une offre Script Django, dont la seule différence est l’installation de Django déjà faite.
J’ai trouvé également Alwaysdata qui offre un espace modeste de 10Mo gratuit avec possibilité d’installé Django (testé et fonctionne à merveille). Les offres payantes sont également interessantes (pas tellement par le prix par contre, puisqu’on paye au Go u_u)

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4133/#4133

Le 11/10/2007 à 15:19:26

CoperPic
Avatar de CoperPic
Inscrit le : 25/12/2006
Commentaires : 276

Yo, j’ai une question concernant le CSS.

J’ai pas trop compris la différence entre un identificateur et une classe. Ou plutôt, lequel utiliser et quand. L’identificateur ne peux porter que sur un objet du document, contrairement à la classe, ok, mais… quel intérêt de l’utiliser, alors ? Pourquoi ne pas tout faire avec des classes ? Trop lourd ?

Bref, je vois pas très clairement les avantages et inconvégnents de l’un et de l’autre… Si on peut me faire un bref résumé, merci !

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4182/#4182

Le 11/10/2007 à 16:42:47

NoZ
Avatar de NoZ

Hominum non scriptum pour LEum

Inscrit le : 1/01/2007
Commentaires : 269

J’ai pas vraiment de définition ou d’extrait de site/bouquin à te filer mais je peux te donner ma vision des choses :

L’intérêt de la classe (en plus d’avoir la classe) c’est de pouvoir appliquer un style à plusieurs éléments, sans avoir à tout redéfinir à chaque fois.

L’identificateur c’est vraiment pour les cas bien spécifiques où tu as besoin d’avoir un comportement particulier. Certains les utilisent aussi lors de la création des éléments du squelette de leur site, tout simplement parce que ça fait plus propre, et qu’en général ce sont des éléments au style bien distinct du reste des éléments de la page (on ne dit pas à n’importe quel div { float: left; height: 300px; etc :p }).
Exemple à la con : les divs principaux de ta page, typiquement #index, #colonne_de_gauche, #colonne_de_droite, #header, #footer, ...

C’est souvent au sein de groupe d’éléments “classés” qu’on a besoin de différencier un élément, et c’est là qu’arrive l’ID à la rescousse (musique de K2000).
Exemple à la con n°2 : tu as une classe class=“bidon” sur tes paragraphes, qui applique tout plein d’instructions de style et… colore le texte en rouge. Là tu as créé une news contenant tout plein de paragraphes de classe de class=“bidon” également, mais tu voudrais exceptionnellement que ton texte soit orange (le type de mon exemple a vraiment des goûts de chiottes et des idées débiles), car c’est Halloween. Alors tu appliques un id=“halloween” sur le bloc qui contient ta news, et tu rajoutes dans ta css un truc du genre #halloween .bidon { color: rgb(blablabla); }. Tu en profites pour mettre plein d’effets moches dans cette news grâce à l’id.

Evidemment c’est à utiliser le moins possible, sinon la feuille de style devient très vite gore (c’est mon avis).

Autre point important, dès que tu commences à faire des manipulations en javascript (mise à jour d’un div en ajax après un clic, etc), tu as besoin de l’id de tes éléments html en paramètre, donc ça devient obligatoire.

Dernière chose, un élément peut avoir plusieurs classes (ce qui permet de les combiner :bonheur:), mais il ne peut avoir qu’un seul ID.

Voilou, je pense avoir dit ce qu’il y avait (pour moi) de plus important.

_________________

Edité par : NoZ
  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4183/#4183

Le 11/10/2007 à 18:07:50

Echzechiel
Avatar de Echzechiel

Hadō Sonzai

Inscrit le : 25/12/2006
Commentaires : 1994

TU l’as évoqué, mais c’est aussi utile de savoir qu’il y à une “hiérarchie”. id, div, balise de base.

Tu peux ainsi combiner un #header .imagegauche p sans problème, c’est en quelque sorte pour avoir un point de référence. L’id est souvent utile aussi pour le positionnage absolu.

_________________

Lost Edens .com .net .org
World Wildlife Fund

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4187/#4187

Le 11/10/2007 à 22:28:45

CoperPic
Avatar de CoperPic
Inscrit le : 25/12/2006
Commentaires : 276

Han ok, je vois mieux. Cette hiérarchie aussi, que je connaissais pas, et qui rend les choses carrément plus claires. Merci à vous deux !

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/4191/#4191

Le 15/04/2008 à 19:29:16

CoperPic
Avatar de CoperPic
Inscrit le : 25/12/2006
Commentaires : 276

Oyez les amis, c’est l’heure de la… Question-PHP !

Tout con… que faire quand on arrive sur une page dans laquelle une variable ne sera à priori pas définie ? Par exemple, dans le cas où c’est l’utilisateur qui fait un choix qui ensuite affectera la variable, mais laquelle n’aura aucune valeur tant que l’utilisateur n’aura fait aucun choix.

Pasque là forcément, message d’erreur, “undefined” machin…, lorsqu’on arrive pour la première fois sur la page et que donc la variable n’est pas encore définie.

Alors y’a le coup de virer l’affichage des messages d’erreurs, mais c’est pas très classe…

Ou sinon à l’époque j’utilisais la condition if (!$variable)... qui marchait. Now ça marche plus :(

Mais que faire ?? Tout ça c’est très amateur, mais ça me va bien.

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/5416/#5416

Le 15/04/2008 à 20:37:20

Hades_L
Avatar de Hades_L
Inscrit le : 25/12/2006
Commentaires : 395

Ou sinon à l’époque j’utilisais la condition if (!$variable)... qui marchait. Now ça marche plus :(

if(isset($mavariable)) ?

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/5417/#5417

Le 15/04/2008 à 21:17:18

CoperPic
Avatar de CoperPic
Inscrit le : 25/12/2006
Commentaires : 276

J’ai essayé, mais no…

Mais je me suis ptet planté. Précisément, c’est une erreur “Undefined index : variable”...

Mmh, j’ai trouvé : c’est tout le $GET_[‘variable’] qu’y faut tester avec le isset, pas seulement la variable. Thx adsl !

_________________

  • Adresse de ce commentaire

Adresse de ce commentaire : http://www.lost-edens.com/commentaires-forums/aide-a-la-programmation-generale/22/centrale-informatique/0/5418/#5418

4 Pages1 2 3 4

Accueil » Forum » Centrale informatique » Aide à la programmation générale

Accueil Syndication M A