[Raw Nerve 2] Croire que vous pouvez changer

Voici la traduction du deuxième article de la série Raw Nerve d’Aaron Swartz.

Croire que vous pouvez changer

Cet article est la deuxième partie de la série Pensée Sensible.

Carol Dweck était obsédée par l’échec. Vous savez que certaines personnes semblent réussir tout ce qu’elles font, alors que d’autres semblent impuissantes, condamnées à une vie d’échecs constants? Dweck le remarqua aussi — et elle était déterminée à comprendre pourquoi. Elle commença donc à observer des enfants, essayant de voir si elle pourrait repérer la différence entre les deux groupes.

En 1978, dans une étude avec Carol Diener, elle donna aux enfants différents casse-têtes et enregistra ce qu’ils disaient alors qu’ils essayaient de les résoudre. Très vite, les enfants résignés commencèrent à s’en vouloir: « Je m’embrouille », disait l’un; « Je n’ai jamais eu une bonne mémoire », expliquait un autre.

Mais les énigmes continuaient d’arriver — et devinrent plus difficile. « Ce n’est plus drôle du tout », s’exclamèrent les enfants. Mais ils y avaient toujours plus de casse-têtes.

Les enfants n’en pouvaient plus. « J’abandonne », insistèrent-ils. Ils commencèrent à parler d’autres choses, essayant de penser à autre chose qu’à l’assaut continu de ces casse-têtes difficiles. « Il y a un concours de talent ce week-end, et je serai Shirley Temple », disait une fille. Dweck leurs donna juste des énigmes plus compliquées.

À partir de ce moment-là, les enfants perdirent leur sérieux, comme s’ils pouvaient cacher leur échec en faisant bien comprendre que depuis le début ils n’essayaient pas. Bien qu’informé régulièrement que c’était faux, un garçon continua de choisir brun comme réponse, en répétant: « Gâteau au chocolat, gâteau au chocolat ».[1]

Peut-être que ces résultats ne sont pas surprenants. Si vous avez déjà joué à un jeu de société avec des enfants, vous les avez probablement entendus dire toutes ces choses et plus (Dweck semble avoir manqué la partie où ils prennent le jeu et lancent toutes les pièces sur le sol, puis s’enfuient en hurlant).

Mais, ce qui la stupéfia — et changea le cours de sa carrière — fut le comportement des enfants victorieux. « Tous le monde a un modèle, quelqu’un qui montre le chemin à un moment critique dans la vie, » écrivit-elle plus tard. « Ces enfants étaient mes modèles. Ils savaient vraisemblablement quelque chose que j’ignorais et j’étais déterminée à découvrir quoi. »[2]

Continuer la lecture de « [Raw Nerve 2] Croire que vous pouvez changer »

Cover Picture Background

I wanted to display a picture in the background of a page for a project of mine. I’ve already used this solution twice. It works good and looks really great.

Here is the code using the property background-size from CSS3.

body {
  /*Full picture in the background.*/
  background: url(background.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

So, as an example, this is the original picture I’ve used.

Original Picture
French singer Martial from the band Manau.

And this is how it looks when used as a cover picture in my project Orchestre.

fullScreenBackground

Comment je me passe (ou presque) de Google et des autres.

L’actualité des derniers mois dans le mode du logiciel libre en France a été marqué par la campagne « Dégooglisons Internet » de Framasoft. Je ne peux que saluer leur initiative, les remercier pour les articles du Framablog (dont je suis avide lecteur) et leur souhaiter une bonne route (longue mais libre).

Le libre; je suis définitivement tombé dedans depuis maintenant six années environ. Tout commence par le navigateur, ensuite le système d’exploitation, puis avec les années, on ressent le besoin d’aller plus loin. De se passer progressivement de tous ces services en ligne gratuits dont nous sommes le produit, ou de simplement ne pas y mettre les pieds.

Faisons le point.

Aujourd’hui, je reste encore « lié » à deux acteurs majeurs: Google et Twitter. Je me suis débarrasser des autres, comme Dropbox que j’ai utilisé pour partager des documents avec mes collègues de projets durant mes études d’ingénieur. Tout le monde n’étant pas prêt à écrire un rapport de projet en LaTeX et à utiliser git pour gérer ses versions, même en filière informatique.

Côté réseaux sociaux, j’avais toujours pensé ne jamais créer de compte Facebook, j’ai pourtant fini par le faire avec méfiance. Celui-ci a duré une année avant que je finisse par en demander la suppression. Je reste plus tolérant avec Twitter. Bien sûr, il serait préférable d’héberger soi-même ses tweets, mais les messages étant publics et avec ce principe en tête, on sait que les choses que l’on publie pourront être utilisées par tout un chacun. Les problèmes de « vie privée » interviennent donc beaucoup moins, ce que l’on écrit, on est prêt à le partager avec internet.

Venons-en maintenant à Google… Si je dispose bien d’un compte Google dont je peux tout juste vous donner l’adresse mail, c’est que j’ai toujours limité mon utilisation des services Google au strict minimum, c’est-à-dire : l’accès au PlayStore depuis mon téléphone Android. Je n’utilise pas leur service de mail, ni leur réseau social, m’abstiens de synchroniser quoi que ce soit et ne stocke pas de document sur leurs serveurs.
Actuellement, ma principale préoccupation se situe du côté d’Android, Google étant en train de verrouiller le code des applications de base du téléphone. De plus, j’ai récemment appris que Google me géolocalise périodiquement dès que j’active la fonctionnalité GPS (maps.google.com/locationhistory pour voir vos déplacements). Par ailleurs, j’utilise assez peu d’applications provenant du PlayStore, mon dépôt de référence étant F-Droid, d’où proviennent 90% des applications que j’utilise quotidiennement. Je surveille également avec intérêt l’évolution de FirefoxOS, quitte à tenter le portage du système sur mon téléphone si l’occasion se présente.

Côté mail, je dépends pour le moment d’un fournisseur d’accès internet auquel je fais de moins en moins confiance pour la gestion de ma correspondance numérique. J’envisage donc à terme d’héberger mon propre serveur mail et espère que CaliOpen pourra faire l’affaire. Le mail restant un service critique, je continue la phase d’étude pour le moment.

Enfin, évoquons rapidement la recherche en ligne. Se passer de Google reste difficile car celui-ci propose généralement les résultats les plus cohérents. J’utilise donc DuckDuckGo comme moteur principal et, lorsque celui-ci ne fait pas l’affaire, l’ajout d’un simple !g me permet d’être redirigé en toute simplicité vers les résultats Google.

Résumons à présent les outils qui me permettent de pratiquement me passer de ces grands fournisseurs de services.

  • Owncloud: Pour le stockage et le partage de fichiers en ligne, la synchronisation des contacts et de l’agenda, et également comme gestionnaire de flux RSS.
  • Etherpad: Pour l’édition collaborative de document en ligne.
  • Diaspora*: Comme réseau social décentralisé mais que j’utilise peu pour le moment.
  • Gitlab: Pour la gestion de code source et la création de dépôts privés.
  • F-Droid: Pour l’accès à des applications téléphones sous licence libre.
  • Wallabag: Comme outil de Read-it-later.
  • OpenStreetMap: En lieu et place de Google Maps.
  • DuckDuckGo: Pour la recherche en ligne.

Je pense avoir atteint un premier stade dans ma quête de décentralisation. J’ai assez peu d’interactions avec tous ces cultivateurs de données personnelles. Il me reste néanmoins du pain sur la planche pour continuer à me libérer de tous ces services privateurs, notamment pour le mail, l’OS téléphone et la recherche en ligne. Le voyage se poursuit, mais l’avenir semble prometteur.

Flux RSS des vidéos d’une chaîne Youtube

Le premier article de 2015 concernera Youtube et les flux RSS avec l’astuce toute simple que voici. Si vous souhaitez suivre les vidéos d’une chaîne en particulier dans votre lecteur de flux RSS préféré, il suffit d’utiliser l’url suivante pour récupérer le flux RSS des vidéos d’un utilisateur. On remplacera bien sûr <USERNAME> par l’identifiant de la chaîne.

https://gdata.youtube.com/feeds/base/users/<USERNAME>/uploads

 

Illustration avec la chaîne Data Geule. Voici l’url que l’on obtient si on se rend sur la page Youtube:

https://www.youtube.com/user/datagueule/featured

On voit clairement le nom d’utilisateur, ici datageule. On constate parfois que le nom de la chaîne est complètement différent du nom d’utilisateur présent dans l’url; ce n’est pas le cas ici. On obtient donc l’url suivante pour les flux RSS de Data Geule sur Youtube:

https://gdata.youtube.com/feeds/base/users/datagueule/uploads

Bon visionnage!

Maj 23/05/15

Comme l’indique Damien dans les commentaires, l’url ci-dessus n’est désormais plus valide. En effet, suite à la mise à jour de l’API YouTube Data, Google a commencé à supprimer l’ancienne version à compter du 20 avril 2015. La nouvelle url à utiliser est donc la suivante:

https://www.youtube.com/feeds/videos.xml?user=<USERNAME>

Soit en reprenant notre exemple:

https://www.youtube.com/feeds/videos.xml?user=datagueule

Merci à lui!

Maj 23/05/16

Comme précisé par Doumé dans les commentaires, le paramètre à utiliser est différent lorsque l’url ne contient pas le nom d’utilisateur, mais l’identifiant de la chaîne Youtube. C’est le cas par exemple de la chaîne Veritasium dont l’url est la suivante :

https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA

Pour obtenir le flux RSS d’une chaîne, nous utiliserons donc la même url que précédemment, mais avec le paramètre channel_id, soit :

https://www.youtube.com/feeds/videos.xml?channel_id=<IDENTIFIANT>

Ce qui nous donne pour Veritasium :

https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA

Merci à Doumé pour cette précision !

[SQL] Count results from stored procedure (without return)

It’s been a while since I haven’t used SQL. Now that I’m using it on a daily basis at work, I may write a little more about SQL than before. So here is an article the aim of which is to show how to find the number of results returned by a stored procedure. It’s in fact a problem which can be easily solved.

So let’s say we have a table containing animals names. Nothing fancy, just something like this:

name
----
Cat
Dog
Rabbit

That’s it for the table. Now we need a stored procedure, so let’s assume we have one : findNameLike which take letters as parameter and returns animals names beginning with these letters.

EXEC findNameLike @beginWith = N'C'

Cat.
Yes, the above call will return Cat.

So, if we want to know how much results were found, we will just write the following code:

DECLARE @numberOfMatch INT
EXEC findNameLike @beginWith = N'C'
SELECT @numberOfMatch = @@ROWCOUNT

The number of results is now available in variable numberOfMatch.

That’s it.
But maybe you also don’t want the stored procedure to return results when you call it. So we need to modify our code a little so that results will be stored in a temporary table and thus not returned, but rather stored in the table.

DECLARE @numberOfMatch INT
DECLARE @tmpTable TABLE (
    name VARCHAR(25)
)

INSERT INTO @tmpTable 
EXEC findNameLike @beginWith = N'C'
SELECT @numberOfMatch = @@ROWCOUNT

I think we’re done here. In a few lines, we’re able to count the results from a stored procedure as well as suppressing its return.