Salut à tous
Je suis en 1ère année d´une école en informatique, et on a un projet à faire pour le 1er juin. Seulement il est un peu difficile pour notre niveau. J´ai attendu un bon moment en espérant avoir les cours nécessaires mais visiblement c´est pas pour cette année, en C par exemple on sait faire les printf, scanf, boucles, conditions et les structures, on a même pas vu les pointeurs et on sait tout juste faire des petits programmes en console.
Voici le sujet :
“Configuring a router using Internet on Mac OSX”
“This project is for PS1 and uses technologies of the Apple and Cisco laboratories. "
Cela fait aussi appel à des compétences C et Unix.
The aim of this project is to allow a user to configure a router thanks to a graphical interface on a Mac OSX client.
Donc le but : faire un configurateur de routeur Cisco en mode graphique (GUI).
“The user will be able to execute a command without any knowledge of the IOS system (or of any terminal) using a program developed in C with a graphical interface. “
La personne qui va utiliser le logiciel pourra donc configurer son routeur grâce à une interface ergonomique (et pourquoi pas jolie ! après tout c´est à faire tourner sur de l´OS X). C’est là que le premier point technique intervient ...
La configuration d’un routeur Cisco, c’est un seul fichier texte. Donc nous parlons ici de faire un soft qui génère un fichier texte à partir d’une interface graphique. Via cette GUI on pourra choisir des “propriétés” qui vont être traduites dans la syntaxe de configuration.
Ceci veut aussi dire que si le projet est développé en C Unix avec une librairie graphique type Gtk alors toute cette partie peut être faite sur un Linux/Unix quelconque ou Mac OS X. Avantage d´OS X : utiliser les technologies Cocoa, l´environnement de développement XCode, Interface Builder pour créer l´interface, Dashcode pour créer le widget etc. Mais il n´y a ici aucune limitation à créer l´application sous OS X.
“This command will be executed from the web server and sent to the router in “AppleScript” format. It will generate a succession of IOS commands (Version 12.3 or more), and execute the desired configuration. "
En gros : - Le programme génère un fichier de conf - qui est envoyé via le réseau à un routeur distant (copie via Applescript, ssh, telnet...) Pour configurer le routeur, il suffit en effet d’envoyer le fichier ligne par ligne sur l’invite de commande du routeur...
"It will also have to retrieve the return values of the router, which will be transferred to the program. You will have to catch the configurations/communication errors and treat it."
Donc on enverra une commande sur le routeur, ce qui nous renverra une chaine de caractères (essayez un show interfaces sur un routeur pour voir de quoi on parle ...) et il faudra la traiter ... Encore une fois, pas grand chose de spécifique Mac OS X, plutôt du shell et du C...
"It will be also possible to directly generate the configuration file and to send it.
Donc là on redit la même chose que plus haut.
"You will also have to create a Widget on Mac OSX (Using HTML, CSS, and JavaScript), giving the same functionalities."
Le widget est en fait une télécommande du soft, mais en aucun cas le soft en version widget (imaginez un widget qui prend tout le dashboard avec 50 boutons partout... l´horreur!). Le widget pourrait envoyer une configuration déjà établie à un routeur dont on spécifie l´IP, lancer le soft, savoir si le routeur est configuré ou non etc..
Le problème c´est que on sait pas par où commencer (on est 4), vu que nos cours sont largement insuffisants. On nous a parlé de socket (juste parlé), à ce qui paraît c´est nécessaire mais on sait pas du tout le faire, et on arrive pas à trouver le bon sur internet. L´interface graphique n´en parlons pas, la seule fenêtre graphique que j´ai pu ouvrir c´est en compilant la correction (en GLUT), ça affiche un rectangle, un cercle et un arc de cercle...
Merci de votre aide !
pour le 1er juin ? Tu es mort...
découpe ton probleme en 4 parties et affectes une partie par personne.
Bon, après, ce n´est qu´une interface graphique et une pauvre création de socket sur laquelle va être envoyée séquentiellement le contenu d´un fichier.
Approche MVC, ça tombe bien, vous êtes 4. Il y en a un qui pourra s´occuper de la recherche documentaire et de la couche réseau. C´est jouable en un weekend, mais il faut vous y mettre sérieusement.
Ui lol ça fait court, en fait le sujet on l´avait depuis un moment mais on avait pas du tout les connaissances ni le cours pour le faire, alors on a attendu d´avoir les bons cours mais au final on les a jamais eu...
Parce que là, c´est pas seulement de la recherche, c´est de la recherche + apprentissage du langage par nous-même (ce qui aurait dû être fait par les cours), on a un peu commencé à apprendre le C sur le site du zéro mais bon faudra en apprendre bien +.
Pis même on a tellement pas de connaissances qu´on sait à peine sur quoi chercher, visiblement va falloir chercher comment programmer un socket, mais l´interface graphique en C je sais pas si en un week end c´est jouable de l´apprendre.
Jey007 > tu t´y prends en effet super tard.
(ce qui aurait dû être fait par les cours)
--> tu n´as fait sécher aucun cours ?
Dans ces cas la, les autres doivent etre dans le meme bain que toi, ou en sont ils eux ?
Nan j´ai jamais séché, la seule fois où j´ai raté une heure ou 2 à cause des grèves SNCF j´ai rattrapé le cours.
Les autres sont en effet à peu près aussi perdus que nous, sauf ceux qui ont déjà fait des études d´info avant d´intégrer l´école. On essaye tous de demander de l´aide sur pas mal de forums, aux profs (quand ils peuvent nous aider, ils ont pas le droit de nous filer une correction non plus ^^), ou justement à ceux qui ont déjà des connaissances, puis on met les infos en commun.
Vous me conseilles plutôt quoi, tenter d´apprendre le + possible du langage, ou chercher direct un code, essayer de le comprendre et de le refaire ? Parce que apprendre pour arriver jusque là, c´est chaud, et comprendre un code déjà fait c´est violent aussi. Vous avez pas quelques liens, ou même simplement des mots clé (socket je crois par exemple) pour la recherche, ou l´ordre dans lequel il vaut mieux procéder ?
comprendre puis produire est la seule démarche intelligente a avoir.
pomper du code sur internet est illegal. Pas seulement aupres de ton etablissement mais aussi aupres des droits d´auteurs.
Des etudiants viennent de se faire goler dans mon etablissement. Ca ne va pas rigoler pour eux.
Si ta formation ne t´a pas préparer a cela, j´ai envie de dire que c´est une mauvaise formation... Je reste quand meme dubitatif.
Sauf si le programme est libre ^^
Nan comprendre le sujet ça c´est bon, mais produire, je veux bien, mais faire une interface graphique par nous-même, quasiment sans cours (en C on sait tout juste faire un segment, un rectangle et un cercle, alors déjà pour gérer les clics de souris c´est pas gagné). Ou alors fallait nous le dire dès qu´ils nous ont donné les sujets qu´on devrait apprendre tout le nécessaire par nous-même et pas attendre le cours qui n´est jamais arrivé car il pas de notre niveau (d´ailleurs le projet non plus, il paraît que celui des années supérieures est + simple).
D´ailleurs, même notre prof a dit qu´elle ne saurait pas le faire en C mais seulement en C++ (ce qui au final change rien pour nous vu que le C++ n´est pas au programme de cette année).
Là voilà on a le sujet, alors en C je vous ai déjà dit ce qu´on a vu. En réseau, on a vu en gros les commandes à envoyer au routeur, on sait comment les envoyer par telnet en gros, mais on sait pas créer un programme qui utilise telnet en étant autonome. En Apple, on a pas eu de cours encore, au moins c´est simple.
Si votre prof n´est pas capable de faire un tel programme en C, elle devrait sérieusement se remettre en question...
hitman, visiblement, ce sont les étudiants qui ont choisi le sujet et en l´occurence on dirait qu´ils ont mis la barre un peu trop haut.
au sujet des socket, il y a :
http://www.uwo.ca/its/doc/courses/notes/socket/
qui a l´air d´etre bien expliqué.
Une fois que la socket est initialisé, on y accede comme a un fichier normal (primitive read et write).
Pour l´interface graphique, je ne peux pas beaucoup t´aider. Je n´en ait jamais fait en C pour unix. J´ai cru comprendre que l´on pouvait facilement en faire en utilisant tcl/tk pour encapsuler des commandes deja existante. Il faudrait dans ton cas faire une application ligne de commande simple que tu interfacerai ensuite en tcl/tk.
Mais je ne sais pas si ca rentre dans tes objectifs pédagogique/impératif temporelle.
Je ne connais pas la qualité du lien de godrik, mais
http://beej.us/guide/bgnet/ est un très bon tuto pour la programmation de socket.
godrik
Tu peux aussi faire du GTK, c´est ´achement plus joli que du Tk (Oui, bon, je sais, je sais, n´empêche GTLK est un poil plus beau). Il y a aussi QT, mais je pense qu´il est dépendant de KDE, lui. Mais Qt, c´est beauuuu ![]()
Pour les socket, je confirme : une fois inialisé, c´est grosso modo comme une écriture de fichier. D´ailleurs, au passage, ouveture de socket -> Créer une bibliothèque pour le faire. Dans 95% des cas on se tappe toujours les mêmes dizaines de lignes de code pour l´ouverture <troll strength="2">Au moins, en Java, on fait ça en 3 lignes</troll>.
<troll strength="5">Ceci dit quite à faire une abjecte interface en Tk, autant poursuivre sur ce schéma de pensée et coder en Perl <troll strength="10">(Le meilleur langage pour un administrateur système et réseau)</troll>derrière et faire un code bien obscur de guru</troll>
je pensais a tcl/tk parcequ´a ce qu´on m´en a dit, ca prenait vraiment 10 minutes a comprendre le principe de base. et 20 de faire un truc simple.
<troll strength=5">apres pour perl, les langages qui utilisent plus de signe de ponctuation que de lettre...</troll> (il faudrait que je fasse gaffe a combien il y en a en C, moi...)
"hitman, visiblement, ce sont les étudiants qui ont choisi le sujet et en l´occurence on dirait qu´ils ont mis la barre un peu trop haut."
Nan rien du tout lol le sujet est imposé ^^ Et effectivement la barre est assez haute pour des 1ères années, un des + durs donnés à cette section il paraît.
Sinon merci pour les liens, je les montrerai aux autres demain, moi je vais commencer à les lire un peu ce soir (l´anglais devrait pas poser trop de problème lol).
Pour l´interface graphique c´est "recommandé" GTK mais bon, un membre du groupe me dit que Cocoa semble + simple ^^ Parce que GTK avec aucun cours dessus et pas de prof pour expliquer si on bloque, pas super évident.
En cas si notre prog bug si ça dérange personne je posterai le code quand on l´aura fait.
Et merci encore.
Pour l´interface graphique GTK, tu peux utiliser Glade (IDE): il doit pouvoir générer le code, vous n´aurez plus qu´à remplir.