メモの最近のブログ記事

Puttyでリモートログインして作業しているときに、突然日本語が入力できなくなった。

そういうときは、Alt+「半角全角」キーを押すと、日本語入力できるようになる。

原因とか仕組みはよくわからない。

括弧の読み方に自信がなかったので、調べてみました。
プログラムでよく使われる4つに限ってまとめました。

「アレ」とか呼んだりしちゃっていませんか?
自己流の呼び方をしている人は、すぐ悔い改めましょう。(w


種類日本語名1日本語名2英語名1英語名2
( )丸括弧(まるかっこ)小括弧(しょうかっこ)ParenthesesRound brackets
{ }波括弧(なみかっこ)中括弧(ちゅうかっこ)BracesCurly brackets
[ ]角括弧(かくかっこ)大括弧(だいかっこ)Box bracketsSquare brackets
〈 〉山括弧(やまかっこ) Angle brackets

出展:
Wikipedia - 括弧
Wikipedia - Bracket

英語名の方は何回見ても覚えられない。。。。><
長年、アレをなんと読むのか知りませんでした。

[ ] ← コレ

「角括弧」というのは知ってましたが、読み方がわからない。

かくかっこ?かどかっこ?つのかっこ?

正解は、「かくかっこ」

「かくかっこ」「かくがっこ」が正解のようです。
大辞林

ほー。長年の謎が解けた。

他にも、大括弧(だいかっこ)ブラケットという言い方もあるそうです。
Wikipedia - 括弧

先日ウィルコム(nine)からソフトバンク(820SH)へ乗り換えました。
問題は電話帳(アドレス帳)データをどうするかです。
ショップではデータ移管をやってくれないらしい。

アドレスが200件ほどあったので、自分でやることにしました。

(Perlで変換スクリプトを作ろうとがんばったけど挫折(><) )

「S!電話帳バックアップ」サービスと、エクセルを使ってCSVデータを加工したら、200件を一括でインポートできました^^

お見事!

以下、手順です。

Willcom端末からPCにアドレス帳をCSVエクスポート

まず、H"問屋をPCにインストール
(↓ウィルコム公式サイトからダウンロード)
http://www.willcom-inc.com/ja/support/download/h_tonya/index.html
USBドライバなども入れる必要があるかもしれません。
私の場合は初代nine(WS009KE)だったので、メーカーのサイトからUSBドライバをダウンロードしました。

H"問屋をPCにインストールしたら、PCとウィルコム端末をUSBでつないで、端末のアドレス帳をH"問屋に読み込みます。

次に、H"問屋の電話帳をCSVエクスポートしてデスクトップに保存。

ソフトバンク携帯からCSVファイルを作る

1件だけアドレスを登録して、「S!電話帳バックアップ」サービスを使ってネット上にアドレス帳をアップします。
Wホワイトで加入した人は、最初数ヶ月は「S!電話帳バックアップ」を無料で使えるらしいです。

次に、下記URLにPCからアクセスして、アドレス帳をCSVでダウンロードします。
https://addressbook.softbank.ne.jp/puwb

2つのCSVファイルを編集

ここで作った2つのCSVファイルは形式が違います。
ウィルコムCSVをソフトバンクCSV形式に合わせる必要があります。

でもご心配なく。
下記のとおりやると、うまく行きます。
  • エクセルで空の新規ファイルを作成
  • エクセルの上のメニューから、データ>外部データの取り込み でウィルコムのCSVファイルをインポート。
  • インポート時に、下記のような設定をするのがミソ。
sb-wilcm-1.JPG sb-wilcm-2.JPG sb-wilcm-3.JPG sb-wilcm-4.JPG
  • 別シートにソフトバンクのCSVファイルをインポート。やり方はほぼ同じ。
  • 貼り付けたときに頭のゼロが消える場合は、 事前にシートの書式を「文字列」に設定しておくと回避できます。
  • 完成したら、再びソフトバンクのサイトにCSVをアップロード。
  • 最後に、ソフトバンクの端末でアドレス帳の同期をとれば完了です。

ウィルコム⇔ソフトバンクの項目対応表

具体的には下記のような対応になると思います。
Softbankの項目ウィルコムの項目
名前(姓)名前(漢字)
名前(名)
ヨミガナ(姓)名前(カナ)
ヨミガナ(名)
電話番号1電話番号1
電話タイプ1
電話番号2電話番号2
電話タイプ2
電話番号3電話番号3
電話タイプ3
電話番号4電話番号4
電話タイプ4
電話番号5電話番号5
電話タイプ5
Eメールアドレス1
Eメールタイプ1メールアドレス1
Eメールアドレス2メールアドレス2
Eメールタイプ2
Eメールアドレス3メールアドレス3
Eメールタイプ3
Eメールアドレス4メールアドレス4
Eメールタイプ4
Eメールアドレス5メールアドレス5
Eメールタイプ5メールアドレス6
メモ
誕生日
肩書き
会社
住所タイプ
住所
URLタイプ
URL
グループNoグループ
モード


参考

http://hatapy.blog68.fc2.com/blog-entry-195.html

答え

      71バイト

SEOにおける、Titleタグの重要性

Googleの検索結果では、Webサイトの<tittle>タグが見出しとして表示されます。
言わば、これがWebサイトの看板になるわけです。

google1.jpg

ところが、タイトルの文字が長すぎると、残念なことに後半が省略されて「...」と表記されてしまいます。

 ↓例
google2.jpg
できれば、タイトルの全文がきれいに表示された方がいいに決まっています。

では、いったい何文字を超えると、このように後半がカットされるのか?

気になったので調べてみました。

調査対象

   このブログの検索結果 

タイトルの後半がカットされたもの

まず、タイトルがカットされてしま記事のうち、最も短いタイトルは以下のようなものです。

タイトル文字数バイト数
【メモ】Windows+ActivePerlでXML::RSSモジュールを入れる方法 - DQN起業日記 5272
BloggerをエクスポートしてMovable Typeにインポートする方法 - DQN起業日記 4871
最もためになる初心者用のプログラム言語はWSH(JScript)です。 - DQN起業日記 4572

タイトルがカットされなかったもの

次に、タイトルがカットされなかった記事のうち、最も長いものは以下のものです。

タイトル文字数バイト数
XREAのアクセスログ(LOG)をCSVに一発変換するための正規表現 - DQN起業日記 4470
Perlで、テキストファイルの行数を数える(カウントする)には - DQN起業日記 4170
Linux&Apacheで自宅Webサーバ構築 3 Vine Linuxを入手する - DQN起業日記 5169

注1:文字数とバイト数の調査は、エクセルのLen関数、LenB関数を使用。
注2:バイト数とは、日本語で1文字分、半角英数字で2文字分の長さのこと。

分析

カットされたものとされなかったものを比べてみます。

まず文字数で比較すると、45文字しかないのにカットされたものがある一方、51文字あるのにカットされなかったものがあります。
したがって、文字数は関係なさそうです。


次に、バイト数で比較してみます。
カットされたタイトルは、すべて71バイト以上です。
一方、カットされなったタイトルは、すべて70バイト以下です。

結論

Googleの検索結果では、Webページのタイトル(titleタグの中身)が71バイト以上の場合、後半部分が省略される。


(参考:SEO連載(5) 「タイトルとメタタグの最適化」 - かんたん!SEO実践講座 より
中小企業では、Windows2000やWindowsXPProなどの普通のPCのフォルダを共有フォルダにしてファイルサーバとして使うことがよくあると思います。

症状

社員が10~20人くらいになってくると、同時接続するクライアントPCが増えて最大値をオーバーしてしまい、接続不可になることがあります。
具体的には、下記のようなエラーがでます。
コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続出来ません。

対策

自動切断されるまでの時間を短くしてしましょう。
初期設定では、PCからサーバへ何もやりとりがなければ15分で自動切断されるようになっています。
これを1分にしてみましょう。
サーバとして使っているPCのコマンドプロンプトを立ち上げて、C:~¥>の後に下記を入力します。
C:~¥>net config server /autodisconnect:1
こうすると、1分たつと自動切断されるようになります。
結果的に、よりたくさんのPCからサーバへ接続できるようになります。
一度、試してみてください。

参考:http://okwave.jp/qa869934.html
iGoogleで使われているアレです。
前回の記事より、さらにわかりやすく書いてみます。
初心者にとっては今回の方がわかりやすいかと思います。

実行サンプルはこちら (別ウィンドウで開きます) 

ソースコード

<html>

<head>
    <title>超シンプルなタブメニュー</title>
<script>

function show1(){
	content1.style.display="block";
	content2.style.display="none";
	content3.style.display="none";
}

function show2(){
	content1.style.display="none";
	content2.style.display="block";
	content3.style.display="none";
}

function show3(){
	content1.style.display="none";
	content2.style.display="none";
	content3.style.display="block";
}
</script>

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

</head>
<body>

<span onclick="show1();">|タブ1|</span>
<span onclick="show2();">|タブ2|</span>
<span onclick="show3();">|タブ3|</span>
<br>

<div id="content1">コンテンツ1</div>   ← タブ1の中身
<div id="content2">コンテンツ2</div>   ← タブ2の中身
<div id="content3">コンテンツ3</div>   ← タブ3の中身

</body>
</html>

解説

ポイントは、
タブの中身をHTMLでこのように書いておき、
<div id="content1">コンテンツ1</div>
<div id="content2">コンテンツ2</div>
Javascriptで中身の表示/非表示を切り替えます。
  content1.style.display="none";   ← タブ1の内容を隠す
  content2.style.display="block";  ← タブ2の内容を表示

他人が作ったExcelファイルで、IFやVLOOKUPなどの関数が入れ子(ネスト)になっていて、複雑すぎて解読不能になるときがあります。

実際に私が見た例で、以下のような数式がありました。


=IF(R2="","",IF(J2="ABC",IF(VLOOKUP(D2,sheet1!$A:$G,6,0)="",VLOOKUP(VLOOKUP(D2,sheet1!$A:$I,7,0)-2,sheet1!$G:$I,3,0),VLOOKUP(VLOOKUP(D2,sheet1!$A:$G,6,0)-2,sheet1!$G:$I,3,0)),IF(R2="","",VLOOKUP(VLOOKUP(U2,sheet1!$A:$G,6,0)-2,sheet1!$G:$I,3,0))))


そんなときはあわてずに。

関数をメモ帳に貼り付けて、縦に展開してみましょう。

改行やスペースをつけると、不思議と解読できるようになります。


セルS2に入っていた関数の数式を展開


=IF(
  R2="",
  "",
  IF(
      J2="ABC",
      IF(
          VLOOKUP(D2,sheet1!$A:$G,6,0)="",
          VLOOKUP(
              VLOOKUP(D2,sheet1!$A:$I,7,0)-2,
              sheet1!$G:$I,
              3,
              0
          ),
          VLOOKUP(
              VLOOKUP(D2,sheet1!$A:$G,6,0)-2,
              sheet1!$G:$I,
              3,
              0
          )
      ),
      IF(
          R2="",
          "",
          VLOOKUP(
              VLOOKUP(U2,sheet1!$A:$G,6,0)-2,
              sheet1!$G:$I,
              3,
              0
          )
      )
  )
)

IFやVLOOKUPが入れ子になっているときに効果的抜群です。

あとは、時間さえかければ解読できますね。

以上、ワンポイントテクニックでした。

プログラムを書いていて、下記のように配列を初期化することがよくあります。

配列 = [
要素1,
要素2,
];

このときいつもモヤモヤするのが、

最後の要素の後にカンマ(,)付けても大丈夫なんだっけ?

ということ。
つまり、この配列は要素が2個としてちゃんと解釈されるのかな?という不安です。


よい機会なので、JavaScript、PHP、Perlで挙動の違いをまとめてみました。

Perlの場合

@ary = ("foo", "bar",);
$count = @ary;
print $count;
→ 結果  2

PHPの場合
$ary = array( "foo", "bar", );
echo count($ary);
→ 結果  2

JavaScript (Firefox) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 2

JavaScript (IE6) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 3

結論。

IEのJavaScriptI(=JScript)は、最後のカンマのあとにもう一つ空の要素を生成する。


というわけで本日のまとめ。


 [FOO,BAR,] を

 3個と数える

 JScript


字あまり ><

VBAでMsgBoxを表示すると、OKボタンを押すまで処理が中断してしまうので不便だなーと思っていました。
調べてみたら、教えてGoo!に良いやり方が載っていました。

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で作る超シンプルなタブ切り替えメニュー

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

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

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

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

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

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

XML::RSSを使ってRSSを出力する方法です。
文字化けしたりエラーが出たり、半日格闘しました。
結局、下記のようにスクリプトを書いてutf8で保存するとうまく行きました。

Windows XPにActivePerl( perl v5.10)を入れた状態で、XML::RSSモジュールをインストールしようとすると、失敗します。

私はこれで治りました。

1.終わったら必ずログアウト。

2.「次回から自動的にログイン」にチェックしない。

3.パスワードを保存させない。

4.携帯でmixiを見ない

5.mixiニュースは見ない。(Yahoo!などで読めばよい)

人気記事

このアーカイブについて

このページには、過去に書かれたブログ記事のうちメモカテゴリに属しているものが含まれています。

前のカテゴリは雑感です。

次のカテゴリは読書メモです。

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

最近の人気記事