Video editors

  • OBS Studio: OBS Studio is a free, open-source, and cross-platform screencasting and streaming app.
  • Movavi Video Suite: A powerful video-making bundle that includes a video editor, file converter, screen recorder, and other goodies to make you a content guru.
  • iMovie: iMovie is a video editing software application developed by Apple Inc. for macOS and iOS devices.
  • XSplit: XSplit is a live streaming and video-mixing application developed and maintained by SplitmediaLabs
  • Streamlabs Desktop: Live streaming software for everyone. Streamlabs Desktop has everything you need to stream and create a memorable brand. Broadcast your live stream to Twitch, YouTube, Facebook, or Trovo.
  • Oslo: Oslo Video Collaboration and Editing Software from Streamlabs. Video production made easy. Upload your media, make edits, review, and share directly to YouTube!
  • Shotcut: Shotcut is a free, open source, cross-platform video editor.
  • OpenShot: OpenShot Video Editor is a free and open-source video editor for Windows, macOS, Linux, and ChromeOS.
  • Adobe Premiere Rush: Adobe Premiere Rush is the free mobile and desktop video editing app for creativity on the go.

Homework

This is a part of the homework feature of my blog, which is an ongoing conversation with my mate S.F.

I have a Dremel 4300 with a Plunge Router attachment.

I found the latest incarnation of OBS: OBS Studio.

I found AV Australia but they have a dizzying array of products. What I want to know about is the HDMI to USB cam adapter, can you let me know where to find that?

Definitely watch Where the Crawdads Sing, it’s excellent.

Turns out there’s countable infinity and uncountable infinity, this is arrived at by way of Cantor’s diagonal argument.

As I mentioned lately I’ve been working on my Kickass Crypto software library.

A Tribe Called Quest – Can I Kick It?

There should be a government provided service so that you can have your delivery details provided to the delivery company independently of the vendor. This could be a more general set of services. You give your ID to the vendor, the vendor gives your ID to the delivery company, the government gives your delivery address to the delivery company, the vendor never knows where you live. You could get a new ID for each transaction.

King Missile – Jesus was way cool.

You can see the books I picked in my Silicon Chip Book Order. The red arrows were round one, the green arrows were round two.

Andrew “bunnie” Huang wrote Hacking the Xbox and made the Chumby. This is my chumby:

Nirvana – Oh Me

Pulp – Babies

Obama: “Better Is Good”

Black Star – Definition

KRS-One – Step Into A World

You should write a poem on “should”.

Portishead – Dummy

I discovered Situationist International.

Let’s not forget Assange, Manning, and Snowden.

I am definitely going to read The Courage to be Disliked.

As discussed, these are my mugs of memory:

Mr Rabbit didn’t look very stable on my shelf:

So I ate him:

I don’t think Mr Rabbit was very happy about that. But, fuck it.

ChatGPT code explanation

I threw this function:

  protected function get_passphrase_list() {

    // 2023-03-30 jj5 - we cache the generated passphrase list in a static variable so we don't
    // have to constantly regenerate it and because we don't want to put this sensitive data
    // into an instance field. If you don't want the passphrase list stored in a static variable
    // override this method and implement differently.

    static $result = null;

    if ( $result !== null ) { return $result; }

    $secret_list = $this->get_config_secret_list();
    $result = [];

    foreach ( $secret_list as $secret ) {

      $result[] = $this->calc_passphrase( $secret );

    }

    return $result;

  }

into ChatGPT and it said:

This is a protected function that returns a list of passphrases based on a list of secret values obtained from another function, get_config_secret_list(). The passphrases are generated using a method called calc_passphrase().

The function checks if the passphrase list has already been generated by looking at a static variable named $result. If $result is not null, the function returns it. Otherwise, the function generates the passphrase list and stores it in the $result variable.

The reason for caching the passphrase list in a static variable is to avoid having to regenerate it every time the function is called, which can be time-consuming. Additionally, it is considered a security best practice not to store sensitive data, such as passphrases, in instance fields.

If you want to change the way the passphrase list is stored, you can override this method and implement it differently.

PHP preg_match regex fail

So this happened. Basically the first regex causes preg_match to fail when it tries to process 128KiB ASCII zeros… and 128KiB isn’t really that many zeros. Fortunately the second regex performs much better, PHP runs out of memory before preg_match chokes on that one.

-------------------
Sat Apr 01 13:17:17 [bash:5.1.16 jobs:0 error:0 time:243]
jj5@charm:/home/jj5/desktop/experiment
$ cat base64-regex.php 
<?php

test( '/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/' );
test( '/^[a-zA-Z0-9\/+]{2,}={0,2}$/' );

function test( $regex ) {

  echo "testing: $regex\n";

  $n = 0;

  for ( ;; ) {

    $n++;

    echo "n: $n\n";

    $string = str_repeat( '0', pow( 2, $n ) );

    $base64 = base64_encode( $string );

    if ( preg_match( $regex, $base64 ) ) { continue; }

    echo "error at N = $n.\n";

    return;

  }
}

-------------------
Sat Apr 01 13:17:21 [bash:5.1.16 jobs:0 error:0 time:247]
jj5@charm:/home/jj5/desktop/experiment
$ php base64-regex.php 
testing: /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/
n: 1
n: 2
n: 3
n: 4
n: 5
n: 6
n: 7
n: 8
n: 9
n: 10
n: 11
n: 12
n: 13
n: 14
n: 15
n: 16
n: 17
error at N = 17.
testing: /^[a-zA-Z0-9\/+]{2,}={0,2}$/
n: 1
n: 2
n: 3
n: 4
n: 5
n: 6
n: 7
n: 8
n: 9
n: 10
n: 11
n: 12
n: 13
n: 14
n: 15
n: 16
n: 17
n: 18
n: 19
n: 20
n: 21
n: 22
n: 23
n: 24
n: 25
n: 26
n: 27
n: 28
n: 29
n: 30
n: 31
n: 32
n: 33
n: 34
n: 35
Killed
-------------------
Sat Apr 01 13:18:21 [bash:5.1.16 jobs:0 error:137 time:307]