Craig Oates: Software https://www.craigoates.net/software The software projects section of craigoates.net xml-emitter en-gb Craig Oates: Software https://www.craigoates.net/images/logo https://www.craigoates.net/software Brittle Fish https://www.craigoates.net/software/view/brittle-fish This project is an open source project hosted on Git.Abbether. Its purpose is to show how to use Console.Waterworks in an F#-only project. The main reason this repository exists is because I wrote Console.Waterworks in C#. My intention at the time was to use it with other C# projects once I finished making it. I had no desire to use or learn F# (or VB for that matter). That was was short-lived, though -- surprise! This is because I actually ended up learning F#... and liking it. I still have not learned VB, though. Please don't judge... I don't have enough time to learn everything. One of the things which stands out when learning F# is the guides for most of .Net is C#-first/only. If you know C#, though, that is not a problem. You just do the ".Net Shuffle" (translate C# to F#) and go on your merry way. With that said, this is tedious and I despise it. There is nothing merry about it. Also, if you do not know C#, I admire your stubbornness to persevere with learning F#. Anyway... Instead of throwing the "F# Section" in a deep corner of Console.Waterworks wiki, I have made this. With that said, I must admit it does come with a compromise. This guide does not talk about the internals of Console.Waterworks. Brittle Fish only provides information about *using* Console.Waterworks in an F# console program. If you want to tinker inside Console.Waterworks, you will need to know C# and use the main Console.Waterworks wiki. ## Pre-Requisites - Visual Studio 2017 (15.8+) - F# (4.1+) - Basic understanding of C# (6.0+) - Console.Waterworks.Net (4.7+) - .Net Core (2.0+) ## Relevant Links - [Brittle Fish Repository](https://git.abbether.net/craig.oates/Brittle-Fish) - [Console.Waterworks Repository](https://git.abbether.net/craig.oates/Console.Waterworks) - [Console.Waterworks.Core Repository](https://git.abbether.net/craig.oates/Console.Waterworks.Core) NuGet Mon, 11 Apr 2022 01:00:00 +0100 Skivvy https://www.craigoates.net/software/view/skivvy This project does all the hard work and gets no respect. Skivvy's main function is to parse and transform data from the CO-API so the CO-Data project can save processing cycles when generating its graphs. I imagine most people will never use this project but if you fancy playing around with the data from CO-API, Skivvy might help you get data into a shape you might prefer. Of course, you can stick to how CO-API gives you the data to begin with. I wrote Skivvy in Python3 and is should be ran from its own virtual environment. It comes with its own 'requirements.txt' file and the project's 'README.txt' file explains how to set one up. Unfortunately, this is not a pretty or sexy project. So, there is no nice images to demonstrate what it looks like, or does for that matter. Skivvy is a data-wrangling project with the purpose of making the task of another project (CO-Data) easier to do. This project very much lives up to its name. ## Relevant Links - [Skivvy's git repository](https://git.abbether.net/craig.oates/skivvy) - [CO-Data's git repository](https://git.abbether.net/craig.oates/co-data) - [CO-Data's website](https://data.craigoates.net/) - [CO-API's website](https://api.craigoates.net/index.html) Utility Mon, 11 Apr 2022 01:00:00 +0100 Prototype Placeholder https://www.craigoates.net/software/view/prototype-placeholder Prototype Placeholder is application which helps its users create placeholder content quickly. It was designed with software developers and designer of digital media in mind. But, it can, also, be used for print-based work flows.  The main focus of Prototype Placeholder at the minute is images but expect to see tools for generating text and various code templates in the future.  Due to this being the first release and a M.V.P., I have made Prototype Placeholder free. However, as more features are added and the application is flushed out, that will no longer be the case. So, if you think this is something which might be even remotely useful, I suggest you take advantage of the fact it is free. ## Screenshots <figure> <img src="/storage/view/craig/media/prototype-placeholder-screenshot-1" alt="Screenshot 1"> <figcaption>Screeenshot1: Prototype Placeholder when using the Light theme.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/prototype-placeholder-screenshot-2" alt="Screenshot 2"> <figcaption>Screenshot 2: Prototype Placeholder when using the Dark theme.</figcaption> </figure> [![Microsoft Store link](https://www.craigoates.net/storage/view/craig/media/ms-store-badge)](https://www.microsoft.com/store/productId/9PFTL6XHP1LD) �� Design Tools Mon, 11 Apr 2022 01:00:00 +0100 Cuboid https://www.craigoates.net/software/view/cuboid <p class="ui-message-warning">Note: This project is no longer active.</p> Cuboid is a WordPress theme for people who want their work to do the talking and not the website. It does this by providing a nice, clean and distraction-free environment. <figure> <img src="/storage/view/craig/media/cuboid-screenshot" alt="Cuboid screenhot"> <figcaption> Cuboid Screenshot - Home page example </figcaption> </figure> ## Theme Information - Licenses Offered: GPL - File Types: PDF, ZIP - File Size: 1.72MB - Layout: Responsive - Minimum Browser Support: IE 11+, Firefox 14+, Chrome 19+, Safari 5.1+, Opera 12+, Edge 14+ - <del>Live Preview</del> - <del>Available at Creative Market</del> WordPress Theme Mon, 11 Apr 2022 01:00:00 +0100 CLI https://www.craigoates.net/software/view/cli <p class="ui-message-warning">Note: This project is no longer active.</p> CLI is a command line theme for WordPress for when you need to bring the retro. Using a CLI terminal, your users can navigate through your content. <figure> <img src="/storage/view/craig/media/cli-screenshot" alt="CLI screenhot"> <figcaption> CLI Screenshot - Home page example </figcaption> </figure> ## Theme Information - Licenses Offered: GPL - File Types: PDF, ZIP - File Size: 4.25 MB - Layout: Responsive - Minimum Browsers: IE 11+, Firefox 14+, Chrome 19+, Safari 5.1+, Opera 12+, Edge 14+ - <del>Live Preview</del> - <del>Available at Creative Market</del> WordPress Theme Mon, 11 Apr 2022 01:00:00 +0100 Amazing Animal Alphabet https://www.craigoates.net/software/view/amazing-animal-alphabet Amazing Animal Alphabet is a children’s quiz. The aim is to guess the type of animal on show. There are twenty-six animals in total, one for each letter of the English alphabet. How many animals do you know? When I began making this game, my intension was to include my niece and nephews in the process. The plan was to show them pictures I drew of the different animals and let them pick which ones to include in the game. I was, also, going to let them pick the style I would use to draw the animals and the GUI parts of the game. I thought it would be empowering for them to see a video game take shape, based on what they said. Can you imagine how you would have felt if someone did that for you? Unfortunately, my grand plan did not materialise like that. They did get to see it but not until the end. Life kept getting in the way and I never got to see them enough to seek there input. Cue the violin... Seeing as I have made it, I thought I would let others have some fun with it. It can be quite nice sitting down with the little rug rats and watch them work out the world around them. So, use the link at the bottom of this page to get a hold of it. As well as the game, I have included an eBook. I figured some of you might find my voice a little grating or weird (not everyone is from Northern England). I am, also, aware of some children's desire to repeat the same thing for hours on end. So, even if you do not mind the voice, having "giraffe" echo for hours on end is enough to drive anyone to rage, madness or both. And, yes; the game comes with an "audio-clue" element. ## Key Features * Track your high score * Amazing art work * Audio recording of each animal’s name ## Screenshots <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-1" alt="Screenshot 1: Start screen"> <figcaption>Screenshot 1:The start screen.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-2" alt="Screenshot 2: In-game screen 1"> <figcaption>Screenshot 2: The aim is to teach the alphabet and about animals of the world.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-3" alt="Screenshot 3: In-game screen 2"> <figcaption>Screenshot 3: Use the hand drawn image to guess the name of the animal.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-4" alt="Screenshot 4: Mobile start screen"> <figcaption>Screenshot 4: App. can squeeze down in size if you need it to. Handy when on a tablet.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-5" alt="Screenshot 5: In-game screen 3"> <figcaption>Screenshot 5: Click/tap the audio button to hear how to say the animal's name.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/amazing-animal-alphabet-screenshot-6" alt="Screenshot 6: End of game screen."> <figcaption>Screenshot 6: See if you can beat your highest score.</figcaption> </figure> ## Download Links The game can only run on a Windows (64-bit) desktop machine. There is no installer so you can throw it on a USB stick and use it on anyone's Windows machine. This does not include Windows 10 Mobile or IOT/Compact Edition. The eBook's file size is larger than would usually find because the book is a collection of high-resolution images. There is no "text" per se, like most eBooks. - [Amazing Animal Alphabet Game](https://www.craigoates.net/storage/view/craig/media/amazing-animal-alphabet-win10) (approx. 28 MB) - [Amazing Animal Alphabet eBook](https://www.craigoates.net/storage/view/craig/media/amazing-animal-alphabet-epub) (approx. 18 MB) - [Amazing Animal Alphabet Graphics Projects](https://www.craigoates.net/graphics/view/amazing-animal-alphabet-graphics) (For all the graphics based versions of this project) ���� Games Mon, 11 Apr 2022 01:00:00 +0100 Subway https://www.craigoates.net/software/view/subway <figure> <img src="/storage/view/craig/media/subway-screenshot-1" alt="Form factor image"> </figure> ## About Subway <p class="ui-message-warning">Note: This project is no longer active.</p> Subway is a WordPress theme with a New York feel and an old-school London Tube twist ("Raleway" anyone?). If you want a website with big buttons, easy and clear navigation and lots of colour options, this theme is for you. It, also, looks good on any screen size which is never a bad thing. The main type of site Subway excels at is a blog based one. When you visit the demo. site, you will see why. The site focuses on giving the viewer the content in a quick and clear manner... much like the designs in London and New York. The default colour palette for Subway is (very) grey and this is intentional. One of the goals, whilst designing Subway, was to create or encourage a sense of "make Subway your own". So, one of the things we did was have Subway's default look be "basic". By doing this we are hopeful the user will feel compelled to check out the customisation tools. Speaking of customisation tools... The second thing we did was integrate and extend the built-in WordPress Colorizer. By doing this, the user can make Subway look how they want it to. On top of that, because it is a built-in WordPress feature, there is a good chance you know how to use it. If not, there are already a lot of tutorials and guides (online and off) on how to use it. That is one less thing to learn/worry about. <figure> <img src="/storage/view/craig/media/subway-screenshot-2" alt="Screenshot 1"> <figcaption>Screenshot 1: An example of how Subway could look.</figcaption> </figure> Other features which come with Subway are shortcodes and templates. If you are new to WordPress, do not worry about knowing what they are. They are things which WordPress uses quite a bit so you will learn about them the more you use WordPress. For those who do know what they are, the demo. site has examples explaining what is available (see “Live Preview” link below). In a nutshell... Shortcodes allow you to create Subway themed links (including social-media specific ones). Templates generate information using the extended Customizer settings. Also, on the demo. site, there are more examples of customised versions of Subway. ## Theme Information 1. Licenses Provided: GPL 2.0 1. File Types: PDF, ZIP, (PHP, CSS, JS, PNG, SVG) 1. File Size: 699.21 KB 1. Layout: Responsive 1. Minimum Browser Support: IE 11+, Firefox 14+, Chrome 19+, Safari 5.1+, 1. Opera 12+, Edge 14+ 1. <del>Live Preview</del> 1. <del>Available at [Creative Market</del> ���� WordPress Theme Mon, 11 Apr 2022 01:00:00 +0100 Console.Waterworks https://www.craigoates.net/software/view/console-waterworks ## About Console.Waterworks Console.Waterworks is a NuGet package. It aim is to help you write extendable and command-based console programs in C# and .Net. One of the main struggles with writing software is the need to write "plumbing code". It is the code which does not solve the main problem but it is necessary for us to reach a solution. This is why we all feel frustrated when we need to write it. It feels like we are going the long way round to that dream holiday in the sun. This is qwhy I created Console.Waterworks. I believe we should face frustration when it finds us and only then. Why go looking for it? Amongst other things, Console.Waterworks has this one very handy trick. It allows you to write methods which become a run-time command -- which is quite the time saver. When you use Console.Waterworks, you, also, do not need to parse end-user input. The reason why is because Console.Waterworks does it for you. This means, when people run your program, they type the method name in and your code begins executing. On top of that, Console.Waterworks handles bad input and method parameters, as well. Do not panic if none of what I just said made sense. I threw a lot of information at you in a short span of time. It is okay and not unexpected. Because of this, I have prepared several images showing Console.Waterworks in action. Please feel free to check it out. It should help explain what Console.Waterworks is and how it works. ### Good Input Data Flow <figure> <img src="/storage/view/craig/media/console-waterworks-valid-input-example" alt="Good input example"> <figcaption> Figure 1: If the user enters valid input into the console, Console.Waterworks passes it to your code for processing. </figcaption> </figure> ### Bad Input Data Flow <figure> <img src="/storage/view/craig/media/console-waterworks-invalid-input-example" alt="Bad input example"> <figcaption> Figure 2: If the user enters invalid input into the console, Console.Waterworks will display an error message to the user. </figcaption> </figure> ### Code Example - Validating Input <figure> <img src="/storage/view/craig/media/console-waterworks-demo-1" alt="Code Example 1"> <figcaption> Code Example 1: When good input is entered, your code is executed. When it is not, and error message is displayed. </figcaption> </figure> <figure> <img src="/storage/view/craig/media/console-waterworks-demo-2" alt="Code Example 2"> <figcaption>Code Example 2: When bad input is entered.</figcaption> </figure> --- Another feature Console.Waterworks has is the self-documenting help section. To use it, decorate your "command-methods" in the "Console Commands" class and create a command-method to display it. ### Code Example - Built-in Help <figure> <img src="/storage/view/craig/media/console-waterworks-demo-3" alt="Code Example 3"> <figcaption> Code Example 3: Type 'Help' into the console to see a list of commands and descriptions of what they do. </figcaption> </figure> ### Disclaimer Console.Waterworks is based on the [ConsoleApplicationBase](https://github.com/TypecastException/ConsoleApplicationBase "ConsoleApplicationBase GitHub Repository") repository by [TypecastException](https://github.com/TypecastException "TypecastException's GitHub Profile"). ### Pre-Requisites To use Console.Waterworks, I recommend you meet the following pre-requisites: - You have experience with [C#](https://docs.microsoft.com/en-us/dotnet/csharp/). - You can create a [.Net console program](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/hello-world-your-first-program) in [Visual Studio 2017](https://www.visualstudio.com/vs/). - You have experience with [NuGet](https://www.nuget.org/). - You have Microsoft [.Net Framework 4.7](https://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers) or higher. ## Git.Abbether Console.Waterworks is on Git.Abbether. Feel free to check out the source code, clone it and fork it: [Git.Abbether Repository](https://git.abbether.net/craig.oates/Console.Waterworks) NuGet Mon, 11 Apr 2022 01:00:00 +0100 Console.Waterworks.Core https://www.craigoates.net/software/view/console-waterworks-core ## About Console.Wateworks.Core Console.Waterworks.Core is the .Net Core version of Console.Waterworks. They are NuGet packages which help you build MVC-like console programs. To avoid repeating what has already written, I recommend you read the Console.Watereworks overview. They both do the same thing but they target different platforms. You can jump to the Console.Waterworks page by clicking [here](/software/view/console-waterworks). ### Disclosure Console.Waterworks.Core is based on the [ConsoleApplicationBase](https://github.com/TypecastException/ConsoleApplicationBase) repository by [TypecastException](https://github.com/TypecastException). ### Pre-Requisites To use Console.Waterworks.Core, I recommend you meet the following pre-requisites: * You have experience with [C#](https://docs.microsoft.com/en-us/dotnet/csharp/). * You can create a [.Net Core console program](https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio) in [Visual Studio 2017](https://www.visualstudio.com/vs/). * You have experience with [Nuget](https://www.nuget.org/). * You have Microsoft [.Net Core 2.0](https://docs.microsoft.com/en-us/dotnet/core/) or higher. (It has not been tested on ver. 1.0.) ## Git.Abbether Console.Waterworks.Core is on Git.Abbether. Feel free to check out the source code, clone it and fork it: [Git.Abbether Repository](https://git.abbether.net/craig.oates/Console.Waterworks.Core) NuGet Mon, 11 Apr 2022 01:00:00 +0100 Desktop Clock https://www.craigoates.net/software/view/desktop-clock # About Desktop Clock This is a basic WPF program which displays the data and time so it is readable from a distance. Desktop Clock uses a NuGet package called [FluentWPF](https://github.com/sourcechord/FluentWPF). This allows the program to look like a Windows 10 UWP program. The most notable aspects being the translucent chrome and the highlighting of near-by buttons. <figure> <img src="/storage/view/craig/media/desktop-clock-screenshot-1" alt="Screenshot 1"> <figcaption>Screenshot 1: Desktop Clock is a WPF program which looks like a UWP program.</figcaption> </figure> ## Publishing Information If you would like to use, it you will need to build from the source code provided. I did not want to mess around with ClickOnce or any other packaging mechanism. With it being a WPF program, it can run on Windows 7 and 8 machines. ## Future Plans I do not intend to take this any further. It is a simple program which I have running 24/7, floating about on the screen. It sits there and does what I need it to do. Anything else seems like overkill and I do not find myself wanting it to do something extra. Therefore, if you want something adding to it, I recommend you fork it. ## Git.Abbether Desktop Clock is available on Git.Abbether. Feel free to check it out, download it or fork it. [Git.Abbether Repository](https://git.abbether.net/craig.oates/DesktopClock) Utility Mon, 11 Apr 2022 01:00:00 +0100 Smouldering Beach Ball https://www.craigoates.net/software/view/smouldering-beach-ball Smouldering Beach Ball is an open source project, hosted on Git.Abbether. Its aim is to speed up the creation of placeholder images. The intended audience is software developers around the rapid application development (RAD) space. So, if you are building application prototypes or proof-of-concepts, this might be useful. The project as a whole consists of three smaller projects. The first one is a .Net Standard (2.0) library, which is available as a NuGet package. The second one is a console program. Which provides a way to use the library's code outside of a coding environment. The third project is the Test Centre, which houses the library and console program's tests. The source code is all in F# and focuses on .Net (4.7+), for now. With the library being a .Net Standard (2.0) library, it is capable of providing .Net Core features in the future. ## Pre-Requisites * F# (4.5+) * Visual Studio 2017 (15.7+) * .Net Standard (2.0) * .Net (4.7+) ## Smouldering Beach Ball: .Net Standard 2.0 Library (A.K.A. The NuGet Package) This project holds the code which makes it all possible. If you want to add the code from this project into yours, you would add this, as a NuGet. As stated earlier, it is an F# code-base. It, also, uses System.Drawing, not System.Media. This means the brushes you use will need casting back and forth. Another thing to note is the use of colours. You will see/use things like Colors.Red instead of Color.Red. ## Smouldering Beach Ball CLI This is a console program which hooks into the above library code and provides two functions. The first one is to offer a way to interact with the library code without writing any. The second one is to test the code in a project when outside of the library project. With that said, the testing part is more about complementing the Test Centre. To help explain what I mean, here is an image showing how the console program works. <figure> <img src="/storage/view/craig/media/smouldering-beach-ball-screen-shot-1" alt="Figure 1"/> <figcaption> Figure 1: A typical example of how you would use Smouldering Beach Ball CLI. <figcaption> </figure> This project is, also, written in F# and is a .Net 4.7 project. On top of that, I built it using Console.Waterworks. So, if you want to extend this program, I recommend you look into what that is. (It's another open source project I've written.) ## Test Centre This houses all the unit and property tests for the library and CLI projects. The unit tests are written with xUnit and the property tests in FsCheck. Test Centre is a regular .Net library and written in F# -- like everything else in this project. It, also, utilises xUnit's integration in Visual Studio's Test Explorer. This makes it easy to see which tests are passing and failing. ## Relevant Links * [Smouldering Beach Ball Repository](https://git.abbether.net/craig.oates/Smouldering-Beach-Ball) * [NuGet](https://www.nuget.org/packages/SmoulderingBeachBall/) NuGet Mon, 11 Apr 2022 01:00:00 +0100 Wet Pancake https://www.craigoates.net/software/view/wet-pancake Wet Pancake is an open source project, hosted on Git.Abbether. My personal aim for this project was for me to learn F#. With that said, the project's main goal is to generate text using the/a Markov Chain. This is, also, the initial test bed for using Console.waterworks with an F# project. The project has a mixture of C# and F# in it and is a full.Net codebase. So, if you want to run it on Linux or Mac OS, you are going to need Mono. The project, as a whole, consists of three smaller projects. The first is a .Net 4.7 library, which is available as a NuGet package. The second one is a console program. This provides users with a way to use the library code without writing any themselves. The third project is the Test Centre. In here, you will find the tests for the library and console projects. ## Pre-Requisites * Visual Studio 2017 (15.8+) * F# (4.1+) * C# (6.0+) * .Net (4.7+) * FsCheck * xUnit * Console.Waterworks ## Wet Pancake: .Net Library (A.K.A. The NuGet Package) This is a .Net 4.7 library written in F#. If you would like to add code from this repository into yours, you would add this project as a NuGet package. It is worth noting this project (NuGet) comes with a collection of plain-text file (.txt). Wet Pancake uses them as templates to generate text. If you would prefer to use your own, Wet Pancake has the ability to let you do that. ## Wet Pancake CLI This is a console program which hooks into the above library code and it is a C# project, unlike the library. The reason why is because I wanted to see how well Console.Waterworks works with consuming an F# codebase. Seeing as this is/was the first "test", though, I decided to write the console program in C# and hook it up to an F# library... Keep it simple 'n all that jazz. If you are unaware of what Console.Waterworks is, it is another open-source project I have created. In a nutshell, it allows you to write MVC-like console programs -- please note the "like" part. It is, also, available as a NuGet package in the full and core versions of .Net. <figure> <img src="/storage/view/craig/media/wet-pancake-screenshot-1" alt="Figure 1"/> <figcaption> Figure 1: A typical example of how you would use Wet Pancake CLI. </figcaption> </figure> ## Test Centre This houses all the unit and property tests for the library and CLI projects. I have wrote the unit tests with xUnit and the property tests with FsCheck. The Test Centre is a regular .Net (4.7) library and written in F#. It, also, utilises xUnit's integration with Visual Studio's Test Explorer. So, you can see which tests are passing and failing with ease, or at least easier than without Test Explorer. ## Disclaimer This project started out as a test project. It was not my intention for it to grow to what it is now (granted, it is still not massive.) At first, I wanted to see how well the Console.Waterworks NuGet package worked with F# libraries. This meant I needed to learn F#. To do this, I used FsMarkov as a reference/goal to work towards. Because of these factors, the codebase has taken the shape it has. It did not start off with the best development practices. And, the fact, it is now a NuGet package, is a goal which came somewhat after the initial playing period. So, if you find yourself wanting to scream at me for glaring and obvious mistakes, please be kind. Thanks. ## Relevant Links * [Wet Pancake Repository](https://git.abbether.net/craig.oates/Wet-Pancake) * [Wet Pancake NuGet](https://www.nuget.org/packages/WetPancake/) * [Console.Waterworks Repository](https://git.abbether.net/craig.oates/Console.Waterworks) * [FsMarkov Repository](https://blog.taylorwood.io/2015/07/04/markov-text.html) NuGet Mon, 11 Apr 2022 01:00:00 +0100 Death Socket https://www.craigoates.net/software/view/death-socket <figure> <img src="/storage/view/craig/media/death-socket-figure-1" alt="Figure 1"/> <figcaption> Figure 1: You feed an image into Death Socket and it produces a new version of the image with an overlayed grid. </figcaption> </figure> Death Socket is an open source project hosted on Git.Abbether. Its main feature is a NuGet package which helps you add a grid to an image. The main audience for this project is artists – painters illustrators Etc. It is an F# codebase and focuses on .Net 4.7. With that said, Death Socket is a .Net Standard (2.0) library. So, there is no reason why it cannot target/focus on .Net Core in the future. The whole repository consists of three smaller projects. They are a .Net Standard library, a console program and a Test Centre. ## Pre-Requisites - F# (4.5+) - Visual Studio 2017 (15.8+) - .Net Standard 2.0 - .Net 4.7+ - Console.Waterworks <figure> <img src="/storage/view/craig/media/death-socket-figure-2" alt="Figure 2"/> <figcaption> Figure 2: An image before it was passed into Death Socket and after it (a typical example). </figcaption> </figure> ## Death Socket: .Net Standard 2.0 Library (A.K.A. The NuGet Package) This project holds the code which makes it all possible. This is the code you would add to your project (as a NuGet) if you were building a GUI program for example. Here is a quick breakdown of this project: - Written in F# (4.5+). - Uses System.Drawing and not System.Media (I.E. Colors.Red not Color.Red). - Focuses on .Net 4.7+ ## Death Socket CLI This is a console program which hooks into the library code. It provides two functions. The first is to provide a way for you to consume the above library code without writing any. The second is to test/use the code outside of the (.Net Standard) library project context. I should add, the second point is more about complementing the Test Centre than anything else. Here is a quick breakdown of the project and GIF demonstrating how it works. - Written in F# (4.5+). - Uses Console.Waterworks. - Is a .Net 4.7 console program. <figure> <img src="/storage/view/craig/media/death-socket-figure-3" alt="Figure 3"/> <figcaption> Figure 3: An example of how to use Death Socket CLI. </figcaption> </figure> ## Test Centre This project holds all the unit and property tests. It runs tests for the .Net Standard library and the CLI projects. On top of that, you can utilise the Test Explorer in Visual Studio to run the tests. - Written in F# (4.5+). - Is a regular .Net (4.7) library. - Uses FsCheck for property tests. - Uses xUnit for unit tests. - Uses Visual Studio's (15.8+) Test Explorer via xUnit's integration. ## Relevant Links - [Git.Abbether Repository](https://git.abbether.net/craig.oates/Death-Socket) - [NuGet](https://www.nuget.org/packages/DeathSocket/) �� NuGet Mon, 11 Apr 2022 01:00:00 +0100 Paint Grid https://www.craigoates.net/software/view/paint-grid Paint Grid is a program which draws grids on images. Its main audience is artists and people wanting to improve their drawing skills. That last part is very useful when you consider a class full of school children. If you have ever drawn a grid on an image, you will know how drawn out and tedious it can be. On top of that, the tedium only increases when the image size and the number of rows and columns increase. For example, it is not unheard of for a 100x100 grid to take ten/twenty minutes to complete, and this is on a good day. You can quite easily spend over an hour completing this "prep-work" if the image is big enough. This is where Paint Grid comes in... I would find it surprising if you took more than ten seconds to complete the above task, when using Paint Grid. This, also, includes you digging around in your computer's folders to find the image. On top of the speed gains, Paint Grid can change the colour of the grid with the click of a button. Try doing that when you are three-quarters of the way through drawing a grid by hand. You can, also, change the thickness of the grids lines by moving a slider. <figure> <img src="/storage/view/craig/media/paint-grid-screenshot-1" alt="Screenshot 1"/> <figcaption> Screenshot: 1 The image is previewed on the left and you adjust the grid with the controls on the right. <figcaption> </figure> For those interested in coding, I built Paint Grid on top of open source software. I created a project called Death Socket and you can find it on [Git.Abbether](https://git.abbether.net/craig.oates/Death-Socket). Paint Grid uses Death Socket's NuGet package for its main functionality. It (Death Socket), also, comes with a console program as part of the repository. With it, you have access to most of Paint Grid's features. So, if you are someone who prefers to work at the command-line, feel free to head over to Git.Abbether and check it out. As an aside, I have provided a separate (compiled) console program in the "Releases" section. This means you do not need to clone the repository or compile the source code yourself. Now, back to Paint Grid... At the moment, Paint Grid only runs on Windows 10. I plan to extend it to Android, IOS and MacOS in the future but it all depends on how quick/easy it is to update Death Socket. So, for now, all I can say is keep and eye out for future announcements. [![Microsoft Store link](/storage/view/craig/media/ms-store-badge)](https://www.microsoft.com/store/apps/9PG4L1B5SJCC) Design Tools Mon, 11 Apr 2022 01:00:00 +0100 In Plain Sight Mobile https://www.craigoates.net/software/view/in-plain-sight-mobile <figure> <img src="/storage/view/craig/media/ips-mobile-screenshot-1" alt="Screenshot 1: Typical look of program."> <figcaption>Screenshot: How the program typically looks.</figcaption> </figure> In Plain Sight Mobile encrypts and decrypts text and emojis and that's pretty much it. With that said, it does allow you to do certain things. The most notable one is it enables you to visualise what you're encrypting/decrypting. Unlike app's which include it as a feature amongst many and don't go into detail about it. Although, that's still better than those which don't offer any encryption at all. Which is another thing In Plain Sight Mobile enables you to do. You can now post encrypted messages in public places. And, if the people reading it know the passphrase, they can decrypt it -- allowing you to hide messages *in plain sight*. For those interested in the technical side of things, here are a couple of bullet points: - The encryption implementation uses the Advanced Encryption Standard (A.E.S.)[1]. - I did this using the Bouncy Castle Crypto Library[2]. To use it, you will need to follow these three steps: <figure> <img src="/storage/view/craig/media/ips-mobile-screenshot-2" alt="Screenshot 2: A quick overview of how to run the application."> <figcaption>Screenshot 2: A quick overview of how to run the application.</figcaption> </figure> 1. Enter a passphrase (1); It must be no shorter than twelve characters. 2. Enter what you want encrypting/decrypting into the text box (2). 3. Press either the Encrypt or Decrypt button (3). Bonus Step... 4. Press the Copy button (4) to message so you can paste it into what you want (social media, e-mail, Notepad Etc.). **When you are decrypting a message, the passphrase must match the one used to encrypt it. This is what allows you to post messages in public.** <figure> <img src="/storage/view/craig/media/ips-mobile-screenshot-3" alt="Screenshot 3: In Plain Sight matches the system colour."> <figcaption>Screenshot 3: In Plain Sight matches the system colour.</figcaption> </figure> <figure> <img src="/storage/view/craig/media/ips-mobile-screenshot-4" alt="Screenshot 4: Adaptive GUI."> <figcaption> Screenshot 4: In Plain Sight Mobile has no problem sharing the screen with other programs. </figcaption> </figure> [![Microsoft Store link](/storage/view/craig/media/ms-store-badge)](https://www.microsoft.com/store/apps/9NJFFBF2THPT) ## Footnotes 1. [Wikipedia article on A.E.S.](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) 2. [Bouncy Castle's Website (C# A.P.I.)](https://www.bouncycastle.org/csharp/) Utility Mon, 11 Apr 2022 01:00:00 +0100 In Plain Sight https://www.craigoates.net/software/view/in-plain-sight <p class="ui-message-warning">Note: This project is no longer available on the Microsoft Store.</p> <figure> <img src="/storage/view/craig/media/ips-desktop-screenshot-1" alt="Screenshot 1: A quick overview of how to run the application."> <figcaption>Screenshot 1: How the program typically looks.</figcaption> </figure> In Plain Sight encrypts and decrypts text and emojis and that's pretty much it. With that said, it does allow you to do certain things. The most notable one is it enables you to visualise what you're encrypting/decrypting. Unlike programs which include it as a feature, amongst many, and don't go into detail about it. Although, that's still better than those which don't offer any encryption at all. Which is another thing In Plain Sight enables you to do. You can now post encrypted messages in public places. And, if the people reading it know the passphrase, they can decrypt it -- allowing you to hide messages *in plain sight*. **In Plain Sight is compatible with In Plain Sight Mobile [1].** A message encrypted in one can be decrypted in the other -- and vice-versa. <figure> <img src="/storage/view/craig/media/ips-desktop-screenshot-2" alt="Screenshot 2: You can use the desktop and mobile versions interchangeably."> <figcaption>Screenshot 2: You can use the desktop and mobile versions interchangeably.</figcaption> </figure> For those interested in the technical side of things, here are a couple of bullet points: - The encryption implementation uses the Advanced Encryption Standard (A.E.S.)[2]. - I did this using the Bouncy Castle Crypto Library[3]. To use it, you will need to follow these three steps: <figure> <img src="/storage/view/craig/media/ips-desktop-screenshot-3" alt="Screenshot 3: Quick guide."> <figcaption>Screenshot 3: A quick guide on how to use In Plain Sight.</figcaption> </figure> 1. Enter a passphrase (1); It must be no shorter than twelve characters. 2. Enter what you want encrypting/decrypting into the text box (2). 3. Press either the Encrypt or Decrypt button (3). Bonus Step... 4. Press the Copy button (4) to message so you can paste it into what you want (social media, e-mail, Notepad Etc.). As an aside, when you are decrypting a message, the passphrase must match the one used to encrypt it. This is what allows you to post messages in public. <del>Microsoft Store link</del> ## Footnotes 1. You can get In Plain Sight Mobile by clicking [here](https://www.microsoft.com/store/apps/9NJFFBF2THPT). 2. [Wikipedia article on A.E.S.](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) 3. [Bouncy Castle's Website (C# A.P.I.)](https://www.bouncycastle.org/csharp/) Utility Mon, 11 Apr 2022 01:00:00 +0100 Shortcut Learner https://www.craigoates.net/software/view/shortcut-learner Shortcut Learner is a console program for storing and viewing your personal collection of shortcuts. I wrote it in Python3 and it uses 'Rich' to present the collection in a nicely formatted manner (in the terminal). <figure> <img alt="Screenshot 1" src="/storage/view/craig/media/shortcut-learner-1"/> <figcaption> Screenshot 1: How Shortcut Learner usually looks in my terminal. </figcaption> </figure> ## Pre-Requisites To use Shortcut Learner, I recommend you meet the following: - You have experience with Python3. - You can create a virtual environment in Python. - You know how to install packages with Pip -- via 'requirements.txt'. - Comfortable with Linux -- This is not tested on MacOS or Windows. - Comfortable using a terminal and Bash. - **(Optional)** Comfortable creating a Python binary using PyInstaller. - **(Optional)** Familiar with Rich (Python library). Shortcut Learner stores you shortcuts as a markdown (.md) file. So, you can alter, copy and backup the data in anyway you see fit. Shortcut Learner, also, provides an option to add a new shortcut to your collection from within the terminal. This mean you never need to go searching for the file, load it into an editor add the new shortcut, close the file and get back to what you were doing. This is even more useful if you are already in the terminal. The aim of this project is to help you learn shortcuts which are **relevant to you**. I find I do not need to learn every shortcut in a program but it is always difficult to separate the ones you want from the ones you do not. They are always in a giant cheat-sheet/poster or part of a big list within the program itself. Because of this, I almost always never bother learning the shortcuts unless it becomes annoying enough not to. With Shortcut Learner, I can quickly add a one-line note to my shortcuts collection and get back to what I was doing. And, because I have used 'Rich' (to render the markdown in the terminal), you can use markdown formatting to make it easier to read your collection. <figure> <img alt="Screenshot 2" src="/storage/view/craig/media/shortcut-learner-2"/> <figcaption> Screenshot 2: A layout example. </figcaption> </figure> <figure> <img alt="Screenshot 3" src="/storage/view/craig/media/shortcut-learner-3"/> <figcaption> Screenshot 3: Another layout example (yes, I know I every screenshot has used lists. Feel free to not use lists in your set-up). </figcaption> </figure> A perk (amongst many) with storing your shortcuts collection in a markdown file is you can adopt a 'quick-in and prune/curate later' approach. You do not always need information to look nice, you just need it to hand. This means you can have the markdown file open in your editor and add to it throughout the day (looking pretty) or add a quick note via the terminal two minutes before the end of your shift and tidy it up when you get in the next day. Remember to use the markdown features which work for you. You can remove shortcuts from the list once you have committed it to memory... ## Relevant Links - [Shortcut Learner Git Repository](https://git.abbether.net/craig.oates/shortcut-learner) - [Rich project's GibHub repository](https://github.com/willmcgugan/rich) - [PyInstaller](https://www.pyinstaller.org/) (For creating a binary with the project's source-code) Utility Mon, 11 Apr 2022 01:00:00 +0100 CO-API https://www.craigoates.net/software/view/co-api <p class="ui-message-warning">Note: This project is no longer active.</p> This is a tech-heavy project aimed at software developers. If 'JSON' and 'API' mean nothing to you, you are probably best skipping this page. Otherwise, CO-API is a RestAPI which provides serves this site's (craigoates.net) meta-data. I made the API out of curiosity. I wanted to see things like what day of the week I completed most of my work on and what has been my most productive year so far. I began doing this in a manual fashion (I.E. accessing the database and writing SQL statements) and did not save the results. I did not save them because I considered each look-up as a one-off type of thing. After the third time of doing this, I decided I should make this a bit easier for myself -- or repeatable at least. So, I began saving the results of the look-ups but then I thought about it and -- much faffing later -- CO-API was created. By doing this, I can now attach this data to various endpoints (proof-of-concept app's, 'fake data', charting libraries Etc.) and so can you. I created CO-API with Swagger and the output is in JSON. The site, also, has a preview feature (courtesy of Swagger) so you can see what the data looks like without writing a line of code. It, also, provides details of various schemas so you can map the data to the appropriate datatype your end (again, courtesy of Swagger). <figure> <img alt="CO-API Screenshot 1" src="/storage/view/craig/media/co-api-screenshot-1"> <figcaption>Screenshot 1: Use the site to see the list of calls you can make.</figcaption> </figure> <figure> <img alt="CO-API Screenshot 2" src="/storage/view/craig/media/co-api-screenshot-2"> <figcaption>Screenshot 2: Use the website to demonstrate what the data looks like when you call it.</figcaption> </figure> An example of this API being used is in another project of mine called CO-Data. It produces graphs to show the meta-data for work I have published to this (craigoates.net) site. That CO-Data is an open-source project so you can modify the code to your liking -- or use it as a reference for working with the data provided by CO-API. ## Relevant Links - <del>CO-API Website</del> - <del>CO-Data Website</del> - [CO-Data Project Page](/software/view/co-data) - [CO-Data Repository](https://git.abbether.net/craig.oates/co-data) - [Swagger Website](https://swagger.io/) RestAPI Mon, 11 Apr 2022 01:00:00 +0100 CO-Data https://www.craigoates.net/software/view/co-data <p class="ui-message-warning">Note: This project is no longer active.</p> ## Summary CO-Data is a <s>vanity project</s> website which displays graphs derived from this (craigoates.net) website. When looking at the charts, you will see how many artworks I made in 2018 (compare to 2019...), which day is my most productive and other things I will refrain from listing here. CO-Data is an on-going project. So, you will find me adding things to it from time-to-time. This will happen alongside the daily updates of the charts already on there. If you have an idea for an interesting graph/visualisation, feel free to send me an email or pull-request. Or, if you prefer, you can grab the data from CO-API (see below) and incorporate it into your own project. <figure> <img alt="CO-Data Home Page" src="/storage/view/craig/media/co-data-screenshot-1"/> <figcaption> Screenshot 1: CO-Data Home Page (during early development) </figcaption> </figure> <figure> <img alt="CO-Data Home Page" src="/storage/view/craig/media/co-data-screenshot-2"/> <figcaption> Screenshot 2: CO-Data Art Page (during early development) </figcaption> </figure> ## Pre-Requisites If you want to work with the source code of this project, I recommend you meet the following: - You have experience with Python3 and Flask and Bokeh. - You can create a virtual environment in Python. - You know how to install packages with Pip -- via 'requirements.txt'. - Comfortable using a terminal and Bash. Otherwise, just visit the website (links below). ## Noteworthy Projects For CO-Data to work the way it does, it utilises two other projects I have created. They are CO-API and Skivvy. ### CO-API Instead of grabbing the data for craigoates.net from 'behind closed doors', I decided to attach CO-Data to another project: CO-API. In some ways, CO-Data is a demonstration project for accessing and working with the data provided by the CO-API project. As a quick summary, CO-API is RestAPI for accessing the meta-data of this (craigoates.net) site. For more information about CO-API, you can jump to the project's project page using the links below. ### Skivvy Skivvy is another project of mine which CO-Data works with. Its main goal is to parse the data returned from CO-API into a format which makes it easier to form the graphs I want to create. This is nothing forcing CO-Data to need Skivvy but I use it to reduce the amount of work the C.P.U. needs to do when generating the charts. Skivvy is an open-source project so you can see what it is doing in create detail if you wish to. Links for this project and repository are below. ## Relevant Links - <del>CO-Data Website</del> - [CO-Data Repository](https://git.abbether.net/craig.oates/co-data) - [CO-API Project Page](/software/view/co-api) - [Skivvy Project Page](/software/view/skivvy) - [Skivvy Repository](https://git.abbether.net/craig.oates/skivvy) Data-Visualisation Mon, 11 Apr 2022 01:00:00 +0100 Return to Ritherdon: Light Meter https://www.craigoates.net/software/view/return-to-ritherdon-light-meter <p class="ui-message-warning">Note: This project is no longer active.</p> ## Return to Ritherdon Overview Before I describe what 'Light Meter' and 'Return to Ritherdon' are, I though it would be best to give you some extra context surrounding it. 'Return to Ritherdon' was an arts-based two year residency, funded by Arts Council England. Nicola Ellis devised the residency alongside Ritherdon & Company Ltd. and Castlefied Gallery. Ritherdon is a manufacturer of metal enclosures and based in Darwen, Lancashire, U.K., Castlefied is an art gallery in Manchester, U.K. and Ellis is an artist. She is, also, based in Manchester. Use the links below for more information on those listed above: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) **Note:** *The residency has finished and the information of this page is more for archive purposes than anything else.* ## Light Meter Light Meter is one of three smaller projects which form the 'Personal Flash in Real-Time' series of artworks. The other two projects are 'Midpoint' and 'Relay'. The 'Personal Flash in Real-Time' artworks are one of numerous artworks displayed in the 'No Gaps in the Line' (2021) exhibition, hosted in Castlefied Gallery. For more information on the exhibition, artworks (from the galleries perspective) and other projects use the following links: - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) Light Meter is more a device than a software program -- which deviates from my usual stuff in this section. The aim of the Light Meters (devices) is to take light readings from the welding booths in Ritherdon and send them to Midpoint (running on a server in 'cloud'). These readings are then used by the Relays (devices) in the gallery. I paired each Light Meter (device) to a specific Relay (device), so 'Relay One' only dealt with the light reading taken by 'Light Meter One'. <figure> <img alt="Return to Ritherdon Overview" src="https://www.craigoates.net/storage/view/craig/media/return-to-ritherdon-overview"> <figcaption>'Personal Flash in Real-Time' is one of numerous artworks produced during the 'Return to Ritherdon' residency.</figcaption> </figure> <figure> <img alt="Personal Flash in Real-Time Overview" src="https://www.craigoates.net/storage/view/craig/media/personal-flash-arch"> <figcaption>Each Light Meter was paired to a Relay via Midpoint.</figcaption> </figure> Unfortunately, the repository this page links to includes only the software and the 3D models (for printing). You will need to buy a Raspberry Pi and other electronic hardware yourself if you want/need to recreate this project. To help with this, I've created a Git repository which contains a more comprehensive rundown of the project's spec's and requirements at the links below: - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Light Meter Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-meter/rtr-light-meter.md) I wrote the software in Python and tested it on Raspberry Pi OS (formerly Raspbian). The project, also, assumes access to the I/O library for the Pi's GPIO pins. Because of this, I don't know if the code will run on anything else. ## Links Collection Below is a list of all the links dotted throughout this page: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Light Meter Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-meter/rtr-light-meter.md) IOT Mon, 11 Jul 2022 20:28:46 +0100 Return to Ritherdon: Midpoint https://www.craigoates.net/software/view/return-to-ritherdon-midpoint <p class="ui-message-warning">Note: This project is no longer active.</p> ## Return to Ritherdon Overview Before I describe what 'Midpoint' and 'Return to Ritherdon' are, I though it would be best to give you some extra context surrounding it. 'Return to Ritherdon' was an arts-based two year residency, funded by Arts Council England. Nicola Ellis devised the residency alongside Ritherdon & Company Ltd. and Castlefied Gallery. Ritherdon is a manufacturer of metal enclosures and based in Darwen, Lancashire, U.K., Castlefied is an art gallery in Manchester, U.K and Ellis is an artist, also, based in Manchester. Use the links below for more information on those listed above: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) **Note:** *The residency has finished and the information of this page is more for archive purposes than anything else.* ## Midpoint Midpoint is one of three smaller projects which form the 'Personal Flash in Real-Time' series of artworks. The other two projects are called 'Light Meter' and 'Relay'. The 'Personal Flash in Real-Time' artworks are one of numerous artworks displayed in the 'No Gaps in the Line' (2021) exhibition, hosted in Castlefied Gallery. For more information on the exhibition, artworks (from the galleries perspective) and other projects use the following links: - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) Midpoint is a REST API built with Flask and written in Python. It's purpose was to act as the *midpoint* between the Light Meters (in Ritherdon) and the Relays (in Castlefied). It would receive light readings from the Light Meters in Ritherdon's welding booths and serve those readings to the Relays in Castlefied. <figure> <img alt="Return to Ritherdon Overview" src="https://www.craigoates.net/storage/view/craig/media/return-to-ritherdon-overview"> <figcaption>'Personal Flash in Real-Time' is one of numerous artworks produced during the 'Return to Ritherdon' residency.</figcaption> </figure> <figure> <img alt="Personal Flash in Real-Time Overview" src="https://www.craigoates.net/storage/view/craig/media/personal-flash-arch"> <figcaption>Each Light Meter was paired to a Relay via Midpoint.</figcaption> </figure> This project is less hands-on than the other two projects (Light Meter and Relay). You don't need to buy additional hardware like a Raspberry Pi and other electrical components. If you set-up a EC2 instance on AWS, you're half-way there with this one *-- he says like everyone knows how to do that*. For more information on this project's spec's and requirements, please use the following links: - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Midpoint Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/midpoint/rtr-midpoint.md) Because of the project's time-frame and budget, I only had time to test this on Ubuntu 18.04 and Nginx. I don't know likely it is for this project's software to run on other environments. ## Links Collection Below is a list of all the links dotted throughout this page: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Midpoint Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/midpoint/rtr-midpoint.md) Web Tue, 12 Jul 2022 04:15:22 +0100 Return to Ritherdon: Relay https://www.craigoates.net/software/view/return-to-ritherdon-relay <p class="ui-message-warning">Note: This project is no longer active.</p> ## Return to Ritherdon Overview Before I describe what 'Relay' and 'Return to Ritherdon' are, I though it would be best to give you some extra context surrounding it. 'Return to Ritherdon' was an arts-based two year residency, funded by Arts Council England. Nicola Ellis devised the residency alongside Ritherdon & Company Ltd. and Castlefied Gallery. Ritherdon is a manufacturer of metal enclosures and based in Darwen, Lancashire, U.K., Castlefied is an art gallery in Manchester, U.K. and Ellis is an artist. She is, also, based in Manchester. Use the links below for more information on those listed above: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) **Note:** *The residency has finished and the information of this page is more for archive purposes than anything else.* ## Relay Relay is one of three smaller projects which form the 'Personal Flash in Real-Time' series of artworks. The other two projects are 'Light Meter' and 'Midpoint'. The 'Personal Flash in Real-Time' artworks are one of numerous artworks displayed in the 'No Gaps in the Line' (2021) exhibition, hosted in Castlefield Gallery. For more information on the exhibition and artworks (from the galleries perspective) and other two projects, use the following links below: - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) Relay is more a device than a software program -- which deviates from my usual stuff in this section. The aim of the Relays (devices) was to control a selection of lights, in the gallery, based on the readings from taken with the Light Meter devices, in the factory. If one of the staff members in Ritherdon (factory) was welding, the corresponding Relay would turn its series of lights on. If no-one was welding, the lights would either remain off. <figure> <img alt="Return to Ritherdon Overview" src="https://www.craigoates.net/storage/view/craig/media/return-to-ritherdon-overview"> <figcaption>'Personal Flash in Real-Time' is one of numerous artworks produced during the 'Return to Ritherdon' residency.</figcaption> </figure> <figure> <img alt="Personal Flash in Real-Time Overview" src="https://www.craigoates.net/storage/view/craig/media/personal-flash-arch"> <figcaption>Each Light Meter was paired to a Relay via Midpoint.</figcaption> </figure> I wrote the software for the Relay project in Python. One of the requirements for the project was the inclusion of a Raspberry Pi. So, the project has only ran on Raspberry Pi OS (formerly Raspbian) and assumes access to the Raspberry Pi's I/O library, for its GPIO pins. On top of that, this project -- like Light Meter -- required a bit of soldering and 3D printing. This made this project a bit hands-on than my usual stuff. Unfortunately, the repository this page links to includes only the software and the 3D models (for printing). You will need to buy a Raspberry Pi and other electronic hardware yourself if you want/need to recreate this project. To help with this, I've created a Git repository which contains a more comprehensive rundown of the project's spec's and requirements at the links below: - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Relay Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/relay/rtr-relay.md) <figure> <img alt="Installed lights in gallery, controlled by the Relay devices" src="https://www.craigoates.net/storage/view/craig/media/return-to-ritherdon-installed-relay-lights"> <figcaption>The lights installed in the gallery, controlled by the Relay devices.</figcaption> </figure> ## Links Collection Below is a list of all the links dotted throughout this page: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Relay Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/relay/rtr-relay.md) IOT Tue, 12 Jul 2022 04:32:31 +0100 Return to Ritherdon: Light Wave https://www.craigoates.net/software/view/return-to-ritherdon-light-wave <p class="ui-message-warning">Note: This project is no longer active.</p> ## Return to Ritherdon Overview Before I describe what 'Eyes and Ears' and 'Return to Ritherdon' are, I though it would be best to give you some extra context surrounding it. 'Return to Ritherdon' was an arts-based two year residency, funded by Arts Council England. Nicola Ellis devised the residency alongside Ritherdon & Company Ltd. and Castlefied Gallery. Ritherdon is a manufacturer of metal enclosures and based in Darwen, Lancashire, U.K., Castlefied is an art gallery in Manchester, U.K. and Ellis is an artist. She is, also, based in Manchester. Use the links below for more information on those listed above: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) **Note:** *The residency has finished and the information of this page is more for archive purposes than anything else.* ## Light Wave and 'Personal Flash in Real-Time' Artworks Light Wave was a support project to help test and monitor the 'Light Meter' devices in Ritherdon (factory). It (Light Wave) provided about a minutes worth of streamed light-reading data from the factory and displayed the readings as animated line graphs. 'Light Meter' is one-of three projects which come together to form the 'Personal Flash in Real-Time' artworks -- which were part of the 'No Gaps in the Line' exhibition, hosted at Castlefied Gallery. If you would like to know more about the exhibition and artworks, please use the following links: - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) <figure> <img alt="Light Wave screenshot 1" src="https://www.craigoates.net/storage/view/craig/media/light-wave-screenshot-1"> <figcaption>Screenshot of Light Wave's full graphical user interface.</figcaption> </figure> <figure> <img alt="Light Wave screenshot 2" src="https://www.craigoates.net/storage/view/craig/media/return-to-ritherdon-light-wave-screenshot-2"> <figcaption>Both welding booths readings can differ by quite a bit.</figcaption> </figure> I wrote Light Wave in Python and it relies heavily on the Matplotlib library. Unfortunately, this project wasn't initially part of the project so there was not much in terms of budget or time to develop it. I built it on a whim -- to begin with -- to help me test and monitor the 'Personal Flash in Real-Time' artwork *system*. So, it's very basic and a bit awkward to install on new systems. I managed to get it working on Windows but it was awkward. Obviously, it 'works on my machine' (Debian, Linux). For the project's Git repository and documentation, please use the links below: - [Light Wave Git Repository](https://git.abbether.net/return-to-ritherdon/light-wave) - [Return to Ritherdon Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home page) - [Light Wave Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-wave/light-wave.md) - [Matplotlib Install Notes](https://matplotlib.org/stable/users/installing/index.html) ## Links Collection Below is a list of all the links dotted throughout this page: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Wave Git Repository](https://git.abbether.net/return-to-ritherdon/light-wave) - [Return to Ritherdon Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home page) - [Light Wave Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/light-wave/light-wave.md) - [Matplotlib Install Notes](https://matplotlib.org/stable/users/installing/index.html) Monitoring Tue, 12 Jul 2022 04:56:24 +0100 Return to Ritherdon: Eyes and Ears https://www.craigoates.net/software/view/return-to-ritherdon-eyes-and-ears <p class="ui-message-warning">Note: This project is no longer active.</p> ## Return to Ritherdon Overview Before I describe what 'Eyes and Ears' and 'Return to Ritherdon' are, I though it would be best to give you some extra context surrounding it. 'Return to Ritherdon' was an arts-based two year residency, funded by Arts Council England. Nicola Ellis devised the residency alongside Ritherdon & Company Ltd. and Castlefied Gallery. Ritherdon is a manufacturer of metal enclosures and based in Darwen, Lancashire, U.K., Castlefied is an art gallery in Manchester, U.K. and Ellis is an artist. She is, also, based in Manchester. Use the links below for more information on those listed above: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) **Note:** *The residency has finished and the information of this page is more for archive purposes than anything else.* ## Eyes and Ears and 'Personal Flash in Real-Time' Artworks Eyes and Ears is a dashboard program for monitoring the state of the 'Personal Flash in Real-Time' series of artworks. The artworks were part of the 'No Gaps in the Line' exhibition (2021), hosted in Castlefied Gallery. Each piece in the series was responsible for detecting when a member of staff in Ritherdon (factory) was welding and relaying that information to Castlefied (gallery) by turning a set of lights on and off. If someone was welding, the lights would turn on and vice-versa if no-one was welding. <figure> <img alt="Eyes and Ears screenshot" src="http://www.craigoates.net/storage/view/craig/media/eyes-and-ears-screenshot-1"> <figcaption>How the dashboard looked when all the devices were off.</figcaption> </figure> If you would like to know more about how I the 'Personal Flash in Real-Time' artworks were made, or more about the exhibition itself, please the following links: - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) I wrote Eyes and Ears in C# and is a UWP application so it only works on Window 10 or above. It's intended use was for it run on a Windows 10 tablet off to the side -- allowing people to glance at it throughout the day to make sure it was the whole system was working. I, also, gave it some text-to-speech tricks so people in earshot could hear when a device powered up or down for the day -- or an error occurred. If you would like to see the code and documentation for this project, please use the links below, - [Eyes and Ears Git Repository](https://git.abbether.net/return-to-ritherdon/eyes-and-ears) - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Eyes and Ears Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/eyes-and-ears/rtr-eyes-and-ears.md) ## Links Collection Below is a list of all the links dotted throughout this page: - [Nicola Ellis](http://www.nicolaellis.com) - [Ritherdon & Company Ltd.](https://ritherdon.co.uk) - [Castlefied Gallery](https://www.castlefieldgallery.co.uk/) - [Arts Council England](https://www.artscouncil.org.uk/) - [No Gaps in the Line](https://www.castlefieldgallery.co.uk/event/nicola-ellis-solo-exhibition-coming-in-2021/) (Gallery's exhibition page) - ['Personal Flash in Real-Time Exhibition'](https://www.castlefieldgallery.co.uk/wp-content/uploads/2021/01/Nicola-Ellis-and-Ritherdon_No-gaps-in-the-line_Extended-Handout_Personal-flash-in-real-time.pdf) (Galleries Exhibition literature, shows images of a welding booth and the lights in the gallery) - [Light Meter](https://git.abbether.net/return-to-ritherdon/light-meter) (Git repository) - [Midpoint](https://git.abbether.net/return-to-ritherdon/midpoint) (Git repository) - [Relay](https://git.abbether.net/return-to-ritherdon/relay) (Git repository) - [Eyes and Ears Git Repository](https://git.abbether.net/return-to-ritherdon/eyes-and-ears) - [Return to Ritherdon Documentation (rtr-docs)](https://git.abbether.net/return-to-ritherdon/rtr-docs) (Home Page) - [Eyes and Ears Documentation](https://git.abbether.net/return-to-ritherdon/rtr-docs/src/branch/master/eyes-and-ears/rtr-eyes-and-ears.md) Montoring Tue, 12 Jul 2022 05:25:45 +0100