Date  Topic  Description
2024/04/22 C# Learning LINQ - attempting to pull data out of the db
2024/04/21 Entity Framework Improving, bug fixing and extending schema
2024/04/20 Entity Framework Initial schema created
2024/04/19 Entity Framework Started designing - and creating - a schema to match my Race project - utilizing both inheritance and composition
2024/04/18 Entity Framework Also set up a basic Table Per Type structure for inheritance.
2024/04/18 Entity Framework Set up a basic Table Per Hierarchy structure for inheritance.
2024/04/17 Entity Framework looked at 'code first from db'. I also spent some time discussing db design re. how to reflect inheritance and composition
2024/04/16 Entity Framework Code First
2024/04/15 Entity Framework Code First
2024/04/14 Entity Framework Code First
2024/04/13 Entity Framework Code First
2024/04/12 C# Race - fixed a few bugs that I noticed over the last couple of days
2024/04/10 C# LINQ
2024/04/09 C# LINQ
2024/04/08 C# LINQ
2024/04/07 C# Lambda expressions
2024/04/06 C# Race - Implemented random logic to change vehicle speed per lap (changes results wildy)
2024/04/04 C# Race - Composition
2024/04/03 C# Race - Inheritance
2024/04/02 C# Composition
2024/04/01 C# Inheritance
2024/03/31 C# Set up Azure Devops Boards
2024/03/27 C# Implemented a significant change to the way I handle vehicles in my example based on the guidance I received from Stack Overflow
2024/03/26 C# Messed about with some examples based on the feedback & guidance from Stack Overflow. Started implementing the changes in my example.
2024/03/25 C# Created a Axure Dev Ops board for managing the project.
2024/03/25 C# Joined Stack Overflow and asked for help with inheritance.
2024/03/24 C# Added ability to store and show all race results for the 'season'
2024/03/22 C# Added ability to create race results and show them when a race is run
2024/03/20 C# Removed 'list manager'
2024/03/19 C# Implemented managers for various lists based on class, e.g. 'vehicle manager'
2024/03/18 C# Implemented 'list manager'
2024/03/17 C# Continuing working on my Race project
2024/03/16 C# Continuing working on my Race project.. Today was a real struggle as I was so tired from working on the project into the early hours of this morning that I couldn't really get my head engaged. I persevered. Previously, I was using several static members inside various classes to store list of objects.. I have now removed those, and instead created a 'ListManager' class, and store my objects in those lists.
2024/03/15 Questions I'm aware that I'm more than likely doing this totally wrong, but I have a parent > child relationship established like (vehicle)>(car, truck, bike) I want to create Iengine and implement it in each of the car & truck classes, but then how do I call the methods of the children if I am dealing with the parent? e.g. foreach (Vehicle vehicle in listOfVehicles) { if(vehicle.type=="car") { callmethod(); } }
2024/03/15 Questions Nesting methods - clearly I'm doing this wrong because every time I try to VS puts the tab back in the default position?
2024/03/15 Questions What do my warnings mean?
2024/03/15 Questions How can I pass the team name into the results - i.e. without hardcoding a vehicle object to a specific team, how do I pass the team name alongside the list of vehicle objects?
2024/03/15 C# Continuing working on my Race project
2024/03/14 Questions I am able to calculate the result times for each vehicle in the race, however I want to add that data to the same list that the vehicles are in (so that I can order the results, calculate the results lap by lap and iterate them etc.) How do I do this, though? ANSWERED
2024/03/13 Questions How do I step through code / debug? E.g. I want to be able to see the values variables hold..
2024/03/12 Questions Interfaces - Need to revisit the concept as (for example) I don't understand why / how you could force IRaceControl => 'start your engines' when some types of vehicle don't have engines, yet 'stop' is something that all vehicles can do, and something that a race controller will want to do.
2024/03/12 Questions Why does my program f up (not recognize the Menu class) when I try to tidy my files into folders?
2024/03/12 Questions I need help with my menu - it is currently based on an enum, and hard coded switch statement. For example, if a new menu option is added then I have to change each case within the switch statement, the logic isn't dynamic with the menu.
2024/03/12 Questions When using inheritance (vehicle as parent => car, bike, lorry as child) is there an easier way to instantiate the child? At the moment I am calling the parent (base) constructor as well as the object's constructor and this seems like a lot of duplication considering I have to pass EVERY property! Why do I have to initialize every field? For example, I am always going to want an object of car class to be "type" = "car", so why do I have to put that in the constructor, why does it have to be initialized, why can't it just BE 'car'?
2024/03/12 C# Following another session with Mark he has reinforced that I should NOT be using static classes. I still have a couple of static methods and fields.. but no static classes. I have also implemented some inheritance and polymorphism (including the use of an abstract class, the use of some virtual methods and overriding them).
2024/03/12 C# I have made a significant step-change to CarRace model. I am going to change it's name to 'Race' as I am essentially loosely modelling F1, although there are no drivers in my model, and the vehicles aren't F1 cars, they are a variety of vehicles. I'm hoping to implement all the different learnings that I have made so far on my C# journey, so this model will include inheritance, polymorphism, interfaces, threading, JSON, enums, classes / constructors, GET | SET,
2024/03/08 C# Significant changes made to my CarRace project. It now includes a static menu class, some getters and setters, some static fields, some static methods, smaller methods (although a lot more methods in total). Over the weekend I would like to build in some inheritance / interfaces / Polymorphism
2024/03/08 C# Finished watching C# for beginners (Free Code Camp.org) I watched this rather than followed along as there was an awful lot of repetition that I didn't feel was necessary (don't get me wrong, I'm aware that the more you do something the more you become proficient), and I'm glad I did, because this chap's style give me quite a good summary of 'static' and 'inheritance'. Quite complimentary to the detailed lessons of late.
2024/03/07 C# Started watching C# for beginners (Free Code Camp.org) This is very similar in nature to BroCode rather than Scott Allen, so far more engaging but I'm skipping right to the end OOP stuff.
2024/03/07 C# Completed -Plural Site C# Fundamentals Done - module 10 / 11 (Plural Site C# Fundamentals) Done - module 11 / 11 (Plural Site C# Fundamentals)
2024/03/07 C# Done - module 9 / 11 (Plural Site C# Fundamentals ) This was by far the most difficult module so far. I've found the instructor quite painful at times (although absolutely the most knowledgeable instructor I've had his delivery is so dry and you have to follow along letter for letter - it doesn't promote 'give it a go yourself - ironically, as he does encourage you to try to write your own solutions). This module covered some really big topics (inheritance and polymorphism). Abstract and Virtual were introduced at the same time as Interfaces, and I'm a bit confused about why you would use inheritance over an interface and why even bother with abstract? I've basically just about made it to the end of the course with a product that builds and is exactly (more or less) the same as the software created in the tutorial. I'll take that as a win, but the learning here is to have the courage of my convictions and learn that if I don't get a good 'vibe' early in the material then move onto something else and come back later and try again.
2024/03/04 C# Updated CarRace to incorporate some of the learnings taken from yesterday re. static / non-static classes and methods
2024/03/03 C# Spent the afternoon learning about static / non-static classes and methods from one of my old colleagues
2024/02/29 C# Started - module 9 / 11 (Plural Site C# Fundamentals) Going to be quite slow as it builds on all the other previous modules, so there will be a lot of revision as we go
2024/02/29 C# Done - module 8 / 11 (Plural Site C# Fundamentals ) This was a hard one.. delegates and events. I'm going to have to re-do this I think.
2024/02/26 C# Done - module 7 / 11 (Plural Site C# Fundamentals )
2024/02/26 C# Done - module 6 / 11 (Plural Site C# Fundamentals )
2024/02/25 Website Made some changes to the 'projects' page
2024/02/25 GIT Created repos on Git Hub for several web projects and played with terminal commands
2024/02/25 C# Continued with lesson 6 and made some small tweaks to carRace
2024/02/24 Website Improved the existing functionality to switch between development and live platforms.
2024/02/21 GIT I played about with setting up Visual Studio properly with GitHub so that I could ask my 'network' for some feedback. I initially tried to set one solution to include multiple projects, and have each project as a separate repo, but I was spending far far too long on that so I decided to just keep it simple and go with one solution for each project and have each solution have it's own repo.
2024/02/20 C# Added to the new project. I managed to achieve the 'menu' idea by using an enum for the menu options, and then running a switch statement with a ReadLine to capture the user's intended action. I also used an overloaded 'main' method so as to differentiate between the entry point to the program, and user controlled return to the main menu.
2024/02/19 C# Started an entirely new project to implement some of the things that I learned over the weekend. I like the idea of being able to give the user control over the flow of the program.
2024/02/18 C# Made updates to Workouts project based on the things that I discussed with / questions I asked / things that I learned from Mark.
2024/02/17 C# Spent the day working with my 'mentor' to start ripping my first example apart and refactoring into 'self documenting' code (so rather than have one giant cumbersome Main method, having lots of smaller methods and classes).
2024/02/15 C# Done - module 5 / 11 (Plural Site C# Fundamentals )
2024/02/14 General Added search functionality to PoC
2024/02/14 C# Done - module 4 / 11 (Plural Site C# Fundamentals )
2024/02/13 C# Done - modules 1,2,3 / 11 (Plural Site C# Fundamentals )
2024/02/10 General Building on proof of concept site
2024/02/09 General Building on proof of concept site
2024/02/08 General Building on proof of concept site
2024/02/07 General Building on proof of concept site
2024/02/06 General Building on proof of concept site
2024/02/05 General Building on proof of concept site
2024/02/04 General Building on proof of concept site
2024/02/03 General Building on proof of concept site
2024/02/02 General Building on proof of concept
2024/02/01 General Building on proof of concept site
2024/01/31 General I have been working on a proof of concept website. Done in a day. I'm definitely getting sharper!
2024/01/30 C# Finished my first project! :-)
2024/01/28 C# Building on yesterdays work, I wanted to be able to return something with more elements than a single item (as with list on it's own), so I started to play with multi-dimensional arrays. Until one of my colleagues put me onto using lists to store objects.
2024/01/27 C# I started building my first console project. Essentially I want to return a list of exercises when I enter how much time I have and what difficulty I want. I managed to return a list of random items in a list.
2024/01/26 C# Done 50/50 - multithreading
2024/01/26 C# Done 49/50 - generics
2024/01/25 C# Done 48/50 - enums
2024/01/25 C# Done 47/50 - auto implemented properties
2024/01/25 Website I updated the home page to be more visual and include logos of the different dev elements that I am learning
2024/01/25 C# Done 46/50 - get and set (encapsulation)
2024/01/24 C# Done 45/50 - list of objects
2024/01/24 C# Done 44/50 - lists
2024/01/24 C# Done 43/50 - interfaces
2024/01/24 C# Done 42/50 - polymorphism
2024/01/24 C# Done 41/50 - ToString method
2024/01/23 C# Done 40/50 - method overriding
2024/01/23 C# Done 39/50 - objects as arguments
2024/01/23 Questions I need help understanding inheritance (public) ANSWERED
2024/01/21 C# Done 38/50 - array of objects
2024/01/21 C# Done 37/50 - abstract keyword
2024/01/21 C# Done 36/50 - inheritance
2024/01/21 C# Done 35/50 - overloaded constructors
2024/01/20 Website I have spend a while fixing various things with the website and making sure that all of the projects are working.. the test and live versions of the site are now fully synced. I just need to update my CV again and then I can focus back on learning!
2024/01/18 C# Done 34/50
2024/01/18 Website Changed the site so that any changes in test should transfer seamlessly to live (e.g. addresses are now set to variables that are stored as includes - so as long as the includes aren't overwritten then things will be fine).
2024/01/18 General Spent some time with my dev friend discussing various programming topics
2024/01/18 C# Set up GitHub on my C# solution in Visual Studio
2024/01/16 Questions What to do when finished the C# tutorial - do a different one and keep doing them? Duck book? ANSWERED Look at Entity Framework, but yes, having another C# tutorial on the go will keep up repetition
2024/01/16 C# Done 33/50
2024/01/16 C# Done 32/50
2024/01/16 Questions I'm learning C# (tutorials etc.) but where to go from here? I know we talked about creating a small db (where? local machine or external?) and then do what? Let's set a small project / challenge :-) ANSWERED Connect to db from console, then look into learning Entity Framework
2024/01/16 Questions What are some useful shortcuts / key combinations for Visual Studio?
2024/01/16 Questions I know what the naming convention is for variables (Pascal case) but what are the naming conventions for methods, classes, files, folders, etc.? ANSWERED camelCase for variables PascalCase for Classes, Methods, Files, Folders. UPPERCASE for CONSTANTS
2024/01/16 C# Done 30/50
2024/01/15 Website I have spent FAR FAR FAR TOO LONG trying to debug my web dev code (porting it from the old domain to the new domain). As I have been doing this I am updating the code so that it runs off variables and not fixed locations) - however I ran into all sorts of issues that I assumed were related to what I was doing, but it turns out that the PHP versions have changed in the 10 years that I wrote the initial code, and my test domain was a lot more forgiving than my current (new) domain. Either way, I was able to find and drill down to the cause, which no doubt will be good experience in the long run, it just makes for a very tired and frustrated Phil.. Especially when I have a lot more C# to learn, but the whole point of getting this website was to showcase ALL of my work, so it's just a little like I feel I'm going around in circles.
2024/01/15 C# Done 27/50
2024/01/14 Website I have spent way too much time this afternoon moving over from my 'test' site to my new domain (philhenning.co.uk) the only thing I have to do is update the different project sites
2024/01/13 Website Fixed the bug on the website that caused sorting errors when handing special characters
2024/01/13 C# Done 26/50
2024/01/13 C# Done 25/50 I am half way through the course and I'm LOVING IT!! I'm finding things that I already knew (IF, ELSE IF, ARRAYS, etc.) are going in SO much easier now that I'm revisiting them, and new stuff (like methods) is really fun! I'm so glad that I'm doing this!
2024/01/13 C# Done 24/50
2024/01/13 General Now that I have a new 'live' environment (or at least I will once the website becomes active), I have a much more realistic setup in terms of now I have a testing platform as well as a live platform.
2024/01/13 C# Done 23/50
2024/01/13 C# Done 22/50
2024/01/13 Website In anticipation of moving domains, I have made some updates in SQL to the tables behind these posts.. I have added a new users table to bring it into line.. I.E. only information to this site is stored in this db
2024/01/12 C# done 21/50
2024/01/12 C# Done 20/50
2024/01/12 C# Done 19/50
2024/01/12 General I registered two domains last night (philiphenning@outlook.comhenning.uk and philiphenning@outlook.comhenning.co.uk) I was going to use philhenning.uk as my main site and have the other forward to it, but I think I'm going to use .co.uk instead as it's just more well known at this point in time (so more memorable) and that's all I'm after. No one is going to refuse to offer me a job because I didn't use .uk There are a few more things that I'd like to get working on this site before I move domains. I also looked at getting some business cards that match the website.
2024/01/12 C# Done 18/50 tomorrow will be a couple of exercises and then moving onto new territory for me!
2024/01/11 Questions What is best practice for when working on existing code? For example, I can make small changes to this very page but might not notice that I have undone a fix for a bug until after I have done some other work, which might mean that Ctrl + Z won't help? Fortunately I've managed to catch most things, but as the code is getting more complex I feel like I'm going to start undoing things.. ANSWERED Save and test REGULARLY and Learn GIT
2024/01/11 General I have just registered a new domain - www.philiphenning@outlook.comhenning.uk
2024/01/11 C# I have started to save my C# code in OneNote and have now published that as a publicly available link, so you can see my code by clicking on the "Notes" link on the navigation bar, and then navigating to the appropriate section in the OneNote project.
2024/01/11 Website Adjusted the form submission so that if a new comment is submitted the entire page re-loads, so that you will always be able to see your last comment (basically removes all filters and sorting options)
2024/01/11 Website I adjusted the SQL query for the topics filter at the top of the Blog page so that it only shows topics where there are posts.
2024/01/11 Website I added the ability to check for 'Answered questions', too
2024/01/11 Website I have added a public link to my 'Dev Notes' in OneNote online.
2024/01/11 C# 16/50
2024/01/11 C# 14/50 done
2024/01/11 Website I have updated the homepage.
2024/01/10 C# I have also done another C# lesson (11/50) I have also refined my working / living schedule, so I hope to be able to at least get to 20/50 by the weekend, and hopefully by the end of the weekend be at 30/50.
2024/01/10 Website Included the ability to filter by unanswered questions, so that I can use this blog as a basis for asking questions to the people that help me. I will of course then have to add the keyword 'answered' into the posts once the question has been answered, otherwise the post will still appear in the query. I have also made a few tweaks to the appearance.
2024/01/10 Questions What should I learn? ANSWERED C# .NET Entity Framework Web API see N-Layer diagram
2024/01/10 Questions Where should I put my .text file in the VS project that I'm using to store my C# code? ANSWERED Can add it as a file using 'add' but probably wouldn't for this.
2024/01/09 General I've spoken to my old tutor today.. he gave me some great advice and was an advocate of the Codeacademy route. I am totally exhausted today and I have do no C# work.. I'm going to try and get a (relatively) early night after walking the dog.
2024/01/09 General There were a substantial number of bugs introduced by updating the DB. I didn't notice them all at first, but as soon as I fixed 1 I noticed the next, etc. I spent a lot of time doing this, and now I'm exhausted at the expense of doing C# coding etc. I can at least now share this site with potential employers and not feel like it is buggy. However the last bug (hopefully) is dealing with special characters. This might be an easy fix but as I have no knowledge of how to deal with it I am going to have to do some reading.
2024/01/09 Website Fixed bugs introduced by changing the DB
2024/01/09 Website I have updated the DB so that the Topics table and the Comments table are now linked.
2024/01/08 General Rather than use this page to store 'To-Do' items, I am going to use a simple Trello board for backlog management. I have also added a git link.
2024/01/08 Website I have finally managed to tie together the Sorting functionality and the filtering... my god that was hard!! That was about 5 hours of straight coding. A few things to learn from this: - getting distracted by phone calls or dogs is very... DISTRACTING - not eating makes concentrating hard - concentrating hard = headaches - need to drink - need to take walks to clear head and keep dog alive!!
2024/01/08 General Tomorrow I need to speak to Pete, and also reach out to Gav, Whitey and my cousin Simon.
2024/01/08 C# I've just finished 10/50
2024/01/07 C# I have just completed lesson 8/50. I'm tired now.. I've done a lot today.
2024/01/07 Website I have added the ability to filter by topic, BUT filtering by topic and sorting are currently done independently. This is a big fix.. I'm reaching the limit of what I can do on my own. I have managed to add the ability of the drop box to retain the filtered value, and also REMOVE all filters!
2024/01/07 General My next challenge on my website will be to introduce some kind of filtering on the topics so that you can see all the topics relating to the same subject, etc. I made a start on this, but also moved the testing to a separate page.
2024/01/07 C# I have also started saving my code in a text file as the text generated in each lesson is getting longer and longer.. The only reason I have done this is that I don't want to lose code, even though I know it's probably not the best practice?
2024/01/07 C# I have just completed tutorial 7/50 the topics so far have been: Lesson 2 - output Lesson 3 - variables Lesson 4 - constants Lesson 5 - type casting Lesson 6 - user input Lesson 7 - arithmetic operators
2024/01/06 Entity Framework I had a super quick read.. will definitely need to look into this. Not right now, though, I'll carry on with the C# videos for now. Although I am going to see my mate again in the week, and he's the one that advised me to look into it, so it would be cool to be able to talk about it..
2024/01/06 C# I did a bit more - but stopped at the end of lesson 6/50
2024/01/06 Website Done = drop down Topic selector for when adding comments. I used Stack Overflow and found something that would work and chopped it into my code. It's ugly, but it works ;-)
2024/01/06 C# I've been following along to the YouTube video my friend recommended. It's actually pretty nice as it is done in Visual Studio and it is pretty easy to follow along with. I've been writing my code so that I can see what I did in each or the lessons, but I think I'm going to look at how I can share the project with other people.. GIT possibly?
2024/01/05 General I'm going to visit a good friend this morning (who happens to be a developer). Hopefully he will give me some encouragement, guidance and support.
2024/01/05 Website Done - the ability to sort by date (desc or asc) or topic. It took me a few hours, but it was really good! I feel like I knew what I was doing most of the time. I played around a lot and figured things out myself.. really positive! I also included a visual element so that you know which column it is sorted by and whether it is sorted ascending or descending. There are probably much simpler ways of doing this, but I did this without following any tutorials.. I just had to read and understand existing code. Granted I did use Google to check a few things, but only how to do things like '$_GET[]'
2024/01/03 General Last night I started my coding journey with a chat with a good friend about some potential directions to take. He pointed me towards wwww.codeacademy.com and he also sent me a YouTube link to a video of a "learning C#" tutorial. I joined codeacademy, and I also started watching the video. However, whilst doing those things, I happened to notice a couple of errors on the SnowCompare site. Fundamental errors - none of the "Admin" sections were working (I assume this will also be the case with SnowCompareShop, too - I shall investigate further). The errors were due to the code being a complete mess. Probably as a result of years of copy / pasting, so I have had to refactor a lot of code, which has been difficult given I am not trying to pick PHP back up. However, re-structuring / re-organising the code was definitely a good thing, and no doubt will be good experience for future coding. I also noticed a difference between coding / naming conventions between SnowCompare and SnowCompareShop. As SnowCompare was the parent project of SnowCompareShop, it naturally came first and thus the Db tables and things like sessions were not created with a prefix e.g. "project_1_name".. however I noticed that I started doing that when I started the second project, and I did this because I was re-using a lot of the same code, and doing so was causing a lot of issues as I was accidentally referencing the wrong code. That was definitely the right thing to do, but it now means that the original code is a bit more delicate and if I copy anything from new projects to the original project I have to remember to remove any prefix entirely. I have to regress to bad habits when working on the old code.
2024/01/02 General I have spent the last week building this site to showcase my various projects.

built with Sublime Text, Filezilla, HTML, CSS, PHP - all coded by hand | @ | π