タグ

ブックマーク / monjudoh.hatenablog.com (18)

  • LT概要「GitとMercurialのリポジトリ構造の違いと歴史改変について」SCMBootCamp in Tokyo - monjudoh’s diary

    SCMBootCamp in Tokyo 開催しました。KPT公開。 - うさぎ組にて手ぶらLTをしたので資料はないが、内容を軽くまとめておく。 GitとMercurialの比較 Git Mercurial リポジトリ commit objectのグラフと、branchのHEAD,tagなどの参照で出来ている。 commit objectのグラフだけで出来ている。 歴史改変サポート デフォルトであり。 デフォルトではなし。extensionが必要。 歴史改変 新しいcommit objectグラフを作成し、参照を古いHEADから新しいHEADに移す。表面上要らない歴史の削除として使われるresetはHEADの移動のみを行う。 新しいcommit objectグラフを作成し、古いcommit objectグラフをリポジトリから除去する。要らない歴史の削除として使われるstrip(MQExte

    LT概要「GitとMercurialのリポジトリ構造の違いと歴史改変について」SCMBootCamp in Tokyo - monjudoh’s diary
    katzchang
    katzchang 2011/08/01
    実運用上、歴史改変はどの程度されているものなのか気になる。
  • hg transplantを試してみた - monjudoh’s diary

    Mercurialを使った俺々バージョン管理ノウハウまとめ(2009年夏編) - 文殊堂で、 export・importによるつまみいmergeの話を書いたら、 id:ursmがTransplantExtension - Mercurialを教えてくれた。 先日書いたやり方はbranch b1に含まれるいくつかのchangesetをb2につまみいする場合は、 つまみいしたいchangesetを指定してそれぞれhg exportしてpatchを作成、 b2のheadにupdateしてからhg importで順次patchを取り込んでいくというやり方だった。 hg transplantを使う場合は、b2のheadにupdateして、 hg transplant -b b1 とやれば良い、後は各chnagesetつまみいするかなど聞かれていくので、 つまみいの対象の場合はy、ではない場

    hg transplantを試してみた - monjudoh’s diary
  • 自分の見方とお客さんの見方は違う、もしくは違ってもいい - monjudoh’s diary

    http://d.hatena.ne.jp/aureliano/20100114/1263451331 好きを貫いているかというと微妙だけど楽しく仕事してる私が通りますよ、と。 別に自分を捨てなくてもお客さんに喜んでもらえる場合も多々あると思うのだ。 仕事をする人が自分の見方で楽しい・嬉しいと思えるやり方で仕事をしたとして、 その結果が顧客の見方で好ましいものであれば双方ともにハッピーだが、 この時顧客は仕事をする人がなぜハッピーであるかを仮に全く分からなかったとしてもハッピーである。 レガシーコードの改修で高品質を実現したことで顧客が喜んでいるとする。 開発者にとって、そのコード自体は全くエキサイティングでない事も、 俺々バージョン管理を通じて分散SCMでのtopic branchの運用ノウハウを蓄積出来てうれしい事も、 インチキこっそりTDDを通じて乏しかったTDDノウハウが少々身に付

    自分の見方とお客さんの見方は違う、もしくは違ってもいい - monjudoh’s diary
    katzchang
    katzchang 2011/05/29
    「好きを貫いて自滅するタイプはこのマッピングを大きなスコープでしかやろうとしない」「仕事の裁量があまりにもなさ過ぎてどんなにスコープを小さくしてもマッピング出来ないなら、その時はまさに仕事の辞め時」
  • 友達を作る 新卒準備カレンダー 2011春 - monjudoh’s diary

    新卒準備カレンダー 2011春 : ATND お前だれよ 普段全然気にしてないのですが簡単な引き算が間違っていなければ社会人7年目らしいです。 去年くらいまではWebアプリを作る仕事がメインで、いろいろな言語でサーバサイド書いたり、 たまにクライアントサイド担当としてJavaScriptをモリモリ書いたりしていましたが、 今年に入ってからはiOS仕事がメインでObjective-C書いたりやっぱりJavaScript書いたりしてます。 マイテーマはeventによるUIコンポーネントの作成です。 新社会人もそうでない人も知っておくと上手くやっていける表裏の二つの話をしようと思います。 表-友達を作る 自分が属している組織の内外を問わず友達を作るのはとても大切です。 気を付けないといけないこととしては、愚痴る相手としての友達をたくさん作ってもしょうがないということです。 どこかしらでいいので自

    友達を作る 新卒準備カレンダー 2011春 - monjudoh’s diary
    katzchang
    katzchang 2011/05/29
    「難点としては流されると興味が発散するので自分をしっかり持ちましょう」あるある
  • Shibuya.js - Test.js LT テスターを支援する仕組みの話 - monjudoh’s diary

    お前、誰よ 文殊堂といいます BePROUD社員 お仕事 最近は、JavaScript時々Objective-C 今日のお話 自動テストの話はしません テスターによるテストの話をします タイミングによって発生したりしなかったりする類のバグってありますよね テスターさんがモンキーテストをやってくれてる時に見つけてくれたりします でも報告されるのは… 「何をやっているときに」 「何が起こったか」 つまり、「操作」と「現象」だけです 原因箇所を特定するにはプログラマもその操作をなんども繰り返さないといけません ダルい 何とかしたい 問題の実例 IE(主に6,7)で「操作は中断されました」が出る What Happened to Operation Aborted? – IEBlog HTML解析中にまだ閉じタグまで解析されていない要素(bodyとか)に対して、子要素の追加や削除を行うと「操作は中

    katzchang
    katzchang 2011/03/09
  • jQuery custom event 応用編 - monjudoh’s diary

    前置き custom eventとは何か?(前置きの前置き) ブラウザがサポートしているeventではない独自定義event。 clickとかはブラウザがサポートしているevent ユーザのアクションやブラウザの状態等によって直接発火されることはない click eventは、ユーザがマウスポインタを要素の上に移動後にマウスのボタンを押すと発火される DOMContentLoaded eventは、ページのHTMLがダウンロード完了し、すべてパースされると発火される jQueryではtrigger,triggerHandler methodでeventをユーザのアクション等に関係なく発火することが出来る custom eventも発火出来る 逆に言うとcustom eventはJavaScriptの側からしか発火されない 以前The JUI 2009 Returnsで話をしました。 htt

    jQuery custom event 応用編 - monjudoh’s diary
    katzchang
    katzchang 2011/01/29
    これもあとで
  • 疎結合なUIコンポーネントの作成について - monjudoh’s diary

    複数画面で使えるAjax formダイアログのコンポーネントを作る 初期状態 Google CalendarのようなWebアプリを想像してください。 1日が1個のセルになっていて、セルをクリックしたらスケジュール登録ダイアログが表示され、 入力して登録ボタンを押すとスケジュールが登録され、セルの中に登録されたスケジュールが表示されます。 イメージ define([ 'schedule-model' ,'schedule-api' ,'schedule-to-selectors' ,'growl' ,'app/schedule-dialog-template' ,'debug' ,'jqueryui/dialog' ],function( ScheduleModel ,ScheduleApi ,scheduleToSelectors ,growl ,scheduleDialogTemplat

    疎結合なUIコンポーネントの作成について - monjudoh’s diary
    katzchang
    katzchang 2011/01/29
    あとで
  • Maven2俺々リポジトリをhg servで立てる。 - monjudoh’s diary

    前置き やること自体はほぼこれと一緒なので詳細はこっち見てください。 Maven2でテキトウに社内リポジトリを作る方法 - tanamonの日記 違うところ ローカルでてきとーにMercurialリポジトリを作って、そこにMaven2リポジトリのディレクトリ構成に従って、jarとpomを配置する。 hg servでサーバを立てる リポジトリURLとしてhttp://localhost:8000/raw-file/tip/を指定する。 raw-file/tip/${path}で、tipの${path}のファイルそのものを取得できる。 Maven2リポジトリだけbranchや複数headsを使わない運用にすれば、tip=最新となって分かりやすい。もっとも、バージョンごとにディレクトリを分けるので、最新かそうでないかの違いは、ファイルがあるかないか、置き間違いなどが正されているかいないか、とかそ

    Maven2俺々リポジトリをhg servで立てる。 - monjudoh’s diary
    katzchang
    katzchang 2010/10/12
  • CSRF脆弱性対策 - monjudoh’s diary

    CSRF対策のtokenはセッションIDで良い セキュリティ的にワンタイムトークン>セッションIDではない。 という話が、この辺の記事に書かれています。 高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法 高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由, hiddenパラメタは漏れやすいのか? 肝はこういう事のようです tokenは外部のサイトから知り難い(実質知り得ない)ものでないといけない セッションIDはcookieに格納される document.cookieは自ドメインのものと親ドメインのものしか見れない→外部サイトで動かすJavaScriptからは参照できない セッションIDは『暗号学的に安全な擬似乱数生成系で生成されているはず』(引用) 推測も事実上できない 補足すると、セッションIDを使用したCSRF対

    CSRF脆弱性対策 - monjudoh’s diary
    katzchang
    katzchang 2010/10/08
  • 昨日騒ぎになったTwitterのXSS脆弱性によって実際に受けそうな被害とその対策 - monjudoh’s diary

    何が出来るのか どんな脆弱性かの詳細はこちらを参照2010 年 9 月 21 日現在のツイッターのバグ(脆弱性)について 外部JavaScriptを読み込むコードを仕込めたので、 どんなJavaScriptでも実行できる状態でした。 以下、JavaScriptの実行によってTwitter上で出来る事。 セッションハイジャック JavaScriptからcookieを参照できるのでログイン状態のセッションIDも参照できます。 また、任意のJavaScriptが実行できる以上、参照したセッションIDを攻撃者のサーバ等に送信することも出来ます。 攻撃者は奪ったセッションIDをcookieに設定すれば、被害者のアカウントでtweet,direct messageの閲覧・送信が出来ます。 確認してみたところ、ログイン状態のセッションIDはログアウトしても無効にはなりません。 設定→パスワードからパスワ

    昨日騒ぎになったTwitterのXSS脆弱性によって実際に受けそうな被害とその対策 - monjudoh’s diary
    katzchang
    katzchang 2010/09/22
  • TortoiseHG+hgsubversionでmerge trackingを使ってsvnのbranchをmergeする - monjudoh’s diary

    前説 前回エントリは単純なmergeの例だったので、 svnリポジトリのbranchのmergeをMercurial上でやるメリットがそれほど大きくない。 Mercurialを使ってバージョン管理をする場合以下のようなやり方をすることが多い。 3のmergeでconflictがあまり発生しないのは、2.3でどのようにmergeしたか、 conflictをどのように解消したかをリポジトリが覚えていてくれるからで、 これをmerge trackingという。 branch作成 繰り返し branchで作業 defaultに変更発生(他branchからのmerge等) default→branchに逆方向merge branch→defaultにmerge 今回の話は、merge tracking機能がない1.4以前のsvnでもmerge tracking機能を活用して、 mergeを行う方法に

    TortoiseHG+hgsubversionでmerge trackingを使ってsvnのbranchをmergeする - monjudoh’s diary
    katzchang
    katzchang 2010/07/30
    @monjudoh これか。みてみます。
  • hgsubversionの導入 - monjudoh’s diary

    的にhttp://monkeyisland.pl/2009/11/04/hgsubversion-on-windows/を参考にする svnをインスコする hgsubversionを使うにあたってはsvnコマンドのインストールが必要。 TortoiseSVNが入っていてもダメ。 Apache Subversion 設定時に知っておくべきことか http://mino.blog.eonet.jp/minoproject/2009/08/windowssubversi.html Subversionのリポジトリをsvn+sshで管理する - Lism.in * blog - nekoya (id:studio-m) Mercurialをインスコする こちらはTortoiseHGを入れれば入るので、 好みに応じてTortoiseHGもしくはMercurial体のみをインストールする。 Bi

    hgsubversionの導入 - monjudoh’s diary
    katzchang
    katzchang 2010/07/27
    コマンドラインクライアントを入れてcloneして、rebase extensionの有効化とsvn extensionのディレクトリ指定、環境変数HGENCODINGMODEにreplaceを指定(までは多分不要)
  • Excelの表をRedmine等に持っていく - monjudoh’s diary

    Firebugのconsoleに下のコードをコピペして、 Excelの表を範囲選択してコピーしたものを"ここ"って書いてあるところに突っ込む。 で、実行。 copy( <> <![CDATA[ ここ ]]> </>.toString().replace(/^|\t|$/gm,'|') );

    Excelの表をRedmine等に持っていく - monjudoh’s diary
    katzchang
    katzchang 2010/06/08
    色々使えるかも。
  • 第二回チキチキ 日本ペアプログラミングの会java-ja支部会(仮) - monjudoh’s diary

    http://java-ja.yoshiori.org/index.php?%E7%AC%AC%E5%8D%81%E4%BA%94%E5%9B%9E 30分遅刻した テスト 開発者 顧客 品質保証 それぞれの立場でのテストがある 現在のソフトウェア開発三柱 バージョン管理 branchをどこまでmergeしたかとかの管理が大変だった モダンなSCM(Mercurial,Git)ではその辺憶えててくれてるから楽になったよねー。 テスティング 自動化 Hudson 自動化→自働化 3足のイスの足みたいなものなので一つ破綻すると全部破綻する 動作する・きれいの2軸 きれいにする→リファクタリング リファクタリングは一気にたくさんやろうとするととても大変 常に細かくリファクタリングし続ける red→green,refactoringのフィードバックサイクルは色んなスケールで回す。 TDDと品質

    第二回チキチキ 日本ペアプログラミングの会java-ja支部会(仮) - monjudoh’s diary
  • TortoiseHGのGuess Renamesが超素敵な件 - monjudoh’s diary

    EclipseのJava projectをMercurialのリポジトリとして管理していて、 その中に何かclassがあるとします。 Eclipseのリファクタリング機能でpackage移動とclass名変更すると、 変更/移動元classのファイル削除と、 無関係の新規ファイル(変更/移動)追加になっている。 これは嬉しくない。 そこで、右クリックメニューからGuess Renamesを選択する。 類似度を自動判定し、後付けでhg renameにしてくれる。 ちゃんとファイルの移動になっています。 annotateで見てもちゃんと、 (自動で)変更されたpackage宣言/class宣言の行だけが 先ほどcommitしたリビジョンになっています。 参考・公式ドキュメントより Bitbucket | The Git solution for professional teams

    TortoiseHGのGuess Renamesが超素敵な件 - monjudoh’s diary
    katzchang
    katzchang 2009/11/17
    「類似度を自動判定し、後付けでhg renameにしてくれる」
  • JavaScriptで二つの配列の積集合を取得 - monjudoh’s diary

    面倒くさいのでJavaScript1.8で、 1.8をFirebugで使いたい場合は↓を参考に。 肉少なめ | Item - Firebugのコンソールでjavascript 1.8を使う var array1 = [1,2,3,4,5]; var array2 = [2,4,5,6,7]; var in_array1 = {}; array1.forEach(function(n,i){in_array1[n]=true;}); var result = array2.filter(function(n,i)in_array1[n]); result != array2; // true result; // [2,4,5]

    JavaScriptで二つの配列の積集合を取得 - monjudoh’s diary
    katzchang
    katzchang 2009/09/25
    一方の配列の要素をキー、trueを値としたhashで、他方をフィルタする。
  • 業務システムとか - monjudoh’s diary

    クソの役にも立たない言葉なので使うのやめようぜ というのは半分冗談だけど半分音。 「業務システムでは実装なんて3割程度だから大して重要ではない」がSI業界が解決すべき問題を端的に示している - @katzchang.contexts このエントリ見てふと思ったんだけど、 一口に業務システムと言っても、お客さんの商売の種類や何のシステムかによってずいぶん違うと思うのだ。 IT技術者の所属している業界について、SI業界とWeb業界みたいにきれいに分かれているように言う人も結構いると思う。 でも、例えば、ECサイトのユーザ側じゃなくてバックエンド側のシステムの開発はWeb業界の仕事となると思うんだけど、 SI業界の仕事で似たようなのあるでしょ? 同じようなものを扱ってるのに、SI業界の仕事だからどうだとかWeb業界の仕事だからどうだ、 とか言ってたら正確な議論はできないし、逆もまたしかりで、

    業務システムとか - monjudoh’s diary
    katzchang
    katzchang 2009/02/21
    確かに、これはあるなー。自分とこだと自治体系基幹システムが多いから、一番動きが遅い類いだと思う。
  • COBOLとか談義 on Twitter - monjudoh’s diary

    なにやら盛り上がっていた。 COBOLは使ったことないしおそらく今後使うことはないので言及はしない。ただもくもくとふぁぼるのみ。適当なタイミングでまとめる。 ということで途中経過をまとめた。 まとめ方法 議論と関係ないエントリをどんどんクリックして隠していくところまでは↓ Twitter議事録 - 文殊堂 その後実行するscriptは↓ 9626’s gists · GitHub クリップボードにコピーされるのではてダにペースト。 まとめ文 nagise 新システムで敢えてCOBOLか。ビジネスロジックって要は誰が書いても同じ部分のことだろうなぁ http://slashdot.jp/developers/article.pl?sid=08/09/09/0252214 nagise 要するに、順次・反復・分岐という情報処理の基礎部分だけでやれる簡単なお仕事という部分で、その辺ならCOBO

    COBOLとか談義 on Twitter - monjudoh’s diary
    katzchang
    katzchang 2008/09/09
    「JavaはCOBOL汚染しにくい!COBOLの方がCOBOLだ!」/逆に、転記が不得意な言語ってあるんだろか。どの言語でも、遠回りなやり方はあろうけど。/コピペ文化はつらい。
  • 1