191 karma · joined July 9, 2014
To double check: if you type the word "blank" into the text entry box at the bottom of the screen, you should see it automatically transcribed (i.e., automatically "blæŋk" should appear in the grid).
FYI, the underlying JSON file derived from CMUdict is at https://github.com/jmandel/heardle/blob/main/words.json (it's, uh, 10MB, but it's hosted from a CDN that supports gzip encoding so "only" takes one megabyte to send over the wire.)
The SMART Health Cards Framework is designed to dovetail with SMART on FHIR APIs for consumer access (which all Electronic Health Record vendors in the US are on the hook to support over the next year).
This has become part of my muscle memory when copying links for posterity, but it makes sense not to be the default, because sometimes you want to share an evergreen link (i.e., always pointing to the latest content) rather than an immutable link.
I love the following bit from the ToS (https://ccpatollfree.com/terms/), including GDocs for-comment link:
> ...we do not individually negotiate these terms. However, this site is made by lawyers for lawyers, and if something in these Terms prevents you from signing up, please comment here. If we find your comments compelling, we’ll upgrade these Terms for all our subscribers.
(ToS language rarely makes me smile -- at least non-sardonically.)
model technical standards by which to make interoperable popular classes of communications or information services, including—
(1) online messaging;
(2) multimedia sharing; and
(3) social networking
(And all within 180 days ;-) No small feat.)
On this topic, since I joined Microsoft this summer, one of the off-the-shelf tools I've been most impressed with is the MyAnalytics dashboard (https://docs.microsoft.com/en-us/workplace-analytics/myanaly...) built into Office online. I like that in addition to meetings, it also summarizes time spent on email and time spent working outside of "business hours" -- and decorates each stat with benchmarks to compare with company averages.
I also appreciate the claim that "Only you have access to your MyAnalytics dashboard. MyAnalytics does not provide your manager or anyone else in your organization access to your dashboard." (Of course if push comes to shove, this is all company data, but I like that it's only shown to me by policy.)
https://static-content.springer.com/esm/art%3A10.1038%2Fs415...
https://static-content.springer.com/esm/art%3A10.1038%2Fs415...
https://static-content.springer.com/esm/art%3A10.1038%2Fs415...
https://static-content.springer.com/esm/art%3A10.1038%2Fs415...
1. It is no longer fulfilling to be ambitious (i.e., a quiet home-centric, narrowing life can be fulfillment enough)
2. Ambitions are no longer fulfilled (i.e., there's not enough energy or time in the day to meet ambitious goals)
It's essential to follow best practices, and for developers to understand enough of the interaction to be confident in an implementation.
A few points to look out for after scanning the source for the project:
* if your goal is authentication (helping a user sign in to an app using an external identity) you should be sure to use an OpenID Connect flow (requesting a scope like "openid"), and be sure to convey the id_token back to the app so its signature can be verified.
* you should be sure to create a non-guessable "state" parameter when generating an OAuth authorization request, and to verify this parameter upon completion of the OAuth core flow.
* your design needs to prevent a session fixation attack where a malicious user injects her own token into the callback url (tricking a user into signing into an app using the attacker's account, and potentially submitting data that the attacker can then access the)
* it's best to avoid inserting an access token into a url (where it becomes part of a user's history, gets cached by proxies, etc) -- the OAuth code flow you're using avoids this, but then you turn around and inject the token into your own redirect
Somebody might enjoy writing a bot to propose updates that demonstrate better practices (like prepared SQL statements) for the 80% of bad examples where this is a pretty trivial manipulation.
2. OAuth 2.0 is published as an RFC from IETF. It may be a bear to read (and yes, it's a framework rather than a protocol!), but the spec is open, easy to find, and carefully edited (https://tools.ietf.org/html/rfc6749). Is TAuth meant as a specification, or a one-off API design? If it's a specification, has there been an attempt to write it down as such?
You may want to re-word what you say about patient rights in https://catalyze.io/assets/media/HIPAA-Compliance-Guide.pdf -- you say that HIPAA "gives individuals ownership of their health records", but I don't think that's quite right. The Office for Civil Rights has a good overview on patient rights at http://www.hhs.gov/hipaa/for-individuals/medical-records/ind... and when it comes to the right to access, there's an excellent in-depth overview at http://www.hhs.gov/hipaa/for-professionals/privacy/guidance/... .
(Note: it would be nice if you made your PDFs searchable; currently they're images, which makes it hard to find and cite relevant content.)
EDIT: for an in-depth treatment of the "ownership" issue (in its nuanced glory) see http://www.healthinfolaw.org/comparative-analysis/who-owns-m...
Is there a good way to find the story to which a comment belongs? This dataset raises the issue of recursive query (e.g. "with recursive" in SQLite or PostgreSQL, or "connect by" in Oracle). The only approach I see in BigQuery is specifying a fixed level with something scary like:
SELECT p0.text, s.id, s.title
FROM
[fh-bigquery:hackernews.comments] p0
JOIN EACH [fh-bigquery:hackernews.comments] p1 ON p1.id=p0.parent
JOIN EACH [fh-bigquery:hackernews.comments] p2 ON p2.id=p1.parent
JOIN EACH [fh-bigquery:hackernews.comments] p3 ON p3.id=p2.parent
JOIN EACH [fh-bigquery:hackernews.comments] p4 ON p4.id=p3.parent
JOIN EACH [fh-bigquery:hackernews.stories] s ON s.id=p4.parent
WHERE
REGEXP_MATCH(p0.text, '(?i)bigquery')
ORDER BY
p0.time DESC
For this particular data set: linking each comment to its story might be a good denormalization.1. http://www.cerner.com/Intermountain_and_Cerner_announce_stra...
I didn't mind driving through icy Boston roads at five in the morning -- but I did mind the fact that I was doing a job that computers should be able to do far faster and more accurately.
The EHR was a terminal-based system, and I wound up routing traffic through a local proxy, analyzing the logs, and figuring out how the protocols worked. (I'm sure that reading about terminal emulators would have been more effective than reverse engineering them; I can only blame sleep deprivation.) I ultimately built a Python script to drive the terminal based on a list of medical record numbers, recording vital signs and slotting them into pre-formatted progress notes for printing. It even plotted sparklines for fever curves.
It worked. And the chief of surgery loved it. He wrote me a stellar evaluation that prominently mentioned my work with the computer system (I also did good clinical work and all).
Two months later when the medical school dean read my evaluation, I got a very angry phone call. She was horrified that I had "hacked" into the computer system and taken matters into my own hands. I tried my best to explain how the system worked, and why it wasn't a threat. But I didn't really get the message across.
The upshot, though: I realized just how broken healthcare information systems were -- and that I enjoyed working on solutions. After medical school I joined the research faculty at Boston Children's Hospital, where I'm working on open specs, tools, and standards that make it easier to integrate third-party health apps with clinical data and EHRs [1]. It's been an interesting ride -- and I've learned an incredible amount about health interoperability, politics, data, and security along the way.