タグ

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

  • 最強のMarkdown編集環境としてのAtom - たけぞう瀕死ブログ

    ブログなどちょっとした文章の編集から書籍の執筆までMarkdownを活用しています。これまで試した各種テキストエディタのMarkdown編集支援機能や、Markdown編集専用のツールはどれも満足の行くものではなかったのですが、最近はAtomに以下のようなパッケージを入れた環境が理想に近いMarkdown編集環境を得ることができました。 少し前にエンジニアHubさんで各社のエンジニアの方がオススメのAtomパッケージを紹介するという企画記事があり、私もMarkdown関連のパッケージを紹介させていただいたのですが、この記事では各パッケージを簡単にしか紹介できなかったので、ここでは少し詳しく紹介したいと思います。 employment.en-japan.com document-outline atom.io サイドバーにMarkdownの見出しをツリー状に表示してくれるパッケージです。書籍

    最強のMarkdown編集環境としてのAtom - たけぞう瀕死ブログ
  • MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ

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

    MozillaのスクレイピングフレームワークFathomを試してみる - たけぞう瀕死ブログ
  • Twitter製の大規模ソフトウェア向けビルドツール「Pants」を試してみる - たけぞう瀕死ブログ

    PantsはTwitter社が開発した大規模ソフトウェア向けのビルドツールです。今年の5月に1.0がリリースされました。 github.com 主にPythonで書かれているようですが、JavaScalaPythonGolangのビルドに対応しており、Thriftのコード生成やMarkdownからのドキュメント生成などもサポートしているようです。 同種の大規模向けビルドツールにはGoogle製のBazelやFacebook製のBuckがあります。 github.com github.com いずれも元は社内用に開発されたツールがOSS化されたものですが、GoogleのBazelは2009年頃からGoogle社内で使われておりかなり歴史のあるツールのようです。 BuckやPantsはBazelを参考にしているようですが*1、BuckはAndroidアプリのビルドが高速だったり、Pant

    Twitter製の大規模ソフトウェア向けビルドツール「Pants」を試してみる - たけぞう瀕死ブログ
    lEDfm4UE
    lEDfm4UE 2016/09/05
  • デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ

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

    デブサミ2016で「Webエンジニアのための並行/非同期プログラミングの実際とこれから」というパネルディスカッションをしました - たけぞう瀕死ブログ
    lEDfm4UE
    lEDfm4UE 2016/02/25
  • プライベートリポジトリ無制限の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を試してみた - たけぞう瀕死ブログ
    lEDfm4UE
    lEDfm4UE 2016/02/25
  • AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ

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

    AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

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

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
  • Scalaはエンタープライズで威力を発揮する? - 新・たけぞう瀕死の日記

    ここ2年ほどはScalaを使って業務アプリケーションの開発をしているのですが、 「システム開発にScalaを使うとどのようなメリットがあるのか?」 「どのようなシステムにScalaは向いているのか?」 ということを時折聞かれることがあります。 これに対して世の中的によく言われているのが、Scalaは関数型言語の特徴を備えているため並列処理に向いており、Play2やAkkaなど非同期処理のためのフレームワークも充実しているため大量のアクセスを捌かなければならないサービスや、スマートフォンアプリのバックエンドなどに向いている、というものです。 しかし、業務アプリケーションの世界では利用ユーザ数やアクセスモデルが事前に予想できるため比較的正確なサイジングが可能ですし、そもそも利用者が限られているため突然想定外のアクセスが殺到することはありません。むしろオンラインでもある程度複雑な集計処理などを行

    Scalaはエンタープライズで威力を発揮する? - 新・たけぞう瀕死の日記
  • 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 - たけぞう瀕死ブログ
  • ScalaのFunction22問題(またはTuple22問題)について思うこと - たけぞう瀕死ブログ

    Scalaで実際にシステム開発を行う上でかなりの高確率で遭遇するのがFunction22問題(またはTuple22問題)です。Scala Conference in Japan 2013のセッションではScalaの問題点として挙げたのですが、実際はいろいろと思うところもあるので書いておきます。 Function22問題(またはTuple22問題)とは? Scalaのフレームワークではケースクラスへの値のマッピングにタプルを使ったり、値のバインドやアンバインドにapplyメソッドやunapplyメソッドを使うものが多いのですが、Scalaには以下のような制約があるため、22個以上のプロパティを定義することができない、というものです。 22個以上の引数を持つ関数を作ることができない(メソッドとしては定義できますが、変数に代入したり関数渡しをしようとするとコンパイルエラーになります) 要素が22

    ScalaのFunction22問題(またはTuple22問題)について思うこと - たけぞう瀕死ブログ
  • たけぞう瀕死ブログ

    プログラマーのためのCPU 入門 CPU は如何にしてソフトウェアを高速に実行するか 作者:Takenobu TaniラムダノートAmazon 前から気になっていたのですが、ここのところ取り組んでいた仕事も一段落して少し時間に余裕ができたので読んでみました。 ソフトウェアプログラマであっても高級言語でコードを書いているとあまり意識しないであろうCPUの基的な動作について解説されているのですが、前半は単体のプロセッサ、後半はマルチプロセッサならではのトピックの解説になっています。さらに文だけではカバーしきれない内容が付録として収録されており、付録だけで40ページ以上ありますし、参考資料へのリファレンスもめちゃくちゃ充実しています。 内容はとてもわかりやすく、CPUの基的な動作だけでなく、なぜそうなっているのかが主にパフォーマンスの観点から説明されています。現代のアプリケーション開発者が

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

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

    JJUG Night Seminar「イマドキの現場で使えるJavaライブラリ事情」のスライドを公開しました - たけぞう瀕死ブログ
  • Mavenでdeployするときのパーミッション - たけぞう瀕死ブログ

    ssh(scp)でdeployする際、リポジトリ上のディレクトリやファイルはデフォルトではdeployしたユーザのみ書き込み可能なパーミッションになります。今まで特に困っていなかったのですが、複数人で作業していてローカルからdeployを行うと、別の人がdeployできなくなってしまったり…という問題が発生してしまいます。 こんな場合は.m2/settingsに以下のような設定を入れておくことでdeploy時のパーミッションを指定することができるようです。 <settings> ... <servers> <server> <id>ssh-repository</id> ... <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> </servers

    Mavenでdeployするときのパーミッション - たけぞう瀕死ブログ
  • Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記

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

    Mavenプロジェクトをオフラインでビルドする - 新・たけぞう瀕死の日記
  • Scalaのテスティングフレームワーク - たけぞう瀕死ブログ

    Scala用のテスティングフレームワークにもいろいろあるようですが、まだどれを使えばいいのかよくわかっていません。Lift in Actionでもテストの章がありますが、テスティングフレームワークについてはScalaTest、Specs、ScalaCheckが紹介されていたので(ScalaCheckについてはSpecsと組み合わせて使用する例が載っていました)、この3つについて簡単に調べてみました。 ScalaTest これが一番スタンダードっぽい?JUnit3/4やTestNGのテストケースをScalaで記述したり、BDDスタイルのテストケースを記述することができるみたい。BDDスタイルで記述する場合もいくつかのトレイトが用意されており、用途に応じて使い分けることができるようです。 Specs こちらはBDD用のテスティングフレームワーク。MockitoやJMock、EasyMockとい

    Scalaのテスティングフレームワーク - たけぞう瀕死ブログ
  • MockRunnerのJDBC Mockを使ってみた - たけぞう瀕死ブログ

    S2UnitDBを使ったユニットテストの支援機能としてExcelファイルからDBにテスト用データを投入したり、ExcelファイルとDBの内容を比較したりすることができます。ただ、実際にやってみるとわかるのですがこのExcelファイルのメンテナンスコストが馬鹿になりません。 そこで、実際にDBにアクセスするのではなく、フレームワークやJDBCドライバのレイヤで発行されたSQLを横取りし、期待通りのSQLが発行されたのかどうかを確認するという方法はどうだろう?と考えました。そういうライブラリを自作しようかとも思ったのですが(実際途中まで作っていたのですが)、世の中同じことを考える人はいるもので、MockRunnerのJDBC Mockという機能を使うとそのものズバリなことができるようです。 http://mockrunner.sourceforge.net/examplesjdbc.html

    MockRunnerのJDBC Mockを使ってみた - たけぞう瀕死ブログ
  • MockRunnerのJDBC Mockの便利機能 - たけぞう瀕死ブログ

    先日紹介したMockRunnerのJDBC Mockですが、実戦投入を前提にチームのメンバーに見てもらっているのですが、いろいろと機能があるようです。たとえば以下のような感じでSQLの期待値の比較方法を制御することができます。 // 大文字・小文字を無視 jdbcTestModule.setCaseSensitive(false); // 期待値のSQLに正規表現を利用可能にする jdbcTestModule.setUseRegularExpressions(true); 正規表現を使えるので、 jdbcTestModule.verifySQLStatementExecuted( "SELECT .* FROM TABLE WHERE ID=\\?"); なんて書いておくとテーブルのカラム追加・削除くらいではテストケースを直す必要がなくなります。便利ですね。欲を言えばSQLの改行や空白の差

    MockRunnerのJDBC Mockの便利機能 - たけぞう瀕死ブログ
  • 2010-11-03

    jmemcachedはJavaベースのmemcachedサーバです。実用というよりも、Javaでmemcachdを使うようなアプリケーションを開発する際にローカル開発環境やCIなどテスト用途に使うのがよいと思います。 http://code.google.com/p/jmemcache-daemon/ Mavenを使う場合はこんな感じ。 <repositories> <repository> <id>thimbleware.repo</id> <url>http://thimbleware.com/maven</url> </repository> </repositories> ... <dependency> <groupId>com.thimbleware.jmemcached</groupId> <artifactId>jmemcached-core</artifactId> <v

    2010-11-03
  • 1