Browsed by
Category: Technical

The Blackbird from The Mill completely blows me away as a concept

The Blackbird from The Mill completely blows me away as a concept

The Blackbird is the world’s first fully adjustable car rig that cannot only alter its chassis to match the precise length and width of almost any car, but its looks as well. Using CGI, the car rig can be re-skinned to look like any car, and its electric motor can be programmed to emulate the driving characteristics of the subject car, too. Automotive content producers no longer need the physical vehicle for a shoot as the Blackbird is a do-it-all-rig.

Practice your coding skills

Practice your coding skills

For those of us that work in the industry, one of the difficult parts about working in high tech is constantly keeping on top of all the new developments and technology.

One of the things I’ve noticed after you get a lot of years of work under your belt is that you naturally start specializing into certain areas. These specializations are good in themselves, but often they utilize only slivers of the original breadth of computer science, algorithms, and data structures. If one is not careful, you can lose that breadth that is essential to your adaptability.

LeetCode is a great website with literally hundreds of coding problems that can help you brush up on your algorithms, data structures, and coding skills.  Give it a whirl!

‘Audibilization’ of sorting algorithms

‘Audibilization’ of sorting algorithms

Visualization and “audibilization” of 15 Sorting Algorithms in 6 Minutes.
Sorts random shuffles of integers, with both speed and the number of items adapted to each algorithm’s complexity.
The algorithms are: selection sort, insertion sort, quick sort, merge sort, heap sort, radix sort (LSD), radix sort (MSD), std::sort (intro sort), std::stable_sort (adaptive merge sort), shell sort, bubble sort, cocktail shaker sort, gnome sort, bitonic sort and bogo sort (30 seconds of it).

Google more information via the “Sound of Sorting”.

CMake with compilers that need custom parameters

CMake with compilers that need custom parameters

When using CMake on non-GCC/non-Microsoft compilers – you often run into interesting problems. Especially true for embedded devices/cross-compilers.

One thing that can bite you is the fact that CMake requires the compiler to pass a ‘smoke’ test. Unfortunately, if there are required parameters for your compiler, the smoke test part will fail.

There are a few ways to solve this, the ‘recommended’ way seems to be via the CMAKE_FORCE_C_COMPILER/CMAKE_FORCE_CXX_COMPILER flags. This allows you to tell CMake what the compiler is and pass the smoke test.

CMAKE_FORCE_C_COMPILER(/usr/mycc/cxint86 GNU)
CMAKE_FORCE_CXX_COMPILER(/usr/mycc/cxxint86 GNU)

Here are the docs for more information
https://cmake.org/Wiki/CMake_Cross_Compiling#The_toolchain_file

Siggraph 2015 paper – Dynamic Skin Microgeometry

Siggraph 2015 paper – Dynamic Skin Microgeometry

Generating photo-realistic faces has long been a holy grail for rendering. It’s the combination of a number of difficult problems – eyes, skin, hair, etc. These guys demonstrate a simple, innovative new technique for mimicking the complex skin structures that occur when a character makes different faces. They simulate these ‘micro-structures’ by using anisotrophic bluring/sharpening of facial textures. Good for both realtime and off-line techniques.

Machine Learning and you

Machine Learning and you

Recently I took the Coursera Machine Learning course from Stanford and got to implement a lot of these kinds of algorithms (HIGHLY recommend the course).  This guy took it a step or two further and added some clever visualizations and additional training tricks.  Very good work – especially considering it was done by a seaming amateur implementer.

It’s fascinating how we can now write small neural nets like this and very quickly train our computers to do work not only as good as us, but in growing numbers of cases, better than the BEST humans in the world could do.  The implications are staggering…and somewhat disconcerting.  What happens when we have enough compute and enough data that our racks of machine learning systems can do all the analysis and optimization of every facet of our society?  What does that leave us to do, and how does our economic system work when many of these thinking jobs go away?

While this has been argued all the way back to the industrial revolution, there is some growing work by more respected people that we are turning a tipping point (http://www.businessinsider.com/technology-is-destroying-jobs-and-it-could-spur-a-global-crisis-2015-6).  Or more interestingly, do we go through another era much like the industrial revolution in which broad swaths of the population become cogs in a bigger machine until we re-adjust.  Much food for thought and social rumination…