jorgenmodin.net - Blog
How to start an AVD in Android Studio on Aspire 5 with an Intel GPU (I think)
I could not get a Google Pixel 3A virtual device to start in Android Studio 3.5.2 on Ubuntu 19.04. The solution seems to be use a the "Swiftshader" GPU emulation. However I could not enable it. Eventually I edited the config file directly on disk, and made sure to enable cold boot. Without cold boot it crashed, due to Swiftshader not supporting checkpoints afaict.
I found the device file as
$HOME/.android/avd/Pixel_3a_API_29.avd/config.ini
And I changed to:
hw.gpu.mode=swiftshader
However after starting up the editor, it seems to have changed it to:
hw.gpu.enabled=no hw.gpu.mode=off
But at least it starts up the AVD now!
Trying to understand colour grading and exposure: Workflow & edits
In this video, beginning at 9:28, Color Grading Central goes through how to make video color grading and light editing in Davinci Resolve 16: https://www.youtube.com/watch?v=NoyDMKqo80U
Now colour grading video is not something I've ever done, but it so happened I watched this video on the topic and I realised that the info contained might be especially helpful for those of us who just post images and videos occasionally, to a at least get the bascis right.
So here's how I interpret the info in the video: Correcting the color and exposure in a video or image is a lot about using the available dynamic range on screen and in the human eye. In that way the material that you are presenting is using as much as possible of the viewer's perceptual space, so to speak.
1. Start with adjusting the exposure. This means adjusting the darkest shadows to be near black (since then we are then using as much as possible of the perceptual space available).
2. After that, adjust the highlights to near white.
3. After that, the midrange probably sits a bit too high in the image. Adjust the curves so that the midrange spreads out across the perceptual space to give the most detail.
4. Adjust the white balance. Find an area in the image that is supposed to be white, and use that as a reference point to white (in the 1980s I did some video, and back then you would white balance the video camera by pointing it at a white paper and press the "white balance" button)
5. Adjust the saturation of the image, by analysing how much there is and then e.g. increase it, again to fill up the perceptual space.
Bonus point, there is an aestethic called "orange/teal" which gives faces a special colour that pops against the background.
In professonal video, it seems you often record images with an exposure curve that is unnatural, but preserves the most dynamic. That is, you always need to colour grade in post to get back to natural. This unnatural curve is called "log profile" or "flat profile". The logic seems similar to audio technologies such RIAA correction in record players, and Dbx or Dolby noise reduction: You record in a compressed or expanded way, and then in these audio cases recompensate at playback to improve the signal to noise ratio..
One of the world's best video editors, on Ubuntu for free!
Video editing on Linux: Blackmagic's Davinci Resolve, one of the world's best video editors—running on my Ubuntu Linux laptop for the price of nothing. Incredible!
#YearOfTheLinuxDesktop
Click to view full-size image… — Size: 921.5 kB
Gramtropy — a way to make pronouncable passwords with defined entropy
https://github.com/sipa/gramtropy
Pronouncable passwords are a heck of a lot easier to read-type.
"[Gramtropy] aims to solve the problem of generated passwords that are pronouncable according to arbitrary rules, while simultaneously guaranteeing a given security level (in bits)"
How to tell NetworkManager (i guess?) to use a VPN for a connection on Ubuntu
Set it in nm-connection-editor. If that program does not exist on your system, install it.
If you need to change or create volumes on an LVM system, use lvm
The lvm command line program at least on Ubuntu, is well documented with lots of help inside of the shell that is created when you type sudo lvm
LVM is a way of organizing disks into volumes on i.a. Linux systems
Bruce Schneier on quantum computers, encryption and the future
Great quantum breaking overview by Schneier:
"Maybe the whole idea of number theory—based encryption […] is a temporary detour based on our incomplete model of computing"
"Symmetric cryptography is so much nonlinear muddle, so easy to make more complex"
https://www.schneier.com/essays/archives/2018/09/cryptography_after_t.html
Navigo.js works as replacement router for Riot.route in Riot4.js
The "Riot route" router of the Riot project, does not work with Riot.js 4 at the time of this writing. It had to be switched out and I settled for Navigo.js.I have not used it extensively , but here are the changes I had to make, including explicitly unmounting components and respecting that riot.compile is now asynchronous and separate. The code below is for the on-the-fly compiling:
Before with Riot3.js and Riot.route
<!-- Load riot live compiler for on-the-fly compiling, it compiles automatically --> <script src="http://cdn.jsdelivr.net/npm/riot@3.13/riot+compiler.min.js"></script> <!-- Load riot's router --> <script src="https://cdn.jsdelivr.net/npm/riot-route@3.1.4/dist/route.js"></script> route('login', function (name) { riot.mount('div#mainview', 'login') }) route('profile', function (name) { riot.mount('div#mainview', 'profile') }) route('mytasks', function (name) { riot.mount('div#mainview', 'mytasks') }) route.start(true) route('login')
And now with Riot4.js and Navigo
<!-- Load riot live compiler for on-the-fly compiling, it does not compile automatically --> <script src="https://cdn.jsdelivr.net/npm/riot@4/riot+compiler.min.js"></script> <!-- Load the navigo router --> <script src="https://cdn.jsdelivr.net/npm/navigo@7.1.2/lib/navigo.min.js" integrity="sha256-EfgFBwdiJuG/NJPYFztHuhSHB1BP4y2yS83oTm6iP04=" crossorigin="anonymous"></script> <!-- Configure the router and load initial route --> <script> const router = new Navigo(null, true); riot.compile().then(() => { riot.mount('#mainview', {}, 'login') }).then(() => { router .on({ 'login': function () { riot.unmount('#mainview', true) riot.mount('#mainview', {}, 'login') }, 'profile': function () { riot.unmount('#mainview', true) riot.mount('#mainview', {}, 'profile') }, 'mytasks': function () { riot.unmount('#mainview', true) riot.mount('#mainview', {}, 'mytasks') } }) .resolve() router.notFound(function (params) { riot.mount('#mainview', {}, 'login') }).resolve() })
Finding a good one-piece, clip-on voice recorder (dictation recorder)
Up to €/$/£200 I have found these candidates:
- Sony ICD-TX800 at around 200 €/$/£, a bit on the expensive side
- Olympus VP-10 at around 100 €/$/£, great sound according to Youtube videos, but I've tried the clip and it slides off of garments, so it is out of the race
- Sony icd-tx650 at around 150 €/$/£, seems to have built-in compression that gives a weird pumping effect according to a Youtube video. But this video shows it working great
Background
As an extra precaution, I like to mic myself up with an extra device when I do a presentation or lecture that is recorded to video. It should be:
- A self-sufficient unit
- Discrete and small enough to not draw questions or opinions (but can be clearly visible)
- Out of the way enough to not irritate the person who mics me up with the usual gear
- Equipped with a strong enough clip to stay put in different positions
Another use case is for micing up a person I would interview. In that case it should be:
- Easy enough to place on any garment so that a good recording can be obtained
- Look classy enough so that the subject does not feel uncomfortable with say a taped-together contraption
keywords: dictaphone
A report on firmware/OS hardening in IoT devices
"the more area covered, the better the binary hardening (on average)." Synology seems to have better hardened IoT devices than others, Cyber-ITL takes a look at 22 brands,
Click to view full-size image… — Size: 51.8 kB
OpenWRT looks better than DD-WRT too.