Holy shit. This guy is next level. https://dmitry.gr/
Author Archives: Jay Jay
Russ Cox
Discovered https://swtch.com/~rsc/. Always appreciate a good three letter username. He was mentioned here: A Cryptographic Near Miss:
Software engineering is what happens to programming when you add time and other programmers.
Obviously from Google if he says something like that.
Video equipment
I got a bunch of stuff:
- BU110 ExtremeCap UVC HDMI to USB adapter
- Logitech C922 Pro Stream Webcam
- Webcam Stand, Upgraded Flexible Desktop Stand Gooseneck Stands Holder for Logitech Webcam C922 C930e C920S C920 C615 C960 and BRIO and Other Devices with 1/4″ Thread
- Webcam Stand – 25 inch Gooseneck Clamp Desk Webcam Mount Arm for Logitech Webcam C920s C920 C930e C922x C930 C922 C925e C615 Brio – Acetaken
- Tablet Wall Mount for iPad, EXSHOW 35in Adjustable Arm Drill Base Tablet Mount for Kitchen Cabinet Desk, Camera Holder Webcam Stand for iPad Pro 12.9 Air Mini, Galaxy Tabs, Switch,iPhone,4-13″ Tablets
- High Speed 512GB USB 3.1 Solid State Mobile External SSD Hard Drive Disk 540MB/s
- HD USB Webcam Camera Video Calling Web Cam with Mic for PC Desktop Laptop
- USB 2.0 13MP HD Webcam Camera Web Cam With Mic For Computer PC Laptop LED #T
- 11 in 1 USB C Hub 4K HDMI Adapter VGA Dongle 3 USB 3.0 Ports SD/TF Type C PD AUX
- Long USB Extension Data Cable 2.0 A Male to A Female Adpter Cord for Computer; 5 meters; Transparent
- Professional Music Stand Adjustable Folding Heavy Duty Large Stage Black
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:
I don’t think Mr Rabbit was very happy about that. But, fuck it.
More books!
Wiring tips
Check out these cool wiring tips: wiring tips. How to wire cables.
Books!
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]