2008年3月アーカイブ
まだ直すところは結構あるのですが、最近時間をとれないので全部直すと大分時間が必要になってしまいます。
基本的な機能は全てできていますのでこの辺でリリースすることにします。
今後も時間をみてメンテはするつもりです。
テストは自分のGMailでしか試せていないため、別のメーラーだと上手くいかないかもしれません。
以下機能説明です。
WebScrap機能説明
・一般的なソーシャルブックマーク(共有機能はまだありません)
・会員登録時のメールアドレスにスクラップしたページの内容をメールする
まとめて読みたかったり、Webページを自分のメールアドレスに残したい時は結構便利だと思います。
ブックマークレットも用意しましたので使い方も簡単です。
それでは、以下URLより、使ってみてください。
※サーバ容量もあるので会員が増えたら、新規会員登録は停止する可能性があります。
WEBScrap - ボタンを押すだけ。お気に入りページをメールに保存!Webブックマーク管理
これで今年の目標の3つサービス立ち上げるの1つ立ち上げ完了!
基本的な機能は全てできていますのでこの辺でリリースすることにします。
今後も時間をみてメンテはするつもりです。
テストは自分のGMailでしか試せていないため、別のメーラーだと上手くいかないかもしれません。
以下機能説明です。
WebScrap機能説明
・一般的なソーシャルブックマーク(共有機能はまだありません)
・会員登録時のメールアドレスにスクラップしたページの内容をメールする
まとめて読みたかったり、Webページを自分のメールアドレスに残したい時は結構便利だと思います。
ブックマークレットも用意しましたので使い方も簡単です。
それでは、以下URLより、使ってみてください。
※サーバ容量もあるので会員が増えたら、新規会員登録は停止する可能性があります。
WEBScrap - ボタンを押すだけ。お気に入りページをメールに保存!Webブックマーク管理
これで今年の目標の3つサービス立ち上げるの1つ立ち上げ完了!
こちらも覚えておくとすごく仕事が速くなるテクニックの1つです。
Excelは使いこなすと本当に便利ですよね。覚書として残しときます。
例としてECで顧客ID、購入単価、注文日のデータがあるとします。
1)ピボットテーブルで購入単価のデータ個数で表示する
メニューより「データ」→「ピボットテーブルとピボットグラフ レポート」を選択する
2)作成したピボットテーブルをグループ化する
以下サイトにわかりやすく解説されています。
Excelマニュアル ピボットテーブルの使い方2
http://www.seta.media.ryukoku.ac.jp/manual/office/excel/table/pibod2.html
Excelは使いこなすと本当に便利ですよね。覚書として残しときます。
例としてECで顧客ID、購入単価、注文日のデータがあるとします。
1)ピボットテーブルで購入単価のデータ個数で表示する
メニューより「データ」→「ピボットテーブルとピボットグラフ レポート」を選択する
2)作成したピボットテーブルをグループ化する
- ピボットテーブル上でメニューから「データ」→「グループとアウトライン設定」を選択する
- グループ化ダイアログで、自動の単位を変更し、OKをクリック
以下サイトにわかりやすく解説されています。
Excelマニュアル ピボットテーブルの使い方2
http://www.seta.media.ryukoku.ac.jp/manual/office/excel/table/pibod2.html
今回は、Railsでメッセージを徐々に不透明にしていき、最後に消えるという処理を行う方法です。
scaffold等で自動生成するとflash[:notice]でメッセージが表示されると思いますが、それに対するエフェクトです。ちょっと、かっこよくなりますよ。
例は指定のrhtmlに対する処理です。
こんなに簡単にできます。ただソースがかっこわるいんですよね。
もっときれいにできる方法があったら教えてください。
scaffold等で自動生成するとflash[:notice]でメッセージが表示されると思いますが、それに対するエフェクトです。ちょっと、かっこよくなりますよ。
例は指定のrhtmlに対する処理です。
<head>
<%= javascript_include_tag :defaults %>
</head>
<<<省略 >>>
<% if flash[:notice] -%>
<div id="notice">
<%= flash[:notice] %>
<script>
<%= "new Effect.Fade('notice', {duration: 5})" %>
</script>
</div>
<% end -%>
<<<省略 >>>
こんなに簡単にできます。ただソースがかっこわるいんですよね。
もっときれいにできる方法があったら教えてください。
WebScrapもほとんどできているのですが、細かなところの手直しをしています。
今回はPC、モバイルで処理を分けたい時の方法です。
以下の通りで@requestオブジェクトから簡単に取り出せます。
(controllersでもviewsでもどちらでもOK)
たとえば、viewで切り替えたい場合も以下でOK!
【参考サイト】
今回はPC、モバイルで処理を分けたい時の方法です。
以下の通りで@requestオブジェクトから簡単に取り出せます。
(controllersでもviewsでもどちらでもOK)
user_agent = @request.user_agent puts user_agent #=> Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
たとえば、viewで切り替えたい場合も以下でOK!
<% if /agent/ =~ @request.user_agent -%> 処理 <% end -%>
【参考サイト】
ひさしぶりの更新です。システム開発の際に、ハードやソフトをベンダから購入するときがあります。
その際に保守契約をどのようにするかを決めるのですが、ハードでよくあるのがオンサイト方式とセンドバック方式。今日はその違いについて書きます。
【保守契約】
私はほとんどがオンサイト方式で契約します。サービス停止が発生すると運用がとまってしま場合がほとんどだからです。
その際に保守契約をどのようにするかを決めるのですが、ハードでよくあるのがオンサイト方式とセンドバック方式。今日はその違いについて書きます。
【保守契約】
- オンサイト方式
- センドバック方式
私はほとんどがオンサイト方式で契約します。サービス停止が発生すると運用がとまってしま場合がほとんどだからです。
WebScrap(Railsアプリケーション)を立ち上げるのにApacheではなく、lighttpdを使おうと思います。
lighttpdを使用する理由は、Apacheは2系ではサポートされておらず、lighttpdの方が軽量で簡単ということだからです。
※それと実験的に新しいWebサーバを試してみたかったということもあります。
それでは手順は以下の通り。
1) サブドメインを設定する
2) lighttpd.confの設定
ApacheでいうところのvartualHostの設定は、lighttpdでは、$HTTP["host"]で設定します。
ちなみに今回はサブドメインでrailsアプリケーションを切り替えましたが、URIで変更することも可能です。
※その場合は$HTTP["url"]を使用する
※今回はサブドメインでの設定例
3) lighttpdの再起動
再起動して、指定したドメインにアクセスしれば正常に画面が表示されます
Apacheモジュールも結構使いたいため、今後はApache+lighttpdで構築しようと思います。
【参考サイト】
非常に参考になりました。より詳細にlighttpdの設定方法がわかります。
lighttpdを使用する理由は、Apacheは2系ではサポートされておらず、lighttpdの方が軽量で簡単ということだからです。
※それと実験的に新しいWebサーバを試してみたかったということもあります。
それでは手順は以下の通り。
1) サブドメインを設定する
webscrap IPaddress A
2) lighttpd.confの設定
ApacheでいうところのvartualHostの設定は、lighttpdでは、$HTTP["host"]で設定します。
ちなみに今回はサブドメインでrailsアプリケーションを切り替えましたが、URIで変更することも可能です。
※その場合は$HTTP["url"]を使用する
※今回はサブドメインでの設定例
$HTTP["host"] == "webscrap.23scripts.net" {
var.servername = "webscrap.23scripts.net"
accesslog.filename = "/var/log/lighttpd/" + var.servername + "/access.log"
server.errorlog = "/var/log/lighttpd/" + var.servername + "/error.log"
server.document-root = "/webscrap/public"
server.error-handler-404 = "dispatch.fcgi"
fastcgi.server = ( "dispatch.fcgi" =>
( "webscrap" =>
(
"socket" => "/var/run/webscrap.fcgi.socket",
"bin-path" => "/webscrap/public/dispatch.fcgi",
"bin-environment" => ( "RAILS_ENV" => "production" )
)
)
)
}
はじめは、以下のsocketエラーが発生しましたが、”socket”の設定をしたら直りました。2008-03-15 10:12:08: (mod_fastcgi.c.2703) fcgi-server re-enabled: unix:/tmp/application.fcgi.socket-0
3) lighttpdの再起動
再起動して、指定したドメインにアクセスしれば正常に画面が表示されます
/etc/init.d/lighttpd restart
Apacheモジュールも結構使いたいため、今後はApache+lighttpdで構築しようと思います。
【参考サイト】
非常に参考になりました。より詳細にlighttpdの設定方法がわかります。
ブログの更新も大分滞っていました。仕事が忙しくてなかなかWebScrapも作成する時間があまり取れないんですよね。おおよそ機能はつくれたのでいくつか、忘れないようにメモしときます。
今回は、Railsのエラーメッセージを日本語化するというもの。
Ruby-GetTextを使うのが一般的のようですが、今回はそこまできっちり作らなくても良いかなと思いActiveHeartを使用しました。以下手順載せます。すごい簡単ですよ。
まず以前にSubversionをインストールしてますので、railsコマンドで生成したフォルダで以下実行。
これだけでエラーメッセージが日本語化します。すごく簡単ですよね。
テーブルのカラム名はそのままですので、その場合はmodelに以下設定をすればOK
set_field_namesでカラム名と表示文字列をマッピングする
これで日本語化はOKです。ちなみにActiveHeart自体は非推奨とされており、Ruby-GetTextを使用するようにコメントされていますね。確かにサービスのグローバル化を考えればその方が良いと思います。
私はActiveRecordのエラー文言を日本語にしたいだけでしたので他のモジュールはコメントアウトしました。
一応そちらも記載しておきます。
【参考サイト】
今回は、Railsのエラーメッセージを日本語化するというもの。
Ruby-GetTextを使うのが一般的のようですが、今回はそこまできっちり作らなくても良いかなと思いActiveHeartを使用しました。以下手順載せます。すごい簡単ですよ。
まず以前にSubversionをインストールしてますので、railsコマンドで生成したフォルダで以下実行。
$ ruby script/plugin install http://svn.rails2u.com/public/plugins/trunk/active_heart/ + ./active_heart/init.rb + ./active_heart/lib/active_record_messages_ja.rb + ./active_heart/lib/iso2022jp_mailer.rb + ./active_heart/lib/trans_sid.rb
これだけでエラーメッセージが日本語化します。すごく簡単ですよね。
テーブルのカラム名はそのままですので、その場合はmodelに以下設定をすればOK
set_field_namesでカラム名と表示文字列をマッピングする
例)
class Bookmark < ActiveRecord::Base
set_field_names :title => 'タイトル', :url => 'URL'
validates_presence_of :title, :url,
:message => "が未入力です"
end
これで日本語化はOKです。ちなみにActiveHeart自体は非推奨とされており、Ruby-GetTextを使用するようにコメントされていますね。確かにサービスのグローバル化を考えればその方が良いと思います。
私はActiveRecordのエラー文言を日本語にしたいだけでしたので他のモジュールはコメントアウトしました。
一応そちらも記載しておきます。
warn 'ActiveHeart is obsolute plugin!' warn 'Please use Ruby-GetText or jpmobile' require_dependency 'active_record_messages_ja'if defined? ActiveRecord::Base
# Comment Out!
#require_dependency 'trans_sid' #require_dependency 'iso2022jp_mailer' if defined? ActionMailer::Base
【参考サイト】
またまた、Excelシリーズです。特定のレコードだけの合計を求めたいときってありますよね?
そういったときに使える小技です。これも忘れちゃうのでメモっときます。以下2つの例
1) 商品の売上データから特定のカテゴリ(本)のみ集計する
これ正直ピボット使えばできるのですが、関数の方が手軽にできるときがあります。
※A列、カテゴリ=「”本”」とあるB列、売上金額を合計する
SUMIF(A:A, "本", B:B)
2) 商品の売上データから特定のカテゴリ(本)で東京のものを集計する
今度は条件が2つになります。SUMIFでは条件を1つしか指定できないので配列数式をつかいます。
※A列、カテゴリ=「本」でB列、地域=「東京」のC列売上金額を合計する
SUM(IF(A1:A10="本", IF(B1:B10="東京", C1:C10)))
入力後、Ctrl + Shift + Enter を押せばOKです。
【参考サイト】
SUMIF関数で複数条件指定:Excel エクセルの使い方-関数/計算式-数学・統計
そういったときに使える小技です。これも忘れちゃうのでメモっときます。以下2つの例
1) 商品の売上データから特定のカテゴリ(本)のみ集計する
これ正直ピボット使えばできるのですが、関数の方が手軽にできるときがあります。
※A列、カテゴリ=「”本”」とあるB列、売上金額を合計する
SUMIF(A:A, "本", B:B)
2) 商品の売上データから特定のカテゴリ(本)で東京のものを集計する
今度は条件が2つになります。SUMIFでは条件を1つしか指定できないので配列数式をつかいます。
※A列、カテゴリ=「本」でB列、地域=「東京」のC列売上金額を合計する
SUM(IF(A1:A10="本", IF(B1:B10="東京", C1:C10)))
入力後、Ctrl + Shift + Enter を押せばOKです。
【参考サイト】
SUMIF関数で複数条件指定:Excel エクセルの使い方-関数/計算式-数学・統計

