update team page

This commit is contained in:
Alex Grintsvayg 2021-05-31 17:43:51 -04:00
parent 843d253268
commit 400bfe6811
No known key found for this signature in database
GPG key ID: AEB3F089F86A22B5
42 changed files with 204 additions and 74 deletions

View file

@ -1,6 +1,6 @@
--- ---
name: Andrey name: Andrey Beletsky
role: LBRY.tv Engineer role: Backend Engineer
email: Andrey@lbry.com email: andrey@lbry.com
--- ---
Andrey got into web programming twenty years ago and has done it all, from Perl CGI programming to UI design. At a turning point decided to focus on server-side applications, making exciting technologies accessible to both fellow developers and users. Easily fascinated by distributed and decentralized things. Values understandable code and can agonize over naming a variable for days. Works mostly when everyone is asleep. When not working, travels around South-East Asia, doing scuba diving wherever theres water around. Andrey got into web programming twenty years ago and has done it all, from Perl CGI programming to UI design. At a turning point decided to focus on server-side applications, making exciting technologies accessible to both fellow developers and users. Easily fascinated by distributed and decentralized things. Values understandable code and can agonize over naming a variable for days. Works mostly when everyone is asleep. When not working, travels around South-East Asia, doing scuba diving wherever theres water around.

View file

@ -0,0 +1,12 @@
---
name: Drew Hancock
role: Community Coordinator
email: drew@lbry.com
twitter: lockoutdays
---
Drew's role is to spread awareness of LBRY and get as many people using it as possible.
He's active in the LBRY community, which means he spends a lot of time on social media.
He also produces video content for the official LBRY and Odysee channels.
Drew is from Missouri and is an avid Kansas City Chiefs fan.

View file

@ -0,0 +1,17 @@
---
name: Johnny Nelson
role: Senior Machine Learning Engineer
email: jbn@lbry.com
twitter: generativist
github: jbn
---
Johnny thinks a lot about how attention works on the internet. Having started programming in elementary
school, he became infatuated with how we communicate with and through computers. Eventually, he did
a Ph.D. studying belief systems computationally. Immediately afterwards he left academia, intent on
putting what he learned into practice.
Johnny cares about the systems we inhabit -- how they allow us to exchange ideas and find each other.
In short, he's motivated by the premise that we can "engineer the noosphere." The internet and
everything after is still in early development! Given that he believes censorship-resistance is a
long-term evolutionary pressure, it doesn't make sense to work on a platform that doesn't treat it as a given.

View file

@ -1,6 +1,6 @@
--- ---
name: Josh Finer name: Josh Finer
role: Founder, Director of Operations and Analytics role: Founder, Director of Operations & Analytics
email: josh@lbry.com email: josh@lbry.com
twitter: finer9 twitter: finer9
github: finer9 github: finer9

View file

@ -1,6 +1,6 @@
--- ---
name: Mark Beamer name: Mark Beamer
role: Backend and Database Engineer role: Backend Engineer
email: mark@lbry.com email: mark@lbry.com
github: tiger5226 github: tiger5226
--- ---

View file

@ -1,6 +1,6 @@
--- ---
name: Niko Storni name: Niko Storni
role: DevOps Engineer role: Infrastructure Engineer
email: Niko@lbry.com email: Niko@lbry.com
twitter: Nikooo777 twitter: Nikooo777
github: Nikooo777 github: Nikooo777

18
content/bio/roy-lee.md Normal file
View file

@ -0,0 +1,18 @@
---
name: Roy Lee
role: Blockchain Engineering Manager
email: roylee@lbry.com
github: roylee17
---
Roy is an outdoor enthusiast, an avid hiker, who has day hiked a few 14ners, including Mt. Whitney,
Langley, Shasta. Recently, he enjoyed his inaugural season of snowboarding at Tahoe, and cant wait
for more seasons to come.
Professionally, he is passionate about building software as well as teams. The broad interest in
software architectures, system design, distributed systems, and product development has led him
to the latest endeavor in LBRY.
Prior to LBRY, he has built and scaled out the Cloud Native Edge Platform at TikTok, which serves
huge traffics around the globe. Before that, he also prototyped and led EMV payment products
developments in PayPal.

View file

@ -0,0 +1,8 @@
---
name: Xander Luciano
role: Application Engineer
email: xander@lbry.com
github: DispatchCommit
---
Xander works on the apps and livestreaming.

View file

@ -131,6 +131,8 @@ class Controller
$router->any('/dmca', 'ReportActions::executeDmca'); $router->any('/dmca', 'ReportActions::executeDmca');
$router->any('/dmca/{claimid}', 'ReportActions::executeDmcaWithClaimId'); $router->any('/dmca/{claimid}', 'ReportActions::executeDmcaWithClaimId');
$router->any('/team/{slug}', 'TeamActions::executeBio');
$router->any('/youtube/status/{token}', 'AcquisitionActions::executeYoutubeStatus'); $router->any('/youtube/status/{token}', 'AcquisitionActions::executeYoutubeStatus');
$router->any('/youtube', 'AcquisitionActions::executeYouTube'); $router->any('/youtube', 'AcquisitionActions::executeYouTube');

View file

@ -231,34 +231,43 @@ class ContentActions extends Actions
{ {
$person = $vars['person']; $person = $vars['person'];
$path = 'bio/' . $person . '.md'; $path = 'bio/' . $person . '.md';
list($metadata, $bioHtml) = View::parseMarkdown($path); [$metadata, $bioHtml] = View::parseMarkdown($path);
$imgSrc = 'https://spee.ch/@lbryteam:6/' . $person . '.jpg';
return $vars + $metadata + [ return $vars + $metadata + [
'imgSrc' => $imgSrc, 'imgSrc' => '/img/bio/' . $person . '.jpg',
'bioHtml' => $bioHtml, 'bioHtml' => $bioHtml,
'orientation' => 'vertical' ];
]; }
public static function prepareBioCirclePartial(array $vars): array
{
$post = ContentActions::prepareBioPartial(['person' => $vars['slug']]);
return [
'bioSlug' => $vars['slug'],
'imgSrc' => $post['imgSrc'],
'name' => $post['name'],
'role' => $post['role'],
];
} }
public static function preparePostAuthorPartial(array $vars): array public static function preparePostAuthorPartial(array $vars): array
{ {
$post = $vars['post']; $post = $vars['post'];
return [ return [
'authorName' => $post->getAuthorName(), 'authorName' => $post->getAuthorName(),
'photoImgSrc' => $post->getAuthorPhoto(), 'photoImgSrc' => $post->getAuthorPhoto(),
'authorBioHtml' => $post->getAuthorBioHtml(), 'authorBioHtml' => $post->getAuthorBioHtml(),
'authorGithub' => $post->getAuthorGithubID(), 'authorGithub' => $post->getAuthorGithubID(),
'authorTwitter' => $post->getAuthorTwitterID(), 'authorTwitter' => $post->getAuthorTwitterID(),
'authorEmail' => $post->getAuthorPostEmail() 'authorEmail' => $post->getAuthorPostEmail()
]; ];
} }
public static function preparePostListPartial(array $vars): array public static function preparePostListPartial(array $vars): array
{ {
$count = $vars['count'] ?? 3; $count = $vars['count'] ?? 3;
return [ return [
'posts' => array_slice(Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), 0, $count) 'posts' => array_slice(Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), 0, $count)
]; ];
} }
public static function executePostCategoryFilter(string $category) public static function executePostCategoryFilter(string $category)
{ {
@ -269,29 +278,29 @@ class ContentActions extends Actions
$posts = array_filter( $posts = array_filter(
Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC),
function (Post $post) use ($category) { function (Post $post) use ($category) {
return (($post->getCategory() === $category) && (!$post->getDate() || $post->getDate()->format('U') <= date('U'))); return (($post->getCategory() === $category) && (!$post->getDate() || $post->getDate()->format('U') <= date('U')));
} }
); );
return ['content/news', [ return ['content/news', [
'posts' => $posts, 'posts' => $posts,
View::LAYOUT_PARAMS => [ View::LAYOUT_PARAMS => [
'showRssLink' => true 'showRssLink' => true
] ]
]]; ]];
} }
public static function prepareJobsPartial(array $vars) public static function prepareJobsPartial(array $vars)
{ {
$jobs = $jobs =
array_filter( array_filter(
array_map('View::parseMarkdown', glob(static::VIEW_FOLDER_JOBS . '/*')), array_map('View::parseMarkdown', glob(static::VIEW_FOLDER_JOBS . '/*')),
function ($job) { function ($job) {
return $job[0]['status'] !== 'closed'; return $job[0]['status'] !== 'closed';
} }
); );
usort($jobs, function ($jobA, $jobB) { usort($jobs, function ($jobA, $jobB) {
if ($jobA[0]['status'] === 'active' xor $jobB[0]['status'] === 'active') { if ($jobA[0]['status'] === 'active' xor $jobB[0]['status'] === 'active') {

View file

@ -0,0 +1,16 @@
<?php
class TeamActions extends Actions
{
/**
* A team member's page
*
* @param string $slug
*
* @return array
*/
public static function executeBio(string $slug)
{
return ['content/bio', ['slug' => $slug]];
}
}

View file

@ -33,6 +33,10 @@
</figure> </figure>
<div class="bio"> <div class="bio">
<?php if ($showName ?? false) :?>
<h3><?php echo $name ?></h3>
<?php endif ?>
<?php echo $bioHtml ?> <?php echo $bioHtml ?>
</div> </div>
</div> </div>

View file

@ -0,0 +1,7 @@
<div class="bio-circle">
<a href="/team/<?php echo $bioSlug ?>">
<img src="<?php echo $imgSrc ?>" />
</a>
<?php echo $name ?><br/>
<small><?php echo $role ?></small>
</div>

View file

@ -0,0 +1,16 @@
<?php NavActions::setNavUri('/learn') ?>
<?php Response::addMetaImage('https://spee.ch/@lbryteam/everyone-banner2.jpg') ?>
<?php Response::setMetaDescription('description.team') ?>
<main class="ancillary">
<section class="hero hero--half-height" style="background-image: url(https://spee.ch/3cb82a81e95c147686dbf90e9983640939461c53/everyone-banner3.jpg)">
<div class="inner-wrap inner-wrap--center-hero">
<h1>The Team</h1>
<h2>Teamwork makes the dream work</h2>
</div>
</section>
<?php echo View::render('content/_bio', ['person' => $slug, 'showName' => true]) ?>
</main>

View file

@ -5,49 +5,31 @@
<main class="ancillary"> <main class="ancillary">
<section class="hero" style="background-image: url(https://spee.ch/3cb82a81e95c147686dbf90e9983640939461c53/everyone-banner3.jpg)"> <section class="hero" style="background-image: url(https://spee.ch/3cb82a81e95c147686dbf90e9983640939461c53/everyone-banner3.jpg)">
<div class="inner-wrap inner-wrap--center-hero"> <div class="inner-wrap inner-wrap--center-hero">
<h1>{{page.team.header}}</h1> <h1>The Team</h1>
<h2>Teamwork makes the dream work.</h2> <h2>Teamwork makes the dream work</h2>
</div> </div>
</section> </section>
<section> <?php $teams = [
<div class="inner-wrap"> "Leadership" => ['jeremy-kauffman', 'alex-grintsvayg'],
<h2>Leadership</h2> "Technical" => ['lex-berezhny', 'brannon-king', 'jack-robison', 'akinwale-ariwodola',
</div> 'andrey-beletsky', 'niko-storni', 'mark-beamer', 'roy-lee', 'johnny-nelson'],
"Growth" => ['julian-chandra', 'drew-hancock'],
"Business" => ['josh-finer', 'tom-zarebczan'],
"Advisory Team" => ['alex-tabarrok', 'ray-carballada', 'stephan-kinsella', 'michael-huemer'],
] ?>
<?php foreach (['jeremy-kauffman', 'alex-grintsvayg'] as $bioSlug): ?> <?php foreach ($teams as $team => $members): ?>
<?php echo View::render('content/_bio', ['person' => $bioSlug]) ?> <section>
<?php endforeach ?> <div class="inner-wrap">
</section> <h2><?php echo $team ?></h2>
</div>
<section> <div class="inner-wrap team-members">
<div class="inner-wrap"> <?php foreach ($members as $bioSlug): ?>
<h2>Technical</h2> <?php echo View::render('content/_bioCircle', ['slug' => $bioSlug]) ?>
</div> <?php endforeach ?>
</div>
<?php foreach (['lex-berezhny', 'brannon-king', 'jack-robison', 'akinwale-ariwodola', 'antoniyshumanov', 'andrey', 'sean-yesmunt', 'niko-storni', 'mark-beamer'] as $bioSlug): ?> </section>
<?php echo View::render('content/_bio', ['person' => $bioSlug]) ?> <?php endforeach ?>
<?php endforeach ?>
</section>
<section>
<div class="inner-wrap">
<h2>Business</h2>
</div>
<?php foreach (['josh-finer', 'julian-chandra', 'tom-zarebczan', 'julie-sigwart'] as $bioSlug): ?>
<?php echo View::render('content/_bio', ['person' => $bioSlug]) ?>
<?php endforeach ?>
</section>
<section>
<div class="inner-wrap">
<h2>{{page.team.advisory}}</h2>
</div>
<?php foreach (['alex-tabarrok', 'ray-carballada', 'stephan-kinsella', 'michael-huemer'] as $bioSlug): ?>
<?php echo View::render('content/_bio', ['person' => $bioSlug]) ?>
<?php endforeach ?>
</section>
</main> </main>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
web/img/bio/josh-finer.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
web/img/bio/mark-beamer.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
web/img/bio/niko-storni.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
web/img/bio/rob-smith.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
web/img/bio/roy-lee.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -16,3 +16,42 @@
background-color: rgba($lbry-teal-1, 0.3); background-color: rgba($lbry-teal-1, 0.3);
} }
} }
//https://www.webfx.com/blog/web-design/circular-images-css/
.team-members {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
.bio-circle {
margin: 1.5rem 2rem;
}
}
.bio-circle {
text-align: center;
a {
margin-bottom: 0.5rem;
margin-left: auto;
margin-right: auto;
display: block;
position: relative;
width: 200px;
height: 200px;
overflow: hidden;
border-radius: 50%;
//filter: grayscale(100%);
//&:hover {
// filter: none;
//}
img {
display: block;
max-width: 250px;
width: 100%;
height: auto;
max-height: none;
}
}
}