BOOK REVIEW – EFFECTIVE PROGRAMMING MORE THAN WRITING CODE BY JEFF ATWOOD

coverofJeffAtwood

Jeff Atwood is somewhat of a celebrity in software development and programming circles, he along with Joel Spolsky are the founders of StackOverflow.com, a question and answer website all programmers and software engineers must be familiar with.

The book, initially published in 2012, is constructed from posts on Jeff Atwood’s blog, CodingHorror.com. The posts are sorted into different sections based on an overall theme, for example, hiring programmers, workspace setup, code testing, etc. Thus, making for a coherent and flowing reading experience.  This is where the value of this book opposed to reading all these posts on his blog for free comes in, a more convenient reading experience.

Effective Programming More than Writing Code is one of the best and one of my favorite books on the topic of software development, it is a must-read for anyone who is a professional software developer, and personally, I have read through it numerous times over the years. The book is an easy, quick read and a vast amount of great ideas and concepts are communicated that will keep you thinking long after you have stopped reading.

There are however a few problems with this book, firstly in the print version there are quite a few printing errors where the top line of the page is cut off, this is present on 2 pages in my copy. This is not a problem in the electronic version available on the Kindle store.

Secondly, as this book was constructed from blog posts, numerous hyperlinks and embedded videos are present, which obviously do not work in a printed format. This is, however, more of an annoyance than a problem as this does not hinder the concept being communicated.

Even given these problems, I would still highly recommend this book. So, if you work in or are interested in software development, pick it up.

BOOK REVIEW – EFFECTIVE PROGRAMMING MORE THAN WRITING CODE BY JEFF ATWOOD

REVIEW – Phanteks Halos Digital RGB Frame

The Phanteks Halos Digital RGB Frame is an ingenious solution for adding RGB to any non-RGB fans. This is especially useful if you have existing high-performance fans and do not want to pay a very expensive fee just to replace them with an RGB equivalent.

The Halos is available for 120mm and 140mm fans and we will be looking at the 120mm model here.

It is worth noting that the Halos can be used with fans of any colour, the colours do however show best on lighter colour fans.

The Halos frames have the required connections to be daisy chained and multiple Halos frames can thus be powered and controlled with a single controller connection. The Halos Digital requires a 3-pin digital RGB connection to be connected to your system and it is worth noting that certain motherboards do have onboard digital RGB controllers, as is the case with my motherboard the MSI MEG Z390 Godlike which has two digital RGB connectors JRGBRAINBOW1 and JRGBRAINBOW2,  the HALOS does however not come with the required cable to use this kind of connections and this must be ordered separately. Alternatively, a Phanteks Digital RGB controller can be used in the event your motherboard lacks digital RGB functionality.

The Halos is compatible with both Asus Aura and MSI Mystic Light for RGB Synchronization across your entire system.  In my case, I use MSI Mystic Light and it works perfectly.

I used the Halos Frames on the Corsair ML120 fans on my Corsair H150i All-in-One Watercooler and the end result looked great, the fans blend in very nicely with the Corsair LL140 RGB fans I use for case cooling.

Here is a before photo:

IMG_7718

And here is a photo with the Halos installed:

IMG_7773

Phanteks Halos Digital RGB Frame is a relatively inexpensive way of adding great looking RGB effect to non-RGB fans, it is a great product and comes recommended if you are looking to add a bit of colour to your system without breaking the bank.

REVIEW – Phanteks Halos Digital RGB Frame

3D PRINTING REVIEW – CCTREE PLA AND WOOD FILAMENT

IMG_7750

CCTREE PLA Filament

The CCTree PLA filament we will be looking at today is the 1.75mm diameter variety, but it is also available in 3mm. The filament is available in a wide variety of colors, around 25 colors, and is sold in 1kg spools.

The experience with this filament has been great, producing very good quality prints with a great level of detail and only minimal 3D printed object cleanup required after printing.

 During printing the filament has minimal stringing, if any at all, and I have never had a print fail because of a filament issue using CCTREE PLA filament.

CCTREE PLA filament is a very easy filament to print with and offers great value being one of the less expensive filaments available. I would highly recommend this filament for novices and experienced 3D print enthusiasts alike.

CCTREE Wood Filament

IMG_7740

CCTREE Wood filament is a 1.75mm diameter filament consisting of a mixture of PLA plastic and wood fibers that produces prints with a slightly rough wood-like finish, similar to Medium Density Fiberboard (MDF), that can be sanded and stained in a similar way to wood.

IMG_7744

This filament is slightly more challenging to print with and is more prone to stringing (due to the wood fibers) and larger flat surfaces are prone to slight bowing as the print cools down.

It is still however possible to produce prints with a great level of detail, it just requires an extra bit of cleanup and finishing.

IMG_7763

During printing, this filament gives off a subtle wood-like odor.

The CCTREE Wood filament is more expensive than their PLA filament, costing approximately double the price.

This filament is great for prints that benefit from a more natural wood-like finish (for example a baby Groot) and the end result looks fantastic. This is a great filament but is probably not the best choice for a 3D printing newbie to get started with.

 

CCTree filaments offer great quality and value for money, the filaments are available in a wide variety of colors and options and they come highly recommended.

3D PRINTING REVIEW – CCTREE PLA AND WOOD FILAMENT

REVIEW – CORSAIR K70 MK2 MECHANICAL GAMING KEYBOARD

IMG_7518

The K70 MK2 is a mechanical gaming keyboard available with Cherry MX speed, brown, red, blue and silent switches. The one reviewed here is the blue switch configuration as I prefer a clicky tactile keyboard.

The keyboard comes with a detachable wrist rest which is very comfortable.

Some additional features of the K70 MK2 is an aluminium frame, fully configurable RGB, dedicated media and volume controls, additional key caps for FPS and MOBA games (which are colored and textured differently from the normal key caps), USB pass-through and 100% anti-ghosting full key roll-over.

Due to the aluminium frame the keyboard is very rigid and volume roller is one of the most useful features I have ever used on a keyboard.

The Corsair K70 has a reputation as one of the best keyboards available and it is well deserved, it is the best keyboard I have ever used.

REVIEW – CORSAIR K70 MK2 MECHANICAL GAMING KEYBOARD

REVIEW – RAZER KIYO WEBCAM

IMG_6301

The Razer Kiyo is a USB webcam that retails for around $100. It is capable of 720p video at 60fps and 1080p at 30fps.

The main differentiating feature of the Razer Kiyo compared to other webcams is that the Kiyo has an integrated LED light ring (with adjustable brightness) and this makes a huge difference to the image quality captured by the webcam.

As with most Razer products it is configured and controlled with Razer Synapse, where things like brightness, contrast, saturation, white balance and auto\manual focus can be configured.

The Razer Kiyo has a strong streaming focus and is fully compatible with Open Broadcast Software (OBS) and Xsplit.

The Kiyo does however have two shortcomings, firstly the auto focus is not well implemented, and continuously refocuses for even the slightest movement, resulting in the auto focus being pretty much unusable. The second shortcoming is that the built-in microphone is not great, this is however a very common problem with webcams.

Even with these shortfalls the Razer Kiyo is a compact and convenient solution compared to alternative camera\lighting solutions. It is a good all in one solution as long as you use manual focus and an external microphone.

REVIEW – RAZER KIYO WEBCAM

REVIEW – CORSAIR HS70 WIRELESS GAMING HEADSET

The Corsair HS70 is a wireless headset which features virtual 7.1 surround sound using 50mm drivers in a closed back design. The headset connects to your PC using an included USB dongle and utilises a 2.4GHz low latency wireless connection.

Additional features of the headset include on ear controls, a detachable microphone and an advertised battery life of 16 hours (although my experience was closer to 12 hours), all of which makes the HS70 a very alluring offer at a retail, price of approximately $100.

The headset is extremely comfortable and the build quality is good. Sound quality is also exceptionally good for a wireless headset, and this is from someone who normally avoids wireless headsets and uses professional grade wired studio headphones that cost about 6 times more than the HS70. The microphone quality is also good and delivers crisp and clear quality sound.

In closing, the Corsair HS70 is a great wireless headset at a great price.

REVIEW – CORSAIR HS70 WIRELESS GAMING HEADSET

The Dark Art of DevOps (and how Azure DevOps fits in)

Here is a Post n wrote for my Companies blog, originally posted here.

DevOps has become a hot topic in organisations over the past year or so. However, there seems to be a lot of confusion regarding what DevOps actually entails. So, what is DevOps?

If you asked a more sales-inclined individual, you may get a response along the lines of: DevOps digitally transforms an organisation’s development department by bridging the gap between development and operations, resulting in higher quality solutions, fewer bugs, quicker delivery times, shorter recovery times, and controlling scope creep.”

This sounds amazing! However, it does not answer the question as to what DevOps really is. So, I will be taking a different approach to delve into what DevOps entails.

DevOps is based on the principal of continuous improvements in the Software Development Lifecycle, and consists of principles, practices and tools that allow an organisation’s development department to deliver projects at a high velocity, while maintaining quality and continuously improving the process associated with delivery. This is where Azure DevOps comes in. Azure DevOps is a selection of tools that facilitate the implementation of DevOps within an organisation.

DevOps consists of five main pillars (which are supported by processes, practices and tools), namely:

1. Plan and Track

This involves planning what development work needs to be completed and tracking progress against that. The tool Azure DevOps offers here is Azure Boards.

2. Develop

This is where your software developers write code and store that code. In the Azure DevOps ecosystem, the tools that used here are Visual Studio, Visual Studio Code and Azure Repos as a source code repository.

3. Build and Test

Automated builds and testing are a very important part of DevOps, as this automation frees up valuable resource time to focus on more imperative tasks. Automated builds can be set up to trigger new builds (compiling source code into executable programs) based on certain criteria (for example, “once a day”), and automated tests can then be run to verify that everything is working as expected without the intervention of a person.  Azure Pipelines and Azure Test Plans are the tools utilized here.

4. Deploy

The next step is Automated Deploy – first to a UAT\Test environment and eventually to production. Doing deploys in this manner prevents unwanted changes being accidentally deployed from a developer’s machine and introduces additional controls to only deploy what is wanted and limiting the introduction of problems.  By automating the deployment of systems deployment times are also drastically reduced and thus system down time is reduced. Azure Release Management is the Azure DevOps tool used to automate deployments.

5. Monitor and Operate

After a system has been deployed, it needs to be monitored and operational activities need to be performed to ensure it is up and running and running optimally. Azure Monitor and Application Insights are the tools available in the Azure DevOps tool-belt for this.

With the tools provided by Microsoft Azure DevOps, as well as industry tried and tested principles, the above five pillars can dramatically improve the operations and output of a development department while driving down operational costs.

Now that we understand what DevOps is and how it works, what outcomes can we expect from mastering the 5 pillars?

  • Better quality solutions
  • Quicker delivery times
  • Fewer bugs
  • Shorter recovery times to resolve bugs
  • Prevents uncontrolled scope creep
  • Improved collaboration and agility in teams
  • Better cross-skilling in teams
  • More automation
The Dark Art of DevOps (and how Azure DevOps fits in)