Posts
4641
Following
318
Followers
484
Linux kernel hacker and maintainer etc.

OpenPGP: 3AB05486C7752FE1

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
1
0

Jarkko Sakkinen

Edited 1 year 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

Reflog be cleaned by git reflog expire --expire=all.

0
0
0

Jarkko Sakkinen

Edited 1 year 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
4
4

Jarkko Sakkinen

Edited 1 year ago
@ljs My estimate all kernel maintainers in Finland in any area would take about a single store bus to fill in. Not sure if @jani agrees with my estimate but this has been impression at least in conferences :-)
0
0
2
@hjvt Any input is welcome most welcome because memory management (in the sense of mapping it) is not the strong point of Rust's stdlib.

I just do bunch of test programs and that will hopefully converge to choice ;-)

Way test these is that I git grep just our call sites in Enarx and then make lowest-common denominator hello world out of it...

Thank you!
1
0
0

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
@TehPenguin In the backend it JVM does provide safe, concurrent and secure ecosystem and huge track record to back it up. I don't see any actual business reason to switch.

It neither has not made waves yet in the kernel, and it is not likely it will before GCCRS is in par with LLVM. Not saying that it never will but zero defconfigs is not a strong standing point.

The business interesting use I've seen has been WASM so far.
0
0
0
Sixel test. It is funny how much sixels have late years go appreciation when they were invented by DEC already in 1987, when they introduced VT-320 series of dummy terminals ;-)
0
0
0
@TehPenguin i also ignore all meme pic's, sorry ;-) i don't care about em.
1
0
0
@mhd Rust seems to have found its place as defacto for wasm, which I think appropriate use for it too.

I.e. security barrier involved with direct user input.
0
0
0
@mhd Its ideas became big through Objective-C kind of and influenced quite many languages over the years. World would not be the same without Smalltalk even tho it itself was not great success.

Java on the other hand is the most field-tested industry strength language in the backend. And its JIT is heavily optimized by the engineers of the CPU companies involved. It is not that great in the client and but there's no server workload in existence that would not have gone though the "Java exercise".

That said my fav desktop application Bitwig Studio is made with Java ;-) https://www.bitwig.com/
1
0
0
@TudbuT @orizuru Thanks for the qualitative opinion that I will ignore without reading it properly :-)
0
0
0
@elrohir All my password in Firefox sync are duplicates as browser sync works me only as a cache ;-)
0
0
1

@elrohir did not know this but neither big surprises here :-)

I have two-folded approach:

  1. My main secret/password vault is https://www.passwordstore.org/.
  2. I use sync features as password caches and empty them annually. So I have password “in rotation” in the browser.
1
0
0

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
1
1

Jarkko Sakkinen

Edited 1 year 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
1
0

Jarkko Sakkinen

Edited 1 year ago

@Dr_Emann Not fully yet understanding capabilities of vm-memory but enarx has two kinds of mappings:

  1. Actual mmaps. For these there was trait called Map but cannot recall what was the internal crate called.
  2. “Fake” mmaps inside e.g. SGX enclave just for markup with https://github.com/enarx/mmledger

So I’m looking into if I could extend vm-memory to provide the latter so then host/guest mmaps would have same parameters and two internal crates could be removed.

So lot’s of experimentation to do before it make sense to do anything for the actual project. If this draft of an idea would be possible with vm-memory, it would make doing the task whole a lot more feasible.

@rjzak

0
0
0
@Dr_Emann This is exactly why I experiment with these test programs before making any enarx changes ;-) Thanks for the tip.

I still have to play also with vm-memory too...
1
0
0

Turns out that vm-memory is WRONG crate for arbitrary mappings. E.g. it does not allows arbitray permissions for anonymous mappings. Instead mmap-rs is probably better idea:

// SPDX-License-Identifier: MIT
//! Copyright (c) Jarkko Sakkinen 2024

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

use mmap::MemoryMap;

fn main() {
    let mem = MemoryMap::new(0x2000, &[
        mmap::MapOption::MapReadable,
        mmap::MapOption::MapWritable,
        mmap::MapOption::MapExecutable,
    ]).unwrap_or_else(|_| std::process::exit(1));
    println!("{}", mem.len());
}

MapOption contains fields for file and similar stuff too.

2
0
0
Show older