Skip to content

Instantly share code, notes, and snippets.

@tsuchm
tsuchm / howto-build-shellinabox.md
Last active April 8, 2025 04:00
shellinabox-install-playbook.yml

Because shellinaboxd RPM package is removed from EPEL official repository, it is necessary to build it by ourselves. Follow the following steps.

  1. Download the source RPM package from: https://src.fedoraproject.org/rpms/shellinabox

  2. Install it on your home directory:

$ rpm -i shellinabox-2.20-26.fc43.src.rpm
;; PlemoJPフォント https://github.com/yuru7/PlemolJP の Light を標準フォントとして使う場合の設定
;;
;; ~/.Xresources には以下のように書く.
;; Emacs.Font: PlemolJP Console Light-18
;;
;; これで PlemolJP Console Light が全体に使われるようになる.
;; 個人的な好みとして,bold / bold-italic が少し太すぎたので,以下のように補充設定をして調節しておく.
(when (display-graphic-p)
(set-face-attribute 'bold nil :family "PlemolJP Console Medium" :weight 'normal)
(set-face-attribute 'bold-italic nil :family "PlemolJP Console Medium" :weight 'normal :slant 'italic))
# Python implementation of https://aclanthology.org/P01-1064.pdf
#
# How to use:
# from textseg import textseg
# segments = textseg(texts)
from math import log2
import unittest
@tsuchm
tsuchm / gnus-resume.el
Last active October 23, 2023 11:33
Ridiculous training gear for users to prevent too frequent activation of Gnus
(defun gnus-resume (&optional force)
"Resume the last Gnus session or start a Gnus session."
(interactive "P")
(when (or force
(memq major-mode '(gnus-group-mode gnus-summary-mode gnus-article-mode message-mode lsdb-mode))
(let* ((key (+ ?a (random 26)))
(inp (read-char (format "Really start or resume Gnus session? Type \"%s\": " (string key)))))
(or (char-equal key inp)
(progn
(message "No reading news is good news")
@tsuchm
tsuchm / my-make-frame-command.el
Last active May 10, 2023 05:55
Extension of make-frame-command to generate a frame on visible position
;; 2つ目のフレームを作成する時,1つ目のフレームと重なって表示されてしまうため,重ならないよう場所を指定する
(defun my-make-frame-command ()
"Make a new frame, on the same terminal as the selected frame.
If the terminal is a text-only terminal, this also selects the
new frame."
(interactive)
(if (display-graphic-p)
(let ((left (cdr (assq 'left (frame-parameters (selected-frame)))))
(width (+ (frame-pixel-width) (frame-scroll-bar-width))))
(make-frame (list
--- a/internal/pkg/util/fs/mount/mount.go
+++ b/internal/pkg/util/fs/mount/mount.go
@@ -585,7 +585,10 @@
if sizelimit == 0 {
return fmt.Errorf("invalid image size, zero length")
}
- options = fmt.Sprintf("loop,offset=%d,sizelimit=%d,errors=remount-ro", offset, sizelimit)
+ options = fmt.Sprintf("loop,offset=%d,sizelimit=%d", offset, sizelimit)
+ if fstype == "ext3" {
+ options += ",errors=remount-ro"
@tsuchm
tsuchm / playlist.pl
Created November 14, 2022 13:18
Script to parse AVCHD playlist format
#!/usr/bin/perl
=head1 OBJECT OF THIS SCRIPT
Panasonic 製デジタルビデオカメラが,SD カードに動画を格納する時,動画データのファイル名は連番になっている.
これを,日付(8桁)-連番というファイル名に変更するために必要な情報を取り出す.
=head1 SYNOPSIS
perl playlist.pl PRIVATE/AVCHD/BDMV/PLAYLIST/00000.MPL
@tsuchm
tsuchm / sshuttle.service
Last active July 8, 2022 02:08
Systemd unit file to establish VPN with sshuttle command
# (0) Replace the gateway server name and the subnet address with your own values.
# (1) Put this file into ~/.config/systemd/user/sshuttle.service
# (2) Invoke `systemctl --user daemon-reload`
# (3) Invoke `systemctl --user start sshuttle.service`
[Unit]
Description=sshuttle
Requires=gpg-agent-ssh.socket
After=gpg-agent-ssh.socket
#!/usr/bin/perl
=head1 NAME
auto-responder - 受信したメールに自動返信する
=head1 SYNOPSIS
C<.forward> の中で
#!/usr/bin/python3
"""
Parallelize MeCab
$ wc -l corpus.txt
2761174 corpus.txt
$ time ./parallel-mecab.py corpus.txt >/dev/null
real 0m12.610s