Thursday, August 16, 2018

Running Gravitee API Gateway

Gravitee running

Configuring and Starting Gravitee API Managemant Gateway

First install and start the dependencies:

1) Mongo
$ mongod

2) Elastic search
$ cd elasticsearch-6.3.2/bin/
$ ./elasticsearch

Starting Gravitee API Managemant Gateway
Download and extract the project zips of graviteeio.

First, Start the API Gateway
$ cd graviteeio-full-1.18.1/graviteeio-gateway-1.18.1/bin
$ ./graviteeio

Now accessing http://localhost:8082/ should give you the message:
No context-path matches the request URI.

Configure graviteeio-gateway-1.18.1/config/gravitee.yml
By default, the gravitee data is stored in the mongo database gravitee.
You can change these default configurations.

Then, start the Managemant API.
$ cd graviteeio-full-1.18.1/graviteeio-management-api-1.18.1/bin
$ ./gravitee

Now you can access http://localhost:8083/management/apis/ which should give an empty response [ ].

By now, the gravitee database in MongoDB should have the below collections:
events, ratelimit - for the API gateway
audits, metadata, roles, views - for the Management API

More configuration details such as using an LDAP provider and configuring OAuth2 Authentication can be found from the official documentation.

Next, start the Portal.
$ cd graviteeio-full-1.18.1/graviteeio-management-ui-1.18.1

You have the choice of starting the Portal with Python3 or Node.

Let's go with Python3.
$ python3 -m http.server
Serving HTTP on port 8000 ( ...

Now you can access the portal from http://localhost:8000/#!/

You may further configure the portal to fit your requirements.

Configuring and Starting Gravitee Access Managemant

First, start the gateway
$ cd gravitee-am-gateway-standalone-2.0.4/bin/
$ ./gravitee

Now you should get an empty response to http://localhost:8092/
Now, run the AM Managemant API.

$ cd gravitee-am-management-api-standalone-2.0.4/bin/
$ ./gravitee

Now, accessing http://localhost:8093/management/domains/ should give you an empty response.

Finally, let's start the last component of our ecosystem.
The AM Managemant UI, which is a client-side Angular application.

The directory of the Managemant UI is at,
$ cd gravitee-am-webui-2.0.4/

You will need an HTTP server such as Apache or Nginx. Then you may configure the Management UI following the documentation.

Wednesday, August 1, 2018

The Atlanta Algorithm

[Aug 1st] As with many other cities in the US, Atlanta has a public transportation network (known as MARTA), which is a joke. In fact, the metro is ok. But my issue is with the buses. Unfortunately, most of Atlanta is not also walkable. Lack of proper sidewalks in the residential neighborhoods. Life in Europe has taught us that it is not necessary to drive, and it is ok to use the public transport. :D Given this state, we choose to live close to my university. 20 minutes by walk.

There is also a bus stop close to both my apartment and my lab. A bus (#6) passes by every 30 minutes, connecting my home to my lab in the university. I usually walk to my lab, and return, by foot. But since I have a free monthly public transportation pass from the university, I decided to use it.

Before leaving home, I check the app to confirm the arrival time of the bus. However, the timing is not accurate. The bus usually comes with a time interval [-3:5], that means 3 minutes earlier to 5 minutes later. But now for the third time in a row, the bus came 10 minutes late. To ensure I do not miss the bus, I always arrive 3 - 4 minutes earlier. Therefore, I leave home 7 minutes earlier than the bus' arrival time at the bus stop (since I need to walk a bit to reach the bus stop).

Let's look at one specific example: Today, I left home at 7:43 to catch the bus that would arrive at 7:50. I reached the bus stop at 7:46. The bus eventually came at 8:10. Then, the bus reached the destination in a few minutes, and I entered the lab at 8:18. If I walked, I would have reached the lab at 8:03. The bus cost me 15 minutes extra.

In a regular/successful day, this would go like this. I leave home at 7:43. The bus comes at 7:54, and I arrive at the lab at 8:01. If the bus reaches my bus halt earlier than usual, the bus driver stops in the bus stop before the Emory village for a few minutes to make sure the bus does not proceed to the next stop too early?!?!?!. So it never happened that I arrived before 8:01 when I use the bus. So I can conclude that using the bus costs me 18 minutes in the best case and 35 minutes in the worst case. On the other hand, if I walk, I take 20 minutes, a constant time, regardless of rain or shine.

[Update: Aug 2nd]
So I found that "MARTA On the Go" application actually offers a real-time schedule of the bus, unlike Google maps which shows a static schedule. Today I checked the bus time just before leaving home. The bus was on its way. It said "6 minutes late" with the current location. MARTA On the Go does not show the estimated arrival time at each stop with this dynamic information. Rather, it shows the current location of the bus (that means, you should have an idea of the road map, or you need to use it in conjunction with another application such as Google maps) and the current delay. With the 6 minutes delay, the bus can reach my stop in 4 (if the driver manages to catch up) - 8 (if the bus further gets delayed) minutes late, I estimated. With this estimate, I left home at 7:48 and arrived at the stop at 7:50. The bus eventually arrived at 8:02. So it actually got delayed 12 minutes (apparently it got delayed 6 more minutes since I checked). I reached the destination bus stop at 8:12 (13 minutes later than the original time). I arrived at the lab at 8:13. 25 minutes (i.e., 5 minutes later than my walking time). I noticed from the app that the next bus got delayed 8 minutes to reach my starting bus stop. While this app does not solve the inefficiency of the public transport, it certainly mitigates the uncertainty and help plan the timing better.

Every city's public transportation system teaches me some new life lesson. I learned something in Jeju. Now in Atlanta. I like these life lessons - I do not underestimate them. Trust yourself, instead of trusting an external element!

Monday, June 18, 2018

My "CAT"/ Ph.D. Proposal

Today I presented my CAT, " Software-Defined Systems for Network-Aware Service Composition and Workflow Placement". I should have presented the CAT much earlier. However, it was delayed, and now I have presented it just a few months before my final defense. I received a grade of 18/20 for the CAT. The presentation slides are attached below.

Tuesday, May 15, 2018

Moving Bits with a Fleet of Shared Virtual Routers

Today I presented my paper titled "Moving Bits with a Fleet of Shared Virtual Routers" at IFIP Networking 2018 in Zurich. The presentation was very interactive. This was my work from KAUST. It is nice to be back in Zurich.

Abstract: The steady decline of IP transit prices in the past two decades has helped fuel the growth of traffic demands in the Internet ecosystem. Despite the declining unit pricing, bandwidth costs remain significant due to ever-increasing scale and reach of the Internet, combined with the price disparity between the Internet's core hubs versus remote regions. In the meantime, cloud providers have been auctioning underutilized computing resources in their marketplace as spot instances for a much lower price, compared to their on-demand instances. This state of affairs has led the networking community to devote extensive efforts to cloud-assisted networks --- the idea of offloading network functionality to cloud platforms, ultimately leading to more flexible and highly composable network service chains.

We initiate a critical discussion on the economic and technological aspects of leveraging cloud-assisted networks for Internet-scale interconnections and data transfers. Namely, we investigate the prospect of constructing a large-scale virtualized network provider that does not own any fixed or dedicated resources and runs atop several spot instances. We construct a cloud-assisted overlay as a virtual network provider, by leveraging third-party cloud spot instances. We identify three use case scenarios where such approach will not only be economically and technologically viable but also provide performance benefits compared to current commercial offerings of connectivity and transit providers.

Tuesday, May 1, 2018

The Conference Survival Guide

SoCPar 2010, Paris
I enjoy attending conferences. I never attended a conference when I did not have something to present. This is usually because of the funding, as it is unlikely for me to get funded to a conference when I am not presenting my work. So far, WWW2011 is the only conference that I attended without having a paper to present. Conferences help me fine tune my research, make new friends and build a network. I still vividly recall my first conference, SoCPaR 2010. I was presenting our paper, and luckily for me, I had 3 of my best friends with me. I was not alone. We all were co-authors of the paper, a team effort during our BSc times. I recall presenting the paper confidently and discussing with other researchers. Prof. Ajith Abraham of MIRLABS, who was organizing the conference remarked that he remembered us, a 4-member team arriving in Paris all the way from Sri Lanka to present our paper. It was a nice experience to travel to Paris, my first overseas trip. It was a cold winter, full of snow. The conference was held in Université de Cergy-Pontoise. I met two researchers from the same university in latter conferences, bringing back memories from 2010. 

Be prepared for the delayed luggage
Interestingly, the second conference I presented my paper was again in Paris in 2014. This time, it was MASCOTS, and this was the first paper of my MSc, and also the first paper as the first author. The other conference as part of my MSc research was UCC'14 in London. I met my friend there after a long time, and we had some good chat!

I love visiting different countries and various cities. Attending conferences also offers this opportunity. Moreover, the conferences immediately give you some partners to travel with. You meet some random researchers and make friends with them - because of the shared research interest (or purely because you are from the same university, country, or have something in common other than the research interest). For the rest of the conference, you can explore the city with them.

I try my best to attend all the sessions at the conferences. However, sometimes it is inevitable that I miss one session. Especially the earliest one on the day following my presentation. This is because sometimes I feel tired after the long presentation and its preparations and oversleep the following day. I also enjoy the coffee breaks, lunch times, and the gala dinner. The ideal time to make friends. You are lucky if your presentation comes on the first day. You can relax and enjoy the remaining talks/sessions without having to check your presentation once in a while.

I have attended several conferences during my Ph.D. As a result, I have traveled to several cities: Tempe, AZ, USA (IC2E'15); Berlin, Germany (IC2E'16); San Francisco, CA, USA (AMIA'16 and ICWS'16); Rhodes, Greece (CoopIS'16); Valencia, Spain (SDS'17); Munich, Germany (VLDB'17); Barcelona, Spain (SDS'18); and Zurich, Switzerland (Networking'18). Sometimes, I have one or two additional days following a conference. I use these days to travel to a near-by country or a city. Conferences always leave me with good memories - no exceptions so far. They give me more knowledge, and also other experiences with travels. I thank all the conference organizers and volunteers who make sure that we all have good experience attending the conference.

Saturday, April 28, 2018

The Road to Monaco

The Monte Carlo Casino
Finally, I visited Monaco! It was very similar to my trip to Andorra in 2015. When I visited Barcelona for an EMJD-DC Spring Event, I had an extra day. So I took a bus to Andorra and spent a whole day there before returning to Andorra. This time I had a free day after the conference. I also found a cheap return flight ticket (50 Euro Vueling) to Nice from Barcelona. From the Nice airport, you can get a bus (no 110) to Monaco. Purchase the tickets at the ticket office as the bus driver does not sell the tickets.  A return trip to Monaco costs 33 Euro. One way costs 22 Euro. So I purchased a return ticket.

Once you have your bus ticket, proceed to catch the bus at the bus terminal #3 right outside the airport. The bus is hourly. There is also a bus that goes to Menton with the same number (no 110). At least during our trip, two buses left at the same time, ours with the destination to Monaco, and the other to Menton (a city in French Riviera that comes right after Monaco). Make sure to get on the right bus. The bus drivers speak good English, and you will be fine.

Monaco is the smallest UN member nation since Vatican is not a UN member state. Before the journey started, the bus driver proceeded to ask from each of us where are we going. By doing so, he made sure that no one missed their bus stop. That is a pretty smart thing to do. I got down at the Monte Carlo casino with many others. The bus goes until the Monte Carlo beach. There was a tourist information desk in a short walking distance from the bus stop. There was a hop-on-hop-off bus. However, I did not take that and proceeded to walk across the entire country. Thanks to its small size, I managed to create a record of my own to have walked across a country for the first time! :D I discourage anyone from taking the hop-on-hop-off bus. It goes in parallel with the coastal line and does not even go to the Jardim Exotica (7 Euro entry fee). I easily walked to more places than what the bus covers. Also, why waste money on something useless? Monaco (combined with its towns such as Monte Carlo and Monaco Ville is entirely walkable). It also has a complete transport network of buses consisting of public buses.
Monaco is a rich country. A small 19 sq meter studio apartment costs 2,500 Euro per month as rent, excluding the utilities, as I found from an apartment agent advertisement in Monte Carlo. I paid 500 Euro for a studio of the same size inclusive of all the costs in Lisboa. I know people earn in Monaco much more than in Portugal, while not having to pay taxes. I had a good meal (bread, starters, entry, main dish, and dish), a menu option for 29 Euro (34 Euro including the glass of wine). It was a very crowded simple restaurant. Must be one of those on the cheaper side of the price spectrum as far as Monaco is concerned, I guess. I also found other restaurants that are more expensive.

There were several casinos including the Monte Carlo Casino and Cafe Paris Casino near the bus stop. Several shops selling luxury brands, and there was also a very nicely illuminated shopping mall with many such stores, giving it a golden feeling. As far as I noticed they did not have our cheap shops such as Zara and H&M. There was also a nice park with walking trails and a Japanese garden. I paid a visit to both. I avoided the Jardim Exotica as its entrance is not free. I visited the cathedral. Ok, if you are still reading the blog post, by now you would have identified that Monaco is not just casinos and shopping malls.

I walked across the beach until the end. I was thinking - where to get the bus now?! Luckily I found the bus stop of Monte Carlo Beach easily as I step out of the beach, completing my long walk. So did not have to spend time trying to locate it, or returning to the stop I arrived at. While waiting for the bus, a very old lady (in her 80s) came to me and asked me something in French. I told her that I did not understand. She immediately switched to English and asked me to tell her when the bus number 6 arrives. We immediately proceeded into a long conversation. When I asked her how many languages she can speak, she proudly answered: "oh, many." She happily recalled her life with three passports (born in France, 1 km from the bus stop, and having a husband with a Switzerland mother and a Switzerland passport - and thus having passports from Monaco, France, and Switzerland). Since she lives in Monaco, she has a Monaco passport and does not need to pay taxes. "That's the good thing about this," she claimed.

She also asked about what I am doing in Portugal. When I said I am studying, she proceeded to ask my age, and gave a look with a face, "Dude, that is too old of age to study. Did you fail your school or something?" lol. I tried to explain to her what is a Ph.D. I am pretty confident she knows what that is, given her exposure to the world (She has traveled as far as Hong Kong and her husband worked as a hotelier). But probably due to her difficulties in hearing, she did not quite catch what I said. Before I tried to explain her, the bus number 6 arrived. I stopped the bus for her and told her her bus is here. She thanked and greeted me good luck and proceeded to board the bus. I like nice people. They give you good memories that are hard to forget.

I returned to Nice to catch the last flight to return to Barcelona. I also saw the same two couple (looked like a young couple with the lady's parents) that came with me on the bus from Nice to Monaco. Previously on the bus, we shared a brief smile. The young lady came to me and asked something in Spanish, "blablabla, Moh-nuh-koh?" I understood she was asking something about Monaco. But not sure what is that she is asking about. I smiled and replied, "Sorry, I do not understand." I hate to say that. But unfortunately, I am not great at picking up with natural languages. :( She replied, "Monaco - good?" while giving a thumbs-up gesture. I said, "ah, yes, yes, good." giving back a thumbs-up, and asked her back, "And you? How was it?" She replied, "Yes, good! good!!" with a big smile. We all boarded the flight. I am happy to know that it is not just me doing this crazy travel of a same day return flight to Nice from Barcelona just to go to Monaco and return on the same day. There were 5 of us, including the young and old couple. I am not alone in this world. We are all similar in our uniqueness.

Airport Stories

The beautiful French Riviera (Côte d'Azur)
I am waiting for the flight to return to Lisboa in the Barcelona airport. Yesterday was a crazy day. First time in my life I had a return flight on the same day, from/to Barcelona and Nice. And also a non-stop walk across Monaco, stopping only for lunch. The French Rivera is a beautiful region. I enjoyed the view from the bus as it passes by with the view of mountains covered by clouds and glimpses of the Mediterranean sea with yachts. Barcelona airport does not seem to have free wifi in the airside. At least where I am sitting, has not even a slight trace of public wifi. I write this blog post sitting on the seats on gEdit, saving it to post when I return to the civilization where I have the Internet access.

The Jeju Algorithm

I like to travel with minimal or random plans. Traveling to Jeju was remarkable. But it did give some challenges in unplanned random moves, due to the language barrier. Google maps were showing in Korean. It is easy to read sentences in foreign languages as long as the language is written in a script that you can read (such as a Latin script). But that is not the case with Korean.

The locals in Jeju were amicable and came towards to help us with directions even without we asking. But unfortunately, most of them were able to speak only Korean. Then, there are information screens in every other bus stop. Though they are supposed to work in many languages including Korean, English, and Chinese, the touch screen was not working correctly, and it was nearly impossible to change the language in many of those machines. Buses had the information in English, such as the next stop, and the stop after that.

We had to go to a place in the main street. We know that it is a straight line. But several buses were going on the road along the direction. We decided to get on a random bus. We planned to stay on the bus as long as it goes straight. But unfortunately, at the next stop, it turned to a side road in the right. We got down and returned to the main street, and boarded another bus in the next stop. This bus also turned left after two stops. Finally, we asked a foreigner. He did not know the location that we are talking about. But when I told him that we need to go in a straight line, it is probably number 105 (not the actual number he mentioned. I just forgot what he said at this time. So let's assume that is 105 for the sake of this blog post). He warned us that he is not so sure. Then we were waiting. Another bus came. But not number 105. We decided to continue our Jeju algorithm. Our Jeju algorithm works with limited knowledge and certain assumptions. The path is definitely in a straight line, and there is at least one bus that reaches the destination. There is, of course, no direct bus between our origin and destination. We boarded this bus though it is not number 105. Luckily, the bus indeed took us to the destination. Not bad. We reached the destination by using three buses. Ideally, we should have used only two buses. But as our algorithm is not optimized, we ended up with three buses. :D Our return trip was tuned with the knowledge gained, and we returned merely with just one transit (using two buses).

Though this was not, of course, an optimal experience (we wasted some time and money for the bus fare for each leg of our trip). But it did leave us with some exciting memory to talk about for the years to come. :D

How to time-travel?

Time traveling is an exciting concept that has been portrayed in several fiction, literature, and movies. While I am not sure about its feasibility, at least we can simulate the feeling. :D

Let's try, step by step, to travel back in time.

The first step, pick a time and location that you like to time travel. It should be a location that you have been in the past time. It should have given you strong memories. It does not have to be happy memories. Not all the sad memories are necessarily terrible.

Have you decided a place and a time? I have for myself, chosen a few pairs of locations and years:  2017 in Louvain-la-Neuve, 2016 in Atlanta, 2015 in Rijeka, 2013 in Kista, 1987 until 2012 several parts of Colombo, and 2012 in New Delhi.

Now for this to work without causing confusion to you, you should not have visited the same places in between. Otherwise, the memories collide. :D For example, I haven't visited Rijeka after 2015 and Kista after 2013.

Also not all the places will take you back in time giving a time-traveling atmosphere. I was in Stockholm for the 2nd part of my EMDC MSc program in 2013. But I returned to Portugal for my thesis in 2014. However, it did not feel the same anymore. My friends did not return to Portugal with me. So make sure to bring the same people with you when you plan your time traveling. Might be a good idea to wear the same clothes too, to bring back the exact moment. :P

Next, are you back in your destination [location, time], such as [Rijeka, 2015]? Great. Make sure to go to the same restaurants, beaches, and universities that you frequented. Use the same mode of transport. If possible, eliminate anything new. Like, if you never owned a laptop in 2015, don't bring a laptop with you. :D

Great! Music plays a huge role in our memory. Listen to some songs or watch some music videos of the time. It works best if you did not listen to these songs in between. Otherwise, the original memories you allocated to the song might have faded away.

I have picked the below song, which was always playing in Rijeka wherever I went in 2015. I also did not listen to this song afterward. So it is my song of 2015 summer in Rijeka. :P

It is also important to create memories in the first place, to be able to recall them. Making memories is not easy. We don't remember every minor detail of our daily life. But we do remember when we do something remarkable or different. As a thought experiment, during my recent visit to Barcelona, I had Udon at the nearest restaurent for all 3 dinners. I am sure I will remember this forever. :D

Tuesday, April 24, 2018

Software-Defined Data Services: Interoperable and Network-Aware Big Data Executions

Today I presented my work titled "Software-Defined Data Services: Interoperable and Network-Aware Big Data Executions" at the Fifth International Conference on Software Defined Systems (SDS), in UPC Barcelona. This is my third time in Barcelona. However, this is the first time I am on my own here without my friends, as my previous visits were for the EMDC and EMJD-DC events in 2013 and 2015. This is my 4th time attending an SDS conference consecutively. 

I have attended the SDS'17 (Valencia, Spain), SDS'16 (Berlin, Germany), and SDS'15 (Tempe, AZ, USA) before. I have only missed the first installment of SDS (SDS'14), as I was doing my MSc those days, and my topic was not related to SDS. SDS started as a workshop co-located with IC2E in 2014, and promoted as a symposium in 2016. It graduated as a conference on its own in 2017.

Abstract: Services that access or process a large volume of data are known as data services. Big data frameworks consist of diverse storage media and heterogeneous data formats. Through their service-based approach, data services offer a standardized execution model to big data frameworks. Software-Defined Networking (SDN) increases the programmability of the network, by unifying the control plane centrally, away from the distributed data plane devices. In this paper, we present Software-Defined Data Services (SDDS), extending the data services with the SDN paradigm. SDDS consists of two aspects. First, it models the big data executions as data services or big services composed of several data services. Then, it orchestrates the services centrally in an interoperable manner, by logically separating the executions from the storage. We present the design of an SDDS orchestration framework for network-aware big data executions in data centers. We then evaluate the performance of SDDS through microbenchmarks on a prototype implementation. By extending SDN beyond data centers, we can deploy SDDS in broader execution environments.

This paper received the Best Paper Award at the SDS 2018!


Saturday, March 31, 2018

Is legit or scam?

It is 5.5 years since I reviewed in my blog post "Is a scam?". The post remained my most viewed blog post with 200+ comments for quite a long time. Most of the comments are from the users who agree that is indeed a scam site. I can understand that they found my blog post by doing a quick Google search on " scam." However, what is more interesting, some readers actually defended Interestingly, some of them did not really look genuine (why would you search and land on a blog post discussing whether is a scam unless you were searching for it?) But that it is just a guess. I also noticed canned comments from employees (most likely bots), suggesting the concerned users to email their support team.

There have been alternatives popping up every once in a while. For example, the HubStaff. However, I am not really comfortable with recommending any of these. As in the past, the ones that many of us suggested as better alternatives to were later acquired by anyway. So the new ones can come to the same fate, or they themselves can turn into large evil corporations.

Apart from the issues of landing with a scam employer or a scam employee, itself is a heavily unethical platform. By searching around the Internet (for example, read is destroying my life), or reading the tens of comments in my previous blog post on, you can get a taste of it. Most of the blame on the platform comes from its unethical way of charging. One particular case even I encountered was, the employee is charged the 10% fees (which can be as high as 100$, if the project is 1000$) even if the employer turns out to be just a scammer. Since the employee did not get any benefit of the platform, any ethical organization would just refund the money. Other obvious issues are lower transaction rates, even lower than your banks, and the painfully long time they take to transfer your money! Transferwise does it at least 10 times faster! That is one ethical company. on the other hand, an unethical bullying company. The most inhumane characteristics of is when they randomly choose to block your account and ask for random verifications (as reported by commenters, sometimes driver's licenses are not accepted despite being listed as an accepted form of verification in the itself).

If you must use sites such as, try to work from a cheaper third-world country such as Bangladesh or Thailand. Not from Liechtenstein. Because you are not going to get paid higher just because you live in a more expensive or more developed country. 

Moreover, you real-world credentials do not really matter in the Internet world. It is hard to verify on the Internet whether you are who you claim to be. So even if you are an expert, you still have to build your online empire from ground-zero. Start this when you do not really need money, as a past-time. Working on Freelancing websites is not going to give you money quick unless you already have an account with justified success. The early days will be plainly painful as you put in work to a negligible payment (since your competitors are from cheaper countries anyway). 

There are of course many success stories. Many were just lucky or from the third-world countries with a competitive advantage on such global platforms. For example, 5$/hour is high in many South or South East Asian countries, while it is very little for most of the western countries. Others had the patience and time to build their profile slowly, till they can reach the 40 - 50$ hourly rate.

My verdict: Find a real job in the real world if possible. Want to be self-employed? Find local employers and build up a brand, so that you can find clients without greedy middlemen such as is not entirely a scam. But it operates in a gray area with shady business practice (non-existing customer service paired with questionable antics to extract more money from the clients/users), acquiring competitors aiming to operate in a near-monopoly.

Tuesday, March 27, 2018

The horror of losing access to your email

Shenzhen Skyline
There are a few free and trialware VPN services (such as Psiphon and LanternPro) that come handy when you travel in countries with censorship. I had a hard time recently with Google locking my account due to suspicious activity (logging in from a random location via VPN). It was not letting me in since I could not remember the answer to my security questions and I did not have my phone working with me as I was traveling. Eventually, I restored the access to my account. However, it was quite a scary experience given how much I rely on my email account.

Inconsistencies at the Airports

Raspberry and Green Tea KitKat from Jeju
Airport security can be confusing. In the US airports, you should remove your shoes and belt, and also take out the laptop and big tablets from your bag, as you pass through the security scanner. Elsewhere, it is not necessary to remove your shoes as long as the shoes do not look bulky or big. In China, I found that removing belt is not necessary. However, in addition to the laptop, you should also take the camera, power bank, and umbrellas out. It is interesting to note these differences though I am not quite sure of the reasoning behind these choices.

Traveling is always fun, though preparing for it and its aftermath are not always fun. Due to deadlines and busy schedules, I usually have to work while on travels too. This time was no exception, with a deadline to submit my paper coming close by. However, it is all good memories.

Saturday, February 24, 2018

Llovizna gets a new look

I have been busy ever since my return from KAUST on the 12th of December. I was often working 60 - 80 hours a week with many deadlines. I had the UCLouvain Confirmation at UNINOVA, Almada (the opposite side of the Tagus river). It was a rewarding experience. Besides, I also had a quick trip to Evora, exactly four years after I visited it for an EMDC Winter Event. Today, I decided to give a new look to my blog, switching from the black background to a brighter one with a larger font. More plans for March. Exciting times ahead.

Below is how my blog Llovizna (formerly known as, 'On my way home.' Renamed to 'Llovizna' on the January 6th, 2010) evolved over time.

'On my way home,' as of April 23, 2009:

As of October 2, 2009:

'Llovizna,' as of February 6, 2011:

As of February 22, 2018:

Friday, February 23, 2018

Twitter bots, trolls, fakes, parodies, and anonymous

Twitter indeed has numerous bots. But not every weird account that you encounter on Twitter is a bot. There is a clear difference among the bots, trolls, and fakes, though often the demarcation is vague.

First, a bot is not necessarily bad, though often bots are deployed with malicious intent, such as distributing propaganda and making viral content out of useless posts. Twitter bots are an economic model, with companies such as Devumi selling them to like, retweet, comment, and share your posts automatically for a price. 
I had two bots Llovizna and @on_my_way_home to tweet every time I post something to my blog. I stopped these accounts and their posts in 2016. I could have made these automated posts directly to my main Twitter account Pradeeban. In 2009, I chose to create proxy accounts to tweet my blog posts to keep my Twitter account under my entire control, with no automation.

People often confuse a bot with a fake account and an anonymous account. An anonymous account is usually genuine. It hides the real identity of the user but does not try to create an alter-ego or another personality for the human behind the user. An anonymous account may have 0 to 100% of identification information of the user. On the other hand, a fake account is intended to misrepresent someone. If I create an account with no information at all to post on sensitive topics, that is an anonymous account. On the other hand, if I pretend to be a princess from Sweden in my Twitter profile, that is a fake account. 

Some fake accounts acknowledge they are fake, and often function with a touch of humor, faking the identity of a known person, such as politicians, leaders, and actors. They are parodies, as long as they acknowledge this in their profile, so as not to mislead an unsuspecting follower.

A bot account is still a complete account. By logging into the account, a human still can post tweets as in a regular account. However, usually interacting with a bot account is fruitless.

Trolls can be a regular account, though more often than not they are fakes, parodies, or anonymous accounts, as the repercussions of being a troll are imminent in the current sensitive world. It is often advised not to involve the trolls, as the more you interact with someone over the Twitter in their timeline, more visibility they get.

I have seen arguments on Twitter, where a verified user or a user with several followers discrediting the other party by their number of followers. "She got only 50 followers. She must be a bot" or "He got only 30 followers. He must be fake". These arguments are flawed for several reasons. First, if someone is making an intelligent communication, it is (still) not possible to be a bot. Second, you cannot judge a person fake by their number of followers. The person can just be someone who is busy with their real life than harvesting Twitter followers in a shady practice followed by many popular and verified accounts (more on this in my previous post, Twitter is inherently flawed and unfair - and "Influencers" are ruining it).

I also noticed that those who use the "number of followers" as a measure to judge the validity of someone's tweets are the ones that pay for fake/bot followers, or use the shady practice of "follow and unfollow after a follow back" used by accounts such as and

Twitter bots are not necessarily bad. They do some specific useful tasks, such as creating news syndicates and reporting weather alerts. Therefore, disabling the potential for bots is not a good idea. However, it may be a good middle ground if Twitter makes it mandatory for the bot creators to explicitly identify and acknowledge them as bots and offer to identify information to the creator. Such restrictions are already in place for parody accounts - you must self-identify your account as a parody if you are impersonating someone (usually a famous person). Otherwise, your account may be terminated by Twitter. We need similar measures to bots to ensure ethical use of bots.

Fake accounts can be entirely fictitious or imitate a real living person to some degree such as using someone else's identity or photo. Fake accounts are often harmful and are malicious in intent (for example, consider someone faking as a minor/child, or someone faking as a racial or sexual minority to make a political statement). They need to be controlled too. Twitter needs to improve a lot. Their workflow is flawed. Their verification program is broken and harmful. I still appreciate the simplicity of Twitter, despite its shortcomings. It is always an excellent platform to share your thoughts publicly, even if no one is listening.

Tuesday, February 20, 2018

My experience with flight reservation sites

Flight price comparison with Skyscanner
Let me summarize my experience with various flight companies based on my 6 years of travels. Always compare your flight prices with Skyscanner, and book by following the link. Skyscanner does not charge any fees for its service, nor it places cookies on behalf of the travel agent sites.

1. TravelGenio / Travel2Be - Managed by the same team. The worst of all. Read my post on my experience with them - Is TravelGenio a Scam?
Score: 0/5

 2. Tripsta
They are the best of all that I tried.  They do not randomly increase the price or seek additional charges.

However, like all the other travel agents, they also apply a price differentiation. As I prefer my flight details to be in English and in Euro, I had a habit of using their Ireland website, However, for the same flight, it costs 507 Euro in and 541 Euro in Next time, I will stick with, though I need to stick to the Portuguese language, as I cannot change the language to English while in Portuguese site. Only Portuguese language is available in I can, of course, use Chrome to auto-translate, just to be safe.
Score: 5/5

3. GotoGate
They are fine. However, I did not like the site as much as I liked Tripsta - which was simple and plain.
Score: 4/5

4. MyTrip
Haven't tried yet.
Score: ?/5

5. eDreams
Used them a few times, as they were the first to offer an easy payment with PayPal with 0 additional fees. The situation has changed now. They once sent a notice mentioning "Your card has been declined" when I actually paid using PayPal and when the payment was indeed successful. I had to call them and clarify. It was a smooth process, and the email was a mistake. They fixed it and sent another confirmation email promptly as I asked them over the phone - just to be safe.
Score: 4/5

6. Rumbo
Haven't tried yet.
Score: ?/5

7. BudgetAir
Offered 15 Euro discount, if you pay additional 8 Euro during a previous flight. I did not prompt for this, as I was not sure whether I will use them again. However, overall pleasant experience booking with them. No additional charge and no random fees. Also offers cheapest for many flights.
Score: 5/5

8. TopAtlantico
A local Portuguese option. Has many branches everywhere in Lisboa.
Haven't tried yet. 
Score: ?/5

9. Abreu
A local Portuguese option. Has many branches everywhere in Portugal. Price is a bit high. However, it gives you the sense of security if you must buy from an agent. Recommend if you live in Portugal. You can visit them to buy the ticket.
Score: 5/5

10. Geostar
Another Portuguese option. Too expensive. 
Score: 2/5.

Too expensive. Is this a joke?
Score: 1/5.

12. Your local travel agent
For the same flight, we paid 560 Euro from our travel agent (original price: 565 Euro; with discount - 560 Euro). 8 Euro more than Abreu. However, local travel agents are experienced to find you the best options from/to their base country - after all, this is their expertise.
Score: 3/5

13. Direct booking from TAP
Offers easy payment options as long as you have a Portuguese bank account - through ATM or online banking. Unless the flight is a TAP flight, the price will be very high. Even for the TAP flight, this may not be the cheapest option. However, you can pay within 24 hours. This gives you an additional safety net. Also, TAP flights are the best, inside Europe, to travel to/from Portugal.
Score: 5/5

14. Direct booking from Wizz 
The website was terribly slow. Takes ages! When I complained, they suggested me to book through their mobile application. They have friendly folks on their social media though. Wizz gives you the lowest prices and discounts to exotic locations in East Europe when you book directly. Their membership program is worth purchasing too.
Score: 5/5

My final verdict, based on my experience with flights across Europe, Asia, and the USA is given below. Good luck with your travels!

Tripsta: GOOD 5/5
BudgetAir: GOOD 5/5
Abreu: GOOD 5/5
Gotogate: FAIR 4/5
eDreams: FAIR 4/5
Local Agent: NOT BAD 3/5
Geostar: BAD 2/5 BAD 1/5
TravelGenio/Travel2Be: BAD 0/5

Is TravelGenio a Scam?

It is always a good idea to compare the flight prices across multiple travel agent sites before actually buying them. Skyscanner is a web site that lets you compare the flight prices across multiple sites such as TravelGenio, Tripsta, and eDreams.

TravelGenio, has always been the poortest performer across many of the flight booking sites that I tried. However, I keep falling for them again and again as they list the lowest price. But, TravelGenio is the best in their bait-and-switch pricing strategy. For example, a price may be listed as 506 Euro. But when you are about to pay, it will increase by 10 Euro for many of the popular cards. As of today, only Visa Credit and Maestro cards offer the promised price. Others have an increase of 10 Euro for the flight of 506 (thus making the price 516 Euro).

However, I had even worse experiences with them.

I share my 2 bad experiences below:

First bad experience:

After booking the flight and everything was finalized and confirmed (they even had the payment finalized from my debit card), Travelgenio sent me the below email from the address

Caro Cliente,
Tal como lhe informamos no processo de compra, a reserva que tentou realizar não pôde ser confirmada pela linha aérea.
Como alternativa, realizámos uma reserva com a melhor tarifa disponível e com vôos semelhantes.
A nova reserva que realizámos possui localizador 4KB5FY e está garantida durante o dia de hoje.
Necessitamos, por favor, que nos confirme se deseja adquirir ou não esta nova reserva, caso contrário, procederemos à sua anulação sem qualquer tipo de gasto.
Envio-lhe em outro e-mail o itinerário detalhado da reserva para que possa verificar se os vôos são do seu interesse.
Ficaremos aguardando as suas instruções.
A tarifa mais económica que lhe podemos oferecer é 60.00 Euros superior ao importe que reservou inicialmente
Muito obrigado.

[Goolge Translation:
Dear Customer,
As we inform you in the buying process, the reservation who tried to perform could not be confirmed by the airline.
Alternatively, we made a reservation with the best available rate and with similar flights.
The new reserve that has held locator 4KB5FY and is guaranteed during the day.
We need, please let us confirm whether to purchase or not this new reservation, otherwise, proceed to its cancellation without any expense.
I send you another e-mail the detailed itinerary of booking so you can check if the flights are of interest.
We'll be waiting for your instructions.
The lowest fare we can offer is 60.00 euros to import higher than initially reserved
Thank you very much.

I replied:
When I initially checked, the price indicated 752 Euro for 2 passengers. Then when I was about to pay, the price increased to 806,70 Euro, and I still paid and reserved the tickets. So that already is an increase of around 54 Euro.

Are you telling me that you are going to charge me an additional 60 Euro, making it 866 Euro, or are you telling me that you are going to charge 120 Euro more (60 Euro per person), and make it 926 Euro?
This is so frustrating. Please let me know and clarify how much is the current price, and how much, in addition to the 806 Euro that was reserved I should pay, so that I can confirm. Also let me know, how long will it take you to refund the amount, if I decide to cancel the booking.
Is there is a way I can create a bug report or feedback for this weird behaviour of the system?

I have used Travelgenio before, and it never had similar issues. It seems probably some management or other policy changes leading to this behaviour. I would stop using Travelgenio and instruct my friends and colleagues to do so (through social media, and travel reviews, etc), if this issue is not smoothly resolved.
Also, is this a real email, or a scammer impersonating Travelgenio? The email looks so unprofessional and extremely weird.


Their reply:
Dear Customer,
Thank you for contacting Travelgenio.
In reference to your e-mail we inform you that the total amount is eur 864.74.
Please let us know on how to proced with the booking.
Yours sincerely,

I replied:
Ok, you may proceed with this for the total amount of 864.74 Euro. Please finalize this soon. Please do not keep randomly increasing the price further.
Also send a finalized invoice and confirmation to my email account once this is done and completed.
I do not want to mess up with my travel due to the mishaps in your system and policies.


I was angry. So I replied once more:
I booked using Travelgenio, because it indicated 752 Euro. Otherwise, I would have used Travel2Be which showed a bit higher price (around 800 Euro, if I remember correct). Now finally I have to pay 864.70 Euro due to the inefficiency in Travelgenio. I wish your system was more effective. Also I noticed that the flight slots are quickly filling up. So I want to finalize this sooner. I do not want you to further increase the price or change the flight schedules.

I will be happy with your customer service, if you still could go ahead with 806,70 Euro, the amount I paid for, during the registration. If customer satisfaction is nothing for you, and if you still think it is not possible, you may go ahead with the 864.74 Euro as I indicated in the previous email.

I am writing up a blog post based on this experience. The ending and the verdict of that review blog post depends on how this issue is resolved.

Thank you.

Eventually, I checked the prices online and with the local travel agent, and it turned out the prices went up during this delay, even in the other web sites. So I decided to pay TravelGenio the additional amount they asked, despite feeling betrayed.

During this conversation, I was not aware that Travel2Be actually has a partnership with TravelGenio, and they are probably owned by a single company. I later learned that from the TravelGenio web site itself, and from the signature of the emails I received:

Dear Customer,

Regarding the invoice for this booking, we have forward the information given to the corresponding department and as fast as possible you will receive the corresponding invoice.

We remain at your full disposition should you have any questions or need any further information.

Thank you and kind regards,


User Satisfaction Agent

Second bad experience: 

Interestingly, I did not really remember the first experience when I booked another flight after some time. I just went for the cheapest option.
I paid for TravelGenio once more for another flight. Only after paying, I realized something not right. I immediately sent them this email:

When I was booking, it showed 154.01$. Suddenly the total appeared as 157.01$ with no explanation. Pls see the screenshot.
I expect an explanation how the 3$ is added to the final value magically.
3$ magically added to the price.

Their reply:

Dear Pradeeban Kathiravelu,
Thank you for contacting our Advanced Support Department and sharing your comments with us. The feedback of our customers helps us to improve our products every day as well as the customer care provided.
We are writing to you regarding your booking T6T7FI.
In reference to your query, let us inform you that the prices shown at the availability page are subject to discounts and/or surcharges that will apply according to the payment form selected by you when you do the purchase.
At the payment page you can verify the payment methods available as well as the surcharges that apply to each one of them. If you select a payment method without discount, the price will change and the page will be immediately updated. As a consequence and before you confirm your booking definitely, you will be able to see, next to the “purchase” button, the final price you will have to pay according to the selected payment method.

However, and even if the final price, including surcharges, was shown before you confirmed the purchase, we understand your situation and therefore, as a goodwill gesture, we have refunded the amount corresponding to 3 usd, as you requested.
We hope you will travel with us again soon.
Kind regards,

Their reply was weird, cryptic, self-serving, and unnecessarily long (also not at all apologizing for their mess up). They just should have apologized for the technical glitch and refunded. However, I indeed received the 3$ back to my bank account. Nevertheless, if I did not pay attention, or if I did not complain, I would have lost my 3$.

Summary: TravelGenio may not be entirely a scam. But it follows shady business practices. Travel2Be is in fact another site managed by them.

VERDICT: AVOID TravelGenio and Travel2Be at any cost!

Sunday, February 18, 2018

Twitter is inherently flawed and unfair - and "Influencers" are ruining it

Twitter, Instagram, LinkedIn, and Facebook are a few of the social media platforms that are frequented by the "Influencers." LinkedIn and Facebook have a more balanced approach than Twitter and Instagram. I am not a user of Instagram. So I will limit my focus to Twitter now.

Twitter is very light-weight. Anyone can join, in several capacities. This lead to companies such as Devumi selling fake followers - followers created with the help of bot applications in a significant amount.

Twitter, knowingly or unknowingly, has created a class hierarchy with its verification program. Any journalist, a public-facing person, an author, or an "influencer" can become verified, proving a significance or importance. All these definitions fall into a million shades of gray. 

Twitter intentionally has kept its platform with minimalist features. For example, you do not even know who unfollows. This is similar to Facebook. However, Facebook unfriend is different as it is two-way. When someone unfriends you, they also lose you. This is not the case for Twitter. You would not believe how many verified Twitter users with blue/white ticks follow you, and later unfollow you once you have followed them back. Many of us have blogged about this before. There are tools such as Fanbase that automates this ill practice, making it even easier.

For example -  see this amazing post by Matt Navarra: Twitter is being spoiled by one type of user

Consider a case you receive a follow from two of these Twitter users:
User A with "10 following and 20 followers."
User B with "5,000 following and 1.25 Million followers."

Who would you follow back?
If you are an innocent Twitter user such as the below kid, you will follow back the user B. After all, B has 1.25 Million followers, and he has chosen to follow you first. Such a humble person!

Fig 1. The innocent kid was followed by an "influencer" author with fame and money in his mind.

But you know what? He/she would unfollow you within a period (anywhere between a week, to a few months), once you have followed them back. Of course, they would unfollow you even if you did not follow them back - but that is fairer relatively.

This is more of a numbers game - the same play by the pickup artists (PUA). Follow 1000 users every day. 100 will follow back. Repeat. At some point, you will have anywhere around 10,000 - 1 million followers. Now you can continue your following game. But at the same, keep unfollowing at intervals. As you reach thousands of followers, the naive users will follow you back more when you follow them first. No one really notices that you unfollowed anyway.

Unfortunately, Twitter does not alert the unsuspecting Twitter user when someone unfollows. Of course, there are applications such as Tweepmaps. But not many are aware of it. Even those who are aware of it, do not know the economics behind this numbers game.

Jeff Emmerson, followed me when he had just 5000 followers. He continued his follow-and-unfollow loop to harvest 1.25 million followers, while "following" only a few thousands at any time. In Figure 1, he followed the kid first. The kid followed him back. But as usual, our Jeff Emmerson unfollowed the kid later.
Fig 2. How to become an "Influencer."

Anyone would question me. Why does this matter? Am I looking into a silly thing? Who cares - who follows me and unfollows me? Right? Wrong.

This is a power play and economics. Someone such as Jeff Emmerson who authored a book needs to show that he is indeed an influencer. When he followed me and around 9 of my connections, we followed him back since he looked genuine. But he was just promoting his upcoming book (probably his biography with some fiction. Did not read it). Then he also started to promote other brands. Each such promotional tweets with 1 million followers can be as expensive as 2,000 - 20,000 Euro! This is real money. You are just a number in this pool.

Fig 3. One of the advertisements, among many, for the same brand.

When I politely questioned Jeff Emmerson on this, all he did was just blocking me. Interestingly, I found at least another user having experienced the same!

Fig 4. Blocked by someone claiming to be a "mental health advocate!"
It is plain wrong. Someone claiming to be a mental health champion follows people with interest in mental health. Those posts on Twitter on tags such as #depression #mental #health #adhd #bipolar. Then unfollows them after they follow back. Very helpful, dear verified influencing best-selling author!

Well. To be fair, Jeff is not the only "influencer" that follow this pathetic Twitter loop. I found many. . did the same thing and blocked me when I found this.

CamMi Pham () is another interesting case. She followed me. I followed her back. She unfollowed me in a day or two! I unfollowed her back. She followed me back in a month or so. (It is hard to forget these people with the same profile picture and verification). :) Giving the benefit of doubt, I followed her back. She unfollowed me again within a week or so. I unfollowed her again, confirming that she indeed is a Twitter parasite. Guess what? She followed me again after some time. I did not follow-back. She unfollowed soon after. She did not follow me again yet. :P

Fig 5. CamMi Pham, the one who spams you with frequent follow-unfollow
As you see above, I am not the only one spammed by CamMi Pham's frequent follow-and-unfollow loops. :D

Fig 6. Some replies to CamMiPham

As you can see above in the replies, you can see some identifying her tactics of "bait and switch" or "follow to unfollow." However, Twitter hides these negative replies under "More replies" tag where they show up only if you click, once the profile owner (i.e., CamMiPham) hides them. So this works in favor of the owner of the profile.
Some other individuals following this shady practice are listed below. There are many. I did not trace everyone:

is not really an "influencer" per se. but a company with the same shady practice.
Twitter is taking notice of fake accounts and trying to shut them down. However, it does not seem to take any action against those who use the bots or manual malpractices to increase their follower count unethically. Even Twitter accounts such as Amitabh Bachchan, the most popular Bollywood actor, care about their follower count! :D

Fig 7. The Bollywood Veteran is not so happy about the loss of followers.
I asked myself, why would someone need to unfollow. Why can't they just follow people and keep following those accounts? At least, keep following the accounts that followed you back. Isn't that more ethical? After all, they did not know you before YOU followed them first. I found the answer from CamMi Pham's promotional webinar material.
Fig 8. The secret sauce of becoming an "influencer."
"Twitter followers:  963K.  Instagram followers:  66.5K.  That merely touches the iceberg of CamMI Pham’s global fan base.  How did she do it?  Join us Wednesday, February 7 from 11:00 a.m. Central time until 12:00 p.m. (noon) Central Time and listen to CamMI talk about “Dare to Be Bold!"

This is her business. She lives out of this. It is essential to show that she has a million followers - as in an idol.
Madonna has 2 million followers when she follows less than 50 accounts. Everyone knows and adores Madonna. But is that the case with these unknown "influencers"? These unknown influencers also want to be Madonna. So they must unfollow, even those accounts they followed first. It is also like the restaurants in the touristic area. It is a known scam. In some places, they populate the shop with their friends to look popular. Once you look popular, more crowd will follow. "Fake it till you make it," they say.

Regardless of several complaints, Twitter does not seem to improve at all. Just the way fake reviews ruin websites such as TripAdvisor, these influencers continue to ruin Twitter for everyone. I might consider leaving Twitter. But it still remains as the ideal platform to complain about a company or a politician. So for now, we have to live with Twitter, though it sucks.

In summary, next time if a "popular" user follows you out of nowhere, remember that they are just adding you to their affiliate marketing pool. No need to follow them back unless you know them already, or if you think their tweets are valuable to you.