Skip to main content

Analyzing the Smoky US Travel Ban imposed on refugees on March 6, 2017

I tried to determine the motivation behind a Travel Ban issued in US on March 6, 2017 against certain nations. I tried to read the document directly instead of being influenced by numerous news articles.

My reading of the document, whose entire text is available here, leads me to believe that this move is a vindictive, politically motivated, irrational and causes harm to everyone living in US (not just the citizens).

Let's try to analyze this rationally and ask questions.

Defend the poor and fatherless: do justice to the afflicted and needy

No matter what your identity is, as a human, you are taught to protect the weak, stand-up against cruelty. If you protect the weak when you are strong, rationally someone else will keep you safe when you come become in your old age.

Who are refugees and what is their process to come to the US?

Refugee a person who has been forced to leave their country to escape war, persecution, or natural disaster.

If you are a Tamil speaking person, you can identify the refugees as Sri Lankan Tamil's who fled to TamilNadu due to oppression based on race and language.

Safe and Sound nations welcome refugees as part of their commitment towards peace of the world.

  • India, after vetting, keeping in line with it's broad mindedness, welcomes refugees.

  • US follows a 2-year of vetting, and so far with it's broadmindedness has welcomed refugees too.

  • Britain, vets and welcomes them.

  • Australia, vets and welcomes them.

  • Germany, vets and welcomes them.

What happens when you block refugees from certain countries for a short period of time?

Nothing changes in practice. In theory, you create an opinion and give a signal to other countries and your territory is not a safe place. If that is not the situation, you are just oppressing the weak. This is happening with the United States banning people from certain nations.

  • It is politically motivated by a coward at the top of the government who signed this.

  • It is vindictive and reactionary to the defeat received from the judicial system trying to hold up humanities for the country.

  • It is creating divisive identity-politics, harboring people who side with racism and are phobic towards Islam religion in America.

  • It is giving way to hate crimes by racist-terrorists in America. Indians in first week of March 2017, were subjected to this with 2 deaths and 1 person wound with injuries due to racially induced gun-violence.

Now, to the text of this travel-ban:

https://www.whitehouse.gov/the-press-office/2017/03/06/executive-order-protecting-nation-foreign-terrorist-entry-united-states

The title says "Foreign Terrorists". In fact, US has 2 years to vet any applicant and determine if the person is a terrorist or not. This ban for 90 days is undermining the 2-years of vetting period.

The claim is:

It is therefore the policy of the United States to improve the screening and vetting
protocols and procedures associated with the visa-issuance process and the USRAP
  • What can a 90-day ban achieve, which could not be done for more than 730 days? The document fails to answer that.

Iran, Iraq, Libya, Somalia, Sudan, Syria, and Yemen.  These are countries that had already been
identified as presenting heightened concerns about terrorism and travel to the United States.
  • Where is the proof?

Additionally, Members of Congress have expressed concerns about screening and
vetting procedures following recent terrorist attacks in this country and in Europe.
  • What concern have they expressed and where is the proof? The terrorist attacks from the people of the above nation in US is 0. Why have not the members of congress raised concerns for racially induced gun-violence?

Nationals from the countries previously identified under section 217(a)(12) of the INA warrant additional scrutiny
in connection with our immigration policies because the conditions in these countries present heightened threats.
  • Where is the proof?

The following are brief descriptions, taken in part from the Department of State's Country Reports on Terrorism 2015 (June 2016), of some of the conditions in six of the previously designated countries that demonstrate why their nationals continue to present heightened risks to the security of the United States:

It then, provides snippets on the crimes committed by the Individuals from the countries.

We can look at the entire list, which is claimed as an authoritative reference: https://www.state.gov/j/ct/rls/crt/2015/

  • Why is it citing the reports from 2015 for a 90 day action in 2017?

  • There are other nations in the list, why pick up only 7?

  • What has changed in 1 months that a travel-ban on Iraq is no longer included and suddenly that is considered safe?

This is answered here.

In addition, since Executive Order 13769 was issued, the Iraqi government has expressly undertaken
steps to enhance travel documentation, information sharing, and the return of Iraqi nationals subject
to final orders of removal.  Decisions about issuance of visas or granting admission to Iraqi nationals
should be subjected to additional scrutiny to determine if applicants have connections with ISIS or
other terrorist organizations, or otherwise pose a risk to either national security or public safety.
  • If this is the case, just call the requirement that provide "travel documentation".

  • This still does not justify the prejudice displayed with countries as a whole.

The ban, tries to support itself by giving some examples like this.

Recent history shows that some of those who have entered the United States
through our immigration system have proved to be threats to our national security.

The incident is this one: https://en.wikipedia.org/wiki/2010_Portland_car_bomb_plot

  • The person involved did not have a ground from Somalia. What makes the claim that the entire country is at fault?

  • Why is the 2010 incident being referenced for this Ban? Where are the incidents for other countries?

These are the glaring holes in the document.This was signed by someone who did not take effort to read the document. It was prepared by the salespeople for money.

As new challenges crop up, this bad-act will be forgotten soon. Keeping quiet does not seem to be right thing to do. Let us be aware, spread correct information and help to bring bad-actors down.

Spirituality without Religion

Read a brian pickings article titled Neuroscientist Sam Harris on Happiness, Spirituality Without Religion, and How to Cultivate the Art of Presence

The essence of this was discovering that feeling in that a person feels extremely comfortable and happy with the self. That feeling is described using a loaded word called "spirituality" and associated with religion. For folks who have experienced it, it is not related to religion at all.

It is outside of it. It is an innate existential feeling that one can get, when a person is honest with his thoughts, feelings and happy for the present moment.

CPython moved to Github

CPython project moved it's source code hosting from self-hosted mercurial repository, at hg.python.org to Git version control system hosted at Github. The new location of python project is http://www.github.com/python/cpython

This is second big version control migration that is happening since I got involved. The first one was when we moved from svn to mercurial. Branches were sub-optimal in svn and we used svn-merge.py to merge across branches. Mercurial helped there and everyone got used to a distributed version control written in python, mercurial. It was interesting for me personally to compare mercurial with the other popular DVCS, git.

Over the years, Github has become popular place for developers to host their projects. They have constantly improved their service offering. Many python developers, got used to git version control system and found it's utility value too.

Two years ago, it was decided that Python will move to Git and Github. The effort was led by Bret Cannon assisted by number of other developers and the migration happened on Feb 10, 2017.

I helped with the migration too and helped with providing tool around converting the hg to git, using the facilities available from hg-git mercurial plugin.

We made use hg-git, and wrote some conversions scripts that could get us to the converted repo as we wanted.

  1. https://github.com/orsenthil/cpython-hg-to-git

  2. https://bitbucket.org/orsenthil/hg-git

Now that the migration is done, we are getting ourselves familiar to the new workflow.

Yashwant Kanetkar - Let Us C

I came across an article on Yashwant Kanetkar, and it rekindled many of my fond memories.

Let Us C is not merely a book, but a bible for millions of programmers in India.

That is true for me. I had read it during years 2000-2002, and I kept a count of it. I read, solved all the problems in that book for more than 100 times.

It has helped me a lot and I am indebted to that book.

The article on Yashwant Kanetkar was published in a Indian magazine, I made a copy of it, because, as you can imagine, I will cherish it.

I also watched a short talk by Yaashwant Kanetkar in which he explores his journey, and has some words of advice for programmers from India.

Who slides Wins

Few years ago, I wrote this n-puzzle using pygame for fun. It was inspired from the sliding block puzzle game that I had played as a kid, which had numerals in the front and a picture of taj mahal in the back. The idea was to slide and fit the photo together.

https://github.com/orsenthil/who-slides-wins

How to play

  1. Human plays first. Use Arrow Keys to Move and Fit the Picture.

  2. Press Enter when Done.

  3. Computer Plays and tries to beat you with less moves that you took.

It uses A* with Manhattan Distances to Solve the puzzle.

If you want to try it on your computer.

  1. Install python2.7

  2. Create a virtualenv.

  3. pip install pygame

  4. clone the git repo.

  5. python run_game.py

Deep Learner Playing Breakout

Let's first watch this video

In this video, I just gave the program a game and it learned to play by itself. No, I did not code the player, that would have been so traditional. Here the player, the computer, the program, actually learns to play by itself by just playing the game! It does not need me.

I recorded this video for experiencing how a Deep learning algorithm actually works. And as you can notice, it works amazingly! Deep learning is subset Artificial Intelligence that tries to show "intelligent behavior" by using something similar to (neural networks) human brains wiring. It uses mathematics, that we think, human brains internally use to exhibit rational thinking.

The results of these have been amazing. From beating go games (Thanks For Ruining Another Game Forever, Computers) , to making self-driving cars a possibility. The above video should give some idea that self-driving cars can learn about hurdles and try to navigate by itself.

How to setup your system for Deep Learning Experiment ?

I wish, you will be excited to replicate this experiment. If you are interested, here is how I setup.

1. Rent a GPU Instance from AWS or Azure. Right now, we need GPUS. They are very costly, but the deep learning frameworks are not optimized for CPUs. I spent multiple weeks of uptime on CPU without any results. Go for GPU. AWS Has it.

  1. Setup Ubuntu 14.04 with proper NVIDIA drivers.

  2. Install X11 and Window Manager. It wont be fun otherwise.

sudo apt-get install xubuntu-desktop xfce

4. Setup viewing your powerful "Cloud Desktop" using nomachine. Apparently, that's the best way I could setup remote graphic viewing.

  1. Clone the DeepMind-Atari-Deep-Q-Learner code.

  2. Install the dependencies.

./install_dependencies.sh
  1. And, as my son will say. Here you go!

./run_gpu breakout

You can exit nomachine with the program running, and constantly come back to monitor your computer trying to learn to play a game by itself.

Glyph's post on threads

Glyph Lefkowitz is a great author. In this post titled unyielding he makes an excellent case against threads, with so many valid references for his arguments. He makes a point event driven programs that should be the first thing we should think if we are think about concurrency.

As a developer or project lead, if I have to emulate certain practices for a writing high quality software, I think, looking up to glyph and his twisted project is never a mistake.

Dominant Resource Fairness

I was reading the paper on Dominant Resource Fairness and found it approachable, interesting and fairly easy to understand.

Dominant Resource Fairness is a resource allocation strategy used by a system like Mesos.

In general terms, resources are basically things that a group will need and the idea is the allocate the resources amongst the members of the group in an efficient way. Examples could be the amount of money (resource) to be distributed across a group of people in the community or the processor cores in a multi-core processor that needs to be distributed and allocated to the process running on that processor.

The Dominant Resource Fairness uses Linear Programming technique to solve the problem of resource sharing.

In a datacenter with multiple computers, having multiple CPUs, multiple memories, network cards and many other resources, those needs to be shared across the processes that are running in the datacenter. DRF uses the concept of a dominant resource. The Dominant share is the maximum share that an entity (process) has been allocated for any resource. For e.g, if if a process A has heavy CPU usage and process B has heavy memory usage, the dominant resource for process A is CPU and the dominant resource for process B is Memory.

Dominant Resource Fairness seeks to maximize the minimum dominant share across all entities. That's the formulation for the linear programming problem for you. Doing it across in a distributed way for different tasks with different requirements is the challenge that is being solved.

For example, if user A runs CPU-heavy tasks and user B runs memory-heavy tasks, the DRF attempts to equalize CPU share of user A with the memory share of user B. In this case, the DRF would allocate more CPU and less memory to the tasks run by user A, and allocate less CPU and more memory to the tasks run by user B. In the single resource case -- where all jobs are requesting the same resources -- the DRF reduces to max-min fairness for that resource.

Some interesting anecdotes I found in the paper include, enforcing "fairness" in resource sharing is a difficult problem by itself.

A big search company provided dedicated machines for jobs only if the users could guarantee high utilization. The company soon found that users would sprinkle their code with infinite loops to artificially inflate utilization levels.

The paper also quoted economic research on difficultly in ensuring fairness.

Competitive equilibrium from equal incomes (CEEI), a popular fair allocation policy preferred in the micro-economic domain is not strategy proof.

Stephen Brennan Tutorial on writing a shell

After learning to program in C language, the next best thing to attempt will be writing some small utility in C. I landed upon a great tutorial (https://brennan.io/2015/01/16/write-a-shell-in-c/) that taught how to write a shell with some builtin utilities in C. I tried that tutorial today and saw how to build a shell.

That's the best way to learn about the init, fork, parent process, child process and the shell loop itself. As a side-effect, I also setup and used CLion on my computer.

Web of Stories - Donald Knuth

I am a Donald Knuth fan, and sometimes I strive to understand his lectures. Stumbled upon this website called webofstories.com that feature many scientists and carries extensive interviews with them, who reflect upon their life, their personal moments, their personal views on their achievements.

I watched the entire 3 hour interview with Donald Knuth and immensely enjoyed it.

One of the excellent moment was, when he shares his 2nd computer program, which was a learning tic-tac-toe. This was written for the IBM 650 Machine having just 10K bytes of memory.

http://www.columbia.edu/cu/computinghistory/650-2.jpg

Those days, the programs were written in punched-cards and a typical program would look something like this (location, instruction).

0001 0000010000
0002 0000000000-
0003 1000018003
0004 6100080007
0005 2400008003
0006 0100008000
0007 6900060005
0008 2019990003

Imagine writing an AI program in that. The difficulty of writing does not matter, just the possibility that it could be written and could be very was exciting, probably led Knuth to write it. This video shows his excitement when he shares that moment.

Other interview bits are interesting too. Knuth covers academia, maths, computer science, computer history, programming as art, typography, religion, his dates, his wife, his children and awards he has won. Many interesting things can be picked up.


"If it doesn't go well, so what, I tried, and I did it." - Donald Knuth on his thoughts, when delivering the lecture of "Science and Religion" at MIT.