タグ

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

  • SIは本当に終わったのか? - ひがやすを技術ブログ

    SmartNewsやBacklogの華やかな成功をみていると、SIになんて明るい未来はないんだから、これからはスタートアップをやるべきだと思う方も少なくはないでしょう。 だけど、世の中そんなに甘くない。 私は、2011年から5年間、スタートアップのようなことをずっとやっていますが、未だに何一つ成功していません。 問題は、技術にあった訳ではありません。やりたいことで実現できなかったことなんてなかった。 問題が、アイディアにあった訳でもありません。もちろん、アイディアが今一で、失敗したプロジェクトもありますが。電通の人たちと一緒に仕事をやっているので、アイディアは面白そうなものがほとんどです。でも、実際に実装してみると、それほど面白いものにならない。 これ、実はしょうがないんです。アイディアは実装するまで、その当の面白さを確認できないから。 だから、スタートアップでは、アイディアの面白さが確

    SIは本当に終わったのか? - ひがやすを技術ブログ
  • TaskQueueをローカルでデバッグする方法 - ひがやすを技術ブログ

    SDK 1.2.5からGoogle App EngineにTaskQueueが導入されましたが、ローカル(development server)でデバッグはできないと思っている人が結構いるようなので、やり方を書いておきます。 ローカルの環境では、Queueにaddしたタスクは、自動的には実行されず、Queueにたまっています。たまっているタスクを実行するには、http://localhost:8080/_ah/adminにアクセスし、左側のTask Queuesのリンクをクリックします。 すると、Queueの一覧が表示されるので、そこでQueueのリンクをクリックすると、タスクを実行する画面に遷移します。そこで、runのボタンを押すと、ローカルでQueueのタスクを実行できます。 Web ApplicationをDebug Asで起動しておけば、EclipseからDebugすることもできま

    TaskQueueをローカルでデバッグする方法 - ひがやすを技術ブログ
  • SI業界からはさっさと抜けだしたほうがいい - ひがやすを技術ブログ

    SI業界(日)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている? - 達人プログラマーを目指して http://d.hatena.ne.jp/ryoasai/20110109/1294581985 をうけて自分の考えを書いておきます。 二年前なら、自分もどうしたらSI業界をよく出来るか真剣に考えていたし、NTTデータの人達と実際に話し合いもしています。 NTTデータとの真昼の対決シリーズ http://d.hatena.ne.jp/higayasuo/20080612/1213241779 http://d.hatena.ne.jp/higayasuo/20080828/1219901392 でも、ソーシャル、クラウド、スマフォの時代になって、考えが変わりました。 今は、世の中の動きがかなり速くなっているので、その中で素早くチャンスを捕まえたものだけが生き残ります。受

    SI業界からはさっさと抜けだしたほうがいい - ひがやすを技術ブログ
  • 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を劇的に改善する方法 - ひがやすを技術ブログ
  • ひがやすを blog

    今週の土曜、9/24にSeasar Conference Finalを行います。 10年前に始まったSeasar Conferenceもいよいよ今度でFinalです。 お申し込みはこちら。 http://seasar.connpass.com/event/38679/ Seasar Projectの面白かったところって、開発方法論が盛り上がったところだと思うんですよ。 ステートレスなサービス + DTO vs Fatなドメインモデルみたいな。 マーチンファウラーをはじめとして、著名な人たちのほとんどが「ドメインモデル推し」の中、僕は、「ステートレスなサービス + DTO推し」だったからね。S2Daoは、このために作ったようなものです。 あの開発方法論の議論に、かなりの人が参加したり、自分で考えたりしたでしょう。それが、面白かったところです。みんなが自分の事として考えたから。そんな難しい話で

    ひがやすを blog
  • ある程度の年齢を迎えたプログラマが生き残るには - ひがやすを技術ブログ

    ある程度の年齢を迎えたプログラマが抱える悩みに、「若手のプログラマと比べて、どうやって価値を出していくか」という問題があります。これは言い換えれば「同じような生産性であれば、相対的に給料の低い若手のプログラマに置き換えられてしまうのではないか」という悩みです。 35才(2004年)でプログラマとしてオープンソースを始め、今年で42才になる俺が通りますよ。 35才までは、SIerの中でSEをやってたので、そんなにプログラムは書いたことがないです。 上記のエントリには、いろんな戦略が書いていますが、ぶっちゃけ戦略は一番重要なことではなく、一番重要なのは、常に自分の価値を高めるために努力し続けることです。 努力や挑戦をやめたら、自分の価値はどんどん陳腐化して下がっていくのは当たり前なのです。 自分がどんなことに挑戦してきたのかちょっと書いてみますね。 2004年1月、プログラマとして何か新しいこ

    ある程度の年齢を迎えたプログラマが生き残るには - ひがやすを技術ブログ
  • 受託開発に未来はない? - ひがやすを技術ブログ

    私は1年以上、エンタープライズの世界(企業向けSIとか)から離れ、ずっとGoogle App Engineをやっています。今は、Google App Engine + Webkitベースのブラウザで動くHTML5を使ったグローバルな新サービスを提供しようとしていて、新規事業立ち上げのために日々奮闘しているので、エンタープライズな世界に戻ってくることは、基無いでしょう。 私は、受託開発に未来はないと思っているので、自分でサービスを提供する側に回ろうとしているわけです。受託開発に未来はないといっても、文字通り未来はないという意味で、すぐになくなるわけではないし、生きてくために必要な部分も多々あると思います(うちの会社もSIerだし)が、今後は撤退すべきだろうという判断です。 受託開発になぜ未来がないかというと、世の中の動きがかなり速くなっているので、その中で素早くチャンスを捕まえたものが生き

    受託開発に未来はない? - ひがやすを技術ブログ
  • Seasar3開発中止 - ひがやすを技術ブログ

    Seasar3の開発を担当する予定だった小林さんが、Seasar3開発のモチベーションが萎えちゃったようなので、開発を一旦中止します。 http://d.hatena.ne.jp/koichik/20100806#1281070800 お前がやればいいじゃないかと言われそうですが、今、丸山先生が、Spring/Rooをとても熱心に追っかけているんです。 http://maruyama.cloud-market.com/cloud-doc/Roo.pdf http://www.ustream.tv/recorded/8600913 丸山先生が熱心に追っかける技術は流行らないというジンクス(先生ごめんなさい)を私は真面目に信じているので、小林さんがヤル気をなくしたのもあり、Seasar3の開発は中止したいと思います。 ちなみに、去年PDCというマイクロソフトの大きなイベントに行って、Azure

    Seasar3開発中止 - ひがやすを技術ブログ
  • App Engineではどの言語を使えばいいのか - ひがやすを技術ブログ

    App Engineで使える言語は基的にはPythonJavaです。それでは、どちらを選ぶのが良いのでしょうか。 それ以外の言語の人向けの話は後から出てくるのでしばらくこのままお読みください。 趣味ならば単に好きなものを選ぶだけでいいのですが、仕事で使うためには、長所と短所をきちんと把握した上で選ぶ必要があります。また、ここでの話は言語としての一般的な話ではなくApp Engineで使うとき限定の話としてお読みください。 まず安定度ですが、インフラ部分の安定度は、どちらも基的に同じです。もしかすると、まったく同じものを使っているのかもしれません。 その上で動くAPIの部分は、インフラと直接結びついている低レベルな部分と低レベルなAPIの上に構築された高レベルな部分とに分けて考える必要があります。 低レベルなAPIはLLAPIと呼ばれたりしますが、安定度は、PythonJavaも同じ

    App Engineではどの言語を使えばいいのか - ひがやすを技術ブログ
  • 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 Preview release - ひがやすを技術ブログ

    Slim3の正式リリースは、来年の一月くらいになりそうですが、ドキュメントも最低限のものはそろったので、今の段階のものをPreview版として紹介しておきます。 サイトへは、http://slim3.org でアクセスしてください。 Getting Startedをやり、Slim3 Datastoreのドキュメントを読み、Online demoをみれば、Slim3のことは把握できるようになっています。 Oneline demoからソースも見れるようになっているので、動かしながらソースを確認することができます。Online demoは、IE6で見るとレイアウトが崩れていますが、これはIE6を使うなというメッセージということで。(IE7,8では未確認) Slim3は、Google App Engineに対して最適化されています。 例えば、最近、App Engineで問題になっているのは、spi

    Slim3 Preview release - ひがやすを技術ブログ
  • 私はなぜJDOを捨てたのか - ひがやすを技術ブログ

    Google App Engine/Javaで開発している人は、かなりの確立で、JDOを使って開発していると思います(JPAが使い物にならないので)が、心の奥底では、JDOの使いにくさに疑問を持っているはずです。ただ、GoogleがJDOを推しているので、思っていても口に出せなかっただけで。 バグが多い問題も、思っていても誰も口にできないタブーです。 これは、JDO自体の問題というより、JDOのような汎用的なソリューションをBigtableという超限定的な環境に適応させようとしているところに根的な無理があるのです。 Bigtableには、Datastore APIというBigtableに特化されたLow level のAPIが用意されています。やはり、このLow level APIを使うのが一番素直で無理がないのです。 今回は、appengine java night #2というイベント

    私はなぜJDOを捨てたのか - ひがやすを技術ブログ
  • 奥さんにささげる - ひがやすを技術ブログ

    奥さんっていってものほうじゃなくて、http://developer.cybozu.co.jp/kazuho/のほうね。 昨日のTokyo Cloud Developerで、kazuhoとBigtableの話をしてたんだけど、ちょうど、松尾さんからいい資料があるといわれてみてみたらとてもすばらしかった。松尾さん、ありがとうー。 http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore もう既に見ているかもしれないけど、一応ご報告。 Google App Engine(Bigtable)の内部のデータのもちかたが詳しく説明されています。 これをみずに、Bigtableは理解できない。 奥さんじゃない人も、App Engineに興味のある方は見るといいよ。

    奥さんにささげる - ひがやすを技術ブログ
  • Kent Beckが誤爆? - ひがやすを技術ブログ

    Google App EngineのMLに、Kent Beckって人がメールしてて、まさか人じゃないだろうと思っていたら、まさしくAgileの神、Kent Beckのようでした。なぜか、誤爆。 メールの中でJUnit/Maxって書いてあるから人に間違いないと思う。 http://groups.google.com/group/google-appengine-java/browse_thread/thread/d58818f1663753f2?hl=en# 中身は、JUnit/Maxを立ち上げるにあたっていろいろ考えたことが書いてあって、とてもためになると思うので、ぜひ一読を。 Kent Beckの意見が聞けるのはとても貴重なことなのに、まさかGAEのMLで経験できるとは。

    Kent Beckが誤爆? - ひがやすを技術ブログ
  • JDOのモデルの状態を理解しよう - ひがやすを技術ブログ

    GAEのJDOのモデルは、ざっくりいうと4種類の状態があります(当はもっといっぱいあるけど、4つをおさえておけば普通はOK)。 transient persistent detached hollow モデルをnewして、PersistenceManager#makePersistent()を呼ぶまでは、transientです。 PersistenceManager#makePersistent()がよばれるとpersistentな状態です。persistentなモデルの状態は、PersistenceManagerをcloseするかTransactionをcommitしたときに、データストアに反映されます。 PersistenceManagerをcloseしたときからが、運命の分かれ目。何の設定もしないとhollowになり、lazy loadingされているオブジェクトに触ろうとするとエ

    JDOのモデルの状態を理解しよう - ひがやすを技術ブログ
  • Bigtableの使い方教えます - ひがやすを技術ブログ

    GAE/Jを使うのに一番戸惑うのが、データのストレージがRDBMSではなく、Bigtableなことでしょう。 JOINが使えなかったり、WHERE句でORが使えなかったり、これまで慣れ親しんでいた方法が軒並み使えません。 これらの制限は、Bigtableに限ったことではなく、KVS(Key Value Store)型のクラウド系のデータベースではみんないえることだと思います。 最初、私も戸惑ったんだけど、いろいろ触っているうちに気付きました。昔、AS400でやってたころと一緒ジャンと。AS400とは、IBMから出ているオフコン(?)ですね。今は、System iと呼ばれているようです(最新だとまた違うようですが)。 AS400のファイル(テーブル)は、キーもしくはインデックスでアクセスします。インデックス(論理ファイル)は、ある行の特定のカラムがソートされていて、物理ファイル(テーブル)へ

    Bigtableの使い方教えます - ひがやすを技術ブログ
  • 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終了のお知らせ - ひがやすを技術ブログ
  • ロッドジョンソンについてそろそろ一言言っておくか - ひがやすを技術ブログ

    Spring 3.0がいよいよ見えてきましたね。 http://springinpractice.wordpress.com/2008/12/02/new-stuff-in-spring-30/ 新機能の中にSpring ELってのがあります。こんな感じ。 <bean class="mycompany.RewardsTestDatabase"> <property name="databaseName" value="#{systemProperties.databaseName}"/> </bean>Seasar2だとこんな感じ。 <component class="mycompany.RewardsTestDatabase"> <property name="databaseName">systemProperties.databaseName</property/> </compon

    ロッドジョンソンについてそろそろ一言言っておくか - ひがやすを技術ブログ
  • Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ

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

    Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ
  • SpringSourceがGrailsを買った - ひがやすを技術ブログ

    正確には、GrailsやGroovyの中心的な開発元のG2Oneを買収するようです。 http://www.theserverside.com/news/thread.tss?thread_id=51826 http://www.springsource.com/node/837 Railsへの対抗策?。SpringとRailsが競合する気は余りしないけど。 この買収がどのような結果をもたらすのかは、まだ良くわからないけど、この不況のときに、それほど大きくない会社が買収でキャッシュを減らすのは危険だと思うけどね。キャッシュがなくて、黒字で倒産する会社もあるんだから。 この記事だけでは、キャッシュで買ったとは断言できないけど。 SpringSourceは、あせりすぎじゃないかなぁ。まだ、DM Server(S2AP)だって、どうなるかわからないわけですよ。メインテナンスポリシーの変更が、収益

    SpringSourceがGrailsを買った - ひがやすを技術ブログ