Posts

Groongaドキュメント読書会#4参加レポート

2014/8/25に開催されたGroongaドキュメント読書会#4の参加レポートです。 今回初めて参加させていただきました。 読書会で学んだことのうち、ドキュメントに記載されていないことを中心にまとめています。 4.4.1. JavaScriptに似た文法での絞込・全文検索 ドキュメント queryとfilterは書き方の違いだけなのか? 書き方の違いだけで、処理的には同じ。 filterの方が表現力が高い。 4.4.2. scorer を利用したソート ドキュメント –filter “1” 全てのレコードにマッチさせる、という意味。 –filterすると結果として仮想テーブル的なものができる。 仮想テーブル的なものに_scoreがついてるイメージ。 –scorer “_score = rand()” ランダム値を_scoreに代入。 –scorerを使うと元々あるカラム(_score以外のカラム)の値を変えることもできてしまうが、基本的には_scoreの値を調整することを意図した機能。 selectの結果で返されるデータの中で、最初の値が三つ入っている配列は何? 第一要素: 結果ステータス (0 = 正常終了) 第二要素: クエリの実行を開始した時間 第三要素: 開始したのにかかった時間 4.4.3. 位置情報を用いた絞込・ソート ドキュメント 緯度、経度の区切り文字にはカンマも使える。 距離計算や円の中にあるかどうか、矩形の中にあるかどうかなどが関数で計算できる。 球面を考慮して計算するモードや平面と見なして計算するモードがある。 Groongaは内部表現はできるだけ整数にしている(計算誤差を減らすため)。 度数表記は60進数なので60をかけてミリ秒表記に変換できる。 ミリ秒表記のデータをもっているならそのまま使った方がいい。 4.5. ドリルダウン ドキュメント ドリルダウンとはRDBのGROUP BYのような処理ができる機能。 サンプルコードで指定している–limit 0とは? 出力件数を0にしている。 drilldownは普通のセレクト結果+drilldown結果を返す。 この例ではselectの出力は余計なので–limit 0で抑制して...

Bundlerでrmagicをインストール on Mac OS X Mavericks using Homebrew

Homebrewでimagemagickをインストールし、Gemfileに「gem "rmagick" require: "RMagick"」を追加してbundleを実行すると、rmagickのビルド中に ... No package 'MagickCore' found checking for stdint.h... yes checking for sys/types.h... yes checking for wand/MagickWand.h... no Can't install RMagick 2.13.2. Can't find MagickWand.h. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers.  Check the mkmf.log file for more details.  You may need configuration options. Provided configuration options: ... というエラーが発生する。 このエラーは環境変数C_INCLUDE_PATHに"/usr/local/Cellar/imagemagick/6.8.8-9/include/ImageMagick-6" (imagemagick 6.8.8-9の場合)を設定すれば回避できる。 が、今度は ... Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found Can't install RMagick 2.13.2. C...

chef-rvmで作ったsudoできないユーザー用にRVMをシングルユーザーインストール

autolibsのところで少しはまったのでメモ。 ChefでRailsアプリを動かす専用アカウント(こいつにはsudoさせたくない)を作って、ついでにそのユーザー専用にRVMをインストールしたかったので、 chef-rvm のrvm::userレシピを試してみたんだけれども、インストール途中で xxx password required for 'apt-get --quiet --yes update': とか言って止まってしまう(xxxはアカウント名、Ubuntuなのでapt-getしようとしてる)。 これを回避するにはautolibsを無効にすればよい。 やり方は、Node Objectに "rvm": { "rvmrc": { "rvm_autolibs_flag" : "disabled" } } と書いておけばOK。 こんな感じ。 {     "rvm" : {         "rvmrc" : {             "rvm_autolibs_flag" : "disabled"         } ,         "user_installs" : [{             "user" : "svc" ,             "default_ruby" : "ruby-2.1.0" ,             "rubies" : [ "ruby-2.1.0" ]         }]      } ,     "run_list": [         ...         "re...

CUIでAndroid開発環境を構築する

諸事情によりSSHしたDebian (6.0 squeeze) にAndroid開発環境を作りたかったので、試行錯誤しながらCUIのみで頑張ってみた記録です。 Android SDKの管理といえばGUIからやるしかないと思っていたけれど、android --help list sdk とかやってみると、--no-ui (or -u) というオプションがあることに気づき、喜び勇んで android list sdk -u を実行してみるとこんなエラーが... Refresh Sources: Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: invalid character at position 2 in 08 Fetched Add-ons List successfully Refresh Sources Fetching URL: https://dl-ssl.google.com/android/repository/repository-7.xml Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-7.xml, reason: NumberFormat invalid character at position 2 in 08 Refresh Sources: Fetching URL: https://dl-ssl.google.com/android/repository/repository-7.xml Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-7.xml, reason: NumberFormat invalid character at position 2 in 08 Refresh Sources: Fetching ...

capistranoのマルチステージ拡張機能とcapistrano-unicornを一緒に使う際のTips

要約 capistranoのマルチステージ拡張機能とcapistrano-unicornを一緒に使う時、config/deploy.rbにrequire "capistrano-unicorn"を記述すると、unicorn系のcapタスクがステージ毎に用意した設定の内容を正しく認識してくれません(例えば/u/appsなんとかにアプリがデプロイされたものとしてunicornを起動しようとする)。 require "capistrano-unicorn"を各ステージ用設定ファイルの末尾に書いておくと、正しくステージ毎の設定を反映してくれます。 背景 現バージョンのCapistrano(この記事を書いている時点では2.13.5)には、もともとcapistrano-ext gemとして開発されていたマルチステージ拡張が組み込まれていて、ステージングサーバーにでプロイする時とプロダクションサーバーにデプロイする時で設定を切り替えることができるようになっています。 この機能を使いたい時は、 config/deploy.rbに以下を追記 require "capistrano/ext/multistage" set :stages, ステージ名の文字列配列 set :default_stage, デフォルトステージ名 config/deployディレクトリにステージ毎の設定ファイルを用意(ファイル名はステージ名.rb) デプロイ先によらない設定はconfig/deploy.rbに、ステージ毎に切り替えたい設定はconfig/deploy下のそれぞれの設定ファイルに記述 capコマンドを実行する時に、capの後にステージ名を記述する でOK。 例えば、 config/deploy.rb ... require "capistrano/ext/multistage" set :stages, ["staging", "production"] set :default_stage, "staging" ... config/deploy/staging.rb server "...

ここ2週間で翻訳した記事

JavaFX 2.0とCSS 3のサポートを提供するNetBeans 7.1 Oracleが1月5日にNetBeans 7.1をリリースした、このバージョンではGUIの強化に特に重点がおかれており、FXMLエディタによるJavaFX 2.0のサポートや、Swing Builder (Matisse)のGridBagLayout Customizerの大幅なアップデート、JavaFXとSwingのビジュアルデバッギングのためのツールなどが提供される。Bill Pataky氏(Oracleの開発ツールのプロダクトマネジメント担当副社長)は我々InfoQに対して、"このデバッグツールは本当に目覚しい前進です。なぜなら、アプリケーションが動いていれば、チェックポイントを設定しなくても、ユーザインターフェースコンポーネントをクリックするだけでコンポーネントを調査することができるのです"と語ってくれた。 CeylonとCeylon IDEの最初のマイルストーン 今週初め、Ceylon IDEの最初のマイルストーンがリリースされた。これは、昨年の12月に初めてリリースされたプログラミング言語Ceylon用のIDEだ。 MSEPT'12 - マルチコアシステムのソフトウェアエンジニアリングについてのカンファレンス 最近のプロセッサが提供する並列処理を活用するのはなかなか難しい。これらのCPUが低価格でも手に入るようになった今、ソフトウェアエンジニアの主要な課題は、アプリケーションの中でプロセッサをいかに活用するかということである。マルチコアのソフトウェアエンジニアリング、パフォーマンス、ツールに関する国際会議(The International Conference on Multicore Software Engineering, Performance, and Tools; MSEPT'12)でその答えが見つかるかもしれない。 Windowsの新ファイルシステム: ReFS およそ20年ほど前、MicrosoftはWindows NTの一部としてNTFS(New Technology File System)を導入した。それ以来、NTFSには多くの機能が追加されたが、その時点で有望だと目されていたが結局そう...

InfoQの記事「2011年のITプロジェクトの成功の実態」を翻訳しました

InfoQ Japanで「 2011年のITプロジェクトの成功の実態 」が公開されました(原文「 Real IT Project Success in 2011 」)。 Scott W. Ambler さんがまとめている、ITプロジェクトの結果に関する調査結果について書かれた記事です。 Scottさんが公開している 調査結果のページ を見ると、ブログ、Twitter、LinkedInのディスカッションなどでこの調査についてアナウンスし、178の応答があったと書かれています。 つまり、調査に協力したいという人が自主的に結果を報告してきたということでしょう。 でも、この調査のやり方だと現実の成功/失敗率を反映した調査結果が得られない可能性がありますよね(例えば、成功した結果ばかり報告される可能性がある)。 ITプロジェクトの結果を定量的にまとめ、それぞれの「開発パラダイム」と 品質や成果の価値、ROI、スケジュールとを比較・分析することはとても価値があることだと思いつつ、結果の数値を鵜呑みにするわけにもいかないな、と思いながら翻訳しました。