133 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="en-us" dir="ltr">
 | 
						|
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
 | 
						|
  <meta charset="utf-8" />
 | 
						|
<meta name="viewport" content="width=device-width" />
 | 
						|
<title>
 | 
						|
  Posts | Coding with Andrzej
 | 
						|
</title>
 | 
						|
<link rel="alternate" type="application/rss+xml" href="http://localhost:1313//index.xml" title="Coding with Andrzej">
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
      <link rel="stylesheet" href="/css/main.css" />
 | 
						|
  
 | 
						|
 | 
						|
      <link rel="stylesheet" href="/css/syntax.css" />
 | 
						|
  
 | 
						|
 | 
						|
      <link rel="stylesheet" href="/css/defaults.css" />
 | 
						|
  
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 
 | 
						|
      <script src="/js/main.js"></script>
 | 
						|
 | 
						|
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
  <header>
 | 
						|
    <a href=http://localhost:1313/><h1>Coding with Andrzej</h1></a>
 | 
						|
 | 
						|
  <nav>
 | 
						|
    <ul>
 | 
						|
    <li>
 | 
						|
      <a href="/">Home</a>
 | 
						|
    </li>
 | 
						|
    <li>
 | 
						|
      <a aria-current="page" class="active" href="/posts/">Posts</a>
 | 
						|
    </li>
 | 
						|
    <li>
 | 
						|
      <a href="/tags/">Tags</a>
 | 
						|
    </li>
 | 
						|
    </ul>
 | 
						|
  </nav>
 | 
						|
 | 
						|
 | 
						|
  </header>
 | 
						|
  <main>
 | 
						|
    
 | 
						|
  <h1>Posts</h1>
 | 
						|
  
 | 
						|
  
 | 
						|
  
 | 
						|
  
 | 
						|
    <ul class="page-list">
 | 
						|
  
 | 
						|
  
 | 
						|
<li>
 | 
						|
    <h2 class="center"><a href="/posts/buzzer-game/">Classroom Buzzer App</a></h2>
 | 
						|
  
 | 
						|
       
 | 
						|
      <time datetime="2024-11-24T15:23:50+01:00">November 24, 2024</time>
 | 
						|
  
 | 
						|
    <h2 id="i-started-working-on-a-new-project-today">I started working on a new project today.</h2>
 | 
						|
<p>The client is an educational services provider and wants me to develop a tool to facilitate in-person group activities. This tool should:</p>
 | 
						|
<ul>
 | 
						|
<li>provide a platform which students can log into from a mobile device, in a frictionless process that takes seconds</li>
 | 
						|
<li>allow a teacher to assign groups and pairs in</li>
 | 
						|
<li>allow the teacher to dynamically reassign groups without repeating combinations</li>
 | 
						|
<li>implement a simple score-keeping functionality</li>
 | 
						|
<li>be able to run a ‘buzzer’ game</li>
 | 
						|
<li>have a clean, appealing, and user-friendly UI</li>
 | 
						|
</ul>
 | 
						|
<p>A quick read of this brief should make it clear that what is required here is a server capable of handling multiple, live, two-way connections. The server needs to be able to update the clients whenever the teacher wants to shuffle the groups, and the buzzer game requires that when a student ‘buzzes’, state is propagated via the server to all other clients. The solution to this problem is websockets, and a server capable of handling concurrency.</p>
 | 
						|
    
 | 
						|
    <a href="/posts/buzzer-game/">Read more...</a>
 | 
						|
    
 | 
						|
</li>
 | 
						|
  
 | 
						|
<li>
 | 
						|
    <h2 class="center"><a href="/posts/cache-busting-2/">More cache-busting</a></h2>
 | 
						|
  
 | 
						|
       
 | 
						|
      <time datetime="2024-11-15T22:33:10+01:00">November 15, 2024</time>
 | 
						|
  
 | 
						|
    <p><strong>Well, that was easy.</strong></p>
 | 
						|
<p>At the end of <a href="cache-busting">my last post</a>, I had successfully written a script to stop stale CSS from getting stuck in the browser cache. It was a rough-and-ready solution — mine usually are — but it did the job. The one optimization I wanted to make was to ensure that the cache gets busted <em>only</em> when there is fresh CSS, as opposed to on every build. I had expected to get a nice long blog post out of this, but it turns out to be a very easy job.</p>
 | 
						|
    
 | 
						|
    <a href="/posts/cache-busting-2/">Read more...</a>
 | 
						|
    
 | 
						|
</li>
 | 
						|
  
 | 
						|
<li>
 | 
						|
    <h2 class="center"><a href="/posts/cache-busting/">Invalidating the browser cache</a></h2>
 | 
						|
  
 | 
						|
       
 | 
						|
      <time datetime="2024-11-14T14:24:21+01:00">November 14, 2024</time>
 | 
						|
  
 | 
						|
    <p><strong>I had a bit of an issue with my <a href="https://demos.ajstepien.xyz">website</a> recently.</strong></p>
 | 
						|
<p>I pushed some changes incorporating images for the first time (I know – very swish, very modern), and everything seemed to be working just fine, but when I loaded the production site in Firefox… the images were not styled. Stranger still, they <em>were</em> styled when I loaded the same page in Chrome.</p>
 | 
						|
<p>The experienced computer touchers amongst you will be saying “this is obviously a cache problem”, and you’re right, it is obviously a cache problem. Pressing <code>CTR + SHIFT + R</code> (which forces Firefox to clear the cache and do a full reload) proved this thesis, and solved the immediate problem for me, on my machine. But what about other people’s machines? <strong>I needed to cache-bust.</strong></p>
 | 
						|
    
 | 
						|
    <a href="/posts/cache-busting/">Read more...</a>
 | 
						|
    
 | 
						|
</li>
 | 
						|
  
 | 
						|
<li>
 | 
						|
    <h2 class="center"><a href="/posts/permissions-strike-again/">Permissions strike again</a></h2>
 | 
						|
  
 | 
						|
       
 | 
						|
      <time datetime="2024-11-13T11:53:13+01:00">November 13, 2024</time>
 | 
						|
  
 | 
						|
    <p>Configuring Apache really isn’t rocket science. There are a wealth of great tutorials online, the documentation is very well documented, and the defaults work more or less out of the box. But it’s one of those jobs that I do just infrequently enough that I always forget things in the interim, and end up making the same old mistakes.</p>
 | 
						|
<p><em><strong>And it almost always has to do with permissions.</strong></em></p>
 | 
						|
<p>So, I’m writing this post both as a means of christening this devlog (<a href="https://demos.ajstepien.xyz">Hi! I’m Andrzej! Hire me!</a>) and also as a reminder to myself that <em>the home folder is not executable by default.</em></p>
 | 
						|
    
 | 
						|
    <a href="/posts/permissions-strike-again/">Read more...</a>
 | 
						|
    
 | 
						|
</li>
 | 
						|
  
 | 
						|
</ul>
 | 
						|
 | 
						|
  </main>
 | 
						|
  <footer>
 | 
						|
    <p>Copyright 2024. All rights reserved.</p>
 | 
						|
 | 
						|
  </footer>
 | 
						|
</body>
 | 
						|
</html>
 |