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…
|mkalus shared this story from destinws2's YouTube Videos.|
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:
Gordon's song "Chupacabra" can be purchased here:
GET SMARTER SECTION
Tweet Ideas to me at:
I'm "ilikerockets" on Snapchat.
Snap Code: http://i.imgur.com/7DGfEpR.png
Smarter Every Day on Facebook
Smarter Every Day on Patreon
Smarter Every Day On Instagram
Smarter Every Day SubReddit
Ambiance and musicy things by: Gordon McGladdery did the outro music the video.
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.
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
|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.”
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.
Something has happened to my brain, because I actually understand CSS now. I guess that bump on the head was harder than I thought.
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.
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.
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
Tell me more about how baseball is boring
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.
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.
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!
I used an example taken from Generating Counterexamples for failed Proofs. The SPARK checker,
gnatproof, requires a project file. This is the contents of
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
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
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.
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.
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.
These are the traffic crashes that resulted in deaths in 2015, categorized by month, time of day, and factors involved. Read More
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.
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.
Image credit: Flickr – Patrick Breitenbach
Via: The Verge
The post Podcast search engine Audiosear.ch update makes finding shows easier appeared first on MobileSyrup.
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.
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.
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.
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.
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.
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
- Markdown notes
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.
- Images and PDFs can be created with the same new command (
createDocument) by encoding files to base64 and attaching that string to the
- 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.
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.
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.
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.
...and they turn into proper Markdown files with image links once I'm done editing:
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.
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.
- 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'. ↩︎
- 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. ↩︎
- 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. ↩︎
- I usually prefer to copy a file link manually from Ulysses and run the workflow from Spotlight on my iPad. ↩︎
- 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. ↩︎
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
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.
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.
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.
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.
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.
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.
Nintendo has released its earnings report for the fiscal year running from March 31st 2016 to March 31st 2017.
The Japanese gaming giant experienced net sales of $489.1 billion yen (about $60 million CAD), with a three percent decrease on a year-on-year basis, while also having an operating profit of $29.4 billion yen (approximately $3.7 million CAD), a 10.7 percent decrease year-over-year.
The consistently out-of-stock Nintendo Switch, initially released on March 3rd, is off to a “promising start” according to Nintendo, and has shipped 2.74 million units. The Switch version of Legend of Zelda: Breath of the Wild, on the other hand, sold 2.76 million units.
It’s actually quite telling that Breath of the Wild sold slightly better than the Switch’s hardware, as it could indicate that consumers are still buying Zelda despite the fact that the Nintendo Switch is out of stock at most retailers. Additionally, the Wii U’s iteration of Breath of the Wild sold 1.08 million copies. 1-2-Switch, one of the few other games available for the Switch at launch, sold 2.7 million units. Furthermore, as expected, Pokemon Sun and Moon has sold more than 15 million units worldwide.
Nintendo plans to follow-up the release of Breath of the Wild and 1-2 Switch with Mario Kart 8 Deluxe, ARMS and Splatoon 2. The company’s earnings report did not mention Super Mario Odyssey, however, but does bring hope for more games being announced at this year’s E3.
Within the earnings report Nintendo touches upon the sales of its iOS and Android games, Super Mario Run and Fire Emblem Heroes, emphasizing that the company plans to continue working in the mobile gaming space.
Additionally, the Nintendo 3DS experienced a seven percent sales increase on a year-over-year basis, amounting to 7.27 million units. While software sales for the 3DS produced a 14 percent increase on a year-over-year basis, selling 55.08 million units, mostly due to the release of Pokemon Sun and Moon.
Nintendo also plans on releasing few notable titles for the Nintendo 3DS over the course of the next year, such as Fire Emblem Echoes: Shadows of Valentia, Hey! Pikmin and a new multiplayer action game in celebration of Kirby’s 25th anniversary.
Although Legend of Zelda: Breath of the Wild sold 1.08 million units for the Wii U, the console’s sales are not looking great. Hardware and software sales show a 77 percent and 46 percent decrease respectively.
Although this is to be expected when a video game console is being phased out following the release of its successor.
The post Zelda: Breath of the Wild outsells Nintendo Switch consoles appeared first on MobileSyrup.
- Black alloy cable hangers
- Grand Cru long reach brakes in noir
- Grand Cru Zeste cantilever brakes
- Gran Compe brake lever cable adjuster
- VO bottle cage clamps
- Metallic braid brake cable kits
- Zeppelin 52 mm 650b fenders in silver
- Hammered 45 mm 700C fenders in noir
- Touring pedals
- Copenhagen dual leg kickstand
- Dajia extra long 27.2 mm seatpost
- Dajia 1B seat post in 25.4 and 27.2 mm
- Dia Compe ENE down tube shifter
- Dia Compe ENE bar-end shifter
- Diagonale 26" rim in 36 hole
- PBP 27" rim
|mkalus shared this story from TodayIFoundOut's YouTube Videos.|
→First 50 viewers will get three meals off their Blue Apron order free! Click here: http://cook.ba/2pjdXvh
This video is sponsored by Blue Apron.
→Subscribe for new videos every day!
→How "Dick" came to be short for 'Richard': https://youtu.be/BH1NAwwKtcg?list=PLR0XuDegDqP2Acy6g9Ta7hzC0Rr3RDS6q
Never run out of things to say at the water cooler with TodayIFoundOut! Brand new videos 7 days a week!
More from TodayIFoundOut
Why is Poindexter Slang for Nerd? (and Where the Words Nerd and Geek Come From)
Why is There an R in "Mrs" When It's Pronounced "Misses"?
In this video:
The “Ye” here is not the “ye” as in “Judge not, that ye (you) be not judged”, but is rather a remnant of the letter “thorn” or “þorn” (Þ, þ). The letter thorn was used in Old Norse, Old English-Middle English, Gothic, and Icelandic alphabets and is pronounced more or less like the digraph “th”. As such, this letter gradually died out in most areas (all but Iceland), being replaced by “th”.
Music from Jukedeck - create your own at http://jukedeck.com.
I've long been using Prizmo to quickly extract text contained in photos using the iPhone's camera. Developed by Creaceed, Prizmo has always stood out among iOS scanner apps thanks to its accurate and fast OCR. While most scanner apps focus on digitizing documents and exporting PDFs, Prizmo complemented that functionality with the ability to recognize and share text with just a couple of taps. Prizmo could be used as a scanner app for paperless workflows, but I preferred to keep it on my devices as a dedicated utility to effortlessly extract and share text.
With Prizmo Go, released today on the App Store, Creaceed is doubling down on Prizmo's best feature with a separate app that's been entirely designed with OCR and sharing text in mind. While OCR was a feature of Prizmo, it becomes the cornerstone of the experience in Prizmo Go, which takes advantage of impressive new OCR technologies to make character recognition smarter, faster, and better integrated with other iOS apps.
I've been using Prizmo Go for the past couple of weeks, and it's one of the most intriguing apps I've tried in a while because it genuinely offers something new. Unlike its predecessor, Prizmo Go implements Microsoft's Cognitive Services tech to perform cloud-based OCR. Local, on-device character recognition built on Creaceed's engine still exists with support for 10 languages, offline mode, and automatic language detection, but Cloud OCR (how the feature is called in the app) is what differentiates Prizmo Go from Prizmo.
By relying on Microsoft's Computer Vision API, Cloud OCR in Prizmo Go can automatically detect text in 22 languages, including ones that aren't supported by the built-in, non-cloud OCR such as Chinese, Japanese, and Arabic. To make Cloud OCR work in the app, Creaceed had to cleverly optimize the app's engine for additional options: for instance, Prizmo Go supports both horizontal and vertical lines of text in Japanese via Cloud OCR – which required adjusting the app's document layout engine to make the camera and API work together. Furthermore, there are other fascinating technical bits under the hood for both local and Cloud OCR: Prizmo Go offers image stabilization through sharpness tracking, and it pre-processes an image as you're holding the iPhone's camera to capture a document by doing perspective correction and a dynamic rescale to ensure the app is properly tracking the text you've meant to identify.
All of this results in an innovative text scanner where Cloud OCR has been seamlessly integrated with iOS hardware. As soon as you point the camera to something that has text in it (a document, a business card, another screen – whatever you want), you'll get real-time text highlights directly in the camera view. Even with Cloud OCR enabled (which you can confirm with the cloud icon at the top of the screen), it only takes a second for text to be processed and highlighted inside the camera.
The visual effect is remarkable: it feels like the iPhone's camera is capable of parsing entire paragraphs of text in less than two seconds, which is even more impressive when you consider that OCR is happening in the cloud. I've never seen anything like Prizmo Go's real-time OCR in the camera before.
There are some options you can test in the camera view. You can enable the camera flash and image stabilization, or import an image from Photos or other document providers if you don't want to take a new picture using Prizmo Go. If you already have an image in your clipboard, tapping the Image button in the lower left corner will offer a shortcut to import the image you've copied – useful for extracting text out of images you've copied from Safari or other apps.
In addition, you can disable Cloud OCR at any time and switch to the app's built-in recognition, or you can open the Settings and tweak a few other preferences. These include a special low power mode to disable visual effects like the real-time text overlay to save on battery (though low power mode does not affect the quality of text recognition), and a toggle to enable QR code detection in the camera.
What happens after taking a picture in Prizmo Go is equally innovative and unique. After the real-time preview, Prizmo Go will perform its final processing and bring up a split-screen view with the image at the top and recognized text in the lower half of the display. Recognized text is highlighted in blue over the original image, and you can select the extracted plain text at the bottom. However, you can also tweak the selection of text by swiping over the highlights and choosing different bits of text to extract. As you swipe across underlined words to select them, subtle haptic feedback will confirm your selection and put words in the text card underneath the image. Want to extract two non-contiguous sentences from a scanned photo? Just tap & hold the screen until the crosshair loupe appears, select what you need, and you'll get extracted text at the bottom, ready to be shared.
This combination of iOS interface conventions (blue text highlights, magnification loupe) with new technologies such as haptic feedback and Cloud OCR in such an intuitive experience is what makes Prizmo Go one of my favorite app debuts from the past few months. Once text has been extracted, it can also be shared with extensions or copied – it couldn't be easier.
Prizmo Go's Accessibility options.
There's an important accessibility angle to Prizmo Go, too: a Reader option is prominently featured among actions for extracted text, which will speak the captured text in the associated language. Words are highlighted in yellow as they're spoken by iOS' VoiceOver; these are the same voices that you can find in Settings > General > Accessibility > Speech > Voices, including their enhanced variants. There are even playback controls to pause and resume text-to-speech and a slider to tweak the voice's speed. I can only imagine the potential of Prizmo Go for visually impaired users or people who simply can't read fine print and other small text labels; now, using the iPhone's camera, any image can be transformed in a matter of seconds to text that can be spoken aloud, copied, and shared.
Prizmo Go doesn't disappoint from an automation standpoint either. In this first release, the folks at Creaceed have included an x-callback-url compliant URL scheme that enables integration with other apps to pass images and receive extracted text as output. In a nutshell: you can launch Prizmo Go in two modes (take a new picture or use a picture from the clipboard) and specify what you want to do once text has been recognized and extracted. Text can be sent back to another app via x-callback-url, allowing you to set up powerful chains of automations between multiple apps and Prizmo Go.
I've put together a workflow that demonstrates how Prizmo Go can be integrated with third-party apps and other iOS features. First, the workflow will ask you to pick a mode – whether you want to take a new image in Prizmo Go, or if you want to send a previously copied image to the app; if you choose the Clipboard option, you'll be presented with a native photo picker, and the image you select will be copied to the clipboard. Then, the workflow will ask you to choose a type of OCR – I left
it as options; all of these flags are documented in the app's automation page. Finally, I added a menu that lets you save extracted text into the clipboard or as a new note in DEVONthink using the app's new automation features I detailed earlier today.
After choosing these options, Prizmo Go will launch, it'll extract text and let you validate it, and then it'll either copy text to the clipboard or send it to DEVONthink – all in a single automation flow that can even be triggered from the Workflow widget.
I've been using Prizmo Go for a couple of weeks to extract text from a variety of sources: business cards and others pamphlets2, prescriptions for our new puppies, and even screenshots of apps that don't let you select text (I'm looking at you, App Store app descriptions). In my experience, Cloud OCR has been fast and reliable, with an overall superior quality than Prizmo's built-in OCR. Cloud OCR isn't perfect – it gets the occasional accented character wrong, or it can't recognize an uppercase letter for certain typefaces – but its minor issues don't impact an otherwise incredible integration with an app that can scan text in over 20 languages within a couple of seconds.
Prizmo Go is also based on a novel business model, and I'm a fan of what Creaceed is attempting here. Prizmo Go is free to download on the App Store, and there are two kinds of In-App Purchases in the app. The first one is a one-time $4.99 In-App Purchase to unlock Export options; these are clipboard and share operations for extracted text, plus interactions with data detectors such as links and phone numbers. The Export Pack does not include VoiceOver, which is always unlocked for Accessibility purposes.
Cloud OCR units are the second type of In-App Purchases in Prizmo Go. Essentially, extracting text through Cloud OCR consumes a unit. Units can be refilled with packs: a 100-unit pack is $0.99, while 1000 units are $4.99. These consumable In-App Purchases are synced across devices with iCloud (so you won't have to buy multiple packs on all your devices), and there's a free 10-unit In-App "Purchase" you can unlock to test Cloud OCR before committing to a paid pack. Microsoft's Cognitive Services APIs are not free for developers, and I think Creaceed found a good compromise: instead of forcing users to pay a recurring subscription, they're treating successful cloud conversions as consumable units that can be easily refilled over time, which is smart.
On the first episode of AppStories, I asked John whether the App Store could still surprise us today. Prizmo Go is the perfect example of how an app category can be reinvented with fresh approaches and modern tech. Neither OCR nor scanning through the iPhone's camera are new ideas; highlighting recognized text in real-time through a Cloud OCR engine that supports 22 languages, however, is an experience I never had on iOS before.
Despite the complex technologies they're using, Creaceed shipped a polished, intuitive app that feels like having a superpower inside the iPhone's camera. Prizmo Go is an excellent implementation of computer vision and iOS Camera features, and it's gained a permanent spot on my iPhone and iPad.
Prizmo Go is available for free on the App Store.
- In my tests, Prizmo Go's URL scheme sometimes failed to recognize images from the clipboard passed by Workflow. It also would have been nice to pass images directly to the URL scheme via base64 encoding – exactly like OmniFocus, Ulysses, and DEVONthink do. I believe Creaceed is working on improving both aspects for a future release. ↩︎
- Prizmo Go has data detectors for phone numbers, URLs, and times, which makes it easy to initiate actions directly from the extracted text just by tapping links. ↩︎
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
The Art of the Personal Project is a crucial element to let potential buyers see how you think creatively on your own. I am drawn to personal projects that have an interesting vision or that show something I have never seen before. In this new revised thread, I’ll include a link to each personal project with the artist statement so you can see more of the project. Please note: This thread is not affiliated with any company; I’m just featuring projects that I find. Please DO NOT send me your work. I do not take submissions.
Today’s featured artist: Kevin Arnold
A Farrier’s Craft – Artist Statement from Kevin Arnold
I’ve always loved to shoot people engrossed in an activity. I like the raw emotion that I can capture. When I was younger I was drawn to shooting adventure sports for this very reason: there was always an opportunity to capture a variety of genuine human feelings. Whether determination, fear, joy, contemplation, exhaustion or something more ephemeral, I found that these emotions lived close to the surface when people were stretching themselves mentally and physically.
Over time I’ve become more interested in finding this emotion in other facets of life, as well. The key, for me, is that the person I’m shooting is fully invested in what they are doing. And no one is more devoted to his or her movement than a truly skilled craftsperson. You can see the depth of their expertise, their skill and the years they have invested in their craft not only on their face, but also in the efficiency of their body and the movement of their hands. I love the challenge of trying to capture that deeply instilled choreography in a photographic image.
My eldest daughter has been riding horses for many years, and we now own our own horses and barn. But I can still remember the first time I watched the farrier at work. At the time, I didn’t even know what a farrier was, and I was astounded at the timelessness of his craft. The horseshoes, the wooden bench and leather chaps, the tools, the kiln – the anvil! It’s Old World, having stood the test of centuries of technological revolutions. Working by hand with each horse to sculpt their feet and shape each shoe to complement their stance and gait is still the way to get the job done. It is a craft that is as needed today as ever, yet is refreshingly untouched by modern technology. Dave wears his experience in his hands and face, and I knew the first time I saw him at work that I would need to photograph him.
I did the shoot in the winter – it happen to be one of the coldest days – because I knew that the steam from the hot shoes and the horse’s breath would add a quality that just wouldn’t be there on a warm summer day. There is a sense of dedication and old world charm in the black and white moody imagery, that for me matches the farrier craft so well.
To see more of the personal project click here
APE contributor Suzanne Sease currently works as a consultant for photographers and illustrators around the world. She has been involved in the photography and illustration industry since the mid 80s. After establishing the art buying department at The Martin Agency, then working for Kaplan-Thaler, Capital One, Best Buy and numerous smaller agencies and companies, she decided to be a consultant in 1999. She has a new Twitter feed with helpful marketing information because she believes that marketing should be driven by brand and not by specialty. Follow her at @SuzanneSease.
Visit our sponsor Photo Folio, providing websites to professional photographers for over 9 years. Featuring the only customizable template in the world.
I thought at first that this might be a venture like Huffington Post, but when you follow from the press release to the online course pages you will see that it's hosted on LinkedIn Learning. There's a link to a free preview, but don't. Just don't. LinkedIn Learning is really expensive, and a one-hour Arianna Huffington course on 'discovering meditation and sleep' does not increase its value by any appreciable amount. LinkedIn also owns Lynda, another expensive monthly-subscription course site. Both are owned by Microsoft.[Link] [Comment]
The developer of Mastodon, Eugen Rochko, offers this update following an exciting month that found the distributed social network software suddenly discovered and (it seems) accepted by people around the world. How accepted? "At the time of writing, the Mastodon network includes more than 486,767 users spread out among more than a 1,212 instances." Now we have to expect that a certain number of users are just test users, but his Patreon support also went from $700 to $3000 a month in April, which is significant as well.[Link] [Comment]
It could be that I was working on personal learning environments a decade too early. Take this as a description of the next generation learning environment, for example: "The business school’ s intention is to create an online space that is less like a content repository and that becomes a dynamic, adaptive space where students take control of their own learning." Or from the OU: "It won’ t look like anything. Instead, it’ ll be a series of spaces and application programming interfaces (APIs) so that it won’ t be a thing in itself."[Link] [Comment]
Just received this nifty 1930 book by Edgar Lee Masters, author of Spoon River Anthology. Three verse plays.
It caught my eye because I’ve been to Acoma. A memorable bit of dialogue from that day:
YOUNG WOMAN: Good morning!
OLD WOMAN: It looks like rain.
YOUNG WOMAN: Oh! I hope so!
OLD WOMAN: Yes!
Yes: that’s why they call it a desert.
This slipcover volume was printed in an edition of 375 copies (350 for sale), signed by the author. It’s astonishing to think that this could once have been a paying proposition, especially in the teeth of the Great Depression.
It’s also astonishing that you can easily pick up a copy for $30 or $40 dollars.
Holding the position of ‘technology fellow’ alongside visionary video game creator Shigeru Miyamoto, Takeda has played a significant role in defining Nintendo’s hardware and software.
Takeda has worked for Nintendo for a total of 46 years and played a significant role in the development of classic games like Punch-Out and Pilotwings 64. He also worked on the design of the Nintendo 64’s analogue stick. While the system’s joystick seems primitive by today’s standards, when the N64’s controller was first released back in 1996, it fundamentally changed the video game industry and helped usher in the modern era of three-dimensional games.
He was also behind Nintendo’s move towards motion-controlled gaming with 2006’s Wii. It’s currently unclear if Takeda is retiring completely or just stepping down from his role as director and to take on a smaller role at the company.
Ko Shiota, the current head of Nintendo’s platform technology development division and hardware lead on the Wii U, will be taking over his position.
The post The man behind many of Nintendo’s most iconic consoles is stepping down appeared first on MobileSyrup.