タグ

ブックマーク / takezoe.hatenablog.com (17)

  • 実践Scala入門 - たけぞう瀕死ブログ

    「実践Scala入門」を技術評論社さんからお送りいただきました。Scalaの入門書というとコップを思い浮かべる方が多いと思いますが、下のツイートでも書いている通りこのはかなりコンパクトです。 技評さんから実践Scala入門をお送りいただきました。ありがとうございます!思ったより小さい&薄い! pic.twitter.com/DGKRWIWVwG— Naoki Takezoe (@takezoen) 2018年10月25日 A5判文300ページ弱という分量でScalaの基的な部分を押さえつつ、sbt、Futureを使った並行プログラミング、ユニットテスト(ScalaCheckによるパラメータテストやMockitoを使ったテストまで!)などもカバーされています。また、さすがScalaを使い込んでいる著者陣だけあってScalaの各機能の使い方だけでなく、注意事項やどのように使うと便利なの

    実践Scala入門 - たけぞう瀕死ブログ
    takc923
    takc923 2018/10/26
  • トレジャーデータ株式会社に入社しました - たけぞう瀕死ブログ

    Good morning, my new workplace! pic.twitter.com/b4jEO3jun8— Naoki Takezoe (@takezoen) 2018年8月1日 Good morning, my new workplace! pic.twitter.com/NZfDYWvHUS— Naoki Takezoe (@takezoen) 2018年8月9日 トレジャーデータに入社したと思ったらいつのまにかArmに入社していました。 何を言っているのかわからないと思いますが、私もよくわかりませんでした。

    トレジャーデータ株式会社に入社しました - たけぞう瀕死ブログ
    takc923
    takc923 2018/08/09
  • 株式会社ビズリーチを退職しました - たけぞう瀕死ブログ

    Today is my last day at BizReach. I learned a lot of things here. Thanks for exciting days over 4 years! pic.twitter.com/wrPANaxbKW— Naoki Takezoe (@takezoen) 2018年7月31日 日、2018年7月31日をもって4年と4ヶ月勤務した株式会社ビズリーチを退職しました。いわゆる退職エントリというもので、誰得な気もしますが自分の振り返りという意味で書いてみたいと思います。 入社しばらくしてから3年ほどはScalaで作っている新規サービスのバックエンドの開発・運用をやっていました。社の誇るスーパーエンジニアや優秀な若者たちと共に新規サービスの立ち上げというエキサイティングな仕事ができたのは大きな刺激になりました。大人数でのScala開発は

    株式会社ビズリーチを退職しました - たけぞう瀕死ブログ
    takc923
    takc923 2018/08/01
  • Scala向けの高速ビルドツールBloopについて - たけぞう瀕死ブログ

    少し前にScala CenterからBloopというビルドツールがアナウンスされました。 github.com 実際に動かしてみたわけではないのですが、READMEやソースコードなどからどのようなものかは大体掴めるので簡単にまとめておきます。興味のある方は是非試してみて欲しいです。 Bloopはビルドツールと言ってもsbtを置き換えるものではありません(そもそもBloop自身はビルドツールを名乗っていません)。簡単に言えばnailgunでサーバを立ち上げてzincでインクリメンタルコンパイルするためのツールで、コーディング中のコンパイル確認用途に通常のビルドツールの代わりに使用することでコーディング→コンパイル確認のラウンドトリップを高速化することを狙っているようです。特にsbt以外のビルドツールを使っている場合にビルドツール側の対応を待たなくても最新のzincが使える点がメリットとして挙

    Scala向けの高速ビルドツールBloopについて - たけぞう瀕死ブログ
    takc923
    takc923 2018/01/13
  • ScalaIO 2017に参加してきました - たけぞう瀕死ブログ

    11月2日、3日にフランスのリヨンで開催されたScalaIO 2017にスピーカーとして参加してきました。このエントリでは参加したセッションの中から印象に残ったものを紹介したいと思います。 Compiling like a boss! Scalaで分散コンパイルによるコンパイル速度の高速化を実現するHydraのセッション。事前のスケジュールではTriplequoteのお二方でのトークとなっていましたが、Iulianさんは不在でMircoさん単独でのトークでした。 ScalaDaysでのセッションとほとんど同じ内容だったと思いますが、今回のプレゼンテーションではIntelliJでのサポートが利用可能になる、Hydraのモニタリングが可能になるという2点のアップデートがありました。以下のスライドは今年のScalaDaysで使用したもののようですが、上記二点のアップデート以外は今回も同じ内容のも

    ScalaIO 2017に参加してきました - たけぞう瀕死ブログ
    takc923
    takc923 2017/11/08
  • MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ

    こちらのOSDNの記事で知ったのですが、MozillaでFathomというJavaScript用のスクレイピングフレームワークを開発しているようです。仕事でクローラーを作ったりしていたこともあり、面白そうだと思ったので軽く調べてみました。 mag.osdn.jp 以下のGitHubリポジトリで開発されています。GitHub Pagesに詳しいドキュメントもあります。 github.com OSDNの記事で触れられている開発者のErik Rose氏のブログエントリはこちら。 hacks.mozilla.org ドキュメントやErikさんのブログエントリなどをざっと眺めてみたところ、それほど複雑なものではなく、ある程度曖昧なルールとスコアリングを定義しておき、最もスコアの高い要素の選択するというのが基的なコンセプトのようです。 なにはともあれ試してみます。まずは適当なディレクトリを掘り、np

    MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ
    takc923
    takc923 2017/06/03
  • Apache PredictionIOのコミッタになりました - たけぞう瀕死ブログ

    Apache PredictionIOはSpark MLlibを中心に、学習データやモデルデータを格納するためのストレージ、機械学習を利用したアプリケーションを定型的に開発するためのフレームワーク、作成したアプリケーションをWebサービスとしてデプロイする機能などを提供するもので、元々は2013年に創業されたPredictionIO社で開発されていたのですが、2016年2月にSalesforce社に買収され、Apache Software Foundationに寄贈されたものです。 github.com 弊社の機械学習チームでは機械学習を応用したアプリケーションを組織的に開発していくにあたり、開発・運用基盤としてApache PredictionIOに取り組んでいるのですが、このたび弊社から以下の4名がコミッタとしてPredictionIOの開発に参加させていただけることになりました(El

    Apache PredictionIOのコミッタになりました - たけぞう瀕死ブログ
    takc923
    takc923 2017/05/09
  • JDBCレイヤでDBのシャーディングを行うsharding-jdbcを試してみた - たけぞう瀕死ブログ

    DBのデータ量が増えてきた場合の対策の1つとしてユーザIDなどをキーにデータベースを分割するシャーディングと呼ばれる手法があります。これをJDBCのレイヤで実現してしまうsharding-jdbcというライブラリを見つけました。 github.com sharding-jdbcは中国のdangdang(当当)というEC大手企業が開発したOSSで、SQLをパースし、SQLに含まれるシャードキーを抽出して接続先のデータベースや、参照するテーブルを切り替えてくれるというものです。 使ってみる まずはpom.xmlに以下の依存関係を追加します。 <dependency> <groupId>com.dangdang</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>1.4.1</version> </dependency>

    JDBCレイヤでDBのシャーディングを行うsharding-jdbcを試してみた - たけぞう瀕死ブログ
    takc923
    takc923 2017/02/21
  • Scala Warriorをリリースしました - たけぞう瀕死ブログ

    昨年から密かに作り続けていたScala WarriorというWebアプリケーションをScala関西 Summit2016にあわせてリリースしました。 github.com これはRuby WarriorにインスパイアされたScala学習用のゲームで、Scalaコードを書いて侍を操作しステージをクリアしていくというものです。 実装にはScala.jsを活用しており、プレイヤーが入力したコードをScala.jsでJavaScriptにコンパイルし、それをクライアントにサイドに返却してブラウザ上で実行しています。エディタではCTRL+SPACEでコード補完、CTRL+Sでコンパイル結果の確認ができます。このあたりのコードはscala-js-fiddleを参考にさせていただきました。 とりあえず動くものをリリースしたというだけでステージ数も少ないのですが、今後少しずつ改善していければと思っています

    Scala Warriorをリリースしました - たけぞう瀕死ブログ
    takc923
    takc923 2016/10/12
  • Scalaパズル翻訳の苦労話 - たけぞう瀕死ブログ

    昨年のシルバーウィークあたりから今年の年始にかけてScala Puzzlersの翻訳作業をしていました。オンラインのドキュメントであればApache Clickなどそれなりのボリュームの翻訳をしたことがあるのですが、書籍の翻訳は初めてということもあり、苦労の連続でした。 自分の場合、意味がわからなくてもパーツ単位でもいいのでまずは心を無にしてロボのようにひたすら直訳し、あとから日語として読みやすい文章に整えていくという流れで進めていったのですが、ロボ的に直訳する作業も量的なつらさがあるのですが、純粋に技術的なドキュメントと比べ、Scala Puzzlersは原文が割と砕けた表現をしていたり、読者に語りかける部分があったりして、どう日語に変換すべきか悩ましい部分が多かったです。 何度も読み返しつつ日語を修正していくのですが、日語として読みやすくするためにどこまで原文を崩していくかとい

    Scalaパズル翻訳の苦労話 - たけぞう瀕死ブログ
    takc923
    takc923 2016/08/30
  • Scala Days 2016 NewYork 3日目 - たけぞう瀕死ブログ

    Scala Days3日目です。体力の限界を感じておりまさに瀕死です。今日こそはサイバーエージェントさんより先にブログを公開するんだと頑張って書こうと思っていたのですが意識を失ってしまいました。 Spark 2.0 今日のキーノートはDatabricks社のCTOであるMateiさんです。 HadoopコミュニティではなくScalaコミュニティでの登壇ということもあってか、Sparkの生い立ちから2.0、そして2.1の展望までSparkをざっと押さえるための総集編といった感じの内容でした。 HadoopのカンファレンスでSparkのセッションがあってもScalaの話は一切出て来ないことも多いのですが、今日の話はScalaコミュニティに向けた良いイントロダクションだったのではないかと思います。 better-files: Towards a safe, sane I/O library in

    Scala Days 2016 NewYork 3日目 - たけぞう瀕死ブログ
    takc923
    takc923 2016/05/14
  • Scalaのコンパクトな便利ライブラリ「Hamsters」を調べてみた - たけぞう瀕死ブログ

    最近HamstersっていうScalaライブラリを発見しました。関数型っぽいコンテナや機能を提供するものなのですが、非常にコンパクトでなおかつ関数型プログラミングに慣れていなくても簡単に使えるというものです。 github.com 使い方はREADMEを見ればだいたいわかると思いますが、以下のような機能があるようです。 Validation OK/KO Monads Monad transformers HLists Union types ひとつずつ見ていきましょう。 ValidationとOK/KO ValidationはEitherのリストを格納するコンテナ、OK / KOはright-biasなEitherのエイリアスで、組み合わせて使います。 こんな感じで全部の結果を保持するか、 val e1 = OK(1) val e2 = KO("error 1") val e3 = KO(

    Scalaのコンパクトな便利ライブラリ「Hamsters」を調べてみた - たけぞう瀕死ブログ
    takc923
    takc923 2016/05/09
  • Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition (English Edition) - たけぞう瀕死ブログ

    ではいわゆる「コップ」として有名なScalaのバイブル「Programming in Scala」の第三版が発売されました。 Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition (English Edition) 作者: Martin Odersky,Lex Spoon,Bill Venners出版社/メーカー: Artima Press発売日: 2016/04/27メディア: Kindle版この商品を含むブログを見る 早速PDF版(Artimaのサイトから購入できます)を購入して第二版との差分をチェックしてみたのですが、ざっと流し読みして気づいたのは以下のような点です。 AppトレイトやString Interpolation、Value Class、Implicit ClassなどScal

    Programming in Scala: A Comprehensive Step-by-Step Guide, Third Edition (English Edition) - たけぞう瀕死ブログ
    takc923
    takc923 2016/04/30
  • リアクティブなマイクロサービスフレームワーク「Lagom」を試してみる - たけぞう瀕死ブログ

    Lagomとは? LagomはLightbend社(旧Typesafe社)がリリースした新しいマイクロサービス向けのフレームワークです。 www.lightbend.com 元々Scalaの開発元であったLightbend社が開発しているだけあり、PlayやAkka、sbtといったScalaベースの技術基盤上に構築されていますが、現時点ではJava向けのAPIのみ提供されているJava用のフレームワークとなります。*1 これまでもSpring Bootなど手軽に使えるAPIサーバ向けのWebフレームワークは存在したわけですが、Lagomは最初からリアクティブなマイクロサービスの構築を前提に設計されており、いわば「マイクロサービスネイティブ」とも呼ぶべきフレームワークになっています。 実際にLagomを使うかどうかはさておき、新しいコンセプトのフレームワークなので学ぶことも多いのではないかと

    リアクティブなマイクロサービスフレームワーク「Lagom」を試してみる - たけぞう瀕死ブログ
    takc923
    takc923 2016/04/11
  • デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ

    先日のデブサミ2016でピクシブの川田さんによるモデレートでGolang(メルカリのbokkoさん) × node.js(古川会長) × Scala(わたくし)という謎の組み合わせでパネルディスカッションをさせていただきました。 event.shoeisha.jp ユーザ層や適用領域が異なる言語ということもあり、噛み合うのか若干不安があったのですが、いい感じにまとまったのではないかと思いますw パネルディスカッションのまとめ 総論としては ハードウェアのリソースを使い切るために並行処理がますます重要になっていく ただし、アプリケーションのレイヤではなるべくそれを意識させないことが重要 という当たり前といえば当たり前の話だったのではないかと思います。ECMAScript7のAsync/Awaitは記述は同期的だけどブロックはしないという意味で理想に近いかもしれません。 普通にWebアプリを書

    デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ
    takc923
    takc923 2016/02/23
    並列処理をアプリケーションエンジニアに完全に意識させないのはまだ無理だから、簡単に扱えるモデルが考えだされて実践されてる段階なんだよなあ
  • Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ

    Scalaをどうやって学ぶのがいいのか?ということはScalaを使い始めた数年前からずっと考えています。よく「Scalaは難しい」と言われますが、 どこが難しいのか? なぜ難しいのか? ということを、これまで書籍や雑誌記事、ハンズオンなど入門用のコンテンツを作ってきた経験を踏まえて整理してみました。 まず、Scalaが難しいといわれる理由のひとつに学ばなくてはならないものが多すぎるという点があげられます。Scalaはオブジェクト指向言語ですが、関数型言語の特徴的な機能を取り入れているため、きちんと理解するには両方の言語のイディオムを学ぶ必要があるためです。 ただ、Scala自体は必ずしも関数型言語の知識がなくても使えるように設計されています。最初はBetter Javaとして一般的な手続き型オブジェクト指向言語の延長として使い始めることができ、Scalaの特徴的な機能に触れていくことで少し

    Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ
    takc923
    takc923 2015/06/11
  • 実戦での Scala 〜6つの事例から知る Scala の勘所〜で発表してきました - たけぞう瀕死ブログ

    2月21日(土)にスマートニュースさんの新オフィスで開催された「実戦での Scala 〜6つの事例から知る Scala の勘所〜」で発表してきました。togetterでのまとめはこちら。 ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala from takezoe スマートニュースの村石さんが「Scalaで快適に開発するためにはいいマシンを使う」と仰られてましたが、3年前のScala Conferenceで全く同じことを言った記憶があります。Javaのコンパイルも昔は死ぬほど遅かったですが、当時とはCPUの進化の方向が違うのでScalaに関しては今後も当分はコンパイル遅い問題は続いていくでしょう。 普及という観点では、昨年くらいからWeb界隈を中心にいろんな会社でScalaが使われるようになってきました。最初にScalaを実戦投入しは

    実戦での Scala 〜6つの事例から知る Scala の勘所〜で発表してきました - たけぞう瀕死ブログ
    takc923
    takc923 2015/02/27
  • 1