Shared posts

22 May 19:17

What will increase your programming productivity the most?

by Eric Normand

Lisps have traditionally been highly interactive. This allowed AI researchers and language developers to iterate quickly and learn about what works and what doesn’t. How can you tap into this in your workflow?


Eric Normand: What is the single most important thing you can do to both increase your productivity and programming and also to learn faster?

My name is Eric Normand and these are my thoughts on functional programming. This is not actually directly related to functional programming; it’s orthogonal to the paradigm. It’s kind of related because the answer that I want to give is that you want fast feedback.

The language that started the whole live coding thing, as far as I know, is Lisp. It’s a functional language. It’s kind of tangentially related. In Lisp, you have a REPL and you’re coding to a live environment. The compiler is always available to you. You’re in an environment, you’re adding code, you’re compiling it and you’re adding values to the global namespace.

That lets you do so much in terms of learning. You’re going to very quickly test something out, change one little thing, see what it does, change another little thing, see what it does. For learning, you’re actually always learning two things. You’re learning the domain, like what are you programming about. Is it an accounting system? Is it a database? Is it an e-commerce system?

You’re learning about the domain and how best to represent it. You’re also learning the language, and the system and the environment it’s in. You’re learning, “What does this function do if I can put in a nil for the second argument? Can I access this database in constant time so I can do it in a loop?” You’re constantly asking these kinds of questions.

The REPL has the answers. The REPL has all the answers because it’s just like the live system. It’s just like running in production. The learning and the programming are actually just the same things. You’re always learning about how best to program the system and how best to represent your domain. That’s what programming is.

I actually was talking to someone yesterday who, totally new to Clojure, got [inaudible 3:19] up and running with a framework that was totally unfamiliar to him. Because it had such fast feedback, he could change one little value in the program. He had a simple program that came with the [inaudible 3:39] tutorial. He could change one thing and see what happen, change another thing and see what happen.

Because he could make such small changes, he was never that far away from the working program. He could really understand every little bit that he needed to, to get what he needed done, done. Now imagine if you had a slower feedback loop, he could do this within a second. Make a change, save the file and within a second you see the difference in the GUI and on the web browser.

Not exactly a REPL, but for something that’s very GUI and intensive, that’s what you want. You want to see the change right away. He was able to learn this thing. Imagine if he did have a slower feedback loop, he would start to feel the pain of, “God I want to try one more thing. Why don’t I think about it a little more? Why don’t I try to guess what it’s going to do?”

It’s faster to guess. Sometimes you guess right and you save that time of having to test it, whereas if you had a fast feedback loop you wouldn’t have to guess. You could get it right or you could get it wrong ten times and finally find the right answer. This is the thing that I probably think Clojure does the best. Clojure is pretty good at functional programming. It’s pretty good with concurrency.

Those things are important and it’s pretty good. It’s good. It’s good enough. It’s better than good enough for those things. There’s a lot of competition for functional programming. There’s a lot of competition for concurrency. That fast feedback, I don’t know if anyone can keep up. I mean, maybe other Lisps. Common Lisp makes it really easy. Racket makes it easy. Skin makes it easy.

Clojure also makes it easy on both GVM and ClojureScript and the browser or on node. It’s one of the things that I set up. I spent a lot of time setting up so that I can move quickly. I don’t want to have to guess so much and make assumptions. I just want to be able to try it out, ask questions.

If there’s one thing that marks an expert Lisp programmer over a beginner Lisp programmer, it’s reliance on the REPL. A master will do the REPL more. One thing I encourage my students to do as much as possible is, don’t ask me questions like, “What does map do again?” It’s like don’t ask me, ask the REPL.

What if I don’t know? What if I’m wrong? The REPL is never wrong. I’m wrong all the time and sometimes I don’t know and I’m going to ask the REPL. That’s going to be my way to figure out the answer to your question. Figure out a way to do a tiny little experiment that you can do right in the REPL that will have a hypothesis. The hypothesis is that nils are going to crash this function.

Then run it on NIL and see. If you are trying to get better at Clojure or any other Lisp for that matter, I would say that a huge thing is asking the REPL more questions. If you’re confused about how does this thing work, get into a REPL, set up a little experiment and try to figure out yourself using the REPL the answer to your question.

Besides that, the other technique that is very common for working in the REPL is to work inside out. In small pieces, evaluate the forms that you would put in the function. Write the function and if there’s four steps that you want to complete, make it output the first step and see if that’s right. Then, do the second step with the output of the first step and see if that one is right.

Then, add the third step and add the fourth step. Eventually, you’ve got a debug. If debug did one step at a time instead of writing out all four steps down, then seeing if the answer is wrong, you don’t know what happened. If you did do that and you’re like, “I don’t know what happened”, break it down. Comment out the three steps and just start with one. “Did I get that first thing right?”

It might seem slower because sometimes you would get it right the first time in those four steps. In general, you’re not going to get it right. Doing smaller steps is easier to stay within a working program. This is my thoughts on fast feedback.

Not exactly functional programming related but tangential, and still something I’m super interested in. Those are my thoughts. Do it. Fast feedback. As fast as possible. See you all later. Bye.

The post What will increase your programming productivity the most? appeared first on LispCast.

22 May 19:16

We cycled to the local zoo yesterday with the l...

by Ton Zijlstra

We cycled to the local zoo yesterday with the little one. Returning home we noticed that the nesting coots in the garden are just as fascinating.

P1040497 P1040505

22 May 19:16

The Phony Value Exchange


This week, as the GDPR gets closer to implementation, we can expect to hear a lot of noise from digi-weasels here in the US explaining to us why we need to allow wide data collection as a fair "value exchange" for the free access we get to online services.

This argument is total bullshit.

Let's start at the beginning. First, the true part. The web provides us with amazing services and they are essentially all free of cost. I don't think there is any doubt that most of us don't really appreciate the benefits we get from free web services. The duopoly of Google and Facebook provide us with a whole lot of valuable stuff that we pay nothing for. Especially Google. They are entitled to recompense for the amazing services they provide.

And they are well compensated for their efforts. They are two of the most profitable companies on the planet. And essentially all of their profit comes from advertising.

This is no different from how other media, like TV, radio, and magazines, make their money. They provide us with entertainment and information, and in return they are able to reach us by selling advertising space and time to their clients. This is a legitimate value exchange.

Here's where the bullshit comes in. The online ad industry claims that they are entitled to some extra value - the value of knowing every little thing about us. This goes by the benign name of data collection, but what it really is is intrusive surveillance into personal aspects of our lives to which they have no legitimate claim.

Advertising is essential to the economic structure of the web as it is now configured. But tracking and surveillance are not.

We can have online advertising that does not rely on tracking, just as we've had TV, radio, and magazine advertising that did not rely on tracking. But the online ad industry is trying to confuse things.

They are saying the value exchange is this: we'll give you free services, you give us your data. The true value exchange is: they give us free services, we give them the opportunity to reach us with advertising.

The collection, sharing, and sale of personal, private data has no place in the value exchange.

22 May 19:07

OnePlus 6 Review: It’s all about the camera

by Igor Bonifacic
The new OnePlus 6 smartphone

Ever since it released the OnePlus 3 almost two years ago, OnePlus has settled into a comfortable rhythm. Every six months, the company releases a new smartphone that is more technically capable (and expensive) than its last one.

Each new phone has not dramatically changed OnePlus’ value proposition. To date, they’ve all offered impressive internals and a lightweight Android experience at the cost of more premium features like waterproofing and top-notch camera capabilities.

The OnePlus 6 changes that equation: not completely, but enough to make it a completely different beast compared to past OnePlus smartphones.

Notch what you were expecting?

OnePlus 6 notch

The OnePlus 6 features a 6.28-inch screen with an iPhone X-style display notch. By adding a notch, OnePlus was able to achieve an 84 percent screen-to-body ratio. Unlike some other Android devices, the OnePlus 6 includes a relatively small chin bezel. Moreover, compared to the iPhone X, the notch on the OnePlus 6 is relatively small. I’ve never had a strong opinion on display notches, but for those who can’t stand them, I’ll say that the notch on the OnePlus 6 is less intrusive than others I’ve encountered.

What’s more important is that software support for the notch is well-implemented. By default, when the phone is oriented vertically, OxygenOS will adjust the colour of the status bar to match whatever app is currently on-screen. So in the instance of Facebook, for example, the status bar takes on a complementary shade of blue.

Meanwhile, when the phone is oriented horizontally, the screen around the notch is blacked out; there’s no instance in which you’re forced to navigate around the notch to see text or media.

Users also have the option to hide the notch, and OnePlus has included the option to adjust how the notch behaves on a per-app basis, as well.

For those who want to get as much screen real-estate as possible, the OnePlus 6, like the OnePlus 5/5T, includes support for navigation gestures.

OnePlus 6 full phone

Quickly swiping up from the bottom of the display takes the user back to the homescreen, while holding that same gesture halfway up the screen leads to Android’s Overview menu. Swiping up on the display from either the left or right side of the screen leads back one screen.

If there’s an issue with how OnePlus has implemented gestures in Oxygen OS, it’s that in my experience you have to be overly deliberate when using them. Moreover, by enabling gestures, you pass on some of Android’s Oreo more useful button shortcuts. For example, with gestures enabled, there’s no Overview button to double tap to quickly switch between your two most recently used apps.

Once you get past the notch and how it works, the OnePlus 6 features more or less the same display OnePlus has shipped with every new device since the OnePlus 3. It’s not a QHD panel, nor does it support HDR — HDR 10 or Dolby Vision — or a faster refresh rate.

Moreover, when it comes to things like colour accuracy and legibility in direct sunlight, the OnePlus 6’s OLED display is still a step behind displays on competing devices like the Galaxy S9 and iPhone X. All of that’s not to say the screen on the OnePlus 6 is bad (in fact, I think most people will fall in love with just how much screen real-estate the OP6 offers), merely that there are better displays out there at higher price points.

The other major difference between the OnePlus 6 and OnePlus’ past smartphones is a new all-glass design.

According to OnePlus, it went to a glass back for a variety of practical reasons, one of which is that the material is better at allowing radio waves to pass though.

OnePlus provided MobileSyrup with the OnePlus 6 in ‘Mirror Black.’ The phone is also available in ‘Midnight Black’ and ‘Silk White,’ a colour that will be available later in the year. Between its glossy finish and pre-applied screen protector, the Mirror Black OP6 is hard to keep clean.

From what I’ve seen of the Midnight Black and Silk White models, they appear to be less prone to attracting smudges and fingerprints — to my eye, they’re also more handsome. If you plan to buy one of OnePlus’ excellent first-party cases alongside your new OP6, the glass back is a non-issue.

One major disappointment with the OnePlus 6 is that OnePlus didn’t add inductive charging to the phone. If there was ever a time to add wireless charging, this was it; glass backs make integrating the tech easier.

The OnePlus 6 also doesn’t include an official IP water and dust resistance rating. However, according to a OnePlus spokesperson, the phone will survive the occasional splash, including an accidental trip to the toilet bowl. I didn’t test the OP6’s waterproof capabilities, so take the company’s claim as you will.

I’ll also mention here that OnePlus has not added support for microSD expansion. To make up for the fact, OnePlus is, for the first time, offering a 256GB storage option. Also, for what it’s worth, the OP6’s dual SIM tray supports LTE connectivity via both SIM slots — on past OnePlus phones, only the primary SIM slot supported 4G speeds.

There are several other more minor design tweaks. The OP6’s two rear-facing cameras are stacked vertically, instead of horizontally, towards the centre of the device. Additionally, the rear-facing fingerprint sensor has a rectangular, instead of circular shape.

OnePlus 6 edge

Lastly, OnePlus has moved the Alert Slider to the left side of the device. OnePlus is also reverting the Alert Slider’s function back to the way it was in the OnePlus 2. Instead of adjusting Android’s Do Not Disturb settings, it’s now a simple ring, vibrate and silent switch.

In all, I like the design of OnePlus 6 a lot. It’s not the most handsome Android device on the market, but where the OnePlus 5/5T looked too much like the iPhone 7, the OnePlus 6, even borrowing design cues from the iPhone X, feels like it has a design that can stand on its own.

Project Treble to the rescue

Compared to past new OnePlus smartphones, OxygenOS, OnePlus’ Android fork, comes with relatively few new features. The one notable exception is a new Gaming Mode that improves on the Gaming Do Not Disturb mode that OnePlus shipped last year. With OxygenOS 5.1.3, Gaming Mode reduces latency, in addition to preventing notifications from interrupting the experience.

In terms of software, the more important consideration is that the OnePlus 6 is the first OnePlus smartphone to ship with Android Oreo out-of-the-box.

As such, it’s the first OnePlus smartphone required to support Project Treble. In theory, this means the OP6 should get major Android updates faster than past OnePlus devices. In fact, it already looks like the OP6 is on track to get Android P soon after the Pixel 2 and Pixel 2 XL — the OnePlus 6 is one of the third-party devices included in the Android P open beta. We’ll have to see how OnePlus handles Project Treble, but so far things are promising.

Classic OnePlus performance

OnePlus 6 cases

With up to 8GB of RAM, Qualcomm’s flagship Snapdragon 845 processor and fast UFS 2.1 flash storage, the OnePlus 6 is an absolute pleasure to use. Everything, from launching new apps to switching between existing ones, is fast. I didn’t experience any slowdowns during my time with the device.

With Qualcomm’s new X20 LTE modem, I was able to consistently get about 50Mbps download speeds on Fido.

Authentication, via both the rear-facing fingerprint sensor and Face Unlock, was also fast and accurate.

Like the OnePlus 5 and 5T, the OnePlus 6 features a 3,300mAh battery. With moderate use involving, I found the battery able to last a full day. Once it needed a top up, OnePlus’ excellent Dash Charge fast charging solution was able to charge the battery to full in about 45 minutes.

If you’ve used a OnePlus smartphone anytime in the last two years, all of the above will be familiar territory.

A camera that’s finally worth talking about

OnePlus 6 top-down

If the OnePlus 6 sounds a lot like OnePlus’ past phones, with all the same strengths and weaknesses, it is. That is until you get to its camera.

With the OP6, OnePlus has adopted a back-to-basics approach, prioritizing solid components instead of gimmicky tricks to improve camera performance.

To start, the OnePlus 6 includes optical image stabilization (OIS). OIS results in the camera’s shutter to stay open longer, allowing more light to hit its sensor. Only the main sensor is stabilized, but the inclusion of OIS helps improve image quality across the board, especially in low-light situations.

Second, the OnePlus 6’s new 16-megapixel Sony IMX 519 measures in at 1/2.6-inches, making it the same size as the Pixel 2’s main sensor and 19 percent larger than the sensor found on the OnePlus 5 — camera sensors that are physically larger allow for larger individual pixels, and larger pixels collect more light.

Together, the result of all these improvements is not only the best camera system OnePlus has shipped to date, but a camera system that’s actually competitive with Android’s top-tier shooters. In my time with it, the OnePlus 6’s main camera produced incredibly detailed shots, even in less than ideal lighting conditions.

Video performance is similarly improved, largely thanks to the addition of OIS, which helps smooth out footage. The OnePlus can capture 4K video at both 30 frames per second (FPS) and 60FPS, as well as slow-motion video at 240FPS and 480FPS.

Unlike the Galaxy S9, Xperia XZ2 and P20 Pro, the OP6 isn’t capable of capturing slow-motion video at 960FPS. However, the trade-off is that slow-motion capture is a lot more usable on the OP6 than those devices. The OP6’s Sony IMX519 sensor features built-in memory and due to the lower bitrate it’s capturing slow-motion video at, it’s capable of shooting one minute of 480FPS slo-mo video in one go. As a result, you have a lot more leeway when shooting slow-motion video since you can start the camera earlier, stop it later and then trim the footage afterward.

Software-wise, the OP6 includes a couple of new features, including a built-in video editor and new bokeh effects when using the included portrait mode. Later in the year, the company plans to add portrait mode to the front-facing camera. The more substantial improvement is the phone’s light metering software. In my time with the OP6, the phone has almost consistently nailed the exposure of shots.

Of course, the camera is not without its issues: its HDR functionality is not as robust the Pixel 2’s, with particularly challenging scenes causing it to blow out highlights, and it doesn’t include all the nifty features that come included with the P20 Pro. However, for the first time, it doesn’t feel like less than stellar camera quality is the trade-off you have to make when buying a new OnePlus smartphone.

The post OnePlus 6 Review: It’s all about the camera appeared first on MobileSyrup.

21 May 04:05

Pi-hole on Raspberry Pi

by Volker Weber


Yesterday I finally got around to install Pi-hole. Jens asked me how Homebridge was doing and I remembered that yes, I have a Raspberry Pi chugging along without giving me any headaches. Time to SSH into the little machine and upgrade all the software as well as installing Pi-hole. Which in itself is pretty painless. If you use IPv6, I suggest you first set your Fritzbox to always assign ULAs, because FD00:: is the prefix you want for the local address of your Pi-hole. I told Pi-hole to resolv addresses via my Fritzbox, so that DNS in my local network continues to work.

After you installed it you instruct your router/Fritzbox to announce your new DNS forwarder to all clients via DHCP. Each connected device will resolv via Pi-hole, which resolves via Fritzbox, which in turn resolves via whatever you set as your DNS server on the Internet.

Why did I do this? Pi-hole filters out all requests for ad servers and tracking services. Which means that I finally can read Spiegel Online in Firefox without the site telling me I need to remove my ad blocker which I did not even have in Firefox. But since the site discovered that it could not track me, it denied access. All is good now since the code that checks for ad blocking cannot even load.

This is filtering at the net level and can break things. This is not a beginner's practice.

Anyway, brilliant. We just got ahead in the rat race. For now ...


If you want to run your Raspberry Pi headless, that is without screen, keyboard and mouse, you need commandline access via SSH. A SSH client is pre-installed on a Mac. On Windows, make sure you have the optional OpenSSH client installed.


More >

21 May 04:04

Fix that brand

by Volker Weber

1 5cQWDsAA2hjmO08AEfDBng
Photo Sugru

Sugru’s failure to reach the mainstream –and its subsequent sale to Tesa this week– shows how crucial the investment in branding and marketing is in order for impact driven companies reach scale.

More >

21 May 04:00

Staying focused won't make you a productive programmer

Your manager keeps telling you that you’re not getting enough done. So you decide to become more focused, since as everyone knows, to be a productive programmer you need to stay focused. Deep-diving into TV Tropes, chatting with your friends, or reading up on that fancy new web framework might be fun, often even educational, but they won’t get that feature you’re working on out the door.

So you get noise canceling headphones, and only read your email once a day, and use the Pomodoro technique, and became laser-focused on your code—but still, you’re not productive enough. Your colleague across the hall doesn’t write code faster than you, and yet somehow they make more of an impact, they get things more done. You know it, and your manager knows it.


Because staying focused is not enough to make you productive. In fact, it’s often the other way around: staying focused is a side-effect of what truly makes you productive.

  • To understand why staying focused isn’t enough, we’ll take a detour from programming and go visit my past self: a young soldier being escorted into a military jail.
  • Then, we’ll apply the lesson we learned and see how understanding your goals is key to becoming more productive, and how your goals can help you stay focused.

A short visit to a military jail

Imagine a yard full of dirty gravel, and mixed in with the gravel are tiny twigs, trash, and the like. How long could you spend crawling around looking for this debris before you’d get bored? How long could you stay focused?

Long ago I lived in Israel, and as a Jewish citizen I was required to serve three years in the military. For a variety of reasons, personal and political, I had no interest in becoming a soldier, and so I attempted to avoid conscription by getting a medical discharge for mental health reasons. While on the base I was part of a transients’ unit on the military base: we would clean bathrooms and the like while awaiting processing.

As our story unfolds, I was having a very bad day. My attempt to get a discharge was failing, as the military psychiatrist had decided there was nothing wrong me. And to make things worse, the sergeant who ran the unit wanted me to go off and do some work on the base, and I couldn’t deal with it.

So I said “no"—which to say, I refused orders, serious business in the military. The sergeant organized a quick trial, and the officer in charge sentenced me to a day in the on-base jail. Perhaps for entertainment, perhaps to enforce the importance of obeying orders, while I was in the jail my guards ordered me to search for little bits of tiny debris that were mixed in the jailyard’s gravel.

And so I spent quite a while, crawling around on my knees in the rain, working hard at a pointless task. The guards were impressed, and eventually they felt bad enough to give me an umbrella to keep the rain off.

The moral of the story

I started this episode by refusing to work, and refusing work that had some purpose (washing dishes, or cleaning a bathroom). I ended by working hard doing something that was a complete waste of time.

Both choices were good ones, because in both cases I was working towards my goals:

  1. My broadest goal was getting kicked out of the military. Cooperating was doing me no favors: spending some time in jail for refusing orders demonstrated I was not going to be a good soldier.
  2. My secondary goal was minimizing the amount of time I spent in jail. I had met a soldier on base who had spent his time in jail getting in trouble with his guards, so he’d been sentenced to even more time. He ended up spending months on a military prison base. I wanted to be a model prisoner, so I could get out of jail as quickly as possible.

Staying focused and avoiding distractions is all fine and good, so long as the work you’re doing actually helps you achieve your goals. If it’s not, you’re staying focused on the wrong thing. I could have stayed focused by following orders—and that would have been the wrong way to achieve my goal of getting kicked out of the military.

Plus, knowing your goals can help you stay focused. If you don’t care about your task, then you’ll have a hard time focusing. But once you do understand why you’re doing what you do, you’ll have an easier time staying on task, and you’ll have an easier time distinguishing between necessary subtasks and distracting digressions. And that’s why I was able to enthusiastically clean debris from gravel.

This then is the key to achieving your goals, to productivity, and to staying focused: understanding your goals, and then working towards them as best you can.

Applying your goals to staying focused

So how do you use goals to stayed focused?

  1. Figure out the goals for your task.
  2. Strengthen your motivation.
  3. Judge each part of your work based on your goals.

1. Discovering your goals

Start with the big picture: why are you working this job? Your goals might include:

  • Money: Getting paid so you can buy food and shelter.
  • Social pressure: You want your coworkers and boss to think well of you.
  • Organizational goals: You believe in what the company is doing.
  • A sense of obligation: You want to help your customers or users.
  • Building and playing: Solving a hard problem is fun.
  • Curiosity: Learning is fun too.

Then focus down on your particular task: why is this task necessary? It may be that to answer this question you’ll need do more research, talking to the product owner who requested a feature, or the user who reported a bug. This research will, as an added bonus, also help you solve the problem more effectively.

Combine all of these and you will get a list of goals that applies to your particular task. For example, let’s say you’re working on a bug in a flight search engine. Your goals might be:

  1. Money: I work to make money.
  2. Organizational goal: I work here because I think helping people find cheap, convenient flights is worth doing.
  3. Task goal: This bug should be fixed because it prevents users from finding the most convenient flight on certain popular routes.
  4. Fun: This bug involves a challenging C++ problem I enjoy debugging.

2. Strengthening your motivation

Keeping your goals in mind will help you avoid distractions, and the more goals you’re meeting, and the more your various goals point in the same direction, the better you’ll do. If you have weak or contradictory goals then you can try different solutions:

  • If you work for a company whose goals don’t mean much to you, then you’ll have a harder time focusing: consider finding a new job where you’re doing something you care more about.
  • If after enough research you’ve decided your task is pointless, you can either try to push back (mark the bug as WONTFIX, go talk to the product manager), try to add an additional motivation (is this a good opportunity to learn something new?), or just live with the fact that it’ll take you longer to implement.

3. Judging your work

Understanding your goals will not only help you avoid small distractions (noise, TV Tropes), but bigger distractions as well: digressions, seemingly useful tasks that shouldn’t actually be worked on. Specifically, as you go about solving your task you can use your goals to judge whether a new potential subtask is worth doing.

Going back to the example above, imagine you encounter some interesting C++ language feature while working on it can be tempting to dive in. But judged by the four goals it will only serve the fourth goals, having fun, and likely won’t further your other goals. So if the bug is urgent then you should probably wait until it’s fixed to play around.

On the other hand, if you’re working on a pointless feature, your sole goals might be "keep my manager happy so I can keep getting paid.” If you have two days to do the task, and it’ll only take two hours to implement it, spending some time getting “distracted” learning a technical skill might help with a different goal: switching to a more interesting position or job.

Start with your goals

Once you know goals, you can actually know what it takes to be productive, because you’ll know what you’re working towards. Once you know your goals, you can start thinking about how to avoid distractions because you’ll know you’re doing work that’s worth doing.

Before you start a task, ask yourself: what are my goals? And don’t start coding until you have an answer.

Is your job taking way all your personal time and freedom? You can succeed as a software engineer without working crazy hours.

21 May 03:56

"I did not mean that Conservatives are generally stupid; I meant that stupid persons are generally..."

“I did not mean that Conservatives are generally stupid; I meant that stupid persons are...
19 May 23:24

Tangerine UI problems

I've been a big fan of Tangerine for a while, it's a bank that doesn't charge fees and does what I need to do. They used to have a great app and website and then it all went a bit wrong.

It's now a HTML app for Desktop and mobile. This isn't the fault of the tools used, but there's some terrible choices in the app across both.


On my phone I get the notification number on my app screen. So, I open up the app and I get this little message:

But, you can't click on it. It's not a link, to find your notifications you have to go to Profile & Settings, scroll down to Inbox and then you can access the notifications. If notifications that are that important, how about you put a way to access them somewhere obvious.

Here's a notification:


When you open the app, a full 1/3 of the screen is an advert:

Let's dismiss that:

Oh come on Tangerine. I'm not logging into my phone to get "Insights", otherwise known as "Advertising". Stop taking up space with this crap.


Pop quiz. You are cancelling this transaction. What does the Cancel button do?

The Cancel button cancels the cancelling. The highlighted option Confirm actually continues the cancelling. You know what would be clearer? Yes or No.


Supposing I wanted to see my transactions on an account. There's about one half of the screen to scroll down. The black text Posted Transactions doesn't actually do anything. The transaction list is an infinite scroll. So instead they've put everything at the top of the page, such as Search, Transaction Breakdown and so on.

Then there's another title Transactions. Do you get the idea that in those 5 boxes saying Transactions, this might be about...


The overall feel of the app is that its full of spinners, far too cluttered and just to confusing. Hey not everything I've built is perfect, but even I can spot some real problems with this app. I pretty sure Tangerine can do better than this.

And yes, I'm writing this while drinking a beer I recently bought, as shown on my transaction page.

I'd still recommend Tangerine and their credit card. If you want to open an account, use my key: 20790922S1 to give get yourself a bonus.

19 May 23:24

Privacy Policy

by Thejesh GN

Privacy Policy is updated and you can see it here. I will update it as and when required1. This site is not big enough to have GDPR, but I think GDPR is a good thing to happen to web. I am trying to follow it as much as possible.

There is also Terms and Conditions page if you like to have a look.

  1. Based on the services we use
19 May 23:24

SotD: The Longships

This is off Enya’s Watermark album, which sold a zillion copies and put Orinoco Flow on a few people’s can-never-hear again list because every radio in the freaking world played it all the time in 1988-89. Even if you’re one of those, there are lots of other things on this record to like, and this one I like especially.

Watermark by Enya

Now, Enya would never ever let a rough edge or a raw tone creep into her creations, and the artifacts on her recordings could never ever be performed live because they are the result of prodigious over-tracking and other studio wizardry; although perhaps one should say witchery?

You may like this record but unless you’re an audiophile with speakers that can get down below 30Hz, you’ve never actually heard it properly. You’ll notice a big bass-drum that punctuates the song, and it is superbly recorded. There are relatively few speakers in the world that can really come close to that drum, and you know, it’s a perfectly fine song even on ordinary songs. But if you ever happen to be in the company of speakers that can do the trick, see if you can cue up The Longships; the huge soft thunder of the drumbeats complete the song in a way I lack words to describe.

This is part of the Song of the Day series (background).


Spotify playlist. This tune on Spotify, iTunes, Amazon. There’s no live video; no great loss for reasons covered above.

19 May 23:24


@stoweboyd: I have been using NotePlan as my ‘work processing’ tool, built on a great...
19 May 23:23

"Love doesn’t just sit there, like a stone, it has to be made, like bread; remade all the time, made..."

“Love doesn’t just sit there, like a stone, it has to be made, like bread; remade all the...
19 May 23:23

The lady with the yoga mat heading to Whole Foods is not destroying America.

Jordan Weissman evicerates Matthew Stewart’s The 9.9 Percent Is the New American...
19 May 23:22

Reality Redrawn Opens At The Tech

by Katharina Borchert

The Tech Museum of Innovation in San Jose was filled on Thursday with visitors experiencing new takes on the issue of fake news by artists using mixed reality, card games and even scratch and sniff cards. These installations were the results of Mozilla’ Reality Redrawn challenge. We launched the competition last December to make the power of misinformation and its potential impacts visible and visceral. Winners were announced in February.

One contributor, Australian artist Sutu was previously commissioned by Marvel and Google to create Tilt Brush Virtual Reality paintings and was the feature subject of the 2014 ABC documentary, ‘Cyber Dreaming’. For Breaking News at the Tech, he used AR animation to show the reconstruction of an article in real time and illustrate the thought process behind creating a fake news story. Using the AR app EyeJack, you can see the front page of the New York Times come to life with animation and sound as the stories are deconstructed and multiple viewpoints are presented simultaneously:

Breaking News, by Sutu
(Photography by Nick Leoni)

Visitors on opening night of this limited run exhibition also enjoyed conversation on stage around the topic from Marketplace Tech Host Molly Wood, Wired Contributing Editor Fred Vogelstein, BBC North America Technology Correspondent Dave Lee and our own Fellow on Media, Misinformation and Trust, Renée DiResta. There was a powerful message by video from the Miami Herald’s reporter Alex Harris. She found herself the target of a misinformation campaign while reporting on the tragedy at Marjory Stoneman Douglas High School in Parkland, Florida.

Reality Redrawn is open until June 2 at the Tech and admission is included with entry to the museum. Follow the link to find out more about ticket prices for the Tech.”>link to find out more about ticket prices for the Tech. If you’re visiting the Bay Area soon I hope you’ll make time to see how it’s possible to make some sense of the strange journeys our minds take when attacked by fake news and other misinformation.

The post Reality Redrawn Opens At The Tech appeared first on The Mozilla Blog.

19 May 23:22

The Implosion Chronicles

by Ken Ohrn
mkalus shared this story from Price Tags.

The NPA, a Vancouver civic party, is not doing well early in the run towards the region’s October 2018 election.  What with public reviews of mayoral candidate Glen Chernen, botched meeting notices and really bad campaign messaging.

BTW, he likes some bike lanes, so maybe there’s a glimmer of hope. But I guess this could change.

Let’s start with Mike Klassen, former NPA council candidate, reacting to Chernen’s ascendancy with decidedly unflattering terms:

Catch up on experience and qualifications with this Chernen bio, compiled from public sources, with thanks to 2018CivicElxnWatcher:

Jen St. Denis in StarMetro Vancouver looks for a platform or ideology in mayoral hopeful Glen (Muscle Cars) Chernen. “Something is rotten” will have to do for now, I suppose, along with:

Glen Chernen is convinced something is rotten at city hall and believes the only way to fix it is to become mayor.

The Dunbar resident, who says he hasn’t held a conventional job in 20 years but makes a living managing his own investments, has become increasingly absorbed with examining city land deals and what he believes are conflicts of interest. He now spends nearly all his time doing this, he told StarMetro in an interview on Wednesday.

“Somebody needs to go in there and start operating the city to the benefit of the public,” Chernen said.

From our Flimsy Organization department, the reasoning behind the NPA having postponed their mayoral candidate nomination meeting:

And finally, campaign messaging:   good old MVGA — yes, a Trump / Ford message, devoid of any content other than boosterism. Perfect for a mayoral hopeful who is, so far, devoid of ideology.

19 May 23:21

Create Code Metrics with cloc

by hrbrmstr

The cloc Perl script (yes, Perl!) by Al Danial ( has been one of the go-to tools for generating code metrics. Given a single file, directory tree, archive, or git repo, cloc can speedily give you metrics on the count of blank lines, comment lines, and physical lines of source code in a vast array of programming languages.

I don’t remember the full context but someone in the R community asked about about this type of functionality and I had tossed together a small script-turned-package to thinly wrap the Perl cloc utility. Said package was and is unimaginatively named cloc🔗. Thanks to some collaborative input from @ma_salmon, the package gained more features. Recently I added the ability to process R markdown (Rmd) files (i.e. only count lines in code chunks) to the main cloc Perl script and was performing some general cleanup when the idea to create some RStudio addins hit me.

cloc Basics

As noted, you can cloc just about anything. Here’s some metrics for dplyr::group_by:

## # A tibble: 1 x 10
##   source language file_count file_count_pct   loc loc_pct blank_lines blank_line_pct comment_lines comment_line_pct
## 1 group… R                 1             1.    44      1.          13             1.           110               1.

and, here’s a similar set of metrics for the whole dplyr package:

## # A tibble: 7 x 11
##   source language file_count file_count_pct   loc loc_pct blank_lines blank_line_pct comment_lines comment_line_pct
## 1 dplyr… R               148        0.454   13216 0.442          2671       0.380             3876          0.673  
## 2 dplyr… C/C++ H…        125        0.383    6687 0.223          1836       0.261              267          0.0464 
## 3 dplyr… C++              33        0.101    4724 0.158           915       0.130              336          0.0583 
## 4 dplyr… HTML             11        0.0337   3602 0.120           367       0.0522              11          0.00191
## 5 dplyr… Markdown          2        0.00613  1251 0.0418          619       0.0880               0          0.     
## 6 dplyr… Rmd               6        0.0184    421 0.0141          622       0.0884            1270          0.220  
## 7 dplyr… C                 1        0.00307    30 0.00100           7       0.000995             0          0.     
## # ... with 1 more variable: pkg 

We can also measure (in bulk) from afar, such as the measuring the dplyr git repo:

## # A tibble: 12 x 10
##    source    language     file_count file_count_pct   loc  loc_pct blank_lines blank_line_pct comment_lines
##  1 dplyr.git HTML                108        0.236   21467 0.335           3829       0.270             1114
##  2 dplyr.git R                   156        0.341   13648 0.213           2682       0.189             3736
##  3 dplyr.git Markdown             12        0.0263  10100 0.158           3012       0.212                0
##  4 dplyr.git C/C++ Header        126        0.276    6891 0.107           1883       0.133              271
##  5 dplyr.git CSS                   2        0.00438  5684 0.0887          1009       0.0711              39
##  6 dplyr.git C++                  33        0.0722   5267 0.0821          1056       0.0744             393
##  7 dplyr.git Rmd                   7        0.0153    447 0.00697          647       0.0456            1309
##  8 dplyr.git XML                   1        0.00219   291 0.00454            0       0.                   0
##  9 dplyr.git YAML                  6        0.0131    212 0.00331           35       0.00247             12
## 10 dplyr.git JavaScript            2        0.00438    44 0.000686          10       0.000705             4
## 11 dplyr.git Bourne Shell          3        0.00656    34 0.000530          15       0.00106             10
## 12 dplyr.git C                     1        0.00219    30 0.000468           7       0.000493             0
## # ... with 1 more variable: comment_line_pct

All in on Addins

The Rmd functionality made me realize that some interactive capabilities might be handy, so I threw together three of them.

Two of them extraction of code chunks from Rmd documents. One uses cloc other uses knitr::purl() (h/t @yoniceedee). The knitr one adds in some very nice functionality if you want to preserve chunk options and have “eval=FALSE” chunks commented out.

The final one will gather up code metrics for all the sources in an active project.


If you’d like additional features or want to contribute, give ( a visit and drop an issue or PR.

19 May 05:40

Facebook admits hundreds of apps vacuumed up user data


Mathew Ingram, Columbia Journalism Review, May 21, 2018


The other shoe has dropped. Facebook "announced on Monday that it has found at least 200 other apps that had access to user data in the same way that the app behind the infamous Cambridge Analytica leak did." You may also have read reports that Cambridge Analytica went bankrupt, but there was no real penalty as "the key players behind it have reportedly created a similar company called Emerdata." Meanwhile, Equifax made money from its data breach last year. The GDPR notwithstanding, the surveillance society is already well-entrenched (nobody asked you and nobody cares). Where is it heading? See this video from Google for what the Verge says is " a stunningly ambitious and unsettling look at how some at the company envision using that information in the future."

Web: [Direct Link] [This Post]
19 May 05:40

Apotheken in Deutschland

by Andrea

In diesem YouTube-Video wird in 3 Minuten 30 erklärt, warum ich nicht bei Versandapotheken bestelle – weder rezeptpflichtige noch rezeptfreie Medikamente. Ich finde es wichtig, dass die Apotheken vor Ort bestehen bleiben, und dazu müssen sie genug Kunden und genug Umsatz haben.

In Not – die Apotheken in Deutschland. Das Video wurde von den beiden Apothekerinnen Pharmama (Schweiz) und Ann-Katrin Kossendey-Koch (Deutschland) erstellt.

Ich möchte nicht dazu auffordern, die verlinkte Petition zu unterzeichnen (zumal fraglich ist, ob sie etwas bringt), sondern zum Nachdenken und bewussten Einkaufen von Medikamenten.

19 May 05:40

A couple of musings on democracy

by Chris Corrigan

Two links in the feed this morning had me thinking about democracy, participation and local governance.

Duncan Green provides a review of the new book How to Rig an Election, by Nic Cheeseman and Brian Klaas. There are many ways to hack a democracy, including gerrymandering electoral districts, influencing or straight out hacking of polls, manipulating voter registration and making it difficult to vote. The authors in this new book point out an important truth:

Leaders are most likely to try and stay in power when they believe that their presence is essential to maintain political stability; in cases when they are less committed to plural politics; when they have engaged in high-level corruption and/or human rights abuses; when they lack trust in rival leaders and political institutions; when they have been in power for a longer period of time; and when they control geostrategically important states with natural resources, effective security forces, weak institutions and high levels of distrust.

Threats to the voting system are global, affecting every country and every level of government. Many of the characteristics of these governments and leaders are present and increasing in Canada and we have already seen election irregularities over the past decade in Canada, including, targeted misinformation campaigns, allegations of identity theft, and cyber security threats.

But democracy is not simply about voting. While the voting process is important, it is what happens in-between elections that shows the mark of a mature democracy. How are you involved in your local governments? Do you have the ability to participate in decisions beyond sending in petitions, protesting or writing to your representatives? Do your governments conduct “sell and tell” sessions disguised as consultation? Does your participation have a meaningful impact?

Most of us simply move from election to election without much participation at all in governance and citizen participation.  This lack of involvement leads to apathy and makes it easier for elections to be manipulated and for government policy making to be overtaken by other interests.  Witness last week’s agreement between Nestle and Kinder Morgan to move the proposed path of the TransMountain pipeline so that it wouldn’t pose a risk to an aquifer that Nestle uses to produce bottled water.  Kinder Morgan was accommodating of the request, but the Coldwater First Nation, who had the same request with the same concerns that its community water system would be imperilled by the pipeline received the cold shoulder. Who is making policy? Where are the levels of government that are supposed to be protecting the rights of citizens? The decision making process is too opaque, and not enough people know or care, so decisions get made every single day that affect citizens’ rights in favour of commercial interests. In this case, neither company is even Canadian and yet they are divvying up local aquifers, while actual local governments can’t get any attention at all, on exactly the same issue.

The essence of democracy is not voting, it is participation.  To leave you with hope, take some time to read about the work being done in Cali, Colombia, and Bologna, Italy with respect to inclusion of citizens in urban planning, deliberation and experimentation as they work to build civic culture, belonging and identity.  These projects are easy to design and implement but they require effort and they require local councils to take an interest in what citizens have to say and to provide them with the tools to build the communities they want to live in. Such participation in the long term increases voter participation, knowledge of governance processes and collective responsibility for the health of democracies.

19 May 05:40

Sharing Control

by Eugene Wallingford

Sidney Lumet, in his book Making Movies, writes:

Arthur Miller's first, and I think, only novel, Focus, was, in my opinion, every bit as good as his first produced play, All My Sons. I once asked him why, if he was equally talented in both forms, he chose to write plays. Why would he give up the total control of the creative process that a novel provides to write instead for communal control, where a play would first go into the hands of a director and then pass into the hands of a cast, set designer, producer, and so forth? His answer was touching. He loved seeing what his work evoked in others. The result could contain revelations, feelings, and ideas that he never knew existed when he wrote the play. That's what he hoped for.

Writing software for people to use is something quite different from writing a play for audiences to watch, but this paragraph brought to mind experiences I had as a grad student and new faculty member. As a part of my doctoral work, I implemented a expert system shells for a couple of problem-solving styles. Experts and grad students in domains such as chemical engineering, civil engineering, education, manufacturing, and tax accounting used these shells to build expert systems in their domains. I often found myself in the lab with these folks as they used my tools. I learned a lot by watching them and discussing with them the languages implemented in the tools. Their comments and ideas sometimes changed how I thought about the languages and tools, and I was able to fold some of these changes back into the systems.

Software design can be communal, too. This is, of course, one of the cornerstones of agile software development. Giving up control can help us write better software, but it can also be a source of the kind of pleasure I imagine Simon got from working to bring his plays to life on stage.

19 May 05:39

The Developers Union

Some of the press coverage about The Developers Union uses words like “angry” and “fed up.” These aren’t accurate characterizations at all. Nobody’s mad here!

But here‘s the deal: Apple controls the App Store and its economics. The system could be set up better to support high-quality apps, by indies, that last for years.

Apple doesn’t have to, of course. But we can ask! It’s totally okay to ask, so we are.

We think that an important first step would be a standardized, App-Store-supported way of offering free trials. (And where, once purchased, Family Sharing works.)

Trial versions have worked great for years for indie Mac developers, before the App Store, and we think it would benefit indies on the iOS and Mac App Stores.

And the platform would get better — and more sustainable — apps. Everyone wins!

If you agree, you can sign up. Add your name. Add your app.

I realize you might be worried about doing a thing that could upset powerful people inside Apple. I strongly doubt that that worry is actually well-founded — but, then again, that’s part of why this is a big list.

* * *

I should note that I’m not doing this as part of Omni. I’m not even doing it for my side projects — they’re all free, and it’s quite possible that none of them will ever appear on any App Store at all.

Instead, I’m thinking of my friends, of developers I admire, of up-and-coming developers I haven’t even heard of yet. I — quite selfishly! — want them to thrive. I want to see what great stuff they could make. I want everybody to have the opportunity I’ve had.

I’ve been lucky, and I’ve done well — and my experience should not be rare.

19 May 05:39

SotD: Walk Away

Way back in the Songs of the Day, in February I wrote about a Joe Walsh tune and added “If I keep doing this, he’ll get a rocker into Song of the Day.” I have, and now he has: Seems to me / You don’t want to talk about it / Seems to me / You just turn your pretty head and walk away. Great stuff.

You know, there was some bad James Gang karma back in the day. When I was sort of in the biz, as the resident house manager for all the rock concerts at a Canadian University, I’d talk to roadies and there was this epithet: “James Gang Roadie”. It was a bad thing to say to a practitioner of the trade.

James Gang

But then earlier this week, a friend at work told me that he’d been to the current Eagles tour, good seats, and I asked “Is Joe Walsh still with the band?” and he said yes, and he was the liveliest, most entertaining member. Say what you will about Joe, he’s been playing a lot of good music for a lot of years.

I have another funny story about this song. Back sometime in the Seventies, in connection with that University gig, I stage-managed our first-ever punk-rock show, a Canadian band called Teenage Head. I was fairly astonished when they opened up with Walk Away, but I’ve been permanently in love with punk ever since that night.

This is part of the Song of the Day series (background).


Spotify playlist. This tune on Amazon, iTunes, Spotify. Here’s a cheesy but musically fine video capture. Here’s a bonus: a much older Joe Walsh and band having fun with Funk #49.

19 May 05:39

A week with the Oculus Go VR headset

by John

Facebook just released their first standalone VR headset, the Oculus Go. It doesn’t require a computer connection (or a smartphone installed in the headset) and is fully self-contained aside from using a smartphone to do the initial set up. It comes in 32gb or 64gb internal memory options (with no expandability possible).

I’ve used countless Google Cardboard (and similar) headsets that use a smartphone as the display (which have felt more gimicky than useful or compelling) and I’ve had many opportunities to try out the bigger, full room size VR set ups before but was never compelled to get my own.

The reason was mostly cost. Aside from required the head mounted display (HMD), you also needed a high end gaming PC to run the software, a lot of room to flail around play and honestly, I simply wasn’t impressed with the state of the art of the displays inside the HMD to justify the cost of entry. I also wasn’t sure the content was there to justify them unless I was actively gaming or developing for the platform.

What made the Go compelling to me was that it was truly standalone (it’s basically a mid-range Android device built into the HMD), it’s inexpensive ($199US for a 32gb model) and seemed built for content consumption rather than strictly gaming. In particular, I wanted a better way to experience the 360 photos and videos I’ve been shooting with various cameras and my drone. Being able to shoot a 360 panorama from up high with my drone and then being able to experience that output in a truly immersive way (using the Go) was worth the price of admission alone.

What surprised me though, was how comfortable it is to wear and how good it sounds and looks. So much so that I wanted to try watching an entire movie in VR. I’ve actually watched entire movies inside the headset now and once you get settled in, found it to be very comfortable and not unlike going to the theatre. It can be a little tricky reaching for and taking a drink while wearing the headset though. I also found it a little strange to be sitting on my couch with my cat curled up beside me but couldn’t see her in VR when I looked over at her while watching a movie.

A nice feature that I also wasn’t expecting is that the Go automagically discovered my media server on my wifi network and let me view any photos or video I had stored on it. I could also share directly from my iPhone, view media on Facebook and just about any website via the built in browser. Youtube has some great 360 content that streams really well via the fullscreen browser. You can also run the Plex server app on your computer to share that content directly to the Go via wifi. I’ve also stored some of my favourite content on the device itself by connecting directly to my MacBook and browsing the file system using Android File Transfer which is also the easiest way to get screenshots and captured video off the Go.

The media viewers (first and third party) all have multiple viewing methods where you can watch 2D content in a traditional home theatre (with a giant screen), a large, empty movie theatre, on the moon or simply in a black void without any other distractions. There are also media viewing apps where you can watch the same content with a friend (both via your own VR headset). Netflix also has an app so you can binge your favourite shows too.

The Go has surprisingly great spatial audio which really helps with the immersive experience.

What’s in the box?

Along with the HMD, you also get a bluetooth controller (and AA battery), a micro-usb charge cable and an extender to make it easier to wear glasses while wearing the Go. I’ve been using the Go daily and seem to get about 2 hours of battery life but also have used it while charging. The controller’s battery seems to have great battery life and is still at around 60% after a week of use.

I’m just starting to wade into some of the gaming content and so far it’s been hit and miss but will only get better as more developers make their content available for the Go.

The World War II flight sim, Overflight was on sale and is pretty fun to play.

I also really enjoyed Bait! which is a pretty relaxing fishing sim.

Unfortunately, the screen capture controls aren’t the easiest to use and some apps don’t seem to let you capture their visuals (and no sound with the video capture) – it would be great to have a second screen streaming option (you can live stream a low resolution version to Facebook but it’s delayed) or even capture the full 360 experince to a local video file…I realize it may be tricky to stream all that data to a file but hopefully it will get better (and include sound) in a future update.

You can also pair a bluetooth controller to the Go to play some games. In particular, the Oculus Arcade app won’t even launch unless you have a paired (gaming) controller connected. But once I did, it was a very fun way to play some old school retro games on a virtual arcade cabinet in VR…you can even hear and see the joystick and pushbuttons being pressed when you’re playing a game.

The HMD has a face sensor and has a habit of turning itself on if the strap gets too close (triggering the sensor)…like when you’re putting it away. Fortunately, 3D printing to the rescue with this combination lens cover and controller holder available on Thingiverse

The Go seems to hit the sweet spot between cardboard/smartphone VR headsets and much more expensive rigs without sacrificing much content wise. I suspect it will be very popular when it’s more widely available and bring more people (like me) into the VR world.

I ordered my 32gb model directly from Oculus and it was $269 Cdn all in shipped via free UPS (ground shipping that took a week to get to me). It’s also available on and in store at US Best Buys with more outlets coming soon. As of this writing it’s not available at retail in Canada.

The post A week with the Oculus Go VR headset appeared first on

19 May 05:38

School shootings — how could things change?

by Josh Bernoff

So, a 17-year-old shot ten people in a school in Texas. Liberals for gun control are saying the same thing as before about banning assault weapons. Nothing is different, so nothing will change. Donald Trump is saying what he said last time about background checks, no guns until age 21, and arming teachers. Nothing is … Continued

The post School shootings — how could things change? appeared first on without bullshit.

19 May 05:38

Google Play Music Subscribers To Get YouTube Premium Access for Free

by Rajesh Pandey
Are you an existing Google Play Music subscriber and confused about the launch of the upcoming YouTube Music and YouTube Premium launch as to what it would mean for your existing subscription? Continue reading →
19 May 05:36

Google reportedly making AR headset with Qualcomm chips

by Bradly Shankar
Google HQ

Google is reportedly developing an augmented reality headset powered by a Qualcomm chip, according to documents obtained by Winfuture.

The German tech site reports that the headset is in the early stages of development with Taiwanese computer maker Quanta.

The headset, which is said to be codenamed the ‘Google A65,’ is reportedly similar to Microsoft’s HoloLens mixed reality device.

In fact, Winfuture reports that the A65 will use Qualcomm’s QSC603 four-core chips, which are also expected to be incorporated into Microsoft’s next iteration of the HoloLens. The A65 is similarly intended to be self-contained, rather than tethered to another device.

However, the A65 is apparently still in the prototype stage, meaning there isn’t a release window set for it yet.

The A65 wouldn’t be Google’s first AR headset, as the tech giant has also had its Google Glass device on the market since 2013. However, the device drew significant criticism for a variety of reasons, including privacy concerns, price and a lack of features. Even Google executives agreed that there were many shortcomings to the device.

Should the A65 report pan out, it will be interesting to see how Google approaches augmented reality this time around.

Source: Winfuture

The post Google reportedly making AR headset with Qualcomm chips appeared first on MobileSyrup.

19 May 05:34

What Alberta doesn’t understand about B.C. in the Trans Mountain dispute - The Globe and Mail

mkalus shared this story .

Regardless of how the great Trans Mountain pipeline dispute is finally resolved, regardless of which side wins, the path to a final outcome will be forever marked by the bitterness and recriminations that the project created.

There seems little question now that relations between British Columbia and Alberta will fundamentally change, at least for a while. If for some reason the pipeline was not to get built, the war between the two provinces would drag on for years.

Premier Jason Kenney, were that scenario to arise in a year’s time, would stoke anti-B.C. anger inside his province to unforeseen heights. The counter-resentment it would cause is unimaginable. The crisis it would create for the country is difficult to overstate.

Story continues below advertisement

This week, the temperature in the dispute was ratcheted up a notch. The Alberta government introduced Bill 12 – the benign-sounding Preserving Canada’s Economic Prosperity Act – which was another shot across the bow of the B.C. government. Under the legislation, Alberta could effectively turn off the gas and oil taps to B.C., creating untold economic havoc.

The B.C. government said it was unconstitutional. The Alberta government said: Get stuffed.

Meantime, Ottawa announced that it was prepared to take a financial stake in the pipeline, if nothing else to make the troubled project more attractive to a buyer should Kinder Morgan decide to cut its losses and sell. In announcing the move, Finance Minister Bill Morneau had harsh words for B.C. Premier John Horgan, whom he accused of essentially holding the project hostage.

Meantime, back in B.C. …

While polls indicate that a majority of residents believe the pipeline should be built, a majority are equally worried about the impact a spill could have, about the risk the province is taking on. They also appreciate the impassioned fight Mr. Horgan has mounted in defence of those concerned about a catastrophic spill.

It is a resistance that was first enunciated by former B.C. premier Christy Clark, in her five conditions for pipeline development. Those conditions changed many things.

People in Alberta can laugh at the Left Coast, and deride the tree huggers and the café socialists loitering in coffee shops that dot the Vancouver landscape, but refusing to understand the environmental sensibilities of your neighbour isn’t helpful.

Story continues below advertisement

Story continues below advertisement

I dare say Calgary Mayor Naheed Nenshi, who called Mr. Horgan one of the worst politicians in Canada, wouldn’t be thrilled about the prospect of double-hulled barges on the Bow River transporting bitumen. In fact, no one in Calgary would, including the suits in the oil and gas towers downtown.

I realize that’s a fabulous scenario, but it does drive home the point that Alberta is assuming zero risk here. None. It’s furious at a Premier who is sticking up for his province, which is ironic. As this debate has raged, Alberta politicians and provincial commentators have regularly summoned the name of the late, great Peter Lougheed, the former premier who once famously curtailed the supply of oil to the East in response to the infamous National Energy Program.

What was Mr. Lougheed doing? He was sticking up for his province.

I understand there are differences. I understand that Mr. Horgan is trying to exert control over an area that is federal jurisdiction. But at the end of the day, he is trying to do what he thinks is in the best interests of his province. I don’t necessarily agree with his tactics, but I appreciate his willingness to go to battle for his cause, in the face of a torrent of threats and abuse.

I‘ve said before, I think this pipeline should be built. I also think it should be the last. I still believe that somehow, some way, it will get constructed. But no one should underestimate the damage this process will have done to relations between two provinces that once considered themselves friends.

I’m sure some will say, after it’s all over, all is fair in love and war. That is not the case here. The bad feelings this controversy has created will not dissipate once the oil starts flowing. Not a chance.

Story continues below advertisement

It feels like there’s something far more fundamental and profound occurring. It feels like the tectonic plate that runs under the two provinces is shifting and creating irrevocable change in the process.

19 May 05:33

Doug Ford’s campaign is a mess but it doesn’t seem to matter - The Globe and Mail

mkalus shared this story .

Many party leaders spend years trying to perfect every aspect of their pitches to voters, only to be doomed by a single mistake or sudden shift in mood.

Doug Ford had a couple of months to prepare for his first election leading Ontario’s Progressive Conservatives. He lacks a coherent message and is constantly on the defensive, but will likely wind up premier of Canada’s most populous province anyway.

The Tories’ support may be eroding slightly, but every poll still shows them leading, with Andrea Horwath’s New Democrats some distance back and Kathleen Wynne’s governing Liberals in third.

Story continues below advertisement

But this 29-day campaign, more sprint than marathon, must feel endless to Mr. Ford’s team. It’s plainly in survival mode, trying to make it to the finish line without losing the lead it was gifted at the start by virtue of being the most obvious alternative to an unpopular government.

Nobody could reasonably have expected Mr. Ford to put together a well-oiled machine, given the state of the party he inherited in March. And much of the recent trouble – such as the strange, developing story of a PC candidate in Brampton stepping aside amid reports of alleged involvement in a breach of toll-road commuter data – appears to be fallout from the way the PCs were run under Patrick Brown.

But Mr. Ford has not exactly signalled a bold new era of sound judgment. Among the headaches this week was news that he violated Ontario’s campaign-finance rules by attending a political fundraiser, which party leaders are not allowed to do. (Mr. Ford said he was misinformed about the event’s nature.)

Meanwhile, after overturning a couple of the more contentious local nominations from Mr. Brown’s time, Mr. Ford created his own. That included kiboshing a competitive nomination campaign in London to appoint Andrew Lawton – a former Rebel Media contributor whose past comments about women, Muslims and gay people are fodder for the Tories’ opponents provincewide.

As with cleaning up the PCs’ organization, Mr. Ford had little time to put together a policy platform. But what seemed to be his strategy for that – running on a few big commitments – has given way to something weirdly unfocused.

Mr. Ford is constantly announcing new promises. Some, such as an income-tax cut and billions for transit, are drawn from Mr. Brown’s old platform. On top of those, Mr. Ford has added big ones, including cuts to corporate and fuel taxes. He has not announced a single specific idea for how he intends to pay for any of this, while eliminating the province’s existing deficit, without the carbon-tax revenues that Mr. Brown’s calculus rested on. This encouraged speculation about which promises he would break or surprise cuts he would make.

There are various explanations floating around for why he is promising so much. Among them is that his team wants to constantly give him a new script because he is not the sort of leader who can be trusted to stick to the same message daily.

Story continues below advertisement

Story continues below advertisement

That points to a third issue, beyond party and platform: Mr. Ford has not been campaigning very well, personally. He was visibly nervous in the first leaders’ debate, is uncomfortable answering journalists’ questions and is largely being shielded from scrutiny.

If all this adds up to ostensibly losing the air war, Stephen Harper’s frequently joyless federal campaigns showed that’s not always at odds with an effective operation – if a party is doing good below-the-radar stuff such as mobilization of its supporters through direct targeting. But the Tories aren’t blowing anyone out of the water that way, either. Their digital messaging is not terribly sophisticated and their voter-profiling, according to sources familiar with it, is less advanced than the Liberals’.

Other than lack of preparation time, a common explanation for the stumbles from inside the Tories’ world is that Mr. Ford’s campaign team is factionalized, especially between long-time loyalists and political professionals recently brought in. There are frequent battles for Mr. Ford’s ear, which might explain the campaign’s unusual about-faces, such as Mr. Ford taking opposite positions on the province’s Greenbelt on consecutive days.

In another campaign, such flip-flops might be held up as pivotal moments at which front-runners’ fortunes turned for the worse.

Like everything else in this one, they don’t seem to matter – maybe because voters’ minds were made up beforehand, or many consider the PCs the least of three evils, or Mr. Ford’s supporters see a superseding common touch.

Still, some Tories were expressing relief to reach a long weekend in which a royal wedding will dominate attention. By the time it’s over, there will be little more than two weeks to hope their problems – the ones Mr. Ford inherited, and the ones he has made himself – don’t catch up with them.

19 May 05:33

Writing the Doctoral Dissertation: A Systematic Approach (my reading notes)

by Raul Pacheco-Vega

I like inexpensive, easy-to-read, fast-paced, nimble books. Writing the Doctoral Dissertation: A Systematic Approach by Davis, Parker and Straub is exactly that kind of volume. My only complaint with it is that precisely because it’s so thin (150 single-spaced pages, regular font size), it misses a lot of trees in order to provide an overview that looks like a forest.

The fact that Davis et al are almost apologetic about not having all the answers in their volume made me really feel happy about having spent my hard earned money on this. Do note, the author’s last name is not Gordon, but I was exhausted last night as I live-tweeted my reading notes of this book.

I’m still uncomfortable with books on how to write a doctoral dissertation or how to manage the PhD process that focus so much on productivity, pages written, output produced. But at the same time, I understand that a doctorate should be completed within a certain time frame, so I suppose there’s value to the productivity approach this and other books take.

Admittedly, writing the doctoral dissertation IS producing text and data and analyses and results, but I’m not sure we ought to treat the work as three 40 pages’ papers plus an introduction and a conclusion and WHAM BAM we have a PhD dissertation. I think there’s more to life as a doctoral student than producing pages.

This book is very easy to read, because these authors’ writing is super agile and nimble. Perhaps their core competency is a discussion of how to choose the right topic and how to “fill a gap in the literature”, an issue that many doctoral students face and it’s hard to deal with.

Overall, this book is super good for what it attempts to do (make it easier for a PhD student to finish their doctoral dissertation), but still is not enough to be used stand-alone, in my view. At least, I wouldn’t assign it to my advisees without providing additional support, either through my own mentoring, or by reading other complementary books.