2007年12月アーカイブ

RSSフィードをメール配信するサービス[MyRSS]:レポート

   ブックマークに追加する
ブログやニュースはいつもRSSリーダーをつかって見ているのですが、ちょっと空いた時間に見たいということがあります。その場合、携帯メールに送信できたらと考えていました。

せっかくなのでRubyでRSSフィードを取得しDBに登録、定期的にメール配信するプログラムを作ろう考えていたところ、そういったサービスが既に存在する気付きました。(まぁ、、、やっぱりという感じなのですが・・・せっかく作ろうと思っていたのに。。。)

ただこのサービスすごくいいです。RSSがメールで配信されるだけではありません。以下に簡単に機能を紹介します。

071231113217.jpg












サイト名 : MyRSS http://myrss.jp
運営会社: サイドフィード株式会社

MyRSSサービス概要

  • 新着ニュースをRSSにしてくれるサービス
  1)クリックできるテキストを新着ニュースと判断し、RSSとする
  2)データベースにサイト登録時のテキストリンクを格納しておく(マッチすれば新着ニュースではないと判断)
  3)登録できるサイトは10まで、クロールは1-3時間に1回程度(というか充分すぎるでしょう)

  • RSS内容をメール配信してくれるサービス
1)RSS化された情報を登録したメールアドレスに送信する
2)配信スケジュールは5つまで登録できる(更新されてない場合は「ない」というメールがとぶ)
3)メールのボリュームは、登録したサイトの更新内容全てなのでとても多い

まだ登録しただけなので、実際配信されるメールはわかりませんが、かなり便利なサービス。欲しかった機能ばかりです。運営会社のサイドフィード株式会社は、2005年8月に創業しており代表の赤松洋介氏はサイボウズを経て起業したとのこと。様々なメディアにもとりあげられていますね。ブログ等でよく見るサービスもサイドフィードさんが作成していたんだとわかりました。日本にもいいITサービスがあると実感しました。

#1 【読書】「社長が戦わなければ会社は変わらない」を読んで

   ブックマークに追加する
年末でやっとゆっくりできるので、たまっていた本を読みあさることにしました。ただ呼んでも面白みがないため読んだ内容を3から5のポイントに纏めて、ブログで報告していきます。余談ですが、来年の目標に2008年は本を100冊以上読むというのを挙げました。

社長が戦わなければ、会社は変わらない
金川 千尋
東洋経済新報社 (2002/12/06)
売り上げランキング: 135852
おすすめ度の平均: 4.0
4 カリスマ感じます
4 稼ぐ社長ランキング4位
4 株主として

著者は、信越化学工業株式会社、米国シンテック両社の代表取締役社長の金川千尋さんです。不況が続く中7年連続最高益を更新したとのことです。経験談から経営で大切な事項が実践的に書かれており、特に感銘を受けた5点を纏めました。

1) 人員は厳選して採用し、さらにチームは少数精鋭を心掛ける

2) 社員をプロフェッショナルに育て上げ、1つの仕事を長く続けてもらう(これが少数精鋭とつながる)

   ベンチャー企業になると1人に様々な分野も業務をお願いするが、1つの仕事を長く続けてもらうことで最高のパフォーマンスを発揮してもらう方針だそうです。そのため少数精鋭のチームになるということ。

3) プロジェクトは1:Nチームでステップ毎に構成する
   
プロジェクト毎にチームを作るというのはよくありますが、ステップ毎に作業内容が変わってきます。そのためプロジェクトに複数チームを用意しステップ毎で構成しているようです。もちろん1プロジェクト通して参加する人もいます。この方が人員(リソース)が最適化されます。

4) ベンチャーはどこにも負けないコスト構造を作ることが大切

  これは当たり前のようですが確かに的を得ています。どれだけ低いコストで収益を上げられるかがベンチャーのキーとなります。さらに言えば、コスト安でどこに付加価値をつけるか価値観の変化に敏感でなければなりません。

5) 予測した内容より事態を悪く考え計画を立てる
  
エンジニアは結構この辺は考えるところではないでしょうか?かならず思っても見なかった問題が発生します。そのためバッファをつくっておくことは大切です。

読んでて感じたのは基本に忠実というか、堅いところは堅い。しかし、柔軟なところはとても柔軟と生産性を挙げるため本質を見失わないための工夫がされているなと感じました。

Open Web Awardsで13カテゴリの優勝者が発表されました

   ブックマークに追加する
国際ネットサービスコンテストのオープンウェブアワードで投票による13カテゴリの最終結果が発表されました。投票による結果と審査員の選定結果が発表されています。審査員の結果の方は使ったことのないサービスも結構ありました。実際に使って今後本ブログで報告できればと思います。以下最終結果の内容です。

【投票による結果】

Mainstream and Large Social Networks

Applications and Widgets
widgetbucks-l.png

Social News and Social Bookmarking

Social Search

Sports and Fitness
sportme.PNG

Photo Sharing
voisrounded.PNG

Video Sharing

Start Pages
igoogle

Places and Events

Music

Social Shopping

Mobile
googlemobile.PNG

Niche and Miscellaneous Social Networks


実際の詳細情報はこちらから
Open Web Awards: Final Winners Announced!

SEO#2 Yahoo! Site Explorerに登録(Yahooにインデックス化されるか?)

   ブックマークに追加する
効果の程は、確かはないですがさらにアクセスアップのためにYahoo! Site Explorerにサイトを登録してみました。もっと早く登録したかったのでが、yahoo.comのパスワードを忘れてしまっていたのです。(大分昔に取得したもので・・・)
IDやメールアドレスも思い出せないので、仕方なく新たにYahoo.comのIDを取得しました。覚書としてSite Explorerの登録方法をメモしておきます。

1) はじめにSite Explorerにアクセスする
  もし、Yahoo.comのIDがない場合は、Sign Upから新規登録する

071224021120.jpg










    (※画像はクリックすると大きくなります。)

2) サイトURLを入力し、「AddMySite」ボタンをクリック

3) 「Manage」をクリックし、「Web Site Feed」を入力して「Add Feed」ボタンをクリック
  ※Web Site Feed は、atom、RSSでも良いですが、sitemap.xmlでもOKです。(私はsitemap.xmlとatom.xmlの両方と登録しました)

071224023355.jpg








    (※画像はクリックすると大きくなります。)

4) Authenticationの設定をする
  
Authenticationタブをクリックし、以下2つの方法のいずれかを実行
     4.1. 自分のブログのルートディレクトリにダウンロードしたhtmlをアップする
    4.2. HTMLのヘッダー部にMETAタグでAuthenticationコードを設定する

  レンタルサーバだったこともあり簡単な4.1.を実行。(レンタルサーバでなければ4.2.しかできない場合があります)

071224020515.jpg























    (※画像はクリックすると大きくなります。)

⇒「Download File」をクリックしてxxxxxxxxxxxx.htmlをダウンロードする
⇒ブログのルートディレクトリにダウンロードしたhtmlファイルをアップロードする
⇒「Ready to Authenticate」ボタンをクリックする
※承認までは24時間くらいかかるようです。

これでYahooにクロールされるかどうか楽しみです。効果があれば追記します。
2007.12.24 02:50 -->site:www.2mihi.com 7件 (先日までは2件だったような。これはSiteExplorer効果!?)

iGoogleガジェットコンテストの審査結果が発表されました

   ブックマークに追加する
先日から旅行にいっていたためブログの更新がとどこおっていました。その間(12月21日)にiGoogleのガジェットコンテストの審査結果が発表されたようです。7月から行われたていたコンテストですが、グランプリは「QR Edit」入力したテキストをQRコードへと変換してくれるツールです。良くあるツールですが、確かに結構使用するんですよね。今後のモバイルの発展の希望も含めた受賞でしょう。
以下、授賞式の模様です。




準グランプリは「StartCommand」で、こちらは設定したコマンドを使って、Google以外の検索結果を呼び出すというもの。入力したクエリを設定したサイトで検索できる、いわゆるマッシュアップ系のサイト、Webバージョンもあります。>StartCommand  運営会社はCRE8SYSTEM (クリエイトシステム)という会社みたいですね。




詳細は以下にあります。結構、実用ツールが受賞しましたね。私も作ればよかったなぁと感じています。


楽天がRuby on RailsでmyRakutenをリニューアル

   ブックマークに追加する
先日(2007年12月18日)に楽天がmyRakutenをリニューアルしたようです。大分前から変えるという噂は聞いていましたが、いよいよかといった感じですね。現在はまだbetaバージョン。iGoogleと同様、Ajaxでがちゃがちゃ変更できうようですが、まだコンテンツは限られています。楽天のサービスの多さ&デベロッパー向けにAPIを公開するので?と思われるので今後収益化に進むのではないでしょうか。

また、Railsで作られているというのも面白いですね。楽天がRubyを使うことでRuby自体の商用化も多くなるでしょう。リクルーティング等の効果も良いでしょうね。収益化はどうするのかな。マッチング広告あたりが妥当でしょうか。


071219235809.jpg










楽天のニュースリリースはこちら
⇒ちなみに、Railsを使用して開発工数は以前の3割減となったようです。いよいよRails商用化されてきたなぁ。
他のプログラミング言語であるJavaやPHPを利用した従来の開発プロセスに比べ、工数を約3割削減することができました。

iGoogleの検索オプションが2行表示される

   ブックマークに追加する
iGoogleの「検索オプション」の記載が2行表示されています。珍しかったのでとりあえずキャプチャとってしまいました。

071219234108.jpg





言語を「英語」にすると「Advanced Search」と、「Search Preferences」にわかれていますね。まだ日本語化対応していないのでしょうか?

071219234031.jpg







英語の勉強にもなるアジアのWebサービス世界へ発信「Asiajin」

   ブックマークに追加する
最近なにかと話題になっているAsiajinですが、読んでみると面白いですね。英語が苦手な私にも読めます。丁度、英語の勉強になり、ITサービスの話なのでビジネスの勉強にもなり一石二鳥ですね。















天才プログラマの新井俊一さんアルファブロガーの秋元裕樹さんが設立したそうです。日本だけではなく、アジアのWebサービスを英語圏へ発信し、海外のVC等にアピールするとのこと。私も海外に挑戦できる個人サービスをつくりたいです。

↓秋元さんの著書にあるWebサービス(API)の本、マッシュアップのアイディアが浮かぶ本です。

Excelでゼロパディング(0パディング)する方法

   ブックマークに追加する
何も書くことがないので、個人的にExcelで良く使うゼロパッディングの方法を書きます。結構すぐ忘れてしまうんですよね。

=REPT("0", 10-LEN(A1))&A1

【例】
  • A1セルに「12345」に10桁になるまで0をつける(⇒0000012345)となる
【解説】
  • REPTは第1引数を第2引数分くりかえす
  • LENは指定したセルの文字数を取得する
  • 10桁にしたい場合、セルの文字列数分引いて「0」を加え、その後にA1の文字列を連結する
Excelって覚えていると仕事が速くなるんですよね。

Rubyでスクレーピング(mechanizeとhpricot)

   ブックマークに追加する
以前にPerlでクロールするプログラムを作ったので、勉強がてら今回はRubyで作成してみました。ただ今回はかなり、てこずりました。文字コード?のところではまってしまい作るのにまるまる1日かかりました。まずは出来上がったコード。

【事前準備】


$ gem install hpricot
$ gem install mechanize

【ソースコード】


#!/usr/bin/ruby -Ks
require 'hpricot'
require 'mechanize'
require 'kconv'
require 'jcode'

$KCODE = 's'

# 初期設定
@user_agent = 'Mac Safari'
@wait_time = 5
@url = 'taget_url'

def http_connect(url, keyword)
  puts url if $DEBUG
  @page = nil;@price = nil;@content = ""
  begin
    @agent = WWW::Mechanize.new
    @agent.user_agent_alias = @user_agent
    @page = @agent.get(url)
  rescue
    puts "#{keyword}#{@drim}CONNECTION ERROR"
    return
  end
  link = @page.links.with.href(%r{http://target_url/\w+?/}).last
  puts link.href if $DEBUG
  if(link == nil || link.href.empty?)
    puts "#{keyword}#{@drim}LINKERROR"
    return
  end
  @page = @agent.click(link)
  doc = @page.root
  @name = (doc/"span.item_name").inner_html.tosjis
  (doc/"span.item").each {|item|
    item_str = item.inner_html.tosjis
    item_str.scan(/
(.*?)<\/div>
(.*?)<\/div>/){|title, content| @content += ":#{title}:#{content}" # if $DEBUG } item_str.scan(/([\d+] 円)/){|price| @price = price } puts "#{keyword}#{@drim}#{@price}#{@drim}#{@name}#{@drim}#{@content}#{@drim}#{link.href}" } end def generate_url puts ARGV[0] if $DEBUG File.open(ARGV[0]){|f| f.each{|line| keyword = line.chomp! puts keyword if $DEBUG target="#{@targeturl}?keyword=#{keyword}" http_connect(target, keyword) sleep @wait_time } } end puts @header generate_url

ECショップの検索結果から商品情報を取得することを想定しているのですが、どうもカタカナの「ッ」が全て文字化けしてしまう。kconvではなくnkficonvを使っても結果はおなじ。解決方法としては以下1行を挿入するだけで文字化けはおきなくなりました。

require 'jcode'

原因はまだ調べているところですが、以下サイトをきちんと理解できればわかると思います。はぁー、大分はまってしまった。

【参考サイト】

マウスオーバーでメイン画像を切り替える(JavaScript innerHTML)

   ブックマークに追加する
ちょっとお願いされて、サムネイル画像上にマウスオーバーすると、メイン画像が切り替わるJavaScriptをつくりました。シンプルなソースなのでアップします。JavaScriptよくわからずに作ったので、 あまり上手なつくりでないかもしれません。


<html>
<head>
<title>Photo Change</title>
<script language="javascript" type="text/javascript"><!--
var image="./images/01.jpg";
var title="Sample";
var space=" ";

onload = function(){
  resetImage();
}

function viewImage(){
  document.getElementById("image").src=image;
  document.getElementById("image_title").innerHTML=title;
}

function resetImage(){
  document.getElementById("image").src="./images/space.jpg";
  document.getElementById("image_title").innerHTML=space;
}
--></script>
</head>
<body>
<div id="wrap">
  <div id="main">
    <h1>Photo Gallery<h1>
    <img id="image" />
    <div id="image_title"></div>
  <div>
  <hr />
  <div id="thumbnail">
    <img src="images/01.jpg" width="100" onMouseOver="javascript:viewImage(this)"
     onMouseOut="resetImage()" />
  </div>
</div>
</body>
</html>

Excelで作業を10倍早くする (#01 SUBTOTAL)

   ブックマークに追加する
Excelはビジネスにかなり使えますが、今日職場で話していたらExcel関数が実はあまり使われていないことが判明。ってことでExcel関数からSUBTOTALを紹介します。

SUBTOTAL


【使い方】
セルの範囲をオートフィルタした場合、表示されている行にのみ関数を適用する

【使用例】

SUBTOTAL(9, A1:A50)

  • 第1引数:実行する関数(1=AVERAGE, 2=COUNT, 3=COUNTA, 4=MAX, 5=MIN, 6=PRODUCT, 7=STDEV, 8=STDEVP, 9=SUM, 10=VAR, 11=VARP)
  • 第2引数:対象のセル範囲
フィルタをかけていない場合、以下と同様の意味です。

SUM(A1:A50)

フィルタをかけると動的に値が変化するのでいちいちSUMを入力する手間がはぶけます。
今回はこんな感じで。次回は別の関数か、ピボットテーブルを紹介する予定。

↓Excelを普通に使いこなしている人に最適。
普通じゃわからない。Excelでの様々なソリューションがのっています。

アクセスアップのため、AddClipsとPingooに登録してみました

   ブックマークに追加する
せっかくブログをつくっても、誰にも見られてないと更新するモチベーションがあがりません。ということでアクセスアップのため、AddClips(ソーシャルブックマークボタン統合サービス)Ping一括配信サービス Pingoo!に登録しました


AddClips

071214005814.jpg











AddClipsは様々なソーシャルブックマークに追加するボタンをつけてくれるサービス。特に会員登録しなくても利用できます。会員登録するとマイページで各ソーシャルブックマークごとにどれだけ登録されているかを確認することができます。閲覧者がソーシャルブックマークに登録してくれることで被リンクを増やしSEO効果があがるわけです。


Pingoo!

071214012246.jpg













Pingooは、Ping送信を一括でおこなってくれるサービスです。これ便利ですよね。ブログサイトよってはping送信サイト数が限られていたりするし、そうでなくても新たにいろいろping送信先を追加、変更するのは面倒なので一括で管理したいというわけです。送信のOK/NGのステータスも確認することができます。Bユーザは有料ですが月々たいした金額ではないのでやる価値は十分あります。Ping送信代行サービス。自分でもできるが手間がかかるものを代行としてサービスするという考え方はありですね。こちらも被リンクが増えるためSEOに効果があります。またリンクからアクセス向上も望めます。はたしてこれでアクセス数がどれだけ増えるか。検証結果はのちほど報告します。

テクノラティプロフィール

Amazonでシステム内部エラー発生

   ブックマークに追加する
Amazonで商品をみていたらシステムエラー発生!あまりに珍しかったのでキャプチャとっちゃいました。安定稼動しているからこそたまにこういうことがあると珍しく思えますね。

071211130013.jpg











新たに新機能の開発をしているのでしょうか。

Googleの検索結果ページがちょっと変わっている

   ブックマークに追加する
朝検索したら、Googleの検索結果ページのレイアウトが変わっているので驚きました。使いやすいですね。画面上部のナビゲーションが追加されています。
 

071211105743.jpg











画面の上部に、ナビゲーションバーが追加されています。Gmail、Map等は良く使うので検索結果から移動できるのはありがたい。Googleリーダーの上部にもでてますね。全てのサービスで使えるのかな。良く使うサービスばかりなので、かなりシナジー効果がでるのではないでしょうか。

英語学習SNS iKow!

   ブックマークに追加する
結構騒がれている英語学習のSNS、「iKnow!」。
1週間前くらいに登録だけしていたのですが、使ってみると「これが無料なの?」と驚かされます。

071210003247.jpg












まだ、ちょっと使っただけですが、学習向けのアプリケーションがしかっりしており、また、SNSであるため、1人でやるより続けなきゃという気持ちになる。一緒に勉強するという目的があるため、SNSは、目的がはっきりしていないとはやらないと言うが学習はかなり相性がいいように思いました。また、ゲーム間隔で楽しく学習できるところがDS系ゲームにも共通するところでますますはやりそうですね。

セレゴ・ジャパン株式会社
さんが運営しているみたいで、「The best things in life are free. (世の中で最も価値あるものは無償だ)」ということで基本サービスは、これからもずっと無料だそうです。
活動資金は将来的に広告、プレミアサービスを検討しているようです。

こういうサービスが無料なのは本当に感謝です。私もあまり英語が得意ではないので是非勉強したいと思います。

来年の手帳をFP(フランクリン・プランナー)で買いました

   ブックマークに追加する
2年くらい前に購入した、楽天でフランクリン・プランナーの手帳を買いました。
でも、最近はめっきり使っていないです。来年分は買おうかどうか悩んでいたのですが、結局買っちゃいました。
しかも、別のセット一式買っちゃいました。

↓今回、買ったクラシックタイプのスターターキット

フランクリン・プランナー
デイリー・スターター・キットクラシックサイズ

フランクリンプランナーは、バインダーとリフィル(替えの用紙)があり、基本はリフィルを交換すればよいというわけです。これまで使った経験上の長所・短所を纏めました。

フランクリンプランナーの良い点
  • 目標管理ができる
  • 月別、日別でスケジュールを管理できる
  • メモが纏めやすい(決められたフォーマットがあるため)
使ってない理由
  • 重くて持ち運びずらい
  • 日毎にメモできるようになっているため、TODO管理として使用していると、過去のリストが見えずらい
  • 書き込める欄が少ないため、別のメモ帳が必要となってしまう

メモ帳を別で必要としているのが、そもそも無駄なため、クラシックという今使っているより大きいA5サイズを購入しました。(これまではコンパクトというサイズです)
# より重くなっていまうのですが・・・
TODOリストはWebとかで管理するとして、スケジュール管理と打ち合わせのメモは手帳につけたいので購入することを決意しました。
これで駄目なら再来年は買うのをやめよう

Amazonのトップページにポイント表示?

   ブックマークに追加する
ちょっと気づいたことなのですが、いつからなのかAmazonのトップページにポイントが表示されています。ずいぶん前に見て、友達に話したらなくなっていたのでテスト画面なのかと思っていました。httpsとhttpでアクセスすると違うみたいですね。

  • httpでアクセス

071208015846.jpgのサムネール画像





  • httpsでアクセス

Ci071208015831.jpgのサムネール画像




その後、普通にhttpでアクセスしてもポイントが表示されることもありました。
サーバによってプログラムに差があるんですかね。
まぁAmazonもいろいろ検証しているのかもしれませんね。

Amazonアソシエイツに登録しました。

   ブックマークに追加する
Amazonアフィリエイト・プログラム(アフィリエイト)にアカウント登録しました。
かなり昔に1回登録していたのですが、やり方忘れたのでやり直しました。

本当に簡単にできるんですね。

このページではAmazonおまかせリンク(R) ベータ版というのを使っています。
GoogleのAdsenseのように、サイトの内容で自動的に選択したカテゴリの商品が表示されるようです。

はじめは全然違う商品が表示されていましたが、今は大分コンテンツに合った本が表示されているように思えます。


Perlでクロールする(LWP::UserAgent)

   ブックマークに追加する
しばらく、Rubyをやっていたので忘れないようにPerlでクロールスクリプトを書いてみます。
PerlWebアプリ開発はやったことがないですが、、、仕事でパッチワーク的なツールをつくるのによく使っています。

環境はWindows&ActivePerl()で実施しました。

指定したURLにアクセスし、検索結果から価格等の情報を抜き取る
input.txtに検索ワードを読み込み、LWP::UserAgent->getで検索結果からコンテンツを抜き出し、欲しい情報をCSVファイルに保存する

    
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use URI;
use Encode;
use encoding 'shiftjis';
binmode(STDERR, ':raw :encoding(shiftjis)');
use Text::CSV_XS;

####################
###  初期設定    ###
####################
my $inputfile = "input.txt";
my ($day,$month,$year) = (localtime)[3..5];
my $outputfile = 1900 + $year . $month+1 . $day . ".csv";
my $baseUrl = 'http://target_domain/';
my @cvs_header = qw(no name price url);
my $user_agent = ’user_agent';

sub input_data{
    open(IN, $inputfile) || die "Can't open $inputfile :$!";
    my @data = ;
    my $num = @data;
    print "取得データ件数:$num\n";
    close(IN) || die "Can't close $inputfile :$!";
    return \@data;
}

sub url_encode($) {
    my $str = shift;
    $str =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;
    $str =~ tr/ /+/;
    return $str;
}

sub http_connect {
    my $data = shift;
    my @output;
    push @output, \@cvs_header;
    my @headers = ('User-Agent' => $user_agent);
    my $url = URI->new($baseUrl);
    my $browse = LWP::UserAgent->new;
    foreach (@$data) {
        chomp;
        $url->query_form(
            sitem => $_
            );

        my $response = $browse->get($url, @headers);
        my $content=decode('euc-jp',$response->content);
        print "#";

        my ($rec)   = $content =~ m#\n(.*?)\n#mis;
        my ($link, $name)  = $rec =~ m#([^<]*?)#;
        my ($price) = $rec =~ m#(.+?円)#mis;
        push @output, [($_,$name,$price,$link)];
        sleep 3;
    }
    return \@output;
}

sub output_CSV {
    my $output = shift;
    my $csv = Text::CSV_XS->new({'binary' => 1});

    open(OUT, ">:encoding(shiftjis)", "$outputfile") || die "Can't open outputfile!:$!";
    foreach(@$output){
        $csv->combine(@$_);
        print OUT decode('utf8', $csv->string);
        print OUT "\n";
    }
    close(OUT) || die "Can't close outputfile!:$!";
}

my $data = input_data;
my $output = http_connect($data);
output_CSV($output);

まぁ、こんな感じでしょうか?
とりあえず、Rubyでも同様のプログラム作ってみたいな。

※Rubyでもクローラー作成しました。詳細はこちら




RubyでHTTPヘルスチェックプログラムをつくる(mechanizeとnet/smtpを使用する)

   ブックマークに追加する
RubyでHTTPアクセスが正常にできるかどうかを確認するツールを作成しました。
対象のURLにアクセスし、titleの文字列で正常にページアクセスできるかどうか確認しています。
エラー時は指定したメールアドレスにメールをとばすようになっています。

以下にソースコードを記載します。
※下線部は適宜環境にあわせてください

Windows環境でおこないました。
デバッグモードで実行するといくつか警告がでてますね。なんでだろ?
とりあえず動作はします。

【事前準備】
gemsmechanizeをインストールする

    > gem install mechanize


【ソースコード】

#!/usr/bin/ruby
require 'mechanize'
require 'net/smtp'
require 'kconv'

url = "http://localhost/"
wait_time = 15
@from_address = "from@mail_domain"
@send_address = "send@mail_domain"
agent = WWW::Mechanize.new

def send_alert( msg )
  body = [ "Subject: HTTP Access Error\n", "\n", msg ]
  Net::SMTP.start('mail_server') do |smtp|
    smtp.sendmail( body, @from_address, @send_address )
  end
  exit
end

begin
  while 1
    page = agent.get(url)
    s = page.title.tosjis
    if s =~ /match_word/
      puts "#{url}: #{s}\n" if $DEBUG
    else
      puts "#{url}: #{s}=#{match_str.tosjis}\n" if $DEBUG
      send_alert("#{url}: #{s}\n")
    end
    sleep wait_time
  end
rescue => ex
  puts "#{url}: #{ex.message}\n" if $DEBUG
  send_alert("#{url}:#{ex.message}\n")
end

【参考にしたサイトです】


Rubyで1行メソッド

   ブックマークに追加する
Railsを使えば、あまりRubyの知識がなくてもWebアプリが作れます。
それはそれで、すごいことですが、やっぱりRubyも覚えてたい!という気持ちもあります。

というわけで、Rubyのメソッドについてちょっと試しました。

=begin
 「Hello,Ruby」取得メソッド
1) 普通にメソッドを作成し呼び出す
=end
def hello_world()
  hello = "Hello, Ruby."
  return hello
end

puts hello_world()  #=> Hello, Ruby.

=begin
2) 省略形

    * Rubyではreturnを省略すると最後の式の値が返る

    * メソッドの括弧は省略できる

    * 改行が処理の区切りだが、「;」で区切ることも可能

 ※上記をふまえ以下のように変更
=end
def hello_world; hello="Hello, Ruby.";end
puts hello_world    #=> Hello, Ruby.

変数の値を返すだけであれば1行メソッドの方が良いかもしれません。

MySQLでtimestamp型を使うとdefault nullができない?

   ブックマークに追加する
MySQLでtimestamp型を使ってテーブルを作成したのですが、勝手に時間が入力されて困っていました。以下テーブル定義例(ブログテーブルをイメージ)

    create table posts (
      id int unsigned auto_increment,
      user_id int unsigned not null,
      subject varchar(128) not null,
      content text,
      status enum('close', 'open') default 'close',
      created_at timestamp,
      updated_at timestamp,
      plan_at timestamp,
      primary key  (id),
      index user_id_idx (user_id),
      index status_idx (status)
    );

plan_atのところですが、ここは公開予定日にしたいな、と考えていました。default nullにして指定したときだけ時間を設定しようとしたのですが、調べてみるとどうやら無理みたい。結局はtimestamp型をdatetime型に変更し、default null設定したら思ったような動作になりました。これって基本なの?知らなかった。。。

このアーカイブについて

このページには、2007年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年11月です。

次のアーカイブは2008年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ
フィードメーター - ウェブ-HACKS 「とりあえずやってみよう!」ブログ   
track feed
  • SEO対策 
  • _ 
  • _ 
  •  
  •  

このブログはクリエイティブ・コモンズでライセンスされています。