タグ

ブックマーク / tech.quartetcom.co.jp (119)

  • GitHub Pages + CircleCIでプレゼン用スライド作成を自動化する | QUARTETCOM TECH BLOG

    弊社では定期的に社内勉強会を開いています。 10分程度のLTを行うことが多いのですが、たかがLTといっても資料を作るのはなかなか骨が折れます。 そこで、出来るだけ手軽にプレゼン用スライドが用意出来るよう試行錯誤しているのですが、現在は以下のようなやり方で落ち着いてます。 HTMLでスライドを作成する 生成したHTMLファイルは、GitHub Pagesで公開 CicleCIを利用して生成から公開まで自動化する 実際に運用してみるとなかなか快適ですので、簡単にではありますがご紹介したいと思います。 HTMLでスライドを作成する HTMLでスライドが作る為のツールはいくつかありますが、以下のものが有名でしょうか。 Remark reveal.js 私の場合、Cleaverを利用しています。 node製のツールで、以下の点が個人的に気に入っています。 Markdownで書ける デザインがシンプル

    GitHub Pages + CircleCIでプレゼン用スライド作成を自動化する | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2016/03/17
    技術ブログ更新!スライド作成の自動化のお話です。勉強会とかの発表資料を毎回Keynoteで作ってるという人には参考になるかもしれません。
  • 活用例から見るSymfonyのしくみ (1) - 連想配列データとサービスコンテナ | QUARTETCOM TECH BLOG

    @hidenorigotoです。 1/24日のSymfony Meetupで、「LisketでのSymfony活用例紹介」と題して、Symfonyの機能をやや高度に利用する例を紹介するLTをしてきました。このような使い方の例を今後このブログで紹介するとともに、Symfonyの内部のしくみを探ってみようと思います。 今回はLTで発表したうちの1つ目のものを、少し詳しく解説します。 連想配列のデータ アプリケーションで、ツリー構造のデータ定義などを連想配列で扱いたいことがあります。カルテットで開発しているLisketでは、各ユーザーの契約状態によって利用可能なツールセットが変わりますが、そのような状態からは独立して、ベースとなるメニューツリーの構造定義を持っています。 階層を持ったデータを記述できるフォーマットはいくつかありますが、Symfonyには標準でYAMLコンポーネントがありますので、

    活用例から見るSymfonyのしくみ (1) - 連想配列データとサービスコンテナ | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2016/02/15
    技術ブログ更新しましたー!Symfonyのサービスコンテナの活用例!(先日のSymfony MeeupのLTの補足記事です) #symfony_meetup #symfony_ja
  • Symfony2バリデーションのコンテキスト | QUARTETCOM TECH BLOG

    カスタムバリデーション 業務においてカスタムバリデーションを行うことになりました。カスタムバリデータの作成方法は Symfony2 カスタムバリデーションの作成 | QUARTETCOM TECH BLOG や How to Create a custom Validation Constraint (The Symfony CookBook) が参考になります。 このあたりを見ながら「/を含む場合に不正」とするファイル名バリデータを作成してみます。 カスタムバリデータを作成 <?php namespace Acme\Validator\Constraints; use Symfony\Component\Validator\Constraint; class Filename extends Constraint { public $message = 'ファイル名が正しくありません。'

    Symfony2バリデーションのコンテキスト | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2016/02/05
    技術ブログ更新しましたー!symfony/validatorのcontextについての考察!
  • tmux-continuumで再起動前のtmux環境を復活させる | QUARTETCOM TECH BLOG

    明けましておめでとうございます、永井です。 年も「カルテットコミュニケーションズ技術ブログ」共々宜しくお願い致します。 弊社開発部では電源を落とす代わりに、退社時に「スリープ状態」にしてから退社する人がほとんどです。 翌日出社して作業を始める時は、「スリープ状態」から復旧するだけなので、画面上に前日の作業状態がそのまま残っており、とてもスムーズに作業に入れることができるので、個人的にもとても気に入っています。 しかし、OSのアップデートやマシンの調子が悪くなった時など、電源を落としたり再起動したい場面は度々あります。 またラップトップを使用している場合などは、移動時に電源を落とすことが多いのではないでしょうか。 (私は落とします) 私の場合、普段立ち上げているアプリケーションは、多くないのでもう一度立ち上げ直すのはあまり苦ではありません。 しかし、ターミナル上で動かしているtmuxで開い

    tmux-continuumで再起動前のtmux環境を復活させる | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2016/01/15
    技術ブログ更新されましたー!新年一発目!tmux全然使いこなせてないのでこの手の知見嬉しい!
  • SpBowerBundleのキャッシュエラーを解決する | QUARTETCOM TECH BLOG

    このエントリーは Symfony Advent Calendar 2015 24日目の記事です。 昨日は @ochi51 さんの 「CybozuHttpBundleについて」 でした。(2015/12/24 9:00 現在未投稿 ) SpBowerBundleはbowerでインストールしたパッケージをSymfonyのアセットにハンドリングしてくれる便利なバンドルです。 このバンドルのキャッシュエラーで非常にハマった時の事例を紹介します。 この記事を書いた環境 Symfony 2.7 SpBowerBundle 0.11 SpBowerBundleの簡単なおさらい インストール SpBowerBundleのコマンドを使用するにはnpmパッケージbowerがインストールされている必要があります。 https://www.npmjs.com/package/bower SpBowerBundle

    SpBowerBundleのキャッシュエラーを解決する | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/24
    Symfony Advent Calendar 24日目の記事を公開しました!割とハマりポイントなSpBowerBundleのキャッシュとの奮闘劇! #symfony_ja
  • Prezto用Symfonyモジュールを作成してみる | QUARTETCOM TECH BLOG

    Symfony Advent Calendar 2015の21日目の記事です。 昨日はimunewさんの「Doctrine DBALで取得したデータをキャッシュする」でした。 普段Zshを利用しているのですが、そんなにZsh力に自信がないので、設定周りはPreztoというフレームワークにお任せしています。 Prezto PreztoはZshの設定を管理するフレームワークです。 Zshの設定を管理するフレームワークというと、もっとも有名なのが、Oh My Zshだと思います。 自分も一時期使っていたのですが、若干動作がもたつくのと、自分にはあまりに多機能すぎる気がして、動作が軽いと評判のPreztoに落ち着いています。 実際に使ってみると立ち上がりやコマンド補完がOh My Zshよりも若干軽く感じます。 Oh My ZshのSymfony2プラグイン Oh My Zshには、Symfony

    Prezto用Symfonyモジュールを作成してみる | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/21
    Symfony Advent Calendar 21日目の記事を公開しました!ちょっと他の記事とは切り口を変えて、シェル環境のお話です。
  • SymfonyプロジェクトのテストにCodeceptionを使ってみる | QUARTETCOM TECH BLOG

    このエントリーは Symfony Advent Calendar 2015 18日目の記事です。 昨日は tarokamikaze さんの 「Symfony初心者がつまづきがちなポイント」 でした。 はじめに CodeceptionはPHPのテスティング・フレームワークです。今回はこれをSymfonyプロジェクトに適用することを試してみました。 以前からCodeceptionは気になっていたのですが、Using Codeception for Symfony Projects としてSymfony向けの記事が出ていたことから試してみようと思った次第です。 なお、手元で試したSymfonyのデモ・プロジェクトを以下のリポジトリに置いておきましたのでご参考まで。 https://github.com/naoyes/2015-dec-quartetcom-tech-blog-codeceptio

    SymfonyプロジェクトのテストにCodeceptionを使ってみる | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/18
    Symfony Advent Calendar 18日目の記事公開しました!巷で話題の(?)テストフレームワークCodeceptionをSymfonyで使ってみたデモです! #symfony_ja
  • イベントディスパッチャーとイベントリスナー | QUARTETCOM TECH BLOG

    イベントディスパッチャーとイベントリスナーの関係を整理しながら、SymfonyのEventDispatcherコンポーネントを使って、簡単な実装をしてみようと思います。 主要なクラス イベント イベントディスパッチャー イベントリスナー イベント 何かしら動作や変更をする(した)タイミングや事象。 こうやって書くと分かりづらいですが、JavaScriptのonClickイベントなどは比較的に目にすることが多いのではないでしょうか。 イベントディスパッチャー イベントを発行する人。 トリガーとか、エミッターという名前が付くこともあります。 イベントリスナー 発行されたイベントを聞く人。 イベントディスパッチャーがイベントを発行するのですが、それを受けて色々処理をするのがイベントリスナーになります。 主要なクラスの関係 これらが以下の様に絡みます。 イベントが発生する(イベントディスパッチャー

    イベントディスパッチャーとイベントリスナー | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/17
    技術ブログ更新!symfony/event-dispatcherの使い方をベースに、一般的なイベント処理の流れを解説しております。 #symfony_ja
  • SymfonyのFormをテストするとき、どんなテストクラスを書くべきか? | QUARTETCOM TECH BLOG

    このエントリーは Symfony Advent Calendar 2015 12日目の記事です。 昨日は @ttskch さんの 「「普通にエンティティのCRUDができれば十分」な管理画面ならEasyAdminBundleがおすすめ」 でした。 下記のようなエンティティとフォームを想定します。 <?php namespace Acme\DemoBundle\Entity\Post; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Table() * @ORM\Entity(repositoryClass="Acme\DemoBundle\Entity\Repository\PostRepository") */ class Post { /*

    SymfonyのFormをテストするとき、どんなテストクラスを書くべきか? | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/12
    Symfony Advent Calendar 12日目!実践的なお役立ち情報ですね!
  • 「普通にエンティティのCRUDができれば十分」な管理画面ならEasyAdminBundleがおすすめ | QUARTETCOM TECH BLOG

    このエントリーは Symfony Advent Calendar 2015 11日目の記事です。 昨日は @ryo511 さんの「Symfonyの歩き方/5分でわかるSymfony Best Practices」でした。 はじめに Symfonyに管理画面を導入するためのバンドルといえば、SonataAdminBundle が有名ですよね。 でも、小ぶりなアプリなんかで 「管理画面は普通にエンティティのCRUDができれば十分」 というような場合には、SonataAdminBundleよりももっとシンプルで扱いやすい EasyAdminBundle がおすすめです。 記事では、EasyAdminBundleの基的な使い方を、簡単なSymfonyプロジェクトを実際に作りながら解説してみたいと思います。 ほとんど 公式のドキュメント をなぞるだけのような感じですが 1. プロジェクトとエンテ

    「普通にエンティティのCRUDができれば十分」な管理画面ならEasyAdminBundleがおすすめ | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/11
    Symfony Advent Calendar 11日目の記事を公開しました!
  • 難しいことを考えずに30分でChrome拡張をささっと作る手順 | QUARTETCOM TECH BLOG

    masterが進んだ時に意味不明なのでGitHub上のソースコードへのリンク書くときは masterではなくコミットを明示的に指定するようにしているけれどこれがけっこう面倒 該当のファイル > history > 最新のコミットクリック > view でようやく辿り着く。もっと楽できないかな と呟いていて、確かに!と思ったので、試しにChrome拡張を作ってみました。 ttskch/github-file-permalink 久しぶりすぎて作り方をほぼ忘れてたんですが、yeoman/generator-chrome-extensionを使ったらめっちゃ簡単に作れたので、せっかくなので記事に残しておきます。 なお、今回はcontent scripts形式の拡張を作る前提でお話しします。 免責 当に難しいことを考えずにささっと作るための手順だけを解説している記事なので、その点ご了承ください

    難しいことを考えずに30分でChrome拡張をささっと作る手順 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/09
    さらっと書きました!
  • DoctrineでSQLの日付関数を使う方法 | QUARTETCOM TECH BLOG

    DoctrineでSQLの日付関数を使う方法 Symfony Advent Calendar 2015 第一日目の記事です。 http://qiita.com/advent-calendar/2015/symfony Symfony+Doctrine2でシステムを開発していて、「日付何年のデータだけほしい」、「何年何月のデータだけほしい」という場合。 どう対応していますか? DateTimeで頑張る まず、もっとも基的なやり方として、DBから全件取得したうえで条件を満たすもののみの配列を作るという方法があります。 たとえば、今月ログインしたユーザーを取得したいなら、下記のようになります。 $today = new \DateTime('today'); $activeUsers = array_filter($em->getRepository('AcmeDemoBundle:User'

    DoctrineでSQLの日付関数を使う方法 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/12/02
    Symfony Advent Calendar記念すべき1日目の記事!
  • @ParamConverterにおけるDoctrine Converterのオプションをいろいろ試してみた | QUARTETCOM TECH BLOG

    SensioFrameworkExtraBundleの@ParamConverterアノテーション はSymfony2を利用した開発で最も多用する機能のうちのひとつではないでしょうか? 当エントリではこの機能にビルトインされているDoctrine Converterについての基的な動作をケース・スタディとして確認したいと思います。 前提 あるアプリケーションにおいて以下の前提が成り立つとします。 ユーザが存在する。 ユーザは一意のnameという属性を持つ。 ユーザは複数の画像ファイルを保有でき、そのうちひとつをプロフィール画像として指定できる。 ユーザは住所情報を登録し、異なるユーザが同一の住所を登録することもできる。 このとき、エンティティを反映したDBのテーブルが以下のようだとします。 mysql> show create table user; CREATE TABLE "user

    @ParamConverterにおけるDoctrine Converterのオプションをいろいろ試してみた | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/11/16
    技術ブログ更新しましたー!ParamConverterのまとめ記事。助かる!
  • Symfony/PropertyAccessコンポーネントの紹介 | QUARTETCOM TECH BLOG

    最近は社内で利用するPHPパッケージの開発やリファクタリングを行っているのですが、そこで大活躍してくれているのが、Symfonyコンポーネント達です。 その中で個人的にお気に入りのPropertyAccessコンポーネントを紹介したいと思います。 インストールの仕方 Composerで楽々インストール出来ます。

    Symfony/PropertyAccessコンポーネントの紹介 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/11/11
    技術ブログ更新しましたー!symfony/property-accessコンポーネントの紹介記事です!
  • AngularJS E2Eテスト (1) セットアップ編 | QUARTETCOM TECH BLOG

    ProtractorはAngularJSでE2Eテストをするための環境です。 セットアップ編・書き方編の2回に分けてテストを始めるまでのステップを紹介します。 この記事を書いた環境 Mac OSX 10.9 AngularJS 1.4 Protractor 2.1 Protractorとは AngularJS e2e-testing Protractor E2Eテストをするには、まずブラウザを起動してAngularJSのページを表示し、DOMを介してページ内のコンテンツにアクセスする事が必要になります。Protractorはそれらに必要な環境が含まれています。 ブラウザ操作ツール(Selenium) コンテンツにアクセスするAPI(WebDriverJS) テスト用フレームワーク(Jasmine) セットアップに必要なユーティリティ(webdriver-manager) WebDriver

    AngularJS E2Eテスト (1) セットアップ編 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/11/10
    技術ブログ、昨日更新してました!Protractorを使ったAngularのE2Eテストの解説記事(前編)です!
  • 自作クラスをDoctrine ORM@Columnにマッピングする | QUARTETCOM TECH BLOG

    Doctrine Custom Mapping Typeを定義して自作クラスをORM@Columnにマッピングする方法を紹介します。 Doctrine DBAL 2 documentation http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#custom-mapping-types この記事を書いた環境 Symfony 2.6 Doctrine/ORM 2.5 Doctrine/dbal 2.5 サンプルケース 月次レポートを示すReportエンティティ Reportエンティティは月次レポートを管理するクラスです。年月をyyyymm形式の整数で持っています。 <?php namespace MyProject\Bundle\AcmeDemoBundle\Entity

    自作クラスをDoctrine ORM@Columnにマッピングする | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/10/30
    技術ブログ更新しましたー!DoctrineのCustom Mapping Typeのご紹介です
  • hidenorigotoの開発日誌(2) | QUARTETCOM TECH BLOG

    hidenorigotoの開発日誌(2) 私がカルテットコミュニケーションズに入社して半年になります。前回の開発日誌を書いてから4ヶ月経ちました。この4ヶ月での私の仕事で大きかったのは、Lisketのウリの機能の1つであるアカウントCSV作成ツールの内部処理の置き換えを行ったことです。 AccountConstructor2コンポーネントの開発 アカウントCSV作成ツールの内部処理は、私が入社する以前からAccountConstructorというコンポーネントとして開発され、かなり高機能になっていました。経緯は割愛しますが、これを新しく作り直すことにし、ベースのエンジンとして私が別途開発したHaydnを使ったAccountConstructor2を開発しました。処理の雰囲気は「Haydnを使った掛け合わせデータ生成」を参照して下さい。 入出力完全互換 この内部処理コンポーネントの置き換えで

    hidenorigotoの開発日誌(2) | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/10/15
    技術ブログ更新しました! +100 > “何よりも嬉しいことは、私が最初に開発したコンポーネント群が、チームの別のメンバーの手によって成長しはじめたことです。”
  • Doctrine2 Embeddablesの紹介 | QUARTETCOM TECH BLOG

    Doctrine2 Embeddablesの紹介 Embeddableはエンティティに別のエンティティ(ValueObject)の情報を取り込み、1つのテーブルとしてマッピングする機能です。 Separating Concerns using Embeddables You’ll mostly want to use them to reduce duplication or separating concerns. Value objects such as date range or address are the primary use case for this feature. 同一のプロパティ定義を何度も書く必要がないため、コード量が減らせる 同一のプロパティ定義をValueObject化する事により、関心が分離できる ValueObjectはデザインパターンの1つです。 代表

    Doctrine2 Embeddablesの紹介 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/10/07
    技術ブログ更新しましたー!Doctrine2.5から使えるEmbeddablesの紹介です!
  • Haydnを使った掛け合わせデータ生成 | QUARTETCOM TECH BLOG

    カルテットコミュニケーションズで開発しているLisketには、アカウントCSV作成ツールというツールがあります。このツールを使うと、以下のようなことができます。 例えば、以下のようにある程度規則的な構成であれば、数万行規模のCSVでも非常に簡単に作成することができます。 1広告グループ1キーワード構成 各広告グループに広告をA/Bの2パターン作成 各広告文は、統一的な文言で、広告グループごとにキーワードを挿入する このように、何らかの基礎データを元に、規則的にデータを生成する処理のコアとして、Haydnというエンジンを開発しました。Haydnは現在、OSS(二条項BSDライセンス)で公開しています。 今回は、Haydnを使うとどのようにデータの生成規則を記述して実行できるのかを、簡単な実例で解説します。 前提 例えば元となるデータとして、次のようなものがあったとします。 1つめのキーワード

    Haydnを使った掛け合わせデータ生成 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/09/15
    技術ブログ更新しましたー!Lisketの「アカウントCSV作成ツール」のエンジンに使われているquartetcom/haydnの使用例解説です!
  • GitHub + CircleCI + Capistrano + Slack + Hubot で快適リリース生活 | QUARTETCOM TECH BLOG

    こんにちは、@ttskchです。先日、Symfony Meetup #5のLTでChatOpsについて発表させていただきました。 発表に使用したスライドはこちらにあります。 具体的には、PHP(特にSymfony2)プロジェクトの開発・リリースのプロセスについてのお話しです。 ここでは、その発表の内容をもう少し詳しく解説したいと思います。大きく5つのステップに分けて、一つずつ解説していきます。少し長いですがお付き合いください。 Step 1. CIの導入 Step 2. Capistranoの導入 Step 3. デプロイの自動化 Step 4. リリースPR作成のQA最適化 Step 5. リリースPR作成のChatOps化 Step 1. CIの導入 まず一番初めにやるべきはCIの導入です。弊社ではCIサービスにCircleCIを使っています。 CircleCIGitHubを連携させ

    GitHub + CircleCI + Capistrano + Slack + Hubot で快適リリース生活 | QUARTETCOM TECH BLOG
    ttskch
    ttskch 2015/09/07
    書きましたー!