httpdプロセスのメモリ使用量をワンライナーで表示する

最近、何度かサーバーのメモリの使用情報を調べる期間があったのですまとめておきます。

対象システムはCentOS6.7。この手の作業が求められる状況は何かシステム障害が発生している時です。
そういう状況では準備作業することもままならないので、すぐに使えるOS標準のコマンドで対処します。

サーバーの状態を確認するならまずはtopコマンド。

ヘッダーの部分でサーバーの搭載メモリ量と空きメモリ量がどんな感じ把握できる。

今の値を知りたいだけならpsコマンドとawkを組み合わせる

$ ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'
うっかり数値の桁を読み違えたりしないように桁合わせとカンマを入れておくのがポイントです。
88,632

topコマンドみたいにずっと状態をワッチしたいならbashで全体をループさせてしまう。

$ while true; do ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'; sleep 1; done
88,632
88,632
88,632
88,632
88,632
88,632
88,632

たまに画面をチラ見すだけ値と一緒に時刻も表示する。ついでにあとで値を使って集計できるようにファイルにも保存しておく。
$ while true; do dt=`date '+%Y/%m/%d-%H:%M'`;echo -n $dt;ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'; sleep 1; done | tee res.log

2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912

ありゃリャ、コマンドが長すぎてコピペ操作も思わず指先に力が入ってしまうほどの長さになってしまった。

所有している本中ではトップクラスの厚さ。めくるたびに何か発見がある。bashは学習コストも低いし、仕事でサーバー作業するならこれほど作業効率を上げてくれる道具はないです。

地方でやっていくための地産地消と手厚いサービス

地元の会社と取引がしたい。都心の会社と取引するのはいいですが、1日に8時間の勤務時間をするのに往復で3〜4時間の時間と交通費(*1)がかかります。システム開発はビジネスですがら契約する時にはそういうコストも加味して見積もりを作ります。しかし、同じシステム開発をするにしても、地元の企業からの注文なら見積もりの金額を下げられます。概算では2割の値引きはできます。近隣であることを生かせば都心の会社には真似できない手厚いフォロープランも用意できる、いや、やります。

せっかく地方で会社を始めたのだから地元の会社の仕事に目を向けていきます。大企業にはできない地元業者ならではサービスを始めます。

*1.北総公団線は料金が高いことで有名。
北総公団線

slackを導入して1週間たったので雑感をまとめる

slackが便利すぎる。もうメーリングリストで情報共有するやり方には戻れない。これは仕事にしか使わないのではもったいない。非エンジニアな居酒屋コネクションにslackを導入したらどうなるのかやってみたのでその結果をまとめておく。

メリット

  • チームに招待してしまえば人の管理がとても簡単。
  • 過去のやり取りの読み返しが簡単。
  • メッセージはメールのように内容を1つにまとめる必要がない。
  • 個人宛の連絡はダイレクトメッセージで対処できる

デメリット

  • 「了解」しか返さない人がいる。対面と違ってどこまで伝わったのか分からない。
  • メールで招待状を送ってだけでなくログインできるとこまでフォローが必要。
  • メニューが英語だと言うだけで参加を拒否る人もいる。

課題もあります。スーさん、ハマちゃんとかあだ名しかわからないのところへ、プロフィール写真が空白なので誰が誰なのか分からない。覆面してパーティーしているみたいなマッドなムードです。

Pepperパートナープログラム取得への道

ソフトバンクロボティクス社が販売するPepperには一般向けモデルと企業向けモデル(Pepper for Biz)があります。ハードウェア的には同じですが、サポート体制とインストールされているアプリの構成が違います。企業向けモデル(Pepper for Biz)は会社の業態に合わせたアプリをインストールすることができ、パートナープログラムとはそういう企業向けアプリを開発を請け負うパートナーを認定するものです。

合格すればロボアプリパートナー認定ロゴと認定証書が提供され公に掲げることが許されます。Iotメーカーの開発者トレーニングと聞くと目の玉が飛び出るほどお金を払うような気がしますが、Pepperパートナープログラムの場合は無料です。それも気前のいいことに大企業だろうが零細企業だろう参加できるうえに、うちみたいにPepperを持ってない開発者に無料でPepperを使わせてくれる場所もあります。

Pepperパートナープログラム取得へ向けた計画表

1月〜3月

  • 説明会に参加
  • テクニカルレクチャー

4月〜5月

  • 筆記試験
  • 実技試験
  • 申請・認定

最初にアクションを起こしたのが1月の下旬。Macbookに開発環境を構築してサンプルコードを解析。Aldebaranアトリエの開発ワークショップに通っているうちにロボアプリの可能性に魅了され2月末に開催された説明会に滑り込み参加しすぐでに4月の筆記試験も申し込み済み。これに合格すると次の実技試験では実際に課題アプリの開発。すぐに課題を提出できても審査が混み合っていれば待つしかないです。認定がでるのは5月末くらいと思って計画してます。

今まではPepperロボアプリ開発はサイドプロジェクトでしたが、これからは仕事として受託できるようにしたいです。

今更ですが最初にこれで読んでおけば、余計な時間を無駄にしないですみました。

Pepperロボアプリ開発に向けて

ブログを再開しました

ブログを再開します。WordPressの研究も再開です。どこの変更がまずかったのかこのブログの表示が変です。会社の顔であるWebsサイトのデザインがこれではまずいと思いますが、このブログを見て私のスキルを推し量る目安にする方もいますので自力で直します。

新たな出会いは無し

人と会っていないわけではなく、懇親会、勉強会など参加しているが人脈に繋げるための一歩を踏み出せてない。まぁ、そんな時期もあります。

サーバ環境をmBaasに切り替え中

iPhoneアプリ開発環境のプログラミング言語をSwift2に移行しました。最近プロジェクトの中断という痛手がありましたが、代わりに貴重な知見が残りました。今後のスマホアプリのサーバ作り込みにはmBaaSを使うことにします。もっと前からmBaaSを利用するシステム構成にすれば状況は変わったかもしれませんが、この教訓は次回に生かします。

Pepperロボアプリやります

サイドプロジェクトとしてPepperのロボアプリを開発します。いろいろ調査して見た結果、Pepperのアプリケーション開発にはWeb開発とスマホアプリ開発で培ったスキルが流用できます。ここでもサーバ処理はmBaaSで対応できます。Pepper基本ソフトがベースにしているLinuxは得意分野ですし、フレームワークのROSはPepper以外の他のロボットとも共通するので、Pepper以外のロボット開発への転用できる見込めます。ロボット分野はビジネスというよりも研究目的の方が色合い強いのでいつまでニーズがあるかわからないし、Pepperもブームともに消える可能性があります。しかし、そんなことは移り変わりが激しいのはこの業界でそんなことを気にしていたら何もできません。

この本に、ここ10年くらいロボットの一つとしてPepperが紹介されてます。歴代のロボットと比べてPepperが一番の違いは何かいうとネットワーク接続されているというです。それまで全てスタンアローンで動いてました。スマホのようにネットワーク経由でソフトウェア更新も行えます。会話機能はIBMのメインフレームコンピュータにもつながります。攻殻機動隊に出てくるタチコマ達のAIが人口衛星のコンピュータに搭載されてたみたいな感じでしょうか。

Pepper、欲しいなぁ。早くロボアプリ開発を仕事にしたいなぁ。そうだ、すでにPepperを持っている人でボロアプリ開発者を探している人がいたら連絡ください。サーバ処理で困っているとか、オリジナルのボックス作るとか。こちらで開発を請け負ってもいいし、すでに内製しているなら訪問対応とかスポット対応の依頼も請けます。どうぞよろしくお願いします。

COBOLerを育ててもレガシーシステムのマイグレーションは成らない

大ベテランのソトウェアエンジニアの人たちと雑談するとちょくちょくあがるのがCOBOLの話。1963年に標準化されたプログラム言語で金融系、インフラ系のシステムコンピュータシステムの多くはCOBOLで実装されているといわれてます。

COBOLって詳細はどんな言語だったか思い出しながらドットインストールのCOBOL入門を見ました。使っている教材はOpenCOBOLですが、1レコードは80バイト固定であるとか、7カラム目に*がある行はコメントになるとか、懐かしくて思わずニヤついてしまいます。

もう少し掘り下げて調べてみました。初版が2005年の情報処理技術者試験の教科書ですが、非常に互換性に重点を置く言語なので、ほぼ差し障りないでしょう。COBOLの特徴として以下のものをあげてます。

  • 40年以上も使われいる実績
  • プログラム言語の習得のしやすさ
  • 異なるOS間の移植性の高さ
  • ソースコードの見通し良さ

人材派遣会社の営業さんから聞いた話ですが、今でもCOBOLができるエンジニアは募集しているそうです。長年、業務にかかわってきたベテランがどんどん引退してしまうのでエンジニアが足りないそうです。システムを40年、50年と延命してきたのに保守するエンジニアがいない。エンジニアがないなら育てればいいのではないか。話はそうも簡単ではないんです。もし優秀なエンジニアがいてその人がCOBOL言語のエキスパートにしたにしても業務知識に精通してないのでは実力は発揮できません。稼働期間の長い大規模システムはどこもそうなのですが、戦力になるまで時間をかけて教育しなきゃないならプロジェクトチームの方だって困ります。

pepperは怖くないよ

pepperを触ってみた雑感

サイドプロジェクトとしてpepper用アプリを開発してます。開発環境の構築して最初はHello World。サンプルコードを読んで開発シナリオも掌握済み。choregrapheを使えばロボットの挙動をプログラムするのも楽勝です。

pepper開発の実際

pepperはデリケートな精密機械なのであまり負荷をかけると不安定になったり誤作動を起こします。シュミレータを使ってアプリの単体試験をしようにもセンサーや胸部タブレットの制御はシュミュレーターでは再現してくれません。もっと自分の開発スキルが上がってくれば状況は変わってくるかもしれませんが、今は開発効率は亀が歩むが如く劣悪でモドカシイです。

今後の展望

ロボット開発は地方のエンジニアが高齢者介護や地域産業に貢献する絶好の機会だと思ってます。技術的にはスマホアプリの開発のノウハウが流用できます。会社の業務として請け負うことを視野に準備を進めてます。

今、何が怖いってインフルエンザほど怖いものはないです

今年も木枯らしの吹く時期になったので、インフルエンザ予防接種を受けてきました。注射した部分が固くコリコリして身体もだるいです。予防接種は効果がないから無駄だという方もいますが、なんせ独り法人なので私がインフルエンザにかかったとしても誰も代わりはいませんし、仕事の締め切りが伸ばせるわけじゃない。例年、冬の外出時はマスクとハンドスプレーでがっちり防備しているのですが、それでも発症する時には発症します。予防接種は発症した時でも症状が軽く済む効果もあるそうです。インフルエンザが流行せずに注射が無駄になっても、それならそれで構わない。なんせインフルエンザの辛さといったら風邪とは比べもにならない。高熱が3日も続くとかなりやつれます。あのつらさが多少でも緩和されるというのなら注射くらい喜んで受けますよ。

最近ではメガネをかけないとプログラミングや読書ができなくなりました。マスクとセットであると便利なのがメガネが曇り止め。

WordPress 4.4 beta1がリリースしたので構築してみた

WordPress 4.4 beta1がリリースされました。昨日の午後に WordPress 4.4-alpha-35308のリリースがあったばかりなのに、なんと開発の早いプロダクトなんだ。何はともあれ構築してみないことには始まらない。

こんな時にはサクッと構築して使い捨てにできるVagrant環境の出番です。vccwを使うことにする。vccwの使い方はこちら

実行環境はMac OS X Yosemite 10.10.5(近日中El capitanする予定)
Evoroment info

$ git clone https://github.com/vccw-team/vccw.git
$ cd vccw
$ vagrant up
(途中でiMacのパスワードを入力)
待つこと数分で自動で構築される。
http://vccw.dev/wp-admin/にアクセスし、admid/adminでログイン。
(環境によってはhttp://192.168.33.10/を指定する)

プラグインWordPress Beta Testerをインストールして、
Dashboard -> tools -> Beta testing画面のhead on over and upgrade now.からWordPress Updates画面へ。Update nowをクリック。

ここで4.4 beta1を明示的に選んでいるわけでなく、Latest(最新版)をインストールしてます。必須ではないですが、themesも4.4に対応したTwentySixteenにしておきます。

wp4.4bata1

構築を初めから作り直したい時は、ディレクトリを削除して最初から手順をやり直せばいい。
$ rm -rf vccw

また以下のオプションで複数環境を作成する指定もできる。
$ git clone https://github.com/vccw-team/vccw.git <作成するディレクトリ>
$ cd <作成するディレクトリ>
$ cp provision/default.yml site.yml
$ vim provision/site.yml
#

Network Settings

#
hostname: vccw20.dev # ここを被らないように変更する
ip: 192.168.33.20 # ここを被らないように変更する
$ vagrant up
起動したらhttp://vccw20.dev/にアクセス。

WordPress 4.4 Beta 1の詳細については

WordPress 4.4 Beta 1


を参照する。

  • デフォルトのthemesがTwenty Sixteenになる
  • Responsive Images
  • Embeds でコンテンツを相手側からそのまま埋め込みが出来るようになる

こんなところですか。新規に構築したならダウンロード資材もある。もしベータ版で問題を見つけたら報告しましょう。

[Hacker News]Termの中でY! ロゴがアニメーションするAA

Hacker Newsでちょっと面白い記事を発見。リンクしたページの[you’ll see – show the animation]のところをクリックするとアニメーションがみられます。

[Update 10/21/2015: Changed the title from “six lines of C” to “462 bytes of C” to avoid endless arguments about what constitutes a line of C code.]

このプログラムに実用的な機能ははなく、実行するとY!ロゴがアニメーションするだけ。ソースコードは462文字でステップ数は1です。C言語で書いてる。C言語のソースコードはフリーフォーマットで記述できるので可読性を無視してコードゴルフしまくるどんどん短くなる。今回の変更で6行だったのを1行にしたらしい。もう、この人たちが、なんのために最適化してどこに向かっているのかわからないです。

Yahoo! Logo ASCII Animation in 462 bytes of C

ソースコードがあるのだから自分の環境でコンパイルでして実行できるはず。やってみる。

実行環境
スクリーンショット 2015-10-22 21.56.23

手順に従ってコンパイルすると実行ファイルが作成される。まぁ、警告メッセージがでまくるけどともかく実行できた。表示する内容を改造しようしたけど資料を読むだけで挫折。そのまんま無改造で実行してます。
ynime2