Skip to content

Commit 7d5e210

Browse files
author
Anne-Julia Seitz
committed
Complete Berlin PHP event migration and add current meetup events
- Import all events from 2013-06 through 2025-07 (70+ events total) - Convert HTML events to Markdown with proper talk formatting - Add 5 current meetup events from meetup.com (2024-2025) - Implement consistent SEO-optimized event slug patterns - Add proper speaker and topic taxonomies throughout - Include both historical events and upcoming meetups - Update templates for external link handling and pagination - Complete migration from Jekyll to Zola format Events span from 2012 through 2025 covering PHP ecosystem evolution: PHP 5.4 → PHP 8.5, frameworks, tools, testing, performance, DevOps
1 parent 38c795b commit 7d5e210

89 files changed

Lines changed: 2155 additions & 78 deletions

File tree

Some content is hidden

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

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"Bash(curl:*)",
99
"Bash(zola serve:*)",
1010
"Bash(git add:*)",
11-
"mcp__playwright__browser_navigate"
11+
"mcp__playwright__browser_navigate",
12+
"WebFetch(domain:www.meetup.com)"
1213
],
1314
"deny": []
1415
}

CLAUDE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ When migrating events from old Jekyll site (`/home/dazz/Code/berlinphp/berlinphp
116116
5. Preserve bilingual content (English + German sections), but in most cases the site will only display English content.
117117
6. **Link Replacements**: Replace `[co.up](http://www.bephpug.de/location.html)` links with plain text "co.up" - these external links are outdated and should be simplified to just the venue name.
118118
7. **Location Format**: Use full venue details in frontmatter: `location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"` instead of just "co.up" for better SEO and user information.
119+
8. **HTML File Conversion**: Starting from June 2013, posts are in HTML format. Convert HTML structure to Markdown format while preserving content, apply same migration rules as MD files.
120+
- Use individual talk sections: `## Talk 1: Title` (no bold formatting)
121+
- Speaker name as linked line: `by [Speaker Name](twitter_link)` placed AFTER description if description exists, otherwise directly after title
122+
- Include talk descriptions when available from HTML content
123+
- No "English/Deutsch" section headers for HTML-converted events
124+
- Skip empty slots, only create talks for filled content
119125

120126
## Configuration Notes
121127

content/events/2012-04-03-pimcore-zend-php54-createjs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description = "April 2012 meetup featuring talks on pimcore CMS, Zend Framework
44
date = "2012-04-03"
55

66
[taxonomies]
7-
speaker = ["Christoph Luehr", "Marc Bennewitz", "Martin Holzhauer", "Henri Bergius"]
7+
speaker = ["Christoph Lühr", "Marc Bennewitz", "Martin Holzhauer", "Henri Bergius"]
88
topic = ["pimcore", "Zend Framework 2", "PHP 5.4", "CreateJS"]
99

1010
[extra]
@@ -13,7 +13,7 @@ location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
1313

1414
## English
1515

16-
* [pimcore](http://www.pimcore.org/) by Christoph Luehr
16+
* [pimcore](http://www.pimcore.org/) by Christoph Lühr
1717
* zf2 components: Zend\Cache, Zend\Serializer, Zend\EventManager, Zend\Stdlib\ErrorHandler by Marc Bennewitz
1818
* An Introduction to PHP 5.4 by Martin Holzhauer
1919
* [CreateJS](http://createjs.org/) by Henri Bergius
@@ -25,7 +25,7 @@ Looking forward to seeing all of you.
2525

2626
## Deutsch
2727

28-
* [pimcore](http://www.pimcore.org/) von Christoph Luehr
28+
* [pimcore](http://www.pimcore.org/) von Christoph Lühr
2929
* zf2-Komponenten vorgestellt: Zend\Cache, Zend\Serializer, Zend\EventManager, Zend\Stdlib\ErrorHandler von Marc Bennewitz
3030
* Einführung in PHP 5.4 von Martin Holzhauer
3131
* Einführung in [CreateJS](http://createjs.org) von Henri Bergius

content/events/2012-12-04-php55-dependency-injection-traffic-spikes/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
+++
22
title = "Meetup on the 4th December, 2012 // Treffen am 4. Dezember, 2012"
3-
description = "December 2012 meetup featuring PHP 5.5 preview by David Soria Parra, Dependency Injection for beginners by Timon Schroeter, and handling traffic spikes by Christoph Luehr."
3+
description = "December 2012 meetup featuring PHP 5.5 preview by David Soria Parra, Dependency Injection for beginners by Timon Schroeter, and handling traffic spikes by Christoph Lühr."
44
date = "2012-12-04"
55

66
[taxonomies]
7-
speaker = ["David Soria Parra", "Timon Schroeter", "Christoph Luehr"]
7+
speaker = ["David Soria Parra", "Timon Schroeter", "Christoph Lühr"]
88
topic = ["PHP 5.5", "Dependency Injection", "Performance", "Traffic Spikes", "Scalability", "TV Advertising", "High Load"]
99

1010
[extra]
@@ -15,7 +15,7 @@ location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
1515

1616
* David Soria Parra: PHP 5.5
1717
* [Timon Schroeter](http://www.php-entwickler-berlin.de): Dependency Injection for Beginners
18-
* Christoph Luehr: Brace for impact - how to survive TV ads
18+
* Christoph Lühr: Brace for impact - how to survive TV ads
1919

2020
We meet at co.up as always, drinks are
2121
available for a small fee. The meetup starts at 7pm, talks start at 7:30pm.
@@ -26,7 +26,7 @@ Looking forward to seeing all of you.
2626

2727
* David Soria Parra: PHP 5.5
2828
* [Timon Schroeter](http://www.php-entwickler-berlin.de): Dependency Injection für Beginner
29-
* Christoph Luehr: Wie überlebt meine Seite Trafficspitzen?
29+
* Christoph Lühr: Wie überlebt meine Seite Trafficspitzen?
3030

3131
Wie immer treffen wir uns bei co.up,
3232
Getränke sind gegen ein kleines Entgelt zu haben.

content/events/2013-04-02-laravel-vagrant-php/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
+++
22
title = "Meetup on the 2nd April, 2013 // Treffen am 2. April, 2013"
3-
description = "April 2013 meetup featuring Laravel framework introduction by Franz Liedke and Vagrant for PHP development by Christoph Luehr."
3+
description = "April 2013 meetup featuring Laravel framework introduction by Franz Liedke and Vagrant for PHP development by Christoph Lühr."
44
date = "2013-04-02"
55

66
[taxonomies]
7-
speaker = ["Franz Liedke", "Christoph Luehr"]
7+
speaker = ["Franz Liedke", "Christoph Lühr"]
88
topic = ["Laravel", "PHP Framework", "Vagrant", "Development Environment", "Virtualization", "DevOps"]
99

1010
[extra]
@@ -14,7 +14,7 @@ location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
1414
## English
1515

1616
* [Franz Liedke](http://www.develophp.org): Introduction to the Laravel framework
17-
* Christoph Luehr: Rags to Riches - Vagrant for PHP
17+
* Christoph Lühr: Rags to Riches - Vagrant for PHP
1818

1919
We meet at co.up as always, drinks are
2020
available for a small fee. The meetup starts at 7pm, talks start at 7:30pm.
@@ -24,7 +24,7 @@ Looking forward to seeing all of you.
2424
## Deutsch
2525

2626
* [Franz Liedke](http://www.develophp.org): Einführung in das Laravel framework
27-
* Christoph Luehr: Rags to Riches - Vagrant for PHP
27+
* Christoph Lühr: Rags to Riches - Vagrant for PHP
2828

2929
Wie immer treffen wir uns bei co.up,
3030
Getränke sind gegen ein kleines Entgelt zu haben.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
+++
2+
title = "Meetup on the 4th of June, 2013"
3+
description = "June 2013 meetup featuring PHP critique by Ole Michaelis, Arduino control with PHP by Thomas Weinert, and TYPO3 Flow by Robert Lemke."
4+
date = "2013-06-04"
5+
6+
[taxonomies]
7+
speaker = ["Ole Michaelis", "Thomas Weinert", "Robert Lemke"]
8+
topic = ["PHP", "Arduino", "Hardware Control", "TYPO3 Flow", "Framework", "PHP Criticism", "IoT"]
9+
10+
[extra]
11+
location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
12+
+++
13+
14+
## Talk 1: What's wrong with php?
15+
16+
by [Ole Michaelis](https://www.linkedin.com/in/olemichaelis/)
17+
18+
## Talk 2: Controlling Arduino with PHP
19+
20+
15 minute talk exploring hardware control using PHP.
21+
22+
by [Thomas Weinert](https://twitter.com/ThomasWeinert)
23+
24+
## Talk 3: Typo3 Flow
25+
26+
by [Robert Lemke](https://twitter.com/robertlemke)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
+++
2+
title = "Meetup on the 2nd of July, 2013"
3+
description = "July 2013 meetup featuring coding standards with PHPCS/PHPMD by Volker Dusch, developer tools by Martin Holzhauer, and character encodings by Christoph Lühr."
4+
date = "2013-07-02"
5+
6+
[taxonomies]
7+
speaker = ["Volker Dusch", "Martin Holzhauer", "Christoph Lühr"]
8+
topic = ["Coding Standards", "PHPCS", "PHPMD", "Quality Assurance", "Developer Tools", "Character Encoding", "Charsets"]
9+
10+
[extra]
11+
location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
12+
+++
13+
14+
## Talk 1: Your (coding) standard matters
15+
16+
A short discussion of current practices surrounding two of PHP's quality assurance tools: [PHPCS](http://pear.php.net/manual/en/package.php.php-codesniffer.php) and [PHPMD](http://phpmd.org/). Let's discuss what value they provide for your teams and how to configure them to your liking.
17+
18+
by [Volker Dusch](https://twitter.com/__edorian)
19+
20+
## Talk 2: Devtools
21+
22+
Tools for the daily developer work.
23+
24+
by [Martin Holzhauer](https://twitter.com/woodworker)
25+
26+
## Talk 3: Character Building
27+
28+
Fun with charsets and encodings.
29+
30+
by [Christoph Lühr](https://twitter.com/chluehr)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
+++
2+
title = "Meetup on the 31st of July, 2013"
3+
description = "August 2013 meetup featuring testing obstacles by Chris Hartjes, real-time logging with Logstash by Bastian Hofmann, and queuing with Bernard by Ulrich Kautz."
4+
date = "2013-08-01"
5+
6+
[taxonomies]
7+
speaker = ["Chris Hartjes", "Bastian Hofmann", "Ulrich Kautz"]
8+
topic = ["Testing", "PHP Testing", "Logging", "Real-Time", "Logstash", "Graylog2", "Queuing", "Bernard", "Task Offloading"]
9+
10+
[extra]
11+
location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
12+
+++
13+
14+
## Talk 1: Why You Can't Test
15+
16+
Chris Hartjes risks annoying his wife by giving a talk while on vacation, talking about 7 obstacles he sees towards testing your PHP code.
17+
18+
by [Chris Hartjes](https://twitter.com/grmpyprogrammer)
19+
20+
## Talk 2: Logging everything in Real-Time
21+
22+
In this talk you'll see how you can build up a central log management solution with opensource tools like Logstash and Graylog2 to analyze all the log messages your application creates in real-time.
23+
24+
by [Bastian Hofmann](https://twitter.com/BastianHofmann)
25+
26+
## Talk 3: Hard work? I'll do it later.
27+
28+
What is queuing and why it improves your life? Introduction to offloading tasks with the new Bernard queue.
29+
30+
by [Ulrich Kautz](https://twitter.com/ukautz)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
+++
2+
title = "Meetup on the 3rd of september, 2013"
3+
description = "September 2013 meetup featuring QB extension for PHP performance by Chung Leong and Silex microframework by Volker Dusch."
4+
date = "2013-09-03"
5+
6+
[taxonomies]
7+
speaker = ["Chung Leong", "Volker Dusch"]
8+
topic = ["QB Extension", "Performance", "PHP Optimization", "Image Manipulation", "Silex", "Microframework", "Symfony Components"]
9+
10+
[extra]
11+
location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
12+
+++
13+
14+
## Talk 1: The QB extension: Performing computationally intensive tasks in PHP
15+
16+
While PHP is an excellent language for building complex web application, it imposes certain limitations. Writing code that performs low-level, computationally intensive tasks in PHP is generally impractical--it'd simply be too slow. The QB extension addresses this particular weakness of PHP. By translating Zend opcodes and executing them through a statically typed virtual machine, QB offers an order-of-magnitude gain in performance. The added power allows PHP programmers do things they were unable to do before, such as complex pixel-level image manipulation.
17+
18+
by [Chung Leong](https://github.com/chung-leong)
19+
20+
## Talk 2: Silex - Why 'less' can be so much more
21+
22+
A framework talk to fill the void - Still going to be fun :)
23+
24+
by [Volker Dusch](https://twitter.com/__edorian)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
+++
2+
title = "Meetup on the 1st of October, 2013"
3+
description = "October 2013 meetup featuring Composer plugin API by Till Klampäckel and TDD live coding session by Nikolas Martens."
4+
date = "2013-10-01"
5+
6+
[taxonomies]
7+
speaker = ["Till Klampäckel", "Nikolas Martens"]
8+
topic = ["Composer", "Plugin API", "Package Management", "TDD", "Test-Driven Development", "Live Coding", "Algorithms"]
9+
10+
[extra]
11+
location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"
12+
+++
13+
14+
## Talk 1: Extending composer
15+
16+
Introducing composer's new plugin API with real-world use-cases.
17+
18+
by [Till Klampäckel](https://twitter.com/klimpong)
19+
20+
## Talk 2: Small steps - the magic of TDD
21+
22+
In a live coding session, I will make an algorithmic problem solves itself using test-driven development.
23+
24+
by [Nikolas Martens](http://rtens.org)

0 commit comments

Comments
 (0)