Posts
4399
Following
315
Followers
467
Software Engineer at Opinsys Oy
Entrepreneur at Siltakatu Solutions Oy

OpenPGP: 3AB05486C7752FE1

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

Jarkko Sakkinen

0
0
4

Jarkko Sakkinen

Rick Beato is like Anthony Bourdain of music, favorite tubers: https://www.youtube.com/watch?v=1bZ0OSEViyo
0
0
1

Jarkko Sakkinen

#note to myself, not throughly thought out...

Useful #kernel feature for #hibernate might be a file that would tell the number of pages required for hibernate.

The "O-figure" for hibernate is AFAIK O(n+sqrt(n)) but exact number is dependent on kernel internals but in theory could be calculated by simulating the process without committing.

Instead of swap it might also be useful to have "spare" volume of ~100 GB for doing hibernate and e2scrub type of operations, which could have its own design for encryption etc. Swap for swapping overcommitted memory more than few at most GiB is not that useful these days.

#linux
0
1
1
Show older