Posts
3459
Following
207
Followers
343
Linux kernel maintainer. Compilers and virtualization at Parity Technologies.

Jarkko Sakkinen

Nice trick in Aerc that I just learned to share IMAP account for personal and kernel.org account:

~ main
❯ cat .config/aerc/folder-maps/kernel.map 
personal = INBOX
INBOX = kernel

~ main
❯ grep folder\-map .config/aerc/accounts.conf
folder-map		= ~/.config/aerc/folder-maps/kernel.map

Should be self-explanatory ;-)

#linux #kernel #aerc #imap #email

1
1
1

Jarkko Sakkinen

Edited 4 months ago

One of the most important things to understand in Vim are @: and @@. After learning them, there is rarely need mapping ex-mode stuff to keyboard shortcuts.

Already plain vim has two languages: the operator language and vimscript. By learning all the cool tricks of the former, it is often case that there is no need to do anything with the latter. Often plugins are installed because of lack of knowledge in the operator-language ;-)

#vim #neovim

1
0
2

Jarkko Sakkinen

On #macOS least tedious way to run ALSO full #VM's IHMO (I don't care about #Docker): https://orbstack.dev/

#Apple sucks deeply providing #developer experience but this seems make things somewhat usable. Invention in #orbStack is that VM's use bind mounts (i.e. a bit like #WSL2).

In addition it has great preset gallery, got my Fedora up and running within 3 minutes.
1
1
0

Silva: How to use the new counted_by attribute in C (and Linux)

https://lwn.net/Articles/982275/

0
4
0

Jarkko Sakkinen

Edited 4 months ago

#rustc blows up completely when replacing a source file under ~/.cargo/registry/src with random data. It really should do better. This is not appropriate way to signal memory corruption, shouldn’t memory safety take care of this? :-) #rust #rustlang

2
1
1

Jarkko Sakkinen

Edited 4 months ago

This is how I integrate rusty tags in my .zprofile:

# rusty-tags
[ `command -v rustc` ] && RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/library/
[ -d $RUST_SRC_PATH ] && export RUST_SRC_PATH

I still prefer #ctags over LSP.

#rust #rustlang

0
0
1

Jarkko Sakkinen

A great mental model for #git reflog:

  1. Git tree represents commit history.
  2. Reflog represents the linear history of Git events, i.e. changes to 1.

#linux #kernel

0
2
1

Jarkko Sakkinen

Edited 4 months ago

Another often ignored #git #hack is using either -Xtheirs or -Xours when picking/applying/rebasing commits.

Often it is easier to be brutal and then review carefully and add possible missing bits.

#linux #kernel

0
1
1

Jarkko Sakkinen

Edited 4 months ago

I get a feeling from my feed lately that not that many kernel dev’s are too familiar with git reflog, which is essential tool for solving exactly the situations of e.g.

  1. Being in-between git am.
  2. Being in-between git rebase.
  3. Being in-between git cherry-pick.

Ignoring git merge because I’ve never used it in my career for any possible kernel dev task ;-)

It is really worth of the effort learn this subcommand properly. You won’t regret the investment.

Reflog a local cache and/or timeline of commit ID change’s at the tip. It is not stored to history and is completely ignorant, orthogonal and disjoint from whatever state the Git tree might be in.

#git #linux #kernel

1
5
4

Jarkko Sakkinen

Listing monospace fonts with #fontconfig:

❯ fc-list :mono : family | sort -u
Andale Mono
BlexMono Nerd Font
BlexMono Nerd Font,BlexMono Nerd Font ExtraLight
BlexMono Nerd Font,BlexMono Nerd Font Light
BlexMono Nerd Font,BlexMono Nerd Font Medium
BlexMono Nerd Font,BlexMono Nerd Font SemiBold
BlexMono Nerd Font,BlexMono Nerd Font Text
BlexMono Nerd Font,BlexMono Nerd Font Thin
BlexMono Nerd Font Mono
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono ExtraLight
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono Light
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono Medium
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono SemiBold
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono Text
BlexMono Nerd Font Mono,BlexMono Nerd Font Mono Thin
Courier New
Liberation Mono
MesloLGLDZ Nerd Font
MesloLGLDZ Nerd Font Mono
MesloLGL Nerd Font
MesloLGL Nerd Font Mono
MesloLGMDZ Nerd Font
MesloLGMDZ Nerd Font Mono
MesloLGM Nerd Font
MesloLGM Nerd Font Mono
MesloLGSDZ Nerd Font
MesloLGSDZ Nerd Font Mono
MesloLGS Nerd Font
MesloLGS Nerd Font Mono
Nimbus Mono PS
Noto Color Emoji
Source Code Pro
Source Code Pro,Source Code Pro Black
Source Code Pro,Source Code Pro ExtraLight
Source Code Pro,Source Code Pro Light
Source Code Pro,Source Code Pro Medium
Source Code Pro,Source Code Pro Semibold

Had to trial and error for a while so consider no to myself ;-)

0
0
1

Jarkko Sakkinen

One thing I don't get in #Rust and #Go is that #Java and various #JVM -languages have pretty much delivered backend all the goodies that the newer languages promise to deliver 🤷 I call this Yogurt syndrome because it is a product that never really changes but still new versions arrive to the market.
4
2
1

Jarkko Sakkinen

Edited 4 months ago

#EU vs #browser vendors: “one has to be able to pick browser and search engine”. Actually that does not solve anything, and shows only that politicians know nothing about #software. More effective enforcement would be “one has to be able to pick a provider for the sync feature of a browser”.

Two relatively recent incidents that have limited the choice here:

  1. #Chromium was blocked from #Google sync.
  2. #GNOME Web was blocked from #Firefox sync.

#politics

1
3
0

Jarkko Sakkinen

So, in case you’ve ever wondered, this is how you map anonymous memory with vm-memory crate:

//! Copyright (c) Jarkko Sakkinen 2024

#![deny(clippy::all)]
#![deny(clippy::pedantic)]

use vm_memory::{GuestAddress, GuestMemoryMmap};

fn main() {
    let mem: GuestMemoryMmap<()> =
        GuestMemoryMmap::from_ranges(&[(GuestAddress(0u64), 8192usize)]).unwrap();
    println!("{:?}", mem);
}

The type parameter is for Bitmap.

I’ll do a small test program for each type of memory that we need in Enarx and after that make the changes to the project itself. Changes are simple but the code base is large so this is fastest way to formalize a decent patch.

So next step is /dev/kvm test.

#rust #rustlang #mmap #kvm

1
1
0

Jarkko Sakkinen

Edited 4 months ago

#Anonym has the same #privacy bug as #Signal:

  1. Claim that they run confidential computing environment.
  2. Does not periodically piggyback x.509 of the CPU attestation back to the browser so that it could be compared to the #Intel and #AMD CA’s.

Objectively we can thus come to the conclusion that it is belief system based #security.

Especially this is weird given the collaboration with a browser vendor.

Even for AGPL code confidentiality can be faked by emulating necessary opcodes with a modified QEMU.

The whole core idea of confidential computing is based on exactly to the ability for client to verify that the payload is unmodified. This is just fake marketing.

The security promise is exactly as truthful as it was for ANON phones that FBI sold to crooks ;-)

#Mozilla #Firefox #infosec

0
0
0

Jarkko Sakkinen

Compiled #enarx first time for a long time. I'm looking into how feasible it would be to switch the ad-hoc mmap abstraction to rust-vmm/vm-memory crate. #Rust #rustlang
1
1
0

Jarkko Sakkinen

#foot is a super nice #terminal that I just learned to exist: https://codeberg.org/dnkl/foot

#wayland only. has all the modern mandatory stuff but not extras.
4
2
8

Jarkko Sakkinen

Edited 4 months ago
During holidays I found about #IBM Plex: https://www.ibm.com/plex/

Love this font! Best thing from IBM in years.
1
1
4

Jarkko Sakkinen

Edited 4 months ago
I'd guess that some years and we are predestined to see a triumph of #AI exploitation.

I'd guess there's opportunities in that area for behavioral exploitation, making it do unwanted things.

Even more so there's opportunities for scavenging "confidential leaks" from large LM's, to downright reverse engineering. Sometime in-house codebase might be seeded by mistake to a public LM...

Or hackers could exploit your network and instead of copying any data they would use LM as an indirect path to scavenge good quality enough information to meet the goals.

If I was working on offensive security like for some intelligence department, I'd put a lot of resources on exploiting the AI assistants for instance. Exploiting that functionally would open countless doors.

#infosec
0
1
0

Jarkko Sakkinen

Edited 4 months ago
Of all of call codebases I've seen, compiled and successfully tested including Symbian OS, AOSP, Chromium etc. I think just as a build #Servo is one of the worst I've seen so far. It has a nice site, progress and everything but IMHO getting nice and easy build should be a primary target.

I'll give another shot tomorrow on compiling that mess :-)

I tried for fun to do my first trials on macOS because I thought that it is Rust so everything must be great. Was a mistake that I still regret ever doing that. I don't even want to begin how badly planned it is. I'll give it a shot with my Fedora system next time.
0
0
0

Jarkko Sakkinen

Edited 4 months ago
I already said this once but if you do your work in #GNOME, for most casual business use GNOME Web is a functional tool. And it has the #Firefox sync.

I turn Firefox on, only on my leisure time. The name rings to me like s.. night club in 1st place.... i.e. not something I should eagerly use for committing any business.

Has been pretty obvious equation in my case longer than the ad-gate.

It reminds to be seen ofc whether/if Mozilla starts to do same with Firefox as Google did with Chrome, i.e. I would not hold my breath of the sync feature working forever in this open manner.
1
0
3
Show older