Sidebar Menu

Projects

  • Dashboard
  • Research Project
  • Milestones
  • Repository
  • Tasks
  • Time Tracking
  • Designs
  • Forum
  • Users
  • Activities

Login

  • Login
  • Webmail
  • Admin
  • Downloads
  • Research

Twitter

Tweets by stumathews
Stuart Mathews
  • Home
  • Blog
  • Code
  • Running
  • Gaming
  • Research
  • About
    • Portfolio
    • Info
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
28.May
28 May 2019
Last Updated: 02 June 2019
Hits: 3004

Games, STL, Digital Forensics and a Fedora

Since C, 64, Triple Black, Resource Management and a Game Prototype, I’ve been working on my game prototype these past few couple of days which now has morphed in its architecture as I’ve been learning about new concepts.

This weekend I’ve learnt about Scene Management. Scene management is all about targeting the subset of resources in your game that belong to the current scene. So, this means when a new scene is started, the resources associated with it will need to be loaded into memory. Those not part of the scene need to be unloaded etc.  So, there is a bit of interplay between the resource manager and the resource manager.

I didn’t have a scene manager in my prototype and its introduction into my code base meant that I needed to change how my rendering processes work. My game prototype is a bit of a mug, it’s a scratchpad of different sources of information. This is great because I’m picking and choosing things in some places that make sense to me and using those ideas. The downside is that not everything is the same from say a particular book I read. For example, I’m using the game loop from one book (Game Algorithms), the scene management from another (Thorn) and the two sources differ in how they deal with audio for example. I’m now considering implementing the Actor or game object infrastructure using a 3rd book (from which I've already used the event management ideas from). It’s fun.

Speaking of fun, I had a good time setting up my Event Manager(which I introduced in Retro sounds, Event Manager and some running) to link up the main game to the Scene Manager to the Graphics Manager. I'm finding the event management the most rewarding part of coding up the prototype. One of the great things about it is that it decouples many subsystems from each other. For example, I have components like the actors subscribe to DoLogicEvent, PositionChangedEvent and the Resource Manager subscribe to SceneChangedEvent. This is pretty cool. You just need to to subscribe to your event of choice and when it happens. Being able to use this more frequently is proving how useful the design pattern is. 

I’m also glad that I’m being a lot more conversational in my C++ and  the practice using STL quite rewarding. The new features I’ve mentioned previously like lambdas and implicit variable types is nice.

I also spent most of Sunday writing up an assignment for my Digital Forensics course. This so far has entailed understanding the incident life-cycle, insights into contemporaneous notes and basic introductions into Computer, Mobile, Image and Network forensics, among others, and what they can tell us. Quite interesting.

I must say that while I enjoyed it, the word limits are quite restrictive. I am glad that I didn’t kill myself trying to get it done though - I had started it some weeks before. Recently I’m finding that my more exotic choices i.e. modules that I’m not already familiar with i.e. non-Computer Science related, like Forensics or Psychology aren’t that easy to predict one’s efforts. I remember this one time working 2 weekends for a meager result which was both time-consuming and disappointing. That specific module was Psychology, so I’m reserving judgement.

I’ve been going to my weekly lectures (that’s really what they are – he just talks) on the C programming language and I spent the entire session coding up the course final project. It’s a noughts and crosses game. I’m not finished with it and I’m surprised at how I didn’t finish it in the class. I’m obviously not as good as I thought I was!  That said, I’ve solved it now but its not perfect which is irritating. So, I’m gaining more from this course that perhaps I thought I would.

My issues first arose from the fact that I decided to not use the concepts that I’ve yet to be introduced in the course but then I go and base the solution on a multi-dimensional array-based board – something we’ve not been taught yet. So, I’m doomed from the outset – half of it is restrictive by the above and the other is using un-restrictive ideas (what a mess?) and I’m hell-bent on using multi-dimensional arrays. I don’t mind it being tough.

I’m stuck being unable at the moment to figure out a generic algorithm to solve diagonals irrespective of the dimension of the multi-dimensional array – something that should be easy to solve but my brain hasn’t been paying much attention to sanity lately. The code is here. 

I also found myself in the gym yesterday (Bank holiday) as I couldn’t go on Sunday(assignment) or Saturday (lazy and meeting friend in London). So, I went out on the trot and kicked out a good session. I’m not as strong as I was but I’m OK with that. My shoulder is really improving and it feels like I could work it but I’m not quite ready yet. I took care to eat correctly because I’ve not been sleeping well recently and that’s when my body starts to fall ill. So far I’m kept it in check, eat well, rested well and that’s a good thing.

During the week, I ordered 3 new books which look fun:

  • Game Architecture and design
    • This one is actually more about the game design process than architecture. That said there is a single chapter on architecture. I started reading the theory about game design on the train back on the day I got it. It was actually really fascinating. So I’ll get back to it soon.
  • An introduction to 3D game programming
    • I’m not yet started reading this however I did thumb through it while eating a meal. It basically DirectX8 using C# so It looks pretty much a precursor to the more prevalent and more powerful Unity framework. I’m interested in seeing how the basic 3D graphics principles are put into practical application – irrespective of the language/age of the technology.
  • Game programming all in one
    • This is a wildcard. It huge however but from 2008 so I’m sure there are some useful stuff in it, notwithstanding the age. That said, I’m told that in gaming things don’t move that quickly but I’ve heard other sources say it moves faster! I’m after the concepts, however – the ones that survive the test of time.

On my investment tracker project, I’m working to improve my recently introduced feature – transactions because there are bugs that prevent it from being usable. I’ve started recording them on my Github page. This is a development work in progress so there are still some rough edges particularly error handling and site access (login and registration) is not finished. That said I’m quite happy with the overall progress of the project.

I’ve been looking into Caliburn.Micro recently to help me quickly build a WPF UI for it but this is still in the starting blocks – early phase.

I also upgraded by Fedora box from 29 to 30 which broke my tablet. For some unknown reason (something that seems to pervade this bloody tablet) it didn’t want to log into Gnome. The new version of gnome is special and one of the reasons I wanted to upgrade so that sucked. Up until this time I’d just left it – I’ve got bigger fish to fry. I don’t have a keyboard (USB) so interacting with it at in emergency rescue mode is a non-starter. So I decided to got out and buy a brand new keyboard for the tablet (sounds silly) but it enabled me to finally fix the issue.

Through some trial and error, I found that XOrg could not find libgtk-3.0-dev which sounds to me like the upgrade process made a boo-boo so I uninstalled gdm because that is what probably needed it and reinstalled it. That worked.  So, I’ve still got all my content and don’t have to start again. Why go through all this pain and torment? Good question, I guess I’m a masochist. Phew!

So, with the extra keyboard around I decided to use it more routinely and plugged into my laptop and used it to code and it was so much nicer – I loved it!  So maybe I’ll continue having a slightly odd-looking setup: A laptop and a tablet with a full-sized keyboard. Whatever works I say.

Still running – always running.

  • Game development
  • C++
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
21.Apr
21 April 2019
Last Updated: 22 April 2019
Hits: 2990

Easter, Heroku, Postmodernism, DataFlow, Math and Software Engineering

I've had quite a productive easter this weekend:

  • Went to the gym and went for a run
  • Read up about modernism and postmodernism and blogged about how it relates I think to software in Postmodern Software: Embracing complexity
  • Worked on my new data flow pipeline project, wrote some tests and published it to nuget and interestingly I already got 12 downloads in one day.
  • Swotted up on my Software Engineering course in preparation for my exam on Thursday 25th 
  • Learned about linear equations/formulas and functions.
  • Learned about 3D theory around view transformations and linear geometry
  • Read how experts conduct themselves and what traits they often present
  • Read up on Hofstede and Tropenaars dimensions of culture
  • Successfully deployed by Investment Manager frontend onto Heroku and unsuccessfully tried to deploy a backend docker container :-( Er no, never mind that - I actually got that working!
  • Setup my Angular frontend to use the express framework as the web server.

That I think is not a bad weekend. I've still got more studying to do however having only finished a part of my study plan.

In between my study of software I've also learnt a lot about the economy with respects to the free market and how generally markets work. This has been interesting.

Its also allowed me to think about my investments and how to try and better manage the investments that I hold and will hold in the future. For example, I came across a Harvard Business Review article about weighted and balanced scorecards as a way to set up criteria to rationally reason about your investments so as to divest any emotional attachment to them.

The reason why this is good is that I know that I'm emotionally attached to some of the decisions I've made and need to be able to objectively distance myself from that sort of sentimentality as investing is not about liking(I like my investments) but more about growth and value.

I think I'm going to set one of these up soon.

 

 

  • Programming
  • Running
  • Gym
  • Angular.JS
  • Asp.Net Core
  • .Net Standard
  • Design patterns
  • Software Engineering
  • Docker
  • Cloud
  • Software Architecture
  • Data flow architectural pattern
  • Heroku
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
20.Apr
20 April 2019
Last Updated: 20 April 2019
Hits: 2965

Postmodern Software: Embracing complexity

I and been pondering about my software projects at work recently and while doing some reading today, I made an interesting observation: Software is getting more complex and it requires more thinking, involves more moving parts and its in some ways is reminiscent to current postmodern thinking. Now, there could be countless reasons why it appears more complex though I'm not going to pursue this, only discuss my observations.

I’m also studying maths at the moment, in particular, linear geometry and algebra which, in contrast to postmodernism, is usually associated with modern, scientific thinking. 

So with this juxtaposition of thinking in mind, a bit of an introduction to modernism is in order, and then how software is becoming more complex in a postmodern society. I should also just say at this point, that this, like all my blogs, is just my view based on my recent experiences which could be biased or skewed by the industry, software technology and people I work with.

 

For a long portion of time, I’ve always viewed maths’ universality both pleasing and at the same time viewed it sceptically in its seeming application to everything.

Don’t get me wrong, I like maths for its accuracy and objectivity but I’ve always found it lacking in its unity with more human-like pragmatism, such as the inevitability of complexity that is outside of our understanding, subjectivity and the emergence of ideas that cannot be measured easily or accurately such as human behaviour, chaos and individuality and personal thinking.

For example, why do some people do things others don't - putting that in an objective law would be difficult because it's composition is difficult or too complex to reduce. Such ideas can be varying, wrong or indeed right given the circumstances. Math traditionally doesn't handle 'maybe' very well(though there are signs of that changing - probability, approximation etc.).  These types of subjective correctness’s are difficult to quantify with mathematical correctness and while one might feel that these types of problems are not math problems,  I do feel that maths is evolving and is and will be capable of trying to define measurements and subjective laws or tendencies like these.

For the most part, maths has a finite universe and everything within that universe is accounted for and understood and thus anything within that universe can be related within the confines of understanding within that field or universe.

This is what is at the heart of modernism – the mathematical view, that everything that it has power over, is definable and measurable.

Basically, the rules are set and they don’t deviate much.

Mathematics and indeed scientific thinking is what underlies Modernism. Its a view of the pursuit of an absolute definition, breaking down ideas and reasoning into their constituent parts and studying and reasoning about them (reductionism).

Software can be reduced, its parts studied, techniques applied, code practises enforced and measured too and this is why I feel mathematics and computing often seem to fit well (more on this later).

 In a way, modernism is a way to reduce complexities in order to understand the make-up or constituent parts of it. And this all makes sense when you think of maths’ pursuit - definition and relation to other already defined concepts.

Now as eluded to previously, I’ve found this to be useful in understanding geometry for example - a fairly one-dimensional view of a universe of concepts. Other things can be and are sometimes chaotic, possibly being impossible to pragmatically reduce them, being perhaps only understandable if you don’t break them down into smaller chunks. Because studying constituents at the micro-level in the pursuit of universal understanding - you don’t see the bigger picture.

This is where postmodernism is seen as an antidote, where the wider composition of something is considered. And if we are to believe that we are moving from a modern to postmodern society then we might need to realise that complexity, in general, is increasing and moreover that we are accepting it.

For example, certain ideas cannot be understood by looking only at their constituent parts such as the light which acts like particles and like waves – you need to stand back and embrace all the constituents of light to fully try to understand it. Concentrating on the particle-like properties cannot explain the wave-like properties. 

In the same way that emergent properties of things ‘emerge’ by being a factor of many facets of something  - not just one and being fixed on one will preclude you to seeing and understanding the holistic idea. This naturally means that postmodernism almost embraces complexity by definition and its not trying to reduce it into similar parts but coming up with ways to deal with its complexity instead.

So when thinking about software, and the move that the world is undergoing which, is a gradual move from modernism that looks to reduce complexity and apply scientific thinking to postmodernism, which acknowledging complexity, its easy to see why software is becoming more complex(Russo et al, 2017).

If we are to believe that this is being embraced by postmodernism society, then perhaps previous outdated modernism thinking in dealing with complexity in software is on its way out too.

Perhaps sequential, waterfall methods are outdated because of favour postmodern methods that deal with increasing complexity such as Agile.

Indeed Agile, like postmodernism, is not about the micro-level - its about the holistic view, a understanding that more is at play than say the code or the documentation or people or communication but rather the interplay between all of these parts– a whole system of complexity, something that modernism would seek to inhibit but is a reality these days.

 So the paradox: we're embracing or acknowledging complexity (because we have to) and its making our software more difficult to manage and maintain.

  • Software Engineering
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
26.Mar
26 March 2019
Last Updated: 30 March 2019
Hits: 2733

Mountain running and Zebras

It was another fine day, the sun was out and the surroundings are plush due to the recent rainfalls. I went for my 4th and final run up the mountain. I ran much of the same route I did previously in Another day in paradise but did change a few things. I ultimately ran 9.9km which was good and it felt rough to begin with but as I eased into my pace things started to smoothen out quite nicely.

I met about 5 zebras as I came down from the mountain. There were 3 smaller ones and two fully grown ones. I approached with caution as they were heading up the mountain using the same path I was using to go down. They eventually decided to take an off-road diversion and let me pass.

Prior to that, I’d spent some time sanding down the metal pipe that connects the carburettor to the engine. As we recently discovered in A Scenic African run with sensible shoes, there is a hole in that pipe and it caused the engine to huff and puff one day. We were amazed to find no water left in it. After closer inspection, we found it had a tiny hole – about the size of a pinhead.

My dad and I went up to the workshop in the park and we asked for some sandpaper and the worker was happy to oblige. I spend about 20 minutes sanding the pipe down while lying on my back under the front end of the truck. I applied a special paste which consisted of two tubes of substance that when mixed together activate and produce one incredible hold/adhesive – suitable for engine repairs etc. The material is called Pratley’s Steel. I mixed the two parts and applied it evenly to the newly sanded-down pipe and left it to harden. It should be fully set by tomorrow. We plan to take the truck out for a test run tomorrow to test its metal so to speak, prior to me leaving for Ladysmith the next day.

Last night there was a great wind during the night which woke me up, luckily my tent it pretty well tied down. I didn’t think I was going to fly but it did wake me up. There is something quite nice about sleeping outside, perhaps it’s the night rain falling on the tent or the night-time crickets chirping. I nearly fell over a frog that had come out, presumably to feed, after I had finished taking a shower. All these things help me to realise that my feet are firmly flat on the ground and therefore I’m pretty grounded.

Its been a worthwhile break, I’ve done some running in beautiful surroundings and I’ve spent quality time with my folks, I completed and handed in an assignment and I’ve read almost 2 books on C.

Good memories.

  • holiday
  • Running
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
24.Mar
24 March 2019
Last Updated: 24 March 2019
Hits: 2698

Another day in paradise

Since Wet rain, I went for my third run while being on holiday. I went a lot higher and longer than the last. The previous run, described in Drakensberg boys’ choir, which had me run part way up the mountain until I came across a monkey/baboon tribe. This time I ran right up to the top of the 1430m mountain. I was accompanied partway up the mountain way by a group of off-roaders in a 4x4.

The route took me up and around the mountain, and I picked different trails as I came across them. I found a mountain bike trail on my way down and pursued it until I reached the bottom of the mountain. It was a beautiful run. My finishing move it seems is to run up, past the entrance to the Drakensberg Boys’ choir school and up towards the main road. This is also quite an ascent. I ran a good 9.25km and established a new heart rate threshold of I think 175bpm. This has been hill training.

Apart from that, I got to the end of my C programming book. I’ve got about 2 or 3 days left of my holiday to start my next book, plus an 8-hour bus trip back to Joburg excluding the 10-hour plane trip (which I’m not looking forward to). I should have enough time to read that too.

I took along with me my old running shoes which have done a lot better than I thought they would – they have a tear alongside the right side of the toe box. I run with an under pronated gait which focuses a lot of strain on this area. I figured I’d take these as ‘holiday’ shoes and use them either for running (if I did any) or everyday footwear.  They’ve served both purposes beautifully and are still going strong.

Looking at my statistics, my relative effort was 61, spending most my time in Z2(43%) and Z(42%)3 with just over 10% in Z4. For a relatively hilly session, I averaged about 5min/km which is surprisingly good as at times felt like I was not moving at all while climbing the really steep parts.

In other news, a couple of weeks back, I bought a box of Bran flakes as a change of breakfast meal in the morning. I found that I enjoyed eating it out of the box more than eating it out a bowl. Since then, I’ve been had an accumulating craving for bran cereal. I may by myself another box when I get back.

Besides that, my father still has his cold and is waiting it out, however, he’s quite preoccupied between something to do with his Mint Linux VM under VirtualBox and his new Sony Xperia Z5. My mother and I have prepared the meals and washed the dishes which as provided ample opportunities to talk about anything – which is really interesting at times.

The sun is making its appearance again this morning, having started raining again just after my run yesterday (It seems I timed my run perfectly). 

I think what is required now, is a cup of tea and a bowl of porridge to get the morning started – another day in paradise!

  • holiday
  • Running
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
23.Mar
23 March 2019
Last Updated: 23 March 2019
Hits: 2804

Wet rain

Since A rainy day, my mom and I went on another long walk and we talked about all matter of things on the route. We ended with a drink at the restaurant and me eating another spinach, mushroom and onion omelette.

 I imported my videos from my Virb onto my laptop and I have about 30 minutes of continuous footage which I need to determine how best to edit. The campsite is now a hive of activity as the long weekend starts.

We’ve had quite a few rainy days of late which has brought a different and quite lovely view of our surroundings.  And as is usually the case, even in London, the colours seem brighter and more defined when it's wet.

We had torrential rainfall and we’ve had light rain and we’ve had ‘middle’ rain – all kinds of rain it seems within the last 3 days. Sitting under the cover of the front tent watching the rain seems to distil a zen-like quietness throughout the campsite.   

I'm reading the seminal book, "The C Programming Language" by Dennis Richie and Brian Kerrigan which is on the recommended reading list for my upcoming course. I've been reading it intermediately while the rain has kept us indoors. While reading it, I'm reminded of the simplicity of the language and how I enjoy it. 

My cold has dissipated substantially and I'm faring a lot better having gone out for my last two runs (A Scenic African run with sensible shoes and Drakensberg boys’ choir), and as soon as the ground is drier, I'll venture out for a third. 

  • holiday
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Load more...