タグ

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

  • GitBucketに見る長期的なメンテナンスの必要なScalaアプリケーションにおいてScalaのバージョンアップのために留意しておくべきこと - たけぞう瀕死ブログ

    Scalaのバージョンアップはなぜ大変なのか? GitBucketはもうかれこれ5年近く開発を継続しており、Scalaのメジャーバージョンアップも何度か経験してきました。ScalaのバージョンアップはJavaと比べるとかなり苦労することが多いのですが、それはScalaのバージョンアップに伴うアプリケーションコードの修正よりも、むしろ以下の2点による部分が大きいのではないかと思います。 フレームワークやライブラリの仕様がアグレッシブに変わる Scalaのメジャーバージョン間でバイナリ互換性が保証されていない まず前者についてですが、これまでPlay FrameworkやSlickなど標準的なフレームワークやライブラリもかなり活発に仕様変更が行われてきました。フレームワークの開発が活発に行われているという状況はメリットも多い反面、後方互換性のない変更が多いとバージョンアップがつらいというデメリ

    GitBucketに見る長期的なメンテナンスの必要なScalaアプリケーションにおいてScalaのバージョンアップのために留意しておくべきこと - たけぞう瀕死ブログ
  • Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ

    4月から社内でType-Driven Development with Idrisの読書会をやっています。 takezoe.hatenablog.com 最近ようやくChapter 3まで進み、実際に自分でコードを書くエクササイズなども出てきました。このではAtomを使うことが推奨されているのですが、Atom用のIdrisパッケージが非常に強力で、型駆動開発の魅力を存分に感じることができます。そこで、今回は実際にAtomでのIdrisプログラミングがどのようなものかについて紹介したいと思います。 github.com たとえば以下のようなシグネチャを持つVect(要素数を型情報に持つリスト)用のマップ関数を実装するとします。Vect n aの各要素に(a -> b)という関数を適用してVect n bを返すというものです。 my_vect_map : (a -> b) -> Vect n

    Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
  • GitHubでGitLFSを使ってみる - たけぞう瀕死ブログ

    実際にGitLFSを使ってみようということでGitHubで試してみました。 まずはgit-lfsのインストールから。gitはインストール済みとします。MacならHomebrewで簡単に入れられます。 $ brew install git-lfs 適当なGitリポジトリを作成し、GitLFSを有効にします。 $ mkdir git-lfs-test $ cd git-lfs-test/ $ git init $ git lfs install GitLFSで管理するファイルを指定します。 $ git lfs track *.jpg あとは普通にファイルをコミットしてpushすれば該当のファイルが自動的にGitLFSに保存されますし、git-lfsがインストールされている環境であればcloneしたりpullしたりすると自動的にローカルにもファイルの実体がダウンロードされてくるので普通にリポジト

    GitHubでGitLFSを使ってみる - たけぞう瀕死ブログ
  • Atomで最近使っているパッケージ - たけぞう瀕死ブログ

    Atomのパッケージには様々なものがありますが、最初は面白いなと思って入れていてもあまり使わなくなってしまうものも多いです。最近よく使っているのは以下のようなものです。 tool-bar + tool-bar-shortcuts tool-barはAtomにツールバーを追加する機能を提供するもので、これをベースに様々なツールバーを追加するパッケージが開発されています。自分が使っているのはtool-bar-shortcutsというものです。ウィンドウの分割とかがツールバーからできるのが便利です。ツールバーは画面の上部だけでなくサイドに配置することもできるので、左側に置いています。 atom.io atom.io tool-barを使用したパッケージは他にもいろんなものがあるので自分がよく使う機能が提供されているものを選ぶとよいと思います。 multi-cursor 複数カーソルを使えるように

    Atomで最近使っているパッケージ - たけぞう瀕死ブログ
    nantan
    nantan 2016/06/27
  • AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ

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

    AWS上で動作するアプリケーションをいかにローカルで開発するか? - たけぞう瀕死ブログ
    nantan
    nantan 2016/02/12
  • Play2でのファイルダウンロード処理 - たけぞう瀕死ブログ

    Webアプリケーションで巨大なファイルのダウンロードを行う場合はダウンロードするコンテンツをすべてメモリ上に読み込むのではなく、少しずつ読み込みながら逐次レスポンスを書き出していく必要があります。Play2ではこのような場合、Enumeratorを使ってレスポンスを返却します。 サーバ上のファイルを直接返却する場合は以下のようにEnumerator#fromFile()メソッドを使用します。 def download = Action { val file = new java.io.File("/tmp/fileToServe.pdf") val fileContent: Enumerator[Array[Byte]] = Enumerator.fromFile(file) SimpleResult( header = ResponseHeader(200, Map(CONTENT_LE

    Play2でのファイルダウンロード処理 - たけぞう瀕死ブログ
    nantan
    nantan 2014/07/02
  • bignumber.js - JavaScriptでの浮動小数点の計算 - たけぞう瀕死ブログ

    JavaScriptに限らず浮動小数点の演算では以下のような誤差が発生します。 > 0.1 + 0.2 0.30000000000000004 > 1.13 * 100 112.99999999999999 お金の計算で四捨五入や切り上げ、切り捨てなどが絡む場合はこういった誤差が致命的だったりします。このような場合、JavaではBigDecimalを使ったりしますが、JavaScriptには同様のライブラリとしてbignumber.jsというものがあるようです。 https://github.com/MikeMcl/bignumber.js/ 使い方は簡単でこんな感じ。 > new BigNumber(0.1).plus(0.2).toPrecision() "0.3" > new BigNumber(1.13).times(100).toPrecision() "113" 四捨五入や切り

    bignumber.js - JavaScriptでの浮動小数点の計算 - たけぞう瀕死ブログ
    nantan
    nantan 2014/01/31
    bignumber.js - JavaScriptでの浮動小数点の計算
  • Excel方眼紙を支える技術 - たけぞう瀕死ブログ

    最近仕事Excel方眼紙を読んだり書いたりするプログラムばかり書いているのですが、そんなExcel方眼紙を支える最新のJava技術を紹介したいと思います。 なにはなくともPOI JavaExcelと言えば外せないのがPOIです。以前はJExcel APIという対抗馬もあったのですが、Excel 2007に対応していないので現在ではPOIが唯一の選択肢といっていいでしょう。 POIは非常にプリミティブなAPIを提供するライブラリで、使いこなすにはそれなりの修練が必要です。そのため、可能であれば実際の読み書きには後述するXLSBeansやjXLSなどを使った方がよいでしょう。ただし、jXLSのようなテンプレートエンジンでは細かいセルのスタイル設定などはできないため、POIを併用しないとならないケースも多いです。Excel方眼紙を支える技術のベースとして押さえておくべきライブラリといえるでし

    Excel方眼紙を支える技術 - たけぞう瀕死ブログ
  • Xtendを触ってみる その2 便利な機能あれこれ - たけぞう瀕死ブログ

    今日はXtendの基的な構文の中からJavaと比べた場合の便利機能を見てみます。 まずはプロパティへのアクセス。フィールドアクセスの構文でアクセサメソッド経由でのプロパティアクセスを行うことができます。 val p = new Person() // p.setName("Naoki")と同じ p.name = "Naoki" // println(p.getName())と同じ println(p.name) val list = new ArrayList<String>() // if(list.isEmpty()){...} と同じ if(list.empty){ ... } それと、引数が1つもないメソッドの呼び出しは()を省略することができます。 val list = new ArrayList<String>() val size = list.size 通常メソッドは「レ

    Xtendを触ってみる その2 便利な機能あれこれ - たけぞう瀕死ブログ
    nantan
    nantan 2012/07/14
  • Xtendを触ってみる その1 クラス、フィールド、メソッド - たけぞう瀕死ブログ

    ひょんなことからXtendを触ってみたら思っていたより面白そうだったので時間を見つけて触ってみようと思っています。参考資料はXtendのチュートリアルプロジェクトのソースとWebサイトにあるReference Documentationです(Reference Documentationはところどころ間違ってるところがあるけど…)。 Xtendは基的にはJavaをベースに用途と機能を絞りつつ関数型言語の便利な機能を取り込んだ、みたいな言語になっています。なので機能やコードの見た目はScalaに近い部分もあります。というわけで、JavaScalaと比べて異なる部分を中心に見ていこうと思います。 まずは基的なところから。 package com.acme import java.util.List class MyClass { def String first(List<String>

    Xtendを触ってみる その1 クラス、フィールド、メソッド - たけぞう瀕死ブログ
    nantan
    nantan 2012/07/14
  • Xtendを触ってみる その3 文字列リテラルとRich String - たけぞう瀕死ブログ

    Xtendの便利な機能の1つにテンプレートを埋め込み可能な文字列リテラルがあります。が、その前にまずはXtendの文字列リテラルについて。 Xtendではシングルクォート、ダブルクォートのどちらで囲んでも文字列リテラルになります。当然のことですが、シングルクォートで囲んだ場合はダブルクォート、ダブルクォートで囲んだ場合はシングルクォートのエスケープが不要になります。 val str1 = "これは文字列" val str2 = 'これも文字列' 文字列リテラルは複数行にすることもできます。 val str1 = "1行目 2行目 3行目" さて、ここからが題です。Xtendではシングルクォート3つで囲むとRich Stringというモノになります。このRich Stringには«...»で任意のXtend式を埋め込むことができます。なお、はてなダイアリーでは«...»が自動的に数値参照に

    Xtendを触ってみる その3 文字列リテラルとRich String - たけぞう瀕死ブログ
  • T-Point Viewer - たけぞう瀕死ブログ

    Tポイントカードのポイント残高と履歴を確認するAndroidアプリを作ってみました。とりあえず思いついてから半日くらいで作ったものなので殺風景ですがこんな感じ。 情報はT-SITEからスクレイピングして取得しているだけで、特に難しいことはしていません(なのでこのアプリを使用するにはT-SITEに登録しておく必要があります)。履歴も最初の1ページ分しか取得できませんが、これは今後改善しようと思っています。 というわけで、完全に自分用に作ったのですが、ニーズはありますかねぇ…。 追記:ひとまずBitBucketにソースと最新版をビルドしたapkパッケージを上げておきました。 https://bitbucket.org/takezoe/tpoint-viewer/wiki/Home

    T-Point Viewer - たけぞう瀕死ブログ
    nantan
    nantan 2011/04/03
    Tポイント
  • 2010-05-03

    S2Click 1.0.3をリリースしました。 http://s2click.sandbox.seasar.org/ このバージョンはS2Click 1.0.2でClickのJARファイル内に含まれるリソースの自動デプロイに関する問題を修正したバージョンになります。 Seasar2徹底入門で紹介しようと思い、途中まで原稿も書いていたS2Cachingについてですが、せっかくなのでこのブログで紹介しておこうと思います。 S2CachingはAOPで任意のメソッドの呼び出しをインターセプトし、戻り値をキャッシュするための機能を提供します。バックエンドのキャッシュライブラリとしてEhcacheを使用しています。 S2Cachingを使うには以下のURLからs2caching-0.1-SNAPSHOT.jarをダウンロードし、クラスパスに追加します。 http://s2caching.sandbo

    2010-05-03
  • [Java]Javadocを印刷したい - 新・たけぞう瀕死の日記

    まあ正直Javadocは印刷してどうこうするものではないと思いますが、やんごとなき事情により印刷したいケースというのもあるわけで、そんなときのためのツールとしてPDFDocletというものを教えてもらいました。 http://pdfdoclet.sourceforge.net/ その名の通り、JavadocをPDFとして出力するDocletです。すべてのJavadocが1つのPDFファイルに出力されるので、できたPDFを印刷するだけで済むというシロモノです。 Antで使う場合はこんな感じで。 <javadoc doclet="com.tarsec.javadoc.pdfdoclet.PDFDoclet" docletpath="pdfdoclet-1.0.2-all.jar" classpathref="classpath" additionalparam="-pdf javadoc.pd

    [Java]Javadocを印刷したい - 新・たけぞう瀕死の日記
  • 使えそうなWebメール - たけぞう瀕死ブログ

    会社のWebメールがあまりにも使いにくいので、もっとマトモなWebメールはないのかと探してみました。 Webメールというとすぐに思いつくのはSquirrelMailですが、インターフェースも古い感じで使いにくそうですし、これだと今のWebメールとあまり変わらない気がするので選択肢からは除外。で、よさそうだなと感じたのは以下の3つ。どれもPHPベースで、前者2つはAjaxバリバリです。 //atmail.org/">AtMail:デモサイトで実際に動作を確認することができます。見た目はよいですが、日語化されていなかったり、あちこちの情報を見た限りでは後述するroundcubeのほうがよさげな気がしました。 //roundcube.net/">roundcube:いろいろと情報を見た限りではこれが命っぽいです。日語化もいろんな方がされているのでなんとなく安心感がありますし、UIも普通のメ

    使えそうなWebメール - たけぞう瀕死ブログ
    nantan
    nantan 2010/03/03
    使えそうなWebメール
  • 2010-01-31

    GoogleGo言語がGCCでサポートされることになるそうな。 http://sourceforge.jp/magazine/10/01/29/0250228 うーん、まあ別にいいんですけど…。なんというか、こう…。ねぇ…。 なんと、表向きには3年半ぶりのリリースです。 http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=StepCounter 正式にリリースしていない1.15の分の差分も含めると変更点は以下の通りです。 .htmをHTMLファイルとしてカウントするようにしました .diconをXMLファイルとしてカウントするようにしました Python用のカウンタでdocstringをコメントとみなすようにしました VB.NET, C#に対応しました 使ってる人はいないと思いますが、念のためNetBeans用のモジュー

    2010-01-31
    nantan
    nantan 2010/02/01
    ステップカウンタ、たけぞうさん
  • 2010-01-30

    IBMのdeveloperWorksにClickの記事が掲載されています。 https://www.ibm.com/developerworks/web/library/wa-apacheclick/ 初歩的な内容ですが、こういう記事をきっかけにClickに触ってくれる人が増えるといいですね。developer Works Japanで日語訳されるといいなぁ。 Eclipseを使ってるのにいちいちwarにエクスポートして動作確認してるのが若干謎ですが…。 JSPで利用可能な標準的なEL関数Java Standard EL Functions 1.0.0をリリースしました。 http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=JSEL ダウンロードはこちらからどうぞ。ダウンロードしたJARファイルをWEB-INF/libに

    2010-01-30
    nantan
    nantan 2010/01/31
    EL式、たけぞうさん
  • 1