<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
        <title>Mark Frimston</title>
        <link>http://markfrimston.co.uk</link>
        <description>Software developer and hobbyist game creator based in Manchester, UK</description>
        <copyright>2012-2024 Mark Frimston</copyright>
        <lastBuildDate>Fri, 11 Oct 2024 17:39:41 UT</lastBuildDate>
        
        <item>
            <title>Look, Costa Coffee</title>
            <description>
                <![CDATA[
                    
                        <p>Look, Costa Coffee, it’s really quite simple.</p>
<p><img alt="Cappuccino Orders" src="/images/cappuccino-orders-2.png" /></p>
<p>Let:</p>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><em>l(x)</em></td>
<td><em>x</em> is lactose intolerant</td>
</tr>
<tr>
<td><em>s(x)</em></td>
<td><em>x</em> wants soy milk in their cappuccino</td>
</tr>
<tr>
<td><em>c(x)</em></td>
<td><em>x</em> wants chocolate powder on top</td>
</tr>
</tbody>
</table>
<p>Then:</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/look-costa-coffee.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/look-costa-coffee.html</link>
            <pubDate>Fri, 15 Dec 2017 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2017-12-15:look-costa-coffee</guid>
        </item>
        
        <item>
            <title>Epoch Zero</title>
            <description>
                <![CDATA[
                    
                        <p>Having worked on a couple of software systems that required localisation for 
multiple countries, I’ve encountered many situations where, much to my dismay, 
I’ve needed to dip into the baffling world of international time zones. Time
zones are one of those awkward real-world domains, the rules for which have 
evolved independently over many years across many different authorities. They
are chock-full of arbitrary edge cases that fly in the face of the kind of neat,
organised abstractions that software developers love. <a href="https://en.wikipedia.org/wiki/Tom_Scott_(entertainer)">Tom Scott</a> sums up the 
problems brilliantly in one of his videos from the Computerphile channel on 
YouTube, <a href="https://www.youtube.com/watch?v=-5wpm-gesOY">The Problem With Time &amp; Timezones</a>.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/epoch-zero.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/epoch-zero.html</link>
            <pubDate>Sat, 27 Aug 2016 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2016-08-27:epoch-zero</guid>
        </item>
        
        <item>
            <title>Gift Giving: A Chart</title>
            <description>
                <![CDATA[
                    
                        <p><img alt="Gift Giving" src="/images/gifts.png" /></p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/gift-giving---a-chart.html</link>
            <pubDate>Sat, 19 Dec 2015 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2015-12-19:gift-giving---a-chart</guid>
        </item>
        
        <item>
            <title>Super Sam World</title>
            <description>
                <![CDATA[
                    
                        <p>Last month I was asked very nicely by [Manchester Girl Geeks] organiser 
[Sam Headleand] if I would consider making a simple platform game for their
BarCamp event. So after a bit of coding with [PyGame] I came up with:</p>
<p><img alt="Super Sam World - Episode 0: Race to the BarCamp" src="/images/samworld-1.jpg" /></p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/super-sam-world.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/super-sam-world.html</link>
            <pubDate>Mon, 15 Jun 2015 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2015-06-15:super-sam-world</guid>
        </item>
        
        <item>
            <title>Ascidia</title>
            <description>
                <![CDATA[
                    
                        <p>A few years ago I wrote <a href="http://github.com/Frimkron/Ascidia">an ASCII diagram parser</a> in Python. I never got round 
to blogging about it at the time, but now I want to finally get some of my
thoughts about it down in writing.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/ascidia.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/ascidia.html</link>
            <pubDate>Sun, 07 Jun 2015 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2015-06-07:ascidia</guid>
        </item>
        
        <item>
            <title>Quick Python Web Setup for Apache</title>
            <description>
                <![CDATA[
                    
                        <p>Today I wanted to set up a quick web script; just something that ran on the 
Apache server I already had set up, took some query parameters and spat out 
a basic page in response. My usual go-to for this kind of thing would typically
be PHP, because it’s so quick to throw together and deploy. But this time, I 
wanted to see what the Python equivalent would be. Is it possible to write a
quick Python script, drop it on a server and have it just work? Well, yes, it 
turns out it is. Or very close, at least. Here’s how…</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/quick-python-web-setup-for-apache.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/quick-python-web-setup-for-apache.html</link>
            <pubDate>Tue, 07 Oct 2014 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2014-10-07:quick-python-web-setup-for-apache</guid>
        </item>
        
        <item>
            <title>Mipmap Caveats for 2D Sprites</title>
            <description>
                <![CDATA[
                    
                        <p>Recently I have been having some issues with sprites in the game I’m currently 
working on. It’s a 2D game and I’m using OpenGL to render textured triangle 
pairs for my sprites. Let me explain some of the caveats I’ve run into with 
regard to mipmaps.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/mipmap-caveats-for-2d-sprites.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/mipmap-caveats-for-2d-sprites.html</link>
            <pubDate>Sun, 31 Aug 2014 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2014-08-31:mipmap-caveats-for-2d-sprites</guid>
        </item>
        
        <item>
            <title>Hear! Hear! Sneaking Hat Get</title>
            <description>
                <![CDATA[
                    
                        <p>I’ve been going to the <a href="http://twitter.com/mcrgamejam">Manchester Game Jam</a> ever since the awesome <a href="http://blog.danhett.com">Dan Hett</a>
started it up over a year ago at <a href="http://madlab.org.uk">MadLab</a> in Manchester’s northern quarter. 
It’s so much fun to turn up with a laptop, blast out a game idea over the 
course of a weekend and see how it turns out. Most of the time, what seems like
a great idea on paper turns out to be a terrible idea in practice, once you can
see it moving in the form of a prototype. Occasionally though, an idea will 
work, and at the last-but-one game jam this happened to me.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/hear-hear-sneaking-hat-get.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/hear-hear-sneaking-hat-get.html</link>
            <pubDate>Wed, 13 Nov 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-11-13:hear-hear-sneaking-hat-get</guid>
        </item>
        
        <item>
            <title>Why Isn&#39;t Microsoft Telnet Echoing Locally Any More?</title>
            <description>
                <![CDATA[
                    
                        <p>Recently, for the <a href="http://mcrraspjam.org.uk/">Manchester Raspberry Jam</a>, I decided to write an extremely 
simple MUD game which could be run on the Raspberry Pi. The aim was to create
something fun that might spark curiosity for someone learning to program. The
code is <a href="http://github.com/frimkron/mud-pi">up on GitHub</a>.</p>
<p>Getting the server to work with Microsoft’s Telnet client that ships with 
Windows (or doesn’t, as is currently the case), proved to be a bit of a pain. 
In Linux I could connect to the server, type a command, and as I typed I would
be able to see the letters appearing in my local terminal. When I hit enter, 
the server would receive the whole line I had typed. All good.</p>
<p>In Windows, however, the first problem I discovered was that the telnet client
is no longer installed by default for Vista onwards. Vista / 7 / 8 users have 
to follow <a href="http://technet.microsoft.com/en-us/library/cc771275%28v=ws.10%29.aspx">this guide</a> to enable it.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/why-isnt-microsoft-telnet-echoing-locally-any-more.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/why-isnt-microsoft-telnet-echoing-locally-any-more.html</link>
            <pubDate>Sat, 01 Jun 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-06-01:why-isnt-microsoft-telnet-echoing-locally-any-more</guid>
        </item>
        
        <item>
            <title>Cluedo - Family Christmas Variant</title>
            <description>
                <![CDATA[
                    
                        <p>A despair-inducing variation on the classic detective game Cluedo (or Clue) for
2-6 overstuffed and resentfully blood-related players at Christmas time.</p>
<p>Rules of the game are the same as the standard version, but with the following 
additions:</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/cluedo---family-christmas-variant.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/cluedo---family-christmas-variant.html</link>
            <pubDate>Mon, 01 Apr 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-04-01:cluedo---family-christmas-variant</guid>
        </item>
        
        <item>
            <title>How&#39;s That Game Going?</title>
            <description>
                <![CDATA[
                    
                        <p>It’s been 3 months since <a href="http://markfrimston.co.uk/articles/a-declaration-i-will-make-this-game.html">my post previous about the game I’m working on</a>.
This is the game that I’m determined to finish no matter what - a simple 
2-player strategy game centered around a cannon-firing mechanic - think <em>Worms</em>
but on an isometric map. </p>
<p>What’s happened with it since then? Well, </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/hows-that-game-going.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/hows-that-game-going.html</link>
            <pubDate>Mon, 01 Apr 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-04-01:hows-that-game-going</guid>
        </item>
        
        <item>
            <title>Order Direction Icons</title>
            <description>
                <![CDATA[
                    
                        <p>There’s something that’s bugged me for the entire time I’ve been using a PC. It
concerns a fairly standard UI component that I’m sure you’ll be familiar with: 
the orderable table.</p>
<p><img alt="An Orderable Table" src="/images/orderable-table.png" /></p>
<p>As you’re probably aware, a table like this usually holds rows of data which 
can be sorted by any of the table’s columns. Clicking on a column header will
order the data by that column. Clicking this column again will toggle the order
direction between ascending order and descending order. It’s a great idea. 
However, my issue has always been with the icon indicating the order direction.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/order-direction-icons.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/order-direction-icons.html</link>
            <pubDate>Sat, 26 Jan 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-01-26:order-direction-icons</guid>
        </item>
        
        <item>
            <title>RageML - XML Markup for Rage Comics</title>
            <description>
                <![CDATA[
                    
                        <p>Oh dear - I’ve been procrastinating. NSFW warning for some rude words in this 
post. Around a month ago <a href="http://justfiona.com">Fiona</a> and I stumbled across <a href="http://blog.harshadsharma.com/ghost-redirects-in-django">this blog post</a>
about an issue with <a href="https://www.djangoproject.com">Django</a>. The post was very helpful and saved Fi a lot of 
headaches, so thanks to Harshad Sharma for that.</p>
<p>What caught my attention, though, was that fact that the post consists entirely
of a <a href="http://knowyourmeme.com/memes/rage-comics">rage comic</a>. A rage comic, for the uninitiated, is an internet meme 
wherein a hilarious anecdote is retold in the form a crudely-drawn comic strip,
usually full of cartoon facial expressions which are themselves internet memes.
I joked that such a blog post, due to its entirely rasterised nature, would be 
difficult for a search engine to index. Difficult, that is, unless the comic’s 
semantics could be encoded as text-based data. Sometimes, a joke gets out of 
hand. </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/rageml---xml-markup-for-rage-comics.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/rageml---xml-markup-for-rage-comics.html</link>
            <pubDate>Wed, 23 Jan 2013 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2013-01-23:rageml---xml-markup-for-rage-comics</guid>
        </item>
        
        <item>
            <title>A Declaration: I Will Make This Game</title>
            <description>
                <![CDATA[
                    
                        <h3>Games are Hard</h3>
<p>Making videogames has been a hobby of mine since since my mid teens. In fact, 
even before I learned to program I used to write choose-your-own-adventure 
stories based on games I had played. Yet, despite a long trail of unfinished 
projects, abandoned due to over-ambition, boredom or distraction, I’ve never 
released anything I would call a finished game. I’ve finished the occasional
thrown-together competition entry for <a href="http://ludumdare.com/compo">Ludum Dare</a>, and now and again I’ve
had the motivation to round off some small experiment into something 
functionally complete but too small in scope to be noteworthy.</p>
<p>You see, it turns out that making games is hard. 
Not just hard in the sense that it’s <em>technically</em> demanding, because after </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/a-declaration---i-will-make-this-game.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/a-declaration---i-will-make-this-game.html</link>
            <pubDate>Sun, 23 Dec 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-12-23:a-declaration---i-will-make-this-game</guid>
        </item>
        
        <item>
            <title>Correcting Photo Dates on the Xperia X10 Mini</title>
            <description>
                <![CDATA[
                    
                        <p>I have the catchily-named <em>Sony Ericsson Xperia X10 Mini Pro</em> smartphone. The 
device runs a customised version of Android that Sony Ericsson developed to 
make better use of the unusually small screen size. Among the customised apps
is a photo album which displays all the pictures taken with the device’s 
camera, ordered by date and grouped into months.</p>
<p>One annoyance I’ve found with this app, however, is the way the photo ordering 
is achieved. </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/correcting-photo-dates-on-the-xperia-x10-mini.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/correcting-photo-dates-on-the-xperia-x10-mini.html</link>
            <pubDate>Sun, 25 Nov 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-11-25:correcting-photo-dates-on-the-xperia-x10-mini</guid>
        </item>
        
        <item>
            <title>Hrbrt - Human Readable Branching Text Format</title>
            <description>
                <![CDATA[
                    
                        <p>This is a project that I decided to undertake one day and which is only 
semi-serious. It exists mostly due to both my recent curiosity with 
<a href="http://en.wikipedia.org/wiki/Parsing_expression_grammar">Parsing Expression Grammars</a>, and a stubborn refusal to give up on a 
blatantly terrible idea. Oh, and a love for John Gruber’s <a href="http://daringfireball.net/projects/markdown/">Markdown</a> 
and the principles behind its design.</p>
<h3>Motivation</h3>
<p>Sometimes, a simple message is not a sufficiently productive way of
communicating with someone. After a small number of back and forth emails, 
someone will decide to pick up the phone or meet in person to have a 
face-to-face conversation. This way, the feedback loop is shorter and each 
question can be devised based on the previous answer received in order to 
exchange the necessary information between participants.</p>
<p>Face to face conversations are not always possible, however. And waiting for </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/hrbrt---human-readable-branching-text-format.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/hrbrt---human-readable-branching-text-format.html</link>
            <pubDate>Mon, 01 Oct 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-10-01:hrbrt---human-readable-branching-text-format</guid>
        </item>
        
        <item>
            <title>Screenshot Saturday RSS - Scratching an Itch</title>
            <description>
                <![CDATA[
                    
                        <h3>#ScreenshotSaturday</h3>
<p>Over the years, <a href="http://twitter.com">Twitter</a> has become increasingly  popular with indie game 
developers. At some point, the hashtag <a href="https://twitter.com/#!/search/realtime/%23screenshotsaturday">#ScreenshotSaturday</a> was 
invented to tag screenshots of game developers’ work in progress each week. The
hashtag is a great way to get a sneak peek at what people are cooking up, and a
great way to discover creators and their games that you might otherwise have 
not heard of.</p>
<p>As the tag gained popularity, a couple of websites were created by the indie 
community to parse the twitter feed and showcase the images being posted to
twitter. The first, <a href="http://screenshotsaturday.com">screenshotsaturday.com</a> created by <a href="http://twitter.com/Pekuja">Pekuja</a>, and 
the second, <a href="http://screenshotsaturday.frogames.com">screenshotsaturday.frogames.com</a> created by 
<a href="http://twitter.com/MathieuFrogames">Mathieu of Frogames</a>. There may even be more, I’m not sure.</p>
<p>As an avid user of [Google Reader] however, I thought it was a shame that </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/screenshot-saturday-rss---scratching-an-itch.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/screenshot-saturday-rss---scratching-an-itch.html</link>
            <pubDate>Mon, 06 Aug 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-08-06:screenshot-saturday-rss---scratching-an-itch</guid>
        </item>
        
        <item>
            <title>Some Features You May Not Know Nano Has</title>
            <description>
                <![CDATA[
                    
                        <h3>Nano?</h3>
<p>When it comes to text editors in Linux, there are two major players which have 
famously been causing holy wars for at least a couple of hundred years now: 
<a href="http://www.vim.org/">Vi</a> and <a href="http://www.gnu.org/software/emacs/">Emacs</a>. They are both extremely powerful, lightweight 
editors whose ages are a testament to how useful they have been and continue to
be. </p>
<p>If you are already a <em>Vi</em> or <em>Emacs</em> user, then great! If you’re not, and you 
do a lot of code editing under Linux, you should probably consider learning one
of them. So, with that in mind, here’s another text editor that you may or may 
not have heard about: <a href="http://www.nano-editor.org/">GNU Nano</a>.</p>
<p>GNU Nano is a basic command-line text editor which is installed by default with
many Linux distributions. Nano is not intended to be anywhere near as 
feature-rich as <em>Vi</em> or <em>Emacs</em>. It is a very simple tool, but this means it 
requires little to no time investment to start using for basic file editing 
tasks. Nano’s core commands are easy to learn because they’re written out at 
the bottom of the screen, and files can be navigated intuitively with the 
cursor keys.</p>
<p>I find nano extremely handy, and it has some neat features that you may not 
have known about. In this post, I’d like to share some of nano’s more hidden 
capabilities.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/some-features-you-may-not-know-nano-has.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/some-features-you-may-not-know-nano-has.html</link>
            <pubDate>Tue, 26 Jun 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-06-26:some-features-you-may-not-know-nano-has</guid>
        </item>
        
        <item>
            <title>Code States</title>
            <description>
                <![CDATA[
                    
                        <p>When programming, there are 4 states that I take my code through. These states 
and the steps taken to get between them can be summarised in this diagram:</p>
<p>``` text</p>
<p>( Start )
       |
       |  implement
       V                  <br />
   ( Works )
       |
       |  refactor
       V
    ( Nice )
       |
       |  optimise</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/code-states.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/code-states.html</link>
            <pubDate>Wed, 21 Mar 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-03-21:code-states</guid>
        </item>
        
        <item>
            <title>Postfix Regex Fail</title>
            <description>
                <![CDATA[
                    
                        <p>So I was diagnosing a problem at work. Automated emails were failing to send, 
but only in <em>some</em> cases. My investigation quickly revealed that the mail 
server was refusing to deliver them, instead giving back an error code and the 
following curious message:</p>
<blockquote>
<p>Chinese encoding not accepted by this server</p>
</blockquote>
<p>Chinese encoding? I checked the data being sent - there shouldn’t have ever 
been any kind of non-latin character data going into the emails. Maybe the 
application was using the wrong encoding for some reason? But I couldn’t find 
any evidence for this either. </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/postfix-regex-fail.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/postfix-regex-fail.html</link>
            <pubDate>Thu, 08 Mar 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-03-08:postfix-regex-fail</guid>
        </item>
        
        <item>
            <title>Python Integer Division</title>
            <description>
                <![CDATA[
                    
                        <p>While working on a little game in <a href="http://python.org">Python</a> with <a href="http://pygame.org">PyGame</a>, I stumbled upon
a feature of the language which caught me by surprise. </p>
<p>In other languages, like <em>C</em> for example, when you divide an integer the result
is <em>truncated</em> to give an integer result. That is, the part after the decimal 
point is chopped off. For example, 10 / 3 is 3.333333… An integer division 
will chop the decimal part off the end and give the result as 3. Similarly 
-10 / 3 is -3.333333… and in C, dividing the int -10 by the int -3 will give 
the answer -3. Divide it, chop off the decimal places, easy.</p>
<p>Python’s integer division works in a subtly different way, however. </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/python-integer-division.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/python-integer-division.html</link>
            <pubDate>Thu, 08 Mar 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-03-08:python-integer-division</guid>
        </item>
        
        <item>
            <title>re.split Separator Quirk</title>
            <description>
                <![CDATA[
                    
                        <p>I came across an odd quirk with <a href="http://python.org">Python</a>’s split-by-regular-expression 
function, recently. </p>
<p>The <code>re</code> module has a function <code>split</code> which takes a regex and a string and 
splits the string by occurrences of the regex, returning a list of substrings. 
Ordinarily it works how you might expect:</p>
<div class="codehilite"><pre><span></span><code><span class="o">&gt;&gt;&gt;</span> <span class="kn">import</span> <span class="nn">re</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span> <span class="s2">&quot;[A-Z]&quot;</span><span class="p">,</span> <span class="s2">&quot;HowNowBrownCow&quot;</span> <span class="p">)</span>
<span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;ow&#39;</span><span class="p">,</span> <span class="s1">&#39;ow&#39;</span><span class="p">,</span> <span class="s1">&#39;rown&#39;</span><span class="p">,</span> <span class="s1">&#39;ow&#39;</span><span class="p">]</span>
</code></pre></div>

<p>Here I’m splitting the string “HowNowBrownCow” by capital letters. The </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/re-split-separator-quirk.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/re-split-separator-quirk.html</link>
            <pubDate>Wed, 07 Mar 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-03-07:re-split-separator-quirk</guid>
        </item>
        
        <item>
            <title>Correct Code Examples Every Time with Doctest</title>
            <description>
                <![CDATA[
                    
                        <p><a href="http://docs.python.org/library/doctest.html">Doctest</a> is a neat little <a href="http://python.org">Python</a> module created specifically for 
testing <em>documentation</em> code. “Testing documentation?!” I hear you cry. Why 
yes, you did hear me correctly. </p>
<p>Doctest will examine your source code, looking for what appear to be code 
examples. Any examples it finds, it will test using the Python interpreter and 
compare its result with the one documented. If they differ, Doctest will let 
you know. </p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/correct-code-examples-every-time-with-doctest.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/correct-code-examples-every-time-with-doctest.html</link>
            <pubDate>Wed, 07 Mar 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-03-07:correct-code-examples-every-time-with-doctest</guid>
        </item>
        
        <item>
            <title>Python Generators in Games</title>
            <description>
                <![CDATA[
                    
                        <p><a href="http://python.org">Python</a> has this really neat feature called <em>generators</em>. I’ve found them 
to be incredibly useful in my code, especially for games. You see, it turns 
out they’re great for handling animations, scripted sequences, and a whole 
bunch of stuff. </p>
<p>I’m going to talk primarily about generators in Python here, but generators 
exist in many other languages such as C# and Javascript, and I believe 
<a href="http://unity3d.com">Unity3D</a> also makes use of them for animations and such.</p>
<h3>Coroutines</h3>
<p>If you’re not familiar with the concept of a <a href="http://wikipedia.org/coroutine">coroutine</a>, excuse me while I 
blow your mind somewhat. When one calls a regular function, otherwise known as 
a subroutine, something like this happens:</p>
<p>``` text</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/python-generators-in-games.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/python-generators-in-games.html</link>
            <pubDate>Wed, 15 Feb 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-02-15:python-generators-in-games</guid>
        </item>
        
        <item>
            <title>How to Explain a Board game to a Newbie</title>
            <description>
                <![CDATA[
                    
                        <p>I adore board games. As a young child I played a lot of board games 
with my family, but as a teen, I got more into video games and 
board games took a back seat. More recently, however, Fiona and I 
have been discovering a whole world of really cool board games that 
we never even knew existed, thanks to sites like board game geek, and 
local board game groups that we go to. I love the mental challenge, 
the pleasant, relaxed socialising and most of all the game design 
inspiration I get from studying how these games work.</p>
<p>Being a total newbie to most of the games I’ve played recently, 
I’ve had to go through the process of leaning a new game quite a 
few times. Now, I’m not much of a quick learner, and I think that 
learning new games is probably a skill that one can get better at 
with practice. I imagine the more new board games you play, the better 
you get at learning the new sets of rules and adopting the appropriate 
strategies. But from my experience of trying to learn new games, I’ve 
noted a few things that I’ve found can help make things easier for 
newcomers.</p>
                        <p>
                            <a href="http://markfrimston.co.uk/articles/how-to-explain-a-boardgame-to-a-newbie.html">
                                [Continue reading...]
                            </a>
                        </p>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/how-to-explain-a-boardgame-to-a-newbie.html</link>
            <pubDate>Tue, 07 Feb 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-02-07:how-to-explain-a-boardgame-to-a-newbie</guid>
        </item>
        
        <item>
            <title>Cat Names</title>
            <description>
                <![CDATA[
                    
                        <p>What our cat’s name is:</p>
<ul>
<li>Chips</li>
</ul>
<p>What we actually call her:</p>
<ul>
<li>Chippies</li>
<li>Chickpeas</li>
<li>Pips</li>
<li>Chipples</li>
<li>Chipsticks</li>
<li>Chipplies</li>
<li>Chipolata</li>
<li>Chiptastic</li>
<li>Chippy-cat</li>
<li>Pipples</li>
<li>Chaps</li>
<li>Chippa-Chips</li>
<li>Chippity Doo-Dah</li>
<li>Daddy or Chips</li>
<li>Chippaaay</li>
<li>Mr Chips</li>
<li>Chip-Chippity Chip-Chippity Chip-Chip Cheroo</li>
<li>The Fog Horn</li>
<li>Blimp-cat</li>
</ul>
                    
                ]]>
            </description>
            <link>http://markfrimston.co.uk/articles/cat-names.html</link>
            <pubDate>Mon, 06 Feb 2012 00:00:00 UT</pubDate>
            <guid isPermaLink="false">tag:markfrimston.co.uk,2012-02-06:cat-names</guid>
        </item>
        
    </channel>
</rss>