タグ

ブックマーク / shuji-w6e.hatenadiary.org (37)

  • 株式会社エスプラニングを退職しました - やさしいデスマーチ

    7月31日付で2年半ほど在籍した株式会社エスプラニングを退職しました。退職系のエントリーはブクマが稼げると聞いて、状況報告を書こうかなと思います。 前職でやっていたこと 前職は主にJavaによるアプリケーション開発が主業務でしたが、珍しくWeb系というわけでもありません。入社した頃は、Swingでのデスクトップアプリケーションが主プロダクトでした。最近はWebアプリケーションやスマフォ系もやっています。そんな会社で自分が行ってきたことは、開発環境の整備、コード品質の向上、プロジェクト全体の進め方の改善などです。 具体的には、ユニットテスト、読みやすいコード、リファクタリング、レビュー、KPT、カンバン、Trac/Redmine、バージョン管理、継続的インテグレーション、ユースケース駆動開発などなどです。 ぶっちゃけ言えば、入社した当時はお世辞にも技術レベルは高いと言えませんでした。バージョ

    株式会社エスプラニングを退職しました - やさしいデスマーチ
  • テスト駆動開発チートシート - やさしいデスマーチ

    TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。

    テスト駆動開発チートシート - やさしいデスマーチ
  • Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ

    元ネタはこちらですが、「優れたJavaプログラマ」を見分ける質問ではありません*1。次のような状況を想定してください。 受託業務を中心にしている弊社は、Javaで業務系ウェブアプリケーションの開発を行う事になりました。しかし社内のリソースを使うにも1−2名足らない事が見積もりから解っています。そこで、中堅エンジニアを1−2名募集することになりました。正社員か派遣かは問いませんが、経験が3年程度の中堅プログラマが必要です。同等またはそれ以上のスキルを持つ正社員がプロジェクトを牽引しますが、ゼロから教えながら教育することはできないので、必要最低限のスキルを持っていることが条件になります。 こんな状況を想定して、面接の質問を考えてみました。経験が3年程度あれば、問題なく答えられるはずです*2。尚、質問はホーム言語がJavaである前提です。 下記質問にそれぞれ50文字以内を目安に簡単に説明すること

    Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ
  • 69-車輪の再発明の効用 - やさしいデスマーチ

    「プログラマが知るべき97のこと」の69個目のエピソードは、車輪の再発明に関する話です。プログラミングにおける「車輪の再発明」とは、既に作られたフレームワークやライブラリがあるのにも関わらず、コストをかけて開発する事を指します。このような「車輪の再発明」をする事は、一般的にはネガティブな意味合いで使われます。つまり、「車輪の再発明をしない方が良い」というニュアンスです。十分にテストされ使えるものがあれば、既に存在するものを作るのは無駄であると考えるのは自然な事です。状況によっては、既存の「車輪」に不満があるため新しい車輪を作る、十分にテストされていない為にリスクを避ける意味で作る、必要な機能が足りないため作る、利用したい言語では実装されていないために作る、といったケースもあります。しかし、そうでないのであれば「車輪の再発明」を仕事としてのプログラミングですることはほとんどないでしょう。 で

    69-車輪の再発明の効用 - やさしいデスマーチ
  • ajns1関連の資料や感想ブログのまとめ - やさしいデスマーチ

    資料や感想のブログなどのまとめ(随時更新) ブログ sak's Android Avenue 北から南や西を見て思うこと 徒然日記・館 やさしいデスマーチ 以下、資料とかust Ust / 資料 @shuji_w6e - GAE、slim3、そしてEtupirkaCMS App Engine ja Night Sapporo #1View more presentations from Shuji Watanabe. @shin1ogawa - GAEを効率よく学習するためのポイント Appengine ja-night-sapporo#1View more presentations from Shinichi Ogawa. @maimuzo - JavaじゃないあたりのGAE事情 - BT1 JavaじゃないあたりのGAE事情View more presentations from

    ajns1関連の資料や感想ブログのまとめ - やさしいデスマーチ
  • AppEngine Ja Night Sapporo #1 完了しました - やさしいデスマーチ

    札幌でも35℃近い気温を記録した8月6日に札幌での初AJN(AppEngige Ja Night)が開催されました。参加人数は、前半のセッションが約30名、BT(Beer Talk)が約25名です。開催を告知すると一晩で100名以上の参加希望者が殺到する家AJNには遠く及びませんが、Google App Engineへ興味を持つエンジニアや関係者が増えて言って欲しいですね。 以下、簡単にセッションレポート。 ustで公開していますので、参加できなかった方はこちらへどうぞ。 GAE/J, slim3, そしてEtupirkaCMS @shuji_w6e 最初のセッションは自分の導入セッション。初のAJNということで、どのくらいの知識の人が参加するか未知数ということで、前半は、クラウドとGAEの概要を軽く説明し、slim3の特徴を解説しました。どのくらい知っているかを簡単に聞いてみたところ、

    AppEngine Ja Night Sapporo #1 完了しました - やさしいデスマーチ
  • scenic3 0.1.0 リリース - やさしいデスマーチ

    slim3を薄くラップして、t2 framework のようなPageクラスでコントローラを記述できる拡張ライブラリscenic3をリリースしました。まだ、トライアル版に近くテストなどが十分ではありませんが、slim3の「1コントローラ=1アクションクラス」がしっくり来ない人は試してみてください。 プロジェクトサイト: http://code.google.com/p/scenic3/ ドキュメント: http://sites.google.com/site/aboutscenic3/ 使い方はドキュメントにある程度は書いてありますが、slim3の設定ができてれば簡単です。 WEB-INF/lib に scenic3-0.1.0.jar を追加 WEB-INF/web.xml のFrontControllerを org.slim3.controller.ScenicFrontControl

    scenic3 0.1.0 リリース - やさしいデスマーチ
  • Google App Engine アプリケーション開発 - やさしいデスマーチ

    オープンソースカンファレンスにて札幌Javaコミュニティ枠で、GAEのセッションを行いました。内容としては、GAEの特徴についてと、slim3の紹介、spin-upとDatastoreのTipsという構成です。45分しかないので駆け足になってしまいましたが、なんとか(3分程度ロスタイム)まとまった感じ。 というわけで、資料をあげておきますね。 Google App Engine/ Java Application DevelopmentView more presentations from Shuji Watanabe.

    Google App Engine アプリケーション開発 - やさしいデスマーチ
  • AppEngine ja Night #8 のBeer Talkで話します - やさしいデスマーチ

    銀座なう。 ということで、札幌からAppEnginge ja Nightに参加するために飛んできました。 折角と言うことでここ半年ほど色々といじっているAppEngine上で動くCMS(開発中)etupirkacmsの開発で得た経験を元にspin-up関連のネタで話をすることになりました。というわけで資料を置いておきます。Ustはこちらとのこと。時間のある方はどうぞ。 泣かないAppEngine開発View more presentations from Shuji Watanabe.

    AppEngine ja Night #8 のBeer Talkで話します - やさしいデスマーチ
  • Datastoreのデータを表示・編集したい - やさしいデスマーチ

    GoogleAppEngineで開発をしている時にDatastoreのデータを直接扱いたい場合、管理コンソールを使えばだいたいの事は可能です。ですが、Keyの編集やBlobデータのアップロードなど細かい事は出来ませんし、ウェブのインターフェイス故に限界もあります。また、テストデータを作りたい場合などは、Excelのようにコピーをしながら簡単に作り、保存なんかもしたいわけです。 そこで新しいプロジェクトKotanを作ってみました。スクリーンショットはこんな感じ。 デモサイトはこちら。 ただし、Java Web Startで起動し嘘証明書を許可しなければ使えません。また、データアクセスをする為にGoogle Accountによる認証も必要になります。 技術的には、単純なSwingのクライアントアプリです。Commons Http Clientを使いサーバと通信を行いますが、GoogleのAcc

    Datastoreのデータを表示・編集したい - やさしいデスマーチ
  • 単体テストで ImagesService#applyTransform を使う方法 - やさしいデスマーチ

    slim3ではGAEの環境に依存するような単体テストもかなり簡単に行う事ができます。例えば、Bigtableへのアクセスはテストの実行毎にリセットされる、グローバルトランザクションに対応など至れりつくせりです。 ところが、画像を加工してサムネイルを作る時などに使用する ImagesServiceですが、これを単体テストで実行しようとすると例外が発生します。内部的には、画像の作成や一部の軽い処理はImplで行っているようですが、拡大縮小などの変換処理は各アプリでやるのではなく、外部サービスとして呼び出しているようです。これらのテスト環境でのエミュレートは、org.slim3.tester.AppEngineTesterのmakeSyncCallで行っていますので、ここを少しカスタマイズすることでImagesServiceもエミュレートできるようになります。 以下、簡単なサンプルになります。

    単体テストで ImagesService#applyTransform を使う方法 - やさしいデスマーチ
  • GoogleAppEngine 1.3.1でファイルIOエラー - やさしいデスマーチ

    GoogleAppEngine が 1.3.1になりましたが、特に影響ないなと思っていた矢先、デプロイしてみたら起動できなくなるという不具合に見舞われましたorz アプリケーションは、slim3 + t2がベースです。 原因としては、これまでなかったディレクトリがデプロイ時に作成されるようになり、そのディレクトリがFile APIで読み込もうとするとセキュリティエラーが起きると言うものです。具体的な例外は、以下のissueを参照。 http://code.google.com/p/etupirka/issues/detail?id=82 どうも、wat/_ah という管理画面要のディレクトリが作成されるようになっています。 etupirkaでは、最初にテンプレートファイルを検索してDatastoreに登録し、TaskQueuで後から「読み込みー解析ーコンパイルーDatastoreに保存」と

    GoogleAppEngine 1.3.1でファイルIOエラー - やさしいデスマーチ
  • メソッドの型パラメータを指定する時によく忘れること - やさしいデスマーチ

    thisをよく忘れるのでメモ。 private <T> T foo() { // なんか処理 return (T) obj; } 変数に代入するような場合は、型推論が効くので簡単。 String str = foo(); Date date = foo(); これをメソッドでつなげたりするとウマく推論できなくなる。 // コンパイルエラー // fooの戻り値はObject型になる(型TがObject型) long time = foo().getTime(); で、こんな場合は2回に分けると解決 Date date = foo(); long time = date.getTime(); ・・・1行で書きたいよね。 というわけで、1行で書きたい場合は、fooに型パラメータを明示する。 指定方法はメソッドの前に<型>を指定すれば良いんだけど、次のような書式はダメ。 long time =

    メソッドの型パラメータを指定する時によく忘れること - やさしいデスマーチ
    bojovs
    bojovs 2010/02/11
  • https://shuji-w6e.hatenadiary.org/entry/20091218/1261148987

    bojovs
    bojovs 2010/01/29
  • 今年の目標 - やさしいデスマーチ

    振り返りをするタイミングを逃してしまった・・・。 去年を少しだけ振り返ってみると、なんだかんだと動きの多い年でした。2009年だけで2回も転職をすることになりましたし、コミュニティ活動も継続でき、新しい技術やこれまでの技術を再確認したり、今後10年くらいを見直すことができた感じです。変化自体は2008年の秋くらいから少しづつありましたが、やはり勉強会ブームとコミュニティ活動が一番大きかったのではないかと思います。 さて、今年の目標ですが、一時的に開発が滞っていたテンプレートエンジンに火を入れ直すことから始まります。テンプレートエンジンpirkaはある程度まで作ったのですが、使われる見込みがあまりないという所から少しづつ熱意が減っていったのも事実です。どんなプロダクトでもそうですが、やはり使われないと面白くないですからね。 そんな中、色々なことがありましたが、Google App Engin

    今年の目標 - やさしいデスマーチ
  • NetBeans 6.8 Beta リリース - やさしいデスマーチ

    先日、NetBeans 6.8 Beta がリリースされました。今回のアップデートJavaEE6対応がメインであるため、それ以外の機能については控え目なアップデートのようです。 最近、自分が使っているのはもっぱらJavaFXですので、JavaFXに関する機能を試してみました。 強化点 軽く使ってみた感じでは、大きく機能が改善したり強化されたような感覚はありません。 というわけで、JavaFXを主としてNetBeansを利用している人は無理に6.8Betaは使う必要ないでしょう(結論?) バグっぽいもの 6.7.1では発生していないけど6.8Betaで見つけた不具合です。 - import文の警告が不安定 - 例外をthrowもcatchもしていないと警告が出る(Unreported Exception) これはなんでしょうかね、エディタ部分を大幅に修正している段階なのでしょうか・・・。

    NetBeans 6.8 Beta リリース - やさしいデスマーチ
  • Pythonの開発環境をvimに整える - やさしいデスマーチ

    vimPythonの開発環境を作ってみました。 自動インデント コード補完 スクリプトの実行 インデントの設定 自動 インデントはPythonでコーディングをする場合には必須な機能です。定番の設定があるので、.vimrcに追記します。 filetype plugin on autocmd FileType python setl autoindent autocmd FileType python setl smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class autocmd FileType python setl expandtab tabstop=4 shiftwidth=4 softtabstop=4インデントは4文字でタブ文字ではなく半角スペースで設定するようにしています。また、if等の

    Pythonの開発環境をvimに整える - やさしいデスマーチ
  • django-admin.pyとmanage.pyのコマンド補完 - やさしいデスマーチ

    bash限定のようですが、コマンド補完をいれておくと便利です。 スクリプトは配布パッケージに含まれているのですが、esay_installすると含まれていないため直接ダウンロードします。 $ cd ~ $ wget http://code.djangoproject.com/browser/django/tags/releases/1.1/extras/django_bash_completion?format=raw -O .django_bash_completion $ vi .bash_profile 以下の行を追加 . ~/.django_bash_completion 後はタブを使えば管理コマンドの補完が可能になり、地味に便利です。

    django-admin.pyとmanage.pyのコマンド補完 - やさしいデスマーチ
  • CentOS5.3にPython2.6でDjango1.1の開発環境を作成する - やさしいデスマーチ

    CentOSではPythonが2.4と少々古いが、システムでPythonに依存している箇所が多くデフォルトのPythonを置き換えるのは好ましくない。 そこで/opt/python2.6にソースからインストールし、Djangoで開発が出来る所までの手順メモ。 設定とゴール CentOS 5.3を使用 Django 1.1 /opt/python2.6/ にインストール 利用できる範囲でyumとeasy_installを使う 以下、開発ユーザで作業 準備 - yum sudo yum install zlib zlib-devel sqlite-devel zlibはsetuptoolsのインストールで必要となる。 sqlite3-develをインストールしておかないと、Python2.6のコンパイル時にsqlite3が使えるようにならない Pythonのダウンロードとインストール $ wg

    CentOS5.3にPython2.6でDjango1.1の開発環境を作成する - やさしいデスマーチ
  • WEB DB PRESS vol52 - やさしいデスマーチ

    ちょいと遅れて入手、まあ北海道だから仕方なし。 今号は良いコードを書く為のJavaの習慣とvimの記事がメインで、とりあえずJavaの方を読んだので感想とツッコミ。 結論から言えば、「新人さんに贈る」と表紙で煽ってますが「文法レベルの理解から先に進みたい人に贈る」という方が正しいかもしれないです。というのも、必ずしも新人が継承や委譲なんかを知っている必要もなく、知らないまま何年も過ぎる人もいるのが現状なので…。むしろ、新人じゃなくても読んで欲しい層はいっぱいいる記事だと思います。 というわけで、継承とかインターフェイスとかそのあたりがまだ理解出来ていない人は必読。 WEB+DB PRESS Vol.52 作者: 矢野勉,庄司嘉織,ミック,鶴岡直也,伊藤直也,森田創,高林哲,小飼弾,羽生章洋,角田直行,はまちや2,kana,斉藤太郎,瀧内元気,青木靖,長野雅広,武者晶紀,川口耕介,冨田慎一,

    WEB DB PRESS vol52 - やさしいデスマーチ