サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
msakamoto-sf-2007-to-2011.hatenadiary.jp
「とりあえず教科書丸暗記してテストで100点取ってきて。」「無理です。」 バカ正直に受け取ってソースコードを最初から最後まで読んでも何も分からなかった。 自分でシステムの特定部分に興味を持ち(きっかけは仕事で依頼されたからでも良い)、自分の手で資料を手繰りソースをgrepして現場の暗黙規定を周りに聞き回り、世間話に紛れ込ませた話の切れ切れから人間模様を想像し、システムの歴史を時間の許す範囲で遡り、それでようやく、何とかシステムのほんの一部を自分の血肉に出来る。「仕様を理解」して、「Why」に答えられるようになる。 「ソース読めば分かるだろう」という人は、大抵はそのシステムに長く(「長く」の程度は様々だろうが、少なくとも新参よりは長い)携わっている。 システムにどんな人が関わり、どういう経緯を経て諸々の機能が実装されたのか知っている。 例えるなら「漫画日本の歴史」「漫画世界の歴史」を読み込ん
ほぼ解決しましたので、コメントで教えてくれましたid:ichikaway様に御礼申し上げます。 元ネタ:SSHで、数分するといきなり切断され、pingも通らなくなる件。 - ぐらめぬ・ぜぷつぇんのはてダ コメントで教えてくれた方:VMwareServer使ってたらGuestOSへのSSHが妙に不安定だ - サラリーマンから起業するリアル 他、Googleで見つけた参考:http://as-is.net/blog/archives/001196.html 現象や原因は異なるのですが、ARPの存在を今までど忘れしていました。id:ichikaway様のコメントと記事で、目が覚めました。 結論から言うと、まずSSHが切られてしまう理由はSSHクライアントソフトからのハートビートパケットを設定で抑止していたことです。 puttyの日本語版を使っていたのですが、NULLパケット送信のためのKeepa
http://b.hatena.ne.jp/entry/togetter.com/li/41782 昨日〜今日にかけてはてブで盛り上がりを見せたエントリです。ここぞとばかりに、IT業界の日頃の不満をブクマコメントに叩き付け、「これだから日本のIT業界は、大企業は駄目なんだ(嘆息)」と溜飲を下げる技術者が多数続出しています。 自分もその一人で、ブクマコメントで愚痴を呟いています。 技術面での良し悪し・新旧・正邪ではなくて、リーダーやマネジャー・組織文化・経営レベルの好き嫌いや不安感で、辛い縛りが根付いてる。一人の作業者じゃどうにも出来ない。どこにでもある人間の問題。 はてなブックマーク - msakamoto-sfのブックマーク / 2010年8月13日 しかし、このエントリでは少し視点を変え、「何故自分は、こうしたネタに挙げられている現場に対してエントリと同様の怒りを覚えるのだろう、あるい
ソフトウェア開発で既存ライブラリや先行事例があるにもかかわらず、様々な理由でそれを利用せず、コードやプログラミング技法を再び一から作ってしまうことを「車輪の再発明」と呼び、無駄なコストとして非難される場面が多い。 オブジェクト指向プログラミングのメリットを宣伝する時にも、OOPの機能を活用した再利用可能なライブラリによるプログラミングの省力化という観点から「車輪の再発明をする必要はない」という風に持ち出される事が多い。 自分は「車輪という"アーキテクチャ"の再発明はする必要が無いが、車輪という"物体それ自体"は自分で創る必要がある場合も多い」という意見で、gihyo.jpの記事に絡めたエントリを書いたことがある。:[雑記]いい加減「車輪の再発明」の暗喩を使うのはどうかと思うが。 - ぐらめぬ・ぜぷつぇんのはてダ 今回、さらにすっきりと綺麗にまとめられたエントリを発見したのでこちらでも取り上
異なる二種類以上の開発現場で、ほぼ同様の条件で題名の「何で聞いてくれなかったの!?」という台詞がマネージャ/リーダから発せられるのを確認した。 ソフトウェアの開発現場で受託・内製問わない(両方の開発現場で確認)。ある担当者にアサインしたソフトウェアコンポーネントが(1)完成した後バグが発覚し、マネージャ/リーダが感知していない作りや設計になっていた、(2)〆切に近づいているが仕上がる感じが無く、確認してみたところ実装上の問題に嵌っていたりマネージャ/リーダが予測できないトリッキーなor複雑な設計orコードになっていた。 そのような場合に、「何でもっと早く相談してくれなかったんだ・・・」というマネージャ/リーダの無念の思いが込められ、「何で聞いてくれなかったの!?」という台詞が担当者に降りかかる。 最初に結論、というかリーダ/マネージャに対する「お願い」になってしまうが、離れ小島的にやけに静
最近はGoogleのAJAX APIというのを使う事で、MapsとかSearchとかDataとか、統一されたロードAPIや区分けされた名前空間を使って利用する事ができるようになってるみたいです。 ・「Google Maps API の概念」 http://code.google.com/intl/ja/apis/maps/documentation/index.html の「Google AJAX API ローダーを使用」にも簡単な例がありますし、 http://code.google.com/intl/ja/apis/ajax/documentation/ はAJAX APIの本家ドキュメントですが例が載ってます。 で、弄ってみたのですが幾つか嵌りどころがあったのでメモしておきます。あくまでも個人的なメモです。間違ってたら指摘してくれるとすごい嬉しいです。 "google.maps."名
メモ。 http://wiki.rubyonrails.com/rails/pages/HowToUseRailsWithoutADatabase RailsでDB(ActiveRecord)を利用しない場合の設定 - 与太郎プログラマの日記 MacにRailsをゼロからインストールする一番簡単な方法:Kenn's Clairvoyance - CNET Japan つまりconfig/environment.rbで Rails::Initializer.run do |config| config.frameworks -= [ :active_record ] を入れて、あとtest系を少し修正。 但しRails2.0以降はデフォルトのDBがSQLite3になったので不要?らしいが・・・。
そもそもプログラマを含めたクリエイターという輩は、既存の車輪に我慢ならないから自分で車輪を作ってしまうような連中ではないのか? 車輪は何度も発明するな。Perlの開発者で有名なラリー・ウォールが好んで使った言葉だ。科学技術のいいところは,一度発明されたもの開発されたものはだれでも簡単に使うことができ,その恩恵に授かることができることだ。同じ苦労をしないでその結果が得られるということは,過去に積み上げたものはブラックボックスとして細部を知らずとも同じように利用できるということだ。 第7回 オブジェクト指向は「正しい」のか?──科学技術としての考察:疾走するネット・ダイナミズム|gihyo.jp … 技術評論社 記事自体の揚げ足取りというわけじゃなくて、もういい加減、オブジェクト指向で車輪の再発明の話はうんざりだ、という個人的な感傷です。OOPをよく言う時にも、悪く言う時にも。 自分が同僚にO
お仕事の関連で調べる事になった。で、ブラウザ上で動くので多分Appletで良いのかな?ということでGoogleに「Java Applet Drag and Drop」、さらにPC上のローカルファイルなので「Desktop File」を付け足す。 Java Applet Drag and Drop Desktop File - Google 検索 ざっと眺めたところ、商用アプリとして取り込んで弄くり回してリリースできる無償のライセンス形態のサンプルは以下に絞れた。 いずれのサンプルも、以下のポイントが共通。 DropTargetListenerを実装したクラスを用意して、DropTargetDropEventを補足する。 DataFlavorをチェックする。Windowsであれば"DataFlavor.javaFileListFlavor"というのを上手く使える? jarファイルに署名する。
ハイ、本日最後のエントリー。500系が発生する時、ちゃんと捕捉できるのか?ということで、少し調べてみました。 参考:あきおの日記 というわけでまたもやソースコード探索いっきまーす\(゚∀゚)/ あ、使用しているRailsは1.2.6です。予め。 rails-1.2.6/lib/dispatcher.rb : class Dispatcher class << self # ...これがよく分からない。selfはDispatcherクラスになるのかなあ?なんでわざわざ? # ↓outputは$stdoutになります。 def dispatch(...) controller = nil if cgi ||= new_cgi(output) request, response = ActionController::CgiRequest.new(cgi, session_options), A
実はこれがよく分からないので、怖くて今までPHPをCGIで動かしたことが無い、というへたれです。 ただいつまでも逃げてらんないし、何よりCGIで動かせばPHP4/5を同時に使えるので少し調べてみました。 何が怖いかというと、php.iniには ; cgi.force_redirect is necessary to provide security running PHP as a CGI under ; most web servers. Left undefined, PHP turns this on by default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN safely turn this off for IIS, in fact, you MUST.**とか書いて有るじゃないですか。AT YOUR OW
Linuxのkernel周りであーだこーだするときほどLinuxが厭になる時は無い。 訳分かんないから。 ディストリビューション毎に違う。パッケージ名が違うだけならまだしも、最終的な /usr/src/ 以下に展開される構成も、configureの仕方も、全部違う。 こんな時はすごい、厭な気分になる。「嫌」でも「イヤ」でもない。京極夏彦的な「厭」なのだ。 まあ良い。例によりあれだ。vmware-config-tools.plを動かすと嵌りますよーという話。 で、ディストリビューションが違うので、FedoraCoreとかUbuntuとか他のディストリの記事を見ても、無意味!!なのだ。 では、行くぜ。 第一幕:VMware-Toolsインストール時の注意点。 メニューからVMware-Toolsのインストールを選び、/mnt/cdromをマウント。で、RPMなんて怪しげな物体はさくっと無視して
ぶっちゃけ、現在のPHP勉強会の受付時間や、それへ出席する面々も偏りすぎではないのかと思います。 いわゆるWeb業界で、業務時間中も自由にWebアクセスが許されてTwitterとかも許可されている世界の人達は、連絡取り合うのも自由ですし、受付開始して10分とかに「ずさー」とかで出席できるのは当然とはいえ・・・。 それ以外の業務形態で、例えばWebアクセスが禁止されていたり制限が掛けられているようなお仕事に就いている人達で「趣味でPHPプログラミングしてるんだけど、オフ会とかにも行きたいよ・・・」という人達向けの門戸が(結果的に)閉ざされてしまっているように思います。指をくわえて見るだけ、あるいは見ることしかできない人達にも少しでも門戸を開けるように・・・というわけで、名付けて「PHP勉強会(B面)」というのはどうでしょうか? 要は単純に回数を増やして間口を広げるだけなんですが・・・。 とい
Windows版Apacheは、通常のインストーラの設定に従うと、デフォルトでサービスとして起動されるよう登録される。 今回は、異なる設定ファイルを読み込むApacheを別々にWindowsのサービスとして起動するよう登録することに挑戦し、目的を達した。 当初の目的はPHP4をLoadするApacheとPHP5をLoadするApacheを別々に立ち上げることであった。 今回は以下のように、"httpd4"と"httpd5"というサービス名でそれぞれ登録してみる。後述のように、最終的には両方とも80番ポートとし、排他的に動作するよう設定した。 サービス名 設定ファイル httpd4 conf/httpd_php4.conf httpd5 conf/httpd_php5.conf なお、当初目的がPHP4とPHP5の共存である為、上掲のconfはPHP4/5の差分、LoadModule周辺部分
とある事情によりRailsの1.2.6を使うことになった。理論上、 $ gem install rails -v 1.2.6 or $ gem install -r rails -v "= 1.2.6"などで(-rオプションはリモートリポジトリと言うことを明示)出来るはずなのだが・・・ $ gem install -r rail -v 1.2.6 ERROR: could not find rail locally or in a repositoryバージョン指定の書式が間違っているのかと、何種類か試すも全滅。で、確か "rails 1.2.6 gem"と、表示されたエラーメッセージをGoogleに突っ込んだところようやく同様の問題で悩んでいる人が居ることが分かった。 gems.rubyforge.org contains a link to the gems themselves. T
例えばログイン認証をかけたページに対して、ログインしてないユーザーがアクセスしたとき、ログインページを表示します。で、ログインに成功したら、もともとユーザーがアクセスしてきたページにリダイレクトさせると思うのです。 そういったときにいわゆる「戻り先URL」というのが必要になってくるのですが、FWに依らずこれを生成するコード、というのがあんま見かけないです。 試しにこんな感じで作ってみました。 function current_url() { $_url = $_SERVER['REQUEST_URI']; $_http_host = $_SERVER['HTTP_HOST']; if (empty($_http_host)) { $_http_host = $_SERVER['SERVER_NAME']; } $_server_port = $_SERVER['SERVER_PORT'];
$usesにばしばし追加してください。逆にモデルを使いたくない場合は class PostController extends AppController{ public $uses = null; cakePHP モデルなしのコントローラーって作れないの? - WEBぷろぐらま〜 システム開発エトセトラ ・・・えっ 空配列じゃないの? Σ(´酈`lll) 「column DBテーブルを使わない場合にも使えますか?」(「CakePHP ガイドブック」(マイコミ), 141P, 初版第一刷) CakePHPは、DBテーブルを使わない場合でも問題なく使用できます。 ... 2. コントローラー内で設定する場合 コントローラーに、var $uses = array(); と書くと、このコントローラーはモデルを読み込まなくなりますので、モデルファイル自体を作成する必要がなくなります。 ... で、
個人的な趣味で、MySQLについてはインストーラパッケージではなく、只のzipパッケージを好んで用います。うーん、PHPとMySQLについてはWindowsインストーラバージョンは使いません。なんか気持ち悪いので。Apacheがぎりぎりですね。 ともあれ。となりますと、Windowsへのサービス登録も全て手動で行わなければなりません。まぁ、この自由度が大好きなのでInstallerを使わないのですが。 ちなみにOSはWindowsXP(SP2)を使ってます。 1. MySQLのダウンロードサイトから、「Without installer」というパッケージをGETします。 2. お好みのディレクトリに解凍します。 例えば自分は、MySQL4の時もInstallerを使わずに入れていたので、 C:\mysql-4.1.15というディレクトリがすでにありました。今回は5.0.51aですので C:
最初、こんなの書いてたんですよ。 RewriteRule ^(\w)+$ index.php?mdl=$1&%{QUERY_STRING} [L]で、Windows版のApache2ではまともに動いてたんですが、LinuxのApache1.3にあげたら動かなくなって「え〜〜??」となってたんですが。 Apache 1.3 : POSIX正規表現 Apache 2.0 : Perl互換正規表現(PCRE) だったのんですね。で、当然"\w"文字クラスはPerl互換正規表現でサポートされているもので、POSIXには無い。 ・・・やられた。そーゆーことかー・・・。結局次のように修正。 RewriteRule ^([0-9a-zA-Z_,\-\.])+$ index.php?mdl=$1&%{QUERY_STRING} [L]うーん、"(.+)"でも良かった気がするのだけれど、まぁ、いっか。 Pa
PHPでのflockについてこの前調べた。で、PHPはセッションデータをどのように永続化するのかについてモジュール化できるようになっている。これをセッションハンドラモジュールと呼称しておく。PHPはファイルに保存して永続化するファイルモジュールと、ユーザー定義 関数によりPHPスクリプトレベルで永続化処理を自由に実装可能なユーザー関数モジュールの二つをデフォルトで提供している。このうちflock()が影響するのはファイルモジュールである。これがどうなっているのか気になって、調査した。 先に結論を述べる。 ファイルモジュールはsession_start()の呼び出しによりファイルにflock()による排他ロックを取得し、session_destroy()あるいはリクエスト処理の完了時などにclose()(Win32においては明示的にflock(LOCK_UN))を行い排他ロックを解除している
Xhwlayとか、YakiBikiで使おうと思ってたチケットトークンの扱いで気になってたものの一つに、flockの範囲の扱いがあった。つまるところ、ファイルをどうロックしてどこでアンロックするのが良いのか?という話。 例えば、次に示すPHPコードはチケットの扱いに問題が発生する。 <?php // チケットIDを取得。ここの部分は話題の範囲外なので省略。 $tickt_id = ... ; // 現在時刻の取得 $now = time(); // チケットファイル名を返却する関数。同様に実装省略 $ticket_file = get_ticket_file($ticket_id); // チケットの最終更新時刻を取得 $mtime = filemtime($ticket_file); // (A1) if ($mtime === false) { // 存在しない場合は無効なチケットIDと
ついカッとなってやってしまった。後悔はしないことはないだろう。 諸君 私はPHPが好きだ 諸君 私はPHPが大好きだ PHP/FI2が好きだ PHP3が好きだ PHP4が好きだ PHP5が好きだ PHP6が好きだ PEARが好きだ PECLが好きだ Smartyが好きだ PHPマニュアルが好きだ PHP-CLIが好きだ Windowsで Linuxで UNIXで BSDで Macで りなざうで Blogで Wikiで サーバ上で クライアントPC上で この地上で行われるありとあらゆるPHPプログラミングが大好きだ file_{get|put}_contents()/file()でファイルの読み書きを一瞬で実装するのが好きだ xdebugで武装したベテランの連中がプロファイリングでボトルネックを検出した時など心がおどる PHP4でnewした結果を&つけ忘れたためオブジェクトがコピーされてしま
id:Yudoufuさんからのコメントを返信し終わって、食器洗いをしながらぐるぐる考えてたら、ExcelVBA, BASICとの対比で気づいた点がある。言語仕様とそれに対する周囲の反応、歴史、使われ方。ともに良くPHPと似ている。いずれも初心者に学習しやすく、初心者でもすぐ動くものが作れて、手早く、出現以降急速に拡散し、広まり、デメリットが認知されつつも長く使われる言語である。もちろん学習しやすいか否かを置いておけばPerlも例外ではない。いずれもある種のムーブメントを起こし、ITに大きな影響を与えている。 言葉は悪いが、いずれもゴキちゃんのようにしぶとく、進化し続け、生き延びている。 違うのは、PHPはWebアプリケーションを作る為に特化している事だ。PerlでもCGIは作れるが。 そこが分水嶺になっている。顧客に対する価値提供という観点ではExcelVBA/BASIC/PHPともに素晴
「会社の飲み会で偉い人の隣でにこにこ笑いながらなんでこんなことをしているんだろうと考えていた。」: http://anond.hatelabo.jp/20101204223555 相当自分を追い詰めているように思える。 お金に余裕があるならカウンセリングなど受けた上で1〜2ヶ月くらいゆっくり休職して会社と距離を置いた方が良いかもしれない。 ここまで自分を追い詰めてしまうと、自分がどれだけ心身が擦り切れているのかすら気づくことが出来なくなる。 冗談抜きで壊れるぞ。心身ともに。 疲れたのなら休んでいいと思う。少しくらい歩みを止めて足元を見つめても、長い人生を考えれば決して無駄にならないと思う。 ご自愛下さい。
今、事情によりPukiWikiのソースコードを眺めています。で、lib/link.php の links_add() 関数で、 $rel_auto = array_flip($rel_auto);という部分がありました。array_flip()というのは http://jp.php.net/manual/ja/function.array-flip.php にあるとおり、配列のキーと値を反転させる関数です。 実はこの関数、以前から「何に使うのかなー」と不思議に思っていたのですが、links_add()の中で上に続いて次の行を見て、久しぶりに感動しました。 $all_auto = isset($rel_auto[$_page]);・・・!!!!!!!そうか・・・そうだったのか・・・!! PHPで、配列にある値がセットされているのかどうか調べるには、次の二つの方法があります。 // キーに設定
お腹の調子も、回復傾向。もとより喉には症状が出ない体質である為、端から見れば仮病にしか見えない程度のだるさ加減。 そんでもって、そんなわけなので、なんの因果かこれから某PRJの緊急のお手伝いに出掛けなければなりませぬ。一日だけのお手伝い。むぅぇ〜〜〜。 それはそれで、CookieのSessionを使った認証で、ずっとこう、CSRFやらHeaderInjectionやら\0攻撃やらばっかりうだうだ構ってたおかげで、普通に重要な User Agentの一致チェック IPAddressの一致チェック とかを「考慮してなかった」。実装する・しないの俎上にすら載せていなかった。アホかと。馬鹿かと。 重要なのは、cookieを使ってsession(厳密には疑似セッション)を実装するにあたっては、cookieのみを同一セッションか否かの判断材料としてはいけないということ。さもなければsession ID
さて、開発用・・・とはいえど。本番用もあるわけで。で、調べなくちゃ行けないのがパッケージのアップデート処理。というわけで、まずはさくっとyumパッケージ自体の中身を見てみます。 $ rpm -ql yum /etc/cron.daily/yum.cron /etc/cron.weekly/yum.cron /etc/logrotate.d/yum /etc/rc.d/init.d/yum /etc/yum /etc/yum.conf /etc/yum.repos.d /etc/yum/yum-daily.yum /usr/bin/yum /usr/bin/yum-arch /usr/lib/python2.3/site-packages/repomd ... /usr/lib/python2.3/site-packages/yum/transactioninfo.pyc /usr/shar
別件でちょっと、VMware上にCentOSの4(最新だと4.5か)を作りました。で、その時のVMwareToolsのインストールメモ。というか。 まぁいいや。 参考リンク: http://wiki.centos.org/TipsAndTricks/YumAndRPM http://wiki.centos.org/HowTos/I_need_the_Kernel_Source まず、yumで rpm-build というパッケージをインストールする必要があるようです。 $ rpm -qa | grep rpm ... rpm-build-4.3.3-22_nonptl ...入ってましたので次に行きます。えっと、どうもRPMをビルドするのはどこかローカルでやりましょう、というらしいです。通常は /usr/src/redhat (TurboLinuxだったら/var/src/rpmだな。) の
次のページ
このページを最初にブックマークしてみませんか?
『ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く