Navigating the New Digital Divide | Deloitte Digital

Kasey Lobaugh, Jeff Simpson; Navigating the New Digital Divide; a whitepaper; Deloitte Digital (Deloitte & Touche); 2015-05; 22 pages (landscape); landing.
Teaser: Capitalizing on digital influence in retail.

tl;dr => up-and-to-the-right; lots of listicles & best practices; it’s all contingent on category; it’s all good.

Table of Contents

  • Introduction
  • What we learned
  • Drilling down
  • Simply measuring channel sales misses the larger trend
  • Consumers use digital very differently by category
  • In-store shopping has digital at its core
  • How can retailers evolve?
  • Measure for measure
  • Analysis methodology
  • Related materials
  • Contact us

Mentions

  • Retail in 2014 was $4T.
    • 6.5% online
    • 93.5% offline
  • Thesis claims
    • online (digital) is not a separable “channel”
    • omnichannel (messaging & measurement) is not the answer.
    • the answer is…
      • holistic consumer lifesycle management
      • SEO
      • Social
  • Definitions
    • Digital Influence Factor => percentage of in-store sales “influenced” by any online device or activity
    • Mobile Influence Factor => percentage of in-store sales “influenced” by a mobile device (i.e. a handset-phone.)
  • Definitions
    • Low-Frequency Shopper => fewer than three trips within a quarter (three months).
    • [Normative] Shopper => 4, 5 or 6 trips within a quarter.
    • High-Frequency Shopper => more than seven trips within a quarter.
  • Advice is given
    How Can Retailers Evolve?
  • Methodology
    • Survey, self-attestation
    • N=3,016
    • adults, US
    • responses reweighted by census demographics
    • 2014-11-21 -> 2014-11-26
    • 2015-01-13 -> 2015-01-20
    • p=0.9

Listicles

Statements

  1. Simply measuring channel sales misses the larger trend
  2. Consumers use digital very differently by category
  3. In-store shopping has digital as its core

Behavior

of the consumer in the product purchase & use  lifesycle.

  1. Find inspiration
  2. Browse and Research
  3. Select and Validate
  4. Purchase and Pay
  5. Return and Service

Opportunities

  • [Consumers] Following their own paths
  • Getting Personal [with messaging to consumers]
  • Buying Online, Picking Up In-Store (BOPUS)

Referenced

Actualities

Via: backfill

Whither the mysterious rpmbuild warning ‘Could not canonicalize hostname devbox.example.com’?

tl;dr → The host in question is an IPv6-only host; rpm uses IPv4-only APIs.


Context

You are using rpmbuild.

Question

Whither the mysterious Could not canonicalize hostname: devbox.example.com?

Specimen

warning: Could not canonicalize hostname: devbox.example.com

Explanation

The code in question is at least a score years old. It uses the IPv4-only API. It does not take into account IPv6. If you are on an IPv6-only host, then you will get this message.

Exhibition

$ rpmbuild -ba example-package-1.1.0.spec
<snip/>
install -D --mode 444 LICENSE /local/fedora/build/workspace/BUILDROOT/example-package-1.2.0-1.fc19.x86_64/usr/local/share/doc/example-package-1.2.0/LICENSE
make[1]: Leaving directory `/local/fedora/build/workspace/BUILD/example-package-1.2.0'
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /local/fedora/build/workspace/BUILD/example-package-1.2.0
/usr/lib/rpm/sepdebugcrcfix: Updated 0 CRC32s, 0 CRC32s did match.
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: example-package-1.2.0-1.fc19.noarch
Provides: config(example-package) = 1.2.0-1.fc19 example-package = 1.2.0-1.fc19
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Requires: /bin/bash /bin/sh
Checking for unpackaged file(s): /usr/lib/rpm/check-files /local/fedora/build/workspace/BUILDROOT/example-package-1.2.0-1.fc19.x86_64
warning: Could not canonicalize hostname: devbox.example.com
Wrote: /local/fedora/build/workspace/SRPMS/example-package-1.2.0-1.fc19.src.rpm
Wrote: /local/fedora/build/workspace/RPMS/noarch/example-package-1.2.0-1.fc19.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.Vzsxv5
+ umask 022
+ cd /local/fedora/build/workspace/BUILD
+ cd example-package-1.2.0
+ exit 0

Background

Via: An Email Thread
Date: 2002-04-26
Jeff Johnson ARS N3NPQ
jbj@redhat.com (jbj@jbj.org)
Chapel Hill, NC

<quote>Here’s the code that returns the build host (build/names.c):</quote>

const char *const buildHost(void)
{
  static char hostname[1024];
  static int gotit = 0;
  struct hostent *hbn;

  if (! gotit) {
      (void) gethostname(hostname, sizeof(hostname));
      hbn = gethostbyname(hostname);
      if (hbn)
	  strcpy(hostname, hbn->h_name);
      else
	  rpmMessage(RPMMESS_WARNING,
		      _("Could not canonicalize hostname: %s\n"), hostname);
      gotit = 1;
  }
  return(hostname);
}

Also

The opposite of trenchant, misdirecting, even wrong: Setting up RPM Building for SME Server (undated).
<quote><snip/>If you get “warning: Could not canonicalize hostname:” it can be ignored. This is a DNS resolution error and the easy solution is to add your hostname to /etc/hosts</quote>

Complete

Nowadays we so things: use C++11, type safe, exception safe, thread safe. We can get three of the four easily. Thread safety has to wait for another day.

  auto get_canonical_build_hostname(void) -> std::string {
    static std::string hostname;
    static bool cached(false);
    if (cached) {
      return hostname;
    }
    auto gethostname = sys::gethostname();
    if ( ! std::get<0>(gethostname)) {
      throw std::get<2>(gethostname);
    }
    std::string const &best_hostname_estimate = std::get<3>(gethostname);
    std::array<sys::AF,2> const families{sys::AF::INET6, sys::AF::INET4};
    for (auto family : families) {
      auto gethostbyname2 = sys::gethostbyname2(best_hostname_estimate, family);
      if (std::get<0>(gethostbyname2)) {
	hostname.assign(std::get<3>(gethostbyname2).name);
	return hostname;
      }
    }
    throw std::get<2>(gethostbyname);
  }

Demonstration

g++ -o canonical -ggdb -std=c++11 main.cpp
#include <algorithm>
#include <array>
#include <cstdio>
#include <cstdarg>
#include <cstdint>
#include <cstring>
#include <exception>
#include <functional>
#include <iostream>
#include <string>
#include <system_error>
#include <tuple>
#include <typeinfo>
#include <vector>

#include <unistd.h>
#include <netdb.h>
#include <sys/param.h>
#include <sys/socket.h>

// no language translations
#define _(message) message

namespace rpm {

  std::size_t message_count;

  enum class Message { INFO, WARNING, ERROR };
  constexpr Message const MESS_WARNING = Message::WARNING;

  auto log(Message severity, char const *format, ...) -> void __attribute__ ((format (printf, 2, 3))) {
    message_count++;
    FILE *stream = severity == Message::INFO ? stdout : stderr;
    fputs("warning: ", stream);
    va_list ap;
    va_start(ap, format);
    vfprintf(stream, format, ap);
    va_end(ap);
  }

}

extern "C" {
  static const char *const buildHost(void) {
    static char hostname[1024];
    static int gotit = 0;
    if (! gotit) {
      // (sic) was in the original code
      (void) ::gethostname(hostname, sizeof(hostname));
      ::hostent *hbn = ::gethostbyname(hostname);
      if (hbn) {
	strcpy(hostname, hbn->h_name);
      } else {
	rpm::log(rpm::MESS_WARNING, _("Could not canonicalize hostname: %s\n"), hostname);
      }
      gotit = 1;
    }
    return hostname;
  }
}

namespace sys {
  enum class AF { INET4 = AF_INET, INET6 = AF_INET6 };
  struct hostent;
  enum class herrc {
    host_not_found = HOST_NOT_FOUND,
      try_again = TRY_AGAIN,
      no_recovery = NO_RECOVERY,
      no_address = NO_ADDRESS, // same as no_data
      no_data = NO_DATA
  };
  namespace detail {
    std::size_t const PRUDENT_MAXIMUM_HOSTNAME_LENGTH = (2*MAXHOSTNAMELEN); // haters wanna
    union addr;
    class netdb_category;
    using getcall = std::function<::hostent *(char const *)>;
  }
}

namespace std {
  template<> struct is_error_condition_enum<sys::herrc>;
}

namespace sys {
  template<typename CHAR, typename TRAITS> inline auto operator<<(std::basic_ostream<CHAR, TRAITS> &, AF) -> std::basic_ostream<CHAR, TRAITS> &;
  auto netdb_category() noexcept -> std::error_category const &;
  inline auto gethostname() -> std::tuple<bool, int, std::system_error, std::string>;
  inline auto gethostbyname(std::string const &) -> std::tuple<bool, ::hostent *, std::system_error, hostent>; 
  inline auto gethostbyname2(std::string const &, AF) -> std::tuple<bool, ::hostent *, std::system_error, hostent>; 
  namespace detail {
    // count the length of a nullptr-terminated argv
    inline auto count(char const *const *argv) -> std::size_t;
    // gethostname(...) and gethostname2(...) are basically the same thing
    template<typename FUNCTION> auto gethostbyname(FUNCTION const &, std::string const &query_name) -> std::tuple<bool, ::hostent *, std::system_error, hostent>;
  }    
}

template<> struct std::is_error_condition_enum<sys::herrc> : public std::true_type { };

// per the memory shenanigains of ::hostent::h_addr_list
union sys::detail::addr {
  using addr4_type = ::in_addr;
  addr4_type addr4;
  using addr6_type = ::in6_addr;
  addr6_type addr6;
};

struct sys::hostent {
  // like ::hostent, but has appropriate deep copy semantics
  std::string name;                         // was h_name (Official name of host)
  std::vector<std::string> aliases;         // was h_aliases (Alias list)
  AF type;                                  // was h_addrtype (Host address type)
  std::size_t size;                         // was h_length (The address size, in bytes)
  std::vector<detail::addr> addresses;      // was h_addr_list (List of addresses from name server)
};

struct sys::detail::netdb_category : public std::error_category {
  using ancestor = std::error_category;
  // returns "netdb"
  auto name() const noexcept -> char const * override final;
  // returns hstrerror(code)
  auto message(int code) const -> std::string override final;
  // converts h_errno into 
  auto default_error_condition(int code) const noexcept -> std::error_condition override final;
};

auto sys::detail::count(char const *const *argv) -> std::size_t {
  std::size_t count = 0;
  if (nullptr != argv) {
    while (nullptr != *argv++) {
      count++;
    }
  }
  return count;
}

template<typename CHAR, typename TRAITS> auto sys::operator<<(std::basic_ostream<CHAR, TRAITS> &o, AF family) -> std::basic_ostream<CHAR, TRAITS> & {
  char const *begin, *end;
  switch (family) {
  case AF::INET4:
    {
      static char const WORD[]{"inet4"};
      begin = &WORD[0];
      end = &WORD[sizeof (WORD)-1];
    }
    break;
  case AF::INET6:
    {
      static char const WORD[]{"inet6"};
      begin = &WORD[0];
      end = &WORD[sizeof (WORD)-1];
    }
    break;
  default:
    throw std::system_error(std::make_error_code(std::errc::address_family_not_supported), "sys::AF=" + std::to_string(int(family)));
  }
  std::for_each(begin, end, [&o](char c) {
      o << o.widen(c);
    });
  return o;
}

auto sys::detail::netdb_category::name() const noexcept -> char const * {
  return "netdb";
}

// returns hstrerror(code)
auto sys::detail::netdb_category::message(int code) const -> std::string {
  return hstrerror(code);
}

auto sys::detail::netdb_category::default_error_condition(int code) const noexcept -> std::error_condition {
  return std::error_condition(code, *this);
}

auto sys::netdb_category() noexcept -> std::error_category const & {
  static detail::netdb_category const singleton;
  return singleton;
}

auto sys::gethostname() -> std::tuple<bool, int, std::system_error, std::string> {
  using result_type = std::tuple<bool, int, std::system_error, std::string>;
  std::vector<char> buf; // because you can't use a std::string as a fill-buffer
  buf.resize(detail::PRUDENT_MAXIMUM_HOSTNAME_LENGTH);
  int r = ::gethostname(buf.data(), buf.size());
  bool b = 0 == r;
  auto n2 = std::tuple_element<2, result_type>::type();
  auto n3 = std::tuple_element<3, result_type>::type();
  result_type result(b, r, n2, n3);
  if ( ! b ) {
    std::get<2>(result) = std::system_error(h_errno, sys::netdb_category(), "gethostname");
  } else {
    std::get<3>(result).assign(buf.data());
  }
  return result;
}

auto sys::gethostbyname(std::string const &query_name) -> std::tuple<bool, ::hostent *, std::system_error, hostent> {
  detail::getcall syscall = ::gethostbyname;
  return detail::gethostbyname(syscall, query_name);
}

auto sys::gethostbyname2(std::string const &query_name, AF family) -> std::tuple<bool, ::hostent *, std::system_error, hostent> {
  using namespace std::placeholders;
  detail::getcall syscall = std::bind(::gethostbyname2, _1, int(family));
  return detail::gethostbyname(syscall, query_name);
}

template<typename FUNCTION> auto sys::detail::gethostbyname(FUNCTION const &funcall, std::string const &query_name) -> std::tuple<bool, ::hostent *, std::system_error, hostent> {
  using result_type = std::tuple<bool, ::hostent *, std::system_error, hostent>;
  std::vector<char> buf; // because you can't use a std::string as a fill-buffer
  // not threadsafe, returns a pointer to static data
  ::hostent *r = funcall(query_name.c_str());
  bool b = nullptr != r;
  auto n2 = std::tuple_element<2, result_type>::type();
  auto n3 = std::tuple_element<3, result_type>::type();
  result_type result(b, r, n2, n3);
  if ( ! b ) {
    std::get<2>(result) = std::system_error(h_errno, sys::netdb_category(), "gethostbyname " + query_name);
  } else {
    hostent &href = std::get<3>(result);
    href.name = r->h_name;
    href.aliases.assign(&r->h_aliases[0], &r->h_aliases[detail::count(r->h_aliases)]);
    href.type = AF(r->h_addrtype);
    href.size = r->h_length;
    auto push_back = [&href, query_name](char const *rhs) {
      detail::addr lhs;
      switch (href.type) {
      case AF::INET4:
	lhs.addr4 = *(detail::addr::addr4_type *)(rhs);
	break;
      case AF::INET6:
	lhs.addr6 = *(detail::addr::addr6_type *)(rhs);
	break;
      default:
	// unclear this is a good idea.  If the address family isn't known, then the whole hostname
	// is poisoned to us until this gets cleared up.  Maybe we should ignore it and move along?
	throw std::system_error(std::make_error_code(std::errc::address_family_not_supported), "gethostbyname " + query_name);
      }
      href.addresses.push_back(lhs);
    };
    std::for_each(&r->h_addr_list[0], &r->h_addr_list[detail::count(r->h_addr_list)], push_back);
  }
  return result;
}

namespace {

  auto get_canonical_build_hostname(void) -> std::string {
    static std::string hostname;
    static bool cached(false);
    if (cached) {
      return hostname;
    }
    static_assert(std::is_same<std::tuple<bool, int, std::system_error, std::string>, decltype(sys::gethostname())>::value,
		  "sys::gethostname() return type is surprising");
    auto gethostname = sys::gethostname();
    if ( ! std::get<0>(gethostname)) {
      throw std::get<2>(gethostname);
    }
    std::string const &best_hostname_estimate = std::get<3>(gethostname);
    static_assert(std::is_same<std::tuple<bool, ::hostent *, std::system_error, sys::hostent>, decltype(sys::gethostbyname(std::string()))>::value,
		  "sys::gethostbyname(...) return type is surprising");
    auto gethostbyname = sys::gethostbyname(best_hostname_estimate);
    if (std::get<0>(gethostbyname)) {
      hostname.assign(std::get<3>(gethostbyname).name);
      return hostname;
    }
    // recall: that gethostbyname(...) only checks IPv4 ... and we could have an IPv6-only host on our hands [this is the modern age buddy!]
    std::array<sys::AF,2> const families{sys::AF::INET6, sys::AF::INET4};
    static_assert(std::is_same<std::tuple<bool, ::hostent *, std::system_error, sys::hostent>, decltype(sys::gethostbyname2(std::string(), sys::AF()))>::value,
		  "sys::gethostbyname2(...) return type is surprising");
    for (auto family : families) {
      auto gethostbyname2 = sys::gethostbyname2(best_hostname_estimate, family);
      if (std::get<0>(gethostbyname2)) {
	hostname.assign(std::get<3>(gethostbyname2).name);
	return hostname;
      }
    }
    // Characterizing that first failure
    throw std::get<2>(gethostbyname);
  } 

}

auto main() -> int {
  try {
    {
      std::cout << "Trial #1. (Straight C, like you learned in the '80s)\n";
      std::string hostname = ::buildHost();
      std::cout << "canonical hostname: " << hostname;
      char const *const was = 1 == rpm::message_count ? "was" : "where";
      char const *const problem = 1 == rpm::message_count ? "problem": "problems";
      std::cout << ", there " << was << ' ' << rpm::message_count << ' ' << problem << " observed\n";
    } {
      std::cout << "Trial #2. (SCOLD C++ Techniques)\n";
      std::string hostname, problem; 
      try {
	hostname = get_canonical_build_hostname();
      } catch (std::exception const &e) {
	problem = e.what();
      }
      std::cout << "canonical hostname: " << hostname;
      if (hostname.empty()) {
	std::cout << "(empty)";
      }
      if (!problem.empty()) {
	std::cout << ", problems found as " << problem;
      } else {
	std::cout << ", no problems observed, the answer is unambiguous";
      }
      std::cout << '\n';
    }
    return 0;
  } catch (std::exception const &e) {
    std::clog << "FAIL: unexpected exception " << e.what() << '\n';
    return 1;
  }
}

Referenced

Forthcoming

Scalable C++ Original Location Disaggregation (SCOLD)

Tracking Protection in Firefox for Privacy and Performance | Kontaxis, Chew

Georgios Kontaxis (Columbia), Monica Chew (Mozilla); Tracking Protection in Firefox for Privacy and Performance; In Proceedings of the Web 2.0 Security and Privacy (W2SP); 2015-05-23; 4 pages; copy, slides (18 slides).

Abstract

We present Tracking Protection in the Mozilla Firefox web browser. Tracking Protection is a new privacy technology to mitigate invasive tracking of users’ online activity by blocking requests to tracking domains. We evaluate our approach and demonstrate a 67.5% reduction in the number of HTTP cookies set during a crawl of the Alexa top 200 news sites. Since Firefox does not download and render content from tracking domains, Tracking Protection also enjoys performance benefits of a 44% median reduction in page load time and 39% reduction in data usage in the Alexa top 200 news sites.

Mentions

  • Mozilla Firefox
  • Configuration
    • about:config
    • privacy.trackingprotection.enabled=true
  • Release
    • Firefox Nightly
    • Firefox 35
    • Not committed for any production release?
  • Development
    • 1029886tracking bug for tracking protection
  • Architecture
    • curated blocklist
    • Disconnect’s list (not EasyList)
    • (Google) SafeBrowsing API
  • Features
    • Cookie Blocking
    • Beacon Blocking
  • Justification
    • Performance (page latency reduction).
    • Sotto voce, surveillance blocking.
    • Sotto voce, ad blocking.
  • Threat Model
    • <quote cite=”ref” page=”2″>Our adversary is a powerful billion-dollar online advertising and social networking industry</quote>
  • trackingprotectionfirefoxat some github.
  • Performance claims
    • some telemetry
    • some simulation

Similar

Somehow solving similar problems.

Actualities

Promotions

Archaeological order…

Footnoted

References

Opinion

Wandering, moot, through the naïvete of the chain of reasoning here, flow with it.

Claim

Authors = <quote cite=”ref” page=”4″>

Finally, browser makers bear tremendous responsibility in mediating conflicts between privacy interests of users and the advertising and publishing industries. Tracking Protection for Firefox is off by default and hidden in advanced settings. We call upon Mozilla, Microsoft, and other browser makers to make tracking protection universally available and easy to use. Only then will the balance of power shift towards interests of the people instead of industry.

</quote>

Rebuttal

Greybeard = <moot>

Browser makers can’t have it both ways here.  They can’t be “common carriers” who make net-neutral and nework-neutral consumer premises equipment (CPE) as pure-play suppliers the media trade and also be the arbiters of the rights, rules and procedures of that industry without also entering that industry as a primary; i.e. as a publisher which owns a venue and manages an audience, which, as busking, is a fine and honorable vocation with a long and storied tradition dating back to the earliest ages.  Indeed Firefox Sponsored Tiles.

Hiding such intervention capability in the “advanced settings” doesn’t ameliorate the conceptual error here. The terms of the trade have always and ever been between the publisher and the advertiser. The consumer (which is you, dear reader), as a catalyst of the relationship, is party to this activity only insofar is the terms of the publisher-advertiser business arrangement specify that the publisher is able to deliver any quantifiable action, generally, quantifiable attention, of the consumer (which, to remind, is you, dear reader) to the advertiser under the terms of their bilateral deal (common commercial terms being: CPM, CPC, CPA, etc.).  The consumer’s consent being entailed by virtue of having received media from the publisher in the first instance.

As for your part of this, you are a consumer, and only that.  As the appelation implies, you don’t own the creative product that you’re enjoying, you never did, you never will. Your rights are limited to personal experience under the stated terms.  Otherwise, by convention, broader allowances would had to have been granted to you in an expression, an explicit writ. Your activities with regard to blocking publishers trading with advertisers in order to petition them to change their business practices as you experience them is a project that is, at best, fraught with contradictions and complications. To want to change the legal framework of creative product ownership & delivery is a tall order and would necessarily have implications in other areas of the media business.  The law is pretty clear on the countervailing point.  Namely, that the publisher owns the media, as they created it. They are purveying it under terms set forth. The media is licensed to you, and performed for you, even when on equipment that you own, for the sole purpose of your private enjoyment as an individual.  During your experience of the work, you do not receive any other rights, such as the right of derivation, summarization, retransmission, republication, public performance, etc.  These conditions adhere to you by your presence in the experience as a consumer unit. You are necessarily subject ot the Terms & Conditions set forth at the time the media was administered to you.  Indeed the whole foundation of the Creative Commons and Open Source licensing is centered upon this point.

</moot>

Counter-Rebuttal

Activist = <moot2>

Yet “we” build, “we” own & “we” operate the CPE. These HTML5-JS-CSS3 browser media-players are “ours.”  We are the web!  Unlike print, OTA TV or radio media where the players are locked down. We build CPE; we block as we like. This cannot be stopped.

</moot2>

Counter2-Rebuttal

Publisher = We parry and invoke EME, CDM, DRM & block you with DMCA. Like we do with video. QED.

Via: backfill.

Ad blocking goes mainstream | PageFair, Adobe (2014)

Ad blocking goes mainstream; PageFair, Adobe; 2014; 17 pages.

tl;dr => it’s popular; it’s really bad; Google Chrome is the cause.

Mentions

  • This is the piece that every other trade press article cites.
    There is no other “study” information out there.
    Based on download counting, naïve math & self-attestation in focus groups.
  • Lots of factoids
    lots of slider & pie chartism in pastel colors, as is the fashion nowadays
  • Monthly Active Users (MAU)
  • Ad formats considered
    • test display ads
    • still image ads
    • animated display ads
    • interstitials
    • display ads with audio
    • popover
    • skippable pre-roll
    • skippable mid-roll
    • non-skippable pre-roll
    • non-skippable mid-roll
  • Demographics
    • Millennials (18-24) most likely to perform ad blocking
    • 30-44 => somewhat willing to pay
    • 46-60 => willing to pay

Methodology

  • Amalgamation of historical records
    • EasyList download counts
    • Mozilla store download counts
    • Chrome store download counts
  • A survey, self-attestation
    • a panel, Upfront Analytics.
      N=”small”, contains U18 as 13-17, N=unspecified
    • a panel, SurveyMonkey
      N=”larger” but for U18, N=1

Claims

as headlined

  • 144 MAU 2014-!2
    scaled as 4.9% of all internet users
    increased 69% between 2013-Q2 – 2014-Q2
  • Google Chrome is the cause
    increase by 96% to 86 MAU between 2013-Q2 – 2014-Q2.
  • By installation method
    • “pre-installed” browsers (Internet Explorer) => 1x
    • “end-user installed” browsers (Firefox & Chrome) => 4.7x
  • Worldwide
    • Cluster #1, wholly in EMEA
      Absolute usage: 24% of online populations performing adblocking 2014-Q2
      Growth rate: not stated

      • Poland
      • Sweden
      • Denmark
      • Greece
    • Cluster #2, in EMEA & APAC
      Absolute usage: not stated
      Growth rate: “as much as” 134% between 2013-Q2 – 2014-Q2.

      • Japan
      • Spain
      • China
      • Italy
  • Demographics, by survey
    • 54% of young men, (male, age 18-29) perform ad blocking.
    • Generalizing from the survey respondents to the population at large
      Men are 48% “more likely” than women to perform ad blocking.
    • 80% unwilling to pay for free content
      yet 61% of the 80% are unwiling to pay for ad-free content
      <aside>but you know how it would work, first you’d pay for the content to be ad free and then you would pay for it and you would have ads; just like how Cable TV worked. Anywhere there is attention to be captured & sold, there will be advertising.  All Ads, All The Time & on Every Available Surface.</aside>
    • Claim that “the majority” are willing to view non-intrusive ad formats.
  • Low on “mobile” (closed OS, storebought software, telecom handsets).

Data

Slides 16 & 17.

Actualities

Not Quite the Average: An Empirical Study of Web Use | Weinreich, Obendorf, Herder, Mayer

Harald Weinreich, Hartmut Obendorf, Eelco Herder, Matthias Mayer; Not Quite the Average: An Empirical Study of Web Use; In Transactions on the Web, Volume 2, Number 1, Article 4. 2008-02. 31 pages. paywall.

Mentioned

Cited

How to Market to the iGeneration | Joan Schneider, Schneider Associates

How to Market to the iGeneration; Joan Schneider; In Harvard Busniess Review (HBR); 2015-05-06.

Joan Schneider, CEO, Schneider Associates, Boston MA; an advice shop.
Julie Hall, Joan Schneider; The New Launch Plan: 152 Tips, Tactics and Trends from the Most Memorable New Products; BNP Media II, LLC; 2010-04-01; 288 pages; kindle: $10, paper: $35+SHT.

Method

In the form of a listicle…

  1. Personalize everything.
  2. Connect with them through social media.
  3. Be strategic with advertisements.
  4. Excite iGens with content.
  5. Use mobile to reach iGens.
  6. the iGeneration is here now.

Mentions

  • Terminology
    • iGeneration
    • iGens (the plural of the species)
    • Gee Whiz!  Naturals with technology!  Facebook!  Is that an iphone?
    • A decade-subgeneration of Millennials; same thing.
    • Attributed to Stefan Pollack
      • iGeneration is Generation Z according to Pollack’s typology.
      • born: 1994-2004 (age 21 down to 11).
      • Stefan Pollack; Disrupted; Pacific Coast Creative; 2013-05-15; kindle: $10, paper: $10+SHT.
  • Generation Z
    • Defined here as: “born after 1994″ (age 21 or younger).
    • The iGeneration
  • Millennials
  • Conflates generational theory (20-year frames) with a decade-level framing.

Grist

Referenced

  • Making Way for Generation Z; Alexandra Levit; In The New York Times (NYT); 2015-03-28; previously noted.
    tl;dr => It’s a book promo for her book
    Alexandra Levit; They Don’t Teach Corporate in College: A Twenty-Something’s Guide to the Business World; Career Press; 3rd edition, 10th Anniversary Edition; 2014-02-25; 240 pages; kindle: $11, paper: $950+SHT.
  • Millennials Design Technologies; Jake Wobbrock (AnswerDash); In Wired; 2014-09.
    Jake Wobbrock, Ph.D., co-founder, CEO, AnswerDash.

    • Generation NOW
    • Studies. That. Show.
      • Accenture
      • BusinessWire (press releases)
      • Forbes
      • Forrester
  • Mentoring Millennials; Jeanne C. Meister, Karie Willyerd; In Harvard Business Review; 2010-05.
    <quote>[Reverse Mentoring] shifts the responsibility for organizing mentoring to line employees, who learn from senior executives by mentoring them. A Millennial is matched to an executive and assigned to teach him or her how to, say, use social media to connect with customers. It’s an effective way to give junior employees a window into the higher levels of the organization, so that when the mentees [the old ones] retire, the younger generation has a better understanding of the business.</quote>

Via: backfill.

Native advertising for the Cadillac ELR 2016, directly in the EXIF tag

illustration

The ELR electrified luxury coupe will offer improved performance, more dynamic driving and higher levels of personal technology for the 2016 model year. Major product upgrades include a more than 25% boost in power and torque, faster acceleration that improves 0-60 mph by 1.4 seconds, higher top speed, retuned chassis and steering for better handling, more responsive brakes and a new Performance equipment package.

$ type identify
identify is hashed (/usr/bin/identify)
$ rpm -q -f /usr/bin/identify
ImageMagick-6.7.8.9-5.fc19.x86_64
$ identify -format "%[EXIF:ImageDescription]" 2016-Cadillac-ELR-005
The ELR electrified luxury coupe will offer improved performance, more dynamic driving and higher levels of personal technology for the 2016 model year. Major product upgrades include a more than 25% boost in power and torque, faster acceleration that improves 0-60 mph by 1.4 seconds, higher top speed, retuned chassis and steering for better handling, more responsive brakes and a new Performance equipment package.

Original

2016-Cadillac-ELR-005
Via: Viewing Gallery of the 2016 Cadillac ELR at General Motors’ Cadillac Pressroom
2016 ELR Advacnes with More Power, Technology, press release, 2015-04-15.

Previously

Wormhole: Reliable Pub-Sub to Support Geo-replicated Internet Services | Sharma et al. (+21 others) @ Facebook, Cornell

Sharma et al. (+21 others); Wormhole: Reliable Pub-Sub to Support Geo-replicated Internet Services; In Proceedings of the 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI); 2015-05-04; 17 pages; landing, slides

Authors

Yogeshwer Sharma, Philippe Ajoux, Petchean Ang, David Callies, Abhishek Choudhary, Laurent Demailly, Thomas Fersch, Liat Atsmon Guz, Andrzej Kotulski, Sachin Kulkarni, Sanjeev Kumar, Harry Li, Jun Li, Evgeniy Makeev, Kowshik Prakasam (Facebook); Robbert van Renesse (Cornell University); Sabyasachi Roy, Pratyush Seth, Yee Jiun Song, Benjamin Wester, Kaushik Veeraraghavan, Peter Xie (Facebook)

Abstract

Wormhole is a publish-subscribe (pub-sub) system developed for use within Facebook’s geographically replicated datacenters. It is used to reliably replicate changes among several Facebook services including TAO, Graph Search and Memcache. This paper describes the design and implementation of Wormhole as well as the operational challenges of scaling the system to support the multiple data storage systems deployed at Facebook. Our production deployment of Wormhole transfers over 35 GBytes/sec in steady state (50 millions messages/sec or 5 trillion messages/day) across all deployments with bursts up to 200 GBytes/sec during failure recovery. We demonstrate that Wormhole publishes updates with low latency to subscribers that can fail or consume updates at varying rates, without compromising efficiency.

Mentions

tl;dr → like Apache Kafka, but different.

References

  • A. Adya, G. Cooper, D. Myers, M. Piatek. Thialfi: A client notification service for internet-scale applications. In Proceedings 23rd ACM Symposium on Operating Systems Principles. 2011. pages 129–142.
  • P. Hunt, M. Konar, F. P. Junqueira, B. Reed. ZooKeeper: Wait-free coordination for internet-scale systems. In Proceedings 2010 USENIX Annual Technical Conference. 2010.
  • Amazon Web Services, Inc. Amazon simple queue service. 2014.
  • Apache Software Foundation. HedWig. 2014.
  • Apache Software Foundation. Thrift. 2014.
  • R. Baldoni, C. Marchetti, A. Virgillito, R. Vitenberg. Content-based publish-subscribe over structured overlay networks. In Proceedings of the 25th IEEE International Conference on Distributed Computing Systems (ICDCS). 2005. pages 437–446.
  • R. Baldoni, A. Virgillito. Distributed Event Routing In Publish/Subscribe Communication Systems: A Survey (revised version). Technical report, Dipartimento di Informatica e Sistemistica, Universit`a di Roma la Sapienza, 2006.
  • N. Bronson, Z. Amsden, G. Cabrera, P. Chakka, P. Dimov, H. Ding, J. Ferris, A. Giardullo, S. Kulkarni, H. Li, M. Marchukov, D. Petrov, L. Puzar, Y. J. Song, V. Venkataramani. TAO: Facebook’s distributed data store for the social graph. In Proceedings 2013 USENIX Annual Technical Conference. 2013. pages 49–60.
  • A. Carzaniga, D. S. Rosenblum, A. L. Wolf. Achieving scalability and expressiveness in an internet-scale event notification service. In Proceedings 19th ACM Symposium on Principles of Distributed Computing (PODC). 2000. pages 219–227.
  • M. Castro, P. Druschel, A.-M. Kermarrec, A. I. Rowstron. Scribe: A large-scale and decentralized application-level multicast infrastructure. In Journal on Selected Areas in Communications, 20(8):1489–1499. 2002. IEEE.
  • A. Demers, J. Gehrke, M. Hong, M. Riedewald, W. White. Towards expressive publish/subscribe systems. In Advances in Database Technology-EDBT. 2006. pages 627–644.
  • P. T. Eugster, P. A. Felber, R. Guerraoui, A.-M. Kermarrec. The many faces of publish/subscribe. In Computing Surveys, 35(2):114–131. 2003. ACM.
  • Facebook, Inc. Graph search. 2014.
  • Iron.io, Inc. IronMQ. 2014.
  • J. Kreps, N. Narkhede, J. Rao. Kafka: A distributed messaging system for log processing. In Proceedings of the 6th ACM Workshop on Networking Meets Databases. 2011.
  • Y. Liu, B. Plale. Survey of Publish Subscribe Event Systems. Technical Report TR-574, Computer Science Dept., Indiana University, 2003.
  • S. P. Mahambre, S.D. Madhu Kumar, U. Bellur. A taxonomy of QoS-aware, adaptive event-dissemination middleware. In Internet Computing, 11(4):35–44. IEEE. 2007. paywall.
  • MySQL AB. MySQL.
  • R. Nishtala, H. Fugal, S. Grimm, M. Kwiatkowski, H. Lee, H. C. Li, R. McElroy, M. Paleczny, D. Peek, P. Saab, D. Stafford, T. Tung, V. Venkataramani. Scaling Memcache at Facebook. In Proceedings 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI). 2013. pages 385–398.
  • G. Pape. runit. 2014.
  • M. Petrovic, I. Burcea, H.-A. Jacobsen. S-ToPSS: Semantic toronto publish/subscribe system. In Proceedings 29th Conference on Very Large Data Bases (VLDB). 2003. pages 1101–1104.
  • Philotic, Inc. Beanstalk. 2014.
  • Pivotal Software, Inc. RabbitMQ, 2014.
  • M. Platania. Ordering, Timeliness and Reliability for Publish/Subscribe Systems over WAN. PhD thesis, Sapienza University of Rome, 2011.
  • V. Ramasubramanian, R. Peterson, E. G. Sirer. Corona: A high performance publish-subscribe system for the world wide web. In Proceedings 3th USENIX Symposium on Networked Systems Design and Implementation (NSDI). 2006. pages 15–28.
  • W. Rao, L. Chen, A.-C. Fu, H. Chen, F. Zou. On efficient content matching in distributed pub/sub systems. In Proceedings of IEEE INFOCOM. 2009. pages 756–764.

Via: backfill

Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice | Adrian et al. (+13 others) weakdh.org

David Adrian, Karthikeyan Bhargavan, Zakir Durumeric, Pierrick Gaudry, Matthew Green, J. Alex Halderman, Nadia Heninger, Drew Springall, Emmanuel Thomé, Luke Valenta, Benjamin VanderSloot, Eric Wustrow, Santiago Zanella-Béguelin, Paul Zimmermann; Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice; Available at weakdh.org; 2015-05-20; 13 pages.

Abstract

We investigate the security of Diffie-Hellman key exchange as used in popular Internet protocols and find it to be less secure than widely believed. First, we present a novel flaw in TLS that allows a man-in-the-middle to downgrade connections to “export-grade” Diffie-Hellman. To carry out this attack, we implement the number field sieve discrete log algorithm. After a week-long precomputation for a specified 512-bit group, we can compute arbitrary discrete logs in this group in minutes. We find that 82% of vulnerable servers use a single 512-bit group, allowing us to compromise connections to 7% of Alexa Top Million HTTPS sites. In response, major browsers are being changed to reject short groups.

We go on to consider Diffie-Hellman with 768- and 1024-bit groups. A small number of fixed or standardized groups are in use by millions of TLS, SSH, and VPN servers. Performing precomputations on a few of these groups would allow a passive eavesdropper to decrypt a large fraction of Internet traffic. In the 1024-bit case, we estimate that such computations are plausible given nation-state resources, and a close reading of published NSA leaks shows that the agency’s attacks on VPNs are consistent with having achieved such a break. We conclude that moving to stronger key exchange methods should be a priority for the Internet community.

Mentions

  • weakdh.org
  • System Administration Guide
    Remediations (and see below)

    • Diffie-Hellman Key Exchange (DHKE) > 1024 bits
    • Elliptic Curve Diffie-Hellman (ECDH)
  • Elliptic Curve Diffie-Hellman (ECDH)
  • Logjam
    a pun on Discrete Logarithm

Remediations

Summarization of the Guide to Deploying Diffie-Hellman for TLS from weakdh.org

Promotions

References

Yes, there were references

 

Thread Group

 

Mentions

  • Something about security
    • AES
    • always
    • required
  • Yet another standards body
    • Governance unclear
    • IP policy unclear
    • Closed (members only)
    • Sphere: Google-axis (contra Apple-axis HomeKit, etc.)
  • Tech Stack
    • Covers
      • UDP
      • IP Routing
      • 6LoWPAN (IPv6)
    • Below
      • IEEE 802.15.4 MAC
      • IEEE 802.15.4 PHY
  • Recent
    • Ubiant
    • Thread and ZigBee have made nice with each other.
      ZigBee Cluster Library over Thread, members only.

Alternates

The wonderful thing about standards is …

  • AllSeen Alliance
  • ARM
    mbed operating system mbedmicro/mbed, the mbed Enabled logo program
  • Bluetooth SIG
  • HomeKit of Apple
    MFi licensees only
  • Open Interconnect Consortium
  • ZigBee Alliance
    ZigBee licensees only

Who

Role Who Day Job
President Chris Boross Nest Labs
Vice President of Marketing Sujata Neidig Freescale
Vice President of Technology Skip Ashton Silicon Labs
Secretary Bill Curtis ARM
Treasurer Kevin Kraus Yale Security
Director Landon Borders Big Ass Fans
Director Benny Getz Samsung Electronics

Members

  • Initial
    • ARM
    • Big Ass Fans
    • Freescale Semiconductor
    • Nest of Google
    • Samsung
    • Silicon Labs
    • Yale Security
  • More
    • Thread Group Membership Grows To More Than 50 Companies; press release; Thread Group; 2014-12-16.
      Mentioned

      • UL to Run Independent Certification Lab for Products Using Thread Networking Protocol
      • Granite River Labs will perform the testing.
    • ATMEL, California Eastern Laboratories, Inc., CamPoint, Energizer Holdings, Inc., GainSpan Corporation, Granite River Labs, Grid Connect, Imagination Technologies, Insteon, Intellihot Green Technologies Inc., iOT Tech, Jasco, Keen Home, Kwikset, leakSMART, Linx Technologies, LUX Technology Group, Marvell Technology Group Ltd., Midea Group, Nanoleaf, NET2GRID, Pacific Gas & Electric Company, Proximetry, Inc., SALTO SYSTEMS, Sansa Security, Shenzhen Rakwireless Technology Co., Ltd, Skyley Networks, Inc., Stack Lighting, Telegesis, TÜV Rheinland Group, Tyco, UL, Whirlpool Corporation, WigWag Inc, ZONEFIRST

Output

  • Only available to members
    • Specifications => no (not yet)
    • Reference Designs => no
  • <quote cite=”ref“>The ZigBee-over-Thread spec will be available as a free download. Thread releases its specs royalty-free to members; the ZigBee Alliance allows members to charge reasonable royalties although in practice royalties are not generally asserted.</quote>

Introduction; Thread Group; 2014-07-15; 9 slides.

Downloads => videos

Actualities

Via: backfill

2016 Cadillac ELR

2016 ELR Advances with More Power, Technology; press release; General Motors; 2015-04-15.

Related

Background

Promotions

Actualities

What Is Generation Z, And What Does It Want? | Altitude

Through the Eyes of Gen Z; Susan Shelkrot; Altitude; 2015-05; 18 pages; regwall (pay with PII).
Teaser: 6 Keys to Understanding Your Next Customer

Susan Shelkrot is VP Program Development, Altitude.

Mentions

  • A study, a survey.
  • N=”over a dozen”
  • Age 16-18 (born 1999-1997)
  • Jeremy Finch, staff, Altitude
  • Personas are developed.

The influences (listicle) draws on generational theory as an environmental framing effect that shapes the cohort’s revealed mindset & practiced behaviors:

<quote>The majority of Gen Z parents are part of Gen X. Gen X lived through the ambiguity of the Vietnam War and the recessions of the early 80’s and early 90’s, and now they’ve passed on the lessons they learned from their own experiences to their children. As a result, many of Gen Z’s behaviors are driven by a similar desire to seek safety, security, and self reliance.</quote>

Listicles

Influences
  1. Growing up digital.
  2. Living in uncertainty.
  3. Gen X parents.
Keys to Understanding
  1. 8 Second Filter
    Everything is link bait nowadays.
  2. Digital Catch-22
    Social Media (Facebook); follows from #1.
  3. Echo Chamber
    Self explanatory; follows from #1
  4. Contingency Plans
    Finance, carreer- and life- path choices.
  5. Drive
    They have a work ethic, they understand olds’ perceptions of their work ethic.
  6. Financial Literacy
    They have it, get it, study it..

Assertions

  • Generation Z is not lazy
  • Generation Z needs anonymity and ephemerality from social media
    Therefore, Facebook & Twitter need to develop ephemeral features like Yik Yak and SnapChat.
  • Generation Z cannot tolerate differences of opinion.
  • Generation Z cannot adapt to radically new ideas readily or eagerly.
  • Generation Z needs to retain control, to have options.
  • Generation Z will not tolerate long-term contracts.
  • Generation Z will not tolerate long-length education schemes (ahem, degree programs).
  • Generation Z values training in transferrable, generalist skills.
  • Generation Z needs gamification: leader boards, progress bars, todo lists.
  • Generaion Z may not be skilled enough or patient enough to work their first job [huh?]
  • Generation Z something vague about sports interests.
    whereas Generation X invented Extreme Sports, therefore Generation Z …???
  • Generation Z wants financial planning aligned with their life-stage and perceived life goals.  No math.
  • Generation Z will want creative financial engineering to avoid uncreative financial engineering (debt).
    This seems to be a veiled reference to the sharing economy; if you can share it, why buy it; if you can lease it, why buy it [And there is an answer to that mind puzzle as Generation Z will find out soon enough when they get evicted from their rent-controlled apartment or can't get an Uber in time.  Depending upon the kindness of others has strong limits when the constraints set in.  It goes by the fancy name control premium].

Promotions

What Is Generation Z, And What Does It Want?; Jeremy Finch (Altitude); In Fast Company; 2015-05-04.
Teaser: And you thought you had just figured out millennials. It’s time to start wringing your hands about the new generation that’s about to enter the workforce. What do they even want?

The listicle:

  1. It’s not an attention problem, It’s an 8-second filter
  2. They’re not screen addicts, They’re full-time brand managers.
  3. They’re not all entrepreneurs—They’re practical pragmatists.

Referenced

Statements

On the linkbait…

<quote>Gen Z have a carefully tuned radar for being sold to and a limited amount of time and energy to spend assessing whether something’s worth their time. Getting past these filters, and winning Gen Z’s attention, will mean providing them with engaging and immediately beneficial experiences. One-way messaging alone will likely get drowned out in the noise.</quote>

On social media…

<quote>Gen Z feel torn: They need social media to build their personal brands but resist being defined by it. They seek social validation and inclusion but are looking to differentiate themselves professionally. Companies that understand this tension will provide Gen Z the tools they need to reconcile and better manage their personal and professional brands.</quote>

On life course choices…

<quote>To ease [their] anxiety, the participants in our study all claimed to be aiming for jobs in growing, less-automatable fields like education, medicine, and sales. And they’re obsessed with developing contingency plans to help them navigate the dynamic job market. While the media has singled out a number of high-profile entrepreneurial teen success stories, the majority of Gen Z in our study are biased in favor of career and financial stability. Entrepreneurship is seen as a way to not have to rely on anyone (or anything) else, and their version of it will likely be focused on sustainable “singles and doubles” ventures rather than Silicon Valley “home runs.”</quote>

Via: backfill.

Mobile Device Tracking | FTC (2014)

Mobile Device Tracking, a workshop; Federal Trade Commission (FTC); 2014-02-19.

Materials

  • Speakers
    • Mallory Duncan, National Retail Federation
    • James Riesenbach, CEO, iInside
    • Seth Schoen, staff, technologist, Electronic Frontier Foundation (EFF)
    • Ashkan Soltani, activist
    • Glenn Tinley, Mexia; a consultancy.
    • Ilana Westerman, CEO, Create with Context, Inc.; a consultancy.
  • Slides, 121 slides (gobs of gratuitous reveals at the end).
  • Transcripts
  • Video

Mentioned

  • Euclid
  • Path Intelligence
  • RetailNext

Referenced

Via: backfill, backfill, backfill.

lsbe.d.umn.edu | This Connection is Untrusted

Nothing says “The Web is Misconfigured” quite like a low-level security protocol failure notice from a university academic paper dump: East Central Minnesota: Social and Economic Trends and Implications, Forestry Analysis; James Skurla, Richard Lichty, William Fleischman with Jean Jacobson, Malita Barkataki, Joshua Williams; Labovitz School of Business & Economics, Bureau of Business and Economic Research; 2004-03; 58 pages.


$ openssl s_client -connect lsbe.d.umn.edu:443
CONNECTED(00000003)
depth=0 C = US, postalCode = 55455, ST = MN, L = Minneapolis, street = 100 Union Street SE, O = University of Minnesota, OU = Information Technology Systems and Services, CN = lsbe.d.umn.edu
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = US, postalCode = 55455, ST = MN, L = Minneapolis, street = 100 Union Street SE, O = University of Minnesota, OU = Information Technology Systems and Services, CN = lsbe.d.umn.edu
verify error:num=27:certificate not trusted
verify return:1
depth=0 C = US, postalCode = 55455, ST = MN, L = Minneapolis, street = 100 Union Street SE, O = University of Minnesota, OU = Information Technology Systems and Services, CN = lsbe.d.umn.edu
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/C=US/postalCode=55455/ST=MN/L=Minneapolis/street=100 Union Street SE/O=University of Minnesota/OU=Information Technology Systems and Services/CN=lsbe.d.umn.edu
   i:/C=US/O=Internet2/OU=InCommon/CN=InCommon Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO High-Assurance Secure Server CA
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFYjCCBEqgAwIBAgIQVFzSz3q6sbDzu/pFa7wczjANBgkqhkiG9w0BAQUFADBR
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMREwDwYDVQQLEwhJbkNv
bW1vbjEbMBkGA1UEAxMSSW5Db21tb24gU2VydmVyIENBMB4XDTE0MDEwNzAwMDAw
MFoXDTE3MDEwNjIzNTk1OVowgc8xCzAJBgNVBAYTAlVTMQ4wDAYDVQQREwU1NTQ1
NTELMAkGA1UECBMCTU4xFDASBgNVBAcTC01pbm5lYXBvbGlzMRwwGgYDVQQJExMx
MDAgVW5pb24gU3RyZWV0IFNFMSAwHgYDVQQKExdVbml2ZXJzaXR5IG9mIE1pbm5l
c290YTE0MDIGA1UECxMrSW5mb3JtYXRpb24gVGVjaG5vbG9neSBTeXN0ZW1zIGFu
ZCBTZXJ2aWNlczEXMBUGA1UEAxMObHNiZS5kLnVtbi5lZHUwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDL+BCPttaM47RODcZx6vxCPOksxwBShIJZrXZa
4SZZnaBZz5dAUS1urX6anu6ewgtxlX0UO6oYGIBc1uhRTIEC2g+F36JzRQtfG0Oe
Z3XX5Nrkix5Spz0FA9EhVHQZL+FYeB6SwtVjTqyPExzxn2LakxmWWhxkGVyLMQFT
vuEsCHLf2wITR3ePXPK94dHnr/qZCNHe0lhfyAot7z/PJoCC+lOmV+BqNE7wjzJ9
cebjRdw4EnJnrmmRjjhTaljGXbVVSUTWXdizZvi8vDkqAKEJwuvKuYNGFOKmdlP+
Ddf6qHzeWziNw7Qz1M5UKNDpV6EeDpy5QHEkRZtarj5EzSqPAgMBAAGjggG1MIIB
sTAfBgNVHSMEGDAWgBRIT1r6L0qaXuBQ82t7VaXe9b40XTAdBgNVHQ4EFgQUK3FC
LpGZrloJsYFkpxXQ1heUnYEwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMGcGA1UdIARgMF4wUgYMKwYB
BAGuIwEEAwEBMEIwQAYIKwYBBQUHAgEWNGh0dHBzOi8vd3d3LmluY29tbW9uLm9y
Zy9jZXJ0L3JlcG9zaXRvcnkvY3BzX3NzbC5wZGYwCAYGZ4EMAQICMD0GA1UdHwQ2
MDQwMqAwoC6GLGh0dHA6Ly9jcmwuaW5jb21tb24ub3JnL0luQ29tbW9uU2VydmVy
Q0EuY3JsMG8GCCsGAQUFBwEBBGMwYTA5BggrBgEFBQcwAoYtaHR0cDovL2NlcnQu
aW5jb21tb24ub3JnL0luQ29tbW9uU2VydmVyQ0EuY3J0MCQGCCsGAQUFBzABhhho
dHRwOi8vb2NzcC5pbmNvbW1vbi5vcmcwGQYDVR0RBBIwEIIObHNiZS5kLnVtbi5l
ZHUwDQYJKoZIhvcNAQEFBQADggEBAGOaCsizcFktTmzhzrmOUayqwsNPBFfN9gMO
DUAwcU+4yDXIfMHMYwe4EbLBX4xDZwEG6ldUeqfzWK4nk9DPIfkQvUiOoY5/bYdZ
crX/LxlosZdJEbQLcbNpYEtTwGHw9n9u1XCTd2Gx9fOj/n0tAltaiDRTUULrG7ke
kpIGI4RNjO+cl4n629BFufs9h/n12qhwW2sv20CKyVmxgEvFXEU3tX81J4PqHOC3
z4aVyZKion9zx9LZBg86rsWt6joT8pN20gZ9EO897uhhn+UwmOUkXXNYQip+ydIh
JmfBz2+WncmPTh6d2RDbgeILgHSig0DR+NLs4TF+0t4GkwG/8O4=
-----END CERTIFICATE-----
subject=/C=US/postalCode=55455/ST=MN/L=Minneapolis/street=100 Union Street SE/O=University of Minnesota/OU=Information Technology Systems and Services/CN=lsbe.d.umn.edu
issuer=/C=US/O=Internet2/OU=InCommon/CN=InCommon Server CA
---
No client certificate CA names sent
Server Temp Key: DH, 1024 bits
---
SSL handshake has read 3543 bytes and written 447 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 75FB051CAEF962ADE2E15544DE1FB5E2CE542314DF5A4DF78A135D6072ABEDD5
    Session-ID-ctx: 
    Master-Key: 80A072911AFF35925DA98ED12E2D1D6A94B897DCB9221113FFB0913C4827C89746AF228CFDE1E532E01B238328FD37F8
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket:
    0000 - d2 5a 65 ca c9 b9 73 8e-2a 0c 3b 61 71 33 7e d6   .Ze...s.*.;aq3~.
    0010 - da 56 18 53 a2 ed cd fd-a1 91 17 69 d8 0c cc 44   .V.S.......i...D
    0020 - 8b c0 b8 71 e2 bf 22 5f-d0 d2 de 34 e8 04 a4 ac   ...q.."_...4....
    0030 - e3 3c d7 60 b7 5f 20 c6-2e 77 6e a6 59 33 0d d7   .

European Mobile Ad Blocking with Shine

Based on information & belief, but mostly belief. All around an “exclusive” (i.e. single-sourced & unverified) outburst behind the paywall of The Financial Times.

In archaeological order

Referenced

Mentions

  • Shine
  • Who
    • Ron Porat, CEO
    • Roi Carthy
      • chief marketing officer, Shine
      • managing partner, Initial:Capital
  • Founded 2011
  • Business plans
    • mobile antivirus (?)
    • pivot to ad block, undated
  • Staff
    • 25
  • Location
    • Israel (where?)
  • Funding
    • $3.3M
  • Investors
    • Horizon Ventures
    • Initial:Capital
      • Roi Carthy, managing partner.
    • <quote cite=”ref“>Horizons Ventures — which is owned by Li Ka-shing, the billionaire chairman of Hutchinson Whampoa, the huge conglomerate that owns the “3″-branded mobile carrier, which operates across Europe, and also the company that has a stake in carriers in Asia including Hutchinson Asia Telecommunications. It also invested in a number of technology companies Facebook, Spotify, and Siri. Shine is also funded by Initial:Capital, which is an early stage investment firm, where Carthy is managing partner.</quote>
  • Product
    • AdSight, a trade name
    • white label
    • licenses to mobile carriers
  • Press
  • Customers
    • unclear, maybe none.
    • <quote cite=”ref“>At least one [US carrier] is participating. Verizon, AT&T, Sprint and T-Mobile didn’t respond to requests for comment.</quote>
      • Lowell McAdam, CEO, Verizon, disconfirmed, maybe.

Related

 

Recipe for subversion-to-git for rsa (of code.google.com)

Whereas

Google Code is now Dead Code Walking, it’s time to acquire copies of the necessary sources mastered there.

Specimen

rsaThe rsa project an implementation of the RSA cryptography algorithm in C++.

Recipe

$ cd /vault/git/svn/com.google.code
$ mkdir rsa
$ svnadmin create rsa
$ cat > rsa/hooks/pre-revprop-change <<EOF
#!/bin/sh
exit 0;
EOF
$ chmod +x rsa/hooks/pre-revprop-change

$ svnsync init file:///vault/git/svn/com.google.code/rsa  http://rsa.googlecode.com/svn
Copied properties for revision 0.
# (just the one line of output)

$ svnsync sync file:///vault/git/svn/com.google.code/rsa 
# ... lots and lots of output (very slow)
# (very slow)
$ cd /vault/git/clones
$ git svn clone file:///vault/git/svn/com.google.code/rsa/rsa -T trunk -b branches -t tags
Initialized empty Git repository in /vault/git/clones/rsa/.git/
Using higher level of URL: file:///vault/git/svn/com.google.code/rsa/rsa => file:///vault/git/svn/com.google.code/rsa
# (lots of output, very slow)
r70 = ec1f09d6cf45cb09d411cac386b76ade1b5da15d (refs/remotes/trunk)
Checked out HEAD:
  file:///vault/git/svn/com.google.code/rsa/rsa/trunk r70

# convert to the bare repository format
$ mv rsa/.git rsa.git
$ rm -rf rsa
$ cd rsa.git
$ git config --bool core.bare true

Also, -s or --stdlayout is the same as -T trunk -b branches -t tags

WATCHOUT – if you use --stdlayouton an inappropriate dubversion URL, then you’ll get an empty cloned git repository.  The case above has the “standard layout” occurring, not at the top level, but rather one level down; e.g. within rsa of file:///vault/git/svn/com.google.code/rsa, for a complete URL of file:///vault/git/svn/com.google.code/rsa/rsa.

Optionally

emacs rsa.git/description
touch rsa.git/git-daemon-export-ok

Previously

Experimenting Monitoring and Proximity techniques using Android potential and iBeacon devices | Matteo Gazzurelli

Matteo Gazzurelli; Experimenting Monitoring and Proximity Techniques Using Android Potential and iBeacon Devices; At DroidCon; 2015-04-10; 26 slides; landing.

Mentions

Actualities


Via: backfill

ATIS Open Web Alliance

Open Web Alliance of ATIS

Concept

  • These are the telecoms and network infrastructure vendors.
  • They have jurisdictional obligations to monitor the traffic on their networks; c.f. Communications Assistance for Law Enforcement (CALEA) and other in-country operating laws, regulations, rules.
  • They base their future business aspirations off of Deep Packet InspectionInsertion (DPI) which they call Value Added Services.
  • In particular they are looking to track-and-target persons on their network for at least advertising purposes.
  • In particular, they are looking to insert ad creative into the entertainment-type network traffic.
  • They hope to avoid being low-value dumb pipes supporting a high-value smart edge‘.
  • A web with universal E2E crypto breaks this.
  • They are against end-to-end encryption
  • They are against ubiquitous SSL/TLS
  • They are against SPDY
  • They are against HTTP/2.0 (which will require e2e crypto)
  • They are an substantially an anti-Google axis (yet Google is a member)
  • Their counterproposal is Open Transparent Proxy
    • They crack the SSL at their edge.
    • From their proxy head end, they will transport the communcations to their upline obligations: government, advertisers, vendors, monitors, and also to the consumer’s desired end point.
    • Value Added Services (VAS)

Who

(conveners, staff)

  • Sanjay Mishra
    Distinguished Member of the Technical StaffNetwork Infrastructure Planning
    Corporate Technology
    Verizon
  • Kevin ShatzkamerDistinguished Architect
    Mobility, Web and Media
    Cisco
  • Jim McEachern
    Senior Technology Consultant
    ATIS

Members

  • Alcatel-Lucent
  • AT&T
  • Cisco
  • Ericsson
  • Google
  • GSMA
  • Hitachi
  • Hughes
  • iconectiv
  • Intrado
  • Leidos
  • NTT
  • Openwave Mobility
  • Orange
  • Rogers
  • TDS
  • Time Warner Cable
  • T-Mobile
  • Verizon

Output

Findings

press

Actualities