隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

初期ドラゴンボール

最近山手線でスタンプラリーをやっていたり、

 

ジョージアのキャンペーンをやっていたり、

 

ドラゴンボールの露出が多いように感じる。

 

なにかきっかけでもあったのかな?

 

先日見始めたNetflixドラゴンボールも今天下一武道会なので楽しく見ている。

 

今年はすでにぎっくり腰と派手な首の寝違えを1回ずつやってしまったので、しばらくは安静にしよう。

 

寝違え

首をやってしまった。。。

 

今朝ピキッという感じで首の筋を違えふる感じがあり、そのまま動作停止。

 

痛みがひどく、向けないとかいうレベルではなく起き上がれない。。。

 

こういう時はPCじゃなくスマホあってよかったという感じだが、スマホは入力がつらい。

 

いい感じの入力方法が確立されたらPCは廃れそうだなぁと思いながら横たわっていた。

バグいろいろ

プログラムを書いていてなにか動作がおかしいと、

printデバッグなんかをしてみるが、

 

なぜか仕込んだ途端に再現しなくなるような嫌なバグがあったりする。

 

こういうバグをハイゼンバグというらしい。

 

特異なバグ - Wikipedia

 

詳細はリンク先を見てもらうとして、なかなか厄介なバグである。

 

というかみんな困っていてわざわざ呼び名までつけられていたんだなと感心する。

 

バグはソフトウェアを作る以上は必ず存在するし、

 

なるほど研究の1分野として成立するような気もする。

 

他にも面白いバグはないかと調べていたら、

 

以下のサイトも見つけた。

 

Stack Overflow発 プログラミングの隠語(ジャーゴン)30選 | A-Listers

 

個人的には怒ったガールフレンドバグがツボ。

 

こういうのあるよなーと一人で頷いてしまった。

 

 

Intel製品のバグと低レイヤーへのあこがれ

IntelのAtom C2000シリーズに不具合、最悪システムが起動しなくなる可能性 | スラド ハードウェア

 

インテルのプロセッサにバグがあって、しばらく使うと壊れてしまうらしい。

 

AtomなのでPCとかは関係ないと思うが、リンク先にもある通りCISCOの機械が該当しているのでは?と言われている。

 

なかなか厳しいバグなので該当すると辛いなーという感想と、最近はCISCOの機械もAtomプロセッサなんだという別方向での学びがあった。

 

(そもそも昔はどのプロセッサだったのかも知らないけど)

 

それにしてもプロセッサやチップの知識はどうやったら身につくんだろうか。

 

他にもルータとかのネットワーク機能とか、あのあたりのノウハウも自分には無い。

 

このニュースを見てそのようなことを考えていた。

 

下のレイヤの知識がある人は総じて強い印象があるので憧れる。

rethinkdb

RethinkDB joins The Linux Foundation - RethinkDB

 

先日開発停止が宣言されたrethinkdbだが、linux foundationが引き取ることになったらしい。

 

個人的には全く使ったこともなく存在自体を開発停止のタイミングで知ったようなレベルだったが、

 

紆余曲折あって開発が続くことになったということは価値のあるプロジェクトだったんだろうと感じた。

 

ここからシェアを増やすのは大変だと思うが、開発体制が変わっていい方向に転がるというのも普通にあり得ると思うので、

たまに思い出して情報を拾っていきたいところ。

 

クロネコメンバーズのポイント

いつもお世話になってるクロネコヤマト

 

配達時間の調整をしたくて数年前からクロネコメンバーズに登録している。

 

これだけでも神サービスなんだが、最近になってポイントなるものがあると知った

 

クロネコポイントキャンペーン | クロネコメンバーズ

 

なんと荷物を受け取るだけでもポイントがたまっており、ポイントは商品と交換したりできたらしい。

 

そしてポイントには失効があるので今までに相当のポイントが消えていたという。。。

 

高級商品は抽選のようだがミニカーや軍手なんかもあるようだ。

 

せっかくなので今あるポイントは何かと交換してしまおう。

 

pcregrepとGNU grepの-P

先日pcregrepを紹介したが、grep -Pもあるとコメントで教えてもらった。

(色々と調べるきっかけにもなりました、南の島さんありがとうございます)

yoru9zine.hatenablog.com

GNU grepではpcreサポートも実装されているようで、以下のようにmanにも記載されていた。

       -P, --perl-regexp
              Interpret the pattern as a Perl-compatible regular expression (PCRE).  This is highly experimental and grep -P may warn of unimplemented features.

この前はmacのmanをみてしまったので気づかなかった。。。(macGNU grepではない)

と、ここで違いが気になってきたので少しだけ出自を調べてみた。

pcregrep

pcregrepはpcre.orgで配布されているpcreライブラリに付属している。

そもそもpcreとはperl5互換の正規表現ライブラリのことで、perl5で使える正規表現APIとして提供するライブラリがlibpcreということのようだ。

perlはlibpcreを使っておらず、厳密にはlibpcreとperl5の正規表現は少し違うようだ。

Perl Compatible Regular Expressions - Wikipedia

ということで、pcregrepはGNU grepとはまた別の開発主体によってメンテナンスされている、あくまでクローンということだと思う。

(GNU)grep -P

GNU grepは言わずとしれたGNUのソフトウェアで、linuxでは基本的に利用できると思って間違いないと思う。

GNU grepには-Pオプションがあり内部的にはlibpcreを使っているようだった。

つまりオプション解析や出力の処理などはいつも使っているgrepそのままで、マッチング処理にlibpcreを用いることができるということのようだ。

この-P自体はPOSIXで定められていないようなので、あくまでGNU grepの独自拡張ということになると思う。

そのため、mac等、非GNUgrepを使っているOSでは利用できなさそうだ。

まとめ

結局はlibpcreが処理するようだ。じゃあpcregrepを覚えておけばOKかな?と思ったあなた。間違いです。

unix.stackexchange.com

libpcreは確かに多く使われているが、それが当たり前ではない環境もあるので、

少しでも多くの環境をサポートするならperlを使えと言われている。

世間は厳しい。

と、半分冗談は置いておいて、以下は自分なりに考えた結果。

linuxで生活しているならならgrep -Pが良いと思う。なぜならGNU拡張オプションが使えるので色々と楽だろう。

pcregrepは普段使いするわけではないので細かい挙動が違い、細かい場面でハマる可能性がある。

一方、macも使っているならpcregrepになると思う。brewなどでggrepを入れても良いとは思うが、結局コマンド名が変わるのはわかりにくい。

軽く使ってみている限りはpcregrepでも全く問題はないので、

凝った正規表現を使うならpcregrepで統一するというのは現実的だと思う。

ということで、両方頭に置いておいて、状況に合わせてうまく使えるようにしておきたい。