へもろぐ

へもへも備忘録

PepperくんがJavaから制御できると聞いて、駆けつけて、触ってきた件について

JDTとStephan ChinのJJUG Raspberry Pi Night Seminarで紹介された

Pepperくんが、Javaで制御できる件…さっそく体験会に行ってきました。

 

今回は、ソフトバンクロボティクスさん主催のJJUG協賛イベントで、神田の3331にあるアルデバランのアトリエで行われました。

募集自体が、Stephanのセミナー内で行われたことと瞬殺で全席完売状態だったので、参加したかった人に情報が行き渡らなかったみたい。

今回の開催自体はStephanの「JJUGのために、やってあげてよー」という発言があったからみたいです。Stephan、ありがとう♪

 

やったことは、

  • Pepperの概要説明(主にセンサー類)
  • Choregrapheの使い方説明
  • JavaSDKの使い方説明とハンズオン

でした。

資料類は、Web公開しないでねー(ハンズオンの風景写真はいいけど)と言われたので、資料公開は無しです。(スライドだけは公開したいなー。)

 

とりあえず、どんな感じのソースコードになるか?だけは、お知らせしたいので、私が最初にテストしたソースコードを載せます!

4/28のPepperくんイベントで試したソースコード

このコードをEclipseで書いて実行すると、PCにあるプログラムからPepper内にあるPepper SDKを呼び出しして、Pepperが動きます。

PC側にプログラムがあるので、ブレイクポイントを仕込んで、デバッグ実行も可能でした。

難点は、

  • プログラム側が落ちても、Pepper側の動作が終わらないことがある
  • プログラム末尾まで動いても、プログラム自体が終了しないことが多い

という点で、このへんは今後の改良待ち…ですね。

 

他の実行方法として、Pepper内部にプログラムをインストールしてしまう(これが本来のやりかたなのでしょう)方法も用意されているとのことですが、今回はやりませんでした。

 

あと、Pepper実機が無い人のために、Choregrapheのバーチャルロボットを使って動作確認する方法を聞きました。

Choregrapheの[編集]->[設定]でロボットモデルを選んでから、[接続]->[バーチャルロボットに接続]を選んで、Choregraphe上のロボットビューに、バーチャルロボットを出します。

プログラムのほうは、[編集]->[設定]の画面に出ていたポート番号を使って、

   tcp://localhost:出ていたポート番号

にすればいいそうです。

 

Choregraphe上のロボットビューは、センサーや音声をバーチャルに処理するため、センサー用のライブラリを設定したり、音声はふきだしで表現したり…と、面白みには欠けますが、一通りのことができそうです。(経験上、カメラはバーチャルロボットではダメ…)

 

Java用のAPIjavadocレベルのリファレンスもいただきました。APIを見るといろいろできそうな感じはあるのですが、まずは、Choregrapheでどんな制御ができるのかを勉強したほうがよさそうです。

 

 

ハンズオンで体験したWindowsだとめんどくさいなーという点をまとめます。

 

私は、Choregrapheは触ってたのでそこは大丈夫!と思っていたら…

今回持参したWindows7機では…いろいろと…問題が…

 

まず(分かっていたことですが)ChoregrapheからPepper実機に接続するとき、通常は[接続ボタン]から一覧を出して自分の使うPepperを接続するのですが、Bonjourが入ってないと、一覧内容が出ないのです。Windows機でzipのほうのChoregrapheだとBonjourのインストールを聞かれないので…入れ忘れることが多いです。

Bonjour必須!!

 

 次が、Java SEのこと。Pepper用のJava SDKJava NAOqi SDK)は、32bitベースです。こちらが作るプログラムも32bitのJava SEが必要です。Windows機で64bit使ってる人は、ちゃんと用意しておいてね?ということでした。

 

とりあえず、短い時間のハンズオンでしたが、Eclipseで開発して、実機を即動かせるというところがよかったです。

 

噂によると、6/6にJJUGPepperハッカソンをするような…。なので、それまでにSDKを研究しておきたいと思っています。

 

Windows女子部に行って、fiddler使って楽しかった話を聞いてきた。(単なる感想文)

Java女子部のヒトなのにWindows女子部の勉強会に行ってきました。

3月10日 Windows女子部 Web班 第1回勉強会(東京都)

 

過去、Java女子部はWindows女子部にお世話になってまして…

R1-6 [BOF] なかなか聞けない!IT業界の女性の本音〜社外にロールモデルがいたっていいじゃない JJUG CCC 2014 fall

そのご縁で、以前からWindows女子部のメンバーには入れていただいていたのですが、人気の高いイベントが多いので、参加できたのは、初めてです。

 

今回は、『Team Web』の第1回目勉強会だということで、fiddlerの紹介と簡単な体験…という内容でした。

 

fiddlerWIndows環境で動く、HTTPリクエスト・レスポンスの中身を確認できるローカルプロキシです。有名です。

…でも…私は、ほとんど使ってません、今までは。

手軽に見るなら、ブラウザのDeveloper Tool系でやればいいし、ガッツリやるならWireshark使えばいいし…

と、思っていました。

他のツールで用が足りてるからfiddler一生使わない…という選択もあるとは思うのですが、

ツールは、いろいろ使ったうえで、状況に合わせて選択したいと思うんですよね。」

という個人の気持ちもあり、参加。

 

今回の勉強会では、

  • これを使って何ができるのか
  • プライベートで使ってみた実例
  • ちょっと触ってみる

この3点を、「気軽に」「楽しく」みんなで取り組みました。

 

最初に、fiddlerそのものの説明から始まったのですが、普通の勉強会だとガッツリ説明して…その時点で、入門レベルのヒトは聞いてて息切れ…になるのですが、ここはサラッと。

実例と触ってみるところで、機能や特徴が分かる説明をしてもらえたので、サラッと概要だけでも、足りなかった感は全く無かった!

むしろ。最初の部分での説明は、この程度の量で良いのかー!もっと実感できるタイミングで説明したほうがいいんだー!と思いました。

 

実例は…ここには書けないw(ホントは書きたい~ ホントに書きたいぃ~)

ですが、普段からWebシステムに(技術者として)接していないヒトには思いつかない活用法でした。「へー…さすがプロだ!」と思いました。

そして、この実例の説明だと、HTTPリクエスト・レスポンスの中身に興味を持つだろうな…と思いました。

 

そして最後の、「触ってみる」タイムときに、雑談ベースで「機能」「使い方」を説明していただいたいて…

 

あ、こんな感じのものねー!またもうちょっと先の話もしたいねー!

…という感想で終わりました。

 

明日から現場で使います!!っていう興奮は得られなかったのですが、今後、もうちょっと勉強してみようかな?と思う意欲は湧きました。

 

収穫の大きい(情報量の多い)勉強会もいいけれど、平日で仕事帰りの勉強会なので、このくらいの情報量だと負担がなくていいな♪

 

勉強会のあとは、

残れるヒトだけで、近くの居酒屋で晩ごはんを兼ねた懇親飲み会。

ここでも収穫になることがありました。

 

1つは。

参加者の中のひとりが、テスト技術者ということで、JaSSTソフトウェアテストシンポジウムJSTQBテスト技術者資格認定のことを話してくださって、それに対する椎野さんのご意見や取り組みなども伺って。

 

「テスト工程、大事!」の思いを新たにすることができました。

 

あと1つ。

仕事メンバー以外、同じ技術コミュ以外…というような『外のヒト』と話すのは大事だなぁと。

いつもは、JavaとかRaspPiとか、わりと偏ったところに居るので、ほかの世界のみなさんと交流を持って、『他の流れの中で、どんな取り組みをしているのか』を知ることは、自分のプラス/マイナスやバイアスを知ることになって、それが、次へのステップになるな…と感じました。

これからも、いろんなコミュのヒト、いろんな技術、食わず嫌いしないで取り組みたいです♪

f:id:sh1k1ya:20150311121512j:plain

 お土産にもらった「fiddler」の本と、自宅にあった「JSTQB」の本。

この勉強会をきっかけに、ちゃんと取り組んでみよう…

 

実践 Fiddler

実践 Fiddler

 
ソフトウェアテスト教科書 JSTQB Foundation 第3版

ソフトウェアテスト教科書 JSTQB Foundation 第3版

  • 作者: 大西建児,勝亦匡秀,佐々木方規,鈴木三紀夫,中野直樹,町田欣史,湯本剛,吉澤智美
  • 出版社/メーカー: 翔泳社
  • 発売日: 2011/11/12
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 85回
  • この商品を含むブログ (12件) を見る
 

 


Windows女子部 活動記録

「Firefox OS WoTハッカソン」に行く前に、勉強してみた。(WebIDEを試してみるところまで。)

思い立って「Firefox OS WoTハッカソン」に参加することにしました。

フォクすけクンが好きなだけで、FireFox OSに特別な思い入れはないのですが…

ほら…バレンタインとか暇だしwww

 

ハッカソンの内容は、Fx0とmbedを使って、なんか作れ!というもので、

 参加する…と決めたはイイのですが、

へもへもなエンジニアであるため、かなり不安があります。

Fx0持ってないし、mbedも聞いたことあっても使ったことないし…というわけで、

事前勉強が必要だなーと思い、こんな勉強をしました。

 

…という記録です。

ゼロから勉強してるので、ここから先、超長いです。

 

続きを読む

Raspberry Pi 2、買ったよ。

Raspberry Pi 2 Model B はじめました。

 …たんなる感想文なので、情報が欲しい人は、情報持ってそうなみなさんの記事を見てくださいwww…

 

B+・A+とリーク騒動があって、今回も直前まで情報は伏せられてたようですが…発売当日朝に、リーク情報が出てたのをTwitterで拾って、気持ちの準備だけは済ませていたので、発売当日にRSコンポーネンツさんでポチることができました♪

 

f:id:sh1k1ya:20150210164200j:plain

届いたら、箱が前より厚くなってたので、あれー?と思ったのですが、中身はB+と同じくらいでした。各種パーツの位置が変わったので、B+のケースが流用できない!という話もあったようですが、私の使ってるのは大丈夫でした(だって、こんなケースだものwww)

f:id:sh1k1ya:20150210164208j:plain

 

今回出たものは、性能面でアップしたことと、将来的にWindows10のEmbedded版が動くようになる…というのがウリですね。

 

気になるのは、協力関係にあった「Java」はどうなっていくんだろう…ということですが、RPiと関係あるかないかは別として、こんな記事もある↓ので、今後に注目な感じではあります。

Microsoft、クロスプラットフォームのモバイルアプリ開発でJavaを推進 - Computerworldニュース:Computerworld

 

ちなみに。

現状のRaspbianには、Java8が入ってます。今まで通りです。(RPi2になることと、Javaがどうなるかは、直接には関係してないことなので。)

Raspbianインストールした時点で「java version "1.8.0"(build 1.8.0-b132のJRE)」が入ってますし、apt-get update / apt-get upgradeしても同じです。

 

そういえば、JavaFXは、これからは使えない…みたいな話が公式のフォーラムで盛り上がってましたが、その件も気になるなぁ…

 

あ、脱線した。

 

RPi2を使ってみた感想としては、「やっぱ、早いな」。

まぁ…感動の嵐…という程度でもないです。

・NOOBSでRaspbianインストールに、20分弱…

Javaコンパイルも「あ、うん、早くなったね」という程度

 

将来のWindows10対応を見込んで、持っておきたい1台ではありますが、現時点でAmazonとかにある「ボってる高いの」を買うより、在庫が豊富になってから買えばいいかな(…まだWindows10対応するのは、ずいぶん先だし…)と思います。

 

本来の使い方(コンピューターサイエンスの学習)に使うなら、旧型(BとかB+とか)で十分だなー。

 

 

Java女子部が、JavaScriptでアルゴリズムの勉強会をやった。

1月最後の週末に、こんな↓勉強会を開いてみました(お手伝いだけ…ですが)。

【東京】【女性限定】JavaScriptを書きながらアルゴリズムを学ぼう! - Java女子部 | Doorkeeper

開催前から「なんでJava女子部でJavaScriptなの?」ってTwitterとかで言われてたヤツですwww

 

今回の開催では「文系出身女子のために、アルゴリズムやる勉強会、必要!」という話が発端になってたような記憶があります。

この企画は他のメンバーが担当してて、内容も講師や場所の依頼も、私は関与してなかったから、実は「なんでJavaScript?」に答えるネタを持ってなくて、Twitter見てもスルーしてたんですが、内心気になってました。

なので、開催直前の会場準備中に、企画や講師をしてくださった協力者さん(JJUGとかではない人)「なんでJavaScriptにしたんですか?」と聞いてみました。

その答えは↓

JavaScriptのほうがJavaよりも、データ型の融通が利くでしょ?データ型変換に気を取られちゃうと、初心者さんはアルゴリズムから頭が離れちゃうでしょ?アルゴリズムのことだけ集中して考える必要があるレベルの人向けだから、JavaScriptにした。』

…なるほど。

 『言語仕様に沿ったアルゴリズムも必要だけど、まずは、言語仕様に引きずられない基礎をやっておかないと。』

…なるほど、なるほど。

Java慣れしすぎていて、言語仕様依存のところは無意識に扱えちゃうから、そんなこと考えたことなかったけど。

 引っかかってる人は、そういうところで引っかかってるってことなのかなーと思いました。

 

まぁ、そういう理由でJavaScriptでした。

 

実際の内容は、アルゴリズムちゃんと自分で考えようね!という5時間でした。

(詳細レポートは…無しw)

 

30人以上集まったのですが、「仕事でプログラム書いてる人…手をあげて」で8割くらい手が上がったのですが、アルゴリズムを自分で考えてソース書いてる人は、その半分以下で、「Java女子、悪い意味でヤバい…」と本気で思いました。

 休憩時間に話聞いてみると、やっぱり、入社して初めてプログラムの勉強をした人が多くて、「FizzBuzz」「鶴亀算」「小町算」のような、ほんと基礎の基礎みたいなことも初耳という人も多くて。

アルゴリズムの勉強は、基本情報処理の試験対策か、入社した会社で1・2日くらいフローチャートの指導を受けたときだけ…という人がほとんどでした。

ちょっとショック。

高専とか大学で情報専攻という人とは、知識量に差があるのは仕方ないなーと思ってますが、このあからさまな量の違いは、どう対処していけばイイものやら…悩みます。

こんな大問題に、Java女子部程度で対処しようなんてことがそもそも無理なことなのですが、無理と言っていては、前に進めないので頑張ろう…と思いました。

 

やってみての感想を聞いたのですが、

私の聞いた範囲では「難しかったけど、ひらめく瞬間が良かった」「答えが出せれば楽しい」「自分ひとりで勉強するのは、ちょっと辛いから、また集まりたい」という感想が多かったです。


 

諸事情で、使った資料を公開できないので、資料替わりに…

 

Javaによるアルゴリズム事典

Javaによるアルゴリズム事典

 

 

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

 

 

 このあたりのものを自分で勉強するといいよ…ということでしたので、貼っておきます。(上の本のほうが、難しいよ…とのこと。)

 

すべてのことを誰かから教えてもらえるワケではなく、ある程度の手助けをしてもらったら、そこから先は、自分でやっていかなきゃいけないことなので…

ひんぱんにアルゴリズムの勉強会をJava女子部で開催するワケではないけれど。

これをキッカケに、アルゴリズムを学んでいく気持ちになってもらえるといいな?と思います。

 

最後に、今回の勉強会講師さんの言葉…

『何かが分かって、興味が沸いたら、スキルアップはスタートしてる。”ギーク”を目指す第一歩は、興味を持って自分で考えること!』

Java女子部に対する、オバさんの思い。

もう1か月も前のことですが…JJUG CCCで、Java女子部のメンバーがスピーカーをしました。

JJUG CCC 2014 Fall(11月15日開催) | 日本Javaユーザーグループ

内容は、日ごろの女子部活動についての報告で、どんな人が参加しているのかを、女子部以外の人に見てもらう機会として、とても重要だったと思います。

 

世の中、技術コミュニティは、「どの技術でも当たり前に有る」状態になっています。

参加している人たちは、その技術が「好きだから」「面白いから」参加してる。その技術を発展させていくため、世に広く知らしめるため、参加している。

技術コミュニティとは、そういうものだと、私もずっと思ってきました。

 

だから、Java女子部設立の話が出たときにも、「Java大好きで、技術バリバリな、ギーク女子の集まりを作りたいんだろうな」と、最初はそう思いました。

 

でも、設立を考えているメンバーから出た言葉は、

Java使ってる女性エンジニアって、好きで使ってるとは限らないよね?使わなきゃ仕事にならないけど、誰にもちゃんと教えてもらえてなくって、なんとなーく使ってる人、多いと思うの…」

…そうかも!! と、そのとき思った。

 

SIのお仕事に関わると、

プログラミング言語Java

というところが、かなりあります。

 

自分もそういうところで働きながら、

現場がJavaだから、なんとなくJava使ってるうちに好きになってきたかも?

っていう感じだったかも。

 

最初にJava使ったとき、すごーく細かいところをよく知ってるJavaエンジニアと話が噛み合わなくて、

「こんなことも知らないの?分かってるとか使えるとかいうレベルじゃないよ…」と呆れられたことも多く、

でも、ぜんぜん教えてくれないから、いつも途方に暮れて、

英語ぜんぜん読めないのに英語の技術本開いて、調べて勉強して。

仕事終わると、絶望的な気持ちで夜道を帰ったなぁ…

なんて、回顧しました。

 

今日も…今も…

きっと、あの頃の私と同じように、

PCに向かって「あぁ、どうしたらいいんだろう」と

途方に暮れている女子が居るような気がする。

 

そう思ったから、運営のお手伝いしてもいいと。

コミュニティがやることの方向性が、途方に暮れてる女子に向かうのなら、その女子の気持ちがいちばんわかるのは、同じ経験をした「かつての女子」だと思ったんです。

 

かつての女子…は、時を経て、ずうずうしいオバさんになり、今は多少のことがあっても、「えー?教えてくれれば、ちゃんとやれたと思いますよぉ?」と文句言いながらも情報を集められるようになってますしwww

 

今なら、途方に暮れる女子に、なんとか助けの手を差し出せるように思った!

Java女子部、がんばろうと思った♪

 

それから10か月ほど…JJUG CCC fallで発表したのは、

ギークではない、ふつーの…でも、多くの現場にいるような…女子たちでした。

 

その中のひとりが言ってくれた「よし、Javaやっぱりがんばろう」の一言で、やっぱりコミュニティ作ってよかった!と思っています。

 

夕べは、Java女子部の忘年会でした。

内々の軽い飲み会なので、来れる人だけ来たらいいよ♪

そいういう感じで、そんなに人数いなかったけど、集まってみて、

今まで時間が合わなくて勉強会には参加できなかったけど、今日は会社の近くだったし…みたいな感じで、参加してくれる人も居て、ワイワイできて、楽しかった~♪

仕事どんなのしてるの?みたいな話、「ふつーのJava女子」としての仕事の悩みや葛藤。

そういうのを、お互いに「うんうん、ウチもだよ」「わー、そりゃつらいわ」みたいに、同じ職業を持つ者同士、共有しあっている時間が、とても楽しかったです。

 

そういうコミュニティで居続けたいと思いました。

 

まだまだ紆余曲折なJava女子部ですが、

来年は、もっともっと若手主体のイベントも開催できそうで、楽しみな状態に成長していると思っています。

おばさんは、ちょっと陰に回って、邪魔にならない程度にお手伝いを続けていきたいと思っている…のです。

 

Java女子部

Java女子部 | Doorkeeper

Facebook

Java女子部のあゆみ2014

【復習】Java女子部でやった、ラムダ式ハンズオン(3):配列とラムダ式

【東京】◆Java SE 8勉強会◆女子部もラムダ式に挑戦! - Java女子部 | Doorkeeper

 ↑これの、復習…その3。

その2のほうに「配列全体を何かする処理」と書いた部分、もう少し具体的にしていきます。

配列全体を何かする処理

Java SE 8でラムダ式が入ったときに、「やばい、文法かなり変わったらしい」と焦ったヒトもあるらしいのですが…全体の書き方が変わったワケではないです。『for文禁止』が、ひとり歩きしすぎちゃって誤解されちゃった感じ?

思い出して欲しい(または、知って欲しい)ことで、Java5になったときに、for文以外に、配列の先頭から末尾に向かって処理をするための拡張for文が入りました!そのときに、ある一定のパターンのfor文やwhile文は『便利な書き方』『わかりやすい書き方』になりました。

今回のラムダ式適用ポイントの1つ目が、↑に書いたような、『配列については、ある一定のパターンの記述がラクになります』…というところです。

では、その例…

配列要素を先頭から処理することについての進化

 Java5の文法で覚えているヒトが多いと思うのですが、その前のものも(BeforJava5)書いてみました。

一番上がJavaSE1.4とかの古い時代からある書き方。真ん中は、Java5から始まった書き方。最後が、今回のJava8。Java8でfor文で書かなくなったから、for文禁止…と。

拡張for文で書かなくなった代わりに、.stream()とか.forEach()とか出てきたよ、それがProject LambdaでCollections Frameworkに加わった変更で、Stream APIに関するところですよ♪ということ。

↓に、.stream()の説明

http://docs.oracle.com/javase/jp/8/api/java/util/Collection.html

↓に、.forEach()の説明

http://docs.oracle.com/javase/jp/8/api/java/util/stream/Stream.html

さらに、もっと減らして書けるよ?ってことで。

texts.forEach( (text)-> System.out.println(text) );

 とか

texts.forEach(System.out::println);

 こんな書き方もあるんです。

(この部分が、櫻庭さん資料3-1のところです。)

 書き方については、今回の勉強会に使ったNetBeansだったら、Java5の書き方に警告を出してくれて、クリックひとつでJava8の書き方になるので、慣れるまではIDEの機能を使うといいと思います。

 

初歩向けに書いたので、大掴みな説明になってしまいました…汗。もっときちんと詳しく説明してくださってるエントリを発見したので↓こちらも読んでください。


問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時 - ブログなんだよもん

 for文禁止の件は、↓のエントリが、ちゃんと理に適った話を説明していて、上司説得にはイイな♪って思いました。


2014-05-18 - torutkの日記

 

「配列全体を何かする処理」について簡単にまとめると、

配列を、グルグル繰り返しして中身を先頭から末尾まで全部処理していくところは、ラムダ式で書けるんじゃね?

…ということです。

 

…まだまだ続く…

 

開催から時間が経ったので、参加者さんが書いてくれてるエントリも増えたので、ご紹介♪


Java女子部 Java8+ラムダ式ハンズオン勉強会(ラムダ式、stream) その1 - のた犬のうまい猫めし

うん…よくまとまっていらっしゃる…見習いたい☆あと、絵がカワイイにゃっ!