2008年1月アーカイブ

これは欲しい。LOOX Rシリーズ!

   ブックマークに追加する
ノートPCを購入してから、そろそろ3年がたとうとしています。今使っているのがLOOX T75LNで以下スペックです。

  • 10.6型ワイドスクリーン
  • PentiumM 1.10 GHz
  • Memory 1GB
  • HDD 80GB
  • WinXP Home
丁度、購入してから3年くらい経過するので新しいのを購入しようか検討しています。
普段、ノートPCを持ち運ぶことがおおいのでA5型というのはすごく便利で、今後もこのサイズが良いなぁと思っていました。

はじめ考えていたのは以下2つのPCです。スペックの比較です。

Panasonic Let's note Rシリーズ
  • Core2Duo 1.20GHz
  • Memory 2GB(最大)
  • HDD 80GB
  • XGA(1024×768ドット) 10.4型T
  • ドライブなし
  • 約940 g
  • 約7.5時間
Sony Vaio TypeT
  • Core2Duo 1.33GHz
  • Memory 2GB(最大)
  • HDD 160GB
ただ、Let's noteは画面解像度が低いのが問題。ちょっと違和感があるかなぁ?と、Vaioははじめこれが良いと思っていたのですが、LOOXを見てみたらLOOXの方が良かったです。以下スペック。

Fujitsu LOOX Rシリーズ
  • Core2Duo 1.20GHz
  • Memory 4GB(最大)
  • HDD 120GB
  • 12.1型ワイド
  • 約1.18kg[内蔵バッテリパック装着時]
4GBまで認識はしませんが、最大メモリ容量が大きいことと本体サイズがほとんど変わらずに画面が12.1ワイドとなったこと、(大きさが変わらないのであれば画面は大きい方がうれしい)
詳細はメーカーページを参照してください。
FMV-BIBLO LOOX Rシリーズ




うーん、今キャンペーンやっているから買っちゃおうかなぁ。。。ただVistaがもうちょっと安定してからにしようかなぁと悩んでいるところです。

Excelで税抜き価格を計算する(ROUND関数)

   ブックマークに追加する
税込み価格のみ表示されているExcelデータで税抜き価格にしてとお願いされました。次のように関数を使用したらきれいにできましたのでここでメモしときます。

やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)
西沢 夢路
ソフトバンククリエイティブ (2007/07/25)
売り上げランキング: 1235
おすすめ度の平均: 5.0
5 無駄がない!
5 苦にならず覚える事の出来る良書


例)税込み価格 105円 の税抜き価格を計算する

ExcelのROUND関数を使用する。以下は105という数値がB3セルあった場合の例です。

=ROUND(B3/105*100,0)

105で割って、100をかけると 100円 と出力されます。たまに使うんですよね。税抜きの計算
また、逆に税込み価格を計算する場合は、四捨五入の設定にあわせ、ROUNDUP関数ROUNDDOWN関数を使用します。

「レイトン教授と不思議な町」を買いました。

   ブックマークに追加する
レイトン教授と不思議な町」を買いました。やってみると面白いですね。
昔よくあったクイズ?ちょっと頭を使うなぞなぞのようなものが入っていて、それを解いてストーリーが進むといった感じです。
あまり、脳トレなど続かなかったのですがこれは大丈夫そう。ストーリーがあるからかな。


レイトン教授と不思議な町(特典無し)
レベルファイブ (2007/02/15)
売り上げランキング: 77
おすすめ度の平均: 4.0
3 ふつう。
3 謎解きが多すぎて・・
4 好感の持てる良質なゲームソフト


ちょっと、新作「レイトン教授と悪魔の箱」を買えばよかったかなぁ?とちょっと後悔しています。以下が新作、かなりグレードアップされていて面白いみたいですね。

レイトン教授と悪魔の箱(特典無し)
レベルファイブ (2007/11/29)
売り上げランキング: 98
おすすめ度の平均: 4.5
5 いろいろカバーされてる!!
4 私も同意見ですっ…!
4 「進化」とは呼べない

Subversionの設定方法(ソース、ドキュメントをバージョン管理する)

   ブックマークに追加する
前回のyumコマンドの設定方法では途中までしか書けませんでしたが、いよいよSubversionを設定します。CVSは設定したことがあるので同じように上手くいくと良いのですが、どうでしょうか?


Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
Mike Mason でびあんぐる
オーム社 (2007/04/21)
売り上げランキング: 8436
おすすめ度の平均: 3.5
2 Subversionを使う上で"は"よい本だと思う
5 日本語のSubversion解説本の最高作


  • まずは前回の記事の通り、Subversionをインストール(rootで実施)

# yum install subversion.i386

  • リポジトリの作成

$ svnadmin create /var/svn --fs-type fsfs

  • モジュールの作成

$ mkdir modules
$ ls
modules
$ cd modules
$ mkdir branches
$ mkdir tags
$ mkdir trunk
$ ls
branches tags trunk

  • モジュールの登録する

$ svn import modules file:///var/svn/modules -m "first import."
Adding         modules/trunk
Adding         modules/branches
Adding         modules/tags

Committed revision 1.

  • チェックアウトする

$ svn checkout file:///var/svn/modules/trunk modules
Checked out revision 1.
$ ls
modules

  • ローカルファイルの更新処理

$ svn update
At revision 1.

  • ファイル、ディレクトリの追加
一度にディレクトリも追加できるんですね。これは便利。

$ svn add src/
A         src
A         src/lang
A         src/lang/ruby
A         src/lang/ruby/sample.rb

  • コミットする

$ svn commit src/  -m "commit ruby programs."
Adding         src
Adding         src/lang
Adding         src/lang/ruby
Adding         src/lang/ruby/sample.rb
Transmitting file data .....
Committed revision 2.

  • ファイル比較するには?
まずはコマンドの確認をする

$ svn help
usage: svn  [options] [args]
Subversion command-line client, version 1.4.3.
Type 'svn help ' for help on a specific subcommand.
Type 'svn --version' to see the program version and RA modules
  or 'svn --version --quiet' to see just the version number.

Most subcommands take file and/or directory arguments, recursing
on the directories.  If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.

Available subcommands:
   add
   blame (praise, annotate, ann)
   cat
   checkout (co)
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mkdir
   move (mv, rename, ren)
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)

Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/

$ svn diff  sample.rb
Index: sample.rb
===================================================================
--- sample.rb     (revision 2)
+++ sample.rb     (working copy)
@@ -11,5 +11,5 @@
 end


とりあえず今日はここまで、何かCVSと全く変わらないような気がしますが、おそらくもっと使いこなせるようになるといろいろ便利な機能が見つかると思います。

設定自体はすごく簡単にできました。

yumコマンドの使用方法(Subversionのインストール)

   ブックマークに追加する
久しぶりのブログ更新です。風邪がひどくて休んでいました。

作成したスクリプトをきちんとバージョン管理したいと思いSubversionをインストールしようかなと思いました。しかし、その前にyumコマンドを忘れていたのでここに記載しておきます。

使ったオプションだけになりますので、詳細は参考サイトを確認してください。

  • インストール済みパッケージ一覧を表示

yum list installed

# yum list installed | grep ruby
ruby.i386                                1.8.5.114-1.fc6        installed
ruby-devel.i386                          1.8.5.114-1.fc6        installed
ruby-irb.i386                            1.8.5.114-1.fc6        installed
ruby-libs.i386                           1.8.5.114-1.fc6        installed

  • 利用可能なパッケージの一覧表示
      yum list subversion

# yum list subversion
Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
primary.xml.gz            100% |=========================| 475 kB    00:00
updates   : ################################################## 1285/1285
Available Packages
subversion.i386                          1.4.3-2.fc6            updates


  • アップデート可能なパッケージの一覧を表示
      yum check-update

# yum check-update
Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files

authconfig.i386                          5.3.18-0.1.fc6         updates
autofs.i386                              1:5.0.1-0.rc3.33       updates
bind.i386                                31:9.3.4-8.P1.fc6      updates
bind-libs.i386                           31:9.3.4-8.P1.fc6      updates
bind-utils.i386                          31:9.3.4-8.P1.fc6      updates

  • 指定したパッケージをインストール
     yum install subversion.i386

# yum install subversion.i386
Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Setting up Install Process
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for subversion to pack into transaction set.
subversion-1.4.3-2.fc6.i3 100% |=========================|  42 kB    00:00
---> Package subversion.i386 0:1.4.3-2.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-URI to pack into transaction set.
perl-URI-1.35-3.noarch.rp 100% |=========================|  12 kB    00:00
---> Package perl-URI.noarch 0:1.35-3 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 subversion              i386       1.4.3-2.fc6      updates           2.3 M
Installing for dependencies:
 perl-URI                noarch     1.35-3           core              116 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): perl-URI-1.35-3.no 100% |=========================| 116 kB    00:00
(2/2): subversion-1.4.3-2 100% |=========================| 2.3 MB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: perl-URI                     ######################### [1/2]
  Installing: subversion                   ######################### [2/2]

Installed: subversion.i386 0:1.4.3-2.fc6
Dependency Installed: perl-URI.noarch 0:1.35-3
Complete!


こんなところですね。
次回はSubversionの設定をしたいと思います。

【参考サイト】
@IT:yumコマンドでよく利用するコマンド

サラトガIT日記|yumコマンド一覧


RubyでHTMLファイル作成

   ブックマークに追加する
Rubyで静的HTMLファイル吐き出しのプログラムを作成したいなぁ思い、PerlのHTML::TemplateのようなものがRubyにもないか探してみました。

以下サイトにRuby版のHTML::Templateがあり使用したいと思ったのですが、少し使い勝手がわるいようです。
そのためerbにより作成することにしました。以下がテスト用でつくったサンプルコードです。

■メインプログラム

#!/usr/bin/ruby -Ks
require 'erb'
include ERB::Util

$KCODE = 's'

filename = ARGV[0]
erb = ERB.new(File.read(filename), nil, "-")

# hash create.
h = Hash.new
title = "title_key"
title_value = "title_val"
h.store(title, title_value)

detail = "detail_key"
detail_value = "detail_val"
h.store(detail, detail_value)

# list create.
list = Array.new
list.push(h)

print erb.result(binding())

■テンプレートファイル

<dl>
<%- i = 0 -%>
<%- for item in list -%>
<dt><%=h item['title_key'] %></dt>
<dd><%=h item['detail_key'] %></dd> 
<%- i += 1 -%>
<%- end -%>
</dl>

コマンドプロンプトより以下を実行してくれればOK
>ruby create_html.rb sample.rhtml
title_val
detail_val
かなり使いやすいですね。
もうちょっとデータの持ち方だけ考えればもっと使いやすくなりそうです。
今度は外部ファイルから静的HTML吐き出しをするプログラムを書いてみます。

追記
外部ファイルを読み込んで静的HTMLファイル吐き出しするプログラムを書きました

【参考サイト】

eコマース運営者におすすめGoogle Analyticsで収益管理する方法

   ブックマークに追加する
Google Analyticsでeコマース設定をすると以下のような分析が可能になります。もちろんGoogleなので無料で利用できます。

  1. どの商品が一番売れているか(個数も金額も分析可能)?
  2. 売上が一番ある商品はどれか?
  3. 売上の高いユーザはどこからサイトに来ているか?
  4. どの商品カテゴリが売れているか?
  5. どこに住んでいるユーザが買っているか?

手順は以下の通りです。

  • Analytics 設定 >  プロファイル設定
  • メインのウェブ サイト プロファイル情報の「編集」をクリック
  • e コマース ウェブ サイトの「e コマース サイトです」を選択する
  • 通貨:を日本円に設定
  • 購入完了(サンクス)ページに以下タグを設定する
  ※bodyの閉じタグ直前に設定したら、正常に動作しています。

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

</script>

<script type="text/javascript">
  var pageTracker = _gat._getTracker("UA-XXXXX-1");
  pageTracker._initData();
  pageTracker._trackPageview();

  pageTracker._addTrans(
    "1234",                                     // Order ID
    "Mountain View",                            // Affiliation
    "11.99",                                    // Total
    "1.29",                                     // Tax
    "5",                                        // Shipping
    "San Jose",                                 // City
    "California",                               // State
    "USA"                                       // Country
  );

  pageTracker._addItem(
    "1234",                                     // Order ID
    "DD44",                                     // SKU
    "T-Shirt",                                  // Product Name 
    "Green Medium",                             // Category
    "11.99",                                    // Price
    "1"                                         // Quantity
  );

  pageTracker._trackTrans();
</script>


pageTracker._addItemは、カート内の商品数分ループして設定しています。
是非一度試してみてはどうでしょうか?

■参考
e コマース トランザクションをトラッキングするにはどうすればよいですか。
http://www.google.com/support/googleanalytics/bin/answer.py?answer=55528&topic=11002

GoogleAnalyticsの仕組みは以下のサイトがわかりやすいです。
404 Blog Not Found:Google AnalyticsのAnalysis、そして滞在時間のウソ

Google Analytics入門 簡単・無料ソフトで始めるWebマーケティング
かわち れい子
インプレスR&D (2006/07/01)
売り上げランキング: 23595
おすすめ度の平均: 4.5
5 素人でも良くわかる
4 まさに入門書です
4 これがきっかけとなる人も多いのでは


Windowsでフォルダ・ファイル構成を表示させる(コマンドプロンプト)

   ブックマークに追加する
今日はまたまた、覚書です。
Windowsのフォルダ構成を表示する方法です。フリーソフトもありますが、コマンドで簡単に表示できます。ちなみにフリーソフトは、Win Treeを使用しています。ただ、そこまでしたくたいという時は、以下を参考にしてください。

(Ctrl+R を押し cmdと入力すればコマンドプロンプトが起動します)

1) フォルダの階層構造を表示する

> tree
   ※ファイルに吐き出したい場合は以下で

> tree > tree.txt


2) ファイルの階層構造を表示する

> dir /S /B
   ※ファイルに吐き出したい場合は以下で

> dir /S /B > files.txt

結構覚えておくと便利です。

リダイレクトについては以下サイトで詳細に記載してありました。
フォルダの階層構造をツリー状に?TREEコマンド:コマンドプロンプトの使い方


Rubyでメール送信(HTMLメール、SMTP認証)

   ブックマークに追加する
以前にRubyでメール送信するプログラムを書きましたが(「RubyでHTTPヘルスチェックプログラムをつくる(mechanizeとnet/smtpを使用する)」)、SMTP認証が必要な場合に送信できないということと、HTMLメールを送信できないということがわかりました。メール送信は良く使用するのでclassで作っておくかとも思い作り直しました。

TMailやActionMailer等もあるのですが、そこまできっちり作らなくてもいい場合用です。

【要件】
  • SMTP認証でメール送信できる
  • HTMLメールが送信できる
  • classとして独立する
作ったソースはこちら。ライセンスはクリエイティブ・コモンズとします。


require 'kconv'
require 'net/smtp'

class SimpleMail
  def initialize(from_address, smtp_server)
    @from_address = from_address
    @smtp_server = smtp_server
    @smtp_port = 25
    @smtp_domain = smtp_server
  end

  def send(to_address, subject, message)
    contents = mail_contents(subject) + "\n"
    contents << message
    Net::SMTP.start(@smtp_server) {|smtp|
      smtp.sendmail( contents, @from_address, to_address )
    }
  end

  def send_html(to_address, subject, message)
    contents = mail_contents(subject)
    contents << 'Content-Type: text/html; charset="iso-2022-jp"\n\n'
    contents << message.sub(/content="text\/html; charset=UTF-8"/, 'content="text/html; charset=iso-2022-jp"').tojis
    Net::SMTP.start(@smtp_server) {|smtp|
      smtp.sendmail( contents, @from_address, to_address )
    }
  end

  def send_auth(to_address, subject, message, account, password)
    contents = mail_contents(subject) + "\n"
    contents << message
    Net::SMTP.start(@smtp_server, @smtp_port, @smtp_domain, account, password) {|smtp|
      smtp.sendmail( contents, @from_address, to_address )
    }
  end

  private
  def mail_contents(subject)
    contents = "Subject: #{subject.tojis}\n"
  end
end

呼び出しは以下のような感じでOK!
結構簡単につくれました。


    # 例:HTMLメール送信
    SimpleMail.new("from@address","smtp_server").send_html("to@address", subject, message)

Rubyのコマンドラインオプション

   ブックマークに追加する
これも忘れてしまいそうなので覚書Rubyの実行時のコマンドラインオプションです。

Rubyist Magazine出張版 Ruby on Windows
cuzic
毎日コミュニケーションズ (2007/12/19)
売り上げランキング: 8193

  • 文法チェック(-c)
>ruby -c sample.rb
Syntax OK
  • デバッグモード(-d)
>ruby -d sample.rb

--- sample.rg ---
print debug_string if $DEBUG
  • Rubyのバージョンの確認(--version)

>ruby --version
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

Excelで作業を早くする(#2 重複以外の項目数をカウントする方法)

   ブックマークに追加する
Excel Hacks 第2版― プロが教える究極のテクニック140選
David Hawley Raina Hawley 羽山 博 日向 あおい
オライリー・ジャパン (2007/11/22)
売り上げランキング: 61450
おすすめ度の平均: 5.0
5 第1版よりさらにボリュームアップ


重複以外のユニークなセルの値をカウントしたいということはないでしょうか?フィルタで重複を非表示にしても良いのですが、カウントをとりたいだけなのにちょっと面倒ですよね?
そんなときは、以下の方法で簡単にカウント数がとれます。

  • カウントを出力したいセルに以下の通り入力
  =SUM(1/COUNTIF(A2:A10, A2:A10))
  ※下線部は対象範囲

  • 入力後、Ctrl+Shift +Enterをクリック(配列数式により以下のようになります)
  {=SUM(1/COUNTIF(A2:A10,A2:A10))}

すると、きちんとユニークカウント数が表示されます。

Firefoxで必ず使う7つのアドオン

   ブックマークに追加する
久々の投稿ということで、Firefoxのアドオン(プラグイン)をまとめてみました。
ブログの執筆活動を素早くさせる40のFirefoxアドオン:私の目から見たネットと人間 - CNET Japan
Lifehacker Top 10:アドオン要らずのFirefox便利機能トップ10 (1/2) - ITmedia Biz.ID

上記にもあるようにFirefoxはそのままで便利ですが、私の中でこれは必須という7つのプラグインをピックアップしました。どちらかというと開発等で使えるツールなのでAll-in-One Gestures等は入れてないです。よく使うプラグインでランキングを作成しました。

1位 Capture It! ツールバー

  Web画面を切り取ったり、自動スクロールし全ての画面をjpeg保存してくれるツールです。ちょっと画面のキャプチャとっとこうか、という時に良く使用します。
  https://www.craftec.co.jp/captureit/mailadd.html


2位 Firebug
  HTML、CSS、JavaScriptをリアルタイム編集可能。どのCSSが表示に影響を与えているかの確認もできるし、JavaScriptで生成したタグを確認することもできます。
  https://addons.mozilla.org/ja/firefox/addon/1843


3位 ScrapBook
  HTMLページを画像もCSSも含めてローカルに保存することができます。サイト全体をローカル保存することも可能です。
  http://amb.vis.ne.jp/mozilla/scrapbook/?lang=ja


4位 Web Developer
  HTML、CSSの編集可能。CookieやHTMLヘッダの確認もでき、HTML中のid、classの確認もできます。
  http://www.infoaxia.com/tools/webdeveloper/


5位 ColorZilla
  
スポイトでブラウザ画面の色を抽出してくれる。さらに画面のサイズを拡大することも可能。
  http://www.iosart.com/firefox/colorzilla/


6位 SBMカウンタ
  ページに対しての各ソーシャルブックマーク件数を表示するアドオンです。マーケティング等に使えるかもしれないです。
  http://miniturbo.org/product/extension/sbmcounter/


7位 Live HTTP Headers
  ページに対してHTTPへッダーが表示されます。リダイレクト等の確認に使用しています。
  https://addons.mozilla.org/ja/firefox/addon/3829

  
こんな感じでしょうか?もっと使えるアドオンがあれば教えてください。


Firefox Hacks―次世代ブラウザ徹底活用テクニック
Nigel McFarlane dynamis 池田 譲治 山本 和彦
オライリージャパン (2005/08/27)
売り上げランキング: 228136
おすすめ度の平均: 4.0
5 真にFirefoxを知るための本
3 内容はいいのですが...
4 おすすめです。

#3 【読書】「ハッカーと画家 コンピュータ時代の創造者たち」を読んで

   ブックマークに追加する
今年2冊目に読んだ本です。ハッカー(プログラマ)のための本であり、勉強になる点がいろいろありました。特に共感できたことを書きます。


ハッカーと画家 コンピュータ時代の創造者たち
ポール グレアム Paul Graham 川合 史朗
オーム社 (2005/01)
売り上げランキング: 2192
おすすめ度の平均: 4.5
5 痛快です
5 案外、歴史的書物かもしれない
5 エンジニアを組織、管理している立場の人間にぜひ読んでもらいたい。

ベンチャー企業について

  • 「ユーザに気に入られるものをつくる」、「使った価格以上稼ぐ」という点のみ気をつければよい。
  • サービスの価値は、使用しているユーザ数で測定する  
  • 早すぎる最適化はしない
  • 測定=チームの小ささ、梃子=技術 が身につく
  • お金を作るのではなく、富を作り出すことが必要
Webアプリケーションは安価で作れるためベンチャー向けですね。最適化するより早くリリースして顧客に使ってもらいそれから最適化した方が確度が高いというのも納得です。また評価するのにチームを小さくするというのは思いついていなかったので参考になりました。

良いデザインとは(ものづくりについて)

  • 良いデザインは単純
  • 良いデザインは再デザイン
わたしもできる限り、ソフトウェアはシンプルに作成することを心掛けています。良いデザインは、何度も再思考するというところは確かにそうだろうなぁと感じました。

100年後のプログラミング言語

  • 簡単にプログラムできる言語
  • 1時間で作成できる書き捨てできる言語
本当の効率化とは、マインスペックの効率化ではなく、プログラマの時間を短くすることという点はまさにその通り。更にプロジェクトに人を投入するとかえって進捗を遅くさせるというのも何度も経験しています。

その他

  • ユーザを特定のグループに分けてデザインする(更に自分がそのグループの所属していた方が成功しやすい)
  • プロトタイプから詳細化していく
  • 技術は生産性の向上に使う
  • 集団のアウトプットの90%は1%のメンバーが行えるようにする
  • 問題より面白いものを再定義する(高いスタンダードを持つ)
技術は生産性の向上に使用するというのは、その通り、最近はないかも知れませんが以前はアプリケーションが大きく、結果出来上がったシステムのせいで生産性が下がってしまうという本末転倒なサービスが少なくなかった気がします。便利なサービスを小さく早くつくる。そして複数のサービスを組み合わせ大きなサービスを作るというのが現在の私の考えです。

はじめ結構読みづらかったですが途中からさくさく読めました。エンジニアのマネージャー職の方にはお勧めです。

CSS 3つの設定方法(外部ファイル化、headに記述、インライン記述)

   ブックマークに追加する
スタイルシートを設定する際の覚書です。一般的には外部ファイルにした方がSEO的にもロジックとの分離という点でも良いといわれていますが、期間限定ページなどでは特に外部ファイル化はするほどではないという場合もあります。いつも設定方法忘れちゃうので覚書。

1)外部ファイルによるスタイル設定

<link rel="stylesheet" href="styles.css" type="text/css" />

2)head要素内のstyle要素で指定

<head>
  <style type="text/css">
    p  {color: #f60;}
    h2 {color: blue; font-size: 120%;}
  </style>
  ...

3)インラインstyle属性

<p style="font-weight: bold">太字です。</p>


Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイト
益子 貴寛
秀和システム (2005/07)
売り上げランキング: 9505
おすすめ度の平均: 4.5
3 Web標準を「学びたい」人のために
5 2冊目に買う本
5 「web標準」を知る上で必読の書


MySQLでEUCのダンプファイルをWindowsに取り込む

   ブックマークに追加する
Linux環境でダンプしたMySQLのファイルをWindows環境に取り込む方法です。
以下で様々なコマンドとともに解説してありましたが、どうも上手くいかなく試行錯誤しました。
参考サイト:MySQL|あんちょこ

私の場合以下の方法で正常に表示されました。

1) まずはダンプファイルの文字コードを確認する
エディタで開き文字コードを変換する。日本語文字がどの文字コードで読めるか確認する。
(ちなみ私の場合、EUCでした)

2) ダンプファイルをShift-JISで保存
これもエディタで保存。
※いくつか文字化けしたため、一括置換で変更しました。

3) 次にMySQLの文字コードを確認する
以下コマンドより確認、ujis(EUC)になっていたので、my.iniをデフォルトの設定に戻す。

>mysql -u root -p
Enter password: ********

mysql> show variables like 'char%';
| character_set_client     | ujis
| character_set_connection | ujis
| character_set_database   | ujis
| character_set_filesystem | binary
| character_set_results    | ujis
| character_set_server     | ujis
| character_set_system     | utf8

4) Shift-JISにしたダンプファイルをインポートする
コマンドプロンプトより、ダンプファイルの読み込む

>mysql -u root -p [database_name] < dump.txt
Enter password: ********

5) SQLを実行し、実行結果をdumpする


>mysql -u root -p [database_name] > output.txt
Enter password: *****
select * from [table_name];
\q

一応できたはできたのですが、もっといい方法ありそうですね。特に2)がいけてないです。
きちんと調べずに対応してしまいました。もし対処方法をしっていれば是非教えてください。

ちなみにMySQLのバージョンは、5.0.41です。

私はMySQLは↓こちらで勉強してします。内容はすごく深くはないですが、レプリケーションやチューニング等の幅広く実践的な運用手順が網羅されています。

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社 (2006/03/17)
売り上げランキング: 5709
おすすめ度の平均: 4.5
5 実践的な良書、作者の今後にも期待
4 システム管理者向け

サムネイル画像をクリックするとメイン画像が切り替わるJavaScript

   ブックマークに追加する
またまた、依頼によりJavaScriptを作りました。フォトアルバムのようなサイトでサムネイルをクリックしてメイン画像を切り替えるということです。lightboxやAjaxを使ってみても良かったのですが、もっとシンプルに作りたかったのでスクラッチで書きました。

【要件】
  • サムネイル画像をクリックしてメイン画像を切り替える
  • メイン画像と一緒に画像タイトルも切り替える
  • タイトルをクリックすると各画像の個別ページへ遷移する

Googleで「フォトアルバム JavaScript」で検索したら、いろいろな記事があったので参考にさせてもらいました。以下がコードです。


<script language="javascript" type="text/javascript">
<!--
var imgPath = 'images/';
function changeImage(image){
  document.getElementById("mainImage").src=imgPath+image;
}
//-->
</script>

<img id="mainImage" />
<a href="targetURL" id="mainLink">mainImageTitle</a>
<a href="JavaScript:void(0)" onclick="changeImage('main.jpg')"><img src="thumbnail.jpg" alt="title" /></a>


動作させるとFirefoxでは正常に動作するが、IEだと何故かmain画像が切り替わりません。そのため、ちょっとコードを修正しました。aタグを使用せず、imgタグでリンクするように修正。


<script language="javascript" type="text/javascript">
<!--
var imgPath = 'images/';
function changeImage(name, title, url){
  document.getElementById("mainImage").src=imgPath+name;
  document.getElementById("mainTitle").innerHTML=title;
  document.getElementById("mainTitle").href=url;
}
//-->
</script>

<img id="mainImage" />
<a href="targetURL" id="mainLink">mainImageTitle</a>
<img src="thumbnail.jpg" onMousedown="javascript:changeImage('main.jpg','imageTitle','imageURL' )">

これだとIEでも、Firefoxでも正常に動作します。参考にしてください。(マウスカーソルが変化しないためクリックできることがわかりずらいというデメリットもあります。これもどうにかできたような気がしますが・・・)

↓私が良く使うJavaScriptの本です。リファレンス的な本なのでちょっとした調べものには最適ですよ。

JavaScriptビジュアル・リファレンス (Web Designer’s Handbook Series)
シーズ
エムディエヌコーポレーション (2004/11)
売り上げランキング: 96970
おすすめ度の平均: 4.5
5 見易く実用的
4 辞書ですね
5 装丁・デザイン共に美しく実用的な良書。

ファイルの拡張子を一括変更する(JPG→jpg)

   ブックマークに追加する
今回はコマンドプロンプトでファイル拡張子を一括変更する方法です。

一括で画像をアップする必要があったのですが、全て拡張子が「.JPG」でした。アプリケーションのパスは全て「.jpg」を見ていたので一括置換することに。こういうことってよくないですか?フリーのファイル名一括変更ソフトはあるのですが、いちいちインストールするのが面倒ですよね。コマンドプロンプトで一括でできます。

覚書としてメモしておきます。
まずはコマンドプロンプトを開きます。そこで以下のコマンドを実行する。

c:\> ren *.JPG *.jpg

これでOK!同一ディレクトリにあるJPG簡単ですよね。ren(rename)コマンドはファイル名を変更するコマンドです。

#2 【読書】「ウェブ時代をゆく」を読んで

   ブックマークに追加する
私が、Webエンジニアとして転職し、Googleのすごさに気付かされるきっかけになった本が「ウェブ進化論」だったので、今回の「ウェブ時代をゆく」は楽しみにしていました。ウェブ進化論での世界にどのような可能性があるのか?という点が内容となっています。

新刊「ウェブ時代をゆく」11月6日刊行 - My Life Between Silicon Valley and Japan


はじめに「全てのWEBエンジニアはいま「産業革命前夜」のイギリスにいる」を読んだ時は上手いこというなぁと思いました。自分で何かを作り出し、それが世の中の人々に評価してもらえる。さらに、それらがほぼノーコストでできるということは本当にWebエンジニアに良い環境となったと感じています。(私もいつも何かつくりたいいう気持ちになります)

文中に、「好きなことを貫く精神」が大切とあります。しかし貫くにはもちろんリスクもあるので不安を感じるともあります。私もある意味、この業界にいてこの先について少なからず不安を感じています。しかし、今後必須となるWeb技術を身に付けており、まだ整備化されていない世界にいるという先行者のアドバンテージもあります。誰よりも「自由に好きなこと」をやって生活できる可能性を持っていられるポジションにいるのだ思うと、うれしくなります。

自分の能力を切り売りする力というものを、もっと具体化していかなければと思います。これが1番大切かなぁと。自分の勉強力、実行力に磨きをかけると共に、能力を適正な価格で買ってくれるスポンサーを探す努力をしなければいけないと感じました。
ここで個として能力を大切にしないと(時間という資源を割り当てないと)感じました。Googleやコンテンツマッチ技術の向上により望めば欲しい情報が得られますので、情報量は差別化になりません。何の情報に価値を見出し、さらに付加価値を創造できるか?という個人の自由な発想を伸ばしていかないとなぁと感じました。

私もまだWebエンジニアとしては未熟ですが、個人の能力向上のてっとり早い方法として小さな組織(ベンチャーとか)に所属するのが良いと思います。私もはじめはそこそこ大きな会社のプログラマでしたが小さな会社に転職しました。それにより得られることは「スピードアップ(仕事に対しての)」、「規模が小さいが全体が見渡せるという点(視野が広がる)」と「様々な人達との出会い」があります。

いろいろ考えさせられる部分は多かったですが、何かやってみたいという気持ちにさせてくれる本でした新年初めに読む本としては正解でした。


ウェブ時代をゆく ─いかに働き、いかに学ぶか (ちくま新書 687)
梅田 望夫
筑摩書房 (2007/11/06)
売り上げランキング: 25
おすすめ度の平均: 4.5
5 好きなことをどうやってみつけるか
4 ネットを越えて生きることについて
3 読者に「ハッカー」への道をさししめす本



今年の読書目標まであと24冊。

トラックバックがスパムになっていて気付かなかった

   ブックマークに追加する
今日、気づいたのですがトラックバックがきていたのにスパムとなって気付かなかったです。とりあえず、内容確認して公開しときました。

今後、しっかり見ておかないと駄目ですね。ブログを見てくれている方ありがとうございます。また見に来て下さいね。

謹賀新年 2008年の7つの目標

   ブックマークに追加する
あけましておめでとうございます。

新年1回目のブログ投稿です。
以前、フランクリン・プランナーの手帳を購入したこともあり、2008年はきちんと価値観を明確し、目標作成、達成の道のり(ウィークリー、デイリー)を落とし込みました。目標をいつも忘れないように宣言しておきます。

  1. 英語の本を読めるようにする(ビジネス書)
  2. 25冊本を読む(ビジネス書+専門書)
  3. 10kg減量する(学生時代の体重に戻す)
  4. ブログを月20以上投稿する(年間250くらい投稿できればOK)
  5. 新規サービスを3つ以上立ち上げる(全然小規模なサービスでOK)
  6. 家計簿をつける(収支の管理をする)
  7. メールはすぐに返信する(なるべく5分以内ね)

自分の価値観は、知的好奇心、分析力、決断力、独立精神(プレイヤーとしての能力)、行動力という点にあるようです。
そういった意味では、「知識の向上、分析力の向上(input)」、「情報の管理、共有(output)」、「将来独立する」という3点に向けて、良い目標が設定できたのではないかと思います。

↓価値観の確認>目標の設定>月、週、日に落とし込む作業ができる手帳です