<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Get Info: #web</title>
    <description>Posts tagged “web” — Blog of independent game and app developer Matt Sephton. Featuring vintage Macintosh, game development, digital artwork, Japanese esoterica, video game reviews, hacks and tips, and much more.</description>
    <link>https://blog.gingerbeardman.com/tag/web/</link>
    <atom:link href="https://blog.gingerbeardman.com/tag/web/index.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 28 Jun 2026 16:57:32 +0000</pubDate>
    <lastBuildDate>Sun, 28 Jun 2026 16:57:32 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>

    
      
        <item>
          <title>Passing Cloudflare Turnstile using two fingers</title>
          <description>&lt;p&gt;Here’s a quick tip for passing the infamous Cloudflare Turnstile captcha checkbox pages:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Tab&lt;/code&gt; key, to focus the checkbox (I use my index finger)&lt;/li&gt;
  &lt;li&gt;press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Space&lt;/code&gt; bar, to select the checkbox (I use my thumb)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;…no mouse movement or clicking needed!&lt;/p&gt;

&lt;p&gt;✌️&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/cloudflare-turnstile-two-fingers.png&quot; alt=&quot;Cloudflare Turnstile checkbox&quot; /&gt;&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 15 Jun 2026 17:33:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2026/06/15/passing-cloudflare-turnstile-using-two-fingers/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2026/06/15/passing-cloudflare-turnstile-using-two-fingers/</guid>
        </item>
      
    
      
        <item>
          <title>Controlling local web servers using xbar</title>
          <description>&lt;blockquote&gt;
  &lt;p&gt;I’ve released a native macOS app that does all this script can do &lt;em&gt;and much more!&lt;/em&gt;&lt;br /&gt;Read all about it: &lt;a href=&quot;https://www.gingerbeardman.com/apps/localmost/&quot;&gt;gingerbeardman.com/apps/localmost/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes I want to run local web servers for projects I’m working on. Usually more than one at a time, or at least over a short space of time.&lt;/p&gt;

&lt;p&gt;So I thought it would be cool to have a controller for those local servers in my menu bar. Sounded like the perfect job for a little scripting and &lt;a href=&quot;https://github.com/matryer/xbar&quot;&gt;xbar&lt;/a&gt;, which is a great way to prove a menubar app idea quickly.&lt;/p&gt;

&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;/h2&gt;

&lt;p&gt;The plugin allows you to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;toggle servers on and off&lt;/li&gt;
  &lt;li&gt;open in browser&lt;/li&gt;
  &lt;li&gt;view ports&lt;/li&gt;
  &lt;li&gt;view paths&lt;/li&gt;
  &lt;li&gt;view log sizes&lt;/li&gt;
  &lt;li&gt;clear logs&lt;/li&gt;
  &lt;li&gt;edit config&lt;/li&gt;
  &lt;li&gt;and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/xbar-localhost-dark.png&quot; alt=&quot;IMG&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;example-config&quot;&gt;Example config&lt;/h2&gt;

&lt;p&gt;In the config file we set the starting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SERVER_PORT&lt;/code&gt;, followed by one or more &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SERVER_DIR&lt;/code&gt; for as many projects as you might want servers. We can temporarily comment out those server lines to prevent projects from appearing in the menu.&lt;/p&gt;

&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# .xbar_httpd_config&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;SERVER_PORT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;8000
&lt;span class=&quot;c&quot;&gt;#SERVER_DIR=~/Projects/starchasers/&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;SERVER_DIR&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;~/Projects/serenity/
&lt;span class=&quot;nv&quot;&gt;SERVER_DIR&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;~/Projects/point-cloud/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;source-code&quot;&gt;Source code&lt;/h2&gt;

&lt;p&gt;Python source code is available in the following gist:&lt;/p&gt;

&lt;noscript&gt;&lt;p&gt;&lt;a href=&quot;https://gist.github.com/gingerbeardman/a81df96cd0b4c7a397b04711cafeb287&quot;&gt;View the source code as a Gist&lt;/a&gt;&lt;/p&gt;&lt;/noscript&gt;
&lt;script src=&quot;https://gist.github.com/gingerbeardman/a81df96cd0b4c7a397b04711cafeb287.js&quot;&gt;&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 12 Jan 2026 20:57:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2026/01/12/xbar-local-web-server-controller/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2026/01/12/xbar-local-web-server-controller/</guid>
        </item>
      
    
      
        <item>
          <title>WebGL CRT Shader</title>
          <description>&lt;p&gt;I’m releasing my WebGL CRT Shader as open source.&lt;/p&gt;

&lt;p&gt;It creates a CRT/vintage TV effect so could be used in games, emulators, apps, demos, visuals, etc. It’s not a simulator just something that gives the same general old school vibe.&lt;/p&gt;

&lt;p&gt;As a WebGL shader, it runs on the device’s hardware GPU in the browser and renders to a &amp;lt;canvas&amp;gt; (or offscreen canvas). I currently use it with Three.js, and the demo below uses just a 2D canvas.&lt;/p&gt;

&lt;p&gt;It’s optimised to run well on low power devices as far back as iPhone XS, though I’m certain it can be optimised even further. &lt;a href=&quot;https://github.com/gingerbeardman/webgl-crt-shader/pulls&quot;&gt;PRs welcome&lt;/a&gt;! The easiest personal optimisation you might make would be removing processing of unused parameters.&lt;/p&gt;

&lt;p&gt;Is it scientifically correct? &lt;em&gt;Hell no.&lt;/em&gt; Does it look good? &lt;em&gt;Yes.&lt;/em&gt; Does it give you the feels? &lt;em&gt;Absolutely.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/gingerbeardman/webgl-crt-shader/&quot;&gt;github.com/gingerbeardman/webgl-crt-shader/&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;history&quot;&gt;History&lt;/h2&gt;

&lt;p&gt;It began as a &lt;a href=&quot;https://bsky.app/profile/gingerbeardman.com/post/3lk2arnt4rc2o&quot;&gt;shader for Love2D&lt;/a&gt; at the beginning of 2025 (&lt;a href=&quot;https://gist.github.com/gingerbeardman/7392ee84fdb2e405d7437b5b12e4c12d&quot;&gt;here’s a gist of that one&lt;/a&gt;) and by the end of 2025 I had ported it to GLSL for a personal work-in-progress web game.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;live-demo&quot;&gt;Live Demo&lt;/h2&gt;

&lt;p&gt;Reach for the sliders!&lt;/p&gt;

&lt;p&gt;(You can scroll the demo horizontally on mobile)&lt;/p&gt;

&lt;div class=&quot;table-wrapper&quot;&gt;

  &lt;iframe src=&quot;https://gingerbeardman.github.io/webgl-crt-shader/&quot; width=&quot;740&quot; height=&quot;740&quot;&gt;
![screenshot](https://cdn.gingerbeardman.com/images/posts/glsl-web-crt-shader.png)
&lt;/iframe&gt;

&lt;/div&gt;

&lt;p&gt;^ Screenshot is Pico-8 classic &lt;a href=&quot;https://www.lexaloffle.com/bbs/?tid=3547&quot;&gt;Worm Nom Nom&lt;/a&gt; by Tic Tac Toad (kometbomb + iLKke) 🌸🍏🎩🐛💩&lt;/p&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sun, 04 Jan 2026 17:44:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2026/01/04/webgl-crt-shader/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2026/01/04/webgl-crt-shader/</guid>
        </item>
      
    
      
        <item>
          <title>Review: Fly Guy</title>
          <description>&lt;p&gt;&lt;img src=&quot;https://64.media.tumblr.com/tumblr_lanbrgXWQe1qbfpni.png&quot; alt=&quot;Fly Guy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raise da Roof!!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fly Guy&lt;/em&gt; takes me back—way back. Whilst 2002 seems so long ago, it comes as no surprise that it &lt;em&gt;is&lt;/em&gt; so long ago. Screens were smaller, computers were slower, web browsers were much less capable and had to be helped along by plugins; so long ago that there was no iPhone! It was also the year I met the girl who would become my wife. Good times.&lt;/p&gt;

&lt;p&gt;To give the timeframe a bit of context, the consoles of the day were the GameCube, PlayStation 2 and Xbox. How strange it must have seemed when &lt;em&gt;Fly Guy&lt;/em&gt; appeared in web browsers using the once popular Macromedia Flash plugin to provide animation, sound and keyboard control in the small browser windows of the time.&lt;/p&gt;

&lt;p&gt;Purposefully eschewing 2002-era graphics, and opting for monochrome pixel artwork reminiscent of the original Apple Macintosh, turns &lt;em&gt;Fly Guy&lt;/em&gt; into something timeless. Trevor Van Meter also injects a good dose of humour on top of his excellent animations. A chilled, looping melody, and various spot sound effects round out the package. This is one stylish and psychedelic game.&lt;/p&gt;

&lt;p&gt;But &lt;em&gt;Fly Guy&lt;/em&gt; is more of a multimedia piece, or an interactive work of art, than a game. There is a goal, of course, and various things happen along the way (I won’t spoil it by telling you what they are), but there is no high score and no fire button. Everything that appears in the game serves a purpose, and it’s the exploration and discovery that brings a smile to your face in the few minutes you should take out of your day to play through this forgotten gem.&lt;/p&gt;

&lt;p&gt;Let’s hope it’s not too long before we enjoy a new trip in &lt;em&gt;Fly Guy 2&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;July 2016: some 14 years after it was originally launched &lt;em&gt;Fly Guy&lt;/em&gt; has been re-released on mobile! Links below.&lt;/p&gt;

&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://apple.co/2aPvN1N&quot;&gt;Get &lt;em&gt;Fly Guy&lt;/em&gt; for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tvmstudio.flyguy&quot;&gt;Get &lt;em&gt;Fly Guy&lt;/em&gt; for Android&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.trevorvanmeter.com/flyguy/&quot;&gt;Play &lt;em&gt;Fly Guy&lt;/em&gt; online&lt;/a&gt; (Flash plugin required)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.trevorvanmeter.com&quot;&gt;See more of Trevor’s work&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.twitter.com/heytvm&quot;&gt;Follow @heytvm on Twitter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Tue, 30 Sep 2014 21:15:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2014/09/30/fly-guy/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2014/09/30/fly-guy/</guid>
        </item>
      
    
      
        <item>
          <title>Web Design Index 2</title>
          <description>&lt;p&gt;A couple of websites I’ve built: one for photographer Rankin and the other for my former employer Form, made during my time working for them in 1998/9, are featured in the book Web Design Index 2 and on the accompanying CD.&lt;/p&gt;

&lt;p&gt;Compiled by Günter Beer, and published by The Pepin Press/Agile Rabbit Editions.&lt;/p&gt;

&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20020401235422/http://www.webdesignindex.org/&quot;&gt;www.webdesignindex.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.co.uk/Web-Design-Index-Paperback-CD-Rom/dp/9057680262&quot;&gt;www.amazon.co.uk/Web-Design-Index-Paperback-CD-Rom/dp/9057680262&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archive.org/details/webdesignindex2w0000pepi/page/336/mode/2up?q=rankin&quot;&gt;archive.org/details/webdesignindex2w0000pepi/page/336/mode/2up&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Thu, 31 Jan 2002 12:00:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2002/01/31/web-design-index-vol-2/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2002/01/31/web-design-index-vol-2/</guid>
        </item>
      
    

  </channel>
</rss>
