Shared posts

08 Aug 17:08

Releasing the StackLite dataset of Stack Overflow questions and tags

by David Robinson

At Stack Overflow we’ve always been committed to sharing data: all content contributed to the site is CC-BY-SA licensed, and we release regular “data dumps” of our entire history of questions and answers.

I’m excited to announce a new resource specially aimed at data scientists, analysts and other researchers, which we’re calling the StackLite dataset.

What’s in the StackLite dataset?

For each Stack Overflow question asked since the beginning of the site, the dataset includes:

  • Question ID
  • Creation date
  • Closed date, if applicable
  • Deletion date, if applicable
  • Score
  • Owner user ID (except for deleted questions)
  • Number of answers
  • Tags

This is ideal for performing analyses such as:

  • The increase or decrease in questions in each tag over time
  • Correlations among tags on questions
  • Which tags tend to get higher or lower scores
  • Which tags tend to be asked on weekends vs weekdays
  • Rates of question closure or deletion over time
  • The speed at which questions are closed or deleted

Examples in R

The dataset is provided as csv.gz files, which means you can use almost any language or statistical tool to process it. But here I’ll share some examples of a simple analysis in R.

The question data and the question-tag pairings are stored separately. You can read in the dataset (once you’ve cloned or downloaded it from GitHub) with:

library(readr)
library(dplyr)

questions <- read_csv("stacklite/questions.csv.gz")
question_tags <- read_csv("stacklite/question_tags.csv.gz")

The questions file has one row for each question:

questions
## Source: local data frame [15,497,156 x 7]
## 
##       Id        CreationDate          ClosedDate        DeletionDate Score
##    (int)              (time)              (time)              (time) (int)
## 1      1 2008-07-31 21:26:37                <NA> 2011-03-28 00:53:47     1
## 2      4 2008-07-31 21:42:52                <NA>                <NA>   406
## 3      6 2008-07-31 22:08:08                <NA>                <NA>   181
## 4      8 2008-07-31 23:33:19 2013-06-03 04:00:25 2015-02-11 08:26:40    42
## 5      9 2008-07-31 23:40:59                <NA>                <NA>  1286
## 6     11 2008-07-31 23:55:37                <NA>                <NA>  1046
## 7     13 2008-08-01 00:42:38                <NA>                <NA>   415
## 8     14 2008-08-01 00:59:11                <NA>                <NA>   265
## 9     16 2008-08-01 04:59:33                <NA>                <NA>    65
## 10    17 2008-08-01 05:09:55                <NA>                <NA>    96
## ..   ...                 ...                 ...                 ...   ...
## Variables not shown: OwnerUserId (int), AnswerCount (int)

While the question_tags file has one row for each question-tag pair:

question_tags
## Source: local data frame [45,510,638 x 2]
## 
##       Id                 Tag
##    (int)               (chr)
## 1      1                data
## 2      4                  c#
## 3      4            winforms
## 4      4     type-conversion
## 5      4             decimal
## 6      4             opacity
## 7      6                html
## 8      6                 css
## 9      6                css3
## 10     6 internet-explorer-7
## ..   ...                 ...

As one example, you could find the most popular tags:

question_tags %>%
  count(Tag, sort = TRUE)
## Source: local data frame [55,661 x 2]
## 
##           Tag       n
##         (chr)   (int)
## 1  javascript 1454248
## 2        java 1409336
## 3         php 1241691
## 4          c# 1208953
## 5     android 1163810
## 6      jquery  931882
## 7      python  732188
## 8        html  690762
## 9         ios  573246
## 10        c++  571386
## ..        ...     ...

Or plot the number of questions asked per week:

library(ggplot2)
library(lubridate)

questions %>%
  count(Week = round_date(CreationDate, "week")) %>%
  ggplot(aes(Week, n)) +
  geom_line()

center

Many of the most interesting issues you can examine involve tags, which describe the programming language or technology used in a question. You could compare the growth or decline of particular tags over time:

library(lubridate)

tags <- c("c#", "javascript", "python", "r")

q_per_year <- questions %>%
  count(Year = year(CreationDate)) %>%
  rename(YearTotal = n)

tags_per_year <- question_tags %>%
  filter(Tag %in% tags) %>%
  inner_join(questions) %>%
  count(Year = year(CreationDate), Tag) %>%
  inner_join(q_per_year)

ggplot(tags_per_year, aes(Year, n / YearTotal, color = Tag)) +
  geom_line() +
  scale_y_continuous(labels = scales::percent_format()) +
  ylab("% of Stack Overflow questions with this tag")

center

How this compares to other Stack Overflow resources

Almost all of this data is already public within the Stack Exchange Data Dump. But the official data dump requires a lot of computational overhead to download and process (the Posts fit in a 27 GB XML file), even if the question you want to ask is very simple. The StackLite dataset, in contrast, is designed to be easy to read in and start analyzing. (For example, I was really impressed with Joshua Kunst’s analysis of tags over time, and want to make it straightforward for others to write posts like that).

Similarly, this data can be examined within the Stack Exchange Data Explorer (SEDE), but it requires working with separate queries that each return at most 50,000 rows. The StackLite dataset offers analysts the chance to work with the data locally using their tool of choice.

Enjoy!

I’m hoping other analysts find this dataset interesting, and use it to perform meaningful and open research. (Be sure to comment below if you do!)

I’m especially happy to have this dataset public and easily accessible, since it gives me the chance to blog more analyses of Stack Overflow questions and tags while keeping my work reproducible and extendable by others. Keep an eye out for such posts in the future!

18 Jul 20:31

Apple Begins Switching Apple Music Subscribers to Audio Fingerprint-Based Song Matching

by John Voorhees

A major complaint about Apple Music when it rolled out was that it used a metadata-based matching system, which sometimes caused it to incorrectly match songs in users' music libraries with Apple's database. Jim Dalrymple reports for The Loop, that:

Apple has been quietly rolling out iTunes Match audio fingerprint to all Apple Music subscribers. Previously Apple was using a less accurate metadata version of iTunes Match on Apple Music, which wouldn’t always match the correct version of a particular song. We’ve all seen the stories of a live version of a song being replaced by a studio version, etc.

According to Dalrymple, the audio fingerprint matching system that Apple is slowly rolling out to Apple Music is the same system that has been available to customers who subscribe separately to iTunes Match. The new matching functionality is being added by Apple at no additional cost to Apple Music subscribers, which means that if you previously subscribed to Apple Music and iTunes Match, there should be no reason to renew your iTunes Match subscription when it expires. As Jim Dalrymple points out, however, you may want to be sure that the new system is working properly before letting Match expire.

→ Source: loopinsight.com

18 Jul 20:31

Artists Preserve Nelson Mandela's Legacy with 95 Unique Posters

by Jenny Hart for The Creators Project

Anton Odhiambo, Kenya. Images courtesy the Mandela Poster Project Collective

Two months before his 95th birthday and seven months before he passed away, Nelson Mandela was honored by a group of South African designers that came together to celebrate the legacy of the human rights icon. Designers from around the world submitted nearly 1,000 unique artworks for consideration, which have been distilled to 95 posters touring the world in an exhibition called the Mandela Poster Project.

Now known as the Mandela Poster Project Collective, the designers chose posters as their medium because they're easily shareable, ideal for their goal to curate an artwork for each of Mandela’s 95 living years.  “It turned into something much bigger than any one of us envisioned,” says Ithateng “Thati” Mokgoro, co-curator and member of the Mandela Poster Project Collective.

Garth Walker, South Africa

“We just wanted to celebrate the man’s life. As designers, we wanted to give something back.” Today would be the political icon's 98th birthday, and the project is still going strong. Earlier this month, the posters premiered in the United States for the first time at a one-night only exhibit at the Brooklyn Museum. During the curation process, the Mandela Poster Project Collective picked out varying qualities of Mandela’s life and character they saw reflected in the art and wanted to promote. Mokgoro breaks it down for The Creators Project:

“First, you have the portraits. You have his face—it’s recognizable. Then you have Mandela the boxer, an aspect of his earlier life that many people picked up. You have birds that represent freedom, and jail bars for obvious reasons. There’s Mandela, the son of Africa; the continent has a very distinct shape. Everybody knows that shape. And then there’s the black power salute, and his many names—“Madiba” (his clan name), “Tata” (“Father”), and “Mandela” itself. There’s Mandela the story, written beginning to end. And there are his values, and there are rainbows. South Africa is known as the “rainbow nation” because everyone comes from different backgrounds. Mandela represents that.”

Jol Guenoun, France

The collection has been touring internationally since its release three years ago. Its long-awaited North American debut is sponsored by Kalahari Resorts and Conventions, an Africa-themed water park resort chain. Kalahari president and owner Todd Nelson became familiar with the project after being connected to Mokgoro through a mutual friend. A serious lover of African art (he believes he owns one of the largest collections in the country, with millions of dollars worth of art in each of his three resorts), Nelson was eager and excited for the opportunity to work with the Mandela Poster Project Collective to bring the posters stateside.

Byoung il Sun, South Korea; Ana Paul Caldas, An Admirable Man, Brazil

“Thati wanted to get the posters into America, and New York is a place where they could get some viewership,” says Nelson of choosing the Brooklyn Museum as their initial venue.The posters are currently showcasing at each of Kalahari’s properties in Wisconsin Dells, Wisconsin, Sandusky, Ohio, and Pocono Mountains, Pennsylvania, throughout the summer.

“We want to get Mandela’s message out. Kalahari wants to bring Africa closer to home,” says Mokgoro. “We meet each other half way. It’s a collaboration. This will help educate a new generation about Nelson Mandela’s place in history.”

Syndiso Nyoni (aka R!OT), The Boxer, Zimbabwe/South Africa

Sally Chambers, Madiba25, South Africa

Carlos Andrade, Venezuela

Diego Giovanni Bermúdez Aguirre, Colombia

Sulet Jansen, South Africa; Dominic Evans, South Africa

Marian Bantjes, Mandela Mandala, Canada

Lavanya Asthana, India

To learn more about the Mandela Poster Project click here.

Related links:

South African Artist Explores Feminism Through Intimate Sculptures

The World's Largest Contemporary African Art Fair Comes to Brooklyn

Hyperrealistic Paintings of Chrome Masks Celebrate African Art and Beauty

18 Jul 20:31

Building a Better List App

by jim

It has been over 6 years since I first released Paperless on the App Store. It started off as an experiment, a simple list app mostly built for my own use, though it turned out that a lot of people besides me also found the app useful. Over time, hundreds of thousands of people have relied on Paperless to help them stay organized and keep track of all sorts of things. Some people have said it’s the most used app on their iPhone.

In addition, Paperless received high marks when reviewed by Macworld, AppShopper and others, as well as being included in Wired Magazine’s “Wired App Guide” in 2013 and promoted by Dropbox in an email to their many subscribers.

However, Paperless was the first computer program I made*, and I knew that it could be better. Over the years I’ve learned quite a bit about what people need and want in an app to help them organize their lives – but some of those things wouldn’t have fit within the existing structure of Paperless. So, a couple of years ago I started working on building a better solution.

Ikiru

Introducing Ikiru

Soon I’ll be releasing a brand new list app named “Ikiru” (ee-kee-roo) that borrows the best ideas from Paperless, further simplifies and refines them, and adds some big new features that people have been requesting for a long time.

UPDATE: Ikiru is now available!

With this new app you’ll be able to:

  • create lists within lists – now your “Travel” list can have a subcategories for “Places To Visit”, “Restaurants” and “Packing”… each with their own subcategories if you want
  • add a photo to each list item
  • add a due date/reminder to each list item, and view all items with due dates in a timeline
  • sort lists/items by dragging and dropping them, or automatically keep a list sorted alphabetically, by date created, by date modified, by date completed, or by due date
  • pick from over 2000 icons to assign to your lists
  • quickly and securely sync lists between devices via iCloud
Ikiru

Beyond that there are a lot of subtle improvements… things you might not even notice because they “just work”.

For example, in Paperless there’s a useful feature to “Uncheck All” items for when you want to reset the list and start working from it again. However, there’s a problem… depending on what order you checked the list items off in, the items might be in a different order within the list after the “Uncheck All”. Ikiru does a better job by having list items remember their original position within a list, so no matter what order you completed items in, you can easily reset the list to its original state.

As another example, Ikiru automatically detects URLs, phone numbers, web addresses and physical addresses to turn them into tappable links. You don’t have to switch between separate “editable” and “read only/detect links” modes like in Paperless.

Ikiru also supports more recent iOS advancements like split screen on an iPad, and includes a Today extension to quickly see items with due dates – along with an Apple Watch app to do the same.

Ikiru

This news is sure to bring up a few questions:

“But I love Paperless! Why didn’t you just add those features to the app I already use?”

The user interface changes needed to add the new features and further simplify the app would have required huge modifications to Paperless. I decided that it would be better to build a new app, rather than rip apart Paperless and try to mold it into something different.

I also wanted to give people a choice. Many people like Paperless for what it is, and would be upset with major changes. For people who still want to use Paperless, don’t worry, it isn’t going anywhere. I plan to keep updating and supporting the app as needed for as long as people are still using it.

“What about all of my existing lists? Will I have to type those into the new app?”

No! There will be an easy way to transfer your existing lists from Paperless to Ikiru.

“Okay, I’m interested. When will this new app be available?”

Ikiru will be released on August 9th. Ikiru is now available!

“Why is the app named ‘Ikiru’”?

The word “ikiru” (ee-kee-roo) means “to live” in Japanese. It’s also the title of an Akira Kurosawa film about a man who decides to do something meaningful with his life. Ikiru (the app) is my attempt at doing something meaningful with my life, and hopefully help others live meaningful and productive lives.

Over the years I’ve received emails and app reviews from many people who have found Paperless useful, from busy moms to airplane pilots doing pre-flight checklists to people who suffered a brain injury and needed a little help remembering things. I am humbled that Paperless has been useful to so many different people. My hope is that you’ll find Ikiru even more useful, and that it will make your life just a little bit easier.

Thanks for your support!

* not counting the extremely basic Mac OS 9 app I made that was just an icon of an orc from the game Warcraft II, which when double-clicked would play a random orc sound… “zug zug!

18 Jul 18:43

Space to Breathe at English Bay

by pricetags

One of the newest public spaces in the city:

IMG_8319 (Large)

It’s only a few meters wide:  the brown paving in the pic above.

Space for a bench, a foodcart and, most importantly, a line-up of people.  Before, they blocked the sidewalk, even spilled onto the bicycle path.  Absurdly congested.

By taking a lane from the road to make this space, everyone comfortably moves through or stands around – relaxing, without wondering what they might run into.

IMG_8323 (Large)

 

With room to breathe, wonderful things happen:

IMG_8332

 

A small piece of public space, critically located.  What a difference a small intervention can make.

Up for discussion: extending the flag triangle where Beach, Denman and Pacific meet, across the avenue to the Seaside greenway and the beachfront.

 


18 Jul 18:43

Bell secures exclusive streaming rights to Star Trek

by Igor Bonifacic

Well, you win some and you lose some.

While Canadians can watch the latest Star Wars film, The Force Awakens, on Netflix, the country’s Star Trek fans will need to turn to Bell’s CraveTV platform to check out the franchise’s upcoming new television entry.

It’s all thanks to a new licensing agreement signed between Bell Media and Star Trek steward CBS that sees the former gain exclusive Canadian streaming and television rights to the franchise’s new television entry, set to start airing in 2017, as well as its entire 727 episode back catalogue.

In all other countries where its platform is available, Netflix was able to secure the rights to Star Trek’s new entry and its back catalogue.

When it airs in January, the first episode of the new series will be shown on CTV, with subsequent episodes airing in English on Space and in French on Z. Series episodes will later make their way to CraveTV.

Thanks to the deal, the entire Star Trek television library will also make its return to Space.

In the U.S., the new TV series will be available on CBS All Access, the network’s new over-the-top platform play.

Correction: an earlier version of this article mistakenly said the new Star Trek television series will air in September 2017, not January 2017 as is noted in Bell Media’s press release.

18 Jul 18:42

The fruits of VR (at Atherton, California)



The fruits of VR (at Atherton, California)

18 Jul 18:42

Borrowing in Pony

The 'TL;DR' of this post on how to borrow internal fields of iso objects in Pony is:

To borrow fields internal to an iso object, recover the object to a ref (or other valid capability) perform the operations using the field, then consume the object back to an iso.

Read on to find out why.

In this post I use the term borrowing to describe the process of taking a pointer or reference internal to some object, using it, then returning it. An example from C would be something like:

void* new_foo();
void* get_bar(foo* f);
void  delete_foo(foo* f);

...
void* f = new_foo();
void* b = get_bar(f);
...
delete_foo(f);

Here a new foo is created and a pointer to a bar object returned from it. This pointer is to data internal to foo. It's important not to use it after foo is deleted as it will be a dangling pointer. While holding the bar pointer you have an alias to something internal to foo. This makes it difficult to share foo with other threads or reason about data races. The foo object could change the bar data without the holder of the borrowed pointer to bar knowing making it a dangling pointer, or invalid data, at any time. I go through a real world case of this in my article on using C in the ATS programming language.

Pony has the concept of a reference to an object where only one pointer to that object exists. It can't be aliased and nothing else can read or write to that object but the current reference to it. This is the iso reference capability. Capabilities are 'deep' in pony, rather than 'shallow'. This means that the reference capability of an alias to an object affects the reference capabilities of fields of that object as seen by that alias. The description of this is in the viewpoint adaption section of the Pony tutorial.

The following is a Pony equivalent of the previous C example:

class Foo
  let bar: Bar ref
...
let f: Foo ref = Foo.create()
let b: Bar ref = f.bar

The reference capability of f determines the reference capability of bar as seen by f. In this case f is a ref (the default of class objects) which according to the viewpoint adaption table means that bar as seen by f is also a ref. Intuitively this makes sense - a ref signifies multiple read/write aliases can exist therefore getting a read/write alias to something internal to the object is no issue. A ref is not sendable so cannot be accessed from multiple threads.

If f is an iso then things change:

class Foo
  let bar: Bar ref
...
let f: Foo iso = recover iso Foo.create() end
let b: Bar tag = f.bar

Now bar as seen by f is a tag. A tag can be aliased but cannot be used to read/write to it. Only object identity and calling behaviours is allowed. Again this is intuitive. If we have a non-aliasable reference to an object (f being iso here) then we can't alias internally to the object either. Doing so would mean that the object could be changed on one thread and the internals modified on another giving a data race.

The viewpoint adaption table shows that given an iso f it's very difficult to get a bar that you can write to. The following read only access to bar is ok:

class Foo
  let bar: Bar val
...
let f: Foo iso = recover iso Foo.create() end
let b: Bar val = f.bar

Here bar is a val. This allows multiple aliases, sendable across threads, but only read access is provided. Nothing can write to it. According to viewpoint adaption, bar as seen by f is a val. It makes sense that given a non-aliasable reference to an object, anything within that object that is immutable is safe to borrow since it cannot be changed. What if bar is itself an iso?

class Foo
  let bar: Bar iso = recover iso Bar end
...
let f: Foo iso = recover iso Foo.create() end
let b: Bar iso = f.bar

This won't compile. Viewpoint adaption shows that bar as seen by f is an iso. The assignment to b doesn't typecheck because it's aliasing an iso and iso reference capabilities don't allow aliasing. The usual solution when a field isn't involved is to consume the original but it won't work here. The contents of an objects field can't be consumed because it would then be left in an undefined state. A Foo object that doesn't have a valid bar is not really a Foo. To get access to bar externally from Foo the destructive read syntax is required:

class Foo
  var bar: Bar iso = recover iso Bar end
...
let f: Foo iso = recover iso Foo.create() end
let b: Bar iso = f.bar = recover iso Bar end

This results in f.bar being set to a new instance of Bar so it's never in an undefined state. The old value of f.bar is then assigned to b. This is safe as there are no aliases to it anymore due to the first part of the assignment being done first.

What if the internal field is a ref and we really want to access it as a ref? This is possible using recover. As described in the tutorial, one of the uses for recover is:

"Extract" a mutable field from an iso and return it as an iso.

This looks like:

class Foo
  let bar: Bar ref
... 
let f: Foo iso = recover iso Foo end
let f' = recover iso
           let f'': Foo ref = consume f
           let b: Bar ref = f''.bar
           consume f''
         end

Inside the recover block f is consumed and returned as a ref. The f alias to the object no longer exists at this point and we have the same object but as a ref capability in f''. bar as seen by f'' is a ref according to viewpoint adaption and can now be used within the recover block as a ref. When the recover block ends the f'' alias is consumed and returned out of the block as an iso again in f'.

This works because inside the recover block only sendable values from the enclosing scope can be accessed (ie. val, iso, or tag). When exiting the block all aliases except for the object being returned are destroyed. There can be many aliases to bar within the block but none of them can leak out. Multiple aliases to f' can be created also and they are not going to leaked either. At the end of the block only one can be returned and by consuming it the compiler knows that there are no more aliases to it so it is safe to make it an iso.

To show how the ref aliases created within the recover block can't escape, here's an example of an erroneous attempt to assign the f' alias to an object in the outer scope:

class Baz
  var a: (Foo ref | None) = None
  var b: (Foo ref | None) = None

  fun ref set(x: Foo ref) =>
    a = x
    b = x

class Bar

class Foo
  let bar: Bar ref = Bar

var baz: Baz iso = recover iso Baz end
var f: Foo iso = recover iso Foo end
f = recover iso
      let f': Foo ref = consume f
      baz.set(f')
      let b: Bar ref = f'.bar
      consume f'
    end

If this were to compile then baz would contain two references to the f' object which is then consumed as an iso. f would contain what it thinks is non-aliasable reference but baz would actually hold two additional references to it. This fails to compile at this line:

main.pony:20:18: receiver type is not a subtype of target type
          baz.set(f')
                 ^
Info:
main.pony:20:11: receiver type: Baz iso!
              baz.set(f')
              ^
main.pony:5:3: target type: Baz ref
      fun ref set(x: Foo ref) =>
      ^
main.pony:20:18: this would be possible if the arguments and return value were all sendable
              baz.set(f')
                     ^

baz is an iso so is allowed to be accessed from within the recover block. But the set method on it expects a ref receiver. This doesn't work because the receiver of a method of an object is also an implicit argument to that method and therefore needs to be aliased. In this way it's not possible to store data created within the recover block in something passed into the recover block externally. No aliases can be leaked and the compiler can track things easily.

There is something called automatic receiver recovery that is alluded to in the error message ("this would be possible...") which states that if the arguments were sendable then it is possible for the compiler to work out that it's ok to call a ref method on an iso object. Our ref arguments are not sendable which is why this doesn't kick in.

A real world example of where all this comes up is using the Pony net/http package. A user on IRC posted the following code snippet:

use "net/http"
class MyRequestHandler is RequestHandler

  let env: Env

  new val create(env': Env) =>
    env = env'

  fun val apply(request: Payload iso): Any =>
    for (k, v) in request.headers().pairs() do
      env.out.print(k)
      env.out.print(v)
    end

    let r = Payload.response(200)
    r.add_chunk("Woot")
    (consume request).respond(consume r)

The code attempts to iterate over the HTTP request headers and print them out. It fails in the request.headers().pairs() call, complaining that tag is not a subtype of box in the result of headers() when calling pairs(). Looking at the Payload class definition shows:

class iso Payload
  let _headers: Map[String, String] = _headers.create()

  fun headers(): this->Map[String, String] =>
    _headers

In the example code request is an iso and the headers function is a box (the default for fun). The return value of headers uses an arrow type. It reads as "return a Map[String, String] with the reference capability of _headers as seen by this". In this example this is the request object which is iso. _headers is a ref according to the class definition. So it's returning a ref as seen by an iso which according to viewpoint adaption is a tag.

This makes sense as we're getting a reference to the internal field of an iso object. As explained previously this must be a tag to prevent data races. This means that pairs() can't be called on the result as tag doesn't allow function calls. pairs() is a box method which is why the error message refers to tag not being a subtype of box.

To borrow the headers correctly we can use the approach done earlier of using a recover block:

fun val apply(request: Payload iso): Any =>
  let request'' = recover iso
    let request': Payload ref = consume request
    for (k, v) in request'.headers().pairs() do
      env.out.print(k)
      env.out.print(v)
    end
    consume request'
  end
  let r = Payload.response(200)
  r.add_chunk("Woot")
  (consume request'').respond(consume r)

In short, to borrow fields internal to an iso object, recover the object to a ref (or other valid capability) perform the operations using the field, then consume the object back to an iso.

18 Jul 18:41

Wanna Talk Parking?

by Ken Ohrn

City of Vancouver has placed at least two of these message boards in the West End, hoping to attract people to discuss the proposed changes to parking regulations there.

Parking.West.End.JPG

The signs, normally used to deliver various messages to motor vehicle drivers, here rotate through a 4-message panel, urging people to get involved in the consultation process.

Will this be enough to help diminish the cries of “no consultation”?  And will we ever get widespread realization that consultation does not confer veto power?

 

Go here for survey.

Parking


18 Jul 18:41

3,600 people plan to ‘catch ’em all’ at Pokémon Go’s Canadian release party [Now with Video]

by Ian Hardy

Pokémon Go is officially available in Canada on both Android and iOS and the hunt to catch them all is now on.

Tonight at 8 p.m. Pokémon Go trainers from all across the GTA are set to gather at the CN Tower in Toronto for an unofficial “Pokémon Go Canadian Release Party.” The event, created by Toronto’s Legacy Gamers, aims to “ring in the official start of our new Pokémon adventure together.”

The launch gathering kicks off at 8 p.m. at the base of the CN Tower. The event’s organizers are suggesting players dress up in their Pokémon Go team’s colours, either Mystic (blue), Valor (red) or Instinct (yellow).

pokemongo

At the time of writing, there approximately 3,100 people have said they’ll come to the event, with another 10,000 interested in going.

“This is a ‘Leave No Trace’ event. We urge anyone coming to the event to set a good example and dispose of all trash appropriately. Please do not leave your litter on the ground. Let’s show the world why Toronto can be the very best, like no one ever was,” reads the event’s Facebook page.

Update – 7:40pm: The stats for the unofficial Pokémon Go launch party has risen to 3,600 people with over 11,000 interested in attending. Will be interesting to see how many show up.

This is absurd #PokemonGO pic.twitter.com/CTytpu7SHY

— Jonathan Ore (@Jon_Ore) July 19, 2016

This is the #PokemonGO crowd by the #CNTower. Insane. @CTVNews pic.twitter.com/AVzpsCFr5x

— Sean Leathong (@CTVSean) July 19, 2016

#PokemonGOToronto Damn I never seen anything like this for a game. It's so awesome 😀 pic.twitter.com/Hc8kKYuqWb

— Logic Gate Studios (@LogicGateStudio) July 18, 2016

There are hundreds of people catching Pokémon at the CN Tower right now. Surreal. #PokemonGO #PokemonGOCanada pic.twitter.com/gmIS7GtCOD

— Lauren O'Neil (@laurenonizzle) July 19, 2016

Related reading: Pokémon Go is now officially available in Canada on iOS and Android

SourceFacebook
18 Jul 18:41

100 Naked Women, 'White Elevators,' Stephen Colbert at the RNC: Last Week in Art

by Sami Emory for The Creators Project

Via

A lot went down this week in the weird and wild world of Art. Some things were more scandalous than others, some were just plain wacky—but all of them are worth knowing about. Without further ado:

+ Spencer Tunick’s latest installation was staged yesterday morning at, of all places, the Republican National Convention in Cleveland. Everything She Says Means Everything involved 100 naked women grasping circular mirrors and a scandalized conservative America. [New York Magazine]

+ Meanwhile, Stephen Colbert, dressed in imitation of the feared Caesar Flickman of The Hunger Games, seized the stage from Trump and Pence at what he deemed “the 2016 Republican National Hungry for Power Games.”  Colbert was reported to say “Look, I know I’m not supposed to be up here,” as he was dragged off stage by Trump’s security guards, “but to be honest, neither is Donald Trump.” [Jezebel]

+ Also, an unknown individual placed “White Elevators” signs around the convention with a Jim Crow-sense of irony. [New York Daily News]

Via

Fox News thinks that Dread Scott’s anti-police violence flag flying over Jack Shainman Gallery, which reads “A Man was Lynched by Police Yesterday,” is “the wrong sign to hang” after recent police officer deaths. No surprises here. [Fox News via ARTnews]

+ The curious case between Peter Doig and an art owner who claims—falsely, says Doig—to be in possession of one of the artist’s landscape paintings is headed to trial next month. [The New York Times]

+ David Bowie’s private art collection of close to 300 works (think: Hirsts, Duchamps, Moores, and more!) will be auctioned at Sotheby’s in November. [The Creators Project]

+ A newly discovered letter and accompanying painting may reveal fresh evidence of Vincent Van Gogh's unstable mental state in the years before his death; both went on display for the Van Gogh Museum's current show on the artist, On the Verge of Insanity, last Friday. [The New York Times]

Via

+ The Lowline, the one-acre underground park planned in New York’s Lower East Side, got a big (official) “Hell Yes” last week from City Hall. [New York Magazine]

+ The UNESCO committee meeting in Istanbul last week, cut short by the attempted military coup, will continue in Paris later this year. The committee nonetheless was able to name several new sites worthy of protection, including a center for Buddhism in India, an archipelago in Mexico, and the Persian Qanat channels in Iran. [Deutsche Welle]

+ A student at Central Saint Martins wants to make leather jackets and bags out of Alexander McQueen’s skin. She plans to use the DNA from a sample of the beloved designer’s hair that he incorporated in his 1992 Jack the Ripper Stalks His Victims collection. [Quartz]

Via

+ A 91-year-old visitor to the Neues Museum Nürnberg scandalized museum employees when she whipped out a ball point pen and filled in the blanks of the Fluxus artist Arthur Köpcke’s crossword-style work, Reading-Work-Piece, in what can only be described as the perfect accidental performance of a Fluxus event. [Artnet News]

+ Nevermind, turns out Damien Hirst’s formaldehyde-filled sculptures are not toxic. [The Art Newspaper]

+ A piece resembling a trash can at Brooke Shields’ co-curated Hampton’s art show, Call of the Wild, was thrown in the trash by unwitting janitors before the show’s VIP preview. Shields allegedly salvaged the work herself. [Page Six]

Via

Did we miss any pressing art world stories? Let us know in the comments below!

Related: 

Naked Blue Bodies and Brooke Shields, Curator | Last Week in Art

Bad News Brexit, Bill Cunningham RIP | Last Week in Art

Prince: Tears and Tributes | Last Week in Art

18 Jul 18:40

Jobs Jar: City Studio Manager

by pricetags

General Manager- CityStudio Vancouver

 

CityStudio is an experimentation and innovation hub for the City of Vancouver where staff, students and community members design and launch projects on the ground. CityStudio aims to create social innovators and change makers who will contribute on the ground in Vancouver and around the world. Projects are co-created, designed and implemented by teams of students, city staff and community members.

CityStudio is seeking an experienced, adaptable and skilled General Manager to execute the daily operational needs of CityStudio in Vancouver. This full-time contract position is approximately 40 hours per week.

Please include your full name along with the job title “General Manager” in the subject heading of your email and submit your cover letter with salary expectations and CV to: hr@citystudiovancouver.com

DEADLINE TO APPLY: NOON AUGUST 12th, 2016

Full job description can be found here. 

More information about CityStudio can be found here.

 


18 Jul 18:40

Public spaces in London and Paris

by pricetags

The kind of changes unimaginable not a few years ago:

Londonfrom the BBC:

London 1

Oxford Street will be pedestrianised by 2020, the mayor of London’s office has said.

All traffic including buses and taxis will be banned from the shopping street – one of the most famous in the world – as part of Sadiq Khan’s plans to tackle air pollution.

More than four million people visit Oxford Street each week.

City Hall said the project would be rolled out in two stages to reduce disruption on the 1.2-mile street.

 

Paris from CityLab:

Paris

Last year, Paris Mayor Anne Hidalgo promised to makeover seven major Parisian squares. This March, following a public consultation, Paris City Hall came up with the goods, providing detailed plans that will transform these famous, beautiful spaces in the period between now and 2020.

Looking at the details, it seems the city’s ambitions haven’t so far been diluted. Each square will be semi-pedestrianized—literally so, as a mandatory 50 percent of each square’s surface area will be given over to pedestrians. This means slicing away large sections of space currently allotted to cars, abolishing some lanes and slowing traffic in others. In each square, road vehicles will be restricted to lanes with a maximum width of 12 meters (39 feet), with the rest ceded to pedestrians and cyclists.


18 Jul 14:36

Ubuntu 16.04 Leaks DNS Requests With OpenVPN Tunnels and IPv6

by Martin

Recently I noticed, much to my dismay, that when using OpenVPN over network interfaces for which IPv4 and IPv6 is configured, Ubuntu 16.04 doesn’t configure DNS lookups correctly. As a result, DNS requests that should only be sent inside the OpenVPN tunnel are sent on the outside network interface thus massively compromising security and privacy. Read on for the details and a temporary fix.

In Ubuntu 16.04 when I start an OpenVPN tunnel via the NetworkManager GUI over an outer interface for which only IPv4 is configured, only the DNS server that is reachable through the new tun0 interface is configured by network manager. This is correct, no DNS leakage outside the tunnel occurs, everything is fine!

However, if I start OpenVPN and use an outer interface (over which tun0 flows) that has both IPv4 and IPv6 configured, the NetworkManager configures a DNS server of the outer interface and a DNS server of the tun0 interface to dnsmasq/resolvconf. This leads to DNS leakage outside tun0 which is a massive privacy and security issue as DNS queries are done inside and outside the tunnel.

I’ve reported the issue a few days ago on Ubuntu Launchpad but so far there hasn’t been a lot of activity to find and fix the bug.

So until they do fix this here’s my quick and dirty hack to live with it: As I have no idea how to change the way NetworkManager configures the DNS resolver after a network interfaces comes up or goes down, I decided to take matters into my own hands and write two scripts to change /etc/resolv.conf when tun0 comes up or goes down. When the OpenVPN interface comes up, I replace the content of the file by a hard coded DNS server IP address of which I know that it is routed through the OpenVPN tunnel:

sudo -s
cd /etc/network/if-up.d/
nano 999martin

--->

#!/bin/sh

logger "martin - checking if new interface is a VPN tunnel"

if [ $IFACE = "tun0" ];
then
    logger "martin - new interface is tun0 - writing a new resolv.conf file"
    echo "nameserver 10.8.0.1" > /etc/resolv.conf
fi

When it goes down I swap the original resolv.conf back into position that points to localhost:

cd if-post-down.d/
nano 999martin 

-->
#!/bin/sh

logger "martin - checking if removed interface is a VPN tunnel"

if [ $IFACE = "tun0" ];
then
    logger "martin - removed interface was tun0 - restoring original resolv.conf file"
    cp /etc/resolv.conf.standard /etc/resolv.conf
fi

Don’t forget to perform a chmod +x to both script files to make them executable and to copy /etc/resolv.conf to /etc/resolv.conf.standard. The ‘logger’ command outputs my debug text to the system log system so it is easy to see if the fix works.

Yes, this is far from pretty but I can’t wait until someone fixed this upstream

18 Jul 14:33

Twitter Favorites: [claire_atkin] The four levels of reading, "chewing, digesting" a book https://t.co/qZQPwAUvxB

Claire Atkin @claire_atkin
The four levels of reading, "chewing, digesting" a book farnamstreetblog.com/how-to-read-a-…
18 Jul 14:33

Twitter Favorites: [katherinebailey] Totally stoked to be moving into a machine learning role at @acquia, which I can finally reveal is the reason for my move to Boston :D

katherinebailey @katherinebailey
Totally stoked to be moving into a machine learning role at @acquia, which I can finally reveal is the reason for my move to Boston :D
18 Jul 14:33

Twitter Favorites: [tinysubversions] Passengers loudly huffing about how much they don't like the flight they're currently on is like experiencing a .@ to a brand IRL

Darius Kazemi @tinysubversions
Passengers loudly huffing about how much they don't like the flight they're currently on is like experiencing a .@ to a brand IRL
18 Jul 14:33

Getting And Letting

by Richard Millington

Too many discussions begin with ‘how do we get….?’ usually followed by something people don’t want to do.

How do we get people to join and participate?
How do we get people to stop posting links to their own sites?
How do we get people to invite their friends?
How do we get people to create groups, initiate discussions, and remove posts?

It’s hard to get people to do something they don’t want to do. It takes time. You need to change the attitude towards that behavior. That’s possible to do, but you shouldn’t try to do it too often.

If most of your discussions are about getting members to do something, you’re always going to be fighting against the tide.

Better discussions begin with ‘who do we let…?’.

Imagine how that conversation changes things…

Who do we let join and participate in our community?
Who do we let post links to their own sites?
Who do we let invite their friends?
Who do we let create groups, initiate discussions, and remove posts?

Suddenly that same object can be seen as a positive. Instead of asking people to start creating their own groups, you can reach out to the smallest few with a good track record. Tell them you’re giving them a power no-one else has.

Instead of constantly removing links to personal sites you can reach out to a few people with a good track record and see if any of them might want to be responsible for this. Now members can submit their links to him/her for approval in a weekly ‘best of the web’ roundup.

When you change the type of discussion you’re having internally, your actions and tone of voice towards the community changes. The authoritative desperation (“Please stop spamming the site..or we’ll remove you!”) is replaced by a sense of control and rewarding the good members of the group (“Good news, we’ve decided to let each one of you submit your external articles for a weekly roundup. We have 2 volunteer editor places up for grabs!”). .

The best way to get members to do anything is very often to let a few of them do it.

18 Jul 14:32

Softbank & ARM – We’ll be back!

by windsorr

Reply to this post

RFM AvatarSmall

 

 

 

 

 

I think ARM could return to the market in 5 to 10 years. 

  • SoftBank and ARM have announced that SoftBank will acquire ARM for GBP17.0 per share in cash representing a 43% premium and a total price of $31.6bn.
  • From ARM’s perspective the rationale for the deal is clear as:
    • First: ARM shareholders are getting a pretty good deal.
    • With the rapid slowdown in ARM’s core market and the difficulties being experienced by many of its customers, investors are unlikely to see GBP17.0 on the share price in the foreseeable future.
    • From that perspective ARM’s board have a fiduciary duty to accept an acquisition if it is deemed to be in the interests of shareholders.
    • Second: SoftBank has committed to substantially ramp up investments, particularly in IoT, which is something that as an independent company ARM would never have been able to do.
    • Third: SoftBank has committed to maintain ARM’s independence, pretty much exactly the way it is, which will have been critical to ensuring that customers, partners and users of ARM’s technology are comfortable with the acquisition.
  • However, from SoftBank’s perspective the acquisition is less obvious:
    • First: ARM is a long way outside of the sorts of areas where SoftBank has historically invested and there does not seem to any fit with anything else that it does.
    • Second: One potential reason for the acquisition would be to use ARM as the foundation upon which to build the next Intel but I am certain that this is a non-starter.
    • This is because there is no way that ARM’s existing customers and partners would stand idly by while SoftBank builds a competitor while owning technology upon which they have become dependent.
    • Third: The 30% appreciation of the Japanese Yen and the flat-line of ARM’s share price over the last 12 months means that the transaction is 30% cheaper for SoftBank than it was 12 months ago.
    • Consequently, this investment could be a vehicle for investing in the recovery of the pound but it looks like that SoftBank’s interest predates the recent 10% collapse in the GBP value.
  • It would appear that SoftBank aims to earn its return on the money invested through an expected appreciation of the GBP once Brexit has been executed and from returns on the investments that will now be possible by ARM.
  • I expect that these will be aimed at pushing ARM’s processor into more industry verticals such as servers, IoT, automotive and so on but also at increasing the degree to which ARM’s technology is used in device chips.
  • This will have the effect of both increasing volume (more devices sold using ARM) and increasing price (more ARM technology used in each device).
  • In the long-term, I can’t see any reason why SoftBank would want to hold onto this as there is no strategic fit, synergies or integration benefit to be had from owning ARM.
  • Therefore, I suspect that if SoftBank is successful at increasing’s ARM’s position through accelerated investments, we will see ARM return to the market in the form of another IPO just at a much higher level in 5 to 10 years’ time.
18 Jul 14:32

More Managing Humans

by rands

Last week, I signed off on the final proofs for the third edition of Managing Humans. I’ll have more to write when I’m holding the atoms in my hands, but briefly:

  • The 2nd edition had 44 chapters, this has 52.
  • Two chapters removed. 10 added. Those two removals were easy because they were simply awful.
  • By far, the most fun is editing the glossary because each time it’s a slightly revised lens into high tech. The first edition didn’t even have Apple. Why? Because I worked there.
  • Yes, there will be digital editions, but it’s more fun to hold a printed book in your hands.

I’m pleased chapters of the book that are holding the test of time and I’m looking forward to sharing it with you in a few weeks.

mh-v3

#

18 Jul 14:32

Italienisch für Anfänger

[R] ist nicht gleich [r]

Alle, die sich gerade denken: „Oh ja, so ein bisschen Italienisch lernen vor dem Urlaub, kann ja nicht schaden.“ Euch muss ich enttäuschen. Denn Italienisch ist gar nix für Anfänger und schon gar nicht für ‚Sprechanfänger‘. Um gutes, verständliches Italienisch sprechen zu können, benötigt man das sogenannte Zungen-[r]. Dabei wird der Laut /r/ mit der Zungenspitze gerollt. Auch im Deutschschweizer-Sprachraum wird meist dieses Zungenspitzen-[r] gebraucht. Nicht wie in weiten Teilen Deutschlands, wo das einfacher zu bildende Zäpfchen- oder Rachen-[R] gebraucht wird, welches durch Reibung im hinteren Rachenraum erzeugt wird.

Sowohl in der logopädischen Therapie als auch im privaten Umfeld begegnen mir immer wieder Menschen, die dieses Zungenspitzen-[r] nicht können. In der Logopädie erhalten Kinder eine Beratung oder eine Therapie, wenn sie den /r/ durch den /l/ ersetzen, den /r/ noch nicht bilden können und/oder den Unterschied der beiden Laute nicht kennen.

image

Heisst es Rose – Lose, Reiter – Leiter, Ritter – Liter?

Um die korrekte Lautbildung zu lernen, erhalten die Kinder Tipps, wie sie den Luftstrom lenken müssen, wie die Zunge liegt, wie das korrekte Geräusch erzeugt wird, welches für den Laut /r/ steht. In der Therapie wird meist das Rachen-[R] angebahnt, da es über die Vorstellung eines knurrenden Hundes und durch die Ableitung vom Gurgeln meist einfacher und schneller gelingt.

Und jetzt?  Den  Italienisch-Kurs wieder streichen?  Nein…Denn auch das Zungenspitzen-[r] kann man erlernen.

Übung 1 – Zungenbeweglichkeit erhöhen
Stell dich hin!
Lass deinen Kopf nach vorne auf deine Brust fallen!
Deine Zunge sollte nun locker in deinem Mundraum hängen und leicht diese Ausspracheübung durchführen können: „lalalalalalalalalalalalalalalalalalalalalalalala“

Übung 2 – Anbahnung
Stell dich hin!
Lass deinen Kopf nach vorne auf deine Brust fallen!
Deine Zunge sollte nun locker in deinem Mundraum hängen und leicht diese Ausspracheübung durchführen können: „tdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtd“

Übung 3 – Erwerb des Zungenspitzen-[r]
Stell dich hin!
Lass deinen Kopf nach vorne auf deine Brust fallen!
Deine Zunge sollte nun locker in deinem Mundraum hängen und leicht diese Übung immer schneller durchführen können: „tdddtdddtddddtdddtdddtdddtdddtddd“ (am besten man denkt hier noch an die Musik in einer Zirkusvorstellung  und die Zunge beginnt wie von selbst zu rollen).
Folgende Übungswörter könnten helfen: Traum (T-daum), Brot (B-dot), privat (p-divat)

Ach ja und natürlich das Wichtigste: üben, üben, üben!!!
Es kann funktionieren, ich habe den Beweis bei mir daheim. Eine Garantie kann ich trotzdem nicht geben.

Anja Mlynek

18 Jul 14:28

Members Only: How to Make Square Pie Charts in R

by Nathan Yau

How to Make a Square Pie Chart in R

Instead of traditional pie charts that rely on angles and arc lengths to show parts of a whole, try this easier-to-read version. Read More

18 Jul 14:27

Cyborgology is looking for new regular contributors!

by cyborgology

Cyborgology Logo

For nearly six years Cyborgology has been dedicated to producing thoughtful essays and commentary about society’s relationship to technology. Writers enjoy significant freedom to write essays and stories of varying length, style, and topic. We are now looking for several new contributors to join Cyborgology.

What we are looking for: People willing to write about society, culture, and technology in an accessible but smart way. Contributions can take many forms and we are flexible about writing frequency. Scrolling through the last few months of Cyborgology is the best way to get an idea of the style and frequency of pieces we want to see. We are especially interested in writers from under-represented or marginalized subject positions. You do not need to be affiliated with any institution of higher learning but you do have to be comfortable writing about and through theoretical concepts. Of course writing schedules are very flexible and we are open to whatever work arrangement you can put together. The best way to know what kind of work we want is to read the site and check out our submission guidelines for guest posts.

The benefits of writing for Cyborgology: For better or worse, Cyborgology is a volunteer effort. None of us get paid and we do not anticipate that changing anytime soon. Writing for Cyborgology has, however, been known to open up new opportunities of a monetary nature. We are also proud to have a dedicated, smart audience that likes to share and discuss our ideas. Work on Cyborgology has also been linked to and shared by large media organizations including The New York Times, The Washington Post, Buzzfeed, Huffington Post, Pacific Standard, and many more. All writing on Cyborgology is covered under a Creative Commons attribution license and authors retain full control over their work. We are also a member of an awesome community of blogs and publications under The Society Pages umbrella.

How to apply: As our past and present contributors can attest– writing for Cyborgology is a strange animal. Therefore, we’ve done our best to simulate writing for Cyborgology in the application process. We want three polished writing samples between 500-1000 words, at least two of which need to grapple with a current event between now (July 18, 2016) and the due date which is September 1, 2016. It is totally fine to send us something you’ve published elsewhere or turned in for an assignment.  We may also ask if we can run some of your submissions as guest posts before we make any final decisions. Writing samples should be saved as either .doc or .docx and sent as an attachment to david.adam.banks [at] gmail.com. In the email please indicate the best email address to reach you, a short three sentence bio, and any other accomplishments you think we should know about. A full cover letter is not necessary.

18 Jul 14:27

Donald Trump, “The Art of the Deal,” and the ethics of ghostwriting

by Josh Bernoff

The New Yorker just published a fascinating article, “Donald Trump’s Ghostwriter Tells All,” revealing what really happened when Tony Schwartz ghostwrote The Art of the Deal for Donald Trump. Schwartz says, “I feel a deep sense of remorse that I contributed to presenting Trump in a way that brought him wider attention and made him more appealing than he is.” … Continue reading Donald Trump, “The Art of the Deal,” and the ethics of ghostwriting →

The post Donald Trump, “The Art of the Deal,” and the ethics of ghostwriting appeared first on without bullshit.

18 Jul 07:34

Comment about Ever think that your bike ride couldn't be any better? When I get on the pink Schwinn I am a kid again riding without without worry. 20140629_141243

by Roberto41144

Roberto41144 has posted a comment:

According to a Schwinn catalog I saw online, the color is called Luscious Lavender.

Ever think that your bike ride couldn't be any better? When I get on the pink Schwinn I am a kid again riding without without worry. 20140629_141243

18 Jul 07:34

Pokémon Go is now officially available in Canada on iOS and Android

by Patrick O'Rourke

Just over a week after the game’s U.S. release, Pokémon Go is now officially available in Canada on both Android and iOS.

This means that Canadians no longer need to access the U.S. App Store or download an Android APK in order to get their hands on the game.

pokemongoserverissues

As expect, the deluge of Canadians rushing to download the app has resulted in intermittent server outages. Servers going down and glitches have been a common issue with Pokémon Go since its launch last week, particularly following the game’s recent European roll out.

Now that Pokémon Go is officially available in Canada, Niantic’s augmented reality cultural phenomenon will reach even higher levels of popularity north of the U.S. border.

Some studies indicate that as many as six percent of all Android users in Canada have already installed and downloaded the game via APKMirror, a popular APK hosting website owned by Android Police, prior to Pokémon Go’s official Canadian release.

Those who have installed the Android APK version of Pokémon Go will be able to update the app via the Canadian Google Play Store. Canadians that downloaded Pokémon Go through the U.S. App Store will need to delete the app and reinstall it via the Canadian store to receive updates (unless you want to switch back to the U.S. store repeatedly).

Download Pokémon Go for Android and iOS.

18 Jul 07:34

Would you mind the Woodbine?

by dandy

Story and Photos by Robert Zaichkowski originally published on Two Wheeled Politics with Rob Z

While the earliest a pilot project can be secured on Danforth Avenue (a.k.a. The Danny) is in 2018, there is another east end cycling project expected to be installed this fall, which is Woodbine Avenue from O’Connor Drive to Queen Street East. On Wednesday, June 22, I visited the consultation at Stan Wadlow Clubhouse to learn more on what is being done to improve cycling in the east end.

IMG_20160622_181253_edit

 

Why Woodbine? Bike lanes on Woodbine would ultimately provide a direct north-south route from Woodbine Beach to St. Clair Avenue East (via O’Connor Drive) and would connect with existing bike lanes on Cosburn and Dixon Avenues, as well as The Danny. Two new connecting contraflow bike lanes – located on Norway and Corley Avenues – are also part of this study. The Woodbine Heights Association also unanimously approved bike lanes on that street.

The number of parking spaces is expected to be reduced in half from 383 to 205, which is slightly more than what is currently being used during off peak hours (188) and will be available at all hours. The design has been split into three sections.

IMG_20160622_181304_edit
Detailed diagram of three sections - Link to PDF panels

1 – O’Connor to Gerrard – At 15.2 metres wide, that section of Woodbine is wide enough to accommodate one traffic lane in each direction, parking on the northbound side, two metre wide bike lanes, and minimum one metre buffers with bollards on both sides. Overall, this design is sufficient in ensuring the safety of cyclists, though sturdier forms of protection (e.g. curbs, planters) could be considered.

IMG_20160622_175630_edit
Existing conditions on Woodbine Avenue (at Danforth Avenue)

2 – Gerrard to Kingston – At 12.8 metres wide, only the northbound side with parked cars has a buffer and bollards in that section. The same thing happened during the first Bloor bike lane consultation in December 2015 in which the Shaw to Bathurst stretch was also 12.8 metres wide. After further feedback, city staff revised this stretch for the March 2016 consultation to enable protection on both sides while ensuring the bike lanes remain at least 1.5 metres wide. Let's do the same on Woodbine from Gerrard to Kingston!

Bloor 2nd Consultation - Shaw to Bathurst
Diagram of Bloor Street (Shaw to Bathurst Streets) - Link to PDF panels

3 – Kingston to Queen – Of the three sections, this one will be the most controversial. Given there are two northbound lanes instead of one, no protection is provided on either side and the northbound bike lane is placed in the door zone; thus creating a hazard for cyclists. When I spoke to the planners present, they mentioned there was not enough room to place a buffer. If the bike lanes were to be reduced to 1.5 metres on both sides and the parking lane to 2.0 metres, that would create enough space for a 0.6 metre buffer on at least the side with parked cars to mitigate the dooring risk.

Another problem with that section is the use of sharrows south of Dixon. Back in December, Dutch planner Dick van Veen wrote a post saying sharrows are NOT recommended on fast arterial roads (such as Woodbine). Therefore, they should be scrapped from the final design.

Woodbine at Lake Shore - Routes
Orange - Truck route to Kingston Road (via Coxwell and Eastern)
Green - Cars can keep going on Lakeshore which becomes Woodbine

As for why there are two northbound lanes, this is the result of traffic going eastbound on Lake Shore Boulevard. While trucks must take Coxwell and Eastern to get to Kingston, cars can still take Lake Shore and Woodbine before turning right onto Kingston. If there could be a way to force cars to take the truck route to Kingston instead of Lake Shore and Woodbine, the second northbound lane could then be removed; thus enabling separated bike lanes on both sides. This problem is something the City of Toronto should be challenged to address and improve the safety of pedestrians and cyclists.

IMG_20160622_184724_edit

Our new issue of dandyhorse has arrived! dandyhorse is available for FREE at Urbane Cyclist, Bikes on Wheels, Cycle Couture, Sweet Pete's, Hoopdriver, Batemans, Velofix, and Steamwhistle. Our new issue of dandyhorse includes cover art by Kent Monkman, interviews with Catherine McKenna and the women behind Toronto's first feminist bike zine, lots of news and views on Bloor, Under Gardiner and the West Toronto Railpath and much, much more! Get dandy at your door or at better bike and book shops in Toronto.

Related on dandyBLOG:
Polite Pedaller guest edition: Farmers market bike etiquette
Scarborough Cycles 2016 Recap
Bells on Danforth Recap 2016

18 Jul 07:34

Turn on 2FA before it’s too late

by rands

Two-factor authentication (“2FA”) is intended as another layer of security to your online accounts, so if your password is hacked, your account can’t be accessed without a special code. While I clearly understand the value, I’ve been lazy about enabling on various services since… it’s a hassle. I’ve only enabled it when I’ve been required by an external force. This reactive strategy isn’t even a strategy; it’s just a bad idea.

This morning, I went through all the services I’m using and was impressed how many services had 2FA enabled and, more importantly, how trivial it was to enable. Here’s the list. Turn on 2FA now.

Two Factor Auth List is a comprehensive online resource that documents two-factor authentication for the bajillion sites I didn’t list above.

#

18 Jul 07:33

Gastown Grand Prix Women’s Race won by Oldest Cyclist in the Field

by Average Joe Cyclist

The Gastown Grand Prix (sponsored by Global Relay) is the richest criterium in North America. This year the winning woman and the winning man each took away $12,000. The annual Gastown Grand Prix is held on the cobbled streets of downtown Vancouver, with a short course and tight curves making for a very challenging race. This year the women’s race was won by the oldest cyclist in the field!

The post Gastown Grand Prix Women’s Race won by Oldest Cyclist in the Field appeared first on Average Joe Cyclist.

18 Jul 07:33

The National Bubble Association