lundi 12 janvier 2009

Le plus grand pirate de tout les temps plaide coupable ?


Gary McKinnon, le hacker auto-declaré, accusé d'etre l'auteur du  "plus grand piratage militaire de tout les temps" par le gouvernement US apres avoir attaqué le systeme de la NASA et du Pentagone risque gros, son proces n'a pas encore commençait, mais il declare deja etre pret à plaider coupable s'il est jugé en Angleterre, evitant ainsi d'etre extrader au USA, ou il risque 70 ans de prison.

McKinnon, aussi connu sous le pseudo "Solo" est accusé d'avoir  piraté 97 ordinateurs de l'armée americaine et d'avoir causé 700.000$ de dommages.Ce hacker, qui souffre du Syndrome d'Asperger, n'a jamais nier avoir accéder aux ordinateurs de l'armée americaine, la marine, l'Air Force et la Nasa, il nie toutefois avoir causé tant de degats, il insiste sur le fait qu'initialemnet il chercher des informations revelant l'existence d'Extra-terrestres, mais qu'apres il tomba sur des preuves quant à l'existence de projets sur l'antigravité.

reproduit à partir de Espiner T., Nasa Hacker: I'll plaide guilty in the UK, le 12/01/ 2009

Telecharger Python 3000

Python est langage de de programmation dynamique et completement orienté objet,
la derniere release 3.0 est à telecharger ici

Un tutoriel pour commencer avec Python ici

samedi 10 janvier 2009

Tutoriel Python pour les debutant, part I

Python :
1-Importation de modules :
  Import nom du module : fonctionne comme $ en pascal, le module importé est un objet à utiliser.
Exemple:



import sys


    Déclaration de fonction :





def nom_fonction (paramètres) :
    '''doc String'''
    return #optionnel



Remarques  :
  • python est sensible a la casse.
  • Ne pas oublier les deux points en fin de ligne, lors de la declaration d'une fonction .
  • La doc Sting est la documentation de la fonction elle n’est pas essentiel donc  indispensable !  elle commence et  se termine par 3 guillemets.
  • L’indentation  est  primordiale, elle définit  le début et la fin du bloc   (Begin est end du pascal).
  • Return  est  optionnel (redonne  none  valeur nulle au cas ou).
  • # pour les commentaires.
  • Il n’y a pas de type  de retour à préciser.
  • Il n’y a pas  de types de paramètres à préciser.
  • Il peut ne pas  y avoir de paramètres.
2-Types de données :

  Dictionnaires : tableau dont l’indice peut  être autre  qu’un  entier(entier,  chaine ,  tuple).
 c'est une liste de type clé/valeurs, les valeurs peuvent  etre de n’importe quel  type.

Declaration :




dico = {"Chaib" : "ismail", "Boussaidi" : "Abdellah" }
dico [ "Chaib" ] # pour accéder au champs valeur Ismail .
dico [  "Abdallah" ] # Signale une Erreur
                                    # on ne peut pas mettre une  valeur on indice erreur.
dico ["Boussaidi" ] = "Abdou"  # assignation d’ une nouvelle  valeur.
dico [ "Izemrane" ]= "Tarek"# creation d’un nouvel  element.
dico["Age"] = 20  # les valeurs  prennent  n’ importe quel  type 
dico  #Affichage du dictionnaire
{'Chaib': 'ismail', 'Izemrane': 'Tarek', 'Age': 20, 'Boussaidi': 'Abdou'}

#suppression  dans   un  dictionnaire.
del  dico ["Age"] #  pour  supprimer l’ élement selectionner.
dico.clear  (  )  # retourne  le  dictionnaire vide : notez la presence du point (.)  pour  signifier un appel a un membre(plus de details plus tard).

Remarques :
  • Le dictionnaire n’est pas ordonné.
  • On utilise des guillemet (" ") et les deux points (:) pour separer la cle et sa valeur.

Tuple :
Definition :   liste d’element   « figés » et « constants » , elle ne peut etre modifier.
       
Exemple:             


Tuple =("Abdellah", "Ismail", "Tarek")
Tuple[0]     #  comme un en C, on commence  par  l’ indice  0  
'Abdellah'
T[-1]   # on peut utiliser des indices negatifs, on commence a compter a partir de la droite
'Tarek'  

Remarques :
  • Les tuples ne peuvent pas être modifiés (ni suppression ni ajout)   
  • Les tuples n’ont pas de methodes
  • On peut chercher dans un tuple
  • On peut utiliser in pour verifier l’existence d’un element.
  •                 Ex :  "Tarek"  in Tuple donne True               
  • Les tuples sont généralement utiliser pour les assignations multiples
  • Les tuples peuvent être des clefs pour dictionnaires
  • Les tuples peuvent être convertis en listes et vice versa
  • Un tuple est toujours ordonné

Les listes

Exemple :



Liste = ["banane", "pomme", "orange"]

Une liste est un ensemble ordonné d’éléments  de types  quelconque. Elle est modifiable

Exemple :




Liste[0]
'banane'
Liste[-2]       # correspond à Liste[3-2] donc à Liste[1]
'pomme'
Liste[0:1]   # c'est ce qu'on appelle le "slice", on construit une sous-liste a partir des indices entre crochets
['banane', 'pomme']


Insertion et Modification :





Liste.append("raisins")# insertion en fin de liste.
Liste.insert(3, "poire")#insertion a la position 3
Liste.extend(["cerise", "fraise"])# concatene une autre liste.
Liste[-1]= "framboise" # renplace fraise par franboise.
 

Recherche dans une liste :




Liste.index ( « bannane »)  # envoi le numero d'ordre de la premiere occurence dans la liste  
0
"fruit" in Liste
False.

Suppression




Liste.remove ("pomme")  



3- Mutation de listes : (list comprehension) :
              


Liste1 = [1, 3, 7, 13]
Liste2 = [i*i for i in Liste1]  #donne le carré  de chaque element de liste1
 Liste2     # on affiche Liste2
[1, 9, 49, 169]
   

Remarques 
Le liste comprehension  consiste a applique certains traitements  à chaque element d’une liste.
     Syntax :
                    [ element* element  for element in  liste]
                       partie traitement          element     notre liste
                                                             de notre
                                                               liste


4 - Filtrage de listes : 
        
Definition:
Il s'agit d'un mecanisme derivé des list comprehension, et qui y ajoute la possibilite de choisir les elements sur lequel les traitements seront effectués.




Liste = [3,  4,  2,  1 ,  6  , 7]
[element for element in Liste if element > 3 ]
[4, 6, 7]


Syntaxe :
    [Expression  for element in liste  if  filtre]
Remarques:
- Ne pas oublier les crochets
- La premiere partie est similaire a la mutation de list
- "filtre" est une condition, si pour un element elle est verifié on applique Expression sur cet element


5 - Arguments optionnels et arguments nommés :
   




def Add(a, b=1, c = -3):
          ''' fonction qui additionne  a, b  et c '''
            return a+b+c


Remarque :
  • on peut ne pas preciser les  parametres b, et c lors de l’appel  de Add  ils auront les valeur par defaut  1et -3
  • A est  obligatoire (la fonction doit avoir an moins un argument)
  • L'ordre des parametres n'est pas importanttant qu'on les nomme.
  • Ex. Add(b=5, a=2, c=10)
  • Toutes c'est ecritures sont correctes:
   



Add(2, 3)   # a = 2, b = 3, c = -3
Add(2, C=0)  # a = 2, b = 1 , c = 0
Add(2)   # a = 2, b = 1, c = -3
Add(c=4, b=8, a=1)  # a = 1, b = 8, c = 4
   



6- Plus sur les parametres de fonctions :

    Il existe 3   types  de parametres      
        1-parametres  explicites
        2-parametres non explicites
        3-parametres arbitraire.                              
  
Parametres explicites :

On note explicitement tout les parametres lors de la definition  de fonction,on peut aussi  affecter  des valeurs aux parametres formeles qui seont les parametres par defauts.
      Syntaxe:
          Fct_Avec_Parametre_Explicite(a, b  ,c =  "valeurs par defaults")

Parametres  non   explicites :

Python   permet  d’affecter  à une fontion autant de parametres formels qu’on veut sans les declarer explicitement, on faites on transforme un dictionnaire(contenant les pairs parametres formels\effectifs(valeurs)) en parametres qu’on passe a la fonction.

Remarques
- On note l'utilisation de ** avant le nom du dictionaire si celui-ci n'est pas definie dans les parametres.
   

 
def Fct_Avec_Para_NonExplicite(a, b, para1 = "val1", para2 = "val2"):   # signature de la fonction
            pass # ne rien faire
 Dico = [para1:"val1", para2:"val2"]
 Fct_Avec_Para_NonExplicite(10, 4, **Dico)   #Appel de la fonction
   


   
Parametres  arbitraires:
un peu comme les parametres non explicites, mais ici en regroupe tout les parametres dans un seul tuple nommé.

Exemple:
   
def somme(*list_entiers):
            '''retourne la somme de la liste d'entiers en parametres'''
            a = 0
            for entier in list_entiers:
                a = a + entier
            return a
entiers = [1, 2, 4, 5]  # Notre liste d'entiers
somme(*entiers) # Appel de la fonction
 12 # Resultat

       
 Remarque :
- En utilse un * avant le nom de la liste.
- On peut combiner les differents types de parametres, on commencera toujours pas le tuple puis le dictionnaire.

vendredi 9 janvier 2009

Scandale dans le secteur des IT en Inde

Satayam une des plus grandes SSII indiennes vient de couler! en l'espace d'un mois, cette entreprise, l'une des 5 grandes compagnies IT en Inde, s'est effondrer pour esperer maintenant etre racheter par une compagnie concurrente.
D'abord y'a eu son PDG Ramalinga Raju qui annonce le rachat d'une compagnie de construction et d'infrastructure(detenus par ses fils) ce qui fait chuter l'action de 70%, ensuite, c'est la banque mondiale qui rompt toute contrat avec Satayam, et enfin, Ramalinga Raju annonce avoir falsifier les comptes de la societe pendant plusieurs années.

Au dela de la tragique situation des employés et des investisseurs, ce scandale met a jours les defaults du secteur IT indien, quel controle est appliqué? et quel confiance doit on accorder?
C'est aussi un coup dur pour l'offshoring en generale, quand les gains engendrés par cette solution se font rattrapper par les coups de non qualité.

jeudi 8 janvier 2009

Steve Ballmer a propos de la crise economique, CES 09


Steve Ballmer parle, lors de ce CES09(Consumer Electronics Show) à Las Vegas, de la necessite de l'innovation et de l''investissement dans les nouvelles technologies en periode de crise, rejoignant ainsi mon point de vue.

Introduction au Expressions Regulieres

On attendant mon tuto sur les expressions regulieres, le site TechHeadBrother nous livre un bon article sur celles-ci ici (en français!)

Telecharger Windows 7

Soyez les premiers à essayer Windows 7, le prochain systeme d'exploitation made in Microsoft(remplaçant de l'actuel Vista).
une bêta de Windows 7 est à télécharger pour les abonnés MSDN.

Sinon, pour tout ceux qui veulent attendre encore un peu avant de se convertir, il y'a aussi la review de Win7 à lire ici

mercredi 7 janvier 2009

WidgetBox, ou comment ajouter simplement des widget pour son blog.

J'ai deja bloguer sur Delicious et sur le widget (en haut a droite) qui liste mes dernier favoris Delicious;
En faite, j'ai crée ce widget sur WidgetBox.com, un site communautaire qui permet donc de developper des widgets à partir de sources diverses(javascript, flux rss, blogs...etc) sans connaissances prealables en matiere de devloppement web, il permet aussi de partager ses widget et/ou commenter celles des autres.

Il n'y a donc aucune ligne de javascript ou de HTML à taper pour réaliser de superbes gadgets à ajouter sur son blog. Tres facile à utliser donc, mais surtout tres utile, ce site est a essayer absolument!

Delicious Bookmarks

Delicious Bookmarks est sans doute l'un des sites de partage de liens(social bookmarking) les plus connu, je l'utilise depuis un bout de temps, et il m'a toujours satisfait.

Delicious permet d'enregistrer des liens (un peu comme les favoris) mais il les enregistre sur le net, ce qui permet de centraliser tous ces favoris et d'y acceder depuis n'importe qu'elle PC connecté.

Mais Delicious n'est vraiment interessant que si on l'utlise via le plugin associé au navigateur web (sous FireFox notamment) qui permet de facilement sauvegarder ces favoris depuis son navigateur.

Enfin, toujours a propos de Delicious, je viens d'ajouter un widget(en haut à droite) qui expose en temps réel les derniers liens que j'ai sauvegarder sous Delicious.


dimanche 4 janvier 2009

W3schools.com

logo de W3 Schools
Un tres bon site, avec plein de tutos pour ceux qui s'interessent au developpement web.
ça va du HTM,
XHTML, CSS jusqu'au XML, PHP, Bases de données, Multimedia,WAP
en passant par Ajax/javascript, ASP.Net...etc

c'est vraiment complet et ça vaut le detour (c'est en anglais of course!)

http://www.w3schools.com/

Blogged with the Flock Browser

samedi 3 janvier 2009

Facebook attaque en justice le site Power.com

Facebook a récement attaquée en justice Power.com une start-up bresilienne qui permet d'acceder a plusieurs reseaux sociaux et ce a partir d'un portail unique.
plus de details ici

Steve Jobs ne sera plus au MacWorld Expo

Peut etre une des news les plus importantes de cette année 2009, Apple a annoncé que son CEO et co-fondateur le fameux Steve Jobs serait remplacé pour la présentation vedette de la MacWorld Expo(la grande mess du monde Mac) le 6 janvier prochain par Philip Schiller, vice-président de la compagnie, la firme a du même coup déclaré que ce serait sa dernière participation à cette exposition.

triste nouvelle donc, certains evoquent la santé de Steve qui n'est pas au top, mais personne ne semble avoir la vrai raison de ce choc, en tout cas, maintenant on attendra de voir les consequences d'une telle annonce et en garde quand meme une certaine amertume.
Blogged with the Flock Browser

D'ou Google tire ces logo speciaux?

Lors de certains evenements, on trouve sur la page de recherche de Google des logos assez speciaux,  il s'agit de logos personnalisés selon des hommes celebres, decouvrez leurs signification ici


Blogged with the Flock Browser