CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FC2ホームページをlftpでアップロードする

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2にホームページを作って lftpでアップロードした。
lftpの使い方は記事の後ろの方です。

ホームページはブログで書いたプログラムとかまとめ場所。
まとめ情報はブログで通知しようかな。

あと、サイトのタイトルを「CodingFirst」としてみた。

仕様や設計、テストはほんと大事だけど、
ふと、最近、好きなコード書いてないなぁ~と思ったら
好きなソースコードを書こう、書くために何すればいいかを考えよう。

ま、わかってくれる人はきっと少ないな(笑)

さて、そろそろ lftpでホームページをアップロードする。
前に大体書いたので手順だけね。

まず、lftpを持ってなかったら apt-get (Ubuntuユーザです)

$ sudo apt-get install lftp

アップロードするためのホストとユーザは、
FC2ホームページの管理ページのメニューのFTP情報で確認する。
とりあえず、lftpでログイン。ホストはyourhost、ユーザはyournameとしてる。

$ lftp -u yourname yoursite.web.fc2.com
パスワード: 
lftp yoursite.web.fc2.com:~> ls                
drwxr-xr-x   3 yourname 503            31 Mar  2 02:12 . 
drwxr-xr-x   3 yourname 503            31 Mar  2 02:12 ..
drwxr-xr-x   2 yourname 503             6 Mar  2 02:12 i
-rw-r--r--   1 yourname 503           905 Mar  2 02:12 index.html
lftp yoursite.web.fc2.com:/> 

ミラーリングアップロードのdryrunしてみたら、
意図しないファイルがたくさんあったので、とりあえず止めた。

lftp yoursite.web.fc2.com:/> mirror -R --delete --dry-run
...(ずらーっとファイルがたくさん)
lftp yoursite.web.fc2.com:/> bye
$

gitで管理してたらgitまでアップロードしそうになったため。
除外設定をしとこう。

$ cat ~/.lftp/rc
set mirror:exclude-regex ".git|.svn|.DS_Store|.*\.(o|bak)"

こんな感じにしてみた。
先ほどのmirrorを試してみたら意図した通りになってた。
じゃ、本番の実行。

$ lftp -u yourname yoursite.web.fc2.com
パスワード: 
lftp yoursite.web.fc2.com:~> mirror -R --delete
合計: 1 個のディレクトリ、4 個のファイル、0 個のシンボリックリンク            
新規: 3 個のファイル、0 個のシンボリックリンク
変更有り: 1 個のファイル、0 個のシンボリックリンク
17700 バイト転送済、6 秒経過 (3.1KB/s)
削除: 1 個のディレクトリ、0 個のファイル、0 個のシンボリックリンク
lftp yoursite.web.fc2.com:/> 

lftpにはブックマークとかいろいろ機能はあるけど、
これだけで事足りるだろう。いずれまたそのうち。



おまけ)
それにしても、HTMLも4がいいのか5がいいのか、XHTMLがいいのか悩む。
HTML本で聞いたことあるのをまとめとく....HTML5本がないなぁ。。

HTML & XHTML 第5版HTML & XHTML 第5版
(2003/05/26)
Chuck Musciano、Bill Kennedy 他

商品詳細を見る

詳解HTML&XHTML&CSS辞典詳解HTML&XHTML&CSS辞典
(2009/10)
大藤 幹

商品詳細を見る

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
(2010/04/08)
山本 陽平

商品詳細を見る
スポンサーサイト

FC2ブログにソースコードを貼り付ける

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2ブログにコードを貼り付けるのは、preタグを使ってるんだけど、
はてなダイヤリーのスーパーPRE記法みたいの無いんだっけ?
<とかをサニタイズ...実体参照に変えないと正しく表示されないようなので
変換用のツールというかHTML書いた。

<html>
<style type='text/css'>
* { font-size:small; margin:0; padding:0; }
body { margin: 5px; }
h1{ margin: 5px 0; }
pre { border: 1px solid black; padding: 5px; }
</style>
<body>
<h1>escapeHTML</h1>

<!-- original -->
<h3>original <input type='button' value='update' onclick='run();'</input></h3>
<form><textarea id='org' rows='10' cols='60'>
#include <stdio.h>
int main(int argc,char** argv){
  printf("hello\n");
  return 0;
}
</textarea></form>

<!-- escapeHTML -->
<h3>escapeHTML</h3>
<form><textarea id='esc' rows='10' cols='60'>
</textarea></form>

<!-- pre -->
<h3>pre</h3>
<pre id='pre'>
</pre>

<script>
function escape_html(str) {
  return str.replace(/[&"<>]/g, function(c) {
    return {
      "&": "&amp;", '"': "&quot;",
      "<": "&lt;",  ">": "&gt;"
    }[c];
  });
}
var org = document.getElementById('org');
var esc = document.getElementById('esc');
var pre = document.getElementById('pre');
function run(){
  pre.innerHTML = esc.value = escape_html(org.value);
}
run();
</script>
</body>
</html>

ローカルPCに esc.html とかいう名前で記録して、
開けば下のような画面になる。

escapeHTML.png

まぁ...
gistに貼ればいいんだけど、
それほどでも無いときに。



JavaScript本を検討中。いろいろ良さそうな本があるけど、定番はこれかな..?


JavaScript 第5版JavaScript 第5版
(2007/08/14)
David Flanagan

商品詳細を見る

FC2ブログで自作タグクラウドを作る

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2ブログに自作でタグクラウドを作ってみる。
タグ表示自体は標準プラグインを使うんだけど、 その出力をJavaScriptでプチ改造する。

まず、ユーザータグを導入する。
ブログの管理画面に入って「プラグインの設定」画面に行く。
「公式プラグイン」から「ユーザータグ」を追加する。

プラグインの設定画面のユーザータグのところの「詳細」を押す。
そしたら、ユーザタグの設定を「カスタマイズ(HTMLを編集する場合はこれを選択してください)」を
セレクトしておく。

ここからがポイント。プラグインの改造の青い「【HTMLの編集】」をクリックして、
HTMLを編集するテキストボックスを表示させる。そしたら、元々書いてある記述を消して、
以下のテキストをコピペ

<div class="plugin-tag" id='plugin-tag' &align>
<!--ctag-->
<a href="<%ctag_url>" style='margin-right:5px;'><%ctag_name></a>
<!--/ctag-->
</div>
<script><!--
(function(){
var e=document.getElementById('plugin-tag');
var a=e.getElementsByTagName('a');
for(i=0;i<a.length;i++){
  a[i].style.fontSize=
    (i<a.length/32)?'x-large':
    (i<a.length/16)?'large':
    (i<a.length/8)?'medium':
    (i<a.length/4)?'small':
    (i<a.length/2)?'x-small':'xx-small';
}
for(i=e.firstChild;i.nextSibling!=null;){
  if(i.innerHTML>i.nextSibling.innerHTML){
    e.insertBefore(e.removeChild(i.nextSibling),i);
    i=e.firstChild;
  }else{
    i=i.nextSibling;
  }
}
})();
//-->
</script>

補足)

  • 最初の<divから</div>までは1行で書いた方がいい。

ひさびさ書いたらいろいろ忘れちゃってるな。。
復習がてら手元用に1冊、買っとこうかなぁ。


初めてのJavaScript 第2版初めてのJavaScript 第2版
(2009/11/30)
Shelley Powers

商品詳細を見る

FC2の月別アーカイブを階層化する

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2の公式プラグインの月別アーカイブの表示を1段階層化してすっきりさせる。

まず、テンプレ部分。

ポイントは、

  • 改行・空白を取り除く
  • ulにidタグを付ける
  • liにnameタグを付ける("/"をセパレータに階層化のルールを書く)

その直後で javascriptで ulのリストをカテゴリ分けに振り直す。


liのリストを取得して、順にliを自身のnameに書かれた階層化へ移動する。 階層が無い時は追加する...という感じ。めんどくさいので再帰はなし。

年を複数かかなくなった分だけ見栄えがよくなったが、 行数が増えたのがちょっとやだな。

#monthly ul li {
 display : inline;
 list-style-type : none;
}

と悪あがき。でも、あまり見栄えがよくならない。css追加はなしで、pluginをちょっと書き換えて調整。

(function (id){
var ul=document.getElementById(id);
for (var li=ul.firstChild;li;){
 var name=li.attributes["name"].value;
 var cat=name.split("/",1)[0]; 
 var cname=name.slice(cat.length+1);
 var cid=id+cat;
 var cli=document.getElementById(cid);
 if(!cli){
  cli=document.createElement("li");
  cli.innerHTML=cat + "年
"; cli.setAttribute("id",cid); ul.insertBefore(cli,li); } cli.innerHTML += " " + li.innerHTML; var n=li.nextSibling; ul.removeChild(li); li=n; }})("monthly");

innerHTMLとか使うあたり、ゴリ押し感があるけど、一応、満足。


FC2ホームページに lftpでミラーリング

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2ホームページへのFTPでのアップロードに lftpを使用する。

だがその前に、考えた選択肢

  • lftp
  • Cyberduck (Mac用FTPクライアントソフト)
  • FireFTP (Firefox用FTPクライアントプラグイン)
  • ftpfs + rsync

一番良さそうなのは Cyberduck。見た目が分かりやすく,奇麗。 接続後の「アクション」で「同期」を選ぶとアップロード、ダウンロード、 ミラーリングがファイル単位で選択できる。たぶん常用するだろう。

さて、lftpはCUIでミラーリングするのによく使われているみたいで、 作業をスクリプト化する目的で丁度よいと思われる。その時のために練習。

lftpのインストール

$ sudo port install lftp

portの lftpはちょっと古い。最新版はソースからビルドが必要っぽい。めんどくさいのでパス。

lftpの起動

$ lftp -u {user} {url}
Password: {password}

パスワードは毎回、手打ちする方が好み。bookmarkしておく手もある

$ lftp
lftp :~> open {user}@{url}
Password: {password}
lftp :{user}@{url}:~> bookmark add {name}
(次回から)
$ lftp
lftp :~> open {name}
Password: {password}

パスワードを覚えておく設定が可能だけど、使わない。

ミラーリングアップデート

lftp :{user}@{url}:~> mirror -R -n --delete --dry-run
  • -R: ミラーリングアップデート。-Rをとるとダウンロードになる
  • -n: 新しいファイルだけ転送。ローカルとサーバでタイムスタンプが異なると期待通りに転送されないので、割と使わない方がよい?
  • --delete: ローカルにないファイルはサーバ上から削除する
  • --dry-run: 動かしたフリ。画面表示に満足いったら --dry-runをとって本番実行する

これだけ知ってれば十分そう。おまけで転送除外設定。適宜追加する。

$ cat ~/.lftp/rc
set mirror:exclude-regex "(^|/)(\\.in\\.|\\.nfs)|debug\/|.DS_Store|.*\.(o|bak)"

それにしても --dry-run時(に限らないけど)の出力が分かりづらい。スクリプト化した時には整形が必要かも...


 | HOME |  »

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。