March 2009 Archives

今回はドクターペッパー Dietを飲んでみました。
このドクターペッパー、社長のポケットマネーで会社にまとめ買いされ、飲み放題なんです。
さらに、このドクターペッパー Dietは、驚きのカロリーゼロです。
これなら、ダイエット中の私でも安心して飲むことができます。

実を言うと、私は1年以上このドクターペッパーを飲み続けています。
ですので、残念ながら新鮮味のあるレポートをできないのです...。

ちなみに味は、日本でよく売っているドクターペッパーと同じく、ちょっと薬のようなにおいがしますが、逆にこれがおいしさを刺激している感じです。
さらに、これは日本のドクターペッパーと違いドクターペッパー "Diet"です。
味は日本のものより甘さが強い気がします。
あとは薬のようなにおいも少し強めな気がします。
私は大好きなのですが、苦手な人は本当に苦手なようです。
とにかく、カロリーゼロなのがとても大きいです!(個人的に)

実は今回、送られてきたドクターペッパーで大きな発見をしました。
だいたい1回の発注で72本ほど頼むのですが、その中でどう考えても軽い缶が...
ずっと中身を空けずに保存しています。

「気のせいじゃないのか?」という方のために、はかりで計ってみました。
明らかに重さが違いました。
写真左が通常の缶、右が今回気になった缶です。

とりあえず、空いている空間はどうなっているのだろうと思いながら、この缶は引き続き中身を空けずに保存しておこうと思います。
もし、開けるときがきたらまたここで報告したいと思います。

fjdsaklfjsdalfjsalkfj.jpg

(本調査は、HDEが非公式に、毎月20日頃に日経225採用銘柄のドメインに対し、SPFレコードが設定されているかどうかを独自調査し、主要企業の対応動向を毎月レポートするものです)
 2009年3月19日時点での日経225採用銘柄におけるSPFレコード登録の状況は、全体で40件となりました。2月時点の40件から変化は無く、設定率は17.8%となっています。

20090319_225spf.png

<主なトピックス>
・シチズンが-allから~allへポリシー変更
・松井証券がtypoを修正?
・中部電力がIP指定範囲を拡大
・セコムがIP指定範囲を拡大

2009年2月の調査
2009年4月の調査

今回は少し趣向を変えて、炭酸水を飲んでみました。
本来は、お酒を割るためのものらしいですが、勤務中にお酒を飲むわけにはいかないので、そのまま飲んでみることにしました。
今回はsakuraiさんに飲んでいただきました。

価格は100円。
まず、目を引くのがこのパッケージ。
"男ならガツンと強めの炭酸だろ!"というなんとも熱いお言葉。
もう、これはめちゃくちゃ強い炭酸な気がしてきました。

原材料は"レモン、レモン香料、二酸化炭素"と非常にシンプル。
パッケージにも"糖類不使用のため素材の味を引き立てます"という記述が。
キャラクターはちょいワルオヤジという感じではなく、もうちょっと若そうな印象を受けました。

さて、早速飲んでみました。
瓶をあけると、それなりに炭酸の勢いがありました。
これはなかなか炭酸が強そうだ、と一口。

感想は、「普通の炭酸水にレモン汁を混ぜたような味」だそうです。
まさに原材料名のままということみたいです。
思ったほど炭酸も強くなく、普通だそうです。

しかし、このパッケージ、目をひきますね。
中身もびっくりするくらい強ければなおよかったのですが...

photo.jpgのサムネール画像

HDEラボの桜井です。
今日は東京暖かいです。仕事してる場合ではありませんw

前回のエントリーにツッコミいただいたので、その方法を試したところ解決しました。
pythonのprint関数の仕様がよくわからなかったので。

念のため、解決方法。ダウンロード時に対処します。
    import sys

    print "Content-Type: application/zip;\r\nContent-Disposition: attachment; filename=test.zip\r\n\r\n",
    f = open("/tmp/test.zip")
    sys.stdout.write(f.read())
    f.close()

ふーん、なるほど。
HDEラボの桜井です。
3月寒いっす。

なんとなく、困ったことがあります。
pythonでzipファイルをWebブラウザ経由でダウンロードさせるプログラムを作り、
さらにそのダウンロードじたzipファイルを再びアップロードするプログラムを作ったところ、
なんと、アップロード時に正しいzipファイルと認識されなかったのである。

問題のプログラムを見てみよう。
test.cgi
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import zipfile, cgi, os, shutil
import web.template

form = cgi.FieldStorage()
command = form.getfirst('command', '')

message = ""
error = 0

if command == "backup":

    zip = zipfile.ZipFile("/tmp/test.zip", 'w', zipfile.ZIP_DEFLATED)
    zip.write("/tmp/file1", "file1")
    zip.close()

    print "Content-Type: application/zip;\r\nContent-Disposition: attachment; filename=test.zip\r\n\r\n",
    f = open("/tmp/test.zip")
    print f.read(),
    f.close()

    os.unlink("/tmp/test.zip")

else:

    if command == "restore":

        if form.has_key('zip'):
            item = form['zip']
            if item.file:
                try:
                    tmpFileObj = file("/tmp/test2.zip", 'wb')
                    shutil.copyfileobj(item.file, tmpFileObj)
                    tmpFileObj.close()
                    os.chmod("/tmp/test2.zip", 0777)
                except Exception, ex:
                    error = 1
                    message = "ファイルのアップロードに失敗しました"
            else:
                error = 1
                message = "ファイルが選択されていません"
        else:
            error = 1
            message = "ファイルが選択されていません"

        if error == 0 and zipfile.is_zipfile("/tmp/test2.zip"):
            zip = zipfile.ZipFile("/tmp/test2.zip")
            for name in zip.namelist():
                f = open("/tmp/" + name, 'w')
                f.write(zip.read(name))
                f.close()
            zip.close()
                os.unlink(tmpPath + file)

            message = "復元しました"

        else:
            error = 1
            message = "復元できませんでした"

        os.unlink("/tmp/test2.zip")

    values = { "command" : command,
               "message" : message,
               "error"   : error
             }

    render = web.template.render("./template")
    print 'Content-Type: text/html; charset=utf-8'
    print ''
    print render.test(values)


それから、テンプレートファイル(テンプレートの詳細はこちら
./template/test.html
$def with (values)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>zipダウンロードとアップロード</title>
</head>
<body>

<h2>zipダウンロード</h2>

$if values["command"] == "backup":
  $if values["error"] == 1:
    <h3><font color="red">$values["message"]</font></h3>
  $else:
    <h3>$values["message"]</h3>

<form action="backup.cgi" method="POST">
<input type="hidden" name="command" value="backup">
<input type="submit" value="設定ファイルをバックアップする">
</form>

<hr>

<h2>zipアップロード</h2>

$if values["command"] == "restore":
  $if values["error"] == 1:
    <h3><font color="red">$values["message"]</font></h3>
  $else:
    <h3>$values["message"]</h3>

<form action="backup.cgi" method="POST" ENCTYPE="multipart/form-data">
<input type="hidden" name="command" value="restore">
バックアップファイル(ZIP形式):<input type="file" name="zip"><br/>
<input type="submit" value="設定ファイルを復元する">
</form>

</body></html>



今日はガラナ アンタルチカを飲んでみました。
珍しく、純国産な飲み物をセレクトしてみました。

ガラナは北海道では結構メジャーな飲み物ですが、関東地方では見かける機会はそれほど多くないです。
私は、千葉出身なのでガラナを手に入れようと思うとちょっとだけ手間がかかった覚えがあります。
昔は北海道旅行に行くたびに何本か持ち帰ってきたり、ディスカウントストアでまとめ買いして送ってもらったりしていました。
ちなみにこのガラナ アンタルチカは渋谷にあるオフィスの近くに普通に売ってました。

価格は100円。
自動販売機で売っているものより少し安いくらいの価格です。

ガラナと言っても様々な会社から出ており、また味もちょっと違います。
さて、早速飲んでみました。
ほどよい炭酸にほどよい甘さがあり、なかなかおいしい感じです。

ちなみに"サッカーブラジル代表公式スポンサー"の文字が缶に印刷されていました。
調べてみたところガラナはブラジルではコーラに並んでとてもポピュラーな飲み物らしいです。

飲み出すと結構止まらなくなります。
自宅で買っていた頃は1日にペットボトル2本飲んだりしていました。
関東でもたまにスーパーなどで売っていたりするので、見かけた方はぜひ一度味見してみてください。

HI3A0010.JPG

HDEラボの桜井です。
3月もちょっと雪が降りそうですが、全国的には暖冬で少し心配です。

飲料水ネタが連発したので、Twistedネタでも。
Twistedは、いわゆる「イベント駆動型」のネットワークフレームワークです。
イベント駆動型ということは、非同期プログラミングということで、メソッドを実行したら登録したコールバック関数を実行する仕組みなのです。
(例、ajaxのxmlHttpRequest)
このコールバックの仕組みを提供するのが、Deferred(twisted.interneet.deferred)です。
以前書いたデータベース呼び出しのサンプルに、エラー処理を追加するためにDeferredオブジェクトを使ってみましょう。

About this Archive

This page is an archive of entries from March 2009 listed from newest to oldest.

February 2009 is the previous archive.

April 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.