Webサーバを3分で自作する。 ローカルPC内の HTMLなどの固定ファイル PHP, Rubyなど動的ページ を,どちらもブラウザ越しでアクセスできるよう,インターネットに公開する。 以下を流し読みしながら,ソースコードをコピペすると,およそ3分でWebサーバが動く。 とりあえずGETのみ・テキストデータのみ・SJISのみ。 実用版ではないので,起動中のセキュリティリスクは自己責任で。 (1)窓口を作ろう まずは,「リクエストを受け付けて,レスポンスを返す」という窓口の部分。 下記コードを javac Sv.java でコンパイル。Sv.class ができる。 Sv.java import java.io.*; import java.net.*; public class Sv implements Runnable { // ユーザの窓口となるソケット private Socket
「cronないのかー、じゃあ○○でやるかー」とすぐに思いついた方法なのでブログに書くまでもないと思っていたのだけど「公開してないの?」と言われたので書いておく。使うのならばくだらないバッドノウハウであることを十分理解した上で自己責任でどうぞ。 ある程度アクセスのあるサイトで、1日1回程度の間隔を置いて処理をしたい場合。かつ、定期的処理のタイミングが厳密に特定時刻である必要がない場合、memcached APIをつかえばいい。あるキーを監視してexpireしているときにはある処理し、完了したときに24 * 60 * 60秒でexpireする値をそのキーで入れる。これでOK。もちろんこの方法だと徐々に実行される時刻が進んで行くのでそれが嫌なら「次の午前3時までの秒数」なんかをつかうのも手だ。 このキー監視はなるべく頻繁にキックされたいけども、処理に時間がかかることでユーザをいらつかせるのは避け
『西洋の真似をするだけというのはそろそろやめよう』の記事に ssw さんから以下のようなコメントをもらった。 初めまして。共感する記事だったので、サムライエンジニアの話も読んでみました。 仰る武士道エンジニアは、私の知る限り多くの場所にいました。しかし、成果を上げる能力を持った誠実なエンジニアほど、業界を去る例が多いように思っています。いくら注意してもバグやトラブルで切腹を余儀なくされる侍に重なって見えないでしょうか? 私も侍エンジニアを目指したいと思いますが、SW風に言う暗黒面の誘惑を断ち切れず、過剰防衛や飛び道具を捨てられません。もうちょっと修行が必要なようです。 面白い記事ありがとうございました。 sswさんの言う「暗黒面の誘惑」はソフトウェアの世界では特に多いように思うので、今回はソフトウェア開発における暗黒面の誘惑について考えてみたい。 ソフトウェア開発は「見えない」とよく言われ
人は目先の欲求に負けやすい。安易な方へと流れ、仕事で手を抜いたり、酷い場合は不正をしたりもする。だから、それを人の本質と捉え、ちゃんとやってないであろうことを前提に仕事のプロセスは組まれる。 作業内容を事細かにチェックしたり、あるいはネットワークを監視したり。何かやっても見つけ出すぞ、とプレッシャーをかける。ISOなんかやってて大量のエビデンスを求められるのも、性悪説がベースになっているようにも思う。 さてさて。 こういう仕組みが必要なことはあるのかもしれない。しかしながら、必要最低限の留めるべきである、と言いたい。組織全体が性悪説を前提にコミュニケーションしている様を想像してほしい。うんざりだ。 上司が、部下が、同僚が、自分に対して端から疑ってかかってくる。そんな風に接してこられたら、心を病んでしまいそうだ。 まぁ、それは極端な例にしても、傾向として性悪説に軸足を置いた組織ってのは、コミ
プログラムにおける型システムってのは数学・論理学の型理論を基盤にしていて、抽象的なもやもやとした代物。この型システムの理論を現実に実装したものとして、多様なプログラム言語が存在するわけだ。 鶏と卵という話だとどっちなんだろう。実装が先でそれを理論としてまとめたって感じなのか、理論がまず考えられてプログラム言語が実装されたのか…。最初のプログラム言語というと1954年に登場したFORTRANで、IBMのジョン・バッカス氏*1によって考案された。FORTRANにはいくつかの数値型がある。この頃に型システムの体系的な理論ができていたとは思えないから多分、実装が先行なんだろうな。 理論としての型、そのJava実装のクラス 型システム(type system)でいう型(type)は型理論に基づくわけで、数学的な抽象概念に近い。例えば僕らが日常生活で数学的概念である1/3という値を厳密に使うことはない
S2JDBCでServiceクラスをどのように作るか考えた時に参考にしたエントリー群です。肝は、3点。 Serviceクラスは、Entityクラスと1:1で対応させる。 Serviceクラスは、Entityに対する処理以外はやらない。 Serviceクラス以外は、jdbcManagerを生で使用しない。(Actionにとか) AbstractServiceを作成し、DBに関する共通処理を集約させる(削除フラグとか更新日とか) あ、4つになったw 公式ドキュメント二つ まず読みましょう S2JDBCとは サービスの作り方 JavaDoc こっちも必須です。 javadoc: S2AbstractServiceクラス 出羽さんのエントリー。納得できるまで、読み返すこと S2JDBC の弱点を補完するS2AbstractService 続・SAStruts + S2JDBCのアーキテクチャ ジェ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く