2008年2月アーカイブ

Gihyo.jpの連載記事のフォントがとても読みやすかったので、参考にしようと思ってCSSをのぞいてみました。
ところがよくある話でCSSファイルが下記のようになっており、一個ずつDLするの面倒くさそー。。
@charset "UTF-8";
@import url(base.css);
@import url(parts/structure.css);
・・・以下えんえんと続く
URLを指定してファイルをダウンロードするという処理、
Linuxだとwgetで簡単にできるんですが、Windowsだとどうやるんだっけかー?

Perlの出番です。

LWPの日本語マニュアルページを見て、LWP::Simpleの使い方を読む。ふむふむなるほど。
C:\>perl -MLWP::Simple -e  " getprint 'http://gihyo.jp/(中略)/module.css'" > module.css
これで一発でダウンロードできました。
やっぱPerlすげー
ワンライナーすげー
Excel VBAでマクロを実行したら、FormのShowメソッドの箇所でマクロが勝手に止まってしまうという現象が起きました。
Excelの画面でマクロが動かないな、と思ってVBEの画面に切替えたら、Form.Showの行が黄色くなって、中断モードになっています。
コンパイルエラーでもなく、実行エラーでもない。エラーじゃないのでエラー番号もでない。

JavaScriptとCSSを使って、クリックで切替えられるタブメニュー(iGoogleみたいなやつ)を作って見ました。

いわゆるDHTMLです。
↓のタブ2、タブ3をクリックすると、コンテンツの中身が変わります。
(FireFoxではこのページ上では動きませんが、下記のコードは有効です。

下記ソースをメモ帳にコピペして、拡張子htmlで保存してお使いください。

IE6.0SP2 , FireFox2.0で動作確認しました。

<script>
var collection;

function Obj(objContent,objTab) {
 this.content = objContent;
 this.tab = objTab;

 return this;
}

Obj.prototype = {
 appear : function(){
  this.content.style.display = "block";
  this.tab.className = "selectedtab";
 },

 dissappear : function() {
  this.content.style.display = "none";
  this.tab.className = "unselectedtab";
 }

};


function init(){
 collection = [
   new Obj(content1,tab1),
   new Obj(content2,tab2),
   new Obj(content3,tab3)
 ];
}

function show(i){

 for(var j in collection){
  collection[j].dissappear();
 }

 collection[i].appear();

}

</script>

<style>
.selectedtab { background:#66f; color:white;}
.unselectedtab {}

#content1 { display:block; }
#content2 { display:none; }
#content3 { display:none; }
</style>

<body onload="init()";>
<span id="tab1" class="selectedtab" onclick="show(0);">タブ1</span>
<span id="tab2"  class="unselectedtab" onclick="show(1);">タブ2</span>
<span id="tab3"  class="unselectedtab" onclick="show(2);">タブ3</span>
<br><br>
<div id="content1">コンテンツAAAAAAA</div>
<div id="content2">コンテンツBBBBBBB</div>
<div id="content3">コンテンツCCCCCC</div>
</body>

追記 2008/3/14
もっと簡単なやつを作ってみました。
JavaScriptとCSSで作る超シンプルなタブ切り替えメニュー

自宅PCに入れたIE7がめちゃくちゃ不安定だ。

普通にブラウジングしてるだけなのに、30分に1回はエラーで落ちる。(><)

IE6のままにしとけばよかったなり。

 

最近のソフトは、バージョンが新しくなるたびに機能が増え、重たくなり、不安定になる。

Adobe Readerしかり、WindowsMediaPlayerしかり、iTunesしかり。

 

Operaも、登場したてのころはすごい軽快だったけど、今は普通に重い。

 

バージョンがあがるたびに軽快になるソフトっていうのがあってもいいと思う。

いや、むしろそういうソフトを作っていきたい。


■追記 対処法について解説記事を書きました。

  IE7をインストールしたら不安定になって強制終了やエラーが発生する場合の対処法

※ このページは自分用メモなので随時書き換えます。

プログラム初心者用言語は何がいいか?がブログで話題になっています。

最もタメになる「初心者用言語」は JavaScript - IT戦記

私がJavaScriptを初心者用の言語として選んだわけ - 404 Blog Not Found

 

Windowsユーザに限って言うと、私はWSH(JScript)が一番よいと思います。

特に(エンジニアではない)文系事務職のPCユーザにおすすめです。

 

理由

1.メモ帳だけあれば動く。(ブラウザも使わない)

 メモ帳に、

WSH.Echo("hello");
と書いて、拡張子.jsで保存してダブルクリックするだけで実行します。

 何もインストールする必要がありません。こんなお手軽言語(環境)は他にないのではないでしょうか。

 プログラム初心者にとって、この敷居の低さは重要です。

 

2.ファイルやフォルダの操作ができる。

  ローカルPCのファイルやフォルダの操作ができます。

  あるフォルダの中のファイル一覧をテキストファイル書き出すとか、写真ファイルのファイル名に連番をつけるとか、

  非プログラマがいかにも手作業でやりそうなことを、プログラムを書くと一発でできるので、プログラム言語を学ぶことの楽しさやメリットがよく実感できるのではないでしょうか。

 

3.ちょっと勉強すればExcelやIEなんかを操作できる。

  Excelのセルを操作したり、IEの自動操縦なんかができます。

  IEとExcelを連携させることもできます。

  プログラマが全くいない文系事務職の職場では、ヒーローになれることうけあいです。

 

 

Bloggerからブログ記事をエクスポートして、Movable Typeにインポートする方法です。

クリボウさんのBlogger Tips でやり方が紹介されているのですが、説明どおりにやってもインポートが失敗してうまくできませんでした。

公式ドキュメントを見て格闘すること数時間、やっと記事のインポートに成功しました。

私のBloggerブログ をここにインポートできました。めちゃくちゃうれしい!!

 

Widows上でApache+PHPを動かしていて、日本語が文字化けしました。

いろいろ調べてみたら、php.iniを書き換えると直ることがわかりました。

下記のページどおりにやったら、見事に直りました。

php.iniの文字コードの設定 - bnote PHPのソースをEUC-JPで保存し、ブラウザへEUC-JPで出力する設定

はてなの近藤さんの日記で、とても心に残る言葉があった。

僕がアメリカで英語サービスを作ってみたいんだ、と話すと、「そりゃなんて素晴らしい挑戦なんだ!応援するよ。Junyaなら絶対うまくやるよ!」とこちらが驚くくらいの勢いで励ましてくれる。まだ形すら存在しないものを、なぜそれほどまでに肯定できるのかと自分でも思うほどの言葉をたくさんの人に頂いた。その言葉に何度助けられたか分からない。

シリコンバレーには、こういう明るさがシャワーのように降り注いでいる。冷たい水を浴びると、どれだけ勢いのある人でも体が動かなくなってしまうだろう。温かいシャワーを浴び続けてようやく、新しい芽が育つ。

 

自分は、周りの人に「暖かいシャワー」を振りまけているだろうか?


CGIとかPHPで動的Webサイトを作っていて、HTTPヘッダ(FormのPOSTデータとか)を見たくなることがよくあります。

PHPからMySQLに接続しようとしたら、

Warning: mysql_connect(): Client does not support authentication
protocol requested by server; consider upgrading MySQL client

というエラーが出たので、いろいろ調べてみました。

あるブログ記事に対処法が書いてありました。

こんな感じのエラーが出た場合は、
SET PASSWORD FOR root@localhost = OLD_PASSWORD('password_str');
で解決。

実際やってみたところ、MySQLのコマンドプロンプトで、

mysql > SET PASSWORD FOR root@localhost = OLD_PASSWORD('パスワード文字列');

と入力すると解決しました。

ご親切な記事をありがとうございます。

ついに退職。

前回、宣言したとおり、3年勤めた会社を12月末で退職しました。いわゆる脱サラというやつです。

辞めた理由は、独立起業しようと思ったからです。
なんで待遇のよい安定した大企業を捨てて独立しようと思ったか、その理由と決断にいたるまでの心境の変化をここに記録しておきます。
誰かの役に立つかもしれないし、自分でも初心を忘れないために。

1.もともと起業するのが夢だった。


一番大きい理由はこれです。
なんで起業する夢を持っていたのかはよくわかりません。
僕が社会に出た2001年という年が影響しているかもしれません。
その年はまさに起業ブームでした。

前の会社に転職したとき、次辞めるときは起業するときだと決めていました。
ただ、そのときは個人投資家として株式投資でやっていく計画でした。
実際、株の運用成績はかなり上出来で、このままいけば数年後には独立できるはずでした。

2.新興株バブルに乗って大敗北


2005年夏から冬にかけてホリエモンが活躍していたころ、新興市場バブルにのっかってしまい、ホリエモン逮捕とともに大敗北を喫しました。
幸いライブドア株は持ってなかったですが、市場全体が冷えこんだのに巻き込まれ、大損。
このとき、自分は投資家としての重要な資質を欠いていると自覚しました。
このときの損は結果的にほぼ取り戻したけど、やはり投資家は向いていないなと自覚。

3.プログラムを書き始める


株式投資以外の新しい軸を模索していて、学生の頃やっていたプログラミングを再開しました。
これがまた面白くてのめりこみ、ぐんぐん上達しました。
そんなおり、自分が使っていた「早起き生活」というWebサービスが、個人によって運営されていることを知りました。
他にも、グリー、del.icio.us、frendsterなんかも開発者が一人で始めたサービスだと知り、衝撃を受けました。
そして自分もそういうサービスを作りたいと思うようになりました。

4.他にいろいろなとこから影響をうける


いろんな人やメッセージから影響をうけました。
・大学時代の後輩sinjiが先に起業したこと
・スティーブジョブズのスピーチ
・はてなの近藤社長

5.サイドビジネスでやろうと試行錯誤


副業でWebサービスを作って大きくして、それが軌道にのったら起業しようなどと甘いことを、最初は考えてました。
でも、本業があるとなかなか時間がとれず、思うようにサービス開発ができませんでした。
すごく焦りました。

6.宮崎駿


あるテレビ番組でスタジオジブリのドキュメンタリーを見ました。
テレビ画面に、宮崎駿が作った作品が走馬灯のように流れるのを見てこう思いました。

そうだ、何かをつくりたい。
自分のつくったもので人を感動させたい。
寝食も忘れて、何かをつくりたい。
集中したい。のめりこみたい。
その中で、笑ったり泣いたり悔しがったりしたい。

大企業で係長とか課長とかになりたくない。
自分の作品を世に出したい。
スティーブ・ジョブズや宮崎駿みたいに。

これが最後の一押しになって、去年の6月ごろ、独立を決心しました。
起業する理由としてはヘンかもしれません。まあ起業の理由に正解とかないと思います。

上記で思い描いた自分に近づけるように、死ぬ気でがんばりたいと思います。

WindowsXP上に、Apache2.2.8とPHP4.4.8をインストールしたら、下記のエラーが出てApacheが起動しなくなります。

apache_error.JPGのサムネール画像

 

エラーメッセージ:

Error:The requested operation has failed!


症状

PHP4.4.8をインストールした後で、httpd.confを書き換えてApache2.2.8を再起動すると、
Error The request operation has failed!

というエラーが出て起動に失敗する。
さらに、ApacheのTest Configurationを実行すると、次のようなエラーが出る。

C:\Documents and Settings\Administrator>httpd.exe: Syntax error on line
128 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf:
Cannot load C:/php/sapi/php4apache2.dll into server: \x8ew\x92....
Note the errors or messages above, and press the <ESC> key to exit. 

原因

Googleで検索しまくること3時間、ついに原因を突き止めました。

PHPのsapiフォルダにあるphp4apache2.dll というファイルが、apache2.2.xに対応していないそうです。

解決策

Apache 2.2.xとPHP 4.4.0-4.4.7用に対応したphp4apache2.dll-php4.4.x.zipをゲットして、設定します。

  1. http://www.apachelounge.com/download/ にアクセス
  2. ページの中ほどにある、php4apache2.dll-php4.4.x.zipをダウンロード
  3. apache-dll.jpg




  4. 解凍する。
  5. 解凍したフォルダ中のphp4apache2.dllを、既存(php\sapi\)のphp4apache2.dllに上書きコピーして置き換える。
  6. 解凍したフォルダ中のhttpd.exe.manifestを、C:\Program Files\Apache Software Foundation\Apache2.2\bin\ にコピー
  7. Visual C++ 2005 SP1 Redistributable PackageをMSのサイトからダウンローしてインストール。
    http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&DisplayLang=en
  8. httpd.confに下記を追加
  9. LoadModule php4_module "c:/php/php4apache2.dll"
    AddType application/x-httpd-php .php
  10. Apache2.2を再起動(restart )

これで無事、Windows上でApache2.2.xとPHP4.4.xが起動できると思います。(^^)v


・・・とここまで書いたところで、既に同じことを書いてあるサイトを発見。orz

私はプロのプログラマーを目指している素人プログラマーです。

一つ大きな悩みがあります。

 

未だに「オブジェクト指向」がよく理解できません。

 

なぜ「オブジェクト指向」が理解できないのか?

言い換えると、

「何がオブジェクト指向の理解を難しくしているのか?」

原因を考えてみました。

人気記事

このアーカイブについて

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

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

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

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

最近の人気記事