タグ

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

  • 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」について - たけぞう瀕死ブログ
  • オープンソースの機械学習プラットフォームまとめ - たけぞう瀕死ブログ

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

    オープンソースの機械学習プラットフォームまとめ - たけぞう瀕死ブログ
  • 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を試してみた - たけぞう瀕死ブログ
  • はてな × BizReach合同Scala勉強会を開催しました! - たけぞう瀕死ブログ

    Scala関西 Summit2016の翌日、京都のはてなさんオフィスに伺わせていただき弊社とはてなさんの合同Scala勉強会を開催しました。 今回はクローズドな勉強会ということで普段あまり外には出せないようなリアルな悩みなどもご相談させていただいたのですが、当日の内容を可能な範囲でまとめてみたいと思います。 Scalaの利用状況について はてなさんでScalaを採用しているのは3プロジェクト、社内でScalaを書けるエンジニアは10人ほど、フレームワークはPlay + SlickもしくはScalatra + Slickとのことですが、最近のプロジェクトではSlickはDSLを使わず生SQLを書いているそうです。WebフレームワークはFinchも検討されたそうなのですが、生産性に問題があるという判断で採用には至らなかったとのことでした。 弊社でScalaを使っているのは2プロジェクトですが、

    はてな × BizReach合同Scala勉強会を開催しました! - たけぞう瀕死ブログ
  • デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ

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

    デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ
  • AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ

    AWSでは様々な便利なサービスが提供されています。中にはRDSやElasticCacheのように既存のミドルウェアに対するマネージドサービスを提供するものもあり、これらについては既存のミドルウェアを使って開発することができますが、AWS固有のサービスについてはアプリケーションを動作させるには実際にサービスに接続する必要があり、開発環境が制限されてしまいます。 もちろんソフトウェア側で抽象化しておき、DIなどの手法を用いてモックに差し替えるという方法も考えられますが、特にストレージとして利用するサービスなどの場合はインタラクションが必要になるのでモックでは再現しづらいですし、やはり実際に動作するサービスに接続して開発やテストを行うほうが効率的です。 そこで、AWSのサービスを擬似的にローカルで再現することのできるプロダクトを集めてみました。 S3 node.jsで動作するs3-proxyが使

    AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ
  • 2015年の社内勉強会まとめ - たけぞう瀕死ブログ

    弊社では毎週金曜日に社内勉強会を行っているのですが、今年もなんとか一年継続することができました。 HaskellやPureScriptといった関数型言語の話、OSSや品質管理などのエモーショナルな話、Web Speech API機械学習といった技術的な話、さらにはvimmerとEmacserの戦争など、バラエティ豊かな内容を扱いました。 また、外部の講師としてたくさんの方にお越しいただき、興味深いお話しを聞くことができました。ありがとうございました。 takezoe.hatenablog.com takezoe.hatenablog.com takezoe.hatenablog.com takezoe.hatenablog.com takezoe.hatenablog.com takezoe.hatenablog.com takezoe.hatenablog.com 上記のエントリにはあ

    2015年の社内勉強会まとめ - たけぞう瀕死ブログ
  • 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年版 - たけぞう瀕死ブログ
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

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

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
  • IPython NotebookでScalaを使う - たけぞう瀕死ブログ

    PythonにはIPython NotebookというWebブラウザで利用可能なインタラクティブシェルがあります。これは編集内容を保存できたり、過去に実行した内容を繰り返し実行できたりなど、ちょっとしたコードを試したり学習用途には最適なものです。 IPythonは言語非依存部分がJupyterとして独立しており、サードパーティによってPython以外にも様々な言語用のカーネルが開発されているようです。jupyter-scalaを使うとIPython NotebookでScalaを使うことができました。 インストール&実行方法は簡単で、予めIPythonをインストールしたのち、jupyter-scalaのサイトからアーカイブをダウンロードし、適当な場所に展開後、展開したディレクトリのbinディレクトリに含まれているjupyter-scalaというシェルスクリプトを実行します。これでScala

    IPython NotebookでScalaを使う - たけぞう瀕死ブログ
  • [Scala]AkkaのActorをスケジュール実行する - 2014-05-11 - 新・たけぞう瀕死の日記

    Typesafeで開発されているAkkaの拡張機能の1つにakka-quartz-schedulerというものがあります。 https://github.com/typesafehub/akka-quartz-scheduler これはQuartzを使って指定したタイミングでActorを起動することができるというものです。Playなどに組み込んでバッチ処理を動かすといった用途にも利用できます。 まずはbuild.sbtに以下の依存関係を追加。akka-quartz-schedulerのバージョンは使っているAkkaのバージョンによって変える必要があります。 resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/" libraryDependencies += "com.typesa

    [Scala]AkkaのActorをスケジュール実行する - 2014-05-11 - 新・たけぞう瀕死の日記
  • Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? - 2013-09-10 - 新・たけぞう瀕死の日記

    html5jえんぷら部、日Javaユーザグループ主催の勉強会でScalaのWeb開発事情についてお話しさせていただきました。 http://atnd.org/events/42782 以下は発表で使用したスライドです。 JavaからScalaへ from takezoe HTML5とかWeb標準の勉強会だったと思うのですが、発表者の皆さんはほぼ無関係のお話をされていましたw HTML5やWeb標準というとフロント寄りの話になりますが、JavaScalaという切り口で考えると致し方ないところかなと思います。 ただ、普段のJavaScalaのイベントと違って客層が事前に読めず、個人的にはScalaと言ってもどういう話をすればいいのか結構悩んでいたので、先に登壇された皆さんのお話を聞きながら話す内容やスライドを微調整して、当初は淡々とPlay2とScalatraの紹介をするつもりだったのを

    Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? - 2013-09-10 - 新・たけぞう瀕死の日記
  • OrientDB - 組み込みにも使えるドキュメント指向DB - たけぞう瀕死ブログ

    アプリケーションに組み込んで使えるJavaベースのドキュメント指向DBを探していたところ、stack overflowでOrientDBというものが紹介されていたので少し調べてみました。 OrientDBは2010年頃から開発されており、以前はGoogle Codeを使っていたようですが昨年末あたりからGithubに移行したようです。ほぼ1人で作っているようですが、開発は今もかなり活発な感じです。 Groovyの例ですが、組み込みモードで動作を試されている方がいらっしゃいました。 http://another.maple4ever.net/archives/1867/ スキーマレスかつ検索はSQLで行うことができ、なかなか扱いやすそうです(ここではAPIを使っていますが、挿入や更新もSQLで行うことができるようです)。いわゆるテーブルのジョインはできませんが、フィールドの値として別のドキュ

    OrientDB - 組み込みにも使えるドキュメント指向DB - たけぞう瀕死ブログ
  • JavaDay Tokyo 2013でIDEバトルやります - たけぞう瀕死ブログ

    来週5月14日(火)に秋葉原で開催されるJavaDay Tokyo 2013で「Java IDEの最新トレンド」というセッションをやらせていただくことになりました。 https://oj-events.jp/public/application/add/64 IDEバトルというと数年前のJJUGのセミナーを思い出します。きしださん(NetBeans)と当時オラクルだった佐藤さん(JDeveloper)と僕(Eclipse)でトリプルなおきセミナーをやらせていただきました。 きしださんのThinkPad Tabletでの手書きプレゼンを始めて見て感動した記憶があります。懐かしいですね…。 今回はそのきしださんと、IntelliJでお馴染みいまいまさのぶさん、さらにモデレータに山裕介さんを迎えてパネルディスカッション形式でお届けする予定です。 まだ残席もあるようですのでお時間のある方はお気軽

    JavaDay Tokyo 2013でIDEバトルやります - たけぞう瀕死ブログ
  • ScalaでGithubクローンを作り始めた - 新・たけぞう瀕死の日記

    職場ではここ数年Trac + Mercurialを使っているのですが、リポジトリを作成したりユーザを追加するのに毎回サーバ上でスクリプトを叩いたりするのが面倒なのと、SourceTreeを使えばチームメンバーのみんなも直感的に使えそうなのと、あとTracよりもGithubのほうがIssueやWikiが使いやすいということでGithubクローンへの移行を検討しています。 IssueとWikiは必須なので、消去法でGitLabを試しているのですが、インストールがなかなか面倒な上にバグも多いとのこと。GitblitJavaベースらしく導入は簡単らしいのですが、これはリポジトリビューアのみでIssueやWikiなどの機能は備えていないようです。 しかしこの手のツールってなんで揃いも揃ってRubyとかPythonのようにインストールの面倒なもので実装されてるんでしょうか。Javaで実装されていれば

    ScalaでGithubクローンを作り始めた - 新・たけぞう瀕死の日記
  • Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記

    ライブラリの依存関係やスコープを管理できたり、様々なレポートを出力できたりと、なんだかんだいってもMavenは便利です。少しでも道から外れるとpom地獄が待っていますが、幸いにしてトラウマになるような事態に出会ったことはいまのところありませんw ただ、仕事では納品後にユーザがどんな環境でビルドするからわからないからオンライン前提じゃないとビルドできないMavenは使いにくいケースが多く、場合によっては開発時はMavenを使うけどAntでもビルドできるようにしておく、みたいな不毛なことをしたりしていました。もちろんMavenのローカルリポジトリをコピーしてプロジェクトと一緒に配ればオフラインでもビルド可能な環境を作ることはできるのですが、もっとポータビリティの高い方法はないかなぁ…と思っていたところ、@shimashima35さんに簡単な方法を教えていただきました。 ポイントは-Dmaven

    Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記
  • 日経SYSTEMS2012年10月号 トップアーキテクトが薦める20冊 - たけぞう瀕死ブログ

    先日インタービューを受けた日経SYSTEMSさんの見誌をいただきました。「トップアーキテクトが薦める20冊」という企画で、オススメのを3冊紹介させていただきました。 http://ec.nikkeibp.co.jp/item/backno/OS0234.html 私など会社の片隅で細々といつないでいるただのしがないプログラマーであり、決してアーキテクトでもなんでもない者ですが、なぜか話が回ってきたものですから…。 いただいた見誌を読んでみると、他の方はなにかむつかしそうなを紹介されており、なんだか自分だけ場違い感をひしひしとします^^ インタビューは結構時間をかけて行っていただいたのですが、誌面ではかなりさくっと紹介されている感じです。せっかくの機会ですし、どれも思い入れのあるなので紹介させていただいた3冊の書籍についてここでじっくり振り返ってみたいと思います。 WEB+DB

    日経SYSTEMS2012年10月号 トップアーキテクトが薦める20冊 - たけぞう瀕死ブログ
  • JJUG Night Seminar「イマドキの現場で使えるJavaライブラリ事情」のスライドを公開しました - たけぞう瀕死ブログ

    昨日のJJUG Night Seminarで「イマドキの現場で使えるJavaライブラリ事情」というタイトルで書籍「現場で使えるJavaライブラリ」についてお話させていただきました。 イマドキの現場で使えるJavaライブラリ事情 from takezoe 上記のスライドで紹介している各ライブラリのサンプルコードはGithubにあげてありますのであわせてご覧ください。 https://github.com/takezoe/jjug-javalib また、昨日のセミナーでは、書籍で取り上げているライブラリについて執筆時のバージョンと現在のバージョン、および大きな変更点をまとめた表をご覧いただいたのですが、こちらについてものちほど公開しようと思っていますので少々お待ちください。 セミナーでもお話させていただいた通り、「現場で使えるJavaライブラリ」は発売から一年以上経っていますが、現在でも内容的

    JJUG Night Seminar「イマドキの現場で使えるJavaライブラリ事情」のスライドを公開しました - たけぞう瀕死ブログ
  • 1