タグ

ブックマーク / higayasuo.hatenablog.com (31)

  • ソーシャル素人がソーシャル系ビジネスをやりながら学んだこと - ひがやすを技術ブログ

    2010になって、私は感じました。ITの流れが変わった。 これからの主役は、エンタープライズではない、ソーシャル系のビジネスだと。 勘違いしないで欲しいのは、エンタープライズ系のビジネスがだめだと言っているわけではないということです。今という瞬間なら、エンタープライズ系のビジネスは重要でしょう。 しかし、儲からないし、未来はない。 これが下記のエントリにつながってきます。 SI業界からはさっさと抜けだしたほうがいい http://d.hatena.ne.jp/higayasuo/20110111/1294718077 サービスを考える人と、プログラムをする人は、求められているスキルが違うから、両方をやるのは難しいんじゃないというような、眠たいコメントもあったけど、誰もができるようなことをしてたんじゃ、それは金になりません。 誰もができないことができるから金になる。人と差別化できなければ、そ

    ソーシャル素人がソーシャル系ビジネスをやりながら学んだこと - ひがやすを技術ブログ
  • Google App EngineでGlobal Transaction - ひがやすを技術ブログ

    Google App EngineにはTransactionは1つのEntity Group内でしかできないという制限があります。詳しくは、App EngineのEntityGroupを理解しよう - yvsu pron. yasを参照してください。 そうするとある口座から別の口座にお金を振込むような送金のパターンで、Transactionを利用することができません(すべての口座を1Entity Groupに押し込むと更新がぶつかって現実的ではないから)。送金パターンで整合性を保つためには、理論的には次のようになります。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 実装するとこんな感じ。 http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engi

    Google App EngineでGlobal Transaction - ひがやすを技術ブログ
  • Slim3 for Google App Engine/Java - ひがやすを技術ブログ

    Slim3をGAE/Jに対応させました。 デモサイトはこちら。 http://higayasuo.appspot.com/ ソースコードをチェックアウトしたい場合はこちら。 http://code.google.com/p/slim3/source/checkout https://slim3.googlecode.com/svn/を指定してチェックアウトできます。デモ用のプロジェクトは、slim3-demoです。 SAStrutsのチュートリアルをやったことのある人なら、デモサイトが、そっくりだということがわかるでしょう。Slim3 Struts(SAStruts相当)がGAE/Jで動くわけです。 素のStrutsだとGAEではファイルアップロードに失敗しますが、Slim3 Strutsはその辺も対応してます。 やってみて感じたのは、GAE/Jは、制限が結構厳しいので、高度なフレームワー

    Slim3 for Google App Engine/Java - ひがやすを技術ブログ
  • AppEngine/Jのspin-upを劇的に改善する方法 - ひがやすを技術ブログ

    AppEngineは、アクセスがあったときにアプリケーションを起動し、しばらくアクセスが無ければアプリケーションを終了させ、また次のリクエストで再起動するという仕組みを導入しています。 そのため、アプリケーションを起動(spin-up)する時間がとても重要になってきます。このspin-upの時間はpython(webapp)で60cpu_ms以下。(cpu_msはcpuが使う仮想的な時間ですがmsと同じ感じで捉えてもらってもとりあえずは大丈夫です)JavaのServletだと600cpu_msくらいです。PythonでもDjangoような大きなフレームワークだと1000cpu_msくらい(アプリによる)かかりますが、許容範囲内。JavaだとSlim3で1300cpu_ms、Springだと早くて7000cpu_msという感じで、Slim3がギリギリ許容範囲内でしょうか。ほんとうは、1000

    AppEngine/Jのspin-upを劇的に改善する方法 - ひがやすを技術ブログ
    todogzm
    todogzm 2010/11/10
  • AppEngineにどんなアプリが向いているのかを知ろう - ひがやすを技術ブログ

    AppEngineは、万能なプラットフォームではありません。むしろ、かなり使い道は限定されていると言ってもいいでしょう。 向いていないアプリで使うとかなりはまって、アプリが完成しないリスクがあります。 一方、向いているアプリで使うとこれまでよりかなり費用を節約できたりとか、儲けにつなげることができます。 AppEngineにどのようなアプリが向いているかというと、AppEngineがGoogleの既存のインフラをそのまま利用していることをまず知っておく必要があります。 Googleのインフラは、(極端に単純化すると)大量のデータを多くの人に同時に見せるために最適化されています。 AppEngineも同様で、大量のデータに大量にアクセスがあっても大丈夫なように、BigtableというKVSを使っています。また、自動でスケールアウトするWebのFront Endも既存のインフラをそのまま使って

    AppEngineにどんなアプリが向いているのかを知ろう - ひがやすを技術ブログ
  • プロが仕事で使う場合にApp Engineでどの言語を選べばいいのか - ひがやすを技術ブログ

    App Engineではどの言語を使えばいいのか - yvsu pron. yasで書いたとおり、App Engineで使う言語は、素のSDKで比べるとPythonの方がJavaより断然出来がいい。 ただ、仕事で使う場合は、素のSDKで開発することはなく、何らかのフレームワークを使うことが普通です。App Engineに特化したKay frameworkやSlim3のレベルで比べるとそんなに違いはありません。 これは、単純なリクエストの処理だと、Javaの方が10倍速いが、実際に行われている処理で比べるとそんなに違いはないのと似ています。 私は、Javaを使っているので、Javaへの評価が良くなりすぎないように、意識的にJavaのデメリットを強調し、Pythonのメリットを強調していますが、実際の仕事で使うレベルにおいては、差はほとんどないということです。 んんーーーー。 たまには音を書

    プロが仕事で使う場合にApp Engineでどの言語を選べばいいのか - ひがやすを技術ブログ
  • HOT reloadingとClassLoaderを理解しよう - ひがやすを技術ブログ

    JavaではClassはClassLoaderに読み込まれます。これはほとんどの人が知っていると思います。AOPを使うときのエンハンスされたクラスも同様にClassLoaderに読み込まれます。 これらの情報は、パーマネント領域に格納されますが、ClassLoaderがGCされると解放されます。 Seasar2のHOT reloadingでは、リクエストの度にClassLoaderを作って、そこにClassをロードし、そのClassLoaderは、リクエストが終わったら破棄しているので、Classの情報は、リクエストごとに破棄されています。 HOT relodingによって、パーマネント領域が使いつくされることはありません。 さらっと書きましたが、きちんとClassLoaderを破棄するのは、かなり大変です。リフレクションの情報がキャッシュされているとそれだけで破棄されなくなってしまうから

    HOT reloadingとClassLoaderを理解しよう - ひがやすを技術ブログ
  • SIerの解体と再生 - ひがやすを技術ブログ

    ござ先輩のところで、SIer涙目な状態が解説されてますね。 最近SIerがだいぶヤバくなっている件 - GoTheDistance 書いていることはだいたいあっているんじゃないかと思います。 じゃ、SIerは、どうやれば生き残ることができるのか。 「今の体制のまま生き残る必要はないんじゃないの」というのが私の考えです。多重下請け構造こそ、SI業界の最大の問題点なわけだから、「ゼネコン型SIビジネスが崩壊する」のは、悪い話じゃない。 もちろん、会社がなくなったりすると職がなくなり困る人も出てくるわけですが、問題のある業界を残しておくより、一度解体し、新たにやり直したほうがいいと思います。 だって、実際に物を作れないような人たちが設計するなんて、おかしいし、効率悪いもの。 効率の悪いことをしている人が淘汰されるのは当然の話です。 だったら、なぜこれまでゼネコン型SIビジネスが生き延びてこれたの

    SIerの解体と再生 - ひがやすを技術ブログ
    todogzm
    todogzm 2009/07/28
    そうそう、自分が使う業務システムなんだから自分で作った方が当然いいはずだよねぇ。プロフェッショナルSIerというのも納得がいく。例えば業務改善のプロとか生産管理のプロとかね。
  • 飲み会で遭遇したありえないJava-ja系女子 - ひがやすを技術ブログ

    最近の勉強会ブームに便乗して飲み会に参加している男子でつ。|´・ω・)ノ もちろん、「だんご」と読みます。花男好きだからね。 今年に入ってかなりたくさんの女子さんと飲み会を繰り返してきたのですが、 ありえないレベルにびっくり ありえないランキング 5 まともな男子がいる場所を知らない 特にありえないのがJava-jaにくる女子 あー、この人Java-jaでしか生きていけないんだと 絶対領域とか言い出された日には(゚Д゚; 4 腐女子アピール 「私、腐女子なんだよね」とか(-Д-) http://d.hatena.ne.jp/yuripop/20090511/p1 上から読めよふつーに 3 マナーがひどい たとえば、ベランダでシャボン玉するとか http://d.hatena.ne.jp/yuripop/20090525/p1 タイトルとは裏腹にかわいい男の子の写真をのっけてるだけじゃないか

    飲み会で遭遇したありえないJava-ja系女子 - ひがやすを技術ブログ
    todogzm
    todogzm 2009/06/29
    うーん、反射的に「Javaはモテ」タグを付けてみたものの…どうしたものやら。とりあえず保留。
  • テストを書くときはコストベネフィットを考えろ - ひがやすを blog

    InfoQにKent Beckの最新の提案がでてますね。Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案 でも、これは、Kent Beckが「ごく短期のプロジェクトではテストを省略しても良い」といってるわけではないと思うんですよ。キャッチーなタイトルをたまたまつけられてしまっただけで。 重要なポイントはここだと思います。 Maxを開発しているとき、テストを書くか否かという質問は、要するに、そのテストが単位時間当たりにより多くの有効な実験をするのに役立つかどうかでした。もし役に立つのであれば、私はテストを書きます。そうでなければ、不要だと判断します。私はMaxの収入を軌道に乗せるためのチャンスを最大化しようとしているのです。 つまり、「テストがかけた時間の割りに役に立つと思ったら書くし、そうでなければ書かない」ということだと思います。別に短期のプロジェクトでも、コス

    テストを書くときはコストベネフィットを考えろ - ひがやすを blog
  • 海部さんと梅田さんに知って欲しいオープンソースの三つのポイント - ひがやすを技術ブログ

    最初に謝っておきます。「オープンソースについて知らないのなら軽々しく書くな」というのは言い過ぎですね。だれでも自由に物を書く権利がある。ただ、変なことを書かれても困るので、知っておいて欲しい重要なポイントを書いておきます。 参考にしていただけると幸いです。そうじゃないと、また、それは違うよと指摘しないといけなくなるから。 最初に、オープンソースとは何なのかは、正しく理解して欲しいし、違うものをオープンソースと読んで欲しくない。お客様と話すときでも、お互いに思い違いが発生しないように同じ単語は、同じ意味になるように最初に調整しますよね。あれと同じことです。 オープンソースの定義は、http://www.opensource.jp/osd/osd-japanese.htmlに載ってます。でも、難いですよね。普通の人に説明するには難しすぎます。 個人的には、「オープンソースとは、ソースが公開され

    海部さんと梅田さんに知って欲しいオープンソースの三つのポイント - ひがやすを技術ブログ
    todogzm
    todogzm 2009/06/23
    今回の問題は主作用(ソースが公開されてて誰でも自由に手に入る)と副作用(善意による自発的協業)がごっちゃになったこと、なのか。
  • Java EE終了のお知らせ - ひがやすを技術ブログ

    Web Beans(JSR299)に対抗して、Guice, Spring連合が新しいDIの仕様を出してますね。 http://google-code-updates.blogspot.com/2009/05/javaxinjectinject.html 超ざっくばらんに言うと、まぁGuiceですな。 なぜ、この時期に、Web Beansとかぶるような仕様を出してきたかというと、Web Beans(Gavin)の政治的な動きに対して、Guice(Bob Lee)も政治的な動きで対抗したというところでしょう。あくまでも私見ですが。 これに対して、Gavinが反論を書いていて、それに対して、Bob Leeがさらに答え、子供の喧嘩みたいになっています。 http://in.relation.to/Bloggers/CommentsOnAnnotationsForDependencyInjectio

    Java EE終了のお知らせ - ひがやすを技術ブログ
  • 報酬にこだわらないとプログラマの地位は低下するよ - ひがやすを技術ブログ

    プログラマーお金とは無縁の存在です。 プログラミングに誇りを持ちたいなら単価を上げること - ひがやすを blogには全く賛成できません。 なぜなら「プログラム」は質的に経済的価値を持っているわけではないので、プログラムを作る人、すなわちプログラマー質的に経済的価値をもつ存在ではないからです。 こう思っている人は、そこそこいるかもしれないけど、だからこそ、プログラマーの地位が低いんだと断言しておこう。プログラムは質的に価値がないって思っているのがそもそも間違い。 良いプログラムは価値がある。元の山さんの話にも出てくるけど、きちんとしたプログラムによって、システムは、サクサク動くようになり、業務上の使い道が大きく広がるのです。 価値のあるものからは、対価(金)を得なくてはならない。 エンジニアに限った話ではないけど、自分の成果に対する報酬は、こだわるべきだ。じゃないと優秀な人が入

    報酬にこだわらないとプログラマの地位は低下するよ - ひがやすを技術ブログ
    todogzm
    todogzm 2009/02/24
    shiroさんのコメントが秀逸。
  • 「RDBMSの時代の終わりが見えてきた」についてそろそろ一言言っておくか - ひがやすを技術ブログ

    2008-12-12 いくつか誤解を生みそうな表現があるので、それをまずは指摘しましょう。 プログラムモデルとしては、すでにRDBMSからの脱却の準備は始まっています。ORマッピングがそれです。 これが、意図的かはわからないけど、ミスリードを生んでいます。「RDBMSの時代の終わりが見えてきた」というタイトルで、こういう書き方をすると、「ORマッピングによって、すでにRDBMSからの脱却の準備は始まっている」という風に読めるでしょう。これが、ミスリード。 JPAが大切だと思っているのは、永続パラダイムの転換に、コーディングを変えることなく対応できるからです。もちろんJPA+RDBMSのシステムをJPA+非RDBMSに切り替えれるという話ではなく、プログラマのコードの書き方の対応の話です。 これをもう少し、噛み砕くと、JPAのJPQL(SQLもどき)を使えば、SQLとしては統一されていない複

    「RDBMSの時代の終わりが見えてきた」についてそろそろ一言言っておくか - ひがやすを技術ブログ
    todogzm
    todogzm 2008/12/15
    最後のオチが強烈すぎてカプチーノ噴いたw 適材適所重要。丸山先生が目の前を歩いていたら後ろを向いて全力で逃げろ、ですね(そこまで言ってません)
  • オンデマンドデプロイのすすめ - ひがやすを blog

    JavaでAnnotationがついたクラスがあったら、それに対して処理したい場合は、Seasar2のコンポーネント自動登録で使っているように、ファイルシステムまたは Jar ファイルを全走査してクラスロードする方法もあります。 ファイルシステムまたは Jar ファイルを全走査してクラスロードしてください。が結論です。 Seasar だったら、 org.seasar.framework.util.ClassTraversal を読むべし。 でも、これは、Seasar2.3時代(3年前)の話で、技術としてはちょっと古い。 HOT deployなどと組み合わせると、リクエストのたびに全コンポーネントをデプロイする必要があるので、コンポーネントの数が増えると実用的には使えないのです。 そこで、考え出したのが、Seasar2のONDEMAND deploy。コンポーネントの定義を見に行って、あれば

    オンデマンドデプロイのすすめ - ひがやすを blog
  • Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ

    Javaのコネクションプーリングがどのような仕組みになっているのか、知らない人は結構多いんじゃないかと思います。 Slim3のコネクションプーリングの実装を見ると、この辺が理解できるようになります。トランザクションとコネクションプーリングがどのように連携しているかを把握することは重要です。 http://svn.slim3.org/browse/trunk/slim3/slim3-datasource/src/main/java/org/slim3/datasource/ 登場人物は、4人しかいないから簡単ですね。 最初に見て欲しいのは、ConnectionWrapper。DataSource.getConnection()したときに戻されるコネクションの実態です。このコネクションを論理的なコネクションと呼ぶようにします。 主な役割は、コネクションがクローズされたときに、コネクションをプー

    Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ
  • RailsとSeasar2で同じアプリを作って比較する - ひがやすを技術ブログ

    この間から、コードなにがしに「SAStrutsによるWebアプリケーションスーパーサンプル」を投稿し始めましたが、さらに同じ仕様のものをRuby on Railsで作成してみようと思いまして「Ruby on Railsあれこれ」に「Ruby on RailsによるWebアプリケーションスーパーサンプル」も始めちゃいました。。。 RailsとSeasar2で同じアプリを作っている方がいました。 nanigac.com Loading... Seasar2の方は、とても情報が充実しているので、SAStrutsとS2JDBCで開発されている方は一度目を通しておくといいんじゃないかと思います。 生産性の違いはというと コーディング量は、 「Ruby on Rails」<「SAStruts」 ですね。Railsの方が、生産量は少なくすみます。 ただ、情報の充実度は、 「Ruby on Rails」<

    RailsとSeasar2で同じアプリを作って比較する - ひがやすを技術ブログ
  • 勘違い化が進む池田信夫 - ひがやすを技術ブログ

    「全文を出さずパーマリンクなし」という仕様が、日のすべての新聞・テレビ・通信社のサイトで例外なく採用されていることだ。その編集委員は「新聞協会で申し合わせたわけではないが、暗黙の談合みたいなものだ」という。競争をきらう風土によって、日のウェブはいびつなガラパゴス化した進化を遂げているのである。 ガラパゴス化した進化というのは、日の携帯のように、ほかでは通用しないような独自の進化を遂げたものについて言うんでしょう。 日のメディアのサイトが、「全文を出さずパーマリンクなし」というのは、単に時代に後れているだけで、進化とはいわないよ。 新聞サイトも、購読料モデルから検索に最適化してアクセスを稼ぐ方向に転換し、グーグル化しているのだ。 ページビューを稼ぐ方針にサイトを変えることを「グーグル化」というのか、知らなかったよ。たぶん、おいらが無知なせいだと思うけど、違和感あるな。 これに対して、

    勘違い化が進む池田信夫 - ひがやすを技術ブログ
    todogzm
    todogzm 2008/09/24
    ※1 ちょw
  • Seasarに関してこの2年間やってきたこと - ひがやすを技術ブログ

    おととい、Seasarの理事、主にまさたかさんと、しばらくぶりにちゃんと話しました。そこで、おいらが、この2年間くらいの間、何を考え、何をしていたか話したんだけど、「ひがさんが何をしていたかしらなかったよ」と、まさたかさんがいってたので、きっと、コミッタの人やユーザーの方も同じだと思うので、Seasarに関してこの2年間やってきたことについて書いておこうと思います。 まさたかさんと、ここんとこ話をしていなかったのは、別に仲が悪かったわけではなく、はぶさんが理事を抜けた後、飲み会とかやらなくなったから、というのが原因。後、おいらも結婚したので、あまり外で飲まなくなったってのもあります。 2年前のSeasarがどのような状態にあったかっていうと、ちょうど、キャズムに陥っている状態。そこそこの知名度はあるけど、アーリーアダブタ以外は手を出さない。 そこで、私が行なったのは、HOT deploy、

    Seasarに関してこの2年間やってきたこと - ひがやすを技術ブログ
  • 「どこの店がいい?」「どこでもいいよ」にどう対応するか - ひがやすを技術ブログ

    女性は、なかなか「☆☆というお店に行きたい」「△△で、○○がべたい」といったリクエストを直接男子に出しません。 それでも「どこがいい?」と男性がたずねると「どこでもいいよ」と答えたりします。 だからといって、当にどこでもいいわけではなく、何かしらの希望はあるはずです。ですから、男性のみなさんは、上手にその希望をリサーチする必要があります。 デートのときに女性に「どんな店にべに行こうか?」と聞くと、確かにかなりの確立で「どこでもいいよ」という答えが返って来る気がする。もちろん、どこでもいいわけではなく、どんなお店を選んでくれるのか様子を見ているわけだよね。 上記の記事だと、いろいろさぐりをいれて(誘導尋問)、店を決めたほうがいいとのことですが、これは結構難しい。 お勧めは、カジュアルなイタリアンを選ぶこと。もちろん、「イタリアンでもいい?」と最初にちゃんと確認したうえで。たいていのイタ

    「どこの店がいい?」「どこでもいいよ」にどう対応するか - ひがやすを技術ブログ
    todogzm
    todogzm 2008/08/08
    「貴方とだったらどこでもいいよ」と言わせる男になるのが先決!という妄想。