While doing simulations/experiments in your projects, sometimes you need to provide evidences to verify the confidence of the values obtained from your simulations/experiments. For example, you wrote an IOS application. Before you publish your APP, your boss wanted you to do some experiments to measure the average delay of your APP per processing a request. So you generated some requests randomly and did the experiment, and reported the data (i.e., the average delay) to your boss. At that time, your boss might not buy your results, because you did not provide any evidence to convince your boss that your results were reliable enough. At this time, the confidence intervals might be useful for you.

The following gives the formal definition of the confidence intervals from the book “”:

Let be a sample on a random variable , where has pdf . Let be specified. Let and be two statistics. We say that the interval is a confidence interval for if

That is, the probability that the interval includes is , which is called the confidence coefficient of the interval.

There are two different scenarios while calculating the confidence intervals of your estimations. The first case is that the standard deviation of the unknown random variable is known. The second one is that the standard deviation is unknown. The second case is more commonly encountered in real life. In this post, we will use confidence interval as an example to demonstrate the approach of computing confidence intervals.

First of all, we will make the following assumptions. The sample size in your simulation/experiment is , and sample mean is , the sample standard deviation (only needed in the second case) is

Confidence Interval ( Known)

By looking up the Z-table, we can find that the value corresponding to the confidence interval is , so the interval is

Confidence Interval ( Unknown)

By looking up the T-table, you will find the value for the confidence interval with different sample sizes is in the column (note that, unlike Z distribution, there are different T distributions for different sample sizes.). The interval con be computed as,

Notice

More details your can refer to Confidence Interval: How to Find a Confidence Interval: The Easy Way! and the Youtube videos Statistics 101: Confidence Intervals, Population Deviation Known, Statistics 101: Confidence Intervals, Population Deviation Unknown - Part 1, and Statistics 101: Confidence Intervals, Population Deviation Unknown - Part 2.

Configure

type the following content in ~/.minttyrc (if no such file then create it)

ForegroundColour=131, 148, 150
BackgroundColour=  0,  43,  54
CursorColour=    220,  50,  47

Black=             7,  54,  66
BoldBlack=         0,  43,  54
Red=             220,  50,  47
BoldRed=         203,  75,  22
Green=           133, 153,   0
BoldGreen=        88, 110, 117
Yellow=          181, 137,   0
BoldYellow=      101, 123, 131
Blue=             38, 139, 210
BoldBlue=        131, 148, 150
Magenta=         211,  54, 130
BoldMagenta=     108, 113, 196
Cyan=             42, 161, 152
BoldCyan=        147, 161, 161
White=           238, 232, 213
BoldWhite=       253, 246, 227

More configurations can be found at mintty-colors-solarized.

type the following content in ~/.dircolors (if no such file, create it).


# Dark 256 color solarized theme for the color GNU ls utility.
# Used and tested with dircolors (GNU coreutils) 8.5
#
# @author  {@link http://sebastian.tramp.name Sebastian Tramp}
# @license http://sam.zoy.org/wtfpl/  Do What The Fuck You Want To Public License (WTFPL)
#
# More Information at
# https://github.com/seebi/dircolors-solarized

# Term Section
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM dvtm
TERM dvtm-256color
TERM eterm-color
TERM fbterm
TERM gnome
TERM gnome-256color
TERM jfbterm
TERM konsole
TERM konsole-256color
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM putty
TERM putty-256color
TERM rxvt
TERM rxvt-256color
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM rxvt-unicode256
TERM rxvt-unicode-256color
TERM screen
TERM screen-16color
TERM screen-16color-bce
TERM screen-16color-s
TERM screen-16color-bce-s
TERM screen-256color
TERM screen-256color-bce
TERM screen-256color-s
TERM screen-256color-bce-s
TERM screen-256color-italic
TERM screen-bce
TERM screen-w
TERM screen.linux
TERM screen.xterm-256color
TERM st
TERM st-meta
TERM st-256color
TERM st-meta-256color
TERM tmux
TERM tmux-256color
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-256color-italic
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
TERM xterm-termite

## Documentation
#
# standard colors
#
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#
#
# 256 color support
# see here: http://www.mail-archive.com/bug-coreutils@gnu.org/msg11030.html)
#
# Text 256 color coding:
# 38;5;COLOR_NUMBER
# Background 256 color coding:
# 48;5;COLOR_NUMBER

## Special files

NORMAL 00;38;5;244 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 00;38;5;33 # directory 01;34
LINK 00;38;5;37 # symbolic link. (If you set this to 'target' instead of a
 # numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 48;5;230;38;5;136;01 # pipe
SOCK 48;5;230;38;5;136;01 # socket
DOOR 48;5;230;38;5;136;01 # door
BLK 48;5;230;38;5;244;01 # block device driver
CHR 48;5;230;38;5;244;01 # character device driver
ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file
SETUID 48;5;160;38;5;230 # file that is setuid (u+s)
SETGID 48;5;136;38;5;230 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky
STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 00;38;5;64

## Archives or compressed (violet + bold for compression)
.tar    00;38;5;61
.tgz    00;38;5;61
.arj    00;38;5;61
.taz    00;38;5;61
.lzh    00;38;5;61
.lzma   00;38;5;61
.tlz    00;38;5;61
.txz    00;38;5;61
.zip    00;38;5;61
.z      00;38;5;61
.Z      00;38;5;61
.dz     00;38;5;61
.gz     00;38;5;61
.lz     00;38;5;61
.xz     00;38;5;61
.bz2    00;38;5;61
.bz     00;38;5;61
.tbz    00;38;5;61
.tbz2   00;38;5;61
.tz     00;38;5;61
.deb    00;38;5;61
.rpm    00;38;5;61
.jar    00;38;5;61
.rar    00;38;5;61
.ace    00;38;5;61
.zoo    00;38;5;61
.cpio   00;38;5;61
.7z     00;38;5;61
.rz     00;38;5;61
.apk    00;38;5;61
.gem    00;38;5;61

# Image formats (yellow)
.jpg    00;38;5;136
.JPG    00;38;5;136 #stupid but needed
.jpeg   00;38;5;136
.gif    00;38;5;136
.bmp    00;38;5;136
.pbm    00;38;5;136
.pgm    00;38;5;136
.ppm    00;38;5;136
.tga    00;38;5;136
.xbm    00;38;5;136
.xpm    00;38;5;136
.tif    00;38;5;136
.tiff   00;38;5;136
.png    00;38;5;136
.PNG    00;38;5;136
.svg    00;38;5;136
.svgz   00;38;5;136
.mng    00;38;5;136
.pcx    00;38;5;136
.dl     00;38;5;136
.xcf    00;38;5;136
.xwd    00;38;5;136
.yuv    00;38;5;136
.cgm    00;38;5;136
.emf    00;38;5;136
.eps    00;38;5;136
.CR2    00;38;5;136
.ico    00;38;5;136

# Files of special interest (base1)
.tex             00;38;5;245
.rdf             00;38;5;245
.owl             00;38;5;245
.n3              00;38;5;245
.ttl             00;38;5;245
.nt              00;38;5;245
.torrent         00;38;5;245
.xml             00;38;5;245
*Makefile        00;38;5;245
*Rakefile        00;38;5;245
*Dockerfile      00;38;5;245
*build.xml       00;38;5;245
*rc              00;38;5;245
*1               00;38;5;245
.nfo             00;38;5;245
*README          00;38;5;245
*README.txt      00;38;5;245
*readme.txt      00;38;5;245
.md              00;38;5;245
*README.markdown 00;38;5;245
.ini             00;38;5;245
.yml             00;38;5;245
.cfg             00;38;5;245
.conf            00;38;5;245
.h               00;38;5;245
.hpp             00;38;5;245
.c               00;38;5;245
.cpp             00;38;5;245
.cxx             00;38;5;245
.cc              00;38;5;245
.objc            00;38;5;245
.sqlite          00;38;5;245
.go              00;38;5;245
.sql             00;38;5;245
.csv             00;38;5;245

# "unimportant" files as logs and backups (base01)
.log        00;38;5;240
.bak        00;38;5;240
.aux        00;38;5;240
.lof        00;38;5;240
.lol        00;38;5;240
.lot        00;38;5;240
.out        00;38;5;240
.toc        00;38;5;240
.bbl        00;38;5;240
.blg        00;38;5;240
*~          00;38;5;240
*#          00;38;5;240
.part       00;38;5;240
.incomplete 00;38;5;240
.swp        00;38;5;240
.tmp        00;38;5;240
.temp       00;38;5;240
.o          00;38;5;240
.pyc        00;38;5;240
.class      00;38;5;240
.cache      00;38;5;240

# Audio formats (orange)
.aac    00;38;5;166
.au     00;38;5;166
.flac   00;38;5;166
.mid    00;38;5;166
.midi   00;38;5;166
.mka    00;38;5;166
.mp3    00;38;5;166
.mpc    00;38;5;166
.ogg    00;38;5;166
.opus   00;38;5;166
.ra     00;38;5;166
.wav    00;38;5;166
.m4a    00;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa    00;38;5;166
.oga    00;38;5;166
.spx    00;38;5;166
.xspf   00;38;5;166

# Video formats (as audio + bold)
.mov    00;38;5;166
.MOV    00;38;5;166
.mpg    00;38;5;166
.mpeg   00;38;5;166
.m2v    00;38;5;166
.mkv    00;38;5;166
.ogm    00;38;5;166
.mp4    00;38;5;166
.m4v    00;38;5;166
.mp4v   00;38;5;166
.vob    00;38;5;166
.qt     00;38;5;166
.nuv    00;38;5;166
.wmv    00;38;5;166
.asf    00;38;5;166
.rm     00;38;5;166
.rmvb   00;38;5;166
.flc    00;38;5;166
.avi    00;38;5;166
.fli    00;38;5;166
.flv    00;38;5;166
.gl     00;38;5;166
.m2ts   00;38;5;166
.divx   00;38;5;166
.webm   00;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 00;38;5;166
.anx 00;38;5;166
.ogv 00;38;5;166
.ogx 00;38;5;166

put the following at the end of ~/.bashrc

alias ls='ls --color=auto'
eval `dircolors /home/<username>/.dircolors`

please replace the <username> with the real username.

restart your cygwin.

Sublime Text 3 User Setting

{
	"added_words":
	[
		"algorithmics",
		"measurability",
		"failover"
	],
	"color_scheme": "Packages/Color Scheme - Default/Solarized (Dark).tmTheme",
	"dictionary": "Packages/Language - English/en_US.dic",
	"font_face": "Courier New",
	"font_size": 20,
	"highlight_line": true,
	"highlight_modified_tabs": true,
	"ignored_packages":
	[
		"Markdown",
		"Vintage"
	],
	"indent_to_bracket": true,
	"line_numbers": true,
	"spell_check": true,
	"tab_size": 4,
	"translate_tabs_to_spaces": false,
	"wrap_width": 80
}

New Concepts

Clock skew
Given two sequentially-connected registers and with clock arrival times at destination and source register clock pins equal o and respectively, clock skew (sometimes called as timing skew, which is a phenomenon in synchronous circuits) is defined as .

XPath
a syntax of defining parts of an XML document; it uses path expressions to navigate in XML documents and contains a library of standard functions

Port mirroring
It is use on a network switch to send a copy of network packets seen on one switch port (or an entire VLAN) to a network monitoring connection to another switch port.
Data Center Bridging (DCB)
DCB is designed to avoid losses while buffer is overrun. It works as follows, a DCB NIC or switch port anticipates when it will not be able to accommodate more data in its buffer and send a pause frame to its directly connected upstream device asking it to wait for a specified amount of time before any future data transmission. (This mechanism might cause deadlock, in traditional Ethernet, deadlocks is avoided by dropping packets while buffer space is not available).
InfiniBand
a computer-networking communications standard used in high-performance computing features very high throughput and very low latency. It is used for data interconnect both among and with computers. It is also utilized as a direct, or switched interconnect between servers and storage systems, as well as an interconnect between storage systems. It is scalable and supports quality of service and failover, it is often used as a server connect in high-performance computing environment.
MPLS Fast Reroute (FRR)
a local restoration network resiliency mechanism. It is actually a feature of resource reservation protocol (RSVP) traffic engineering (TE). In MPLS, each label switched path (LSP) passing through a facility is protected by a backup path which originates at the node immediately upstream to that facility.
Failure-Carrying Packets (FCPs)
a mechanism to achieve fast failover under network failure. Once a packet arrives at an interface that has a failed link, the router would insert the failed link into the header of the packet and recompute a new route.
Source Routing
allows a sender of a packet to partially or completely specify the route the packet takes through the network. In contrast, in non-source routing protocol, routers in the network determine the path based on the packet’s destination. It allows easier troubleshooting, improved traceroute, and enables a node to discover all possible routes to a host.
Spanning Tree Protocol/Pre-VLAN Spanning Tree Protocol/Pre-Address Spanning Tree Protocol
a network protocol that builds a logical loop-free topology for Ethernet networks.
Equal-Cost Multi-Path Routing (ECMP)
a routing strategy where next-hop packet forwarding to a single destination can occur over multiple “best paths” which tie for top place in routing metric calculations.
TCP Incast
a common performance problem in data centers. It happens when an aggregator distributes a request to a group of workers, and after processing the requests, these workers send responses back almost at the same time.
Nagle’s Algorithm
a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. This algorithm interacts badly with the TCP delayed acknowledgments. It applies when a TCP sender is deciding whether to transmit a packet of data over a connection. If it has only a “small” amount of data to send, then Nagle algorithm says to send that packet only if all previously transmitted data has been acknowledged by the TCP receiver at the other end of the connection. In Nagle algorithm, “small” is defined as less data than the TCP maximum segment size (MSS) for the connection, the largest amount of data that can be sent in one datagram.

RRM

Step 1: Request.

iSLIP with Single Iteration

Core idea: rotating priority (“round robin”) Performance: 100% throughput for uniform i.i.d. Bernoulli arrivals