Saturday, December 28, 2019

A few things that made my 2019 interesting..

UFOs and Bratislava
2019 is my best year so far, followed by 2017, 2015, and 2013. This post lists 30 things that made my 2019 interesting.

Final moments of my terminal degree that lasted almost 5 years.

2. Successfully defending my thesis in ULisboa.
I got a Pass with Distinction.

3. UCLouvain Public Defense of my Ph.D.
As a double degree, I had to defend my thesis twice. My defense in Belgium officially concludes my Ph.D. of 5 years!

4. 10 Years of many things.
Time to reflect on the goods and bads of the 2010s. 

5. Hosting a RIPE NCC Atlas Probe.
Fascinating to contribute to the Internet measurement community.

View from the Zugspitze Summit
6. Watching the Lunar Eclipse in Atlanta.
I was also present in Colombo during the Solar Eclipse. But did not dare to watch it.

7. Leuven twice - the second time was the charm.
Starbucks Leuven has also become my most favorite Starbucks.

8. Finding the Louvain-la-Neuve lake completely dry.
It was sad to see my favorite lake missing - although it was temporary.

9. Porto after exactly 6 years.
It was a magical experience, being in Porto on the same 3 days.

10. An overnight stay in Charleroi Sud, Belgium.
Realizing there is more than just a cheap airport in this region.

11. Time travel - Lisboa version.
The feeling of saudade was so real.

Panevėžys Train Station
12. Transcontinental boat ride in Istanbul.
Consistently chased by an army of seagulls.

13. Praia das Maçãs - The Apples Beach in Sintra.
A place where my favorite song from Romania was shot.

14. The bright and energetic Antwerp.
Probably the most random trip of the decade.

15. Random walks in Bratislava, Slovakia.
A cheap Ryan Air flight after a long time.

16. Getting a new passport.
For another decade, until 2029!

17. Hot summer days in Houston, Texas.
It was special as our first trip with our infant son.

The Hollywood Sign
18. My second GSoC Mentor Summit, after 8 years.
This year we successfully resurrected Emory BMI as a mentoring organization.

19. Cold evenings in Riga, Latvia.
Our first city from the former USSR.

20. A day in a "ghost town" in Estonia.
Pärnu, a summer resort that hibernates during autumn and winter.

21. Panevėžys, a way of travel.
Who guessed a boring town would influence us this much?

22. Zugspitze, on the top of Germany.
At 2950 meters, it is literally the highest point I have ever been in my life.

23. The majestic Salzburg.
It has this true European vibes.

Crowded Istanbul
24. Daily Duolingo lessons of Portuguese.
Because I don't want to forget the language.

25. Apple Picking in Ellijay.
It was an unexpectedly nice and refreshing activity.

26. Batu Caves, Malaysia.
It was also my first visit to Kuala Lumpur and South East Asia.

27. Long metro rides and walks in Los Angeles.
Evening rides to Santa Monica and Long Beach, and hikes in LA.

28. Postdoc life in Emory.
I presented my first conference paper as a Postdoctoral Researcher at BigData conference in LA.

29. Döner Kebab and Sahlep in Istanbul.
After some long walks during the Christmas vacation.

30. A "direct" flight via Male.
It was my first direct but not non-stop flight, from Istanbul to Colombo, via Male.

Every year, I have one new year's resolution - to outperform my previous years. :) I already have high expectations for 2020. I wish you a happy new year. Thanks for reading my list until the end. You may also read the blog posts of all the previous years as well.

Friday, December 27, 2019

A few things that made my 2010s interesting..

Cruise to Sthlm from Helsinki, the return trip
We are reaching the end of the 2010s. Easily my most favorite decade in my 3 decades of life (not counting the 1980s when I was still an infant). It is also 10 years since I started my blog Llovizna in 2009 March. These all make 2019 an interesting point in my life to look back and reflect. I also blogged about my life of 7 years in Lisboa and similar stories from the other cities that I lived during my MSc and Ph.D. I have the habit of summarizing a year when the year comes to an end, in an annual post, since 2012. This time, I decided to summarize 30 things that made my 2010s enjoyable, starting the tradition of a decade post.


I graduated with a first-class in Computer Science and Engineering.

Witnessing snowfalls in Paris on my first trip abroad. It was also my best conference experience so far, in terms of social activities.

WSO2 was like a family in those days.

Biyadhoo Island, Maldives
4. Leading the Local GSoC promotion
I did some evangelization around GSoC and open source, touring 7 Sri Lankan universities.

My first solo foreign trip. I also had the DXB -> LAX flight, which is one of the longest non-stop direct flights.

It required me to travel to New Delhi, twice.

Erasmus Mundus single-handedly changed my life.

Bairro Alto, Lisboa, by night
8. Feeling young in Lisboa
We had a group of friends, and we had terrific memories -- especially the first semester. "Portugal" also became the one-word summary of my 2010s.

It was a romantic and remarkable new year celebration.

It was snow everywhere and the first time spending days and nights in a ski resort.

Stockholm was my second city outside Sri Lanka. It was dark in winter. Still, it left many pleasant memories.

Woods of Farsta Strand, Stockholm
12. A Christmas vacation in 3 Nordic countries
Including a cruise to Helsinki from Stockholm, and a flight to Copenhagen from Stockholm and a train to Malmo.

13. London in Winter
It was a pleasant experience presenting the full paper of my MSc thesis. It also marked the successful completion of my MSc.

14. Biennial visits to Shenzhen, China
I enjoyed my visit to Shenzhen every other year, starting from 2014 (2014, 2016, and 2018). 

15. EMJD-DC Ph.D. program
I started my Erasmus Mundus Ph.D. program from Lisboa. This made me stay in Portugal for a total of 6 years (2012 - 2018) - much longer than I ever imagined.
Early dinner in Puerto Penasco, Mexico

16. Crossing to Mexico by land
During the SDS 2015 conference in Phoenix, I started the habit of visiting nearby countries when possible.

17. Spending a summer month exploring the Balcans
It was a short-term scientific mission (STSM) research visit to Croatia. I ended up traveling to nearby countries, Italy, Slovenia, and Serbia during the weekends.

18. Calm and warm Maldives beach
Enjoying a sunny island of Maldives.

19. The Caribbean sea of Nassau
It was fun in the Bahamas, although one day was raining and ruined part of our trip.

Calm waters of Nassau
20. The beautiful Rhodes island in the autumn
I was there in Greece to present my papers. However, the island was too tempting not to explore. The conference was in the Greek touristic island, and it was fun.

21. Chasing snow in Liechtenstein

Determined to witness snow for the Christmas/New year vacation, we traveled all the way from Zurich to Malbun in Liechtenstein, eventually reaching the snow-capped mountains.

22. Daily walks along the beautiful Louvain-la-Neve lake
The Belgian village was self-sufficient with everything we needed.
The Belgian village of Louvain-la-Neuve

23. A train ride from Oslo to the sunny Karlstad
The Swedish town instantly became one of my favorites.

24. When a huge fan of Romanian music finally arrives in Romania
Romania was stylish and much better than what I anticipated. And I love Romanian music.

25. Exploring Saudi life
KAUST was like a country on its own. We enjoyed the canteen food and frequent visits to the cinema.
Atlanta getting ready for Christmas

26. Getting into random buses in Jeju
Yet, we eventually reached the destination!

27.  Thiruvannamalai
This temple is special for me as I always wanted to visit it from my young age. We had a chance to visit Chennai and temples around.

28. Exciting moments in Atlanta
It was a special feeling, becoming a father.
The Red Sea, KAUST, Thuwal, KSA

29. Successfully defending my Ph.D. thesis with a distinction
I had to defend it twice since it is a double degree - first in Portugal and then in Belgium! Now, I am finally done with all my higher studies.

30. GSoC Mentor Summit 2018 and the Baltic Adventures
It was quite a packed crazy trip, spanning 5 countries, out of which 3 countries were the Baltic nations that I have never been to before.

A photo summary of each year in my 2010s can be found here.

I find it exciting how events look different from a longer perspective such as a decade. This is the first time I looked back at a decade. This was also the first decade I was independent on my own, as before I was always with my parents. I hope the 2020s will be more interesting than the 2010s. I am looking forward to the 4th decade of my life! See you again with a similar post in 2029.

Thursday, December 26, 2019

Applying for a new Sri Lankan passport

So I had to apply for a passport as my old passport was reaching its end of life (10 years). Since I am in a rush, I decided to go with the one-day option. For most people, paying 15,000 LKR (equivalent to 83 USD at this moment) for the one-day service is a good deal. You can arrive in the Department of Immigration and Emigration early and receive your passport on the same day. This is colloquially known as the passport office in Battaramulla. It is in Subuthi Road, Suhurupaya, to be precise. It opens at 8:30 a.m. But people start arriving early and fill the new passport application form (should be obtained from the officer sitting right next to the entrance in the building/ground floor). I arrived at 8:15 a.m. 

After filling the form, you can go ahead to the second floor and get a token at the entrance. Make sure you have all the necessary documents, arranged in the right order before proceeding. Also make sure you have 15,000 LKR with you. I paid by cash. I did not bother to check whether it is possible to pay by a debit/credit card.

0. The filled application form.

1. The slip given by the photo studio. The studio should be one from the list of the photo studios authorized by the department. You should go to the studio the day before, get the photo, make sure they submit online, and get the slip.

2. Your national ID card and its photocopy.

3. Your previous most-recent passport (if any) and its photocopy.

4. Your original birth certificate and its photocopy. It is recommended that the birth certificate is obtained from the relevant authorities in the recent past, i.e., within past 6 months. You may get it at the nearest divisional secretariat if you are born after 1960. Otherwise, you have to go where you were born! A painful thing if you were born before 1960 and live far from where you were born. The document should be original (typically, Sinhala or Tamil). English translations are not required, and translations are not accepted in place of the original certificate.

5. Academic certificate and letter of appointment. If your academic certificate is original, you may just submit a photocopy. But keep the original with you just in case.

Your old passport and your ID will be returned to you now. The old passport will have received a stamp, "ISSUED A NEW PASSPORT". That means, your old passport will be invalid for further travels. However, keep them with you always when you travel, together with your new passport. The old one may have your valid and previous visas which will be necessary at the point of entry in a foreign country when you travel.

Once you get the token, you will go inside with the token, and submit all the documents. At this point, the officer will staple your documents, ensuring all are in place. Then you proceed to give fingerprints (unless you are <16 or="">65 in age). Finally, go to the D counter, and pay the fees (15000 LKR), by submitting your token. Keep your token safe until this point. Now you will get a new token, to retrieve your new passport.

You will definitely need a Sri Lankan mobile SIM with you, as the decisions are messaged you. You will receive the first SMS when you make the payment. This ensures that you have completed all the steps necessary to obtain the passport. The second SMS indicates that your passport application is accepted. The third and the final SMS indicates that your passport is ready to be collected at the first floor wing C. Go with your new token, which also mentions which precise counter to collect your passport from.

Please note that it may take up to another 40 minutes to get the passport. So you will have to wait in the waiting room. In a way, this is good. You have some time to come back from wherever you are - whether canteen or toilet. If you do not have a mobile phone, probably you can ask them whether you can just wait in the wing C waiting room without having received the SMS. I am not sure whether it is possible, and whether it is worth the risk. Just take a working mobile phone and a Sri Lankan SIM with you to be safe.

There are some shops including a photo studio inside the department itself. Seems it is possible to do the photo there itself. I would not recommend that though, especially if you are in a rush and if you are doing the one-day service. The photocopy costs 10 LKR per page. But I paid 100 LKR and the vendor did not have change. So I asked him for 60 LKR milo drink. He had 20 LKR balance for me, and for the rest of 10 LKR he provided me with 2 candies after confirming that is ok with me.

Once your name is notified in the notice board in the relevant counter at Wing C, go and collect your new passport together with the batch of documents that you submitted.

If you do not drive, you can go to the passport office from Dehiwala using bus 163, which goes directly there. It costs 32 LKR per person. The bus goes with the board "foreign employment" or "විදේශීය ශේවා". Alternatively, just hop on to a metered threewheeler/taxi - just what I did from Moratuwa.

I left home around 7:30, arrived around 8:15 and received my passport at 13:45. So this takes almost a whole day! But I am happy that I managed to get it done in a day. Thanks for the one-day service.

Wednesday, December 25, 2019

Christmas in Istanbul

A bridge that connects continents
Flying from the USA to Asia is tiresome. Usually, it involves a layover in Europe or middle-east. This time when I flew from Atlanta to Colombo, I had a transit in Istanbul - my first ever flight with Turkish Airlines. I decided to stay in Istanbul for 3 nights since such a multi-city option was cheaper than flying directly. I also have never been to Istanbul before anyway. Istanbul was lovely and was different from all the cities that I have visited before. I also had a transcontinental cruise journey in Istanbul. This was also my first Christmas alone. I visited a lot of places in Istanbul by foot, including Sultanahmet, Eminönü, and Taksim Square. Overall, it was worth the stay.

Thursday, December 19, 2019

Google Summer of Code (GSoC) 2020 for mentors

Google Summer of Code (GSoC) is a summer program hosted by Google where students work remotely on their favorite open source project and get paid! This presentation is an attempt to introduce GSoC to new mentors and mentoring organizations.

Wednesday, December 18, 2019

Google Summer of Code (GSoC) 2020

Google Summer of Code (GSoC) is a summer program hosted by Google where students work remotely on their favorite open source project and get paid! This presentation is an attempt to introduce GSoC to new students.
 

Travels and Conferences in my 2010s.

Sunset in Long Beach, CA
This year started as a slow one. In fact, this is the only year without migrations, since I left Sri Lanka in 2012. I have been in constant movement during the 7 years of 2012 - 2018. I changed countries more often than changing apartments in the same country. Erasmus Mundus mandatory mobility, topped with my adventurous and curious nature, led me to not have a single year without such migration since 2012. When migrations are the norm, not moving around becomes an event on its own.

Although I did not travel during the first half of 2019, the latter half was filled with several local and foreign travels, starting with my 2 Ph.D. defenses in Portugal and Belgium. The only conference I had this year was BigData 2019 in Los Angeles, not counting the GSoC Mentor Summit in Munich as a conference (it is an unconference).
 
Little Tokyo, Los Angeles, CA
This was my first time visiting Los Angeles. However, previously I had a layover at LAX airport during my first flight to the USA in 2011 for the GSoC mentor summit. Several years and trips after, that DXB (Dubai) LAX (Los Angeles) flight remains the longest non-stop flight of my life so far. This time, I visited a lot of places in Los Angeles - hiking up close to the Hollywood sign, and walks to Little Tokyo and China Town. I also visited nearby towns such as Santa Monica and Long Beach.

I love conferences and I like traveling. I also like to overdose in caffeine during conferences. Overall, I am happy with everything -- although I hope I will have more research opportunities and conference visits in the upcoming years.

Sunday, December 15, 2019

Data Services with Bindaas: RESTful Interfaces for Diverse Data Sources

Dec 11th, 2019: Today I presented my first conference paper from my Postdoc at IEEE big data 2019 conference held in Big Data 2019. It was fun listening to various talks and networking with several researchers from all across the world.

Abstract: The diversity of data management systems affords developers the luxury of building heterogeneous architectures to address the unique needs of big data. It allows one to mix-n-match systems that can store, query, update, and process data based on specific use cases. However, this heterogeneity brings with it the burden of developing custom interfaces for each data management system. Existing big data frameworks fall short in mitigating these challenges imposed. In this paper, we present Bindaas, a secure and extensible big data middleware that offers uniform access to diverse data sources. By providing a RESTful web service interface to the data sources, Bindaas exposes query, update, store, and delete functionality of the data sources as data service APIs, while providing turn-key support for standard operations involving access control and audit-trails. The research community has deployed Bindaas in various production environments in healthcare. Our evaluations highlight the efficiency of Bindaas in serving concurrent requests to data source instances with minimal overheads.

Thursday, December 5, 2019

Running Kheops on a Mac OS host

This post discusses how to run Kheops from the on Mac OS, with Docker.

$ git clone git@github.com:OsiriX-Foundation/kheopsDocker.git

$ cd kheopsDocker/

$ sh script_run_docker.sh

Install newman

$ sudo npm install -g newman

/usr/local/bin/newman -> /usr/local/lib/node_modules/newman/bin/newman.js
+ newman@4.5.6
added 160 packages from 196 contributors in 5.481s


   ╭────────────────────────────────────────────────────────────────╮
   │                                                                │
   │       New minor version of npm available! 6.9.0 → 6.13.2       │
   │   Changelog: https://github.com/npm/cli/releases/tag/v6.13.2   │
   │               Run npm install -g npm to update!                │
   │                                                                │
   ╰────────────────────────────────────────────────────────────────╯



Replace line 10 in script_run_docker.sh

with

newman run postman/kheops-Get_tokens.json -e postman/kheops_localhost.postman_environment.json -g postman/Workspace.postman_globals.json --export-globals postman/Workspace.postman_globals.json

Save the file.

If you are using Docker for Mac, you may encounter the error listed in https://github.com/docker/for-mac/issues/2396

Creating pacsldap ... error
Creating db       ...

ERROR: for pacsldap  Cannot start service ldap: b'Mounts denied: \r\nThe paths /etc/localtime and /usr/share/zoneinfo/Europe/Zurich\r\nare not shared from OS X and are not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\Creating db       ... done

ERROR: for ldap  Cannot start service ldap: b'Mounts denied: \r\nThe paths /etc/localtime and /usr/share/zoneinfo/Europe/Zurich\r\nare not shared from OS X and are not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
ERROR: Encountered errors while bringing up the project.

As a work-around, remove all the occurrences of the below line from kheops/docker-compose.yml.
      - /etc/localtime:/etc/localtime:ro

$ sudo mkdir /dcm4chee-arc

$ sudo chmod 777 /dcm4chee-arc

Share /usr/share/zoneinfo/Europe/ and /dcm4chee-arc from the Preferences of Docker Desktop in your Mac host machine.

Save the file and then re-run

$ sh script_run_docker.sh

$ sh script_run_docker.sh
Stopping db       ... done
Stopping pacsldap ... done
Removing pacsarc  ... done
Removing db       ... done
Removing pacsldap ... done
Removing network kheops_default
Removing volume kheops_dcm4chee-ldap-ldap
Removing volume kheops_dcm4chee-ldap-slapdd
Removing volume kheops_dcm4chee-db-data
Removing volume kheops_dcm4chee-arc-wildfly
Removing volume kheops_kheops-db-data
Creating network "kheops_default" with the default driver
Creating volume "kheops_dcm4chee-ldap-ldap" with default driver
Creating volume "kheops_dcm4chee-ldap-slapdd" with default driver
Creating volume "kheops_dcm4chee-db-data" with default driver
Creating volume "kheops_dcm4chee-arc-wildfly" with default driver
Creating volume "kheops_kheops-db-data" with default driver
Creating db       ... done
Creating pacsldap ... done
Creating pacsarc  ... done
Creating kheopszipper           ... done
Creating kheopsauthorization    ... done
Creating pacsauthorizationproxy ... done
Creating kheopsui               ... done
Creating kheopsdicomwebproxy    ... done
Creating kheopsreverseproxy     ... done
CONTAINER ID        IMAGE                                              COMMAND                  CREATED             STATUS              PORTS                                                                                                                                              NAMES
d5caa14fac54        osirixfoundation/kheops-reverse-proxy:ci-test      "./etc/nginx/conf.d/…"   47 seconds ago      Up 45 seconds       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8042->8042/tcp, 0.0.0.0:8048->8048/tcp                                                           kheopsreverseproxy
67552e9c9469        osirixfoundation/kheops-dicomweb-proxy:master      "./replaceSecretsAnd…"   48 seconds ago      Up 46 seconds       0.0.0.0:8049->8080/tcp                                                                                                                             kheopsdicomwebproxy
92710a77dd25        osirixfoundation/kheops-ui:master                  "./docker-entrypoint…"   48 seconds ago      Up 46 seconds       80/tcp, 3000/tcp                                                                                                                                   kheopsui
c9fa33eb693d        osirixfoundation/kheops-authorization:dev          "./replaceSecretsAnd…"   50 seconds ago      Up 47 seconds       8080/tcp                                                                                                                                           kheopsauthorization
0f267500942f        osirixfoundation/kheops-zipper:master              "./replaceSecretsAnd…"   50 seconds ago      Up 48 seconds       8080/tcp                                                                                                                                           kheopszipper
c95c6e4380c6        osirixfoundation/pacs-authorization-proxy:master   "/bin/sh -c '. $NGIN…"   50 seconds ago      Up 48 seconds       0.0.0.0:82->80/tcp                                                                                                                                 pacsauthorizationproxy
89c52e69534a        osirixfoundation/kheops-dcm4chee-arc-psql:latest   "/script_entrypoint.…"   51 seconds ago      Up 49 seconds       0.0.0.0:2575->2575/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:8787->8787/tcp, 0.0.0.0:9990->9990/tcp, 0.0.0.0:11112->11112/tcp   pacsarc
78bf11251bf7        dcm4che/slapd-dcm4chee:2.4.44-15.0                 "/docker-entrypoint.…"   52 seconds ago      Up 50 seconds       389/tcp                                                                                                                                            pacsldap
f4628a1a1c44        osirixfoundation/kheops-database:demo              "verify-secret-env-v…"   52 seconds ago      Up 50 seconds       5432/tcp                                                                                                                                           db
newman

kheops-Get_tokens

→ well-known
  GET https://keycloak.kheops.online/auth/realms/travis/.well-known/openid-configuration [200 OK, 2.62KB, 657ms]

→ get token user 1 (titi)
  POST https://keycloak.kheops.online/auth/realms/travis/protocol/openid-connect/token [200 OK, 2.01KB, 325ms]

→ get token user 2 (toto)
  POST https://keycloak.kheops.online/auth/realms/travis/protocol/openid-connect/token [200 OK, 2.01KB, 314ms]

→ get token user 3 (tata)
  POST https://keycloak.kheops.online/auth/realms/travis/protocol/openid-connect/token [200 OK, 2.01KB, 332ms]

┌─────────────────────────┬─────────────────────┬────────────────────┐
│                         │            executed │             failed │
├─────────────────────────┼─────────────────────┼────────────────────┤
│              iterations │                   1 │                  0 │
├─────────────────────────┼─────────────────────┼────────────────────┤
│                requests │                   4 │                  0 │
├─────────────────────────┼─────────────────────┼────────────────────┤
│            test-scripts │                   4 │                  0 │
├─────────────────────────┼─────────────────────┼────────────────────┤
│      prerequest-scripts │                   0 │                  0 │
├─────────────────────────┼─────────────────────┼────────────────────┤
│              assertions │                   0 │                  0 │
├─────────────────────────┴─────────────────────┴────────────────────┤
│ total run duration: 1790ms                                         │
├────────────────────────────────────────────────────────────────────┤
│ total data received: 7.53KB (approx)                               │
├────────────────────────────────────────────────────────────────────┤
│ average response time: 407ms [min: 314ms, max: 657ms, s.d.: 144ms] │
└────────────────────────────────────────────────────────────────────┘

Then go to http://localhost:8042 from your favorite browser.

Register yourself when it redirects to a page such as https://keycloak.kheops.online/auth/realms/travis/protocol/openid-connect/auth?client_id=loginConnect&redirect_uri=.........

It will take you back to http://localhost:8042/inbox after the registration. Now Kheops is ready to use!
Kheops Web UI

I can even tweet from the Kheops Web UI with a link to the created album!
"My KHEOPS shared album. http://localhost/view/ttuArLPrFv834JQ88KaQGY #KHEOPS"
Apparently, the link is broken. It should be: http://localhost:8042/view/ttuArLPrFv834JQ88KaQGY
But I see the parallels with the concept of Óbidos (MEDIator) replicasets in the given UUID ttuArLPrFv834JQ88KaQGY.
One can also create a sharing URL with upload/edit/delete capabilities (again, the port is not correctly used. But that is a front-end bug they can fix. For our purposes, we just need to add the port in the shared URL).

I can also view the images that I uploaded from OHIF viewer directly, by clicking that link. It uses their cloud hosted instance of the OHIF viewer to view the image stored locally, as can be seen from the URL.







We also observe the Docker containers initialized by this integrated project are - 1) db, 2) pacsldap, 3) pacsarc, 4) pacsauthorizationproxy, 5) kheopszipper, 6) kheopsauthorization, 7) kheopsdicomwebproxy, 8) kheopsui, and 9) kheopsreverseproxy. This system uses the managed Keycloak instance in the cloud for its authorization.

Monday, December 2, 2019

Those who ruin the flights for others

Batu Caves Murugan
Recently we visited Malaysia - Kuala Lumpur and Batu Caves, to be precise. Batu Caves temple reminded our visit to Kathirgamam in Sri Lanka. However, my memories of Kathirgamam are vague and fading, since I was only 5 - 6 years old when we visited Kathirgamam twice.

Since Atlanta is far from Kuala Lumpur, I also had a long return flight to Kuala Lumpur via Doha. Usually, I watch a lot of movies on the flights. But this time, I decided to watch just 2 movies during the entire journey (to and from).

In any economy class, there are 3 (or 4, if you sit in a middle seat) people who can ruin your flight. First, the person who sits in the seat behind you unless you sit in the last row. Second, the person who sits in front of you, unless you sit in the exit row or the first row in the block. Finally, the person(s) who sit(s) next to you.

The person who sits behind you has the potential to ruin your journey entirely. They can kick your seat non-stop. Some people do not realize how weak the economy class seat is. If you put your feet on the seat tray, or if you just constantly jerk it, the movements entirely affect the seat in front of you. It gives headaches. Please don't do that. Infants have the habit of kicking. If possible, make sure their feet are not directed towards the seat in front of them.

Second, the person who sits in front of you. They may recline their seat any time, giving your knee a sudden jerk. Some idiots choose to do that while the meals are served, making you spill your food or drink on you. I usually avoid reclining my seat (except maybe by a negligible degree). One exception: if you are in the seat behind me and continue to kick or jerk my seat, I WILL recline my seat to the fullest.

Finally, the person who sits next to you. They may occupy your seat area, lean on you and sleep, or cross their leg and touch you with their shoe or smelly socks. There was a time I was sandwiched in a middle seat with people on either side (window and aisle seats) occupying both hand rests. People, please give that armrest to the middleseater! On the other hand, once in a flight, as always, I let the middle-seat person use the entire armrest. But after a few minutes, I noticed I was being pushed to a corner. Then I found that that person has folded the armrest so that they can invade my space! Of course, I agree that they are a big person. However, it is NOT okay. I instantly put the armrest down back in its place, effectively cutting the huge person's belly which was invading my space by 25%. The person realized their mistake and retracted.

I wish everyone tries to be mindful of the surroundings and the neighbors. This will make our economy class flight experience much better.