Shared posts

28 Apr 21:00

Where the nickname came from

by Doc Searls

docdaveMy given name is David. Family members still call me that. Everybody else calls me Doc. Since people often ask me where that nickname came from, and since apparently I haven’t answered it anywhere I can now find online, here’s the story.

Thousands of years ago, in the mid-1970s, I worked at a little radio station owned by Duke University called WDBS. (A nice history of the station survives, in instant-loading 1st generation html, here. I also give big hat tip to Bob Chapman for talking Duke into buying the station in 1971, when he was still a student there.)

As signals went, WDBS was a shrub in grove of redwoods: strong in Duke’s corner of Durham, a bit weak in Chapel Hill, and barely audible in Raleigh—the three corners of North Carolina’s Research Triangle. (One of those redwoods, WRAL, was audible, their slogan bragged, “from Hatteras to Hickory,” which is about 320 miles as the crow flies.)

As a commercial station, WDBS had to sell advertising. This proved so difficult that we made up ads for stuff that didn’t exist. That, in addition to selling ads, was my job. The announcer’s name I used for many of the ads, plus other humorous features, was Doctor Dave. It wasn’t a name I chose. As I recall, Bob Conroy did that. I also had a humorous column under the same name for the station’s monthly arts guide, with the image above at the top of the page. That one was created by Ray Simone.

Ray and David Hodskins, another WDBS listener, later approached me with the idea of starting an ad agency, which we did: Hodskins Simone & Searls. Since we already had a David, everybody at the agency called me Doctor Dave, which quickly abbreviated to Doc. Since my social network in business far exceeded all my other ones, the name stuck. And there you have it.

28 Apr 21:00

Daily Scot: Peak car on the stock market?

by pricetags

Scot likes this story as stocks are leading indicators for a lot of economic events.  This video is perhaps another more accurate way to look at peak auto:


28 Apr 21:00

New update options for Windows 10, version 1703

by Volker Weber

Sketch

Based on feedback from customers, we are making some adjustments to the updates that we are releasing for Windows 10, version 1703 (also known as the 'Creators Update'). With these changes, we will routinely offer one (or sometimes more than one) additional update each month. These additional cumulative updates will contain only new non-security updates, so they will be considered 'Updates'in WSUS and Configuration Manager.

That is a very welcome change for Enterprise IT. Microsoft separates security updates (must install) from feature enhancements (test, then install).

More >

28 Apr 21:00

Painting with Code

by Rui Carmo

This looks like fun – I’ve been away from design and front-end work for a while, but I have all the bits and pieces required to tinker with it (except time, of course).

28 Apr 20:59

The Quietest Mac Ever!

by Rui Carmo

I stumbled upon this build the other day, and love the idea of having completely passive (and utterly silent) cooling.

Who knows, maybe Apple will catch on.

28 Apr 20:59

iindex: The Cult of Done Manifesto Bre Pettis and Kio Stark There are three states of being.Not...

iindex:

The Cult of Done Manifesto

Bre Pettis and Kio Stark

There are three states of being.
Not knowing, action and completion.

Accept that everything is a draft.
It helps to get done.

There is no editing stage.

Pretending you know what you’re doing
is almost the same as knowing what you
are doing, so just accept that you know
what you’re doing even if you don’t
and do it.

Banish procrastination. If you wait more
than a week to get an idea done, abandon it.

The point of being done is not to finish but
to get other things done.

Once you’re done you can throw it away.

Laugh at perfection. It’s boring and keeps
you from being done. 

People without dirty hands are wrong.
Doing something makes you right.

Failure counts as done. So do mistakes.

Destruction is a variant of done. 

If you have an idea and publish it on the
internet, that counts as a ghost of done.

Done is the engine of more.

http://www.manifestoproject.it/

28 Apr 20:59

Inventor Of World Wide Web: Gutting Net Neutrality Would Lets ISPs “Pick Winners And Losers”

by Chris Morran
mkalus shared this story from Consumerist.

Earlier today, FCC Chair Ajit Pai revealed his plan to scuttle existing regulations for internet service providers and replace them with promises from the industry that they won’t do anything bad. It is all in the name of innovation, declared Pai, but the innovator who created the World Wide Web and the very first website, is calling the Chairman out.

The 2015 Open Internet Order, which would be undone by Pai’s proposal, prevents ISPs from having any say in what you do online. They can’t block access to content; can’t slow down access to specific content; and they can’t speed up access to specific sites or services. Those rules would all be removed, replaced with vague, non-binding promises from ISPs.

To Sir Tim Berners-Lee, who created the Web in 1989 while working at CERN, the idea that your broadband provider could have any say in what you do online is antithetical to the entire concept of the internet.

“When I invented the web, I didn’t have to ask anyone for permission, and neither did America’s successful internet entrepreneurs when they started their businesses,” says Berners-Lee in his capacity as founder of the World Wide Web Foundation. “To reach its full potential, the internet must remain a permissionless space for creativity, innovation and free expression.”

This is particularly troublesome following an era of consolidation. Comcast now owns NBCUniversal, meaning it may have an incentive to throttle access to streaming services run by competitors like Disney (ABC, ESPN), or to prioritize access to services like Hulu in which it has an ownership stake.

Similarly, AT&T — which provides wired and wireless broadband access to more than 100 million Americans — now owns DirecTV and the DirecTV Now streaming platform. It is also in the process of acquiring its own content conglomerate in the form of Time Warner (CNN, HBO, Warner Bros). AT&T is already making HBO available to DirecTV Now users at a rate lower other pay-TV providers (and giving it away to some wireless customers), and it doesn’t even own the network yet.

“In today’s world companies can’t operate without internet, and access to it is controlled by just a few providers,” adds Berners-Lee. “The FCC’s announcements today suggest they want to step back and allow concentrated market players to pick winners and losers online. Their talk is all about getting more people connected, but what is the point if your ISP only lets you watch the movies they choose, just like the old days of cable?”

FCC Commissioner Mignon Clyburn, now the lone Democrat on the Commission, echoed this sentiment in her response to Chair Pai’s announcement.

“Talk to the over 700 small broadband providers in rural America, who have lived over a decade under the regulatory structure that Chairman Pai now seeks to implode, and they will tell you about the billions of dollars they have invested, the innovation they are responsible for sparking, and how the growth of their own networks, has supported thousands of internet startups, and made America the innovation capital of the world,” said Clyburn, who also points to the many startups and investors who “did not rely on some opaque promise” of neutrality from ISPs, “nor did they get permission from a broadband provider, to reach potential customers. They banked on an open, permission-less platform that has netted countless benefits for us all.”

Chairman Pai plans to release the full proposal this week, with the goal of taking an initial vote on whether to consider the rule on May 18.

When previous FCC Chair Tom Wheeler proposed the 2015 order, the public response was so huge and swift that it crashed the servers responsible for collecting comments. We imagine there will be similar backlash following today’s announcement.





28 Apr 20:59

Mayors’ Council #CURECONGESTION Voters’ Guide

by pricetags

The Mayors’ Council released the #CureCongestion Voters’ Guide summarizing commitments and policy positions from the BC Green Party, BC Liberal Party and BC NDP, related to transit and transportation in Metro Vancouver.

 

Go here for detailed chart and guide.


28 Apr 20:59

Not OK, Google

by Ben Thompson

I was, frankly, amazed when I saw this tweet:

Let me remind you that Washington Post Editor-in-Chief Marty Baron’s industry — newspapers — is one without a business model (Baron’s newspaper is more fortunate than most in its reliance on a billionaire’s largesse). Said lack of business model is leading to a dwindling of local coverage, click-chasing, and, arguably, Donald Trump. That seems like a pretty big problem!

Fake news, on the other hand, tells people who’ve already made up their minds what they want to hear. Certainly it’s not ideal, but the tradeoffs in dealing with the problem, at least in terms of Facebook, are very problematic. I wrote last fall in Fake News:

I get why top-down solutions are tempting: fake news and filter bubbles are in front of our faces, and wouldn’t it be better if Facebook fixed them? The problem is the assumption that whoever wields that top-down power will just so happen to have the same views I do. What, though, if they don’t? Just look at our current political situation: those worried about Trump have to contend with the fact that the power of the executive branch has been dramatically expanded over the decades; we place immense responsibility and capability in the hands of one person, forgetting that said responsibility and capability is not so easily withdrawn if we don’t like the one wielding it.

To that end I would be far more concerned about Facebook were they to begin actively editing the News Feed; as I noted last week I’m increasingly concerned about Zuckerberg’s utopian-esque view of the world, and it is a frighteningly small step from influencing the world to controlling the world. Just as bad would be government regulation: our most critical liberty when it comes to a check on tyranny is the freedom of speech, and it would be directly counter to that liberty to put a bureaucrat — who reports to the President — in charge of what people see.

As if to confirm my worst fears, Zuckerberg, a few months later, came out with a manifesto committing Facebook to political action, leading me to call for checks on the company’s monopoly. What was perhaps the most interesting lesson about that manifesto, though, was that most of the media — which to that point had been resolutely opposed to Facebook — were by and large unified in their approval. It was, I suspect, a useful lesson for tech executives: ensure the established media controls the narrative, and your company’s dominance may proceed without criticism.

Google’s Algorithm Change

Today Google announced its own fake-news motivated changes. From Bloomberg:

The Alphabet Inc. company is making a rare, sweeping change to the algorithm behind its powerful search engine to demote misleading, false and offensive articles online. Google is also setting new rules encouraging its “raters” — the 10,000-plus staff that assess search results — to flag web pages that host hoaxes, conspiracy theories and what the company calls “low-quality” content.

The moves follow months after criticism of Google and Facebook Inc. for hosting misleading information, particular tied to the 2016 U.S. presidential election. Google executives claimed the type of web pages categorized in this bucket are relatively small, which is a reason why the search giant hadn’t addressed the issue before. “It was not a large fraction of queries — only about a quarter percent of our traffic — but they were important queries,” said Ben Gomes, vice president of engineering for Google.

I noted above that deciding how to respond to fake news is a trade-off; in the case of Facebook, the fact that fake news is largely surfaced to readers already inclined to believe it means I see the harm as being less than Facebook actively taking an editorial position on news stores.

Google, on the other hand, is less in the business of driving engagement via articles you agree with, than it is in being a primary source of truth. The reason to do a Google search is that you want to know the answer to a question, and for that reason I have long been more concerned about fake news in search results, particularly “featured snippets”:

My concern here is quite straightforward: yes, Facebook may be pushing you news, fake, slanted, or whatever bias there may be, but at least it is not stamping said news with its imprimatur or backing it with its reputation (indeed, many critics wish that that is exactly what Facebook would do), and said news is arriving on a rather serendipitous basis. Google, on the other hand, is not only serving up these snippets as if they are the truth, but serving them up as a direct response to someone explicitly searching for answers. In other words, not only is Google effectively putting its reputation behind these snippets, it is serving said snippets to users in a state where they are primed to believe they are true.

To that end I am pleased that Google is making this change, at least at a high level. The way Google is approaching it, though, is very problematic.

Google and Authority

Danny Sullivan, who has been covering Google for years, has one of the best write-ups on Google’s changes, including this frank admission that the change is PR-driven:

Problematic searches aren’t new but typically haven’t been an big issue because of how relatively infrequent they are. In an interview last week, Pandu Nayak — a Google Fellow who works on search quality — spoke to this: “This turns out to be a very small problem, a fraction of our query stream. So it doesn’t actually show up very often or almost ever in our regular evals and so forth. And we see these problems. It feels like a small problem,” Nayak said.

But over the past few months, they’ve grown as a major public relations nightmare for the company…“People [at Google] were really shellshocked, by the whole thing. That, even though it was a small problem [in terms of number of searches], it became clear to us that we really needed to solve it. It was a significant problem, and it’s one that we had I guess not appreciated before,” Nayak said.

Suffice it to say, Google appreciates the problem now. Hence today’s news, to stress that it’s taking real action that it hopes will make significant changes.

Sullivan goes on to explain the changes Google is making to autocomplete search suggestions and featured snippets, particularly the opportunity to provide immediate feedback. What was much more convoluted, though, was a third change: an increased reliance on “authoritative content”.

The other and more impactful way that Google hopes to attack problematic Featured Snippets is by improving its search quality generally to show more authoritative content for obscure and infrequent queries…

How’s Google learning from the data to figure out what’s authoritative? How’s that actually being put into practice? Google wouldn’t comment about these specifics. It wouldn’t say what goes into determining how a page is deemed to be authoritative now or how that is changing with the new algorithm. It did say that there isn’t any one particular signal. Instead, authority is determined by a combination of many factors.

This simply isn’t good enough: Google is going to be making decisions about who is authoritative and who is not, which is another way of saying that Google is going to be making decisions about what is true and what is not, and that demands more transparency, not less.

Again, I tend to agree that fake news is actually more of a problem on Google than it is Facebook; moreover, I totally understand that Google can’t make its algorithms public because they will be gamed by spammers and fake news purveyors. But even then, the fact remains that the single most important resource for finding the truth, one that is dominant in its space thanks to the fact that being bigger inherently means being better, is making decisions about what is true without a shred of transparency.

More Monopoly Trade-offs

I wrote last week about Facebook and the Cost of Monopolies: Facebook wins because, by virtue of connecting everyone on earth, its apps both provide a better user experience even as they build impregnable moats. The moat is the network is the superior user experience. The cost, though, as I sought to quantify, at least in theory, is the aforementioned decay in our media diet, increasing concentration of advertising, and, in the long run, diminished innovation.

That raises the question, though, of what to do about it; I noted in a follow-up that Facebook hasn’t done anything wrong, and under the current interpretation of the law, isn’t even really a monopoly. The fact of the matter is that people like Facebook1 and that it generates a massive amount of consumer surplus. It follows, then, that any action to break up that monopoly is inherently anti-consumer, at least in the short-run.

The conundrum is even worse with Google, in large part because the company’s core service is even more critical to its users: being able to search the entire Internet is a truly awesome feat, and, thanks to that capability, it is critical that Google get the answer right. That, though, means that Google’s power is even greater, with all of the problems that entails.

Indeed, that is why Google needs to be a whole lot more explicit about how it is ranking news. Perhaps the most unanticipated outcome of the unfettered nature of the Internet is that the sheer volume of information didn’t disperse influence, but rather concentrated it to a far greater degree than ever before, not to those companies that handle distribution (because distribution is free) but to those few that handle discovery. The result is an environment where what is best for the individual in the short-term is potentially at odds with what is best for a free society in the long-term; it would behoove Google to push off the resolution of this paradox by being more open, not less.

Sadly, it seems unlikely that my request for more transparency will get much support; Google’s announcement was widely applauded, and why not? It is the established media that will have a leg up when it comes to authority. That, it seems, is all they ever wanted, even if it means Google and Facebook taking all of the money.

  1. Even if you don’t personally, dear reader
28 Apr 20:56

Have bag; can work…

by Bryan Mathers
have bag can work

I carry around a lot of stuff in my bag, and as such I can work from anywhere. Some of my best work is done on the hoof, and if it weren’t for the legroom, I’d probably buy cheap train tickets and travel the country, stopping somewhere different for lunch and heading home for teatime…

This thinkery was created for the book Emergency Rations, curated by David Hopkins.

The post Have bag; can work… appeared first on Visual Thinkery.

28 Apr 20:55

.38 Special vs Prince Ruperts Drop at 170,000 FPS - Smarter Every Day 169

by destinws2
mkalus shared this story from destinws2's YouTube Videos.

From: destinws2
Duration: 07:36

I'm going to walk it up until I can find the limit.
Use the promo code "Smarter" to get $50 off a Casper mattress here http://www.casper.com/smarter ⇊ Click below for more links! ⇊

Click here to tweet this video: https://goo.gl/R5N49U

I shot a .22 Magnum and a .38 Special bullet at the Prince Rupert's Drops made by Cal at Orbix Hot Glass.
Click here if you're interested in subscribing: http://bit.ly/Subscribe2SED
⇊Please Re-subscribe and "hit the bell" http://bit.ly/Subscribe2SED
Support via Patreon: https://www.patreon.com/smartereveryday
⇊ More links! ⇊

Prince Rupert's Drops made by Cal at Orbix Hot Glass:
http://orbixhotglass.com/

Gordon's song "Chupacabra" can be purchased here:
https://ashellinthepit.bandcamp.com/album/smarter-every-day-vol-ii

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GET SMARTER SECTION
https://www.youtube.com/watch?v=24q80ReMyq0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Tweet Ideas to me at:
http://twitter.com/smartereveryday

I'm "ilikerockets" on Snapchat.
Snap Code: http://i.imgur.com/7DGfEpR.png

Smarter Every Day on Facebook
https://www.facebook.com/SmarterEveryDay

Smarter Every Day on Patreon
http://www.patreon.com/smartereveryday

Smarter Every Day On Instagram
http://www.instagram.com/smartereveryday

Smarter Every Day SubReddit
http://www.reddit.com/r/smartereveryday

Ambiance and musicy things by: Gordon McGladdery did the outro music the video.
http://ashellinthepit.bandcamp.com/
The thought is it my efforts making videos will help educate the world as a whole, and one day generate enough revenue to pay for my kids college education. Until then if you appreciate what you've learned in this video and the effort that went in to it, please SHARE THE VIDEO!

If you REALLY liked it, feel free to pitch a few dollars Smarter Every Day by becoming a Patron.
http://www.patreon.com/smartereveryday

Warm Regards,

Destin

28 Apr 20:55

Confessions of a mansplainer

by Josh Bernoff

I am a mansplainer. In the hopes of enlightening readers of all genders as they interact in the workplace, I’ll examine how I got that way, why I mansplained, and my path to reform. First off, let me explain my background, because it matters in this discussion. I was raised in a moderately affluent suburb of … Continued

The post Confessions of a mansplainer appeared first on without bullshit.

28 Apr 20:55

What happens if you don't file your income taxes on time?

mkalus shared this story from CTVNews.ca - Top Stories - Public RSS.


Jeff Lagerquist, CTVNews.ca
Published Wednesday, April 26, 2017 6:00AM EDT
Last Updated Wednesday, April 26, 2017 9:18AM EDT

Fear of the Canada Revenue Agency (CRA) has caused grown men to burst into tears while clutching thick stacks of unopened mail. Outbursts provoked by mounting fees, compounding interest, and threats of criminal prosecution, according to a prominent Toronto tax lawyer.

Paul DioGuardi says it’s like drips of water filling a pail – only a matter of time before things overflow.

DioGuardi, whose practice specializes in disputes with the CRA, says he has seen it firsthand with clients. Such instances, he says, are typically the result of years of missed filings, and in the most extreme cases, deliberate tax evasion.

With the 2016 tax deadline fast approaching, it’s a sobering reminder of the importance of filing your taxes on time every single year. DioGuardi told CTVNews.ca on Monday, a week before the deadline, that approximately half of all Canadians have not completed this year’s income return, and many have not filed in years.

Most have until April 30 to submit returns. But since the typical deadline falls on a Sunday this year, it’s been extended to the end of the next business day – Monday, May 1. Self-employed workers have until June 15.

Those deadlines are far more important for those who have a balance owing than those who expect a refund. For the latter, you are really just delaying being repaid for the interest-free loan you gave the government, as well as any provincial credits including child benefits, or old age security.

Even if you owe money, the penalties for minor tax tardiness are relatively minor – five per cent of your 2016 balance owing, plus one per cent of your balance owing for each full month your return is late, to a maximum of 12 months.

The penalties go up, however, if you’ve missed the deadline in recent years. If you were charged a late-filing penalty on your return for 2013, 2014, or 2015, your late-filing penalty for 2016 may be 10 per cent of your 2016 balance owing, plus 2 per cent of your 2016 balance owing for each full month your return is late, to a maximum of 20 months.

If you cannot pay your full balance on the deadline date, you can avoid penalties by filing your return on time – a critical fact that DioGuardi says many of his clients simply are not aware of.

Most people shirking their income tax return, he says, do so because of a hardship like a divorce or separation, a lost a job, or an illness. These cases can go unnoticed for years if the person stays below the radar by taking work that pays in cash. Those looking to redeem themselves after such an exile face what he says can only be described as “a collection agency with police-like powers.”

“Usually what happens, especially for men, is they go through a divorce or a family breakdown. They go and they live in their family’s basement, and they get really bitter. They say, ‘Screw the taxman. I’m not filing returns.’ They go and work on the side for cash. Then after a number of years a couple things happen. They meet a nice lady. They get an offer for a good job. Then they are in a quandary. They have to go back on the radar again.”

It’s at this point such people might meet seek the service of someone like DioGuardi, usually with that thick stack of unopened mail in hand. They can typically request a waiver of penalty, relief from the mounting fees and interest.

“We file the returns and we do a payment plan for them, and they are back in the system. That’s the best way because the interest on the penalties is very high,” he said. “We’re almost like economic social workers.”

Canadians can request the CRA waive penalties and accrued interest for any tax period that ended within 10 calendar years before the year the request is made. DioGuardi says these types of appeals are often successful, noting that any compromise is at the CRA’s discretion.

While the agency may be amenable to leniency due to illness, death and other extreme circumstances, deliberately misrepresenting your income is another matter. A conviction for tax evasion, which includes not filing tax returns and hiding income, can result in up to five years in prison.

DioGuardi, who once trained at the CRA’s head office as a young lawyer, says handling of such cases is meant to send a message to would-be tax cheats.

Those tasked with building a case against suspected fraudsters are often driven by a sense of patriotism. The money they are seeking to recover, if illegally sheltered, is the rightful property of the Canadian public. DioGuardi says a lot can depend on who handles each case.

“Often they are very nice, but there are ‘nasties’ in there. I say they are sadistic sometimes,” DioGuardi said. “We’ve even had cases where they’ve gone to client’s houses during the Christmas holidays and threatened the wife, and said ‘We are going to take the house.’ She didn’t owe any taxes at all.”

The CRA said such in person “field visits” are an opportunity to meet directly with taxpayers to discuss an individual’s ability to pay before legal action is taken.

“These actions may include garnishment of bank accounts or wages and the seizure of properties and assets,” said communications manager Paul Murphy in a statement emailed to CTVNews.ca. “CRA does not threaten taxpayers, or use aggressive language. Such behaviour is not condoned by CRA.”

28 Apr 20:55

Twitter Favorites: [lisawilliams] Something has happened to my brain, because I actually understand CSS now. I guess that bump on the head was harder than I thought.

Lisa Williams @lisawilliams
Something has happened to my brain, because I actually understand CSS now. I guess that bump on the head was harder than I thought.
28 Apr 20:55

Twitter Favorites: [JodiesJumpsuit] Also I absolutely love the how much the city of Chicago and public transit is part of the movie. Just truly a lovely urban love story.

Jump Around @JodiesJumpsuit
Also I absolutely love the how much the city of Chicago and public transit is part of the movie. Just truly a lovely urban love story.
28 Apr 20:55

Twitter Favorites: [CatherineOmega] I make fun of server naming schemes like "fruit" or "norse gods", but this is what happens when you don't follow on… https://t.co/mo8AferoTt

Catherine Winters @CatherineOmega
I make fun of server naming schemes like "fruit" or "norse gods", but this is what happens when you don't follow on… twitter.com/i/web/status/8…
28 Apr 20:55

Twitter Favorites: [catherine0626] Tell me more about how baseball is boring

Catherine @catherine0626
Tell me more about how baseball is boring
28 Apr 20:54

Installing GNAT and SPARK GPL Editions

GNAT is an implementation of the Ada programming language. SPARK is a restricted subset of Ada for formally verifying programs. It provide features comparable to languages like Rust and ATS. A recent article comparing SPARK to Rust caught my eye and I decided to spend some time learnig Ada and SPARK. This post just outlines installing an implementation of both, a quick test to see if the installation worked, and some things to read to learn. I hope to post more later as I learn more.

Installation

Download GNAT GPL from libre.adacore.com. Choose "Free Software or Academic Development" and click "Build Your Download Package". Select the platform and click the checkboxes next to the required components. For my case I chose them all but "GNAT Ada 2016" and "Spark 2016" are the main ones I needed.

To install Ada and SPARK from the downloaded tar file:

$ tar xvf AdaCore-Download-2017-04-27_0537.tar
$ cd x86_64-linux/adagpl-2016/gnatgpl
$ mkdir ~/ada
$ tar -xf gnat-gpl-2016-x86_64-linux-bin.tar.gz
$ cd gnat-gpl-2016-x86_64-linux-bin
$ ./doinstall
...answer prompts about where to install...
...for this example I used /home/username/gnat...
$ export PATH=/home/username/gnat/bin:$PATH

$ cd ../sparkgpl
$ tar -xf spark-gpl-2016-x86_64-linux-bin.tar.gz
$ cd spark-gpl-2016-x86_64-linux-bin
$ ./doinstall
...answer prompts about where to install...
...it should pick up the location used above...

Be aware that the install comes with its own gcc and other utilities. By putting it first in the PATH they are used over the systems versions.

Testing GNAT

The following is a "Hello World" application in Ada:

with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
  Put_Line ("Hello World!");
end Hello;

It imports a package, Ada.Text_IO, and uses it so the package contents can be used without prefixing them with the package name. A procedure called Hello is created that outlines a line of text. If put in a file hello.adb it can be compiled with:

$ gnatmake hello.adp
gnatbind -x hello.ali
gnatlink hello.ali

$ ./hello
Hello World!

Completely static executables can also be created:

$ gnatmake hello.adb -bargs -static -largs -static
$ ldd hello
not a dynamic executable
$ ./hello
Hello World!

Testing SPARK

I used an example taken from Generating Counterexamples for failed Proofs. The SPARK checker, gnatproof, requires a project file. This is the contents of saturate.gpr:

project Saturate is
   for Source_Dirs use (".");

   package Compiler is
      for Default_Switches ("Ada") use ("-gnatwa");
   end Compiler;
end Saturate;

It gives the project name, Saturate, the location to search for source files (the current directory), and any compiler switches. The function to be implemented is a saturation function. It ensures a value given to it is in a specific range. In this case, a non-negative value less than or equal to 255. In file saturate.ads we put the interface definition:

with Interfaces;
use Interfaces;

function Saturate (Val : Unsigned_16) return Unsigned_16 with
  SPARK_Mode,
  Post => Saturate'Result <= 255 and then
         (if Val <= 255 then Saturate'Result = Val);

The code first pulls the Interfaces package into the current namespace. This provides unprefixed access to Unsigned_16. It declares a function, Saturate, that takes an Unsigned_16 as an argument and returns the same type. The SPARK_Mode is an annotation that identifes code to be checked by SPARK. The Post portion is a postcondition that the implementation of the function must adhere to. In this case the result must be less than 255 and if the given value is less than 255 then the result will be equal to the value.

The implementation of the function is in a file saturate.adb:

function Saturate (Val : Unsigned_16) return Unsigned_16 with
  SPARK_Mode
is
begin
  return Unsigned_16'Max (Val, 255);
end Saturate;

This calls the Max function for Unsigned_16 types to return the maximum between the given value and 255. The code compiles with the Ada compiler:

$ gnatmake saturate.adb
gcc -c saturate.adb

It fails however when running the SPARK checker:

$ gnatprove -Psaturate 
Phase 1 of 2: generation of Global contracts ...
Phase 2 of 2: flow analysis and proof ...
saturate.ads:6:11: medium: postcondition might fail (e.g. when Saturate'Result = 255 and Val = 0)
Summary logged in gnatprove/gnatprove.out

This tells us that the postcondition might fail if the given value to the function is 0 and the result is 255. This is because we are using Max - given the value 0 to Saturate, the Max of 0 and 255 is 255. The function result will be 255. The postcondition however states that the result should be equal to val - it should be 0. Changing the function call to Min fixes it:

$ gnatprove -Psaturate 
Phase 1 of 2: generation of Global contracts ...
Phase 2 of 2: flow analysis and proof ...
Summary logged in gnatprove/gnatprove.out

Having a postcondition that states what the result should be is probably unlikely in a lot of code. If the signature was the following, would SPARK find the error still?:

function Saturate (Val : Unsigned_16) return Unsigned_16 with
  SPARK_Mode,
  Post => Saturate'Result <= 255

$ gnatprove -Psaturate 
Phase 1 of 2: generation of Global contracts ...
Phase 2 of 2: flow analysis and proof ...
saturate.ads:6:11: medium: postcondition might fail,
         cannot prove Saturate'Result <= 255 (e.g. when Saturate'Result = 256)
Summary logged in gnatprove/gnatprove.out

Apparently so. Now it identifies that the result can be 256. Other examples following different contracts on the function are in the original article.

Documentation

The GNAT User's Guide for Native Platforms and Spark 2014 User's Guide contains the instructions for the main tools. GNAT can interface with C and C++. There is a full list of documentation here. Two useful books covering Ada and Spark:

Some technical papers that give a quick overview of Ada:

I used the command line tools here but there is a gps command which is a full graphical IDE which may be more approachable. I'm looking forward to using Ada and SPARK and seeing how they compare to tools like Rust and ATS.

28 Apr 20:54

Reputation Is A Byproduct

by Richard Millington

Take a moment and really think who has status in your field.

You just ignored that sentence, didn’t you? Genuinely take a second and come up with 3 names.

Now try to explain why you believe they have status.

I’m going to bet it’s not because they had 1253 points after their username or were featured as a member of the week.

It’s because they had a track record of making unique and useful contributions. These contributions were gradually recognized. People talked about them. They were invited to speak at events. They were referenced in other items of content.

There are implicit and explicit reputation systems. Over the past year, I feel I’ve been in far too many meetings discussing explicit reputation systems and far too few discussing implicit systems.

Believe me, explicit reputation systems aren’t even close to the power of members genuinely working hard to produce something incredible and earning a reputation as a byproduct.

In almost every room in the past year, I’ve argued what I’m saying now. Spend more time (a lot more time) thinking of ways to encourage members to create something truly great. Think of true works of art that drive the field forward. Provide people with the resources, the support, and the attention that they need. Let people earn real status, not chase points.

28 Apr 20:54

Fatal Traffic, When and Where

by Nathan Yau

These are the traffic crashes that resulted in deaths in 2015, categorized by month, time of day, and factors involved. Read More

28 Apr 18:05

Amazon’s Echo still isn’t available in Canada, but here’s the new ‘Echo Look’

by Patrick O'Rourke
Echo Look

While Amazon’s voice-activated assistant, Echo, still hasn’t launched in Canada, the company is forging ahead with a new version of the popular device.

The ‘Echo Look’ features a camera, allowing it to not only hear its surroundings like the original Echo, but also see the area as well. The Echo Look, at least to some extent, is a standalone selfie machine that allows users to take full-length photos and videos of themselves and answer to commands like “Alexa, take a picture,” and “Alexa, take a video.”

With the Echo Look, users are able to spin around to get a shot from all sides and take selfies will keeping their hands free. Despite this functionality, however, the Echo does not feature a traditional display, instead opting to utilize Amazon’s Style Check app designed to compare outfit choices. Style Check rates your outfit and also gives clothing recommendations, which of course are available through Amazon’s online shopping portal.

Amazon’s Echo Look also features built-in standard Alexa functionality, allowing the device to control supported smart home products, as well as other tasks like checking the weather.

Echo Look

Currently, the Echo Look is priced at $200 USD, a $20 premium over the standard Echo. It’s unclear if the Echo Look, or even the original Amazon Echo, will come to Canada at any point in the near future. It is possible to use the Echo in Canada though if you’re able to get your hands on one, with much of the device’s functionality still working north of the U.S. boarder.

Source: Amazon

The post Amazon’s Echo still isn’t available in Canada, but here’s the new ‘Echo Look’ appeared first on MobileSyrup.

28 Apr 18:05

Telus deploys free Wi-Fi and improved reception at Montréal’s Jewish General Hospital

by Rose Behar
jewish general hospital

In an $1 million CAD investment, Telus has implemented a new LTE-Advanced telecommunications network in Montréal’s Jewish General Hospital that provides improved wireless reception and supports a new free Wi-Fi network.

Through the project, free Wi-Fi is now available in areas like the major entrances, waiting rooms and food-service areas.

The internal telecommunications network works through a network of small antennas, called a Distributed Antenna System (DAS) — an LTE-A technology that is known as an effective way of bringing reliable LTE data service to large, hard-to-cover structures, like college campuses or hospitals.

“Over the past few years, members of our team have developed a recognized expertise in the implementation of leading-edge, internal wireless networks, especially in the healthcare sector. Today, we connect approximately ten of the main hospitals in Montreal to the most advanced wireless technology,” said Jacques Garceau, Telus’ senior vice-president of broadband networks engineering in a press statement.

“Healthcare professionals are increasingly mobile and our technology clearly facilitates access to clinical information systems while they are on the go, whether to provide care in the hospital or remotely.”

The post Telus deploys free Wi-Fi and improved reception at Montréal’s Jewish General Hospital appeared first on MobileSyrup.

28 Apr 18:05

Podcast search engine Audiosear.ch update makes finding shows easier

by Bradly Shankar
podcast search

Podcast search engine Audiosear.ch launched its newly redesigned website today, letting users find shows more easily. With the site, people can search for specific topics, people, shows and more. Direct quotes can even be searched for as well.

The site also uses a 100-point ‘Buzz Score’ rating system for podcasts based on iTunes chart position and ratings. Users can filter search results by length, category, topic, date, Buzz Score and more.

Amazon’s Alexa Magic Podcast feature is one of the sites that uses Audiosear.ch.

Those looking for other podcasts to listen to can check out the SyrupCastMobileSyrup‘s weekly topical podcast. The latest episode dived into the recent release of Samsung’s Galaxy S8 and S8+.

Image credit: Flickr – Patrick Breitenbach

Via: The Verge

The post Podcast search engine Audiosear.ch update makes finding shows easier appeared first on MobileSyrup.

27 Apr 22:51

A play-by-play analysis of what ESPN said about firing 100 on-air personalities

by Josh Bernoff

Sports network ESPN dumped 100 of its 1,000 on-air staff yesterday. Why? Based on the company’s statement it has something to do with strategy, but if you can figure out what that strategy is, you’re smarter than me. The statement seems like something from the Russian government published in Pravda — you need to be a Kremlinologist … Continued

The post A play-by-play analysis of what ESPN said about firing 100 on-air personalities appeared first on without bullshit.

27 Apr 22:50

iPad Diaries: DEVONthink’s New Advanced Automation

by Federico Viticci

iPad Diaries is a regular series about using the iPad as a primary computer. You can find more installments here and subscribe to the dedicated RSS feed.

When I covered DEVONthink To Go in the first iPad Diaries column back in February, I briefly mentioned the app's limited support for URL schemes and automation. I concluded the article noting that DEVONthink's advanced file management features were ideal candidates for my writing workflow – particularly given the app's ability to store different types of documents, reference them with unique links, and search them with Boolean operators. I also expanded upon the idea of using DEVONthink as my only iOS file manager in the latest episode of Mac Power Users.

I've been moving more work documents and other research material (web archives and PDFs, mostly) to DEVONthink over the past two months. The turning point occurred a few weeks ago, when DEVONtechnologies began adding advanced x-callback-url automation to DEVONthink's beta channel and were kind enough to let me test and provide feedback for the functionality.

I was genuinely excited by the prospect of a scriptable DEVONthink: due to iOS' lack of a deeply integrated Finder, I've always wanted a file manager that could be extended and enhanced through automation and other apps. With an improved set of URL commands and various optimizations for usage in Workflow, DEVONthink To Go can now be that kind of file manager. I made my decision: this is the app I'm going to use to manage the research content for my iOS 11 review this summer.

The automation features introduced by DEVONtechnologies in the latest DEVONthink for iOS go deep into the app's structure, covering discrete functionalities such as file creation, search, and data retrieval. These changes will enable a greater number of users to integrate DEVONthink with their favorite iPad apps and workflows. And while the new commands are documented in the app, I thought it'd be useful to provide some concrete examples of how we can take DEVONthink to the next level through automation.

Get More iOS Productivity Tips and Workflows

With a Club MacStories subscription, you’ll gain access to weekly iPad workflows, iOS app recommendations, and other exclusive extras.

Starting at $5/month, Club MacStories includes MacStories Weekly – a newsletter delivered every Friday with a focus on iOS productivity and showcasing new and interesting iOS apps. One of MacStories Weekly’s regular sections is the Workflow Corner – a weekly assortment of iPad workflows, iOS automation tips, and tutorials curated by Federico and the MacStories team.

As a new member, you’ll also receive complete access to our back catalogue of over 80 newsletters starting from September 2015.
 
You can find out more about Club MacStories here, or subscribe directly below.


DEVONthink's New Commands

Before digging into DEVONthink's improved automation commands and Workflow integration, it's important to explain what, exactly, DEVONtechnologies has changed.

The latest DEVONthink To Go is fully compliant with the x-callback-url spec and can be chained with other apps to perform actions and return data to the calling app. The primary reason for the adoption of x-callback-url is easy creation of actions in Workflow, but DEVONthink's URL scheme can be used by any other launchers on iOS – including Launcher, Launch Center Pro, Drafts, and even Safari bookmarklets. In this article, I'm going to focus on pre-made automations for the Workflow app.

The new set of automation commands in DEVONthink is quite extensive. Using URL schemes, you can call DEVONthink to perform the following actions (in addition to the existing commands I mentioned in February):

  • Create new images;
  • Create new documents, using file data and UTI details to specify which kind of document;
  • Add comments to files;
  • Retrieve file metadata;
  • Retrieve file contents;
  • Open a search in the app;
  • Perform a search and send back a list of results to another app.

All of these commands are based on two core features that DEVONtechnologies implemented: base64 encoding to create new files in DEVONthink and retrieve their contents from other apps; and JSON objects to return file metadata or search results as dictionaries that can be parsed by Workflow.

Recent iOS Automation Trends

If you’ve been following the iOS automation scene lately, you might have spotted the trend towards base64 and JSON for files and search results, respectively. Once again, these are workarounds that some clever developers (including The Omni Group and Ulysses are leveraging to cram more information into URL schemes.

Both base64-encoded strings and JSON objects can be included as plain text inside a URL scheme to let two apps communicate. Sprinkle some x-callback-url on top of everything, and you have a system to chain apps in complex automations that can pass images and PDFs around, or even return lists of hundreds of search results in a dictionary. None of these are optimal solutions, but it’s all we have for now if we want to achieve desktop-level automation on iOS. The ideal conclusion, of course, is for Apple to end all this with a proper WorkflowKit framework and native automation that drops URL schemes altogether.

If you're an iPad power user who's been keeping an eye on DEVONthink, I bet your automation senses are tingling at this point. Thus, allow me to explain how I've been taking advantage of DEVONthink's deeper automation and what I have in mind for my future usage of the app.

Create Images

I take a lot of screenshots on a daily basis. The number goes up dramatically in the summer when I'm writing my annual iOS reviews as I take hundreds of screenshots for every beta seed. There's no great way to reference individual images in Apple's Photos app, but that's an area where DEVONthink excels thanks to its item links – bookmarks for individual files that can be opened from other apps. There's only one problem: importing a new image into DEVONthink is too slow and takes too many taps.

Enter the new createImage command in the DEVONthink URL scheme. Using this command, we can send an image to the app and create it in a specific group with a name and even a comment attached to it. Thus, rather than opening DEVONthink's file menu, picking an image, and then opening its metadata panel to type a comment, we can now do everything at once from Workflow, saving a lot of time.

The workflow will ask for a title and comment with 'Ask for Input' actions before launching DEVONthink.

The workflow will ask for a title and comment with 'Ask for Input' actions before launching DEVONthink.

With the workflow I've put together, you can send images to DEVONthink in two ways: you can either manually pick them from a photo picker, or you can select some images in the Photos app and share them with the workflow via the action extension. For each image you pick, Workflow will ask you to add a title (used as filename) and a comment; both are optional, but I recommend at least adding a title for context.

Each image will then kick off DEVONthink's automation by opening the app, saving the file, and going back to Workflow to repeat the process for the following image. This is the magic of x-callback-url and repeat loops at play, and it's best used with Workflow in full-screen – not in Split View. If you pick 10 images, Workflow and DEVONthink will switch between each other 10 times; it's not pretty to look at, but it works, and it speeds up image creation in the app considerably.

At the end the workflow, you'll end up with a list of DEVONthink item links in your clipboard, which you can save in a note to reference each individual file you've just created in DEVONthink.

The output of the DEVONimage workflow: title, item link, and comment.

The output of the DEVONimage workflow: title, item link, and comment.

To better demonstrate this workflow, take a look at the video below and how easily I can archive a screenshot in DEVONthink:

There's an aspect of this automation I want to highlight, and it's how Workflow visually exposes the x-success parameter sent back by DEVONthink. After successfully creating an image, DEVONthink knows that it needs to launch Workflow again, and it'll do so by sending a JSON object with metadata for the newly created file. All it takes for Workflow to interpret this data is a 'Get Dictionary Value' action.

This idea is the centerpiece of DEVONthink's new automation, which explains why these URL schemes are best experienced in Workflow's visual playground rather than other, more limited launchers.

This summer, I'm going to enhance this workflow to ensure that images are also saved in a specific group in DEVONthink. By default, new files are created in the app's global inbox; by adding a destination parameter with a UUID value to the URL command, we can tell DEVONthink to create a file inside an existing group.1

This workflow alone has been a game changer for how I can take screenshots and save them somewhere I can reference them later. After years of trying to find old screenshots in Photos or, worse, having to manually import images one by one in Scrivener, I now have a system to archive images, add comments to them, and automatically organize them. This workflow is going to become my most used one for longer stories and app reviews.

You can get the workflow here.

Create Document

The same technique that powers the createImage command – sending file attachments as base64-encoded strings – works for saving other documents in DEVONthink as well, such as PDFs. Using the Workflow extension with the 'Get Type' action, we can build a "smart extension menu" that sends a different command to DEVONthink depending on the file a user has shared with the extension.

This workflow is called DEVONmenu, and it intelligently creates the following document types in DEVONthink starting from the share sheet:

  • Web archives
  • Images
  • Markdown notes
  • PDFs

You don't have to choose a file type manually; Workflow can understand what type of file it's dealing with on its own. Before I get into the workflow's core ideas, though, let's take a look at how it works in practice:

The workflow's ability to discern multiple formats is made possible by the app's understanding of file types, but we also have to highlight the new commands and changes brought to DEVONthink in its latest release.

Most notably:

  • Images and PDFs can be created with the same new command (createDocument) by encoding files to base64 and attaching that string to the source parameter;
  • Images and PDFs created with the same command require a UTI string – examples of which can be found on Apple's website;
  • Markdown notes and web archives have dedicated commands in the DEVONthink URL scheme;
  • Every file can be sent to DEVONthink with a title and a comment;
  • Once created, files can relaunch Workflow and pass their unique DEVONthink links to the app.

This versatility is the result of DEVONtechnologies' adoption of a rich set of x-callback-url commands; at this point, I'd say DEVONthink and Ulysses are the most flexible and powerful implementations of URL schemes optimized for Workflow on iOS.

The "optimized" qualifier is there for a reason: with the workflows I made, you never have to see or edit the URL schemes themselves. The actions I used are meant to abstract the complexity of URL schemes2 and provide an automation environment that "just works".

Whether you've selected some text or are sharing a PDF from the share sheet, you can invoke the DEVONmenu workflow, add a title and an optional comment, and save everything to DEVONthink. Unlike the default DEVONthink extension, this workflow will allow you to quickly save multiple documents at once, with comments, and with unique links for each document copied into the clipboard at the end.

The DEVONmenu workflow supercharges DEVONthink's Save dialog with automation and Workflow's integrations; I'm using it every day.

You can get the workflow here.

Retrieving a File

What happens when you want to fetch a file you've already saved in DEVONthink, though? I'm glad you asked.

Just like DEVONthink supports saving files through the URL scheme via an encoded text string, the same idea works in reverse – you can read files from the URL scheme by decoding a base64 string. If you use Workflow, decoding a base64 string takes only one action, which will return the original file as a Magic Variable. And obviously, the fastest way to retrieve a specific file already in DEVONthink involves the option I've added to all my workflows: unique item links.

I've always struggled to save screenshots for app reviews and articles while I was researching or writing them. Eventually, they'd get lost in Photos or I'd accidentally delete them. With DEVONthink and its item links, however, I've found a way to save images in an app that can expose them externally with links. So after solving the problem of quickly saving screenshots through automation, I turned my attention to the other end of my writing workflow – turning image references from my Markdown notes into actual image files.

I came up with this workflow by considering how I write and finding a solution that would require the least possible effort on my part. When I'm writing a story such as this one, I think of specific app features or interfaces that I want to capture right away. To do so, I can now take a screenshot, run the DEVONimage workflow, and receive a DEVONthink file link after the image has been saved. In Ulysses – my favorite text editor – I can hit Paste and the DEVONthink image link will become tappable in the document I'm working on.3

A DEVONthink item link can become tappable in Ulysses, but it takes some editing.

A DEVONthink item link can become tappable in Ulysses, but it takes some editing.

Double-tapping the image link brings up Ulysses' link editing UI, which has a button to open the original source. Doing so with a DEVONthink link launches DEVONthink and shows the file. This allows me to check on embedded reference material in a couple of seconds and it works even if I'm offline because images are stored locally in DEVONthink.

Once I'm editing a draft, it's time to turn the DEVONthink link into a public URL to an image uploaded to our CDN. This is where the Get DEVONimage workflow comes in.

Thanks to its new automation commands, DEVONthink can now provide Workflow with two distinct kinds of details about a file: its metadata or its contents. Metadata include information such as the filename, creation date, and comments; the file contents are a base64-encoded string that can be decoded by Workflow into a native file. Using these two commands, I can first confirm that a file still exists in DEVONthink, and if it does, transform its base64 representation into an image available on the web.

The workflow I've put together accepts x-devonthink:// file links either from the clipboard or shared with the Workflow extension.4 After reading the file link from the clipboard, the workflow isolates the file's UUID and launches DEVONthink with the item command. This action finds an item in DEVONthink's database by its ID and sends back metadata to Workflow using x-callback-url.

File metadata passed from DEVONthink to Workflow.

File metadata passed from DEVONthink to Workflow.

At this point, if the image exists, I want to upload it. First, I make Workflow check that the UTI of the file contains the word "image". If it doesn't, an alert comes up saying that I should try again with another file. This check prevents me from accidentally uploading, say, a PDF instead of a screenshot.

An error comes up if the DEVONimage workflow doesn't receive an image file.

An error comes up if the DEVONimage workflow doesn't receive an image file.

If the file is indeed an image, the workflow needs to launch DEVONthink again to fetch its contents via a base64 string.5 Once the file is passed back to workflow, it gets decoded, previewed with Quick Look, and, finally, uploaded to our CDN using a 'Run Workflow' action. You'll want to replace the upload action with whatever you use to upload images or save them somewhere else.

The Get DEVONimage workflow ends by generating a string of text I can paste in my Ulysses document. This text contains the image's new public URL and the file's comment, the latter directly fetched from DEVONthink. All I have to do is paste the text in Ulysses and format it as a Markdown image with a comment. In a couple of seconds, I've gone from a reference for a local file stored in DEVONthink to an image uploaded to our CDN that retains its original comment.

I've thought a lot about these image workflows because, as I said, I deal with hundreds of screenshots and they become a serious problem for my iOS reviews in the summer. I needed a better system to organize them, reference them, and turn them into uploads. With this setup, my Ulysses drafts look like this while I'm still writing them:

DEVONthink image links and comments are highlighted in blue with my custom Ulysses theme.

DEVONthink image links and comments are highlighted in blue with my custom Ulysses theme.

...and they turn into proper Markdown files with image links once I'm done editing:

Markdown image links in Ulysses.

Markdown image links in Ulysses.

There are a couple of ways this setup could be improved. First, I have to consider creating dedicated groups in DEVONthink for different articles I'm working on, as right now all images are saved in the global inbox.

Furthermore, Ulysses needs to support 'Paste as Markdown' – an option that has been available in the Mac version for years and that is still absent from the iOS app. With the ability to paste text as Markdown, I could create an IMG tag (instead of the blue highlighted text) as soon as I have a DEVONthink image link. Also, if I could choose one Scrivener feature to have in Ulysses, that would be an option to create arbitrary color highlights for text; that would allow me to easily distinguish portions of text within a document at a glance instead of using the app's 'Raw Source' button to highlight lines of text in blue.

I'm happy with the system I've established in DEVONthink, Workflow, and Ulysses. Keeping reference material in a separate app and connecting DEVONthink with Ulysses through Workflow enables me, among other things, to change image descriptions in DEVONthink, where it makes more sense to add comments to files. The screenshots in this story were all saved, embedded, and uploaded with this workflow, and I look forward to using it for bigger projects this year.

You can get the workflow here.

Search

The final major addition to DEVONthink automation is the ability to start searches in the app and pass results back to Workflow with metadata for each result.

I covered DEVONthink's advanced search features in my previous coverage of the app – specifically, I focused on DEVONthink's NEAR operator to find words close to each other in PDF documents. My DEVONthink database isn't too big yet, but I've been running searches on a regular basis to find sections in past issues of MacStories Weekly and comments added to images or web archives. With automation, there's now a faster way to launch these advanced searches.

Effectively, the latest DEVONthink allows us to create saved searches in Workflow and open them in DEVONthink. There are two ways to search via automation: we can prepare a search query in Workflow and open the search screen with results in DEVONthink, or we can issue the search command from Workflow, temporarily launch DEVONthink to fetch results, and go back to Workflow to view results and process them.

I've been using both methods to find files in DEVONthink, but I find the latter to be more fascinating from a technical standpoint. Using x-callback-url, DEVONtechnologies has devised a system where Workflow can send a search query to DEVONthink, which will return a JSON object containing multiple results. Each result contains a set of metadata for the item, such as its ranking (as evaluated by DEVONthink's search algorithm), dates, comments, links, and more. This is basically an app search API, only exposed via a URL scheme.6

To understand the limitations and possibilities enabled by automated DEVONthink search, I created a workflow that offers a total of four options. A search can either be a basic one (just type a search query), or it can be a NEAR search; if you don't want to use that operator, just swap it with another one. Then, the search can either stay in DEVONthink (so you can tap and preview results in the app), or it can kick you back to Workflow, which will parse results and display them in a list.

I don't have a particular use case for feeding search results back to Workflow yet, but I added the option nonetheless as I wanted to understand the system and build a proof of concept for others to iterate upon.

The idea of a powerful app such as DEVONthink offering an x-callback-url search API that exposes rich results to other apps is an intriguing one. Performing additional filtering of results in Workflow by excluding file types or date ranges could be a possible use case; another could be to search for all files in a group and iterate over each item by opening its link, reading the file, and going back to Workflow. While both search methods would yield the same results, only one of them can be automated and integrated with other apps; I'm curious to see what other users will come up with.

I've mostly been using the DEVONsearch workflow to trigger NEAR searches from a widget. Unlike the other commands, I'm still experimenting with search, but I believe it has some serious potential.

You can get the workflow here.


The folks at DEVONtechnologies have been improving DEVONthink To Go at a remarkable pace over the past few months. As I argued in February, DEVONthink had already set a new standard for file managers on iOS thanks to its advanced search features and support for multiple document types. With its new automation, DEVONthink sets a standard for other pro apps on iOS, period.

DEVONthink's new automation features have provided a stronger foundation for managing my articles' assets and research material. I've always wanted a system to embed local file references to be processed at a later stage, and this is exactly what I had in mind. I'm also increasingly switching to PDFs and web bookmarks archived in DEVONthink now that the app can be integrated with Safari and email clients via Workflow. I'm still thinking about how to implement searches in Workflow, but I have some ideas.

DEVONthink, Ulysses, and Workflow have become key elements of my writing and research workflow; I expect these automations to go even deeper in the next few months. This is going to be fun.


  1. To copy a group's link (which contains its UUID) in DEVONthink, you can open the global inbox, hit 'Edit' in the top right, select a group, hit 'Share' and then 'Copy Item Link'. ↩︎
  2. For those curious: I didn't use multiple Text actions with URL schemes in them. Instead, URL schemes are embedded in a single dictionary. Depending on the file type we're sending to DEVONthink, commands are fetched as values from the dictionary as Magic Variables, making the workflow's overall presentation cleaner and more readable. ↩︎
  3. Due to the lack of smart paste in Ulysses for iOS, however, I have to manually paste the DEVONthink link into the link editing UI. It's an odd limitation, which I hope the developers will fix in the near future. ↩︎
  4. I usually prefer to copy a file link manually from Ulysses and run the workflow from Spotlight on my iPad. ↩︎
  5. This usually takes a second for screenshots, but encoding and decoding large photos – such as 12 MB panoramas, for instance – might take a couple of seconds. Behind the scenes, iOS is launching URLs that contain thousands of characters. ↩︎
  6. Imagine if pro iOS apps could expose these APIs in a better way through JavaScript or Swift – or if there was a way to avoid launching apps at all with a native WorkflowKit framework. ↩︎

Support MacStories Directly

Club MacStories offers exclusive access to extra MacStories content, delivered every week; it’s also a way to support us directly.

Club MacStories will help you discover the best apps for your devices and get the most out of your iPhone, iPad, and Mac. Plus, it’s made in Italy.

Join Now
27 Apr 22:50

David Foster, VP of Google’s Hardware Product Development Including Pixel, Quits After Six Months

by Rajesh Pandey
David Foster, whom Google recruited last year for its newly formed hardware division, has quit the company after just six months. Google had poached Foster from Amazon where he had worked on the development of the Kindle tablets and Echo speakers. Continue reading →
27 Apr 22:50

B.C. Election: Parties transportation platforms

by pricetags

From the Vancouver Sun:

B.C.’s two main political parties have promised billions for transit projects, bridges and roads and have committed to cutting tolls, but they have no overall regional vision for transportation, says an expert in urban sustainability.

“It does strike me as odd, given the public interest, that their transportation strategies, at best, are unformulated,” said Gordon Price, a fellow at Simon Fraser University’s Centre for Dialogue and director of the school’s City Program.

“There really is no overall vision that fits into either the ideology of the party or the importance of transportation in the public mind.” …

The Liberals have promised to match that $2.2 billion, but that was months after the NDP said it would pay for 40 per cent of capital costs associated with the whole mayors’ plan. The cost of  the whole mayors’ plan has not been determined. The Liberals had previously committed to 33 per cent of capital projects, and the former minister responsible for TransLink said he had to wait for the federal money before the province could decide whether to kick in more.

The Green party pledged to match all federal funding, which includes the $2.2 billion, plus any other money the feds commit going forward.

“It’s almost begrudging,” Price said of the Liberal promise.

The Liberals have also said they will negotiate with the feds and TransLink on project specifics, which is something they have been saying for months. The Surrey light-rail and Broadway subway lines are specific priorities for the Liberals. …

Neither the Liberals or the NDP have been specific about regional funding sources for transportation, but Green party leader Andrew Weaver said he would use carbon tax revenues and mobility pricing to pay for transit improvements and reduce congestion. Mobility pricing refers to charges associated with using transportation services and includes road usage charges, transit fares and parking fees.

Price said it is helpful to have one party discussing revenue generating options, particularly mobility pricing. He said the details of implementation, however, would be critical and contentious.

He said the most significant policy shift is using carbon tax revenues for funding.

On the transportation infrastructure front, the Liberals want to cap bridge tolls at $500 per year, and build a bridge to replace the George Massey Tunnel between Delta and Richmond. The NDP’s plan doesn’t include a Massey Bridge (instead, Horgan has talked about widening the tunnel), but the party does call for eliminating bridge tolls.

Both tolling plans, Price said, are at odds with the parties’ commitments to transit, particularly because tolling is supposed to pay for half of the new Pattullo Bridge and removing tolls will not encourage people to abandon their cars. He said the move could put the region behind for unnecessary reasons.

“You can tell this is blatant vote buying. And having been a politician, I have no problem with that. I get you have to do that,” Price said. “It’s vote buying because you have these ridings on either side of the bridge and you make a single issue, a single appeal without context, without understanding what the implications of this are.” …

_____________________________

A few additional remarks:

No party makes the connection between transportation and the kind of region we want to shape.  ‘Transportation’ is basically about big projects, whether transit or bridges, and how to pay for them – not about their impacts on land use, housing affordability, regional vision, equity and fairness, not even the opportunities for new technologies and jobs.

There is essentially nothing, even with respect to funding, on either the personal and regional impacts of mobility pricing.  How we pay affects how we move – but, save for the Greens, the parties have little to say about that.  And the Greens would fundamentally change one of the pillars of carbon pricing as introduced by Gordon Campbell: revenue neutrality.  Big implications there.

Worst of all, the Liberals retain the referendum requirement, and the other parties have failed to attack them on that, as well as their record of impediment for transit in Metro.  If the Liberals are re-elected and the referendum requirement stays in place, there’s almost no chance for effective mobility pricing – which means almost no movement on funding the next stages of the Mayors’ 10-year plan without a lot of political angst and delay.

Metro Vancouver is, as often said, the economic engine of the province; it’s where the jobs are.  And the best jobs in tech, research, education, health care, business services, culture and tourism are dependent on a high-choice, technologically sophisticated transportation network.  I mean literally along the Broadway corridor and along Surrey’s Innovation Boulevard.

Why aren’t all the leaders putting on their hard hats and digging their shovels into the ground to capture not just the project-based aspects of transportation but the vision for this region’s future – and all the connections to jobs and housing.  It’s not about ‘solving congestion.’  It’s about an opportunity to capture the public’s confidence – and their votes.


27 Apr 22:50

The Port’s Dirty Secret-Vancouver Biggest Exporter of Coal in North America

by Sandy James Planner

hi-bc-130118-coal-terminal-wcwc

Alberta Oil Magazine reports that Vancouver is now North America’s largest coal  exporting port. Imagine-even though 66,000 people in China died in 2013 due to pollution from coal according to Tsinghua University (Beijing) we think it’s a good idea to flog it offshore. Burning coal to create electricity creates twice the greenhouse gas per unit of energy  as natural gas, and about 30 per cent more than oil. Coal is also the “largest source of human-produced greenhouse gasses” at almost 50 per cent.

Today, B.C. ports are shipping increasing amounts of coal to Asia, including American coal, for steel production and power generation. Last year, U.S. coal producer Lighthouse Resources started sending coal across the Pacific via Vancouver as environmentalists blocked a new export terminal in Oregon.” 

People living in Ladner and Tsawwassen can get a speckled dotting of coal dust on outside items over the winter from the coal that is delivered by train to Deltaport. There has been testing done by Metro Vancouver  to ensure that residential areas get 1.7 milligrams or less of coal dust daily. The coal trains have two dust-suppression sprays on the way to the Roberts Bank Terminal. It is expected that even more coal will be shipped with the planned expansion of the Fraser Surrey Docks upriver from Deltaport.

coal-terminal

Meanwhile in Great Britain the British are celebrating their first coal free day since 1880.  The BBC reports this as a “watershed moment in how our energy system is changing”  and an example of how “the once mighty fuel is being consigned to history”.

“Part of the reason is that solar panels and wind turbines now provide much more electricity to factories and homes…And as older, uneconomic coal-fired plants have closed in recent years, the fossil fuel has been playing a much smaller role in our energy system.”

The first centralized public coal-fired generator was at Holborn Viaduct in London, opened in 1882.  “According to Gridwatch.co.uk, around half of British energy on the first coal free day came from natural gas, with about a quarter coming from nuclear plants. Wind, biomass, and imported energy were also used.”

While Great Britain tries to move away from coal use, North America facilitates the transport of  it to China, which burns 3.7 billion tons of coal annually, or approximately three times that consumed by the United States. As e360 Yale magazine states, Coal is the  industry’s “cigarette of the new age” looking for new markets to exploit.


Two miners digging coal in 1924Image copyrightPA
Image captionThese British miners are seen drilling for coal in 1924

 


27 Apr 22:50

Help Wanted

by Tatum Dooley

Asking for help is one of the most vulnerable things a person can do. The act of finding words for despair, packaging trauma for someone else’s judgment, is a process that both reproduces the pain and risks diminishing it by seeming trite. Offering help is difficult in its own way: no matter what your intentions, giving unsolicited advice is a faux-pas that risks coming across as superior or all-knowing rather than sympathetic.

Yet there are entire communities formed around strangers asking for, and offering, advice. Advice forums like reddit’s /r/relationships are similar to newspaper advice columns — an anonymous reader writes in with a problem, and someone they’ve never met replies — except that any one of the forum’s 600,000+ members can fill the role of Abby. Posts can be “upvoted” or “downvoted,” which influences how likely the thread is to be seen — a dubious feature, perhaps — and, likewise, advice within the forum can be voted up or down, presenting a model of self-policing that ensures bad advice and trolls aren’t taken seriously. The forums extend self-improvement pursuits, which are typically solitary: we read self-help books and mediate, follow diets that promise higher energy, speak to therapists, and when we find something that works, we want to share. Reading /r/relationships was for me initially a guilty pleasure akin to binge-watching reality television, with the difference that I hoped it could teach me how to be a better person: I scavenged for advice that I could use. But the best advice had little to do with what was said, and more to do with the way it circulated.

I scavenged for advice that I could use. But the best advice had little to do with what was said, and more to do with the way it circulated

Anonymous advice varies in usefulness, but the popularity of these forums demonstrates a basic human impulse to share pain and request help, as well as to offer it, despite the proscriptions around doing so. Online advice forums provide a set of parameters within which to give and receive advice — a controlled arena for breaking a cultural taboo. The advice itself is often beside the point.


Advice forums have given rise to their own, call-and-response genre, with a set of rules and a narrative structure. The advice-seeker describes a problem typically in 500 words or less, condensing and cutting away the details of their life to leave familiar forms of trouble; advice-givers respond in recognizable tropes that, memorized, can filter down into day-to-day conversations.

Attractive one-liners litter advice forums; concrete and self-assured, they catch your attention and, in their declarative confidence, assert their rightness. It isn’t until you spend more time mulling the sentences over that you realize they don’t say much of anything. The generalizing quality of assertive advice makes it low-risk: the other person is able to attach their own meaning to it, so you’re less likely to be leading them astray. There’s a difference between giving good advice and being right.

The success of repetitious advice functions much like that of horoscopes, or personality tests, and has to do with the “Forer effect.” In 1948, the American psychologist Bertram Forer told his psychology students that they would receive feedback on their personality according to how they answered certain test questions. He gave them all the same boilerplate response, including:

You have a great need for other people to like and admire you.

You have a tendency to be critical of yourself.

You have a great deal of unused capacity which you have not turned to your advantage.

While you have some personality weaknesses, you are generally able to compensate for them.

Disciplined and self-controlled outside, you tend to be worrisome and insecure inside.

The students rated these statements as being extremely accurate.

Likewise, forums are full of statements advising advice-seekers to be mindful of their boundaries, limit engagement with people who aggravate them, reduce their social media intake, exercise, and seek professional help — all, in the majority of cases, good ideas. These horoscopic responses are used as advice so often they become memes: they provide no further context about how to achieve what they are advising, and rarely relate back to any details in the posts. This doesn’t make it bad advice per se. It demonstrates that humans often deal with similar problems, making advice-givers feel confident in rehashing the same advice ad nauseam.

Saying the right thing rarely solves a problem

Reading post after post, overarching patterns begin to emerge — certain archetypal problems and solutions that serve to unite forum members, no matter how disparate their circumstances might seem in particular. Carl Jung believed that archetypes were part of a collective unconscious: there are archetypal figures (mother, father, the devil, the hero, or in contemporary times, “the white knight” and “the narcissist”), archetypal events (birth, death, marriage, divorce), and archetypal motifs (the apocalypse). Horoscopes rotate these archetypes, which makes them appear as if they are speaking directly to you and referring to your life. You could dismiss them as fraudulent, but you would be ignoring the meaningful way people interact with Forer statements; it isn’t the words that matter, it’s their utility. Generic advice acts as a vessel for one’s own meaning, a catalyst for specialized knowledge of self that can be otherwise hard to access. Forums can help you act on what you already know.

In A Way of Being, psychologist Carl R. Rogers touched on the comfort that universality brings: 

There is another peculiar satisfaction in really hearing someone: It is like listening to the music of the spheres, because beyond the immediate message of the person, no matter what that might be, there is the universal. Hidden in all of the personal communications which I really hear there seem to be orderly psychological laws, aspects of the same order we find in the universe as a whole. So there is both satisfaction of hearing this person and also the satisfaction of feeling one’s self in touch with what is universally true.

Online advice forums express commonality through circulating the same problems and the same solutions — not advice, really, but more like a representation thereof, which serves a different function. There is comfort in such repetition: it tells you that you are not alone with your problem, and reminds you that connection is possible.


While formulaic advice has its benefits, it comes, of course, at the expense of complexity. The simplicity of writing a problem down can be therapeutic, but brevity is a pitfall of online advice forums — /r/relationships mandates that advice-seekers summarize their problems at the end of the post in an addendum labeled “tl;dr.” The result reads like a dystopian language textbook: my boyfriend flirts with other girls; I killed my friends poodle by accident; a woman at work is stalking me. The flattening of real problems into punchlines means that posts are read at face value, resulting in advice-cum-horoscopic one liners that barely acknowledge the complex nature of interpersonal relations. The process is comforting, but the results can be counterproductive. The possibility that someone has the right answer offers a temporary salve: it’s nice to think that such people exist, and to feel as though you are no longer the only one working towards a solution. But it hardly addresses what’s wrong; saying the right thing rarely solves a problem.

Just as language textbooks can’t teach the intricacies of humor or implied meaning, real advice requires interactive work, and the process is often less cathartic than it is frustrating. It takes time and patience, runs the risk of going awry, and doesn’t offer answers as much as it reveals that the problem may be different from originally thought. Real, as opposed to formulaic advice, requires what Rogers calls “hearing deeply”: listening for the subtext beneath the immediate message. In person, it’s hearing someone say they’re fine, with pain in their voice, and detecting the pain under the words. Online it involves reading closely, noting tone and detail, to intuit what the core of the problem is, and referring carefully to one’s own life experience as a guide. Complexity requires like solutions. 

These horoscopic responses are used as advice so often they become memes, making advice-givers feel confident in rehashing the same advice ad nauseam

Inserting yourself into the advice you give, leveling the playing field so that you and the person who needs help are equals, is a pillar of feminist therapy, which centers the viewpoint of marginalized, accounts for political and cultural oppression, and works to empower the person seeking advice. This kind of advice is trickier; it requires both deeper thought, and true vulnerability on the part of the advice-giver. Rather than taking a problem at face value, the good advice-giver asks questions, and offers examples toward a framework of possible options, without equating one experience with another.

Such engagement always runs the risk of giving offense; sharing stories and asking questions are anticlimactic compared to the declarative quick-fixes that forums often provide. But this approach is more likely to be useful. In one /r/relationship thread, a poster explained that he thought his landlord was entering his apartment and moving his furniture, leaving weird notes. The literal advice for this is: call the police, move out, call the local landlord association. Instead, a commenter suggested that the poster exit their apartment and call the fire department: they warned of the possibility of a carbon monoxide leak. In an update, it turned out this advice was correct — the poster was suffering from carbon monoxide poisoning, causing him to forget moving furniture and writing himself notes.

In another /r/relationship thread, a poster summarized an angry message she had sent her boyfriend, who was now ignoring her. The message she sent was extreme — but buried in her post was a small sentence about feeling as if he pressured her into having sex for the first time, followed by the quick dismissal that it was “her choice to make.” Commenters let the detail slip by and instead lectured her on her outburst, how she had completely messed up, that she should be nicer to people. Commenters, failing to detect the post’s nuance, gave, in my opinion, the wrong advice. Was it not possible that her anger was justified, and that she had a right to be angry?

Posts are most effective when the advice-giver takes an interest, points out knots in logic, examines from 360 degrees: Does your partner get angry at little things? Is this a pattern? Do you have a plan to leave? The advice often doesn’t look like advice at all. It involves peeling layers off a narrative that the poster has built — hearing deeply — and offering insight into what might actually be happening. It’s a conversation, in other words — one that reproduces the difficulties of engagement that make advice boards, almost fantastical in their simplicity, so cathartic in the first place.


Working on this essay at the library, a person sat across from me with a stack of books: When You Need a Miracle: stories to give you hope, Depression: the way out of your prison, a religious text. I imagined they were going through a hard time. I had no advice to give, but felt the overwhelming urge to provide comfort. The unwritten code of conduct told me my presumption would be uncouth, and self-consciousness held me back. My silence haunted me for the rest of the day.

Then I understood better why advice forums are so popular: they diminish the feelings of self-consciousness and frustration we feel at the prospect of interacting with someone else’s pain, or externalizing our own pain for somebody else. Advice forums provide a formulaic structure to the murky territory of demonstrating empathy.

The urge to share is trumped by the possibility of being stigmatized or rejected; the basic urge to provide comfort is trumped by the possibility of being intrusive or saying the wrong thing. Online advice forums offer relief from these anxieties, a platform to engage with our urges, if not each other — a relief from the difficulties of real interaction, which yield no easy solutions.

27 Apr 22:50

What is The History of The Quantified Self a History of? Part 3

by Gabi Schaffzin

Welcome to part three of my multi-part series on the history of the Quantified Self as a genealogical ancestor of eugenics. In last week’s post, I elucidated Francis Galton’s influence on experimental psychology, arguing that it was, largely, a technological one. In an oft-cited paper from 2013, researcher Melanie Swan argues that “the idea of aggregated data from multiple…self-trackers[, who] share and work collaboratively with their data” will help make that data more valuable—be it to the individual tracking, physician working with them, corporation selling the device worn, or other stakeholder (86). No doubt, then, the value of the predictive power of correlation and regression to these trackers. Harvey Goldstein, in a paper tracing Galton’s contributions to psychometrics, notes that Galton was not the only late-nineteenth century scientist to believe that genius was passed hereditarily. He was, however, one of the few to take up the task of designing a study to show genealogical causality regarding character, thanks once again to his correlation coefficient and resultant laws of regression.

Galton’s contributions to psychometrics go beyond technological, however, and into methodological. In what I might have also included as an example of the scientist’s support for self-experimentation, Galton’s 1879 “Psychometric Experiments” features the results of a word association test performed on himself:

The plan I adopted was to suddenly display a printed word, to allow about a couple of ideas to successively present themselves, and then, by a violent mental revulsion and sudden awakening of attention, to seize upon those ideas before they had faded, and to record them exactly as they were at the moment when they were surprised and grappled with. (426)

Famously, this word association test was used by Carl Jung as he developed methods to classify his subjects into his various psychological types (Paul 82). Eventually, this tool pioneered by Galton was used to build the Myers-Briggs Type Indicator a 93-question test which plots a test-taker’s personality along multiple axes. Interestingly, the MBTI works against what Nicholas Lemann calls “the first principle of psychometrics…that all distributions bunch up in the middle, in the familiar form of a bell curve” (91). Because of the MBTI’s assumption that individuals are either introverts or extroverts, and so on, resultant data would look like an inverse bell curve, with data bunched up on either end of the axes. Though the test had been conceived of decades prior, Katherine Briggs and Isabel Briggs Myers were finally inspired to finalize the MBTI’s matrices in 1943. The test was, per its creators, intended to help people understand one another—a concern inspired by the onset of World War II, which also provided a more practical reason for its development: helping women who were replacing men in the industrial workplace to find the right “fit” in their new jobs (Myers 208).

Beyond influence in managerial-type personality tests, a Galtonian lineage can be found in the development of the Minnesota Multiphasix Personality Inventory. The 567-item questionnaire was built using a system derived from the nosological methodology of Emil Kraepelin, a German psychologist who, in 1921, published a paper arguing for “inner colonization”—what one translator suggests “as being rightly associated with the eugenics movement” (Engstrom and Weber 341). While the MMPI is perhaps the most widely used psychological personality test, it is closely followed by the Sixteen Personality Factor Questionnaire, a 187-item test developed by Raymond Cattell in the 1940s (Paul xii, xiv). The eccentric researcher developed his own language (with words like “Autia”, “Harria”, Parmia”, and “Zeppia” all referring to different character traits) in order to describe subjects in a novel manner. Cattell’s quirkiness is perhaps not too surprising when his academic pedigree is revealed: he was recruited into psychology by the eugenicist Cyril Burt (Paul 179), who was eventually revealed to have falsified most of his data in twin studies meant to support Galtonian conceptualizations of heredity (Hattie 259). Charles Spearman, Cattell’s academic mentor, was another eugenicist who argued that “‘An accurate measurement of everone’s inteligence would seem to herald the feasibility of selecting better endowed persons for admission into citizenship—and even for the right of having offspring’” (Paul 179). And while Cattell attempted, after World War II, to walk back his belief in purely hereditary personality traits, he could not resist revisiting his eugenicist ways in his 1972 A New Morality From Science (Paul 180-81).

The history of Galton and eugenics, then, can be traced into the history of personality tests. Once again, we come up against an awkward transition—this time from personality tests into the Quantified Self. Certainly, shades of Galtonian psychometrics show themselves to be present in QS technologies—that is, the treatment of statistical datasets for the purpose of correlation and prediction. Galton’s word association tests strongly influenced the MBTI, a test that, much like Quantified Self projects, seeks to help a subject make the right decisions in their life, though not through traditional Galtonian statistical tools. The MMPI and 16PFQ are for psychological evaluative purposes. And while some work has been done to suggest that “mental wellness” can be improved through self-tracking (see Kelley et al., Wolf 2009), much of the self-tracking ethos is based on factors that can be adjusted in order to see a correlative change in the subject (Wolf 2009). That is, by tracking my happiness on a daily basis against the amount of coffee I drink or the places I go, then I am acknowledging an environmental approach and declaring that my current psychological state is not set by my genealogy. A gap, then, between Galtonian personality tests and QS.

Next week, I’ll conclude the series by suggesting that this gap might be closed with the help of your friend and mine, Michel Foucault. Come back, won’t you?

Gabi Schaffzin is a PhD student at UC San Diego. He hates personality tests—of which he has had to take many, thanks to his past life—because he always ends up smack dab in the middle of whatever silly outcomes are possible. 


References

Engstrom, E. J., and M. M. Weber. “Classic Text No. 83: ‘On Uprootedness’ by Emil Kraepelin (1921).” History of Psychiatry, vol. 21, no. 3, 2010, pp. 340–350., doi:10.1177/0957154×10376890.

Galton, Francis. “Psychometric Experiments.” Brain, vol. 2, no. 2, 1879, pp. 149–162., doi:10.1093/brain/2.2.149.

Goldstein, Harvey. “Francis Galton, Measurement, Psychometrics and Social Progress.” Assessment in Education: Principles, Policy & Practice, vol. 19, no. 2, 2012, pp. 147–158., doi:10.1080/0969594x.2011.614220.

Hattie, J. (1991). “The Burt Controversy: An essay review of Hearnshaw’s and Joynson’s biographies of Sir Cyril Burt.” Alberta Journal of Educational Research, 37(3), 259-275.

Lemann, Nicholas. The Big Test: the Secret History of the American Meritocracy. New York, Farrar, Straus and Giroux, 2007.

Myers, Isabel Briggs, and Peter B. Myers. Gifts Differing: Understanding Personality Type. Mountain View, CA, Nicholas Brealey Publishing, 2010.

Paul, Annie Murphy. The Cult of Personality: How Personality Tests Are Leading Us to Miseducate Our Children, Mismanage Our Companies, and Misunderstand Ourselves. New York, Free Press, 2004.

Swan, Melanie. “The Quantified Self: Fundamental Disruption in Big Data Science and Biological Discovery.” Big Data, vol. 1, no. 2, 2013, pp. 85–99., doi:10.1089/big.2012.0002.

Wolf, Gary. “Measuring Mood – Current Research and New Ideas.” Quantified Self, 12 Feb. 209, quantifiedself.com/2009/02/measuring-mood-current-resea/. Accessed 21 Mar. 2017.