Commit 8c39a2e7 authored by Rob Muhlestein's avatar Rob Muhlestein 🎧

better style and search

parent 68949f93
......@@ -39,6 +39,10 @@ D.onreadystatechange = e => {
D.querySelectorAll('a[href^="http"]')
.forEach(l=>l.setAttribute("target","_blank"))
// progressively upgrade to full search if javascript
D.querySelectorAll('a[href*="lite"]')
.forEach(l=>l.setAttribute('href',l.getAttribute('href').replace('lite','')))
const secs2dur = secs => {
let days = Math.floor(secs / 86400)
let hours = Math.floor((secs % 86400) / 3600)
......@@ -102,47 +106,9 @@ addEventListener('click', e => {
showCopied(e)
})
// positions links to headers properly
onhashchange = e => scrollBy(0,-50)
const invert = () => {
let sheet = D.createElement('style')
sheet.id = 'inverted'
sheet.innerHTML = `
#pagebg {
transform: translate3d(0,0,0);
}
:root {
background: #ddd;
filter: invert(1);
}
img:not(.invertable), .noinvert {
filter: invert(1);
}
`
D.head.appendChild(sheet)
localStorage.inverted = 'true'
}
/* turning on invert until full style sheet
* because cannot depend on the invert()
* CSS function
if (localStorage.inverted==='true') invert()
bwtoggle.onclick = () => {
if (localStorage.inverted=== 'true') {
let sheet = D.getElementById('inverted')
if (sheet) {
sheet.parentNode.removeChild(sheet)
}
//localStorage.removeItem('inverted')
localStorage.inverted = 'false'
} else {
invert() // starting out inverted now
}
}
*/
sidebarButton.onclick = _ => {
if (navLinks.style.display === 'inline-block') {
navLinks.style.display = 'none'
......
......@@ -80,8 +80,22 @@
--nav-font-size: 1rem;
--mag-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEzIj48ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iI2FhYSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTExLjI5IDExLjcxbC00LTQiLz48Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iNCIvPjwvZz48L3N2Zz4KICA=');
--scissors-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAA6UlEQVQokZ3SvytGcRTH8ZfrUo9sDJJJfpWYDEZkkMkku7IJ/4IoG5vJarWZ/AlKrJIVo/QYJIZ7bnl0b93v85m+3zrvzznn06GZlnCG2Yb1HdrAD57xgpkUOEcbx/F/xVGKwVB0H/nzXk0xyHCK+4AvUuBSWwGfdwMP6swAprBYfnLsYQ2fMXKGXrxhHi284xBzWMYXHrHZo9hxDH1R3MIHJjGBhzAsb2Adt7hCf46DmvFvwmwhOk7jDsP4DtOsbvddRXD/L28n1mnjCeNV8EDAJzXmo1hR5Fepa0WAXWlb9eiNdYn9FOAXZbMrt2GlyTYAAAAASUVORK5CYII=');
background: #222;
color: white;
/* standard color palette, change vars for themes */
--bgcolor: #222;
--fgcolor: white;
--boardfg: white;
--boardbg: black;
--high: #ccc;
--medhigh: #aaa;
--lowhigh: #888;
--highlow: #666;
--medlow: #555;
--low: #444;
--lowlow: #333;
background: var(--bgcolor);
color: var(--fgcolor);
font-size: 20px;
font-weight: 400;
font-family: var(--serif-font);
......@@ -122,35 +136,35 @@
}
a {
color: white;
border-bottom: dotted 2px #666;
color: var(--fgcolor);
border-bottom: dotted 2px var(--highlow);
text-decoration: none;
}
a[href^="http"] {
text-decoration: none;
color: #ccc;
color: var(--high);
border: none;
}
a[href^="http"]:not(.nodecor)::after {
content: '»';
color: #ccc;
color: var(--low);
}
a[href^="http"]:not(.nodecor)::before {
content: '«';
color: #ccc;
color: var(--low);
}
a:hover, .homelink:hover, .nav-link:hover {
color: #aaa;
color: var(--medhigh);
font-style: normal;
}
a.nav-link {
color: #444;
color: var(--medlow);
border: none;
}
a.nav-link::before { color: #444 !important; }
a.nav-link::after { color: #444 !important; }
a.nav-link::before { color: var(--medlow) !important; }
a.nav-link::after { color: var(--medlow) !important; }
a.homelink {
color: #333;
color: var(--medlow);
display: inline-block;
font-size: 1.8rem;
font-weight: 400;
......@@ -185,22 +199,40 @@ li {
margin-left: 1.5rem;
}
h1, h2, h3, h4, h5, h6 {
line-height: 2.3rem;
}
h1:first-of-type {
padding-top: 1rem;
}
h1 {
font-size: 1.8rem;
font-size: 1.5rem;
line-height: 1.6rem;
margin: 0;
}
h1 a {
border: none;
color: white !important;
}
h1 + h2 {
font-weight: normal;
padding: 0;
margin: 0;
margin-top: .1rem;
font-size: 1.05rem;
border: 0;
color: var(--medhigh);
}
h1 + h2:hover {
cursor: inherit;
content: '';
}
h1 + h2:hover:before {
content: '' !important;
padding: 0;
vertical-align: top;
}
h2, h3, h4, h5, h6 {
line-height: 1.4rem;
}
h2 {
border-bottom: 1px solid #aaa;
border-bottom: 1px solid var(--medhigh);
padding-bottom: .3rem;
font-size: 1.3rem;
}
......@@ -226,25 +258,6 @@ h6:not(.nolink):hover:before {
padding-bottom: .1rem;
vertical-align: top;
}
h1 + h2 {
line-height: 1rem;
font-weight: normal;
padding: 0;
margin: 0;
font-size: 1.0rem;
border: 0;
color: #aaa;
}
h1 + h2:hover {
cursor: inherit;
content: '';
margin: 0;
}
h1 + h2:hover:before {
content: '' !important;
padding: 0;
vertical-align: top;
}
figcaption, .caption {
text-align: center;
......@@ -266,8 +279,8 @@ section[class^=co-] {
padding-bottom: .01rem;
margin-left: 0;
margin-right: 0;
border-left: solid 1.75rem #444;
background: #333;
border-left: solid 1.75rem var(--low);
background: var(--lowlow);
text-align: left;
}
......@@ -279,8 +292,6 @@ blockquote {
margin-left: 0;
margin-right: 0;
border-left: solid 1.75rem transparent;
/* border: 1px solid black; */
/* border-radius: 4px; */
}
blockquote p {
margin: 0;
......@@ -303,7 +314,7 @@ code {
pre code {
letter-spacing: -0.004rem;
display: block;
background-color: black;
background-color: var(--boardbg);
background-image: var(--scissors-image);
background-repeat: no-repeat;
background-position: 99.2% 4px;
......@@ -313,7 +324,7 @@ pre code {
word-wrap: break-word;
max-width: 100%;
overflow: hide;
border: 1px dashed white;
border: 1px dashed var(--boardfg);
white-space: pre-wrap;
cursor: pointer;
padding: 1rem;
......@@ -330,7 +341,8 @@ pre code.zoomed {
line-height: 2.2rem;
border: none;
overflow: auto;
background: black;
background: var(--boardbg);
color: var(--boardfg);
}
img {
......@@ -341,8 +353,8 @@ img {
}
table {
border-bottom: 1px solid #aaa;
border-right: 1px solid #aaa;
border-bottom: 1px solid var(--medhigh);
border-right: 1px solid var(--medhigh);
border-spacing: 0;
border-collapse: collapse;
margin-left: auto;
......@@ -356,27 +368,17 @@ table caption {
}
table th {
padding: .2rem 1rem;
background-color: #333;
border-top: 1px solid #aaa;
border-left: 1px solid #aaa;
background-color: var(--lowlow);
border-top: 1px solid var(--medhigh);
border-left: 1px solid var(--medhigh);
}
table td {
padding: .2rem 1rem;
border-top: 1px solid #aaa;
border-left: 1px solid #aaa;
border-top: 1px solid var(--medhigh);
border-left: 1px solid var(--medhigh);
vertical-align: top;
}
#bwtoggle {
display: inline-block;
width: 1rem;
height: 1rem;
background: #444;
cursor: pointer;
margin-bottom: .1rem;
}
nav {
margin: 0;
font-family: var(--sans-font);
......@@ -386,15 +388,12 @@ nav {
margin: 0;
display: block;
padding-left: 1rem;
/*padding: .7rem 1.5rem;*/
background: #222;
background: var(--bgcolor);
position: fixed;
top: 0;
left: 0;
z-index: 99;
right: 0;
/*height: 3.8rem;*/
/*line-height: 2.2rem;*/
}
.nav-right {
margin: 0;
......@@ -410,12 +409,12 @@ nav {
display: none;
white-space: pre-wrap;
position: fixed;
top: 3.8rem;
top: 1.8rem;
left: 0;
margin: 0;
padding: 0;
z-index: 99;
background: #222;
background: var(--bgcolor);
margin-block-start: 0;
margin-block-end: 0;
padding-inline-start: 0;
......@@ -435,18 +434,18 @@ nav {
.sidebar-button {
display: inline-block;
margin-left: .2rem;
margin-right: .5rem;
width: 1.2rem;
height: 1.2rem;
margin: 0;
margin-right: .75rem;
vertical-align: middle;
cursor: pointer;
padding-top: .2rem;
}
.sidebar-button:hover {
color: var(--medhigh);
}
.sidebar-button::before {
margin-top: 2rem;
content: '≡' ;
font-size: 3rem;
color: #444;
color: var(--medlow);
}
main, footer {
......@@ -458,7 +457,7 @@ footer {
margin-left: auto;
margin-right: auto;
margin-top: 2rem;
color: #444;
color: var(--medlow);
}
footer a,
footer a[href^="http"]
......@@ -469,13 +468,13 @@ footer a[href^="http"]
font-size: .75rem;
line-height: 1.4;
content: "";
color: #444;
color: var(--medlow);
}
footer a[href^=http]::before { content: '«';}
footer a[href^=http]::after { content: '»'; }
footer a[href^=http]:hover { color: #888;}
footer a[href^=http]:hover::before { color: #444;}
footer a[href^=http]:hover::after { color: #444;}
footer a[href^=http]:hover { color: var(--lowhigh);}
footer a[href^=http]:hover::before { color: var(--medlow);}
footer a[href^=http]:hover::after { color: var(--medlow);}
footer p {
font-size: .75rem;
line-height: 1.4;
......@@ -495,7 +494,7 @@ span.hideable {
}
/* ----------------------------------------------- */
@media (max-width: 680px) {
@media (max-width: 780px) {
.nav-right span.hideable {
display: none;
}
......@@ -505,21 +504,14 @@ span.hideable {
}
}
/* ----------------------------------------------- */
@media (min-width: 720px) {
main, footer {
margin: auto;
}
main li {
margin-bottom: 0;
}
@media (min-width: 780px) {
main, footer {
margin-left: auto;
margin-right: auto;
}
}
/* ----------------------------------------------- */
/* don't forget to change the onresize js as well to
* match the px value */
......
......@@ -60,7 +60,7 @@ It is most than five years old at this point and in web-time that makes is almos
Of these books Head First Go is the most out of date, but covers the core language concepts enough to become productive with it immediately.
## What about videos (Udemy, YouTube, etc.)?
## What about videos on Udemy, YouTube?
Videos are a great way to *supplement* your comprehensive learning from books bolstered with projects and exercises, but videos are rarely anywhere nearly as comprehensive as is required to truly master the topic. Videos are also nearly impossible to search by keyword or index --- especially when digital books are taken into consideration.
......
......@@ -76,7 +76,7 @@
<p><strong>Aren’t tech books bad because they get out of date?</strong></p>
<p><em>Absolutely.</em> But the advantages of having a common author, with a common writer’s voice and exceptional knowledge of that material is worth it over the alternatives.</p>
<p>Of these books Head First Go is the most out of date, but covers the core language concepts enough to become productive with it immediately.</p>
<h2 id="what-about-videos-udemy-youtube-etc.">What about videos (Udemy, YouTube, etc.)?</h2>
<h2 id="what-about-videos-on-udemy-youtube">What about videos on Udemy, YouTube?</h2>
<p>Videos are a great way to <em>supplement</em> your comprehensive learning from books bolstered with projects and exercises, but videos are rarely anywhere nearly as comprehensive as is required to truly master the topic. Videos are also nearly impossible to search by keyword or index — especially when digital books are taken into consideration.</p>
</div>
</div>
......
......@@ -4,6 +4,12 @@ Title: Change Log
Here are the major changes to this [knowledge app](/knowledge/apps/). Refer to this rather than `git log` since other [smaller changes are made frequently](/knowledge/git/).
## Monday, May 25, 2020, 4:52:39PM
* Factored colors into CSS variables so that later people can set their own personalized themes.
* Multiple spacing and alignment style changes.
* Progressively upgrade to full search instead of lite if JavaScript enabled in browser.
## Sunday, May 24, 2020, 7:07:05PM
* [Bubbles](/bubbles/)
......
......@@ -37,6 +37,12 @@
<a id=top></a><div class=container>
<h1>Change Log</h1>
<p>Here are the major changes to this <a href="/knowledge/apps/">knowledge app</a>. Refer to this rather than <code>git log</code> since other <a href="/knowledge/git/">smaller changes are made frequently</a>.</p>
<h2 id="monday-may-25-2020-45239pm">Monday, May 25, 2020, 4:52:39PM</h2>
<ul>
<li>Factored colors into CSS variables so that later people can set their own personalized themes.</li>
<li>Multiple spacing and alignment style changes.</li>
<li>Progressively upgrade to full search instead of lite if JavaScript enabled in browser.</li>
</ul>
<h2 id="sunday-may-24-2020-70705pm">Sunday, May 24, 2020, 7:07:05PM</h2>
<ul>
<li><a href="/bubbles/">Bubbles</a></li>
......
---
Title: Donating and Contributing
Subtitle: Help Out Our Knowledge Development Team
Subtitle: Helping Out Our Knowledge Development Team
---
Donating and contributing to [RWX.GG]{.spy} can take many forms. Perhaps you want to write content and submit a merge request, maybe you want to help moderate the chat, or perhaps you just want to donate money or other resources to the cause.
......@@ -9,23 +9,24 @@ Donating and contributing to [RWX.GG]{.spy} can take many forms. Perhaps you wan
Anyone is welcome to submit content that is relevant to overall course and site [goals](/goals/). Simply submit a pull request or [open a ticket](https://gitlab.com/rwx.gg/README/-/issues) with suggestions or bug fixes that are needed. Please be sure to read the [style guidelines](/styleguide/) before attempting a content contribution.
## Do Your Own Stream
## Streaming
Another way to contribute is to do your own streams. Streamers who regularly stream their own interpretation of this content and their working through the course can simple open an issue requesting a link on our [streamers](/streamers/) page.
## Donations
## Donating
Currently the only way to donate is to subscribe to [rwxrob.live](https://rwxrob.live) or send money [directly](https://paypal.me/rwxrob). This may change in the future as our project grows.
## List of Content Contributors
## Content Contributors
* elementhttp
* elremingu
* Jovan Vladislav
* MousePotato
* zerostheory
* mtheory11dim
* elremingu
* unres1gned
* elementhttp
* OGLinuk
* Jovan Vladislav
* smartrefigerator
* (everyone else, let us know)
* unres1gned
* zerostheory
There are others. Let us know if we missed anyone.
......@@ -36,27 +36,27 @@
<main>
<a id=top></a><div class=container>
<h1>Donating and Contributing</h1>
<h2>Help Out Our Knowledge Development Team</h2>
<h2>Helping Out Our Knowledge Development Team</h2>
<p>Donating and contributing to <span class="spy">RWX.GG</span> can take many forms. Perhaps you want to write content and submit a merge request, maybe you want to help moderate the chat, or perhaps you just want to donate money or other resources to the cause.</p>
<h2 id="submitting-content">Submitting Content</h2>
<p>Anyone is welcome to submit content that is relevant to overall course and site <a href="/goals/">goals</a>. Simply submit a pull request or <a href="https://gitlab.com/rwx.gg/README/-/issues">open a ticket</a> with suggestions or bug fixes that are needed. Please be sure to read the <a href="/styleguide/">style guidelines</a> before attempting a content contribution.</p>
<h2 id="do-your-own-stream">Do Your Own Stream</h2>
<h2 id="streaming">Streaming</h2>
<p>Another way to contribute is to do your own streams. Streamers who regularly stream their own interpretation of this content and their working through the course can simple open an issue requesting a link on our <a href="/streamers/">streamers</a> page.</p>
<h2 id="donations">Donations</h2>
<h2 id="donating">Donating</h2>
<p>Currently the only way to donate is to subscribe to <a href="https://rwxrob.live">rwxrob.live</a> or send money <a href="https://paypal.me/rwxrob">directly</a>. This may change in the future as our project grows.</p>
<h2 id="list-of-content-contributors">List of Content Contributors</h2>
<h2 id="content-contributors">Content Contributors</h2>
<ul>
<li>elementhttp</li>
<li>elremingu</li>
<li>Jovan Vladislav</li>
<li>MousePotato</li>
<li>zerostheory</li>
<li>mtheory11dim</li>
<li>elremingu</li>
<li>unres1gned</li>
<li>elementhttp</li>
<li>OGLinuk</li>
<li>Jovan Vladislav</li>
<li>smartrefigerator</li>
<li>(everyone else, let us know)</li>
<li>unres1gned</li>
<li>zerostheory</li>
</ul>
<p>There are others. Let us know if we missed anyone.</p>
</div>
</main>
<footer>
......
......@@ -58,7 +58,9 @@ Web Dev Tools Chromium DevTools
## Services
[IT Cloud Services](/services/){.see .center}
:::co-stop
You might want to grok what an [IT cloud service](/services/) is first.
:::
--------------------- ---------------------------------
Category Suggested
......
......@@ -137,7 +137,9 @@
</tbody>
</table>
<h2 id="services">Services</h2>
<p><a href="/services/" class="see center">IT Cloud Services</a></p>
<div class="co-stop">
<p>You might want to grok what an <a href="/services/">IT cloud service</a> is first.</p>
</div>
<table style="width:79%;">
<colgroup>
<col style="width: 31%" />
......
......@@ -4,9 +4,9 @@ Subtitle: Descending Into Madness
tpl-h1duck: true
---
The Free Software Foundation, headquarters in Boston, was started by Richard Stallman in 1985 and maintains the "copyleft" licenses of the [GNU project](https://duck.com/lite?kae=t&q=GNU project). The FSF was sharply criticized by Linus Torvaldz (creator of the Linux kernel) who "doesn't want to have anything to do with the FSF ever again" after their handling of the [GPLv3 license](https://duck.com/lite?q=GPLv3 license) roll out.
The Free Software Foundation, headquarters in Boston, was started by Richard Stallman in 1985 and maintains the "copyleft" licenses of the [GNU project](https://duck.com/lite?kae=t&q=GNU project). The FSF was sharply criticized by Linus Torvaldz, creator of the Linux kernel, who "doesn't want to have anything to do with the FSF ever again" after their handling of the [GPLv3 license](https://duck.com/lite?q=GPLv3 license) roll out.
## See Also
* [Linus Explains Why Against GPLv3 and FSF](https://youtu.be/PaKIZ7gJlRU){.see}
* [Linus Explains Why He's Against GPLv3 and FSF](https://youtu.be/PaKIZ7gJlRU){.see}
......@@ -37,10 +37,10 @@
<a id=top></a><div class=container>
<h1><a href="https://duckduckgo.com/lite?kae=t&q=Free Software Foundation">Free Software Foundation</a></h1>
<h2>Descending Into Madness</h2>
<p>The Free Software Foundation, headquarters in Boston, was started by Richard Stallman in 1985 and maintains the “copyleft” licenses of the <a href="https://duck.com/lite?kae=t&amp;q=GNU%20project">GNU project</a>. The FSF was sharply criticized by Linus Torvaldz (creator of the Linux kernel) who “doesn’t want to have anything to do with the FSF ever again” after their handling of the <a href="https://duck.com/lite?q=GPLv3%20license">GPLv3 license</a> roll out.</p>
<p>The Free Software Foundation, headquarters in Boston, was started by Richard Stallman in 1985 and maintains the “copyleft” licenses of the <a href="https://duck.com/lite?kae=t&amp;q=GNU%20project">GNU project</a>. The FSF was sharply criticized by Linus Torvaldz, creator of the Linux kernel, who “doesn’t want to have anything to do with the FSF ever again” after their handling of the <a href="https://duck.com/lite?q=GPLv3%20license">GPLv3 license</a> roll out.</p>
<h2 id="see-also">See Also</h2>
<ul>
<li><a href="https://youtu.be/PaKIZ7gJlRU" class="see">Linus Explains Why Against GPLv3 and FSF</a></li>
<li><a href="https://youtu.be/PaKIZ7gJlRU" class="see">Linus Explains Why He’s Against GPLv3 and FSF</a></li>
</ul>
</div>
</main>
......
......@@ -4,4 +4,6 @@ Subtitle: Capturing, Maintaining, and Sharing Knowledge as Source Code
tpl-h1duck: true
---
We live in a time when the amount of human knowledge has reached unprecedented levels, but we are at risk. So much knowledge is being produced in different forms that strategies for maintaining and archiving it in a way that is not owned by proprietary interests have been all but ignored. By applying the best practices and lessons learned from managing and distributing the source code of [opensource](/opensource/) software to *knowledge* source we can leverage the best practices and approaches that have made these projects so successful. This begins by capturing the knowledge in a [basic form](/md/basic/) that can be used easily with source management and version control tools [such as](git/) and then building [knowledge applications](/knowledge/apps/) from the that source.
We live in a time when the amount of human knowledge has reached unprecedented levels, but we are at risk. So much knowledge is being produced in different forms that strategies for maintaining and archiving it in a way that is not owned by proprietary interests have been all but ignored.
By applying the best practices and lessons learned from managing and distributing the source code of [opensource](/opensource/) software to *knowledge* source we can leverage the best practices and approaches that have made these projects so successful. This begins by capturing the knowledge in a [basic form](/md/basic/) that can be used easily with source management and version control tools [such as](git/) and then building [knowledge applications](/knowledge/apps/) from the that source.
......@@ -37,7 +37,8 @@
<a id=top></a><div class=container>
<h1><a href="https://duckduckgo.com/lite?kae=t&q=Knowledge as Source">Knowledge as Source</a></h1>
<h2>Capturing, Maintaining, and Sharing Knowledge as Source Code</h2>
<p>We live in a time when the amount of human knowledge has reached unprecedented levels, but we are at risk. So much knowledge is being produced in different forms that strategies for maintaining and archiving it in a way that is not owned by proprietary interests have been all but ignored. By applying the best practices and lessons learned from managing and distributing the source code of <a href="/opensource/">opensource</a> software to <em>knowledge</em> source we can leverage the best practices and approaches that have made these projects so successful. This begins by capturing the knowledge in a <a href="/md/basic/">basic form</a> that can be used easily with source management and version control tools <a href="git/">such as</a> and then building <a href="/knowledge/apps/">knowledge applications</a> from the that source.</p>
<p>We live in a time when the amount of human knowledge has reached unprecedented levels, but we are at risk. So much knowledge is being produced in different forms that strategies for maintaining and archiving it in a way that is not owned by proprietary interests have been all but ignored.</p>
<p>By applying the best practices and lessons learned from managing and distributing the source code of <a href="/opensource/">opensource</a> software to <em>knowledge</em> source we can leverage the best practices and approaches that have made these projects so successful. This begins by capturing the knowledge in a <a href="/md/basic/">basic form</a> that can be used easily with source management and version control tools <a href="git/">such as</a> and then building <a href="/knowledge/apps/">knowledge applications</a> from the that source.</p>
</div>
</main>
<footer>
......
---
Title: Creating Secure Shell Keys
Subtitle: Learn to Use `ssh-keygen`
Subtitle: Using [`ssh-keygen`](https://duck.com/lite?kae=t&q=`ssh-keygen`)
tpl-h1duck: true
---
Creating a public-private secure shell key pair is required for many applications and services such as authenticating to GitLab. SSH has many different key types which are all based on different mathematical algorithms that vary in security and complexity. These days the Elliptical Curve is most frequently recommended. It's fast, small, and "quantum resistant" meaning it is expected to be harder to eventually crack when quantum computers become common. Here are the steps to creating your first key pair from the command line.
:::co-stop
It's possible you might have already set up your SSH keys. You can check quickly by doing (what some call) a [Git Ping](/git/ping/).
It's possible you might have already set up your SSH keys. You can check quickly by doing a [Git Ping