Posts
4494
Following
316
Followers
475
Linux kernel hacker and maintainer etc.

OpenPGP: 3AB05486C7752FE1

Jarkko Sakkinen

Edited 1 year ago

Migrated from #neovim back to #vim after several years of use because:

  1. I neither need nor use LSP.
  2. I don’t need two scripting languages in a text editor.
  3. Neovim #plugin ecosystem is a dependency hell.
  4. Neovim #plugins are fancy but that results in also a fancy configuration to maintain.
  5. I don’t mind a slow release cycle. My vim workflow hasn’t changed for ages.
  6. When logging into remote machines, an off-the-shelf vim installation is almost guaranteed.
  7. Even if neovim is installed to a remote machine, it usually fails to load my configuration, given the rapidly changing upstream and plugins requiring always the bleeding edge.
  8. I learned #vimscript in 1998 before I had even heard about #lua, and it is more comfortable programming environment for me :-) Before 1998 I was using #qedit in MS-DOS.
  9. For local IPC with neovim, a Python package neovim-remote is required. Vim has full local IPC workflow builtin.
1
1
5
Edited 1 year ago

use chips for their "ghost extracting machine". That's for sure an ESP32 DevkitC board from on the movie!

I love these kind of details in pictures. Like for example in Tron Legacy when you can see the output from a Unix history command, or a guy using emacs.

Do you know about more examples like these?

1
2
1

Equality, respect, freedom are at the heart of our Union 💜💚💛 ❤️

This Saturday, will culminate with the Pride Parade in Thessaloniki 🇬🇷, marking the end of – a month of celebration and activism.

But our work to promote equality, inclusivity and respect for all, continues beyond this month.

Today and every day, let's build together a world where love knows no borders, and everyone can live freely and authentically.

Our LGBTIQ Equality Strategy: https://europa.eu/!y3Qk9m

0
2
1

Jarkko Sakkinen

Edited 1 year ago

I started my personal fork of NNN called ZZZ, i.e. i pushed the blocks 90 degress ;-)

https://codeberg.org/jarkko/zzz

I’m not a fan of forks but the upstream seems to be quite broken in terms of pragmatic decision making so it would take me probably literally years to get anything changed over there.

I pushed my sorting code for inverse selection over there too: https://codeberg.org/jarkko/zzz/commit/f6904ae23f4a785ceb6412b19575d690d1dcc191

Release plan:

  1. s/NNN_/ZZZ_/ (i.e. allow both to be installed)
  2. Replace the remaining “qsort” shenanigans and compilation options with heap sort (for inverse selection O(n) radix sort is the best possible option).
  3. Get rid of this junkyard of patches by going through them and either applying or deleting: https://codeberg.org/jarkko/zzz/src/branch/main/patches
  4. Get rid off as many compilation options as possible. Each should be evaluated and for the most part pick a single viable option.
  5. Create build.zig replacing Makefile but other than that zero Zig code.

I don’t even feel like that I’m actually making a fork here because the current upstream has forks as a features given patches/ ;-)

#nnn #zzz

0
0
1

Jarkko Sakkinen

ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic errors) in NeoVim 0.6.0+ and Vim 8.0+ while you edit your text files, and acts as a Vim Language Server Protocol client.

https://github.com/dense-analysis/ale

#neovim

1
1
0

Jonathan Corbet

Daniel Bristot de Oliveira passed away a few days ago at far too young an age. Some of his associates have just asked us to publish their memories of him:

https://lwn.net/Articles/979912/

What an incredible loss.
0
15
21

Jarkko Sakkinen

Edited 1 year ago

I put my old Unprivileged #Nix notes to Medium so that I won’t loose them by mistake: https://medium.com/@jarkko.sakkinen/unprivileged-nix-2c9f06b99f8e

I.e. how to get a fresh and most recent userland to any remote Linux system that you have SSH access to when exactly two contraints are met:

  1. User NS is ON.
  2. PID NS is ON.

Or to put in other words: Nix Home Manager without NixOS recipe…

0
1
1

Jarkko Sakkinen

did not know that this was to become a literal truth when the song came out https://www.youtube.com/watch?v=NWxISwEBU0U
0
0
1

Jarkko Sakkinen

X aka "never ever touch this crate" tag ;-) That is how I literally interpret it.

#Rust #RustCrypto #rustlang
1
1
8

ferris_gesture crates.io celebrates its 10 year anniversary today! 🎉

On 2014-06-25 Alex Crichton created the initial commit in the crates.io git repository: https://github.com/rust-lang/crates.io/commit/54cfc8d

A lot has happened since then, and the current crates.io team would like to say "thank you!" to all current and former contributors to crates.io and the ecosystem around it! 🤗

1
3
1

Jarkko Sakkinen

my first ever pull request for #nnn: https://github.com/jarun/nnn/pull/1904
0
0
0

Jarkko Sakkinen

Edited 1 year ago

If #Radare2 vs #Rizin makes no sense to you, perhaps #Python will. It is pretty solid tool for driving #Capstone :-)

Transcript:

raw = open('/home/jarkko/work/nnn/nnn', 'rb')
from elftools.elf.elffile import ELFFile
elf = ELFFile(raw)
symtab = {s.name: s for s in (elf.get_section_by_name('.symtab')).iter_symbols()}
sym = symtab.get('move_cursor')
addr = sym['st_value']
size = sym['st_size']
text = elf.get_section_by_name('.text')
offset = addr - text['sh_addr'] + text['sh_offset']
raw.seek(offset)
payload = raw.read(size)
from capstone import Cs, CS_ARCH_ARM64, CS_MODE_ARM)
disasm =  Cs(CS_ARCH_ARM64, CS_MODE_ARM)
for opcode in disasm.disasm(payload, addr):
    print(f"0x{opcode.address:x}:\t{opcode.mnemonic}\t{opcode.op_str}")

Just got a bit familiar this. The main benefits are obviously:

  • Recursive traversal #disassembly (vs linear sweep style in objdump)
  • Re-usable analysis
  • No boundaries how you can post-process the analysis (or visualize it)

I find this super fascinating!

3
3
1

Jarkko Sakkinen

Edited 1 year ago

After reading #Ueber’s post about their use of #Zig, I tried it to random C and C++ projects:

export CC="zig cc"
export CXX="zig c++"
make

At least for relatively small projects such as nnn this seems to result working results. Still quite impressive. Next iteration would to replace Makefile with build.rs.

Also one tool that I like, ncdu, has successfully executed such conversion: https://dev.yorhel.nl/ncdu

I think I’ll try Linux with tinyconfig next by using this hacky script as basis next:

#!/usr/bin/env bash

set -e

make defconfig
scripts/config --set-str CONFIG_INITRAMFS_SOURCE "initramfs.txt"
yes '' | make oldconfig

cat > initramfs.txt << EOF
dir /dev 755 0 0
nod /dev/console 644 0 0 c 5 1
nod /dev/loop0 644 0 0 b 7 0
dir /bin 755 1000 1000
slink /bin/sh busybox 777 0 0
file /bin/busybox initramfs/busybox 755 0 0
dir /proc 755 0 0
dir /sys 755 0 0
dir /mnt 755 0 0
file /init initramfs/init.sh 755 0 0
EOF

mkdir initramfs

curl -sSf https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/busybox-static-1.36.1-r25.apk | tar zx --strip-components 1
cp busybox.static initramfs/busybox

cat > initramfs/init.sh << EOF
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
sh
EOF

It is from my old’ish post: https://social.kernel.org/notice/AgzHqrYFGplZuYr3gG

0
0
0

PipeWire 1.2 Released With Async Processing, Explicit Sync & Other Features

PipeWire 1.2 was christened today as the latest major feature update to this solution common to the modern Linux desktop for managing audio/video streams...
https://www.phoronix.com/news/PipeWire-1.2-Released

0
2
1

Jarkko Sakkinen

another classic piece of software with *uncluttered* Tk GUI: #gitk :-) #git
0
0
0

Jarkko Sakkinen

#Python #IDLE is still rockin' :-) Always have it open as my calculator (and doing binary analysis and whatnot).
0
2
2

Jarkko Sakkinen

Edited 1 year ago
rpm -qpR signal-desktop-7.13.0.aarch64.rpm 
/bin/sh
/bin/sh
at-spi2-core
gtk3
libXScrnSaver
libXtst
libnotify
libuuid
nss
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
xdg-utils

I don’t get the #xscreensaver dependency that #Signal has…

2
0
0

Jarkko Sakkinen

Edited 1 year ago

Just an observation but if considering testing ARM64-Linux, Apple is actually a “budget choice” compared to:

  1. Low-volume Linux ARM64 laptops (few available).
  2. ARM64 server racks.

Especially if you take -1 gen Apple hardware, which you can get for bargain prices pre/post the next WWDC ;-) The laptop seen in previous screenshot is M1 Pro, and it is quite nice and fast , and that is even -2 gen.

#arm64 #linux #hardware

1
3
4
Show older