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
10.Mar
10 March 2019
Last Updated: 31 March 2019
Hits: 2623

A Finchley change

I have been running into the office from Finchley Road station in the mornings recently and last week I did 4 days on and one day off.

The route takes about 40 minutes to complete and even though its a little fresh in the morning, after part-way into the run, the cold disappears and you warm up quite nicely. I always find running help me de-stress, particularly when there is something new I have to contend with. Recently we've moved offices, I've had to get assignments in, understand how best to go about understanding/implementing a suitable design/code solution at work and all the while getting ready to go on holiday. 

So all of this sort of clouds my mind a little so it's always great to be able to have an outlet. Quite frankly running is a godsend. 

Speaking of outlets, the other is the gym, computer games and programming:

A change is as good as a holiday so I'll be doing a fair amount of running and programming while on holiday, only it will be different. I've got an 8-week course on C programming when I get back from holiday followed by an 8-week course on C++ in preparation for my game programming course in Sept. So I'm eager to get more C/C++ programming in while I'm on holiday. I hope to balance this with a steady running regime through the hills and valleys of the Drakensberg mountains. 

I started reading two Computer Science articles recently that I need to summarise, one being on the Italian banking industry and the other on assigning "business points" to your user stories. I must say, I've become rather bored with summarising, and analysing articles. This is why I think I'm going to enjoy my upcoming programming courses.

I went for a haircut today at my new favourite barber, in Sudbury hill, just off the station. They had the Ireland/Afganistan cricket match on the big screen and my barber had fixed the Australia/India ODI on his small iPhone 6 screen, propped up by trimmer accessories(I didn't even know Ireland or Afganistan could play Cricket at international level). Earlier, my mom sent me a text saying that she's watching the South Africa/Sri-lanka match. Most of this really was peripheral - same with the Rugby over the weekend that I watched. I wasn't concentrating on it. 

After my haircut (£8 for a skin fade), I popped into the gym for an hour and did a weakling-style workout. I've not been to the gym a lot and so, my body sort of is limp and not feeling powerful - but it's feeling pretty light and runny-like(hence all my running recently)

I watched the Lost City of Z which was quite interesting and then watched about 30 minutes of Noah before feeling too tired to watch any longer. Had breakfast at my pseudo-Italian dinner as-per-usual and not-as-per-usual I decided to have a coffee. I've packed a bit of stuff into a bag and I think I'm just about done really in terms of packing. I need to collect some gifts at the post office and at our old office and then head off to the airport.

I don't think I'll be doing much on the 10-hour flight as it all occurs at night and either I'll stay awake or I'll sleep(unlikely) but I will probably do something on the 8-hour bus journey from Johannesburg to Ladysmith.

Details
Category: Blog
By Stuart Mathews
Stuart Mathews
03.Mar
02 March 2019
Last Updated: 28 March 2019
Hits: 2858

Darkwing duck, watch-straps and a mouse

Since Old school, bare-feet and gangsters, on Friday I decided to get off at Finchley road and run the rest of the way to work. As it turns out, running the route backwards (from Finchley instead of to Finchley) wasn't that tricky to navigate. The problem was that I was kind of hoping that my route would not be inaccessible at a certain point, specifically here while trying to get onto the canal route:

 So that meant I actually had to find another route and well, I got lost. 

I whipped out my trusty google maps and it told me exactly where to go and so I went and finally ended up at work at around 9:15 (I had battery woes on route which I'll talk about later...).

While at work I did work stuff and after work, I decided to go to the gym. So, after I got off the train at Uxbridge, I ran down to the gym and spent a good hour or so working out. I did shoulders. One of the nice things about working out late is that people actually tend to disappear around  19:30 which is great. I think I might do this evening workout routine more. I realised part way into my run to the gym that I'd left my card/cash in my apartment so I'd have to run back too (usually If I run in, I take the bus back). I figured that I didn't care that much that I'd have to run back and in actual fact, it would force me to run back. Nothing like having no money to take the bus - run! Anyway, I ran back pretty knackered but I was surprised to find my legs holding up remarkably well after all the running I'd done that day.

I ordered a new iPhone 5S battery as mine seems to become less reliable - halfway through my run to work, it just cut out and indicated that it needed charging. When I got into the office, I tried to switch it on(wishful thinking) and it actually turned on and reported to be a 64%. Dodgy. Anyway, this has happened to me a few times already and always at the most inopportune moments. So that's what prompted that. I also found that my watch strap broke so I ordered a set of cheap silicone replacements straps - 3 in fact. I figured that as my parents also have the same watch as me (I bought those last time), I'd get them a set of replacements too. I'm seeing them in just over 2 weeks now(Flu, fishes and flip-fops). These new straps have this cool little fastener which is basically a nob which hooks into the other side of the strap. no need or a clasp(which is actually the part of the strap that broke). These are the replacements (see the clasp mechanism)

As usual(thankfully) after a day of heavy exercise I slept very well and as it was Saturday today, I thought I'd have to get some studying in. I tried but I was so tired that I had to put myself back into bed because otherwise I'd just be zombified. Reading academic papers as a zombie is not fun. So after an hour or so of extra snoozing, I started again. 

The paper I was reading about interestingly enough was co-authored by an author I'd just finished reading recently - Mindset by Carol Dwecker(Remind me of a cartoon I used to watch called Dark Wing Duck who's sort of like Batman but is a duck, "Lets get dangerous!"). I also watched a TED video of her(Dwecker). It was kinda long paper and I had Seabiscuit playing in the background so I was half-listening and half-wanting to finish. As soon As I did, I decided to go to the gym again. There is nothing quite like doing something you really like doing after reading something that at times you feel you just have to read and then get out of the way. The current paper is a very psychological one. Tomorrow I'll do the Software Engineering coursework, which unfortunately is looking a lot like the psychological module ie lots of research-type reporting writing. I think I'll know the ins and outs of the Software Development Lifecycle and management after these modules are done. 

I'm very much looking forward to my computer games technology course starting in Sept time. Registration opens up in the summer but I'm already started to read up on my real-time programming facts and I've booked my spot. I started recently with a new book on Direct 12 and I'm currently investing time in developing my c++ library which currently only on has this in it: Measuring the duration of a function in C++. with a sprinkling of 3d classes in it. This course will be pretty hardcore so I'm going to get myself prepared.

Oh, and I got a new mouse. That is newsworthy because I use a mouse every single day and I need a back button and well, my mouse packed up. So I ordered this one and its great. It came yesterday and I got to use it for a good 30 mins before I was home time and as I said I wanted to go to the gym.

I took my Vo2 Max reading and it's at 60, I don't seem to get past that, I'll have to work out a lot more for that(Another cool feature of the 235).

 And for good measure, here are my 80's childhood cartoon intros: https://www.youtube.com/watch?v=dy3RTFFhSYs (He-man. Gummy bears, Teenage mutant ninja turtles, BraveStar, The Mysterious Cities of the gold,  Duckula, Ducktails - the rest of them I didn't really know).

 

  • Running
  • Gym
  • Game development
  • C++
Details
Category: Running
By Stuart Mathews
Stuart Mathews
23.Feb
23 February 2019
Last Updated: 01 March 2019
Hits: 3723

Old school, bare-feet and gangsters

I had a great work out today. I put on my old school trainers(they're bright and very worn) and I went for a run down to the gym. The run wasn't effortless as perhaps it could have been if I'd been running a little more the past few weeks. A couple of years back, I transitioned from my barefoot-style running shoes(including my old school trainers) to a more beefy, daily-run style set of trainers.

The difference is that while I enjoyed and did very well in my barefoot trainers, I started gaining more weight and running more and felt that I needed more cushion to prevent any overuse injuries. It went pretty well, I switched to the Nike Pegasus 33 and relegated my Merril Vapour Glove 2s(along with my old school trainers) to the cupboard. It was a good move. 

Recently I'm not actively focusing on massive gains at the gym like perhaps most people are nowadays but I'm focusing on generally being fit and healthy. My resistance training this month has eased waay back and I'm curiously OK with that. However, I don't want to give up on it. 

Anyway, today I went for my barefoot-styled run and it was pretty OK. I also sluggishly ran back up to town when I was finished, a lot more tired than when I started. One of the things I always liked about barefoot running, is how more in-control you feel about your stride, balance and momentum. With all that great cushioning in the Pegasus, you tend to lose that ability that your foot has to "sense" its terrain, reposition itself accordingly and adapt. The thing about barefoot running it that it's not absolutely ideal to run this way on concrete - that said I'm a testament that it can be done very successfully and for 2 years I did it. One thing I will say is that you shouldn't be heavy while running barefoot because of the weight just kills your joins, and in my case just before switching, my meta tarsels in my front foot. That was when I knew that too much gym and too much barefoot action did not go.

So in the middle, I did a back work out, which was pretty good considering my slight decline in attendance recently(*wince*). One thing I know is that one day I'll look back at my gym and say, damn that was the coolest gym I'd ever had the privilege of spending 2 years in. The thing about my gym is like my trainers, its old school, no fanciness, not pristine showers or sauna or Bluetooth treadmills. These are functional and it reminds me of a concept I used to recite to myself at one stage of my running career: Its not the shoes that make you a runner and help you to run, its the decision and mental ability to commit to going running and the act of running, moving your legs back and form, irrespective of what goes are at the bottom of them.

I love this idea and its this idea that this gym, in its back-to-basics, essential cardio machines and weight machines distils. I mean its got everything. And it's been sitting in that gym for what seems like ages. One thing I am proud about is having taken myself to that gym over-and-over and over and over again. So when things change, and I no longer have the opportunity to go it, I'll know that I made ultimate use of it.

It's a great feeling to feel that way about a gym, but it's not the gym(it perhaps manifests that way) but its the way it made you feel when you were there and it was you who made you feel that way - the gym just happened to be where you decided to go and perform. The act of deciding, planning, doing and enjoying is a choice and that's what makes me proud, gyms will come and go but I'll always remember how I felt while going to this gym. 

I think that's how you should feel about life really, you are happening to life, it's not happening to you. You have to fight back, take control and happen.

I did my usual back routine but I've got a progressing idea that slowly unfolding in what I'm doing and that is of quality of effort. So I'm not that concerned with getting stuff done 100% rep/set-wize, I'm happy to take a bit longer or miss a set but put some quality adjustments while I'm doing it to really focus on improvement rather than aiming for a specific goal - which inevitably is like running a race, it becomes about finishing - which is not my goal. I'm not concerned about racing or the end.

It also might be a good time to mention that I've been running now with my Garmin 235 for about a year now, and it's been a great piece of kit. Garmin has it going on!

In other news I've done a little more work on my gaming aspirations in Measuring the duration of a function in C++. Hopefully I'll be able to use moving forward. 

And I'm just thinking about this gangster film I watched one time - it was Rockenrolla,  "There is no school like the old school..."  

  • Running
  • Gym
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
20.Feb
20 February 2019
Last Updated: 20 February 2019
Hits: 2595

Mindset, new music and realignment

Since being A little bit hazy for the past few weeks I think things are improving. I handed in my last two assignments which I think took a lot of umpf out of me.  I've been distracted from work recently by a new book I'm reading called Mindset, which has helped. It's. It's very similar to the last book I read which is mentioned here in Bounce: To travel hopefully is a better thing than to arrive. So this has been an interesting diversion. 

I'm still very tired in the mornings and I've not kept to my usual morning routines because of it,  which I suspect is because of lack of motivation. I'll need to sort this out. I have however kept up my weekly runs. Today I took a very casual run around Victoria Park, running with my new music playlist and being careful not to overstrain my leg, which has a slight niggle which is wearing off nicely(though tomorrow morning will really tell). I averaged a lot less than I suspected, 4:48 which is a good decent amble. I didn't race anyone today.

It's good to remember that running is about enjoying each moment and not relying on the first and last moments to fuel your enjoyment. So that's why I quite like running alone, I can pace myself such that I'm enjoying every single decision I'm making and not reacting to others. 

I bought a Bluetooth 4.0 dongle for my tablet because it only has a built-in 3.0 adapter and my Microsoft fold-up keyboard, while far superior to my Samsung one, requires 4.0. It took about a week for the dongle to arrive in the mail. The Samsung one is a bit iffy and it chews through battery like a Tasmanian devil. So, fairly happy with that.

I've been eating well but as I mentioned in A little bit hazy, something kicked me off my old routine and I'm not too sure what it is. I'm still part way through getting to grips with it really. 

I've been eyeing a new course in Computer Games Technology which I think I'd like to take in September, though I've already got a jam-packed curricular schedule and need to balance my sanity. I do need to get back to my extracurricular activities too, mostly around CMaking good progress with my C++ game library but so far the dense black fog has descended and I'm still waiting for the smoke to clear.

I found these new Chupa Chups lollipops which I've basically bought 3 packets of already and kind of in love with right now. I think my favourite one is the Cola flavoured one, which is strange because I've never liked cola very much to start with - I never drank coke growing up - now I do a little bit.

I've got my holiday coming up soon which I'm looking forward to, hopefully, the flight isn't too painful - I always say that I'll work on my laptop or read a book because I have so much time but I never do. It's just that I can't sleep or concentrate on a plane. They are horrible and wonderful things.

I don't like flying because if anything goes wrong, you're dead no questioned asked. That's not something you can try again or revisit and life is pretty great so why risk ending it? I know, yes yes the chances of the plane going down are 1 in like whatever but its that one chance that bothers me!

I did, after my run, try out a new special eco-friendly shower installed recently in our shared office space. Its a mixture of water and air produced to reduce your water usage. It was OK, but unfortunately, the temperature dial wasn't working so all I got was burn-your-skin-off mode. Which, to be fair reduced the amount of water that I used...

 Today's run, while not a crowning glory, was never meant to be:

 

 

Details
Category: Blog
By Stuart Mathews
Stuart Mathews
08.Feb
06 February 2019
Last Updated: 18 February 2019
Hits: 2697

A little bit hazy

So I've had a few interesting, perhaps notable things occur. 

Firstly I've taken about 2 weeks off the gym and only today have I gone for my usual Wednesday long run, which was fairly arduous due to the break of activity.

On the run,

I ran past this one runner who was casually running at his own slowish pace and after a while, I noticed him in my peripheral vision gaining on me. It was interesting.

I thought that perhaps he'd just seen me, felt that I was a good target to aim for and tried to keep up with me. He did. It was amusing because at one point I thought I'd just test him a little... I ran a bit faster.., then a little bit faster and I would see how he might cope - He coped remarkably well. At this point, I was running at about 4min pace which for me is pretty fast and he kept up with me the whole time. I then decided to veer off course behind a car park and then planned to come back into the main route part way through to see if he'd slowed down perhaps thinking that I'd left.

I rejoined his route about 2 or 3 minutes after losing him, only to join up with neatly behind with him as I wedged myself in behind him and I tailed him. This was a bit of a role reversal and at this point, I was fairly sure that he hadn't got a surprise or an inspired 2nd wind when I passed him earlier and that he was quite a challenge!

I let him notice that he was now setting the pace, he was in control and he was the one that needed to shake me off. This continued to my surprise for a lot longer than I thought, we ran a long way at about 4 minute pace and it wasn't until about 2/3 of my way back that he signalled that he's going to stop and climb some stairs, while I just thundered on through - hoping that I'd see him on the other side (he went up over the bridge and I went under it) but he was nowhere to be seen after that.

Half of me thinks he ran out of steam (in which case I'd won!) and the other half thinks that he merely had to detour as his route was different from mine (and that I'd met my match!). Either way, I ran a lot faster than I'd planned to on my first run in 2 weeks! 

It turned out that I ran 4:28 average pace for the 12km route that I do and I got 4 PRs - which is much better than my last runs which were quite casual, in at around 4:30-5 minute pace. I really really enjoyed that, though it perhaps wasn't the smartest thing to do on the first day back.

The reason why I've let my routine slip prior to this is twofold: I started developing a pimple inside my nose(haha!) and for me, this is the early indicator that my immune system is not on par. It also, as it happens, coincided with me having to work almost every spare moment I could in the previous 2 weekends on my coursework. The course work is quite rough at the moment and I've spent a lot of energy on it. In fact, it's been bothering me and as such, I've rather studied and prepared for my assignments in these past two weeks than go running or to the gym.

Interestingly enough, when this would otherwise be unbearable for me to do - I quite like exercising and running - I felt quite good about pouring my time and effort into something of almost of equal importance to me - my studies. This has helped me get over not sticking to my exercise regime and it has also afforded me great opportunity to make good progress in my upcoming assignments(hopefully).

This is a good compromise but I'll not do this again in this way. Basically, I left things too late and as a consequence, I've had to lose that balance between health and education and work which is so important to me.

Prior to this frenzy of work, a week back I came up with  A strategy for systematic thinking in light of some feedback I got from my tutors recently which I wrote about in Zero point four - perhaps this is what inspired me to pull up my socks in that department of late! 

To add to this, I've been fighting with some code at work which is like a self-modifying book, that morphs while I'm busy trying to read it. Along with this is the fact that I managed to miss-book my upcoming planned holiday by 2 months on non-refundable flights! So much for planning. So things just seem to be happening all at the same time. So I'll be having to write another assignment while I'm on holiday...that wasn't in the plans. Anyway, thankfully the ill-effects of this mishap aren't dire(other than my embarrassment in making the mistake - lesson learnt!). I still need to make some alternative arrangements around transport and accommodation(which I reminds me...).

So being ill actually helped - I skipped exercise for studying and in hindsight, it worked out because I'm feeling a lot better due to the physical rest and well, I've exercised myself mentally so perhaps a fair trade.

I also managed to set up my investment management app to use Postgres SQL to back the entity framework database layer on my machine at work(we use Postgres while I'm traditionally used o MS SQL) which was incredibly simple and rewarding. Oh yes, I remember how - I was running tests at the time and needed a distraction! I also managed to fix up my relationship node graph with the right configuration of elasticity and charge between the related nodes and it looks pretty cool now. I also made the graph a bit bigger so you can see more of the relationships between the entities in the graph. I'll show a picture of this later perhaps.

When I was writing Python scripts to upload data to our API at work I came across tqdm in Touring with Python(which is something we use routinely now in our scripts) to simulate a progress bar during long-running operations. I found a .net equivalent and was hoping to use it but as I have already mentioned, time seems to be evaporating from my grasp these last few weeks. Its something I'll look into next, however - its called ShellProgressBar. 

A few weeks back I started writing a mini 4 part series of articles about how I feel about functional programming. I started with my interpretation, my attitude and how I was introduced to the concepts - which I must say wasn't very elegant, to say the least - Not that these articles are elegant in themselves but rather form a bit of self-reflection on the whole situation culminating in Bind behind the scenes

 I don't know...Its all been a little bit hazy to be quite honest these past few weeks, I'm not quite sure what to make of it - I've also been quite drawn-in and detached from the world somewhat. 

Still, a little bit hazy really.

 

 

  • holiday
  • Impressions
Details
Category: Blog
By Stuart Mathews
Stuart Mathews
30.Dec
30 December 2018
Last Updated: 30 December 2018
Hits: 2781

CMaking good progress

Since A lot of doing a lot, I've made some significant progress with my C++ library. It compiles in Windows(Win10) and in Linux(Fedora 29, and WSL but you can't really call that Linux can you? Not according to Richard Stallman!)  and theoretically, it would work fine in Mac too(But I don't have a mac. maybe I'll send it to my dad for him to try).

I decided this time to rather than use Autotools as I did with my C library, I'd embrace CMake this time. 

CMake comes with Visual Studio support and supports creating shared libraries really easily. The major motivator behind this is actually twofold. I want to reuse some of the Math I've learnt while studying 3D programming in Direct X (which is only for Windows). The other part is I'd like to do a better job of stulibc as explained in Kim Kardashians butt and other stuff. 

Like my Autotools projects, I also have a suite of tests that will run that ensures that the library doesn't regress. The cool thing about this library is that it can be consumed by any C/C++ program as I've got two interfaces to the library. I've put all the C++ code into classes and I've used extern "C" {} code to export specific C functions which behind the scenes call the C++ classes. So this actually means that I can move a lot of my C code from stulibc and put it into  Stulibcpp

I was thinking that I'd probably spend a lot of time on this but I found resources on the net that showed me how it's done and I just improvised the rest. This one resource was about integrating leap motion(I remember the first time I saw one of these was when my colleagues at AppDNA brought one in) with Unity/UnReal.

One thing I did have to tweak was in Unix you can get the address of a function in a shared library with dlsym() like this as shown here:

# define GETFUNC(funchandle, lib, funcName) (*(void**)(&funchandle) = dlsym(lib, funcName))

// and call it like this:

int (*sub)(int, int);

GETFUNC(sub, "stucpp.so", "sub");

sub(10,5)

But this wasn't working for me, it was always complaining about how it cannot implicitly convert a void* to something else. This made sense as you can't do that in C++, though existing code online seemed to be using it. Anyway, to solve the problem I found this online which suggested doing this, which works great: 

int (*sub)(int, int);
reinterpret_cast<void*&>(sub) = dlsym(lib, "sub");
std::cout << sub(10,5) << std::endl;

I also re-used some of the ideas online to write C and C++ specific tests to ensure that the library would be able to be called correctly. For example, I've got a test that calls C-Style GetProcAddress() in windows and one test that merely links to the library and uses a compiled library class.

I'm relatively happy with that progress - now what needs to be done is to finish writing the bulk of the library.

As I explained in Kim Kardashians butt and other stuff, I'd like to do something similar to my C library but this time I'll be adding more Math functions, mostly around vector and matrix manipulations. I'll probably also throw in some Geometry and maybe even some collision detection stuff later one (Diff Calculus) which hopefully will allow me to link this stuff into any new C/C++ app.

Only one more day left of my holiday and this is about as far as I'd wanted to be! 

I think the initial plan will be to slowly port over some of the data structures in my C library or re-implement them with STL and then start putting together some easy file handling interfaces for dealing with saving config files etc as well as saving records to files etc.(in a generic fashion that is). 

I've limited my C++ to ISO 1998 so until I need things like lambdas and auto, I'll leave it as such. 

In other news, I met up with an old AppDNA/Citrix colleague and we compared notes around our existing projects.

One take away was that I should invest in learning google charts and Bootstrap material design for my front-end layout, particularly when it comes to visualizations.

I was actually pleasantly surprised how appealing some of his charts on his front end were. He'd done a great job of quickly developing a .Net MVC/Razor app that calculated financial metrics around companies' financial statements. It's a bit of fresh air really because when I try to develop a nice looking chart like this Running, Coffee, Chocolate and Pizza - it takes forever to be productive...a bit like C/C++!

I'd like to incorporate a few more visualizations in my Angular front end for finance tracker. Anyway, that's another story, which is further down on the list...

Now lets get cracking!

To infinity...and beyond!

 

 

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