Shared posts

19 Aug 02:37

Policing by consent

by Jason Kottke

In light of the ongoing policing situation in Ferguson, Missouri in the wake of the shooting of an unarmed man by a police officer and how the response to the community protests is highlighting the militarization of US police departments since 9/11, it's instructive to look at one of the first and most successful attempts at the formation of a professional police force.

The UK Parliament passed the first Metropolitan Police Act in 1829. The act was introduced by Home Secretary Sir Robert Peel, who undertook a study of crime and policing, which resulted in his belief that the keys to building an effective police force were to 1) make it professional (most prior policing had been volunteer in nature); 2) organize as a civilian force, not as a paramilitary force; and 3) make the police accountable to the public. The Metropolitan Police, whose officers were referred to as "bobbies" after Peel, was extremely successful and became the model for the modern urban police force, both in the UK and around the world, including in the United States.

At the heart of the Metropolitan Police's charter were a set of rules either written by Peel or drawn up at some later date by the two founding Commissioners: The Nine Principles of Policing. They are as follows:

1. To prevent crime and disorder, as an alternative to their repression by military force and severity of legal punishment.

2. To recognise always that the power of the police to fulfil their functions and duties is dependent on public approval of their existence, actions and behaviour, and on their ability to secure and maintain public respect.

3. To recognise always that to secure and maintain the respect and approval of the public means also the securing of the willing co-operation of the public in the task of securing observance of laws.

4. To recognise always that the extent to which the co-operation of the public can be secured diminishes proportionately the necessity of the use of physical force and compulsion for achieving police objectives.

5. To seek and preserve public favour, not by pandering to public opinion, but by constantly demonstrating absolutely impartial service to law, in complete independence of policy, and without regard to the justice or injustice of the substance of individual laws, by ready offering of individual service and friendship to all members of the public without regard to their wealth or social standing, by ready exercise of courtesy and friendly good humour, and by ready offering of individual sacrifice in protecting and preserving life.

6. To use physical force only when the exercise of persuasion, advice and warning is found to be insufficient to obtain public co-operation to an extent necessary to secure observance of law or to restore order, and to use only the minimum degree of physical force which is necessary on any particular occasion for achieving a police objective.

7. To maintain at all times a relationship with the public that gives reality to the historic tradition that the police are the public and that the public are the police, the police being only members of the public who are paid to give full-time attention to duties which are incumbent on every citizen in the interests of community welfare and existence.

8. To recognise always the need for strict adherence to police-executive functions, and to refrain from even seeming to usurp the powers of the judiciary of avenging individuals or the State, and of authoritatively judging guilt and punishing the guilty.

9. To recognise always that the test of police efficiency is the absence of crime and disorder, and not the visible evidence of police action in dealing with them.

As police historian Charles Reith noted in 1956, this philosophy was radical when implemented in London in the 1830s and "unique in history and throughout the world because it derived not from fear but almost exclusively from public co-operation with the police, induced by them designedly by behaviour which secures and maintains for them the approval, respect and affection of the public". Apparently, it remains radical in the United States in 2014. (thx, peter)

Tags: crime   Ferguson   legal   lists   London   Robert Peel   UK
09 Jun 04:00

4.5 Degrees

The good news is that according to the latest IPCC report, if we enact aggressive emissions limits now, we could hold the warming to 2°C. That's only HALF an ice age unit, which is probably no big deal.
12 May 20:12

The NightLight

by Jason Kottke

The NightLight is a Wirecutter-esque site for baby gear: strollers, car seats, bottles, etc. headed by Gawker's Joel Johnson and his sister, Rachel Fracassa.

Brought to you by brother-and-sister team Joel Johnson-from Consumerist, Gizmodo, and The Sweethome-and Rachel Fracassa, mother of four and doula, with contributors from Parenting, Babytalk and more, The NightLight takes the hand-wringing out of buying baby gear, with in-depth reporting and research that determines the single best product that parents should buy.

As a parent of a young child, you're plenty busy already. The NightLight's team of writers and researchers will help you pick the best strollers, carriers, bottles, diapers, car seats, monitors, breast pumps, and-yup-nightlights. We spend between 20 and 40 hours researching and testing on average for each guide, and in ongoing review to make sure our recommendations are always correct.

My kids are thankfully past the baby stage, but this would have been an indispensable resource 3-4 years ago.

Tags: Joel Johnson   parenting   Rachel Fracassa
15 Apr 12:10

Dietary supplements: who needs them? | Tania Browne

by Tania Browne

A Guardian article that claimed to 'tune out the hype' was far too eager to recommend vitamins and other supplements. In reality, most of us are better off without them

Whenever I see an article entitled The science of I become suspicious. So when the Guardian's G2 section published a piece last week called "The science behind dietary supplements" by Spencer Nadolsky of nutrition website examine.com, it rang alarm bells.

As it did for many others. Commenter flash131 discovered that Nadolsky appeared to be registered as a co-director of Leaner Living, which sells diet supplements. Subsequently, examine.com told the Guardian that he no longer has any connection to the company he co-founded, which is now run by his brother. However, during his time at Leaner Living Nadolsky received a warning from the Federal Drug Administration for making therapeutic claims for a product that hadn't received FDA approval.

Continue reading...
03 Dec 16:50

Knockout Projections – a plugin for efficient observable array transformations

by Steve

knockout-projections is a new Knockout.js plugin that adds efficient “map” and “filter” features to observable arrays. This means you can:

  • Write myObservableArray.map(someMappingFunction) to get a new, read-only array-valued observable containing the mapped version of each input item.
  • Write myObservableArray.filter(someFilterFunction) to get a new, read-only array-valued observable containing a subset of the input items.

When the underlying myObservableArray changes, or whenever any observable accessed during the mapping/filtering changes, the output array will be recomputed efficiently, meaning that the map/filter callbacks will only be invoked for the affected items.

The point of all this: it can scale up to maintain live transforms of large arrays, with only a fixed cost (not O(N)) to propagate typical changes through the graph of dependencies.

Trivial mapping example

To illustrate the mechanics in an obvious way, consider this underlying array:

var numbers = ko.observableArray([1, 2, 3]);

Now if you’ve referenced knockout-projections, you can write:

var squares = numbers.map(function(x) { return x*x; });

Initially, squares will contain [1, 4, 9]. It’s observable, so you can use squares.subscribe to get notifications when it mutates, or you can bind it to a DOM element (e.g., foreach: squares) in KO’s usual way.

Now if you transform the underlying array:

numbers.push(8);

… then squares updates (to [1, 4, 9, 64]) and only calls your mapping function for the new item, 8.

Any transformation is permitted, e.g.:

numbers.reverse();

This has the effect of reversing squares (to [64, 9, 4, 1]), again without remapping anything.

If you remove item(s):

numbers.splice(1, 1);

… then squares is updated (here, to [64, 1]) without remapping anything.

In summary, anyObservableArray.map is an efficient, observable equivalent to Array.prototype.map. Also, it can be arbitrarily chained (and combined in chains with filter) to produce graphs of transformations.

Trivial filtering example

The filter feature works exactly as you’d expect, given the above. For example,

var evenSquares = squares.filter(function(x) { return x % 2 === 0; });

Initially, evenSquares will contain just [64]. When you mutate the underlying array,

numbers.push(4); // evenSquares now contains [64, 16]
numbers.push(5); // evenSquares doesn't change
numbers.push(6); // evenSquares now contains [64, 16, 36]

Again, it responds to arbitrary transformations:

numbers.sort();  // evenSquares now contains [16, 36, 64]

A more realistic use case

Typically you won’t just be playing around will small collections of numbers. Most Knockout apps work with collections of model objects – sometimes very large collections.

Here’s a simple model object:

function Product(data) {
    this.id = data.id;
    this.name = ko.observable(data.name);
    this.price = ko.observable(data.price);
    this.isSelected = ko.observable(false);
}

Many KO applications involve fetching a large collection of model objects and exposing that from a viewmodel:

function PageViewModel() {
    // Some data, perhaps loaded via an Ajax call
    this.products = ko.observableArray([
        new Product({ id: 1, name: 'Klein Burger', price: 3.99 }),
        new Product({ id: 2, name: 'Mobius Fries', price: 1.75 }),
        new Product({ id: 3, name: 'Uncountable Chicken Chunks', price: 3.59 }),
        new Product({ id: 4, name: 'Mandelbrot Salad', price: 2.40 }),
        ... etc ...
    ]);
}
 
ko.applyBindings(new PageViewModel());

Now this might be bound to the UI:

<ul data-bind="foreach: products">
    <li>
        <input type="checkbox" data-bind="checked: isSelected" />
        <strong data-bind="text: name"></strong>
        (Price: £<span data-bind="text: price().toFixed(2)"></span>)
    </li>
</ul>

This is all fine, and Knockout is already good at efficiently (i.e., incrementally) updating the UI when the products array changes. But what if you want to track which subset of products is “selected”?

The traditional approach would be something like:

this.selectedProducts = ko.computed(function() {
    return this.products().filter(function(product) {
        return product.isSelected();
    });
}, this);

This works (using Array.prototype.filter, not the Knockout-projections filter function). However, it’s inefficient. Every time the products array changes, and every time any of their isSelected properties changes, it re-evaluates the isSelected property of every product. It has to do so, because it has no built-in understanding of what you’re doing, so it can’t be clever and incremetally update the earlier selectedProducts array.

However, if you use Knockout-projections filter function, e.g.:

this.selectedProducts = this.products.filter(function(product) {
    return product.isSelected();
});

… it’s both syntactically cleaner, and way faster for large arrays: it now updates the selectedProducts array incrementally whenever either products changes or any of the isSelected values changes.

Similarly you might want to output the names of the selected items. So, you could chain on a new selectedNames property, and perhaps furthermore chain on selectionSummary:

this.selectedNames = this.selectedProducts.map(function(product) {
    return product.name();
});
 
this.selectionSummary = ko.computed(function() {
    return this.selectedNames().join(', ')  || 'Nothing';
}, this);

Now when products changes, or when an isSelected or name property changes, the effect will propagate out incrementally through the whole dependency graph with the minimum of callback-invoking, meaning a snappy user experience even with large data sets and low-end mobile devices.

Licence and origin

knockout-projections is open source under the Apache 2.0 license. It was built as a tiny component in a very large project I’m working on at Microsoft, and thanks to my boss (and his boss, and probably multiple people up the chain) we’ve decided to open-source it. Hopefully my team will be producing plentiful nuggets of OSS goodness for you as we go about our work :)

Just a clarification for the avoidance of any confusion, Knockout.js itself remains MIT licensed and is run by the KO community and the KO core team members (which includes me personally).

24 Oct 15:13

Amazing robot gymnast

by Jason Kottke

I wasn't expecting a whole lot from this video of a robotic gymnast doing a routine on the high bar, but holy cow! I audibly gasped at the 33-second mark and again at 57 seconds.

Looks like a home-built, just some guy in his garage. The robot has learned some new tricks since that video was made. Here's a quintuple backflip landing:

A double twist that it didn't quite land:

And it does floor exercises as well...here's a double back handspring:

(via @moth)

Tags: gymnastics   robots   sports   video
16 Sep 18:45

Easy NFL/Netflix/Hulu region unlock using DNS

by Jason Kottke

Lex Friedman details how to use DNS services (like AdFree Time) to route around region-specific content locks, so you can do things like watch all NFL games in HD from anywhere, change Netflix regions (for access to different content), etc.

Third-party services like AdFree Time offer up a DNS-based solution: Pay a monthly fee and use their DNS services, and the NFL's website treats you as if you're coming from Europe. You thus get to watch every NFL game streaming online in high definition, since the league offers that option to folks in Europe at no charge. Americans, usually, miss out. I could pay for DirecTV's insanely overpriced Sunday Ticket, but I think it's a ripoff when I'm only looking to watch about six to eight Eagles games that won't show here.

This beats hate-reading the NFL TV maps every weekend.

Tags: Lex Friedman   NFL   sports   TV
10 Jul 15:40

Crazy Sky-High Waterspout Captured on Camera in Florida

waterspout-fl-01.jpg

There are those natural phenomena that we know are coming, like comets, the Supermoon and this year's forthcoming Manhattanhenge, causing shutterbugs around the world to prepare their cameras. Then there's the stuff we have no idea is coming, like earthquakes, tsunamis and tornadoes. But the prevalence of cell phone cameras mean we're now capturing images from the latter category too. Yesterday a series of photos out of Oldsmar, Florida, went viral as a handful of residents were able to capture a waterspout—a sort of oceangoing tornado—that formed around sunset on Monday.

waterspout-fl-02.jpg

Naturally there's video of it too; unsurprisingly most of it is grainy and ill-composed. After wading through a bunch of it, we found Oldsmar resident John Bosker's footage, which he showed to ABC News, to be the cake-taker. It starts around 0:44 below, and you can of course ignore the news hype before and after the footage:

This second video is kind of funny because you can hear the typical American parent-child interaction in the background (NSFW language):

(more...)
    


12 Jul 14:50

Kuwait's booming Instagram economy

by Jason Kottke

In Kuwait, people sell all sorts of stuff on Instagram, using the service as a visually oriented mobile storefront instead of using a web site or something like eBay. From an interview with artist/musician Fatima Al Qadiri:

BR: Kuwait is a crazy mix: a super-affluent country, yet basically a welfare state, though with a super neo-liberal consumer economy.

FQ: We consume vast amounts of everything. Instagram businesses are a big thing in Kuwait.

BR: What's an Instagram business?

FQ: If you have an Instagram account, you can slap a price tag on anything, take a picture of it, and sell it. For instance, you could take this can of San Pellegrino, paint it pink, put a heart on it, call it yours, and declare it for sale. Even my grandmother has an Instagram business! She sells dried fruit. A friend's cousin is selling weird potted plants that use Astroturf. People are creating, you know, hacked products.

I dug up a few examples: Manga Box is an Instagram storefront selling manga (contact via WhatsApp to buy), Sondos Makeup advertises makeup services (WhatsApp for appts.), sheeps_sell sells sheep, and store & more is an account selling women's fashion items. There was even an Insta-Business Expo held in April about Instagram businesses.

The Entrepreneurship and Business Club of the American University of Kuwait is holding an "INSTA BUSINESS EXPO" which will consist of all your favorite and newest popular entrepreneurs that grew their businesses through Instagram. Not only that, there will be guest speakers by Entrepreneurs that made it through Instagram as well!

(via @cmchap)

Tags: business   Fatima Al Qadiri   Instagram   interviews   Kuwait
11 Jul 15:44

Keeping to the beat

by Jason Kottke

A study by researchers in Sweden indicates that the heartbeats of singers in a choir quickly synchronize.

Using pulse monitors attached to the singers' ears, the researchers measured the changes in the choir members' heart rates as they navigated the intricate harmonies of a Swedish hymn. When the choir began to sing, their heart rates slowed down.

"When you sing the phrases, it is a form of guided breathing," says musicologist Bjorn Vickhoff of the Sahlgrenska Academy who led the project. "You exhale on the phrases and breathe in between the phrases. When you exhale, the heart slows down."

But what really struck him was that it took almost no time at all for the singers' heart rates to become synchronized. The readout from the pulse monitors starts as a jumble of jagged lines, but quickly becomes a series of uniform peaks. The heart rates fall into a shared rhythm guided by the song's tempo.

(via @stevenstrogatz)

Tags: music   science