Archive for the ‘php’ Category

    はてなブックマーク - Fusic勉強会 #2 を開催します
    このエントリーをはてなブックマークに追加

    小山です。

    週末は、大学の恩師のご還暦祝賀会に参加しました。
    個人的に学生最後に印象に残っているのが、研究室送別会の吞み会の場で、その先生に「一生のうちに20人、師と呼べる人を作れ」と言われたことです。その場で「まず一人目ができたんだ」と心の中で思ったのはいい思い出です。

    さて、11月7日に開催したFusic勉強会 #1ですが、無事開催することができました。
    自分は30分枠で、「DevOpsな受託開発」というミーハーなタイトルでまじめに発表しました。

    勉強会の最初としてはいい感じでスタートできたのではないかと思います。これから試行錯誤していきたいと思います。

    勉強会について、いくつかコメントをいただきましたので、回答したいと思います。

    参加しようと思ったら埋まっていたんだけど

    申し訳ありません。これは、Fusic勉強会の特徴である「社員優先」のため、まず社員参加で人数が埋まってしまうのと、使っている会場の大きさから、外部からは少人数しか募集できない状況です。
    できるだけ調整していますが、根本的な解決はFusicの規模が大きくなって会社移転でもしない限り変わりません。
    そういった意味では鋭意努力します!

    告知はどこでしているの?

    このBlogエントリもそうですが(今回は事前告知です)、http://fusic.doorkeeper.jp/ に登録しておくと、ページ開示と同時に告知メールを受け取ることができます。是非ご活用ください。

    雰囲気が固くないか?

    勉強会の部類ではちょっと固い印象がありましたね。これは今後是非とも改善していきたいと思います。ピザとか食べながらがいいんですかね?

    社外参加者の発表枠はあるの?

    はい。今後開催告知と同時に社外発表枠を募集したいと思います。ただ、毎回ではないのでご了承ください。

    懇親会は?

    今のところ、勉強会主催側で設けるということはしない予定です。「懇親会!懇親会!」という方は是非Twitter等でFusic社員にたきつけてみてください。意外なレア社員がでてくるかもしれません。

    というわけでFusic勉強会 #2を11月21日に開催します

    今回は、Blogにて事前告知していますので、参加してみようかな?という方は、是非 fusic.doorkeeper.jp/ に登録しお待ちください。申込ページは本日夕方に公開予定です。

    どうぞよろしくお願いいたします。

      はてなブックマーク - Apache POIをPHPで動かせるようにしてみた
      このエントリーをはてなブックマークに追加

      お久しぶりです。
      最近ホークスの秋季キャンプに行ってきた萩原です。

      今回Fusic勉強会 #1で発表しました。
      ご参加いただいた皆様ありがとうございました!
      まだ試行錯誤の段階ですがいい勉強会にしていけたらいいなと思います。

      発表内容の詳細は上のスライドを見ていただくとして、
      発表でも紹介したApache POIをPHPで動かしたものをご紹介します。

      Apache POIとは?

      poi.apache.org/

      Apache POI
      ExcelやWordなどのOfficeのファイルを書きだすJavaのライブラリです。
      ただまぁ公式を見てもらったらわかると思いますが、Excelだけやたら充実しまくってます。
      つか公式見てもWordとかPowerpointの使い方分かりませんし、検索してもあまり情報が見つかりません・・・。

      POIのExcelですが、値の埋め込みやセルのコピー、スタイルのセットなど
      通常Excelで行える操作は一通り行えます。
      (できることはPHPExcelと同等以上かと思います。)

      POIをPHPから動かしたい!

      そんなPOIをPHPから動かしたいと考えました。
      現在それとなくGithubで作成中です。

      やってることは

      ①:出力したい情報(埋め込む値やスタイルの情報)をまとめて、CSVに出力。
      ②:①のCSVファイルとテンプレートファイル、出力先のファイルを指定してexecでjavaを叩く。
      ③:出力されたExcelファイルをPHPで処理。

      といった流れになっています。

      こんな感じでExcelを出力できるようにしています。

      $ExcelExport = new PoiPHP();
      $ExcelExport->settings(array(
      	'poi_path' => dirname(__FILE__) . '/Vendor/poi/poi-3.9',
      	'opencsv_path' => dirname(__FILE__) . '/Vendor/poi/opencsv-2.3/deploy/opencsv-2.3.jar',
      	'tmp_csv_dir_path' => dirname(__FILE__) . '/export',
      ));
      $ExcelExport->addString(0,0,0,‘test');
       
      $readfile = dirname(__FILE__) . ‘template.xlsx';
      $outFile = dirname(__FILE__) .’export.xlsx';
       
      $ExcelExport->excelExport($readfile, $outFile);

      詳細な使い方はgithubのREADMEを参照してもらえたらわかると思います。

      POIを使うメリット

      とは言っても、正直色々設定が面倒なので
      通常帳票を出力するにあたってはPHPではreviserやPHPExcelで十分だと思います。

      POIを使うメリットとしては
      ①シートをまたいだ計算式を含むテンプレートに値を埋め込む時
      reviserだとPHPエラーで落ちます。
      PHPExcelだとうまくいきますが、あまり複雑だったりするとPHPエラーで落ちてしまったりするようです。(詳細不明)

      ②テンプレートにマクロがいて、そのマクロを出力後に使用したい時
      まだ、これを案件で使用してはいないですが、個人的にこれは熱いです。
      (reviserやPHPExcelではマクロが削除されたりPHPエラーで落ちたりします。)

      もし、reviserやPHPExcelで出力できなくて困っている方はPOIの使用を検討してみてください!
      poi-phpも値の挿入やスタイルのセットは問題なく動作すると思います。
      (画像の挿入などで現在苦戦中ですが・・・)

        はてなブックマーク - TechTouch for Fusic -Vagrant ハンズオン- を開催しました
        このエントリーをはてなブックマークに追加

        最近プライベートで作っているツールの名前が決まらなくて、どうにもリリースができない小山です。
        よくありますよね。

        さて、今回社内勉強会としてVagrantハンズオンを開催しましたので、紹介します。

        なぜわざわざ開催したのか

        Vagrant、Macならすぐに設定できて試せるのはご存じのとおりです。ハンズオンの必要は全くないですね。

        問題は「Windowsで簡単に導入できるのかわからなかった」ところでした。

        インストールはインストーラでできるだろうことはわかるものの、「その後はあのコマンドプロンプトなのか?」「sshは?」と。

        個人的にはMac側で設定していたので、Windowsで試す気になれず、そのまま放置していました。

        ところが、とてもわかりやすいエントリーを見つけたのと、「新規環境でCakePHP1.2betaをCakePHP1.3.17まであげる」というなかなかアグレッシブな要件が個人的にでてきたので、いい機会なのでWindowsで設定してみました。

        すると、Windows上でも思いのほか便利に使える(コマンドプロンプトがいらない)ことが分かりましたので、「これは紹介しよう」と、社内でハンズオンを開催した次第です。

        この場を借りて@ogomrさんにお礼をいいたいと思います。

        素晴らしいエントリ、どうもありがとうございます。

        ハンズオン資料

        ほとんどは、先ほどのエントリのままなのですが、混乱を避けるためにいくつか省略した形で作成しました(パスの変更はデフォルト、Chefの説明は今回はしない、など)。

        gist.github.com/k1LoW/dda2f213d4dfae35db4b
        (embedしようとしたら、ブログCSSの影響でボロボロだったのでリンクにしました。。。)

        つまづいたところ

        つまづいたところは基本的にありませんでした。

        強いて言うならbox addが時間内に終わらなかったことでしょうか?ここはしくりました。

        終わらなかったので、その後は自分の環境で簡単に説明をしました。

        まとめ

        目的は「難しいものを分かりやすく」というよりも「話題の技術をとりあえず触ってもらうきっかけを作る」だったのですが、とりあえず最後まで説明できたので良かったです。
        今回のハンズオンで「Vagrant?触ったことない」ってことはほぼなくなったかと。
        次回は何かな。Ansibleか・・?