Skip to content

Instantly share code, notes, and snippets.

(defvar MOJIWARN-RE
(rx (| (any (?\u2F00 . ?\u2FDF) ; 康煕部首
(?\u2E80 . ?\u2EF3) ; CJK部首補助
(?\uFE10 . ?\uFE19) ) ; 縦書き用句読点
(: nonl ?\u3099) ; NFDの濁点
(: nonl ?\u309A) ; NFDの半濁点
(category alpha-numeric-two-byte) ; 全角英数字
(: upper upper lower) ))) ; double capitalize
(defvar MOJIWARN-FONT-LOCK-KEYWORDS
#include <stdio.h>
int _add(int a, int b){ return a+b; }
int _sub(int a, int b){ return a-b; }
int _mul(int a, int b){ return a*b; }
int _div(int a, int b){ return a/b; }
struct { char c; int (*f)(int, int); } ops[] =
{ {'+', _add}, {'-', _sub}, {'*', _mul}, {'/', _div}};
これはbash-5.2にbash-5.1のリリース以降で追加された新機能の簡潔な説明です。いつもどおり、完全な説明を探しているのであればマニュアルページ(doc/bash.1)が目的の場所です。
1. Bashの新機能
a. bashの mallocは16バイト境界でアラインされたメモリを返します。
b. 組込みコマンドreadのタイムアウトのために、新しい内部のタイマーフレームワークが使われています。
c. コマンド置換をパースするコードは、パーサーを再帰的に呼び出してパースされたコマンドからコマンド文字列を再構成するよう書き直されました。これによりよりよい文法チェックと、早期のエラー検出が可能になります。これにともない、コマンド置換のパースが完了して読み込むべきヒアドキュメントが残っている場合に、シェルは警告メッセージを表示して、ヒアドキュメントの中身を現在の入力ストリームから読み込みます。
#!/usr/bin/env ruby
nums = [2, 3, 7, 9]
nums.permutation do |ns|
%i(+ - * /).repeated_permutation(ns.size - 1) do |ops|
begin
x, *xs = ns
z = ops.zip(xs).inject(Rational(x)) {|r, v| r.send(*v) }
p ns.zip(ops).flatten.compact if z == Rational(10)
これはbash-5.1にbash-5.0のリリース以降で追加された新機能の簡潔な説明です。いつもどおり、完全な説明を探しているのであればマニュアルページ(doc/bash.1)が目的の場所です。
1. Bashの新機能
a. `bind -x'は異なる編集モードやキーマップごとに異なるキーバインディングをサポートするようになりました。
b. Bashはサブシェルや`bash -c'からコマンドを実行したときにフォークの回数を最適化するよう試みます。
c. ヒアドキュメントおよびヒアストリングでは、パイプのバッファサイズより小さければ展開したドキュメントにパイプを使うようになりました。大きければ元のようにテンポラリファイルを使います。
@emasaka
emasaka / NEWS_bash-5.0_ja.txt
Last active January 11, 2019 14:25
bash 5.0のNEWSの私訳
これはbash-5.0にbash-4.4のリリースから追加された新機能の簡潔な説明です。いつもどおり、完全な説明を探しているのであればマニュアルページ(doc/bash.1)が目的の場所です。
1. Bashの新機能
a. 組み込みコマンド`wait'は、最後に作られたプロセス置換の実行を待つようになりました。
b. Unix紀元(Epoch)から秒数に展開される変数EPOCHSECONDSがあります。
c. Unix紀元(Epoch)からのマイクロ秒数に展開される変数EPOCHREALTIMEがあります。
#!/usr/bin/env python3
# answer to http://ja.stackoverflow.com/questions/31353/python3-%e3%81%a7%e3%81%ae%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be%e3%81%b8%e3%81%ae%e5%a4%89%e6%8f%9b%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6
import re
def _parse_numrange(s):
m = re.search(r'\[(\d+)-(\d+)\]', s)
return m.group(1), m.group(2)
@emasaka
emasaka / NEWS-bash-4.4-j.txt
Last active March 16, 2018 03:49
bash 4.4のNEWSの私訳
これはbash-4.3のリリース以降bash-4.4に追加された新機能の簡潔な説明です。
いつもどおり、完全な説明を探しているならマニュアルページ (doc/bash.1)
が適切です。
1. Bashの新機能
a. #defineでの設定項目として、シェルが-pオプションなしでsetuidされて
動作していて実uidへのsetupdが失敗したときにシェルが終了するよう設
定できるようになりました。
@emasaka
emasaka / md-hide-codes.el
Created April 23, 2016 13:30
hide code blocks in Markdown by outline.el
;; md-hide-codes.el:
;; hide code blocks in Markdown by outline.el
(require 'outline)
(defun md-hide-codes ()
"hide code blocks in Markdown"
(interactive)
(save-excursion
(goto-char (point-min))
@emasaka
emasaka / nagaino.rb
Created January 27, 2016 01:46
Termtter plugin for nagaino
# -*- coding: utf-8 -*-
require 'net/http'
require 'cgi/util'
require 'json'
require 'open-uri'
require 'regexp_trie'
URL_SHORTTERS_RE = open('http://nagaino.herokuapp.com/hosts.json') do |io|
/(?:#{RegexpTrie.union(JSON.load(io)).source})[\w]+/