今月3度目の貢献
今日は仕事でした。
今月いっぱいで退社する後輩が、整理のためたまたま来ていたので、最後にご飯を一緒に食べに行きました。
土曜と言うことを忘れていたため、平日とダイアが異なりました。そんなことに気づかず、飲んでいました。お陰で7010円の貢献をしてしまいました。
運転手さんには少しまけてもらいました。
今年の目標が、今月1ヶ月だけで脆くも崩れてしまった・・・
今月2度目の貢献
後輩の送別会があった。
飲みすぎた。
最近の疲れもあるが・・・
気がついたら県境を越えていた。
最終は終わっていたが、なんとか可能な限りの努力をした。
その結果、貢献は2150円ですんだ。
#このペースはいけませんねぇ〜
蛙の子は蛙
エロの子はエロ
久しぶりの貢献
飲み過ぎた〜!
今年初めての、そして、久しぶりの業界貢献!
3500円位。
むぅ〜
Multi Thread
ScheduledThreadPoolExecutorとCachedThreadPoolの合体版が必要になりそう。
今度作るか。
オブジェクト直列化ストリームプロトコル
Javaでオブジェクトをネットワーク越しに転送したりする時に使用するものに、オブジェクトの直列化があります。これはRMIやEJBの呼び出しにも使われている。
今回RMIのトラブルがあり、不具合を解析するためにTCPダンプでデータを取得し、オブジェクト直列化ストリームプロトコルの解析を実施した。
久しぶりにこれを実施したのですが、いつ見てもわかりにくいプロトコルです。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/serialization/spec/protocol.html#10258
整理されていて綺麗なんでしょうが、こっちはマシンではないので、インデントをつけたり並び替えをやって少し見やすくした(つもり)。
stream: magic version contents magic: STREAM_MAGIC version: STREAM_VERSION contents: content contents content content: object blockdata blockdata: blockdatashort blockdatalong blockdatashort: TC_BLOCKDATA (unsigned byte)(byte)[size] blockdatalong: TC_BLOCKDATALONG (int) (byte)[size] object: newObject newClass newArray newString newEnum newClassDesc prevObject nullReference exception TC_RESET newObject: TC_OBJECT classDesc newHandle classdata[] // data for each class classdata: nowrclass // SC_SERIALIZABLE & classDescFlag && !(SC_WRITE_METHOD & classDescFlags) wrclass objectAnnotation // SC_SERIALIZABLE & classDescFlag && SC_WRITE_METHOD & classDescFlags externalContents // SC_EXTERNALIZABLE & classDescFlag && !(SC_BLOCKDATA & classDescFlags) objectAnnotation // SC_EXTERNALIZABLE & classDescFlag && SC_BLOCKDATA & classDescFlags nowrclass: values // fields in order of class descriptor wrclass: nowrclass externalContents: // externalContent written by externalContent // writeExternal in PROTOCOL_VERSION_1. externalContents externalContent externalContent: // Only parseable by readExternal (bytes) // primitive data object objectAnnotation: endBlockData contents endBlockData // contents written by writeObject or writeExternal PROTOCOL_VERSION_2. newClass: TC_CLASS classDesc newHandle newArray: TC_ARRAY classDesc newHandle (int) values[size] newString: TC_STRING newHandle (utf) TC_LONGSTRING newHandle (long-utf) newEnum: TC_ENUM classDesc newHandle enumConstantName enumConstantName: (String)object newClassDesc: TC_CLASSDESC className serialVersionUID newHandle classDescInfo TC_PROXYCLASSDESC newHandle proxyClassDescInfo className: (utf) classDescInfo: classDescFlags fields classAnnotation superClassDesc classDescFlags: (byte) // Defined in Terminal Symbols and Constants fields: (short) fieldDesc[count] fieldDesc: primitiveDesc objectDesc primitiveDesc: prim_typecode fieldName prim_typecode: `B' // byte `C' // char `D' // double `F' // float `I' // integer `J' // long `S' // short `Z' // boolean objectDesc: obj_typecode fieldName className1 obj_typecode: `[` // array `L' // object className1: (String)object // ThinkPlus USBキ-ボ-ドString containing the field's type, in field descriptor format fieldName: (utf) proxyClassDescInfo: (int) proxyInterfaceName[count] classAnnotation superClassDesc proxyInterfaceName: (utf) superClassDesc: classDesc serialVersionUID: (long) classAnnotation: endBlockData contents endBlockData // contents written by annotateClass prevObject: TC_REFERENCE (int)handle nullReference: TC_NULL exception: TC_EXCEPTION reset (Throwable)object reset reset: // The set of known objects is discarded so the objects of the exception do not overlap with the previously sent objects or with objects that may be sent after the exception values: // The size and types are described by the classDesc for the current object classDesc: newClassDesc nullReference (ClassDesc)prevObject // an object required to be of type ClassDesc endBlockData: TC_ENDBLOCKDATA newHandle: // The next number in sequence is assigned to the object being serialized or deserialized
羨ましい人事制度
来年からうちの会社は、人事制度が変わり「ラインマネージャ職」と「プロフェッショナル職」に分かれるらしいです。「ラインマネージャ職」は従来と同
優秀な技術者をラインマネージャにすると「だめ」になる - yvsu pron. yas
じ、「プロフェッショナル職」は、ラインマネージメントをするのではなく、そのプロフェッショナル性を生かし、会社に貢献しろという職のようです。
いや〜羨ましい。うちの会社もこのような制度になればなと思っていました。私が勤めている会社を含め多くが、昇進したら管理が多くなると思っています。給料を上げて欲しいので昇進したいんだけど、技術をやりたい自分との矛盾があるんです。スペシャリストを目指すべきか、ジェネラリストを目指すべきかを考えたこともありました。
プロフェッショナル職でもある程度は部下をつけて仕事をする必要があると思います(一匹狼じゃ、できる仕事が限られるため)。技術と管理が0と1で割り切れるものではないので、プロフェッショナル職でもある程度は管理能力も必要なんでしょうけどね。
うちの会社の場合、人事制度を変えるためには、人事部がハードルの高い面倒な仕事をこなさないといけないと聞いたので相当難しいと思うけど(ちょっとぼかしておく)。