Shared posts

08 Jul 03:24

"Fast is fine, but accuracy is everything. Take your time in a hurry."

“Fast is fine, but accuracy is everything. Take your time in a hurry.”

- Wyatt Earp (via jstn)
08 Jul 03:24

You Can’t Depend on Free

files/images/free_affiliate_marketing_programs_beginners.png


Tim Stahmer, Assorted Stuff, Jul 10, 2016


After events such as the changes to Evernote or the shut-down of Google Reader we get constant reminders like this one, that we cannot depend on free. That's true. But crucially, we cannot depend on paid, either. Like when I bought iMovie from Apple and the first update eliminated the timeline view of my movies. After that, all it ever did was generate thumbnails. Or how about those people who bought WebCT and Angel, counting on continued service and support. Or closer to home, my Windows 8 was almost forceably updated to Windows 10, which obsoleted my laptop. I could go on and on about how undependable the stuff we pay for is. So undependibility has nothing to do with whether the software is free. It has everything to do with the business model behind the software, free or otherwise.

[Link] [Comment]
08 Jul 03:24

The face they deserve

by Bruce Byfield

If you are interested in how people age, a school reunion is ideal for observations – especially if several decades have passed since graduation. The types are quite distinctive, although since my own recent reunion, I am still puzzling over what the physical changes indicate. However, I am starting to believe that George Orwell was correct when he wrote in his journal that, after forty, everyone has the face they deserve.

In my experience, people tend to age in one of two ways: either they continue to look much the same as ever, or there is a drastic change in them. Very few are anywhere in the middle, and those who are likely to have had major upheavals in their lives. Their bodies, for example, may be similar to what they were when they were young, but a stiffness in their walk may indicate knee replacements, or deep-set lines in their faces a prolonged illness or trauma.

Those who continue to look much the same are often those who take exercise and diet seriously. These people are rather strained – threadbare around the edges is the phrase that comes to mind – but usually move well and seem lightly brushed with age, either mentally or physically.

More often, those who look much the same are heavier set than when they were young, but are still recognizable. They may be bald, or have a limp, but you can easily subtract such incidental changes to see their younger selves beneath, and, once you do, they remain unmistakable. Some of them seemed to have grown into their bodies, so that what what seemed like too large a nose now seems to suit them. If they were clumsy, they have developed, if not a grace, but an appropriateness in their movements. Somehow, they have learned to accept themselves.

In contrast, others look so different that you would never recognize them without a name tag. Often, they have gained considerable weight, as people tend to do as they age because few of us realize that our eating and exercise habits need to change as we age. However, those who greatly changed also tend to be more careless in the way they dress. It is not that they are eccentric so much as they no longer worry about the image they present to the world. To my eye, they seem tired and often colorless

Very occasionally, you do find someone who has changed for the better, but, after several decades, they are the rarest type of all. Often, they have overhauled their lives because of a premature heart attack or some other crisis, becoming slim where they were once chunky, and outgoing where they were shy To be honest, this type often disconcerts me, because I feel that I have never known them at all.

These categories are fairly complete in my experience. However, what I am less certain about is what to make of them. I tend to think that those who look basically the same have been true to their natures, while those who have greatly changed have given up on life, and are preparing to follow the chalk marks on the floor for the rest of their lives.

However, this may be my own prejudice. In theory, those who have greatly changed may have matured, and now please themselves instead of doing what every one expects. Yet judging from their conversation, which is all about retirement and their empty nests, that doesn’t seem to be so. Perhaps Orwell was more accurate than I first imagined.


08 Jul 03:23

BlackBerry says keyboard is here to stay

by Ian Hardy

If there is one feature that BlackBerry loyal owners love using it’s the physical QWERTY keyboard, which has deep roots in the history and evolution of smartphones.

Earlier this week, BlackBerry announced it will no longer manufacture the BlackBerry Classic, a device it brought back in 2014 to reinvigorate its customer base. “Sometimes it can be very tough to let go. For BlackBerry, and more importantly for our customers, the hardest part in letting go is accepting that change makes way for new and better experiences,” said BlackBerry in a blog post.

The Classic, which is hailed as “an incredible workhorse device” by the company, can still be purchased with various carrier partners around the world and unlocked through its online store. BlackBerry says it will “actively support BlackBerry 10 with software updates and are on track to deliver version 10.3.3 next month with a second update to follow next year.”

Apart from its commitment to its own operating system, BlackBerry is also showing a commitment to producing handsets, specifically noting it’s “committed to the success of both BlackBerry 10 and Android devices.”

On Twitter, Alex Thurber, BlackBerry’s Senior Vice President for Global Device Sales, stated, “In response to some recent press reports, I want to be clear that BlackBerry users have nothing to fear – the keyboard is here to stay…”

As previously reported, BlackBerry is expected to release three new Android devices in the coming months known by the codename of Neon, Argon, and Mercury.

The 5.2-inch Neon and 5.5-inch Argon are expected to be running Android and come with a touchscreen display. The Mercury is tipped to be available later this year or early next year and sport a physical QWERTY keyboard.

Related reading: BlackBerry hires new executive to help resuscitate device sales

SourceTwitter
08 Jul 03:22

Front Loading Basics

by noreply@blogger.com (VeloOrange)
by Igor

Whenever I think about a typical cycle tourist, I always conjure up an image of a mid-80s steel bike, rear rack loaded to the brim with a stuck-in flag happily waving in the breeze. This is close - Scott touring Sweden in 1993 with Canada flagged panniers on a Rocky Mountain Sirrus:
By the way, Scott's bum bag (fanny pack for us in the Colonies) game is on point.
From numerous years of trial and errors, my preference has swayed to a front load only. This has developed due to a combination of a minimalistic approach to carry and packing, easier in-saddle accessibility, frame design, and surpassing environmental hurdles.

It is worth mentioning that the Campeur has lower trail than the majority of production touring bikes. This makes for neutral handling when loaded with no wheel flop and downright lively when lightly loaded or unloaded. Bikes with high trail have more difficulty with a heavier front load due to introduced wheel flop when going into corners.
So let's say your bike is designed to handle a front load well. Why should you front load? First, your rear wheel will thank you. It will be much less susceptible to spoke heads breaking, pinched tubes, and uneven tire wear since your carry weight will be distributed to the front wheel.

Second, when making efforts out of the saddle a front load does not introduce any luggage sway. Standing out of the saddle with a heavy rear load flexes the frame and rack side to side causing the front end to wander, which zaps energy during sustained climbs.

Similarly, during high crosswind conditions a loaded rear end has a tendency to make the front end wander if the front isn't loaded. Solution? A front load bias plants the front end and crosswinds have a drastically diminished effect so you expend less energy keeping straight. This is very different to a deep section front wheel in which the extremely lightweight front end wheel acts as a sail.

Fourth, you can monitor your luggage to ensure everything stays put safely. The last thing you want to happen is to hit a bump and lose your flipflops or worse get something stuck in the rear wheel without noticing.

Lastly, your gear and food is more easily accessible while you're in the saddle. Your handlebar bag is right there, ripe for the rummaging. Grabbing stuff out of the pannier while riding is definitely more of an acquired skill, but it is possible with lots of practice and gumption.
Non-drive side to show the tent setup.
There is one hitch with front loading. You really need to have your panniers balanced well, otherwise the bike will want to pull to the side with the heavier load. If you're doing a short commute with uneven weights or one pannier, don't worry about it, but anything longer and you'll want to distribute weights evenly.

Which method do you prefer: Front, rear, 4 points? Or are you on the side that says, "People still use racks? It's 2016, get out of the Mesolithic Era!"
07 Jul 22:20

Apple Releases iOS 10 Public Beta

by John Voorhees

Joanna Stern reports for the Wall Street Journal (subscription required) that Apple has released the public beta of iOS 10. Apple released a beta version of iOS 10 to developers at WWDC on June 13, 2016. At the time, Apple promised a public beta of iOS 10 would be released in July. A second beta was issued to developers just this past Tuesday. Today, Apple made good on it’s WWDC promise by releasing a public beta of iOS 10 that is available for anyone to download.

However, just because you can download the iOS 10 beta doesn’t mean you should, especially on your primary device. The consensus among people who have tried the first two developer betas seems to be that it is more stable than most early iOS betas, but it still has many bugs and there is no guaranty that your third-party apps will work properly. Nor is it easy to roll back to iOS 9.3 if you have second thoughts after installing iOS 10.

With iOS 10, Apple has made significant changes to notifications and Today widgets, redesigned the Music app, added features to Photos and Messages, and much more. For a complete run-down of what’s new in iOS 10, check out Alex Guyot’s coverage for MacStories during WWDC.

→ Source: wsj.com

07 Jul 22:20

Apple Release macOS Sierra Beta

by John Voorhees

According to the Wall Street Journal (subscription required), in addition to the release of the iOS 10 public beta, Apple released the public beta of macOS Sierra today. As with the iOS 10 beta, it is not advisable to install the Sierra beta on your primary Mac’s drive. Of course, if you decide to download Sierra beta anyway, be sure to back up your data. You can sign up to get access to the Sierra beta at beta.apple.com.

Among other things, Sierra adds Siri to the Mac, Apple Pay on certain websites accessed with Safari, enhancements to Photos, a Universal Clipboard that works between iOS devices and Macs, and Auto Unlock of your Mac with your Apple Watch instead of a password, which requires you also run the iOS 10 and watchOS 3 betas. For more coverage of what’s new in macOS Sierra check out our WWDC coverage.

→ Source: wsj.com

07 Jul 22:20

Waiting to be Brexited: Today’s Story

by pricetags

Just in time for the Province’s release of foreign-ownership data, here’s an international story just today that makes it clear how volatile the issue is becoming – and waiting for a flashpoint.

From The Guardian:

Guardian

After Canada’s ugly episode of racism in the early 20th century, Vancouverites feel uneasy talking about how this beautiful but unassuming city became one of the least affordable in the world: an unprecedented flood of Chinese capital. …

The lessons of the past go some way to explaining Vancouver’s almost religious embrace of multiculturalism, says David Ley, a UBC geography professor and wealth migration expert. “I think it’s very much part of the Canadian psyche to want to avoid these discussions,” he says. “We’re a polite and tolerant society that has been thoroughly schooled in the virtues of multiculturalism.”

Unfortunately, this also amplifies the uneasiness around the affordability discussion.“It’s frustrating,” says Justin Fung, an activist with Housing Action for Local Taxpayers, a local advocacy group. “[The crisis] is a policy issue, it’s a social justice issue, and up until now, everyone is saying, ‘We’re nice, we can’t talk about this.’ Well, if you can’t even talk about where the money is coming from, you can’t do anything about it.”

 


07 Jul 22:20

My Air Canada United experience

by Stephen Rees

United  N496UA at YVR

I am going to Chicago tomorrow. Following the advice given on the documents I printed off from the Air Canada booking I made, I went to the Air Canada web site to check in, using my Air Canada booking reference. The documents warn that the flight is a code share with United but nowhere do they inform me of the United flight number or, even more importantly, the booking reference used by United, which is different from the one given me by Air Canada. Both airlines are members of the Star Alliance, but apparently the degree of integration between Alliance members is far from complete, or even adequate. I wait on hold for someone from Customer Care listening to AC tell me all the exciting things I could be doing instead of listening to the adverts.

When I finally get through I am given the United booking code, and the person I am talking to even waits while I use that to log in to United’s check in on line. Once I know that has recognized me, I hang up, and start re-entering the information about my booking that the booking reference ought to have provided and then go through the on line check in process. Now I know that they do like people to use their app and get the boarding pass sent to their cell phones, but since I am not a United frequent flyer I am not really happy with that process. I have used cell phones for such things in the past and frankly the paper document seems to be much more likely to work first time with most gate readers. Though even then I have stood and watched while gate attendants type in my data manually. So I opt to print my boarding pass at home.

No, that won’t be possible. In fact, I get a message to tell me that I am not actually checked in. United says that it doesn’t have my passport number on file. So until a United representative can actually see my passport or I use the self service check in at the airport to scan my passport, I cannot have a boarding pass.

If United actually kept track of who flies on its planes, this might have been avoided. Since I have flown United. In fact my family has a store of United stories. Most recently I flew to New Orleans, via Chicago, on United: that was in May last year. So I would have used my current passport then: and none of my information has changed since. But, once again, because I am not a United Frequent Flyer I get treated like a second class citizen.

I used to think that maybe the treatment I got on United was something to do with how much I paid for the flight. Perhaps there is indeed even more market segmentation that is apparent from their loading preferences. Since my outbound flight on United to New Orleans was so grim, I actually upgraded to “better” seat for the return journey. That seat was actually in the row in front of the emergency exit, and would not recline. I cannot imagine how United could justify charging me the higher price for that seat and no-one has ever even tried to.

There is now a direct Air Canada flight between Vancouver and Chicago – though not at a time which I find acceptable. United, of course, will grimly hang on to its gate slots. There are clearly differences between allies and the extent of their co-operation is limited.

I remember a time when flying was enjoyable. When the journey was a fun part of the trip. When the skies were actually friendly.

Crepuscular Rays over MSY

POSTSCRIPT After posting this I heard from AirCanada on Twitter – who prefer to keep their conversations with customers private by using Direct Messages. Which I shall respect. But I will note that this DM thread extended back to last year, and I saw then that I raised exactly the same issue. I thought then that it had something to do with me paying for the flight with AirMiles, who of course handled the booking. I had rather expected that if I booked through Air Canada this time the experience would be different. I was wrong about that. I also think the problem lies with United and not Air Canada. I have never had any contact from United other than speaking to their employees during my travels.


Filed under: Transportation
07 Jul 22:19

Fujifilm Launches X-T2

Why launch today? 7/7 baby. Lucky numbers for sure.

bythom fujifilm xt2

Fujifilm today launched the much leaked and long rumored X-T2. In many ways, the new camera incorporates the changes Fujifilm made with the X-Pro2 over the X-Pro1, but in the X-T1 package. …

07 Jul 22:19

AirBnB: A Sign of the Times

by pricetags

Seen in the elevator lobby of The Hudson at Granville and Dunsmuir:

Hudson (Large)


07 Jul 22:19

[D&B 28] The hidden benefits of friction. Why your friends...



[D&B 28] The hidden benefits of friction. Why your friends have more friends than you do. Dead sexy slippers. p.s. we’re on Medium now, too.

07 Jul 22:19

Provincial Data on Foreign Nationals Property Purchases

by pricetags

The Sun reports on the just-completed media conference by Finance Minister Mike De Jong:

Foreign 2

Main findings include, between June 10 and June 29, 2016:

  •  10,148 residential real estate transactions in B.C., totalling more than $7.6 billion.
  •  337 transactions (3.3%) involved foreign nationals, worth $390 million (5.1%).
  •  In Metro Vancouver, there were 5,118 transactions worth nearly $5.4 billion, of which260 involved foreign nationals (5.1%), worth $351 million (6.5%)
  •  In the City of Vancouver, there were 1,139 transactions, totalling more than $1.6 billion. 47 of these involved foreign nationals (4.1%), worth $64 million (3.9%).

Source: B.C. Government

Foreign

PT: From watching the conference, one thing was clear: after years of stonewalling, the Liberals finally understood the political imperative of getting information, getting it out and getting some policy response for a very pissed-off public.

 

UPDATE: From Business in Vancouver:

BIV 3

A provincial government statement that only 3% of B.C. residential sales are made to foreign buyers and that Chinese nationals represent just 2.5% of Metro Vancouver home buyers drew rolling eyeballs and laughter at the packed July 7 Asia Real Estate Association of America (AREAA) conference in downtown Vancouver.

“No. Absolutely not,” said an incredulous Byron Burley, Shanghai-based vice-president of Chinese-language juwaii.com, China’s largest foreign residential real estate search engine. “It is way, way higher than that.” Burley noted that millions of Chinese nationals use his site, which has from 3,000 to 5,000 residential listings from B.C. at any time.


07 Jul 22:19

The improbable rise of Jeremy Corbyn

by Michal Rozworski

So far this week, Jeremy Corbyn has caused over 100,000 new members to join the UK Labour Party he leads, has apologized for a war he opposed from the beginning and appears to have survived a coup attempt on his leadership. And despite his backstabbing MPs, he’s one of the few party leaders left standing after the Brexit referendum.

Given all this mayhem on the British political scene, I figured it would be a good time to speak with the writer Richard Seymour, author of the recently-released Corbyn: The Strange Rebirth of Radical Politics. Richard regularly publishes in major UK and international media; his  previous books include Against Austerity, Unhitched, and The Liberal Defense of Murder. He’s long been one of the best voices on British politics on the left.

Our conversation focused on the roots of Corbyn’s sudden rise to power, both within the Labour Party and politics in the UK more broadly, the failure of today’s Blairite coup plotters and the prospects of a long-term shift in ideology effected by Corbynism.

Corbyn other 2

07 Jul 22:18

What’s Up with SUMO – 7th July

by Michał

Hello, SUMO Nation!

Welcome to the hot-hot-hot July! Wherever you are, remember – don’t melt! It’s a bit hard to achieve that over here (air conditioning only gets you so far), so I hope you’ll have an easier challenge on your side. Speaking of hotness – here are the red-hot-

Welcome, new contributors!

If you just joined us, don’t hesitate – come over and say “hi” in the forums!

Contributors of the week

Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month!

Most recent SUMO Community meeting

The next SUMO Community meeting

  • …is happening on the 13th of July!
  • If you want to add a discussion topic to the upcoming meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Wednesday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
    • If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.

Community

Social

Support Forum

Knowledge Base & L10n

Firefox

  • for Android
    • Version 48 is still on track for release on August 2nd.

So… Are you still following the Euro 2016 cup games? Are you watching cool movies? Know some great music that you think we should all know about? Tell us in our forums!

 

07 Jul 22:16

University websites: The so-so, the bad, and the egregious

files/images/university_website.png


Melonie Fullick, University Affairs, Jul 10, 2016


It's a pretty easy way to write a story: ask the Twitterverse a question, and then write about the responses. Of course you have to have a Twitterverse to make this work (my network of some 8500 followers is probably too small) and your qquestion has to touch a nerve. And this question touched a nerve: "why are university websites often terrible?" The article lists a number of common deficiencies (such as bad menus) and the oft-observed fact that "site structure reflects what the institution thinks is important, not what site users actually want to know." As well, there is a "conflation of promotional and informational material and approaches." But does this really get to the question of why they are so bad? Not really. Image: XKCD.

[Link] [Comment]
07 Jul 22:16

Bridging The Political [Polygons] Gap with ggplot2

by hrbrmstr

The @pewresearch folks have been collecting political survey data for quite a while, and I noticed the visualization below referenced in a Tableau vis contest entry:

Cursor_and_Political_Polarization_and_Growing_Ideological_Consistency___Pew_Research_Center

Those are filled frequency polygons, which are super-easy to replicate in ggplot2, especially since Pew even kind of made the data available via their interactive visualization (it’s available in other Pew resources, just not as compact). So, we can look at all 5 study years for both the general population and politically active respondents with ggplot2 facets, incorporating the use of V8, dplyr, tidyr, purrr and some R spatial functions along the way.

The first code block has the “data”, data transformations and initial plot code. The “data” is really javascript blocks picked up from the view-source: of the interactive visualization. We use the V8 package to get this data then bend it to our will for visuals.

library(V8)
library(dplyr)
library(tidyr)
library(purrr)
library(ggplot2)  # devtools::install_github("hadley/ggplot2)
library(hrbrmisc) # devtools::install_github("hrbrmstr/hrbrmisc)
library(rgeos)
library(sp)

ctx <- v8()
ctx$eval("
	var party_data = [
		[{
			name: 'Dem',
			data: [0.57,1.60,1.89,3.49,3.96,6.56,7.23,8.54,9.10,9.45,9.30,9.15,7.74,6.80,4.66,4.32,2.14,1.95,0.87,0.57,0.12]
		},{
			name: 'REP',
			data: [0.03,0.22,0.28,1.49,1.66,2.77,3.26,4.98,5.36,7.28,7.72,8.16,8.86,8.88,8.64,8.00,6.20,5.80,4.87,4.20,1.34]
		}],
		[{
			name: 'Dem',
			data: [1.22,2.78,3.28,5.12,6.15,7.77,8.24,9.35,9.73,9.19,8.83,8.47,5.98,5.17,3.62,2.87,1.06,0.75,0.20,0.15,0.04]
		}, {
			name: 'REP',
			data: [0.23,0.49,0.65,2.23,2.62,4.06,5.02,7.53,7.70,7.28,7.72,8.15,8.87,8.47,7.08,6.27,4.29,3.99,3.54,2.79,1.03]
		}],
		[{
			name: 'Dem',
			data: [2.07,3.57,4.21,6.74,7.95,8.41,8.58,9.07,8.98,8.46,8.47,8.49,5.39,3.62,2.11,1.98,1.00,0.55,0.17,0.17,0.00]
		}, {
			name: 'REP',
			data: [0.19,0.71,1.04,2.17,2.07,3.65,4.92,7.28,8.26,9.64,9.59,9.55,7.91,7.74,6.84,6.01,4.37,3.46,2.09,1.65,0.86]
		}],
		[{
			name: 'Dem',
			data: [2.97,4.09,4.28,6.65,7.90,8.37,8.16,8.74,8.61,8.15,7.74,7.32,4.88,4.82,2.79,2.07,0.96,0.78,0.41,0.29,0.02]
		}, {
			name: 'REP',
			data: [0.04,0.21,0.28,0.88,1.29,2.64,3.08,4.92,5.84,6.65,6.79,6.92,8.50,8.61,8.05,8.00,7.52,7.51,5.61,4.17,2.50]
		}],
		[{
			name: 'Dem',
			data: [4.81,6.04,6.57,7.67,7.84,8.09,8.24,8.91,8.60,6.92,6.69,6.47,4.22,3.85,1.97,1.69,0.66,0.49,0.14,0.10,0.03]
		}, {
			name: 'REP',
			data: [0.11,0.36,0.49,1.23,1.35,2.35,2.83,4.63,5.09,6.12,6.27,6.41,7.88,8.03,7.58,8.26,8.12,7.29,6.38,5.89,3.34]
		}],
	];

	var party_engaged_data = [
		[{
			name: 'Dem',
			data: [0.88,2.19,2.61,4.00,4.76,6.72,7.71,8.45,8.03,8.79,8.79,8.80,7.23,6.13,4.53,4.31,2.22,2.01,1.05,0.66,0.13]
		}, {
			name: 'REP',
			data: [0.00,0.09,0.09,0.95,1.21,1.67,2.24,3.22,3.70,6.24,6.43,6.62,8.01,8.42,8.97,8.48,7.45,7.68,8.64,7.37,2.53]
		}],
		[{
			name: 'Dem',
			data: [1.61,3.35,4.25,6.75,8.01,8.20,8.23,9.14,8.94,8.68,8.46,8.25,4.62,3.51,2.91,2.63,1.19,0.74,0.24,0.17,0.12]
		},{
			name: 'REP',
			data: [0.21,0.38,0.68,1.62,1.55,2.55,3.99,4.65,4.31,5.78,6.28,6.79,8.47,9.01,8.61,8.34,7.16,6.50,6.10,4.78,2.25]
		}],
		[{
			name: 'Dem',
			data: [3.09,4.89,6.22,9.40,9.65,9.20,8.99,6.48,7.36,7.67,6.95,6.22,4.53,3.79,2.19,2.02,0.74,0.07,0.27,0.27,0.00]
		}, {
			name: 'REP',
			data: [0.29,0.59,0.67,2.11,2.03,2.67,4.12,6.55,6.93,8.42,8.79,9.17,7.33,6.84,7.42,7.25,6.36,5.32,3.35,2.57,1.24]
		}],
		[{
			name: 'Dem',
			data: [6.00,5.24,5.11,7.66,9.25,8.25,8.00,8.09,8.12,7.05,6.59,6.12,4.25,4.07,2.30,1.49,0.98,0.80,0.42,0.16,0.06]
		}, {
			name: 'REP',
			data: [0.00,0.13,0.13,0.48,0.97,2.10,2.73,3.14,3.64,5.04,5.30,5.56,6.87,6.75,8.03,9.33,11.01,10.49,7.61,6.02,4.68]
		}],
		[{
			name: 'Dem',
			data: [9.53,9.68,10.35,9.33,9.34,7.59,6.67,6.41,6.60,5.21,4.84,4.47,2.90,2.61,1.37,1.14,0.73,0.59,0.30,0.28,0.06]
		}, {
			name: 'REP',
			data: [0.15,0.11,0.13,0.46,0.52,1.18,1.45,2.46,2.84,4.15,4.37,4.60,6.36,6.66,7.34,9.09,11.40,10.53,10.58,9.85,5.76]
		}],
	];
")

years <- c(1994, 1999, 2004, 2001, 2014)

# Transform the javascript data -------------------------------------------

party_data <- ctx$get("party_data")
map_df(1:length(party_data), function(i) {
  x <- party_data[[i]]
  names(x$data) <- x$name
  dat <- as.data.frame(x$data)
  bind_cols(dat, data_frame(x=-10:10, year=rep(years[i], nrow(dat))))
}) -> party_data

party_engaged_data <- ctx$get("party_engaged_data")
map_df(1:length(party_engaged_data), function(i) {
  x <- party_engaged_data[[i]]
  names(x$data) <- x$name
  dat <- as.data.frame(x$data)
  bind_cols(dat, data_frame(x=-10:10, year=rep(years[i], nrow(dat))))
}) -> party_engaged_data

# We need it in long form -------------------------------------------------

gather(party_data, party, pct, -x, -year) %>%
  mutate(party=factor(party, levels=c("REP", "Dem"))) -> party_data_long

gather(party_engaged_data, party, pct, -x, -year) %>%
  mutate(party=factor(party, levels=c("REP", "Dem"))) -> party_engaged_data_long

# Traditional frequency polygon plots -------------------------------------

gg <- ggplot()
gg <- gg + geom_ribbon(data=party_data_long,
                       aes(x=x, ymin=0, ymax=pct, fill=party, color=party), alpha=0.5)
gg <- gg + scale_x_continuous(expand=c(0,0), breaks=c(-8, 0, 8),
                              labels=c("Consistently\nliberal", "Mixed", "Consistently\nconservative"))
gg <- gg + scale_y_continuous(expand=c(0,0), limits=c(0, 12))
gg <- gg + scale_color_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                              labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + guides(color="none", fill=guide_legend(override.aes=list(alpha=1)))
gg <- gg + scale_fill_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                             labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + facet_wrap(~year, ncol=2, scales="free_x")
gg <- gg + labs(x=NULL, y=NULL,
                title="Political Polarization, 1994-2014 (General Population)",
                caption="Source: http://www.people-press.org/2014/06/12/section-1-growing-ideological-consistency/iframe/")
gg <- gg + theme_hrbrmstr_an(grid="")
gg <- gg + theme(panel.margin=margin(t=30, b=30, l=30, r=30))
gg <- gg + theme(legend.position=c(0.75, 0.1))
gg <- gg + theme(legend.direction="horizontal")
gg <- gg + theme(axis.text.y=element_blank())
gg

gg <- ggplot()
gg <- gg + geom_ribbon(data=party_engaged_data_long,
                       aes(x=x, ymin=0, ymax=pct, fill=party, color=party), alpha=0.5)
gg <- gg + scale_x_continuous(expand=c(0,0), breaks=c(-8, 0, 8),
                              labels=c("Consistently\nliberal", "Mixed", "Consistently\nconservative"))
gg <- gg + scale_y_continuous(expand=c(0,0), limits=c(0, 12))
gg <- gg + scale_color_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                              labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + guides(color="none", fill=guide_legend(override.aes=list(alpha=1)))
gg <- gg + scale_fill_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                             labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + facet_wrap(~year, ncol=2, scales="free_x")
gg <- gg + labs(x=NULL, y=NULL,
                title="Political Polarization, 1994-2014 (Politically Active)",
                caption="Source: http://www.people-press.org/2014/06/12/section-1-growing-ideological-consistency/iframe/")
gg <- gg + theme_hrbrmstr_an(grid="")
gg <- gg + theme(panel.margin=margin(t=30, b=30, l=30, r=30))
gg <- gg + theme(legend.position=c(0.75, 0.1))
gg <- gg + theme(legend.direction="horizontal")
gg <- gg + theme(axis.text.y=element_blank())
gg

genalpha

engalpha

It provides a similar effect to the Pew & Interworks visuals using alpha transparency to blend the point of polygon intersections. But I really kinda like the way both Pew & Interworks did their visualizations without alpha blending yet still highlighting the intersected areas. We can do that in R as well with a bit more work by:

  • grouping each data frame by year
  • turning each set of points (Dem & Rep) to R polygons
  • computing the intersection of those polygons
  • turning that intersection back into a data frame
  • adding this new polygon to the plots while also removing the alpha blend

Here’s what that looks like in code:

# Setup a function to do the polygon intersection -------------------------

polysect <- function(df) {

  bind_rows(data_frame(x=-10, pct=0),
            select(filter(df, party=="Dem"), x, pct),
            data_frame(x=10, pct=0)) %>%
    as.matrix() %>%
    Polygon() %>%
    list() %>%
    Polygons(1) %>%
    list() %>%
    SpatialPolygons() -> dem

  bind_rows(data_frame(x=-10, pct=0),
            select(filter(df, party=="REP"), x, pct),
            data_frame(x=10, pct=0)) %>%
    as.matrix() %>%
    Polygon() %>%
    list() %>%
    Polygons(1) %>%
    list() %>%
    SpatialPolygons() -> rep

  inter <- gIntersection(dem, rep)
  inter <- as.data.frame(inter@polygons[[1]]@Polygons[[1]]@coords)[c(-1, -25),]
  inter <- mutate(inter, year=df$year[1])
  inter

}

# Get the intersected area ------------------------------------------------

group_by(party_data_long, year) %>%
  do(polysect(.)) -> general_sect

group_by(party_engaged_data_long, year) %>%
  do(polysect(.)) -> engaged_sect


# Try the plots again -----------------------------------------------------

gg <- ggplot()
gg <- gg + geom_ribbon(data=party_data_long,
                       aes(x=x, ymin=0, ymax=pct, fill=party, color=party))
gg <- gg + geom_ribbon(data=general_sect, aes(x=x, ymin=0, ymax=y), color="#666979", fill="#666979")
gg <- gg + scale_x_continuous(expand=c(0,0), breaks=c(-8, 0, 8),
                              labels=c("Consistently\nliberal", "Mixed", "Consistently\nconservative"))
gg <- gg + scale_y_continuous(expand=c(0,0), limits=c(0, 12))
gg <- gg + scale_color_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                              labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + guides(color="none", fill=guide_legend(override.aes=list(alpha=1)))
gg <- gg + scale_fill_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                             labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + facet_wrap(~year, ncol=2, scales="free_x")
gg <- gg + labs(x=NULL, y=NULL,
                title="Political Polarization, 1994-2014 (General Population)",
                caption="Source: http://www.people-press.org/2014/06/12/section-1-growing-ideological-consistency/iframe/")
gg <- gg + theme_hrbrmstr_an(grid="")
gg <- gg + theme(panel.margin=margin(t=30, b=30, l=30, r=30))
gg <- gg + theme(legend.position=c(0.75, 0.1))
gg <- gg + theme(legend.direction="horizontal")
gg <- gg + theme(axis.text.y=element_blank())
gg

gg <- ggplot()
gg <- gg + geom_ribbon(data=party_engaged_data_long,
                       aes(x=x, ymin=0, ymax=pct, fill=party, color=party))
gg <- gg + geom_ribbon(data=engaged_sect, aes(x=x, ymin=0, ymax=y), color="#666979", fill="#666979")
gg <- gg + scale_x_continuous(expand=c(0,0), breaks=c(-8, 0, 8),
                              labels=c("Consistently\nliberal", "Mixed", "Consistently\nconservative"))
gg <- gg + scale_y_continuous(expand=c(0,0), limits=c(0, 12))
gg <- gg + scale_color_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                              labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + guides(color="none", fill=guide_legend(override.aes=list(alpha=1)))
gg <- gg + scale_fill_manual(name=NULL, values=c(Dem="#728ea2", REP="#cf6a5d"),
                             labels=c(Dem="Democrats", REP="Republicans"))
gg <- gg + facet_wrap(~year, ncol=2, scales="free_x")
gg <- gg + labs(x=NULL, y=NULL,
                title="Political Polarization, 1994-2014 (Politically Active)",
                caption="Source: http://www.people-press.org/2014/06/12/section-1-growing-ideological-consistency/iframe/")
gg <- gg + theme_hrbrmstr_an(grid="")
gg <- gg + theme(panel.margin=margin(t=30, b=30, l=30, r=30))
gg <- gg + theme(legend.position=c(0.75, 0.1))
gg <- gg + theme(legend.direction="horizontal")
gg <- gg + theme(axis.text.y=element_blank())
gg

genfull

engfull

Without much extra effort/work we now have what I believe to be a more striking set of visuals. (And, I should probably makes a points_to_spatial_polys() convenience function.)

You’ll find the “overall” group data as well as the party median values in the Pew HTML source code if you want to try to fully replicate their visualizations.

07 Jul 21:45

Continuous, a C# and F# IDE for the iPad

by Rui Carmo

This is bloody amazing. After I catch up on my sleep, I fully intend to spend part of the weekend tinkering with it.

One of the most interesting things about Continuous is that it features a port of the Roslyn compiler – you can check out Frank’s blog post for a little more info.

07 Jul 16:32

Bike Lanes and Commercial Drive-Cyclegeddon?

by Sandy James Planner

commercial-drive-bike

That title is sure to conjure up all kinds of images. As part of the City of Vancouver’s cycling network upgrades for years 2016-2020, the City is proposing a dedicated buffered bike lane on Commercial Drive. Some people think that championing Vancouver’s Commercial Drive as a biking and walking street will reinforce the friendly, neighbourly vibe The Drive is so well-known for. Others, like The Drive’s Business Society fear the death of retailing by cyclegeddon.

The executive director of the Commercial Drive Business Society  has written  a compelling statement clearly stating that in the society’s view, bike lanes on Commercial are not financially sound for their businesses.

Recently, businesses along The Drive have been working with the City of Vancouver to update the area’s transportation infrastructure. The dynamics of the city are changing and with that, the way we get around must adapt. Recently, however, the City has been aggressively pushing a strategy that we cannot support – the installation of permanent bicycle lanes on Commercial Drive itself.

For the record, businesses on The Drive support enhanced infrastructure for cyclists in Vancouver. Many of our business owners are cyclists themselves, as are our customers and our employees. We recognize that thanks to organizations like HUB and Mobi, cycling is on the rise…

What we cannot support, however, are permanent and blocked off lanes on an already narrow high street, with limited parking and no room for our vendors to make deliveries as is.”

So there you have it. The issue is access to parking (and a lack of dedicated parking facilities)  for people arriving by car, and deliveries servicing the businesses. As the Business Society summarizes “After all it is called The Drive for a reason”.

gvo-sc-vaneastcinema-3-thedrive-bcliving-com

Commercial Drive merchants have not yet felt the tipping point  where walkers, bikers and transit riders visit more often and spend more per month than people arriving by car. But that has been the experience of the City of Toronto and the City of New York when walking and biking facilities are expanded in commercial areas and car facilities minimized.

Price Tags editor Ken Ohrn examined the changing attitudes to biking and commercial areas in this June post, and also referred to the  thorough Stantec Business Impact Study of downtown bike lanes from 2011. Let’s hope the Commercial Drive’s Business Society gives it a read.


07 Jul 16:31

Ohrn Image — Public Art

by Ken Ohrn

Comox & Bidwell

X20-DSCF3351-074

 


07 Jul 16:31

"It is ridiculous that the United States is one of the only nations of our size and scope in the..."

““It is ridiculous that the United States is one of the only nations of our size and scope in the world that no longer has an office that is dedicated to rigorous, nonpartisan research about the future. The fact that we don’t do that is insane.”

- Amy Webb, cited by Farhad Manjoo in Why We Need to Pick Up Alvin Toffler’s Torch
07 Jul 16:31

@stoweboyd

@stoweboyd:
07 Jul 16:30

@stoweboyd

@stoweboyd:
07 Jul 16:22

@stoweboyd

@stoweboyd:
07 Jul 16:22

@stoweboyd

@stoweboyd:
07 Jul 16:22

do-you-have-a-flag: technology related sensory memories from my childhood sliding the metal cover...

do-you-have-a-flag:

technology related sensory memories from my childhood

  • sliding the metal cover on floppy disks
  • the slight resistance of inserting cassette and video tapes
  • ripping off the strips of holed paper off of dot matrix printer paper 
  • rolling the wheel on a disposable camera to take another photo
07 Jul 16:22

Sanders confirms endorsement chatter

Sanders confirms endorsement chatter:

politico:

Bernie Sanders confirmed on Wednesday night that he is in discussions with the Hillary Clinton campaign about a potential endorsement of her candidacy, adding that he anticipates a “coming together” of the two campaigns.

Appearing on MSNBC’s “All In With Chris Hayes,” Sanders was pointedly asked whether mounting reports that he is finally getting ready to endorse his longstanding Democratic primary rival had any validity.

“You’re not denying the report that there are talks about a possible endorsement?” Hayes said.

Sanders replied: “That’s correct.”

Read more here

07 Jul 16:22

Unpleasant Design & Hostile Urban Architecture

07 Jul 14:22

Twitter Favorites: [carlylewis] regarding the subject of untalented men earning money and bylines for their pitiable fantasies about famous women... https://t.co/7SbV8L67zd

Carly Lewis @carlylewis
regarding the subject of untalented men earning money and bylines for their pitiable fantasies about famous women... thewalrus.ca/boys/
07 Jul 14:22

Twitter Favorites: [ksheely] So Pokémon Go is basically Geocaching with in-app purchases

⌱ kent sheely @ksheely
So Pokémon Go is basically Geocaching with in-app purchases