<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom">
	<title>Karappo web design room</title>
	<subtitle>ウェブ関係の知識のストック</subtitle>
	<id>http://labs.karappo.net/kwdr/:6</id>

	<link rel="alternate" type="text/html" href="http://labs.karappo.net/kwdr/" />
	<link rel="self" type="application/atom+xml" href="http://labs.karappo.net/kwdr/atom.php" />
	<generator uri="http://nucleuscms.org/">Nucleus CMS v3.71</generator>
	<updated>2013-05-07T15:55:11Z</updated>

	<entry>
 <title type="html"><![CDATA[レイヤーごとにPDF書き出しするJavascript（２）]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=313" />
 <author>
  <name>terada</name>
 </author>
 <updated>2013-05-07T15:55:11Z</updated>
 <published>2013-05-08T00:55:11+09:00</published>
 <content type="html"><![CDATA[４年前のスクリプト<a href="http://labs.karappo.net/kwdr/index.php?itemid=194">レイヤーごとにPDF書き出しするJavascript</a> 。これがなんと、いまだに現役で結構多くの人に使われているようなので、今更感は半端ありませんが、ちょっとアップデートしました。<br />
PDFプリセットへの対応は、時間がなくて間に合いませんでした。すみません、また今度・・・<br />
<br />
<img src="http://labs.karappo.net/media/1/20130508-SaveOptionDialog.png" width="614" height="516" alt="dialog" title="dialog" /><br />
<br />
<a href="http://labs.karappo.net/data/SaveAsPDFByLayers2.zip" linkcnt="saveaspdfbylayers_js_2">SaveAsPDFByLayers2.zip</a><br />
<br />
<br />
↓ もし気に入ったらお願いします！<br />
<a href="http://gum.co/IUZu" class="gumroad-button">Get this for <strong>120 yen</strong></a><script type="text/javascript" src="https://gumroad.com/js/gumroad-button.js"></script><br />
<br />
↓ もし開発手伝ってくださる方いたらよろしくお願いします。<br />
<a href="https://github.com/naokazuterada/SaveAsPDFByLayers">https://github.com/naokazuterada/SaveAsPDFByLayers</a><br />
<br />
<b>新機能</b><br />
・レイヤーの書出し順序の設定<br />
・PDFのオプション設定<br />
・前回設定の保存<br />
<br />
<b>特徴</b><br />
・ページをレイヤー分けしておくと、自動でPDFに書き出してくれます<br />
・不要なレイヤーは毎回削除するので、無駄にデータが増えません<br />
・レイヤーの並び順に従い、ファイル名の頭に番号がつきます<br />
　（後は、Acrobatで連結してください）<br />
<br />
<b>機能</b><br />
・最上位階層のレイヤーを上（または下）から順にPDFで保存します<br />
・ロックされているレイヤーは操作の対象になりません<br />
・ヘッダーなどの共通部分を含むレイヤーは「表示」＆「ロック」しておくと便利です<br />
・下位階層のレイヤーは操作の対象になりません。また、最上位階層でも「非表示」＆「ロック」状態のレイヤーも非表示のまま書き出し対象になりますので、不必要なレイヤーはあらかじめ破棄しておくことをお勧めします（<a href="http://labs.karappo.net/kwdr/index.php?itemid=195">これ</a>を活用してください）<br />
・書き出されたPDFのファイル名の接頭数字は３桁でつくので、Acrobatで一気に読みこんだ時に順番の入替作業が不要で便利です<br />
<br />
<br />
<b>インストール</b><br />
ダウンロードしたZipファイルを解凍したら「レイヤー毎にPDFとして保存.jsx」を/Applications/Adobe Illustrator/preset/script/以下に移動。その後、Illustratorを起動します。<br />
<br />
<b>使い方</b><br />
1. Illustratorを起動<br />
2. PDFとして書き出したいAIファイルを開く<br />
3. ファイル＞スクリプトから、レイヤー毎にPDFとして保存を選択<br />
4. ダイアログから並び順や保存先、各オプションを設定してOK<br />
<br />
<b>動作確認済の環境</b><br />
Illustrator CS5.1 on MacOSX10.8.3<br />
<br />
※ 上記以外の環境で動いたよって人は、コメントなどもらえると嬉しいです。多分CS2以降大体大丈夫なはず。]]></content>
 <id>http://labs.karappo.net/kwdr/:6:313</id>
</entry><entry>
 <title type="html"><![CDATA[TransmitDiskの再インストール]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=312" />
 <author>
  <name>terada</name>
 </author>
 <updated>2013-03-14T05:48:10Z</updated>
 <published>2013-03-14T14:48:10+09:00</published>
 <content type="html"><![CDATA[Transmit 4.3.3 にアップデートしてから（の、気がするのですが）、FTPサーバーをディスクとしてマウントできる「Disk機能」が突然動作しなくなりました。<br />
マウントしようとすると「操作を完了できませんでした。（POSIX エラー -1 -Unknown error: -1）」という内容のポップアップが出て、マウントできない状態。<br />
<br />
<img src="http://labs.karappo.net/media/1/20130314-transmitdisk-error.png" width="448" height="183" alt="TransmitDisk Error popup" title="TransmitDisk Error popup" /><br />
<br />
再インストールや、AppStoreで3.3.2を再度購入してみたりと試してみましたが、うまくいかずサポートに連絡したところ、下記のようなお返事。<br />
<br />
<br />
<i>I think we've got this sorted out in 4.3.3.<br />
<br />
First, quit Transmit and drag the Application to the Trash. Then delete "Transmit Disk" from ~/Library/Application Support/Transmit/. Now download a fresh copy of Transmit 4.3.3 and reinstall it.</i><br />
<br />
4.3.3で解決したと書いてあって「？」となりましたが、とりあえずこのヒントで<br />
１：Applications/Transmit.appの削除<br />
２：「~/Library/Application Support/」内の「TransmitDisk」「TransmitDisk」（他にもいくつかTransmit◯◯というディレクトリがあったのでそれら全て）を削除し<br />
３：再インストール<br />
<br />
で問題解決しました。３の再インストールはMacAppStoreの4.3.2でも大丈夫でした。<br />
<br />
やれやれ、この機能に相当依存していたのでほっと一安心。<br />
<br />
でも、これが使えない間に試していたSublimeText2の<a href="http://wbond.net/sublime_packages/sftp">SFTP/FTP</a>プラグインも便利でした。Sassなどの外部コンパイル系で生成されるファイルが自動ではファイル監視されないのがちょっと難ありだけど、ローカルにリポジトリを置けるので、そういう意味では今までのTransmitDiskを使った開発よりも良いです。]]></content>
 <id>http://labs.karappo.net/kwdr/:6:312</id>
</entry><entry>
 <title type="html"><![CDATA[Alfredから簡単にSublimeで開く]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=310" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-11-19T15:13:21Z</updated>
 <published>2012-11-20T00:13:21+09:00</published>
 <content type="html"><![CDATA[MacのランチャーソフトAlfredからファイルやフォルダを検索して、そのままSublimeText2で開けるようにします。<br />
名前は"Open Terminal Here"をもじって"Open Subl Here"にしてますが、なんでもいいです。<br />
Actionにチェックを入れておかないと、まずフォルダを探してから・・・っていう使い方ができないので気をつけましょう。<br />
<br />
<img src="http://labs.karappo.net/media/1/20121120-Alfred.png" width="860" height="668" alt="Alfred" title="Alfred" /><br />
<br />
Command部分は下記<br />
<pre>cd {query}<br />
/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl .</pre>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:310</id>
</entry><entry>
 <title type="html"><![CDATA[[MODX] 入力オプションをListBoxにしてリソース一覧取得しつつ、未設定も可能にする]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=309" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-10-17T08:29:01Z</updated>
 <published>2012-10-17T17:29:01+09:00</published>
 <content type="html"><![CDATA[長ったらしい表題ですみません・・・。<br />
<br />
つまりは、入力タイプをListBoxにして、オプション値を下記のように設定すると、<br />
ID123のドキュメント以下のリソース一覧の中から１つのIDを設定できるようなテンプレート変数が作れますが、<br />
これだと、未設定、つまり何も値が設定されていない状態で保存することができないので、<br />
これを何とかしたいということです。<br />
<br />
<pre>@SELECT `pagetitle` AS `name`,`id` FROM `[[+PREFIX]]site_content` WHERE `parent` = 123</pre><br />
<br />
答えは、オプション値に下記を設定します。<br />
<br />
<pre>@EVAL return 'なし==0'.$modx->runSnippet('getResources',array('parents'=>'123','limit'=>'0','tpl'=>'@INLINE ||[[+pagetitle]]==[[+id]]'));</pre><br />
<br />
これで、先頭に「0」を値に持つ「なし」という項目が追加できましたので、規定値を「0」にするなどしておくと目的が達成できます。<br />
@EVALを使うとPHPコードが実行できるので、いろいろ柔軟ですね。]]></content>
 <id>http://labs.karappo.net/kwdr/:6:309</id>
</entry><entry>
 <title type="html"><![CDATA[RSpecのオプション設定]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=305" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-07-15T17:23:38Z</updated>
 <published>2012-07-16T02:23:38+09:00</published>
 <content type="html"><![CDATA[RSpecを使っていると、-c,--color（カラーリングオプション）などはデフォルトでオンにしたいと思います。そういう時は、「~/.rspec」ファイルを作って、そこに「--color」と書いておけば良いようです。<br />
<br />
※ ~/はユーザディレクトリ<br />
<br />
また、プロジェクト毎にも同じ規則でルートに設定ファイルを作れるようです。まだ、必要性分かりませんが。メモ。<br />
<br />
<a href="https://www.relishapp.com/rspec/rspec-core/docs/configuration/read-command-line-configuration-options-from-files">参考</a>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:305</id>
</entry><entry>
 <title type="html"><![CDATA[Contact Form 7 で、on_sent_ok が動かない]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=304" />
 <author>
  <name>mio</name>
 </author>
 <updated>2012-06-18T07:38:04Z</updated>
 <published>2012-06-18T16:38:04+09:00</published>
 <content type="html"><![CDATA[Wordpressのお問い合わせフォームプラグイン<a href="http://wordpress.org/extend/plugins/contact-form-7/installation/">「 Contact Form 7 」</a>で、２重投稿を防ぐ目的で、<a href="http://contactform7.com/redirecting-to-another-url-after-submissions/?lang=ja">on_sent_ok を使って、Thank youページへ飛ばそうと</a>していたのですが、なぜかJSが動いていないことに気づいて、変だなーと思っていたら、<br />
<br />
wp_footer();<br />
を<br />
footer.php に書いていないことが原因でした。<br />
<br />
<br />
Contact Form 7 では、<br />
wp_head()<br />
でCSSと、jQueryを、<br />
<br />
wp_footer()<br />
で、フォームを制御する js を読み込んでいるようで、<br />
この wp_footer() を実行しないと、<br />
on_sent_ok で設定する jsが実行されないということが分かりました。<br />
<br />
<br />
おそらく、<a href="http://ja.forums.wordpress.org/topic/8937">Google Analyticsが動かない</a>とか、色々言っている皆さんはだいたい、wp_footer(); が抜けてるのでは？と思いました。<br />
<br />
<br />
<br />
他のプラグインでも、同じ原因で動かなくなることもあるかもなので、テーマを自作している人は注意ですね。]]></content>
 <id>http://labs.karappo.net/kwdr/:6:304</id>
</entry><entry>
 <title type="html"><![CDATA[wp_head(); から jQueryだけ読み込まないようにする]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=303" />
 <author>
  <name>mio</name>
 </author>
 <updated>2012-06-18T06:01:32Z</updated>
 <published>2012-06-18T15:01:32+09:00</published>
 <content type="html"><![CDATA[以下のように書けば、header.php などで、wp_headを実行する前に、wp_deregister_script('jquery')と書けば<br />
jQueryだけ、wp_headの読み込みから削除できます。<br />
<br />
<pre  class="code">&lt;?php wp_deregister_script('jquery'); ?&gt;<br />
&lt;?php wp_head(); ?&gt;<br />
</pre>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:303</id>
</entry><entry>
 <title type="html"><![CDATA[git-ftp.pyを使ってGitで管理しているFTP経由でローカルとリモートのファイルを同期]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=301" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-05-11T08:31:16Z</updated>
 <published>2012-05-11T17:31:16+09:00</published>
 <content type="html"><![CDATA[既にリモートサーバー上に配置されたプロジェクトを、今後Gitでバージョン管理していきたい場合、どうするのが一番いいのでしょうか？<br />
<a href="http://labs.karappo.net/kwdr/index.php?itemid=302">こちら</a>に書いたTransmitのディスク機能を使って、リモート側にリポジトリを作って・・・というやり方だと、addしたときに下記のようなエラーが出てうまく行きませんでした。<br />
<br />
<pre class="code">error: file write error (Input/output error)<br />
fatal: unable to write sha1 file</pre><br />
<br />
<a href="http://git-scm.com/docs/git-push#URLS">Gitのドキュメント</a>にはFTP経由でもいけそうに書いてあるのですが、マウント以外の方法でも自分が試した限りでは駄目でした。cloneなどはいいけど、書込み系のコマンドは駄目なのかもしれません。よくわかりませんが。<br />
<br />
個人的にはこれだというところまでは行っていませんが、備忘録がてらひとつの方法の手順をまとめておきます。<br />
<br />
<a href="https://github.com/ezyang/git-ftp">git-ftp.py</a>を使って同期させる方法です。<br />
上記GithubのサイトからソースコードをDLして、フォルダ毎ローカルのどこかに配置します（ZipでDLした人は、「git-ftp」にリネームしておくと良いでしょう）。<br />
<br />
git-ftp.pyを実行可能にします。<br />
<pre>chmod +x /path/to/git-ftp/git-ftp.py</pre><br />
<br />
リモートにあるファイルをローカルにDLして、プロジェクトディレクトリにリポジトリを作成します。<br />
<br />
<pre>cd /pa/th/to/project<br />
git init</pre><br />
<br />
作成されたリポジトリ内に２つのファイルを追加します。<br />
<br />
<i>.git/ftpdata</i><br />
<pre>[master]<br />
username=ユーザー名<br />
password=パスワード<br />
hostname=FTPアドレス<br />
remotepath=リモート上のプロジェクトディレクトリへのパス<br />
ssl=no</pre><br />
<i>.git/hooks/post-commit</i><br />
<pre>#!/bin/sh<br />
<br />
/path/to/git-ftp/git-ftp.py</pre><br />
<br />
post-commitを実行可能にします。<br />
<pre>chmod +x /pa/th/to/project/.git/hooks/post-commit</pre><br />
<br />
ここまでの設定を済ませておけば、あとはgit commit を実行した時に、post-commitがgit-ftp.pyを叩き、変更箇所をリモート側に反映してくれます。とりあえず、FTPでしか繋げないリモートのプロジェクトファイルをGitで管理できるようになりました。が、準備がちょっと面倒くさい、もっといい方法ないのだろうか...。<br />
<br />
<br />
<br />
参考：<br />
<a href="http://d.hatena.ne.jp/uasi/20091024/1256322715">[Git]git で push したファイルを FTP 経由で差分アップロードするよ</a>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:301</id>
</entry><entry>
 <title type="html"><![CDATA[リモートでもCompassを使いたい！]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=302" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-05-11T06:38:36Z</updated>
 <published>2012-05-11T15:38:36+09:00</published>
 <content type="html"><![CDATA[<a href="http://sass-lang.com/">Sass</a>とても便利ですね。<a href="http://compass-style.org/">Compass</a>をインストールして、watchを走らせておけばローカルファイルを監視して変更があれば瞬時にコンパイルしてくれるので、もう通常のCSSなんて使いたくないと思うほどです・・・。<br />
<br />
ただ、ローカルで作業している場合はいいのですが、ひとつ問題だったのがリモートホスト上にあるファイルをwatchすることができない点。案件ごとに変わるリモートのサーバーに毎回環境を整備するのは非常に面倒です（sshでログインすることすら面倒だし・・・）。ローカルのマシンにインストールしているCompassで、なんとかリモートのファイルを監視できないのか、色々調べてみました。<br />
<br />
最初に見つかったのが、sshfsを使ってサーバーをローカルマシンにマウントする方法。依存関係やコマンドラインからの実行で多少面倒ではある物の、これを使えばマウントしたディレクトリをローカルのCompassでwatchできました。<br />
<br />
→　<a href="http://d.hatena.ne.jp/wadap/20080603/1212506793">sshでリモートサーバーをマウント、便利にsshfs / Unix的なアレ</a><br />
<br />
素晴らしい！・・・と思ったのですが、10分も繋げているといきなり接続が切れたりして非常に不安定で、実用レベルには達しませんでした（Macへの移植の過程で何か問題が発生したのかな？）。sshfs関係はいくつかGUIアプリも出ていたのですが、どれも結局同じ不具合があり、開発が止まっているプロジェクトとかもあって、なんだか不安な感じでした。<br />
<br />
あー、駄目なのかなぁ。と諦めかけた時、<a href="http://panic.com/jp/transmit/">Transmit</a>をいじっているとふと、「お気に入り＞ディスクとしてマウント」というメニューがあることに気付きました。要は、上記のsshfsと同じようにリモートをマウントする機能なので、同じことができました。そして接続が切れません！素晴らしい。しかも、sshは不要でftpでログインできていればOK。ツールバーに常駐しているTransmitアイコンからも直接ディスクにマウント機能が使えます。この「ディスク機能」は、今回の件以外でもかなり役に立ちそうです。ありがたい！<br />
<br />
<img src="http://labs.karappo.net/media/1/20120511-panic-transmit.png" width="460" height="520" alt="transmit" title="transmit" /><br />
<b>Thank you, Transmit !!</b>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:302</id>
</entry><entry>
 <title type="html"><![CDATA[localStorage の値を削除したいときはremoveItemを使う]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=300" />
 <author>
  <name>terada</name>
 </author>
 <updated>2012-04-02T17:10:08Z</updated>
 <published>2012-04-03T02:10:08+09:00</published>
 <content type="html"><![CDATA[こんな基本的なことで、つまずいてしまいました。<br />
localStorageのあるキーの値を削除したいときは localStorage.removeItem を使いましょう。<br />
nullやundefinedを代入しても、文字列扱いになってしまい条件分岐等に使ってると、気づきにくいです。。。<br />
<br />
間違った方法<br />
<pre class="code">localStorage.hoge = 'buuu';<br />
localStorage.hoge = null;　　　　// 'null' が代入されてしまう<br />
localStorage.hoge = undefined; // 'undefined' が代入されてしまう</pre><br />
<br />
正しい方法<br />
<pre class="code">localStorage.hoge = 'buuu';<br />
localStorage.removeItem('hoge');</pre>]]></content>
 <id>http://labs.karappo.net/kwdr/:6:300</id>
</entry>
</feed>