Skip to content

Commit 082e354

Browse files
committed
Merge branch 'main' into on-page-seo-val
2 parents b8aa35c + 88f956d commit 082e354

File tree

396 files changed

+26129
-25298
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

396 files changed

+26129
-25298
lines changed

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ exclude:
1919
- Pipfile.lock
2020
- Makefile
2121
- .gitignore
22+
- sh-thd-*
2223

2324

2425
collections:

_data/events.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11

2+
- time: 2025-12-16 17:00:00
3+
title: "From Human-in-the-Loop to Agent-in-the-Loop: A Practical Transition Guide"
4+
speakers: [ertugrulmutlu]
5+
type: webinar
6+
link: https://luma.com/d2o7pqt9
7+
8+
9+
- time: 2025-12-16 17:00:00
10+
title: "Durable Agentic Workflows with Temporal.io"
11+
speakers: [alexeygrigorev]
12+
type: workshop
13+
link: https://luma.com/xbfrz1zp
14+
15+
216
- time: 2025-12-09 17:00:00
317
title: "Docker for Data Engineering: Postgres, Docker Compose, and Real-World Workflows"
418
speakers: [alexeygrigorev]
@@ -11,6 +25,7 @@
1125
speakers: [adityaseshaditya]
1226
type: workshop
1327
link: https://luma.com/3ykwvz3x
28+
youtube: https://www.youtube.com/watch?v=UHRN7cX_ieE
1429

1530

1631
- time: 2025-11-26 17:00:00
@@ -33,6 +48,7 @@
3348
speakers: [xiahebleinagel]
3449
type: podcast
3550
link: https://luma.com/ifmqg2xb
51+
youtube: https://www.youtube.com/watch?v=D2rw52SOFfM
3652

3753

3854
- time: 2025-10-28 17:00:00

_layouts/podcast.html

Lines changed: 83 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,6 @@ <h2 class="platforms-heading">Listen to or watch on your favorite platform</h2>
338338
<div>Spotify</div>
339339
</a>
340340
{% endif %}
341-
<a href="https://anchor.fm/datatalksclub" target="_blank" rel="noopener noreferrer" class="chip-platform">
342-
<img src="/images/podcast/badges/anchor-icon.jpg" alt="Anchor icon" class="chip-platform-icon"/>
343-
<div>Anchor</div>
344-
</a>
345341
</div>
346342
</header>
347343

@@ -368,7 +364,60 @@ <h2 id="shownotes-heading" class="sr-only">Show Notes</h2>
368364
<div class="content-main mb-5">
369365
{{ content }}
370366
</div>
367+
</section>
371368

369+
<section class="podcast-tab-content" id="timestamps-tab" aria-labelledby="timestamps-heading">
370+
<h2 id="timestamps-heading" class="sr-only">Timestamps</h2>
371+
{% if page.transcript %}
372+
<p class="timestamps-prompt">Click any timestamp to jump to that moment in the video</p>
373+
<div class="timestamps-list">
374+
<ul>
375+
{% assign found_header = false %}
376+
{% assign header_text = "" %}
377+
{% for line in page.transcript %}
378+
{% if line.header %}
379+
{% assign found_header = true %}
380+
{% assign header_text = line.header %}
381+
{% elsif found_header and line.sec %}
382+
<li>
383+
<a href="#" class="timestamp-link" data-time="{{ line.sec }}">
384+
<span class="timestamp-time">{{ line.time }}</span>
385+
<span class="timestamp-text">{{ header_text }}</span>
386+
</a>
387+
</li>
388+
{% assign found_header = false %}
389+
{% endif %}
390+
{% endfor %}
391+
</ul>
392+
</div>
393+
{% else %}
394+
<p>Timestamps coming soon...</p>
395+
{% endif %}
396+
</section>
397+
398+
{% if page.transcript %}
399+
<section class="podcast-tab-content" id="transcript-tab" aria-labelledby="transcript-heading">
400+
<h2 id="transcript-heading" class="sr-only">Transcript</h2>
401+
<div class="content-main mb-5">
402+
<p class="transcript-disclaimer">
403+
The transcripts are edited for clarity, sometimes with AI.
404+
If you notice any incorrect information,
405+
<a href="https://github.com/DataTalksClub/datatalksclub.github.io/issues/new/choose" target="_blank">let us know</a>.
406+
</p>
407+
408+
{% for line in page.transcript %}
409+
{% if line.header %}
410+
<h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}</h3>
411+
{% else %}
412+
<p class="transcript-line"><b>{{ line.who }}</b>: {{ line.line }}{% if line.sec %} (<a href="#" class="transcript-timestamp-link" data-time="{{ line.sec }}">{{ line.time }}</a>){% endif %}</p>
413+
{% endif %}
414+
{% endfor %}
415+
</div>
416+
</section>
417+
{% endif %}
418+
419+
<!-- Unified Footer - Appears on all tabs -->
420+
<div class="podcast-unified-footer">
372421
<!-- Guest Bio Cards -->
373422
{% if page.guests %}
374423
<section class="guest-bio-section mb-4" aria-labelledby="guests-heading">
@@ -430,38 +479,38 @@ <h3 class="guest-bio-name">{{ guest.title }}</h3>
430479
</nav>
431480
{% endif %}
432481

433-
<!-- Newsletter Section -->
434-
<div class="main-cta">
435-
<p class="newsletter-main-text">
436-
Join 130,000+ data professionals and get weekly updates on new podcast episodes, upcoming events, free courses, and more.
437-
</p>
438-
<p class="newsletter-sub-text">
439-
You'll also receive an invite to our Slack community for discussions, networking, and peer support.
440-
</p>
482+
<!-- Newsletter Section -->
483+
<div class="main-cta">
484+
<p class="newsletter-main-text">
485+
Join 130,000+ data professionals and get weekly updates on new podcast episodes, upcoming events, free courses, and more.
486+
</p>
487+
<p class="newsletter-sub-text">
488+
You'll also receive an invite to our Slack community for discussions, networking, and peer support.
489+
</p>
441490

442-
<form method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form"
443-
action="https://club.us19.list-manage.com/subscribe/post?u=0d7822ab98152f5afc118c176&amp;id=97178021aa"
444-
class="validate" target="_blank" novalidate>
445-
<div class="form-row align-items-center justify-content-center">
446-
<div class="col-auto">
447-
<label class="sr-only" for="mce-EMAIL">Email</label>
448-
<input type="email" value="" name="EMAIL" class="form-control" id="mce-EMAIL" placeholder="Email address" required>
449-
</div>
450-
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
451-
<div style="position: absolute; left: -5000px;" aria-hidden="true">
452-
<input type="text" name="b_0d7822ab98152f5afc118c176_e52ea9dcd3" tabindex="-1" value="">
453-
</div>
454-
<div class="col-auto">
455-
<button type="submit" name="subscribe" class="btn btn-success">
456-
<i class="far fa-paper-plane"></i> &nbsp; Join
457-
</button>
491+
<form method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form"
492+
action="https://club.us19.list-manage.com/subscribe/post?u=0d7822ab98152f5afc118c176&amp;id=97178021aa"
493+
class="validate" target="_blank" novalidate>
494+
<div class="form-row align-items-center justify-content-center">
495+
<div class="col-auto">
496+
<label class="sr-only" for="mce-EMAIL">Email</label>
497+
<input type="email" value="" name="EMAIL" class="form-control" id="mce-EMAIL" placeholder="Email address" required>
498+
</div>
499+
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
500+
<div style="position: absolute; left: -5000px;" aria-hidden="true">
501+
<input type="text" name="b_0d7822ab98152f5afc118c176_e52ea9dcd3" tabindex="-1" value="">
502+
</div>
503+
<div class="col-auto">
504+
<button type="submit" name="subscribe" class="btn btn-success">
505+
<i class="far fa-paper-plane"></i> &nbsp; Join
506+
</button>
507+
</div>
458508
</div>
509+
</form>
510+
<div class="pt-2 small">
511+
You'll be subscribed to our newsletter and receive a Slack invite in 3 minutes.
459512
</div>
460-
</form>
461-
<div class="pt-2 small">
462-
You'll be subscribed to our newsletter and receive a Slack invite in 3 minutes.
463513
</div>
464-
</div>
465514

466515
<!-- Related Episodes Section -->
467516
<section class="related-episodes-section" aria-labelledby="related-episodes-heading">
@@ -497,57 +546,7 @@ <h3 class="related-episode-title">{{ episode.title }}</h3>
497546
{% endfor %}
498547
</div>
499548
</section>
500-
</section>
501-
502-
<section class="podcast-tab-content" id="timestamps-tab" aria-labelledby="timestamps-heading">
503-
<h2 id="timestamps-heading" class="sr-only">Timestamps</h2>
504-
{% if page.transcript %}
505-
<p class="timestamps-prompt">Click any timestamp to jump to that moment in the video</p>
506-
<div class="timestamps-list">
507-
<ul>
508-
{% assign found_header = false %}
509-
{% assign header_text = "" %}
510-
{% for line in page.transcript %}
511-
{% if line.header %}
512-
{% assign found_header = true %}
513-
{% assign header_text = line.header %}
514-
{% elsif found_header and line.sec %}
515-
<li>
516-
<a href="#" class="timestamp-link" data-time="{{ line.sec }}">
517-
<span class="timestamp-time">{{ line.time }}</span>
518-
<span class="timestamp-text">{{ header_text }}</span>
519-
</a>
520-
</li>
521-
{% assign found_header = false %}
522-
{% endif %}
523-
{% endfor %}
524-
</ul>
525-
</div>
526-
{% else %}
527-
<p>Timestamps coming soon...</p>
528-
{% endif %}
529-
</section>
530-
531-
{% if page.transcript %}
532-
<section class="podcast-tab-content" id="transcript-tab" aria-labelledby="transcript-heading">
533-
<h2 id="transcript-heading" class="sr-only">Transcript</h2>
534-
<div class="content-main mb-5">
535-
<p class="transcript-disclaimer">
536-
The transcripts are edited for clarity, sometimes with AI.
537-
If you notice any incorrect information,
538-
<a href="https://github.com/DataTalksClub/datatalksclub.github.io/issues/new/choose" target="_blank">let us know</a>.
539-
</p>
540-
541-
{% for line in page.transcript %}
542-
{% if line.header %}
543-
<h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}</h3>
544-
{% else %}
545-
<p class="transcript-line"><b>{{ line.who }}</b>: {{ line.line }}{% if line.sec %} (<a href="{{ page.links.youtube }}&t={{ line.sec }}s" target="youtube">{{ line.time }}</a>){% endif %}</p>
546-
{% endif %}
547-
{% endfor %}
548-
</div>
549-
</section>
550-
{% endif %}
549+
</div>
551550

552551
</article>
553552
</div>
@@ -574,7 +573,7 @@ <h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}
574573
});
575574

576575
// Timestamp click functionality
577-
const timestampLinks = document.querySelectorAll('.timestamp-link');
576+
const timestampLinks = document.querySelectorAll('.timestamp-link, .transcript-timestamp-link');
578577
timestampLinks.forEach(link => {
579578
link.addEventListener('click', function(e) {
580579
e.preventDefault();

_people/juanmanuelperafan.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
short: juanmanuelperafan
3+
title: "Juan Manuel Perafan"
4+
picture: "images/authors/juanmanuelperafan.jpg"
5+
6+
7+
linkedin: jmperafan
8+
web: http://juanalytics.com
9+
---
10+
11+
Juan Manuel Perafan is an analytics engineer, educator, and community builder based in Utrecht. He’s the co-author of Fundamentals of Analytics Engineering, host of the SQL Lingua Franca podcast, and a dbt Community Award winner. Juan founded the Analytics Engineering Meetup Netherlands and the Dutch dbt Meetup, and has spoken at events like dbt Coalesce, Linux Foundation OS Summit, and Big Data Expo NL.

_people/sofyayulpatova.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
short: sofyayulpatova
3+
title: "Sofya Yulpatova"
4+
picture: "images/authors/sofyayulpatova.jpg"
5+
6+
7+
linkedin: sofya-yulpatova
8+
9+
---
10+
11+
Sofya Yulpatova is the Founder and CEO of Fit Tails, a PetTech startup developing an activity and health tracker for pets. With a background in computer science and product management, she blends technical skill with hands-on experience in building digital products. Before founding Fit Tails, she managed product and project delivery at FixParts, an international automotive parts distributor. Sofya is also an alumna of the Sales and Marketing Programme at the Stockholm School of Economics in Riga.

_podcast/_s12e08.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ links:
1212
spotify: https://open.spotify.com/episode/5fB185hGlGYQmdk0kbIsPv?si=YtnsaYNzTc-fl7emZ2IjEA
1313
youtube: https://www.youtube.com/watch?v=FRi0SUtxdMw
1414
season: 12
15-
short: 'The Journey of a Data Generalist: From Bioinformatics to Freelancing'
16-
title: 'The Journey of a Data Generalist: From Bioinformatics to Freelancing'
15+
short: "The Journey of a Data Generalist: From Bioinformatics to Freelancing"
16+
title: "The Journey of a Data Generalist: From Bioinformatics to Freelancing"
1717
transcript:
1818
- line: This week we'll talk about being a data generalist. We'll discuss going from
1919
bioinformatics to freelancing. We have a special guest today, Katya. As a freelancer

0 commit comments

Comments
 (0)