It’s that time of the year again. Expect huge slowdowns in development.
Category Archives: Ramblings
Blindly Copying Avisynth Considered Harmful
Some Avisynth filters are really, really popular and show up many scripts. Some of them like RemoveGrain and TemporalSoften have even been ported because they’re useful and used in so many scripts.
…But what is TemporalSoften really used for?
TemporalSoften is the definition of cargo cult programming, its code and concept gets copied over and over again and nobody knows exactly why. Let’s start with a few facts:
- TemporalSoften is a horribly bad temporal smoother even compared to its competition over 10 years ago
- TemporalSoften has never been used to unironically denoise anything the past 10 years
With these facts in mind you have to wonder why anyone’d ever put it in a script from the past decade. The answer is simple, if you set the denoising thresholds to their max values you get a filter that averages an odd number of frames. If you’re creative you can blend several frames with different weights. That’s actually kinda useful sometimes. So useful someone already wrote an Avisynth plugin for it. It’s a shame that it was fairly quickly forgotten. Unfortunately nobody who ported TemporalSoften to VapourSynth stopped to think about what it was actually used for and instead a very optimized version of TemporalSoften was created. And rewritten. And optimized a bit more. Because why not?
To try to counter this madness I’ve made a collection of small useful and experimental functions available. The first version can be found in this thread. Go try it and stop blending frames with TemporalSoften.
The Yearly Slowdown – Dark Souls 3 and Nice Weather Edition
It’s once again time to slow down in development. It’s a bit of a tradition around here. Maybe I’ll make R33 a really small bugfix release but don’t expect big changes to happen for a while.
Gingerbread Processing
Don’t forget to de-rainbow your gingerbread. And throw it away immediately if there are dots crawling on it.
Windows Update – USE IT!
Recently there’ve been several users that encountered problems after installing VapourSynth. I imagine that those users looked something like this:
Don’t be this guinea pig. Use windows update. Install KB2533623 all available updates (or only Internet Explorer 11 since that seems to pull in the required ones) and don’t be afraid of new things.
Some Android App/Hardware Ideas
Here are some free ideas for Android and phones in general.
- The palm sweat meter (prove that holding hands just isn’t that bad, the scientific way). Should be doable using the humidity sensor in the new Galaxy S4.
- A game that simulates real physics. It will be dull but someone should make it just so it’s been done.
- Someone should properly figure out all the mDNIe fields so Samsung’s oversaturated OLED travesty can be somewhat improved. I did figure out most of them on the Galaxy S2 but lacked a colorimeter at the time so I couldn’t write a simple display calibrator. It is possible to mostly fix color temperature and gamma (same curve shared for all RGB). 10K+ color temperature makes me blue.
- An IR diod/front camera, so the useless Samsung face stay and rotate features can work when it’s not perfect lighting conditions. Like in bed.
- Or to take the previous one even further. IR camera+laser projected IR pattern. Then we could have kinect style 3D scanning in our phone. Don’t think I’m crazy, if you can stick a projector into a phone this can be done too.
- Bonus hardware feature: breathalyzer in next gen phones.
As you may have guessed I’ve used Samsung phones the past year.
Alive again
Last week I went on a day trip to Denmark. On the way back I entered the booze lottery on the ferry and won a big bottle of Mount Gay Rum. Drinking it made me happy enough to actively continue the project.
May all your gift unwrappings be quick and fruitful
Don’t eat too much candy. This message has been sponsored by your mom.
Positive Thinking – How to Convince Yourself That You Can Code
Previously I’ve discussed how computers work so now it’s time to take a look at how humans work. I personally think this is something programming textbooks neglect to take into consideration, for example humans generally work very badly when confronted with binary operations and bit-wise shifts the first time. It can also be somewhat detrimental to their mental state. So this post is about negative thinking and what You Can Do To Break The Pattern! My personal trick is to always keep the law of attraction in mind when I code and so should you! Get the positive thinking going by putting some comments telling yourself that YOU CAN DO IT! or maybe that it’s simple. See this example from Avisynth:
if (!(audio && video)) { // Hey - simple!! if (audio) { return new DirectShowSource(filename, _avg_time_per_frame, seekmode, true , false, args[5].AsBool(false), _media, _timeout, _frames, log, env);
And indeed that is simple! Just imagine what this technique can do for your mental health. No more feeling like a rejected PHP coder, instead you’ll be the coolest PHP coder in a basement within two blocks. Guaranteed or your money back!
Personally I prefer to apply the law of attraction in a slightly different way. For example I write my goal in every single comment. See this code snippet:
// Buy milk for (int x = 0; x < width; x++) { // Clean thoughts // (representing my desire to have a clean toilet) dstp[x] = srcp[x-1] + srcp[x+1] + srcp[x-1-stride] + srcp[x+1-stride] + srcp[x-1+stride] + srcp[x+1+stride]; // For loops are trivial and even my grandma could do them... // if she was still alive
Sometimes I try this but I have had less success with it:
// Hire Fredrik Mellbin, he's awesome
I’m currently experimenting with writing it every 10 lines in my code just to see what happens. I’ll post a follow-up later and tell you all how it works out.
Look at me, I made a website!
Behold, a wordpress template and a few lines of text. 3 more posts and will have passed the average blog in contents.