Skip to content

Instantly share code, notes, and snippets.

@bussiere
Created March 13, 2012 22:19
Show Gist options
  • Save bussiere/2032147 to your computer and use it in GitHub Desktop.
Save bussiere/2032147 to your computer and use it in GitHub Desktop.
generate feneter in hacker style rulez
# todo :
# Pouvoir doubler les bords ou le haut ex : **
# Parser le html pour prendre que le affiché ex <a href="">titi</a> ne prendre que titi.
# ou encore recupérer la taille d'un formulaire.
# prevoir un systeme de ligne ou colonne aussi.
# Bussiere
string = ["totosdjfsdfsdfdsfsdfsdfsdfsdfsdft","titigsgsgsgsgsgsgs","tata"]
texte = """Qui n’a jamais eu besoin d’un coup de main, et aucune idée d’où trouver de l’aide ?
Qui n’a jamais fait le tour de tous ses contacts pour dépanner un ordinateur
en urgence, emprunter une machine à coudre ou demander
si quelqu’un a le numéro d’un serrurier ouvert un dimanche à 23h ?
Tout le monde a déjà eu affaire à l’ami d’un ami qui connaît un gars
qui peut nous aider, et tout le monde connaît l’angoisse qui va avec.
Jackpoint est un projet de réseau social d’entraide et de mise en relation,
dont le but est de simplifier ces petites démarches.
Né du constat de deux amis aux carnets d’adresses étendus et aux contacts variés
qui faisaient souvent appel l’un à l’autre,
Jackpoint est un projet de site internet où les membres pourront échanger coups de pouce
et conseils en supprimant les intermédiaires,
pour qu’il ne reste qu’un ensemble de compétences accessible à tous.
Plus encore, Jackpoint espère pouvoir rassembler diverses communautés aux thématiques communes,
qui ne partagent pas forcément entre eux (goths, geeks…).
Le projet s’inspire de sites comme Metafilter, Stackoverflow ou encore Parano.be.
#En quoi ça consiste ?
Jackpoint fonctionnera sur un système d’invitations. Les invités rempliront
un profil où il faudra renseigner leurs compétences,
les langues parlées et le matériel spécifique dont ils disposent (informations privées par défaut,
libre à eux de les montrer aux autres utilisateurs ou non),
et pourront ensuite poser des questions et demander conseil aux autres utilisateurs.
Un système de « poignées de main » permettra de visualiser comment les membres sont reliés entre eux.
Un membre invité sera à une poignée de main de celui
qui envoie l’invitation, et aura accès au réseau de ce dernier en tant que contacts à deux poignées de main,
et ainsi de suite.
#Demandes de coups de main
Lorsqu’un membre aura besoin d’un service, il mettra dans son message les tags des compétences dont,
selon lui, son problème relève.
Tous les utilisateurs disposant de cette compétence seront alertés du message et pourront y répondre.
Il sera ensuite possible de voter pour la réponsela plus pertinente.
Dans le cas d’un échange de service, il est possible de recevoir, en échange d’un coup de main, un jeton de service,
correspondant aux compétences que possède le demandeur, mais qui ne sont pas utiles pour l’instant.
Ces jetons sont transférables d’un utilisateur à un autre.
Il sera possible de demander un coup de main ouvertement, ou en tant qu’anonyme, si, par exemple,
cela concerne l’anniversaire surprise d’un membre inscrit.
Un système de karma permettra de récompenser les utilisateurs les plus actifs.
#Achats groupés
Une rubrique du site permettra aux membres de se rassembler pour faire un achat ensemble.
Par exemple, si une promotion propose 100m de tissu pour 100€ mais qu’une seule personne
ne peut pas mettre autant d’argent en jeu d’un coup,
elle peut proposer à d’autres de partager le coût et le stock de tissu.
#Annonces
Une autre rubrique permettra aux utilisateurs de passer des annonces d’achat ou vente,
mais aussi proposer des offres d’emplois, demander un stage…
#Wall SMS
Que faire si, un dimanche soir, à 23h, on casse une clé dans sa serrure en rentrant chez soi ?
Tout le monde n’a pas Internet sous la main,
ou le crédit de communication nécessaire pour appeler les informations. Jackpoint a peut-être la solution :
Un numéro de téléphone relié au serveur permettra, en cas de souci urgent, d’envoyer un SMS
qui sera publié sur le site. Les membres connectés pourront y répondre, réponses qui seront
transférées au téléphone d’où vient l’appel au secours.
#Lieux et évènements
Jackpoint permettra, en plus de permettre de s’entraider et trouver facilement une solution à ses problèmes,
de partager ses bonnes adresses,ou organiser des évènements.
Un système de tag donnera la possibilité aux membres d’entrer des lieux dans la base de données,
en donnant son avis.
Pratique, pour savoir où trouver une pharmacie ouverte la nuit, ou quel magasin aura le produit qu’on cherche.
De même un avis négatif permettra
aux membres de rester prudents quant à tel ou tel service.
Organiser une soirée, prévenir d’une convention ou d’un concert devient très simple grâce à Jackpoint.
Le site permettra d’avertir les utilisateurs d’un évènement qui peut intéresser,
mais dont on n’entend pas forcément parler.
Par exemple, une foire organisée par une commune qui n’a pas fait de publicité en dehors.
#Groupes, Workshops et tutoriaux
Le site ayant pour ambition de mettre en commun des connaissances, il sera possible
de faire partager ses passions aux autres utilisateurs,
qui pourront créer des groupes pour se rassembler et discuter autour d’un thème,
ou d’un projet rapprochant plusieurs thèmes ou compétences,
afin d’avoir une vue d’ensemble et apporter des points de vue variés.
Les utilisateurs pourront mettre en ligne des tutoriaux pour faire découvrir une de leurs
passions ou domaines de compétence.
De plus, ils pourront organiser des « workshop », pour se retrouver IRL et partager leur savoir,
avec du matériel et des démonstrations à l’appui.
Enfin, ils pourront aussi partager des articles sur un sujet qui les passionne
et réagir dessus avec les autres membres.
#Mécaniques
Jackpoint fonctionnera sur un système de « tags » inclus à chaque message, qui fera référence aux compétences,
lieux ou thèmes évoqués dans chaque message
pour un indexage facilité.
Même si le site ne sera accessible que sur invitation, les questions et réponses seront libres d’accès
et indexées par Google.
Seuls les utilisateurs pourront interagir, et de l’extérieur on ne saura pas qui est l’auteur des messages,
mais quelqu’un avec un problème similaire
pourra trouver, via les moteurs de recherche, les réponses données sur Jackpoint.
Chaque utilisateur pourra aussi télécharger une partie de la base de données sur son ordinateur,
pour pouvoir y accéder sans connexion internet.
Cette sauvegarde pourra servir en cas de panne informatique, pour remonter le site.
Un client mobile est aussi à l’étude, pour que Jackpoint soit accessible depuis les téléphones portables.
Ce projet est non marchand et libre de droits. Le site sera open source, et la base de données téléchargeable.
N’importe qui pourra réutiliser le code pour monter son propre carnet d’adresses Jackpoint.
Le but de cette démarche est que, en cas de problème, le site puisse tourner sans le webmaster.
La base de données pourra donc être téléchargée
et remontée ailleurs, avec un système de cryptage basé sur les mots de passe des utilisateurs,
qui garantira que les messages privés ne restent accessibles que par eux.
#Interface
L’interface aura un thème cyberpunk qui fait référence à l’origine du nom du projet :
dans Shadowrun, ce nom désigne un rendez-vous de hackers
et centre d’échange d’informations en tout genre. Il y a également une référence
à l’expression américaine « Jack of all trades ; master of none »,
qui qualifie les gens capables de tout faire, un petit peu, et qui caractérise l’esprit du site.
En se connectant, l’utilisateur verra les notifications qu’il a reçues de la part de ceux
qui ont besoin de résoudre un problème.
Une banderole d’astuces (« tips ») défilera sur toutes les pages du site, pour donner de petits conseils
qui peuvent toujours servir.
Par exemple : « toujours garder un vieux téléphone portable dans sa voiture,
qui sera plus résistant niveau batterie qu’un smartphone en cas d’accident »
#Avancement du projet :
Le webmaster espère pouvoir proposer une version beta du site fin mars, et lancer Jackpoint d’ici au mois de juillet.
C’est un travail long et prenant qu’il effectue en plus de son emploi à plein temps, et de l’aide serait la bienvenue !
Le moteur du site est fini, reste à coder l’interface utilisateurs. Seront lancés en premier :
L’inscription des membres et le rajout des compétences
La demande de coups de main
Le rajout de lieux et d’évènements
Le Wall SMS
Sincerely Yours
Jack Of All Trades
"""
tab = texte.splitlines()
def encadrement(string,hauteur="#",largeurg="#",largeurd="#",align="center"):
h = 0
l = 0
c = 0
for t in string :
if len(t) > l :
l = len(t)
h += 1
rajout = l / 20
if rajout == 0 :
rajout = 1
lignetop = (l + (rajout*2)+2*len(largeurg))*(hauteur)
total = lignetop+"\n"
for t in string :
if (align == "center"):
space = ((len(lignetop)-2-len(t))/2)
if (space == 0 ):
space = 1
space1 = space
space2 = space
else :
space = 2
space1 = rajout
space2 = (len(lignetop)-len(t)-rajout-len(largeurg))-1
if len(largeurg+" "*space1+t+" "*space2+largeurd) < len(lignetop):
space1 += 1
total += largeurg+" "*space1+t+" "*space2+largeurd+"\n"
total += lignetop+"\n"
return total
print encadrement(string)
print encadrement(string,hauteur="*",largeurg="*",largeurd="*")
print encadrement(string,hauteur="/",largeurg="/",largeurd="/")
print encadrement(string,hauteur=";",largeurg=";",largeurd=";")
print encadrement(string,hauteur="_",largeurg="(",largeurd=")")
print encadrement(tab,hauteur="*",largeurg="*",largeurd="*",align="left")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment