Home Blog

Twitter Cheers Croatian police’s Dance in time of Corona Virus

0
Corona Dance
Corona Dance

Croatia saw a lift in spirit when 2 Croatian traffic police engaged in a dance on a hit tune. The Ministry of the Interior of the Republic of Croatia posted the clip on Twitter and it quickly became viral.

“And so… the earthquake wounded us, the coronavirus is breaking us, but our spirit … Well, that is unbreakable. We are calling on all unbreakable spirits to retaliate,” MUP wrote on Twitter, wishing everyone a Happy Easter with a message to stay home. 

“And so… the earthquake wounded us, the coronavirus is breaking us, but our spirit … Well, that is unbreakable. We are calling on all unbreakable spirits to retaliate,”

5 Line Code to Easily Reverse a Word in Python

0
python stack

This is a common interview question in many python basic or intermediate positions, where the interviewer asks to reverse a word using python code. I was playing with data structures and algorithms in Python while it came to my mind. This is a rudimentary implementation of stack in any language. A primary function of stack data structure in putting a new element on the top of a stack and removing it. If I want to get the first item of the stack, it is called Fist In First Out or FIFO and if I want the last item out of the stack, it is known as Last In First Out or LIFO.

The idea to reverse a word uses the LIFO concept of stack operation. So, we insert the word in a list, and then pop them out in LIFO fashion to get an inverted or reverse list. Below is the python string program to do the same.

I create a function which accepts a string and cast it to a list. I handle the exception if someone misses entering a string (which is an additional line and optional). I then loop through the length of the string to pop the contents of the list in reverse fashion (the pop itself is a reverse function, so the statement is for your understanding only.

def rev(str):
    spl = list(str)  # Type cast the string in a list
    i = len(spl)     # take the length of the string
    if i ==0:
        print('You have not entered a word!')
    while i!=0:
        print(spl.pop())
        i = i -1     # count down 

So, here is the output looks like –

rev
Output of reverse function

Hope this helps you. If you want to learn more about stack data structure, here is an useful link.

How to do JSON Data Modelling – A quick guide for RDBMS Data Modellers

0
JSON data model itcoolie.in

JSON data modelling is a bit different from conventional data modelling, but the concepts remain the same. In course of my work as a data modeller, I have done JSON data modelling as well. In this article, I wanted to demonstrate some data modelling concepts which can be translated to JSON modelling and vice-versa.

This is not an elaborate JSON data modelling article. If you are an IT Coolie like me and want to quickly know how to do JSON data modelling and map it to conventional RDBMS data modelling using entities and attributes, this article provides a quick peek and tries to make you comfortable in JSON modelling. This is a cheat sheet for JSON data modelling.

Defining and Entity and Attribute

In the Below diagram you can see a simple entity A is declared which have 3 attributes. A1 is defined as PK.

A
Entity A with 3 varchar attributes

Following is a JSON representation of Entity ‘A’ in JSON.

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "A.json",
	"description": "A test table in JSON Schema",
	"additionalProperties": false,
	"properties": {
		"A": {
			"A1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"A2": {
				"type": "string",
				"maxLength": 36
			},
			"A3": {
				"type": "string",
				"maxLength": 36
			}
		},
		"required": [
			"A1"
		]
	}
}

You don’t have to declare the “maxLength” keyword if you have “type”: “integer”. Notice that I have marked the attribute ‘A1’ as the primary key. If you have candidate keys or not null columns, you can declare them under the “required” keyword. This is an array and can take multiple values, separated by comma (e.g. “required”: [“X1”, “X2”]. Since I have already declared A1 as the primary key, I did not need to add this keyword. This is for example purpose only.

I can declare other validations as well in the schema, such as “pattern”, “minLength” as well. For a full reference, please visit here.

One-to-Many Relationship

As per the below picture, I have 2 entities A and B and a one-to-many relationship. There are couple of ways to represent the same in JSON.

1M rel
1:M relationship in RDBMS

Nested Schema

Following is an example of representing entity B as an array nested in entity A. This is very important to understand. An array can hold many instances of the data. So, by declaring the entity B as an array, we are essentially defining that one instance of A can have multiple instances of B.

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "ARel.json",
	"additionalProperties": false,
	"properties": {
		"A": {
			"A1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"A2": {
				"type": "string",
				"maxLength": 36
			},
			"A3": {
				"type": "string",
				"maxLength": 36
			},
			"B": {
				"type": "array",
				"additionalItems": true,
				"uniqueItems": false,
				"items": {
					"B1": {
						"type": "string",
						"maxLength": 36,
						"primaryKey": true
					},
					"B2": {
						"type": "string",
						"maxLength": 36
					}
				}
			}
		},
		"required": [
			"A1"
		]
	}
}

Referencing Outside of the JSON Schema

This kind of declaration is a bit advanced form, but functionally the same. We can declare B in another JSON schema and call it in the ‘A’ schema. This is used where B has multiple relationships attached to it and you don’t want to write so many lines of same code (reusability). It is also used where the schema is volatile, and you want to change in one place and don’t want to touch multiple files (write-once-refer-many).

In this example, I create a JSON file to hold such common entities like below –

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "CommonEntities.json",
	"description": " This JSON Schema holds reusable entities shared by multiple entities",
	"additionalProperties": false,
	"properties": {
		"B": {
		
			"B1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"B2": {
				"type": "string",
				"maxLength": 36
			}
		},
		"required": [
			"B1"
		]
	}
}	

And I reference the entity B under the “properties” keyword like below –

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "ARel.json",
	"additionalProperties": false,
	"properties": {
		"A": {
			"A1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"A2": {
				"type": "string",
				"maxLength": 36
			},
			"A3": {
				"type": "string",
				"maxLength": 36
			},
			"BArray": {
				"type": "array",
				"additionalItems": true,
				"uniqueItems": false,
				"items": {
					"$ref": "CommonEntities.json#/properties/B"
				}
			},
			"required": [
				"A1"
			]
		}
	}
}

One-to-One Relationship

The one-to-one relationship says that entity A can have only one instance of entity B linked to it. So, we just change the “type” keyword from “array” to “object”. An “object” can only have one instance.

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "ARel.json",
	"additionalProperties": false,
	"properties": {
		"A": {
			"A1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"A2": {
				"type": "string",
				"maxLength": 36
			},
			"A3": {
				"type": "string",
				"maxLength": 36
			},
			"B": {
				"type": "object",
				"additionalItems": true,
				"uniqueItems": false,
				"items": {
					"B1": {
						"type": "string",
						"maxLength": 36,
						"primaryKey": true
					},
					"B2": {
						"type": "string",
						"maxLength": 36
					}
				}
			}
		},
		"required": [
			"A1"
		]
	}
}

The nesting and referencing technique described above, still holds good here.

Many-to-Many relationship

If you understand the 1:M and 1:1 relationship, you can pretty well guess the M:N. If you have time, I urge you to pause here and think about how it can be represented.

MN rel
M:N Relationship in RDBMS

As per the E-R diagram, A-B is a 1:M relationship. So, we have to declare an array of B under A. B-C is a M:1 relationship. So, B should have a nested object of C inside it. So, it should look something like below –

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"title": "ABCRel.json",
	"additionalProperties": false,
	"properties": {
		"A" : {
			"A1": {
				"type": "string",
				"maxLength": 36,
				"primaryKey": true
			},
			"A2": {
				"type": "string",
				"maxLength": 36
			},
			"A3": {
				"type": "string",
				"maxLength": 36
			},
			"B": {
				"type": "array",
				"additionalItems": true,
				"uniqueItems": false,
				"items": {
					"B1": {
						"type": "string",
						"maxLength": 36,
						"primaryKey": true
					},
					"B2": {
						"type": "string",
						"maxLength": 36
					}
				},
			"C": {
				"type": "object",
				"additionalItems": true,
				"uniqueItems": false,
				"items": {
					"C1": {
						"type": "string",
						"maxLength": 36,
						"primaryKey": true
					},
					"C2": {
						"type": "string",
						"maxLength": 36
					}
				}
			}
		},	
		"required": [
			"A1"
		]
		}
	}	
}

Tip 1: While you are modelling a table into JSON schema, try to follow the standard data modelling concepts and principles. Don’t let the flat structure of JSON deceive you to only create flat JSON schema. e.g. if you are modelling a financial transaction table, then you might have actual amount, tax amount, agent fees and bank charges, provided in different geographical location or currencies (e.g. UK Tax Amount, US Tax Amount, Dollar Amount, GBP amount etc.) In a standard modelling technique, you would create 1:M tables for Tax, Charge, Fee etc. You should also create arrays rather than include them all in one flat JSON structure.

Tip 2: Using JSON schema to define data model is tricky with all those commas and brackets. Use an online JSON validator like https://jsonlint.com/. All the above JSON schema are validated using JSONLint.

Please let me know in the comment section if this helped you to get a rudimentary understanding of JSON data modelling and whether you want some specific items to cover.

How to Create a Vlookup With Duplicate Values in Python Using Pandas

2
itcoolie.in

I encountered the problem in my recent project where I was given 2 huge spreadsheets to find out the attributes in each entity. This was a data modeling supplemental exercise where I had to list down the entities where the attribute belong. The first thing which came to my mind was VLookup, but I was told that there are duplicate values. For example, Party ID attribute may reside in both Party entity and Customer entity and since Excel VLookup only returns the first value, it could not be applied.

I created a custom macro and automate it anyway, but during my journey on learning Python, I thought whether I can solve the problem using Python, NumPy and Pandas. Let me break it down to problem statement, data sample and solution.

Problem Statement

The data sample looks like the following. Notice that I have master data on the left and sales figures on right. Bhaskar has 2 sales and the normal VLookup function will not yield this. Hence I have to use a customized macro in excel or a Python code. My output should look like below.

Thought Process and Solution

This was clear on my mind that I need to merge the 2 sheets after I capture them in DataFrames. But merging them would give me 2 separate rows, and not a comma-separated value. So, the first part was easy till now –

df1 = pd.read_excel('vlookupEx.xlsx',sheet_name='Sheet1')
df2 = pd.read_excel('vlookupEx.xlsx',sheet_name='Sheet2')
df3 = pd.merge(df1, df2, how ='inner', on ='Name')
df3

The thought process now is how my brain perceives this information and arrange in comma-separated format. So, I see the first column ‘Name’ and try to find out whether there are other instances. If there are other instances, then I append it in the same row I have in the first instance with a comma.

In Python terms, I have to create a list of dictionaries. where the key will be ‘Name’ and Value will be ‘Sales’. I then have iterate the list to find whether I have the key. If I don’t have the key, then I insert it in a new dictionary. If I already have the key, then I append the value in the existing key, separated by a comma.

Dict:dict={} # Create a new dictionary
List:list=[] # Create a new list
for item in pdx.itertuples():
    List.append({item[1]:str(item[3])}) # For each item in the DataFrame, create a list of dictionaries

List # Call the list and see the output -
# [{'Bhaskar': '100'}, {'Bhaskar': '400'}, {'Sutapa': '200'}, {'Binoy': '426'}]

Now comes the tricky part. I create an empty dictionary Output and then take the first item of the list, which is a dictionary. Then I take the first item of the list and check for existence. If it’s not found then goes to the else block and I add it in the dictionary. If it is found then it goes in the if block and I append it with a comma to the value of the list. The below picture shows a step-by-step representation with print.

Final output
Step-by-step iteration result

So my programming work is done. I have managed to get the output I require. The next step would be putting this dictionary in a DataFrame and merging it back with my df3 DataFrame. Once that is done, I have to do some deduplication and formatting before I put it back as an excel output.

excel op

dfOp=pd.DataFrame(Output,index=[0])
dfOp=dfOp.T
dfOp=dfOp.reset_index()
dfOp=dfOp.rename(columns={'index': "Name"})
finalOutput=pd.merge(dfOp, df3, how ='inner', on ='Name')
finalOutput.drop_duplicates(subset=['Name'],inplace=True) # Inner join returns 2 rows for 'Bhaskar'. So removing duplicate
finalOutput.drop('Sales', axis = 1, inplace = True) # I finally don't need the sales as it is already consolidated
finalOutput.to_excel('vlookupOp.xlsx',sheet_name='Sheet1')

Conclusion

This problem kept me awake for couple of nights! At my level as Python programmer, it wasn’t easy unless my friend and colleague, the ‘Code Wiz’ Arghyadeep Chaudhury did not direct me to the right direction.

There are certain outliers to this solution. The code does not consider any strikethrough or color-coded columns in excel which are marked for omission. These can be captured and excluded in an excel function, but not in Python.

I think there must be some easy solution to it. If you have a better, elegant, alternate solution, please leave a message in the comment box below.

How to Build Technical Eminence

1

Nowadays, technical eminence is one of the hot topics in discussion in all forward-thinking companies. you might wonder what technical eminence is and whether you should start thinking about having something that fancy! well, this article tries to provide you with an understanding and a roadmap toward technical eminence.

What is Technical Eminence?

Technical eminence simply means the ability to be distinguished, to stand-out from the crowd. This is achieved by accumulating and sharing a currency, called value. To put in layman’s terms, technical eminence is the technical value you create as a professional.

The value which you create should not be hoarded by yourself. As you earn money and invest them in various plans to make them grow, you must invest your technical value in different forums to let people know your value.

since I am talking from a professional’s angle, I shall extend the definition to some social values as well to create a 360⁰ view of the persona.   

As a professional, you have to divide your focus into broad 2 categories. Those are ‘Inside the company’ and ‘Outside the company’. Depending upon your level, exposure, and years of experience, some opportunities might not be available to you, but keep an eye for them and jump on the first opportunity.

Literally, the word eminence means the quality of standing out. In our context, it means the quality of standing out in your profession. To be eminent means to be, and to be recognized as, among the best.

De Piante, J. (2013). Eminence, why you want it and how to achieve it. Paper presented at PMI® Global Congress 2013—North America, New Orleans, LA. Newtown Square, PA: Project Management Institute.

Prepare yourself

I have already compared value as a currency. To start your investment program, you need seed money. In this article, that currency is your technical knowledge. You must possess some technical knowledge that is valuable to others, or you must learn some. This is the preparation stage. I know some of you might not be in a challenging project, might be stuck in some boring work, but convert that to opportunity. If it is boring, then learn something new, if it’s repetitive, then think about automation. if your job doesn’t challenge you then learn a new skill. once you have the currency to trade, then start looking for the following opportunities.

Building Eminence Inside your Organization

In this section, we will focus on what you can do inside your organization. Most of the top-tier companies will have some level of scope for these opportunities. If your company don’t have, then ask your manager about them. Put the idea on their head so they can also present the idea to their senior management. Raise your voice in the company’s town hall/all-hand meeting. Ask how you can build your technical eminence inside the organization and what ways the company can support you. Don’t be afraid. Organizations love those who show initiative.

Organize/Participate in Brown Bag Sessions

Brown bag aka lunch and learn sessions are very common in the companies. Generally, they are organized in small groups, often among your project teams. If there is a problem faces by multiple team members or teams and someone creates a solution, then they are encouraged to share them in these lunch sessions. If you have solved such a problem or created a policy or procedure, then ask your team lead/project manager to organize a session. It might be a team meeting as well.

This is the time when your name is recognized across teams.

Help Colleagues

You know something which your friend does not. Help him out. Remember, there will be something which your friend knows but you don’t. Helping him today earns you a brownie point for tomorrow.  Aim for different internal forums, slack channels, and subscribe. Check the questions posted and try to find a solution. Post them. This is your chance to get recognized outside your project.

 Participate in Tech-Talks, Codefests

There are often tech-talks or code fests organized by your company. These are company-wide programs and are a great way to contribute. the leaders are always looking for fresh faces and are a great exposure for you to make your name known to the big shots. Build an app, automate a process, or project savings in $ value and you can win an award for yourself. You also get to meet with some great minds which will take you far.

Get Certified

Companies are now very much focused on certifications. Prepare for a certification and get yourself certified. You can also organize a brown-bag session to help people know how you succeeded, so they can get the certification as well. You thus cover points 1 and 2 as well!

Building Eminence Outside the Organization

Thus far, we have talked about you can build your technical persona inside the organization. Let us now discuss your presence in the outside world. These two should go together and you should try to build your eminence simultaneously.

Social Presence

Social presence is the most easily accessible representation of yourself. if you have heard a name, you can search on Facebook, Twitter, etc to instantly find her and get to know what kinds of posts or tweets he does. When I sit for an internal interview, I almost always search LinkedIn to find the interviewer’s interests and try to gauge the technical reach. This helps me create the first impression of my interviewer and it has helped me always.

Post your success stories in LinkedIn, share interesting articles, engage with others. Wite a well thought out bio of yourself. Showcase your interests and achievements.

A note of caution here. Do not post controversial and confidential company information. Exposing confidential company information is a violation of business conduct guidelines and may result in the termination of your job. So, be responsible and aware.

Create a GitHub Page

In recent times, companies are more interested in what you have done than what you have to say. Can you walk the walk? A smart way to build your technical eminence is to create a GitHub page and put your codes over there. You can also put your achievements there. This is searchable and a great way to get noticed when someone searches the internet with your name. You can also forward the page link to interviewers who can pull the code you have written and can build an immediate positive persona.

Write Articles to External Websites and Forums

Showcase what you have done to the whole world. This is a great way to build a rep. I remember writing a couple of articles when I had only 3 years of experience and since those were experience-driven, it generated fabulous feedback. If you are reading this article and have some articles in mind, please comment below. I want to return the favor I received a long time back and I shall share your article here.

Patent an Idea

The holy grail of technical eminence is having a patent on your name. Talk to your leaders and search the internet on what can be patented. If you have the right idea, your organization will help you start the patent process. Most organizations have some review committees and groups to help you with this. Remember that a chair with an armrest or a chair with wheels underneath was also an idea that got patented.

Conclusion

I have mentioned some steps which help you build your technical eminence or value in this digital world. There are several other ways that can do the same, but if you are an IT coolie such as me, these are the most common ways. Remember, when you build your eminence, your company benefits as well. It is a win-win situation and will help you in the long run as you help mankind.

Why are Job Interviews Important?

0
itcoolie.in

Sometimes I like to go back to basics and ask the fundamental questions to myself. Being part of the hiring team of my organization for more than a decade and half, I thought I should answer this basic question. Does job interviews work? Is there a scientific explanation of the hiring process? Do we follow up on our hires to understand whether they are doing well in the organization or moving to greener pastures?

First Impression

I work in a consultancy/services firm. Most of our work requires us to interact with several clients across geographies. Sometimes the interactions are face-to-face and sometimes over the phone. I look for a person who is likeable at first 5-10 minutes. This is a vibe you get while discussing with a person. If the candidate is likeable or there is no obvious reason not to like the person, then the candidate passes the first litmus test. Remember, the candidate is often the face of the company. If he is obnoxious, then there might be a big problem with the client which takes lot of effort to fix.

Working Under Pressure

Every candidate comes for a job interview to succeed. The mode of success differs. Some candidates tend to agree to whatever the interviewer says. Some people show their personality to shock and awe the interviewer, and some are basically good-natured, balanced person. Apart from the basic nature, I like to see them working under pressure. I deliberately give them some unsolvable problem or lose-lose scenario and ask them to choose. These situations tend to show the real person underneath. There are more than one way to solve a problem. Some candidate becomes aggressive, some become defensive and some turns out to be passive. I remember in some workshop which I attended, the teacher asked us to put different client personas in a scale from 1, 5, and 10. One of the chaps marked a persona between 5 and 10, where there was no marker, and said humans can be unpredictable! I am hoping to find a guy like that!

General Traits for a Good Hire

When I hire a candidate, I am looking for a candidate who will stay with the organization. I have a fair idea about what my organization can provide and my goal is to hire a person who is a match for the organization. If the person is good with technical skills, can learn or has demonstrated eagerness in learning new skills, can deliver under pressure, and contribute to the organization, then I know for sure that the person will grow in the company as well. The growth opportunities will be open to the candidate which will tend to make them stay longer. It’s a mutual win-win!

dept of labor

“the price of a bad hire is at least 30% of the employee’s first-year earnings. This monetary loss is comprised of a number of elements, including costs associated with recruitment, relocation, training, and litigation fees (in a worst-case scenario).”

U.S. DEPARTMENT OF LABOR

Following Up with the Manager

Not all of my decisions are right, and I would like to learn from my mistakes. Generally 10% of new hires are identified as hiring mistakes and let go. There is a 6 months’ probation period and I would like to have a touch point with the new hire’s manager to understand how is he doing.  If I am very wrong, I would like to think back and evaluate my notes about the candidate. I try to find out any correlation between what I have measured and how the person is performing in her new role. This helps my understanding and advances my knowledge as well.

Conclusion

We started the article by asking whether the interviews work. The answer which I deduced is the interviews provide us with a quick window to the candidate in terms of engagement, challenges and pressure. These are the daily things we face in our life and we can quickly check whether they fit in the organization and can grow with the company. So interviews, however changed the process, are still essential for choosing the right candidate.

Python Data Structure Cheat Sheet – List

0

Python Data Structures

Data Structure means how to organize and store data efficiently So it’s easier to access and modify them in ease.

Lists in Python

A list is a heterogeneous container for items. They are used to store multiple items in a variable. This is a built-in data type in Python.

Properties of a Python List

This is important to understand the properties of a collection type because it provides the developer with the understanding of what can be done using this type.

The list items are Ordered, Changeable and allows having duplicate values.

Python List Cheat Sheet

Examples covered in this cheat sheet –

  • Declaring a Python list
  • Assigning a list to a variable
  • Appending an item to the list using index
  • Accessing a single item from a list using index
  • Slicing a list
  • Reassigning an item to the list
  • Nested lists
  • Accessing a nested item in a list

Examples of List Properties and Methods

Below are some examples which you can copy paste in Jupyter Notebook or any other Python IDE and see the results. These are the same codes which are shown above.

[1,2,3] # Declaring a Python list
['hi',1,[1,2]] # Can contain numbers, float and characters
my_list = ['a','b','c']  # Assigning a list to a variable
my_list.append('d') # Appending an item to the list using index
my_list[0] # Accessing a single item from a list using index
my_list[1:]  # Slicing a list
my_list[:1] # Slicing a list
my_list[0] = 'NEW'  # Reassigning an item
nest = [1,2,3,[4,5,['target']]]  # Nested list
nest[3]  # Accessing a nested item (step 1)
nest[3][2]  # Accessing a nested item (step 2)
nest[3][2][0]  # Accessing a nested item (step 3)

Learning Python – My Journey to the Mysterious World

0

I have been in the industry for more than 17 years now! I know I am kind of old to start something new. You may picture me as an old manager who slumps on his desk looking at project management charts and reports. Someone who tries to boss every member of the team and does not have any inkling of what’s going in the project.

Well, I had the same notion growing up in the industry and vouched I would never be that guy. So I am still technical, doing one thing or other, contributing to the project and careful not to be an overhead.

All my years, I had been in data projects, and still doing architecture, data modelling, development or combining the roles above along with leading a team or a project. I have recently done my AWS solution architect certification last year, during the pandemic. This year, my focus is on learning Python!

I have starting and going with Python for last 4 years, but never able to complete. I generally stop after completing basics, like string, numbers, and data types. This is because of various project priorities take my focus away, but I always had a soft corner for it and imagine myself writing code which does something meaningful. Coming from data background, I did not have any exposure to write complex code other than few stored procedure and SQL syntaxes.

I am now in a project which I managed to take control of. I have some leeway and free time. Hence, I want to complete my journey of python, and want to extend the knowledge to data science and machine learning.

My goal is to use python to automate day-to-day work, however mundane they may look like and gradually get into a position where I can automate or create new and creative ways to use python.

This series of blog entries are meant for documenting my journey through the magical world of python and share my thoughts and ideas.

Thanks for reading!

AWS-S3 Encryption – Things You Must Know Before Taking Developer or Associate Exam

0
Amazon Web Services Encryption
Amazon Web Services Encryption

AWS S3 encryption might be an easy subject for many of you. The modes of encryption are fairly easy to understand and most of you would not take another glance at it. You might want to spend your time and effort in more important areas like networking and VPS, but there are things you must understand before appearing for your AWS exam. Not paying attention to the nature and impact of encryption might result in wrong answer.

Mode of AWS questions

If you have appeared for  our AWS Exams before, or taken our demo exams, you might notice some patterns to the questions asked in AWS.

They are lengthy in nature. They will provide you a situation, ask you a to solve a problem and provide a hint of the answer they are looking for. Now, a problem can be solved in many different ways, but constraining it to focus on a hint will greatly reduce the options. Hence you have to understand the nuances and hints to make sure you select the correct answer.

Let me give you couple of examples from the now retired version of the exam –

A company’s policy requires that all data stored in Amazon S3 is encrypted. The company wants to use the option with the least overhead and does not want to manage any encryption keys.
Which of the following options will meet the company’s requirements?
A.   AWS CloudHSM
B.   AWS Trusted Advisor
C.   Server Side Encryption (SSE-S3)
D.   Server Side Encryption (SSE-KMS)

Underlined ones are the hint which will determine the answer. This is easy and the answer would obviously be C.

Following is a more difficult question to answer –

A company is evaluating Amazon S3 as a data storage solution for their daily analyst reports. The company has implemented stringent requirements concerning the security of the data at rest. Specifically, the CISO asked for the use of envelope encryption with separate permissions for the use of an envelope key, automated rotation of the encryption keys, and visibility into when an encryption key was used and by whom.
Which steps should a Solutions Architect take to satisfy the security requirements requested by the CISO

A.   Create an Amazon S3 bucket to store the reports and use Server-Side Encryption with Customer-Provided Keys (SSE-C).

B.   Create an Amazon S3 bucket to store the reports and use Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3).

C.   Create an Amazon S3 bucket to store the reports and use Server-Side Encryption with AWS KMS-Managed Keys (SSE-KMS).

D.   Create an Amazon S3 bucket to store the reports and use Amazon s3 versioning with Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3).

In the above question, there are several cues were given.

  • Data at rest means encryption would not be SSL/TLS
  •  Envelope key, automated rotation etc means client will provide the encryption keys
  • Visibility of keys used means audit capability

So, summing up all the above hints, we see that the encryption can happen on server side, but the key would be managed in client side. Hence the best answer would be C.

Strategy to Always Answer Correctly – AWS Encryption Cheat-Sheet

 I have created the following cheat sheet when I appeared for my AWS exam. It served me well and I am sharing this with you. I think this will help you identify the hints and answer them correctly.<a href=”https://plus.google.com/url?q=https://www.itcoolie.in/”>AWS Courses</a>

AWS-S3 Encryption

Things you must know before appearing Amazon AWS proctored exams 2020

0
Things you must know before appearing Amazon AWS proctored exams 2020
Things you must know before appearing Amazon AWS proctored exams 2020 - ITCoolie.in

Things you must know before appearing Amazon AWS proctored
exams 2020

Due to COVID-19 restrictions and lockdown, Amazon Web Services is offering ‘Test-From-Home’ facilities to the candidates. Since most of the testing centers are closed due to lockdown, it is very helpful to sit at the comfort of your home and take the test, but there are certain things that you must know to successfully complete the exams. Here in this article, I shall discuss some tips which you will find helpful.

Update 1: The lockdown has been lifted from most of the cities and the testing centers are now mostly open. The proctored exams, however, are still available and you may want to choose between taking the test from home or a testing center.

Scheduling the exam

Once you create an account in https://aws.amazon.com/certification, you can schedule a new exam from ‘schedule new Exam’ button. Clicking it will take you to the ‘Upcoming Exam’ tab where you can search and schedule your test. Be very careful here to choose the correct test, because there might be multiple tests on the same certificate (retiring and new). Check the exam code carefully before selecting the exam.

Amazon Web Services Upcoming Exam - ITCoolie.in

Once you select the exam, you would be given an option to take it from an local test center or from home or office. Selecting the home/office option will ask you to do a compatibility check of your system.

Technical Compatibility Check

The compatibility check or system check will start checking your computer’s microphone, internet speed and webcam. If you are planning to take the test from a desktop, make sure you have a webcam attached to it. Once these preliminary technical tests are done, you will be taken through the procedure and asked to pay for the exam. There are certain policies which needs to be checked and generally we ignore, but in this case, we need to talk about those.

You need to show a Government issued ID card before taking the exam

Make sure you have a driver’s license or passport handy with you before taking the exam. The picture should match with your face. Amazon claims to have state-of-the-art facial recognition program which can track and match the candidate and the image, so my recommendation is to show the passport as your ID.

Your home/office desk and periphery should be at par with the requirements

You must keep the following in mind before you start the proctored exam. Not having the standard room arrangement may result in delay in your exam or even cancelling the exam. Your exam proctor will scrutinize the workspace before start of the exam.

  • You have to take photos of front, back, left and right side of your desk and submit in the app. For this, the best option is to use mobile phone to take snaps of yourself, ID card and surroundings. So, keep your mobile handy till this step.
  • No books, notepads, pens or any reading/writing material should be in the workspace.
  • Headphones, mobiles or any electronic gadgets other than workstation should not be present.
  • There should be only 1 monitor. Multiple monitors are prohibited.
  • No drinks/foods are allowed. So, get rid of that water bottle.

Basically, make sure you have 1 desk and 1 computer and nothing else in your vicinity.

Physical or audible Presence of any third-party will result in termination of the test

There should not be anyone present in the room or entering the room while the test is in progress. Please ask your family members not to come to your room or call you during the exam. These are valid reason for your proctor to immediately terminate your exam.

Tips for AWS proctored home exam

Below are some tips which I have followed during my proctored exam. I took one certification exam from my home office during COVID-19 pandemic. Some of the tips are common sense but I thought to keep them posted if it helps anyone.

My Proctor was non-intrusive and made sure that all processes written here are followed. Fortunately, there was no commotion outside my house and no one came calling, which was my biggest concern.

Be present before 30 minutes of your exam

Though Amazon suggests to be present before 15 minutes of the exam, my recommendation is to be there before 30 minutes, take all the required pictures and be ready so that you can adjust anything which the proctor recommend. This way, you will still be on time for your actual test.

Keep multiple internet options available

Keep more than one internet option available during the exam. Your main internet might be an internet broadband connection, but I suggest keeping a mobile hotspot or a dongle also available. Though I never came to this unfortunate event of loosing the connection during exam, any redundancy is a good idea (since we are AWS candidates 😉).

Keep your bladder and bowel clean before the exam

You will not be permitted to leave your desk until after the exam. The exam will be terminated if you leave your station. So, for obvious reason, make sure you have answered all of nature’s calls.

Try not to schedule home exam on weekends

The AWS call centers are closed during weekends and holidays and they only have chat agents available. In case of any problem, if you want to contact AWS for help, chances are that they will be very late in responding. So, please do not schedule the exams on weekends or holidays.

Conclusion: My choice

I had appeared for both test center and home test and in my experience, I was less stressed while I took my test in a test center. All I had to make sure that I reach there quite early with my passport. All preparations are arranged by the test center and they are already standardized. I don’t have to worry about internet connection, no need to worry about people coming un-announced to my room etc etc. I am permitted to use the rest rooms and water breaks, but the clock keeps ticking off course. So, if you have the option to take it from the test centers, my suggestion would be to use Pearson or PSI test centers.

Let me know your experience of taking the exams and if there are any more tips you want to add below.

Adventures in Scaling in Changing Times

0
Adventures in Scaling in Changing Times

[ad_1]

round tower 1I don’t know about you, but the last two months have been kind of crazy for me due to the spread of COVID-19.

In the middle of a trans-Nordics trip in early March that took me to Denmark, Finland, and Sweden in the course of a week, Amazon asked me and my coworkers to work from home if possible. I finished my trip, returned to Seattle, and did my best to adapt to these changing times.

In the ensuing weeks, several of my scheduled trips were cancelled, all of my in-person meetings with colleagues and customers were replaced with Amazon Chime video calls, and we decided to start taping What’s New with AWS from my home office.

On the personal side, I watched as many of the entertainment, education, and sporting events that I enjoy were either canceled or moved online. Just as you probably did, I quickly found new ways to connect with family and friends that did not require face-to-face interaction.

I thought that it would be interesting to see how these sudden, large-scale changes are affecting our customers. My colleague Monica Benjamin checked in with AWS customers across several different fields and industries and provided me with the source material for this post. Here’s what we learned…

Edmodo – Education
Education technology company Edmodo provides tools for K-12 schools and teachers. More than 125 million members count on Edmodo to provide a secure space for teachers, students, and parents to communicate and collaborate. As the pandemic began spreading across Europe, Edmodo’s traffic began to grow at an exponential rate. AWS has allowed them to rapidly scale in order to meet this new demand so that education continues across the world. Per Thomsen (Vice President, Engineering) told us:

In early March, our traffic grew significantly with the total number of global learners engaging on the network spiking within a matter of weeks. This required us to increase site capacity by 15 times. With AWS and Amazon EC2 instances, Edmodo has been able to quickly scale and meet this new demand so we could continue to provide teachers and students with our uninterrupted services for their distance learning needs. Having AWS always at our fingertips gives us elastic and robust compute capacity to scale rapidly.

BlueJeans – Cloud-Based Video Conferencing
Global video provider BlueJeans supports employees working from home, health care providers shifting to telehealth, and educators moving to distance learning. Customers like BlueJeans because it provides high video and voice quality, strong security, and interoperability. Swaroop Kulkarni (Technical Director, Office of the CTO) told us:

With so many people working from home, we have seen explosive growth in traffic since the start of the Coronavirus pandemic. In just two weeks our usage skyrocketed 300% over the pre-COVID-19 average. We have always run a hybrid infrastructure between our datacenters and public cloud and fortunately had already shifted critical workloads to Amazon EC2 services before the Coronavirus outbreak. The traffic surge in March 2020 led us to scale up on AWS. We took advantage of the global presence of AWS and nearly doubled the number of regions and added US East (Ohio), APAC (Mumbai) and APAC (Singapore). We also experimented with various instance types (C,M,R families) and time-of-day scaling and this served us well for managing costs. Overall, we were able to stay ahead of traffic increases smoothly and seamlessly. We appreciate the partnership with AWS.

Netflix – Media & Entertainment
Home entertainment provider Netflix started to see their usage spike in March, with an increase in stream starts in many different parts of the world. Nils Pommerien (Director, Cloud Instrastructure Engineering) told us:

Like other home entertainment services, Netflix has seen temporarily higher viewing and increased member growth during this unprecedented time. In order to meet this demand our control plane services needed to scale very quickly. This is where the value of AWS’ cloud and our strong partnership became apparent, both in being able to meet capacity needs in compute, storage, as well as providing the necessary infrastructure, such as AWS Auto Scaling, which is deeply ingrained in Netflix’s operations model.

Pinterest – Billions of Pins
Visual discovery engine Pinterest has been scaling to meet the needs of an ever-growing audience. Coburn Watson (Head of Infrastructure and SRE) told us:

Pinterest has been able to provide inspiration for an expanded global customer audience during this challenging period, whether looking for public health information, new foods to prepare, or projects and crafts to do with friends and family. Working closely with AWS, Pinterest has been able to ensure additional capacity was available during this period to keep Pinterest up and serving our customers.

Finra – Financial Services
FINRA regulates a critical part of the securities industry – brokerage firms doing business with the public in the United States. FINRA takes in as much as 400 billion market events per day that are tracked, aggregated, and analyzed for the purpose of protecting investors. Steve Randich (Executive Vice President and Chief Information Officer) told us:

The COVID-19 pandemic has caused extreme volatility in the U.S. securities markets, and since March we have seen market volumes increase by 2-3x. Our compute resources with AWS are automatically provisioned and can process a record peak and then shut down to nothing, without any human intervention. We automatically turn on and off up to 100,000 compute nodes in a single day. We would have been unable to handle this surge in volume within our on premises data center.

As you can see from what Steve said, scaling down is just as important as scaling up.

Snap – Reinventing the Camera
The Snapchat application lets people express themselves and helps them to maintain connections with family and close friends. Saral Jain (Director of Engineering) told us:

As the global coronavirus pandemic affected the lives of millions around the world, Snapchat has played an important role in people’s lives, especially for helping close friends and family stay together emotionally while they are separated physically. In recent months, we have seen increased engagement across our platform resulting in higher workloads and the need to rapidly scale up our cloud infrastructure. For example, communication with friends increased by over 30 percent in the last week of March compared to the last week of January, with more than a 50 percent increase in some of our larger markets. AWS cloud has been valuable in helping us deal with this significant increase in demand, with services like EC2 and DynamoDB delivering high performance and reliability we need to provide the best experience for our customers.

I hope that you are staying safe, and that you have enjoyed this look at what our customers are doing in these unique and rapidly changing times. If you have a story of your own to share, please let me know.

Jeff;

 

 

AmazonWebServicesBlog?d=yIl2AUoC8zA AmazonWebServicesBlog?d=dnMXMwOfBR0 AmazonWebServicesBlog?d=7Q72WNTAKBA

LsKjvnhZT6k

[ad_2]

Source link