In the previous article, we’ve talked about AdaBoost which combines output of weak learners into a weighted sum that represents the final output of the boosted classifier. If you know little about AdaBoost or additive model, we highly recommend you read the article first.

Gradient boosting is a machine learning technique for regression and classification problems, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees. It builds the model in a stage-wise fashion like other boosting methods do, and it generalizes them by allowing optimization of an arbitrary differentiable loss function.

AdaBoost

AdaBoost, short for “Adaptive Boosting”, is a machine learning meta-algorithm formulated by Yoav Freund and Robert Schapire who won the Gödel Prize in 2003 for their work. The output of the other learning algorithms (weak learners) is combined into a weighted sum that represents the final output of the boosted classifier.

AdaBoost is adaptive in the sense that subsequent weak learners are tweaked in favor of those instances misclassified by previous classifiers. AdaBoost is sensitive to noisy data and outliers and is quite robust to overfitting.

Random forests are an ensemble learning method for classification, regression and other tasks, that operate by constructing a multitude of decision trees at training time and outputting the class that is the mode of the classes (classification) or mean prediction (regression) of the individual trees. Random decision forests correct for decision trees’ habit of overfitting to their training set.

Random Forest builds many trees using a subset of the available input variables and their values, it inherently contains some underlying decision trees that omit the noise generating variable/feature(s). In the end, when it is time to generate a prediction a vote among all the underlying trees takes place and the majority prediction value wins.

This resource explains how to install the Raspbian operating system and set up a Raspberry Pi. You will need another computer with an SD (or MicroSD) card reader to install the image.

Install Raspbian

Download the Image

Raspbian is the Raspberry Foundation’s official supported operating system and can be downloaded from the Raspberry Pi website Downloads page.

After downloading the .zip file, unzip it to get the image file (.img) for writing to your SD card. And you can write this image to an SD card with the help of Win32 Disk Imager in Windows.

Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP) which was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.

IPv6 uses a 128-bit address, theoretically allowing 2128, or approximately 3.4×1038 addresses. The actual number is slightly smaller, as multiple ranges are reserved for special use or completely excluded from use. The total number of possible IPv6 address is more than 7.9×1028 times as many as IPv4, which uses 32-bit addresses and provides approximately 4.3 billion addresses. The two protocols are not designed to be interoperable, complicating the transition to IPv6. However, several IPv6 transition mechanisms have been devised to permit communication between IPv4 and IPv6 hosts.

Introduction

This tutorial is a HowTo for setting up IPv6 NAT on an OpenWRT router.

The information on the environment is listed below.

Network Environment: China Education and Research Network Center with dual-stack IPv6

Network Device: NETGEAR R6100 (128M RAM)

Firmware Version: OpenWrt Chaos Calmer 15.05

Install Dependencies for OpenWRT

Login to the OpenWRT router via SSH and run the following commands:

opkg update
opkg install ip6tables
opkg install kmod-ipt-nat6
opkg install iputils-tracepath6

Setup IPv6 for Local-area Network

Edit /etc/config/network, and add the following lines in config interface 'lan':

Introduction

Note: This guide was tested using Ubuntu Server 14.04.4 LTS.

This is a HowTo for setting up Upside-Down-Ternet on Ubuntu. Basically, when a user browses the web, all the images are flipped upside-down. While it’s not useful, it’s quite a good April Fool’s prank.

The process uses a transparent proxy, web server, and script to flip the images. Web traffic is routed to the proxy, instead of the default gateway, which is intercepted by the proxy which then downloads and modifies the images and then serves them back to the client browser.

Git is cryptographically secure, but it’s not foolproof. If you’re taking work from others on the internet and want to verify that commits are actually from a trusted source, Git has a few ways to sign and verify work using GPG.

Introduction to GPG

First of all, if you want to sign anything you need to get GPG configured and your personal key installed.

hzxie@XieHaozhe-PC:~$ gpg --list-keys
/home/hzxie/.gnupg/pubring.gpg
------------------------------
pub   1024D/381BA480 2007-02-15
uid                  Johannes Ranke (CRAN Debian archive) <jranke@uni-bremen.de>

pub   4096R/3DBF9592 2016-03-28
uid                  Haozhe Xie (GPG key for GitHub) <cshzxie@gmail.com>
sub   4096R/BFEB9969 2016-03-28

If you don’t have a key installed, you can generate one with gpg --gen-key.