Welcome to the Eternal Developments home page!
This is an experimental page for me to host various programmer musings, and try out various web technologies.
Thank you for visiting!
Notes 10th July 2024
-
- Refreshed my utilities to the latest assemblies.
- I also extended UTF16MustDIE to kill off ANSI (the unicode file type) files too.
- Some points to note:
- The unicode file type is only available on unicode enabled servers.
- All text files (text, unicode, utf16, utf8) and stored as UTF-8 on the server.
- If the server is unicode enabled, it will translate to the selected character encoding for the connection on sync.
- If the codepage is UTF-8 - this will be UTF-8. So UTF16MustDIE just changes the file type to utf8.
- If the codepage is not UTF-8, I use UTFUnknown to detect the encoding, read in the file with that encoding, save as utf8, and change the file type to utf8.
- I can't see the point of enabling unicode on the server. Someone please enlighten me.
- UTF-8 is the one true encoding that should be used everywhere! Here's the t-shirt
- What I'm postulating is the usefulness of an ASCII file type (only characters 0x00 to 0x7f) for code. This would remove any confusion about encoding types. ASCII is also a valid UTF-8 file.
Notes 2nd June 2024
-
- Epic released their coding standard, and it's pretty spot on. I agree with almost all its points and Epic's reasoning behind them.
- You can find it here.
- The main issue I have with it is some of the Orwellian language policing mandate. English is a very expressive language and limiting its usage in case someone somewhere may get offended in the future, or someone using a term that has an alternate meaning in a different context is a very slippery slope to go down. Don't use swear words or slurs, but feel free to use the full English language.
Notes 17th May 2024
-
- Enjoying my time at Idera! Learning lots of new things, and looking forward to all the new things coming down the pike!
- I gave up updating all the packages and just made a new website using Net8 Visual Studio 2022 template. Seems to be simpler and quicker.
Notes 20th January 2024
-
- Drinking from the fire hose! Experimenting with the Wiki, the ticketing system, the security checking, and Travis-CI.
- Looking into updating all the packages here (mostly done) over the weekend.
Notes 15th January 2024
-
- I have a new job! Chief Architect for Travis-CI and Assembla for Idera, Inc.
- I'm still drinking for the fire-hose at the moment, but becoming familiar with the process, company lingo, and who does what. This is a test case of adding this website to Assembla Perforce hosting. Next up is trying the integrated ticketing and wiki systems.
Notes 28th October 2023
-
- A deep dive into how to decode the BC6H & BC7 texture compression formats.
- Created here!
Notes 29th September 2023
-
- Using Entity Framework and refreshing my Linq skills.
- Created here!
Notes 5th September 2023
-
- Thoughts on writing a game engine in the modern era.
- Added page on a rendering subsystem.
- Created here!
Notes 24th August 2023
-
- Thoughts on writing a game engine in the modern era.
- Added page on an audio subsystem.
- Created here!
Notes 11th August 2023
-
- Thoughts on writing a game engine in the modern era.
- Some musings on my design thoughts for writing a modern day game engine.
- Created here!
Notes 14th July 2023
-
- Thoughts on programming.
- Some thoughts on the direction of C++, development problems, and pet peeves.
- Updated here!
Notes 13th July 2023
-
News
- Concurrents and Primal Space Systems are still ongoing concerns, but we're currently having trouble getting the money men to sign on the dotted line. In the meantime, the mortgage needs to be paid, so hit me up if you think my talents would be useful as a contractor or a consultant.
- Setting up Perforce with Unreal Engine.
- I'm starting to delve into Unreal Engine 5, so the first step is to trim the base install size to something more manageable.
- Updated here!
- Ultra nerdy t-shirts for sale!
The 'Must Have' Applications for any Developer - time for an update!
- Visual Studio 2022 Community - the one IDE to rule them all! Now with a dark schema so I don't have to change all the colours.
- ReSharper C++ for both C++ and C# to enhance the Visual Studio user experience.
- Perforce - the best source control out there. It now free for up to 20 users!
- 7-zip - the best archiver in existence. Great C++ and C# API support.
- OpenVPN - for creating a secure VPN to your place of work, all native with no need for any Java.
- LinqPad - a great tool for experimenting with C#, writing simple scripts, testing Linq statements, or just tweaking a format spec.
- NotePad++ - for when Notepad just doesn't cut it and Visual Studio is overkill.
- Beyond Compare 4 - an excellent diffing and merge tool. It also works on folders, images, and audio files.
- RapidEE - Rapid Environment Editor - a simple tool to update, manage, and validate your environment variables.
- Paint.NET - Photoshop is too expensive for my needs. Paint.NET suits my use cases perfectly.
- WinSCP - for uploading to Linux machines. Comes with Putty for when a command line is needed.
- Chrome - The fastest and most reliable browser. Internet Explorer is more tightly integrated into Visual Studio, so it still has its uses.
- Handbrake - for converting all my videos into more manageable formats.
- Lastpass - a utility to generate and store secure passwords.
Notes 26th April 2023
-
- Setting up Perforce with UE4.
- I realize I took too much of a quick and dirty approach when reducing the footprint. This has been worked on and is now much more explicit and simpler.
- Updated here!
Notes 11th March 2023
-
The Eternal Coding Standard
- Updated here!
- Added a section on lambdas.
- Added a section on memory allocators.
Notes 12th September 2022
-
SourceServerIndexer
- A utility to source index pdb files with a simpler setup and no need for Perl.
- Detailed description of SourceServerIndexer.
- Eternal GitHub repository
- Setting up Perforce with UE4.
- Added here!
Notes 26th August 2022
-
UTF16MustDIE
- A utility to fix up Perforce's poor handling of UTF-16 files.
- Detailed description of UTF16MustDIE with background articles.
- Eternal GitHub repository
Notes 4th April 2021
-
The Eternal Coding Standard
Updated here!- Added a section on parameter passing.
- Added a section on C++ versions.
- Pass by value vs. pass be reference.
-
Coming soon
- Lambda captures.
Notes 27th March 2021
- Updated to .NET4.8 to hopefully address the TLS deprecation
-
The Eternal Coding Standard
Updated here!- Added a section on multithreading.
- Added a section on time storage.
- Converted some English spelling to American.
-
Coming soon
- Lambda captures.
- C++ version to use.
- Pass by value vs. pass be reference.
- std transforms.
Notes March 2019
- Unfortunately, this update was lost to the ether due to IT issues. If you're looking for my how to make a fan powered Pinewood Derby car you're out of luck.
Notes 21st May 2017
- The site is now secure!
-
The Eternal Coding Standard
Updated here!- The Codeless Code.
- Multiple assignments.
- Location of comments.
- Unit Tests.
Notes 8th September 2015
- I have a new job - Chief Technical Director at Primal Space Systems, Inc.. I'm very excited for the new and exciting technical challenges this brings!
Notes 21st June 2015
- Happy Summer Solstice!
-
The Eternal Coding Standard
Updated here!- More tips for variable naming and scoping.
- Use of nullptr.
- Use initialiser lists.
- Code in asserts.
- Bad error message example.
- Formatting tools.
- Other coding standards.
Notes 14th March 2015
- Happy Pi Day!
-
The Eternal Coding Standard
Updated here!- Using a this of NULL.
- Someone else's coding standard for comparison.
- Don't use symlinks.
- Class and struct forward declarations.
Notes 1st February 2015
-
The Eternal Coding Standard
Updated here!- Consistent warnings across multiple toolchains.
- Literal definitions.
- Date formatting.
- Fake scoping.
- Pathing of include directives.
- Default folder.
Notes 6th January 2015
-
C++ and C# - Which is the Fastest?
An article meant to promote a discussion on the relative performance characteristics of C++ vs. C#. CodeProject Article
Notes 30th December 2014
- I hope you all had a good Christmas!
-
The Eternal Coding Standard
Updated here!- Moved some of the standard in to a 'Best Practices' section.
- #pragma once and header file inclusion.
- Project file settings.
- Commented on the use of #using.
- AssemblyResolve usage.
- Using native methods in C#.
- Several clarifications and tweaks.
Notes 19th December 2014
-
The Eternal Coding Standard
Updated here!- Storing data in text files.
- #if vs. #ifdef
- Storing times.
- Inappropriate 'this' usage.
- Several clarifications and tweaks.
Notes 8th December 2014
-
The Eternal Coding Standard
Updated here!
Notes 18th November 2014
-
The Eternal Coding Standard
Every programmer has his own coding style and rules. I've attempted to codify mine here. I'm sure this will change with clarifications and additions over time.
Notes 24th March 2014
The Best Of GDC 2014
- nVidia G-Sync - a very simple concept that delivers much smoother visuals. Typically, a game is synced to 30 frames per second to align with the vertical sync of the TV or monitor as a way to avoid tearing artifacts. This means games that most of the time games run much quicker than 30 fps, but have to allow headroom for the more demanding scenes. G-Sync presents the scene when the GPU is ready, so can update the screen as often as the game can create a scene, and not just locked to 30 fps (or 60 fps). The product demo video shows this in action very well.
- CastAR - glasses that allow viewing of computer generated 3D images on photo reflective paper. Or in a more relatable description, it's the holographic chess game that Chewbacca and C3PO played in Star Wars IV - but you need to wear glasses.
- The Steam Controller - touted as being a true mouse and keyboard replacement for the living room. It definitely felt a lot better than a typical controller, and it did emulate the mouse very well, but I don't think it's a true replacement just yet.
- nVidia Shield - an Android gaming device that can stream in real time to a TV either from the device, or from a PC. This means you can play your high end PC games without having to have a PC in the living room. It also has a harwdare h.264 video encoder and decoder which significantly reduces the latency of video based online gaming.
- Most of all, the best part of GDC is meeting up with many old friends and co-workers I haven't seen in years!
Notes 26th August 2013
The 'Must Have' Applications for any Developer
- Visual Studio 2012 - the one IDE to rule them all! Now with a dark schema so I don't have to change all the colours.
- ReSharper for C# and Visual Assist X for C++ - for enhancing the Visual Studio user experience.
- Perforce - the best source control out there. It now free for up to 20 users! I must admit to being one of the luddites who still prefer P4Win over P4V.
- LinqPad - a great tool for experimenting with C#, writing simple scripts, testing Linq statements, or just tweaking a format spec.
- UltraEdit or NotePad++ - for when Notepad just doesn't cut it and Visual Studio is overkill.
- Beyond Compare 3 - an excellent diffing and merge tool. It also works on folders, images, and audio files.
- RapidEE - Rapid Environment Editor - a simple tool to update, manage, and validate your environment variables.
- Paint.NET - Photoshop is too expensive for my needs. Paint.NET suits my use cases perfectly.
- Greenfish Icon Editor - for creating icons.
- Chrome - The fastest and most reliable browser. Internet Explorer is more tightly integrated into Visual Studio, so it still has its uses.
- Nero Burning ROM - the only optical disc burning software that is ever needed.
- Picasa - for managing all my personal photos.
- Handbrake - for converting all my videos into more manageable formats.
- AnyDVD - for those awkward to transcode optical disks.
- Metropass - a KeePass client to generate and store secure passwords.
- Metroradio - a Pandora client.
Notes 21st August 2013
Article and Source Code on Code Project
- The Source Server indexing from Debugging Tools for Windows has never worked well for me, so I worked out what the Perl was doing and wrote a C# version.
- http://www.codeproject.com/Tips/640298/Source-Indexing-with-Csharp It's not the most exciting piece of code, but a useful exercise in getting an article published and shared with the world!