[プログラム系]最近の労働。② ~ジェバるために

ということで「最近の労働。① ~ジェバる」に続く。

空気を読めて仕事のできる人になるにはどうしたらいいか?
最近「自分には無理なんじゃないか」と思うことをどうしてもやらなければならないことが増えたので、真剣に考えるようになりました。
社内のジェバンニと呼ばれて「ジェバる」を流行語にするために

まず何を言われても分かる知識。
知識あっての経験。
その2種類が圧倒的に足りないなと思いました。
CLRレベルの知識なんてほとんどないし、実装に溺れてるような状態。

実装をこなすだけならそれこそ1晩どころか、15分でできることもたくさんあります。
だけどその積み重ねの結果できたアプリケーションで、積み重ねた知識とはまた別に知識を求められることもよくあるわけで。

経験があれば当たりをつけて、「もしかしたらこのあたりのこと?」と資料を漁って学ぶことも簡単なのかもしれないですが、如何せん「どの知識を探せば実現できるんだろう」と思うことの方が多く、勉強するのは楽しいんだけどそれじゃ間に合わない…という悲しい実装もなかなか多いです。
知識があってこその経験、経験あってこその知識、でもどっちがどう自分に蓄積されているんだろう?っていうのはまだ実力が足りなくて図れないわけで、思うようにジェバれないわけで(くどい)

今までは実装のために知識を詰め込む感じだったですが、整理して記憶して、以前にどう使ったかを覚えておくことが大切だなと感じました。
資料を作ること、一度覚えたことを忘れないこと、問題点も記憶すること。
そういう整理にこのブログが役に立ったらいいなと。

■最近覚えた内容

・ASP.NETでBODYでjavascriptを使う。

どっちかというとDHMLで擬似Flashみたいなのをやってみたいんですが。
ASP.NETで遷移先の画面でどうしてもキャッシュを読み込みたくないため、遷移にjavascriptを使いました。
A.aspxにアクセスして認証を通ったらB.aspxに遷移するとき、B.aspxのキャッシュを読み込むのが不都合だったのです。
ただ認証をはさむため、認証結果がOK→B.aspxへ、認証結果がNG→エラー.aspxへという実装をすると、エラーへはResponse.Redirectで問題ないんですが、B.aspxへキャッシュを読まずに遷移をするためにはonloadでjavascript関数を実行する必要があり。
どのオブジェクトのonloadにするか散々迷ったんですが、Pageオブジェクトはrunat="server"にできないっぽく、HTMLの<body>をサーバオブジェクトとして使うことにしました。

[HTML]
<body id="BodySrv" runat="server">

[javascript]  *BODYの外に書いておいたほうがいい
<script type="text/JavaScript"><!–
function replace(url){
     location.replace(url);
}
//–></script>

[C# code]
System.Web.UI.HtmlControls.HtmlGenericControl Hg
= (HtmlGenericControl)this.FindControl("BodySrv");
Hg.Attributes.Add("onload", "replace(‘" + 遷移先URL + "’) ");

こうすると、Bodyの読み込みが終わるまで「認証中…」とA.aspxの画面に表示させることができ、B.aspxに遷移したときはキャッシュを読み込みません。
個人的にBODYタグがサーバオブジェクトになるというのが衝撃的なほど便利!
これを使うと、セッションにModeを格納しておいて、セッションから読み取ったModeにあわせてBODYのスタイルシートを切り替える、なんてことができるのがすごい。
苦労してBackground-ImageだけをStyleで切り替える必要がない。
そんなにレベル高い話ではないんですが、静的なデザインサイトをDBから読み出して動的に作らなきゃいけないときはかなり便利でした。

ただ、A.aspxにアクセスするときキャッシュを読んでしまい、1度しか使えないアドレスからのアクセスなどに不都合があった場合は、A.aspxのCSに

[C# code]
Response.Cache.SetCacheability(HttpCacheability.NoCache);

を書いておくとA.aspxで必ず認証が行われます。
キャッシュを読まれるとデバッグでブレイクポイントに止まらないのでわかりやすいです。

・PostgreSQL 思ってなかったto_date()の変換

とあるストアドがうまく作用しないよーという調査結果。
DBに入っている日付を検索対象として、その期間に含まれているデータを検出する簡単なストアドだったんですが。
to_date(text, text)の関数を使って見事に失敗しました。
to_date(date型, ‘YYYYMMDD’)で正常に変換するのかと思いきや、謎の日付に変換されました。
date型になっているものは念のためにダブルキャストをかけていたんですが、うまくキャストされません。
text型じゃないdate型からto_dateを使おうとしちゃったときは気をつけろ(´・ω・`)

・DataViewとDataViewRow

DataSet+DataTableを使ってADO.NETでWindowsFormsのグリッドにバインドすると簡単にグリッド表示ができますが、グリッドのソートを行うと正常に対応しません。
ソートされたグリッドの表示と、実際のDataTableのソート順が違うからです。
ソートされた内容はDataViewで対応させることができます。
DataViewはDataTable.DefaultViewでオブジェクトとして取得できます。
DataViewと実際のDataTableを対応させるときは、DataViewRowから取得します。
DataViewRow.RowでDataTable.DataRowの内容を取得できます。
なんでC#のコードを書かないのかというと、VB.NETで開発しているからです_| ̄|○
私はC SharperなのでVB.NETを使うといきなりプログラム言語が不自由に_| ̄|○
VBからC#にうまく翻訳できない(´・ω・`)

ちなみにこんなのも使っていました
TrueDBGridヤバイ
AfterSortイベントのe.Conditionからソート句の文字列をまるごと取れるので便利です。
ただしソート後のイベントなので、ソート前の状態の選択列を取得しようとしたりするときは、ソート前の文字列を取っておいて比較しなくてはならないので微妙です。

もっとたくさんやったんだけど、最近はこんなところ。
ネットワークが好きなのでネットワークの勉強もちょこちょこしてるんですが、ネットワークコマンドを覚えたりルーティングの基本を覚えないとわからないところが・・・。
ルーティング、全くわかりません。スイッチつかってサブネット作ってでもそれって何?状態。
アーキテクチャに非常に弱いのもダメダメなところか。

今壁にぶち当たってるのは、「ASP.NET用のサーバで、すべてのセッションから一意に参照できるオブジェクトは存在するのか?存在するならどうやって実装するのか?」ということですね。
各セッションに情報を持たせて画面ごとにオブジェクトを動的生成するアプリケーションがあるのですが(というか普通はそういう作りだと思うんだけど)、重くなってきたらしく、サーバにメモリ2G積んでいても足りないと思うのでメモリにデータを展開しないで済む方法を探しています。
シリアライズが関係するのかもと勝手に思っているのですが、SessionStateModeはInProcなのでどうなのとか。
サーバキャッシュしてもメモリに展開されたらダメかも(上司談)なので、どこをどう調べるべきかいまいちわかりません。
描画に時間がかかる(生成件数が多い)ところ、作成に時間がかかるところ、検索に時間がかかるところ、それともサーバのスペック?LANのトラフィック?と問題の切り分けもなかなかうまくいかず。
(´・ω・`)うーんどういう実装をすればいいなだ
と来週からまた悩まなければ。

「@ITとかでたたかれるように質問しといて」って笑顔で言い放つ上司、それ笑えませんから((( ;゚Д゚)))
とりあえず最近の労働はそんな感じでした。
はやくジェバンニになりたーい(なれるか)

[プログラム系]最近の労働。① ~ジェバる

段々暑くなってきて、早く寝る→暑くて寝られない→のた打ち回る、ちっとも休めない→朝方ウトウト→起きなきゃいけない時間、疲労蓄積→ループによる体力低下
そんな感じで朝が一番疲れてて、退社時間を15時くらいにしてくんねぇかなあとひっそり思っている蔵城です(挨拶)

さて、最近割と仕事が暇だったしいろいろ勉強できたのでメモでも書こうかなと3ヶ月くらい思いながらまったく書いていなかったこちらのカテゴリですが。
一応職業プログラマなので、そればっかりのブログもなんかうざいけど、プログラムについての事書くとやっぱり仕事がらみになってしまうので、労働者として労働した内容について書いて見ます。

前の記事で「愚痴コミで次の記事を書こう」と書いていたんですが、とあるサイトを拝見してすこし不安になったので先に書いておこうと思います。
ブロガーの4割に解雇の危険?
ITmedia からリンク。

英国の調査ですが、ブロガーの4割が守秘義務に抵触するような記事を書いてしまっているかも、と認めたということです。
うちの会社にも社員が守らなければいけない守秘義務、情報保護についての契約があるため、私も勿論それにサインしていて、書きたいことがそれに抵触している場合はいろいろまずいのです。
まだまだ下っ端でパートナー契約の内容なんぞ詳細がわからず推測だけで仕事しているような私ですが、もしかしたら書いたらまずいことあるかも?ということで、社内での開発内容(仕様とかパッケージ内容とか)は書いたらまずいんだなと流石にわかります。
(´・ω・`)で結局何を書きたかったんだお前はというと

まあ労働者である上は、生活の7割くらいが労働していることになっているわけで、それを詳しく書けないからぼかして大丈夫そうなところだけを拾って書くよってことですか(´・ω・`)
使っている技術は技術書に載っていても、仕様とあわせてメモってしまうと社外秘の内容を書いているとみなされたりもするわけなので、「え、これ何につかうの?」っていうようなメモがあっても蔵城には必要のあるメモなわけですので、労働については問い詰めないでくれるとうれしい(´・ω・`)

さて、今週はいろいろ激動でした。
上記の理由で書けないことがたくさんあるわけですが(´・ω・`)
ぺーぺーの下っ端で、その日の急ぎの仕事がなければ定時でちゃっかり帰れていた私ですが、ポジションがとある理由で変わってしまい、残業も増えてきそうな感じなのでございます。
フレックスでだらだら会社行ってたけど、早く帰れるように9時出勤に戻そうかな・・・(´・ω・`)

今週のイベントで、先週書こうと思っていた愚痴がふっとんでしまったわけですが。
IT業界ではきっとまた同じような悩みが出てくるんじゃないかと思うので、架空の想定として書いてみようと思います。

とりあえず何に愚痴ろうとしていたのかというと、
■一緒に仕事をしている人のキャラ
についてです。
お前はどうなの?って言われると思うんですが、業界に入る前からヲタクで、業界に入った後は「職業マがヲタクで何が悪い。電気屋だってソロで撃破だぞ☆ミ」とか本気で考えているのでほっといてあげてください。

続きを読む

[ひとりの]いきるかしぬか

こんばんわ。
夏本番がまだ訪れていないにも関わらず、非常に体調を崩しうつらうつら生きている蔵城です(´・ω・`)ipod首からかけはじめました(冷やし中華はじめましたのノリで

6月はブログ改装!とか意気込んでしゃべってた割りに全然書けず、相変わらず体調も悪く(カラダヨワイ…)、季節だけ低気圧になってまいりました(´・ω・`)
日曜日はしょこたんブログをなめるように見ながらポケモンサンデー→グレンラガンを見ているんですが、本日のグレンラガンはもしかして最終回?みたいなノリに加え、ロボと素手で渡り合い屈服させる螺旋王なる男塾塾長みたいなルックスのおっさんがでてきたため、
「え?範馬の血筋にこんな人いたっけ?」
と多少うろたえながら戻ってまいりました。
負けたので範馬の人ではないことだけはわかりました。

最近書きたかったこと
全部かくとくどいから箇条書き!

・箱根いった
ロマンスカーで富士山を見れた!
ガラスの森博物館、ラリック美術館にいったんですが、ラリックのフランス展のカタログを入手してかなり満足でした。
日本にないものが見れる!んだけど勿論フランス語なのよね…。
大学の第2外国語がフランス語だったので半分くらいは読めますが、またまじめにフランス語をやろう!シャンソンもいっぱい聞きたいし!と思ってフランス語ドリルをひっぱりだすきっかけになったという…。
お払いにはいけなかった…(´・ω・`)帰りにおなかいたくなっちゃったけど、すごい楽しかったです。
ガラスの森、ラリックの一部が撮影OKだったので、デジカメから取り出してそのうち載せようかな。

・DSポケモン
昨日からヒンバスをミロカロスにしてレベル上げをしていたんですが、1日でLv100にできて満足。
といっても交換でもらったもので、しあわせたまごを持たせて2.25倍だからできたことですが。
ROとモンハンと同期との愛に忙しいLydiaのけーごさんが交換に付き合ってくれたりしてありがたい(´・ω・`)もっと遊ぼうZE
ずっと育ててきたエンペルトもやっとFix。でもミロカロスと30万くらい経験値の差があるという…。
Lv100を所有する数がステータスの小学生はまじで恐ろしいと思った。

・なつまつり
京極夏彦「姑獲鳥の夏」の舞台になっている鬼子母神がすぐ家のそばにあるわけですが、6日7日8日となつまつりを開催のお知らせ。
ええ、会社帰りの中途半端OLがソロで特攻するには厳しい環境でしたw
DQNカップルとダニ親ダニ子供でみっしり(√LL 暑い
でも風鈴を買ってみたり、すごいたこ焼きを買ってみたり、参拝しておみくじ買ってみたり、それなりに謳歌して満足しますた。
え、男といけって?(´・ω・`)めんどくさい
ちなみにたこ焼き、何がすごいって6個で500円で、3個ずつ具がちがうのがはいってるところ。
①おおきなタコ+うずらのたまご
②おおきなタコ+魚肉ソーセージのたこさんウインナ
ちなみにベースにはコーンとかチーズとかいろいろはいってて、すごい食べ応えがあっていい晩御飯でした。
個人的には①ではじけるうずらのたまごがものすっごいおいしかった。

・腹痛の原因
「洒落怖」で読んで思い当たったんですが、「扇風機の風にあたり続けると一晩で凍死する」。
なんか会社のエアコンの風にもろ当たりしてたのが原因らしいです・・・(´・ω・`)
席替えしない限り逃げられないし、暑いよりはるかにマシなので我慢していたのですが、頻繁に席を立ち、風から反れてひざかけ常備でややよくなりました。
にんにく、ネギ類、てんぷら含む揚げ物が鬼門らしいので避けて通っています。
それよりも今は汗疹がひどい…。
今までの生活になかった体調の悪さなので、病院とかお払い(!)を視野に夏休みをとろうと思ってます。

・RO
課金切れ。
プリの不遇を嘆くのがバカらしくなってきたので、エスマー生活。
ラヘルにひとりで観光にいったので、次回課金したらROカテゴリで記事を書くつもりです。

・LUSH
トリートメント「アメリカンクリーム」を購入。
すごくいいにおいで、次の日のお昼くらいまで香るのでかなりいい気分。
指どおりが軽くて汗をかいても気にならないんだけど、湿気がおおいとメロメロになってしまうので別のトリートメントも購入しようかと思ってます(´・ω・`)

最近の仕事はだんだん忙しくなってきた感じ。
実はここのところ、プロジェクトに入れてもらっていても時間があまったりすることがあって、なるべく勉強にまわすようにしてたんですがそれはそれでやることがないわけで。
6月の残業時間、1時間しかなかったのでいいような悪いような…。
ただ真夏に忙しいのは、身体的ダメージは勿論精神的ダメージが非常に大きく、去年はほんとに入院を薦められたりしていたのを考えると少し不安・・・(´・ω・`)
1年で成長した分のスキルで乗り越えられるといいんですが。
今はpostgreSQL + ASP.NET がメインなので、SQLServerとjavascript、CSSは社内でも高いレベルになれるようにがんばって勉強しようと思います(`・ω・´)
ASP.NETの案件でlocation.replace()が早速役に立ってjavascriptというかDHTMLをばりばりやりたいところ。

まあそれでも愚痴はあるわけなので、次回の更新のときに吐き出してがんばりたいと思います(´・ω・`)今日は寝ます。