Slate JS – a completely customizable framework for building rich text editors

​Slate is a completely customizable framework for building rich text editors. The most important part of Slate is that plugins are first-class entities—the core editor logic is even implemented as its own plugin. Collaboration-ready data model. ​ Rich text — showing the features you'd expect from a basic editor. ​View all plugins...​DocumentationIf you're using Slate for the first time, check out the Getting Started walkthroughs and the Guides to familiarize yourself with Slate's architecture and mental models.

Link  |  View on HN

Beyond Passwords: 2FA, U2F and Google Advanced Protection

Per the title, not just any old 2FA but U2F and in particular, Google's Advanced Protection Program. One time passwords are often part of second factor security systems, but using one time passwords doesn’t automatically give you second factor security. At about that time, they received a notification saying that their Google password had been changed and they subsequently lost access to their Gmail. It turned out to be the latter, but it really got me thinking more about Google account security. There's an increasing array of other services out there that enable 2FA using U2F too, including:As I mentioned earlier, this was really "the consumer" path to U2F on Google.

Link  |  View on HN

How Zapier Reached $35M ARR with This SaaS SEO Strategy

Zapier Company Overview Zapier is an app integration and automation platform that lets users (primarily SMBs) set-up triggered actions and workflows between different applications. Separate landing pages for every single app to app triggered workflow or “zap” that exists between each app. According to data from SEMRush, there are over 25,000 of these landing pages ranking in the top 100 of Google. Each new app partner leads to a new set of app landing pages, expanding Zapier’s ability to capture high intent searchers. To help maximize conversions, they use highly relevant calls to action on both their app landing pages and in their blog posts.

Link  |  View on HN

Some people will pay for a subscription to a news site. How about two? Three?

It’s worked for The New York Times; it’s worked for The Washington Post and The Wall Street Journal. Even news omnivores won’t pay for everythingBoth New York and Quartz have been real standouts in terms of digital strategy. If someone’s first digital subscription is to the Times or the Post — how many are willing to pay for a second, or a third, or a fourth news site? If The New York Times is Netflix and The Washington Post is Amazon (of course) — are these premium national publishers Seeso? I don’t want to pay for every site I frequent online — Lebanexican (@Lebanexican) November 12, 2018This.

Link  |  View on HN

The C++ Build Process Explained

Since every *.c file is treated independently, every *.c file that is being compiled has its own state. We can examine the object file we generate with the simple.c source file with the following command:objdump -dr simple.osimple.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <main>: 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 83 ec 10 sub $0x10,%rsp 8: 89 7d fc mov %edi,-0x4(%rbp) b: 48 89 75 f0 mov %rsi,-0x10(%rbp) f: be 06 00 00 00 mov $0x6,%esi 14: bf 05 00 00 00 mov $0x5,%edi 19: e8 00 00 00 00 callq 1e <main+0x1e> 1a: R_X86_64_PLT32 add-0x4 1e: be 06 00 00 00 mov $0x6,%esi 23: 89 c7 mov %eax,%edi 25: e8 00 00 00 00 callq 2a <main+0x2a> 26: R_X86_64_PLT32 sub-0x4 2a: 89 c6 mov %eax,%esi 2c: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 33 <main+0x33> 2f: R_X86_64_PC32 .rodata-0x4 33: b8 00 00 00 00 mov $0x0,%eax 38: e8 00 00 00 00 callq 3d <main+0x3d> 39: R_X86_64_PLT32 printf-0x4 3d: b8 00 00 00 00 mov $0x0,%eax 42: c9 leaveq 43: c3 retqThis is what the most complex file in our tiny example looks like. In fact, the first C++ compiler was known as "C with Classes" and it was a pre-compiler that transformed a C++ into C.Modern C++, introduces two big differences:templates,mangling. The following source file gives us an idea of mangling:extern " C " int add_c ( int a, int b) { return a + b; } int add ( int a, int b) { return a + b; } int add ( const int *a, const int &b) { return *a + b; } float add ( float a, float b) { return a + b; } namespace manu { int add ( int a, int b) { return a + b; } }If we look at it with nm :nm mangling.o c++filt _Z3addff ... struct Num { int add ( int a, int b) { return a + b; } }; int add ( const Num *self, int a, int b) { return a + b; } int main ( int , char **) { Num a; const int res1 = a. add ( 5 , 6 ); const int res2 = add (&a, 5 , 6 ); return res1 + res2; }Position Type Name Signature 18 Text main main 0 Text _Z3addPK3Numii add(const Num *, int, int) 0 Weak _ZN3Num3addEii Num::add(int, int)Putting Things Together with Build SystemsWe don't want to remember and execute the build commands by hand (at least I don't).

Link  |  View on HN

Deploying Mastodon on Digital Ocean

Deploying Mastodon on Digital OceanMastodon is the new social media platform, a decentralized alternative to Twitter that is currently blowing up. This is a step by step guide on how to run your own Mastodon instance on Digital Ocean. Set up a DropletCreate a new docker droplet:This droplet has almost everything we will need preinstalled. You will receive an email from DO with the credentials you can use to log in to start setting up the server. Setting up nginx and SSLFirst, follow this guide to generate SSL keys and set up the basic nginx configuration.

Link  |  View on HN

Estimating number of bugs left to find

There’s a simple statistic called the Lincoln Index that lets you estimate the total number of errors based on the number of errors found. Let E 1 be the number of errors the first tester finds and E 2 the number of errors the second tester finds. The Lincoln Index estimates the total number of errors as E 1 E 2 /S. Suppose there are n bugs and the two testers find bugs with probability p 1 and p 2 respectively. On average, the Lincoln index over- or under-estimated the number of bugs by about 16.

Link  |  View on HN

Secret snapshots of Tokyo’s vivid street life

Instead the Japanese street photographer shoots from the chest, allowing the camera to capture happy accidents that come as a surprise... even to her. On a tour through its halls, an elderly woman stopped to stare at a photograph I’d taken of a Japanese girl. Most of my photographs capture fleeting moments: figures, landscapes and material things that emerge and disappear before me as I navigate daily life. My parents both taught at a middle school and nurtured an appreciation for art in my elder sister and me. She went on to study Japanese-style painting at art school, while I pursued art history and theory in Tokyo.

Link  |  View on HN

Companies struggling to fill jobs 'should try paying more,' Fed's Kashkari says

Companies should try digging in their pockets if they're looking to find workers for unfilled jobs, Minneapolis Fed President Neel Kashkari said Tuesday. With the unemployment rate falling to its lowest level in 49 years, there are nearly 1 million more job openings than available workers, according to the Labor Department. "Now, I'm not entirely sympathetic with that view, because I've been saying you should try paying more, and you may be able to attract more workers." "But nonetheless, the unemployment rate is going down, and there is a question about where the workforce is going to come from," he added. Immigration would be one answer to solving the issue, with low population and productivity growth, Kashkari said.

Link  |  View on HN

Scale AI is hiring engineers to accelerate the development of AI

Scale’s mission is to accelerate the development of AI by democratizing access to intelligent data. Scale is the standard solution for quality, cost, and scalability and takes the pain out of annotating data and creating high quality datasets. Scale is committed to continual innovation in combining humans with AI to prepare intelligent data, passing on these improvements to our customers and powering a growing future of AI applications.

Link  |  View on HN