ブックマーク / dev.classmethod.jp (20)

  • 【Scala】foldとfoldLeftの違いを知る | DevelopersIO

    はじめに こんばんは! 突然ですが、 Scala における fold と foldLeft はほとんど同じものだ!と思っていませんか? また、Scala の Option#fold メソッドを使って、何か不自然に思ったことはありませんか? 先に結論を述べますと、 fold メソッドと foldLeft メソッドは異なります(もちろん foldRight とも違いますよ!)。 「ちょっとだけ挙動に差が…」的な違いではなく、根的に違います。 たまたま、 List#fold と List#foldLeft が(例外的に)似たような定義で、かつ(例外的に)似たような挙動をするため、誤った通説(全てのfold≒foldLeft)があったりなかったりするようです。少なくとも僕は、Scala を書くようになってからある一定の期間、全ての fold と foldLeft は同じものだと考えていました。

    【Scala】foldとfoldLeftの違いを知る | DevelopersIO
    gkojax
    gkojax 2016/02/23
  • 【Scala】flatMap は怖くない! | DevelopersIO

    ここで注意が必要なのは「型引数をとる全てのクラス(全ての総称型) ≠ 文脈付きの値」ということです。型引数をとり、文脈付きの値とはいえないクラスも存在します。 たとえば SeqFactory[A] は、 Seq のサブクラス A を生成するファクトリであり、 文脈付きの値ではありません。もっと身近な例を上げると、わたし達が普段よく目にしている(であろう) Provider[A] や Publisher[A] というインターフェイスも、それぞれ「Aを提供するもの」「Aを発行するもの」という意味であり、Aという値を修飾しているわけではないので文脈付きの値とは呼びません。 文脈付きの値を返す関数 親友検索を考える さて、文脈付きの値がどのようなものかわかってきたところで、実際に文脈付きの値を生成する関数を作ってみましょう。 …などと大げさに言ってみましたが、そんなもの、今までだってたくさん作って

    【Scala】flatMap は怖くない! | DevelopersIO
    gkojax
    gkojax 2015/08/12
  • Playframework2(Scala)でfluentdを使う | DevelopersIO

    Play2からfluentdを使う この記事ではnode.js(log4js)からfluentdを使用する方法について紹介しました。 今回はPlay frameworkからfluentdへログ出力してみましょう。 元々Play frameworkのログ機能にはlogbackが使用されており、 confディレクトリにapplication-loggger.xmlを定義することでlogbackの動作を細かくカスタマイズできます。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.9.4 Playframework : v2.3.2 fluentd : v0.10.51 fluentdはこの記事と同じようにセッティングしておいてください。 また、Playframeworkもインストールしておきましょう。 サンプルアプリ作成 Playアプリ作成 activat

    Playframework2(Scala)でfluentdを使う | DevelopersIO
    gkojax
    gkojax 2014/08/03
  • Ruby on RailsにてBootstrap3のサンプルページを作成する | DevelopersIO

    はじめに サンプルアプリ等を作成する際、デザインに悩むことは多いかと思います。 (特にデザインセンスに乏しい私のようなプログラマは・・・) このような時に、Bootstrapは強い味方となります。(今更感は強いですが・・・) またBootstrapにはデザインのサンプルが用意されているので、このサンプルをベースとしてアプリを作っていけばデザインについて悩むことを減らすことができそうです。 今回はRuby on Rails 4 にBootstrap3を適用し、サンプルにある「Starter template」と同じページを作る 手順について纏めてみたいと思います。 作業手順 以下に、今回の作業手順を書いていきます。 1.ページ作成 まずはRuby on Railsにて、今回表示するページを作成します。 コントローラ、ビューの作成 今回表示する画面のコントローラは「welcome」、ビューは「

    Ruby on RailsにてBootstrap3のサンプルページを作成する | DevelopersIO
    gkojax
    gkojax 2014/05/13
  • Tableau Desktopで実践BI(ビジネスインテリジェンス):バスケット分析 | DevelopersIO

    これまでは概要であったり、各種データソースへの接続をメインにエントリを投下してきましたが、Tableauの機能自身、機能やグラフの使い方についても少しずつご紹介して行こうと思います。当エントリで紹介するのは『バスケット分析』です。 目次 バスケット分析(Market Basket Analysis)とは 環境準備 自己結合(self-join)の作成 ヒートマップ(Heat Map)ビューの作成 バスケット分析(Market Basket Analysis)とは バスケット分析(マーケットバスケット分析)とは、データマイニングで用いられる分析手法の1つで、良く一緒に買われる商品を見つけるための分析手法です。 バスケット解析 - Wikipedia 情報マネジメント用語辞典:マーケットバスケット分析(まーけっとばすけっとぶんせき) - ITmedia エンタープライズ 「おむつを買った人はビ

    Tableau Desktopで実践BI(ビジネスインテリジェンス):バスケット分析 | DevelopersIO
    gkojax
    gkojax 2014/01/24
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
    gkojax
    gkojax 2013/10/25
    コメント欄も含めて良い。
  • iOS 7がついにリリース!クラスメソッドブログにiOS 7の記事を一気に70本公開しました! | DevelopersIO

    はじめに 日、日時間の9月19日午前2時に、ついにiOS 7がリリースされました。私もダウンロードして、早速入れました!iOS 5⇒iOS 6の時は、地図が大幅に変更になり、パチンコガンダム駅など色々ありましたが、今回のiOS 6⇒iOS 7は、それ以上に機能に変更があります。ユーザーに一番インパクトがあるのは、デザインが大幅に変更になったことだと思いますが、機能やAPIなど色々変更点がありますので、以下にまとめます。また、iOS 7リリース特集としてiOS 7に関連する記事70を一気に公開しました。 iOS 7特集ページはこちら 何が変わったの? AppleのiOS 7ページにはこう書いてあります。「モバイルOSをまったく新しい観点から」と。今回Appleは「まったく新しい」という言葉を使っています。実際触ってみると大きな部分から細かいところまで色々と変わっています。デザイン、機能

    iOS 7がついにリリース!クラスメソッドブログにiOS 7の記事を一気に70本公開しました! | DevelopersIO
    gkojax
    gkojax 2013/09/20
  • Vagrantって流行ってるらしいけど何が便利なの? | DevelopersIO

    最近、Vagrant(ベイグラント)を勉強し始めました。VagrantはVirtual Boxなどの仮想化ソフトウェアと一緒に使うツールです。 最初は何のために使うものなのかよくわからず、VagrantはVirtual Boxのフロントエンドだよ、 と言われても何が便利なのかいまいちピンと来なかったのでいろいろ調べてみました。 ※Vagrantはプロバイダ(仮想化ソフトウェア)を選択できるので、他にもVMwareやAmazon EC2で使うこともできます。 実現したいこと VagrantとVirtual Boxを使って何がしたいのかの一覧です。 実行環境を開発と番で揃えたい。 開発環境を構築する際に個人のローカル環境に依存しないようにしたい。 すぐに使える仮想環境を構築したい。 環境構築を自動化したい。 チームで同一の環境を簡単に構築したい。 1つずつ見ていきましょう。 Virtual

    gkojax
    gkojax 2013/08/04
  • Vagrantを使って仮想OSを簡単に作成しよう | DevelopersIO

    Vagrantとは? ちょっとした確認やテストのため、いつ壊れてもいいような環境が必要なことがあります。 そういった際にはEC2を使えばすぐに環境が用意できますが、多少お金がかかりますし、プロジェクト毎にIAMアカウントを発行したりする場合は管理も面倒です。 そんなときには仮想化ソフトウェアをつかってローカルに仮想OSをインストールしましょう。 Oracle VM VirtualBoxを使用すれば、簡単に仮想OSを使用することができます。 じゃあVirtualBox使えばOKかといいたいところですが、自分でOSイメージをとってきてVirtualBoxにインストールしたり、 インストールした仮想マシンの設定をしたりと、けっこう面倒です。 そこで登場するのが、今回紹介するVagrantです。 VagantはVirtualBoxのフロントエンドとして使用することができるruby製のツールで、コマ

    gkojax
    gkojax 2013/07/05
    vageantってVirtualBoxだけでなく、VMWareやEC2でも使えるのか。
  • [お悔やみ]Struts1.xが逝去されました | DevelopersIO

    ここで発表されているように、Struts 1.xは耐用年数の終わりに達しており、 今後サポートされないことが発表されました。 そこで今回は、Strutsのこれまでの功績と、私との思い出について振り返ってみます。 Strutsの功績 Javaのスクリプトレット、Javascriptコード、HTMLタグの入り混じったカオスなJSP、 入力チェックからビジネスロジックまですべてごちゃまぜに書かれた巨大なServlet、 同じようなコードを繰り返しかかなければならず、一度仕様変更がおこればいろんな箇所を修正しなければいけない効率の悪さ。 こういった問題は、Strutsを正しく使用することによって解決されました。 もちろん、POJOを使えず、ActionFormを継承しなければならない等の問題もありましたが、 Strutsは今日のMVCフレームワークの礎となっていると思います。 Strutsとの思い

    gkojax
    gkojax 2013/04/16
  • 【必読!】SCRUM BOOT CAMP THE BOOKを読んだ! | DevelopersIO

    こんにちは、たごです。 昨年から評判だったスクラム「SCRUM BOOT CAMP THE BOOK」がついに出版されました。 早速読んでみたわけですが、これがまたすごくいいでした。 すごくいいでした(大事なことなので2度言いました)。 悩めるソフトウェア開発者全てにおすすめしたい良書です。つーか、ウチの社員は全員読め。 というわけで今回は、このの紹介をしたいと思います。 Scrum Boot Campってなに? Scrum(スクラム)は最近注目されているアジャイル開発手法の一つです。名前は聞いたことあるという方も多いと思います。 のタイトルにもなっている「Scrum Boot Camp」は、スクラム道(facebookページはこちら)が開催しているスクラム初心者向けのワークショップイベントです。著者のお三方(西村直人さん(@nawoto)、永瀬美穂さん(@miholovesq)

    【必読!】SCRUM BOOT CAMP THE BOOKを読んだ! | DevelopersIO
    gkojax
    gkojax 2013/02/23
  • 採用基準?:クラスメソッド2013年2月版 | DevelopersIO

    ちょっといろいろな経緯があって、去年の11月からマーケティングと採用を兼務(※1)しています。今日はこの3ヶ月間の気づきや、そもそものクラスメソッドの採用方針について紹介します。 クラスメソッドの技術者採用の特徴をざっくり説明すると下記の4つです。 ビジネスマナーはほどほど ペアプログラミングによる実技試験 選考結果は単刀直入 一回勝負じゃありません 1. ビジネスマナーはほどほど 面接の How To 記事に、入室時の態度、扉の締め方、着席時に手を机の上に置かない、背筋をまっすぐ、下座で付近で立って待つ等々書かれていますが、そういうビジネスマナーみたいのはあまり気にしません。個人的には慣れの問題であると考えており、これまでの仕事でそういったことを求められる機会が少なければ多少拙いのは仕方ないと割り切ります。そもそもそんなのは大して難しいことではないので入社していただいた後に指摘すればちゃ

    採用基準?:クラスメソッド2013年2月版 | DevelopersIO
    gkojax
    gkojax 2013/02/08
  • Amazon S3へデータの格納・取得を行う【AmazonS3Client】 Java編 | DevelopersIO

    こんにちは。LeapMotionが届いてる人がチラホラいるようですね。正直うらやましい。こむろです 今回は、AWS SDK for Javaを利用して、S3へのファイル転送の機能を作る際に、一箇所ハマった箇所があるので忘れないように記事にしておきます。 S3とは Amazon S3とは、Amazonが提供するクラウドストレージサービスです。バケットと呼ばれるプライベートな領域にどんなファイルでも格納することができ、さらに数テラバイトに及ぶデータ容量でも容易に格納・取得が可能です。当然、認証により守られているので、許可されていないとファイルは見ることはできません。詳しくはこちら JavaでS3へファイルの格納・取得を行う JavaなどのプログラムからAmazon S3にファイルをアップロード、ダウンロードする操作は簡単です。SDKに含まれているAmazonS3Clientというクラスを利用し

    Amazon S3へデータの格納・取得を行う【AmazonS3Client】 Java編 | DevelopersIO
    gkojax
    gkojax 2013/02/05
  • RequireJSでTwitter Bootstrap(jQuery)を非同期ローディングしてみる | DevelopersIO

    こんにちは、すどーです。 RequireJSでjQueryやjQueryプラグインの非同期ローディングを試してみました。 最近は大規模な構成になると、「ちぢめる、まとめる、かためる(minify, combine, compress)」のが主流のようです。 ですが小中規模な構成や、依存関係にあるフレームワークなども多くあるので、簡単な使い方だけでも覚えておくと便利かと思います。 RequireJS: http://requirejs.org/ RequireJS API: http://requirejs.org/docs/api.html RequireJSの主な特徴 モジュール化(AMD APIをサポート) 非同期ローディング OPTIMIZERによる最適化 1. モジュール化(AMD APIをサポート) AMD(Asynchronous Module Definition)はComm

    gkojax
    gkojax 2013/02/05
  • Amazon LinuxにFluentdをインストールしてS3とMongoDB連携する | Developers.IO

    あらゆるログを収集する 昨年あたりからfluentdという名前をよく耳にするようになりました。弊社での実際のプロジェクト活用が出てきています。そこで今回は備忘録としてセットアップからプラグインのインストール等の基的な手順を紹介したいと思います。 セットアップ Amazon Linuxにインストールするためにリポジトリを設定して簡単インストールします。 $ sudo vi /etc/yum.repos.d/td.repo [treasuredata] name=TreasureData baseurl=http://packages.treasure-data.com/redhat/$basearch gpgcheck=0 yumでインストールにて自動起動設定します。 $ sudo yum install td-agent -y $ sudo service td-agent start

    Amazon LinuxにFluentdをインストールしてS3とMongoDB連携する | Developers.IO
    gkojax
    gkojax 2013/01/16
  • Scalatra2.2+scalatra-jsonでJSONを処理する | DevelopersIO

    scalatra-json Scalatraでは、JSONライブラリとしてlift-jsonをベースとしたscalatra-lift-jsonが提供されているので、JSONを利用する際はそれを使っていました。しかし、Scalatra 2.2系(現在まだRCです)からscalatra-lift-jsonの提供をやめ、json4sをベースとしてscalatra-jsonという名前でJSONライブラリを提供するようです。 json4sは、Scala(もしくはJava)の各種JSONライブラリを同じように扱うこと(正確には、JSON処理のための単一のASTを提供すること)を目的としたライブラリです。ちょうど、ロギングライブラリのslf4jがlogbackやlog4jのファサードとなっているのと同じです。ScalaのJSONライブラリの中では使いやすい、lift-jsonに近い形でJSONが扱えるよ

    Scalatra2.2+scalatra-jsonでJSONを処理する | DevelopersIO
    gkojax
    gkojax 2013/01/14
  • Gitを使った分散開発管理15 – git-flowを使ってみる | DevelopersIO

    git-flowを使ってブランチの管理 いままでGitについてのさまざまな機能をご紹介してきました。 まだまだほかにも機能があり自由なスタイルでソース管理できるGitですが、自由すぎてどうしようか迷うかもしれません。 今回ご紹介するものは、実際に開発を進めていく中での運用を補助するプラグイン、 git-flowについてご紹介します。 git-flowとは? 「A successful Git branching model」※1 と呼ばれるGitのブランチモデルでの運用を補助するプラグインです。 このモデルにそったgit-flowのブランチモデルは下記のような特徴があります。 中央リポジトリとみなす、originを用意 originはmasterとdevelopのブランチを持つ masterはリリース用のブランチで、リリースしたらタグ付けする。(SVNでいう trunkとtag) deve

    gkojax
    gkojax 2012/12/08
  • Sublime Text 2の基本とカスタマイズ【Vim風】

    2012年12月4日:Vim化について指摘と参考になる情報をいただいたので追記しました。 こんにちは、僕はVimユーザーです(ちなみにVimを完璧に使いこなしているわけではありません)。 今更ながら「Sublime Text 2」というナウでヤングなエディタも使いこなせるようになりたいと思い、Sublime Textの基設定からプラグインやスニペットの作り方まで調べた内容をこの記事にまとめることにしました。 細かい情報までまとめることはできなかったので、より詳しい内容を紹介してくださっているブログやサイトへのリンクを設けています。 この情報以外にもSublime Text 2をVimに近づけるプラグインやカスタマイズ方法があればコメントいただけるとうれしいです。 また、間違いがあればコメントいただければすぐに直します。よろしくお願いします! Sublime Text 2は有料($59)の

    gkojax
    gkojax 2012/12/04
  • Playframeworkでログサーバへログを出力する | DevelopersIO

    はじめに アプリケーションを開発する際に、ログ情報は必ず必要とされます。 開発時はデバッグ情報を、番運用時にもトラブル解決のための情報や分析のための重要な情報になります。 最近行ったプロジェクトの話になりますが、ログ出力について考える必要がありました。 APサーバ1台で運用するならローカルにログを出力しておけば特に問題ないですが、クラスタリング環境で運用することになったので、 ログを1箇所にまとめて出力することにしました。 今回はPlayframeworkでLog4Jを使ってログ専用サーバにログを出力してみます。 環境構築 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.4 Play framework : 1.2.4 log4j : 1.2.17 Log4JとSocketAppender Log4Jはログ出力用のJavaライブラリで、現在はApacheソフ

    gkojax
    gkojax 2012/11/03
  • Slick(旧Scala Query)を使ったScalaによるDBアクセス | DevelopersIO

    Scala QueryとSlick ScalaQueryとは、ScalaRDBを扱うための低レベルなライブラリです。 RDBのデータをコレクションのように扱うことができ、シンプルで自然な記述でDBへのアクセスができるので人気があります。 今回使用するSlickとは、このScalaQueryの後継として開発されているライブラリです。 ScalaQueryを汎用化し、RDB以外にもさまざまなデータソースを扱えるようにするのことを目標に開発されています。 環境構築 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.4 sbt : 0.12 Scala : 2.10.0 M7 Slick : 0.11.1 なお、プロジェクトのテンプレート作成のためgiter8を使用するので、Homebrewでインストールしておいてください。 ※別にインストールしなくてもsbtのプロジ

    gkojax
    gkojax 2012/10/26
  • 1