Skip to content

Instantly share code, notes, and snippets.

View ThijsFeryn's full-sized avatar

Thijs Feryn ThijsFeryn

View GitHub Profile
@ThijsFeryn
ThijsFeryn / edgestash-twig-extension.php
Created September 2, 2019 15:15
Twig extension for edgestash
<?php
namespace App\EdgestashBundle;
use Symfony\Component\HttpFoundation\RequestStack;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
class TwigExtension extends AbstractExtension
{
@ThijsFeryn
ThijsFeryn / edgestash-subscriber.php
Created September 2, 2019 15:14
edgestash negotiation in Symfony
<?php
namespace App\EdgestashBundle\EventSubscriber;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class EdgestashSubscriber implements EventSubscriberInterface
{
@ThijsFeryn
ThijsFeryn / edgestash-synth-backend.vcl
Created August 5, 2019 14:37
edgestash through link headers & a synthesized JSON backend
vcl 4.1;
import cookieplus;
import edgestash;
import std;
import ykey;
import redis;
import synthbackend;
backend default {
.host = "origin";
varnishtest "Redis VMOD and strings containing NULL chars"
shell {
python - <<EOF
import base64
import redis
b64 = 'X3NmMl9hdHRyaWJ1dGVzfGE6Mjp7czo1OiJsaWtlZCI7YTowOnt9czoxNDoiX3NlY3VyaXR5X21haW4iO3M6OTAzOiJDOjc0OiJTeW1mb255XENvbXBvbmVudFxTZWN1cml0eVxDb3JlXEF1dGhlbnRpY2F0aW9uXFRva2VuXFVzZXJuYW1lUGFzc3dvcmRUb2tlbiI6ODE1OnthOjM6e2k6MDtOO2k6MTtzOjQ6Im1haW4iO2k6MjthOjQ6e2k6MDtPOjQxOiJTeW1mb255XENvbXBvbmVudFxTZWN1cml0eVxDb3JlXFVzZXJcVXNlciI6Nzp7czo1MToiAFN5bWZvbnlcQ29tcG9uZW50XFNlY3VyaXR5XENvcmVcVXNlclxVc2VyAHVzZXJuYW1lIjtzOjU6InRoaWpzIjtzOjUxOiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAcGFzc3dvcmQiO3M6NjA6IiQyeSQxMiQxaUVVNVJ0REZUQkptMGhocXpZR2NPamdSTFhXUGlPQjYzS2VFVVhNNXA5bFFLejlFeklUQyI7czo1MDoiAFN5bWZvbnlcQ29tcG9uZW50XFNlY3VyaXR5XENvcmVcVXNlclxVc2VyAGVuYWJsZWQiO2I6MTtzOjYwOiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAYWNjb3VudE5vbkV4cGlyZWQiO2I6MTtzOjY0OiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAY3JlZGVudGlhbHNOb25FeHBpcmVkIjtiOjE7czo1OToiAFN5bWZvbnlcQ29tcG9uZW50XFN
@ThijsFeryn
ThijsFeryn / varnishusage.go
Last active June 7, 2019 00:33
A Go script that retrieves the Varnish memory consumption and returns it via a RESTful API using GoJi
package main
import (
"strconv"
"net/http"
"github.com/zenazn/goji"
"github.com/zenazn/goji/web"
"os/exec"
"encoding/json"
)
public function start(Request $request, AuthenticationException $authException = null)
{
$jwtPayload = $this->getJwtPayload($request->cookies->get('token'));
if(isset($jwtPayload['sub'])) {
return new Response("Don't wanna to this, really. The actual protected page should show up instead");
}
return new RedirectResponse($this->router->generate('login'));
}
@ThijsFeryn
ThijsFeryn / wordpress.vcl
Created June 3, 2016 07:51
Typical Wordpress VCL for Varnish 4
vcl 4.0;
import std;
backend default {
.host = "127.0.0.1";
.port = "8080";
.max_connections = 300;
.first_byte_timeout = 100s;
.connect_timeout = 10s;
@ThijsFeryn
ThijsFeryn / default.vcl
Created December 14, 2017 14:35
test 123
vcl 4.0;
import std;
backend default {
.host = "176.62.169.146" ;
.port = "80";
}
acl purge {
"127.0.0.1";
@ThijsFeryn
ThijsFeryn / bzf.php
Last active July 28, 2017 09:55
Logic do add the date to the post of blauwzwartfans.be
function addDateBeforeFirstParagraph($content) {
if(!is_singular('post')) return $content;
$closing_p = '<p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
@ThijsFeryn
ThijsFeryn / Dockerfile
Last active July 4, 2017 11:08
Dockerized Hello NodeJS example to test Kubernetes
FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD node server.js