サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
kjirou.sakura.ne.jp
JSのクラス定義方法 † JSのクラスとは、単に関数型の変数を生成することと同じです。 例えば、以下は最も単純なクラス定義になります。(かつ、単なる関数の宣言です) var SimpleClass = function(){}; ↑ new † 関数のみ new という演算子を使用できます。 // PHPで例えるなら、sc変数がクラスインスタンスで、SimpleClassがクラスになる。 var SimpleClass = function(){}; var sc = new SimpleClass; 面白いのは、SimpleClass?は関数型の変数、scはオブジェクト型の変数、というように両方とも変数である点です。 PHPやJavaの様に、クラスという構造が別文法で定義されているわけではありません。 ↑ クラスにプロパティを追加 † プロパティというのは、PHPで言うメンバ変数とメ
設定値を見る/setの小ネタ † :set " デフォルトと異なる項目を表示 :set number? " 現在の値を表示 :set number& " デフォルトに戻す :set number! " on/off トグル ↑ Vim画面をWindows上のエディタにコピペする † SHIFT + 選択で、Putty本来の操作でコピペ可能。 SHIFT + ALT + 選択で矩形選択にもなる。 ↑
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 Amazonトップページの一番下の方に、たまに出てくるんですが 商品をぐるぐる回して紹介するFlashアプリがあります。 たまたま休日出勤してたt-matsudaさんに、「貴様にこれが作れるのか?あああん?」って言われたので(言われてないです)、作るついでに円運動と三角関数の調査をするついでにjavascriptで円運動クラスを作りました。 で、アプリは出来ずに円運動クラスだけ出来ました。 /** * 円運動クラス * * @author kjirou <kjirou.webあっとまーくgmail.com> */ var Circulator = function(){ // 円の中心座標 this._circ
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 例えば、.svnディレクトリを除いて固めたい時とかに tar zcvf filename.tar.gz ./dirname --exclude ".svn" こう書けることを知った。 一回調べて無かった気がしてたんですが、もろでした。 本当に昔の記憶はアテにならんす。 【追記】 grepも--exclude-dirというので.svnを弾けるというコメントをいただいたけど 自分のメイン開発環境(CentOS-5.0)では出来なかったので、代替方法を・・・ grep -r exclude="*svn-base*" "pattern" . これでほぼ弾けます。 ・・・書くのがかったるいですけどね!
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 【iptablesの設定】 http://penguin.nakayosi.jp/linux/iptables.html の手順を丸々パクった わからない点は http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html で調べた iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -F iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptable
設定例 † iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -F iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -j ACCEPT ipta
svnadmin dump はひとつのリポジトリに対してしか出来ないので リポジトリが増えてくるとバックアップが面倒になる。 ・・・ので、特定ディレクトリ以下のリポジトリを 全部dumpしてtar.gzで固めるシェルスクリプトを書いた。 #!/bin/sh # # SVNリポジトリ群を保存する # # svnadmin dump は1リポジトリに対してしか出来ないので # それを特定ディレクトリ以下全てのリポジトリに対して行うのが基本機能 # #--------------- # 設定値 # # *ディレクトリを指定する際は、末尾に"/"を付けること #--------------- # svnadminコマンドへのパス SVNADMIN_CMD='svnadmin' # リポジトリ群ディレクトリへの絶対パス REPOS_DIR='/var/repos/' # バックアップファイル保
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 Railsのメソッド詳細は、ググるよりソースのコメントを見た方が楽なので、ひたすらgrepを打って探してた。 んでgrepがだるくなったので、あんまり使ってなかったvimgrepを少しだけ調べたら非常に便利に使えるようになった。 ・・・なぁぜ、もっと早くやらんのかと! ということで、コマンドのテンプレ↓ :vimgrep /pattern/j path/to/**/*.txt | cwin ※j修飾子・・・最初にマッチしたファイルを自動で開かない ※ファイル指定・・・ "**"で再帰的に探す、"*"は普通と同じ ※| cwin ・・・別ウィンドウでファイル一覧が出て、選択でファイルが開けるようになる 参考
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 【PHP】 PHP マニュアル 本家。PHPを使ってて、ここを知らない人は居ないでしょうけど。 サイトはたまに重いけど概ね良好、検索があって使い易い。 言語自体もマニュアルぐらい頑張ればいいのに、って、つい褒めちゃう程。 【Ruby】 Ruby リファレンスマニュアル 本家。全文検索が無くなったのは痛かった。(でも、そのためしょっちゅう落ちてたけど) マニュアルのDLは可能なので、もっと便利に使いたかったら自分でカスタマすればいい。 タイトル不明 本家のマニュアルをベースに使い易くまとめてくれている。 逆引きRuby まんま、やりたいことから逆引きしたい場合はいい。 Rubyを一番最初に触
一般的だけど個人的に非推奨 † バージョンが変えられないため個人的に非推奨 cd /usr/local/src wget http://www.djangoproject.com/download/1.2.1/tarball/ tar zxvf Django-1.2.1.tar.gz cd Django-1.2.1 python setup.py install ↑ 特殊だけど個人的に推奨 † これでインスコすると、シンボリックリンクを変えればバージョンが変えられる cd /usr/local/python/lib/python2.5/site-packages/ wget http://www.djangoproject.com/download/1.2.1/tarball/ tar zxvf Django-1.2.1.tar.gz ln -s ./Django-1.2.1/django
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 現状の有力案 foreach ($hash as $k => $v) { if (end(array_keys($hash)) === $k) { echo "last"; } } これだと、$hashの内部配列ポインタとやらも汚染しないでいい感じ。 若干重そうな気がしますけど・・・気にしない! ボツ案 foreach ($hash as $k => $v) { if (next($hash) === false) { echo "last"; } } これだと $hashの要素値にfalseが含まれている場合にバグる 1回のforeachループで必ず1回のnextを通す必要がある。 という点でダメ。 今までの
インストール † cd /usr/local/src ソースはwgetできないようなので、クライアントを介してアップロードする。 http://java.sun.com/j2se/1.5.0/ja/download.html を開き、 ページ下の方の「JDK 5.0 Update 13」の「ダウンロード」リンク押下後の画面に移動し、jdk-1_5_0_13-linux-i586.bin というのを落とす。 それを /usr/local/src へ上げる。 cd /usr/local/src 実行権限付与 chmod 0744 jdk-1_5_0_13-linux-i586.bin インストール mv jdk-1_5_0_13-linux-i586.bin .. cd .. ./jdk-1_5_0_13-linux-i586.bin mv jdk-1_5_0_13-linux-i58
PHPSESSIDって?PHPセッションって? † PHPのセッションは、ブラウザのCookieの中に格納される特定のクッキー名とその値により継続されています。 例えば、FireFox?だとこんな風に確認することができます。 ※"PHPSESSID"のキー名はデフォルトのもので、別名をつけることも可能です。 PHPは上記画像の"内容"部分の値を毎回取得し「その値が同じものであれば同じ人」として PHPセッションの継続(リクエストは違っても同じ人として認識する)を行っている訳です。 ちなみに、用語の話ですが HTTPセッション=PHPセッションを含むHTTPによるセッション管理の総称? ・・・ということでいいのでしょうか?? ↑ PHPSESSIDのリジェネレイトって? † 通常、PHPSESSIDの内容は、手動やブラウザを落としてCookieを消さない限りは延々同じものが使わ
yumで下準備 † yum install patch yum install gcc yum install ncurses-devel ↑ インストール † cd /usr/local/src wget ftp://ftp.vim.org/pub/vim/unix/vim-7.1.tar.bz2 wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-extra.tar.gz wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-lang.tar.gz tar jxvf vim-7.1.tar.bz2 tar zxvf vim-7.1-extra.tar.gz tar zxvf vim-7.1-lang.tar.gz cd vim71 mkdir patches cd patches curl -O 'ftp://f
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 自分の場合、 開発はほとんど Windows & Puttyでやっておるのですが、 Linux側でscreenを起動した時に、Windowsタスクバーの表示が "screen" になってしまう点に、前々から不便を感じていました。 (screen実行前はホスト名とかが出るようにしてある) んで、最近は時間が出来たので、調べ始めたんですが 結局は解決しなくて、 yoshuki氏に聞きましたマル ・・・お前は何をやっとるんだと・・・・・・。 で、対処として 例えば、screen実行時に以下のコマンドをコピペで実行すると タイトルバーの表示が"HOGEHOGE"に変わるので printf "\033P\
非常に良くある使い方 † 書庫にまとめてgzipで圧縮 tar zcvf /path/to/tarball.tar.gz /path/to/dirname_or_filename gzipを解凍して書庫を展開 tar zxvf /path/to/tarball.tar.gz ↑ tarとは何か † 参考) Wikipedia - Tar tarというのは、複数のファイルを1つのファイルにまとめることを主眼とした ファイルフォーマットの一種であり、圧縮や解凍は別の話。 例えば、zオプションはtar化した・されたものについて、 gzip規格にて圧縮・解凍の処理を加えることを指定している。 また、bzip2規格の場合は、jオプションをzオプションの替わりに指定する。 なお、tar + gzipのファイルは、拡張子 .tar.gz .tgz .tar.Z .taz とされていること多く
javascript側はencodeURIComponentでエンコードする。 こんなコードをHTMLに埋め込んで、適当な文字列をURIエンコードした出力をコピペでゲットする <script type="text/javascript"><!-- document.write(encodeURIComponent("おお、kjirouよ! 死んでしまうとはなさけな% &?い!!")); // --></script> ※HTMLのcharsetはUTF-8にすること
名前解決(ホスト名からIPアドレスを求めることまたはその逆)の手段の優先順位を指定する † # vim /etc/nsswitch.conf hostsが以下のようになってればよい #hosts: db files nisplus nis dns hosts: files dns ↑ ホスト名とIPアドレスの対応を表の変更 † # vim /etc/hosts IPに対する名前を指定 172.20.12.47 mycentos mycentos.localhost mycentos ↑ 自マシンのネットワーク情報を記述 † ここで指定されたものはシェル変数の値としてシステムの各種スクリプトで使用される # vim /etc/sysconfig/network 以下のようにする NETWORKING=yes #NETWORKING_IPV6=yes NETWORKING_IPV6=no HO
【svn:ignoreに複数の個別ファイルを設定する】 svn:ignore の設定は、ディレクトリに対して、どのパターンのファイル名を持つファイルに対して掛けるか、という基準で設定する。 svn propset svn:ignore "*.js" /path/to/dir ↑上は /path/to/dir ディレクトリ内で、"*.js"にマッチするファイルをadd等のSVN操作対象外に指定する。 じゃあ、a.js と b.js だけを無視したい場合はどうするのかというと svn propset svn:ignore -F tmp.txt /path/to/dir tmp.txt a.js b.js こういう風に外部のファイルを読み込んで、改行区切りで指定する。 ("a.js\nb.js"って指定したらダメだったんすけど、改行をシェル上で入れられれば、読み込む必要はないかも)
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 PHPのZendFrameworkの話です。 Zend_Session::rememberMe()でクッキーへセッションIDの保存をするようにすると リクエストの度に強制的にsession_regenerate_id()されるようになる。 それで何がいけないかと言うと、この辺↓ モバイル等でセッションIDをGETパラメータにもたす場合は、 ブラウザバックするとセッションが切れる。 GETパラメータへ入れていない場合でも素早くリンクを2連打するとセッションが切れる。 うーん、セキュリティとのトレードオフとは言え、割と見過ごせない感じ・・・。 無料のWebサービスなら、再生成より重視したいところだと思います。
generate_tagsプラグインの概要・特徴 † ページにタグ付けして管理するためのプラグインです。 特徴 タグの生成をボタンを押した時点で行うようにしたことで、従来のタグ付けプラグインのような無理矢理な感じを無くた 豊富な表示形式(横並び、縦並び、タグクラウド) PHP4・5対応 タグをグルーピングできるタググループ機能(いわゆるメタタグ機能) タグの入力漏れを防げるタグリレーション機能 メンテナーがこのプラグインしか作る気がないので、素早い対応 ↑
komagataのDialog.js † lightboxのパクりだが、動作確認済みというメリットがある ソース Widget.Dialog.prototype._getPageSize = function() {/*{{{*/ var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth
はじめに † 目的は、Web経由で自分用Subversionリポジトリを操作すること。その際、ダイジェスト認証とSSLにてセキュリティを担保すること。 aprとapr-utilはSubversionと共用なので、個別にインストールしている。 環境構築を失敗しまくっており、下記オペレーションは実際に行ったものとは異なる。 ↑ インストール † ※最新版ソースは http://www.openssl.org/source/ から cd /usr/local/src wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz tar zxvf openssl-0.9.8e.tar.gz cd openssl-0.9.8e ./config \ --prefix=/usr/local/openssl \ -fPIC shared make m
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」
commit(ci) † オプション -m ログを書き込む svn ci -m "Some messages." -F ログをファイルから読み込んで書き込む svn ci -F /path/to/filename.txt ↑ diff † 概要 差分を取って表示する 基本的な使用例 file_pathのファイルと指定リビジョンの同ファイルとの差分を表示する svn diff file_path -r <REVISION> ※Linuxのdiffコマンドとは無関係らしく、-w とか -c とかが使えない。 ↑ import † 概要 管理外のディレクトリツリーをまとめてバージョン管理下に追加する 基本的な使用例 既にバージョン管理下にあるdir_name直下に、imported_dir直下を展開する svn import ./imported_dir http://mydomai
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 ので、ActionScript3用に変数を再帰的にダンプする関数(を持ったクラス)を書いた。 PHPで言うvar_dumpみたいなのをイメージ。 [ソース] (後日場所が変わるかもしれないので、その場合はこの辺から探して下さい) 使用例、こういう風に使うと var obj:Object = {x:1, y: "aaa", z: {foo: [1,2,3], bar: {a: 11, b: null, c: true}}}; D.dump(obj); traceにより以下のような出力がなされます (object)`[object Object]` "z"=(object)`[object Object]` "
部分テンプレートを所属するコントローラ以外の場所に置く † index/indexのテンプレートで以下のように記述すると <%= render :partial=>"footer" %> views/index/_footer.rhtml を参照するが、views/common/_footer.rhtml や views/_footer.rhtml に配置したい場合はどうするのか ↑ REXMLサンプルコード † どっかにまとめる たまに「閉じタグがないよ」エラーになるので使わなかった Net::HTTP.get_response の出力がおかしい場合があり、それが原因っぽい doc = REXML::Document.new(response.body) return geos if REXML::XPath.first(doc, "kml/Response/Status/code").
それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou 座右の銘: 「三度の飯より、四度の飯」 GoogleMapsAPIとFlashの連携をやりたいということで、 ActionScript3でFlashとJavaScriptの連携について調べました。 サンプルの実行 [ソース] (※Flashの埋め込みはSWFObjectを使っています。) 参考:マニュアル - Class ExternalInterface Flash-JS間のデータの受け渡しですが・・・ [引用] ActionScript から、HTML ページに対して次のことを実行できます。 * 任意の JavaScript 関数を呼び出す * 引数の数を名前と共に渡す * ブール (Boolean)、数値 (Number)、ストリング (S
次のページ
このページを最初にブックマークしてみませんか?
『kjirou.sakura.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く