Skip to main content

You can finally DISLIKE a tweet (and make it count)

(If you don't feel like reading you can watch this video instead)

How many times have you wished there was a "dislike" button in Twitter? (and probably also in any other social network, but I will focus on Twitter in this post).


And I am not referring to this dislike button which is not what you want, since it is just a way to tell Twitter (and no one else) that you would not like to see similar tweets on your feed in the future.

So until Twitter decides to add this highly demanded feature (i.e., a real dislike button), I have come up with a way to dislike a tweet and make it count, so you can share your dislikeness with everybody and your dislikes can be aggregated with other Twitter users' dislikes.

All you need to do in order to dislike a tweet is to use the hashtag #dislike or just #dl for short, when replying to the tweet which you dislike. That's it, so simple!

For example, this is the image of a tweet which has two dislikes:

But it would be very annoying if you had to manually go through all the "#dislike" or "#dl" hashtags replied to a tweet in order to know how many people dislikes it and who they are, so this is where my small and simple dislike.devaction.net web app comes into play.  

First, you need to obtain the URL of the tweet by clicking on the "Copy link to tweet" button:



Then, you open dislike.devaction.net on a new tab in your browser. If it is the first time you visit it, it will ask you to open a link in order to obtain an authorization PIN from Twitter, do not worry, it is totally safe:



Then you will see a page from Twitter and it may ask you to login to your account if you are not logged in already:



https://twitter.com/David09167866/status/918681629605863424
Please note that we just need this in order to obtain a PIN to be able to look for dislikes in Twitter, it will not authorize the app to post tweets on your behalf and it will not even read your tweets.

Then Twitter will show you a PIN, please copy that PIN (please note that 6115815 is just an example, you will get a different PIN):






Then return to the previous tab were you have dislike.devaction.net open, paste the PIN and click "Submit":





In the next page, you will be able to paste the Tweet URL/link which you copied to your clipboard on the first step and then click "Show dislikes":






Finally, you will get the number of Twitter users which disliked the tweet (just two in this example), and also who they are! 






That's all, happy disliking!!!












Comments

Popular posts from this blog

Using Apache Kafka to implement event-driven microservices

When talking about microservices architecture, most people think of a network of stateless services which communicate through HTTP (one may call it RESTful or not, depending on how much of a nitpicker one is).

But there is another way, which may be more suitable depending on the use case at hand.
I am talking about event-driven microservices, where in addition to the classic request-response pattern, services publish messages which represent events (facts) and subscribe to topics (or queues depending on the terminology used) to receive events/messages.

To fully understand and embrace this new software design paradigm is not straight-forward but it is totally worth it (at least looking into it).
There are several interconnected concepts which need to be explored in order to discover the advantages of event-driven design and the evolutionary path which led to it, for example:
Log (including log-structured storage engine and write-ahead log)Materialized ViewEvent SourcingCommand Query Respons…

Kafka + WebSockets + Angular: event-driven microservices all the way to the frontend

In the the initial post of the Event-driven microservices with Kafka series (see here or here), I talked about the advantages of using event-driven communication and Kafka to implement stateful microservices instead of the standard stateless RESTful ones.
I also presented the architecture and the source code of a related proof of concept application.

In this post, I would like to show how to extend the asynchronous event-driven communication all the way from Kafka to the Web frontend passing through the Java backend.
Hence, in the first post of this series, we got rid of HTTP as the communication protocol among microservices in the backend, and now we are also replacing it (with WebSockets) as the communication protocol between the frontend and the backend.
Ok, but why would you do that? Because it provides a better experience to the end user!.
Using WebSockets you can build legit real-time user interfaces, the updates are pushed immediately from the server to the client, no need for …

Vert.x microservices: an (opinionated) application

First of all, sorry for the tautology in the title, a library can be either opinionated or un-opinionated (such as Vert.x is), but an application can only be opinionated.
However, I decided to include "opinionated" to help getting my point across even though is redundant.
The Motivation  I am a big fan of Vert.x and the official documentation is quite good, yet it is not straight-forward to understand how it works and how to use it.
There are a lot of blogs and articles describing Vert.x terminology and its concurrency model.
There are also tons of "Hello World" Vert.x applications on Github, and the rest seem to be just variations of the already typical "Web chat application using Vert.x".
On top of that, many of them are outdated (using AngularJS instead of Angular2+, for example).

The only two exceptions which I found are:
vertx-microservices-workshop: a demo application by the Vert.x development team.
ngrx-realtime-app: proof of concept application focu…