タグ

2014年12月8日のブックマーク (8件)

  • Haskell と SDL - satosystemsの日記

    この記事は Haskell Advent Calendar 2014 の 8 日目の記事です。 Haskell で SDL を利用してゲーム的な何かを作成するための入門記事です。 環境構築(Haskell Platform) Haskell の開発環境は Windows/Mac/Linux いずれでも構築可能です。僕は普段は Haskell のコーディングは Linux、特に Ubuntu 14.04 を使用することが多いですが、今回は Mac を選択しました。 Haskell Platform は最新を使用します。僕の Mac には少し古いバージョンが入っていたので: $ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.6.3 以下のコマンドで何がアンインストールされるかを確認し: $ un

    Haskell と SDL - satosystemsの日記
  • 知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

    Herokuの公式ドキュメントは英語なので読みづらいですよね。herokaijp/devcenterのように、有志が日語訳してくれているドキュメントもありますが、その中でも特に抑えておきたい16個の常識について挙げてみました。(16日に公開する予定の記事なので、何となく16個挙げてみました。。) (補足)Herokuを使う上での登場人物の名前 Dyno 「だいの」と呼びます。1Dynoと言ったとき、一つサーバが立ち上がっているようなものだと考えて下さい。 Routing Mesh Herokuアプリにアクセスがあったときに、Dyno間の負荷をロードバランスしながらリクエストを振り分ける機構をRouting Meshと呼びます。たまに「Router Error」というログを吐くのですが、そのとき障害が起こっている場所はここです。 常識1. Dynoは1時間アクセスがないとアイドル状態になる

    知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365
    igrep
    igrep 2014/12/08
    あ、無料じゃないんだ...(迫真)
  • JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった | mah365

    JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった。知らなかった(迫真)。 典型的なRailsアプリのテストプラン そういう訳で典型的なRailsアプリのテストプランを書いてみたのがこちら。 ユーザーログインページでCSRFトークンを取得し、常にHTTPヘッダにつけるようにする ユーザーログイン情報をクッキーに保存 といった典型的な処理を盛り込んでいます。あとはREADME.mdを読んでもらえれば大体の書き方が把握できるかと思います。 ちなみに、# Debugというコメントの下2行をコメントアウトしてもらうと、JMeter上でデバッグ用の出力を表示することができます。テストプランが上手く動かないときに、リクエストヘッダやレスポンスを確認するのに便利です。 で、これをコマンドラインで ruby sample.jmx.rb && j

    JMeter使うのだるいなーと思ってたらruby-jmeterというRubyでテストプランを書けるツールがあった | mah365
  • Octotree·GitHub利用者は必見!GitHubでツリー表示 MOONGIFT

    GitHubUIは先進的で、かなり見やすいものです。初心者にも分かりやすく使いやすいのですが、毎日のようにGitHubを使っている人たちにすればもっと素早くファイルを見ていけるようにしたいと思うでしょう。 そこで使ってみたいブラウザ機能拡張がOctotreeです。ブラウザ画面の左側にファイルブラウザ機能が追加されます。 Octotreeの使い方 OctotreeはGoogle Chrome、Firefox、Safari向けに機能拡張/アドオンが提供されます。 インストールされた状態で任意のリポジトリに行くと、このようにファイルツリーが左側に表示されるようになります。 フォルダを開いてより深い階層のファイルへも素早くアクセスできます。 左側の表示ではブランチを切り替えられませんが、通常のGitHub側でブランチを切り替えると左側のツリーもそれに伴ったものに変更されます。また、プライベートリ

    Octotree·GitHub利用者は必見!GitHubでツリー表示 MOONGIFT
    igrep
    igrep 2014/12/08
    明日使おう。
  • ちゅーんさんがreasonable-lensをHackageでリリースしたようです - Creatable a => a -> IO b

    はいはい、最近色々とアレがアレしてアレな感じのちゅーんさんですがちゃんと生きてます。安心してください。 もともとekmettによってlensというパッケージが公開されています。 これがすごく強力で便利な代物なのですが、いかんせん巨大で依存関係も複雑なので、使うのに気合が必要という問題があったりします。 根的な仕組みは複雑であれ大きくは無いので、良く使う機能に限定した小型版lensを実装しました。 以下、HackageのURL: https://hackage.haskell.org/package/reasonable-lens これは何なの lensは複雑な代数的データ型へのフィールドアクセスをぐっと使いやすくするためのライブラリです。 TemplateHaskellによるコンパイル時処理で、アクセサと呼ばれる関数を生成する事で、ややこしいフィールド操作をサポートします。 基的な機能

    ちゅーんさんがreasonable-lensをHackageでリリースしたようです - Creatable a => a -> IO b
    igrep
    igrep 2014/12/08
    ちゅーんさんこんなの出してたんだ!
  • jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog

    2014年04月09日11:24 Ruby JavaScript jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも JSON を返すときに、良い感じにごにょごにょしたいみたいなときってあるじゃないですか。そういうときに jbuilder ではどうやるのかなーと思ってちょっと調べたのでメモしておきます。 基的な使い方はこんな感じです。 # こう書くと json.user do |json| json.nickname @user.name end # こうなる { "user": { "nickname": "sasata299" } } ただ、これだとキーの部分("nickname" の部分)が定数となってしまい、変数が使えません。変数を使ってキーを動的に変えたい場合には set! というメソッドを使います。 例えば、"nickname"

    jbuilderで良い感じのハッシュ形式のJSONを返したいならこれだけ押さえておけば大丈夫かも - (゚∀゚)o彡 sasata299's blog
    igrep
    igrep 2014/12/08
    こう見ると便利に見えるなぁ。
  • Ruby でラインメモリプロファイラ - Qiita

    プロファイラ好きなモニタの前の皆さんこんにちは。@sonots です。この記事では、Ruby コードのどの行がどのぐらいメモリを消費しているか調べる方法を紹介します。 オブジェクトの数を数える Ruby には ObjectSpace というオブジェクトの情報を集めたり操作したりする module があります。 このモジュールの each_object メソッドを使用すると、RubyVM 上の全てのオブジェクトを取り出すことができます。 このメソッドを使って、以下のようなコードを書くと、実行した地点で、RubyVM 中にどのクラスのオブジェクトが何個存在しているのかカウントできたりするわけです。興味深いですね! ObjectSpace.each_object.inject(Hash.new 0) {|h,o| h[o.class]+=1; h } # => {Class=>241, Stri

    Ruby でラインメモリプロファイラ - Qiita
    igrep
    igrep 2014/12/08
    素晴らしい。
  • rubyのloggerをnewした後にログファイルを削除するとどうなるのか · Yuichi Takada

    この投稿はRuby Advent Calendar 2014の7日目の記事です。 rubyには標準添付ライブラリにloggerクラスがある。 そのloggerクラス、newした後に出力先のログファイルが削除された時の挙動について調べた。 そして、file_safe_loggerというgemを作った。 検証 下記のようにして、Logger.newとlogger.infoの間でファイルを削除してみる require 'logger' require 'fileutils' logfile = 'test.log' logger = Logger.new(logfile) FileUtils.rm(logfile) logger.info('this is test') これは、結果としてはエラーにはならず正常終了するが、test.logというファイルはカレントディレクトリに存在せず、もちろんt

    igrep
    igrep 2014/12/08
    Ruby Advent Calendar 2014の穴埋めありがたい!