Our projects
C# Chess Game and Engine
In the last year or so I have gotten very into chess, not that I am any good, but the game itself fascinates me, the fact that it has passed the test of time on countless occassions, with only minor changes in rules in the last 1000 years or so is unheard of elsewhere.
What is more fascinating are chess engines, chess engines have been better than humans since Deep Blue bet Gary Kasparov in 1997 and they have destroyed any player in their way since, its one of the few areas of both professional sport and recreational fun where we work hand in hand with AI, without the naysayers worrying about the AI taking their job or taking over the world.
I like Chess.com a lot, the interface, the evalution and game review feature, and the puzzles, so I decided to make my own local chess game with my own engine and evaluatiuon function, this has proved to be a very worthwhile project, and has made me think of lots of ways I would change chess.com if I had the chance, changes I can implement in my own UI, which is exciting
I have never really dabbled with any sort of AI since this project, and calling this AI is probably a bit much, since its basically an Minimax/Negamax search with some optomised alpha-beta pruning, but AI sounds so much better than 'Expert in Game Theory'
I learned C# specifically for this project, as I initially thought about making this in Unity, but decided against it, I want to deploy a quick prototype engine in C# but I will most likely follow Stockfish's lead and develop the finalised engine in C++, without the neural networks.
Some interesting challenges ive come across here that really stumped me for a while, like how to optimise the rule around how you would check for three fold repetition, or how we check if moving your own piece puts your own king in check, or checking if castling or en Passant has happened/can happen for the FEN notation, all very interesting stuff that I think has given me more of an appreciation for the game.
One thing I will say is that since i started working on a project in Java (midnight motivation to learn another language) Ive realised how much more I like Java compared to C#, and how much I like the UI libraries and packages in Java, so I think im going to recreate this in Java, but still have the engine written in C++,mainly because using Avalonia UI is a bit alien to me, and C# isn't an Apple-friendly language, so Java might be the best option for ease of use.
All of this code is on My Github, I would love to hear some feedback about this, such as comment quality and frequency, variable naming conventions, everything, anything constructive is appreciated
To-Do list in Java
This projects not particularly impressive, but its something every budding programmer should do.
I started off with just a command line based project, one that deletes the lists everytime you run the program again
Then I implemented a sqlite database so that it would at least remember me, and I could actually use it for some day to day tracking of tasks
Like I mentioned above, I really like the implementation of GUI in Java, so I will definitnely expand this to be some sort of working console application for myself, as I think since ive already gotten the Database operations out of the way, the cosmetic stuff is the easy part.
I think I would eventually like to migrate this online or onto the cloud, the sqlite database is obviously very small and non-taxing on my laptop, which is the whole purpose of the sqlite database, but it would be much better exposure to host this db somewhere else and having to ssh into it, or implement network dependancies into my project, like more real world examples
Java Console Typing Test
No update on this project yet, coming soon!
Data Analysis
One thing I really love and find myself naturally quite good at is data analytics, I completed the Google Data Analytics Professional Certificate mainly just to have that accreditation, because I truly feel that a good data analyst possess a number of skills naturally
Communication and collaboration
Mathemtical/Logical pre-disposition
Innate ability to spot and exploit patterns
Natural curiosity and ability to ask Insightful questions
The hardest part about any data analysis project done on your own accord, is by finding a topic that interests you, that you want to find out something specific for.
These come only once in a while, as most things you want to know are online or can be asked by one of the man LLM's out there today, so trawling through Kaggle Datasets takes up most of this time for me, as I'm sure it does anyone in my position.
Not all datasets are created equal though, hence not all projects have value, but I do believe that the ability to create something visually appealing and striking form a dataset that may not be considered 'important' is sometimes an even greater skill, and places like reddits r/dataisbeautiful is such a great source of community for just visually striking and engaging data analysis content, even when they don't have inherit value.
One visualisation I made (currently on r/dataisbeautiful) was the number of words spoken per episode, by each member of House M.D. Main cast, this was justsomething I did when I had an hour spare in the evening one of the days, thanks to a dataset I found on Kaggle
This datset contained a couple of spreadsheets, where column A was the charcters name, the column B was their line of dialogue (e.g. House: "Run-roh" was one row)
To create the sparkline graph seen to your right, I had to toy around with the data before committing to one method, which led to some very odd first round visualisations, but I eventually ended up with somethign moderately cool looking In my opinion.
Some issues I ran into with this dataset, were that there were no episode markers in the spreadsheets, they were split up by season but not episode, so I divided the total lines of dialogue by the number of episodes to get a rough estimate at where each episode ended, so the graph could be a little more uniform, as it looked a little 'janky' when split up by season.
Another is that when I was gathering all of the words said by each character, I stored them in a sorted dictionary, and as I was looking through it I noticed that a 'character' called House (whining) had a couple words to its name, this then made me implement regular expression into my sorting process, because clearly the character often had some emotion or situation or action attributed to their name in the script at times, so I needed to look for any mention of a characters name in Column A to properly sort the number of words spoken.
This created its own issues however, as there were times where the character could be "House, looking at Foreman" which mean that both House and Foreman got attributed that line of dialogue, which isnt correct, although i figured the effect was so negligible it would be fine to continue.
House MD Transcripts
Australian Construction Tickets
Since we moved to Sydney in Febm 2024, we have found it difficult to find consistent work that we enjoy, Australia is an amazing country but the amount of people that migrate to here every year means jobs are harder to come by with all the competition, so I have been working on constructions sites since May, and I am looking into working in the mines for a few months to make some money and also to complete regional work and qualify for our next visa
One common thought that Ive noticed on the support pages on facebook such as Irish Around Sydney and also from other irish people in a similar situation, is what tickets they should be doing to greater their chances of consistent, well paying work in the constrction sector in Sydney.
This posed an intersting question to me, your 'White Card' here is the basic ticket you need to just be on site in Australia, it takes a couple hours to complete and costs about 120 AUD, which sounds great but it really only qualifies you for basic labouring jobs, which can pay well sometimes, but you will often see a standard hourly rate of 25-33 AUD/hr, and anyone living in Sydney will know that this is not enough money, especially if you are only working on a casual basis with no overtime.
So what ticket is the best to get, after your white card, for you to make the most amount of money, with the least amount of time to complete, and also is up there with some of the 'easier' jobs?
That is what im trying to figure out now, the ticket with the best 'bang for your buck', but solely from the purpose of being a casual worker, or someone who is only working in construction until they find something else, becuase for full time construction workers it makes the most sense to get as many tickets as possible and just go an work in the mines.
But what about the layman? The Finance professional just waiting for the contracts market to open up again after the end of the financial year? Well thats who I wanted to try and help.
This project is going to take a while, as I am currently trying to implement a web scraping script that checks all major job sites such as indeed or Seek against the tickets mentioned in my script, and for their hourly rate/salary, some jobsites have easily accessible API's which are great, but others require web scraping, and most large websites now have heavily guarded anti-robot policies, so trying to obtain useful information embedded in the websites HTML can prove trying.
I have implemented ChatGPT to help me with his, its web scraping abilities are much better than anything I can program, so thanks to the Open AI API and custom bots/gpts, I hope to have some more meaningful insights into this soon.
Right now, only one of the jobsites API's have been effective in gathering information for me, none of the job boards seen in my script have been successful in pulling salary and job data, so I will continue to build a custom gpt bot that will help me with this portion of the project
Although this part of the project is going to take a while to complete, so I have no immediate rush for this, Im sure im going to have to perform some sort of K-means clustering analysis, decision tree analysis and maybe some sensitivity analysis also to find the answers im looking for, its been a while since i did actual statistics so I will most likely go and do a small course online or follow a good tutorial on yourtube before I tackle this part of the projects