GitHub勉強会 in Kanazawa ( kzrb meetup #61 ) に参加した話

9月16日(土)に開催された、GitHub勉強会 in Kanazawa ( kzrb meetup #61 ) に参加してきました。

Meetup #61 - Kanazawarb
GitHub勉強会 in Kanazawa - connpass
Meetup #61 report - Kanazawarb


チーム開発実践入門──共同作業を円滑に行うツール・メソッド:書籍案内|技術評論社』の著者である、GitHub 池田さんがいらっしゃるということで本を持っていきサインもいただいちゃいました!
gihyo.jp
f:id:shiget84:20170927091057j:plain

また、ステッカーや GitHub Flavored Markdownチートシートなどのノベルティをいただきました。
f:id:shiget84:20170927091251j:plain

その他、マグカップやTシャツなどは勉強会最後のじゃんけん大会で勝者にプレゼント。私は残念ながら勝ち残ることができませんでした。残念。



会場はDMM.com Labo 金沢南町事業所。昨年の『Meetup #52 - Kanazawarb』以来かな?相変わらず素敵なオフィスでした。


勉強会はとても面白くて充実した時間を過ごすことができました。

仕事ではGitHubではなくBacklogを使っていて個人的なソースの管理にもBacklogのフリープランを使っています。
そのため GitHub はほとんど使っておらず、知らない機能を数多く知ることができたのでよかったです。


実際の現場で、うまくまわっていなかったところをどのようにまわしていくか、という改善の話を聞くことができたり、
ほとんど知らなかったAWSのCodeシリーズについて知ることができたり、Git インフラ選定事例を聞けたり、
パネルディスカッションで質問に回答してもらったりと、とても楽しかったです。


チケット管理ツールと GitHub を使っている現場も多いと思っていて、そのなかでチケットと GitHub の Issue をどう使い分けているのかということが気になったのですが、事例を聞けたりしたのもよかったですね。


今回は3連休ということもあって、福井の実家に帰る予定があったので懇親会は不参加。
参加していたかたの Twitter を見てたらとても楽しそう&参考になりそうな話が多かったみたいで、参加したかった!!!

まとめ

  • GitHub勉強会 in Kanazawa ( kzrb meetup #61 ) に参加しました
  • ノベルティもらいました! わーい!
  • 懇親会参加できなかったのが悔しい...

kanazawa.rb meetup #60 に行ってきた話 #kzrb

8月19日(土)に開催された、kanazawa.rb meetup #60 に参加してきました。
Meetup #60 - Kanazawarb
kanazawa.rb meetup #60 - kanazawa.rb | Doorkeeper

今回の内容は「祝5周年!もくもく会」! 5周年おめでとうございます!
ちょうど「ふくもく会 その31 〜メイドインふくもく会〜 - connpass」も同じ日に開催しているということで、互いの会場を繋いで基本はもくもくしつつも相互に LT を聞いたりしている会でした。



自分はというと、気になっているけど積極的にウオッチしていない情報*1を通知してくれる Twitter bot でも作ろうかなーと事前には考えていたのですが、最近仕事で RxJava さわりはじめて全然理解できてないまま触り続けるのも危険だなーと思ってちょっと RxJava まわりの勉強をすることにしました。(kanazawa.rb なのに Ruby じゃないところは気にしない)


ということで、今日は『RxJavaリアクティブプログラミング | 須田智之 | コンピュータ・IT | Kindleストア | Amazon』の Kindle 版を買い読み進めていました。
www.amazon.co.jp

進捗としては全体の20%程度読めたかな、という感じ。サンプルコードは読み飛ばしていったので、別途環境構築して実際に動きを確認したいところです。


懇親会はビアガーデン! 3,000円で飲み放題、食べ放題! いろいろ凄かったですね*2

個人的には今年初のビアガーデンでワイワイできてとても楽しかったです。



次回は『GitHub勉強会 in Kanazawa - connpass』ということで、予定調整して参加できるようにしなきゃ!

*1:CDを買っているアーティストの新譜情報とか、買っている漫画の新刊情報とか

*2:ふくもく会さんの懇親会もビアガーデンだったようで、少し繋いだときに肉を焼いてるところが見られたのは羨ましかったですが

kanazawa.rb meetup #57 に行ってきた話

5月20日(土)に開催された、kanazawa.rb meetup #57 に参加してきました。
Meetup #57 - Kanazawarb
Meetup #57 report - Kanazawarb
kanazawa.rb meetup #57 - kanazawa.rb | Doorkeeper

今回はITビジネスプラザ武蔵 4F サロンスペースでのもくもく会でした。
過去に研修室で開催されたkanazawa.rbのmeetupには参加したことがありましたが、サロンスペースでの開催では初参加。どのような会場なのか楽しみでした。
30d.jp
せっかくカメラ持って行ったので、もっと会場の写真を撮っておけばよかったかなー。


さて、今回のテーマはもくもく会
何をしようかなーと考えていたのですが、ちょうど自宅の PC に Ubuntu を入れて放置している端末があったので、Itamae での環境構築について調べつつ試してみるというテーマにしました。
参考にしたのはこのページ。Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~:連載|gihyo.jp … 技術評論社
とりあえずこのページの通り試してみて、そのあとで自分がやりたいことを試してみることにしました。


が、このページの通り進めてみようとすると、VirtualBoxVagrant を使った環境で Itamae を使って環境構築をするという内容。
とりあえず VirtualBoxVagrant の環境を構築しつつ、待ち時間で4月に買って読んでいる途中だったJava本格入門の続きを読むことにしました。
gihyo.jp



で、結果としてはItamaeは上記の環境構築だけで時間が終わってしまいましたが、Java本格入門のほうは読み進めることができました。
昨年11月に転職して本格的にJavaでコードを書く環境になって半年、なんとかやってこれているというような状況ですが、Java8からの Stream APIラムダ式あたりの理解が怪しいまま触っているというような状況だったので、その部分の理解を深めることができたのがよかったです。


まとめ

kanazawa.rb meetup #57 に参加してきました。懇親会まで参加し、とても楽しく充実した時間を過ごすことができました。
ついで金沢に一泊して、日曜日には数年ぶり(10年以上ぶり?)に兼六園に行くことができました。天候にも恵まれ満足できる2日間でした。
f:id:shiget84:20170526222930j:plain
f:id:shiget84:20170526222937j:plain
f:id:shiget84:20170526222949j:plain
f:id:shiget84:20170526222957j:plain
f:id:shiget84:20170526223006j:plain

高専カンファレンス in 東京に行ってきた話 #kosenconf

3/25 に株式会社オプティム東京本社で開催された、高専カンファレンス in 東京に参加してきました。
http://kosenconf.jp/?109tokyo


春をテーマにした発表を募集していたので、春から環境が変わり地方から首都圏等に出てくる人もいるかと思い、「富山に移住して変わったこと」というタイトルで発表をしてきました。(自分の場合は横浜から富山だったので、首都圏から地方という逆パターンなのですが)

いつもは直前に資料を作ってたりしたのですが、今回は1週間以上前に資料をほぼ作り終えて直前に手直しという形で余裕をもって準備をしました。がやっぱり話忘れてたことがありますね。「富山に来たら車中心になってしまったので運動量が減ってしまった」「横浜では1日1万歩くらい歩いていたのに、富山に来てからは3000歩前後になってしまった」というような話もしようと思っていたのですが、資料作成の段階ですっかり忘れてしまっていました。


高専カンファレンスの参加は、前回の東京で開催された100tokyo以来なので1年3ヶ月ぶりといったところでしょうか。初めて会うかた、久しぶりに会うかた、いろんな人と話ができて楽しかったです。ちなみに今回はこんな感じで個人名刺を用意していきました。

数年前に作った名刺が余っていたので、自分が撮った写真をシールにして貼ることで手軽にいい感じな名刺を作りました。
f:id:shiget84:20170330001912j:plain


シールの作成は、カメラのキタムラが近くにあったのでここの分割プリント(シール加工込み)を利用しました。
分割プリント|デジカメプリント、写真現像はカメラのキタムラへ


Webから00:46に発注したら、営業開始直後の10:08に商品仕上がりのメールが入っていました。仕事が早い!
店舗に取りに行くことにしていたので取りに行ったら、そこでシール加工するかを聞かれたので、
シール加工を依頼し5分ほど待っていたらシール加工も完了。手軽に使えていいサービスだなーと思いました。

ただ、自分の場合は16分割のシール加工での印刷だったのですが、それぞれの写真に(プリクラみたいに)切れ目が入っていなかったので、自分でカッターを使って切る必要があったので、そこだけが面倒でした。
期間に余裕がある場合には、他のシール作成サービスを利用してみてもいいかなー、という感じですね。




ということで、25日は高専カンファレンスに参加し、26日はKosenDJ-bu #12(Kosendj-bu)に参加し、横浜にいたときによく行っていたダーツバーで軽く飲んでから富山に帰って来ました。
土曜日は1万歩ちょい、日曜日は2万歩ちょい歩いたのですが、富山に来て全然歩かなくなってしまっていたので、月曜日は軽く筋肉痛でした。

まとめ

高専カンファレンス in 東京を中心に東京に行って遊んで来ました。お世話になった皆様ありがとうございました。

何を目的にテストをするのか

最近テストについてが話題ですね。
テスト計画の立て方 - Qiita
UIテスト自動化でSIerのExcelスクショは滅びるのか - てんてんのぶろぐ


そもそもソフトウェアテストって何を目的に実施するんでしょうか?

ソフトウェアテストを行う目的としては、「欠陥やバグを検出する」「要件を満たすことを保証する」「リリース後の品質リスクを見積もる」「開発プロセス改善の指標となる」などが挙げられる。どの目的を重視するかは、開発するソフトウェアプロダクトの目的やニーズ、開発組織の成熟度などによって変わってくる。

情報システム用語事典:ソフトウェアテスト(そふとうぇあてすと) - ITmedia エンタープライズ

ふむふむ。なるほど。


以前、私が働いている時に上司から「品質を上げるためにテストはしっかりやるぞ」ということを聞いたことがあります。ところで品質とは何でしょうか? ソフトウェア品質の評価に関する国際規格で、ISO/IEC 9126 というものがあるそうです。(あまりテストについて詳しくないので、とりあえずwikipediaへのリンクです)
ISO/IEC 9126 - Wikipedia




テストといっても幅は広いし、深さもありますね。
仕事しているとテスト工程の中で様々なテストを実施することになるかと思いますが、「これで本当に十分なテストが実施できているのだろうか」と不安になることもあるかと思います。
そんな時は、品質指標とテスト工程で実施するテストのマトリクスを作成してみてはいかがでしょうか?

品質指標\テスト工程 単体テスト 結合テスト システムテスト 受け入れテスト
機能性
信頼性      
使用性    
効率性    
保守性  
移植性        

※)○/◎は適当

このような表を作成してみることで、「こういった観点のテストが漏れていたので確認した方が良い」と気づくことができるかもしれません。
品質指標を細分化して表を作成したり、非機能要件の項目についても検討してみたり、というようにプロジェクトにおいて重視することを考慮し、テスト計画を立てられると安心して開発が進められそうです。


いやー、テストって本当に奥が深くて難しいですね。



ついでに

UIテスト自動化について、機能性の担保はできるけど使用性(ユーザビリティ)については評価が難しいので人手で実施するしかないのではないか、と思っています。このあたり詳しい方がいらっしゃいましたら教えてください。


ということで、(スクショしてExcelエビデンスとして残すかはさておき)UIのテスト自動化で機能性の担保ができるようになっても、使用性などの確認・担保のために人手でテストをするのはしばらく続きそうですね。雇用が守られてよかった。

あと更についでですが

転職しました。

高専カンファレンス100 in 東京 に参加してきた話

気がつけば12月。もうすっかり冬ですね!
冬と言えば2008年12月6日に第3回の高専カンファレンスとなる「高専カンファレンス2008 Winter in 東京」が開催された*1のですが、それから7年が経過した今年12月19日および20日に「高専カンファレンス100 in 東京」が開催されました!

東京の大規模カンファレンス

今回の高専カンファレンス、東京大規模開催では初めての参加者としてのフル参加でした。
2008年は北陸の学生だったので参加できず、2009年の「高専カンファレンス 2009秋 in 東京(通称009tokyo)」および2010年の「高専カンファレンス 2010秋 in 東京(通称014tokyo)」はスタッフをやっていたので普通の参加者ではなく、2012年の「新春・高専カンファレンス2012 in 東京」は両日とも寝坊してしまうという失態をおかしてしまったのでフル参加できてませんでした。



今回も金曜日が会社の忘年会で、27時過ぎまで飲んでたので開演に間に合うか不安でしたが、無事に間に合うことができました!




また、新春のときは2日目も寝坊し遅刻してしまったので、今回は調布に宿を確保することも忘れませんでした!(土曜日の1泊だけですが)





Twitter を交えてふりかえる高専カンファレンス

1日目

1日目は基調講演とアイスブレイクと夢これ。どれもとても楽しむことができました。

基調講演

@earth2001yさんと@igaiga555さんによる基調講演。


高専カンファレンスに関わりはじめたころに「地産地消」って聞いていい言葉だな、と思ったことを思い出しました。それから7年、全国各地で高専カンファレンスが開催されついに100回。基調講演を聞きながら胸が熱くなりました。
「参加者同士の相互作用」などもとても心に残りました。2009年春に就職で北陸から関東に出て来たときに、高専カンファレンスからつながって色んな人と知り合い、色んな人のお世話になってこれまでやってこれたことなどを思い出しました。(関連:
高専を卒業して10年がすぎた - しげっと!
参加者の相互作用、とても良いですね!

アイスブレイク

4部屋にわかれ、その部屋の中でもさらにチームにわかれ、他の参加者の皆さんと交流してきました!
みんなの名前を覚えられる企画や、高専あるあるが話せた七不思議/伝説作り、久しぶりに他人と手をつないだ知恵の輪みたいな企画、どれも楽しかったです!

夢これ

今回の高専カンファレンスはテーマが「Dreaming」ということで、10人のかたが「夢」を語ってくれました。
皆さんの発表どれも素敵で良かったのですが、特に印象にのこったのがぜむ(@zemu_them)さんの「推理小説に魅せられて」でした。



孤島の洋館、とても遊びにいきたいですね!


2日目

2日目は複数トラック発表と一般発表、ライトニングトークでした。

複数トラック発表

複数トラック発表、思わず 014tokyo でやったアンカンファレンスを思い出しましたね。あのときも今回もそうなのですが、複数の部屋同時並行で面白そうな話をしているので、何を聞きにいこうかとても悩ましかったです。




一般発表、ライトニングトーク

しょぼん(@syobon_0xff) さんの「ブログを立ち上げよう!」はとても参考になりました!(しかし、実践できるかどうかは別問題......)



おびなたさんの「プロコンの競技OB戦をやってみた」はOB戦開催の裏側を知ることができてとても面白かったです。



ライトニングトークも十人十色、いろいろな話がきけて楽しかった!




そしてクロージングへ

クロージングのまえに、高専カンファレンスの顧問である島田先生のお話。島田先生には009tokyoと014tokyoのスタッフのときにとてもお世話になりました。
75歳になるというのにとてもお元気で、島田先生の話を聞いているととても元気がでてきます。



そして、告知タイム、夢これの発表者への物理的なフィードバックとなる夢これレター(みんな会場で書いたよね?)贈呈の後、クロージングです。



クロージングは実行委員長の感動的なお話。すごく心にくる本当に感動的なクロージングでした。とても熱い想いが心に残りました。
12/23のKosen Advent Calendar 2015の記事もとても楽しみですね!


まとめ

久しぶり*2高専カンファレンスへの参加、しかも2日間にわたる東京での大規模開催。イベントとしてとても楽しく、また、数年ぶりに会う人やTwitterでは交流があったけど会うのが初めての人、普段からよく会ってる人など、たくさんの参加者の皆さんと話をすることができ、参加してよかったなー、と思いました。
今回の高専カンファレンスは現役の高専生/学生、OB/OG、高専初期に学生だった先輩がた、そして島田先生と幅広い年代の人々が参加していました。ここまで年齢層の広いイベントはなかなかないのではないでしょうか。


009tokyo のスタッフをしていたころは20代前半だった自分も気がつけば31歳。今回の現役学生など若い人からは刺激を、先輩がたからは元気をもらう事ができました。参加できて本当によかったです。実行委員の皆さま、ありがとうございました!!!

*1:当時は北陸在住の学生でお金がなく修論もヤバかったので、現地には行けずustreamで見てました

*2:前回がいつのどこの開催だったか思い出せない

Excelのシート一覧が欲しい

今日、はてなブックマークを眺めていたら、Yahoo!知恵袋の質問が目に入りました。detail.chiebukuro.yahoo.co.jp



みんな、似たようなこと考えるんですね。私も以前、複数Excelファイルのなかの複数のシート一覧が欲しくなったので、Ruby と Win32OLE を利用して雑にシート一覧を取得するスクリプトを書いたことがあります。
せっかくなので、久しぶりに動かしてみました。手元にある Windows 7 Pro 64bit, Office 2007 環境に Ruby Installer 2.2.2 を入れてみたところ、問題なく動きました。

#!ruby -Ks

require 'date'
require 'win32ole'

#----------
file_dir   = 'C:\dev\work\files'

xls_files  = '*.xls'
xlsx_files = '*.xlsx'
#----------


def getPath(filename)
  f = WIN32OLE.new('Scripting.FileSystemObject')
  return f.GetAbsolutePathName(filename)
end

def getData(filename, excel, output_sheet, num)
  book = excel.Workbooks.Open(filename)
  
  begin
    worksheet_num = 0
    book.WorkSheets.each do |sheet|
      num = num + 1
      output_A = "A" + num.to_s
      output_B = "B" + num.to_s

      output_sheet.Range(output_A).value = book.Name
      output_sheet.Range(output_B).value = sheet.Name
    end
    ensure
    book.Close
  end
  
  return num
end


excel = WIN32OLE.new('Excel.Application')
output_book  = excel.workbooks.add
output_sheet = output_book.Worksheets(1)

counter = 0

Dir.chdir(file_dir)
Dir.glob(xls_files) do |f|
  filename = getPath(f)
  counter = getData(filename, excel, output_sheet, counter)
end

Dir.glob(xlsx_files) do |f|
  filename = getPath(f)
  counter = getData(filename, excel, output_sheet, counter)
end

t = Time.now
output_filename = t.strftime("%Y%m%d_%H%M") + '.xlsx'
output_filepath = file_dir + '\_' + output_filename

output_book.saveAs output_filepath
output_book.Close


C:¥dev¥work¥files 以下にある xls, xlsx ファイルについて、A列にファイル名を、B列にファイル名を出力します。
f:id:shiget84:20150601233419p:plain
f:id:shiget84:20150601233541p:plain

取得できました! わーい!



さて、取得できたのはよいのですが、とりあえず動けばいいやという雑なコードですね。
僕は仕事で Ruby を使ったことがなく手元で参考書とかみながら書いているというレベルなので、ちゃんとした書き方など教えてください。
というか、こういうのこそ GitHub に載せるべきですね。そのうちやります...