Best Cheap Whole Bean Coffee to Buy

Best cheap coffee beans you must try
For the coffee diehards, the morning coffee cup matters a lot. It has the power of determining the course of your day. If you enjoy brewing your coffee, then you already know that a good coffee maker and high-quality coffee beans are a necessity to making a great cup of coffee or espresso shot. When it comes to whole coffee beans, the market offers a variety each with distinct qualities and hence different prices. In the review, we will look at some of the best cheap coffee beans that you should consider.

Top 15 affordable whole bean coffee – Most under $0.50/Ounce

Here is the list 15 best cheap whole coffee bean with great taste. On our list areonly coffees that are appropriate for people with low budget. Everyone knows that it is better to buy whole coffee beans than grounds coffee if you want to fully enjoy the real taste of coffee. The low price of these coffee beans this time does not affect the quality of the coffee beans.

Cafe Don Pablo Coffee

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

Cafe Don Pablo Coffee is a 100% Arabica, light, medium-dark or dark roast whole bean coffee from Honduras, Marcala region. Coffee roasted in the US in Miami. The coffee (dark roast) is purely organic, having been grown under composted coffee cherries as fertilizer. These are mixed with a little amount of vermiculture and hence keeping all insects away so no need of insecticide. To handle the bugs that may be present from time to time, farmers plant pepper which a very effective repellant.

Cafe Don Pablo Coffee Qualities

Like some other Arabica coffee beans, Cafe Don Pablo is fully bodied and has a creamy chocolate flavor. In addition to being one of the best cheap whole bean coffee, the 2-pound organic coffee has a smooth milk taste with notes of honey, cocoa, and caramel. Don Pablo coffee is good for people with sensitive stomachs because this is low-acid coffee beans. Several studies indicate that lower stomach problems caused by dark-roasted coffee and if some coffee cause you stomach problems then you must try Don Pablo whole bean coffee. If you want coffee with more caffeine for more energies buy light roasted beans. Also you can buy Don Pablo decaffeinated whole bean coffee

What Makes Don Pablo Coffee Special?

This 2LBS organic coffee has several benefits in additional to its affordable price.
It is CCOF certified and GMO-free.
You can subscribe and get 5% or 15% discount
The coffee is roasted in small amounts which enhance its flavor depth, density, and natural, flavorful characteristics.

Cameron’s Toasted Southern Pecan

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

These coffee beans are 100% Arabica grown in high altitude areas of 4,000-5,000 feet above sea level. This type of altitude slows the speed of maturity for the coffee beans giving them an opportunity to become dense, naturally gain lower levels of caffeine, and become less acidic. Further, the beans are carefully blend, roasted, and packaged to deliver the freshest beverage that you will savor at every sip.

The Cameron’s have been on the market since 1978 and have remained the best affordable whole coffee beans for that long. These light roast beans have a pecan overtone with a sugarcane undertone and decadent finish. The beans are also rich in flavor and possess the following specifications:
– Price is little lower than Don Pablo Coffee and also you can save 5% or 15% if you subscribe here
– Has a smooth pecan toast flavor, very aromatic, rich crema. This coffee is not to much sweet like some other flavored coffees.
– Toasted Pecan is medium-light roasted.
– It gives an intense flavor with hints of caramel that comes out nicely. Once you open the bag, you are hit by a amazing pecan smell, and upon brew, you get one of the smoothest coffee cups you have ever had.If you like flavored coffee and pecan aroma this is great whole coffee beans to buy for really inexpensive price.

Eight O’clock The Original

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

The Eight O’clock Coffee Company uses high quality Arabica coffee beans and has been roasting the best inexpensive whole bean coffee since 1859. To ensure freshness of the coffee, these beans are packed immediately after roasting in a bag that locks properly to retain the freshness. Roasted in the US in Maryland.

Eight O’Clock The Original Features

These beans are 100% Arabica
It has high but good amounts of caffeine.
They have a strong sweet taste with fruity notes and a balanced finish.
Available at an affordable price compared to other whole coffee beans. We listed Eight O’Clock The Original 6 bag pack because if you buy 6 pack you get much cheaper price, even cheaper than most other whole coffee beans in our list.

If you love grinding your own coffee beans and still have an original coffee taste, the Eight O’clock coffee beans is the right choice. Even after being in the market for over ten decades, they have maintained quality and flavor of their coffee. If you compare buying the 6 bag shipment of this coffee to other premium coffee, this is way cheaper and better.

If you do not like fancy packaging, different flavors, if you are heavy coffee drinker and you want that coffee tastes like coffee then Eight O’Clock The Original is right coffee for you.

Coffee Bean Direct Poor Man’s Blend

Coffee Supremacy Rating 9/10

☕☕☕☕☕☕☕☕☕

The list for the cheapest whole bean coffee won’t be complete without mentioning Coffee Bean Direct Poor Man’s Blend. The beans are slow roasted to maximize their flavor and packed immediately after roasting to retain the tang. The name is a representation of its affordable price, but otherwise, it is a quality blend of a mix of South America’s best coffee beans. It is suitable for use in both home, office, restaurants, and food services.

As long as you maintain the right texture when grinding and also store your coffee in the precise temperatures, this blend makes an excellent cup of coffee. Upon opening the 5-pound bag, you are greeted by freshly roasted coffee. They have qualities such as:
A low acidic taste.
Highly flavorful.
High fresh taste.
Full and smooth taste.
It is lightly roasted such that the oils and caffeine of these beans enrich your coffee cup.

Many people when they see the name Poor Man’s Blend have very low expectations but for bargain price this is very good coffee. Highly affordable, Poor Man’s Blend is one of the cheapest coffee beans you can find to buy

Dark Brazilian Santos

Coffee Supremacy Rating 8/10

☕☕☕☕☕☕☕☕

Another coffee by Coffee Bean Direct. Made of 100% Dark Brazilian Coffee Beans, this 5-pound bag is an excellent choice if you are looking for inexpensive dark roast coffee whole beans. They are slowly roasted to give them a strong flavor and packed soon after roasting which helps them maintain freshness for long.

Brazil is among the world’s largest coffee producers and their beans are inherently smooth which make Dark Brazilian Santos the smoothest dark roast coffee in the market. The coffee bean in this packaging possess the following qualities;
Rich in full-bodied flavor and maintains high smoothness.
Low in acidity making it a perfect choice for a dark roast with low levels of acid.
Fresh and smooth making them produce excellent espresso shots.
The beans are perfect for either drip coffee or espresso shots.
Have a mild complexity in the midst of lightly burnt and non-bitter taste.
You can subscribe and save more money.We recommend Dark Brazilian Santos to coffee drinkers who love strong and intense coffee flavor.

Coffee Bean Direct Jamaican Me Crazy

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

We are not paid by Coffee Bean Direct (still 🙂 they can feel free to send us some dollars) In our list we must include another cheap and great whole bean coffee by Coffee Bean Direct. The Jamaican Me Crazy coffee beans use a special coffee blend which helps bring best both natural and artificial flavors of these beans. The coffee beans are of high quality in addition to giving you value for money. They are strongly flavored using both natural and artificial flavors such as the tiny orange zests which make the orange flavored coffee.

These coffee beans have vanilla, café Maria liqueur, and caramel flavors in addition to the high-quality smoothness. They also possess a strong sweet smell that fills the house when you are brewing and possesses the following characteristics;
Jamaican Me Crazy is not to much acidic
It is fluffier with a rich and dense aroma.
Coffee flavor is excellent
These beans are packed such that they do not lose their flavor.If you like to try different flavored coffee than you must try Jamaican Me Crazy coffee beans.

Kirkland Signature Starbucks Espresso Blend

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

The Kirkland Signature is roasted by Starbucks and happens to be one of the best affordable dark roast whole bean coffee in the market. You can save more money if you buy 2 pack 32 ounce. Coffee beans has a strong French roast taste making it the perfect choice for those who love strong French coffee. Grinding these beans the right way gives you a taste, not so different from the Starbucks coffee.

They also have the benefit that they are compatible with automatic espresso or cappuccino machines. Additionally, these beans are not too oily and will, therefore, grind well in your machine. With these beans, you can mix with lots of milk to make a perfect latte. Other features of these coffee beans include;
Dark roasted to compliment the milk flavor for an excellent cup of latte.
The beans are full-bodied and bold.
They are rich, intense with a sweet caramelly flavor.
They are fresh tasting and properly roasted to minimize the brittleness.
Considering their quality, these beans are reasonably priced

If you like Starbucks French Roast than you must love Kirkland Espresso Blend. For this price this is the best dark roast (not too dark) coffee beans.

Lavanta Coffee Roasters Indonesia Flores Komodo

Coffee Supremacy Rating 9/10

☕☕☕☕☕☕☕☕☕

These coffee beans are made of the highest grade of 100 percent Arabica coffee from Flores Island, Indonesia. Additionally, they are passed through slow roasting in small batches which helps them retain a strong flavor. To ensure they reach to your while still fresh, the beans are packed immediately after roasting.

These beans are some of the cheapest whole bean coffee in the market and possess the following qualities;
Strong with a complex flavor.
Syrupy quality
They have a balanced acidity.
Lavanta Coffee Roasters have medium and dark roasted coffee beans.
They have a consistent roast that leaves the beans dark with no traces of burning.

San Francisco Bay Coffee, Decaf Gourmet Blend

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

These beans are a unique blend of high-quality Arabica coffee from around the world. They are richer and full-bodied than most other coffee beans. They make some of the best decaf coffee beans for home grinding which are available at an affordable price. These beans have the following features;
They have low acidity levels.
It is smooth with a strong taste making it hard to note that it is decaf.
They are medium-dark-roasted which prevent a bitter taste.
They have a natural caramel and cocoa flavor with hints of citrus.
Price for this coffee beans are not cheapest but this is one of the best price for decaf beans (but more expensive than most coffee beans on our list)

Cooper Moon Columbian Coffee

Cooper Moon beans are carefully roasted to produce light roasted quality coffee beans. It has a smooth taste with no traces of bitterness. Additionally, the beans make fresh and mild tasting coffee.

The Copper Moon Columbian Coffee is best for people who like adding sugar in their cup of coffee considering the little sour taste. These coffee beans are unique in that despite their affordability; they are also the best for picky coffee drinkers. They also give you value for money considering they come in three packs.

These coffee beans have the following qualities;
They have a mild flavor and smooth taste.
They are sweet light and don’t taste burnt.
They are solid choice for light medium roast coffee beans available at an affordable price.

Segafredo Casa Whole Beans Coffee

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

The Segafredo Casa whole beans coffee is Italian made feature a unique blend of highest quality Arabica and Robusta coffee. It has high-quality crema and strong aroma that enables you to brew barista like coffee. These coffee beans possess the following features;
High caffeine content
Rich crema
Segafredo Casa coffee beans is dark roasted with a strong aroma.
Has distinctive nut and ash taste but it is not burnt.
They are dry beans and have a long shelf life as long as you store under favorable temperatures.

These beans are some of the best affordable whole bean coffee which provide good crema quality even to those who have little barista skills.

Hills Bro 100% Columbian Coffee

Coffee Supremacy Rating 8/10

☕☕☕☕☕☕☕☕

Hills Bro coffee beans are dark roasted 100% Arabica coffee from Columbia. The quality is almost similar to that of Java Time only the Hills Bro are way affordable than the latter. These high-end coffee beans are for coffee lovers who want to enjoy a good cup without breaking the bank. They have the following qualities;
They are dark roast with no bitter taste.
They have a rich flavor and a smooth taste.
They have a well-balanced acidity and mellowness.

Despite the dark roast, this coffee is most suitable for people who don’t like French roast.

Coffee Master Flavored Cinnamon Hazelnut

Coffee Supremacy Rating 9/10

☕☕☕☕☕☕☕☕☕

These are 100% Arabica beans that are roasted and packed in the U.S. These beans are roasted with hazelnut and traces of cinnamon which give the coffee a tantalizing taste. They have the following features;
They are whole beans with subtle cinnamon and hazelnut flavor.
It is mountain water decaffeinated and caramelized with cinnamon.
It is freshly roasted
Kosher certified.
It is packed in nitrogen-flushed bags which help retain freshness.
Has a smooth taste

These coffee beans are the best for anyone looking full bodied coffee beans with no harshness and have a strong aroma for an affordable price.

The Organic Coffee Co-Sumatra Mandheling

Coffee Supremacy Rating 10/10

☕☕☕☕☕☕☕☕☕☕

These beans are entirely organic, and USDA certified. They are made from coffee bought from small-scale Indonesian farmers where it is grown without fertilizers or insecticides. This coffee has the following features;
Full-bodied with a syrupy flavor
It has little acidity
It is medium roasted with high consistency
Subscribe and save 5% or 15%

Jose’s Whole Bean Coffee Organic Mayan Blend

Coffee Supremacy Rating 9/10

☕☕☕☕☕☕☕☕☕

Jose’s gourmet coffee is one of the best cheapest coffee beans that is 100% organic. It has a delicious taste without the burnt taste. In addition to being organic, this coffee has a rich flavor complemented by the following attributes;
Medium dark roasted
Has a floral, delicate aroma
Chocolaty taste with a smooth finish.
It’s full bodied
The real deal about this coffee is that you can grind it with whey, yogurt protein, and walnut to produce and excellent taste.

Best cheapest whole bean coffee conclusion

These are the best affordable whole bean coffee you can find the market. On our list of best first of all we looked at the relationship price, quality and taste. You need to know that people have different opinion and what is good for us maybe is not good for you. But whichever coffee beans you choose from the ones discussed above, they have balanced flavors to make you savor very cup you drain. And you can save a lot of money buying some great and cheap coffee beans.

Amazon disclaimer

Coffeesupremacy.com participates in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com.


Q:

Matching selected option of specific html tag in java Regex

I have to parse some html to find a set of values from some HTML which isn't always well formed and I have no control over (so Scanner does not seem to be an option)
This is a shopping cart, and within the cart is n number of rows each containing a quantity dropdown. Now I want to be able to get the sum total of products in the cart.
Given this html, I would want to match the values 2 and 5
...
<select attr="other stuff" name="quantity">
    <option value="1" />
    <option value="2" selected="selected" />
</select>
....
<select name="quantity" attr="other stuff">
    <option selected="selected" value="5" />
    <option value="6" />
</select>

I've made a number of pitiful attempts but given the number of variables (for example order of the 'value' and 'selected' tags) most of my solutions either don't work or are really slow.
The last Java code I ended with is the following
Pattern pattern = Pattern.compile("select(.*?)name=\"quantity\"([.|\\n|\\r]*?)option(.*?)value=\"(/d)\" selected=\"selected\"", Pattern.DOTALL);
Matcher matcher = pattern.matcher(html);
if (matcher.find()) {
   ....
}

It's very slow and does not work when attribute order changes. My Regex knowledge is not good enough to write an efficient pattern

A:

Instead of using a regular expression, you can use an XPath expression to retrieve all value attributes for the HTML you have in the question:
//select[@name="quantity"]/option[@selected="selected"]/@value

In words:

Find all <select> elements within the XML with attribute name equal to quantity, with a subelement <option> with an attribute selected equal to selected
Retrieve the value attributes.

I would really consider trying with an XQuery/XPath, that's what it is made for. Read this answer to the question How to read XML using XPath in Java on how to retrieve the values. An introduction on XPath expressions here.

Consider the situation where in the future you then need to only find options where attribute selected="selected" and eg status="accepted". The XPath expression would simply become:
//select[@name="quantity"]/option[@selected="selected" and @status="accepted"]/@value

The XPath expression is easy to extend, easy to review, easy to prove what it is doing.
Now what kind of RegEx monster would you have to create for the added condition? Hard to write, even harder to maintain. How can a code-reviewer tell what the complex (cf bobble bubble's answer) regular expression is doing? How do you prove that the regular expression is actually doing what it is supposed to do?
You can of course document the regular expression, something you should always do for regular expressions. But that doesn't prove anything.
My advice: Stay away from regular expressions unless there is absolutely no other way.

For sports I made a snippet showing the basics of this way of working:
import java.io.StringReader;
import javax.xml.xpath.*;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

public class ReadElementsFromHtmlUsingXPath {
    private static final String html=
"Read more about XPath here..."+
"<select attr=\"other stuff\" name=\"quantity\">"+
    "<option value=\"1\" />"+
    "<option value=\"2\" selected=\"selected\" />"+
"</select>"+
"Oh and here's the second element"+
"<select name=\"quantity\" attr=\"other stuff\">"+
    "<option selected=\"selected\" value=\"5\" />"+
    "<option value=\"6\" />"+
"</select>"+
"And that's all folks";

    private static final String xpathExpr =
"//select[@name=\"quantity\"]/option[@selected=\"selected\"]/@value";

    public static void main(String[] args) {
        try {
            XPath xpath = XPathFactory.newInstance().newXPath();
            XPathExpression expr = xpath.compile(xpathExpr);
            NodeList nodeList = (NodeList) expr.evaluate(new InputSource(new StringReader(html)),XPathConstants.NODESET);
            for( int i = 0; i != nodeList.getLength(); ++i )
                System.out.println(nodeList.item(i).getNodeValue());
        } catch (XPathExpressionException e) {
            e.printStackTrace();
        }
    }
}

Result in output:
2
5

A:

Surely depends on how malformed your html could be. Parser solution to be preferred.
A regex that matches your requirement is not much of a challenge, just putting it together.
(?xi) # i-flag for caseless, x-flag for comments (free spacing mode)

# 1.) match <select with optional space at the end
<\s*select\s[^>]*?\bname\s*=\s*["']\s*quantity[^>]*>\s*

# 2.) match lazily any amount of options until the "selected"
(?:<\s*option[^>]*>\s*)*?

# 3.) match selected using a lookahead and capture number from value
<\s*option\s(?=[^>]*?\bselected)[^>]*?\bvalue\s*=\s*["']\s*(\d[.,\d]*)

Try pattern at regex101 or RegexPlanet (Java) and as a Java String:
"(?i)<\\s*select\\s[^>]*?\\bname\\s*=\\s*[\"']\\s*quantity[^>]*>\\s*(?:<\\s*option[^>]*>\\s*)*?<\\s*option\\s(?=[^>]*?\\bselected)[^>]*?\\bvalue\\s*=\\s*[\"']\\s*(\\d[.,\\d]*)"

There is not much magic in it. A long ugly pattern mostly because parsing html.

\s is a short for whitespace [ \t\r\n\f]
\d is a short for digit [0-9]
\b matches a word boundary
(?: opens a non capturing group
[^>] is the negation of > (matches characters, that are not >)
(?=[^>]*?\bselected) the check is done by use of a lookahead for being independent of order
(\d[.,\d]*) part to capture the number. Required is one digit with any optional [.,\d]

Matches would be in group(1) the first capturing group (parenthesized group).


Managers Of Atiku’s Radio, TV Station Fired

Fear of uncertainty has gripped the Yola based Gotel Communications owned by the former Vice President Atiku Abubakar as two general managers of his radio station, Radio Gotel, Alh.Sani Muhammad Usman and that of the television (TV Gotel), Muhammad Al-Amin were sacked for alleged dismal performance in revenue drive of the station.

Their sack followed a meeting of the board of directors of Gotel Communications, that approved the abolition of General Managers position in its tripartite mediums, namely: Radio Gotel, TV Gotel and Gotel FM, that begun test transmission.

The first Radio Gotel manager, a veteran broadcaster Alh.Bashir Mustafa was earlier forced to resign in a similar controversial circumstances. Already an interim Managing director in person of Engr. Joshua Hassan was appointed, to oversee the affairs of the three outfits,while appointment of the two general managers were terminated.

A reliable source from the board who wouldn’t want to be quoted told Daily Trust on Wednesday evening that the decision was part of efforts to ,’’sanitize the mediums to achieve desired result particularly in revenue drive.”

The source further said: “It’s unfortunate that TV Gotel, a world class TV outfit with state-of-the-art engineering, back-up and sound professionals in a developing environment is operating below expectations.’’

Efforts to get comments from the new interim MD as well as the sacked two general managers, proved abortive.


<!DOCTYPE html>

	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Checkbox - jQuery Mobile Demos</title>
	<link rel="shortcut icon" href="../favicon.ico">
	<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700">
	<link rel="stylesheet" href="../css/themes/default/jquery.mobile-1.4.5.min.css">
	<link rel="stylesheet" href="../_assets/css/jqm-demos.css">

 Demos

		Menu
		Search

Checkbox

Checkbox inputs are used to provide a list of options where more than one can be selected. Checkbox buttons are enhanced by the checkboxradio widget.

Basic markup

To create a single checkbox, add an input with a type="checkbox" attribute and a corresponding label. If the input isn't wrapped in its corresponding label, be sure to set the for attribute of the label to match the id of the input so they are semantically associated.

			<form>

					<input type="checkbox" name="checkbox-0 ">Check me

			</form>

Mini size

For a more compact version that is useful in toolbars and tight spaces, add the data-mini="true" attribute to the element to create a mini version.

			<form>
				<input type="checkbox" name="checkbox-mini-0" id="checkbox-mini-0" data-mini="true">
				I agree
			</form>

Vertical group

Typically, there are multiple checkboxes listed under a question title. To visually integrate multiple checkboxes into a grouped button set, the framework will automatically remove all margins between buttons and round only the top and bottom corners of the set if there is a  data-role="controlgroup" attribute on the fieldset.

			<form>
				<fieldset data-role="controlgroup">
					<legend>Vertical:</legend>
					<input type="checkbox" name="checkbox-v-2a" id="checkbox-v-2a">
					One
					<input type="checkbox" name="checkbox-v-2b" id="checkbox-v-2b">
					Two
					<input type="checkbox" name="checkbox-v-2c" id="checkbox-v-2c">
					Three
				</fieldset>
			</form>

Horizontal group

Checkboxes can also be used for grouped button sets where more than one button can be selected at once, such as the bold, italic and underline button group seen in word processors. To make a horizontal button set, add the  data-type="horizontal" to the fieldset.

			<form>
				<fieldset data-role="controlgroup" data-type="horizontal">
					<legend>Horizontal:</legend>
					<input type="checkbox" name="checkbox-h-2a" id="checkbox-h-2a">
					One
					<input type="checkbox" name="checkbox-h-2b" id="checkbox-h-2b">
					Two
					<input type="checkbox" name="checkbox-h-2c" id="checkbox-h-2c">
					Three
				</fieldset>
			</form>

Icon position

To swap the position of the check icon from the default position on the left, add the data-iconpos="right" attribute to the fieldset to create a mini version.

			<form>
				<fieldset data-role="controlgroup" data-iconpos="right">
					<legend>Icon right:</legend>
					<input type="checkbox" name="checkbox-h-6a" id="checkbox-h-6a">
					One
					<input type="checkbox" name="checkbox-h-6b" id="checkbox-h-6b">
					Two
					<input type="checkbox" name="checkbox-h-6c" id="checkbox-h-6c">
					Three
				</fieldset>
			</form>

Theme

To set the theme, add the data-theme attribute on the fieldset to the individual checkbox inputs.

			<form>
				<fieldset data-role="controlgroup">
					<legend>Swatch B:</legend>
					<input type="checkbox" name="checkbox-t-2a" id="checkbox-t-2a" data-theme="b">
					One
					<input type="checkbox" name="checkbox-t-2b" id="checkbox-t-2b" data-theme="b">
					Two
					<input type="checkbox" name="checkbox-t-2c" id="checkbox-t-2c" data-theme="b">
					Three
				</fieldset>
			</form>

Disabled

			<form>
				<input disabled type="checkbox" name="checkbox-t-3a" id="checkbox-t-3a" data-theme="a">
				One
			</form>

Enhanced

				I agree
				<input type="checkbox" name="checkbox-enhanced" id="checkbox-enhanced" data-enhanced="true">

Home

Introduction

Buttons

Button widget

		    Checkboxradio widget click to expand contents

Checkboxes

Radio buttons

			Collapsible (set) widget click to expand contents

Collapsible

Dynamic collapsibles

Collapsible set

			Controlgroup widget click to expand contents

Controlgroup

Dynamic controlgroups

Datepicker

			Events click to expand contents

Swipe list items

Swipe page navigation

Filterable widget

Flipswitch widget

			Forms click to expand contents

Forms

Hide labels

Field containers

Forms disabled

Forms gallery

			Grids click to expand contents

Grids

Buttons in grids

Custom responsive grids

Grouping and dividing content

			Icons click to expand contents

Icons

Grunticon loader

			Listview widget click to expand contents

Listview

Listview autocomplete

Listview autocomplete remote data

Listview autodividers linkbar

Listview autodividers selector

Nested Listviews

Listview collapsible list items (flat)

Listview collapsible list items (indented)

Listview responsive grid

Loader widget

Navbar widget

			Navigation click to expand contents

Navigation

Linking pages

Hash processing demo

Page Navigation Events

			Pages click to expand contents

Pages

Single page

Multi-page template

Dialog page

			Panel widget click to expand contents

Panel

External panels

Fixed panels

Panels responsive

Custom panel style

Panel open on swipe

Panel external and internal

			Popup widget click to expand contents

Popup

Popup alignment

Popup arrow size

Dynamic popups

Popups with iframes

Popup image scaling

Popup outside multi-page

Rangeslider widget

Responsive Web Design

			Selectmenu widget click to expand contents

Selectmenu

Custom select menu

Custom select menu with filter

			Slider widget click to expand contents

Slider

Slider flip toggle switch

Slider tooltip

			Table widget click to expand contents

Table Column Toggle

Table Column Toggle demo

Table Column Toggle heading groups

Table Column Toggle options

Table Reflow

Table Reflow heading groups

Table Reflow stripes and strokes

Table Reflow custom styles

Tabs widget

Textinput widget

			Theming click to expand contents

Default theme

Classic theme

			Toolbar widget click to expand contents

Toolbar

Dynamic toolbars

External toolbars

Fixed toolbars

Fullscreen toolbars

Fixed external toolbars

Persistent toolbars

Ajax optimized toolbars

Form in toolbar

Transitions

			3rd party API demos click to expand contents

Backbone RequireJS

Google Maps geolocation

Google Maps list toggle

jQuery Mobile Demos version

Copyright 2014 The jQuery Foundation

Home

Introduction

Buttons

Button widget

		    Checkboxradio widget click to expand contents

Checkboxes

Radio buttons

			Collapsible (set) widget click to expand contents

Collapsible

Dynamic collapsibles

Collapsible set

			Controlgroup widget click to expand contents

Controlgroup

Dynamic controlgroups

Datepicker

			Events click to expand contents

Swipe list items

Swipe page navigation

Filterable widget

Flipswitch widget

			Forms click to expand contents

Forms

Hide labels

Field containers

Forms disabled

Forms gallery

			Grids click to expand contents

Grids

Buttons in grids

Custom responsive grids

Grouping and dividing content

			Icons click to expand contents

Icons

Grunticon loader

			Listview widget click to expand contents

Listview

Listview autocomplete

Listview autocomplete remote data

Listview autodividers linkbar

Listview autodividers selector

Nested Listviews

Listview collapsible list items (flat)

Listview collapsible list items (indented)

Listview responsive grid

Loader widget

Navbar widget

			Navigation click to expand contents

Navigation

Linking pages

Hash processing demo

Page Navigation Events

			Pages click to expand contents

Pages

Single page

Multi-page template

Dialog page

			Panel widget click to expand contents

Panel

External panels

Fixed panels

Panels responsive

Custom panel style

Panel open on swipe

Panel external and internal

			Popup widget click to expand contents

Popup

Popup alignment

Popup arrow size

Dynamic popups

Popups with iframes

Popup image scaling

Popup outside multi-page

Rangeslider widget

Responsive Web Design

			Selectmenu widget click to expand contents

Selectmenu

Custom select menu

Custom select menu with filter

			Slider widget click to expand contents

Slider

Slider flip toggle switch

Slider tooltip

			Table widget click to expand contents

Table Column Toggle

Table Column Toggle demo

Table Column Toggle heading groups

Table Column Toggle options

Table Reflow

Table Reflow heading groups

Table Reflow stripes and strokes

Table Reflow custom styles

Tabs widget

Textinput widget

			Theming click to expand contents

Default theme

Classic theme

			Toolbar widget click to expand contents

Toolbar

Dynamic toolbars

External toolbars

Fixed toolbars

Fullscreen toolbars

Fixed external toolbars

Persistent toolbars

Ajax optimized toolbars

Form in toolbar

Transitions

			3rd party API demos click to expand contents

Backbone RequireJS

Google Maps geolocation

Google Maps list toggle


Refractory epilepsy: a progressive, intractable but preventable condition?
Intractable seizures are just one manifestation of 'refractory epilepsy', which can be recognized as a distinct condition with multifaceted dimensions, including neurobiochemical plastic changes, cognitive decline and psychosocial dysfunction, leading to dependent behaviour and a restricted lifestyle. The biological basis of 'refractoriness' is likely to be multifactorial, and may include the severity of the syndrome and/or underlying neuropathology, abnormal reorganization of neuronal circuitry, alteration in neurotransmitter receptors, ion channelopathies, reactive autoimmunity, and impaired antiepileptic drug (AED) penetration to the seizure focus. Some of these deleterious changes may be a consequence of recurrent seizures. We hypothesize that 'refractory epilepsy' may be prevented by interrupting this self-perpetuating progression. There is increasing evidence that these patients can be identified early in the clinical course and, thus, be targeted early for effective therapeutic intervention. Failure of two first-line AEDs due to lack of efficacy or poor tolerability should prompt consideration of epilepsy surgery in a patient with a resectable brain abnormality. For the majority not suitable for 'curative' surgery, AEDs should be combined with the aim of achieving 'synergism'. This strategy has the potential to improve outcome by preventing the insidious progression to intractable 'refractoriness' and a downward spiraling quality of life.


Shillong Lajong Football Club will look to add to its list of foreign players in the roster as Taisuke Matsugae a footballer from Japan is currently in India, and is on a 2 week trial with the North-Eastern I-League club.

The 30 year old striker has been training with the Lajong squad but no final decision has been taken whether the J-League footballer will be signed by the club as the fourth foreigner in its ranks.

Matsugae who previously played in Japan's J-League for JEF United Ichihara departed along with the squad today ahead of their I-League round 17 encounter against Pailan Arrows on Sunday, and will be expected to play upfront, should he be deemed fit to play for the Club. This development will be a positive sign for Shillong Lajong, as the team will surely benefit from the strikerís experience and capabilities.

Host's Maharashtra qualified for the knock-out stage in both age-groups of the Pune Football Club 58th National School Football Under-17,19 Girls Championship 2012-13, organised by Directorate of Sports and Youth Services, Pune, Maharashtra and Zilla Krida Parishad, at Balewadi Sports Complex, on Thursday.

Maharashtra Under-17s topped Group-A, despite losing their last league game to defending champions Nagaland 0-2. As a result, the group ended in a three-way tie with Goa being the other team. However, a better goal average by the hosts (+2) as compared to Nagaland (+1) ensured that they qualified for the quarterfinals.

Nagaland, who faced a must win situation to advance made it to the prequarterfinals as runners-up of the group. As per the draw group toppers of Group-A, B, C and D earn a 'bye' into the last-8. Meanwhile, the State Under-19 team finished runners-up in Group-D and entered the quarterfinals.

While the day belonged to teams pushing every bit to force a result and qualify, the Under-17 Group-C match between Haryana and Chandigarh turned in the best individual effort. At the Pune FC Training Pitch, Mamurdi, Haryana's Sanju netted 10 goals to spearhead her team to a 14-0 victory over Chandigarh. Haryana topped the group and Sanju has so far emerged the top-scorer in the tournament with 11 goals, after her feat stands out in both age-groups.

Meanwhile, the four Under-17 teams who topped and earned a berth in the quarterfinals are: Maharashtra (Group-A), Bihar (Group-B), Jharkhand (Group-C) and Manipur (Group-D). All teams earned a 'bye' in the pre-quarterfinals.

On the other hand, Nagaland (Group-A), Delhi (Group-B), Haryana (Group-C), Madhya Pradesh (Group-D), who finished runners up respectively joined Assam and Mizoram (Group-E) and Tamil Nadu and Chhattisgarh (Group-F) in the prequarterfinals and will fight it out for four last-8 places on Friday.

Similarly, in the Under-19 section, Goa (Group-A), Tamil Nadu (Group-B), West Bengal (Group-C) and Odisha (Group-D) made the last-8. Those moving into the pre-quarterfinals were, Gujarat (Group-A), Madhya Pradesh (Group-B), Uttrakhand (Group-C), Maharashtra (Group-D), who finished runners up respectively and joined Jharkhand and Uttar Pradesh (Group-E) and Haryana and Chhattisgarh (Group-F).


Q:

Transposing rows into columns based on a condition sql

I have a following table (a simplified example, in fact the table contains multiple IDs, with variable numbers of dates, and variable number of events for each date):
IDs   Date                  Event
102   1996-10-16 00:00:00   A
102   1996-10-23 00:00:00   A
102   1996-10-23 00:00:00   B
102   1997-01-14 00:00:00   A
103   1997-01-14 00:00:00   D
103   1997-01-15 00:00:00   A
103   1997-01-16 00:00:00   A
103   1997-01-16 00:00:00   B
103   1997-01-16 00:00:00   C

I am trying to get a table where I will have distinct IDs/Date pairs, with the rows for which there have been multiple events recoded being transposed into columns. So, I'm looking for a table which for this example would look like this:
IDs   Date                  Event   Event2   Event3
102   1996-10-16 00:00:00   A       NULL     NULL
102   1996-10-23 00:00:00   A       B        NULL
102   1997-01-14 00:00:00   A       NULL     NULL
103   1997-01-14 00:00:00   D       NULL     NULL
103   1997-01-15 00:00:00   A       NULL     NULL
103   1997-01-16 00:00:00   A       B        C

I'm sorry for not posting any code, but I frankly don't even know how to start with this.

A:

Details about PIVOT method.
And helpfull answers:
Using PIVOT in SQL Server 2008
MSSQL dynamic pivot column values to column header
Try this code:
-- Temporary table...
create table ##myTable (
        IDs int
        ,[Date] datetime
        ,[Event] varchar(1)
        )

-- ... with sample data
insert ##myTable
        select 102, '2010-01-01', 'A'
union   select 102, '2010-01-01', 'B'
union   select 102, '2010-01-01', 'C'
union   select 102, '2010-01-01', 'E'
union   select 103, '2010-01-01', 'A'
union   select 104, '2010-01-01', 'B'
union   select 104, '2010-01-01', 'C'
union   select 105, '2010-01-01', 'F'

-- Variables
DECLARE @cols   AS NVARCHAR(MAX)
        ,@query AS NVARCHAR(MAX)

-- Build column name for our result.
-- The ROW_NUMBER() operator gives us the rank of the event for
-- the combination of IDs and Date. With that, event B for IDs 104
-- will have rank 1, and then will appear in the 1st column.
SELECT  @cols = STUFF(
                       (SELECT  DISTINCT
                        ',' + QUOTENAME('Event' + LTRIM(STR(
                                    ROW_NUMBER() OVER (
                                        PARTITION BY IDs, [Date]
                                        ORDER BY IDs, [Date]
                                    )
                                )))
                        FROM    ##myTable
                        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')
                    , 1, 1, '')

set @query = '
    SELECT  IDs, [Date], ' + @cols + '
    FROM    (
            SELECT  IDs
                    ,[Date]
                    ,[Event]
                    ,''Event'' + LTRIM(STR(
                            ROW_NUMBER() OVER (
                                PARTITION BY IDs, [Date]
                                ORDER BY IDs, [Date]
                            )
                    )) as [EventNo]
            FROM    ##myTable
            ) x
    PIVOT
            (
            MAX([Event])
            FOR [EventNo] IN (' + @cols + ')
            ) p'

execute sp_executesql @query

-- Remove temporary table
drop table ##myTable

And the result :


package org.zkoss.zktest.zats.test2;

import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import org.junit.Test;

import org.openqa.selenium.Keys;
import org.zkoss.zktest.zats.WebDriverTestCase;
import org.zkoss.zktest.zats.ztl.JQuery;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * @author jameschu
 */
public class B36_2678340Test extends WebDriverTestCase {
	@Test public void test() {
		connect();
		// Click upper button twice
		click(jq(".z-timebox").toWidget().$n("btn-down"));
		waitResponse();
		click(jq(".z-timebox").toWidget().$n("btn-down"));
		waitResponse();

		JQuery tb = jq("$tb1");
		// Value of the label
		String v = tb.find("input").val();
		// Location of time separator ':'
		int p = v.indexOf(":");
		// Construct a parseable time format
		String value1 = v.substring(p - 2, p + 6);
		// value of the timebox
		String r = jq(tb.toWidget().$n("real")).val();
		p = r.indexOf(":");
		String value2 = r.substring(p - 2, p + 6);

		DateFormat df1 = new SimpleDateFormat("hh:mm:ss");
		Calendar calendar = Calendar.getInstance();
		try {
			calendar.setTime(df1.parse(value1));
		} catch (ParseException e) {
			e.printStackTrace();
			fail();
		}

		int hh1 = calendar.get(Calendar.HOUR_OF_DAY);
		int mm1 = calendar.get(Calendar.MINUTE);
		int ss1 = calendar.get(Calendar.SECOND);

		try {
			calendar.setTime(df1.parse(value2));
		} catch (ParseException e) {
			e.printStackTrace();
			fail();
		}
		int hh2 = calendar.get(Calendar.HOUR_OF_DAY);
		int mm2 = calendar.get(Calendar.MINUTE);
		int ss2 = calendar.get(Calendar.SECOND);

		assertTrue("The time value should of the label should be equal to the timebox", hh1 == hh2 && mm1 == mm2 && ss1 == ss2);

		// Click upper button again
		click(jq(".z-timebox").toWidget().$n("btn-up"));
		sendKeys(tb.toWidget().$n("real"), Keys.TAB);

		// Click on show value button again
		click(jq("@button"));
		waitResponse();

		try {
			calendar.setTime(df1.parse(value1));
		} catch (ParseException e) {
			e.printStackTrace();
			fail();
		}

		hh1 = calendar.get(Calendar.HOUR_OF_DAY);
		mm1 = calendar.get(Calendar.MINUTE);
		ss1 = calendar.get(Calendar.SECOND);

		try {
			calendar.setTime(df1.parse(value2));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		hh2 = calendar.get(Calendar.HOUR_OF_DAY);
		mm2 = calendar.get(Calendar.MINUTE);
		ss2 = calendar.get(Calendar.SECOND);

		assertTrue("The time value should of the label should be equal to the timebox", hh1 == hh2 && mm1 == mm2 && ss1 == ss2);
	}
}


So my biceps and triceps are sore from my back and chest workouts. I did them 2 days in a row. Now its the 3rd day of continuous workouts due to trying to catch up previous week's 'lost' days. This doesn't happen too often though. Should I train or skip them ? Note that if I skip them I will train them next week, so that gives me 2 weeks of on direct arm training.. Sucks lol

my advice to you is if you miss too much in a week do a FULL body workout and that will cover everything and put you in a maintenance mode.. better than training too much in one or two workouts. But just my opinion...because this is what i do. Arms are trained in a back and chest workout as you yourself wrote too.

I used to worry about how I would make up a missed session. These days, I don't even give it a second thought.

No matter what kind of split I'm following, I simply pick up by doing whatever is normally scheduled for the day I resume. I've found that any further changes made by attempting to "catch up" just throw me off, so to speak, on my proceeding training days.

well you know i have missed a weeks training and went back and felt refreshed.. " the pause that refreshes". Of course you should train regular but the body will enjoy a break too. Do not worry just pick up again.


Q:

how to solve for the unknowns given two equating polynomials in mathematica

I have, for example, the following polynomials to be equated, and I need to determine the unknowns c1, c2, c3, respectively. How can I do this automatically in mma, especially when there are many terms involved?
x+2*x^3+4*x^5==(c1+c2)*(x+2*c2*x^3)+(4-c1)*c3*x^5

Many thanks.
Edit: ideally, I want to equate the coefficients of left and right for the terms with equal exponents in x. Then solve this system of equations.

A:

If this has to be true for all x, you could use SolveAlways (not tested)
SolveAlways[x+2*x^3+4*x^5==(c1+c2)*(x+2*c2*x^3)+(4-c1)*c3*x^5, x]


/* (C) 1999-2001 Paul `Rusty' Russell
 * (C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/module.h>
#include <net/ip.h>
#include <net/tcp.h>
#include <net/route.h>
#include <net/dst.h>
#include <net/netfilter/ipv4/nf_reject.h>
#include <linux/netfilter_ipv4.h>
#include <net/netfilter/ipv4/nf_reject.h>

const struct tcphdr *nf_reject_ip_tcphdr_get(struct sk_buff *oldskb,
					     struct tcphdr *_oth, int hook)
{
	const struct tcphdr *oth;

	/* IP header checks: fragment. */
	if (ip_hdr(oldskb)->frag_off & htons(IP_OFFSET))
		return NULL;

	oth = skb_header_pointer(oldskb, ip_hdrlen(oldskb),
				 sizeof(struct tcphdr), _oth);
	if (oth == NULL)
		return NULL;

	/* No RST for RST. */
	if (oth->rst)
		return NULL;

	/* Check checksum */
	if (nf_ip_checksum(oldskb, hook, ip_hdrlen(oldskb), IPPROTO_TCP))
		return NULL;

	return oth;
}
EXPORT_SYMBOL_GPL(nf_reject_ip_tcphdr_get);

struct iphdr *nf_reject_iphdr_put(struct sk_buff *nskb,
				  const struct sk_buff *oldskb,
				  __be16 protocol, int ttl)
{
	struct iphdr *niph, *oiph = ip_hdr(oldskb);

	skb_reset_network_header(nskb);
	niph = (struct iphdr *)skb_put(nskb, sizeof(struct iphdr));
	niph->version	= 4;
	niph->ihl	= sizeof(struct iphdr) / 4;
	niph->tos	= 0;
	niph->id	= 0;
	niph->frag_off	= htons(IP_DF);
	niph->protocol	= protocol;
	niph->check	= 0;
	niph->saddr	= oiph->daddr;
	niph->daddr	= oiph->saddr;
	niph->ttl	= ttl;

	nskb->protocol = htons(ETH_P_IP);

	return niph;
}
EXPORT_SYMBOL_GPL(nf_reject_iphdr_put);

void nf_reject_ip_tcphdr_put(struct sk_buff *nskb, const struct sk_buff *oldskb,
			  const struct tcphdr *oth)
{
	struct iphdr *niph = ip_hdr(nskb);
	struct tcphdr *tcph;

	skb_reset_transport_header(nskb);
	tcph = (struct tcphdr *)skb_put(nskb, sizeof(struct tcphdr));
	memset(tcph, 0, sizeof(*tcph));
	tcph->source	= oth->dest;
	tcph->dest	= oth->source;
	tcph->doff	= sizeof(struct tcphdr) / 4;

	if (oth->ack) {
		tcph->seq = oth->ack_seq;
	} else {
		tcph->ack_seq = htonl(ntohl(oth->seq) + oth->syn + oth->fin +
				      oldskb->len - ip_hdrlen(oldskb) -
				      (oth->doff << 2));
		tcph->ack = 1;
	}

	tcph->rst	= 1;
	tcph->check = ~tcp_v4_check(sizeof(struct tcphdr), niph->saddr,
				    niph->daddr, 0);
	nskb->ip_summed = CHECKSUM_PARTIAL;
	nskb->csum_start = (unsigned char *)tcph - nskb->head;
	nskb->csum_offset = offsetof(struct tcphdr, check);
}
EXPORT_SYMBOL_GPL(nf_reject_ip_tcphdr_put);

/* Send RST reply */
void nf_send_reset(struct sk_buff *oldskb, int hook)
{
	struct sk_buff *nskb;
	const struct iphdr *oiph;
	struct iphdr *niph;
	const struct tcphdr *oth;
	struct tcphdr _oth;

	oth = nf_reject_ip_tcphdr_get(oldskb, &_oth, hook);
	if (!oth)
		return;

	if (skb_rtable(oldskb)->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST))
		return;

	oiph = ip_hdr(oldskb);

	nskb = alloc_skb(sizeof(struct iphdr) + sizeof(struct tcphdr) +
			 LL_MAX_HEADER, GFP_ATOMIC);
	if (!nskb)
		return;

	/* ip_route_me_harder expects skb->dst to be set */
	skb_dst_set_noref(nskb, skb_dst(oldskb));

	skb_reserve(nskb, LL_MAX_HEADER);
	niph = nf_reject_iphdr_put(nskb, oldskb, IPPROTO_TCP,
				   ip4_dst_hoplimit(skb_dst(nskb)));
	nf_reject_ip_tcphdr_put(nskb, oldskb, oth);

	if (ip_route_me_harder(nskb, RTN_UNSPEC))
		goto free_nskb;

	/* "Never happens" */
	if (nskb->len > dst_mtu(skb_dst(nskb)))
		goto free_nskb;

	nf_ct_attach(nskb, oldskb);

#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
	/* If we use ip_local_out for bridged traffic, the MAC source on
	 * the RST will be ours, instead of the destination's.  This confuses
	 * some routers/firewalls, and they drop the packet.  So we need to
	 * build the eth header using the original destination's MAC as the
	 * source, and send the RST packet directly.
	 */
	if (oldskb->nf_bridge) {
		struct ethhdr *oeth = eth_hdr(oldskb);
		nskb->dev = oldskb->nf_bridge->physindev;
		niph->tot_len = htons(nskb->len);
		ip_send_check(niph);
		if (dev_hard_header(nskb, nskb->dev, ntohs(nskb->protocol),
				    oeth->h_source, oeth->h_dest, nskb->len) < 0)
			goto free_nskb;
		dev_queue_xmit(nskb);
	} else
#endif
		ip_local_out(nskb);

	return;

 free_nskb:
	kfree_skb(nskb);
}
EXPORT_SYMBOL_GPL(nf_send_reset);

MODULE_LICENSE("GPL");


This is the character Jemma Simmons (actress Elizabeth Henstridge) from the TV show 'Marvel's Agents of S.H.I.E.L.D.'. This is rendered using charcoal pencils (black and white, soft), compressed sticks (hard), and a kneaded eraser. Enjoy!


FRINGE SCIENCE

Hollywood: Through The Google Glass

Imagine taking the ultimate leap of faith, jumping out of an airplane with only a parachute to regulate your fall. Now, imagine that your descent could be captured on film, from your exact point of view.

We'll let you in on a little secret, it’s possible.

Recording videos from the user’s point of view is only one of the many features that are packed into Google’s newest innovation, the Google Glass. The small rectangular screen and sleek frame may look like something straight out of a science-fiction movie, but the laundry-list of features packed into one tiny Glass makes it fairly easy to acclimate oneself to the space-age aesthetic. Glass can take photos, record video and surf the web; all controlled by voice commands or the slightest touch. Still confused about what this all looks like? Check out the video below for a sneak peek into what a day wearing Glass could look like.

Itching to take a pair for a spin yet? So were we!

The Exchange hosted a one-night event at the Binoculars Building, Google’s new home in Venice, California, last December. The event put Google’s newest and hottest toy into the hands, and onto the faces, of Hollywood’s hit-makers. Head of the Google Glass project, Babak Parviz was on hand to discuss the process of creating the technology, as well as to provide audience members with hands on, or should we say hands off, demonstrations of the glass.

Take a look at some of the event photos below to really see what happens when Hollywood and technological innovation collide.


In a mobile radio system which operates according to the TDMA principle, i.e., the different radio channels are time divided in different time slots and different carrier frequencies, where one radio channel occupies a given time slot and a given frequency, there is a need to be able to establish the identity of a given radio channel. The radio channel may, for instance, be an access channel, a control channel or (as is most usual) a traffic channel. It is known to introduce into the time slot a special bit field which states this identity.
In a mobile radio system, radio signals are transmitted in the different channels over media which can give rise to errors in the information transmitted and thus also in errors in the bit field denoting channel identity. The errors are caused by the properties of the radio media, such as errors caused by fading and multipath propagation.
In order to correct these transmission errors, so-called channel coding is introduced in channel transmission, which involves the addition of further bits to the information bits. This block of bits being coded in accordance with a given code prior to transmission over the radio medium. An example of one such code is the so-called convolution code for code-word lengths of 2-10 bits, where the bits in a code-word are dependent on the bits in preceding code-words. A given code, for instance a convolution code, is generated with the aid of a generator polynomial or a code polynomial of the kind EQU g(x)=1+a.sub.1 x+a.sub.2 x.sup.3 +.. a.sub.n x.sup.n
where some of the coefficients a.sub.1, ...,a.sub.n are=0.
The introduction of redundant bits and/or code information bits with the aid of generator polynomials apparently causes the block length to grow and requires greater processor capacity both when channel coding in the transmitter-and when channel decoding in the receiver. This problem is most noticeable when receiving in a mobile station in which the requisite processor capacity for channel decoding must not be too high.
Another known method of distinguishing between the identities of different radio channels involves the use of different coding schedules when channel coding. For instance, the aforesaid convolution coding can be used, although with different rates for the speech channels and the control channels respectively. Generally, the code rate is defined as EQU R=k/n,
where k=the number of information bits in each code-word and n=the number of bits in each code-word. According to the above, a given value R1 can be used for coding the speech channels and another value R2 can be used for coding the control channels.
This known method involves the necessity of completely decoding all candidates and the selection of the channel which passes the error discovery test. Although this method is reliable, the problem of high complexity upon reception in a mobile station remains.


---
author:
- |
    Robert Beverly\
    \
- |
    Mark Allman\
    \
title: An Internet Heartbeat
---

**Abstract—** Obtaining sound inferences over remote networks via active or passive measurements is difficult. Active measurement campaigns face challenges of load, coverage, and visibility. Passive measurements require a privileged vantage point. Even networks under our own control too often remain poorly understood and hard to diagnose. As a step toward the democratization of Internet measurement, we consider the inferential power possible were the network to include a constant and predictable stream of dedicated lightweight measurement traffic. We posit an Internet “heartbeat,” which nodes periodically send to random destinations, and show how aggregating heartbeats facilitates introspection into parts of the network that are today generally obtuse. We explore the design space of an Internet heartbeat, potential use cases, incentives, and paths to deployment.

Introduction {#sec:intro}
============

Much recent effort has gone into developing an understanding of the presence and properties of *all* end hosts on the Internet using three primary strategies. The first strategy is active scanning, whereby probes are sent to every IPv4 address and responses are collected [@heidemann2008census; @durumeric2013zmap]. The second strategy is for providers with large footprints (e.g., Google or Akamai) to collect information about the client devices (and their networks) that request service [@Richter:2016:BCN:2987443.2987473; @flach2016internet]. The final strategy is to monitor “background radiation” arriving at a swath of unused address space (network telescopes) [@wustrow2010internet; @dainotti11analysis; @moore2004network]. Each of these strategies is helpful in understanding the Internet in-the-large, but each also has significant drawbacks in terms of coverage, feasibility, visibility, and inferential power. For instance, scanning probes are frequently considered abusive and blocked, are unlikely to traverse middleboxes, and require large amounts of probing, while deriving an understanding from observing legitimate client requests requires a massive global footprint, and hence the information is concentrated in few hands. Finally, using telescopes depends on hosts accidentally sending traffic to the unused address space being monitored.

In this position paper we advocate for a new strategy: an *Internet Heartbeat* (IHB). Rather than relying on happenstance—e.g., a packet arrival at a darknet—or trying to look in from the outside—e.g., trying to reach each host with a probe—we explicitly bring all hosts into the measurement process by calling for them to transmit a continuous, low-rate stream of messages into the network. This allows endpoints or observers along the path to expect these messages and, hence, gain valuable insight into the network. At a high-level—which we refine below—any node with a network stack can source and receive IHBs. Participating hosts periodically send a packet to a random destination that includes various metadata. Observation points—anything from a single host to a border router to a backbone link—can examine these packets to facilitate introspection into myriad parts of the network, including those that are today generally not observable and for which there is no longitudinal data. While simple, we believe that an IHB is a powerful mechanism that will enable operators, researchers, and policy-makers to make more informed and complete inferences over the network, as well as support new functionality. Further, IHBs can directly benefit users who currently have only limited insight into their network’s reliability, performance, and availability, and still struggle to distinguish between network problems originating locally, remotely, or with their provider. In particular IHBs enable:

-   Any observer to have a global view akin to large providers who make strong inferences from client traffic [@Richter:2016:BCN:2987443.2987473; @flach2016internet]..

-   Common measurements to be made passively—at the IHB receiver—without issues of completeness, locality, or blocking.

-   Continuity, enabling longitudinal measurement, inferences, and learning rather than a myriad of one-off surveys and on-demand measurement campaigns.

-   Stronger inferences, that are easier to reason over, than possible via opportunistic measurements.

-   Users to gain insight into their own network’s reliability, and performance, while providing diagnostic capabilities, thereby encouraging deployment.

In this position paper, we sketch the design space of an IHB and consider its potential via candidate use cases, as well as overhead, feasibility, and deployment issues.

Related Work
============

Significant prior literature focuses on performing passive measurement inferences. In addition to legitimate traffic, non-trivial levels of “background radiation” [@wustrow2010internet] arrive at networks due to self-propagating malware, security scanners, and attacks. Casado [et al.]{}show the wealth of information that can be gleaned passively [@casado2005opportunistic], while Durairajan [et al.]{}leverage NTP server logs to estimate Internet latencies [@durairajan2015time]. Dainotti [et al.]{}demonstrate how background radiation [@moore2004network] provides insight into global outage and censorship events [@dainotti11analysis]. Finally, Sargent [et al.]{}infer network policies from traffic arriving at darknets [@SCAB15]. While such opportunistic measurement is powerful, analysis and inference is complicated by the vagaries of attacks, the spread and mitigation of malware, and what networks are affected. In addition to generalizing opportunistic measurement, we show that periodic IHBs permit stronger probabilistic inferences.

Individual networks frequently perform regular pair-wise measurements between nodes or networks under their control, [e.g.,]{} Content Distribution Networks (CDNs) that run continual measurements to detect and route around path problems [@nygren2010akamai]. The IHB seeks to push such functionality deeper into the network stack such that all networks are empowered with such knowledge without having to implement their own application-layer protocols and measurements. As importantly, the IHB disseminates global knowledge about the Internet, rather than focusing on an individual network.

Related in spirit to our heartbeats are BGP beacons [@mao2003bgp]. BGP beacons are periodic announcements and withdrawals of specific prefixes for the explicit purpose of measuring and understanding real-world BGP behavior and dynamics. BGP beacons have served as enablers of important research efforts to understand and improve routing, [e.g.,]{}[@Wang:2006:MSI:1159913.1159956]. In a similar fashion, our hope is that the IHB enables new measurements and insights into the global Internet.

Finally, we note that many distributed systems employ the “heartbeat” notion—i.e., a periodic signal to assert liveness [@rfc4271; @bless-rfc5880; @barborak1993consensus; @vogels1996world] and achieve reliability. A key motivation for heartbeats is that a node cannot rely on naturally occurring, event-driven protocol messages to ascertain another node’s health as silent failures or system changes cannot be detected [@kawazoe1997heartbeat]. Our work extends the heartbeat notion to the Internet.

IHB Design {#sec:design}
==========

As early-stage work, we elect to explore various design alternatives. In general, we follow designs that use existing protocols, are incrementally deployable (today), permit probabilistic inference, and minimize the security burden.

Transport Protocol {#sec:design:transport}
------------------

Choosing which transport protocol IHBs should use involves a complex set of tradeoffs. A new transport protocol number would cleanly enable IHBs over IP, but would likely cause IHBs to be discarded or treated differently by today’s network [@detal2013revealing]. Similarly, adding IHBs as an IP option is not feasible due to network ossification [@fonseca2005ip]. While using UDP or TCP for IHBs more closely mimics application traffic, it also brings increased scrutiny from middleboxes and the possibility of unwanted manipulation [@detal2013revealing]. While ICMP is a well-established diagnostic and error reporting protocol, networks may treat ICMPs differently than transports—like UDP or TCP—that applications often use.

In our mock IHB implementation, we use ICMP with a new ICMP type, but plan to experiment with other transports. Our primary design criterion is to design the IHBs such that they are readily and cheaply detectable, and therefore easy to block or capture regardless of transport protocol.

Transport Protocol {#sec:design:transport}
------------------

A new transport protocol number would cleanly enable IHBs over IP, but would likely cause IHBs to be discarded or treated differently by today’s network [@detal2013revealing]. Instead, we consider three possibilities:

[**IP Option:**]{} This strategy allows for flexibility in sending IHBs that mimic a variety of transport protocols so that, unless a node was looking for the specific IHB IP option, the packet would be handled per the policy for the given transport. Unfortunately, the ossification of the network has shown that packets with any IP options are frequently blocked or, worse, induce security alarms [@fonseca2005ip].

[**TCP:**]{} Unlike IP options, unknown TCP options are generally ignored by the network and are not cause for dropping traffic [@honda2011still]. This avenue would permit traversing many firewalls and middleboxes, however there are additional transports that we would like to use within the IHB framework.

[**ICMP:**]{} A final option is to introduce a new ICMP type for IHBs. ICMP is well-established as a diagnostic and error reporting protocol and, hence, is frequently permitted through firewalls and not subject to deep intrusion detection scrutiny. However, as with inventing a new transport, ICMP is often treated differently from normal user traffic and therefore the IHBs would not directly share normal traffic policies.

Meta-Information
----------------

A heartbeat without any payload demonstrates reachability and liveness from the source to the observation point. However, including additional meta-data aids interpretation and expands the possible inferences that can be drawn from IHB arrivals. Here we describe four candidate pieces of IHB meta-data[^1].

[**Heart Rate:**]{} We include the rate at which the host is sourcing IHBs and information about how destination addresses are chosen (see [§ \[sec:design:destination\]]{}). While an observer may be able to infer the sending rate of each IHB host, the period between heartbeats is expected to be long enough—see next section—that this may be a long and error-prone process, and especially brittle during failures or outages. Further, senders may wish to adapt the rate at which they inject heartbeats dynamically, and on short time scales. By explicitly including the IHB sending rate we can allow observers to set expectations appropriately and stake inferences around the actual rate instead of an estimated rate. [**HostID:**]{} A well-known facet of the modern Internet is that IP addresses serve as poor host identifiers—due to network address translation (NAT), middleboxes, IPv6 privacy addresses, and aliases. Therefore, we adopt the notion of a “HostID” from Allman [et al.]{}[@allman2017principles] and include a small ([e.g.,]{}16-bit) identifier in each heartbeat payload. The HostID is randomly generated by the source of the IHB and can be changed over time[^2]. A host identifier raises immediate security and privacy concerns. As observed in [@allman2017principles], these issues can be mitigated by using a HostID that is purposefully small such that identifier collisions are common. This means the HostID is meaningless in a global sense, but must be coupled with the IP address to draw inferences about a host’s behavior. For instance, the HostID permits an approximation of the number of hosts behind a NAT.

[**Originating TTL:**]{} Including the TTL with which the heartbeat was sent removes ambiguity of scope and allows both the recipient and observers along the path to determine how far the heartbeat has traveled. We utilize TTL values to infer path changes in §\[sec:cases:paths\].

[**Timestamp:**]{} The timestamp permits one-way latency approximation when the source and observer’s clocks are synchronized, but further allows observers to note latency *changes* over time even without synchronization.

Heartbeat Destination {#sec:design:destination}
---------------------

The intuitive notion is that IHBs should be transmitted around the network uniformly at random. We consider two aspects of choosing the destination: ($i$) the pool of addresses from which to choose; and ($ii$) the order of using the addresses in the pool. Here we consider three pools:

[**Entire Address Space:**]{} This pool consists of all $2^{32}$ IPv4 addresses. In this case, the goal is for all hosts to exchange IHBs with all other hosts on the network. Assuming one host per IP address and full address usage, this goal requires $2^{64}$ IHBs. Note, however, that the number of IHBs required for full coverage decreases in proportion to the size of the observation point lens, e.g., as discussed in detail in §\[sec:overhead\], a large darknet (monitoring /8 of IPv4 address space) can expect to receive a heartbeat from an arbitrary host after every $\frac{2^8}{2} = 128$ heartbeats it sends.

[**All /24 Networks:**]{} This pool consists of all $2^{24}$ IPv4 /24 network blocks. This strategy leverages the fact that a /24 address block is the smallest block that can be confidently routed across the Internet. Therefore, IHBs to multiple hosts within a /24 largely share fate. While this is not always true—[e.g.,]{}end host firewall configurations can vary across hosts within a /24—the relaxed goal results in $2^{48}$ IHBs to satisfy the goal—or, $\frac{1}{64K}$-th of the number needed for all hosts to exchange IHBs. Another benefit of using a /24 pool is that all IHB hosts within a /24 could *cooperate* to meet the goal. For instance, if 32 hosts within a /24 send IHBs then each would have to send 524K ($\frac{2^{24}}{2^{19}}$) messages to cover the remote /24 address blocks.

[**Local Subnet:**]{} This pool consists of the host’s local network, and would be used as a *Local Heartbeat* (LHB). For instance, a typical home network using the private 192.168.0.0/24 subnet would have 255 different LHB target addresses, while the home network’s public gateway (connected to the provider) might be part of a /22 subnet and, hence, have 1024 LHB targets. In general, LHBs would be sent with a restrictive TTL and be used for local debugging and diagnostics. A refinement of the LHB idea is to make the TTL inversely proportional number of matching most significant bits between the source and the randomly chosen target.

Next, we consider the order in which hosts are probed:

[**Pure Random:**]{} Choosing an entirely random destination from the pool is simple to implement, ensures uniform coverage in time and space, and facilitates inferences with confidence bounds.[^3]

[**Random Permutation:**]{} Rather than choosing addresses at random, the sender could instead randomly permute the entire pool. The random permutation ensures that every destination is used before any destination is repeated. Additionally, the sequence can deterministically repeat once the host has sent to every address, thereby adding additional predictability to the potential inferences.

The above discussion is in terms of IPv4 address space. Sending IHBs over IPv6 networks will require understanding the general usage of address blocks (as discussed in [@CLAB16]), understanding which blocks of IPv6 addresses are routed or having some form of carefully curated hit-list. We discuss possibilities for IPv6 heartbeats in §\[sec:ipv6\].

Source Address {#sec:design:source}
--------------

Many Internet-connected devices have multiple interfaces, e.g., WiFi and cellular, while routers have more than one interface by definition. We explicitly envision routers participating in the IHB via their control plane network stack. To expose these interfaces, and the paths they utilize, the IHB should effectively run independent instances of the heartbeat protocol on each physical or virtual interface, and use the interface’s assigned IP address as the heartbeat source. However, the IHB meta-data, in particular the HostID, should be consistent among interfaces.

Rate
----

The rate at which a device sources IHBs is a local policy decision and is explicitly included within the heartbeat meta-data so that observers can form concrete expectations over when the next heartbeat should arrive. A possible enhancement to this strategy is to source two back-to-back heartbeats for each destination. While doing so doubles the data rate—or halves the number of IHB recipients per time unit—it enables basic packet-pair dispersion techniques for [e.g.,]{}estimating path capacity [@dovrolis2001packet].

Integrity
---------

As a connectionless protocol, the IHB as specified is trivially spoofed. An adversary could source heartbeats with a spoofed source IP address in order to pollute inferences, for instance to make it appear as though a network is up when it is, in fact, suffering an outage. While ingress filtering [@bless-rfc2827] can mitigate the ability to spoof in some cases, its deployment is not ubiquitous and spoofing remains a present concern [@Beverly:2009:UED:1644893.1644936]. However, an observation point that receives conflicting heartbeat information (arrival rate, TTL, or HostID) from a given source or network can infer that some of the IHBs are illegitimate (and should be ignored).

Even stronger forms of integrity protection may be feasible. For instance, while we do not wish to depend on public key cryptography (for reasons of speed and PKI deployment obstacles), we could utilize heartbeats themselves to distribute shared secrets. Here, heartbeats would include a per-target or per-/24 random key in the meta-data. When subsequently sourcing heartbeats, the host would include a keyed integrity check (such as an HMAC) using the previously received key. In this fashion, an adversary can still spoof heartbeats, but cannot do so undetected unless she has access to the heartbeats arriving at the remote network. Alternatively, IHBs may include *chained* integrity using ephemeral secrets, where the integrity key to the $i$’th IHB is contained in the $i+1$’th heartbeat. We plan to explore options for heartbeat integrity more completely in future work.

Use Cases {#sec:cases}
=========

To shed light on potential inferences possible with an IHB, we explore three use-cases: outage detection, residential broadband debugging, and forwarding path changes.

Outage Detection {#sec:cases:outage}
----------------

An increasingly important global measurement task is identifying Internet outages. Traditional methods of outage detection rely on passively monitoring BGP [@Dhamdhere:2007:NTN:1364654.1364677] or performing large-scale active measurements [@quan13trinocular]. Unfortunately, many outage events do not present as BGP activity, while active measurements require significant and continual probing. In contrast, an IHB inherently provides a means for understanding the data-plane reachability of remote networks simply by making inferences over the sequence of heartbeats received.

Naturally, different vantage points will be able to make stronger, and faster, inferences than others. For example, consider again a /8 darknet where we wish to monitor the reachability of a remote /24 subnet. Assume that only a single host on the remote /24 participates in the IHB at a rate of 1 pps. Thus, every second there is a $\frac{1}{2^8}$ probability that the node sends a heartbeat to a destination in the /8 monitored by the darknet. After $k$ seconds the the probability that the /8 receives no heartbeats from this host is: $\left( 1 - \frac{1}{2^8}\right)^k$. Thus, the probability that the remote /24 is reachable even though the darknet has received no heartbeats after $k=100$ seconds is approximately 67%. However, the likelihood of not receiving a heartbeat by chance rapidly decreases over time: there is only a $3\%$ chance that the /24 is reachable after receiving no heartbeats for 15 minutes. Of course, more hosts participating in the IHB on the remote /24 increase the outage sensitivity and confidence, while smaller darknets decrease detection ability. The rough numbers in the preceding example are meant to highlight what is possible given realistic assumptions over IHB adoption and the size of today’s darknets. The key point is that the periodic behavior of IHBs permits reliable probabilistic inference where conscious engineering tradeoffs can be made given the required detection sensitivity.

Residential Broadband {#sec:cases:residential}
---------------------

We want IHBs to benefit not just researchers and operators, but also the hosts and—most importantly—users who participate in the sourcing and receiving of heartbeats. As an example of aligning IHBs with user incentives, we consider IHB use within residential networks.

While there has been significant recent effort toward understanding residential broadband speed and performance [@bauer2010understanding; @kreibich2010netalyzr], less is known about the reliability of these networks. This is particularly true for broadband customers who: ($i$) will only notice network failures if they occur when the user is home and trying to use the network; ($ii$) do not maintain long-term statistics over their connection’s reliability or provider’s availability; and ($iii$)) cannot distinguish between a network failure within their home, in the access network, or occurring remotely (i.e., outside of the control of the provider). IHBs provide a means to enable continuous monitoring of a customer’s home access network, while introspection of IHBs facilitate diagnostics and the ability to measure adherence to service level agreements.

Assume that a broadband user’s home CPE gateway inspects both inbound and outbound heartbeats and further computes statistics and metrics over the heartbeats for the user. In Figure \[fig:residential\], inbound IHBs and LHBs arrive at the customer’s CPE (in §\[sec:overhead\], we explore the expected rate of incoming heartbeats—the salient feature here is that a constant stream of heartbeats arrive at the CPE). Further, the CPE observes outbound heartbeats sent by host(s) on the user’s local network (either IHBs or LHBs). These outbound heartbeats provide evidence that the user’s clients are able to obtain an address and reach the gateway.

The heartbeats immediately provide valuable information to the CPE, which can be exposed to the user (e.g., through a user-friendly web interface). Employing the same probabilistic methods as for outage detection (§\[sec:cases:outage\]), the CPE can thus aid in isolating whether reachability issues are local, on the user’s access connection, within the user’s provider, or remote. We further envision the CPE providing information to the user over: ($i$) the reliability of the connection to her provider; ($ii$) evidence of which networks could reach the user at a given point in time; and ($iii$) evolution of latencies from particular hosts and networks.

These inferences can be further strengthened by obtaining additional evidence from other hosts on the same subnetwork through LHBs if these LHBs work to distribute knowledge about IHBs received among all hosts on the subnet.

Path changes {#sec:cases:paths}
------------

Heartbeats can reveal both global and specific forwarding dynamics within the network via simple analysis of the IP time-to-live (TTL). Because routers decrement the TTL before forwarding the packet, the TTL provides an approximation of the number of hops from the source to the observation point. TTL changes for the same source or network are thus indicative of routing changes or load-balancing, allowing heartbeats to serve as a path change detection mechanism. Importantly, aggregation and correlation of heartbeats can identify networks that share paths and share fate.

As an expository example, we sent heartbeats from 26 Planetlab nodes [@chun2003planetlab] toward random addresses of a darknet over a six day period. While the TTL of received heartbeats from 16 of the nodes remained constant over the collection period, the TTL changed for 10 of the sources. Heartbeats from three of the ten planetlab sources had an equal distribution of TTL values, revealing the presence of load-balanced paths. A time-correlated heartbeat TTL change was observed among three of the sources and lasted for approximately one hour. Because this path change did not affect all heartbeats, the routing change was distant to the telescope. However, the correlated change suggests that the three nodes share a path in the network core, and illustrates the potential inferential power of tomography techniques [@Dhamdhere:2007:NTN:1364654.1364677] combined with IHBs.

Last, path changes can serve as a rough indicator of potentially malicious traffic. While IP source address spoofing [@Beverly:2009:UED:1644893.1644936] allows an attacker to impersonate an address, the attacker cannot set her packet’s initial TTL such that she is topologically closer than the number of router hops. As such, packets that arrive with a TTL less than previously observed from that network may be due to a routing change, or may indicate spoofing. If heartbeat packets arrive from a host with one TTL while TCP SYN packets or DNS packets arrive with a different TTL, this further suggests the presence of spoofing.

Additional applications
-----------------------

The preceding use cases highlight possible applications of IHBs; we believe they can enable other uses including: [**Traffic optimization:**]{} A well-known property of Internet routing is that alternative paths and indirection can provide superior end-to-end performance [@Andersen:2002:RON:510726.510740]. CDNs and service providers therefore routinely perform measurements to inform their path selection [@nygren2010akamai]. IHBs expose information (loss, capacity) to receivers about available paths and their performance. We envision network overlays ([e.g.,]{}DHTs, peer-to-peer, and Tor) using IHBs to inform their overlay construction without the need for dedicated active probing. [**Census:**]{} Network census campaigns, [e.g.,]{}[@heidemann2008census], have seen significant interest in applications ranging from vulnerability analysis [@durumeric2013zmap] to hitlist generation [@fan2010selecting] to estimating address space usage [@dainotti2013estimating]. Whereas these existing techniques require significant active probing (where load is concentrated at the probing host) and suffer from completeness and coverage issues, an IHB naturally facilitates these studies in a highly distributed and continual fashion. [**Alias resolution:**]{} In §\[sec:design:source\], we note that devices with multiple interfaces should run an IHB instance on each. Because the HostID is tied to the host rather than the interface, we imagine the ability to perform probabilistic alias resolution, the process of identifying the set of IP addresses belonging to a single physical device such as a router [@keys2013internet]. Whereas alias resolution is today an expensive, time-consuming, incomplete, and error-prone task [@keys2013internet], a passive heartbeat observation point can easily identify candidate aliases by clustering source addresses of heartbeats with the same HostID. Naturally, this set of candidate aliases will initially be very large—due to the small HostID identifier space—but can be refined over time as stacks choose new random HostIDs or can be combined with other information such as traceroute data to detect aliases. [**Policy inference:**]{} Work on understanding differential traffic treatment or blocking frequently uses multiple vantage points to compare results [@Burnett:2015:ELM:2785956.2787485]. Similarly, comparing IHBs that arrive at different collection points can shed light into different network policies[^4]. For instance, if we observe IHB packets arriving from source network $S$ at destination network $X$, but no IHB packets arriving from $S$ to network $Y$, then something is blocking traffic from $S$ to $Y$. Using additional IHBs and network tomography [@Dhamdhere:2007:NTN:1364654.1364677] may further isolate network policy.

Discussion
==========

Although the IHB is largely a thought experiment at this time, we discuss practical deployment issues next.

Overhead {#sec:overhead}
--------

To demonstrate the back-of-the-envelope feasibility of IHBs with respect to overhead, we consider the magnitude of IHB traffic using reasonable assumptions over the expected number of participants, data rate, and receiver size.

Let the IHB observation point monitor a prefix with mask $m$ ([i.e.,]{} for a single IPv4 host $m=32$). The probability of a single IHB participant sending a heartbeat that arrives at this observation point is then: $p = \frac{1}{2^{m}}$.

Assume that there are $n$ hosts participating in IHB and sending IHB packets. For simplicity, assume that each host sends a single IHB in each epoch, [i.e.,]{}they all send at the same rate. Then, the expected number of IHB packets arriving at the observation point in a single epoch is: $\frac{n}{2^{m}}$.

Next, assume that each source sends heartbeats to random destinations at a rate of $r$ packets per second. Then, the expected arrival rate of IHB packets is: $a = \frac{nr}{2^{m}}$.

Assume that one-quarter of the IPv4 Internet addresses participate in IHB, [i.e.,]{}$n=2^{32-2}$.[^5] If we further assume a relatively low per-host IHB rate of $r=\frac{1}{8}pps$, we can estimate the expected traffic load on the observation point due to heartbeat traffic. For instance, at the two extremes of a single end host versus a network telescope:

-   End-host ($m=32$): $a = \frac{2^{-3}(2^{30})}{2^{32}} =
           \frac{1}{32}pps$

-   Telescope ($m=8$): $a = \frac{2^{-3}(2^{30})}{2^{8}} =
           2^{19} \simeq 500kpps$

Thus, given relatively conservative assumptions over IHB deployment, we observe that a single host receives a negligible rate of heartbeat traffic, while a large aggregation point such as a /8 telescope receives a technically realistic and reasonable half-million IHB packets per second.

Security and Privacy
--------------------

A consequence of increasing the visibility of hosts on the network is the potential for this information to be used in unscrupulous ways. For instance, a heartbeat provides an explicit indication of a remote node’s liveness at a given instant in time, thereby providing attackers a potential target. We argue, however, that heartbeats do not enable a new attack vector, as adversaries are already capable of high-rate, exhaustive vulnerability scanning [@durumeric2013zmap] and make extensive use of available hitlists [@fan2010selecting; @shodan]. In practice, protecting end hosts from attacks is an issue orthogonal to liveness. Nonetheless, networks that wish to remain outwardly “dark” can easily maintain this particular security posture as IHB packets are designed to be easily identified so that their transmission and reception can be blocked as required.

Finally, heartbeats raise potential concerns over tracking and privacy. We first note that heartbeats are designed to illuminate the network, and there is no identifier that persists across networks (as might be required to facilitate tracking). And because heartbeats are periodic, they provide no explicit indication of user or host activity. While it may be possible to discern when a particular host is powered on or off, this information is again readily available via other methods, e.g., [@schulman2011pingin]. Indeed, web cookies, software updates, and other chatty protocols leak significantly more private information than IHB [@acar2014web]. As such, we believe the additional security burden imposed by heartbeats to be minimal and manageable, especially in relation to their potential benefit.

Deployment and Incentives
-------------------------

IHBs help support global measurement and promote a better understanding of the network, and we sketched several motivating examples of how they might be leveraged. Here we envision possible incentives and paths to deployment.

[**DNS servers:**]{} As an initial step toward global deployment, we target DNS servers as ideal candidates to source IHBs for several reasons. First, DNS roots, authorities, and public resolvers are well-known infrastructure that is globally distributed, continually alive, and well-connected. Second, users depend on these servers as critical infrastructure. Thus, both users and providers have a vested interest in understanding, optimizing, and debugging the availability and performance of DNS connectivity.

[**End-users:**]{} Second, we believe IHBs can provide direct benefit to participating users as described in §\[sec:cases:residential\]. While the benefit increases in proportion to the number of participants for IHBs, deployment can be bootstrapped with DNS servers, while end-users can benefit from LHBs immediately as deployment progresses. We envision IHB support within home routers and CPE to be critical for widespread adoption and plan to implement a prototype that can run on OpenWRT as a first step toward understanding how users can benefit.

IPv6 {#sec:ipv6}
----

Heartbeats may be especially important in IPv6 where the size of the 128-bit address space poses unique measurement obstacles. For instance, whereas exhaustive vulnerability, census, and topology scanning, [e.g.,]{}[@durumeric2013zmap; @imc16yarrp], are infeasible in IPv6, an IPv6 IHB can naturally illuminate active hosts, networks, and paths. However, the sparsity of the IPv6 address space implies that choosing the heartbeat target (destination IPv6 address) at random will rarely produce an active host, much less a routed network.

With only 0.002% of the IPv6 address space advertised currently [@potaroo], only approximately one in every 50K random heartbeats will be directed toward an advertised IPv6 prefix. While randomly destined IPv6 heartbeats will be observed at darknets, the probability of reaching an active IPv6 host is vanishingly small (as small as $O(2^{-64})$ in the case of privacy preserving addresses [@bless-rfc4941]). We therefore advocate for a reserved /64 destination address suffix for IHB. In this way, network borders and telescopes can readily identify IPv6 IHB traffic, or special end-network routing may be installed for IHBs. Further, it may be possible to develop mechanisms that allow all IPv6 IHB nodes on a network segment to receive the heartbeats, for instance via a special MAC address mapping or rewriting IHB packets into link-local IPv6 multicast.

Further enhancements may be possible to bias IPv6 IHBs to active and routed portions of the address space. For instance, we observe that received heartbeats can be used to discover and learn the active address space. For example, the /64 network corresponding to the source address of received heartbeats is certain to be routed, and clustering of contiguous /64s can produce larger prefixes. IPv6 hosts participating in the IHB can bias their probing to these learned blocks to better utilize the probing budget. While this learning process might seem to require significant time (and wasted probing), we note that the control plane of routers participating in IHB have direct and accurate knowledge of the routed IPv6 address space, and can effectively act as seeds to bootstrap the learning process.

Future Work
===========

Today’s Internet is a distributed system that suffers from a lack of visibility—nominally because of its sheer size. A node or network on the Internet may have a notion of the state of remote networks with which it is actively communicating, but has little to no insight into the rest of the network. This lack of visibility is underscored by the need to perform significant active scanning to gain even an approximate census of the nodes on the network [@heidemann2008census; @durumeric2013zmap], or the need for CDNs [@nygren2010akamai] to perform server selection on behalf of blind clients. This work proposes Internet Heartbeats as a new mechanism that can complement existing network measurement techniques, and allow wider introspection and understanding of the network.

Significant future work remains to realizing the IHB vision, and initial architectural choices may prove important. For instance, the current design requires a non-trivial number of IHBs before every node has touched every other node. Instead, a possible alternative is to coordinate heartbeats among participating nodes on a network segment—e.g., via a local gossip mechanism. In this way, nodes could divvy up the random permutation to minimize coverage time.

Unlike more radical network architecture proposals, implementing and experimenting with IHBs is readily possible, and we have begun just this. While IHBs could be placed into the network stack of operating systems, our approach is to develop a user-space program, `heartbeatd`, that implements IHB. We plan a small-scale deployment to perform long-term continual heartbeats. Simultaneously, we plan to explore the real-world inferences possible at a variety of observation points, including at individual nodes, a network border, CPE, and on a darknet.

\[lastpage\]

[^1]: IHBs will be extensible to accommodate new functionality.

[^2]: The meta-data could include time since the HostID changed.

[^3]: With /24 pools, a /24 is chosen at random and then we independently choose the low order octet of the address at random.

[^4]: Here, the choice of transport protocol (§\[sec:design:transport\]) is important so that heartbeats are classified in the same way as normal traffic.

[^5]: With NATs this is $\ll0.25$ of devices connecting to the Internet.


Bed and Breakfast Mexico Beach

B&B Mexico Beach

Fabulous8.81 reviews

Situated in Mexico Beach, this air-conditioned apartment features a balcony with sea views. The unit is 47 km from Panama City Beach.A dishwasher and an oven can be found in the kitchen and there is a private bathroom. A TV is provided...

B&B Mexico Beach

Good7.51 reviews

Sandcastle C offers accommodation in Mexico Beach, 47 km from Panama City Beach. The air-conditioned unit is 35 km from Panama City.A dishwasher, an oven and a microwave can be found in the kitchen. A TV is featured.The nea...

B&B Mexico Beach

Superb9.21 reviews

Located 44 km from Panama City Beach, Destiny offers accommodation in Mexico Beach. Guests benefit from patio.The kitchen is equipped with a dishwasher, an oven and a microwave, as well as a coffee machine. Towels and bed linen are pro...

B&B Mexico Beach

New!No reviews yet

Located in Mexico Beach, this air-conditioned holiday home features a patio. The unit is 44 km from Panama City Beach.The kitchen has a dishwasher and there is a private bathroom. Towels and bed linen are provided in this holiday home....

B&B Mexico Beach

New!No reviews yet

Situated in Beacon Hill, this air-conditioned apartment is 47 km from Panama City Beach. Guests benefit from balcony and an outdoor pool.The kitchen is fitted with a dishwasher, an oven and a microwave and there is a private bathroom. ...

B&B Mexico Beach

New!No reviews yet

Situated in Mexico Beach, this holiday home is 47 km from Panama City Beach. The property is 34 km from Panama City and boasts views of the sea.The kitchen is fitted with a dishwasher, an oven and a microwave and there is a private bat...

B&B Mexico Beach

New!No reviews yet

Paradise Shores 310 offers accommodation in Mexico Beach, 47 km from Panama City Beach. The property boasts views of the sea is 35 km from Panama City.There is a seating area, a dining area and a kitchen equipped with a dishwasher. A T...

B&B Mexico Beach

New!No reviews yet

Located in Mexico Beach, Club at Mexico Beach 3C is an apartment featuring an outdoor pool. The property boasts views of the sea is 47 km from Panama City Beach.There is a dining area and a kitchen. Towels and bed linen are featured in...

B&B Mexico Beach

52 reviews

Starline A is located in Mexico Beach, 47 km from Panama City Beach. Panama City is 35 km away.The accommodation is air conditioned and features a satellite TV. There is also a kitchen, equipped with a dishwasher and oven.A...

B&B Mexico Beach

New!No reviews yet

Situated in Mexico Beach, this air-conditioned apartment features an outdoor pool. Guests benefit from balcony.There is a seating area, a dining area and a kitchen as well as a private bathroom. Towels and bed linen are provided in thi...

B&B Mexico Beach

Good7.51 reviews

Starline B is situated in Mexico Beach, 47 km from Panama City Beach. Panama City is 35 km from the property.All units have a satellite TV. There is also a kitchen, equipped with a dishwasher, oven and microwave.Apalachicol...

B&B Mexico Beach

New!No reviews yet

Set in Mexico Beach, this air-conditioned apartment features an outdoor pool. Club at Mexico Beach 2M features views of the sea and is 47 km from Panama City Beach.A dishwasher, an oven and a microwave can be found in the kitchen. Towe...

B&B Mexico Beach

New!No reviews yet

Paradise Shores 201 offers accommodation in Mexico Beach, 47 km from Panama City Beach. Guests benefit from balcony.The unit equipped with a kitchen with a dishwasher and oven. A TV is offered. Other facilities at Paradise Shores 201 i...

B&B Mexico Beach

New!No reviews yet

Set in Mexico Beach, this air-conditioned apartment features a balcony. The property features views of the sea is 47 km from Panama City Beach.The kitchen is fitted with a dishwasher, an oven and a microwave, as well as a coffee machin...

B&B Mexico Beach

New!No reviews yet

Paradise Shores 103 offers accommodation in Mexico Beach, 47 km from Panama City Beach. Guests benefit from balcony and an outdoor pool.The kitchen is fitted with a dishwasher and an oven. Towels and bed linen are offered in this self-...

B&B Mexico Beach

New!No reviews yet

Located 44 km from Panama City Beach and 32 km from Panama City, Surfside 8 offers accommodation in Mexico Beach. Guests benefit from balcony.There is a seating area, a dining area and a kitchen complete with a dishwasher, an oven and ...

B&B Mexico Beach

New!No reviews yet

Featuring a balcony, After Dune Delight is a holiday home, situated in Beacon Hill. The air-conditioned unit is 49 km from Panama City Beach.There is a seating area and a kitchen equipped with a dishwasher. Towels and bed linen are off...

B&B Mexico Beach

New!No reviews yet

Paradise Shores 207 offers accommodation in Mexico Beach. The air-conditioned unit is 47 km from Panama City Beach.The kitchen is equipped with a dishwasher and there is a private bathroom. Towels and bed linen are available in this ap...

B&B Mexico Beach

New!No reviews yet

Paradise Shores 403 offers accommodation in Mexico Beach. Guests benefit from balcony.There is a dining area and a kitchen complete with a dishwasher and an oven. Towels and bed linen are featured in this apartment. Other facilities at...

B&B Mexico Beach

New!No reviews yet

Sea Siesta is a holiday home situated in Mexico Beach in the Florida Region and is 45 km from Panama City Beach. Guests benefit from balcony.There is a seating area, a dining area and a kitchen complete with a dishwasher, an oven and a...

B&B Mexico Beach

New!No reviews yet

Featuring a balcony with sea views, Beach Nuts is a holiday home, set in Mexico Beach. The air-conditioned unit is 46 km from Panama City Beach.A dishwasher, an oven and a microwave can be found in the kitchen. Towels and bed linen are...

B&B Mexico Beach

New!No reviews yet

Featuring a balcony with sea views, Paul Brent House is a holiday home, set in Mexico Beach. The air-conditioned unit is 45 km from Panama City Beach.The kitchen has a dishwasher and an oven, as well as a coffee machine. Towels and bed...

B&B Mexico Beach

New!No reviews yet

Set in Mexico Beach, this air-conditioned apartment features an outdoor pool. The unit is 47 km from Panama City Beach.The kitchen comes with a dishwasher. Towels and bed linen are provided in this self-catering accommodation. Other fa...

B&B Mexico Beach

Superb9.21 reviews

Sandbucket is a holiday home with a balcony, located in Mexico Beach in the Florida Region. The air-conditioned unit is 44 km from Panama City Beach.There is a seating area and a kitchen as well as a private bathroom. Towels and bed li...