一定期間更新がないため広告を表示しています
![ruby,php,perlでmemcacheの中身を使い回す | Parse Error](https://cdn-ak-scissors.b.st-hatena.com/image/square/2302e44c95c7e474fefb218540004f95dc47a4bb/height=288;version=1;width=512/https%3A%2F%2Fimaging.jugem.jp%2Ftemplate%2Fimg%2Fjugem_og-image.png)
RailsでPageキャッシュをより広く活用する方法を考えてみました。以下、ちょっと長く前置きが続きます。 Rails遅杉 Railsは遅い。何が遅いって、Rubyが遅くてRoutingが遅くてRDBとRHTMLが遅い。RDBが遅いのは大抵のWebアプリケーションでは変わらない話、で、だからRailsなんかが評価される余地があるんだよね。RubyやRHTMLの遅さは柔軟性の代償として受け入れよう。なにしろRDBがもともと遅いんだから。ただ、Routingは無駄に高機能だったりして頭にくる。Rhino on RailsのSteve YeggeもRoutingは黒魔術だと言っていたし。私はActionPackの全てが黒魔術だと思うけど。 そういう訳で、RoutingをCで書き直すのはドリコムのみなさんがいつかやってくれると期待するとして(可能なら手伝いたいけどね)、当面の対応としてはキャッシュ
先日この記事において hook の呼び出しに関してコメントを頂きました. 実際のところよく分かってない部分もあったので,hook に関してまとめてみました. このページの記述について このページの内容に関して 英語の文章は,全て Apache 2.0.58 のソースコード中から集めてきた原文ママです. 全ての hook に関して調べ尽くした訳じゃないので間違いもあると思います.間違いに気づかれた方はコメントで指摘いただければ幸いです m(_ _)m hook の呼び出し順序に関して hook が呼び出される順序は,「設定初期化」「プロセス初期化」「コネクション」「リクエスト」に関しては記述した順序で呼び出されるようです. RUN_ALL,RUN_FIRST について RUN_FIRST の hook は,呼び出した hook 処理関数が OK や DECLINE エラーを返した場合,その次
マツエクをつけているとオイルで出来ているクレンジングは基本NGです。マツエクのグルー(接着剤)と油の相性が悪くマツエクが取れやすくなってしまうからなのですがマツエクを付けている人はどんなメイク落としを使っているのでしょう […]
Perlには他のプログラムを起動したり,文字列で与えられた式を実行時に解釈実行する機能を持つ関数が用意されている。こうした関数に与える引数は,十分に吟味しないと,悪用されて意図しないコマンドを実行させられる。 Perlには外部プログラムとの連携機能が複数組み込まれている。Perlは連携機能を実現するため内部的にUnixシェルを起動する(注1)。そのため連携機能をユーザ入力データなどの外部から与えられるデータと組み合わせて使用する場合,外部からシェルコマンドを混入され実行されてしまう可能性がある。次の関数はこのような問題につながる注意すべき関数や構文である。 open system, exec, ``(backticks) <>(fileglob),glob C言語などのコンパイル系言語と異なりPerlはスクリプト系言語である。Perlは実行時にプログラムを解釈して実行する。eval
Koan で Cobbler を更に便利に Koan (Kickstart over a network) を使うと、Cobbler と連携して、PXE ブートを使わずに OS を再インストールしたり、Xen または QEMU のゲスト OS をコマンド一発でインストールすることができます。 以下、Fedora 7 で Koan を試してみたメモ。 Koan のインストール $ sudo yum install koan プロファイルやシステムの一覧を表示 プロファイル一覧を表示する。 $ sudo koan --server=cobbler.example.org --list-profile fc7-i386 fc7-xen-i386 システム一覧を表示する。 $ sudo koan --server=cobbler.example.org --list-system test-se
svndumpfilterをincludeやexcludeオプションと一緒に使って特定のリビジョンのみを抽出した場合、抽出されなかったレビジョンはコミットログが「単に番号が飛ばないようにするための空のリビジョンです。」という内容の空のレビジョンで置き換えられます。 空のリビジョンを出力したくない場合は--drop-empty-revsオプションをつけます。このままでは番号が飛び飛びになるので、--renumber-revsも同時につけて、番号をつめます。 svnadmin dump /var/svn/repos | svndumpfilter include --drop-empty-revs --renumber-revs /foo svnadmin dumpした内容を新しい空のリポジトリにloadする場合のように以前のリビジョン番号を保存したい場合は有用ですが、通常は単に目障りなだけで
Subversionのリポジトリの内容を別リポジトリに移動する手順について。 <想定> 移動元: /var/lib/svn/repos 異動先: /var/lib/svn/repos_new svnadmin dump /var/lib/svn/repos > repos.dump cat repos.dump | svnadmin load /var/lib/svn/repos_new 移動元リポジトリの特定ディレクトリのみ対象とする場合はsvndumpfilterを併用する。 <想定> リポジトリ中の /some_dir のみを対象とする svnadmin dump /var/lib/svn/repos | svndumpfilter include /some_dir > repos.dump cat repos.dump | svnadmin load /var/lib/svn/r
コンテンツへスキップ 無料で使える!HubSpotの顧客リストの活用法 無料のアンケート作成ツール 比較/まとめ 無料「Excel」 テンプレート 比較/まとめ 無料で使えるノートアプリ比較 (Evernote / OneNote / Google Keep) おすすめの無料Web会議システム5選 WebP Converter 徹底解説!初心者でも直ぐに使える HubSpot は、マーケティング、セールス、サービスのためのCRM(Continue reading 多くの人の声を聞くことで改善できることも多い 企業や団体など運営していContinue reading 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading 便利なノートアプリで効率的な仕事をしよう いつの時代も仕事をしていてメContinue reading 近年、リモートワーク
Fetching external item into 'path/to/example' Updated external to revision 12345. Subversionを使ってて「svn update」するとよく上記のようなのがでることがあるんだけど、今までどっか別のライブラリ取ってきてるんだろうなぐらいのことはわかってたんだけど、ちゃんと知らなかったので調べてみた。 さっそぐググってみると、これはSubversionのsvn:externalsというプロパティの機能らしく、たとえば自分のプロジェクトのリポジトリ内で他のプロジェクトのライブラリを使いまわしたいときなどに、このプロパティを設定しておくだけで、あたかも自分のプロジェクトの中にあるライブラリのようにsvn updateコマンドで他のプロジェクトのライブラリを更新してくれるというものらしい で、具体的な使い方なんだ
1. 概要 MySQLでレプリケーションを行っているとMasterにバイナリログが溜っていきディスクを圧迫するので定期的に削除してやる必要がある。 2. 手順 2.1 レプリケーション状態の確認 まず、どこまでバイナリログを削除してよいかを調べる。 Slave側でSHOW SLAVE STATUSを実行し、Slaveがバイナリログをどこまで読み取っているかを調べる。「Master_Log_File」が現在参照中のバイナリログ。以下の例ではskylancer00-bin.000084を使用していることになるので、skylancer00-bin.000083まで削除してしまってよいことになる。Slaveが複数いる場合は、全Slaveについて確認を行う。 mysql> SHOW SLAVE STATUS \G *************************** 1. row ********
作業日時 2024年8月20日(火) 午後10:00~午後11:00 対象サービス その他サービス 作業日時 2024年8月21日(水)午前1:00~午前6:00 対象サービス テレビ もっと見る
コマンド実行中の場合はコマンド名を表示し,それ以外はカレントディレクトリ名を表示したかったのでいろいろ調べて .zshrc をいじってみました。 .zshrc if [ "$TERM" = "screen" ]; then local -a shorthost echo $TERMCAP | grep -q -i screen if [ $? -eq 0 ]; then shorthost="" else shorthost="${HOST%%.*}:" fi echo -ne "\ek$shorthost\e\\" preexec() { echo -ne "\ek${shorthost}($1)\e\\" echo -ne "\e_`dirs`\e\\" } precmd() { echo -ne "\ek${shorthost}$(basename $(pwd))\e\\" } fi
いま行なっている案件で、社外のデザイナーさんが作ったデザインをシステムに取り込むという件があり、お互いに労力の少なく出来る方法を考えてみたのでここに残しておく。前提として、システムばりばりなものではなく、デザインがメインだが、フォームがあるページや投稿系でシステムで出すべき一覧ページがあったりするようなサイトの場合です。 基本的な思想 基本的には、デザイナーさんが作ったhtmlファイルに極力プログラマ側で手を入れない。逆にプログラム上必要なタグ等を埋め込んだ場合には、そのマージ後のファイルを修正してもらう。 今回は、フレームワークにEthna、テンプレートエンジンにはSmartyを使ってあります。 最近、Smartyよくないという風潮ですが、プリフィルタなどのプラグイン機能は有用だと思います。 仕組みとして作ったもの 1. .htmlファイルをエントリポイントにする 2. Smartyのデ
ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
App::Benchmark::WAF tokuhirom/yappo/kazuho/hidekさんあたりが軽量なWAFの開発をなんか熱病に浮かされたかのようにしはじめたので、こりゃ負けてられないとApp::Benchmark::WAFを書きましたよ。 Apache::Testを使って、apacheから実際にHTTPリクエストサイクルを通って、CGIモードとmodperl(メモリに一度載せたらそれを再利用)する状態でベンチを取れるようにした。"make test"とすれば全てのフレームワークに対してab -c 100 -n 1000して計測する。 現在実装している中で、俺のMacBook上での計測値は以下の通り: # [cgi-app (cgi)]: 28.01 [#/sec] (mean) # [cgi-object (cgi)]: 34.92 [#/sec] (mean) # [cgi
前代未聞のPerl軽量ウェブアプリケーションフレームワーク祭りの中、いかがお過ごしでしょうか? 紆余曲折があってこんなことを言ってたわりに何もしてないでぼーっとしている間に、腕に覚えのある兵達が我も我もと手を動かしてくれたので、申し訳なさ半分で懲りずにベンチマークを取ってみました。 http://d.hatena.ne.jp/tokuhirom/20081111/1226418572 NanoA というウェブアプリケーションフレームワークをかいてみた - kazuhoのメモ置き場 YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ みんな基本的に軽量なフレームワークをうたっていて、開発効率よりも軽さや配布のしやすさを売りとしているので特に問題ないと思います。 比べたのは上の3つと モジュールを使わないcgi CGI.pmでヘッダ出力をするもの 軽量フレームワークの代
Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯食った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac
CGI というシーンにおける現状の Perl のウェブアプリケーションフレームワークの問題点とは 都度 perl のインタープリタインスタンスを起動するのでモジュールの読みこみ/コンパイルコストを無視できない bless の速度を無視できない といったあたりであると認識している。 http://d.hatena.ne.jp/tokuhirom/20081111/1226418572 自分は、Sledge も Catalyst も Mojo も Rails も boofy も使ったことがありませんが、別に必要なモジュールをロードしたり bless したりするのはしょうがないのかなと思います。ただ、 不要なコントローラ (+それに伴う多数のモジュール) までロードしている ということが一番の問題なのかなと思いました。というわけで作った。 CodeRepos の /lang/perl/NanoA
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
「ls-l」などでファイルのサイズを表示しようとすると,バイト単位で出力される。このままだと,Mバイト単位の大きなファイルについては容量が把握しづらい。こうしたときは,「-h」オプションを付けると,サイズに合った適切な単位で表示してくれる。 通常はバイト単位でサイズが表示される $ ls -l 合計4190 -rw-rw-r-- 1 number number 4262991 Jul 24 19:34 large -rw-rw-r-- 1 number number 6849 Jul 24 19:35 middle -rw-rw-r-- 1 number number 13 Jul 24 19:36 small 「-h」オプションを付けるとそれぞれのサイズに合った単位で表示してくれる $ ls -lh 合計4.1M -rw-rw-r-- 1 number number 4.1M Jul 2
エンジニアにとって仲間とはどういう存在なのだろうか。極端なことをいえば、自分1人で作業が完結できてしまうエンジニアにとって、仲間とのコミュニケーションにはどんな意味があるのか。エンジニア同士のネットワークを通じて、エンジニアにとっての仲間とは何かを探る。 第7回|1 2|次のページ コミュニティで活躍するエンジニアたちの輪。8人目は、前回の溝口浩二氏(参考:溝口浩二――コードを愛する「動画中継職人」)から紹介された、未来検索ブラジルの末永匡(たすく)氏だ。 「グニャラくん」の相性で親しまれている末永氏。「ニコニコ動画版Wikipedia」「ニコニコ大百科」の開発者としての顔が最も有名だろう。 オープンソースの全文検索エンジン「Senna」(セナ)の開発に携わる末永氏。彼にとって、コミュニティとはどんな存在なのだろうか。 ■オープンソース活動が生んだ転職 末永氏が開発を担当するニコニコ大百科
ちょろっと使ってみたのでレポートしてみる。 MojoというのはCatalystの原作者sriことSebastian Riedelが最近つくっている「ウェブアプリケーションフレームワークの土台をつくる」フレームワークのこと。本人いわく「rubyにおけるrack、pythonにおけるwsgiに相当するもの」だそうですが、その評価の是非はさておき、大きな特徴をいくつかあげると、 インストールはきわめて簡単 「やってみたかったから」再発明 RFC大好き コンテキスト持ち歩き系 というところでしょうか。国内では同じような趣旨のHTTP::Engineが開発されていますが、Mooseをバリバリ使っているHTTP::Engineに比べて、Mojoはアクセサからなにから、ほとんどのコードを自分で再実装しているので、インストールに困るような依存モジュールは(ほとんど)なし。ぶっちゃけ「さくらのレンタルサーバ
QIQエクステンションがやっていることについて。 PHPというかZend Engineでは、コンパイラとエクゼキュータが関数ポインタになっており、それぞれファイルの内容から実行コードを生成するzend_comiple_file、文字列から実行コードを生成するzend_compile_string、実行コードに対応するハンドラを呼び出すzend_executeが定義されています。また、それらのデフォルト実装としてcompile_file()、compile_string()、execute()があります。 言語としては良いか悪いかは別にして、堅くも柔らかくもない独自のポジションにあるPHPですが、コアのZend Engineはコンパイラやエグゼキュータが差し換えられたり、実行時のフックが追加できたりと、実は拡張性に富んでいるのです。でもマルチスレッドと演算子オーバーローディングだけは勘弁な!
本日11月11日は、「1」が4つという並びから「バイナリデー(Binary Day)」と呼ばれています。日付がバイナリ値である日は、一年に9日(01月と10月と11月の01日、10日、11日)ありますが、「1」が4つ並ぶ11月11日を特に「バイナリデー」と呼ぶようです。ちなみに1111の約数は1、11、101、1111だけ。また、1111は1から数えて(1桁の数を除くと)101番目の回文数(そのまま読んでも逆に読んでも1111)となります。 こんな不思議な日付であるBinary Dayを記念して、バイナリ界の巨匠の皆様から、祝賀コメントをいただきました。お楽しみください。 なお、11月11日はこのほかにも、鮭、ポッキー、プリッツ、チーズ、ピーナッツ、きりたんぽ、もやしの日でもあり、また電池、配線器具、靴下、下駄、サッカー、折り紙、宝石、煙突、磁気、介護、コピーライターの日、そして中国では「
_ [映画] ネバーランド (ちょっと内容がわかってしまうようなこと書いてます) 原題Finding Neverlandってことで、Finding Foresterなんかも思い出されます。思い出すと言えば、(劇)作家を主人公として作中作が作り上げられていくところとかは、最近だと「あなたにも書ける恋愛小説」や「舞台よりも素敵な生活」もありましたねー。ちょっと多い印象で、人気の劇作家がスランプに陥った後、近所の子供にinspireされてよい作品が出来ていく、というプロットは非常に似ているし、まぁありがち、ですよね。 と、思って見てたんですが、そんなことはどうでもよいくらい良い出来でした。ジョニーデップです。ジョニーデップ。ジョニーデップ。 ケイトウィンスレットは、病人なんだし、もう少し痩せてもよいと思いました。 _ [ソフトウェア] RDBMS(MySQLかな)でツリー構造 RDBMSを利用し
Development, Translation, daily life, thoughts, and so on. http://www.sitepoint.com/article/hierarchical-data-database/2/ ツリーデータを2次元の表で表現する方法はそれなりにあるが、親や子の繋がりを1クエリで取得できるという意味で、上記の「Modified Preorder Tree Traversal」は特に優れている。データを更新する際にはクエリの数が増えるものの、親子関係の取得の際には、それを補って余りある利点がある。 具体的な紹介は、3年前のふじもとさんのエントリに譲る。ここでは、その内容に補足する形で、1点だけメモを記しておく。 ---- このアルゴリズムは、親子関係を一気に取得する縦の演算には非常に強力だが、同じ階層にあるノードを一気に取得しようと思うと弱い。
rubyRSS を拾ってきてパースしようとしたら、不正な文字列が入っていて REXML が ParseException を投げてしまった。文字コードが UTF-8 前提だったので、UTF-8 として valid な文字のみが含まれるように置換して対処した。 str = str.scan(/([\x00-\x7f]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3})/).join Ruby じゃなくても同じようなコードで対処できそう。関連:UTF-8 の正規表現は 404 Blog Not Found:UTF-8 vs. ISO-10646 から拝借したPHP なら $xmlStr = mb_convert_encoding($xmlStr, "UTF-8", "UTF-8"); でいけるら
svn を触わり始めた数ヶ月前にひとつのリポジトリを作成してみて以来,その中に複数のプロジェクトをつっこんでいました.しかし最近,なんだか都合が悪いように感じてきたため,プロジェクトごとにリポジトリを作成して管理することにしました. 大まかな手順としては, リポジトリの内容を,プロジェクトごとにダンプする. プロジェクト別に空のリポジトリを作成する. ダンプファイルを読み込む. 構成を調整する. な感じです. 以下,その過程のメモです. はじめに 既存のひとつのリポジトリ (これを R とし,パスは /repos) に 2つのプロジェクト project1,project2 があるものとします. /repos # リポジトリ R のパス /repos/project1 # R 内の project1 のパス /repos/project2 # R 内の project2 のパス (pro
MySQL 関連 rootのパスワード設定 ※ インストール直後はrootパスワードが設定されてない # mysqladminで行なう場合 /usr/bin/mysqladmin -u root@localhost password 'xxxxxx' # mysqlクライアントで行なう場合 mysql -u root mysql> set password for root@localhost=password('xxxxxxx'); # 接続できることの確認 mysql -u root -p データベース作成、ユーザ作成 # 接続 mysql -u root -p # DB作成 create database dbname1 character set 'utf8'; # ユーザ作成と権限付与 grant all privileges on dbname1
Perlクックブックソースコードリンク集 このページは「Perlクックブック―Perlの鉄人が贈るレシピ集(第1版)」に記述されているソースコードを簡単に参照できるようにするために作成したリンク集です。ネットワーク上に存在するPerl Cookbook(英語)のリソースに対してリンクを設定しています。 Perlクックブックの解説やソースコードの引用は私のウェブページ上には用意していません。必要であればPerlクックブックを購入するか、あるいはリンク先の英文の解説を読んでください。 1章 文字列 1.0 概要 レシピ1.1 部分文字列を取り出す レシピ1.2 デフォルト値を設定する レシピ1.3 一時変数を使わずに値を交換する レシピ1.4 ASCII文字をコード値に(コード値をASCII文字に)変換する レシピ1.5 文字列を1文字ずつ処理する レシピ1.6 文字列を単語または文字単位で逆
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く