Wednesday, October 17, 2018

Introduction to Wolfram Mathematica

Free-form inputs

To compute, press SHIFT + ENTER

In[1]:= 3 + 9 SHIFT + ENTER

Out[1]:= 12

To suppress output, add ; after the line

In[1]:= 3 + 9; SHIFT + ENTER -> no output

You can execute multiple lines at once

In[1]:= a = 2

b = a + 2

c = b ^ 3 SHIFT + ENTER

Out[1]:= 2

Out[2]:= 4

Out[3]:= 64

Starting from now, when we have output, it means that in the end of the previous line, we press SHIFT + ENTER.

To get the most recent output, use %

In[1]:= 3 + 9

Out[1]:= 12

In[1]:= % + 5

Out[1]:= 17

Basics in Programming

Variable

A variable starts with letters. If you want, you may add numbers into the variable name. It is much better if you start the variable name with lowercase

In[1]:= myVariable123 = 2

Out[1]:= 2

Please notice how I join the two words and the number into a single word. If you put space between the variable name, it will indicate multiplication

In[1]:= x = 3;

5 x x

Out[1]:= 45

To clear the variable, use Clear function

In[1]:= x = 2

Out[1]:= 2

In[2]:= 2 x

Out[2]:= 4

In[3]:= Clear[x]

In[4]:= 5 x x

Out[4]:= \(5x^2\)

Conditional Statement

The if contains three parts i.e. test, then (what to do if true), and else (what to do if false). The syntax is as follows

If[test, then, else]

Examples

In[1]:= If[5<8, Print["5 is less than 8"], Print["5 is more than 8"]

5 is less than 8

List

List of items are indicated by { ... }

In[1]:= {1, 2, 3} * 2

Out[1]:= {2, 4, 6}

The index of the list starts from 1

In[1]:= {3, 8, 2, 9}[[3]]

Out[1]:=2

Loop

The syntax used for the loop in Mathematica is as follows

For[start, test, incr, body]

start indicate the condition when the loop is started (initialization)

test indicate the condition to check during the loop

incr indicate the increment happen on each loop

body indicate the operation done during the loop

Example:

In[1]:= For[i=0, i<4, i++, Print[i]]

0

1

2

3

If you want to add more command on each section, separate the command using semicolon ;

Example

In[1]:= For[i = 0, i < 4, i++, Print[i]; Print["hello"]]

0

hello

1

hello

2

hello

3

hello

Data Visualisation

Plot

You can plot single function using the following command

Plot[f, {x , \(x_{min}\) , \(x_{max}\) }]

Example

In[1]:=Plot[Sin[x], {x, 0, 6 Pi}]

If you want to plot more than one functions, use list in the functions

Plot[{f1, f2, ... fn}, {x , \(x_{min}\) , \(x_{max}\) }]

Example

Plot[{Sin[x], Cos[x]}, {x, 0, 6 Pi}]

Screen-Shot-2018-10-17-at-6-32-10-PM

ListPlot

ListPlot function can be used to plot points. The syntax is as follows

ListPlot[{y1, y2, ... yn}]

Example

ListPlot[{1, 3, 5}]

Screen-Shot-2018-10-17-at-6-35-02-PM

ListLinePlot

ListLinePlot can be used to plot a line through the points. The syntax is as follows

ListLinePlot[{y1, y2, ... yn}]

Example

ListLinePlot[{1, 3, 5, 8}]

Screen-Shot-2018-10-17-at-7-01-41-PM

Manipulate Commands

Manipulate is used to see the changes in the output when the input is changed

Example

Manipulate[Plot[Sin[a x], {x, 0, 6}], {a, Pi, 3 Pi}]

Screen-Shot-2018-10-17-at-7-06-55-PM

Monday, July 23, 2018

Push docker container

In this post, I will give you an example for what I do to push a docker container into docker hub.

Here I will use my repository in docker hub i.e. arwankhoiruddin/hadoopbuild. You can find it here: https://hub.docker.com/r/arwankhoiruddin/hadoopbuild/

In order to modify it, first I have to login

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (arwankhoiruddin): arwankhoiruddin
Password: 
Login Succeeded

Then I run the docker image

$ docker run -it arwankhoiruddin/hadoopbuild /bin/bash

If it is not in my computer, it will download automatically from docker hub. After I finish, I type exit and I can save the changes into the docker hub. Followings are the steps

$ docker ps -a
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS                         PORTS               NAMES
856e27749098        ubuntu:14.04            "/bin/bash"         About an hour ago   Exited (0) About an hour ago                       awesome_aryabhata

Then commit the changes

$ docker commit 856e27749098 arwankhoiruddin/hadoopbuild

Tag the image

$ docker tag arwankhoiruddin/hadoopbuild latest

Push the image

$ docker push arwankhoiruddin/hadoopbuild
The push refers to repository [docker.io/arwankhoiruddin/hadoopbuild]
eed11865a805: Pushing [=>                                                 ]  19.82MB/959.3MB
776d5289b76e: Layer already exists 
0fb55a72eab2: Layer already exists 
a30ab2bcda94: Layer already exists 
99840408c5ea: Layer already exists 
a8e78858b03b: Layer already exists 

Done

Wednesday, July 18, 2018

Getting Started with Flask

In this post, I will give you a very basic example to run a hello world program in flask. What make it different with the other tutorial is that this will enable your program to run from a cloud server, not just on a local server.

Before we go further

Because you want to run it in a cloud server, most probably you will use your ssh to connect and run it. However, you need to know that when you end your ssh session, your Flask server will also be shut down. To prevent that, my favourite is to use screen. If you are ubuntu lover like me, you can install it by typing

$ sudo apt-get install -y screen

Before you do any work, start by typing

$ screen

It will open a session for you. Later, after you run your Flask server, you may want to detach the session using this command

ctrl-a d

If you later want to go back to your session, you can do it by using the following command

$ screen -r

OK, without further ado, this is your first hello world program in Flask

# hello.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello world'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

You can run the program using

$ python hello.py

Say that you run it in cloud with address 183.93.3.23, you can open the hello world program from your browser by typing

183.93.3.23:5000

This will show you a welcome message

hello world

After I mentioned earlier, if you want to let your hello world server to run, you can just detach from the session using the following command in terminal

ctrl-a d

Hope it helps :D