投稿

4月, 2011の投稿を表示しています

[xyzzy]Task barに表示されるTitleを変更(File Pathを表示)

Task barに表示される名称を変更できることに気づいた。下記Siteを参考に。xyzzy - 各種設定html/OChangeLog.htmlにも詳しく記載されている。.xyzzyに追記。(setq-default title-bar-format "%#f - %p") ;;タイトルバー(タスクバー)の表示これはFile Pathとプログラム名を表示する設定

Windows7 SP1のInstallが失敗 >> 成功せず

イメージ
会社PC(HP Pavilion P6000 Series)のWindows 7 Home EditionがService Pack 1のInstallで失敗する。DetailsをクリックするとこちらのSiteに飛ばされて、「システム更新準備ツール」を使えと表示される。x64 ベース システム用 Windows 7 のシステム更新準備ツール (KB947821) [2011 年 2 月]300MBのFileをDownload >> Install >> SP1 適用
してもまた失敗。この後はここを参考にWindows Updateを停止。 C:\Windows\SoftwareDistribution\Download
C:\Windows\SoftwareDistribution\DataStore
にある一時Fileを削除 Norton Internet SecurityのAntivirus Auto-Protectを6時間停止。 Windows Updateから[Check for updates](20分ぐらい) SP1だけ選択してInstall これでも失敗。KB2510531を先にInstallしてみる。 Norton Internet SecurityのControl Panelからいろいろな監視機能を停止。 IE9をInstallしてみる。 Norton Internet SecurityをまるっとUninstall これだけやっても出来なかった。Windows Updateで行うと毎回Downloadから始まるので、下記からDownloadしておくと時間短縮できる。Windows 7 および Windows Server 2008 R2 Service Pack 1 (KB976932)関係ないけど、Windows7(英語版)にIE9(日本語版)をInstallしようと思ったけど出来なかった。

imode.netがIE9に対応してくれないのでIETesterを使う

Singaporeに来てからは、imode.netを使って日本の友人や親と連絡を取るようになった。でもimode.netはIE9に対応してくれてない(2011年4月26日現在)ので、UpdateしてしまうとLogin出来ない・・・。Webpage error detailsUser Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; .NET4.0C; InfoPath.1)
Timestamp: Wed, 27 Apr 2011 03:22:46 UTCMessage: Unable to get value of the property 'kana': object is null or undefined
Line: 1
Char: 35774
Code: 0
URI: https://imode.net/imail/oexaf/ajs/common1.jsふと思い立って、開発で使っているIETesterを使ってみると・・・普通に使えた!これで心置きなくWindows Update出来る。IE9は無視できないと思うので、そのうち対応すると思う。< Related Posts >海外生活で日本の携帯はどうする?Docomo F-01Cに機種変< 2011/05/04 Modified >
でも遅いし、crashするので、おとなしくモバイルモードで使っている。< 2011/05/14 Modified >
Mobile Modeだと添付Fileが閲覧できない。しょうがなくVMware上のWindowsで使うようになったけど、一般の人はそんな環境もないので困るんじゃないかな?(そもそも一般の人はimode.netを使わない?)。これ有料Serviceだよね?

Google AccountとGoogle Apps Accountを切り替えて使う

Google Appsと@gmail.comのAccountをSeamlessに切り替えたくて調査したMemo.最近Google AppsのAccountとGmail Accountが統合された(同じCookieを使う)ので、(同じBrowserで)切り替えるためにはLogoutするか、Multi Loginを利用する必要がある。基本情報とスタート ガイド: 複数のアカウントを同時に使用するMulti Loginは思うように動かなかったので使うのを止めた。今まではIEを@gmail.com専用で使っていたけど、もっとSmartな方法はないものかと検索。スタート ガイド: 複数アカウントを使用するその他の方法試したのがここに書いてある。Google Chromeで複数のプロフィールを使う方法が良さそう。Profileを保存するfolderを選択する(SugarSyncで同期すると便利) Desktopにshortcutを作成 ChromeのThemeを変更して一目で分かるように ついでにIconも変更(ここら辺からico fileをdownload) 本当は完全に結びついてほしいけど、google先生が対応してくれるまではこれで我慢。

[Blogger]Google Webmasterのsitemapが無効になっていた

イメージ
何となくGoogle Webmasterを見ていたらBloggerのSitemap Statusが無効になっているのに気づいた。検索してみると下記Blogで説明されていることかと思ったら違うみたい。Blogger beta と Google Webmaster Tools (Google Sitemaps)私の場合はBloggerのFeedをFeedBurnerを使って管理しているので、そこにRedirectするのが原因みたい。下記Blogを参考にRedirectしないparameterを追加して登録し直したら解決。Submit Your Blogger Sitemap to Google Webmaster Tools!

Bloggerの記事にFacebook, Twitterのshare linkを表示

前に見つけたscrollしてもついてくるjQuery Pluginを使って、Bloggerの記事にFacebookのlike buttonとTwitterのtweet buttonを埋め込んだときのMemo.jquery-scroll-followはjQueryとjquery UI Coreが必要なので、Google Libraries APIを使う。困ったのがBloggerにJavaScript Fileを添付する機能がないので、どこか外部Serverに置いて参照しなければならない。これはGoogle Sitesに置くことにした。前の記事を参考に。あとは実際にBloggerの管理画面の「HTMLの編集」で「ウィジェットのテンプレートを展開」にcheckしてScriptを埋め込む。head tag内に以下を埋め込む<!-- Start Share Links Script and CSS-->
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <script src='https://www.google.com/jsapi?key=google-api-key' type='text/javascript'/>
  <script type='text/javascript'>
    google.load(&quot;jquery&quot;, &quot;1&quot;);
    google.load(&quot;jqueryui&quot;, &quot;1&quot;);
  </script>
  <script src='https://sites.google.com/site/hoge/jquery.scrollfollow.js?attredicts=0' type='text/javascript'/>
  <script type=&…

[CentOS]Xampp for LinuxのProFTPDを設定

外部からAccessする人のために設定したときのMemo.環境はCentOS 5, Xampp for Linux(Lampp) 1.6.8a通常はlinux userを使ってhome directoryにAccessする使い方だけど、/optの下で公開用のdirectoryを管理しているので、ここに別々のuserで別々のdirectoryにloginさせたい。参考にしたのは公式siteのExample configurations.# /etc/rc.d/init.d/lampp securityをやっている前提。loginさせるhoge1, hoge2をLinux userとして追加する(home directoryは作らない)。passwordも設定する。# useradd -M hoge1
# passwd hoge1# useradd -M hoge2
# passwd hoge2ProFTPDの設定fileに以下を追記。# vi /opt/lampp/etc/proftpd.conf<VirtualHost ftp.hoge.com>
    ServerName       "FTP Server"
    DefaultRoot      /opt
    AllowOverwrite   yes    #まずは全てを隠す
    <Directory /opt/*>
        <Limit ALL>
            DenyAll
        </Limit>
    </Directory>    #hoge1に見せるdirectory
    <Directory /opt/dir1>
        <Limit ALL>
            AllowUser hoge1
            DenyAll
        </Limit>
    </Directory>    #hoge2に見せるdirector…

Singaporeで郵便番号(zip/postal code)を調べる

最近引越しした所の郵便番号(zip/postal code)を調べたMemo.こちらのSiteでkeywordを入力すると検索してくれる。zip codeから住所を検索できるので確かめるのにも使える。http://www.streetdirectory.com/

[CentOS]lessから起動するEditorをnanoからviに変更

CentOSのDefaultのEditorをviに変更したときのMemo. VPS(Virtual Private Server)を最小構成で借りて、設定Fileを編集しようとするとnanoが起動する。viに慣れているので使いかってが違い過ぎて嫌。lessを使って参照してから[v]でEditorを起動するやり方をしているので、その変更方法。lessのmanualを見ると# man less環境変数のVISUAL or EDITORを使うみたいなので# vi ~/.bashrcEDITOR=vi
VISUAL=vi
export EDITOR
export VISUAL反映させる。# source ~/.bashrc環境変数を確認するときは# printenv

Bloggerにfacebook用のOpen Graphを設置

このBlogにfacebookのlike buttonを設置したので、Facebook用のOpen Graph Tagを設置したときのMemo.Open GraphはSocial Graphを作成するときに利用されるProtocol(規約、約束事)。Facebook, MixiなどのSNSから「like」or「イイネ」されてSocial化されたときにsiteの要約をSNS側に通知することができる。詳しくは下記。[IT戦記]フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何かBloggerへの設置方法は下記siteにあるcode をdashboard → design → edit html からheader tagに挿入して保存。Facebook Open Graph protocol For Blogger確認はFacebook Tools URL Linterで。ちなみにSocial Graphの記述方法はXhtml Friends Network(XFN)というのもある。最近wordpressのthemeにrel属性があるのは、これを表現しているからみたい(?)。これはまた今度調べる。< 2011/12/03 Modified >
各記事をLikeしたときに表示される画像をこのServiceを使って表示させるように設定した。DebuggerでWarningがでるので、og:localeも追記<meta content='ja_JP' property='og:locale'/>< Related Posts >Bloggerの記事にFacebook, Twitterのshare linkを表示Bloggerにfaviconを設定してみた

[jQuery]z-indexを使わずに特定の要素を前面に表示する

Design重視のweb siteの場合に、HTMLの構造を無視してTitleだけ全ての要素より前面に表示したい場合がある。z-indexをゴニョゴニョすることで解決する場合もあるけど、なぜか前面に出てくれなかったので無理やり前面にするやり方。追記: 出来なかったのは親要素をoverflow: hiddenにしてたから。考えた末にjQuery UIでも使っているようなbodyタグにappendして、positionを設定する方法にした。jQuery UI 1.8からpositionというUtilityが追加されているので、これを使うとサクっと実現できる。Sample ScriptjQuery(function(){
    var jSelect = jQuery("#tag-id");
    var jParent = jSelect.parent();
    jQuery("body").append(jSelect);
    jSelect.position({
      my: "left top", at: "left top", of: jParent, offset: "-20 -10"
    });
});tag-idのタグを一度bodyタグの直下に移動させてから親要素だった位置に戻す。offsetで少しだけ左上に移動させている。<追記>
この方法timingによって、表示されなかったり安定しない。setTimeoutも使ってみたけど、2つ以上要素があるとfirefox以外ではズレる。cssのpositionを使った方が安全。まぁ、こんな方法もあるという感じで。

PHPのframeworkとCMS(wordpress or joomla or drupal)の人気

イメージ
今後開発していく上でどのframeworkやCMSを使っていくべきか調べたmemo.世界中でどれくらい人気があるかはGoogle Trendsを使うと分かりやすい。CakePHP, Symfony, Zend Framework, CodeIgniterの比較表示速度、開発のしやすさ、Communityの活発さなど全てを考慮したRankingだと思っていいと思う。最近はCodeIgniterがいい感じらしい。ちなみに前はguessworkを使っていたけど、これは開発が止まっているみたい。今度はCMSで調べてみるWordpress, Joomla, Drupalの比較wordpressの人気が顕著。joomlaとdrupalも使ってみたいけど、しばらくはwordpressでいこうと思う。

[Wordpress]適用されるfilterとactionを表示する

wordpressはfilterとactionをいろんなtimingで実行できる仕組みを用意しているけど、debugするときにどのfilterやactionが適用されているのか分からなくて困る。filterとactionの一覧を表示するには$wp_filterというglobal変数を表示すると分かるglobal $wp_filter;var_dump($wp_filter);詳しくはwp-includes/plugin.phpに書いてある。<Related Posts>Wordpress 開発リファレンスのリンク集【PHP】オブジェクトと連想配列。相互変換する

[jQuery]Scrollしても位置を固定のままにしてくれるPlugin

イメージ
Mashableのように記事の横にtweetとfacebookのlike buttonを表示する方法を探してたときのMemo.jQuery Scroll Followを使うと良さそう。特定の範囲だけscrollするように設定することができる。導入するにはsampleを見てcssも設定する必要あり。こんな感じで実装。

[Change Log][Blogger]BlogのLayoutを変更

イメージ
Change LogBloggerのPage機能を使ってネコ写GadgetをそっちにHome Pageに表示する記事数を3にSidebarのfacebook, twitterのgadget(share link)は削除詳細記事を表示したときだけshare linkを表示するようにCustomizeGoogle WebmasterのSite Performanceがどう変化するか楽しみ。↓今のところはこんな感じ。< Related Posts >ブログ(Blogger)のテーマ(デザイン)を変更してみた

WordPressのTheme画面から(Loginせずに)Ajaxで通信

Wordpressのpluginを作っていて、Ajax通信をするときにハマったMemo。環境: WordPress 3.1.4まずは参考SiteからAJAX in Plugins - WordPress Codex 日本語版AJAX - WordPress Codex(公式サイト)AJAX in Plugins | WordPress Codex< 2013/01/02 Modified >
WordPress 3.5にUpgradeしたらwp-load.phpをtargetにするとhookしてくれなくなった。公式Siteにあるようにadmin_url('admin-ajax.php');へRequestする必要がある。hookするにはadd_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');"_nopriv"はLoginしていない場合。ajax通信の場合は"DOING_AJAX"が定義されるので、これを内部で使って分岐することも出来る。詳しくはamin-ajax.phpを参照。loginしている(管理画面)前提ならadmin-ajax.phpに向けてaction parameterを付けてPOSTすれば、wp_ajax_(action名)にhookできるので簡単。loginしていない状態からはhome_url('/wp-load.php')をtarget先にしてajax通信をする。あとはplugin側でinitとかにhookすれば出来る。function hoge_custom_function() {
    if (!empty($_POST['action']) ){
        if ($_POST['action'] == 'ajax_hoge') {
            ...something...
         …

IEのAjax通信をDebugするときにPOST情報を表示「Fiddler2」

イメージ
Wordpressの開発をしているときにIEのAjaxだけ失敗するので調査したMemo。jQueryを使ってAjax通信を行うときにfirefoxではfirebugを使えばPOSTされる内容を簡単に確認できる。IE(Internet Explorer)ではDeveloper Toolsを使えば出来る?と思ったけど、それらしい項目がない。しょうがないので「Fiddler」というApplicationをInstall。このSoftはHTTP通信を監視してくれる。Browserに関係なく全てのHTTP通信が表示されるので、どんなSoftがどんな情報を送信しているかも分かる。Process Filterを使えばIEのProcessだけ監視とかも簡単にできる。結局、wp-ajax.phpに対してloginせずPOSTしていたのが原因だったのだけれど・・・。下記記事も参考に。[Wordpress Codex]AJAX in Plugins

Windows Live MailからThunderbirdに乗り換えた

前の会社ではGoogle Appsを導入していたので、Mailを全てcloudで管理していた。SingaporeではMail環境をどうしようか迷ったときのMemo。OSはWindows7。結局POP3 server → Gmail(Tagを付けてServerにMessageを残す) POP3 server → Thunderbird(1日前のMessageは削除) → 返信(BCCに自動でGmailのaddressを追加) という感じにした。ちなみにGmailは独自DomainのGoogle Apps。SMTPの設定をしておけば外出先からでもGmailを使って返信が出来る。最初はWindows Live Mailを使っていたけど、Thunderbirdの方が圧倒的に使いやすかった。理由は下記。WL Mailは自動でBCCに特定のAddressを設定することが出来ない WL Mailは新着MailをPopupで通知する機能がない(New Mail Attentionがオススメ) ThunderbirdのGoogle Contacts addonを使えばGmail(Google Apps)のAddress張と同期できて幸せ Display Mail User Agent Extensionも相手のMail Clientが分かって面白い。 <関連記事>Thunderbirdのアドレス帳をGoogle Apps(Gmail)の連絡先に移行【メモ】Thunderbirdアドオン

Xampp for Linuxを別Portで起動する設定

すでにいろいろなServiceが動いているServerに一時的に切り分けた環境を構築したくて設定したMemo。環境はCentOSXampp for Linuxは公式siteからDownload。まずはそれぞれのconfig fileを編集してportを変更する。[apache] lampp/etc/httpd.confListen 80
ServerName localhost:80[apache] lampp/etc/extra/httpd-ssl.conf「443」で検索して適当なport noにする。[mysql] lampp/etc/my.cnf(2箇所)port            = 3306[proftp] lampp/etc/proftpd.confPort                            21lamppの起動Scriptを編集。# cp /opt/lampp/lampp /etc/rc.d/init.d/
# vi /etc/rc.d/init.d/lampp80, 443, 3306, 21で検索してそれぞれ置き換える。その他Xampp for Linuxの基本的なinstallは前の記事も参考に。起動してみる。# /etc/rc.d/init.d/lampp start
# /etc/rc.d/init.d/lampp securityphpMyAdminもportを変更。# vi /opt/lampp/phpmyadmin/config.inc.php$cfg['Server'][$i]['host'] = '127.0.0.1';
$cfg['Server'][$i]['port'] = '3307';これを追記。Firewallの設定も忘れずに。FTPの場合はpassive modeを使えない(既に別のFTP serverがいるから)ので、FileZillaでaccessする場合は、転送設定 → activeにして接続しないと認証は通るけど、file一覧で失敗する。< Related Posts >Xampp For Linux(Lampp)でサーバ構築と設定【Linux】Xamp…

XAMPP for Linux(lampp)でphp4の環境を整える

お客様の環境がPHP4なので、PHP4の環境をInstall、設定したときのMemo。環境はCentOS5XAMPP for Linuxを使うと早い。前の環境はMySQLのDatabaseだけexportしておいて、renameするだけでよい。version1.7からphp4が削除されているので、こちらから1.6.8aをdownloadする。あとは普通のXAMPPと同じ。一応commandをMemo。# /etc/rc.d/init.d/lampp stop
# cd /opt/
# mv lampp lampp-1.7.1
# rm -f /etc/rc.d/init.d/lampp
# tar xzvf xampp-linux-1.6.8a.tar.gz
# rm -f xampp-linux-1.6.8a.tar.gz
# cp lampp/lampp /etc/rc.d/init.d/
# /etc/rc.d/init.d/lampp start
# /etc/rc.d/init.d/lampp stopssl
# /etc/rc.d/init.d/lampp stopftp
# /etc/rc.d/init.d/lampp php4
# /etc/rc.d/init.d/lampp security
# cp -r /opt/lampp-1.7.1/etc/conf.d/ /opt/lampp/etc/
# vi lampp/etc/http.confUser apache
Group apache# conf.d
Include etc/conf.d/*.conf# /etc/rc.d/init.d/lampp restartxamppのStart Pageにaccessして確認。権限でErrorになる場合は
# chown apache. /opt/lampp/htdocs/xampp/*.tmp
# chown apache. /opt/lampp/phpmyadmin/config.inc.php<関連記事>Xampp For Linux(Lampp)でサーバ構築と設定

Subversionの認証にMac ServerのOpen Directoryを使う

前の記事ではOpen Directoryの設定まで。次は実際にUserを追加してOpen Directory + Apache + Subversionを連携させる(誰がcommitしたのか分かるようにする)。Mac OS X Server 10.6.6 Snow Leopard(Mac mini)Userを追加するのは下記記事を参考にした。Leopard ServerのPodcast Producer--WebサービスとXgridを設定しちゃおうWorkgroup Managerを起動して、右上の鍵MarkをClick。rootの権限でlogin。Userを追加するのは直感的に出来ると思う。User or Groupを追加したら、Subversionの設定。基本的にOpenLDAPを使う場合と変わらない・・・と思って設定してたらハマった。Open Directoryを使う場合はDigest認証というのを使うらしい。Server Admin → Web → Setting → Modulesから、auth_digest_apple_moduleを有効にして、apple_digest_moduleを無効にする。ここに一緒に使ってはダメと書いてあったので。
※apple_digest_moduleだけ有効でOKWeb → Sites → (siteを選択) → RealmsからWorkgroup Managerで追加したUser or Groupを選択。Permissionの設定をしておく。これでSave。次はTerminalから直接apacheの設定を変更。下の例では「DeveloperGroup」がSubversionにAccess可能なUserGroup。$ sudo less /etc/apache2/sites/0002_any_8080_.confsubversionのために追記したDirectiveに次のように追加。<Location "/svn">
    DAV svn
    SVNListParentPath On
    SVNParentPath "/svnroot/Repository"
    <LimitExcept GET …