Skip to content

Instantly share code, notes, and snippets.

@koriym
koriym / event_driven_contents_deep_deive.md
Last active March 17, 2024 00:54
イベント駆動コンテンツ - Deep Dive (オリジナルプロポーザル)

イベント駆動コンテンツ - Deep Dive (オリジナルプロポーザル)

さる、3/9に東京のPHPerkaigiというカンファレンスで「Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク」と題してモダンCDNを中心とする理想的な分散Webシステムのトークを行いました。それに対して「ゾクゾクした、自分の原点を考えさせられた、とてつもない伝説だった、映画のようだった」など従来のトークの感想に収まらないエモーショナルな感想が寄せられました。

これは、私のプレゼンテーションが "単なる技術的知識の伝達を超えて、聴衆の心に火をつける「体験」だったことを物語っています。技術的な学びは当然ありつつも、それ以上に開発者としての情熱や価値観に訴えかける内容だったからこそ、これほど多様な反響が寄せられたのだと思います。" (..以上トーク内容と感想を読んだAIの考察)

そこで、この体験を可能にしたプレゼンテーションの制作プロセス自体も、また違う物語として成立するのではないかと考えました。

本プレゼンテーションでは、元のスライドを用いて、「キャッシングという具体的な技術的課題への取り組みが、いかにして普遍的な問いかけと開発者としての情熱につながっていったのか」を、メイキング形式で語ります。松尾芭蕉の不易流行思想との邂逅、比喩と例え話による技術的概念の平易な説明、映画的な構成による聴衆の興味の喚起、聴衆の心に響く言葉選びと表現の工夫など、プレゼンテーション作りの舞台裏をベースにしながら、自分たちが誰のために何を作っているのかを訴えます。

@koriym
koriym / .phpv
Created July 25, 2022 00:15
Fast Brew PHP version switching
# usage: . ~/.phpv php_version
export PATH="/opt/homebrew/opt/php@$1/bin/:$PATH"; php -v
@koriym
koriym / php_semantic_exception.php
Last active July 8, 2022 04:52
PHP Semantic Exception
<?php
namespace Application;
$fileName = '/not-writable';
// Human-only readable exceptions
// throw new \RuntimeException("{$fileName} is not writable.");
// Semantic exceptions
@koriym
koriym / alps3min.xml
Created June 26, 2022 02:03
alps3min.xml
<?xml version="1.0" encoding="UTF-8"?>
<alps
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://alps-io.github.io/schemas/alps.xsd">
<title>ALPS3min</title>
<!-- Ontology -->
<descriptor id="name" />
<!-- Taxonomy -->
@koriym
koriym / WhyPageAndAppResource.md
Last active June 7, 2023 02:19
なぜ PageリソースとAppリソースがあるのか

なぜ PageリソースとAppリソースがあるのか

どこから来たのか

BEAR.Sunday以前のフレームワーク、BEAR.Saturdayがページとリソースというレイヤーを持っていました。

https://blog.excite.co.jp/exdev/25879834/

MVCでいうとコントローラーの役割が"ページ"。ページクラスはコントローラーと違ってルーターによるメソッドのマッピングは必要なく、HTTPメソッドにマップするメソッドがありました。

@koriym
koriym / suppress_deprecated.php
Created November 14, 2021 13:19
Suppress E_DEPRECATED in vendor files
<?php
if (PHP_VERSION_ID >= 80100) {
set_error_handler(static function (int $errno, string $errstr, string $errfile) {
return $errno === E_DEPRECATED && str_contains($errfile, dirname(__DIR__) . '/vendor');
});
}
@koriym
koriym / ruleset_xml_schema.xsd
Created May 5, 2021 02:06 — forked from addiks/ruleset_xml_schema.xsd
New ruleset_xml_schema.xsd
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
targetNamespace="http://pmd.sf.net/ruleset/1.0.0"
elementFormDefault="qualified">
<xs:element name="ruleset">
<xs:complexType>
<xs:sequence>
@koriym
koriym / NotPreladerdFinder.php
Created March 10, 2021 06:27
Loader to find classes that have not been preloaded
<?php
// preloadされていないクラスを見つけるローダー
$notPreloaded = new ArrayObject();
spl_autoload_register(function (string $class) use ($notPreloaded) {
$notPreloaded[] = $class;
},
true,
true
);
@koriym
koriym / pcre2.h_not_found.md
Last active February 10, 2021 02:52
'pcre2.h' file not found on Mac Big Sur with PHP 8?
/opt/homebrew/Cellar/php/8.0.2/include/php/ext/pcre/php_pcre.h:23:10: fatal error: 
      'pcre2.h' file not found
#include "pcre2.h"
         ^~~~~~~~~
1 error generated.

To fix this issue, Symlink pcre2.h manually.

@koriym
koriym / meida_query.php
Last active January 31, 2021 04:28
Minimum repository pattern with AOP
<?php
// The next Rqy.Query
namespace Ray\Query\Fake\Media;
use Ray\Query\Annotation\Sql;
interface RegisterUserInterface
{