9月19日は、オープンソースの祭典 OSC広島、20日は中国地方最大のデータベース勉強会 中国DB勉強会in広島 に参加しました。

昔よりは情報を得る地域格差が縮まっているとは思いますが、議論の場となれば話は別で、やはり地方において、最新の情報について話を聞いたり相談できる場は限られています。そうした溝を少しでも埋めてくれているのが、こうした勉強会で、主催・運営して下さる皆さんには本当に感謝しています。

オープンソースは、高価な製品の代替品ではなく、企業活動の中心的役割を担うに至っています。一方で栄枯盛衰が激しく、選択を間違えるとメンテナンスで大変な思いをしますので、こういう場で情報を集めるだけでなく、いざとなったときに相談できる人脈を作っておくことがとても大事です。いつかここで登壇できるようになりたいものですね。

これだけのイベントですので、それなりのコストがかかります。この2つの勉強会は、そのコストを参加費以外で調達しているため、ある程度の参加者数実績を上げないといけないという苦労があるようです。それには告知が大切なのですが、広島の(広島だけ、という意味ではないです)参加者は、この勉強会の大切さが分かっているので、告知もできる範囲でやりますし、ドタキャン率も低いとか。参加者も、主催者の負担を軽くすることを意識して、こうした活動を継続していけるような文化を創らなければなりません。

そういう意味では、今、ちょうど勉強会ブームが過ぎ、最初に企画した人から、次の世代への運営の世代交代の時期にあるようです。コミュニティに関して意識の高い方は、主催者や運営陣の負荷分散など、地方での勉強会イベントのノウハウ自体をパッケージング(テンプレート化)されていて、長期的な開催を意識した運営をされているようです。この勉強会が長く続けられるように、我々参加者も意識を高く保たないといけませんね。

以下、戦利品です。

OpenSSH実践入門

くじ引きで当たりました。これはかなりの大当たりだと思います。毎日使う重要なインフラなので、一度きちんと読んでおきたいです。

 

たまゆらのお酒

去年に続いて、じゃんけん大会で初回勝利。2年連続たまゆらのお酒を頂きました。これも大当たりだと思います。


AngularJSアプリケーションプログラミング技術評論社さんより出版されている「AngularJS アプリケーションプログラミング」を、WINGSプロジェクトさんの書籍レビュアーに応募し、献本頂きましたので、レビューいたします。私はWebシステム開発の専門家ではないので、間違いがあればご指摘頂ければ助かります。

最近のリッチなWebサイトは、もれなく何らかのフレームワークを用いて作られています。言語とフレームワークが一体となっているJavaとは違い、perlやphpなどの柔軟なスクリプト言語においては、その柔軟さ故に大規模なシステムを一貫したルールに則って開発していくのには不向きでした。そのうち、サーバ側の処理能力も高くなってLAMP(perからphp)が台頭してきたこともあり、コンテンツを一貫した見栄えで供給できるCMS(XoopsやWordpress等)が登場し、より複雑なコンテンツを体系定期に設計・実装していくためのフレームワーク(CakePHPやFuelPHP等)が登場しました。

このAngularJSは、こうした大規模システムを構築するためのフレームワークの一つです。ただし、これまでのフレームワークと違い、クライアント、つまりブラウザ上で動作するJavaScriptのフレームワークです。JavaScriptは、多くのブラウザ上で動く唯一の言語ですが、私から見るとかなり癖の強い言語で、ある意味柔軟ではありますが、とても大規模なシステムを構築するには向いているとは言えません。ですから、登場からかなり長い期間、JavaScriptは不遇の時代を過ごしましたし、2010年代になって脚光を浴びた際も、jQueryのような、ピンポイントの利用に限られていました。

ところが、その後スマートフォンの普及によって、クライアントサイドで動くアプリケーションでも、複雑で洗練された処理が求められるようになってきました。当然、Webシステムに対してもその価値観が及びはじめ、とても生産性が高いとは言えないJavaScriptで、大規模で系統だったシステム開発への要求が高まってきました。

こういったなかで登場したのが、このAngularJSです。(大きく分類すれば)サーバサイドのフレームワークに広く使われているMVC型のフレームワークをJavaScriptに導入したもので、多くの処理をクライアント側でやってしまおうという、大胆な試みです。このあたりの基礎的な背景も1章で触れられています。類似のフレームワークの中ではやや後発ですが、シリコンバレーでは確実に本命視されているフレームワークです。特にAngularJSはフルスタック(必要な全ての機能を体系的に提供する)フレームワークですので、サンプルコードの中には、非力なマシンだと若干重い事もありました。幸い、プロセッサの処理速度や、ブラウザの実行エンジンの高速化、データ回線の高速化は日進月歩で進んでおり、かなり高度でリッチなシステムも、クライアント側で処理出来るようになっていくと思われます。むしろ、旧来のように、入力を反映させるために「送信」ボタンを押し、POSTをサーバでの処理を経て結果が返ってくるほうが、利用者にとって不便を感じる時代になってきています。また、ブラウザの開発者ツールも充実してきたので、場合によってはクライアントサイドで構築する方がデバッグがやりやすい時代に入ってきています。

AngularJSは、包括的なフレームワークで、jQueryやjQueryUIのような機能なども含めて、アプリケーションに必要なフレームワーク一式を提供します。そのため、その機能は多岐に及んでおり、この本もかなりの分量になっています。正直に言うと、最初の方で簡単なフォームを操作するだけで、なぜこんなに面倒な事をしなければならないのか、jQueryならもっと簡単に、直感的に書けるじゃないか、と思ってしまいました。しかし、それはAngularJSの表面しか見えてなかったからでした。「JavaScriptできちんとしたモダンなプログラミングモデル(例えばMVCモデル)を採用して大きなシステムを構築する」という、素人目には無理難題に挑戦しているのがAngularJSなので、コーディングルールが多いです。本書も見た目の分量は多い(本文で497ページ)ですが、それを一つずつ過不足がなく、無駄なく分かりやすい説明が成されているのが本書でした。これを一冊読めば、かなり高度なサイトも構築できるようになる基礎を身につけられるようにできています。

一方で、JavaScriptは癖が強く、あまり馴染みの無い特徴を多く持っています。jQueryの時代は、そこまで高度な設計はプラグインの作者に任せておいて、利用者はワンラインのおまじないを書いて目的を達することもできました。ですが、AngularJSを使うほどのシステムになると、JavaScriptの細かな動作仕様について知っておかなければ、なぜこういう動作をするのか、なぜこういう「迂回路」のような書き方をしなければならないのか、理解できない部分が多くありました。また、JavaScriptによる制約なのか、AngularJSの設計思想による制限なのかも分からない箇所もありました。もちろん、これは私の勉強不足が原因ですし、そこから説明してたらとても紙面が足りません。言うなれば、本書を読むための「JavaScript入門」がもう一冊あっても良いレベルだと感じました。もちろんJavaScriptの入門書やリファレンスは沢山ありますが、AngularJSの思想は、JavaScriptそのものの思想とはかなり違っていて、むしろそこを埋めるためのフレームワークであると思いますので、本書を理解するための入門書から読みたいと感じました。

本書は「コピペでHello Worldがつくれるよ」という表面上の話だけでなく、フレームワークの構造から、暗黙で動いてるコネクタの仕組みまで詳しく説明している専門書であると言うことです。テーマごとに整理されているので、最初のうちはリファレンスとしても使えるでしょう。本質的な部分を「ここはこういうものです」と誤魔化さずきちんと説明してあるので、フレームワークの裏の挙動をきちんと理解したい、そう思わせる技術書です。

また、後半では、今や必須とも言える「テスト駆動型開発」に必要なユニットテストの自動化や、多くのプラグインによるリッチなUIの実装まで紹介されております。このあたりまで読んでいくと「jQueryでやれば良いじゃん」とは思わなくなってきます。また、本書は入門書から実践書の範囲をしっかりカバーしており、その思想や動作原理を誤魔化すことなくきちんと説明しています。きちんと説明されたら、きちんと理解したい、と思ってしまうのは当然で、それだけ作り込まれた内容であると言えます。JavaScript中級者が、本格的なシステムを構築する際の最初の書籍としてとても良い本です。

同じJavaScriptをベースにしたサーバサイドのnode.jsの開発の勢いは衰えることなく、ECMAScript6 も制定されました。こうしている間にも、AngularJS2 がアルファ版をリリースしていますし、JavaScriptの欠点を補うため、TypeScriptを採用しています。WebSocketのような、粒度の小さい逐次通信技術も発展していますし、AngularJS2とTypeScriptは、今後の大規模Webサイトの本命になるかも知れません。ですが、これはもう少し先の話になりそうですので、ここでAngularJSの基礎を押さえておいて、来たるべき事態に備えておくのは悪くないと思います。

AngularJS2では、双方向バインディングの見直しや、より厳密なモデル化の進化など、より洗練されたフレームワークになりそうですので、AngularJS2が登場した際には、本書のAngularJS2対応版がいち早く読みたいです。また、このレビューの中でやたらjQueryと比較してしまいましたが、本書を読めば分かる様に、本来の目的が全く違います。jQueryと合わせてAngularJSを使う事もできます。カバーする範囲が全く違うのです。また、最近流行のスマートフォンアプリなども、ManifstJS等と合わせて構築できそうな気がします。
AngularJSアプリケーションプログラミング

  • 難易度 : 中級
  • 取っつきやすさ : ★★★
  • 内容充実度 : ★★★★★
  • 読みやすさ : ★★★★
  • 最新テクノロジ : ★★★★★

昨日8月31日をもって、栄諧情報システム株式会社 第4期会計年度が無事終わりました。
そして今日から、第5期がはじまります。

どうなることかと思った帰郷と企業でしたが、本当に皆さんのおかげでここまで来る事ができました。
今年は、いきなり大きな勝負が迫っていますので、これが吉と出るか凶と出るか…。そんなことは分からないので、やるのみです。

今後もよろしくお願い致します。

 


小難しいことは置いておいて、まずはアプリを体験して頂くのが一番だと思いますので、8月7日金曜日 18:00~ 巨人戦での体験会を開催したいと思います。

★ 日時 : 8月7日(金) 18時~ 巨人戦
★ 場所 : ネット上 https://m-ph.org/
★ ネットの繋がる場所から、スマートフォンで上記URLにアクセス下さい! (それほど多くはありませんが、ネット通信が発生します。)
★ スマホを通してみんなでカープを応援する会です。
★ スタジアムからの写真投稿なども歓迎!

多くの方に参加頂くのは初めてですので、色々不手際もあるかと思いますが、そこも含めて、今後一緒に成長させて頂ければと思います。金曜日の18時から、twitter アカウントを用意して、https://m-ph.org/ に全員集合♬
ご近所お友達お誘い合わせの上、スマートフォンよりアクセスして下さい。

8月7日は、CS(日テレG+)でしかテレビ中継がないので、RCCラジオやradikoを聞きながら応援しましょう! 多くの方のご参加お待ちしています! (Radiko 広島県内の方広島県外の方 )

貸し切りイベントではありませんので、モニター希望者以外の方も一緒に応援しましょう!
※ 当日体験頂いた方の中から、希望される方のみ、グループDMにお誘いしたく思います。よろしくお願い致します。
※ モニター募集については、こちらをご覧下さい。


大阪都構想年代男女別賛否票予測

大阪都構想を巡る住民投票は僅差で否決されました。
世代格差や地域格差が原因とも言われていますが、世代別の票の内訳を推定してみましょう。

有権者数は、平成26年度の統計を使います。
投票率は、国政選挙よりも市長選挙の方が性質が近いと思いますが、直近の選挙は投票率が低すぎるので、大阪都構想が表に出て今回に近い投票率60%を記録した、平成23年の市長選挙のものを使いましょう。
世代別の賛否率は、テレビで報道された出口調査を使います。(1次ソース希望)

上の仮定での、年代別・男女別の賛否投票数の予測です。実際の投票率は67%だったので、7ポイントほど少なくなります。

年代 性別 人口 賛成 反対 投票率 賛成票 反対票
20代 159,007 67.1% 32.9% 35.4% 37,738 18,503
20代 166,003 56.3% 43.7% 39.5% 36,917 28,655
30代 187,879 71.6% 28.4% 48.9% 65,821 26,108
30代 191,840 55.3% 44.7% 56.7% 60,141 48,613
40代 203,839 66.2% 33.8% 56.3% 76,026 38,817
40代 204,443 56.1% 43.9% 62.7% 71,912 56,274
50代 153,414 57.8% 42.2% 62.6% 55,492 40,515
50代 151,183 49.6% 50.4% 71.3% 53,496 54,358
60代 177,811 51.3% 48.7% 70.8% 64,582 61,309
60代 174,474 51.8% 48.2% 76.6% 69,193 64,384
70代 135,455 38.7% 61.3% 76.9% 40,312 63,853
70代 165,746 39.5% 60.5% 77.3% 50,588 77,484
80代~ 61,253 38.7% 61.3% 63.7% 15,091 23,903
80代~ 117,549 39.5% 60.5% 48.6% 22,547 34,534
合計 2,249,896 60.3% 719,855 637,309

大阪都構想年代男女別賛否票予測年代別の支持率は、70代以上がまとめられていたので、70代と80代以上で同じ値を使っています。

このように、賛成が1割以上上回る事になりました。もちろん、この違いは、今回設定した仮定が現実とこれだけ離れていると言うことです。
有権者数と世代別投票率の相対値は、それほど大きく動くものではないでしょうし、投票率を多少動かしてもこの結果を覆すほど大きな変動は得られません。となると、今回報道された出口調査の数字は、今回のような僅差の結果の原因を議論できるほどの精度はなさそうです。これを元に議論するのは危険ですね。

それなりに現実的な仮定を置いたので、もう少し結果を再現できると思ったのですが、、、選挙の票というのは読めないものですね。これで結果をある程度再現できたら「もし若者がもう少し投票に行っていたら」という議論がしたかったのですが… ← 恣意的


Web Touch Meeting #78 として、node.js ハンズオンの開催に協力させて貰いました。

東京から、日本のインターネットの中枢を担う、株式会社インターネットイニシアティブの 岩永義弘 さんをお迎えし、たっぷり3時間、座学とハンズオンを行いました。岩永さんと言えば、@ITでの連載もされており、日本の次世代通信技術の最先端におられる方です。地方でのハンズオン開催は初めてとのことで、その初回に広島を選んで頂き、ありがとうございました。wtm78とはいえ、3時間で実装まで行うには厳しく、消化不良で終わらせてしまったので、参加頂いた方には申し訳なく思っています。私が node.js に出会った頃は、日本語で最初の書籍が出版された頃で、まだ大規模案件に使うような段階ではありませんでした。(書籍で紹介されていた node のバージョンも出版時には古くなっているぐらい) ですから、ハンズオンでも、もっとコンパクトでアドホックなお題を想定していました。この点私も勉強不足でした。

また、Windows 環境においては、ターミナルやファイルコピー、エディタなどの基本機能が整っていないため、そういったツールを予め用意して、日頃不慣れな方にむけて、1時間早めに「準備会」を開いておくべきだったと思います。これも次回に活かしたいと思います。

JavaScript ができる人なら、手持ちの技術をネットに繋げてみんなでお互いに操作してみるような事がしたかったのです。WebSocket などでサーバと多数のクライアント(スマートフォンも含む)を結び、片方から emit したメッセージを、他方が on で受け取ったり、それをまた全員にブロードキャストしたりという事が簡単にできるのです。その部分で遊んでもらえるところまでは行きませんでしたが、それ以上に、最新の node.js の事情や、大規模な案件に耐えられる基本設計の指針など、私自身、大変勉強になりました。

私はしばしば上京してこういう勉強会に参加しているのですが、その旅費を使って逆に講師を呼んで、広島で皆に参加して貰ったら面白いのではないか、という発想が元で、このような会を共催させて頂きました。今後も、いろんな企業が、自社の都合で開く勉強会を、少しだけオープンにして、(社外の参加者にはハードルは高くても)最新知識の共有ができたら面白いかな、と思っています。

今回は、参加頂いた方のレベルの高さと、100回を優に超える勉強会を主催されている藤本さんの助けにより、なんとかぎりぎり勉強会としての体はなり立ったのではないかと思います(という事にさせて下さい)。なにより、私にとってこうした機会を与えて下さった皆様に感謝します。

正直に言うと、広島では、node.js を用いた仕事の案件というのはなかなかないと思います。仕事とは別に、こうした面白そうな技術を使って色々遊んでいきたいと思っていますので、一緒に遊んで下さるという方は、ご連絡下さい。また、次回このような機会がありましたら、またよろしくお願いいたします。

Posted in Web

愛用しているさくらのVPS、最近 ssh でログインする際に、えらく待たされるようになりました。

検索してみると、同様の問題を抱えている人が居るようで、Disk I/O が 1MB/s を超えると制限されるという情報もありましたが、それにはあたってないし、Disk I/O が遅くなっている様子もないので、これは今回は無関係か。

他の情報によると、sshd_config の UseDNS を off にすると解決するという情報も。
これを試してみると、お、解決した!

いやいや、DNS は逆引きも設定しているので、これで解決するのはどこかおかしい。
結局、IPv6 が中途半端に設定されていて、IPv6 の DNS に問い合わせてタイムアウトになり、IPv4 の DNS に問い合わせるまで待たされていたようです。

危うく UseDNS を off に、という間違った対処療法をするところでした。危ない危ない。


スマートフォンでカープを応援するアプリ「Megaphone」を企画していますが、それについて、広島ものづくり情報ポータルサイト「TECRE」さん取材頂きました。

TECREさんは、同じ「ヒロハタ」に参加されているプロジェクトで、広島の産業の原点である「ものづくり」をテーマにした「届く記事」を週に2~4本ペースで発信されておられます。
日本のものづくりと言えば、職人技に支えられてきました。職人気質で黙って良い仕事をやっていれば商売になると言う時代ではなくなってきたので、技術のある中小企業が交流し発信する場として、TECREさんのような取り組みが、もっと重要になってくると思います。

「今は発信力をつけたいと思っているので、魅力のある記事がどんどん書けるようになりたい」と、インタビュアーの久保さんは仰っておりました。久保さんは、TECREを主宰しておられ、魅力的な記事をハイペースで取材して書いておられます。IT企画も、アイデアだけでは勝負できない、発信力の時代が来ています。久保さんを見習って、意味のある、伝わる発信をしていかなければなりません。

最近、弊社が企画運営する「価格広場」でも、そうした発信面での行き詰まりを感じています。価格広場が注目された2000年頃は、情報が集まっているだけで価値があるとされていましたが、今は、インターネットで情報が集まるのは当たり前。何かを解決できる、何かを提案できる情報でなければ意味がありません。これからのITサービスの在り方について、勉強させて頂きました。


2015年、あけましておめでとうございます。

よく、「何をやっている会社なんですか?」と聞かれるのですが、社名の通り、「情報システム」の会社です。

パソコン屋では売っていない専門的なコンピュータシステムを構築したり、それを使いやすいように設定したり、安心して使えるように管理したりします。時にはゼロから新しいシステムを構築しますし、時には、既存システムに拡張する形で、最小限の費用で新機能を追加したりします。どうしたらよいのか分からない問題・不便を感じている点があれば、是非ご相談下さい。

また、そのシステムを用いた解析や研究のお手伝いも致します。去年も、広島大学・広島文教女子大学の先生と共著で、学術論文の執筆に貢献させて頂きました。もちろん研究に関する秘密事項は厳守いたします。

これらのシステム開発と運用だけでなく、弊社独自の企画を元にしたWebサービスの自社展開も行っております。去年から、広島県の「ひろしま発人材集積促進プロジェクト」に参加し、広島を盛り上げ雇用を創出するための活動を一緒に行っております。

今後も、アカデミックの分野で培った技術や考え方を駆使し、最新のITソリューションと融合させることで、広島から新しいイノベーションを発信できたらと思っております。今年もよろしくお願い申し上げます。


このエントリはゆるい広島 Advent Calendarの22日目です。
昨日は、F19rokiさんの「チャリでブラブラして写真とか撮ってくる」でした。

22日なら休みの中日だし時間もあるかと思ってエントリーしたら大間違いでした。しかも「ゆるい」って、なんかテーマ決まってないので難しいし。

タイトルからため池なんですけど、広島って、ため池多いですよね。もちろん、岡山とか香川とかため池多いところは他にもありますけど、広島も結構多いと思います。以前、Google Maps API で、白地図を作ってみたことがあるのですが、水域と陸域だけ色分けすると、結構ため池が多い。

ため池って、元は谷だったところに、人工的に堤を作って池にしたんですよね。だから、多くの池は、一辺が直線的な堤になっていて、周りは山になってる。水に苦労した昔の人が人力で堤を作ったのかと思うと、その手間と労力だけでなく、村や集落という単位での結束が重要な時代が偲ばれます。沢の途中にあるため池は、渇水対策と治水(砂防ダム的な)の両方の役割を果たしていたのでしょう。

東北の方に行くと、ため池も広い平地のなかに大きな池があって、西日本のため池とは雰囲気が違いますね。狭い耕地に小さいため池が広島っぽいなあと思います。

そんなため池の中でも、お気に入りなのが、このため池です。母校への通学路にあるので、もう2000回ぐらい見ていますが、池の名前は分かりません。そういえば、ため池って、たぶん全部名前があるんですよね。うちの近くのため池も、原池とか雁又池とかあひる池とか名前がついています。あひる池にはあひるは居ません。
DSC_0007
このため池も、左側の轍のある道路部分が人工の堤で、背面は山になっているのですが、このため池、とにかく水がいっぱいいっぱいなんですよ。

写真では分かりにくいですけど、手前の舗装道路は左に向かって下っていて、写真の左端のあたりでは、道路の高さが水面ぐらいなんです。ほんと、ギリギリまで水を張ってる。ここまで満杯のため池はあまり見かけません。この、いっぱいいっぱい感が、なんとなく好きなんですよね。

そんないっぱいいっぱいの池なんですけど、この池、いつもいっぱいいっぱいなので、実はいっぱいいっぱいまで貯められた水はあまり利用されてないんじゃないかと思います。だって、水を使ったら、その分減りますもんね。このすぐ横には川が流れていて、その上流には新しい大きなため池が2つあるので、今はそちらで川の水量を調整しているのかな、と勝手に思っています。昔の人がいっぱいいっぱいまで作ったいっぱいいっぱいのため池は、今もいっぱいいっぱいの風格を残したまま、あまり使われていないようです。

人間も、いつもいっぱいいっぱいだと、あまり有効に使われてないんじゃないか、と、そんなことを思ったり思わなかったりです。勉強会などで頭のため池に水がたまったら、すぐに使ってみないといけませんね。池だけに。

 

それでは、明日はデスマで有名なkakenaviさんが超おもしろい事を書きます。の「ネタ帳には爆笑ネタがあるのですが、家に忘れてきました。」です。