Atom用kintone-JavaScriptスニペット(Beta版)

ちょっと空いてのブログ更新となりましたが、Atom用kintone-JavaScriptスニペット(Beta版)をGistで公開しました。

 

f:id:yamaryu0508:20150426021639j:plain

 

スニペットというよりタブ補完に近いので「autocomplete-plus」と「autocomplete-snippets」のパッケージ追加が前提になります。

 

Beta版と言いつつ、kintone JavaScript APIと共に、イベント名も全て記載しています。あと幾らか個人的によく使う関数を記載しています。よく覚えていない関数のために都度ドキュメントを見る必要性はなくなり、多少は効率上がったかなぁと個人的には思っています。※Gistがうまく表示されない時にはこちらから直接ご覧ください。

 

gist.github.com

お試し頂いた方は、フィードバック頂けると嬉しいですm(__)m

Raspberry Piの設定【I2Cの有効化】

 Raspberry Pi 2が登場して、ほぼ同時期にアップデートされたRASPBIAN(2015-02-16版)ですが、こちらのOSでのI2Cの設定方法が以前の方法からDEVICE TREE(1, 2)というものを利用する方法に変更になりましたので、まとめておきたいと思います。こちらの「手順2 I2Cの設定」の置き換えでもあります。

 

手順 I2Cの設定

 /boot/config.txt/etc/modulesが対象ファイルで、いずれも書き足し(コメントアウト等はなし)ですので、以下のように一挙に設定します。はじめに、sudo suしておきましょう。

$ sudo su
# echo dtparam=i2c_arm=on >> /boot/config.txt
# echo i2c-dev >> /etc/modules
# reboot

最後に再起動して設定は終了です。その他の設定は、現状以前と同様に行えます。

kintoneは“技術者を育てる”開発プラットフォームだ

 先日ITproに掲載された「kintoneは“働くママによりそう”開発プラットフォームだ」を読んで、ふと自分なりのタイトルがふと頭をよぎりました。FBのシェアで少し触れていますが、「技術者を育てる」というのもkintoneの枕詞として「働くママによりそう」「開発者とユーザーを繋ぐ」に加わっても良いんじゃないかなぁと思ったのです。「技術者自身が楽しく作り、kintoneを通じて成長していける」、そしてこれがまた先の2要素にもフィードバックされると考えます。私自身はkintoneに出会ってちょうど2年、kintoneエバンジェリストにご指名を頂いてからもうすぐ1年目ということで、これまでの自身の取組みと共に、こんなタイトル付けができると感じた理由を今回「技術的な側面を中心」にまとめたいと思います。

 

kintoneとは 

 まずはkintoneのおさらいです。私なりには「kintone Café 福岡 Vol.1」で大方まとめさせてもらっていましたが、大きく認識も変わっていませんので大事なところを掻い摘んで振り返りたいと思います。

 いわゆる概要はこうですね。「チームを強くするツール」を提供するサイボウズさんが提供する「データ」「ワークフロー」「コミュニケーション」を構成要素とする、誰でも簡単に業務アプリが作れてしまう「ファストシステム(Web−DB)」です。

 

そして、もたらされるものは、(ここも大きく変わっておらず)「ユーザ」、「プロバイダ(営業・技術)」の側面で次のように考えています。タイトルにも拘りがあって、それぞれが「kintoneを使って嬉しく、楽しいこと」です!「開発者とユーザーを繋ぐ」ことが出来る所以の一端でもあると思います。

 

自分なりにまとめると、・・・kintoneは簡単なアプリ作成からはじまり、「データ」、「ワークフロー」、「コミュニケーション」という機能の疎密も絶妙にコントロール出来ますし、カスタマイズ機能も強力です。一定の制約はあるにしても手直しにも強いので、案件クロージング・アプリ提供・享受にかかるコストはやはり他の様々な方法と比較しても低く、「ICTを使った業務改善」には最強・最短のツールだと思います。

 

kintoneは“技術者を育てる”開発プラットフォーム【考察・まとめ】

 自身の振返りは長くなるので、先にタイトルたる所以の考察とまとめです。

 kintoneはもともと優れた設計のREST APIやパワフルなJavaScriptカスタマイズ機能を有し、今日ではkintone Caféやcybozu.com developer networkといったコミュニティも充実してきたことで学習コストも低くなってきました。kintoneを通じて案件に対応しようとする時に技術者自身も楽しく作りながら、それに伴う成長の実感を得やすい開発プラットフォームになっています。「(技術者も)ユーザーの反応をファストに体現でき、納得・満足してもらえて」というサイクルを生み出しやすいというのが本質だと思いますが、技術マターで少し項目を挙げます。

  • REST API 今では当たり前のREST/JSONという形式のAPIを提供するサービスの中でも優れた設計・バリエーションを有するので、簡単なリクエストからスタートしても使いこなそうとする過程でデータの取扱、RESTfulサービス周辺の技術的な知識・勘が養われる。JSONによるテキストベースのデータだけでなくファイルも取扱の対象となっている。勿論全知全能ではなくとも、全体としてv1のままここまで進化できているのも類を見ない

  • JavaScript/CSS データやデータアクセス権限等を扱うREST APIだけでなく、その気になれば画面もパワフルにカスタマイズできるJavaScriptCSSを読み込めるため、特にJSそのものや周辺ライブラリに触れるきっかけになり、kintoneに適用して試すという使い方もできる。kintone.proxy()というJSから外部サービスにAPIリクエストできるメソッドも更に可能性を広げてくれる

  • 短いアップデートサイクル kintoneが1〜2ヶ月に1回というハイペースでアップデート・進化していくので、それをフォローするだけでもアイディア・技術の幅を広げることができる。また、今まで出来なかったことが次のアップデートで出来るようになるかもという期待・ワクワク感、出来るようになるはずという安心感が常にある
  • 連携サービス kintone連携サービスまで手を伸ばすことで、周辺技術習得のきっかけが得られる。サードパーティが提供する連携サービスを使いこなすことも含まれるが、連携プログラムを別クラウドに設置する必要があればAWS等で構築したり、CMS連携の際にはMovableTypeWordPressの知識を要したり、directのようなチャットと便利に連携させたい場合にはNode.jsやHubotに触れたりといったこと具合になる

f:id:yamaryu0508:20150214165403j:plain

  • kintone Café まだkintoneに触れたことの無い方から、より高度なカスタマイズを行いたいと考えているプロフェッショナルの方まで幅広い層を対象に、 楽しく学び・教え合うことで、kintoneの魅力や活用法をみんなで共有するための勉強会コミュニティ(以上、kintone Café 理念)- 「kintone Café」(kintone Café運営事務局)の全国拡大に伴って、kintoneを学びながら、情報交換できる場が身近になってきた。2013年12月の「kintone Café at 札幌 Vol.1」を起源として、昨年2014年は各地で23回の開催回数を刻んでいる

f:id:yamaryu0508:20150213233623p:plain

  • cybozu.com developer network 開発者(技術者)同士を繋ぐコミュニティ「cybozu.com developer network」(サイボウズ運営)を通じてkintone界隈の開発者間でコミュニケーションし、疑問や課題を解決するためのヒントや具体策を得ることができる。開設半年で1,000IDを超え、2/27(金)には同コミュニティのリアル版?である「kintone devCamp Vol.1」の開催も予定されている

f:id:yamaryu0508:20150213233858p:plain

 

後に触れますが、私は技術面で「REST API」と「JavaScript」はkintoneを通して学ばせてもらいました。また、いまだにDBのコマンドは打ったことはありませんが、これらの要素は私にファストに大きな成長をもたらしてくれたと思います。そして、ユーザーと対面しながらのモノづくりの楽しさをkintoneの醍醐味として覚えました。

 いかがでしょうか?kintoneを通じて、技術者としての成長がユーザーの課題解決に近づくことに繋がり、・・・「開発者とユーザーを繋がり」、「働くママによりそう」ことにも繋がってきそうなイメージできそうでしょうか?いきなり「働くママによりそう」ところまでは想像が追いつかないかもしれませんが、「開発者とユーザーを繋ぐ」まではイメージしてもらえるのではないでしょうか?実は私自身が実感として語れる部分も「開発者とユーザーを繋ぐ」までで、「働くママによりそう」は今まさにジョイゾーメンバーが新たな切り口で実践中です。

 私の説明がイマイチということもあるかもしれませんが、kintoneは自分で触って、好きになっていくツールでもあると思いますので、興味を持って頂いた方は是非イジって実感してもらえればと思います。

 

kintoneは“技術者を育てる”開発プラットフォーム【自身の振返り】

 私はタイトル通り自身がkintoneを通じて技術的にも成長させてもらった存在だと思っています。また表現を増やすなら「kintoneは最高の教材」でもありました。

 ということで、自分のkintoneへの取組みの振返りたいと思います。

 

 kintoneに出会ったのはニシム電子工業サイボウズシルバーパートナー)時代M2Mに関わり出して3年目の2013年の2月のこと。M2M(Machine to machine)で連携できるサービスを探していた先輩がkintoneを見つけてきました。私自身の最初の印象は「NAS+ExcelGoogleスプレッドシートとかで十分じゃないですか?」でした(^^; まずは、kintoneのパートナー認定資格であるCD(Cloud Developer)の講習会に行きました。APIはもとよりDBはおろかプログラムも学生時代研究用のC言語Javaをちょっとかじった程度から7年経っているという状況からのスタートで、PHPkintoneのAPIをリクエストするということを通して「REST API」を学び、kintone上の画面をカスタマイズするということを通して「JavaScript」、「CSS」を学んでいきました。kintoneのREST APIは当時ドキュメントが申込制でググって情報が出てくるというものでもなかったので、はじめ苦労しました。ただ、いまだアプリを作るのに、このように多少のコードは書くようになりましたが、DBのコマンドを打ったことはありません。kintoneがあったからです。

 

kViewerTimelineカスタマイズで、「kintoneへの取組み振返り」)

 

しかし、kintone最初の案件がいきなり太陽光とある意味得意分野で、しかもM2Mに発展(クラウドWatch)し、M2M2kintoneな案件となれば、熊本や愛媛の農場に行ったり、宮崎や鹿児島のインターネットも届かなさそうな現場に足を運んでは、客先で作ったアプリを要望が出たその場で修正したり、カスタマイズコードを復路で修正したりということをやっていました。

 

 振り返れば、・・・まさしくkintoneを通じた「技術者とユーザーの繋がり」を楽しみながら、kintoneを便利に使って「お客さまに価値提供する(課題解決にあたる)」、「技術的に必要な機能を追加する」プロセスによる多くの学びと成長を実感し始めた時だったのだと思います。ちなみに、一応企画と営業の部門にいましたので、カスタマイズのやりすぎ感が否めませんが、kintoneであれば営業でも技術スタッフの帯同をお願いして要件を詰めるといった作業をスキップできるというのは体現できたのではないかと思います。

 

 そして、kintone等を扱う開発者コミュニティサイト「cybozu.com developer network」の開設(2014年4月)と同時に選出されたkintoneエバンジェリストにご指名を頂いたことをきっかけに自身でもkintoneの勉強会コミュニティであるkintone Caféの福岡版として「kintone Café 福岡」のVol.1〜3を主催し、各地のkintone Café沖縄のkintothon等遠方のkintoneイベントにも度々顔を出すようになりました。普段の福岡・九州という自身の枠の中での活動が、こういったコミュニティを通じて一気に刺激と広がりを帯び出した時です。

 

 このコミュニティを通じたご縁で、私はニシム電子工業から九州電力の電力保安通信(法律で義務付けられている電力会社専用の社内通信網)を司る電子通信部門に復帰して3ヶ月後、・・・「全てのサイボウズプロダクトに精通する」四宮さんが代表を務めるジョイゾーサイボウズSIパートナー)へと転職します。四宮さんは東京から福岡までわざわざ話に来てくれましたが、「Enjoy IT, Enjoy LIFE」というのスローガン、「システム39」という新しいSI・サービスの形を体現されているところに勝手に共感していましたので、あまり多くの説明を求め合うこともなく決断していました。これは「kintone転職」ですね^^ 「光ファイバ心線貸しの事業移管」といった重要ミッションへの取り組みの最中「送別会」ではなく「壮行会」として送り出してくれた九州電力電子通信部門の仲間への感謝も絶えないところです。SIerとして、kintoneを通じて「自身もユーザーさんもみんなハッピー」を共有できるような取組みをしたい、と上京し丁度3ヶ月が経ったところです。これからもkintoneがファストに進化していくように私もここまでに述べたコミュニティと共にまだまだ成長していきます!

 

 結びにかかりますが、・・・kintoneへの取組みによる成長、そのポイントは「優れた機能を備えたサービス」の上に形成された「コミュニティ」、「繋がり」、「楽しさとその共有」のサイクルに入り込むことだとまとめながら感じました。読んで頂いた方の中で、「kintone触って業務改善に挑んでみよう!そして、そこにある楽しさを感じ共有してみたい」と思ってもらえる方がいらっしゃれば幸いですし、実際に触れてみて、コミュニティに加わってもらい、どこかのCaféでお会いできれば最高だなと思っています!

 

p.s. こういうまとめでは良いことばかりだけでなく、残念なところにも触れた方が良いと思いますが、kintoneの場合はだいたいアップデートとコミュニティによってフォローされることがわかっていて、気にしたことありませんので、無しで(笑)

Raspberry PiをUnixBenchでベンチマーク比較【B/B+/2B】

 パッケージに6倍速いと謳われている「Raspberry Pi 2」ですが、人に聞かれると「速い感じはします」という応えになってしまうのが正直なところでしたので、UnixBench動かしてみました。

 

f:id:yamaryu0508:20150213084402j:plain

(上:B Rev.2 / 左下:2B / 右下:B+)

 

比較は、前回2B用にアップデートしたMicroSDカードをそれぞれに差し替えて、UnixBenchにかけることで行いました。

 

Raspberry Pi 2 Model B

 まずは早速2Bからやっていきます。

f:id:yamaryu0508:20150213084645j:plain

f:id:yamaryu0508:20150213084733p:plain

f:id:yamaryu0508:20150213084741p:plain

 

Raspberry Pi Model B+

 次にB+です。

f:id:yamaryu0508:20150213085331j:plain

f:id:yamaryu0508:20150213085352p:plain

 

Raspberry Pi Model B Rev.2

 最後にBです。

f:id:yamaryu0508:20150213085447j:plain

f:id:yamaryu0508:20150213085455p:plain

 

まとめ

 「System Benchmarks Index Score」だけまとめると、次のようになります。

ModelSystem Benchmarks Index Score
Raspberry Pi 2 Model B (4CPUs, 1parallel copy)

170.5

Raspberry Pi 2 Model B (4CPUs, 4parallel copy)

435.2

Raspberry Pi Model B+ (1CPUs, 1parallel copy)

77.5

Raspberry Pi Model B Rev.2 (1CPUs, 1parallel copy)

78.1

なるほど、B Rev.2とB+は同等で、2は4コア使えばその約6倍というのは妥当な数値のようです。画像ファイル等を扱う以外は特に使っていなかったVNC接続もまぁいけるかなという感じになりました。

f:id:yamaryu0508:20150213091448p:plain

これなら、やはりWordPressとかもいけるかもしれません。

 

Raspberry Piの設定【Raspberry Pi 2 Model B移行用アップデート】

 昨日千石電商秋葉原本店で購入してきた「Raspberry Pi 2」ですが、これまで使っていた「Raspbian  on Raspberry Pi Model B(+)」のSDカードはそのまま使えないことがあるらしく、アップデートが推奨されていると店員さんから聞きました。また、「element14」というのはシンガポールの会社で、OEM生産・販売をやっているようです。

f:id:yamaryu0508:20150208221508j:plainf:id:yamaryu0508:20150208221511j:plain

 

 試しに、既存のSDカードを挿してみましたが、やはり起動しませんでした。(ACTランプも、Ethernetのリンクランプも沈黙状態でした)

 アップデート方法はググると、こちらが出てきました。これまで「Raspberry Pi Model B(+)」で使ってきたRaspbianのSDカードを「Raspberry Pi 2」で使うためのアップデート方法が記載されていました。【2/9追記】このアップデートは結構容量を食うようで、SDカードの容量不足で進まないことがあるようです。そんな時には「Raspberry Piの設定【SDカード使用容量の変更(リサイズ)】」を事前に済ませてください。

 

手順1 Raspbianのアップデート

 どうやら、2014年12月バージョン相当へのアップデートが必要のようです。打つべきコマンドは4つです。既存の「Raspberry Pi Model B(+)」上で実行します。適宜プロセスを進めるために、[Y]を押して進めていきます。

$ sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install raspberrypi-ui-mods

前半の2行は定番ですが、後半2行が2014年12月版へのアップデートのようです。なんでも変更されたUIのアップデートを反映するもののようです。

 

 全てのコマンドを通し終えて、「Raspberry Pi 2 Model B」にSD移し替えて、電源を入れると無事起動して、SSHアクセスもできました。とりあえず、これで一安心です!また、執筆時点ではこのアップデート後も既存の「Raspberry Pi Model B(+)」にアタッチして利用できます

 

ちなみに、今回一区切りといことで私は、sudo rpi-updateファームのアップデートもやっておきました。

f:id:yamaryu0508:20150208235953j:plain

f:id:yamaryu0508:20150209000011j:plain

 

Raspberry Piの設定【SDカード使用容量の変更(リサイズ)】

 ここまでは容量には困っていませんでしたが、色々試してきてそろそろ容量不足に陥りそうな状況になってきたので、SDカードの容量をフルに使えるようリサイズしたいと思います。

 

手順1 現状確認

 最初にdf -hで現状の利用状況を確認します。

$ df -h

結果はこのようになりました。

f:id:yamaryu0508:20150208214905p:plain

今、SDカード自体は8GBのものを使っていますので、だいぶ持て余しています。

 

手順2 容量のリサイズ

 sudo raspi-configコマンドから入っていきます。

$ sudo raspi-config

f:id:yamaryu0508:20150208215308p:plain

コマンドを打つとこの画面が現れます。今回の設定は 、1 Expand Filesystem で行いますので、そのままエンターキーを押してください。

f:id:yamaryu0508:20150208215529p:plain

リサイズが終わると、このような画面になります。<了解> でそのままエンターを押してください。

f:id:yamaryu0508:20150208215819p:plain

 raspi-config の初期画面に戻ったら、「→」で<Finish> にカーソルを合わせて、エンターを押します。

f:id:yamaryu0508:20150208220007p:plain

そのまま、リブートを促してきますので、<はい> でエンターを押してリブートします。

 

手順1 リサイズ確認

 df -hで確認します。

$ df -h

rootfsのサイズが7.2GBになり、これでOKです。

f:id:yamaryu0508:20150208220217p:plain

これまで、「Raspberry Pi Model B」から途中「Raspberry Pi Model B+」に乗り換えてきましたが、「Raspberry Pi 2 Model B+」なるものが発表されました。価格据え置きで、かなりスペック上がるようですので、入手したら次は「iBeacon」や「WordPress」あたりに手をつけていきたいと思います。(WordPressは一度軽くやりましたが重すぎて記事化には至りませんでした)

 

「Amazon Web Services で センサーデータ リミックス ハッカソン」に参加してきました

 1月17日、目黒のAWSさんで開催された「Amazon Web Services で センサーデータ リミックス ハッカソン」に参加してきましたので、覚えている範囲で簡単にまとめたいと思います。 

f:id:yamaryu0508:20150120234405j:plain

 

 今回、アプレッソさん(EAI: DataSpider)の主催、AWSさん(クラウド: AWS)、GOGAさん(地図ソリューション)、ネビラボさん(センサー: GingaBox)、プリファードインフラストラクチャー機械学習Sedue)さんの協賛で、各社さんから今回利用できるツールが提供されました。さらに、タスク管理・共有にnulabさんのBacklogが利用され、ネビラボさんのGingaBoxと合わせ、福岡発のプロダクトに囲まれ、いずれもお仕事でご一緒したことある福岡出身の私としては、東京のイベントで出会えたことが嬉しくて仕方ありませんでした^^

f:id:yamaryu0508:20150120212616j:plain

 (GingaBoxとBacklogとnebulab橋本さん)

 

 午前中は各プロダクトの簡単な説明と、アイディア出し、チーム分けで、午後からアイディアをまとめながら作っていきました。

f:id:yamaryu0508:20150120214034j:plain

(ハッカソンの様子と主催のアプレッソ友松さん)

 

 最終的には、

  1. 反復横とびをセンサー経由で消費カロリーに換算し、ビール相当で表現・・・オトナの体力測定
  2. 人の密度等部屋の状況の可視化から電気料金削減を目指す・・・お部屋Watch α
  3. (温度等)センサー情報から人が集まってる人気の場所を可視化
  4. 自称?イクメンパパをアシストする赤ちゃんのぐずりを検知して、その原因や泣く前に予兆を教えてくれる・・・GuzuReach
  5. コンサート会場等での盛り上がりをセンサー情報から可視化・・・Internet of Nori

といったアプリが発表されました(発表順)。優勝は5番目のチームが獲得し、各チーム各社さんからの特別賞を受賞しました。

 

f:id:yamaryu0508:20150120214154j:plain

(優勝チームのプレゼン、ノってくると画面も盛り上がります)

 

 個人的には、そもそも言葉を発することもできない赤ちゃんの感情を読み取れるという点で、他の方法では代替しにくい4番目のチームのアプリに惹かれました。着眼点や前提も深かったように思いました(自ずと写真パシャパシャしてしまった)。

f:id:yamaryu0508:20150120214229j:plain

f:id:yamaryu0508:20150120214241j:plain

(赤ちゃんと周辺環境の考察が凄かったと思います) 

 

私自身は2番目のチームでIoTの王道シナリオをやらせて頂きましたが、久々(と言っても数ヶ月間のブランク)IoTを楽しませて頂きました。自分に身近なkintone(データ蓄積と通知)やdirectbot経由の問合せ)もフル活用して、動くところまで完成させました。

f:id:yamaryu0508:20150120214507j:plain

(directとDataSpiderとkintoneのコラボ)

 

数ヶ月間離れた間にもH/W(物理的なもの、センサー)とS/W(Web、DB)のボーダレス化が劇的に進んでいることを感じまし、エンドユーザーにとってもより身近に、より扱いやすくなってきたと思います!

 

 今回技術的には、沖縄で手をつけられなかったDataSpiderを使えたことが収穫でした。本当はAWS Lambda(Advent Calender 2014)まで触れてみたかったのですが、またの機会にしたいと思います。また、久々のアイディア出しからのイベント参加だったので、脳にも良い刺激になりました!せっかく東京に移ってきましたので様々なハッカソン・イベントにももっと参加していきたいと思います。