Shared posts

07 Jul 23:17

Jane Fonda. Venice Film Festival 1966. Photo by Philippe Tellier pic.twitter.com/Sxo9d5R2IC

by moodvintage
mkalus shared this story from moodvintage on Twitter.

Jane Fonda. Venice Film Festival 1966. Photo by Philippe Tellier pic.twitter.com/Sxo9d5R2IC



Posted by moodvintage on Sunday, July 7th, 2019 3:15am


102 likes, 20 retweets
07 Jul 23:15

Conversations That Matter: What It Takes to Have Them

by Dave Pollard

mindful wandering
photo by Maren Yumi on flickr CC BY-NC-SA 2.0

Ironically, despite the fact that I engage in fewer conversations than I used to (maybe because since I’m retired I don’t have to, and because I find few conversations valuable anyway), I’ve started writing more about conversation on this blog. In a recent article, I suggested:

  • Real conversation serves one or more of these five purposes: to impart new information, to surface insights, to see different perspectives, to achieve consensus on decisions, and to resolve conflicts.
  • Prerequisite to good conversation are participants who have these seven skills: capacity to be open to other and difficult ideas and perspectives, capacity to articulate, social fluency (emotional engagement and sensitivity), critical thinking skills, curiosity, creative/imaginative skills, and attention skills.

The widespread lack of any such purpose, and of these essential skills, means that most conversations are, in my experience, at best ineffective and at worst counterproductive. Most conversations (like substantially everything posted on social media) are attention-, appreciation- and reassurance-seeking, and are just vexatious for those seeking a real meaningful exchange.

At a recent lunch with my friend Don Marshall, I confess my conversational skills were not up to par (I blame sleeplessness the previous night, but perhaps I’m just out of practice). I learned what he is trying to do with a volunteer project to improve people’s conversational skills around the predicament of climate collapse, through exercises (practice) focused on appreciating others’ perspectives, attentive listening, and conflict resolution. As there are so few people around capable of modelling such behaviours, and because people are so busy with the urgent demands on their time, and because most of us, I think, are in denial about the degree to which our conversational skills have atrophied, I wasn’t surprised to hear that he’s having a bit of trouble getting traction with this project. I had no suggestions for him to improve the process.

It occurred to me that (perhaps like many writers) I write, now, mostly to make sense of my own thinking. On this blog I have ‘conversations with myself’ because it is so hard and so rare to find others with whom I can have intelligent conversations on subjects both or all participants care about. No one is to blame for this — ‘talking with oneself’ is always the last resort for trying to make sense of things that seemingly don’t make sense. Such clarity can come from conversation, but it is a side-benefit when striving for one of the objectives above, and it’s rather narcissistic and a bit desperate (though, sadly, not uncommon) when it’s the principal reason for having a conversation.

Conversations about the predicament of climate collapse are particularly prone, I think, to such somewhat self-indulgent and often-fruitless “help me make sense of this” and “what should I do about this?” exchanges. The challenge with such pleading requests is that climate collapse is a predicament not a problem. Chris Martenson explains the difference (in his “Crash Course”):

The distinction between predicaments and problems boils down to this: problems have solutions; predicaments have outcomes. A solution to a problem fixes it, returning all to its original condition. Once a suitable solution can be found and made to work, a problem can be solved. A predicament, by contrast, has no solution. Faced with a predicament, people can develop responses, but not solutions. Those responses may succeed, they may fail, or they may fall somewhere in between, but no response can erase a predicament. Predicaments have outcomes that can be managed, but circumstances cannot be returned to their original state.

Terms like sustainability, resilience and regeneration suggest that one is dealing with a problem that can be ‘worked’, ‘worked around’, ‘bounced back from’ or ‘fixed with a reboot’. (The prefix re- means ‘back’, and there is no going back.) A predicament like climate collapse lends itself to no ‘solutions’, so striving for any of these is misguided and doomed to fail.

Those coming to grips with climate collapse (a much more honest term than mere climate change or even climate crisis) are now more often using the term adaptation to suggest what can or might or should be done, to, as Chris puts it “manage the outcomes”. But as any language scholar will tell you, the verb adapt is a reflexive verb — it does not take an object, and refers back to your self (in French, it is s’adapter — to adapt oneself). So adaptation doesn’t mean changing one’s community or environment, it means changing oneself.

It is not in our nature to want to change ourselves. It has been a lifelong and exhausting struggle to get our selves to the precarious but seemingly-optimal state we are currently in, and the thought of more gut-wrenching change does not sit well with most of us. We would much sooner change stuff outside — our government, our social and economic and political and educational and technological processes and systems. The problem with that, however, is that none of these systems will survive climate collapse, no matter how we tinker with or ‘regenerate’ them. These systems are collapsing, in fits and starts, just as our climate is. We cannot predict when and how they will collapse, and hence we cannot adapt them (or reinvent them) in order to delay, avert or lessen the impact of their collapse.

The only thing we can adapt is the one thing we don’t want to adapt — our hard-won selves.

Remarkably, those selves are at the core of all our suffering, anxiety, dread, shame, grief, anger and fear about climate collapse. If we were really able to (self-)adapt, we would let go of our selves and all our judgements, self-recriminations, unhelpful anxieties and other feelings that are causing us such anguish (and in the process, immobilizing us and turning us on ourselves and against each other in an endless blame game), and just be, in the moment, ready for whatever comes. Not ‘prepared’ (for we cannot prepare for what we cannot know), but ready — open, alert, grounded, present, competent (the etymology of competent is ‘striving together’.

And if we’re going to strive together we’re going to have to communicate with each other, and to do that we’re going to have to relearn the art of conversation (whose etymology is turning with, the step before striving together).

In our crazily individualistic modern western version of civilization culture, we are still fixated on s’adapter — changing ourselves, self-improvement, personal growth, spiritual growth, becoming present in the ‘now’, finding the path to awakening, enlightenment, or whatever other flavour-of-the-month navel gazing practice has currently caught our attention. Perfectly understandable.

And also (and here’s where I part company with most of my ‘progressive’ colleagues) perfectly impossible. As I have argued endlessly elsewhere ad nauseam and will not argue again here now, we cannot change who we are. We are the product of our conditioning, devoid of free will and self-control, and in fact our self is just a mental construct conjured up by the brain to make sense of what we perceive, and it isn’t real at all. When ‘we’ seemingly change, it is our conditioning that has changed; ‘we’ have nothing to do with it.

If we were not too smart for our own good, we would look to another reflexive verb instead of s’adapters’accepter. To accept ourselves as we are — scared, lost, impotent, and desperate. Not as a prelude to changing any of that; just accepting that that is who ‘we’ are. Of course, such humble self-acceptance will also only happen if our conditioning allows and mandates it. We have no free will to choose who we are or what we believe or do. Now that is a predicament.

If you are in the large majority who think you can change yourself, who think you have personal volition, I won’t argue, and I wish you well. I’m more interested in learning about conversation — turning together — and competence — striving together.

There is some compelling evidence that most wild creatures (and perhaps even prehistoric, wild humans) have no sense of themselves as separate from everything else in the universe. They intuitively act in ways that have evolved to sustain and enhance the collective well-being of all-life-on-earth — of what is called Gaia, the self-aware, self-optimizing force of everything, life-forms and environments, that make up our world. For Gaia, turning together and striving together is the only option, the law by which it has evolved. Nature always bats last, and our species’ current predilection for so flagrantly breaking this law will not be allowed to continue much longer.

If you have watched wild creatures, you know we have a lot to learn from how they seemingly ‘converse’, communicate, and collaborate, and how they become ‘competent’ — how they strive together.

Think about a time in your life when you were so caught up in some collective action, some striving together, that ‘you’ momentarily disappeared. When you ceased thinking of what ‘you’ could add to the conversation, of what ‘you’ thought about what was being said by others, and all thought was on the collective goal or benefit. At that moment, if you’ve been lucky enough to have one, the individual mind was replaced by the collective mind. This is what some teams striving for very difficult, urgent or important goals seem to experience. It’s what improv groups (actors or musicians) seemingly experience when they’re ‘in the groove’.

That’s what we want. We want to emulate those who are able, when the moment calls for it, to overcome their preoccupation with their individual selves and just become part of a collective mind. Presuming we have one of the five purposes for our collective conversation listed at the top of this article, and our participants have an adequate un-atrophied amount of the seven essential competencies, what might be the trigger, the catalyst that then shifts the conversation into this collective mind state, and precipitates the resultant striving together?

The usual method of provoking a group is to use either rhetoric (talk radio, tweets, Ted talks or blogs) or a story (often fictionalized, simplified or exaggerated) to whip the participants into a frenzy of action — this seems to work particularly well on people who are simplistic, blame-y and lacking in self-awareness. My concern with such manipulative methods (and I’ve used them myself) is that their impact doesn’t last. Sooner or later the lie will be seen for what it is, and humans’ focus of attention is notoriously fickle.

Pollard’s Law of Human Behaviour is:

Humans have apparently evolved to do what they must (the personal, unavoidable imperatives of the moment), then do what’s easy, and then do what’s fun. There is never time left for things that are seen as merely important. Social, political and economic change happens only when the old generation dies and a new generation with different entrained beliefs and imperatives fills the power vacuum. We have evolved to be a collaborative and caring species, and we are all doing our best — we cannot do otherwise.

If that’s how we’re conditioned, how might we use Pollard’s Law to get people to that collective mind-state in their conversations? I would suggest that it will eventually become urgent (an imperative of the moment) as collapse hits home in our day-to-day lives, but in the meantime, we’d be better off finding ways to make conversations more fun than trying to make them easier. I think for example the collective altruistic conversations and actions of Occupy were, and those of XR are, (somewhat) fun. Why? There’s a sense of shared energy, risk, momentum and liberation in them. There’s lots of shared laughter, revelry and (sometimes) celebration. Same goes for improv activities.

So how might we introduce an element of fun, celebration, laughter and revelry into something as serious as conversations, especially when the topic is climate (or other system) collapse?

I have no idea. But I think it’s worth exploring. If fun can be the catalyst for conversations that move us beyond our paralyzed individual thinking towards a sense of collective presence, collective will, collective insight, and collective accomplishment, they might actually wrench us out of the entrained, default mode of thoughts and beliefs so many of us are stuck in. This “whole is greater than the sum of the parts” activity might actually change our conditioning, something we (arguably) cannot do all by ourselves or in the normal conversations that merely reinforce what we already think.

If we can catalyze such conversations, we’ll need to stay clear of the misguided thinking that drives us to then agree upon an “action plan”, which normally takes the form of a “who will do what by when” list and which notoriously deflates that collective energy. Indigenous cultures know that when collective action or consensus has emerged from a group conversation, no one has the authority to tell others what to do about it. It is always left up to each participant, her/his mind expanded and shocked out of its default way of thinking, to know, intuitively, what then must be done, by each of us, both individually and collectively. We have to trust that to happen.

So, in order for conversations to be (for lack of a better term) transformative, producing much more than any group of individuals could come up with alone, they need to: (1) “be on purpose” (have one of the five purposes listed above), (2) have sufficiently skilled and competent participants (with the seven skills above), and (3) have some quality (urgency, or fun) that propels people into a collective mind-state and gets them out of their personal, “self”-ish, default thinking mode. And, of course, (4) they need to have a topic, theme or focus that’s important to the participants, something they all really care about.

Derrick Jensen, who has been coming to grips with climate collapse a lot longer than most of us, might have some advice on what the topic of your next conversation on climate collapse might be. He writes:

Stand still and listen to the land, and in time you will know just what to do…  Find what or whom you love — whether it’s salmon, sturgeon, a patch of forest, survivors of domestic violence, your own indigenous tradition, migratory songbirds, coral reefs, or Appalachian mountaintops — [that you’re willing] to dig in and defend with your life… Ask yourself what are the largest, most pressing problems you can help to solve using the gifts that are unique to you in all the universe.

Imagine: You’re with a group of “conversationally skilled” people, convened purposefully about something profoundly important to all of you, in a setting with either a sense of great urgency or great fun/joy, and you’re talking about what you love so much you’d give your life for it, and what you can do exceedingly well, together, using each participant’s unique capacities.

How could such a conversation not be brilliant? How could it possibly not lead to a turning together, and a striving together, beyond what you could have believed was possible?

And if your conversations don’t meet these criteria — aren’t on purpose, aren’t skilful, aren’t urgent or joyful, and aren’t about subjects you can help with and which you care about enough to die for — why, when our planet is burning, are you wasting your time on them?

07 Jul 23:14

Reasons to Cycle

Recently I enthused on the life impact of getting an e-bike. The enthusiasm remains and I two-wheel to work almost every day. Often my thoughts are of the form “What makes this so great is…” Here are some of those, but there’s a very specific assumption: that your home city has decent bikelane infrastructure. Vancouver’s is not world-class but also not terrible, and I’ll toss in a few pix from my commute for non-bike-commuters who might not have seen what that means.

On 18th Ave in Mount Pleasant, Vancouver

I have 2½ blocks of regular street between home
and the nearest bike route. But it’s pretty nice.

It’s free

No charge to use the public roads or bikepaths. No charge to park, anywhere (the mind reels). The bike’s not free and I bought panniers and a lock, but compared to basically any car it’s peanuts, maintenance too (especially maintenance, actually). I have an e-bike so there are a few pennies’ worth of charging power every other week.

Public transit here is $24/week for my route, car parking is $10/day and way up, plus gas if you’re still misguidedly driving a fossil car.

On Vancouver’s Yukon bikeway On Vancouver’s Yukon bikeway

One technique for making a street bike-friendly is frequent interruptions so that for cars so it’s not a direct route to anywhere. Another is a roundabout at every other corner that makes them wake up and steer. Another is to have lots of bikes on it.

It’s fast

This thing ticks along at 25km/h on the level, 20 uphill, 35-40 downhill. If I take my car and the traffic’s not bad I can get there way faster, but the traffic’s never not bad if you want to work reasonably conventional hours. You could argue that the car offers comfy seats, weather protection, and music. But…

No waiting!

Humans are born to travel; being on the road’s one of our natural conditions. (If you’ve ever doubted this, go read Chatwin’s The Songlines.) But I have never in my whole life encountered anyone who wasn’t irritated during those times when they’re trying to get somewhere and have to wait. Urban driving is all about waiting: For the light, for the other cars trying to get on the bridge or make that turn, for the slowpoke who isn’t sure where they’re going, for the pedestrians drifting across the road looking at their phones.

On Vancouver’s Yukon bikeway

It’s not perfect. This is a combo crosswalk for pedestrians, who have a right-of-way over cars, and bikes, who don’t. But if you meet their eyes they usually stop and then you should give them a friendly wave so they feel virtuous.

When you’re commuting by bike, you only ever stop for traffic lights and on a well-designed bikepath there aren’t many. It’s all flow and motion, the wind in your face and the scenery hurtling backward. For my money, this is the biggest win. I’ve never claimed the virtue of patience but I don’t think I’m that unusual.

On Vancouver’s Yukon bikeway On Vancouver’s Yukon bikeway

Above, probably the most dangerous part of my ride. Not because it’s shared with cars — the lanes are well-marked and there’s a stop sign at every corner. It’s because it’s a steep downhill and you can have way too much fun going fast, which in itself would be OK except that bikes have really terrible braking power, especially on wet streets, which we have a lot of in Vancouver. I skidded right through a stop sign the other day, terrifying myself, and now I take it slower than I used to.

It’s good for you

This is a little more complicated than you might think, because cyclists are several times more likely than motorists to be killed per kilometer traversed. I can testify to this; in 2000 I was hit by a car that lurched into forward motion as I was coasting through a crosswalk 18 inches in front of its bumper, severely broke my shoulder, had surgery and spent a week in hospital. But — did I mention it was complicated? — cyclists cover a lot fewer kilometers than motorists, and the death rates vary strongly with age and fitness, and the data doesn’t necessarily apply to cyclists on a modern well-designed bikepath network.

On Vancouver’s Yukon bikeway

The only part of the route which is an ordinary road. It also goes right by a big cop shop, so you have to think the drivers will be a little more careful than average.

Another danger is pollution and yeah, urban cycling, during the current fossil-car interregnum, does involve inhaling exhaust.

But then there are the health benefits of getting a half-hour or more of low-impact aerobic exercise every weekday, and they are not subtle, not in the slightest.

Researchers at regular intervals over the years have tried to balance out the pros and cons. Spoiler: The upside wins, big-time. Probably the best survey I ran across researching this was Bicycling: Health Risk or Benefit? by Teschke, Reynolds, Riese, Gouge, and Winters (of UBC and SFU, here in Vancouver!) published back in 2012 but more recent papers I ran across came out about the same, and this one is nicely condensed and presented. Four of the studies they survey, from 2009 through 2012, offer numerical estimates of the ratio of benefit to risk, and those estimates are: 15:1, 9:1, 19:1, and 96:1.

On Vancouver’s Yukon bikeway

I get to bicycle over the ocean twice a day, every day. The view never gets old.

On Vancouver’s Yukon bikeway

This is what the bikepaths downtown look like. There’s more stopping for red lights, but they have no-nonsense concrete barriers between you and the cars.

Mentally too

Some of those studies actually call out mental-health benefits such as decreased risk of depression, and that’s interesting. But at another level, I feel intuitively that a half-hour in which I’m living in the moment, not gathering wool, not ingesting media, watching like a hawk for dorky drivers and pokey pedestrians, banking around corners and dodging potholes, pedaling hard to beat a yellow light… well, the benefit doesn’t feel subtle.

When I walk into the lobby at work I feel more alive than the mole people emerging from the car-park elevator.

On Vancouver’s Yukon bikeway" />

The last lap, up Vancouver downtown’s Robson street. Which is comically vacant all the time except for a few minutes around 9AM and 5PM. Lots of times you could spread out your yoga mat for a few stretches in either lane with no worries. They really ought to make it a pedestrian/bike street.

It’s good for the planet

Well, yeah. Come on and give it a try. If you’re a little old and/or creaky, splash out for an e-bike. Call it an investment because it is, and in things that are important.

07 Jul 23:09

Certificate Pinning Is Back In Firefox!

by Martin
How to assemble a tin foil hat
How to assemble a tin foil hat, seen at @35C3

tl;dr: Over the past weeks, I’ve put together a Firefox add-on for SSL certificate pinning so I would notice if ever a man-in-the-middle would use forged certificates to spy on me when I interact with my home servers, banking websites, and so on. I feel a lot safer now again! You can find it here and the source code here.

Once upon a time…

When you surf the web you have to trust hundreds of certificate authorities to do their job right and not give out SSL certificates to anyone but the owner of those sites they protect. For the large part of my daily activities on the web I more or less do have this trust or just don’t care, really. However, there are a couple of websites, specifically my own and some banking websites, where I want to be absolutely certain that the certificate has not been tampered with. In some programs such as the ‘Conversations’ messaging app on Android I use and the Android DAVx5 calendar/address connector for Nextcloud, it is possible to pin the certificates. So when a certificate changes, communication is interrupted before secrets are exchanged and I have to confirm the use of the new certificate. As I update the certificates myself every three months I know very well when this happens and any alerts other then generated after my certificate changes would trigger more than just a raised eyebrow. Firefox also had an extension known as ‘Certificate Patrol‘ in the past to keep me save but it unfortunately stopped working when Mozilla retired their old  add-on API I few years ago.

I then moved on to HPKP (HTTP Public Key Pinning) where the server could instruct the browser to pin certificates. I found this an interesting concept, but it requires that the public key remains the same or a previously announced backup key is used when a new certificate is generated. Unfortunately this didn’t play together well with the way Let’s Encrypt works, as their default implementation is to change the certificate and the public key every three months. There could be ways around it but the Let’s Encrypt update programs never much cared for it. Also, support on Firefox mobile was flawed and in the meantime, Google has announced that they will or already have removed HPKP support in Chrome.  Not that I care too much about Chrome but the writing is on the wall.

Let’s Work on This

A new icon in Firefox for Cert Pinning

Germany has a great tradition of hacker festivals all year around. Over the past years I have started attending some of them and also giving some talks like recently at the GPN#19 to not only to learn new things from others there but to also give back to the community. When I go to such events I take a little project with me that I had in mind for some time already and for which I need some dedicated time and an inspiring environment. For GPN#19, my project was to see if there is an API (again) for add-ons to check SSL certificates when pages load. And indeed, to my great delight, Mozilla has added an API again at some point in 2018 so add-ons can look at certificates again! I then spent most of the two days at GPN to see how I could get to this information before session cookies and other secret information is sent to the other end, how to abort page loading if necessary and how to store data in Firefox permanently so any certificate pins the user would configure would not be lost after closing the browser. I haven’t written a Firefox add-on before so the process took a bit of time. But after the two days I had all basic concepts working and I spent much of my quality time since then to create a fully working add on with a reasonable UI. The add-on with the basic functionality is now finally done and it’s available in the Mozilla Add-on store here if you are interested and want to use it as well.

How To Use It

Certificate Pinner Alert

After installation a new icon will appear in the Firefox tool bar as shown above. Clicking on it reveals the options to pin- or unpin a website (if it is TLS protected) and to open a tab to show all sites that have previously been pinned. When the fingerprint of the certificate (or the public key to be precise) changes, the add-on will interrupt the loading process and issue a warning as shown in the second image. If things look fine, the new certificate can be accepted with a button at the bottom. Obviously, my approach is TNO (Trust No One) so I wouldn’t expect anything else from you, which is why I’ve made the source code available on Gitlab here. Comments and suggestions are very welcome, either here or in the ‘issues’ section on Gitlab. Enjoy!

07 Jul 23:08

Instapaper Liked: A shared history: Nat Bailey Stadium, the Canadians, and Vancouver baseball’s mythic past

Doug Sarti hits it out of the park with this—A shared history: Nat Bailey Stadium, the Canadians, and Vancouver baseball’s mythic past https://t.co/qGGoN5XtzB…
07 Jul 23:04

Die Berliner Justiz steht vor dem Kollaps. Und das, ...

mkalus shared this story from Fefes Blog.

Die Berliner Justiz steht vor dem Kollaps. Und das, obwohl sie im Berliner Haushalt inzwischen eine Milliarde (!) Euro kostet. Das volle Programm: Straftäter laufen frei rum, müssen aus der U-Haft entlassen werden, weil das Verfahren nicht rechtzeitig begonnen werden konnte, und das konnte nicht begonnen werden, weil keine Säle für die Verhandlung frei waren.

Naja, irgendwie auch wieder nicht wirklich verwunderlich. Wir können ja nicht mal einen Flughafen bauen. Wieso würden wir eine Justiz betreiben können?

07 Jul 23:01

Spotify is a Prison for Podcasts

by peter@rukavina.net (Peter Rukavina)

I have been a happy customer of Spotify for several years now, after flirting back and forth with Apple Music, Google Play Music and the late Rdio for several years before that. We have a family subscription, which we all three use extensively, no more so than Oliver who, for many months now has been making nightly playlists to go to sleep listening to.

Spotify has recently been promoting itself as much a podcast player as a streaming music service, and Oliver has followed the lead and has accumulated a subscription list of 1500+ podcasts in Spotify.

Last night, though, he was thinking about migrating to something else for his podcast listening: he didn’t like the fact that, although the Android Spotify app sports an “episodes” tab, the desktop player for the Mac does not, which makes tracking recently-released episodes on his Mac more challenging.

Having found a possible alternative, Oliver set out to move his list of podcasts from Spotify to a new app, and was immediately faced with a task that would have extended for several days: for each of the podcasts in Spotify he was taking the title, copying and pasting it into the new app, and subscribing there. Over and over and over. When this job threatened to take over his Friday, to the exclusion of other activities, I interceded and told him that we should simply export his list of podcasts from Spotify and import it into the new app.

How naive I was.

Spotify, it turns out, is a prison for podcasts.

Spotify takes podcasting, a system that is a marvel of decentralized openness, built on the strong and flexible (and open) foundation of RSS, and locks it inside a closed, proprietary system with no way of getting data in or out. You can’t import lists of podcasts. You can’t export lists of podcasts. You can’t add your own podcasts.

Surely, I thought, given the GDPR, there must be a way of getting Oliver’s personal information–including his podcasts–out of Spotify.

And there is, in theory: if you visit your Account page in Spotify, and then navigate to Privacy, and scroll down to the bottom, you will see a section called Download your data, full of promise.

Until you read the fine print and learn that “This can take up to 30 days to complete”:

Screen shot of the Download your data section of Spotify's Privacy page

How it’s possible to create a system that takes 30 days to assemble digital data boggles the mind, and while it may live up to the letter of the GDPR, it surely defies the spirit.

What about using the Spotify API?

Although it’s not documented, there is and endpoint that exposes the list of podcasts for a user.

Here’s how you can get at it (with the caveat, detailed below, that you are wasting your time).

Go to the Web API Console for the “Get User’s Profile” endpoint and click Get Token and then copy the cURL command on the right side (I’ve redacted Oliver’s token):

Screen shot of generating a Spotify token.

If you simply paste this cURL into the Mac command line, you’ll get back your basic account information:

{
  "birthdate" : "XXXX-XX-XX",
  "country" : "CA",
  "display_name" : "Oliver Rukavina",
  "email" : "o@ruk.ca",
  "explicit_content" : {
    "filter_enabled" : false,
    "filter_locked" : false
  },
  "external_urls" : {
    "spotify" : "https://open.spotify.com/user/12154891049"
  },
  "followers" : {
    "href" : null,
    "total" : 13
  },
  "href" : "https://api.spotify.com/v1/users/12154891049",
  "id" : "12154891049",
  "images" : [ {
    "height" : null,
    "url" : "https://profile-images.scdn.co/images/userprofile/default/6a5a73861526ed7cece0ea757ab1f043277d7ebb",
    "width" : null
  } ],
  "product" : "premium",
  "type" : "user",
  "uri" : "spotify:user:12154891049"
}

If you edit this command, however, and tack shows onto the end of the URL, replacing https://api.spotify.com/v1/me with https://api.spotify.com/v1/me/shows, you’ll get back a JSON representation of your first 20 podcast subscriptions, with each one represented by an object like this:

{
    "added_at" : "2019-03-27T02:16:27Z",
    "show" : {
      "available_markets" : [ "AD", "AE", "AR", "AT", "AU", "BE", "BG", "BH", "BO", "BR", "CA", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "DZ", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "ID", "IE", "IL", "IN", "IS", "IT", "JO", "JP", "KW", "LB", "LI", "LT", "LU", "LV", "MA", "MC", "MT", "MX", "MY", "NI", "NL", "NO", "NZ", "OM", "PA", "PE", "PH", "PL", "PS", "PT", "PY", "QA", "RO", "SE", "SG", "SK", "SV", "TH", "TN", "TR", "TW", "US", "UY", "VN", "ZA" ],
      "copyrights" : [ ],
      "description" : "It's the Peter and Oliver podcast all grown up. ",
      "explicit" : false,
      "external_urls" : {
        "spotify" : "https://open.spotify.com/show/6bDdMX7OmjDG1u5ebEhNRX"
      },
      "href" : "https://api.spotify.com/v1/shows/6bDdMX7OmjDG1u5ebEhNRX",
      "id" : "6bDdMX7OmjDG1u5ebEhNRX",
      "images" : [ {
        "height" : 640,
        "url" : "https://i.scdn.co/image/8beec05386bfef3e095bcdf46aafaee112d55fdb",
        "width" : 640
      }, {
        "height" : 300,
        "url" : "https://i.scdn.co/image/4f70272b77c24c619a79486d6c88445b976151f7",
        "width" : 300
      }, {
        "height" : 64,
        "url" : "https://i.scdn.co/image/807d9151f7fa4a0ccd96c80d0c9bc265152b6012",
        "width" : 64
      } ],
      "languages" : [ "en-US" ],
      "media_type" : "audio",
      "name" : "Oliver And Peter Podcast",
      "publisher" : "Oliver Rukavina",
      "type" : "show",
      "uri" : "spotify:show:6bDdMX7OmjDG1u5ebEhNRX"
    }
}

You may be thinking “wow, this is amazing!” until you notice that nowhere in that JSON is any information that falls outside the Spotify universe: none of the standard trappings of open podcast data–the feed URL, the website, the non-Spotify-hosted artwork–are there.

And these details also aren’t there if you follow the URL in the “href” to get all the show details:

{
  "available_markets" : [ "AD", "AE", "AR", "AT", "AU", "BE", "BG", "BH", "BO", "BR", "CA", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "DZ", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "ID", "IE", "IL", "IN", "IS", "IT", "JO", "JP", "KW", "LB", "LI", "LT", "LU", "LV", "MA", "MC", "MT", "MX", "MY", "NI", "NL", "NO", "NZ", "OM", "PA", "PE", "PH", "PL", "PS", "PT", "PY", "QA", "RO", "SE", "SG", "SK", "SV", "TH", "TN", "TR", "TW", "US", "UY", "VN", "ZA" ],
  "copyrights" : [ ],
  "description" : "It's the Peter and Oliver podcast all grown up. ",
  "episodes" : {
    "href" : "https://api.spotify.com/v1/shows/6bDdMX7OmjDG1u5ebEhNRX/episodes?offset=0&limit=50",
    "items" : [ {
      "audio_preview_url" : "https://p.scdn.co/mp3-preview/1c405e3e511e5e7199a45b1de32f83e5f88c7e24",
      "description" : "This first episode is about Vancouver BC Canada ",
      "duration_ms" : 92624,
      "explicit" : false,
      "external_urls" : {
        "spotify" : "https://open.spotify.com/episode/79W2zHGuUttBOInh642kNR"
      },
      "href" : "https://api.spotify.com/v1/episodes/79W2zHGuUttBOInh642kNR",
      "id" : "79W2zHGuUttBOInh642kNR",
      "images" : [ {
        "height" : 640,
        "url" : "https://i.scdn.co/image/53b71df32a85645777ba73afa2e9e738bd788534",
        "width" : 640
      }, {
        "height" : 300,
        "url" : "https://i.scdn.co/image/2cc3d2acae39674b3c3bfdc53ae2286a692b1376",
        "width" : 300
      }, {
        "height" : 64,
        "url" : "https://i.scdn.co/image/2f6bd66373d51f8f6f62b55997539e1554a3df4a",
        "width" : 64
      } ],
      "is_externally_hosted" : false,
      "is_playable" : true,
      "language" : "en-US",
      "name" : "Oliver and Peter Podcast episode 1",
      "release_date" : "2019-03-20",
      "release_date_precision" : "day",
      "type" : "episode",
      "uri" : "spotify:episode:79W2zHGuUttBOInh642kNR"
    }, {
      "audio_preview_url" : "https://p.scdn.co/mp3-preview/1b3548d7561908fd8b4c6625e5e4d1fdbc8198bd",
      "description" : "Episode 1 is about Vancouver BC Canada  ",
      "duration_ms" : 26958,
      "explicit" : false,
      "external_urls" : {
        "spotify" : "https://open.spotify.com/episode/5bH6wVgbHQ5aCJdthQLZrk"
      },
      "href" : "https://api.spotify.com/v1/episodes/5bH6wVgbHQ5aCJdthQLZrk",
      "id" : "5bH6wVgbHQ5aCJdthQLZrk",
      "images" : [ {
        "height" : 640,
        "url" : "https://i.scdn.co/image/53b71df32a85645777ba73afa2e9e738bd788534",
        "width" : 640
      }, {
        "height" : 300,
        "url" : "https://i.scdn.co/image/2cc3d2acae39674b3c3bfdc53ae2286a692b1376",
        "width" : 300
      }, {
        "height" : 64,
        "url" : "https://i.scdn.co/image/2f6bd66373d51f8f6f62b55997539e1554a3df4a",
        "width" : 64
      } ],
      "is_externally_hosted" : false,
      "is_playable" : true,
      "language" : "en-US",
      "name" : "Oliver and Peter Podcast episode 1",
      "release_date" : "2019-03-20",
      "release_date_precision" : "day",
      "type" : "episode",
      "uri" : "spotify:episode:5bH6wVgbHQ5aCJdthQLZrk"
    } ],
    "limit" : 50,
    "next" : null,
    "offset" : 0,
    "previous" : null,
    "total" : 2
  },
  "explicit" : false,
  "external_urls" : {
    "spotify" : "https://open.spotify.com/show/6bDdMX7OmjDG1u5ebEhNRX"
  },
  "href" : "https://api.spotify.com/v1/shows/6bDdMX7OmjDG1u5ebEhNRX",
  "id" : "6bDdMX7OmjDG1u5ebEhNRX",
  "images" : [ {
    "height" : 640,
    "url" : "https://i.scdn.co/image/8beec05386bfef3e095bcdf46aafaee112d55fdb",
    "width" : 640
  }, {
    "height" : 300,
    "url" : "https://i.scdn.co/image/4f70272b77c24c619a79486d6c88445b976151f7",
    "width" : 300
  }, {
    "height" : 64,
    "url" : "https://i.scdn.co/image/807d9151f7fa4a0ccd96c80d0c9bc265152b6012",
    "width" : 64
  } ],
  "is_externally_hosted" : false,
  "languages" : [ "en-US" ],
  "media_type" : "audio",
  "name" : "Oliver And Peter Podcast",
  "publisher" : "Oliver Rukavina",
  "type" : "show",
  "uri" : "spotify:show:6bDdMX7OmjDG1u5ebEhNRX"
}

Like I said: a prison.

And there’s another problem: this is both an undocumented API call and a broken one.

In theory you should be able to specify a “limit” and an “offset” parameter to page through podcasts and retrieve them all, like:

curl -X "GET" "https://api.spotify.com/v1/me/shows?offset=0&limit=20"
curl -X "GET" "https://api.spotify.com/v1/me/shows?offset=20&limit=20"
curl -X "GET" "https://api.spotify.com/v1/me/shows?offset=40&limit=20"
curl -X "GET" "https://api.spotify.com/v1/me/shows?offset=60&limit=20"

and so on.

But that doesn’t work.

I’m able to retrieve at most 50 podcasts (out of Oliver’s 1,986 total subscriptions). And using the Spotify web player confirms this breakage, showing a scrolling list of 50 podcasts that repeats and repeats and repeats.

Because this is an undocumented, and thus unsupported API call, it’s not like I can dial 1-800-SPOTIFY to ask for help.

But I’m not willing to give up the fight, so I forge on with this crazy, destructive nuclear option, which involves working around this bug in the undocumented API by pulling the podcasts 50 at a time, saving their name and ID, and then deleting them using another undocumented API call, so that I can then get the next 50 podcasts. And so on. Until I have them all.

(Warning: if you use this code you will be unsubscribing from all your podcasts, one by one by one).

items as $oneshow) {
    $id = $oneshow->show->id;
    $name = $oneshow->show->name;

    // Write the name and ID of the podcast into the text file opened earlier
    fwrite($fpout, $name . "\t" . $id . "\n");

    // Unsubscribe from the podcast via the Spotify API
    $url = 'curl -s -X "DELETE" "https://api.spotify.com/v1/me/shows?ids=' . $id .
           '" -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer ' .
           $bearer .
           '"';

    exec($url);
  }
}
fclose($fpout);

And even this code won’t work completely, or at least it wouldn’t work in Oliver’s case: with 905 podcasts still to extract, it simply stopped returning anything from the API call to get shows, and the web player, at this point, showed Oliver with no subscriptions at all. So perhaps the API only works for the first 1,081 podcasts?

In any case, Oliver now has a text file with 1,081 podcasts in it. Or, more accurately, the names of 1,081 podcasts in it.  But how to get the feed URLs? There’s no obvious way to do this right now, although the Listen Notes API might work. Barring that, Oliver has a lot of copying and pasting ahead of him.

In summary, let this be a warning to you: if you use Spotify as your podcast app, you are a prisoner to Spotify, and if you decide to switch to another podcast app there isn’t any way to get your data out of Spotify.

07 Jul 23:00

Midwifery Shouldn't Be "User Pay"

by peter@rukavina.net (Peter Rukavina)

During Question Period in the PEI Legislative Assembly on Friday came this exchange between the Leader of the Opposition, Peter Bevan-Baker, and the Minister of Health and Wellness, Hon. James Aylward:

Leader of the Opposition: Although the official opposition has stated vigorously and repeatedly that we are disappointed in the amount of money pledged in the budget to the priorities that we have brought to government, one item I personally was glad to see receive some funding was for midwifery. Many people have been advocating for the establishment of midwifery services on PEI for decades, and I believe that this is actually the first time that dedicated funding has found its way into a budget. For that, I am indeed grateful. According to the budget, this year’s allocation of $150,000 is and I quote: “to allow these services to be appropriately established consistent with current and anticipated demand.” A question to the Minister of Health and Wellness: Could you tell the House exactly what that statement means?

Mr. Aylward: Thank you very much, Mr. Speaker. As I’ve spoken several times during this session with regards to midwifery services and in the past when I was in opposition, I’m certainly looking forward to having this service provided here on Prince Edward Island. There is a process that needs to be followed. We need to ensure that when midwifery is fully operational and introduced here on Prince Edward Island that it’s just not done haphazardly. There’s consultation to be taken with, obviously, the college of physicians, the PEI Medical Society, we have to determine how it’s going to be introduced, if there’s going to be employees of Health PEI, if it’s going to be user pay. So there’s many issues around the introduction of midwifery here on Prince Edward Island. But as the Minister of Health and Wellness, I’m extremely proud that I’m going to be the minister that will finally be able to make this happen here on Prince Edward Island.

A satisfying answer. Until you get to the “if it’s going to be user pay” tucked in at the end.

The Leader of the Opposition noticed this too, and returned to address it at the end of several more questions about the details of the plans for the introduction of midwifery:

Leader of the Opposition: One of the statements made, again, in the answer I loved so much, I’m starting to love it a little bit less now – was you mentioned user-pay, could you elaborate a little bit on what you might mean by that? A user-pay for midwifery services seems like an odd statement for a health minister to say.

Mr. Aylward: Thank you very much, Mr. Speaker. Once again, as I said, we have to still go through this whole consultation process with our current health care providers. Currently on Prince Edward Island there is approximately 1,400 births annually here on Prince Edward Island and currently, as well, our compliment of health care professionals, OBGYN’s etc cetera, are more than capable of handling that number of births. Yes there is a request to have midwifery here on PEI, I’m extremely supportive of this service, I always have been and I will continue to be. But until we have all the details around how midwifery will be introduced, integrated in our health care system, it’s impossible for me to answer specifically, precisely today on how that will be rolled out. It’s a process and we’re working through that.

Leader of the Opposition: Thank you. Can I just get a confirmation though from the minister that when he used the word user-pay he’s not suggesting that for Island women to access midwifery services that they will themselves have to actually pay for that?

Mr. Aylward: Thank you very much, Mr. Speaker. Again, as I’ve said, we are working through a process currently right now and until we have all the details and we’ve had all the consultation with all the health care providers here on Prince Edward Island in, addition to the midwifery association, I can’t specifically answer that question. Thank you very much, Mr. Speaker.

Leader of the Opposition: Wow.

Wow indeed.

Later in the day the CBC reported about the exchange, under the headline P.E.I. targets early 2020 for midwifery, but Islanders may have to pay out of pocket, in part:

Among the considerations, Aylward said, is whether the services would be “user-pay” — something Bevan-Baker said he was “a little horrified” to hear.

“We have a public health service and midwifery is absolutely, in all other jurisdictions, a part of the public health service,” Bevan-Baker said.

“So even the suggestion that this would become a user-pay system where … families out-of-pocket, would have to pay for this, is quite an extraordinary thing.”

I share Bevan-Baker’s shock at the suggestion that midwifery would be even considered as a “user pay” service, both for the fact itself, and for what this suggests about how midwifery is conceived of by the government.

Midwifery is not an upgrade to business class, it’s basic health care.

There is no rationale whatsoever for classifying it as anything other than this, and to fly a trial balloon that positions it otherwise is an insult to those who have worked so tirelessly for so long to reintroduce a practice that was standard and accepted during our grandparents’ day.

I trust that the opposition will continue to make this point clear to government.

07 Jul 22:59

Two-way sync between task manager and Google Calendar - satis

2-way sync is either a technologically thorny problem, or maybe Google charges companies for the privilege. Since Ticktick's one-way sync can be so much slower, I'm really wondering if Todoist is paying for this.

There are just a handful of other apps which integrate 2-way sync with Google Calendar, like the relatively new app/service ClickUp which is garnering a lot of attention lately in the productivity talkosphere.

https://clickup.com/google-calendar-task-sync

Another (pay) option for products that don't offer two-way sync is with a hack via a service like Zapier; as Zapier explains, "you can "fake" two way syncing by setting up two different Zaps that perform opposite actions of each other"
07 Jul 01:22

Learning without a gradient (part 1)

Learning using gradient-based methods is a lot like trying to find the top of Mount Everest starting from a random point on earth, while blindfolded, by repeatedly sampling only the altitude and slope of the ground you’re standing on, and then using that information to decide where to teleport next.

Imagine you’ve got your blindfold on, and you note that the ground slopes upward if you travel northeast. How far should you go in that direction? The blindfold prevents you from just looking off in the distance and observing “oh, it keeps going upward in that direction for a while”. You can only sample the height and slope at the individual points you teleport to.

So maybe you walk 10 feet, and the ground continues sloping upward in that direction. Should you teleport half a mile along that same vector and take another sample? 10 miles? 100 miles? What if you teleport too far and skip right past the highest point? Or maybe you only move 1 foot at a time, but it takes you eons to get anywhere. Should you continue along a vector even if you reach a point where it starts leading downard? Or do you keep some “momentum” and hope that was just a temporary little dip in the landscape?

There aren’t really good answers to these questions and a lot of it comes down to: “I tried XYZ on these problems, and it seemed to work okay” and some rules of thumb for how to discover “good” hyperparameters for your problem.

The gradient just isn’t a lot to go on. The local slope at a point in Kansas might help you reach the top of the hill near where you started, but it doesn’t help in locating even the general region where Mount Everest is located.

Most optimization problems are actually harder than the above analogy lets on. The function being optimized will have more than just two parameters, and the landscape may be very “rugged.” It’s often expensive to compute your current altitude and the current slope, so we settle for an estimate of these things. Extending our analogy, imagine if you didn’t even have an accurate way of measuring current altitude or slope, but instead had lots and lots of unreliable measuring devices whose results you could aggregate (with much effort) to produce more accurate readings.

For instance, in deep learning, when training a network with a gajillion tunable parameters on a training set that’s 100k elements, calculating the actual “altitude” of your current location would involve evaluating the current network output for all 100k elements of the training set. Similarly for estimating the gradient: we can determine what direction to adjust weights to improve average performance for a batch of examples, but we don’t know for certain that improvement on this batch won’t just make performance on the overall training set worse!

You gotta make assumptions, and what, precisely, are they?

A takeaway from the above discussion is that any learning algorithm has to make some assumptions about the space it is optimizing, if it is to be effective. For instance, in our blindfolded Everest-finding example, knowing something about how the structure of the earth’s surface is helpful.

For instance, the earth’s surface altitude may change rapidly at a local scale, but can be quite smooth if we apply a low pass filter and average the altitude of neighboring regions. Mount Everest isn’t just a single spike in the middle of a flatlands, it’s a huge mass of land which must be supported physically, so it (and any other tall mountain peak) tends to be surrounded by regions of similar altitude. This property suggests that keeping some “momentum” in a gradient-based search could be effective, so the search is less sensitive to the (noisy) immediate local gradient signal. But then, what parameters do we use for this momentum?

There’s a famous set of theorems, the “No Free Lunch” (NFL) theorems, which amount to a formal statement about the need for optimization algorithms to make assumptions about problem structure. The first of the NFL theorems states that “any two optimization algorithms are equivalent when their performance is averaged across all possible problems”. So if you consider “all possible problems”, all optimization algorithms, including random search, give equivalent performance! My intuition for the NFL results is that for every problem where your fancy optimization algorithm does well, there’s another problem (in that huge space of all possible problems) where the assumptions your algorithm makes are actively harmful!

The NFL theorems were a pretty explosive result, because up until then people were making all sorts of unqualified statements about their learning algorithm being “better” after getting bettter results on a few benchmarks. NFL makes it clear: no optimization algorithm is better, only better for some kinds of problems.

A common response to NFL is that: “well, we aren’t solving problems randomly chosen from the space of all possible ones; we’re solving real world problems which have quite a bit more structure”.

But the way I like to understand the NFL results is that every optimization algorithm must exploit some assumed “structure” to the functions being optimized. If you can more precisely characterize the structure of the function being optimized, then you can pick the right algorithm for the job, the one that exquisitely exploits this structure to find very good solutions quickly.

As a simple example, in the field of convex optimization a set of highly efficient optimization algorithms have developed which exploit precise assumptions about the function being optimized (namely, that it is a convex function over a convex set).

Of course, many problems of interest aren’t convex, but I think what’s been done for convex optimization should be the gold standard of any research on learning or optimization algorithms: efficient algorithms along with a well-characterized subset of problems for which the algorithms do well (ideally, along with an algorithm to automatically check if a problem is in the subset). We should expect that for any optimization or learning technique, because the alternative is fumbling around in the dark with empirical tinkering and playing the hyperparameter slot machine(“I tried algorithm XYZ with hyperparameters ABC on problem P, and it did terribly, then I switched to hyperparameters DEF and it worked great”).

Also related is star-convexity. It’s been suggested that many deep learning problems are star convex and that this explains the success of stochastic gradient descent.

Next time

For the next post, I’m going to use our same “find Mount Everest while blindfolded” metaphor to explore a class of learning algorithms that doesn’t use gradient information at all.

07 Jul 01:21

Brazilian musician João Gilberto dies aged 88 | Music

mkalus shared this story from The Guardian.

Brazilian musician João Gilberto, 88, died on Saturday afternoon in his house in Rio de Janeiro, relatives confirmed through messages in social media.

On his Facebook account, his son Marcelo Gilberto said “his fight was noble and he tried to maintain dignity”. His daughter-in-law wrote: “Deep sadness. All he wanted was to be with us and to play with his granddaughter.”

The family did not disclose the cause of death.

Born in Bahia, a northeastern Brazilian state, Gilberto began singing at 18. After moving to Rio de Janeiro, he released the record Chega de Saudade in 1959, which marked the beginning of the world-famous bossa nova music style.

His 1964 album Getz/Gilberto with the American saxophone player Stan Getz sold millions of copies, won several Grammy awards and popularised bossa nova around the world. It featured the hit single Girl from Ipanema, sung by Astrud Gilberto, to whom Gilberto was then married.

“It was João Gilberto, the greatest genius of Brazilian music, who was the definitive influence on my music,” singer Gal Costa wrote on social media. “He will be missed but his legacy is very important to Brazil and to the world.”

The journalist and bossa nova scholar Ruy Castro called the death of Gilberto a monumental loss.

“He managed to create a mystique about him abroad, being who he was and not even speaking English,” he told the Globo television station.

Singer Daniela Mercury called Gilberto a “genius who revolutionised popular Brazilian music”.

“He taught us now to sing in the most beautify way in the world. Go in peace, maestro,” she wrote.

As well as Marcelo, Gilberto is survived by two other children, Bebel and Luisa.

05 Jul 21:32

You can cross all 4 directions at once at this new Vancouver crosswalk

mkalus shared this story :
Why overdue they bring this to the city, but seriously, this intersection? Robson & Burrard would have been a much better pilot for a scramble intersection.

The City of Vancouver is piloting a crosswalk downtown that lets pedestrians cross in all four directions at once.

As of Thursday, the corners of Robson and Hornby streets will now be an "all-walk" crosswalk, allowing pedestrians to use all four crosswalks simultaneously, while all vehicle traffic is stopped by a red light.

It's part of the city's "Vision Zero" strategy to improve pedestrian safety and eliminate traffic-related deaths.

The city says, during a busy hour, about 2,500 pedestrians pass through the area, which includes a permanent plaza in front of the Vancouver Art Gallery that's under development.

The all-walk crosswalk differs from a scrambled crosswalk, which lets pedestrians cross diagonally. 

The city opted out of that option because of the traffic that turns left from Robson on to Hornby. 

 "We didn't want to have pedestrians cross and think that they can cross diagonally when there's a vehicle turning," said Winston Chou, manager of traffic and data management with the City of Vancouver.

Chou said a scramble crosswalk is still possible, but it would mean closing the south crosswalk or stopping pedestrians from crossing as cars turn left from Robson.

City staff will analyze the traffic impact over the next few months.

The city is considering installing the same crosswalk soon at the intersection of Howe and Robson. Chou said they'll consider other spots with high pedestrian volume and turning conflicts.

The Robson-Hornby intersection is also now outfitted with accessible pedestrian signals, which include audio cues that guide blind or partly blind people to the pole's push button.

05 Jul 21:31

Banning Issues vs. Opinions

by Richard Millington

Banning abuse against a minority group is clearly the right thing to do.

Banning people who some deem to express hatred of minorities is more problematic.

Many public figures have been accused (some more credibly than others) to oppress and spread hatred of minority groups.

Unless you want to make an endless series of dubious judgement calls, it’s often best to ban the issue (i.e. political discussions) rather than opinions within the issue.

05 Jul 21:29

Twitter Favorites: [Stv] Oh @SwarmApp really? Encouraging alcoholism? It should be noted I got this alert while sitting at a bar. 🍺 https://t.co/SwqMx6ihk6

Steve @Stv
Oh @SwarmApp really? Encouraging alcoholism? It should be noted I got this alert while sitting at a bar. 🍺 pic.twitter.com/SwqMx6ihk6
05 Jul 21:29

Kom naar IndieWebCamp Amsterdam 28/29 September

by Ton Zijlstra

Op 28 en 29 september vindt IndieWebCamp Amsterdam plaats. We hebben een locatie, maar die is nog niet helemaal rond. Maar rond genoeg om zeker te weten dat IndieWebCamp plaats gaat vinden!

Na IndieWebCamp Utrecht in mei, is dit de 2e IndieWebCamp in Nederland.
Zet het weekend van 28 en 29 september vast in je agenda, en zorg dat je er bij bent!

Neem het web in eigen hand! Het is de hoogste tijd te zorgen dat het web ons tot dienst is. Door meer van het web in eigen handen te nemen. Het onafhankelijk web (indieweb) is het oorspronkelijke web, waar jij bepaalt wat je deelt, wat zichtbaar is voor anderen, en waar jouw data van jou is omdat het op je eigen site staat.

IndieWebCamp Amsterdam heeft geen publiek, alleen deelnemers. Op de eerste dag kun je sessies voorstellen of aan sessies deelnemen over elk aspect van het onafhankelijk web dat je wilt. Op de tweede dag bouw je aan je eigen deelname of bijdrage aan het open web.

Jij bent iemand die een open web wil, al wel een eigen site heeft of nog niet, misschien ben je ook ontwerper of programmeur, ben je een denker of een doener. Jij bent degene die we zoeken om twee dagen met anderen om het onafhankelijke web te bespreken, te verkennen, en te bouwen.

Meer info over aanmelding volgt eind juli.

05 Jul 21:28

How FZF and ripgrep improved my workflow

How FZF and ripgrep improved my workflow

I'm already a keen user of ripgrep (a crazy-fast grep alternative) but fzf was new to me: it's a CLI utility that lets you pipe in a list of strings, then gives you a typeahead search interface to search and select a string before returning the selected string to stdout when you hit enter. This means you can pipe it together with other tools to add a dynamic selection step, which has all kinds of delightful combinations. "vi $(find . | fzf)" for example opens vi against the file you selected.

Via Hacker News

05 Jul 21:28

"Passion is rare; curiosity is everyday."

“Passion is rare; curiosity is everyday.” - | Elizabeth Gilbert
05 Jul 21:27

Huawei founder says Hongmeng OS possibly faster than Android, has broader applications

by Jinqiao Wu

According to an excerpt published in Chinese media outlet Sina Technology, Ren Zhengfei, founder of Huawei, expressed that Huawei’s Hongmeng OS is more than an Android alternative but a solution to interconnect all subjects.

The excerpt, which was an interview from the French magazine Le Point, the 75-year-old executive said that the in-house operating system would work on network switches, routers, data centers, as well as smartphones.

In addition, it would serve as a perfect software platform for the Internet of Things (IoT) like smart home devices, and autonomous vehicles.

Speed wise, Ren stated that the elusive operating system has a processing delay of fewer than five milliseconds. Ren also said that the OS is possibly faster than both Google’s Android and Apple’s macOS.

Ren also admitted that Hongmeng OS is facing an uphill battle when it comes to cultivating a robust software ecosystem, the article indicated. He acknowledged the fact that Apple and Google have well-established ecosystems filled with apps and developers. However, Ren added that the company is building an app store to lure more developers.

In May, U.S. President Donald Trump signed an order that would ban U.S. companies from doing business with the Shenzhen-based tech giant.

Last week, Trump said Huawei is now permitted to resume business with American companies and purchase components from the U.S. However, Trump did not say whether Huawei would be allowed to operate in the U.S. Further, the U.S. says Huawei is still to be considered blacklisted, despite the decision to let it conduct some business with America.

Source: Sina Technology

The post Huawei founder says Hongmeng OS possibly faster than Android, has broader applications appeared first on MobileSyrup.

05 Jul 21:27

Ride-hailing services could help taxi shortcomings in British Columbia: report

by Aisha Malik

Ride-hailing services will address some of the taxi industry’s shortcomings in British Columbia, according to a recent report from the Passenger Transportation Board.

The report found that B.C residents desire ride-hailing services like Uber and Lyft because they believe it is a “differentiated service.”

“Many areas of the province have been under-served by taxis, particularly during peak hours,” according to the report.

The introduction of ride-hailing services in British Columbia has been in talks for many years. Last year, the government halted legislation to have ride-hailing services by the end of 2019, as outlined by Global News.

“The ongoing operation of illegal ride hailing in Metro Vancouver, despite efforts of enforcement staff to curtail this, supports the view that consumers desire greater choice in vehicles-for-hire,” the report concluded.

Earlier this year, the City of Vancouver discussed whether Uber and Lyft should be charged mobility fees, or taxes, on top of what the companies already charge passengers.

The conclusions in the report were formed following a year and a half of public consultations, along with input from business and industry experts.

Source: Passenger Transportation Board Via: Global News

The post Ride-hailing services could help taxi shortcomings in British Columbia: report appeared first on MobileSyrup.

05 Jul 21:27

Montreal Reduces Speed Limits to Save Pedestrian Lives~Time to Step Up Vancouver!

by Sandy James Planner
grayscale photo of wrecked car parked outside
grayscale photo of wrecked car parked outside Photo by Aleksandr Neplokhov on Pexels.com

While the City of Vancouver dithers about reducing speeds to 30 km/h in their neighbourhoods, the City of Montreal just gets it done, and they are reducing speed on their arterial roads too. Montreal is not just doing lip service to Vision Zero, the concept that no serious injuries or deaths should result on city roads. They identified reducing speed limits as essential, especially where pedestrians and cyclists used the street.

In Vancouver we don’t talk about Vision Zero officially, as the previous Vision controlled council did not like the term for their own political reasons. It’s time  for this Council to take control and bring the right term  back.

It has been proven internationally that the one way to save lives on roads is to lower speed limits. That increases the survivability of a crash for a pedestrian and cyclist, and also allows for more reaction time for the driver. It is also more sustainable to travel at slower speeds, and allows the streets to function in a sociable way for residents walking and cycling, instead of just facilitating fast vehicular traffic.

As the CBC reports some of Montreal’s  boroughs have already adopted speed limits of 30 km/h in neighbourhoods and 40 km/h on arterial roads. Listen to the messaging from the Mayor of Montreal, who says that not only is it important to methodically implement slower speed limits for enhanced street use and livability, but that those limits need to be lowered quickly. They are serious about reducing injuries and saving lives.

Montreal’s Vision Zero plan is direct and to the point. Besides reducing speeds, they are banning heavy trucks from some of the street network, improving safety around schools, and improving crosswalk visibility. I have already written about the City of London banning certain trucks and requiring sideguards on others. London realized that one kind of truck was in three years responsible for 70 percent of that city’s cycling deaths. Those trucks  are now completely banned from the inner core of London.

The City of Montreal has buy-in from the  public health department, Quebec’s automobile insurance board and both the Federal and Provincial Ministries of Transport. Montreal has also led a fulsome public process engaging with citizens and over thirty different groups, including the trucking industry.

Montreal mayor Valerie Plante inclusively invited all Montrealers to sign a Vision Zero commitment to slow down and save lives. As Mayor Plante directly  states:“This open and evolving approach that we are embarking on today will begin with our efforts to bring about a paradigm shift in road safety and mobility choices.”

Meanwhile back in Vancouver plodding progress is being made at identifying a neighbourhood for a test pilot of 30 km/h speeds, and bringing the matter up at the next Union of B.C. Municipalities meeting. You can take a look at the Council motion here.

So far in 2019 one pedestrian a month is losing their life on Vancouver Streets. We must do better and be more aggressive at addressing this problem. Vancouver, it is time to be like Montreal. Let’s call it Vision Zero, and let’s get serious about saving lives.

grayscale photography of person s feet
grayscale photography of person s feet Photo by rawpixel.com on Pexels.com
05 Jul 21:27

Jean Swanson’s Perfect Voting Record

by Gordon Price

From @nm_nvan:

Here’s an update of each councilor’s record of voting for the 311 market rental units in the 8 projects that have come to council this term. Renter advocate @JeanSwanson  managed to maintain her perfect record of voting against market rental units.

When one crosses the bar from activist to councillor, usually one grasps the difference between politics (the art of the possible) and ideology (where the perfect drives out the good).  In that respect, Swanson’s record is not unexpected. The curious one is Pete Fry’s.

 

05 Jul 21:26

Toyota to test new solar cells for its electric cars

by Aisha Malik

Toyota has announced that it will begin testing a new solar roof for its Prius, which the company says will add nearly 44.5km range a day.

The solar cells will be manufactured by Sharp, and are 0.03mm thick. They deliver about 860 watts of power. Interestingly, they can also charge the car during a ride.

Since Toyota doesn’t make any purely electric vehicles, these panels are for the plug-in hybrid Prius for now, as outlined by The Verge.

The company says the testing is expected to begin later this month. However, it has not said when the panels will make their way into a commercial vehicle.

It should be noted that this isn’t Toyota’s first solar panel release. The company previously revealed solar panels in 2010 that individuals could use to recharge their car’s auxiliary battery, as outlined by The Verge.

However, these new panels are designed to be a lot more efficient than the older ones.

Image credit: Toyota 

Source: Toyota Via: The Verge

The post Toyota to test new solar cells for its electric cars appeared first on MobileSyrup.

05 Jul 18:03

Identical twins with a shared mustache,1890. pic.twitter.com/MTQ5cRQY1R

by moodvintage
mkalus shared this story from moodvintage on Twitter.

Identical twins with a shared mustache,1890. pic.twitter.com/MTQ5cRQY1R



Posted by moodvintage on Friday, July 5th, 2019 9:15am


217 likes, 53 retweets
05 Jul 18:02

Canadians expected to double their data consumption rate by 2023: report

by Aisha Malik

Canadians are expected to show a staggering growth of data consumption, internet access, esports, and over-the-top (OTT) services such as Netflix in the next five years, according to a recent report from consulting firm PricewaterhouseCoopers.

The report showed that data consumption will have the highest growth, stating that Canadians will double their data consumption in the next five years. This will translate to a 19.4 percent compound annual growth rate increase (CAGR).

Additionally, Canada’s OTT video revenue will increase by 10.7 percent CAGR. This growth will place Canada’s market ahead of the U.K. in fifth place. Unsurprisingly, Netflix currently holds a market share of over 70 percent, according to the report.

The study also stated that the introduction of a 5G spectrum will change how people consume data, and will allow for more high-quality streaming and better use of artificial intelligence.

“It will make it easier, more convenient and cheaper for Canadians to access more media on phones and other mobile devices,” said John Simcoe, the media and telecom leader at PwC, in an emailed press release.

Canada’s video game and esports revenue are also expected to continue to grow strongly with a 5.5 percent CAGR increase.

The post Canadians expected to double their data consumption rate by 2023: report appeared first on MobileSyrup.

05 Jul 18:02

Car-sharing services in Vancouver might have more parking options in the future

by Shruti Shekar

Vancouver’s city council will review staff recommendations next week on how to regulate where car sharing services can park vehicles.

According to a CBC article, members of the council will even consider looking at allowing these services to park vehicles at city meters for free.

At the moment, services like Car2Go and Evo, are only allowed to park in areas that are reserved zones for resident permit parking and resident parking.

According to CBC, a city report said that this would be fine if cars are visiting homes, but not when visiting commercial areas. It noted, right now, these cars are not allowed to be parked curbside at a meter.

City staff are recommending that these cars are allowed to do so and have free stopovers at metered parking spots for up to two hours, CBC reported. It added that while the driver isn’t paying for the parking spot, they would be making it up by paying for the rental vehicle.

Other cities that have regulated car-sharing vehicles in this way include Calgary, Seattle and Portland.

Currently, 34 percent of adults in Vancouver use a car-sharing service and CBC reported that the report wanted to encourage the use of more electric vehicle. The article said that another recommendation would be to allow users that have rented electric and hydrogen vehicles to end their rental period and drop of vehicles at meters. The renter would then get a 50 percent discount to the company that the car was rented from.

While this could result in a loss of parking revenue for the city, city staff recommend that it would only issue 250 permits per company over five years for more “zero-emission one-way car shares,” CBC reported.

The meeting will be on July 9th.

It is worth noting that some residents in Vancouver may or may not be in favour of these regulations. In June, a Vancouver-man wanted there to be a city limit to the number of car sharing vehicles that are parked in residential parking spots.

That particular resident was not able to ever find a proper parking spot because car-sharing services were taking up all the room. He lives a block away from the Pacific National Exhibition, which hosts an annual 17-day summer fair and other events hosted in that specific area.

These regulations could relieve car sharing services from having to park in residential areas and park in more commercial areas.

Source: CBC

The post Car-sharing services in Vancouver might have more parking options in the future appeared first on MobileSyrup.

05 Jul 18:02

Sony’s new WF-1000XM3 are truly wireless earbuds with noise-cancelling capabilities

by Igor Bonifacic

Sony has just announced a new pair of truly wireless in-ear headphones that will likely make AirPods owners envious.

Building on the company’s previous WH-1000X in-ear headphones, the WH-1000XM3 improve on their predecessors in almost every way.

Likely the most significant improvement from the company’s previous model to the new WF-1000XM3 headphones is the inclusion of hardware from Sony’s WH1000XM3 over-the-ear noise-cancelling headphones. In particular, Sony says it has integrated a new, more power-efficient version of its QN1e noise-cancelling processor. Each earbud also features two microphones to assist with noise cancellation.

The company has also integrated a new digital-to-analog audio converter (DAC) and amplifier that it says are capable of delivering 24-bit audio — though whether Bluetooth headphones can actually deliver 24-bit audio is another matter. On audio codec front, there’s support for both SBC and ACC.

The headphones will also ship with Sony’s DSEE HX audio upscaling software, which the company claims is able to recover data from lossy tracks, making tracks sound as if it was transcoded using a lossless compression format.

Notably, support for any one of Qualcomm’s aptX audio codecs is missing, which is interesting since the WH1000XM3 include both aptX and aptX HD. Also missing is Sony’s own LDAC codec.

As for the earbuds themselves, they feature 0.24-inch drivers. Sony has also redesigned them to do away with the wingtips that it used to secure the previous model. Instead, the new model features a high-friction rubber surface underneath the tip. Each unit comes with seven different pairs of tips to help owners find the perfect tip. There’s also support Google Assistant, and a touch sensitive area that allows for playback but not volume control.

Internally, the WF-1000XM3 headphones include a new Bluetooth chip that supports Bluetooth 5.0. Sony says it has also redesigned their antennas. The new design transmits audio data to both earbuds simultaneously, instead of the left earbud passing data the right one. Like AirPods, the WF-1000XM3 include proximity sensors that allow to tell when they’ve been pulled out the ear.

In terms of battery life, the WF-1000XM3 can provide six hours of continuous playback with noise cancelling activated — and eight hours without — on a single charge. The included magnetic charging case holds three additional charges, allowing the WF-1000XM3 to go a full day. Once it’s time to charge the case again, it features USB-C quick charging.

One missing feature is any kind of water or sweat resistance.

In the U.S., Sony plans to sell the WF-1000XM3 for $230 USD. At launch, available in two colours: black and silver.

We’ve reached out to Sony to find out if the company plans to bring the WF-1000XM3 in-ear headphones. We’ll update this article with the company’s response.

Source: Sony Via: Engadget

The post Sony’s new WF-1000XM3 are truly wireless earbuds with noise-cancelling capabilities appeared first on MobileSyrup.

05 Jul 18:01

Google Camera breakdown suggests Pixel 4 will feature telephoto camera

by Dean Daley
Pixel 4

A dive into the Google Camera app code suggests the Pixel 4 will sport a telephoto camera.

XDA Developers did a teardown of version 6.3 of the Google Camera app and discovered code referencing “Sabre,” Google’s codename for Super Res Zoom. Upon further inspection, the website discovered code snippet that reads:

“public static final int GCAM_SENSOR_ID-REAR-TELEPHOTO=4;|”

This leads XDA to believe the Pixel 4 will feature a telephoto camera. A telephoto lens will allow for a better zooming functionality.

Alongside the rear-facing telephoto camera, the code also revealed that the Pixel features a front-facing infrared (IR) camera.

An IR sensor will allow for better facial recognition and bokeh pictures. Perhaps Google will have its own version of Apple’s Animojis.

Source: XDA Developers 

The post Google Camera breakdown suggests Pixel 4 will feature telephoto camera appeared first on MobileSyrup.

05 Jul 18:01

Apple’s keyboard replacement program now includes MacBook Air (2018), MacBook Pro (2019)

by Patrick O'Rourke
MacBook Air

The situation surrounding Apple’s controversial MacBook Butterfly keyboard is becoming increasingly complicated.

Amid rumours that Apple plans to ditch the Butterfly mechanism entirely in favour of a new scissor key switch, the tech giant has added the MacBook Pro (2019) and MacBook Air (2018) to its free keyboard replacement program. This means that every modern MacBook model that features a Butterfly keyboard, regardless of generation, is now included in the replacement program.

The MacBook Air (2018) features Apple’s 3rd-generation Butterfly keyboard, which includes softer keys and a silicon membrane likely designed to prevent debris from getting in the key mechanism. On the other hand, the recently released MacBook Pro (2019) features yet another 4th-generation redesign of the keyboard with improved keycaps durability and other subtle changes.

If Apple is adding MacBooks that feature both the 3rd-generation Butterfly keyboard and the latest 4th-gen take on the mechanism to its replacement program, the company’s repeated redesign attempts have likely not been successful.

Below is a full list of MacBook models that are included in Apple’s free keyboard replacement program:

  • MacBook (Retina, 12-­inch, Early 2015)
  • MacBook (Retina, 12­-inch, Early 2016)
  • MacBook (Retina, 12-­inch, 2017)
  • MacBook Air (Retina, 13-inch, 2018)
  • MacBook Pro (13­-inch, 2016, Two Thunderbolt 3 Ports)
  • MacBook Pro (13-­inch, 2017, Two Thunderbolt 3 Ports)
  • MacBook Pro (13-­inch, 2016, Four Thunderbolt 3 Ports)
  • MacBook Pro (13-­inch, 2017, Four Thunderbolt 3 Ports)
  • MacBook Pro (15-­inch, 2016)
  • MacBook Pro (15-­inch, 2017)
  • MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
  • MacBook Pro (15-­inch, 2018)
  • MacBook Pro (13-inch, 2019, Four Thunderbolt 3 Ports)
  • MacBook Pro (15-­inch, 2019)

Apple’s rumoured 2019 refresh of the MacBook Air is tipped to be the first MacBook set to feature a new scissor keyboard mechanism.

The company has consistently maintained that MacBook Butterfly keyboard issues have only affected a small number of customers.

Source: Apple Via: iPhone in Canada

The post Apple’s keyboard replacement program now includes MacBook Air (2018), MacBook Pro (2019) appeared first on MobileSyrup.

05 Jul 18:01

Jaguar announces that its next XJ will be electric

by Aisha Malik

Jaguar Land Rover announced that the new version of its XJ sedan will be electric, making it the company’s second electric car following its I-Pace.

The cars will be built in Britain, despite Brexit concerns. The Castle Bromwich plant will be transformed into “the UK’s first premium electrified vehicle plant,” according to the company.

The same team that was responsible for the I-Pace, which was released in 2018, will develop the electric XJ. Jaguar Land Rover also stated that all models from 2020 and beyond will have hybrid or electric options. It will also continue to make diesel cars.

“The future of mobility is electric and, as a visionary British company, we are committed to making our next generation of zero-emission vehicles in the UK,” said Ralf Speth, CEO of Jaguar Land Rover, in a press release.

The company says this new endeavour will safeguard thousands of jobs in the U.K. Earlier this year, Jaguar Land Rover laid off 4,500 employees.

In the announcement, the company also called for the introduction of a giga-scale battery production plan in the U.K. Tesla is currently looking to place its fourth Gigafactory in Germany soon, as outlined by The Verge.

Image credit: Jaguar Land Rover 

Source: Jaguar Land Rover Via: The Verge 

The post Jaguar announces that its next XJ will be electric appeared first on MobileSyrup.

05 Jul 18:01

Calgary launches electric scooter pilot program with Bird and Lime

by Patrick O'Rourke

The city of Calgary is launching a 16-month electric scooter pilot project following an exemption to the Alberta Traffic Safety Act being pushed through last week.

Electric scooter platforms Lime and Bird will be included in the pilot project, with other e-scooter companies also having the opportunity to apply for permits to operate in the city.

Lime already offers a fleet of electric pedal-assisted bicycles in Calgary through a bike-share pilot.

In an interview with the Calgary Herald, Nathan Carswell, the manager of the city’s shared mobility program, said, “We wanted to create a network for the scooters that customers could use to get to and from their destinations. It’s a new mode of transportation that is disrupting the traditional modes of transportation.”

The scooters will go a maximum of 20km/h, with riders being required to stay on sidewalks, parks, bike lanes, or other cycling paths. Unlike other cities where electric scooters are available, Calgary has ruled that the last mile vehicles will not be able to be driven on roads.

Both Lime and Bird will be limited to 1,000 scooters during the pilot project. All electric scooters can only be rode in the city’s downtown core. Finally, the city says that the scooters will not be operational from November 1st to March 15th to avoid snow and cold weather.

Earlier this month, Bird announced plans to come to Canada under a new moniker, Bird Canada. At the time, the company said it had plans to launch its e-scooters in Alberta in July, with plans to expand to other “communities across Canada soon.”

While e-scooters are an efficient form of ‘last mile’ transportation, the devices have been the source of complaints in many cities around the world. Unlike most bike rental services, Bird’s and Lime’s e-scooters are dockless.

This means Bird’s e-scooters can be left anywhere when riders are finished with them, including in the middle of busy sidewalks. In an interview with MobileSyrup, Lyons explained that Bird Canada has plans to deal with the “clutter” issues the e-scooter rental company suffered from when it first launched in the U.S. back in 2017.

“The way we’re going to be dealing with it out of the gate, is that we’ll actually have people that are full-time going out into the market in the middle of the day to move scooters around, both so that they’re well-positioned for ridership because we have algorithms to plot where they should be located, but also to make sure they’re not cluttering, blocking sidewalks of impeding pedestrian traffic,” said Bird Canada CEO Stuart Lyons.

Source: Calgary Herald

The post Calgary launches electric scooter pilot program with Bird and Lime appeared first on MobileSyrup.