タグ

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

  • APIデザイン・パターン (Compass Booksシリーズ) - たけぞう瀕死ブログ

    APIデザイン・パターン (Compass Booksシリーズ) 作者:JJ Geewaxマイナビ出版Amazon ManningのAPI Design Patternsの日語翻訳版で、GoogleのソフトウェアエンジニアGCPAPIデザイン等にも従事された方が書かれた書籍とのことです。原著はこちら。 API Design Patterns (English Edition) 作者:Geewax, JJManningAmazon なかなか分量があるのと、誤植と思われる箇所や洋書の翻訳にありがちな日語として意味が取りづらい部分が多く、一通り読むのに結構時間がかかってしまいました。 基的にHTTPベースのJSON APIを想定した内容になっています。さすがにGoogleの方が書かれたというだけあり、通常のユースケースでは思い至らないであろう懸念点なども指摘されており「なるほど」と思

    APIデザイン・パターン (Compass Booksシリーズ) - たけぞう瀕死ブログ
  • Databricks社がOSS化したSpark用ストレージレイヤ「Delta Lake」について - たけぞう瀕死ブログ

    先日開催されたSpark + AI Summit 2019にあわせてDatabricks社からSpark用のストレージレイヤ「Delta Lake」のOSS化が発表されました。 databricks.com GitHubリポジトリはこちら。 github.com Delta LakeはSparkのライブラリとして実装されており、分散ストレージ上で以下のような機能を提供します。 ACIDトランザクション(テーブル単位) タイムトラベル(任意の時点の過去データを参照可能) スキーマバリデーション(スキーマ変更も可能) 実際に動かしてみる Delta Lakeの動作にはSpark 2.4.2以降が必要です。ローカルファイルシステムでも動作するのでspark-shellで動きを確認してみました。 $ bin/spark-shell --packages io.delta:delta-core_2.

    Databricks社がOSS化したSpark用ストレージレイヤ「Delta Lake」について - たけぞう瀕死ブログ
  • 実践Scala入門 - たけぞう瀕死ブログ

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

    実践Scala入門 - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2018/11/11
  • 株式会社ビズリーチを退職しました - たけぞう瀕死ブログ

    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開発は

    株式会社ビズリーチを退職しました - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2018/08/01
  • GoogleのMachine Learning Crash Courseをやってみた - たけぞう瀕死ブログ

    少し前にGoogleが社内教育用のコンテンツとして使用しているというMachine Learning Crash Courseが公開されていました。PredictionIOのコミッタをやっていながら機械学習はほぼ素人というのもどうかと思っていたこともあり、社内で毎日1時間ずつこの講座を進めてみることにしました。 developers.google.com 15時間で終わるということになっていますが、英語の動画やテキストの理解に時間がかかってしまい、最終的には40時間くらいかかってしまったものの、なんとか完走することができました。機械学習やディープラーニングの基礎について25のレッスンがあり、それぞれのレッスンは以下のコンテンツから構成されています。 動画による概要の解説 より詳細な内容を説明したテキスト ブラウザ上でビジュアルな実験が可能なプレイグラウンド ノートブックを使用したプログラミ

    GoogleのMachine Learning Crash Courseをやってみた - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2018/04/29
  • オープンソースの機械学習プラットフォームまとめ - たけぞう瀕死ブログ

    PredictionIOは機械学習を使用したアプリケーションを開発・運用するためのプラットフォームを提供するためのOSSですが、世の中には他にも同じ領域のOSSが存在します。PredictionIO含めて各プロダクトの特徴をまとめてみました(PredictionIO以外はドキュメントやソースをチラ見して書いているので見落としていることなどあるかもしれませんがご容赦いただければと思います)。 PredictionIO github.com Apache Software Foundationで開発されている機械学習プラットフォームです。基的にSpark上で動作する機械学習ライブラリをターゲットにしていますが、最近はPython対応なども行われています。作成したマイクロサービスはSprayベースのAPIサーバとして起動することが可能です。用途に応じたテンプレートが多数用意されており、それをカ

    オープンソースの機械学習プラットフォームまとめ - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2017/10/29
  • クローリングハックという本を書きました - たけぞう瀕死ブログ

    同僚5名でここ1年くらい作業していた「クローリングハック あらゆるWebサイトをクロールするための実践テクニック」という書籍が翔泳社さんから発売になります。 クローリングハック あらゆるWebサイトをクロールするための実践テクニック 作者: 竹添直樹,島多可子,田所駿佑,萩野貴拓,川上桃子出版社/メーカー: 翔泳社発売日: 2017/09/14メディア: 単行(ソフトカバー)この商品を含むブログを見る 「ハック」と言っても別に怪しいことが書いてあるわけではありませんw クローラーの運用を通して世の中には一体どうやったらそうなるのか謎な挙動を示すサイトを見てきたわけですが、この書籍はクローラーを作る側にしろ、Webサイトを製作する側にしろ、理解しておくべき基的なWeb技術について解説したものです。 HTTPメソッドをちゃんと使い分けよう、ヘッダやステータスをちゃんと返そう、セマンティッ

    クローリングハックという本を書きました - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2017/09/09
  • Macで使えるGitフロントエンド - たけぞう瀕死ブログ

    元々IDEとか開発ツールは専門分野(?)なので、この手のものは以前からいろいろ試しているのですが、個人の感想をまとめておきたいと思います。IDEやエディタに統合されていて利用シーンが限定されるものや、GitHub for Windowsなどのように機能に制限の多いものは省いています。 SourceTree 信頼と実績のAtlassian製 無料で使用可能(要ユーザ登録) 日語対応しており、書籍などの情報もある リポジトリごとにウィンドウが開く(Windows版はタブで開くのに…) 対話型リベースが可能 動作がかなり重い、特にブランチが増えると実用に耐えないレベルで重くなる ただし突然死などはしない Tower2 有料(買い切り$79) 履歴一覧でブランチの関連を把握するのが難しい気がする 1ウィンドウで複数リポジトリを切り替えて使用 動作はかなり軽い 時々突然死することがある ブランチ

    Macで使えるGitフロントエンド - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2017/08/30
  • MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ

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

    MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2017/05/04
  • リアクティブなマイクロサービスフレームワーク「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」を試してみる - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/12/15
  • Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ

    ここのところHystrixについて調べていたのですが、Netflixは他にもGitHub上で様々なOSSを公開しています。 github.com Javaのものが中心ですがPythonGo、Cで書かれているものもあります。ライブラリ的なものからミドルウェアや運用ツールまで多岐に渡っており、NetflixAWSを利用しているということもありAWS上での利用に特化したものもあります。また各プロダクトのドキュメントもしっかりしており、以下のような専用のサイトも立ち上げられており、社内で開発したものを積極的にOSS化するという方針が伺えます。 netflix.github.io HystrixやEurekaなどを筆頭に有名なものも多いのですが、なにぶん数が多くどのようなものがあるのかを把握するのも割と一苦労な感じなのですが、Netflixでは自社のOSSを紹介するMeetupが継続的に開催され

    Netflixのオープンソースソフトウェア - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/06/26
  • Dockerとnode-easymockでモックAPIサーバを作る - たけぞう瀕死ブログ

    ローカル開発環境でミドルウェアを動かすためにDockerを使っているのですが、チーム外で開発しているAPIのモックが欲しくなることがあります。様々な手段が考えられますが、今回は固定のJSONを返すだけのシンプルなモックサーバでよいという要件だったので、サイバーエージェントさんのnode-easymockというものを使ってみました。 github.com これはNode.jsで実装されたモックサーバで、特にプログラムを書かずともレスポンスとして返したいファイルをパス階層に応じたディレクトリに配置しておくだけでそのファイルの内容を返すAPIを提供してくれるというものです。 ファイルの内容は完全固定だけでなく、リクエストで受け取った内容を組み込むなど簡単なテンプレーティングが可能です。また、別途設定ファイルを作成することでより複雑なルーティングや、レスポンスにディレイをかけたりといったこともでき

    Dockerとnode-easymockでモックAPIサーバを作る - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/05/19
  • GitBucketのユーザインターフェースの変更について - たけぞう瀕死ブログ

    2週間ほど前にGitHub社からGitBucketのコミッタ宛てにメールが届きました。 それは「GitBucketはGitHubにあまりにも似すぎているが、GitHub社はGitHubのプロプライエタリなマテリアルをコピーしたり、ユーザインターフェースをクローンすることは許可していない。これはGitHub社の知的所有権を侵害している可能性があり、GitHubのユーザに混乱を引き起こすもので、改善を求める」という趣旨のものでした。 1点目についてはGitBucketはOcticonsやBootstrapテーマなどオープンソースのリソースは活用しているものの、GitHubからいかなるプロプライエタリなマテリアルやソースコードもコピーしていませんので問題ではありませんでした。 2点目については(ユーザインターフェースに関する権利については諸説あるようですが)、GitBucketが「GitHub

    GitBucketのユーザインターフェースの変更について - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/03/21
  • デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ

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

    デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/02/21
    「弊社では最近ある程度コードを書けるようになった若者にオレオレHTTPサーバを作ってもらうというトレーニングをしたりしています」
  • プライベートリポジトリ無制限のGitLab.comを試してみた - たけぞう瀕死ブログ

    Hacker Newsでこんな記事が流れていました。Hacker Newsでのコメントはこちら。 agateau.com こういう記事でAlternativeとしてGitBucketがあげられるようにならないといけないなぁと思うもののそれはさておき、先日の障害のときのようにGitHubが落ちたら仕事にならなかったりとか、SourceForgeやGoogleCodeの件を見ても今後GitHubのサービスがずっと今の形で継続するという保証はどこにもありませんし*1、さらにGitLabのオンプレ版であるGitLab CEはGitBucketと直接競合するということもあり、機能面を把握しておくためにGitLab.comを試してみることにしました。 GitHubやBitBucketなどのアカウントでログインすることができ、これらのサービスからリポジトリをインポートすることもできます。試しにリポジトリ

    プライベートリポジトリ無制限のGitLab.comを試してみた - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2016/02/21
  • ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ

    ScalaのWebフレームワークについて、昨年某所で書いた記事をアップデートしてみました。マイクロサービスが流行ってきたり、Playは2.4になっていろいろ変わったり、ScalaのライブラリやフレームワークもFutureやモナドを活用したものが増えてきたり等々、この一年でScala界隈のWeb開発事情もいろいろと変化してきています。 Play2 出たばかりの頃はPlay 1.x系でできたことができなかったり、バグだらけだったりでコミュニティでも暴動が起きそうになったものですが、喉元すぎればなんとやら、いまでも使いにくい部分も多いのですが、Typesafe社のお墨付きということもあり、なんだかんだでデファクトスタンダードの位置を確立しているのではないかと思います。 ユーザ数が多いだけあり、プラグインや周辺ライブラリ、Web上での情報等も豊富です。 ただ、Play 2.4でGuiceを使ったD

    ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2015/10/07
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

    gottyはターミナルで実行したコマンドの出力をWebブラウザで参照できるようにするツールで、オプションを付けるとブラウザからのキー入力も可能になります。つまりgottyでtmuxを起動することで、Webブラウザから複数セッションや画面分割可能なターミナルを利用でき、さらにvimEmacsなども利用することが可能になります。 特にWebアプリケーションを開発している場合、ターミナルでvimEmacsでコーディングしていると、動作を確認するたびにブラウザに切り替える必要があり、非常に面倒です。gotty + tmuxを使えばブラウザの1つのタブでターミナルを使うことができるので、ブラウザのタブを切り替えるだけでアプリケーションの動作を確認したり、調べ物をしたりすることができるのです。これを最強のWeb開発環境と呼ばずしてなんと呼ぶのでしょうか。Atomなんかいらなかったんや!! gott

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2015/09/05
  • 2015年のEmacs - たけぞう瀕死ブログ

    その昔、自宅PCLinuxをインストールして頑張っていた頃はEmacsを使っていたり、その延長で職場でもMeadowやxyzzyなどを活用していたものですが、Eclipseを使い始めてからめっきりEmacsから離れてしまっていました。 ところがここ最近、MacBookを使い始めたり、仕事柄サーバのメンテナンス等でターミナルを使う機会が圧倒的に増えたり、周囲の影響もあったりして久しぶりにEmacsに復帰してみることにしました。Emacsをちゃんと使うのは10年ぶりくらいですが、同僚のEmacserに教えてもらいながら環境を整備してみました。 パッケージをインストールするための準備 最近のEmacsはmeplaというリポジトリからパッケージをインストールできるようです。~/.emacs.d/init.elに以下を書いておきます。 (require 'package) (add-to-list

    2015年のEmacs - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2015/08/05
    “同僚の変態vimmerにインスパイアされ、日々Emacs環境の研究を重ねる日々が続いています”
  • Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ

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

    Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2015/06/15
  • 第十一回 #渋谷java でScala.jsの話をしました - たけぞう瀕死ブログ

    今回で第十一回を迎えた渋谷javaですが、枠が空いていたので久しぶりにLTをさせてもらいました。 ネタじゃないScala.js from takezoe JVM繋がりでScalaの話でもいいだろうと思ってたのですが、よく考えたらScala.jsはJavaScriptになってブラウザやnode上で実行されるわけなのでJVM関係ないのではということに当日気付きました。大変申し訳ありませんでした。 Scala.jsはすでに普通に実用できるレベルになってきていると思いますが、現状ではIntelliJのScalaプラグインがScala.jsのCross-Buildプロジェクトをうまく扱えないという問題があります(EclipseのScala IDEだとどうなのかは試していないのでわかりません)。Scala.js側の問題というわけではありませんが、ここが解決するとさらに実用的になるのではないかと思いま

    第十一回 #渋谷java でScala.jsの話をしました - たけぞう瀕死ブログ
    thetacpa
    thetacpa 2015/06/11