PROJET AUTOBLOG


Le Geek Café

Archivé

source: Le Geek Café

⇐ retour index

Quelles idées défendez vous ? - Affaire MegaUpload

mercredi 25 janvier 2012 à 20:40

L'Affaire MegaUpload

C'est en ce Mercredi 25 Janvier que j'attrape mon clavier, et par l'intermédiaire de cet outil à lettre ( dont on peut remarquer un bout de lasagnes sur la droite è_é ), que je me propose à rédiger une sorte d'affaire... l'affaire MegaUpload !.

Ah-ah, bon nombre sont ceux qui ont paniqué à la fermeture du site, mais je pense que tout ce petit blabla du genre : Le FBI a troop raison ! ou encore Les Anonymous c'est trop dark (on est bien plus que ça ;)) ne vous intéresse pas vraiment. C'est pourquoi, j'ai pensé à rédiger cette grande et mystérieuse affaire en écrivant au fur et à mesure des news, un débat sur cette sombre affaire, ainsi que quelques nouveautés (sites attaqués par Anonymous, réaction en politique, réaction sur internet (tel que C.Barbier), etc. ).

Quelles idées défendez vous ?

Et donc, je propose d'inaugurer cette affaire, en proposant un petit débat qui risque de fort vous intéresser. En effet, la question que je souhaite vous poser aujourd'hui est : Quelles idées défendez vous ? Par là, je veux savoir exactement contre qui vous dressez vous : Anonymous ? Le FBI ? Les deux ?
Le but de ceci n'est pas de transformer le CG en Café Troll, mais plutôt de pouvoir discuter de tout cela au calme, même en sachant que l'un est un pro-FBI tandis que l'autre est un pro-Anonymous.

Je vais vous le dire clairement, je ne suis pas un pro-Anonymous, mais je dirai un Anonymous de base. Je supporte leurs idées (je possède d'ailleurs ces idées précises comme la liberté sur internet, etc. ), mais en aucun cas je n'agirai contre un site des médias, comme cela est arrivé à Christophe BARBIER, lorsque le site de l'EXPRESS est tombé. Il est vrai que ses propos sont virulents, et sans aucuns fondements, mais il défend lui-même ses idées. Après tout, il a raison, il adopte pratiquement la même méthode que nous (à l'exception des DDOS).

Vous pouvez donc parler librement, et je vous laisse la parole directement dans les commentaires, ou sur le forum si certains préfèrent, on verra bien ;)
On se retrouve donc à la prochaine news avec, sûrement un nouveau débat et peut-être une news ( j'essaie de les chopper à chaque instant ), parce que c'est un peu le but.
Avant de partir, je veux prévenir que ceci n'est pas là pour déclencher des débats VIRULENTS, mais plutôt de pouvoir discuter librement, sans avoir des râleurs de chaque camps qui endoctrinent les autres !

Numéricable lance son forfait au même prix que Free

mercredi 25 janvier 2012 à 17:43
Ca y est ! Ce qui devais arriver est arriver ! Une partie de la concurrence s'est, elle aussi alignée sur le prix de FreeMobile.
En effet, Numéricable a annoncé le premier une baisse de ses prix au niveau de ceux de FreeMobile.

Un rebondissement dans l'affaire

image
L'Opérateur a annoncé lundi qu'il proposerait maintenant un forfait à 19,99 Euros par mois, comprenant SMS illimités, MMS illimités, Appels illimités et internet jusqu'à 3Go se mettant ainsi à la hauteur des prix et de l'offre de FreeMobile.

Le groupe à d'ailleurs précisé, fort de sa nouvelle offre et d'un avantage certain sur son concurrent Free mobile :

Citation : numéricableNumericable propose le seul forfait à 19,99 euros par mois accessible en boutique

Il a ajouté ensuite, non sans une pointe d'ironie que ce forfait exclusif est réservé seulement aux "60 premiers millions de clients", c'est à dire 95% de la population française.
L'opérateur, qui dispose actuellement de 200 boutiques, avait proposé en mai 2011 une offre de téléphonie mobile illimitée au tarif de 24,90 euros pour les clients particuliers, et à 49,90 pour les autres.

Sources :

Mozilla développe son langage de programmation

lundi 23 janvier 2012 à 19:05
Vendredi dernier, la fondation Mozilla (bien connue pour son navigateur web libre Firefox), a annoncé sur sa liste de diffusion être parvenue à développer un premier compilateur pour son propre langage de programmation, baptisé Rust. Annoncé en juillet 2010, Rust est un nouveau langage de programmation système, visant à implémenter des concepts de programmation modernes. À terme, les développeurs de Rust espèrent en faire un langage de programmation rapide mais fiable, capable de remplacer des langages bas niveau comme C.

Pourquoi un nouveau langage ?

La situation actuelle

Le C et le C++ sont des langages quasiment universels, qui bénéficient de nombreuses implémentations sur plusieurs architectures très différentes. De plus, ils présentent l'avantage d'être (au moins partiellement) standardisés ; c'est-à-dire que, plutôt qu'une implémentation de référence qui montre comment fonctionne le langage, il existe des documents textuels qui précisent le comportement d'une grande partie des programmes C et C++ qui peuvent être écrits.

C'est un avantage : toute compilateur écrit pour ces langages est tenu de respecter ces normes, et le programmeur qui utilise une implémentation particulière du langage sait donc comment elle doit se comporter. En contrepartie, cependant, ces deux langages sont difficiles à faire évoluer, d'une part car trouver un consensus prend du temps (la norme C++11 a mis plusieurs années a être établie), d'autre part car il est difficile, étant donnée la forte utilisation des deux langages, de changer ce qui existe déjà.

En outre, l'informatique actuelle est sur le point de changer. D'un côté, les processeurs possèdent maintenant plusieurs cœurs. À condition de savoir en tirer parti, ces multiples cœurs permettent d'effectuer plusieurs calculs simultanément, et donc d'améliorer les performances (c'est le parallélisme). D'autre part, les logiciels serveurs sont susceptibles de recevoir un nombre toujours plus grand de connexions clientes simultanées, qui tentent d'accéder à des ressources partagées, et il est vital que le serveur gère ces accès proprement, sans faire d'erreur (c'est la concurrence).

Le parallélisme comme la concurrence sont des problèmes très difficiles à traiter, et les outils utilisés jusqu'à là (tels les verrous, ou locks) ne sont pas adaptés, car trop inefficaces.

De nouveaux langages tous les ans

Le C comme le C++ souffrent de défauts de conception, qui remontent à leurs origines. Depuis leurs dates d'invention respectives, de nombreux concepts ont été inventés par les chercheurs en langages de programmation. Ces concepts permettent souvent d'écrire du code plus fiable, contenant moins de bugs potentiels, car ils permettent au programmeur de faire vérifier une partie de son code par le compilateur.

Chaque année, de nouveaux langages de programmations sont conçus, par différents acteurs. Il est faux de croire que personne n'a essayé de proposer de nouveaux outils ! Cependant, ces langages servent des buts souvent très différents. Parfois, ils sont conçus par des laboratoires de recherche en informatique, qui se préoccupent plutôt de tester leurs nouvelles idées. Mais parfois aussi, ce sont les entreprises qui ont besoin de développer de nouvelles technologies. C'est le cas de Google et de son langage Go, par exemple, qui cherche également à remplacer le C et le C++ dans un certain nombre de situations.

C'est aussi le cas de la Mozilla Foundation. Graydon Hoare, membre des Mozilla Labs (un ensemble de plusieurs équipes d'ingénieurs qui travaillent sur des projets expérimentaux), a commencé à concevoir le langage Rust en 2006, avant de proposer son projet à Mozilla en 2009. À cette époque, le langage n'était pas encore clairement défini, pas même sur le papier. Cependant, l'implémentation initiale (un compilateur pour Rust écrit dans le langage OCaml) était suffisamment stable pour convaincre : Mozilla allait développer son propre langage de programmation, et G. Hoare en serait l'architecte.

Le langage Rust

Changer de langage pour supprimer des erreurs

Rust ne cherche pas à être un langage expérimental. Tous les concepts de programmation qu'il inclut ont déjà été testés dans d'autres langages de programmation, et résultent de plusieurs années de travail. Cependant, il tente d'adapter ces idées au monde de la programmation système, comme l'écriture de logiciels serveurs (services internet, bases de données…). Le but officiel des concepteurs est de proposer un langage fortement typé, tel que la sûreté du code soit vérifiée à la compilation, et que la programmation concurrente soit facilitée, sans nuire aux performances.

La sûreté du code est une chose importante : débuguer un programme prend du temps, et est souvent très difficile (car il faut tester des scénarios réalistes, ce qui est particulièrement compliqué pour des logiciels serveurs, par exemple). Les concepteurs des langages veulent donc s'arranger pour qu'une portion aussi large que possible du code écrit par le programmeur soit vérifié à la compilation. C'est à ça que servent les systèmes de type, par exemple.

Certains types de bugs sont fréquents, dans les programmes écrits en C ou en C++. Par exemple, le bug du « pointeur nul » est bien connu des informaticiens qui utilisent ces langages. Il se produit lorsque le programme tente d'accéder au contenu d'un pointeur… qui n'est en fait pas défini. Même dans des logiciels commerciaux, écrits par des professionnels, il arrive que l'on tombe sur une « erreur de segmentation », ou sur une « NullPointerException ». Ces deux erreurs sont souvent provoquées par l'utilisation d'un pointeur nul.

Très clairement, c'est donc un avantage si un langage de programmation permet d'éviter cette erreur. La solution est bien sûr de *ne pas laisser le programmeur utiliser des pointeurs nuls*. Si le concept de pointeur nul n'existe pas dans le langage, impossible de tomber dessus, pas vrai ? Mais un tel choix de conception a de l'influence sur le reste du langage : si les pointeurs nuls n'existent pas, quelle est la valeur d'un pointeur qui n'a pas encore été initialisé ?

Il existe déjà plusieurs langages de programmation sans pointeurs nuls, qui utilisent des concepts différents (tels les types options en OCaml). Ces langages proposent souvent d'autres nouvelles idées, qui permettent de programmer autrement qu'en C, en C++ ou en Java. Le but de Rust est de reprendre ces idées pour les rendre plus familières aux programmeurs issus du C. En tant que tel, Rust *ressemble* au C, mais aussi à ces autres langages.

Une syntaxe un peu familière

La syntaxe de Rust ressemble un peu à celles de C ou JavaScript. Par exemple, les instructions sont toujours séparées par des point-virgules, certains mot-clefs usuels (while, if…) sont toujours présents, et les blocs sont marqués par des paires d'accolades. D'autres mot-clefs changent de nom : par exemple, les fonctions sont introduites par fn, les variables locales par let, et le mot return devient ret. De plus, les parenthèses ne sont pas obligatoires dans les expressions conditionnelles des boucles ou des tests, comme en Python.

Voici un exemple de programme Rust, une fonction qui calcule la factorielle de son argument (le produit des nombres de 1 jusqu'au nombre passé en argument).

Code : cpp
  1. fn fac(n: int) -> int {
  2. let result = 1, i = 1;
  3. while i <= n {
  4. result *= i;
  5. i += 1;
  6. }
  7. ret result;
  8. }

On remarquera aussi que les déclarations de types sont différentes. Notamment, elles ne sont pas nécessaires pour les variables locales, car le compilateur les déduit automatiquement (on parle d'inférence de types). Le type de retour de la fonction est indiqué après son nom et sa liste d'arguments, après le ->. Plusieurs types de base sont supportés : notamment, Rust dispose de n-uplets, qui permettent d'empaqueter plusieurs valeurs (et ainsi de renvoyer plusieurs valeurs en même temps depuis une fonction).

Pour l'instant, la syntaxe est encore susceptible d'évoluer. Notamment, des macros devraient être rajoutées.

Les fonctions

Les fonctions de Rust sont plus flexibles que celles du C. Premièrement, il n'est pas aussi désagréable qu'en C de passer des fonctions en argument d'autres fonctions. Il n'est pas nécessaire de manipuler explicitement des pointeurs de fonctions, et on peut parfaitement, lors de la déclaration d'une fonction, préciser le type de la (ou des) fonction(s) qu'elle attend. Par exemple, on peut alors faire

Code : cpp
  1. fn call_twice(f: fn()) {
  2. f();
  3. f();
  4. }

Dès lors, la fonction call_twice attendra une fonction qui ne prend pas d'argument, et renvoie le type Nil (qui est un peu un équivalent du void en C). De même, comme dans les langages fonctionnels, il est parfaitement possible de renvoyer une fonction à partir d'une autre fonction : on peut donc définir une fonction locale, et la renvoyer après, sous certaines conditions.

De plus, plusieurs formes de fermetures ("closure" en anglais) sont possibles. On parle de fermeture (d'environnement) quand on définit une fonction qui dépend de la valeurs de variables définies à l'extérieur : supposons par exemple que l'on veuille définir une fonction qui, à partir d'une chaîne de caractères, produit une *autre* fonction, celle-là prenant une autre chaîne de caractère en argument, et renvoyant la concaténation des deux.

L'effet de la deuxième fonction va bien sûr dépendre de l'argument que l'on aura passé à la première ; il va donc être nécessaire de le retenir, d'une certaine façon, en le capturant dans l'environnement de la fonction que l'on la fabrique.

En Rust, cet exemple s'écrit ainsi :

Code : cpp
  1. fn make_appender(suffixe: str) -> fn@(str) -> str {
  2. let f = fn@(s: str) -> str { s + suffixe };
  3. ret f;
  4. }
  5.  
  6. fn main() {
  7. let shout = make_appender(" !");
  8. std::io::println(shout("Bonjour, monde"));
  9. }

La première fonction attend bien une chaîne (appelée "suffixe"), et renvoie bien une fonction qui attend une chaîne, et renvoie une chaîne. La déclaration locale de la fonction renvoyée en argument se fait à l'aide du mot clef "fn@", qui permet la fermeture (ici, c'est encore la variable "suffixe" qui se retrouver emprisonnée).

De telles fermetures sont puissantes (elles permettent de simuler la programmation orientée objet), mais sont également connues pour être un peu coûteuses, puisqu'elles demandent une copie d'une partie de l'environnement (toutes les variables capturées). Une autre construction, plus légère, permet d'utiliser des fermetures qui partagent, en réalité, leur environnement avec le contexte dans lequel elles sont créées. La syntaxe est alors {|argument1, argument2, …| corps}.

Certaines fonctions prédéfinies sont capables de travailler avec de telles fermetures de façon assez élégante. C'est le cas de la fonction ver::map, par exemple. On peut, en Rust, écrire "let doubled = vec::map([1, 2, 3]) {|x| x*2};", ce qui produira le tableau [2, 4, 6]. Enfin, d'autres constructions permettent de manipuler élégamment des fonctions. Par exemple, l'application partielle se fait au moyen du mot-clef bind.

Types de données

Rust possède un certain nombre de types de données de base. Les enregistrements, par exemple, correspondent aux structures du C. On peut définir un type enregistrement avec le mot-clef "type" (qui sert à toutes les déclarations de types). Cependant, Rust permet de préciser si le champ d'une structure peut ou non être modifié, avec le mot-clef "mutable". Par exemple, on peut écrire

Code : cpp
  1. type point = {x: float, y: float}
  2. type stack = {content: [int], mutable head: int};


ce qui déclare un type point, puis un type stack dont le deuxième champ peut être modifié (on peut faire une_stack.head = 3 par exemple), mais aucun champ du type point ne peut, quant à lui, être modifié.

Les énumérations constituent un autre type important en Rust. Ce sont des types qui regroupent certaines valeurs particulières, appelées variants. Plus évolués qu'en C, ces variants peuvent porter un certain nombre de valeurs. Par exemple, on peut former l'énumération

Code : cpp
  1. enum forme {
  2. cercle(point, float),
  3. rectangle(point, point)
  4. }


pour déclarer un nouveau type "forme", qui possède deux valeurs particulières ("cercle" et "rectangle"), dont l'un est décrit par un point (son centre) et un flottant (son rayon), et l'autre est d'écrit par deux points.

Un autre mot-clef permet alors, un peu comme le switch en C (mais ici encore en plus évolué), de traiter différemment les variants d'une énumération.

Code : cpp
  1. fn aire(f: forme) -> float {
  2. alt f {
  3. cercle(_, rayon) {
  4. float::consts::pi * size * size
  5. }
  6. rectangle({x: x1, y: y1}, {x: x2, y: y2}) { 
  7. (x2 - x) * (y2 - y)
  8. }
  9. }
  10. }

Ici, on retourne l'air de la forme passée en argument, en distinguant bien sûr les deux cas.

Un petit mot sur les pointeurs : comme les créateurs de Rust veulent s'en servir pour écrire du code fiable, les pointeurs ne peuvent pas être aussi souples que ceux du C. On distingue donc trois types de pointeurs en Rust : des pointeurs non-vérifiés (comme ceux du C) qui ne sont utilisables que dans des blocs "unsafe" explicites (le but étant, bien sûr, de minimiser la taille de ces blocs !), des boîtes, et des boîtes uniques.

Les boîtes sont le type pointeur le plus utilisé. Elles ne peuvent pas être explicitement libérées, mais bénéficient d'un comptage de référence (avec détection de cycles) pour éviter au programmeur de risquer de manipuler des pointeurs nuls. Elles correspondent au préfixe @ : par exemple, on peut déclarer une référence vers le nombre 10 en écrivant "let x = @10".

Les boîtes uniques servent à s'assurer qu'une référence n'est pas dupliquée. Cela permet par exemple d'envoyer des valeurs aux "tâches", qui sont les processus légers utilisés en Rust (dans la partie concurrente du langage).

Des arguments génériques

Rust dispose de generics, une construction qu'il partage avec un certain nombre de langages (comme Java ou C#) et qui permet de définir des structures de données génériques, pouvant être paramétrés par plusieurs types. Par exemple, en C on peut définir des listes chaînées d'entiers, ou des listes chaînées de chaînes, mais les fonctions qui les manipuleront devront être distinctes (il faudra faire deux exemplaires à chaque fois).

En Rust, les types, les enums et les fonctions peuvent être paramétrés par un type inconnu, qui sera précisé lorsque l'on utilisera ces fonctions sur des valeurs concrètes. Par exemple, il est possible de faire une fonction "map" générique, qui applique une fonction à un tableau, en renvoyant le tableau des résultats :

Code : cpp
  1. fn map<T, U>(v: [T], f: fn(T) -> U) -> [U] {
  2. let acc = [];
  3. for elt in v { acc += [f(elt)]; }
  4. ret acc;
  5. }
  6.  

Comme on veut que cette fonction map accepte des tableaux d'entiers, ou de chaînes, ou même des tableaux d'autres tableaux d'un certain type, et que la fonction passée en argument peut, éventuellement, renvoyer un type différent de celui qu'elle reçoit, on a bien deux inconnues de type. Supposons que l'on veuille travailler sur un tableau de chaînes de caractères, et produire le tableau des longueurs de chaque chaîne. Alors T va correspondre au type str, et U au type int. On écrira alors tout naturellement map(tableau_chaînes, length).

Du polymorphisme

Les arguments génériques correspondent à ce que l'on appelle le polymorphisme paramétrique, qui permet d'écrire des fonctions sur des structures de données sans se soucier exactement de la nature des données qu'elles contiennent. Il correspond à ce que l'on trouve ordinairement dans les langages fonctionnels statiquement typés.

Mais une autre forme de polymorphisme, complémentaire à la première, est également possible : le polymorphisme ad-hoc, qui consiste à définir une certaine signature (un type de fonction), et à implémenter cette fonction sur différents types de données. Cette forme de polymorphisme est plus connue des programmeurs utilisant des langages orientés objets, mais peut, en réalité, en être dissociée.

Très récemment, Rust s'est vu adjoindre un mécanisme d'interfaces, qui permet de définir des signatures (qui donnent donc les noms et les types des méthodes à implémenter). Ces signatures peuvent ensuite être implémentées pour un type donné.

On peut par exemple définir une interface qui explique comment les valeurs doivent être converties en chaînes (pour pouvoir les afficher, par exemple) :

Code : cpp
  1. iface to_str {
  2. fn to_str() -> str;
  3. }
  4.  
  5. impl of to_str for int {
  6. fn to_str() -> str { int::to_str(self, 10u) }
  7. }
  8. impl of to_str for str {
  9. fn to_str() -> str { self }
  10. }

Avec un tel code, il est possible d'écrire 1.to_str pour récupérer la chaîne "1". Ce mécanisme est à rapprocher des type classes du langage Haskell.

Et naturellement, on peut contraindre les arguments génériques d'une fonction pour qu'ils implémentent une certaine interface : on peut ainsi définir une fonction print qui n'accepte que des paramètres que l'on sait transformer en chaînes.

Des tâches

Finissons notre tour d'horizon de Rust par sa partie concurrente, les tâches. Rust possède un système de processus légers qui ressemble à celui du langages Erlang : ces processus légers ne partagent pas de données, et communiquent entre elles uniquement par messages.

Ces messages sont envoyés dans des canaux typés, qui doivent donc être déclarés avant la création d'une tâche. Voici un exemple :

Code : cpp
  1. fn main() {
  2. let port = comm::port::<int>();
  3. let chan = comm::chan::<int>(port);
  4. let child_task = task::spawn {||
  5. let result = 5;
  6. comm::send(chan, result);
  7. };
  8. std::io::println("On va recevoir un message :");
  9. log(error, comm::recv(port));
  10. }

Le port sert à recevoir des données, et le canal à les lui envoyer. Ici, on lance une tâche (dont le code est donné par une fermeture), qui se contente d'envoyer 5 sur le canal. Pendant ce temps, le programme principal continue de s'exécuter, et affiche le message lu.

Ce mécanisme de programmation parallèle intégré au langage permet d'écrire des programmes qui profitent de la présence de plusieurs unités de calcul (comme un processeur multi-cœur), mais aussi des processus serveur qui acceptent un grand nombre de connexions simultanées, et gèrent chaque client comme une tâche distincte. Bien sûr, le choix d'utiliser des processus légers et des messages a des conséquences sur l'écriture des programmes ; mais ils constituent des abstractions plus simples, et moins sujettes à l'erreur, que les mécanismes traditionnels (comme les verrous).

Un jeune langage

Il est impossible de ne pas comparer Rust à Go. Les deux langages, annoncés à peu près en même temps, visent tous les deux à être des langages système, et intègrent tous deux une conception de la programmation concurrente. Cependant, il semble que les concepteurs de Rust ont choisi de s'éloigner un petit peu plus des habitudes des programmeurs C, pour proposer un langage plus évolué. Au final, Rust est un petit peu plus riche que Go, et son développement est un peu en retard. Il est probable que des communautés se formeront autour des deux langages, qui commenceront à avoir de l'importance d'ici quelques années.

La version 0,1 de Rust consiste en un compilateur écrit lui-même en Rust, qui se base sur la LLVM. Pour l'instant, ce compilateur est le seul gros projet écrit en Rust. Brendan Eich (créateur de JavaScript et employé de Mozilla) a annoncé, en avril dernier, que Rust servirait probablement à tester de nouveaux concepts dans le développement d'un moteur de navigateur web plus moderne que Gecko. Notamment, les tâches (le parallélisme) et une gestion plus fiable de la mémoire sont deux des qualités qui justifient l'utilisation de Rust dans ce projet, baptisé Servo.
News rédigée par Euphorion

La fin de MegaUpload ?

jeudi 19 janvier 2012 à 23:08
Serait-ce la fin de tout un empire ? , le Département de la Justice (américaine), avec l'aide des polices de 8 États différents.

Concrètement, les noms de domaine ont été confisqués (c'est vraiment pratique, et très en vogue), mais les serveurs aussi. Pour une fois, ils ont voulu faire propre et interdire tout accès, et ce site n'est pourtant pas pédopornographique. On voit où se concentrent les efforts, hein...

Les 6 principaux dirigeants de l'entreprise sont en état d'arrestation (enfin, il y en a toujours 3 qui courent), Kim Dotcom a notamment été arrêté avec d'autres comparses en Nouvelle-Zélande.

Mais qu'est-ce qui a lancé cette attaque envers le site de partage de fichiers ?
En réalité, l'action avait été minutieusement préparée depuis il y a plus d'un an. Le fait était qu'apparemment, MegaUpload ne se comportait plus comme un hébergeur neutre, vu qu'il a encouragé des utilisateurs à poster du contenu, contre de l'argent. Ceux-ci étaient alors encouragés à générer un contenu populaire, et à créer des liens partout sur le Web.
Par ailleurs, MegaUpload, via l'outil proposé aux majors pour supprimer le contenu, ne le fait pas vraiment, mais ne fait que supprimer le lien, alors que des centaines peuvent mener à un seul contenu. Le système était donc volontairement inefficace.

Mais MegaUpload, tant défendue par les internautes pour télécharger des soit-disant films de vacances, ne semble pas si clair que ça... Parmi les biens gelés, se trouvent notamment :

Pour revenir sur le blocage, ils ont été faits sur les serveurs DNS, mais les serveurs situés aux États-Unis (les principaux) ont été suspendus, ce qui a causé la fermeture totale du service. Pourtant, il ne s'agit pas de site pédopornographique...

Enfin, je voudrais revenir sur l'usage qui est fait de MegaUpload. La plupart des vrais geeks, qui citaient le site comme exemple, pour la plupart, n'utilisent pas MegaUpload. Pour eux, la fin de ce site symbolise l'extinction des libertés (couper le site avant le procès).
Par contre, pour les newbies, cela signifie seulement que les films ne seront plus visibles gratuitement sur MegaVideo. Ils n'ont, pour la plupart, pas de notion de confiance ou d'honneur (un peu comme les personnes qui disent : "Laisser son client Bittorrent ouvert ? Pourquoi faire ? Quand j'ai mon fichier, je m'en fiche !".

À méditer...

ThepirateBay embarque des artistes

mercredi 18 janvier 2012 à 13:22

The promo bay

Imaginez l'incroyable aigreur, l'inexorable stupeur, qui s'est dessinée subitement sur le visage de nos chers et tendres majors, amis et parents de la culture musicale lorsqu'ils ont appris la nouvelle ?
Eux qui se sont engagés, corps et âmes, dans une lutte sans merci contre l'oppresseur. Eux qui, emplis d'une bonté sans pareille, voulait faire trépasser les sombres et rugueux bafonds du partage dans l'illégalité la plus totale.

Imaginez donc leurs émotions, quand ils ont appris qu'un des sites qui selon eux tuait leur art à petit feu, s'était revendiqué faire la promotion d'un certains nombre d'artistes ?

Je vais vous répondre ; ils ont sûrement eu grave les boules.
Une fois de plus la preuve a été faite par A+B que téléchargement et création artistique peuvent vivrent ensemble dans la joie et la bonne humeur. Et un de leurs arguments (si tant est que nous pouvons les apeller arguments), s'est une fois de plus envolé en fumée.

Mettons à part ce flot de sarcasmes pour nous intéresser à la bête.

Vous avez dit promotion ?


Effectivement, l'énorme site de torrent thepiratebay s'est décidé à ouvrir une page qui permettera à des artistes de tout les horizons d'obtenir une grande visibilitée. Et quand on connais la fréquentation du site, on peux facilement deviner la réputation qu'un artiste pourrait se tailler avec ça.

Bien évidemment, la plateforme ne s'adresse pas réellement aux artistes connus et reconnus, mais plus à ceux indépendants, pour qui le piratage est une broutille par rapport à leur invisibilité sur le marché.

Comment ?


La mise en place de ce projet est déjà en route. Chaque artiste retenu par l'équipe du TPB, aura le droit à voir son logo s'afficher à la place de celui du site, et verras tout clique sur celui-ci redirigé vers l'url de son choix.
Pour quel prix ?

Les valeurs du bateau pirate ne sont pas baffouées ; tout cela est gratuit, et ne nécessite que le partage d'une oeuvre par l'artiste en question. Rien de bien compliqué quand on sait l'énorme masse qui pourrait rapidement affluer sur votre site suite à ça.
Comment y participer ?

La participation est fort simple, un formulaire est mis à disposition par TPB dans le cadre de leur promotion :
et plus qu'a espérer avec impatience et nervosité la réponse de nos bateliers.

Conclusion


On ne peux maintenant que souhaiter des initiatives parallèles de la part d'autres sites du même genre, pour enfin démontrer que le partage a pour but de soutenir la culture et l'accès à celle-ci, et non de la détruire.
Espérons que nous pourrons assister à de plus en plus de créations indépendantes, se passant des vrais voleurs, les majors.

Merci et aurevoir.
Noir progressif et fin...