Category Archives: Uncategorised

Casual young man flying and reaching for something

I’ll admit, I can get too focused within the scope of certain problems and not think about more interesting ideas. In this post, I’ll summarize some problems I haven’t solved yet, but are likely feasible, and if so, I’ll explain how they could be solved. New problems or ideas on this page may get added in the future, but I won’t delete or alter anything without a good reason. I appreciate good constructive feedback, so please leave a comment below if you feel inclined. 3D Boolean Operation on Model in Blender with Topology Preservation In Blender, cutting holes in an object and preserving the flow of the edges is challenging, and as I’ve found with modelling a soda can, you have to bridge the edges whilst keeping the spacing between them fairly even so that you can apply smooth shading and the subdivision modifier without introducing artifacts. It would be…

Read more

A few years ago, I began to develop applications across multiple platforms written in C++. I wrote mostly on Windows, and discovering open-source projects led me to discover the Qt framework. I’ve spent more time than I would care to admit on understanding Qt, it’s IDE, and the runtime libraries which function together in many layers. Phew. I feel it necessary to mention that a module in Qt is a nebulous term: it can mean files, headers, C++ classes and associated shared libraries. The files can be, QML files, or build system files. I’m now moving away from the Qt framework, but still aiming to make software run across multiple platforms. I still write C++ code, and exploit the ubiquity of OpenGL. Because OpenGL is fairly portable, I’ve decided to take a hybrid approach by mixing C++ with another language, native to the target platform, such as Java on Android,…

Read more

The use of web views for rendering application user interfaces is not a new concept, although methods for doing so have evolved over the years. In this article, I argue that you can re-use existing API’s to provide a web browser runtime instead of bundling one with each application you ship. We can now see that platforms are bundling web view libraries and API’s, and this presents an opportunity to write applications that use C++ for performance critical tasks, HTML and CSS for displaying the user interface, and JavaScript to bind to native methods. What Is Not Covered In This Article Mobile operating systems like Android and Apple’s iOS both include native web views accessible from their respective first-class languages: on Android, Java, and iOS: Swift. I won’t go into those platforms, because I’m focusing on better alternatives to CEF which is, at the time of writing this, a desktop…

Read more

In this article I’m going to explain how to calculate a real-number based FFT using FFTW, providing the source code. First, though, I will introduce some important concepts. Then I will provide code with comments within it. I will also provide a header containing sample data from a single channel sound file whose frames have been converted into double values. The samples are of a 440 Hz sine tone mixed with noise. I exported the raw sound data from Audacity, and used the od program (GNU coreutils), to convert the raw data to double precision floating point numbers, and outputted that into a file that I could reformat into the header, “a_with_noise.h”. Acknowledgements Thanks Jake for pointing me in the right direction, providing sample code for computing a complex number FFT. Assumptions Programming explanations and examples are for the C programming language. You understand what a FFT is used for.…

Read more

Out with the old, in with the new. My old website, that used a Python CMS and ran on Apache on an older version of Debian, is out, and has been replaced with WordPress and Docker containers running on a newer version of Debian 10. Boy, that was a process; deploying Docker containers in production without proper verification can be challenging. Just because something works great locally doesn’t mean it will on a production server, and I learned this the hard way. How I Did It I had to reinstall my OS: Debian 10. I quickly became apparent software for Debian is older than what is available for Arch Linux, where I tested my Docker containers. I did quite a bit of set up on my local machine, before copying it to my server and using docker-compose to launch my containers. After that, there was tweaking to various different configuration…

Read more

5/5