Showing posts with label learning. Show all posts
Showing posts with label learning. Show all posts

Tuesday, November 3, 2020

FPS Mismatch Pain

I am dipping my toes into video production. I began with some collage-style music videos now I am starting a YouTube channel about wrist watch nerdery. One pain has become immediately apparent is the trouble of frame rate. I made the mistake of adding audio as the first component to my video, so the frame rate wasn't set to my video's FPS. To my surprise the audio was out of sync with the video. I had never encountered this, my collage videos all used an audio track and video only clips.

I tried going into VLC and saving each clip's audio as a separate file, then importing it into Blender but I wasn't aware of exactly what was going on. It was still out of sync.

I next tried manually getting the FPS to match my video but then it refused to render (I later found some other settings I could have tried that may have helped).

My projects were still set to 30FPS so I had to keep all my clips short so that the mismatch was unnoticeable. I then learned how to set my phone camera to 60FPS and figured while I'm struggling with this, I may as well get a higher frame rate.

Bad Idea.

The only camera on my phone that is capable of 60FPS is the back camera. The front camera is still 30FPS. So I ended up with some clips at 60FPS and some at 30FPS. So I went through every 60FPS clip and converted it to 30FPS using FFMPEG.

Tonight I'll be starting a new video. I'm hoping it goes smoothly. By dragging my clip into the timeline first thing I believe the project will automatically set the the FPS.

After working on the video tonight, it did indeed set a custom FPS, however there is still a little bit of drift. This will be a problem when I get better and can create longer takes but for now it works well enough.

Monday, May 25, 2020

Everything Sucks

I have just decided that I am going to expand my knowledge by reading about how sucky everything is.

I was going on another mental tirade about how HTML and CSS sucks. How it SHOULDN'T be so difficult to lay out front end elements. And there shouldn't be so many dang brackets and other code elements. So tedious. Anyway. I decided to search the webs to see if this sentiment is shared by anyone or if I just don't know what I'm talking about. Turns out it's the latter.

In my searching I found some really great articles that taught me a lot through other people's gripes. What a fun and entertaining way to learn more about topics I'm already somewhat familiar with. By calling out pain points and bad practices I can learn not only what to avoid and what to do instead, but why.

Saturday, June 30, 2018

Learn Everything

I just saw a great Ted talk I hadn't encountered yet. It was on how long it takes to learn something new. Studies show it takes about 10,000 hours. BUT that is the time it takes to become top tier at it, like pro athlete level. That is mastering something not simply learning it. When we look at the learning curve at the start we improve rapidly at the task of learning, then it falls off and plateaus. According to the speaker the time it takes to get to the plateau is about 20 hours. At that point you've learned enough to be functional at your new skill.

As I was watching it I was pondering what I wanted to do for my 20 hours. Then I saw another Ted talk on speed reading - and being a very slow reader - I realized that was it. So I think my 20 hour task is to learn to speed read. It would definitely be useful and would greatly aid in learning other new things. Maybe it'll make future 20 hour tasks easier.

Wednesday, April 18, 2018

Learning From Learned

The other morning I saw a great video on the mistake that ruined Einstein's life. The presentation was put together very well. It began outlining where Einstein had, in the past, been refuted and ceded to those who disagreed with him, figuring they knew best. Later it was discovered that Einstein was right all along.
 
Later in his life, when probability and randomness became the leading thought regarding the inner workings of everything, Einstein stuck to his guns. In doing so he ended up being 'left behind'.
 
I'm no physicist and can't comment on whether he was right or wrong. But I do believe he was right to stand by his convictions. Sometimes we have to stand alone, against a world telling us we are wrong. Sometimes we have to give up everything for what we believe.

Check out this excellent presentation here:
Einstein's Greatest Mistake - with David Bodanis

Friday, April 13, 2018

Arch Adventure

Ok I dug out good ol' broke screen, plugged it into a monitor, downloaded Arch, and put it on a jump drive. Thus begins my adventures in advanced Linux distro installation.
I'm excited. I've never really done a Nix deep dive. I've always run straightforward 'desktop user' distros with graphical partition managers that do everything for you. Wireless connections are part of the install. Piece of cake.
The Arch Linux install boots you to a prompt, with a great install.txt file as a guide. That's it. So the first step is setting up the partitions. Bam. First wall to climb. Even with graphical partition managers I've never taken the time to truly understand how Linux partition tables are typically set up (I know, I suck). So at the first step I have a lot to learn!
As I progress through this project (with my amount of knowledge this is truly a project), I'll post updates.

Wednesday, April 11, 2018

Embrace the Pain

I have not explored the caverns of hardcore Linux yet. But it crosses my mind every now and then. I happen to have an old laptop with a broken screen. I could hook it up to a monitor. And I could put Arch on it. Or Slackware. Or Gentoo.
I could definitely use the experience. I would be forced to become intimately familiar with the inner workings of Linux. I have *sort of* done this in the past. When I hit the network setup wall, plugged in my network cable, and hit the network set up wall again.... and again. I decided I didn't really want to be a Linux guru.
Snce then I've had to do some digging and debugging on my new laptop. So maybe now I know enough to struggle through the process. If you haven't looked into advanced Linux distros before, here's a couple suggestions culled from various distro reviews:
Arch Linux
https://www.archlinux.org
Debian
https://www.debian.org/
Slackware
http://www.slackware.com/
Fedora
https://getfedora.org/
Gentoo
https://www.gentoo.org/

Tuesday, March 27, 2018

The Right Tools

The right tools make all the difference. Obvious enough statement to make. For example, imagine being lost in the forest. Having a knife would allow you to peel bark to make cordage, you could make fire starter tools. You could sharpen sticks to spear fish with.
 
I've tried using fine grit sandpaper to create a smooth finish in wood. After hours of work I still hadn't achieved the finish I was after. I later bought buffer wheels and was able to get a mirror finish within minutes.
Sometimes the right tools aren't tools, they're people. I had to try rebuilding my laptop with the latest Linux Mint. It froze as expected. I used some of the techniques I had dug up online to get into the OS in nomodeset ... mode? I then was able to install Fluxbox. As long as I use Flux my laptop doesn't freeze. Well unless a dialog pops up or I try rebooting. Basically the OS is very unstable on my machine.

After fighting the freeze further I decided it was time to ask around. The linux channel on Freenode tried to help. Everyone there was great, but it was an issue no one online at the time had encountered. There was someone else, I should have gone to him first, but I didn't think to ask until tonight.

I consider @DorianDotSlash
a friend though I only know him via Twitter. So I reached out to him and explained what I was dealing with. In minutes he responded with a solution to try. A GRUB config change I hadn't seen yet. I gave it a try and it was exactly what I needed to do!

I am finally able to run the latest Nix distros on my MSI!

Thanks so much Dorian!

Check out his video feed here.

Monday, February 26, 2018

Knowing IS the Battle

Fellow 80's / 90's kids already know the title's reference.

PSA

As I sit here eating cereal and watching coding videos. I'm thinking in programming knowing isn't half the battle - it IS the battle. Years and years ago I built a little C# Tetris game. I don't recall how long it took me or how much code I had to write to pull it off (Sadly the project has long since been lost - or is archived amid hundreds of old burned CDs). I am certain it took more than a couple hours and was comprised of far more than 200 lines of code. Yet had I known a better approach and a few tricks to help me out, 2hours, 200lines of code would have been completely possible.

I need to keep watching other people code. because knowing is the battle.

Tuesday, February 20, 2018

Suggested Learning

Hyperspheres. If you were a two dimensional being, how could you visually, scientifically, mathematically describe and understand a three dimensional sphere?

If you were a three dimensional being, how would you visually, scientifically, mathematically describe and understand a four dimensional sphere (hypersphere)?

Clayton Shonkiler : 15 Views of the Hypersphere
https://youtu.be/krmV1hDybuU

A Breakthrough in Higher Dimensional Spheres
https://youtu.be/ciM6wigZK0w

Hypersphere in Slow Motion
https://youtu.be/XFW769hqa1U

Friday, February 9, 2018

Flux Keys

I've been using Fluxbox for a while now. That doesn't mean ai know anything about it. :) Just like with Linux I'm no power user. Whenever I find I need to do something that requires a script or some configuring etc then I dig in and figure out how it's done. I'm actually not a very intense user. I code Java apps in VIM and only use a few bash aliases to make this easier. When I'm making music Reaper does fine without any special OS tweaking etc.

A few weeks ago I inadvertently hit some Windows hotkey. Everything vanished. I figured I accidentally moved to another vdesktop. I launched some new windows and continued to do my thing. When I was done I rebooted to be sure everything was cleared up.

Earlier today I did a similar thing (Thanks to spending all day at work on a Doh's machine). This time I had a video playing. It continued playing from wherever it vanished to. That was a problem. Again I tried different hotkeys but no success. I rebooted and decided it was time to become familiar with my fluxbox keys file. It turns out I had been switching workspaces. I did some tweaking, moving windows to the top Dock via hotkey etc. And I went over the other keys defined in there. Cool! Window tabbing is cool. I like all the different organization tools in Fluxbox. Vdesks, Workspaces, window tabs, window rollups, etc.

I think I may have to put some effort into becoming more of a Fluxbox power user!

Thursday, February 1, 2018

Learning By Doing

When it comes to learning, I am a do'er. I like reading books and watching videos and online courses, but I usually don't really learn until I have a task. Sometimes this is as simple as going in and cleaning up code as opposed to reading through it. I'll have a far greater understanding of the code doing tasks like that. I am able to focus, knowing that I'm doing something.

I actually like documenting as well. I've always liked toying around building help systems or large collections of notes etc. At times I will use documentation to learn about projects or systems. These notes are very useful. I tend to need my notes often.

I have even done similar to the code reformat with flow charts. I've taken an existing flow chart and recreated it with greater detail geared toward developers.

I guess, do what ya gotta do to get it done.

Sunday, January 21, 2018

What You Should Be Watching

Welcome to an installment of what you should be watching. Today's post is for not only developers but for computer (or math) nerds of all kinds. And I do mean ALL kinds. From gamers, to graphics gurus, to the OS, to computer science / theory, to history.

All of the above is covered in the first entry in this list.
Computerphile (Or Numberphile for the math-ers).
I absolutely LOVE Computerphile. I can spend hours watching their videos. They cover absolutely everything related to computers, computing, and related topics. I've already mentioned things that I've learned from Computerphile in other posts. It truly is a treasure trove!

Monday, January 15, 2018

Telling Tales

I have been spending some time recently watching programmers and computer scientists simply talking. These people are far greater in the field than I'll ever be. I'm so glad that they are gracious enough (Or someone is willing to pay them to be gracious enough) to freely share their knowledge. I love hearing old 'war' stories.

One video was a discussion on why binary was chosen for computer processing, instead of decimal which is so much easier for people to comprehend, since we use decimal every day. It's a trade off. And back in the day power and processing was at a definite premium. The discussion brought to mind similar talks regarding programming languages. There too is a trade off. Ease of programming versus absolute optimal run speed.

Even if such discussions are way over the viewer's head they have a ton to teach. I am always intrigued by the origins of things or the logic behind them. Why end lines with ;, why did C succeed so well where other languages were not so popular, why binary, and so on. Tales told by old salts shed light on all of these questions and more.

Monday, January 8, 2018

Digging Deeper : Computers

During my Saturday 'learning from Youtube' time I ran across the following video. It is an analyzation of the machine code that results from compiling a simple C program.

I was immediately captivated. What an excellent walk through. Of course I couldn't stop there, so I dug into Ben Eater's other videos.

That led me to his Breadboard Computer project. Oh man. I've seen the videos where he discusses how his programs will work, how they are programmed in, and a walk-through of a program running. Now I'll have to go back and watch the project from the very beginning.
 
I love how these videos walk through, demonstrate, and discuss computing at a simple enough level to fully comprehend how it works.

Ben Eater, you sir are an excellent teacher. Thanks for the videos!

Thursday, December 28, 2017

Working Out Algorithms

Knowing common algorithms is a major advantage for developers. Algorithms are powerful tools in our belts. If there is a complex or difficult to solve problem, knowing a proven algorithm that will solve it would immensely speed up the development cycle. Do I know many algorithms? Not many. Sadly.
But in my binary watchface I needed an algorithm for determining which squares need to be lit. I could do it by 'brute force' using a ton of ifs etc. But I wanted something more elegant (Although I hadn't really bothered to make the rect objects themselves very elegant - they're all hardcoded, not created programmatically).
I was hoping I could use bitwise checks, like:
if (2 & hr2 > 0) ...
if (4 & hr2 > 0) ...
If I had been more familiar with bitwise operations I would have never entertained the idea. I didn't work. I hit the internet but didn't find much. So I had to work out my own.
I need to get my binary valued squares to equal that column's time (Or battery) value. So I decided to create a variable to hold the sum. Then I started with the largest value. If adding that goes over the column's value, do nothing. Otherwise, add it and light up that square. Then move on to the next lesser value (From 8 to 4 to 2 to 1).
That was it. So much easier than I thought it would be. Thus is the beauty of algorithms.

Friday, November 24, 2017

Must Reads 20171124

Today's edition of good reads is short,  but I believe a very bright spotlight should be shined on this one.
I guess I'm a dinosaur (I don't think I would have gone with that title but meh), because this was a perfect explanation of the current state of Javascript development for someone who isn't a JS developer by trade.
When you don't work in JS everyday, it seems like a torrent of hip, new, trendy languages and tools are spewing forth incessantly. This did a great job of walking the reader through why. It is a definite must-read.

Saturday, November 18, 2017

Bunny Trail : Quantum Computers

I bumped into quantum computing a few years ago. The reading was interesting but at the time I only partially grasped it, not enough to understand the potential power - and damage.

But I recently ran into some videos that have me, once again, interested in the topic. - And some VERY intense related quantum / theoretical physics topics.

Qubits. The amazing quantum bits that can be on and off at the same time, but only until you read them. Then they are more one than  the other.

More explanation for average joes (Well for a slow learner like me):

Now dig really deep...
Are we AI living in a simulation or 'game' of sorts? If so, what signs would we have?

Is this evidence we are living in a matrix? I believe it is the hand of God.
However you interpret it it's intriguing!

Wednesday, November 1, 2017

Bunny Trail - Generative Adversarial Networks

In reading about AI generated photos I came across Generative Adversarial Networks. It is the idea of having a generative process that submits its results to a discriminative process that attempts to determine if it has received 'learning source' or generated output. Kind of an iterative test driven AI.

Let's start with an introduction:
Via Aylien
Via Cornell University

And of course:
Via Wikipedia

This led me to Adversarial Networks vs Adversarial Training:
Via Quora

Oh! And what's a Convolutional neural network?
Via Wikipedia

 These should keep me busy for a while!

Thursday, October 26, 2017

Bunny Trail - Path Finding

This morning I woke up and checked the Twitter feeds and came across this tweet:


The effectiveness of seeing the algorithms side by side is great! So I decided to read/re-read about each one. I am still on this bunny trail. But I'm starting here:

As I read through that article, I drilled down into the topic of heuristic:

From there I ended up at the travelling salesman problem:

And Jon Bentley's information:

Introduction to WorldWeaver

A New Iteration  I've been working on the second manifestation of my Interactive Fiction engine - WorldWeaver - for about a year now. I ...