Posts

The fossils of Morocco | Mosasaurus beaugei

Finally, another post! Life has been quite difficult recently, and I've had a lot of appointments in the hospital, and, combined with a much higher workload, I haven't had too much free time. Anyways, enough of that! A couple of weeks ago, I acquired a gorgeous fish and mosasaur association, from a seller on the web. It hails from the Cretaceous of Khouribga, Morocco, unprepped, just split out of the rock! Here's the fossil in question! Ignore the mess in the background... Can you believe this thing is 70.6 - 66 million years old!? Look at the sheer awesome preservation on that fish spine; absolutely stunning! So, story time. The tooth is from the species "Mosasaurus beaugei" , a pretty large mosasaurine. Pictures from www.prehistoric-wildlife.com Here's a nice image (or, 2 images...) of the size of Mosasaurus (silhouette 16) against other mosasaurines, and a human. As yo

Palaeontology, what on earth is it?

So, you've found yourself on this blog entry... It's not about coding, but instead about my other hobby, palaeontology! Well, what is it? "Palaeontology is the study of prehistoric species and fossils, typically extinct life, though it may include extant life." There's a lot of fancy-shmancy words in there. let's clear up some of that jargon! prehistoric Referring to the time period before written records. (typically before humans altogether) species A group of living organisms capable of breeding together and exchanging genes. fossil The remains of an organism embedded in rock in petrified form. extinct life A group of organism that has no living members left. extant life The opposite of extinct life - a group of animals that still exists. Now we can all understand that definition! So, we've got over the formalities, but what really is  palaeontology, and what's a palaeontologist? Well, for starters, before any of you correct me

Artsy blog posts: image captioning

Short post here, just want to announce my release of my image captioning system, which is available on both Replit and Github ! Here's an example of an image and a caption - note that they scale perfectly on mobile, pc, tablet, and anything else... Many new fun posts await! Some random gif Tadaaaa! Isaac, over and out...

Messing around with procedural art - Turtle graphics

Let's take a short break from Pygrr to delve back into the world of Turtle graphics. Turtle graphics: an introduction Well, what are they? Turtle graphics are a simple vector graphic system in programming that uses a relative cursor known as a Turtle to plot data onto a Cartesian plane. Nice, that didn't clear it up at all! To put it simply, Turtle graphics are a type of programming concept where an object (consider it a "pen") is moved around a 2D canvas, drawing wherever it goes! Most people who know Python will be aware of the Turtle module - this is a Pythonic implementation of Turtle graphics (fun fact: it uses Tkinter too, like Pygrr!). Turtle graphics are a key feature of the programming language "Logo". Uses of Turtle graphics Turtle graphics are a popular way to introduce programming to kids, and are often used for this! They are also used as a quick way to implement graphic representation of data when debugging or writing code, as they are super ea

The Pygrr Community Discord

With all the buzz of Pygrr's future and Alpha coming around, due to popular request, I have created a Discord server for Pygrr! Come hang out with like-minded people and have a good time, learning about programming and Pygrr! Pygrr Community Server | Discord Don't worry, there are reasonable rules to protect our members! When Pygrr is finally released (we have some exciting news of that coming very soon), this can be used as a help server, too! Above all, have fun, enjoy! Isaac, over and out...

Pygrr - at the crossroads!

Here's an interesting dilemma that's arisen in the development of Pygrr! There are a few options I can take to further Pygrr. These are as follows: I could continue with Pygrr as a library, similar to how Pygame works I could turn Pygrr into a full blown engine using Python, like Unity (but easier for beginners!) All of the above (two options to use Pygrr) I'm not sure which one I should take, so, here's a G Form to help me decide: Pygrr - at the crossroads! | Google Forms Your email address will not  be collected when you submit a response - just your choice! If you have any other ideas, please email me at Isaac@IsaacTFM.com! Isaac, over and out...

Bugs in Pygrr? The Debug class

So, we're almost done with the refactoring! Let's make a whole new class... This post is about Pygrr's Debug class, which has turned out to be the biggest class yet! At the time of writing, the class has a whopping 22 files and 9 sub-folders inside it... Also, fun fact: Pygrr currently has 4358 lines of code in all of its files - that's a lot! I worked this out by writing a program that walks Pygrr's directory, counting each line in every .py file. Now, onto the blog post... Currently, if the end-user inputs invalid data or tries to do something with Pygrr that causes an error, they'll just get a bunch of back-end errors, which won't mean much to them, and then they won't know the cause of the error, or, consequently, how to fix it. In this entry, I'll put an end to that! So, let's create a new package in Pygrr, called Debug. This will contain our new custom errors for Pygrr! Now, what is  an error, I hear you ask. Well, an error is simply a type

Refactoring Pygrr: the big rewrite!

Up until the 3rd August, 2021, Pygrr's code was contained in a single file, making it a "module". Well, that's not so good for maintainability, as there was so much going on in the same place. To make matters worse: there was no documentation for the file (bits of text that explain what each class or file does - for human benefit), and practically no code comments (small lines that explain what a bit of code does - for human benefit). I could very easily take a break for a few months, come back, and have no idea what the code was doing, causing me to have to restart. Not only that though, as the alpha date looms ever-close, the prospect of Pygrr opening up open-source becomes, too, ever-close! Now, I really don't want to show everyone the code with it being a horrible mess, that's like visiting a home-designer's house and it being a dump! So, I started to do something about that. Python has an in-built "import" command, which allows you to includ

Collision in Pygrr - P1: Generation

Here we are: the final stage of alpha development! Writing collision will be split up into three parts: generating colliders detecting the collision collision resolution Step one: generating colliders... Let's start off with some context. There are 3 main types of collider - but, what is a collider? A collider is the bounds in which a shape will be able to collide with other shapes. Basically, it's the part of the model that is used to detect interaction with other objects! Anyways, the 3 main types (in 2D space) are a circle collider, bounding box, and a convex hull. A circle collider is what it says on the tin, a circle - this is faster than the other forms of collider, due to everything being the same distance from the centre - all you need to calculate is if a shape is closer than the radius, thus, it will be inside the collider! A bounding box is just a square / rectangle that forms around the shape - this is a very fast method, as the height and width axis of the rectangl

The ongoing quest for organisation - Pygrr

So, Pygrr's pretty near to the alpha release, woop woop! There are only a few more features to do... In case you hadn't noticed, blog posts stopped for a while - I was on holiday for a week! It's nice to relax, and I have so many new ideas for Pygrr... So, there are only a few more things to do for Pygrr, and I have them all written down on bits of paper and sticky notes. Surely there's a better way to do this? Well, there is! There are several free services available to create workboards for your projects! I'm gonna use Trello, as it suits my purpose perfectly! Boom, Pygrr has a Trelloboard! Aaand, I've put a lot of cards on the Pygrr Trelloboard already! Let's make it public so you guys can see my progress and what's left to do... Pygrr Workboard | Trello And that's all for this post, not much to it, but a nice little update! Isaac, over and out...

Branching out to a wider audience - the IsaacTFM YouTube channel!

For a while now, I've been thinking of creating a YouTube to talk about programming, to reach a bigger audience, not for money or anything, but instead for promoting educational content like Pygrr, allowing more people to have access to resources! Well, today, I did it! I spent a few hours recording my voice, some B-roll, and just sorting out all the problems I had with video editors and stuff... Without further ado, here we go! The IsaacTFM YouTube channel! Soon, I'll upload other things like Pygrr posts, and even tutorials for programming! Isaac, over and out...

Teenagers in Pygrr - setting up parenting

 Parenting is a pretty useful thing when it comes to game development. It allows you to link objects together, so that they'll inherit movement and everything. It's basically like sticking two or more objects together.  The structure of families in coding is referred to as a "hierarchy", as there can be multiply levels of children, starting from the "root" object. For example, I'm going to use indentation to show you an example of a hierarchy. Root object First child Grandchild Another grandchild! Second child Third child If I move an object left, all of the objects underneath it in the hierarchy (that is, successors of that object) will also move left by the same amount. Change travels down in a hierarchy, applying to all of the object's children, and then their children, and so on and so forth. It should be pretty simple to code this... spoiler: it wasn't Well, movement was quite easy to code, just rotation was the thing that was... Inter

Pygrr PolyArt (part 3)

Here we are, the grand finale! Let's finish it off by coding saving, opening and exporting to Pygrr... Let's switch around the UI a bit to begin with. It made no sense to not save the colours of the object, so let's add that to the top left, and let's create some file options on the right hand side! Also, note the icon of the application... Pygrr! Cool stuff! Now, what do we do... Let's work on "clearing" the data first. This should just wipe the screen, and replace it with this default square you can see. We don't want people accidentally clicking it, so let's set up a nice confirmation box. Tkinter has a nice class for this: "messagebox". Heyhey! Now for saving...  For this, I'm going to use my programming crush - JSON. JSON stands for JavaScript Object Notation, which is (from Wikipedia ): JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of

My newsletter - email subscription

So, for a while now, I've been interested in setting up a weekly newsletter, to show people who subscribe to it new cool stuff in the website - this will help with keeping people up to date if they're interested! To do this, I decided to use Sender.net , which is a free (to begin with) platform for creating mail-to lists and newsletters. I say "to begin with", as, if I were to pass 2.5k subscribers, I have to start paying a monthly rate! It wasn't entirely free, however, as to use sender, I need a domain email address. What's that? An email address under this domain, IsaacTFM.com. I bought isaac@isaactfm.com, which is a monthly payment, and costs a fair bit. In the future, I might set up a Patreon or similar, as I'd really love to do this sort of stuff full time, Pygrr and my games - in fact, it even costs £100 to release a game on Steam, the worlds biggest video game platform... Anyways, that'll come with benefits, and it'd just help with supporti

Social links: elegant web design

So, currently I only have 2 social links on this website (that is, links to another website or service); Email The Fossil Forum And these can only be found in text at the bottom of the  about me page. In this post, I'll seek to change that! I will add links to two more programming services -  Replit.com  and GitHub . I could waffle on about how amazing they both are, which, they truly are, but that's not what I'm here to do! Let's add them to the about me... Done! But I want something a little more... Attractive, and elegant. To do this, most websites have the logos of the links in the bottom of the website, as an image link. No text, just an image. Of course, I must adhere to the social norm... Except! I wanted to make them fit with the website a bit more, so I took the theme colour, #2e654a, and applied it to all of the services' logos! Except the email one, I had to draw that myself... Oh, and the Fossil Forum one too, I traced it from a bitmap! Vector art is pr