カテゴリー: 技術系

  • tweetnestのアーカイブを日本語(2byte文字)対応させる

    tweetnestでつぶやきをアーカイブしていたのだが、長いつぶやきのアーカイブが途中で切れていた。いろいろと調べてみると、ある一定の文字数を超えると、途中できれたり化けたりしていた。

    原因を探ってみると、tweetnestでつぶやきを格納しているDBの絡むがvarchar(255)で設定されていた。varchar(255)だと、日本語で140文字も格納できない。そのため、途中でデータが切れていたようである。他のカラムの設定を見てみると、text型で設定されているところもあるので、少々アバウトだが、対象のカラムをtext型に変換してみた。変換に使ったSQL文は以下。

    mysql> alter table tn_tweets modify text text not null;
    

    これで拡張は終了。次のつぶやき取得から、日本語で140文字あってもちゃんとアーカイブされる。

    おまけ。
    通しで作業をするとこんな感じ。

    mysql> use tweetnest;
    mysql> desc tn_tweets;
    +--------------+---------------------+------+-----+---------+----------------+
    | Field        | Type                | Null | Key | Default | Extra          |
    +--------------+---------------------+------+-----+---------+----------------+
    | id           | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
    | userid       | int(10) unsigned    | NO   |     |         |                |
    | tweetid      | bigint(20) unsigned | NO   |     |         |                |
    | type         | tinyint(4)          | NO   |     | 0       |                |
    | time         | int(10) unsigned    | NO   |     |         |                |
    | text         | varchar(255)        | NO   | MUL |         |                |
    | source       | varchar(255)        | NO   |     |         |                |
    | favorite     | tinyint(4)          | NO   |     | 0       |                |
    | extra        | text                | NO   |     |         |                |
    | coordinates  | text                | NO   |     |         |                |
    | geo          | text                | NO   |     |         |                |
    | place        | text                | NO   |     |         |                |
    | contributors | text                | NO   |     |         |                |
    +--------------+---------------------+------+-----+---------+----------------+
    13 rows in set (0.07 sec)
    
    mysql> alter table tn_tweets modify text text not null;
    Query OK, 1287 rows affected (0.28 sec)
    Records: 1287  Duplicates: 0  Warnings: 0
    
    mysql> desc tn_tweets;
    +--------------+---------------------+------+-----+---------+----------------+
    | Field        | Type                | Null | Key | Default | Extra          |
    +--------------+---------------------+------+-----+---------+----------------+
    | id           | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
    | userid       | int(10) unsigned    | NO   |     |         |                |
    | tweetid      | bigint(20) unsigned | NO   |     |         |                |
    | type         | tinyint(4)          | NO   |     | 0       |                |
    | time         | int(10) unsigned    | NO   |     |         |                |
    | text         | text                | NO   | MUL |         |                |
    | source       | varchar(255)        | NO   |     |         |                |
    | favorite     | tinyint(4)          | NO   |     | 0       |                |
    | extra        | text                | NO   |     |         |                |
    | coordinates  | text                | NO   |     |         |                |
    | geo          | text                | NO   |     |         |                |
    | place        | text                | NO   |     |         |                |
    | contributors | text                | NO   |     |         |                |
    +--------------+---------------------+------+-----+---------+----------------+
    13 rows in set (0.00 sec)
    
    mysql>
    

  • ガルーン3のインストールでつまづいたところ

    ガルーン3のインストールをしてみたのだが、ちょっとだけ躓いたところがあった。
    また、躓かないようにメモ。

    環境は、CentOS 5.5 の32bit版。
    Apacheは、OSセットアップ時にインストール。
    めんどくさいので、GUIは入れていない。

    selinuxは、disableにする。
    selinuxが有効になっている場合、インストール後にcgiの実行でエラーになる。
    そのとき、ブラウザ上では訳の分からない文字列で埋め尽くされる。
    ApacheのErrorログには、ライブラリの1つで実行できないエラーが出ている。

    インストール後の初期設定がタイムアウトして、中途半端に終わってしまう。
    インストール後の初期設定では、disk i/o の負荷が高いようだ。
    インストール先のHDDのアクセスが遅いとか、iptablesなどを有効にしていて
    通信関連で時間がかかっていると、途中でエラーになる。
    この状態でエラーになると、先に進めないので、ガルーンを一度アンインストールする必要がある。

    おまけ。
    ガルーン3のインストール後のセットアップがうまくいかなくて、
    5回くらい再インストールをしていたら、アンインストールに失敗。
    関連するファイルとディレクトリをマニュアルのファイル展開場所を参考に削除したが、
    どこかにゴミが残っているようで、その次のインストールで失敗した。

    インストールで安全なのは、selinuxは無効にして、iptablesなどのセキュリティ系も停止しておく。
    これをやると簡単にインストールとインストール後の設定が終わる。
    selinuxが悪いのか、garoon3の作りが悪いのか。
    おまじないと思って、selinuxを切るのが一番だろう。

  • Hyper-V環境でのWindows Server ライセンス

    解説しているページへのリンク。

    Hyper-V環境でのMicrosoft Windows Serverライセンスの仕組みとは?
    http://techtarget.itmedia.co.jp/tt/news/1009/09/news02.html

    もっとシンプルなんだけど、解説か日本語訳かのどちらかが悪い。
    マイクロソフト用語が多すぎるので、混乱する・・・。
    簡単どころか、余計に混乱するような感じ。

    簡単に行ってしまえば、Windows Server 2008 R2を買ったとして、
    ベースとなるWindows Server 2008 R2をインストールする。
    これで、実は1ライセンス消費。
    でも、このWindowsの上に、Hyper-Vをインストールして、
    ゲストOSとして同じくWindows Server 2008 R2をインストールする。
    この場合、Windows ライセンスはゲストOSが消費し、
    ベースのWindows Server 2008 R2からはライセンスが消えるのだが、
    ホストになっている場合はライセンスを消費しないという仕組みなので
    ライセンス違反にはならない。

    だが・・・
    ゲストOSを別のHyper-Vに移動させると
    ホスト側のOSにもライセンスが必要になってしまう。
    なんとも分かりにくい。

    元の解説は、いまいちイケテナイね。

  • memo:SQL Server 2005の勉強に役立つページ

    マイクロソフトの製品には、自習書というものが公開されていることがある。この自習書の内容が、実環境に近い形で説明されているので、自分でやりたいことや困っていることにマッチする可能性が高くて便利。だが、ざっくりとしたキーワードだと、なぜかGoogleの検索上位にはこない。Bingだと、上位にくるので発見しやすくて良いのだが。

    SQL Server 2005の自習書:http://technet.microsoft.com/ja-jp/sqlserver/cc721623.aspx

    バックアップ/リストアの自習書やSQLCMD(コマンドラインでSQL Serverにアクセスするコマンド)の使い方もあり、入門書が手元にない場合などに便利に使える。マイクロソフトの自習環境もつかえるので、勉強するのにも役に立つので良い。こういうページの情報はすぐに忘れるので、自分のためにメモ。

  • Apacheのログにレスポンスタイムを記録する

    httpd.conf にあるログ設定を変更することで、ログにレスポンスタイムを記録するようにできる。

    1ページあたりのレスポンスタイムを調べることにより、どのURLで動作が鈍くなっているのか、あたりをつけることが可能になる。問題は、一度、サーバが負荷で遅くなってしまうと後に続くレスポンスの反応も悪くなってしまう。そのため、レスポンスタイムだけでは、どのページが遅いのかを判断できない。レスポンスの悪化の原因は、レスポンスが悪くなり始めた最初のアクセスをログから探し出すと良い。

    • 変更前
      LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

    • 変更後
      LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %D” combined

    %Dを足すことにより、レスポンスタイムをマイクロ秒で記録することができる(Apache2.0以降)

    %Tを足すことにおり、レスポンスタイムを秒単位で記録することができる。

    ■参考URL
    http://httpd.apache.org/docs/2.0/mod/mod_log_config.html

  • iStumbler

    部屋でiPhoneを使っていると他人の無線LANを多数検出してしまう。ネットも開通したので、うちの無線LANのAPを設定するために空チャネルを調べてみた。無線LANのチャネル検出に使ったのは iStumblerというツール。これで、無線LANのAP検出とチャネルとシグナルの強度が検出できる。使い方は簡単、ダウンロードして起動するだけ。これだけで、現在いる場所の無線LANの状況をみることができる。他にもベンダーもみることができて楽しい。

    iStumbler;http://www.istumbler.net/

    iStumblerで検出してみたところ、IEEE802.11b/g/nの主要なチャネルである、1,6,11は使われている。特にチャネル1に至っては、そこそこの強度で3つも見えている。ベンダーが同じであることとMAC Addressが下1桁しか変わらないのでバーチャルAPだろうか。現状で同じ電波帯域を使うならば、チャネル6なのだが・・・多すぎて干渉が怖い。おとなしく2.4GHz帯を捨てて、5GHz帯で802.11nを使用するべきだろうか。

  • 開発者のためのActive Directory講座

    面白い資料を発見。Power Shellを使うと、Active Directoryの管理が楽になりそうだ。コマンドから、いろいろな情報を引き出せるので、簡単なスクリプトを組むだけで、処理を簡単にできそうだ。

    http://www.slideshare.net/junichia/active-directory-2562729

    問題は、このモジュールの対応OSが2008R2というあたりか。

  • Hyper-V勉強中

    現在、Hyper-Vを勉強中。

    VMware ESX系は、結構前から試して実際に使っているが、Hyper-Vは使ったことが無かった。今度、本格的に構築・運用を行う可能性が高いので勉強中。VMware ESXと基本的な設計思想がかなり違う。今調べているかぎりだと、どっちがいいということはない。ぜんぜん別物なので、上に構築する仮想マシンとOSの性質によって、下のプラットフォームを選ぶのが良い。

    Hyper-Vは、あまり安定性がないみたいだが、安いのが特徴だ。やたらと高いVMwareに比べて、ここはかなりおいしいところ。Hyper-Vで見えてこないのは、管理性だ。実際にインストールして使い勝手と安定性や癖を確認するしかない。問題は、どのエディションをインストールするか。ハイパーバイザーだけのHyper-Vサーバが一番、コストがかからないように思えるが、管理用Vista以上のWindows が必要。Vistaは持っていないので、却下。次はWindows Server 2008 のServer Core上に構築するパターン。この組み合わせが一番安定しているようだが、これも単体で管理ができないようなので却下。(一番、試したいパターンなんだけど。)最後は、一番インストールや検証が楽なWindows Server 2008 上のHyper-Vだ。とりあえず、これで試す。Hyper-Vはバイザー型の仮想化環境のはずなんだが、このパターンだとホストOSの上で動いている感じしかしないため、Virtual Serverと何が違うのだろうか考えてしまう。実際、VMからの命令もホストになっているWindows経由になる。これは、マイクロカーネル型ハイパーバイザーというタイプで、ハイパーバイザーの層から物理ハードウェアとの命令に必要なドライバを排除しているため。インストールした時の感覚としては、ハイパーバイザーに見えないがちゃんとしたハイパーバイザーである。

    とりあえず、明日、Windows Server 2008をインストールして試してみる。

  • M16-PWRの検証

    機会があったので、松下のM16-PWRというPoEスイッチの借りて検証してみた。

    製品のスペック自体はスペックシートをみればわかるのだが、使ってみないと設定のしやすさとか、製品の癖はわからない。それに、日頃はCiscoのスイッチかH3Cのスイッチしか使っていないのでほかの世界を知らない。検証として借りられると、別の製品やOSに触れられるので意外とわかっていない自分の知識に気がつく。

    このM16-PWRを触ってみて思った率直な感想は・・・よくわからん!ってこと。

    基本の設定とかは、ウェブ画面がやっていくのがベターらしくCLIの使い勝手がとっても悪い。シリアルで接続したときも、ウィザード形式のメニューがでて最初はCLIの起動方法がわからなくて何回かリブートをさせた。対話型で設定をしていく方が、初心者などには便利だとは思う。でも、大量に設定をしないといけないときや、別の場所で作ったコンフィグを簡単に投入しようと思うとCLIが充実していたほうが楽だ。それに、なにかトラブルがあったときにCLIからシステム情報を引き出したりとか、通信状況を見れると便利。負荷が高い状況やトラブル時には、ウェブインターフェースはまともに動作しないことが多いからね。

    あとは、CLIのときのコマンドが若干Ciscoと似ている。が、ヘルプコマンドの使い勝手悪い。コマンドの途中からヘルプを起動させても、全体のヘルプが出てしまうため、その中から選ぶのが大変。コマンドのシンタックスしかないので、コマンドの名前から機能を推測しないといけないため、ある程度設定を知っていないとつらい。(まぁ、ウェブインターフェースが全体なんだろうし、当然か。)

    それに今回、気がつかれされたのは自分がCisco語に使っているってことだ。例えば、Trunkのコマンドを探していたり、実際には802.1Qで規定されている通信方式なのでTrunkじゃなくて、そっちで探さないといけないとか。あとは、VLANインターフェースごとにIPアドレスを持てると思って調べていたら、どうやら、その機能はないようで、管理用にIPアドレスを一つ持てるだけとか。スイッチなのにいろいろとできてしまうCisco製品になれてしまったため他の製品を使ってみたときのギャップに驚く。コマンドや用語の違いがわからないと、そもそも設定できないとかね。1つの製品に固執しておくと、スキルは高まっていくけど、ほかの製品も見ておくと世界が広がっていい。自分のかけている部分にも気がつくしね。

    いろいろと試したけど、そんなに悪いスイッチではないと思う。大量のVLANやVoice用のVLANが同じラインに流れているところはかなりきついと思うけど、PoEが必要なエッジスイッチとしては使えるはず。ポート数も8ポートとか、16ポートの製品があるので微妙なかゆいところに手が届くって感じだね。今回、検証しきれなかったのはCiscoのIPフォンとCUCMとつないでレジストされるかどうかを調べきれなかった。1つは、PoEの形式が旧方式であるCiscoの独自タイプに対応していないので、IPフォンが起動しない。あとは、Tag付きの設定はできたけど上位スイッチとの接続で戸惑ってしまったこと。ウェブで公開されているマニュアルを見たけれど、いまいちよくわからなかった。

    こういうことをしているとまだまだだねって感じがする。もう少し勉強をがんばらないと。あとは、がんばって勉強する時間も確保しないとね。いろいろといい勉強になった。

  • Parallels + Windows 7

    Parallelsを使って、Windows 7 RCをMac Book Proにインストールしてみた。えっと、圧倒的にメモリが足りない!実メモリを2GBしか積んでいないマシンでは動きが鈍すぎる。4GBはやっぱり必要だと思われる。

    あ、それでParallels上にWindows 7 RCをインストールするときの教訓?やたらと時間がかかって、そのままソフトがフリーズした。仕方がないのでMac OSごと再起動をかけてParallelsを起動させたらインストールがちゃんと進んでいたというか、windowsのリブート後の設定になっていた。RC版をインストールしているから、不安定なのだろうか。(ついでに、Parallelsも体験版だったりするw)インストール後は、ちゃんと動作しているので問題はない。

    が、Parallels ToolsをインストールするときにWindows 7 がフリーズした。これも、仮想マシンを再起動させたらインストールが終わっていた。ちゃんと終わっているのか?という疑問はあるけどね。一応、機能的には使えているみたいなので、問題は少ないと思う。

    Parallels上のWindows 7は、Coherenceモードで動作させている。これはめちゃくちゃ、動作が鈍い。鈍いというよりも、なかなか動かない。止まっている?んじゃないかと思うくらいに遅い。これがメモリの問題なのか、Windows 7との相性なのかは不明。最大化モードで使っているときは比較的動きがいいので満足。最大化すると、Mac OSの部分が見えなくなるのがいやかも。拡張モニタをつけて、そっちに表示させてしまえばいいのかもしれないけどね。アダプタを買わないとつかないけどね。

    Windows 7 RCをダウンロードしたのがゴールデンウィーク中だから、インストールとまともに使い始めるまで半月以上かけてしまった。休みの日とかじゃないとやる気がでないのがよくない。それに漸く新しいMacになれてきた感じもする。(使い始めるのに、何ヶ月かけているんだか・・・)