Merge branch 'main' of github.com:life-itself/web3

This commit is contained in:
Rufus Pollock 2022-06-20 11:26:26 +02:00
commit 49a1d03a7d
22 changed files with 136 additions and 70 deletions

View File

@ -5,16 +5,7 @@ created: 2022-04-03
description: "In this episode of our Making Sense of crypto and web3 series, Stephen Diehl is joined by economist and data scientist, Matthew Ranger, in a discussion on crypto assets from the perspective of an economist."
image: /img/a-macro-economics-thumbnail.png
youtube: https://youtu.be/bLRsmn1Tsn8
podcast: https://anchor.fm/life-itself/episodes/A-Macroeconomics-Perspective-on-Cryptocurrencies-e1hv8b4
featured: true
aliases: notes/a-macroeconomics-perspective-on-cryptocurrencies.md
---
---
title: A Macroeconomics Perspective on Cryptocurrencies
date: 2022-05-03
created: 2022-04-03
description: "In this episode of our Making Sense of crypto and web3 series, Stephen Diehl is joined by economist and data scientist, Matthew Ranger, in a discussion on crypto assets from the perspective of an economist."
youtube: https://youtu.be/bLRsmn1Tsn8
podcast: https://anchor.fm/life-itself/episodes/A-Macroeconomics-Perspective-on-Cryptocurrencies-e1hv8b4
aliases: notes/a-macroeconomics-perspective-on-cryptocurrencies.md
---

View File

@ -3,9 +3,10 @@ title: Are Crypto Tokens Securities?
date: 2022-02-17
created: 2022-04-13
description: "In episode #3 of our ongoing deep dive into web3 and crypto, we explore the nature of financial products known as 'securities', their relation to crypto tokens, and the regulatory framework that exists around these structures."
image: /img/are-crypto-tokens -securities-thumbnail.jpg
youtube: https://www.youtube.com/embed/z2uAg-AIs-Y
podcast: https://anchor.fm/life-itself/episodes/Are-Cryptocurrencies-Securities--The-Nature-of-Securities--Their-Relation-to-Crypto-Tokens-with-Stephen-Diehl-e1fph69
featured: false
featured: true
aliases: notes/are-crypto-tokens-securities.md
---

View File

@ -5,6 +5,7 @@ created: 2022-05-02
description: "Episode #7 of our ongoing deep dive into web3 and crypto with Rufus Pollock and Stephen Diehl. This week were exploring the thesis that Bitcoin (and crypto more generally) is an anti-authoritarian force and can help undermine tyranny."
image: /img/anti-auth-thumbnail.png
youtube: https://youtu.be/U_-Bdx1mqS8
podcast: https://anchor.fm/life-itself/episodes/Bitcoin-as-an-Anti-Authoritarian-Force-e1i25vg/a-a7gpq18
featured: true
aliases: notes/bitcoin-as-anti-authoritarian.md
---

View File

@ -6,7 +6,7 @@ description: 'In this episode we use the example of KlimaDAO to explore the inte
image: /img/Collective Action Climate.jpg
youtube: https://www.youtube.com/watch?v=SLXtnCL6IxE
podcast: https://anchor.fm/life-itself/episodes/Collective-Action-Problems--Climate-Change-e1h4o6e/a-a7gpq18
featured: false
featured: true
aliases: notes/collective-action-problems-and-climate-change.md
---

View File

@ -3,9 +3,10 @@ title: Cory Doctorow on Blockchain, Crypto & Web3
date: 2022-04-26
created: 2022-04-26
description: "In this episode of our Making Sense of Crypto and Web3 series, Rufus Pollock is joined by activist, journalist and author Cory Doctorow. Cory outlines the problems he sees within the web3 space; economic, technological, and ethical."
image: /img/cory-doctorow-on-blockchain-thumbnail.jpg
youtube: https://youtu.be/1eUMD5MoQdo
podcast: https://anchor.fm/life-itself/episodes/Cory-Doctorow-on-Blockchain--Crypto--Web3-e1hmcfk/a-a7gpq18
featured: false
featured: true
aliases: notes/cory-doctorow-on-blockchain.md
---

View File

@ -3,9 +3,10 @@ title: Fintech Incrementalism and Responsible Innovation
created: 2022-04-04
date: 2022-04-04
description: "In episode #5 of our ongoing deep dive into web3 and crypto, Rufus Pollock and Stephen Diehl explore the claim that blockchain can be a vehicle for increase in financialization through the development of more complex, blockchain-based financial products."
image: /img/fintech-incrementalism-thumbnail.jpg
youtube: https://www.youtube.com/watch?v=7rLQoTtwRSU&t=4s
podcast: https://anchor.fm/life-itself/episodes/Fintech-Incrementalism-and-Responsible-Innovation-e1gn02u
featured: false
featured: true
aliases: notes/fintech-incrementalism-and-responsible-innovation.md
---

View File

@ -5,6 +5,7 @@ created: 2022-05-18
description: "In a previous episode, Collective Action Problems & Climate Change, Steven Diehl and Rufus Pollock discussed the utility of web3 in tackling collective action problems and climate change, using KlimaDAO as a case study. In a follow up to this conversation, Rufus and Theo from Life Itself Labs sat down with Marcus Aurelius and 0xy moron, two core members of KlimaDAO, to discuss the KlimaDAO model, its inspirations and its aims."
image: /img/klima-one-thumbnail.png
youtube: https://youtu.be/fHHxQAQW0co
podcast: https://anchor.fm/life-itself/episodes/KlimaDAO--Life-Itself-In-Conversation-Part-One-e1ilbra/a-a7gpq18
featured: true
aliases: notes/in-conversation-with-klimadao-part-one.md
---

View File

@ -2,9 +2,10 @@
title: Market Fundamentalism
date: 2022-03-04
description: "In episode #2 of the series, Rufus Pollock and Stephen Diehl explore a common incentive for investing in crypto: the belief - held by day traders and quantitative hedge funds alike - that crypto can make those who trade it a lot of money. Particular focus in this episode is placed on the 'market fundamentalist' position."
image: /img/Market_Fundamentalism_Thumbnail_nn19qa.png
youtube: https://www.youtube.com/watch?v=K5JtPTyc0y0
podcast: https://anchor.fm/life-itself/episodes/Crypto--Traders-and-Unfettered-Financial-Markets-with-Stephen-Diehl-e1fgm2d
featured: false
featured: true
aliases: notes/market-fundamentalism.md
---

View File

@ -6,13 +6,10 @@ image: /img/Neo-metallism_Thumb_vo3dhs.png
description: "In this episode we examine Bitcoin and the Neo-Metallist thesis, i.e. that a gold-standard was a good idea and a Bitcoin-standard would be even better."
youtube: https://www.youtube.com/embed/_o7pRFLzJHY
podcast: https://anchor.fm/life-itself/episodes/Stephen-Diehl-on-Web3--Bitcoin--Neometalism-e1f5rca
featured: false
featured: true
aliases: notes/neo-metallism.md
---
{/* https://www.youtube.com/watch?v=_o7pRFLzJHY&t=568s */}
{/* Podcast: https://anchor.fm/life-itself/episodes/Stephen-Diehl-on-Web3--Bitcoin--Neometalism-e1f5rca */}
* Wiki topic: [is-digital-gold](../claims/is-digital-gold.md)
***

View File

@ -3,9 +3,10 @@ title: On the Potential of DAOs & Web3 with Jordan Hall & Rufus Pollock
date: 2022-03-01
created: 2022-03-01
description: "In this episode with Jordan Hall we discuss the potential of DAOs for social change."
image: /img/Potential_of_DAOs_Thumb_ko4vpa.png
youtube: https://youtu.be/aQvpgYW0o7M
podcast: https://anchor.fm/life-itself/episodes/Jordan-Hall-on-the-Potential-of-DAOs-e1f5rm9/a-a7gpq18
featured: false
featured: true
aliases: notes/on-the-potential-of-DAOs-and-Web3.md
---

View File

@ -5,7 +5,8 @@ date: 2022-04-08
description: 'In this episode with Pia Mancini about her work to make community finance transparent and sustainable with Open Collective, her commitment ot steward ownership and the value of an exit to community.'
image: /img/Pia Mancini Thumbnail.jpg
youtube: https://www.youtube.com/watch?v=C2KYJiQVtIM
featured: false
podcast: https://anchor.fm/life-itself/episodes/Open-Collective--Steward-Ownership--Exit-to-Community-with-Pia-Mancini-e1hkltv/a-a7gpq18
featured: true
aliases: notes/pia-mancini-open-collective-dialogue.md
---

View File

@ -6,7 +6,7 @@ description: "In this episode we explore the aspirational transition from the ex
image: /img/post-state-technocracy.jpg
youtube: https://www.youtube.com/watch?v=gZ0iCJkM3PU
podcast: https://anchor.fm/life-itself/episodes/On-Web3-and-Post-State-Technocracy-with-Stephen-Diehl--Rufus-Pollock-e1g4cpe
featured: false
featured: true
aliases: notes/post-state-technocracy.md
---

View File

@ -3,9 +3,10 @@ title: Richard D. Bartlett, Stephen Reid & Rufus Pollock on Critical Exploration
date: 2022-01-26
created: 2022-01-26
description: "Just what is Web3, why are people so excited about it, and how likely is it to really change the world? In this episode, Life Itself co-founder Rufus Pollock talks with Rich Bartlett and Stephen Reid on the promises, possibilities and pitfalls of Web3."
image: /img/richard-bartlett-and-stephen-reid-thumbnail.jpg
youtube: https://youtu.be/bBP5cKAbAug
podcast: https://anchor.fm/life-itself/episodes/Richard-D--Bartlett--Stephen-Reid-on-Critical-Exploration-of-Web3-e1f5q1f/a-a7gpq18
featured: false
featured: true
aliases: notes/richard-bartlett-and-stephen-reid.md
---

View File

@ -1,3 +1,6 @@
import Link from "next/link"
import { YOUTUBE_REGEX } from "../../lib/constants"
export function Latest({ posts }) {
return (
<div className="relative pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
@ -11,35 +14,34 @@ export function Latest({ posts }) {
Our latest articles and explorations.
</p>
</div>
<div className="mt-12 max-w-lg mx-auto grid gap-5 lg:grid-cols-3 lg:max-w-none">
{posts && posts.map((post) => (
<div key={post.title} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
{post.image ?
<div className="h-48 flex-shrink-0">
<img className="" width="100%" height="100%" src={post.image} alt={post.title} />
</div>
: <div className="h-20 w-full bg-slate-500" />
}
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
<div className="flex-1">
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
{post.youtube && ["watch", "embed"].some(v => post.youtube.includes(v)) && (
<a href={post.youtube} className="hover:underline">
Video
</a>)}
</p>
<a href={post.link} className="block mt-2">
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{post.title}</p>
<p className="mt-3 text-base text-gray-500">
{post.description && post.description.length > 150 && !!post.image
? `${post.description.slice(0, 150)} ...`
: post.description
}
<div className="mt-12 max-w-lg mx-auto grid gap-6 lg:grid-cols-3 lg:max-w-none">
{posts && posts.map(({ title, description, image, youtube, link }) => (
<div key={link} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
<div className="h-48 bg-stone-100 flex-shrink-0">
{image && <img className="" width="100%" height="100%" src={image} alt={title} />}
</div>
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
<div className="flex-1">
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
{youtube && YOUTUBE_REGEX.test(youtube) ? (
<a target="_blank" rel="noopener" href={youtube} className="hover:underline">
Video
</a>) : <p>Article</p>}
</p>
</a>
<Link href={link}>
<a className="block mt-2">
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{title}</p>
<p className="mt-3 text-base text-gray-500">
{description && description.length > 150
? `${description.slice(0, 120)} ...`
: description
}
</p>
</a>
</Link>
</div>
</div>
</div>
</div>
))}
</div>
</div>

View File

@ -1,26 +1,15 @@
import { NextSeo } from "next-seo";
import LiteYouTubeEmbed from "react-lite-youtube-embed";
import { YOUTUBE_REGEX } from "../lib/constants";
import siteConfig from "../config/siteConfig";
import MdxContent from "./MdxContent";
import siteConfig from "../config/siteConfig";
import LiteYouTubeEmbed from "react-lite-youtube-embed";
import { YOUTUBE_REGEX, YOUTUBE_ID_REGEX } from "lib/constants";
export default function MdxPage({ body, meta }) {
const { title, description, date, keywords, youtube, podcast, image, _raw } =
meta;
let youtubeThumnbnail;
const youtubeId =
youtube && YOUTUBE_REGEX.test(youtube) && youtube.split(/^|=|\//).pop();
if (youtubeId && !image) {
// get the youtube thumbnail image from https://img.youtube.com/vi/<youtube-video-id>/maxresdefault.jpg
youtubeThumnbnail = youtube.replace(
YOUTUBE_REGEX,
`https://img.youtube.com/vi/${youtubeId}/maxresdefault.jpg`
);
}
const youtubeId = youtube && YOUTUBE_REGEX.test(youtube) && youtube.match(YOUTUBE_ID_REGEX)[1]
const PodcastIcon = siteConfig.social.find((s) => s.name === "Podcast").icon;
@ -32,11 +21,7 @@ export default function MdxPage({ body, meta }) {
.replace(/(^\w{1})|(\s{1}\w{1})/g, (str) => str.toUpperCase());
const SeoTitle = title ?? titleFromUrl;
const imageUrl = image
? siteConfig.url + image
: youtubeThumnbnail
? youtubeThumnbnail
: null;
const imageUrl = image ? siteConfig.url + image : null;
// enable editing for all pages for now
const editUrl = siteConfig.repoRoot + siteConfig.repoEditPath + _raw.sourceFilePath

View File

@ -3,6 +3,7 @@ const navLinks = [
{ href: '/guide', name: 'Guide' },
{ href: '/claims', name: 'Claims' },
{ href: '/library', name: 'Library' },
{ href: '/notes', name: 'Notes' },
{ href: '/webinars', name: 'Webinars' },
{ href: '/contribute', name: 'Contribute' },
]

View File

@ -1,3 +1,4 @@
export const YOUTUBE_REGEX = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
export const YOUTUBE_ID_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:\S*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&\"'>\s]+)/
export const TWITTER_REGEX = /^https?:\/\/twitter\.com\/(?:#!\/)?(\w+)\/status(es)?\/(\d+)/;

68
site/pages/notes.js Normal file
View File

@ -0,0 +1,68 @@
import Link from "next/link";
import { allOtherPages } from "contentlayer/generated"
import { YOUTUBE_REGEX } from "lib/constants";
export async function getStaticProps() {
const posts = allOtherPages
.filter((page) => page._raw.sourceFileDir === "notes")
.map((page) => {
return {
title: page.title || null,
description: page.description || null,
date: page.date,
image: page.image || null,
youtube: page.youtube || null,
link: `/${page._raw.flattenedPath}`,
};
})
.sort((a, b) => new Date(b.date) - new Date(a.date));
return { props: { posts } };
}
export default function Notes({ posts }) {
return (
<div className="relative pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
<div className="relative max-w-7xl mx-auto">
<div className="text-center">
<p className="mt-3 max-w-2xl mx-auto text-3xl text-gray-500 sm:mt-4">
Our latest articles and explorations.
</p>
</div>
<div className="mt-12 max-w-lg mx-auto grid gap-6 lg:grid-cols-3 lg:max-w-none">
{posts && posts.map(({ title, description, image, youtube, link }) => (
title && description &&
(<div key={link} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
<div className={`bg-stone-100 flex-shrink-0 ${image ? "h-48" : "h-10"}`}>
{image && <img className="" width="100%" height="100%" src={image} alt={title} />}
</div>
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
<div className="flex-1">
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
{youtube && YOUTUBE_REGEX.test(youtube)
? (<a target="_blank" rel="noopener" href={youtube} className="hover:underline">
Video
</a>)
: <p>Article</p>
}
</p>
<Link href={link}>
<a className="block mt-2">
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{title}</p>
<p className="mt-3 text-base text-gray-500">
{description && description.length > 150
? `${description.slice(0, image ? 120 : 200)} ...`
: description
}
</p>
</a>
</Link>
</div>
</div>
</div>)
))}
</div>
</div>
</div>
);
}

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:86dd7efcecbf25c386bb4446db6f63bb523c3ff312fcc33c7c1c0bf67c595673
size 62222

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ddeaaa2b8a8f0b3b8e0eb033d8945f652a7e4fdddeb168c8ef2ed21ee55eab3c
size 73376

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5a0554c45c4ffdc843020fdefa19d2b99e11e26b18753e4904cee4f945d45a5a
size 112451

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc64cbb4d18a0350a1eddca3f9b418d2c17b2064797611708e1af7f187e6548c
size 139829