Friday, 31 July 2020

Medieval Knights and YouTube

Mediaeval history is not a subject that I often discuss here but I am going to make an exception to that rule because I've discovered the best history videos I've ever seen (and that includes those made by TV companies such as the BBC or The History Channel). They are all freely available on YouTube and if you have the slightest interest in how knights managed to go into battle wearing armour, how they trained their horses, what they ate, how their swords were made - in fact, if you have any curiosity about what the Middle Ages were really like (not what they look like in the movies), I have this simple advice: subscribe to the Modern History channel today!

This is just one of their videos...

This channel is the creation of Jason Kingsley, the founder and CEO of the Rebellion computer games company. When not running his business, he lives the life of a mediaeval knight. His channel is one of the great gems of YouTube. He really brings history to life. He goes to an armourer to see how suits of armour were made. He puts the 'shield wall' battle strategy to the test. He has sword fights, he jousts. He doesn't just talk about things - he actually does them. I am blown away by this channel. It deserves to be much better known. 

Monday, 8 June 2020

Camtasia 2020 Review

Camtasia 2020 $249

Camtasia is a long-established and widely-used screen-casting program, available for both Windows and Mac. It lets you record direct from your computer so it’s ideal for making software demos, tutorials and walkthroughs. Here I look at the newly released update, Camtasia 2020, which I tested on Windows 10.

Camtasia is a great tool for making screencasts. It lets you record from the whole screen, from a selected window or from a marked rectangular area. Optionally you can make a simultaneous recording from your webcam and there are even tool to add annotations – boxes, circles or free-form drawings – while you are recording. When you stop recording, your new video clip is added to the Camtasia editor. In the editor you can arrange multiple clips on a stack of tracks. Clips can be cut, moved, slowed down or sped up. Adjacent clips can be smoothly joined using transitions to fade one into the next or create dissolves and folding effects. You can zoom in or out, add annotations and callouts (text and speech bubbles), and apply various types of animation. You can do basic audio editing to change the volume and remove background noise. And, if you recorded your webcam video in front of a coloured backdrop (usually a green screen) you can remove the background colour so you appear ‘in the scene’ that you recorded from the computer screen.

The latest release of Camtasia is less focussed on adding big new features than making the existing features easier to use. For example, whereas previously each new project started as a blank workplace waiting for video to be added, there is now the option of picking a pre-designed template that sets up a project complete with intros, outros, animations and titles. You can also create your own templates and save those for re-use.

These are some of the downloadable templates that can be used when starting a new project

The theme management has been extended too. You can create themes to do things such as set the colours and fonts of annotations and callouts. Camtasia 2020 now lets you preview the effects of those themes in the Callouts panel.

A Favourites panel has been added to the workplace. This lets you group together the tools and effects you use most often. For example, if I find I frequently use the Fade transition but rarely any others, while I use the noise-removal tool but not the other audio tools, I can click a ‘star’ icon in the corner of each tool or effect in order to add it to the Favourites panel. Then when I need to add transitions, audio effects, visual effects and annotations, I can select them from the Favourites panel instead of having to load up half a dozen different panels and scroll down to find the item I need.

The editor has gained a few handy features too. You can now add placeholders to the timeline. These are like ‘empty’ clips. You can move, cut and resize placeholders and then add an actual piece of video by dragging it onto the placeholder. This also makes it easy to replace one clip with another. If, for example, you’ve already finished a project but decide to replace a single clip, you can change the existing clip into a placeholder then add a new clip to it without being forced to re-edit the rest of your project.

Tracks have an optional ‘magnet’ mode. This means that adjacent clips automatically snap to one another, eliminating any gaps. The timeline can be detached so that it can be used in its own floating window. This is particularly useful if you are editing on a multi-monitor system, since you can place the timeline fullscreen in the second monitor.  

Here I'm editing on a dual-monitor PC. I've detached the timeline so that I can use it fullscreen (left) on my 2nd monitor

Track mattes are a new effect that can be enabled for media with ‘transparency’. In effect this removes the transparent areas from an image or video to allow clips beneath it to show through. If you want to share your customised changes to Camtasia – themes, shortcuts, templates and so on – the new package exporting tool simplifies this process by giving you the option of selecting the specific things you want to export. These are saved to a file and can be imported into an installation of Camtasia on another computer.

The official Camtasia 2020 demo

Although Camtasia can be used to edit and produce video recorded from any source (such as digital cameras), its real strength is in recording action from the computer screen. There is little change to the screen-recorder in this release apart from the ability to record up to 60 frames per second (the previous maximum was 30 fps but see HERE for a technical explanation of the actual framerate). It would have been nice to have had the option to record from webcam alone (without also recording from the screen) but this still isn’t possible. If you want to record a plain ‘to camera’ video you have to record the screen as well and then delete the screen-recording in the editor. 

The Recording toolbar

While there are various free templates, themes and resources available for Camtasia, these have to be downloaded, one at a time, from the web site . It seems to me that it would have been better if they were installed by default or, at any rate, downloaded in a single step. To be honest, this would seem to be the perfect project for Camtasia’s new package import/export feature to let the user import all additional content in one go.  Also, bear in mind that while some of these ‘added extras’ are free, others require a subscription. A subscription also gives you access to other resources such as royalty-free video footage,  images, music loops and sound effects. The subscription costs £192.95 a year, so you would probably need to use quite a lot of the available content to make it worthwhile.

Which brings me to the subject of the cost of Camtasia itself. At around £241, it’s not cheap. Bear in mind that many general-purpose video editors (software aimed mainly at editing video recorded from a camera) now include a screen capture tool, including modestly priced software such as Cyberlink PowerDirector (about $99) or even free software such as OBS Studio.

Obviously, if free is what you are looking for, OBS Studio is the way to go. But while it is extremely powerful (and can be used for streaming as well as recording), it’s by no means as easy to use for recording and editing screencasts as Camtasia. If, on the other hand, your main requirement is a general-purposes video editor and only occasionally need to record from the screen, PowerDirector is a good choice. 

But if screen-casting is your main requirement, Camtasia remains my top recommendation. The purchase price is justified if you regularly need to record and edit pro-quality screencasts. Given the relatively modest updates since the previous release of Camtasia, however, I can’t help thinking that the upgrade cost for existing users (£96.48) is a bit steep.

So, in short. Camtasia 2020 is an excellent screen-casting suite. The additions to this new release (as in the last couple of releases – see my reviews of Camtasia 2019 and Camtasia 2018) are useful but not extensive. While it’s not the cheapest software of its type, if you need an easy-to-use, fast and efficient screen-casting tool that lets you get your work done quickly, Camtasia would be a great choice.

Tuesday, 14 April 2020

Which programming language should you learn first?

There is a huge range of programming languages and a beginner may wonder where to start? Java, C, C++, C#, Python, Pascal, Ruby, Go, etc. The choices are overwhelming. In this video I give my thoughts on which languages would be good to start with - and which ones you should avoid!

Monday, 9 March 2020

Wednesday, 4 March 2020

How to Attach Notes to TreeView Branches in Delphi

Here's my latest video on programming a collapsible outliner using Delphi. In this one, I associate text notes with the branches (nodes) of a TreeView.

To watch this series of videos from the start, go to the playlist:

Friday, 28 February 2020

The Little Book Of Delphi Programming (Object Pascal)

I’ve been programming in Delphi for over 25 years. What? Can that really be true? It doesn’t seem that long but Delphi’s just had its 25th birthday so it really must be. It was launched in 1995 and I was using the pre-release beta some months before that. I wrote the review of Delphi for PC Plus Magazine and for more than ten years after that I wrote the monthly Delphi programming columns for the same magazine.

Delphi was the successor to Borland’s hugely successful DOS-based Turbo Pascal and its less successful Windows Pascal (even I can hardly remember that – I think it was called ‘Borland Pascal With Objects’ or something equally unmemorable). At the time, Delphi was, in my view, far the best visual (drag-and-drop, design-and-code) environment for Windows. Its only real competition was Microsoft’s Visual Basic. The trouble is that no matter how visual you make Basic, it’s still Basic. Whereas Delphi used a very nice version of Pascal that had a reasonably modular unit-based system, good Object Orientation and also had low-level features for anyone who might be missing C.

Anyway, Delphi is still going strong. It’s owned by Embarcadero these days and you can get a free copy here:

To celebrate Delphi’s 25th birthday, I’ve just released a book for new or intermediate Delphi programmers. It’s called The Little Book Of Delphi and it’s available in paperback or as a Kindle eBook from Amazon.

The book covers:

  • Fundamentals of Delphi
  • The Object Pascal language 
  • Object Orientation
  • Variables, Types, Constants
  • Operators and Tests
  • for loops and while loops
  • Procedures and Functions 
  • Parameters and Arguments
  • Arrays and Lists
  • String Operations
  • Case Statements
  • User-defined Types
  • Constructors and Methods
  • Creating and Freeing Objects
  • Inheritance and Encapsulation
  • Virtual and Overridden Methods
  • File-handling
  • Text files and Binary files
  • Streaming and Serialization
  • Errors and Exceptions
  • ...and much more

Here are the links:

Amazon (US)

Amazon (UK)

Tuesday, 25 February 2020

Download Classic Adventurer Magazine FREE

There’s an interview with me (Huw Collingbourne) in the latest edition of the Classic Adventurer Magazine (#8) which you can download free here: 

In the interview, I discuss everything from The Golden Wombat Of Destiny – the game I wrote back in the '80s – to my recent book, The Little Book Of Adventure Game Programming. There are numerous other articles in the magazine that should be of interest to anyone interested in retro/classic ‘Interactive Fiction’ games.

Monday, 24 February 2020

Ruby Programming - Instance Variables

What the heck is an 'instance' and why does it have its own variables? My latest YouTube video for Ruby programmers explains all...

Tuesday, 28 January 2020

Program an Adventure Game in Java

Regular readers will know that I am passionately keen on retro-style adventure games. Not only are they great fun to play but they are also great fun to program. Don't be fooled into thinking that an adventure game is a trivial program to write, however. It isn't. It requires you to use a very broad range of programming techniques: creating class hierarchies, overriding and overloading methods, generic lists, serialization to save and load networks of mixed data types. And much more.

I've recently started a YouTube series on programming games in Java. This complements my book, 'The Little Book Of Adventure Game Programming' which uses C# as the primary language.

Anyway, here's the latest video.

To follow the course in sequence, go to the playlist:

To make sure you never miss a video, subscribe to the Bitwise Courses YouTube channel:

And if you want to buy my Adventure Game Programming book, here it is:

Tuesday, 7 January 2020

Deleaker Review – finding memory leaks in C++ and Delphi

From $99

Memory leaks are some of the trickiest things to track down when you are writing programs. Somewhere you allocate a chunk of memory and then later on, that memory isn’t freed when it’s no longer needed. Small memory leaks might not be a problem but when a program allocates huge amounts of memory, you can run into trouble. In a long programming career, I’ve seen people spend weeks trying to track down obscure memory problems. It’s usually quite easy to track down problems that cause your program to crash every 10 minutes. But once every ten days? Not so easy at all.

Of course, in modern garbage collected languages like C# and Java, memory leaks are no longer a problem – or are they? It’s certainly the case that garbage collection makes life a lot easier. In general, you don’t have to bother about freeing up memory – it’s done automatically. However, you can still get problems if you call system APIs or libraries written in another language where memory is not managed.

If you have (or think you have) a memory leak problem, then a tool to track down the source of the leak might be  useful. One such tool is Deleaker. This comes with a 14 day trial period where you can use the full functionality of the tool. Deleaker helps you find and fix memory leaks in your C, C++ or Object Pascal programs developed using either Microsoft’s Visual Studio or Embarcadero’s RAD Studio/Delphi.

This is Deleaker’s own video showing integration with RAD Studio.

When installed, Deleaker can either be run from a menu item in your chosen IDE or it can be run as a standalone application so that it is available on a PC without the IDE installed. The licence allows a single user to run Deleaker on multiple PCs which is convenient if you need to use it both on your desktop computer and also on a laptop.

Here I have docked Deleaker into the Delphi IDE. You can keep its window ‘free-floating’ if you prefer.
Deleaker has a very nice integration with Visual Studio and Delphi and most of the time it works smoothly though it did crash Visual Studio on one occasion. You can also use it in  standalone mode from the console – Deleaker attaches itself to the process you specify so as to perform its magic.

We tried it out on some very simple programs with a couple of memory leaks and it worked great. At the end of the run, Deleaker will identify the leaks and indicate the source of the leak. However, it doesn’t (and can’t) tell you where you should have freed the memory. But it’s a good start and with some extra coding diagnostics, you should be able to track down memory leaks reasonably easily.

In my experience, though, simple memory leaks are not the huge problem that they are sometimes made out to be. First, from my own experience early on in my programming career seeing other programmers get in real deep trouble, I’ve been absolutely fanatical about memory allocation. Because of that I’ve never had a serious problem. The other memory problem that Deleaker can’t help with is where you have accidentally reused some freed memory: you have two pointers to the same memory address and you’ve forgotten about the second pointer when you called free on the first. These can be very tricky indeed to track down.

But where Deleaker does score is keeping track of system resources such as GDI device contexts, handles and the like. It is surprisingly easy to lose track of these because they tend to exist for a long time in the program and the effects of not freeing handles are not obvious – you don’t see memory creeping up and your program slowing down dramatically until the whole of Windows starts to seize up.

Here Deleaker has produced a report of some leaks in a Visual Studio C project.
Overall, Deleaker is a nice, simple tool that fits in well with Visual Studio and Delphi and makes tracking down memory leaks much easier. It’s not a cure-all for poor programming practice, though. If you have a badly written program, it will tell you that you have a leak and the line that allocated the memory, but it’s up to you to find out where you should have freed it.

At the end of the day, while you have been careful about memory allocation and resource tracking (and in my case paranoid about it) – how you do you know that you have no memory leaks? Without something like Deleaker you won’t - and here Deleaker does shine in acting as a quality check keeping track of memory and non-obvious system resources: it’s always a lot cheaper to fix bugs before releasing software and any tool such as Deleaker that helps produce bug free software is well worth the money.

For this review Dermot Hogan reviewed Deleaker for Visual Studio (Huw Collingbourne tested it with Delphi)