MySQLで日付系演算

2010 年 2 月 8 日

MySQLで1日後や1年後の日付を算出したい、というときに。

なんらかの時間差を与えるためには、intervalが使えます。

一年後
select now() + interval 1 year

二日前
select now() - interval 2 day

加算にdate_add、減算にdate_subも使える。
select date_add('1900-01-01 02:00:00', interval '3 10' day_hour)

TODOリストを管理

2010 年 2 月 5 日

TODOリストとは、簡単に言えば「やらなきゃならないことのリスト」です。

プログラマさんなら、ソースに”TODO”と書いて、のちにさらなる検討や実装が必要であることを記したことがあるでしょう。

グループウェアやフリーのウェブアプリ、スタンドアローンツールなど、様々なTODO管理ツールがあります。それらは検索エンジンで探せばたくさん見つかると思うので、用途に応じて最適なものを使ってみてください。

自分が使っているのはこれです。

Sunbird
http://www.mozilla-japan.org/projects/calendar/sunbird/

元々スケジューラですが、TODOリストを管理するシンプルな機能も付属しています。

メーラーにThunderbirdを使っているなら、以下のプラグインもあります。

Lightning
http://www.mozilla-japan.org/projects/calendar/lightning/

Googleカレンダーとの連携も可能ですが、自分はもっぱらTODOリストとちょっとしたスケジュール(メモ程度)に使っています。

本格的にグループでカレンダーを共有してプロジェクト管理用に使うのありかと思いますが、まだ実践はしていません。

一人でやるにしても、複数でやるにしても、具体的な目標と期日を決めることが重要です。適正な評価とは、目標への達成度で測られるもの。そして、明確な目標を打ち立てるためには綿密な計画が必須です。

subversionのリポジトリを引っ越す

2010 年 2 月 5 日

忘れるのでメモ。

svn switch --relocate "From" "To" [Path]

“switch”は省略して”sw”も可。
FromとToは完全なURLではなくホスト名。

たとえば
svn://hogehoge/path/to/
から
svn://fugafuga/path/to/
に引っ越す(参照するリポジトリを変更する)なら

目的の作業コピーまで移動し(Pathを指定もできますが、ミスらないためにも)

svn switch --relocate svn://hogehoge svn://fugafuga

でいけます。

某ウィルスの蔓延に関して思うこと

2010 年 2 月 4 日

巷を騒がす某ウィルスとその亜種。

大手のサイトも感染し、大変なことになっていますね。

もちろん、自分も例外ではありません。むしろ、多大な影響を受けています。仕事とかでも・・・。

これだけ蔓延しているにも関わらず、未だに意識の足りない人がいますね。

むしろ、”知らない”ということが蔓延につながっているのでは。

ひとことで”ウィルス”と言っても、色々な種類があります。
中にはその実態が知られていないものだって大量にあるのです。
単純に考えすぎてはいけません。

そして、コワいのは、巷をにぎわす情報は常に「一歩ずつ遅れている」ということ。最先端をいくウィルス対策ソフトであっても、発見されていないウィルスには対処できません。
発見されてはじめて対策が講じられるのです。

「アンチウィルスソフトを入れているから大丈夫」というのはちょっと安易です。もちろん、ウィルス対策ソフト自体が無いというのは論外です。

もはや、対策ソフトだけでは感染を防ぐことはできませんし、感染したのちの迅速な対処方法もあらかじめ検討しておかなければならない時代です。

大事なデータを守る方法や、障害が発生した環境を復旧する方法、クライアントへの周知と対応・・・。

あまりにウィルス対策ソフトが「万全」だの「安心」だのと宣伝するせいで、それだけで十分と思っている人が多いようです。きちんと備えているところは備えていますよ。

MySQLでテーブルのロック

2010 年 2 月 2 日

テーブルのロックと開放に関してメモ。

目的

トランザクション的処理や高速化。

Readロック

LOCK TABLES "テーブル名" READ;

このロックを取得すると、テーブルからの読み取りのみがおこなえるようになります。書き込みはブロックされます。

Writeロック

LOCK TABLES "テーブル名" WRITE;

このロックを取得したスレッドのみが、テーブルに対して読み書きをおこなえます。

開放

UNLOCK TABLES;

サーバーマシンを新しくしました

2010 年 2 月 1 日

自宅のサーバーがあまりに苦しい状態(クローラーが回ってくると、応答不能に・・・)だったので、新しいマシンを導入しました。

これまでのマシンに比べ、格段にスペックが上がったので、けっこうな無茶をしても大丈夫だと思います。

ただ、実は正直あまりハードに詳しくなく、その上興味もないんです。
自分は、ハードの性能がどうとかよりも、ソフト面の方が気になります。
ApacheやMySQLのチューニングだとか、ホストマシンの設定だとか、そういった調整をきちんとおこなうことで、そこそこ動くものです。

ハードの性能は向上し、値段はどんどん下がっています。
それこそ、昔は大企業でないと手の出なかったような環境が、個人レベルでも構築できるような時代になりました。

それでも、過剰なスペックに頼りすぎてしまうのはよくないですね。

オープンソースやフリーのソースをウェブで使う際の心得

2010 年 1 月 29 日

昨今ウェブの分野でも数多くのフリーのソースが出回り、たくさんのウェブデザイナーや開発者がそれらを利用しています。

そこで、よくある悩み。

クライアントから追加の要望が出たが、配布されているソースだけではどうしても要件を満たせない・・・。

だからと言って、安易にソースを改変するわけにはいきません。

もちろんライセンス上の問題もあります。

それと同時に、保守管理という意味合いも忘れてはいけません。

多くのプロジェクトは常により良いものを目指すためにソースの改良を続けていて、機能の追加やバグの修正、セキュリティーアップデートなどがおこなわれています。

あなたがクライアントの”思いつき”に付き合い、簡単な気持ちでソースを書き換えたとしたら、以後それらのアップデート時にどうなるでしょう?
あなたがソースを書き換えたことを知らずに誰かが新しいバージョンのソースで上書きすれば、アプリケーションは途端にクライアントの求める要件を満たさなくなります。

クライアントに対して本気で向き合うのなら、その場しのぎ的な安請け合いはしないこと。
どうせ理解してもらえないからなどといって、内部的な問題点を説明せず、応急処置的な対処で要件だけ満たすような行為は、いずれ自らの首を締め、クライアントに迷惑をかけることにつながります。

きちんと将来的な保守や運用までを見越した説明・提案をおこなうのがプロの仕事です。それは技術者でなくとも当然のこと。

簡単に導入できるからと言ってフリーのソフトやオープンソースをクライアントに薦め、本気でクライアントと向き合おうとしないような姿勢は遅かれ早かれ崩壊します。

正しくそのメリットやデメリットを理解し、クライアントの要望をよく聞き、本当にそのツールで要件を満たせるのか検討しましょう。
そして、無茶を言うクライアントに正しく説明をおこない、理解してもらうことも重要ですよ。「クライアントの言いなり」は、開発側が苦しいだけではなく、最終的にクライアント自身にとっても不利益な結果を招きます。

どうなる、iPad

2010 年 1 月 28 日

なにかと話題のiPad。

「富士通の米国法人が2003年にiPadの商標を出願していたことが判明」
http://www.itmedia.co.jp/news/articles/1001/28/news088.html

なのだそうで。

さて、本題はその機能面。

「Adobe、FlashオーサリングソフトをiPadに対応させると発表」
http://www.itmedia.co.jp/news/articles/1001/28/news031.html

Adobeは積極的に動いてますが、Appleサイドはどう思っているのだろう。

「FlashがiPhoneのビジネスモデルを破壊する?」
http://ascii.jp/elem/000/000/467/467705/

マルチタッチの利点をFlashが享受すれば、開発者が豊富でありすでに多くの実績のあるFlashがその市場を牛耳る可能性が強く、当然Apple側は警戒しているのでしょうが・・・。

いずれにしても、色々なものを柔軟に受け入れる姿勢がないと、だんだんとユーザが離れていくでしょう。

iPhoneアプリを開発するのに、Macが必要だというのは、Macのユーザではない人からすれば非常に腹立たしいこと。そういう”囲い込み”的な戦略はMicrosoftも顕著でしたが、Appleの方がいっそう徹底しています。

あまり自らの利権に固執しすぎると、Googleにもっていかれますよ。

MySQLを電卓代わりに

2010 年 1 月 28 日

ちょっとした計算が必要なとき、どうしますか?

オフィス好きならば、エクセルとかでやるんでしょうね。

あるいは、電卓アプリを立ち上げたり。

自宅ではたいてい端末のひとつやふたつ、開きっぱなしになっていて、
どれかひとつはMySQLに接続してますので、

select ( 123 + 234 * 345 ) * 1.05 / 5;

みたいな感じでやるのが癖になってます。

meta keywordsタグって検索結果に反映されないんですね 〜SEOとその先を考える〜

2010 年 1 月 27 日

HTMLのコーダーさんやSEOの専門家さんなら常識なんでしょうが、自分は先日知りました。

Googleは検索結果に反映されないことを公式に表明しているそうです。

Yahoo!に関しては色々な情報が出回っているようですが、いちおう認識はする模様。ただし、極めて重要度は低いとのこと。

で、ですね。

これはずっと前からの持論なんですが。検索エンジンの目指すところというのは、結局は「ユーザの求める検索結果」なんです。

そして、それは検索をかけるユーザも当然そうですよね。

では、検索エンジンはこれからはどんな方向へ向かうのか。
おそらく、人間が見て、おもしろい(興味深い)コンテンツを優先するようになってくのではないでしょうか。

自分は一応プログラマですから、その方面からの意見を言わせていただきます。

エンジンは文脈をとらえ、文章の内容を把握しています。
そのうちその文章そのものの出来不出来を”評価”しはじめるのではないでしょうか(もうやっているのかもしれませんが…)。

検索結果が”つまらない”ことは、エンジンを提供する側にとっては致命的なことです。ろくな結果の得られない検索エンジンなど、ユーザは見向きもしません。

ということは、エンジンの開発者は必死に「人が見て有益なコンテンツを探し出す技術」を研究します。
ブックマークサイトや無意味な”つぶやき”などが引っかかってもおもしろくも何ともないですから。

前々から、あれがいいらしい、これがいいらしいといって、SEO対策に奔走されている方々を見ていますが、確かにそういった努力も重要です。決しておろそかにしてはいけません。

ただ、検索結果から得たアクセスを本当のコンバージョンにつなげるのは、コンテンツの質に尽きます。
そして、何が「質」につながるのか。

それは…。

各々の課題です。つまるところ、「個性」なわけです。

ありきたりなサイトは検索エンジンから見ても、ユーザから見ても、つまらないということです。