Python: working with data …

This will use three libraries: pandas, matplotlib.pyplot and os

# import pandas dataframe and matplotlib graphing library
import pandas as pd
import matplotlib.pyplot as plt
import os

# moving to your working directory
os.chdir('''/Users/vserey/Desktop/working''') # your folder maybe "c:\working_folder"

# you may want to list files inside current directory
os.system("ls -l")

# or now I want to capture wifi traffic and extract BSSID, SSID, ip source, destination and
# IFS columns to a file "test.csv"
os.system('''tshark -r capture-allch-airtool-response.pcap -T fields -E separator=, \
-E quote=d -e wlan.bssid -e wlan.ssid -e ip.src -e ip.dst -e wlan_radio.ifs > test.csv''')

# read csv file (with column header)
#data = pd.read_csv('test.csv')
# or you wish to change some column's name
#data.rename(index=str, columns={"Source":"IP Source"})
# or if without column header
data = pd.read_csv('test.csv', columns=["BSSID", "SSID", "Sorce", "Destination", "IFS"])

# print first 3 records (default 5 records)

# need only the first 100 records (we may save to a new variable)
data = data.head(100)

# show basic statistics for all columns like count, mean, std, min, 25%, 50%, 75% and max

# if you wish to extract specific column and convert to a list
my_ifs = data['IFS'].tolist()

# print the data

# Basic plot Pandas dataframe (df), to check if it is Pandas df, print(type(data))

Simple ATM program to widraw money

//simple ATM program to get widraw amount and show whether they input correct possible banknotes
#include <stdio.h>

int main(){

    int money;
    char ch;
    printf("Input your money to widraw: ");
    scanf("%d", &money);
        printf("Do you want to widraw it now? (y/n):");
        ch = getchar();
            printf("*** sucess!\n");
        printf("*** fail!\n");
case 'y':
printf("Success! you did widraw %d baht\n", money);
case 'n':
printf("\nYou cancelled!\n");
printf("invalid input\n");
    else {
        printf("\nInvalid amount of money, we cannot proceed further\n");

    return 0;

List of SQL Statements from CodeAcedemy

SQL, ‘Structured Query Language’, is a programming language designed to manage data stored in relational databases. SQL operates through simple, declarative statements. This keeps data accurate and secure, and helps maintain the integrity of databases, regardless of size.

Here’s an appendix of commonly used commands.



ALTER TABLE table_name ADD column datatype;

ALTER TABLE lets you add columns to a table in a database.


SELECT column_name(s)
FROM table_name
WHERE column_1 = value_1
AND column_2 = value_2;

AND is an operator that combines two conditions. Both conditions must be true for the row to be included in the result set.


SELECT column_name AS 'Alias'
FROM table_name;

AS is a keyword in SQL that allows you to rename a column or table using an alias.


SELECT AVG(column_name)
FROM table_name;

AVG() is an aggregate function that returns the average value for a numeric column.


SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value_1 AND value_2;

The BETWEEN operator is used to filter the result set within a certain range. The values can be numbers, text or dates.


SELECT COUNT(column_name)
FROM table_name;

COUNT() is a function that takes the name of a column as an argument and counts the number of rows where the column is not NULL.


CREATE TABLE table_name (column_1 datatype, column_2 datatype, column_3 datatype);

CREATE TABLE creates a new table in the database. It allows you to specify the name of the table and the name of each column in the table.


DELETE FROM table_name WHERE some_column = some_value;

DELETE statements are used to remove rows from a table.


FROM table_name
GROUP BY column_name;

GROUP BY is a clause in SQL that is only used with aggregate functions. It is used in collaboration with the SELECT statement to arrange identical data into groups.


SELECT column_name(s) FROM table_1
JOIN table_2
ON table_1.column_name = table_2.column_name;

An inner join will combine rows from different tables if the join condition is true.


INSERT INTO table_name (column_1, column_2, column_3) VALUES (value_1, 'value_2', value_3);

INSERT statements are used to add a new row to a table.


SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

LIKE is a special operator used with the WHERE clause to search for a specific pattern in a column.


SELECT column_name(s)
FROM table_name
LIMIT number;

LIMIT is a clause that lets you specify the maximum number of rows the result set will have.


SELECT MAX(column_name)
FROM table_name;

MAX() is a function that takes the name of a column as an argument and returns the largest value in that column.


SELECT MIN(column_name)
FROM table_name;

MIN() is a function that takes the name of a column as an argument and returns the smallest value in that column.


SELECT column_name
FROM table_name
WHERE column_name = value_1
OR column_name = value_2;

OR is an operator that filters the result set to only include rows where either condition is true.


SELECT column_name
FROM table_name
ORDER BY column_name ASC|DESC;

ORDER BY is a clause that indicates you want to sort the result set by a particular column either alphabetically or numerically.


SELECT column_name(s) FROM table_1
LEFT JOIN table_2
ON table_1.column_name = table_2.column_name;

An outer join will combine rows from different tables even if the the join condition is not met. Every row in the left table is returned in the result set, and if the join condition is not met, then NULL values are used to fill in the columns from the righttable.


SELECT ROUND(column_name, integer)
FROM table_name;

ROUND() is a function that takes a column name and an integer as an argument. It rounds the values in the column to the number of decimal places specified by the integer.


SELECT column_name FROM table_name;

SELECT statements are used to fetch data from a database. Every query will begin with SELECT.


SELECT DISTINCT column_name FROM table_name;

SELECT DISTINCT specifies that the statement is going to be a query that returns unique values in the specified column(s).


SELECT SUM(column_name)
FROM table_name;

SUM() is a function that takes the name of a column as an argument and returns the sum of all the values in that column.


UPDATE table_name
SET some_column = some_value
WHERE some_column = some_value;

UPDATE statments allow you to edit rows in a table.


SELECT column_name(s)
FROM table_name
WHERE column_name operator value;

WHERE is a clause that indicates you want to filter the result set to include only rows where the following condition is true.

JQuery vs Ajax vs Javascript

What is Jquery?

The purpose of jQuery is to make it much easier to use JavaScript on your website. JQuery takes a lot of common tasks that require many lines of JavaScript code to accomplish, and wraps them into methods that you can call with a single line of code.

jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls and DOM manipulation.

AJAX is just another tool that can be used by scripting languages like Javascript in order to enhance the look and feel of their web pages.


Ajax vs Javascript

Ajax (Asynchronous Javascript and XML) is a subset of javascript. Ajax is way for the client-side browser to communicate with the server (for example: retrieve data from a database) without having to perform a page refresh.

In short; AJAX is about loading data in the background and display it on the webpage, without reloading the whole page.

Examples of applications using AJAX: Gmail, Google Maps, Youtube, and Facebook tabs.

Why Use JQuery Instead of Just Basic JavaScript?

JavaScript is a fairly low-level programming language. It does not provide advanced page manipulation and decoration functions, and it provides nothing concerning animations. Moreover, using direct JavaScript can cause issues related to browser incompatibilities. Those issues have made many JavaScript applications difficult to code, resulting in high maintenance costs.

JQuery aims to ease all these problems by providing a lightweight library that adds many advanced and cross-browser functions to the standard language. In addition, there is a very dynamic community that adds more-advanced components based on JQuery.

A modern Web application wouldn’t be complete without some AJAX functionality. JQuery provides functions for sending HTTP GET and POST requests, and it can work easily with the JavaScript Object Notation (JSON) format we saw in the first article. This functionality enables us to query the REST back end we coded in the first article.


  • jQuery removes the headaches of cross platform Javascript compatibilities.

  • jQuery is very easy to use as compared to other JavaScript libraries and JavaScript as well.

  • jQuery has a large set of library/functions.

  • jQuery has good documentation and help manuals are easily available.

  • jQuery supports AJAX functionality.


  • You are no longer writing the native language, so your understanding of what is actually occuring may be limited.

  • jQuery requires to include jQuery library files into project which takes space on the web server. But JavaScript can be used without adding any libraries. Also, if user wants include more jQuery libraries, version conflicts may occur.


AJAX stands for Asynchronous JavaScript and XML. It is used for allowing the client side of an application to communitcate with the server side of the application. Before AJAX, there was no way for the client side of a web application to communicate directly with the server. Instead, you would have to use page loads. With AJAX, the client and server can communicate freely with one another.


With Ajax in a website there is no need to refresh a Web page continuously. For users who are waiting to see if they won an auction, keeping an eye on sports scores, or closely following the latest weather forecasts, Ajax enhancements to these types of Web pages can greatly improve their experiences.

AJAX pros and cons

AJAX is rapidly becoming an integral part of several websites, several well established brands online now use AJAX to handle their web applications because it provides better interactivity to their users, this is due to the fact that implementing AJAX on a website, does not require a page to be reloaded for dynamic content on web pages. While there are numerous reasons to switch to AJAX there are quite a few matters that would make you reconsider using this combination of technologies as well. Below are some of the advantages and disadvantages of using AJAX.


  • Better interactivity

  • This is pretty much the most striking benefit behind why several developers and webmasters are switching to AJAX for their websites. AJAX allows easier and quicker interaction between user and website as pages are not reloaded for content to be displayed.

  • Easier navigation

AJAX applications on websites can be built to allow easier navigation to users in comparison to using the traditional back and forward button on a browser.

  • Compact

With AJAX, several multi purpose applications and features can be handled using a single web page, avoiding the need for clutter with several web pages.

  • Backed by reputed brands

Another assuring reason to use AJAX on your websites is the fact that several complex web applications are handled using AJAX, Google Maps is the most impressive and obvious example, other powerful, popular scripts such as the vBulletin forum software has also incorporated AJAX into their latest version.


  • The back and refresh button are rendered useless

  • With AJAX, as all functions are loaded on a dynamic page without the page being reloaded or more importantly a URL being changed (except for a hash symbol maybe), clicking the back or refresh button would take you to an entirely different web page or to the beginning of what your dynamic web page was processing. This is the main drawback behind AJAX but fortunately with good programming skills this issue can be fixed.

  • It is built on javascript
  • While javascript is secure and has been heavily used by websites for a long period of time, a percentage of website surfers prefer to turn javascript functionality off on their browser rendering the AJAX application useless, a work around to this con is present as well, where the developer will need to code a parallel non-javascript version of the dynamic web page to cater to these users.