Menu Close

How I used “Push by Zapier” to publish WordPress articles in one click

You might have noticed that I recently updated Idea factory.

For those who never visited this section of the website, Idea factory is a space where I am saving all the links / articles / medias that I found interesting.

On the technical side, Idea factory relies on WordPress, the super popular content management system. One big constraint with this CMS though, is the time to publish!
Consider this. To create an article I will have to:

  1.  Connect to WordPress
  2. Press « Add new article »
  3. Find a cover picture on the web
  4. Upload the cover picture
  5. Write the article
  6. Then finally click publish

End-to-end, the whole process can easily takes me more than 10 minutes!

So, I asked myself, how can I make this fits in less than 1 minute?

Challenge accepted

(Spoiler Zapier was the answer)

Zap what?

To present it briefly, Zapier is a platform as a service which gives you the ability to automate different tasks by connecting multiple services together.

For example: If I am sending a tweet with a specific hashtag (the trigger), then Zapier will post a new status for me on Facebook (first action) and also save the associated media on my Google drive (second action).

It’s worth mentioning that in Zapier, you can combined an unlimited amount of steps (not like IFTTT for instance ), write you own code or even push notifications directly from your browser using a dedicated Google Chrome extension!

If this do that and that and that and that and …

Let’s now come back to our initial problem and look at the general solution I put in place.

Step 1

Zapier trigger

As I explained earlier, if you install the Zapier Google Chrome extension you are given the ability to run a specific task on any webpage.

On the background, this is what happens the Chrome extension button is clicked:

  • Zapier will start the task.
  • Pass the page title I am on,
  • Pass the page URL,
  • Pass an optional text argument.

Zapier chrome extension


Step 2

custom code

This second step is a little bit more complex as it uses a custom code section.

Step 2

If you are not « Javascript fluent », let’s simplify and say that the function above checks whether or not the user sent a text input in step 1.

If the code is finding a text occurence, it returns it, otherwise it uses the page title.


Step 3

step 3

For this third step, I am using an external service: Apify.

This platform provides the ability to create web crawlers on the fly which are going to scrap the whole content of a given page.
As an input I am feeding my crawler with the URL retrieved in step 1. And on the Apify side, this code is executed on the page where the crawler runs:

See the Pen RMwaqB by Adrien Rahier (@FracArt) on CodePen.0

At first glance, this seems like a complicated piece of code. However, if you look closer the only thing I am doing here is getting the cover image of the webpage and the page description.


STEP 4

Step 4

The previous operation is going to take a couple of seconds to run. So, just to make sure that the process is now over, I am delaying the rest of the execution for 1 minute.


STEP 5

Step 5

Apify should now be done. Time to get back the results.


STEP 6

Step 6

Let’s now create an article using the WordPress API.

As a title I am passing the result of step 2. For the content and excerpt I am giving the results of the crawler (step 5).

Title

Wordpress content


Step 7

 Step 7

Finally, just to confirm that everything went fine I am pushing to myself a Slack notification with the link to the article.

Conclusion

We have seen in this article how I used Zapier to avoid the long and repetitive task of creating WordPress articles again and again.

If you have any questions regarding this workflow I am more than happy to share additional details.

Also, if you have other ideas of tasks that could be automated, feel free to leave a comment.

Un exemple de compte de main au bridge

This article is also available in English at this address.

Il y a peu, je me suis procuré le fantastique bouquin de Pierre Saporta, « Jouez un tournoi avec moi« .

L’idée de cet ouvrage est à la fois très simple et très séduisante. Vous jouez un tournoi dans l’équipe de Pierre Saporta (champion de France multirécidiviste) et à la fin de chaque tour celui-ci vous livre son analyse et ses conseils.

Disons-le tout de suite, cet ouvrage n’est pas à la portée du premier venu. Ce livre pose en effet comme grand principe de base, le fait que vous sachiez déjà jouer (très correctement) au bridge.

Comme je trouvais dommage que ce livre se limite à cette audience j’ai eu l’idée d’écrire cet article qui vous donnera, j’espère, une meilleure idée de l’élégance des problèmes résolus au bridge.

Avant d’attaquer, découvrons quelques règles de base :

Le bridge n’étant pas vraiment un des jeux les plus simples à maîtriser en termes de règles, je vais ici simplifier au maximum.

Voici donc l’essentiel de ce qu’il vous faut savoir avant de lire la suite :

  • Le bridge se joue à deux contre deux.
  • A chaque tour de cartes (appelée donne), vous jouez un contrat. Un contrat correspond à un nombre de plis à réaliser. Si vous faites plus de plis que prévu, tant mieux, il vous sera accordé des points supplémentaires. Sinon vous chutez.
  • Au bridge, vous disposez de 13 cartes par joueur et l’ordre est As, Roi, Dame, Valet, 10, 9, etc. Cependant, contrairement à d’autres jeux comme la belote ou la coinche, ce qui importe ici c’est uniquement le nombre de plis que vous réalisez et non pas le nombre de « points » faits au total. En suivant ce raisonnement, vous aurez donc compris que remporter les plis avec un As ou un 4 revient au même.
  • Après avoir décidé d’un contrat, le jeu commence et l’un de vos adversaires entame. Votre partenaire étale alors son jeu face visible devant lui (!). Ainsi, pendant tout le reste de la partie, les trois autres joueurs vont donc voir son jeu et lui devient inactif. C’est donc à vous, son partenaire, de lui dire à chaque tour quelle carte jouer.

Le problème

Sans rentrer outre mesure dans les détails sachez simplement que pour cette donne, nous avons décidé avec mon partenaire de jouer le contrat de 6SA¹.

En langage moldu, cela veut donc dire réaliser 12 plis sur les 13.

Entame Valet de Pique, votre partenaire étale comme prévu toutes ses cartes devant lui et attend patiemment vos instructions.

Voici vos deux jeux :

Sur cette figure, vous êtes en bas. Personne, mis à part vous, ne voit votre jeu. En revanche, tout le monde voit le jeu de votre partenaire (en haut sur la figure). De votre côté, vous ne voyez pas non plus les jeux de vos adversaires.

Les joueurs jouent chacun leur tour dans le sens des aiguilles d’une montre et celui qui remporte le pli rejoue.

Que dites-vous à votre partenaire de jouer pour réaliser les 12 plis du contrat ?

La solution simple

La theorie

Essayons d’imaginer un peu ce qui va se passer :

  • A Pique, vous allez très certainement prendre le Valet de vos adversaires et faire trois plis.
  • A Cœur, vous ne savez pas trop où est le Roi de Cœur donc vous ne pouvez compter que sur un pli sûr pour le moment.
  • A Carreau, vous avez trois plis sûrs.
  • A Trèfle, vous avez trois plis sûrs de nouveau.

3+3+3+1 = 10. Il vous manque donc deux plis pour réaliser votre contrat. Où allons-nous les trouver ?

Vous avez peut-être deviné que la réponse se trouve à cœur : si le Roi de Cœur est à votre droite, il y a de grandes chances que vous fassiez votre contrat.

Dans le détail :

Au premier tour de cartes, imaginons que vous preniez le Valet de Pique avec l’As de votre partenaire. A lui de rejouer. Demandez-lui à présent de jouer le 2 de Cœur.

  • Si votre adversaire de droite (celui dont on suppose qu’il a le Roi de Cœur) joue effectivement son Roi, vous couvrez de l’As et faites votre contrat (vous faites en effet les deux plis supplémentaires qui vous manquaient à cœur avec la Dame et le Valet).
  • Si votre adversaire de droite s’entête en revanche à jouer un petit, vous allez jouer le 10 de votre main et espérer faire le pli.

La pratique

En pratique, votre adversaire de droite pose le 4 (on est donc dans le deuxième cas). Vous jouez comme prévu le 10 et votre adversaire de gauche pose le 5. Vous faites donc le pli.

L’idée ici est de répéter la manœuvre pour forcer l’adversaire à poser son roi ou mettre un petit. Vous devez donc retourner chez votre partenaire via Pique pour pouvoir rejouer le trois de Cœur de sa main. Encore une fois, l’adversaire de droite joue un petit (le 9 de Cœur) et vous faites le pli avec la Dame.
Avec l’As de Cœur vous comptez à présent 12 plis, votre contrat est fait.

Lifehack pour pouvoir briller en soirée : cette manœuvre au bridge s’appelle « faire une impasse ».

true story

Le coup du genie

Jusque-là, rien de très compliqué, il vous a suffi d’un peu de jugeote (et aussi d’un peu de chance) pour faire votre contrat. La grande majorité des joueurs vont d’ailleurs aligner 12 plis sur ce coup.

bush

Maintenant, vous qui êtes jeune, talentueux et avide de gloire, pourquoi ne pas envisager de maximiser vos chances d’en faire 13/13 ?

La théorie

Déjà, vous aurez peut-être remarqué que j’ai utilisé le terme « maximiser ». Il existe en effet plusieurs moyens d’arriver à faire 13 levées.

  1. Vous avez 7 Trèfles à vous deux avec votre partenaire. Une couleur comptant 13 cartes, il en reste donc 6 ailleurs. Or, si ces cartes sont réparties 3-3, au quatrième tour de Trèfle votre dernière carte fera le pli.
  2. Même chose à Carreau : si les cartes adverses sont bien réparties, c’est gagné.
  3. Enfin, toujours à Trèfle, vous pouvez aussi utiliser la même manœuvre que dans la section précédente et espérer trouver le Valet de Trèfle à votre droite.

Voyons donc à présent comment l’on peut cumuler ces chances.

Sans trop se mouiller, on peut d’ores et déjà se dire que l’on ne prend aucun risque à faire trois tours de Carreaux pour voir la répartition. Au pire, s’ils ne sont pas bien répartis,, on se rabattra sur les Trèfles.

Justement les Trèfles, parlons-en. Votre objectif pour faire 13 levées va être de savoir s’il vaut mieux miser sur une répartition ou sur une impasse. Vous vous concentrez et comptez donc méticuleusement toutes les cartes de votre adversaire de gauche pour essayer de savoir combien il avait de Trèfles.

silent

En pratique

Voici ce qui se passe à la table :

  • A Pique, votre adversaire de gauche fournit trois fois tandis que son partenaire défausse au troisième tour. Il avait donc 5 Piques.
  • A Cœur, il fournit deux fois puis défausse un pique. Il avait donc 2 Cœurs.
  • A Carreau il fournit deux fois puis défausse un Trèfle. Il avait donc 2 Carreaux (et donc, vous ne pouvez plus compter sur une répartition 3-3 des Carreaux).
  • A Trèfle, il fournit deux fois …

Il vous reste deux cartes à jouer. Voici la position. Alors impasse ou répartition ?

full3

Si vous avez bien suivi, à ce stade du jeu, vous pouvez déduire que votre adversaire de gauche avait 4 Trèfles (13 cartes totales – (5 à Pique + 2 à Cœur + 2 à Carreau)).

Par inférence, cela veut donc dire que vous pouvez faire une croix sur la répartition 3-3 des Trèfles pour faire le dernier pli.

La bonne nouvelle en revanche, c’est que l’on a déjà joué deux tours de Trèfle et que votre adversaire a en plus défaussé un autre Trèfle sur un Carreau.

(4 cartes en main – 3 déjà jouées) = votre adversaire de gauche n’a donc plus qu’un Trèfle en main!

L’autre adversaire n’ayant plus de Trèfle (la répartition étant 4-2), vous n’avez donc plus aucune inquiétude à avoir.

Vous jouez tranquillement votre 4 de Trèfle, le Valet tombe comme prévu, pris de la Dame ². Votre dernier Trèfle est maître. Vous marquez 1020points sur ce coup. Joie, folie et allégresse dans la foule en délire !

snoop

Les quatre jeux :

Conclusion

Vous voyez donc ici le côté diabolique de la chose. Avec un petit peu de logique, vous avez pu reconstituer entièrement le jeu d’un de vos adversaires sans même l’avoir vu !

Bref, si l’exemple vous a plu, n’hésitez pas à partager cet article. Vous verrez, le bridge au-delà des clichés, c’est fort sympatique.

¹ 6 SA signifie 6 « sans atout ». Au bridge, il est en effet possible de jouer aussi avec une couleur (parmi Trèfle, Carreau, Cœur, Pique) prévalant sur les autres: un atout. Dans notre cas, c’est très simple, il n’y a pas d’atout. Chaque couleur à la même valeur.

² Vous aurez d’ailleurs peut-être noté que si votre adversaire de gauche n’avait pas défaussé un Trèfle sur un Carreau (et avait toujours deux Trèfles à la fin), vous auriez simplement joué le 10 de Trèfle (encore une impasse !) puis la Dame au dernier tour. Imparable !

Some fun with Twitter #stats #dataanalytics #useracquisition #sideproject

Have you ever wondered how many usernames are still available on Twitter? How hard would it be to find a unique username on a social network which has been created a decade ago I do!

In this article I will try to demonstrate why these questions are more complex than it appeared at first glance.

Before we start, let’s have a look at the Twitter name policy.

The first point to highlight here is that contrary to other social networks Twitter does not free blocked accounts (unless you are a brand whose name has been taken). This means that all the accounts that have been blocked since 2006 are still locked!

While on the subject of Twitter policy, I also looked for some official stats concerning how many users registered since the tool was first released. Unfortunately, I was not able to find anything on the topic. Twitter, as many other tech companies, is keeping these numbers secret.

So without any official source of data how are we going to tackle this problem?

Let’s build our own tools!

My first idea was to design a bot that will take advantage of the built-in username checker. Indeed, who better than Twitter knows which names are still valid?

aaeaaqaaaaaaaajoaaaajduznjq1njmwlwvindctngi0zc1hntg3ltm5mzm5ymrlzjzmma

Without going into the technical details, I tried to hijack the API… And it was not a viable solution. Long story short: Twitter kicked me and I was not allowed to access my account anymore (oops).

Well, fair enough. Let’s try something else. Knowing that you don’t need to be logged in to go on a twitter profile, what about creating a web scrapper that will visit Twitter profiles and collect all the data for me?

I started by selecting a sample of usernames I found relevant: 2035 first names, which were given in France between 2004 and 2012.

According to you, how many are still available on Twitter?

To my great surprise, there was actually not a single one available anymore! Likewise, I tried with @_username and @username_ (as it’s advised in the Twitter name policy).

Once again, the percentage of available names today is under the 2%!

In search of an explanation

These surprisingly low results arose my curiosity. Thus, considering that the « join date » is displayed on the public profile how about trying to see when these username were taken?

I reconfigured my bot to get this new data and display the result in a chart. Here is the D3 representation I got:

See the Pen Twitter growth (classic FR names) by Adrien Rahier (@FracArt) on CodePen.0

(Dataset : 2035 French names)

Two statements can be made from this chart:

  • It seems that there was a huge peak of Twitter registration in the beginning of 2007.
  • Interestingly, we can see that every March a recurrent pattern occurred as new users are joining!

Concerning the first statement I tried to correlate these data to another source of information. According to a researched paperThe Tweets They are a-Changin’: Evolution of Twitter Users and Behavior, the peak of user acquisition as been reached in 2009 for Twitter. So, is my original sample (2035 French names) biased? Maybe.

Another hypothesis is that this peak on my chart shows the moment when there has been a popular interest for Twitter. Knowing that popular interest and massive user acquisition are two different concepts that might explained the gap.

Concerning the second statement I have to say that it’s completely unexpected. Does that mean that Twitter is actually releasing some usernames every March?

I ran some other tests to see if the same behavior was observable with some other data samples.

See the Pen Twitter growth (FR names with underscore ex: @_adrien) by Adrien Rahier (@FracArt) on CodePen.0

See the Pen Twitter growth (FR names with underscore ex: @adrien_) by Adrien Rahier (@FracArt) on CodePen.0

See the Pen Twitter growth (FR animals) by Adrien Rahier (@FracArt) on CodePen.0

(Datasets: 1- 2035 French names with underscore at the beginning, 2- 2035 French names with underscore at the end, 3- 1831 animals words)

Concerning the first statement, we still see on these three charts two peaks: one in 2007 and one in 2009 (yes!). However, the weird March pattern is less pronounced here.

Finally, as it as been suggested by a friend: Maybe some people are just doing some domain name squatting (the fact to reserve a domain name without doing anything to resell it later).

 To clarify this, I made a quick Excel bar chart to show the repartition of tweets per user.

aaeaaqaaaaaaaajmaaaajdrkzmvhnzqyltg5mzmtnddloc1hzdfhlty2zgvinjgzmjewnw

(Dataset : 2035 French names)

Once again, it’s hard to draw general conclusions with just one batch of users. However, it’s sounds like most of the accounts have at least tweeted two times.

Conclusion

To conclude this article and answer the original questions: Nowadays it’s going to be very hard to find a username that hasn’t been taken yet on Twitter.

For example, among the 1831 French animals word I tested, only the common terms @fourmilier and @vampire are still available!

Beyond this simple statement, this side project also showed me that it’s not very complicated to create and train a bot that will crawl some webpages for you.

Oddly enough, this market sector, automation of tasks to gather data, is still not claimed by any companies or startups. As far as I know the only example I can cite is the « Le camping » startup Phantombuster (read more about them here).

So there is probably a lot to do on this business segment. Indeed, from a business intelligence perspective this kind of informations can be very profitable (aka your company has access to some informations that your other competitors won’t have).

Finally, if you have some other ideas about how to interpret these charts or extend this side-project feel free to comment this article or ping me on Twitter : @AdrienRahier.

Additional notes:

  • All the code that has been used in this article is available on this Github repo.
  • You can see the four charts on my Codepen.
  • CasperJS has been used to scrap the data.
  • D3.js and Excel have been used to display the datas.

 

Newer Posts
Older Posts