JavaScript beginner

HTML : Hypertext Markup Language to control UI of the web. It was specified in 1990. 1993 issues 1st draft of HTML to be used in all browsers.

W3C is an engineering task force to define HTML standard. 2014 proposed HTML5.

Who manage HTML spec?

1990 – Tim Berners-Lee
1993 – IETF: Internet Engineering Task Force
1996 – World Wide Web Consortium (W3C)
2000 – International Organization for Standardization (ISO) / International Electronica Commission (IEC)
2004 – Web Hypertext Application Technology Working Group

JavaScript is the language of browser.

2015 – ES6 (ECMA SCRIPT)

Development Environment Setup

To start JavaScript development, we will download NodeJS to use ‘npm’ package manager. IDE – we use MS Visual Studio. Webpack can be installed by ‘npm’.

https://github.com/wbkd/webpack-starter

This code should help us get start very quickly.

NPM Command

  • npm install
  • npm run dev

React for beginner

React was created by Facebook and it is very popular among developers.

Learn once but write code everywhere.

React supports by Facebook so we are sure that they support almost all of browsers.

it looks like HTML.

React was designed to improve performance. Other frameworks update DOM directly, but React use virtual DOM to update less on DOM directly which improve performance significantly.

Jest is the most popular created by Facebook.

React tend to need writing more line of code because of one way biding variable approach.

AWS Additional services for developers

Elastic Beanstalk

App versions are stored in S3. Each app has limit of 500 versions. Free for AWS, we just need to pay for EC2.

Dynamo DB

is NoSQL solution provided by AWS. Unlimited, Elastic Storage, Only pay for what you use. 4kb read/write size. First 25 GB is free, but read/write is charged. 10 USD / month.

RedShift

Run data warehouse for use in BI or ETL tools.

We can encrypt entire data warehouse.

Virtual Private Cloud (VPC)

Full control of routing tables, NAT gateway, sub net (private, public). Basic VPC is free.

CloudWatch

Monitoring & alarm per define metrics and then set action (SMS, email). Aggregate log. Filter log and send alert based on rules define.

CloudFront

is a CDN (fast connection). we need to store static files on S3. Then, we can define what request methods are allowed. Free tier is available for the 1st year.

AWS Core Services for developer

EC2 – a virtual machine.

S3 – Simple Storage Service.

RDS – Relation Database Services

Route53 – DNS service.

Elastic Cloud Compute (EC2)

We can use it to run an app, virtual desktop, 3rd party software, computing. Instance is an OS image or AIM. AWS Marketplace offers many images. Instance Type is where you select what services you want to use.

Auto Scaling Group = AWS increase or decrease instances automatically based on your program. Elastic Block Storage (EBS) is use in EC2 for file systems. S3 for file storage. Security Group is a little firewall for instances.

Use without a key-pair if you want to log-in by using username/password.

EC2 Pricing

  • charge by hour based on instance type, AMI Type. See https://aws.amazon.com/ec2/pricing/ Only pay for hour when it is on.
  • EBS is charged separately.

Simple Storage Service (S3)

The place to store files. Maximum file size is 5 TB! Structure of S3 is a bucket. S3 bucket URL can be accessed after setting permissions. We can host a static website using S3. We can auto replicate files on other regions using bucket.

S3 Pricing

  • Amount of stored data
  • Number of requests
  • Amount of data transferred
  • See: https://aws.amazon.com/s3/pricing/

Free tier = 5 GB for the 1st year.

Relational Database Services (RDS)

RDS handle database backup, redundancy, software patches. AWS offers:

  • MySQL
  • PostgreSQL
  • MS SQL Server
  • MariaDB
  • Oracle DB
  • Amazon Aurora

When you select RDS, it will also affect EC2 option which you use to run RDS. AWS will save you headaches instead of managing your DB.

RDS Pricing

  • Type of DB
  • Region
  • EC2 instance
  • see: https://aws.amazon.com/rds/pricing/

Route53 – DNS

It allows us to manage DNS on EC2. It is core to letting users interact with services in AWS. Hosted Zone is used to manage a domain name. It has health checks service.

AWS for developer

I am writing this post in the views of a developer.

I used ‘toro.aws@gmail.com‘ for registering AWS service for testing.

Web app needs a scaling capability which AWS or Cloud seems promising for enterprises. Amazon spot Cloud opportunity in 2003.

AWS First lunch – Simple Queue Service around 2004.

AWS = Collection of could computing services.

We can archive unlimited up-time with above region and availability zone. We can check AWS status on this link.

https://status.aws.amazon.com/

There are many other Cloud solutions. For examples,

  1. Microsoft Azure – started around 2010. Model is the same as AWS. Pricing is hard to compare with AWS. If you need Windows virtual machines, it is good to choose Azure. .NET App is also good to run. Not global reach like AWS.
  2. IBM Bluemix – very new lunch in 2014. Cloud Foundry open source. If you want an independent provider, this one is a good fit.
  3. Heroku – started in 2007. Easy and quick to get start.

Part 9 Python Files and Resource Management

This post will cover reading and writing file. We will use built-in function “open()“. Arguments to be used in the open() function

  • file
  • mode
  • encoding – it is important that you specify encoding, otherwise you may get some errors.

import sys
sys.getdefaultencoding()

Example – Write
f = open(‘file.txt’, mode=’wt’, encoding=’utf-8′)
help(f)
f.write(‘this is text I wrote’)
f.write(‘this is the 2nd line \n’)
f.close()

Example – Read
f = open(‘file.txt’, mode=’rt’, encoding=’utf-8′)
f.read(32) # read 32 characters
f.read() # next line

#we should use
f.readline() # to return \n if there are still other lines
f.readlines() # it returns a list of each line

Part 8 Python Classes

You can get a long way with Python’s built in type, but if they are not fit for the job you want, this is when Class is needed.

Classes define the structure and behavior of objects and object class control its initialization. Class make complex problems tractable, can make simple solutions overly complex.

#airtravel.py
class Flight:
    def __init__(self, number):
        self._number = number

    def number(self):
        return self._number
    pass

from airtravel import Flight

f = Flight("TORO")
f.number()
  • Method – a function defined within a class
  • Instance methods – functions which can be called on objects
  • Self – the first argument to all instance methods
  • __init__() is an initializer, not a constructor.
  • self is similar to this in C++ or Java.
  • avoid name class with number(), we use _number

Part 1 Tableau Data Analysis

Data Analysis is a fun task to do and if you love data, Tableau can give you a lot of flexibility to play with and totally understand the underlying data and also help you share with your audiences very easily. Below is the data analysis process:

Data Discovery is the first thing you do. In Tableau, you need to connect to a data source to discover.

Tableau can connect to any data-source from files, database, or Cloud services that you can think of. It is growing in terms of the data sources support.

Quick Start

  1. Open Tableau Desktop
  2. Click Connect -> select your data source.
  3. Now you are ready to discover.

We need to understand two terms:

  • Measure – value which Tableau can aggregate using SUM, MIN, MAX, AVG.
  • Dimension – is a distinct value such as male, female.

There are two colors in the data pane.

  • Blue – discrete value such as region – we can use in Color property in Tableau.
  • Green – continue us value such as sales, temperature – when we use in Color property in Tableau, it will show gradient shade color.

It is very important to note that continuous and discrete are different concepts from Measure and Dimension. While most dimensions are discrete by default, and most measures are continuous by default, it is possible to use any measure as a discrete field and some dimensions as continuous fields in the view. Right click on the dimension or measure, and Convert to Discrete or Continuous…

  • Choosing between dimension and measure tells Tableau how to slice or aggregate the data.
  • Choosing between discrete and continuous tells Tableau how to display the data with a header or an axis and def

Part 2 Scrum Master Get the most out of Sprints

Incremental = small increments of a project are delivered piece by piece until the entire project is complete.

Iterative = clear feedback is elicited after each increment and incorporated into the next increment.

Incremental + Iterative = Success for Scrum team

  • Breaks a larger project into smaller deliveries
  • Can reduce the overall effort
  • Reduces the impact of costly mistakes
  • Incorporates feedback along the way

Timeboxing

Sprints is a fix time box often define 1-4 weeks, team attempts to complete all work, incorporate feedback.

Features increments: features are not sized consistently, feedback comes unevenly, may not receive feedback on all features.

Sprint increments: feedback occurs more regularly, encourages stakeholders to give more frequent feedback, easier to coordinate.

How long should my sprint be? as short as 1 week, 2 weeks, or 30 days max.

Shorter sprints – easier to plan, better ability to reduce risk but more time planning.

Longer sprints – more difficult but infrequent planning will incur more risk.

Definition of Done

Shared understanding of Done. Need to be specific and everyone understands the same definition. Production or just tested, or still in QA? need to be sure and agree with the team.

  • Attainable – realistically represents the capabilities of your team.
  • Collaborative – created by both stakeholders and the development team working together.
  • Flexible – subject to change as the team finds better ways to work.

Potentially shippable product increment

Scrum are not necessary shipping complete product at the end of sprint. Always leave the product in a releasable state at the end of each sprint so it depends on business to decide which one should be released.

  • better business value – recoup cost sooner or lessen overall investment.
  • reduce risk – create a product that is ready to ship at any moment.
  • more transparency – covey the team’s true status to project stakeholders.

Learning more

  • Creating effective user stories
  • Book – continuous deliver reliable software release through build, test, and deployment automation – Jez Humble and David Farley.