Skip to content

Instantly share code, notes, and snippets.

@akanehara
akanehara / elem.pl
Created February 17, 2021 02:23
HTTP::Message などで使われているアクセッサ実装ヘルパー
sub foo { shift->_elem('_foo', @_); }
sub bar { shift->_elem('_bar', @_); }
sub _elem
{
my $self = shift;
my $elem = shift;
my $old = $self->{$elem};
$self->{$elem} = $_[0] if @_;
return $old;
@akanehara
akanehara / README.md
Last active April 5, 2020 09:28
https://code-for-philly.gitbook.io/chime/ の更新差分確認スクリプト

Usage: code-for-philly.bash

https://code-for-philly.gitbook.io/chime/ をダウンロードし, 過去のダウンロード分があれば Gitbook JSON の変更有無を比較します. もしも変更があった場合は日付ディレクトリに保存され,変更差分を確認するための diff コマンドラインを stdout に出力します.

stdout に出力された内容は code-for-philly.bash.log にも保存されます.

注意: ログや日付ディレクトリはカレントディレクトリ下に作成されます!

code-for-philly.bash.log の出力例

@akanehara
akanehara / keyrepeat.mac.bash
Created April 5, 2019 06:48
Macのキーリピート高速化
defaults read -g KeyRepeat
defaults write -g KeyRepeat -int 1
defaults read -g InitialKeyRepeat
defaults write -g InitialKeyRepeat -int 10
@akanehara
akanehara / emacs-note.md
Last active February 15, 2019 02:35
emacsおぼえがき

バッファとウィンドウ

emacsでファイルを開くとは、バッファを作ってファイルをロードすること。 バッファはウィンドウに割当てることで表示や編集ができる。バッファとウィンドウは必ずしも1対1ではない。 バッファを3つ開いている状況で、ウィンドウは2つしかない、という状況や、逆にバッファは1個だがウィンドウが3つ、という状況もありうる。

コマンド

コマンド 機能
@akanehara
akanehara / iptables.bash
Last active November 28, 2022 02:51
iptablesスニペット
# 接続先で遮断
iptables -I INPUT -p tcp --tcp-flags ALL,SYN SYN -s ${SRC_ADDR} --dport ${PORT} -j DROP
iptables -I INPUT -p tcp -s ${SRC_ADDR} --dport ${PORT} -j REJECT
# 接続元で遮断
iptables -I OUTPUT -p tcp -d ${DEST_ADDR} --dport ${PORT} -j REJECT
iptables -I OUTPUT -p tcp --tcp-flags ALL,SYN SYN -d ${DEST_ADDR} --dport ${PORT} -j DROP
# 何か入力するまで遮断
{ CMD='sudo iptables $op OUTPUT -p tcp --dport 9200 -j REJECT'; op=-I;eval "$CMD"; read; op=-D; eval "$CMD" ;}
@akanehara
akanehara / aehttp.pl
Last active August 24, 2018 09:34
AnyEvent::HTTPを使った簡易的なcURLのようなもの
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename qw/basename dirname/;
use Getopt::Long qw/:config no_ignore_case gnu_compat/;
use Pod::Usage;
use AnyEvent::HTTP;
use AnyEvent::Socket;
@akanehara
akanehara / two-beats-triple.md
Last active April 16, 2018 06:38
2拍3連について

4/4の三連符をひらがなで書き出す(声に出そう)

| タツタ タツタ タツタ タツタ |

空白は読みやすさのためで、間をとるわけではないことに注意する。 声に出すときは次のように続けて読む。どの文字も同じ長さ。

@akanehara
akanehara / Foo.pm
Created January 5, 2018 03:08
ストリーミングPlackアプリケーションとMiddlewareのスケルトン
package Plack::Middleware::Foo;
use parent qw( Plack::Middleware );
sub call {
my ($self, $env) = @_;
warn "middleware pre\n";
my $res = $self->app->($env);
warn "middleware post\n";
return Plack::Util::response_cb($res,
sub {
@akanehara
akanehara / hello.psgi
Created December 26, 2017 00:48
PSGI
#!/usr/bin/perl
use strict;
use warnings;
my $app = sub {
[200, [
'Content-Type' => 'text/plain',
], [
"hello, world\n",
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename qw/basename dirname/;
use Getopt::Std;
use IO::Socket;
use IO::Select;