This is an OpenPGP proof that connects my OpenPGP key to this Github account. For details check out https://docs.keyoxide.org/advanced/openpgp-proofs/
[Verifying my OpenPGP key: openpgp4fpr:C1ECE2E137194B7EBA587DB7BF020779A303663F]
| use parking_lot::RwLock; | |
| use std::ops::Deref; | |
| use std::sync::Arc; | |
| use std::time::Duration; | |
| #[tokio::main(flavor = "multi_thread", worker_threads = 64)] | |
| async fn main() { | |
| let lock = Arc::new(RwLock::new(())); | |
| //let mut addr = lock.deref() as *const RwLock<_> as *const usize; |
This is an OpenPGP proof that connects my OpenPGP key to this Github account. For details check out https://docs.keyoxide.org/advanced/openpgp-proofs/
[Verifying my OpenPGP key: openpgp4fpr:C1ECE2E137194B7EBA587DB7BF020779A303663F]
| # After modifying, run ./mkscr | |
| # Set root partition to the second partition of boot device | |
| part uuid ${devtype} ${devnum}:2 uuid | |
| setenv bootargs console=tty1 root=PARTUUID=${uuid} rw rootwait smsc95xx.macaddr="${usbethaddr}" | |
| load ${devtype} ${devnum}:${bootpart} ${kernel_addr_r} /Image | |
| load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} /initramfs-linux.img | |
| booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdtcontroladdr}; |
This device tree overlay removes the need for the userspace daemon retrogame to process button press on GamePi43, reducing input latency and removes a point of failure (I don't really trust that daemon from Adafruit to be error-free).
To compile the dts, install dtc and then run
dtc -I dts -O dtb -o gamepi43.dtbo gamepi43.dts
To install the overlay, copy the resulting gamepi43.dtbo to /boot/overlays/, and then add
A Python script to implement long-click-to-right-click emulation on Linux. Root permission needed (or you need udev rules to allow your user to write / read from evdev)
Usage:
python rce.py <name_of_your_tuchscreen>
Use xinput output to determine the name of your touchscreen
| const A: usize = 0; | |
| const B: usize = 1; | |
| const C: usize = 2; | |
| const D: usize = 3; | |
| const Q2_SELECTIONS: [usize; 4] = [C, D, A, B]; | |
| const Q3_SELECTIONS: [usize; 4] = [3, 6, 2, 4]; | |
| const Q4_SELECTIONS: [(usize, usize); 4] = [ | |
| (1, 5), (2, 7), (1, 9), (6, 10) | |
| ]; | |
| const Q5_SELECTIONS: [usize; 4] = [8, 4, 9, 7]; |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <sys/types.h> | |
| #include <sys/socket.h> | |
| #include <netinet/in.h> | |
| #include <linux/netfilter_ipv4.h> | |
| #include <unistd.h> | |
| #define BUFFER_SIZE 1024 | |
| #define on_error(...) { fprintf(stderr, __VA_ARGS__); fflush(stderr); exit(1); } |
| [global] | |
| trackers_file = /path/to/zeronet_trackers.txt |
I hereby claim:
To claim this, I am signing this object:
| 此API KEY为 Weico.Android 的API。复制后粘贴到BL的自定义API对话框的任意一个框框内即可(开头结尾不要带空格之类的,如果没反应,尝试将光标移到最后删除最后的不可见字符) | |
| SSMjExMTYwNjc5OjoxZTZlMzNkYjA4ZjkxOTIzMDZjNGFmYTBhNjFhZDU2Yzo6aHR0cDovL29hdXRoLndlaWNvLmNjOjplbWFpbCxkaXJlY3RfbWVzc2FnZXNfcmVhZCxkaXJlY3RfbWVzc2FnZXNfd3JpdGUsZnJpZW5kc2hpcHNfZ3JvdXBzX3JlYWQsZnJpZW5kc2hpcHNfZ3JvdXBzX3dyaXRlLHN0YXR1c2VzX3RvX21lX3JlYWQsZm9sbG93X2FwcF9vZmZpY2lhbF9taWNyb2Jsb2csaW52aXRhdGlvbl93cml0ZTo6Y29tLmVpY28ud2VpY286OkVFEE |