Monday, 24 September 2018

Recursion For Programmers


Recursion is a powerful programming technique. A function that calls itself recursively not only saves programming effort and avoids repetition but it can also be used to navigate complex structures such as Trees and Class Hierarchies. But recursion can also be quite hard to understand.

I recently published a course that explains recursion from the ground up. The full price is $45. But if you use the link below you can sign up for just $12! (Local taxes or EU VAT may be applied)
https://bitwisecourses.com/p/recursion-for-programmers/?product_id=778235&coupon_code=BWRECURSIONDEAL

I’ve tried to explain recursion in depth in this course. Along the way, I also explain some important details of the computer architecture. You need to understand the stack, stack frames, variable scope and a few other details in order to get a good understanding of recursion.


I strongly advise you to try to write our own recursive functions as you progress through the course. My examples are all in C, Ruby or C#. But you can write recursive functions in whichever language you happen to be using. In fact, it would be a good exercise to try to translate my examples into another languages – Python, Java, Basic or Pascal, for example.

The courses includes numerous short sample programs to show how recursion works. There are samples written in C, Ruby and C#. However, you don’t need to program in those languages to follow this course. Recursion works the same way in all mainstream programming languages. This course explains the theory and the practice of recursion. You can use the techniques that are taught to write recursive functions in whichever language you prefer: C, C#, Java, JavaScript, Python, Basic, Pascal and others. The course is not about any specific language.

This is what you will learn…
  • What is recursion?
  • How variables are scoped in recursive functions
  • How recursive functions return values
  • The Stack and Stack Frames
  • Debugging recursive functions
  • Recursion v Iteration
  • Stack Corruption, and how to avoid it
  • Infinite Recursion, and how to avoid it
  • Recursing Fibonacci Numbers
  • Recursing a Class Hierarchy
  • Trees and recursion
  • Navigating subdirectories recursively
Here are two sample lessons from the course…




Sign up before the end of October 2018 to get this course at a 73% Discount...
https://bitwisecourses.com/p/recursion-for-programmers/?product_id=778235&coupon_code=BWRECURSIONDEAL

Monday, 17 September 2018

Vegas 16 Edit Review

VEGAS PRO 16 Edit £299
https://www.vegascreativesoftware.com

VEGAS is a powerful video editing package which has been given a new lease of life since its acquisition by MAGIX Software in 2016. In fact, VEGAS 16 is the third major release in just two years.

VEGAS Pro 16 - a powerful package, though it takes a while to learn
New features include improved video stabilization and motion tracking, 360-degree video support (assuming you have a suitable 360-degree camera!), a ‘tiny planet’ plugin that distorts a video using an extreme fisheye effect to make it appear that the ground-plane forms a planet-like sphere, plus various user interface improvements.

Using 'tiny planet' I've transformed an ordinary field into a little world!
Plugins and effects can be ‘chained together’ by adding one plugin after another. The advantage of this approach is that you can selectively tweak numerous different parameters for each effect to give you precise and accurate control over each of them. The disadvantage is that this process can be time-consuming and confusing. For example, it may be entirely possible to remove background noise from a track using the Audio Restoration and NoiseGate effects (plus others) but working out how to do so can be baffling. Personally, I find it simpler to process audio tracks using some other tool such as the free Audacity audio editor or MAGIX’s own SoundForge program.

Here I've made a selection so that I can 'track' a person's movements
Video Effects can be similarly non-obvious. For example, to apply Motion Tracking you need to use a tool called ‘Bezier Masking’, then draw out a selection box over an object, expand a ‘Mask’ option in a dialog and finally click a button to track the object. If I hadn’t seen the MAGIX tutorial on this, I can honestly say I’d never have guessed that this was how to do it.

The newly enhanced Motion Tracking feature includes the ability to select objects (such as a person or vehicle) and automatically track their motion as the video plays. Masks and effects (blurs, contrast/brightness and so on) or text annotations can be added to the tracked objects to follow their movements. A very useful tool.

It’s worth saying that VEGAS has pretty much all the features you would expect from a pro-level video editing package: the ability to cut, trim, copy and move clips over numerous tracks in the timeline; a large range of transitions and effects; zoom, pan, add titles and so on.
For a more detailed overview of the code features of VEGAS, see my reviews of VEGAS Pro 15 and VEGAS Pro Edit 14

For those of you who use storyboards (a view of clips arranged either as lists or as sets of thumbnails arranged in lines like the rows of a spreadsheet) the new interactive storyboarding options will no doubt be welcome. This lets you make edits to the storyboard clips (e.g. changing the start and end points) or in the timeline (e.g. moving a clip to a new position) and the changes are synchronized in both the storyboard and timeline. 

If you want to change the colour temperatures and densities to emulate some Hollywood films, you can use the new Autolooks filter. The names of the preset options (‘Losing Private Brian’, ‘Nade Gunner’, ‘The Wobbit’ etc. may give you a few clues as to the sort of look these try to achieve).

Autolooks lets you change the colours instantly (no, the sky wasn't really that colour!)
At a more mundane level, the file saving options have been improved so that your projects and backups can now be auto-saved at user-selected locations at timed intervals or after every editing change.  For a more detailed overview of new features, including demo videos, see here: https://www.vegascreativesoftware.com/gb/vegas-pro/new-features/#productMenu

Overall this is a good new release of VEGAS Pro. It incorporates a range of useful improvements without sacrificing the familiar workflow of previous releases. Bear in mind, however, that while VEGAS is a powerful package, it is not the easiest video editor for a complete newcomer. But for serious video editing at a modest price, VEGAS Pro 16 is a damn’ good choice.

NOTE: Vegas Pro 16 is available in several editions which include additional features, at higher prices. See the product comparison table here: https://www.vegascreativesoftware.com/gb/vegas-pro/product-comparison/#productMenu For my reviews of other video editing packages, see HERE.