メリットは以後の操作をすべてnmcliで出来るようになるのと、グローバル設定をなくせること。GATEWAY設定しか知らない人を混乱させるかもということ。それはコミュニケーションを取ればよい。そんな感じにすると以下のようになる(192.168.0.0側がNICa、192.168.20.0側がNICbで外につながっている)。msボンディングの場合も似たようなポリシーでできると思うが、サブアドレスで一つのNICにまったくセグメントの異なるアドレスを設定している場合は、どうすべきかは知らない。コンピュータのデフォルトゲートウェイ設定)らしいのだけど、では障害発生時にどうやって切り替えるかは知らない。HAアドオンみたいなHAミドルでがガリガリ書くしかないような気がする。15:25複数のNICを持つ場合のデフォルトゲートウェイTweet広告を非表示にするもっと読むコメントを書く2015-01-31bashのwhileループ内の変数をループ外で使うbash化石みたいな問題。知られていることだが、下記のような各行を足し算するシェルスクリプトを書くと、最後の結果が0になってびっくりする。0これはwhile等の制御文だったかパイプの先だったか忘れたが、bashが別プロセス起こしちゃうんで、戻ってくるときにせっかく変更した変数の内容が破棄されるかららしい。FAQとかにexecでファイルディスクリプタを一時的に変更して云々な話が書かれていたりするが、現在の超高度に発達したSIerの開発現場において、そんなマイナーなテク使われても誰も読めなくて迷惑するのでやめてほしい。あと、一時ファイルにwhileループごとに値を書き出すのもやめて。疲労感を無駄に積み増すんじゃない。よい解決方法は、bashやめてPerlなりPythonなりまともな言語で書く。現在の超高度に発達したSIerの開発現場では、言語一つ変更するのに、周囲とのネゴとか試験仕様書の更新とか、誰も幸せにならないエネルギーが必要なので、シェルスクリプトの範囲内で何とかしてみる方法を考えてみた。書くと16倍(当社比)くらいすっきり感が出ると思う。0}つまり、while部分を別関数に切り出す。切り出しただけなので、行数はそれほど変わらない。ファイル読み込み中にエラーが出た場合の処理を書きたい場合も容易に拡張できる。"rc=$?"rc=1欠点は、"total="のパイプより前のコマンドでエラーが出ても$?が0になってしまう点で、そこのところはあまりいい書き方思いつかないので、まじめに直前にファイル存在チェック書いたほうが読みやすくてよいと思う。bashを使わないのが正解。ファイルの中身が文字列としてメモリに全展開されるので、ファイルサイズが小さいことが保証されていない限りお勧めしない。いじっていて、ようやく文法ファイルの書き方がわかってきた。初心者向けの解説記事を書けるほど頭の中がこなれていないので、サンプルだけ示すことにする。こんなファイルを考える。text.」「(空文字)」という四つの文字列を認識するパーサを書きたいとする。ファイル解析のプログラムはスクラッチからがりがり書いてもよいけど、文法が複雑になってくるとプログラムが汚くなりがちである。便利ということになる。プログラムを生成してくれる。いった流れは簡単なのだが、文法ファイルの書き方はそれほど初心者には優しくない。文法ファイルは、字句解析部分と構文解析部分の二つの部分から成り立つが、最近はこれを個別のファイルとして書くのが流行り(?)である。StringLexer.g4。;「lexer」の行はおまじない。最初の「mode」より上のグローバル部分と、二つの「mode」で、グローバル部分を一つのモードと考えると、合計三つのモードから構成される。最初の「RQUOTE」は、引用符を読み込んだら元のモードに戻るという意味である。その中のエスケープ文字を処理する部分である。あとは説明しなくても分かるでしょ。(\と")に限定しているが、字句解析の段階でエラーにすると現場プログラム的にはエラー処理が面倒になるので、任意文字にしてもよいかもしれない。字句解析ルールは何もしないとグローバルに効いてしまうので、その場合、字句解析プログラムは文字列の中だろうがコメントだろうが、お構いなしに字句解析ルールを当てはめてしまう。使うときれいに字句解析文法ファイルを書ける。字句解析文法部分にしか使えないので、必然的に字句解析と構文解析とで文法ファイルを分ける必要が出てくる。次に構文解析の文法ファイル。ところが、さっきの字句解析ファイルのトークンを使っているよという宣言。後の部分が、アクションというやつである。いう変数に返すようにしている。コードを生成させて、動かすだけである。文法ファイルのサンプルTweet広告を非表示にするもっと読むコメントを書く2014-05-10ジョギング音楽ジョギングのときに聞いている曲の紹介。2年前に書いた記事から、だいぶ変わったので再編集。ボーカルがよく捕まるためか最近はあまり新曲を出していないが、BPMがちょうどよいので2年前から生き残っている。Javaでの順列組合せの列挙Java順列を全部生成するコードを書く必要があって世の中のコードを探したのだけど、あまりきれいなコードがなかったので自分で書いた、単なる備忘録的記事。このコードがきれいかというと、うーん、でも使いやすさとシンプルさでは、いろいろ検索した中ではきれいだと思うんだけど。(p.next());で、次のようになる。[a,b,c][a,c,b][b,a,c][b,c,a][c,b,a][c,a,b]メモリも大して食わないし、そこそこ高速だと思う。JPDAデバッグ技術ネタとしては基本レベルの話ではあるのだが、知らない人は本当に知らなくてちょっと萎えるので、今後の私の負荷を下げるために、NAT経由でのJPDAデバッグの話を書いておく。文章の分かりにくい部分を修正。サーバの2台があるとする。上に構築されていて、アドレスなど最大限本番環境に揃えるために、NAT経由でオフィスのネットワークにつながっている。一つ目のNAT設定はつながらない場合の原因第1位なんだろうけど、全部書くと疲れるので要点を書いておく。