Using Reg. Expressions to Extract Useful Information in Python.

Having just completed chapter 7 of Automate the Boring Stuff. I wanted to test my skills. I’m writing down some code that will carry out the following tasks.

  • Use text copied onto the clipboard
  • Go through text and store, or save URLs, email addresses, phone numbers and ZIP codes.
  • Paste the information found into the clipboard, and print on the CLI as well.

The full code is available here on Github

Firstly, to do this, we’ll need two modules. The re module for writing and using regular expressions, as well as the pyperclip module for using our clipboard. Firstly, let’s import these modules. and write down the some rough formats for the stuff we want.

#! python3
import pyperclip, re
# These are our formats.
#
#   PHONE         | EMAIL           | ZIP      | URL
#   --------------|-----------------|----------|------------
#   area code*    | username        | 6 digits | protocol
#   separator*    | @               |          | server
#   1st 3 digits  | domain          |          | file name
#   separator     | .(com)          |          |
#   last 3 digits |                 |          |
#   extension*    |                 |          |
#
#   *optional

Now that we have this information, let’s make a regular expression, or regex for short for each category.

For phone numbers, we want three optional items and three necessary items, as shown above. To make items optional, we can group them using brackets and then place a question mark so that the number is read even if the contents of the bracket are not present. Like this: (<regex>)?. The ? operator specifies a group that either occur once or not at all. Now, let’s write our regex for phone numbers. Do note that I will use re.VERBOSE to spread the regex over multiple lines, for ease of readability.

phoneRegex = re.compile(r'''(
    (\d{3}|\(\d{3}\))?
    (\s|-|\.)?
    (\d{3})
    (\s|-|\.)
    (\d{4})
    (\s*(ext|x|ext.)\s*(\d{2,5}))?
    )''', re.VERBOSE)

Let’s go over this line by line. The first line, (\d{3} | \(\d{3}\))?, is for scanning any area/region/country codes. We’re assuming these codes to be 3 digits in length. The | is added to ensure that we can read codes regardless of whether or not they are enclosed within brackets. Some possible extensions are 761 or (342). If there is a code, there will be a separator between it and the rest of the number, which is why the second line is required. We are allow for either a space, or a hyphen or a dot. For example, these numbers (with codes) would be read: 342-345-5454, 342.345-5454, and (342) 345-5454. From then onwards, the regex is pretty simple. The third line just scans three consecutive digits (as is mandatory in phone numbers). The fourth line is just a repetition of the second, as elements within a number are always separated by a hyphen or a space in most cases.

The last line could be a bit tricky. It is meant to include any extensions that the owner of the phone number has. \s* is added as there can an arbitrary amount of space between the number and extension. Then, ext|x\ext., where . is the wildcard character accounts for the way extensions are denoted. Lastly \d{2,5}accounts for extensions that are 2-5 characters long. Here are some sample phone numbers with extensions: 345-6571 x 453, (423) 341-9872 ext 45, and 221-986-1034 ext*86298.

Now, time to write down our regex for email addresses.

emailRegex = re.compile(r'''(
    [a-zA-Z0-9._%+-]+
    @
    [a-zA-Z.-_]+
    (\.[a-zA-Z]{2,4})
    )''', re.VERBOSE)
    

[a-zA-Z0-9._%+-]+ represents an expression that occurs at least once (may occur more than once but no 0 times). The content of the square brackets represents our own class of characters. a-z A-Z 0-9 represents any alphanumeric character. Email addresses may also contain periods, underscores, % signs, + signs or hyphens (terribly common), which is why they are included. Then we have the @ sign. After that, we need to identify the domain, which could be made up of any alphanumeric character along with hyphens, underscores and periods. All of these are included inside our square brackets. Lastly, \. represents a period, to start .com or .net. This period is followed by a string of alphabets that is 2 to 4 digits long. Examples – .nl, .in, .com, .gov.

The ZIP code is really easy. We just need six consecutive digits.

zipRegex = re.compile(r'\d{6}')

The URL regex is also easy, we just need to find all ‘words’ startin with http, which covers https in its own, and ending with a .<something>.

urlRegex = re.compile(r'http.*?\.[a-zA-Z]{2,4}')

Using the pyperclip module, we will copy our text from the clipboard. Although this may vary from person to person, I want to include all search results in one list instead of different lists for different types of searches. Here is the code.

text = str(pyperclip.paste())

# <...
#       various Regexes
# ...>

res = []

for number in phoneRegex.findall(text):
    phoneNum = '-'.join([number[1], number[3], number[5]])
    if number[8] != '':
        phoneNum += ' x' + number[8]
    res.append(phoneNum)

for email in emailRegex.findall(text):
    res.append(email[0])

for url in urlRegex.findall(text):
    res.append(url)

for ZIP in zipRegex.findall(text):
    res.append(ZIP)

The functionality pertaining to searching for and storing a valid phone number is complex as our output changes with whether or not the phone number contains the area code and/or extension. We then copy all information gathered to the Clipboard, and print ‘no information found’ if the list of results is empty.

if len(res) > 0:
    pyperclip.copy('\n'.join(res))
    print('Copied to clipboard...')
else:
    print('no information found')

The entire code can be found here. Also, there are some helpful links for understanding Regexes below.

There is an issue with WordPress, links randomly open in new tabs or the same tab, so be careful.

Insights from ‘The Soul of an Octopus’ (Sy Montgomery)

It would suffice to say that this book was an eye-opener. It forced me into recognising octopuses as sentient and heterogenous beings. Some hints were even made, quite convincingly, to suggest that they are smarter than us. In short, I don’t often encounter instances wherein humankind’s intellectual credibility is questioned. Montgomery’s striking language further elucidates upon the emotions, facts and narratives she conveys. Some of these are mesmerising by themselves, such as her emphasis on how octopuses, like humans, savour food before consuming it. Another fact, more daunting than inspiring, is that humans are like twigs to octopuses. Mere dolls in the face of the monstrous forces these marine beings can generate. All in all, The Soul of An Octopus is both frightening and revealing. Frightening in that it makes octopuses seem to be creatures favoured by evolution. Revealing in that it removes the veil that makes us humans believe ourselves to be godly with respect to the planet.

To not see how cunning octopuses, one would have to be more than blind. For example, the tale of Octavia. Octavia managed to simultaneously greet five people with five limbs, while using her remaining three limbs to steal a bucket of fish. Genius. Accompanying such stories is some delightful language. Montgomery, like any good author, makes us feel as if the events are happening right in front of our eyes! She gives every tale a real-world link. The loss of a beloved one – the demise of an octopus. The horror of Alzheimer’s – the nightmare of Octopus’s senescence. Humans solving riddles – Octopuses pening boxes and operating levers to get to their food.

On the downside, the palpable sense of magic turned into boredom and frustration due to how the author attempted to force the readers into mirroring her feelings, especially towards the latter stages of the book. For example, near the end, Montgomery, chose to dedicate 20 odd pages to an octopus blind date. This made no sense to me. As the book approached its end, it became evident that Montgomery wasn’t trying to broach a topic, but wanted to transform the reader into octopus-fanatic overnight. Dull.

Having conflicted good and bad, let’s move on.

After I finished reading, there was one thing pertinently nagging at me – consciousness. The idea of consciousness, in broadly speaking all animals, was evoked again and again. Luckily, this paid off. Do correct me if I’m wrong, but the very idea, or rather concept of consciousness is rather ubiquitous. We don’t understand what it is. Not by any means. As exhibited in The Soul of an Octopus, even organisms lacking neural systems have displayed individualistic behaviours (I’m talking about the starfish). This idea of ‘consciousness bereft of a brain’ may seem absurd, but it is true. We have always thought ourselves to be distinct based on consciousness. Turns out, we’re not that different when it comes to being sentient.

Research teams around the globe have found evidence of both thought and curiosity in many different types of organisms. The octopus is one of many. Not only have octopuses exhibited traits of intelligence, but have shown curiosity by exploring new areas (eg. new aquarium tanks), using various types of solids as armour (eg. coconut shells) and interacting with humans. The most understandable of these examples is that of Octavia, who remembered her handler’s warming presence not by sight, but by touch! And then proceeded to envelop him in octopus slime, while ignoring her food.

It is hard to say if we will ever understand what consciousness is. Despite this, one thing is certain, we aren’t the only sentient organisms on this pale blue dot.

Stockholm – Some Talking Points

Biking

From a biker’s perspective, Stockholm is nothing short of a paradise. In over two weeks, I’ve stumbled across a vast bike-road network consisting of silky tracks. In fact, to my surprise, I’ve quite often found ways through the city that are shorter than those a car would take. Having pedalled through forests, farm-fields and an urban jungle – I would definitely recommend buying/renting a bike. Some good stores are decathlon and bikester (for cheap options). You can also find some decent second hand bikes on “www.blocket.se.”

One potential downside, especially for those who hail from flat terrained areas is the Swedish landscape. It rolls up and down like waves frozen on the surface of an ocean. This makes biking in Stockholm both mesmerising and tough. The struggle of climbing up steep ascents replaces the ecstacy of flying down hills every minute. On a positive note, Biking here is rewarding given that it teaches how to use gears. Back where I come from, Jaipur, gears are pretty much useless given that all roads are completely flat. Here, gears are more important than velocity. It is crucial to change to the right gear at the right time.

Grimsta Natural Reserve

Personally, I love the Grimsta area, and also the route from Hasselby to Bromma Airport. The latter is a clear-cut forest trail, full of jagged rocks, slippery declines and unfathomable heights at times. Last week, while biking on this trail, I even encountered a deer (it bolted away upon hearing me). I did miss out on the opportunity of bird-watching here, so do bring your binoculars if you can.

The trail is, at it its best, completely cut off from the surrounding residential areas. Although Google Maps will guide you through it, one of the best way to actually explore here would be to use your natural compass. A definite vote of approval from me, and a place explorers and bikers can’t afford to miss.

Hasselby –> Bromma

The journey to Bromma from Hasselby isn’t as isolated as the Grimsta trail. One gets to cross small streams, rustic wooden bridges and if fortunate, experience an airplane fly overhead before crossing Bromma airport. You can feel the wind surge it generates! If you have the time, you can even walk while surrounded by acres of farmland with almost no one in sight.

Landmarks

Stadsbiblioteket – Every website will you warn you about missing out on this stunning library. I spent my entire saturday in here, and I can assure, a trip here wouldn’t be wasteful. You can get the descriptions on other websites, but be sure to avoid sticking to the main hall. The library has more than five smaller halls, full of books in a vast array of languages. Furthermore, you can also get free water and wi-fi here, along with a station for charging your electrical appliances.

Armé Museum – Haven’t fully seen this one yet, but the gallery themed on the 16th to 19th centuries is amazing. Seldom will you find a museum where the number of life-scale models and touchable stuff (yes, I’m not lying) outnumbers items hidden away behind glass walls. Seldom will you find a museum with so many to-scale models. Also note that it has quite a high number of items that can be touched and lifted. Like many other museums in Stockholm, this too is free to visit (and also gives free lockers and charging stations).

Gamla Stan – A special place in that it has the ability to ensure you wander around for hours without even realising it. This archaic island, with its tiny row houses, stuffed cafes and small squares is a must-see, even if you loathe touring historical sites (like me). Also, don’t forget to try out some ice cream. There are some mesmerising flavours available throughout the area. My favorite is ‘Stikki Nikki.’

Common Applications of Time Series Data (Python x Pandas)

Firstly, time in Python can be represented as either a string or a timedelta or datetime object. We’ll have more on those two below. Whenever reading data from a .csv file using the pd.read_csv function, time is generally read as a string, which can be converted to a datetime object with a very simply function. But more importantly, it is imperative to understand how time is actually represented.

YYYY-MM-DD HH:mm:ss.msmsms (m is minute, s is seconds, ms is milliseconds).

This notation is both simple and effective when dealing with time. Now, while reading, your code sees this format as a string, so it doesn’t whether this represents time or not. The pd.to_datetime is a vectorized function that converts all values in a Series (for dataframes, a specific column) to datetime objects. Intuitively, the first half is the ‘date’, and the second part the ‘time.’

Perhaps the most important element of dealing with time in python is your purpose. Generally, one would use this data to either calculate the amount of time passed between readings, or to calculate the amount of time between a starting time and current time. Let’s look at each separately.

Between Readings

To start off, I’ll write down an example. Say you have a pH sensor that gives you the following values: 7, 8, 9, 8. Now, your computer also logs the time at which these values are received: 2019-06-19 4:03:12, 2019-06-19 9:06:10, 2019-06-19 23:56:55 and 2019-06-20 1:01:04. Now, we have to find the amount of time passed between readings. Thus, you have a pandas dataframe as follows. I will explain why the last row is as such below.

        pH       time
0 7 2019-06-19 4:03:12
1 8 2019-06-19 9:06:10
2 9 2019-06-19 23:56:55
3 8 2019-06-20 1:01:04
Now, what we will do here is shift each time value down by 1 and store it in a series. This is done using the shift() function from pandas that takes in 1 required argument, n, that determines the number of spaces to shift by and whether to shift from left to right or top to bottom (default is top to bottom).
 
shifted_time = df.time.shift(1)

creating this series

0    NaN
1    2019-06-19 4:03:12
2    2019-06-19 9:06:15
3    2019-06-19 23:56:55
name: shifted_time

now, creating a last row of NaN and 0 respectively ensures that our last value is taken into consideration. The difference can now be calculated as follows.

diff = [df.datetime[i] - diff[i] for i in diff[]
diff[0] = 0    # as initial value has nothing to be compared against
df['difference'] = diff

creating the following data frame and giving us the amount of time between reading

    pH           time               difference
0 7 2019-06-19 4:03:12 ~
1 8 2019-06-19 9:06:15 0 days 05:03:03
2 9 2019-06-19 23:56:55 0 days 14:50:30
3 8 2019-06-20 1:01:04 0 days 01:05:09
This difference can be converted to seconds by specific functions, such as dt.total_seconds This just does this:

    pH           time               difference
0 7 2019-06-19 4:03:12 ~
1 8 2019-06-19 9:06:15 18183
2 9 2019-06-19 23:56:55 53430
3 8 2019-06-20 1:01:04 3909
difference is in seconds now. note: subtracting two datatime objects automatically creates a timedelta object, no need to do manually for latest version of pandas

Now, these sort of computations have many real world applications. For example, formula 1. If you’ve ever noticed, the person who comes first (Hamilton most of the time) has his time written in absolute terms, i.e, his time is written as it is. This is done by initializing the time column of the first row to 0. Then, from second place onwards, their time is represented as the difference by which they lost to the first person. I suggest you google F1 and have a look at it yourself.

Differences from starting point

This methodology isn’t so prominent to customers, but is extremely useful to data scientists looking to check whether the time data they receive has breaks or not. This is done by taking the minimum time value (normally the first one), and then subtracting it from each value – giving the time passed from the start to that specific point. These ‘differences’ are then plotted on the vertical axis, with the index of the time data in the entire data set taken on the horizontal axis.

Consequently, you get graphs like these that display the continuity of the data you have.

A log scale has been taken on the y-axis to ensure that small difference values are noticeable.

Now, Python, and especially pandas has many functions and methods to deal with time series data. This link would be the best to explore these functions –> https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html. One functionality that I absolutely adore is the ability to convert data as per timezone – adding both flexibility and adaptability to your code. This is extremely prominent on the web. For example, if you’ve ever noticed, most websites display the timings for a sport event as per your timezone. This is independent from python and pandas, but has the same functionality. Using your location, the time data employed by the server is converted to your timezone

Iterative and Recursive approaches to implementing the Fibonacci Series (Python)

So I was writing a program to implement the following task. For any value of n greater than or equal to 2, F(n) equals the sum of F(n-1) and F(n-2), where F(x) returns the sum of all elements in a fibonacci series of length x.

For example, F(4) would equal F(3) + F(2). Now, F(3) is 0, 1, 1; which sums to 2; and F(2) is 0,1; which sums to 1. Thus, F(4) = F(3) + F(2) = 2 + 1 = 3. Now, this is the original algorithm I came up with. Now, turns out that this algorithm is perfectly applicable for small values of n, say upto 30. However, the ‘runtime cost’ of this algorithm is exponential, which is why I wanted to try out the iterative approach as well (linear runtime cost).

# fibonacci sequence --> 0 1 1 2 3 5 8 13 21

def fibonacci(n):
	# f(n) = f(n-1) + f(n-2) where n > 1
	a, b = 0, 1
	if n == 0:
		return a
	elif n == 1:
		return b
	elif n > 1 and n < 30: 
		return fibonacci(n-1) + fibonacci(n-2)
	else:
		return 'n should be between 2 and 29'

print (fibonacci(6))  # input here

# methodology, every time, f(n) breaks down further and further
# eg. f(4) = f(3) + f(2)
#		   = f(2) + f(1) + f(1)      f(0) not written because it is = 0, no effect on output
#          = f(1) + 2f(1)
#          = 3f(1)
     

The above approach, or rather the one I originally came up with, has a runtime cost of O(2^n). How?

F(n) => F(n – 1) + F(n – 2) + c.
% c is a constant. for the exercise above, it is = 0.

% we can assume both to be approximately equal F(n – 1) ~= F(n – 2)
F(n) => F(n – 2) + F(n – 2) + c
=> 2F(n – 2) + c (F(n – 2) = F(n – 3) + F(n – 4) + c ~= 2F(n – 4) + c
=> 2( 2F(n – 4) +c) +c
=> 4F(n – 4) + 3c
repeat process
=> 4(2F(n – 6) + c) + 3c
=> 8F(n – 6) + 7c

now, set 2^k = T, where T is the coefficient of F(n-…). T = 8 above *eg.

F(n) ==> 2^k * F(n – 2k) + (2^k – 1)c

Now, we will set n – 2k equal to 0. This means that k should equal n/2. Thus, the equation simplifies as follows and the exponential cost is revealed.

k = n / 2
F(n) ==> 2 ^ (n / 2) * F(0) + 2 ^ (n / 2) * c
This simplifies to 2 ^ (n / 2), as other elements can be approximated to having either no cost, or a constant cost that does not change with n. This means that the cost of the algorithm is O(2 ^ (n / 2)), which shows that it increases exponentially with n.

To avoid an exponentially increasing cost, we can adopt an iterative approach, which avoids stacking function calls on top of each other as in a recursive approach.

def fibs(n):    # iterative approach
                                                                                                 
    fibs = [0, 1, 1]                                                                                           
    for f in range(2, n):                                                                                      
        fibs.append(fibs[-1] + fibs[-2])                                                                         
    return fibs[n]

Now, the cost of this algorithm is O(n), as it will only be executed n times, or rather n – 2 times to be exact, as the for loop starts iterating from 2, so as to avoid touching the values that correspond to f(0), f(1), and f(2). To conclude, the iterative algorithm is simpler and much more efficient for large values of n.

https://stackoverflow.com/questions/15047116/an-iterative-algorithm-for-fibonacci-numbers this post on stack overflow dives deeper into the implementation of the iterative algorithm.

One Category To Rule Them All

As temperatures, water levels and scarcity rise tenfold across the globe, from the vast plains of the Savanna to the frosty woods of Alaska, we humans seem to be stuck in a race that’s just getting out of hand. Alarmingly, surprisingly little is being done to counter this development of a sinkhole – sucking us in slowly but surely.

Fortunately, history has proven, again and again, that change starts small. As Walt Disney said, “It all started with a mouse.” Even more, luckily, the modern-day internet age means that ideas can diffuse across society at breakneck speed. The driving forces behind the climate control movement, today’s multi-billion dollars businesses are crafting the ladder we must climb to save this planet. Firms like Google and Tesla have successfully shown the effectiveness of driving yourself towards a goal. However, it is time another corporate monolith – Apple, took charge. Sure, Apple has moved towards manufacturing environment-friendly products, yet it still wastes tons of resources.


Boasting astronomical sales north of a couple hundred million dollars, one can’t even begin to imagine the sheer number of white boxes, user manuals and worthless apple logo stickers that have been discarded by today’s iPhone savvy society. It’s time Apple made up for its mistakes.

The most effective way towards beginning this rejuvenation process would be to change its outlook and start prioritising the future. An ‘environment’ category on the App Store may catalyse this change.

Now, this wouldn’t just be a goodwill measure. For a long time, developers and businesses, especially environment-based NGOs, have looked for platforms upon which they can spread their influence. Creating a new, separate environment category would mean creating a whole new market. Like a bacteria stumbling upon a picture-perfect culture, the entire sector of environmental benefit and climate awareness will boom. Moreover, doing this would also transport stories, news, and action directly into the lives of millions of customers. If Apple executes this to perfection, the sky’s nothing but the first rung in the ladder.

Furthermore, creating an environment category wouldn’t just mean promoting the climate control movement, but would also translate over into a more satisfied consumer base. Consequently, Apple would gain a mammoth advantage over its rivals around the globe. It could also prove to be the key to unlocking the vast wealth of China and India.

Significantly, an environment category would also give Apple much-needed bargaining power. If the environment project takes off successfully in the US, governments might have to think twice before placing limits on Apple, given how it would indirectly mean imposing a limit on a firm that is creating and shaping the future by preventing a calamity.

Lastly, the world sorely needs an environment category. It is the key to truly unlocking the potential of technology. Children growing up alongside such apps – planting trees with their parents, earning green points and respecting the beauty and allure of nature would heal deep-set wounds in mother nature. It could result in the rise of a generation that knows the importance of the environment and can thus help ameliorate it. Over the last few years, I’ve experienced seeing fewer trees, listening to fewer birdsongs and smelling fewer flowers, while suffering soaring temperatures. Later generations don’t deserve to see nature in its culmination. It’s time Apple went from being just a brand to a messiah.

Is migration globalisation?

Screen Shot 2018-08-13 at 10.02.39 PM.png

What is migration and what are the causes behind it?  Migration is defined as the movement by people from one place to another. There are four types of migration, economic, social, political and environmental and the causes behind migration can be divided into two broad categories, push and pull factors. Push factors motivate people to leave an area whereas pull factors attract people to a new area. The strongest push factors in the modern day world are safety issues, crime rates and war whereas the strongest pull factors are job opportunities, less crime and political stability. Did you notice one thing? It is clear that people migrate to live a better life and politicians such as Trump are fighting to prevent these people from coming in and sending them back to places full of violence, bloodshed and genocide. As the prominent social saying goes “No one leaves home unless home is the mouth of a shark.”

“Migration is a feature of globalisation, you can’t stop it, every time a political party says it’s going to be tough on immigration, it fails to deliver and loses trust” – Margaret Hodge

Also, there are a number of disadvantages associated with migration, many of which are simply myths protected by politicians who want votes, not justice. People say that countries suffer from economic recession and increases in unemployment upon the arrival of migrants, this is nothing but a social myth. Research and data published by governments show that an increased number of migrants increases employment levels instead of decreasing them and this leads to more tax revenue for the government, which results in economic growth. Now, you may argue that migrants pose competition to natives for the same jobs and thus prevent many people who have lived in that country for years from getting a job but in the same way, a migrant with a diverse and unique idea may end up creating thousands of jobs, more than covering up for that gap. Another stereotype associated with migrants is that they increase crime rates and commit acts of violence, this is completely baseless. Statistics show that more migrants are arrested due to retaliating against violence by natives than commit acts of aggression themselves. Countries also use the issue of migration to keep out certain groups of people, a popular example is the Aliens Act of 1905 which was passed in Britain. This legislation allowed the British government to keep out virtually anyone they found susceptible, and instead of using this to keep immigration quotas just, they used this law to prevent Jews coming in from Eastern Europe.

“History, in its broadest aspects, is a record of man’s migration from one point to another” – Ellesworth Huntington

Opening your borders also makes you the nation occupying the moral high ground in a region, it also increases your chances of re-election as a political party and will surely ensure that your role in the subcontinental and international setup will be amplified. Currently, in the modern day world, New Zealand and Norway are the two countries which accept the highest number of migrants. The last time Norway faced a threat to national security was in 2011 when a radical detonated a bomb in a public square in Oslo, also, Norway has been experienced steady economic growth ever since then and has faced a stable increment in its real GDP per capita as well, in simple words, accepting more migrants and making its borders more open has led to the benefit of the country instead of its downfall. Crime rates have fallen and the average income has steadily increased too, also, employment levels have increased too. New Zealand too has experienced economic growth and an increase in its human development index, it is one of the world’s leaders in terms of minority rights and has faced a steady increment in labour productivity over the last few years, clearly, the real world proves that migration is a boon instead of a bane. According to statistics published by the World Bank, if all the developed countries in the world let in 3% more immigrants, the lower class throughout the world will have 305 billion dollars to spend, that’s a lot of money!!!

Screen Shot 2018-08-13 at 10.02.51 PM

However, increased migration may have negative effects as well. Migrants may destroy job opportunities for workers with weak skill sets and may lead to decrease the market wage in an economy, as there would be a higher number of workers. Also, if a country is already at full employment, migrants may have to resort to means such as crime and working in the unorganized sector to earn money for their family, no matter how honourable their motivations may be, their deeds will certainly speak for themselves. Also, an overwhelming majority of migrants is forced to resort to manual labour, also, the migrants coming in may have to engage in assimilation, that is, blending their cultural beliefs and values with that of the host country, families which may do not do so may be seen as ‘outlandish’ in a negative way.

To conclude, migration is another matter of perspective, sure, it has negative aspects as well but doesn’t everything in the modern day world? As of now, we know that migration is a part of globalisation but mankind can’t seem to decide whether or not it is something that boosts our growth or hampers it. It seems that the potential benefits of migration outweigh the potential disadvantages but there is still ambiguity, mainly because of the word ‘potential.’ Migration, as of now, is an untested event on the global scale, some countries have prospered because of it and some countries have faced problems because of it but until migration and a system of open borders is tested out on a global scale, no one can say what migration is or what it will prove to be.

Cataclysm

And who are you, the proud lord said,

that I must bow so low?

Only a cat of a different coat, 

that’s all the truth I know.

In a coat of gold or a coat of red,

a lion still has claws,

and mine are long and sharp, my lord,

as long and sharp as yours.

And so he spoke, and so he spoke,

that lord of Castamere

And now the rains weep o’er his hall,

with no one there to hear

Yes now the rains weep o’er his hall

and not a soul to hear.

Many of you would recognize the poem above, it isn’t from a great literary work or from the writings of Shakespeare, no, it’s from the popular television series and novel, ‘Game of Thrones.’ In many ways, this poem serves as a comparison to the modern world. Humanity too stands proud, its achievements standing high behind it. Mankind is full of pride, and sometimes too much pride to admit that it is destroying itself. It fails to ‘bow down’ in front of the problems it is facing and has decided to present lies and falsehoods to the general public. Currently, mankind faces seven major problems, pessimistic social stereotypes, climate change, a refugee crisis, global terrorism, lack of innovation in the field of physics, lack of worldwide and literacy and perhaps the biggest one, denial.

“If you want to make the world a better place, take a look at yourself and make a change” – Michael Jackson

What is denial? Denial is when someone is facing a crisis and decides to think that the situation doesn’t exist, that it has been forged and is fake. Yes, ladies and gentlemen, we humans have a natural tendency to deny problems. Almost half of the population surely believe that Climate Change is just a small thing that doesn’t threaten anybody and the other half who do view it as a problem feel that we’re already countering it effectively or it is yet to impact humans on colossal scales. Denial is when you look the lion in the eye and force yourself to believe that it is a cat. Denial threatens to collapse the structures of humanity.

“The darkest places in hell are reserved for those who maintain their neutrality in times of moral crisis” – Dante

These problems may result in our species going extinct, they’re complex and require dynamic solutions. We can only fight climate change if countries stick together and we can only put an end to terrorism with decisive and strategic strikes. This may seem simple on paper but isn’t in reality. The modern world is full of political tensions and hidden agendas, but sometimes, countries come together to do something good once and for all. A stunning example of this is the International Space Station, an icon of collaboration and a place where people of different nationalities represent only one thing, Earth. It is human nature to not let go of your borders, to try and defeat your enemy and work with your allies but when humans and governments overcome that influence, the results are truly stunning. There are more instances littered through history, instances which experienced mankind banding together. When a species is faced with an extinction level problem, it has a natural urge to eliminate hostile tensions and react accordingly to the situation, it has to evolve or has to die.

Screen Shot 2018-07-22 at 9.58.48 PM.png

A major question that is littering the modern world is “What will be the next key evolutionary process for humans.” Evolution is the reason we exist, but it may also be the reason behind our extinction. Many people, including scientists and world leaders, are asking themselves whether or not the next evolutionary change will be natural or artificial, what if it is meant to be artificial and our lack of knowledge regarding it may be the reason behind our end. If we were to draw an analogy and term the Earth as the ‘host,’ we would instantly become the virus. The behaviour of our species is viral in nature. In order to better understand this fact, you need to comprehend a key fact, the dinosaurs lived for 66 million years, 330 times the amount of time humans have lived (humans have lived for a paltry 200,000 years). Despite living for a phenomenally long amount of time, the dinosaurs never brought life close to extinction purposefully, nor did they ever change the composition of the atmosphere and they never invented extremely dangerous weapons which could practically reform the face of the planet. Humans are like a virus due to their behaviour. If you had to sum up all of mankind’s history on this planet, it would be similar to the following lines

  1. Inhabited a host
  2. Established states, empires and borders and killed each other like no species ever before
  3. Replicated without order, exponentially, starved the host of its resources
  4. Altered natural conditions on the host,
  5. Getting prepared to leave it, at least making plans to spread to other hosts (Mars, the moon etc.)

Got this? A typical virus inhibits a host, devastates it and moves on and that is what we are doing. If we don’t alter our practices right now, we may never get to experience a binary sunset, we may never breathe in the air of a planet far, far away and we will never get to see movies such as ‘alien’ come to life.

The very existence of life requires destruction, our existence required the destruction of the dinosaurs. If we want to progress up the Kardashev scale and become an interstellar species, we have to destroy these problems, destroy tensions, destroy borders and truly become one.

If you ever think that your actions won’t be able to achieve anything, think about the world you will be creating for future generations, think about what is still out there, what mysteries are waiting for us in the dark expanses of space and with time, where will humans be.

Screen Shot 2018-07-22 at 10.08.29 PM.png

2018 FIFA World Cup

Group A: Russia, Saudi Arabia, Egypt, Uruguay

Uruguay emerges as the clear favourite, possessing experience on the big stage, decent results and a squad of players who’re fighters down to the bone. Many have called this group the ‘group of death by boredom’ which is true. These teams haven’t made their mark on international football yet they seem pretty equal on paper. The real battle here seems to be for second place. Russia looks like the favourite to finish behind Uruguay, they have the backing of the home crowd which in reality, is a pretty big factor. Thousands of people cheering you on does provide belief. Egypt and Saudi Arabia are not a bad bet either, however, Egypt’s chances will be greatly hampered if Mohammed Salah misses even a single game.

KEY MATCH: Egypt vs Russia

PLAYER WHO WILL SHINE: Mohammed Salah

PREDICTION: 1st – Uruguay, 2nd – Russia

Screen Shot 2018-06-13 at 10.42.22 PM

Group B: Portugal, Spain, Morocco, Iran

Spain is the nation to watch out for here, but could a Portuguese insurgency be underway? Only hours ago, Julen Lopetegui was sacked by the Spanish FA which means that with about 27 hours to go for the world cup, Spain has no coach. A new coach coming in just before the opening and perhaps most important match would surely mean some tactical changes, and can the team cope with those and still fulfil their expectations from this world cup. As for yesterday, Spain was one of the main contenders for the title but now, they seem pretty weak. The Spanish team was already being criticised for not having decent finishers up front and a stable midfield, now, they have no coach as well. Portugal, on the other hand, would look to finally exert some dominance over the globe after their European victory in 2016. Cristiano Ronaldo will probably be playing his last world cup and will want to sign off in style. Morocco and Iran also provide decent competition. Fun fact, Morocco didn’t concede even a single goal in African qualifying.

KEY MATCH: Portugal vs Spain

PLAYER WHO WILL SHINE: Medhi Benatia

PREDICTION: 1st – Portugal, 2nd – Morocco

YOUNG STAR: Marco Asensio

GROUP C: France, Australia, Peru, Denmark

This group looks easy enough for France and its speedsters. They are the clear-cut favourites in the group, and could perhaps even manage victories with the squad of players they’ve left back at home. An easy group seems to be ideal for allowing Mbappe to recover from his ankle injury and for Deschamps to finalise the squad for the knockout stage, Despite having perhaps the fastest team in the tournament, France look like they’re not going to go far. They will and should easily emerge out of the group round but Deschamps hasn’t been able to get his machine running yet. Australia too could perhaps alter the situation in the group with a draw or two but the real battle here seems to be between Peru and Denmark, both of whom would want to leave a lasting impression upon international football.

KEY MATCH: Peru vs Denmark

PLAYER WHO WILL SHINE: Christian Eriksen

PREDICTION: 1st – France, 2nd – Denmark

YOUNG STAR: Ousmane Dembele

GROUP D: Argentina, Iceland, Croatia, Nigeria

This is the real group of death. Iceland has become the sweetheart of world football following the 2016 European cup. Nigeria has attracted huge attention with the release of an astonishing kit and has also played some brilliant football in the last two years. Croatia looks ready to finally fulfil their potential with an amazing squad consisting of stars like Modric, Rakitic and Mandzukic. And then there’s Argentina, the country which has struggled on the international and lost three finals in three years. The Messi-Ronaldo era is coming to an end, and it seems that so is Argentinian football. They possess no measurable talent in the defensive positions with Otamendi being the lone rock at the heart of the defence, their midfield strength has diminished with injuries to Banega and Lanzini. Lo Celso cannot manage a midfield on his own. However, Argentina has perhaps the best front line in the tournament, which will surely be the only factor in their favour this summer.

KEY MATCH: Argentina vs Croatia

PLAYER WHO WILL SHINE: Lionel Messi

PREDICTION: 1st – Argentina, 2nd – Croatia

YOUNG PLAYER: Giovani Lo Celso

GROUP E: Brazil, Switzerland, Costa Rica, Serbia

This is perhaps the group of death because Switzerland, Costa Rica and Serbia will have to play against Brazil. Brazil is clearly the favourite for the world cup, with players like Neymar, Jesus, Willian, Costa, Fred, Firmino, Casemiro, Coutinho and Alisson. Brazil is in possession of an infinite amount of talent, loads of squad depth, pace, players who’re bursting with creativity, defensive solidarity and chemistry between the front line. If there’s anyone who can smash this tournament apart, its Brazil. They’ve worked hard to decrease their reliance on Neymar and this has made their squad even dangerous. Neymar was the best player in France this season, Coutinho shook apart Spain near the season’s end, Jesus has risen steadily to become a solid striker, Firmino has become a hitman for Liverpool, Alisson was perhaps the best goalkeeper in the Champions League this season and Costa and Casemiro were integral to the successes of their respective teams.

KEY MATCH: Switzerland vs Costa Rica

PLAYER WHO WILL SHINE: Neymar

PREDICTION: 1st – Brazil, 2nd – Switzerland

YOUNG PLAYER: Gabriel Jesus

Screen Shot 2018-06-13 at 10.47.15 PM.png

GROUP F – Germany, Mexico, Sweden, South Korea

The defending champions face a tough group. They will feel confident going into the tournament but each of the team in their group has the potential to cause an uproar. Mexico and Sweden did will in their qualifying groups, in fact, Sweden even knocked out both Holland and Italy whereas Mexico caused Chile’s downfall. South Korea is the surprise package in this group, they easily look like the overwhelming underdogs but are still a tough nut to crack. Germany will probably top the group, but for the defending champions, getting their squad right is more important heading into the knockout stages. Germany possesses a lot of talent and experience in midfield, but there is a lot of competition for a starting place in all positions, even the goalkeeper’s spot which is being contested for by Neuer and Ter Stegen.

KEY MATCH: Mexico vs Sweden

PLAYER WHO WILL SHINE: Toni Kroos

PREDICTION: 1st – Germany, 2nd – Sweden

YOUNG PLAYER: Emil Forsberg

Screen Shot 2018-06-13 at 10.47.30 PM

GROUP G – England, Belgium, Tunisia, Panama

The group which will host the most prominent group stage match, Belgium vs England. Both of these countries have fantastic squads but have failed to deliver at international tournaments for a long, long time. Belgium has a brilliant squad composed of stars like Eden Hazard, Kevin De Bruyne, Jan Vertonghen and Dries Mertens and England have got the likes of Harry Kane, Raheem Sterling, Marcus Rashford and Jordan Henderson. Tunisia and Panama too will look to challenge these sides and give them a run for their money ahead of the knockout stage. Ultimately, this group is an opportunity for England and Belgium to finally start playing like they should on paper, it won’t be a surprise if the group winner goes on till the quarters or perhaps even the semi-finals.

KEY MATCH: England vs Belgium

PLAYER WHO WILL SHINE: Kevin De Bruyne

PREDICTION: 1st – Belgium, 2nd – England

YOUNG PLAYER: Marcus Rashford

Screen Shot 2018-06-13 at 10.47.41 PM

GROUP H: Poland, Senegal, Colombia, Japan

Arguably the most competitive group in the tournament, each of these teams pose certain threats and have specific weaknesses and will certainly look to reach the quarter-finals, a feat many of them have managed in the past. Poland has Robert Lewandoski, the veteran hitman who has dragged Poland through the qualifiers and into the tournament, he is coming off a bad run of form at Bayern but has the backing of an entire nation. Senegal has Sadio Mane, the Liverpool Speedster who proved a point in the Champions League Final by covering up for Mohammed Salah (Oh! Karius!). Colombia has James Rodriguez, the best midfielder in the Bundesliga last season and a player who rose to fame because of his performances in the last world cup. Japan has Shinji Kagawa, the unsung hero of Dortmund. It will be interesting to see how this group shapes up, with one-man teams clashing against each other. One thing is for sure, we can see the winners of the group making it to the quarterfinals with enough dedication.

KEY MATCH: Poland vs Senegal

PLAYER WHO WILL SHINE: James Rodriguez

PREDICTION: 1st – Colombia, 2nd – Poland

YOUNG PLAYER: Piotr Zielinski

POTENTIAL WINNERS: In the end, it is going to boil down to either a Germany vs Brazil Final or a Brazil vs Spain final, and Brazil look like the team of the moment right now. Brazil is the only top nation who’ve looked convincing in their recent friendlies, winning 2-0 and 3-0 against Croatia and Austria respectively. Spain, on the other hand, struggled to a 1-0 victory against Tunisia and drew against Switzerland. Germany too struggled to a 2-1 victory against Saudi Arabia and lost 1-2 against Austria in a dismal outing. France is having problems with their selection, Argentina is out of form and has a number of key players out injured, Belgium has never performed well in big tournaments and we’re not even going to talk about England. Thus, our choice for the potential champion is Tite’s Brazil.

BEST PLAYER: Neymar, easily Neymar. Salah was born in the wrong country, so was Ronaldo so you can rule those two out. Messi has dragged Argentina into the tournament but we all know that he won’t get any further unless Sampaoli doesn’t make the squad click. Neymar, on the other hand, is the creative spark in Brazil, the guy who can leave an entire defence on the floor and nutmeg the keeper, A guy who can score off free kicks, a guy who picks out teammates while defying the laws of physics. Had it not been for his injury, Neymar could’ve been a contender for the Ballon D’Or, PSG might’ve even defeated Real in the Round of 16. We’ve got to hand this over to Neymar.

Screen Shot 2018-06-13 at 10.48.19 PM

BREAKOUT YOUNGSTER: There are many people contending for this one, Los Celso, Jesus, Mbappe, Dembele, Asensio and many more. Hours ago, this one would’ve definitely gone to Mbappe but an unfortunate training injury is set to spoil his group stage matches. Now, this has swung in favour of Gabriel Jesus, the youngest ever to captain Brazil. Jesus has the calmness and composure of a great striker, his finishing is extremely accurate and he can link up with the wingers and the midfield. He is good at 1 on 1s and also has enough pace to trouble defenders. Also, he is a player who is currently keeping Firmino out of the squad, a player who was the backbone of Liverpool’s build-up this season.

SURPRISE PACKAGE: Sweden has the right to this category, even though they’ve knocked out Both Netherlands (2014 semi-finalist, 2010 runner-up) and Italy (2006 winners), many people rate Sweden as a team who might not even make it out of group stage. They might be the surprise package, perhaps the Iceland of the world cup. Honestly, I can see them in the quarter-finals or even the semi-finals.

Screen Shot 2018-06-13 at 10.48.46 PM

SURPRISE EXIT: To be honest, this looks like the fate in store for Argentina. They lost to almost all of the teams once in Latin American Qualification and to Nigeria and Spain in recent friendlies, If Croatia wakes up, Argentina will have no chance. They already struggle against Nigeria year upon year and might even draw against Iceland. This doesn’t look like Messi’s year.

Competition Creates Efficiency

‘Competition everywhere, but it seems that now, it has escalated onto an unimaginable scale, yes, there now exists competition between private firms for reaching Mars, something that would’ve been deemed fantasy a decade ago.

Screen Shot 2018-05-05 at 2.42.04 PM

First, let’s talk about SpaceX, a private venture by revolutionist Elon Musk, it was deemed a sure-to-be failure sixteen years ago by investors and economists alike but it is now the biggest non-state contractor for delivering satellites and machinery to space along with cargo shipments to the International Space Station. SpaceX, for nominal society, was a huge step in the ‘impossible’ direction, people around the world asked the same question, “How can someone just start a space company, I mean, A SPACE COMPANY?” The answer is pretty simple, the Elon Musk way, he is not just a pioneer in space, but in the entire private sector, he has already redefined what ‘impossible’ is and seems like he will continue to do so. The single factor that makes SpaceX so appealing is rocket reusability, which has already saved tons of resources, money and assets. Rocket Reusability too was a much-criticised idea, it was considered impractical and too complex, today, rocket reusability IS space exploration.

“If Humanity doesn’t land on Mars during my lifetime, I would be very dissapointed” – SpaceX and Tesla Founder, Elon Musk

SpaceX perhaps, may be the best bet for reaching Mars, it was founded for the purpose of ‘enabling people to live on other planets’ and Elon Musk has also stated that on the scale of evolution, mankind becoming an inter-planetary species may yet be the biggest step we have to take. Reaching Mars isn’t just a scientific and historical achievement, it is the first step to becoming a type II civilization on the kardishev scale.

Screen Shot 2018-05-05 at 2.42.19 PM

lets come to the company responsible for the title of this post and Elon Musk’s sudden increase in working hours, Blue Origin, founded by Jeff Bezos, who, unlike Elon Musk, established his spacecraft manufacturing company with prior experience in the business world, in fact, he’s the founder of Amazon as well. Jeff Bezos clearly invites more social power than Musk, he is already running a business that has become the leading face in worldwide shopping and global delivery. Blue Origin too is a campaigner of rocket reusability, and its getting attention too, its rockets have been termed as having the better structural design.

“I knew that if I failed, I wouldn’t regret that but I knew the one thing I might regret is not trying” – Amazon and Blue Origin Founder, Jeff Bezos

NASA too plays a huge role in this, just moments ago, it launched the InSight lander which will aim to uncover details about earthquakes on Mars or marsquakes. The lander will provide crucial information about the red planet and may even help to assist us in understanding how it formed and how its structure evolved over the years to become the harsh, rocky terrain it is now. The rover will also uncover the composition of the mantle and core through recording the waves that pass through them, which will answer a great mystery, does Mars have a liquid or solid core? NASA is certainly the face of space exploration in the modern world, but it will be interesting to see how it works under a new administrator who has previously stated that Global Warming is a hoax (Doesn’t he know about Venus?).

Screen Shot 2018-05-05 at 2.43.06 PM

Now, it is also mandatory to bring up companies such as Virgin Galactic. Virgin Galactic too, till a certain extent, is a competitor in the aerospace industry but it has other aims, while Blue Origin and SpaceX ultimately aim at reaching Mars (Hopefully, for now!), Virgin Galactic only aims at conducting sub-orbital flights.

“Mars is there, waiting to be reached” – former NASA Astronaut and second man to step on the moon, Buzz Aldrin

These companies have already evolved into giants, and are marked to be the first ones to carry humans into the depths of our solar system. The first frontier they must conquer is reaching Mars, the red planet. Musk, Bezos and NASA agree upon colonizing Mars, but that is far away, what makes Mars so inhospitable and forbidding? First of all, Mars is really far away and with distance, unpredictability and chaos increase, that is, the number of things that can go wrong increase. Then, it is also about the limitations of spacecraft, current Mars spacecraft carry less than one-tenth the minimum weight of a human voyage. Also, a spacecraft to Mars must also have the potential to get to Mars, land on the surface (after travelling through an atmosphere 10 times rougher than Earth’s), take off from the surface and get back to Earth and throughout this whole journey, must keep its inhabitants alive in space, sounds like a challenge? Then, Mars, as a terrestrial planet also poses a huge challenge, its covered in storms and craters and valleys and no part of it is safe, water can only be found in the deepest and darkest of places and the temperature there fluctuates a lot, from enough to boil you to enough to freeze you. Even in a single thing goes wrong, the whole mission is compromised (As ‘The Martian’ clearly indicated). Then, don’t forget the fact that going to Mars is a ten-year process, seven years of building, preparation, planning and analysing and three years for the mission and the journey combined. Mankind is bound to reach new frontiers in another decade, and by the time we step foot on Mars, NASA may have Jupiter’s moons in its sights (Europa looks beautiful right now, trust me).