diff --git a/public/site/2015-05/.gitignore b/public/site/2015-05/.gitignore new file mode 100644 index 00000000..45c15053 --- /dev/null +++ b/public/site/2015-05/.gitignore @@ -0,0 +1,3 @@ +_site +.sass-cache +.jekyll-metadata diff --git a/public/site/2015-05/_config.yml b/public/site/2015-05/_config.yml new file mode 100644 index 00000000..1c5e5bc9 --- /dev/null +++ b/public/site/2015-05/_config.yml @@ -0,0 +1,21 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely need to edit after that. +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'jekyll serve'. If you change this file, please restart the server process. + +# Site settings +title: Your awesome title +email: your-email@domain.com +description: > # this means to ignore newlines until "baseurl:" + Write an awesome description for your new site here. You can edit this + line in _config.yml. It will appear in your document head meta (for + Google search results) and in your feed.xml site description. +baseurl: "" # the subpath of your site, e.g. /blog +url: "http://yourdomain.com" # the base hostname & protocol for your site +twitter_username: jekyllrb +github_username: jekyll + +# Build settings +markdown: kramdown diff --git a/public/site/2015-05/_includes/footer.html b/public/site/2015-05/_includes/footer.html new file mode 100644 index 00000000..4a5195fd --- /dev/null +++ b/public/site/2015-05/_includes/footer.html @@ -0,0 +1,6 @@ + + + + diff --git a/public/site/2015-05/_includes/head.html b/public/site/2015-05/_includes/head.html new file mode 100644 index 00000000..1598d6fe --- /dev/null +++ b/public/site/2015-05/_includes/head.html @@ -0,0 +1,12 @@ + + + + + + {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} + + + + + + diff --git a/public/site/2015-05/_includes/header.html b/public/site/2015-05/_includes/header.html new file mode 100644 index 00000000..4fc882a8 --- /dev/null +++ b/public/site/2015-05/_includes/header.html @@ -0,0 +1,22 @@ +
+ + +
+ + +
diff --git a/public/site/2015-05/_includes/icon-github.html b/public/site/2015-05/_includes/icon-github.html new file mode 100644 index 00000000..e501a16b --- /dev/null +++ b/public/site/2015-05/_includes/icon-github.html @@ -0,0 +1 @@ +{% include icon-github.svg %}{{ include.username }} diff --git a/public/site/2015-05/_includes/icon-github.svg b/public/site/2015-05/_includes/icon-github.svg new file mode 100644 index 00000000..4422c4f5 --- /dev/null +++ b/public/site/2015-05/_includes/icon-github.svg @@ -0,0 +1 @@ + diff --git a/public/site/2015-05/_includes/icon-twitter.html b/public/site/2015-05/_includes/icon-twitter.html new file mode 100644 index 00000000..e623dbd6 --- /dev/null +++ b/public/site/2015-05/_includes/icon-twitter.html @@ -0,0 +1 @@ +{% include icon-twitter.svg %}{{ include.username }} diff --git a/public/site/2015-05/_includes/icon-twitter.svg b/public/site/2015-05/_includes/icon-twitter.svg new file mode 100644 index 00000000..dcf660e7 --- /dev/null +++ b/public/site/2015-05/_includes/icon-twitter.svg @@ -0,0 +1 @@ + diff --git a/public/site/2015-05/_layouts/default.html b/public/site/2015-05/_layouts/default.html new file mode 100644 index 00000000..b066ddc3 --- /dev/null +++ b/public/site/2015-05/_layouts/default.html @@ -0,0 +1,16 @@ + + + + {% include head.html %} + + + + {% include header.html %} + + {{ content }} + + {% include footer.html %} + + + + diff --git a/public/site/2015-05/_sass/_base.scss b/public/site/2015-05/_sass/_base.scss new file mode 100644 index 00000000..0883c3cd --- /dev/null +++ b/public/site/2015-05/_sass/_base.scss @@ -0,0 +1,206 @@ +/** + * Reset some basic elements + */ +body, h1, h2, h3, h4, h5, h6, +p, blockquote, pre, hr, +dl, dd, ol, ul, figure { + margin: 0; + padding: 0; +} + + + +/** + * Basic styling + */ +body { + font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; + color: $text-color; + background-color: $background-color; + -webkit-text-size-adjust: 100%; + -webkit-font-feature-settings: "kern" 1; + -moz-font-feature-settings: "kern" 1; + -o-font-feature-settings: "kern" 1; + font-feature-settings: "kern" 1; + font-kerning: normal; +} + + + +/** + * Set `margin-bottom` to maintain vertical rhythm + */ +h1, h2, h3, h4, h5, h6, +p, blockquote, pre, +ul, ol, dl, figure, +%vertical-rhythm { + margin-bottom: $spacing-unit / 2; +} + + + +/** + * Images + */ +img { + max-width: 100%; + vertical-align: middle; +} + + + +/** + * Figures + */ +figure > img { + display: block; +} + +figcaption { + font-size: $small-font-size; +} + + + +/** + * Lists + */ +ul, ol { + margin-left: $spacing-unit; +} + +li { + > ul, + > ol { + margin-bottom: 0; + } +} + + + +/** + * Headings + */ +h1, h2, h3, h4, h5, h6 { + font-weight: $base-font-weight; +} + + + +/** + * Links + */ +a { + color: $brand-color; + text-decoration: none; + + &:visited { + color: darken($brand-color, 15%); + } + + &:hover { + color: $text-color; + text-decoration: underline; + } +} + + + +/** + * Blockquotes + */ +blockquote { + color: $grey-color; + border-left: 4px solid $grey-color-light; + padding-left: $spacing-unit / 2; + font-size: 18px; + letter-spacing: -1px; + font-style: italic; + + > :last-child { + margin-bottom: 0; + } +} + + + +/** + * Code formatting + */ +pre, +code { + font-size: 15px; + border: 1px solid $grey-color-light; + border-radius: 3px; + background-color: #eef; +} + +code { + padding: 1px 5px; +} + +pre { + padding: 8px 12px; + overflow-x: auto; + + > code { + border: 0; + padding-right: 0; + padding-left: 0; + } +} + + + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2)); + max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); + margin-right: auto; + margin-left: auto; + padding-right: $spacing-unit; + padding-left: $spacing-unit; + @extend %clearfix; + + @include media-query($on-laptop) { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit})); + max-width: calc(#{$content-width} - (#{$spacing-unit})); + padding-right: $spacing-unit / 2; + padding-left: $spacing-unit / 2; + } +} + + + +/** + * Clearfix + */ +%clearfix { + + &:after { + content: ""; + display: table; + clear: both; + } +} + + + +/** + * Icons + */ +.icon { + + > svg { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + + path { + fill: $grey-color; + } + } +} diff --git a/public/site/2015-05/_sass/_layout.scss b/public/site/2015-05/_sass/_layout.scss new file mode 100644 index 00000000..d4737b16 --- /dev/null +++ b/public/site/2015-05/_sass/_layout.scss @@ -0,0 +1,138 @@ +@import url('https://fonts.googleapis.com/css?family=Rubik:300,400|Rubik+Mono+One'); + +html, body { + width: 100%; + height: 100%; + + font-family: 'Rubik', sans-serif; + font-weight: 300; + text-align: justify; +} +body * { + /*outline: 1px solid rgba(255, 0, 0, 0.5);/**/ +} +h1 { + margin: 0; + + font-family: 'Rubik Mono One', sans-serif; + font-size: 4em; + text-align: center; +} +h2 { + margin: 3em 0 2em; + + font-size: 2em; + font-weight: 400; + text-align: center; + + img { + display: block; + height: 4em; + margin: auto; + } +} +h3 { + margin: 2em 0 1em; + + font-size: 1.5em; + font-weight: 400; +} +hr { + margin: 2em -2em 1em; +} +a, a:link, a:visited, a:hover { + color: inherit; +} +q { + font-style: italic; +} +nav { + display: flex; + + font-size: 1.8em; + font-weight: 400; + text-align: center; + + &>* { + flex: 1; + border: 0 solid transparent; + border-width: 0 0.5ex; + + .popup { + display: none; + } + } +} +header, section { + width: 100%; + min-height: 90%; +} + +header { + display: flex; + overflow: hidden; + + background: url('../img/shot-laptop-just-iphone.jpg') center top; + background-size: cover; + + flex-direction: column; + justify-content: stretch; + align-items: stretch; + + h1 { + height: 1em; + + color: white; + text-align: center; + } + nav:first-child { + margin: 0 2em; + + color: white; + + &>*:first-child { + text-align: left; + font-variant: small-caps; + font-weight: 300; + } + &>*:last-child { + text-align: right; + font-variant: small-caps; + font-weight: 300; + } + } + nav:last-child { + align-content: space-evenly; + + color: white; + background: rgba(255, 255, 255, 0.1); + + &>*.active, &>*:hover, &:hover>*:hover { + background: rgba(255, 255, 255, 0.1); + border-bottom: 3px solid; + } + &>*, &:hover>* { + transition: all 0.3s; + background: rgba(255, 255, 255, 0.0); + border-bottom: 3px solid transparent; + border-radius: 6px 6px 0 0; + } + } +} +section { + box-sizing: border-box; + padding: 3em 100px; + + font-size: 1.2em; +} +.flex-auto { + flex: auto; +} +.item_toggler { + .toggle_item { + display: none; + } + input:checked ~ .toggle_item { + display: block; + } +} diff --git a/public/site/2015-05/_sass/_syntax-highlighting.scss b/public/site/2015-05/_sass/_syntax-highlighting.scss new file mode 100644 index 00000000..8fac5977 --- /dev/null +++ b/public/site/2015-05/_sass/_syntax-highlighting.scss @@ -0,0 +1,71 @@ +/** + * Syntax highlighting styles + */ +.highlight { + background: #fff; + @extend %vertical-rhythm; + + .highlighter-rouge & { + background: #eef; + } + + .c { color: #998; font-style: italic } // Comment + .err { color: #a61717; background-color: #e3d2d2 } // Error + .k { font-weight: bold } // Keyword + .o { font-weight: bold } // Operator + .cm { color: #998; font-style: italic } // Comment.Multiline + .cp { color: #999; font-weight: bold } // Comment.Preproc + .c1 { color: #998; font-style: italic } // Comment.Single + .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special + .gd { color: #000; background-color: #fdd } // Generic.Deleted + .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific + .ge { font-style: italic } // Generic.Emph + .gr { color: #a00 } // Generic.Error + .gh { color: #999 } // Generic.Heading + .gi { color: #000; background-color: #dfd } // Generic.Inserted + .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific + .go { color: #888 } // Generic.Output + .gp { color: #555 } // Generic.Prompt + .gs { font-weight: bold } // Generic.Strong + .gu { color: #aaa } // Generic.Subheading + .gt { color: #a00 } // Generic.Traceback + .kc { font-weight: bold } // Keyword.Constant + .kd { font-weight: bold } // Keyword.Declaration + .kp { font-weight: bold } // Keyword.Pseudo + .kr { font-weight: bold } // Keyword.Reserved + .kt { color: #458; font-weight: bold } // Keyword.Type + .m { color: #099 } // Literal.Number + .s { color: #d14 } // Literal.String + .na { color: #008080 } // Name.Attribute + .nb { color: #0086B3 } // Name.Builtin + .nc { color: #458; font-weight: bold } // Name.Class + .no { color: #008080 } // Name.Constant + .ni { color: #800080 } // Name.Entity + .ne { color: #900; font-weight: bold } // Name.Exception + .nf { color: #900; font-weight: bold } // Name.Function + .nn { color: #555 } // Name.Namespace + .nt { color: #000080 } // Name.Tag + .nv { color: #008080 } // Name.Variable + .ow { font-weight: bold } // Operator.Word + .w { color: #bbb } // Text.Whitespace + .mf { color: #099 } // Literal.Number.Float + .mh { color: #099 } // Literal.Number.Hex + .mi { color: #099 } // Literal.Number.Integer + .mo { color: #099 } // Literal.Number.Oct + .sb { color: #d14 } // Literal.String.Backtick + .sc { color: #d14 } // Literal.String.Char + .sd { color: #d14 } // Literal.String.Doc + .s2 { color: #d14 } // Literal.String.Double + .se { color: #d14 } // Literal.String.Escape + .sh { color: #d14 } // Literal.String.Heredoc + .si { color: #d14 } // Literal.String.Interpol + .sx { color: #d14 } // Literal.String.Other + .sr { color: #009926 } // Literal.String.Regex + .s1 { color: #d14 } // Literal.String.Single + .ss { color: #990073 } // Literal.String.Symbol + .bp { color: #999 } // Name.Builtin.Pseudo + .vc { color: #008080 } // Name.Variable.Class + .vg { color: #008080 } // Name.Variable.Global + .vi { color: #008080 } // Name.Variable.Instance + .il { color: #099 } // Literal.Number.Integer.Long +} diff --git a/public/site/2015-05/css/main.scss b/public/site/2015-05/css/main.scss new file mode 100644 index 00000000..f2e566e2 --- /dev/null +++ b/public/site/2015-05/css/main.scss @@ -0,0 +1,53 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + + + +// Our variables +$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +$base-font-size: 16px; +$base-font-weight: 400; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.5; + +$spacing-unit: 30px; + +$text-color: #111; +$background-color: #fdfdfd; +$brand-color: #2a7ae2; + +$grey-color: #828282; +$grey-color-light: lighten($grey-color, 40%); +$grey-color-dark: darken($grey-color, 25%); + +// Width of the content area +$content-width: 800px; + +$on-palm: 600px; +$on-laptop: 800px; + + + +// Use media queries like this: +// @include media-query($on-palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "base", + "layout", + "syntax-highlighting" +; diff --git a/public/site/2015-05/how.html b/public/site/2015-05/how.html new file mode 100644 index 00000000..f2bed267 --- /dev/null +++ b/public/site/2015-05/how.html @@ -0,0 +1,54 @@ +--- +layout: default +--- + +
+

How does it work?

+

+ One, two, enter.

+ +

Good security depends on ease of use.

+

With Master Password, logging into any website involves these steps:

+
    +
  1. Unlock the Master Password app.
  2. +
  3. Find your site and copy its key.
  4. +
  5. Enter the site by pasting the key into its password field.
  6. +
+
+

Most browsers will then ask you to "save" the site's password. If you're comfortable with that, it's a good way of skipping the above steps and logging in even faster next time.

+ +

+ Getting started.

+ +

As explained, Master Password is not a password manager or a vault. It is not made to hold your existing site passwords — that would violate the principles it stands for and break the advantages it offers over ordinary password managers.

+

As a result, the largest curve to adopting Master Password involves changing the passwords of all your existing accounts into the cryptographically secure keys generated by Master Password.

+
+ +

I want pictures.

+ +

All right. Here's Robert on his iPhone:

+ + + +

He wants to sign up for Twitter. Robert filled in all the fields, except for password. Not wanting to worry about what his twitter secret is going to be, he switches to Master Password.

+ + + +

Of course, he begins by unlocking his user with his master password. Robert can skip this step by going into Master Password's preferences and setting it to either save his master key or remember his login, but he choses not to.

+ + + + +

He creates a password for Twitter by using its bare domain name: twitter.com. He knows not to use mobile.twitter.com or Twitter or anything non-standard, because that would be very difficult to remember correctly on a later date. If he has multiple twitter accounts, he could prefix the name with a user name and an @: rmitchell@twitter.com, superbob@twitter.com.

+ + + + +

If the account Robert's signing up for is with a website that prohibits symbols for some daft reason, Robert can change the type to Basic or something similar instead. Robert can also bump up the complexity to get an even more secure password if he wants.

+ + + + +

When Robert created the site in Master Password, it copied the password to his pasteboard. Now, Robert just switches back to Safari and pastes his brand-new password he doesn't care to remember in twitter's password field. All done!

+ +
diff --git a/public/site/2015-05/img/frustrated.svg b/public/site/2015-05/img/frustrated.svg new file mode 100644 index 00000000..e655846c --- /dev/null +++ b/public/site/2015-05/img/frustrated.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/site/2015-05/img/getting_started.svg b/public/site/2015-05/img/getting_started.svg new file mode 100644 index 00000000..255a4dca --- /dev/null +++ b/public/site/2015-05/img/getting_started.svg @@ -0,0 +1,10 @@ + + + + Slice 1 + Created with Sketch. + + + + + \ No newline at end of file diff --git a/public/site/2015-05/img/howto-mp-copy.png b/public/site/2015-05/img/howto-mp-copy.png new file mode 100644 index 00000000..4e15c2df Binary files /dev/null and b/public/site/2015-05/img/howto-mp-copy.png differ diff --git a/public/site/2015-05/img/howto-mp-copy@2x.png b/public/site/2015-05/img/howto-mp-copy@2x.png new file mode 100644 index 00000000..8ecda0c5 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-copy@2x.png differ diff --git a/public/site/2015-05/img/howto-mp-create-confirm.png b/public/site/2015-05/img/howto-mp-create-confirm.png new file mode 100644 index 00000000..d978ae67 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-create-confirm.png differ diff --git a/public/site/2015-05/img/howto-mp-create-confirm@2x.png b/public/site/2015-05/img/howto-mp-create-confirm@2x.png new file mode 100644 index 00000000..fe573167 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-create-confirm@2x.png differ diff --git a/public/site/2015-05/img/howto-mp-create.png b/public/site/2015-05/img/howto-mp-create.png new file mode 100644 index 00000000..119758f3 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-create.png differ diff --git a/public/site/2015-05/img/howto-mp-create@2x.png b/public/site/2015-05/img/howto-mp-create@2x.png new file mode 100644 index 00000000..7c042b50 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-create@2x.png differ diff --git a/public/site/2015-05/img/howto-mp-login.png b/public/site/2015-05/img/howto-mp-login.png new file mode 100644 index 00000000..cdbd14b5 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-login.png differ diff --git a/public/site/2015-05/img/howto-mp-login@2x.png b/public/site/2015-05/img/howto-mp-login@2x.png new file mode 100644 index 00000000..090db915 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-login@2x.png differ diff --git a/public/site/2015-05/img/howto-mp-type-basic.png b/public/site/2015-05/img/howto-mp-type-basic.png new file mode 100644 index 00000000..fe99a438 Binary files /dev/null and b/public/site/2015-05/img/howto-mp-type-basic.png differ diff --git a/public/site/2015-05/img/howto-mp-type-basic@2x.png b/public/site/2015-05/img/howto-mp-type-basic@2x.png new file mode 100644 index 00000000..88090e4d Binary files /dev/null and b/public/site/2015-05/img/howto-mp-type-basic@2x.png differ diff --git a/public/site/2015-05/img/howto-mp-type-change.png b/public/site/2015-05/img/howto-mp-type-change.png new file mode 100644 index 00000000..6aa6ec1b Binary files /dev/null and b/public/site/2015-05/img/howto-mp-type-change.png differ diff --git a/public/site/2015-05/img/howto-mp-type-change@2x.png b/public/site/2015-05/img/howto-mp-type-change@2x.png new file mode 100644 index 00000000..3a9f5e8e Binary files /dev/null and b/public/site/2015-05/img/howto-mp-type-change@2x.png differ diff --git a/public/site/2015-05/img/howto-twitter-done.png b/public/site/2015-05/img/howto-twitter-done.png new file mode 100644 index 00000000..8fad27f0 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-done.png differ diff --git a/public/site/2015-05/img/howto-twitter-done@2x.png b/public/site/2015-05/img/howto-twitter-done@2x.png new file mode 100644 index 00000000..55a08753 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-done@2x.png differ diff --git a/public/site/2015-05/img/howto-twitter-paste.png b/public/site/2015-05/img/howto-twitter-paste.png new file mode 100644 index 00000000..5d134ed7 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-paste.png differ diff --git a/public/site/2015-05/img/howto-twitter-paste@2x.png b/public/site/2015-05/img/howto-twitter-paste@2x.png new file mode 100644 index 00000000..7cf39d87 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-paste@2x.png differ diff --git a/public/site/2015-05/img/howto-twitter-signup.png b/public/site/2015-05/img/howto-twitter-signup.png new file mode 100644 index 00000000..8ff21b58 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-signup.png differ diff --git a/public/site/2015-05/img/howto-twitter-signup@2x.png b/public/site/2015-05/img/howto-twitter-signup@2x.png new file mode 100644 index 00000000..a3456c96 Binary files /dev/null and b/public/site/2015-05/img/howto-twitter-signup@2x.png differ diff --git a/public/site/2015-05/img/laptop-iphone.jpg b/public/site/2015-05/img/laptop-iphone.jpg new file mode 100644 index 00000000..c54773f5 Binary files /dev/null and b/public/site/2015-05/img/laptop-iphone.jpg differ diff --git a/public/site/2015-05/img/password_generate.svg b/public/site/2015-05/img/password_generate.svg new file mode 100644 index 00000000..54e7006a --- /dev/null +++ b/public/site/2015-05/img/password_generate.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/site/2015-05/img/password_head.sketch b/public/site/2015-05/img/password_head.sketch new file mode 100644 index 00000000..943879e5 Binary files /dev/null and b/public/site/2015-05/img/password_head.sketch differ diff --git a/public/site/2015-05/img/password_head.svg b/public/site/2015-05/img/password_head.svg new file mode 100644 index 00000000..cae4b325 --- /dev/null +++ b/public/site/2015-05/img/password_head.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/site/2015-05/img/password_offer.svg b/public/site/2015-05/img/password_offer.svg new file mode 100644 index 00000000..0bea34e1 --- /dev/null +++ b/public/site/2015-05/img/password_offer.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/site/2015-05/img/shot-laptop-just-iphone.jpg b/public/site/2015-05/img/shot-laptop-just-iphone.jpg new file mode 100644 index 00000000..b7bbe5a7 Binary files /dev/null and b/public/site/2015-05/img/shot-laptop-just-iphone.jpg differ diff --git a/public/site/2015-05/index.html b/public/site/2015-05/index.html new file mode 100644 index 00000000..91b1e3ab --- /dev/null +++ b/public/site/2015-05/index.html @@ -0,0 +1,128 @@ +--- +layout: default +--- + +
+

+ Passwords are frustrating.

+ +

We all struggle so hard, trying to keep our accounts secure.

+

But we're admittedly terrible at it, and what's more, we really don't want to have to bother with it.

+
+

There's a lot of noise about passwords lately. Accounts of popular people and friends alike getting hacked. Huge data leaks have become common news. And every time we're reminded of our need to be good virtual citizens — keep good passwords, use unique passwords for every site, nothing predictable or simple. How do we keep up?
And even more importantly so, how do we keep safe without sacrificing our freedom for that safety?

+

Do you really have passwords? Or does something or someone else have them for you?

+ +

+ A password is something you know,
+ not something you have.

+ +

You walk up to the entrance of an invite-only night club.
+ At the entrance, a large man, thick leather vest, stops you in your tracks. Password, please?

+
+

Passwords are secrets which we are expected to remember. Writing passwords down is highly frowned upon — and rightly so. The secret leaves your head and is out in the open. It's like confiding in your friend, and then she goes and puts it in her diary, which anyone could find.

+

Things we know are things we can keep secret, they are locked away safely in our head where none can get to them.
+ Things we have, car keys, a badge, the garage remote, are things we can lose or get stolen from us. We need to keep them safe, protected and always on-hand. This is a real hassle, and we don't want that headache for our dozens of passwords.

+

And yet, we are now expected by websites everywhere, to make and remember secret passwords for each of them, while also making them non-personal and unique? This is intolerable. No wonder many of us defect and write our passwords down wherever we can — often in the form of digital notes or password "vaults". But this is a panicked reaction to a problem we simply don't know how to handle:
The problem of passwords for everything.

+ +

+ Know one password.
+ Generate all the others.

+ +

Master Password is the answer to the problem websites put on us.

+

Master Password is not a password manager. It is not a secure vault or a digital notebook. It is something else entirely, and yet something so simple.

+

Think of it, as a store-bought calculator. If your name was 1337, your master password was 5317 and your site was named 707.993, take any calculator in the world and type in 1337 + 5317 + 707.993 to get your site's account password, = 7361.993.
+ Master Password performs a similar but cryptographically secure operation, while making everything else easy for you.

+
+

Now, remember only your name and one password. Your master password. Forget everything else.

+

With Master Password you leave no passwords laying around. You no longer store passwords in commercial, proprietory apps and no longer send them off to the cloud. You are no longer tied to your laptop or the internet if you need to look one up. Even if a personal or natural catastrophe causes you loss, you can never lose your account passwords — all you ever need is your one and only master password and anyone's Master Password calculator.

+ +
+ +