<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>tanarky.com</title>
    <link>http://tanarky.com/blog</link>
    <description>tanarky website</description>
    <pubDate>Sun, 15 Jun 2014 10:00:45 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>会社を設立したときのIT環境をどうするかメモ1</title>
      <link>http://tanarky.com/blog/2014/06/15/016_company_management_memo_1</link>
      <pubDate>Sun, 15 Jun 2014 11:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/06/15/016_company_management_memo_1</guid>
      <description>会社を設立したときのIT環境をどうするかメモ1</description>
      <content:encoded><![CDATA[<div class="document">
<p>自分で会社を設立した場合、IT環境をどうするか考えてみたのでメモ</p>
<p>目的は以下の様なことを最小限の運用コストで実現すること</p>
<ol class="arabic simple">
<li>ドメイン管理</li>
<li>社員のアカウント（入社・退職管理）</li>
<li>社内ツールの運用(メールや社内wiki)</li>
<li>外部公開用ホームページや製品ページ運用(要ブログ機能)</li>
</ol>
<p>結論から言うと、ほとんどをGoogleが提供するツールでなんとかする</p>
<div class="section" id="id1">
<h3>1. ドメイン管理</h3>
<p>まずはドメインの取得だが、これは好きなサービスを使えばいいと思う。</p>
<p>個人的には valuedomain に慣れているが、そういうものがなければ
今後の AWS 連携を考慮して Amazon 提供の Route 53 がいいかもしれない。</p>
</div>
<div class="section" id="id2">
<h3>2. 社員のアカウント（入社・退職管理）</h3>
<p>アカウント管理の容易さやその他のツールとの連携を考えると、
有料とはいえ Google Apps for Business になるかなと考えている</p>
<p>考えられるメリットは以下</p>
<ul class="simple">
<li>メールアカウントとツール(Gmail)の提供 (後述)</li>
<li>2段階認証などセキュリティ面での充実した機能</li>
<li>アカウント管理の容易さ</li>
<li>Google site や AppEngine などとの連携 (後述)</li>
</ul>
<p>2014年6月現在では、1ユーザ600円/月から、となっている</p>
</div>
<div class="section" id="wiki">
<h3>3. 社内ツールの運用(メールや社内wiki)</h3>
<p>社内で業務上必要となるツールには様々なものがあるが、Googleにはほとんどが揃っている</p>
<ul class="simple">
<li>社内だけで使うClosedなチャット -&gt; hangouts</li>
<li>社内用wiki -&gt; Google site</li>
<li>メールアカウント -&gt; gmail</li>
<li>メーリングリスト -&gt; Google apps</li>
<li>ファイルサーバ -&gt; Google drive</li>
</ul>
</div>
<div class="section" id="id3">
<h3>4. 外部公開用ホームページや製品ページ運用(要ブログ機能)</h3>
<p>ホームページホスティングサービスやブログサービスについての選択肢は多いが、
以下のことを考えると選択肢は限られてくる</p>
<ol class="arabic simple">
<li>独自ドメイン運用できるか</li>
<li>社員アカウントとの編集権限連動できるか</li>
<li>非エンジニアが容易に編集できるか</li>
</ol>
<p>1については、ほとんどのブログサービスが提供していると思われる</p>
<p>2については、ハードルが上がる。アカウントをGoogle Appsで行う以上、
Googleのサービスを使うか、自前でSSO機能を実装してサービスを構築する必要がある。</p>
<p>3については、ブログ記事の編集ツールが無いとエンジニアのリソースを使ってしまう。</p>
<p>というわけで、結論として以下を考えた</p>
<ul class="simple">
<li>Google AppEngine上にブログサービスを構築</li>
<li>Adminツールから、ブログの編集権限は社員アカウントのみに制限する</li>
</ul>
<p>Github PagesやS3による自前サーバ0な静的サイト運用方法は色々あるが、
上記の要件を満たすものを考えたら、AppEngineによるものしか思い浮かばなかった。</p>
<p>もっといい運用があれば、また記事にしようと思う。</p>
</div>
<div class="section" id="url">
<h3>参考URLなど</h3>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name" colspan="2">Google Apps for Business Prices:</th></tr>
<tr class="field"><td>&nbsp;</td><td class="field-body"><a class="reference external" href="http://www.google.co.jp/intx/ja/enterprise/apps/business/pricing.html">http://www.google.co.jp/intx/ja/enterprise/apps/business/pricing.html</a></td>
</tr>
<tr class="field"><th class="field-name" colspan="2">Github クローンなサービスに関する記事:</th></tr>
<tr class="field"><td>&nbsp;</td><td class="field-body"><a class="reference external" href="http://hiroki.jp/github-clone">http://hiroki.jp/github-clone</a></td>
</tr>
<tr class="field"><th class="field-name" colspan="2">apache-google-apps-sso:</th></tr>
<tr class="field"><td>&nbsp;</td><td class="field-body"><a class="reference external" href="https://github.com/epotocko/apache-google-apps-sso">https://github.com/epotocko/apache-google-apps-sso</a></td>
</tr>
</tbody>
</table>
</div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>Firefox on Mac に Flash Player をインストール</title>
      <link>http://tanarky.com/blog/2014/06/15/015_clean_install_flash_player_to_firefox_on_mac</link>
      <pubDate>Sun, 15 Jun 2014 10:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/06/15/015_clean_install_flash_player_to_firefox_on_mac</guid>
      <description>Firefox on Mac に Flash Player をインストール</description>
      <content:encoded><![CDATA[<div class="document">
<p>何故か Mac Book Pro の Firefox で Flash Player のインストールに失敗していたので対策した時のメモ</p>
<p>環境は以下のとおり</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Mac OS:</th><td class="field-body">X 10.9.3</td>
</tr>
<tr class="field"><th class="field-name">Firefox:</th><td class="field-body">29.0.3</td>
</tr>
<tr class="field"><th class="field-name" colspan="2">インストールしようとしたFlash Player:</th></tr>
<tr class="field"><td>&nbsp;</td><td class="field-body">14.0.0.125</td>
</tr>
</tbody>
</table>
<p>Flash Player Download Center ( <a class="reference external" href="http://get.adobe.com/flashplayer/">http://get.adobe.com/flashplayer/</a> ) からだと、
インストール途中で失敗していた</p>
<p>結論から言うと、インストール途中で内部的に最新バージョンを取ってきて(ネットワーク?)インストールしている挙動っぽかったので、最初から Full version を落としてきてインストールしたら問題なく完了した。</p>
<p>Full version のリンク先は <a class="reference external" href="http://www.adobe.com/products/flashplayer/distribution3.html">http://www.adobe.com/products/flashplayer/distribution3.html</a></p>
<div class="section" id="url">
<h3>参考URL</h3>
<ul class="simple">
<li><a class="reference external" href="https://support.mozilla.org/ja/questions/920187">https://support.mozilla.org/ja/questions/920187</a></li>
<li><a class="reference external" href="http://toshiohattori.blogspot.jp/2014/01/flash.html">http://toshiohattori.blogspot.jp/2014/01/flash.html</a></li>
<li><a class="reference external" href="https://discussions.apple.com/message/21837402">https://discussions.apple.com/message/21837402</a></li>
<li><a class="reference external" href="http://www.adobe.com/jp/software/flash/about/">http://www.adobe.com/jp/software/flash/about/</a></li>
</ul>
</div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>Mac における zshのPATH設定</title>
      <link>http://tanarky.com/blog/2014/05/25/014_mac_zsh_profile</link>
      <pubDate>Sun, 25 May 2014 15:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/05/25/014_mac_zsh_profile</guid>
      <description>Mac における zshのPATH設定</description>
      <content:encoded><![CDATA[<div class="document">
<p>Mac環境(tmux含む)のPATHがおかしくなったので、メモ</p>
<div class="highlight"><pre>% cat /etc/zprofile
% cat /etc/zshenv
# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
   PATH=&#39;&#39;
   eval `/usr/libexec/path_helper -s`
fi
source /etc/profile.d/rvm.sh
% cat ~/.zlogin
% cat ~/.zprofile
% cat ~/.zshrc
(略)
export PATH=$PATH:$HOME/go/1.1.2/bin
% echo $PATH
/usr/local/rvm/gems/ruby-1.9.3-p392/bin:
/usr/local/rvm/gems/ruby-1.9.3-p392@global/bin:
/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:
/usr/local/rvm/bin:
/opt/local/bin:
/usr/bin:/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/Users/satoshi/go/1.1.2/bin
% ls /etc/paths.d/
% cat /etc/paths
/opt/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin%
</pre></div>
<p>参考URL</p>
<ul class="simple">
<li><a class="reference external" href="http://qiita.com/yuku_t/items/40bcc63bb8ad94f083f1">http://qiita.com/yuku_t/items/40bcc63bb8ad94f083f1</a></li>
<li><a class="reference external" href="http://pastak.hatenablog.com/entry/2014/02/21/025836">http://pastak.hatenablog.com/entry/2014/02/21/025836</a></li>
</ul>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>wildcard DNS for any IP address なサービスの xip.io を使ってみた</title>
      <link>http://tanarky.com/blog/2014/05/06/013_xip_io</link>
      <pubDate>Tue, 06 May 2014 15:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/05/06/013_xip_io</guid>
      <description>wildcard DNS for any IP address なサービスの xip.io を使ってみた</description>
      <content:encoded><![CDATA[<div class="document">
<p><a class="reference external" href="http://xio.io/">http://xio.io/</a> provides wildcard DNS for any IP address.</p>
<p>というわけで使ってみたメモ。</p>
<p>任意のportで受け付けるには、以下の様に一旦80番ポートで受けてからサブドメインで再度proxyするようにnginxを設定した</p>
<div class="highlight"><pre>http://port8000.10.0.0.1.xip.io/ -&gt; nginx(port 80) on 10.0.0.1 -&gt; (proxy to 8000) -&gt; http://127.0.0.1:8000/
http://port8080.10.0.0.1.xip.io/ -&gt; nginx(port 80) on 10.0.0.1 -&gt; (proxy to 8080) -&gt; http://127.0.0.1:8080/
</pre></div>
<p>自分のサーバに置くnginx confのサンプルは以下の通り。</p>
<div class="highlight"><pre><span class="k">server</span> <span class="p">{</span>
  <span class="kn">listen</span> <span class="mi">80</span><span class="p">;</span>

  <span class="kn">server_name</span> <span class="s">&quot;~^port(\d+)\.([^.]+\.[^.]+)\.((?:\d</span><span class="p">{</span><span class="kn">1,3}\.){3}\d{1,3})\.xip\.io$&quot;</span><span class="p">;</span>

  <span class="kn">access_log</span>  <span class="s">/var/log/nginx/dev.access.log</span><span class="p">;</span>

  <span class="kn">location</span> <span class="s">/</span> <span class="p">{</span>
    <span class="kn">proxy_set_header</span> <span class="s">host</span> <span class="nv">$host</span><span class="p">;</span>
    <span class="kn">proxy_set_header</span> <span class="s">x-real-ip</span> <span class="nv">$remote_addr</span><span class="p">;</span>
    <span class="kn">proxy_set_header</span> <span class="s">x-forwarded-for</span> <span class="nv">$proxy_add_x_forwarded_for</span><span class="p">;</span>
    <span class="kn">proxy_pass</span> <span class="s">http://127.0.0.1:</span><span class="nv">$1</span><span class="p">;</span>
  <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>vagrant version up and plugin install</title>
      <link>http://tanarky.com/blog/2014/05/06/012_install_vagrant_aws</link>
      <pubDate>Tue, 06 May 2014 11:00:00 JST</pubDate>
      <category><![CDATA[aws]]></category>
      <category><![CDATA[tips]]></category>
      <category><![CDATA[vagrant]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/05/06/012_install_vagrant_aws</guid>
      <description>vagrant version up and plugin install</description>
      <content:encoded><![CDATA[<div class="document">
<div class="section" id="vagrant-version-up">
<h3>vagrant version up</h3>
<p>vagrant 1.6.0 がリリースされたのでバージョンアップした</p>
<p>vagrant selfupdate などでバージョンアップしたかったが対応してなかった</p>
<p>version upには、dmgを落として再installする必要あり</p>
</div>
<div class="section" id="vagrant-plugin-install">
<h3>vagrant plugin install</h3>
<p>vagrantにはpluginで機能拡張できる</p>
<p>packerを調べていたら以下のpluginを発見したので、以下の手順でinstallした</p>
<p><a class="reference external" href="https://github.com/mitchellh/vagrant-aws">https://github.com/mitchellh/vagrant-aws</a></p>
<pre class="literal-block">
% vagrant plugin list
% vagrant plugin install vagrant-aws
</pre>
</div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>ssh の Lオプション(port forward)</title>
      <link>http://tanarky.com/blog/2014/05/06/011_how_to_port_foward</link>
      <pubDate>Tue, 06 May 2014 10:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <category><![CDATA[ssh]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2014/05/06/011_how_to_port_foward</guid>
      <description>ssh の Lオプション(port forward)</description>
      <content:encoded><![CDATA[<div class="document">
<p>母艦Macから、Vagrant内にあるwebサーバを見るとき等に設定する</p>
<pre class="literal-block">
ssh 192.168.100.10 -A -L 8080:localhost:8000
    ^^^^^^^^^^^^^^    ^^^^^^^^^^^^^^^^^^^^^^
    1                 2
</pre>
<ol class="arabic simple">
<li>vagrant hostのIP</li>
<li>local port:vagrant host name or IP:vagrant host port
母艦で http://localhost:8080/ とすると http://vagrant_host:8000/ につながる</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>mysql_multiをmacにinstall</title>
      <link>http://tanarky.com/blog/2012/10/11/010_mysql_multi_on_mac</link>
      <pubDate>Thu, 11 Oct 2012 10:00:00 JST</pubDate>
      <category><![CDATA[env]]></category>
      <category><![CDATA[install]]></category>
      <category><![CDATA[mysql]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2012/10/11/010_mysql_multi_on_mac</guid>
      <description>mysql_multiをmacにinstall</description>
      <content:encoded><![CDATA[<div class="document">
<div class="contents topic" id="id1">
<p class="topic-title first">目次</p>
<ul class="simple">
<li><a class="reference internal" href="#install" id="id2">install</a></li>
</ul>
</div>
<p>Macbookにて、mysql_multiで複数サーバを立てたので、その時のinstallメモ</p>
<p>目的は、dual master replication の failover動作確認をするため</p>
<div class="section" id="install">
<h3><a class="toc-backref" href="#id2">install</a></h3>
<p>Macにmysqlはinstall済みであることが前提</p>
<p>メモリを食うので、必要な時だけ起動するようにplistはunloadしておく</p>
<div class="highlight"><pre># 起動していたら停止
% sudo /opt/local/share/mysql5/mysql/mysql.server stop
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

# ここに入っている + pathは通しておく
% which mysql5
/opt/local/bin/mysql5

# エラーになるのでリンクを張っておく等
% sudo ln -s /opt/local/bin/my_print_defaults5 /opt/local/bin/my_print_defaults
% mkdir -p /Users/satoshi.tanaka/var/mysql1
% mkdir -p /Users/satoshi.tanaka/var/mysql2
% mkdir -p /Users/satoshi.tanaka/var/log

# ~/.my.cnf を準備, user名やportなどは適当に変更すること
% cat ~/.my.cnf
[mysqld_multi]
mysqld     = /opt/local/lib/mysql5/bin/mysqld_safe
mysqladmin = /opt/local/lib/mysql5/bin/mysqladmin
user       = root

[mysqld1]
server-id  = 1
socket     = /tmp/mysql1.sock
port       = 13306
pid-file   = /tmp/mysql1.pid
datadir    = /Users/satoshi.tanaka/var/mysql1
language   = /opt/local/share/mysql5/mysql/english
user       = satoshi.tanaka
log        = /Users/satoshi.tanaka/var/log/mysqld1.log
log-error  = /Users/satoshi.tanaka/var/log/mysqld1.error.log

[mysqld2]
server-id  = 2
socket     = /tmp/mysql2.sock
port       = 13307
pid-file   = /tmp/mysql2.pid
datadir    = /Users/satoshi.tanaka/var/mysql2
language   = /opt/local/share/mysql5/mysql/english
user       = satoshi.tanaka
log        = /Users/satoshi.tanaka/var/log/mysqld2.log
log-error  = /Users/satoshi.tanaka/var/log/mysqld2.error.log

# datadirの準備
% mysql_install_db5 --datadir=./var/mysql1/
% mysql_install_db5 --datadir=./var/mysql2/

# 起動して確認
% /opt/local/bin/mysqld_multi5 start --log=/tmp/mysqld_multi.log
% /opt/local/bin/mysqld_multi5 report --log=/tmp/mysqld_multi.log
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
% mysql5 -S /tmp/mysql2.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.63-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.

mysql&gt;
</pre></div>
</div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>Rhino/Node Javascript実行環境構築 on Macbook</title>
      <link>http://tanarky.com/blog/2012/03/12/00f_javascript_env_on_macbook</link>
      <pubDate>Mon, 12 Mar 2012 14:00:00 JST</pubDate>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[env]]></category>
      <category><![CDATA[install]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2012/03/12/00f_javascript_env_on_macbook</guid>
      <description>Rhino/Node Javascript実行環境構築 on Macbook</description>
      <content:encoded><![CDATA[<div class="document">
<div class="contents topic" id="id1">
<p class="topic-title first">目次</p>
<ul class="simple">
<li><a class="reference internal" href="#rhino" id="id3">Rhino</a></li>
<li><a class="reference internal" href="#node" id="id4">Node</a></li>
</ul>
</div>
<p>Macbookにて、Javascript実行環境を整えたので、その際の手順履歴</p>
<div class="section" id="rhino">
<h3><a class="toc-backref" href="#id3">Rhino</a></h3>
<p>Rhino = Java実装のJavascript実行環境</p>
<p>その他の言語のJava実装は以下のものがある</p>
<div class="highlight"><pre>Jython - port of Python.
JRuby - port of Ruby.
Rhino - port of ECMAScript.
Clojure - Lisp dialect.
Groovy - Scripting language for the JVM.
Scala - object-oriented, functional language for the JVM.
</pre></div>
<p>Macにinstallするには、brew installで一発。</p>
<p>2012/03/12 時点でinstallされるversionは1.7R3</p>
<div class="highlight"><pre>brew install rhino
</pre></div>
<p>実行するには以下のjarを指定する。-eでコードを直接渡す。</p>
<div class="highlight"><pre>% java -jar /usr/local/Cellar/rhino/1.7R3/libexec/js.jar -e &quot;print(&#39;hello world!&#39;);&quot;
java -jar /usr/local/Cellar/rhino/1.7R3/libexec/js.jar -e &quot;print(&#39;hello worldjava -jar /usr/local/Cellar/rhino/1.7R3/libexec/js.jar&#39;);&quot;
hello worldjava -jar /usr/local/Cellar/rhino/1.7R3/libexec/js.jar
%
</pre></div>
<p>インタラクティブシェルは以下の通りに実行できる</p>
<div class="highlight"><pre>% java -jar /usr/local/Cellar/rhino/1.7R3/libexec/js.jar
Rhino 1.7 release 3 2011 05 09
js&gt; print(&#39;hello world!&#39;);
hello world!
js&gt;
</pre></div>
<p><a class="reference external" href="https://developer.mozilla.org/ja/Rhino">Rhino</a></p>
</div>
<div class="section" id="node">
<h3><a class="toc-backref" href="#id4">Node</a></h3>
<p><a class="reference external" href="http://nodejs.org/">http://nodejs.org/</a></p>
<p>こちらもJavascript実行環境。実装はV8だったりSpiderMondkeyだったり。</p>
<p>同じく、brew installにて。</p>
<div class="highlight"><pre>% brew install node
</pre></div>
<p>npmと単体テストフレームワークもついでにinstall</p>
<div class="highlight"><pre>% git clone git://github.com/creationix/nvm.git ~/.nvm
% nvm install v0.6.12
% nvm alias default v0.6.12
% source ~/.nvm/nvm.sh
% curl http://npmjs.org/install.sh | sh
% npm install nodeunit
% ln -s $HOME/.npm/nodeunit/0.7.4/package/bin/nodeunit $HOME/bin/nodeunit
</pre></div>
<ul class="simple">
<li><a class="reference external" href="http://d.hatena.ne.jp/ToQoz/20120312/1331512182">zsh on mac で nvm -&gt; nvm_ls:17: no matches found: vdefault* 対処</a></li>
</ul>
</div>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>thinkpad x100eのキーボード設定メモ</title>
      <link>http://tanarky.com/blog/2012/02/21/00e_thinkpad_x100e_keyboard_config</link>
      <pubDate>Tue, 21 Feb 2012 14:00:00 JST</pubDate>
      <category><![CDATA[tips]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2012/02/21/00e_thinkpad_x100e_keyboard_config</guid>
      <description>thinkpad x100eのキーボード設定メモ</description>
      <content:encoded><![CDATA[<div class="document" id="thinkpad-x100e">
<h1 class="title">thinkpad x100eのキーボード設定メモ</h1>
<p>Macbook Proとの使い分けをするために、
できるだけ似たようなキー操作になるように模索したメモ</p>
<p>thinkpad(Ubuntu 11.10)の英語キーボードの設定をどうするか、という視点で書く</p>
<ol class="arabic simple">
<li>システム設定の&quot;キーボードレイアウト&quot;を開き、オプションで以下の設定をする</li>
</ol>
<blockquote>
<ol class="loweralpha simple">
<li>Alt/Winキーの操作 -&gt; デフォルトのまま</li>
<li>Ctrlキーの位置 -&gt; &quot;Make Caps Lock an additional Ctrl&quot;</li>
</ol>
</blockquote>
<ol class="arabic simple" start="2">
<li>IBusの設定(Input Methods)を開いた以下の設定をする</li>
</ol>
<blockquote>
<ol class="loweralpha simple">
<li>入力モードの切り替えを、Alt+Spaceにする</li>
<li>言語パネルはメニューに組み込む</li>
</ol>
</blockquote>
<ol class="arabic simple" start="3">
<li>システム設定の&quot;キーボード&quot;を開き、ショートカットを以下の設定とする</li>
</ol>
<blockquote>
<ol class="loweralpha simple">
<li>&quot;ウィンドウメニューをアクティブにする&quot;ショートカットをWin+Spaceに</li>
</ol>
</blockquote>
<p>これにより、</p>
<ul class="simple">
<li>Alt+TabでWindow切り替えができる。
MacだとAltの位置(Spaceの左隣)にコマンドキーがあるので、同じキー</li>
<li>Alt+Spaceで入力切り替えが出来る。
MacだとAltの位置(Spaceの左隣)にコマンドキーがあるので、これも同じキー</li>
<li>Win+Spaceでウィンドウメニューを開ける。
Macだと別ショートカットなので、これに割り当ててもよし</li>
</ul>
<p>以上。</p>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>jQuery UI autocomplete サンプル</title>
      <link>http://tanarky.com/blog/2012/02/11/00c_jqueryui_autocomplete_samples</link>
      <pubDate>Sat, 11 Feb 2012 21:00:00 JST</pubDate>
      <category><![CDATA[jquery]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[jqueryui]]></category>
      <guid isPermaLink="true">http://tanarky.com/blog/2012/02/11/00c_jqueryui_autocomplete_samples</guid>
      <description>jQuery UI autocomplete サンプル</description>
      <content:encoded><![CDATA[<div class="document">
<div class="contents topic" id="id1">
<p class="topic-title first">目次</p>
<ul class="simple">
<li><a class="reference internal" href="#id2" id="id6">スクロールバー付きサンプル</a></li>
<li><a class="reference internal" href="#suggest" id="id7">同一suggestデータサンプル</a></li>
<li><a class="reference internal" href="#remotesuggest" id="id8">remote問い合わせsuggest</a></li>
<li><a class="reference internal" href="#id5" id="id9">関連リンク</a></li>
</ul>
</div>
<p>jQuery UI の autocomplete ウィジェットについて
調査したので、その時のメモ</p>
<dl class="docutils">
<dt>jquery version</dt>
<dd>1.7.1</dd>
<dt>jquery UI version</dt>
<dd>1.8.16</dd>
</dl>
<div class="section" id="id2">
<h3><a class="toc-backref" href="#id6">スクロールバー付きサンプル</a></h3>
<p>銀行名か金融機関コードで検索して、
入力補完してくれるサンプルを書いた</p>
<ul class="simple">
<li><a class="reference external" href="http://tanarky.com/samples/jqueryui/autocomplete/sample3.html">jquery UI autocomplete スクロール付きサンプル</a></li>
<li><a class="reference external" href="https://github.com/tanarky/tanarky.github.com/blob/master/samples/jqueryui/autocomplete/sample3.html">jquery UI autocomplete スクロール付きサンプル(ソースコード)</a></li>
</ul>
<p>ポイントは以下の通り</p>
<ol class="arabic simple">
<li>.ui-autocompleteクラスにmax-heightを指定することで、autocomplete部分のスクロールを実現</li>
<li>候補がクリックされたときに、そのイベントを拾って、別フィールド2つにデータを補完</li>
<li>別フィールドはreadonly属性で編集不可に</li>
<li>autocomplete optionにminLength=0を指定。入力がなくても、下キーで候補表示</li>
<li>suggestデータは、javascript内部にベタ書きで持っている。</li>
</ol>
<blockquote>
<ul class="simple">
<li>データ構造は、配列</li>
<li>配列の要素は、Hashで、valueというキーの値が検索対象となる</li>
<li>value以外は、任意のキーを指定可能</li>
</ul>
</blockquote>
</div>
<div class="section" id="suggest">
<h3><a class="toc-backref" href="#id7">同一suggestデータサンプル</a></h3>
<p>こちらも、銀行名か金融機関コードで検索して、
入力補完してくれるサンプル。</p>
<p>前のサンプルと違う点は、2つのフィールドに対して、同一のsuggestデータを使っている</p>
<ul class="simple">
<li><a class="reference external" href="http://tanarky.com/samples/jqueryui/autocomplete/sample4.html">jquery UI autocomplete 2つの検索フィールドサンプル</a></li>
<li><a class="reference external" href="https://github.com/tanarky/tanarky.github.com/blob/master/samples/jqueryui/autocomplete/sample4.html">jquery UI autocomplete 2つの検索フィールドサンプル(ソースコード)</a></li>
</ul>
<p>ポイントは以下の通り</p>
<ol class="arabic simple">
<li>focusオプションで、候補にマウスオーバーした時点でデータを入れる(return false忘れずに)</li>
<li>複数のフィールドに同一オプションでautocomplete登録</li>
</ol>
</div>
<div class="section" id="remotesuggest">
<h3><a class="toc-backref" href="#id8">remote問い合わせsuggest</a></h3>
<p>上記2つのサンプルは、挙動を理解しやすいようにするため、
サジェストするためのデータはコードに埋めたが、
remote API呼び出しも可能。</p>
<ul class="simple">
<li><a class="reference external" href="http://jqueryui.com/demos/autocomplete/#remote">jquery UI autocomplete 公式ドキュメント demo(remote API呼び出し)</a></li>
</ul>
<p>上記のサンプルでは、jquery側空、search.phpというAPIを呼び出し、
APIがJSON形式のデータを返している。</p>
<p>APIは、GETのパラメータで&quot;term&quot;を受け取り、
それに基づくsuggestデータを返却している</p>
<p><a class="reference external" href="http://jqueryui.com/demos/autocomplete/search.php?term=or">http://jqueryui.com/demos/autocomplete/search.php?term=or</a></p>
</div>
<div class="section" id="id5">
<h3><a class="toc-backref" href="#id9">関連リンク</a></h3>
<ul class="simple">
<li><a class="reference external" href="http://jqueryui.com/demos/autocomplete/">jquery UI autocomplete 公式ドキュメント demo</a></li>
</ul>
</div>
</div>
]]></content:encoded>
    </item>
  </channel>
</rss>
