もやぶろ

moyashidaisukeのブログだからもやぶろ。フリーランスのエンジニアのダイスケです。QOLあげて色々楽しくチャレンジして良く生きたい。プログラム関連とかギター関連とか旅行関連とか色々。

NULLデータとINDEX

現場ではまったのでメモ。



RDBで、SQLのWHERE区に「IS NULL」をつけるとINDEXが効かないというのは普通だと思ってたのですが、最近はどうやら事情が違うみたいです。





■Oracle
△(限りなく×に近い)
[http://docs.oracle.com/cd/E16338_01/server.112/b56306/indexiot.htm#sthref293:title=マニュアルより引用
]

Oracle Databaseでは、すべてのキー列がNULLの表の行には、索引は作成されません。ただし、ビットマップ索引の場合や、クラスタ・キーの列値がNULLの場合は例外です。

ビットマップ索引は使い所が限定されるので、基本効かないと思って良いでしょう。



■SQL Sever
◯らしい
参考
参考

オフィシャルは見つけられませんでした。。


■DB2

参考
マニュアル
ユニークキーに対するINDEXならNULLはOKだよ、という風にも読み取れる??



■MySQL

参考



■PostgreSQL
◯(8.3以降)
参考
参考




Oracleだけダメみたいですね。せめてオプションで使えるようにならないかなぁ。

天災の時の会社(現場)の対応を考える


今日2012/04/03は爆弾低気圧の影響で交通機関が大きく乱れています。(真っ最中)
自分は15時に現場を出て無事に帰宅しましたが、帰宅困難者がこれから発生すると思われます。

  • 3/11で緊急時の対応について、一旦は考えられたはず
  • 交通機関の乱れが発生する事が予め判明している
  • にも関わらず電車が止まってから早退許可が出た会社(現場)がある
  • そもそも早退許可を出そうという発想が無い会社(現場)もある

現場の状況もあるので敢えて帰宅させないという判断もあるとは思いますが、恐らく一部の話しで、
ほとんどは誰が決定権を持っているのか良くわからず、判断を保留にしていたら本当に嵐が来て、慌てて許可を出したんじゃないかと思います。


残念ながら上記のような判断になってしまった会社(現場)は、「リスク管理が出来ていない」「従業員を人と思っていない」「失敗から学ぶことがない」のいずれかなので、3/11のような大震災・何らかのトラブルの時も同じ結果になります。

予見されているリスクに対して、しっかりとした対応がとれない会社(現場)は残念です。そうじゃない会社(現場)は良いですね。本当はそれが当たり前のようになって欲しいですが。



でも、最終的に自分の身を守るのは自分という意見も当然で、会社を選ぶ権利も、緊急だからという判断で自主的に帰宅する判断もあるわけです。会社のために自分がいるのか、自分のために会社に所属しているのか。

HerokuでPlay!を動かす その2

Egitというプラグインで、EclipseでGitを使う。
Herokuで動かすので、GitHubで管理する。

IDEに慣れてしまっていて、エディタだけで開発できるほどのスキルは自分には無い。。(慣れの問題かもしれないが。)

こちらを参考に進めるも、pushするために接続するところでエラーが発生する。

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is ほげほげ
Are you sure you want to continue connecting (yes/no)? yes


sshの仕様で、known_hostsに設定が無い接続先に初回接続すると出るアラート(エラーではない)らしい。
コマンドであれば「yes」と打てば終わりだが、Egitでは先に進めないっぽい。

なので、コマンドから一度pushしてあげると、Egitからでもpushできるようになった。
多分known_hostsの設定をしてあげてもうまくいく。

アジャイルサムライ 読書会 埼玉道場(第1回)+@

行ってきた。

アジャイルサムライ 読書会 埼玉道場(第1回)


最近横浜とかでやっているのは知ってたけど、ちょっと遠いのと平日は出張が続いているので難しいなーと思ってたら、なんと土曜日開催。場所も埼玉。
自分のためにあるような会じゃないっすか。というわけで参加。

自分のレベルはこんな感じ。でもウォタ−フォールは正直もう嫌です。

  • アジャイルサムライは一通り読んだけど、実践した事はない。
  • 具体的なプラクティスは概要レベルしかしらない。


午前中の社内勉強会が押して30分遅れで行ったら
「あれ?何か外人さんがいる。」

なんと、アジャイルサムライの著者Jonathan Rasmussonが来てるではありませんか。Jonathanに会いにAgile Samurai Dojo Gathering申し込んだのに、フライングで会えるとはラッキー。すごく気さくな良い方でした。

翻訳者の西村直人さんも途中からいらっしゃいました。



第1章〜第2章の途中まで読み合わせ&小グループで気になる事について議論。



■第1章 ざっくりわかるアジャイル開発
詳細はあまり出てこないとこなのであまり無いけど、

3つの真実
1.プロジェクト開始時点にすべての要求を集めることはできない
2.集めたところで、要求はどれも必ずといっていいほど変わる
3.やるべきことはいつだって、与えられた時間と資金よりも多い

これは激しく同意。ウォーターフォールの場合、不可能な事(基本的に手戻り無し)を前提にしてるから、現実的には破綻しちゃうよね、そりゃ。


■第2章 アジャイルチームのご紹介
顧客大事。

ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。

アジャイルは大変だと思うけど(うまく行けば成果は大きい)、実践する上で一番ボトルネックになりそうだなーと思う部分。
自分は開発側だから、がんばれば影響の輪の中に開発T全員を入れる事はある程度可能なんだけど、顧客はなかなか難しそう。顧客にもアジャイルについて理解してもらって、実践してもらわないといけない。

BtoBだと、SIerに丸投げみたいなのが良くある話で、顧客側にも意識改革してもらう必要がある。

対策として、とりあえず2週間で成果を出して信頼を得るという方法を提示してあるけど、足りない。何か考えないと。


ゼネラリストはアジャイルプロジェクトに向いている。

ありがたいお言葉。純粋なコーディング力だと全然勝負にならないけど(でもSIer業界の中ではかなりましな方)、一応要件定義〜リリースまで一通りできるので。燃えてるチームに配属されて火消しをしまくってた事も無駄じゃなかった。。。


後半は、マスターセンセイ(Jonathan)に質問コーナー。

本に書いてある事は省略するとして、

Q「QDCS(品質、納期、費用、スコープ)の話が他のアジャイル本に比べて良く出てくるのはなぜ?」
A「QDCSの中でスコープだけが唯一変更可能。スコープの大事さを開発Tも顧客も理解して欲しいから。」


Q「なぜアジャイル『サムライ』?」
A「『ピースフルウォリアー』という本がすごい好きで、自分のBlogを『アジャイルウォリアー』という名前にした。本も同じ名前にしようとしたけど、編集者と話し合って今の名前になった。正直サムライの事は良く知らないんだけど、ばったばったと切っていく感じがイメージにあってる。」
※関係ないけどこんなの見つけた

アジャイル ウォーリアー

アジャイル ウォーリアー


Q「期待をマネジメントとは?」
A「最初の期待が低めに設定してあって(low expectation)、思ったより成果が良かったらすごいうれしい(Secret Happiness)。逆に、できない事をできると言ってしまうとうまくできなかった時の失望は大きいので、そんな事は決して言ってはいけない。」

スコープだけ変更可能(調整可能)である事を熱心に説明してた。


池袋のジュンク堂でトークセッション「Agile Meets UX〜アジャイル開発とユーザエクスペリエンスの遭遇〜」があるという事で、打ち上げを途中で切り上げてこちらにも参加。

あまりUXを気にした事がなかった(というかそこまでの期間・コストの余裕があるPJの経験が無い)自分には、初めての知識ばかりで良かった。
アジャイルやるからには色々しらないと。


UX(ユーザビリティ)テストの歴史の話+3人でアジャイルとかテストとか色々。

特に印象に残った内容は↓

  • どんなテストでもやらないよりはマシ。
  • UXテストは予算に比べてコストが高くなってしまう事が多いので、まずは関係無い部署の人とか友人とかを利用すると◎
  • 全員が全ての事を知ってればPJは上手くいくんだけどそんな事はありえないので、みんなで取り組みましょう。


いやー、濃い一日だった。著作者と翻訳者の3人に一度にお会いできるとは。
参加者もBtoCとかソーシャルゲームとか、コンシューマーゲームとか色々な経歴をお持ちで、お話するだけで面白かった。

主催のinda_reさんを始め、皆様ありがとうございました。
そして英会話を勉強しよう。。。

社内勉強会を盛り上げたい

去年の12月から社内での勉強会を主催してます。

会社は70人位で、客先常駐でJavaのWebシステムを作る事が多いです。2次受けが多いかな?

もうすぐ3回目なのですが、いまいち参加人数が増えずに困っています。というわけで振り返ってみました。


■なぜ勉強会を開催したのか
ずばり、技術軽視の傾向を打破したかったから。

  • ある程度SEとして1人前になったら管理職になる以外のキャリアパスが無い
  • 開発は何年もやってなくて客交渉だけやっている人が高給をもらってる

というわけで、もっと手を動かしたい自分としては色々不満があったわけです。

転職しようかとも思いましたが、ちょっと悪あがきをしてみる事にしました。

勉強会という名目で、色々な技術に触れる機会を作れば、多少はこの空気が変わるといいな、と。

技術を軽視しているソフト会社に未来は無い、と個人的に思っているので、恩返しの意味も込めてます。



■勉強会の内容
平日の夜だと頭が回らないので、土曜日のAMに月一回の頻度で開催してます。
1回目は「Java7」。
2回目は「Androidアプリ」。
3回目は「Scala」。
後はJenkinsとかHadoopやりたいです。

ペアプロでハンズオンで、@ITとかの入門用ソースを動かして遊んでます。



■開催してみて
参加者は毎回7名程度。ほんとは15人くらい来て欲しい。
参加者からは好評なんですが、元々社内では意識が高い人が集まっているので、そもそもの目的はまだ果たせてないです。


                                                                                                                                            • -

どうしたもんかなー、と思いぐぐってみた所、こんなのを見つけました。
「社内勉強会」から透けて見えるもの

ふたを開けてみると、
その早朝勉強会の常連出席者は、
意欲があって実績も出しているような、
成長まっさかりの若者ばかりになってしまったというのです。

成績が上がらず悩んでいる人こそ、
成績の普通なみの人に追いつくためにも、
人一倍の勉強をしないといけない。

にもかかわらず・・・、

実績を上げつつある人たちこそが、
「もっと学びたい!」と考えて
早朝の勉強会に集まってくるという、このパラドックス。
皮肉なものです。


むむむ。



これも見つけました。
社内勉強会のきっかけ

どうして人が集まらないのか?
①”勉強会”から連想するイメージが重い。
②自分が誘われていると思っていない。
③勉強会に参加する理由が分からない。

まさに今の状況。特に②③。

ujtommyさんはラブレターを後輩に送ったとの事ですが、
まずはメールなり口頭なりでみんなに声をかけてみようと思います。

社長に参加してもらうってのも面白いですね。


よし、やってみよう。

HerokuでPlay!を動かす その1

動かしてみました。

最近Scala絡みで注目しているPlay! にネイティブ対応してるという事で、
今後使う機会がありそうだなーと思ったのと、デブサミでセッションに参加したから。



■参考
Getting Started with Play! on Heroku/Cedar
Play! on Heroku 翻訳



基本的にオフィシャルの通りなんだけど、詰まった所を。

■公開鍵でエラー
git push heroku master でエラー
「permanently added the rsa host key for ip address」
ssh 接続しようとすると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示されるときは


heroku loginで作られるはずが、Gitで作ったやつを見て新規で作らないという判断をしてた??


何はともあれ、Heroku用に作成。

$ heroku keys
=== 1 key for hogehoge@gmail.com


これでOK。


■no Rails or Rack app detected

$ git push heroku master
Enter passphrase for key '/c/Documents and Settings/user.XXXXXXXXXXXX/.ssh/id_rsa':
Counting objects: 34, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (26/26), done.
Writing objects: 100% (34/34), 38.41 KiB, done.
Total 34 (delta 2), reused 0 (delta 0)

          • > Heroku receiving push

! Heroku push rejected, no Rails or Rack app detected

To git@heroku.com:gentle-snow-9959.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:gentle-snow-9959.git'

実は凡ミスで、heroku create する時に一回オプションつけ忘れて、
オプション付けてもう一回createしたのが原因。

gitのremoteが最新のcreateさらた先にじゃなくて、1回目の方を見続けてしまうらしく
間違ってcreateしたやつを一生懸命デプロイしようとしてた。

なので、gitのremoteを変更してOK.


■画面
表示はされたんですが、#{welcome /}の部分が出てない。。。


今日はここまで。

デブサミ2012 2日目

2日目だけですが行って来ました。(一日目は仕事の調整がつかず断念)
初参加です。


セッション一覧とtogetterまとめ
レポートまとめ

以下、概要と感想。
※スライドはまだあがってないみたいなので、確認できしだい追記します。


■【17-A-1】Continuous DeliveryとJenkinsアブストラクト/川口 耕介 氏
※途中参加
本当はこれじゃないのに参加予定だったんだけど、会場が変わってたっぽい。
元々こっちみたかったのでラッキーだった。

Jenkins使って、開発とかテストとか全行程でトレーサビリティー実現しようよ、という話。


■【17-B-2】JavaOne Tokyo と Java の今後について/寺田 佳央 氏
Developer summit2012
あまり新しい話は無し。(去年のJavaOneとほぼ同じ)
満席になっておらず、Javaの没落っぷりを感じてしまった。。。

  • J2EE6をもっと使おう!(7は6前提だから、ますます世界から置いて行かれるよ!)
  • 2年毎にJ2SEリリースします!
  • Duke知ってるよね!

との事でした。J2SEの2年毎ってのはけっこう驚き。本当にできたら良いですね。



■【17-D-3】Androidの最新技術動向/安生 真 氏
デザイン関係のリンクの紹介と、4.0での障害の紹介。
4.0以前ではたまたま動いていたのが、4.0で動かなくなったというのが多いっぽい。
(ブラウザを起動するのに明示的なIntentでデフォルトブラウザーを直書き指定とか)

きちんとお作法に則っていれば大丈夫そうなのが多そう。

経営者なのかな?お年を召した方がちらほらいたのが印象的。


■【17-B-4】マイクロソフトの変化を体現するAzureエバンジェリスト2人が語る今後10年を見越したオープン戦略/砂金 信一郎 氏 / 佐藤 直生 氏
Devsumi2012 Node.js on Azure
MSもオープンソースWelcomeになりました、Azure使ってね!という話。時間切れ。
Node.jsに対応しているのは良いですね。

メガネ属性持ちじゃないので、ななみの方が好きです。
http://msdn.microsoft.com/ja-jp/windowsazure/gg194745



■【17-E-5】震災とHackとクラウドと/冨田 順 氏 / 菅 祐貴 氏 / 亀渕 景司 氏
デブサミ2012_震災とHackとクラウドと
個人的にはベストセッション。
震災時に、ミラーリングサイト作った話。

  • 国内のクラウドベンダー総動員
  • Indexページはサクラで、ファイルは他のクラウド環境にリンク。JavaScriptで乱数による負荷分散(!)。
  • 48時間後にはほぼ形ができてスタートできていた。

1年前、GoogleとかTwitterとかITの力を目の辺りにして、自分は何もできなくて悶々としてたのですが、
技術力の問題ではなく「やる」か「やらない」かという違いでしか無かったらしい。

亀渕氏は、セッションのリスナーの方との境目なんて無いとおっしゃっていましたが、
「やる」か「やらない」かという違いはものすごく大きいです。


自分の技術力なんてたかが知れていますが、まだまだ人が足りないとの事で、
調べてアクションしていきます。



■【17-B-6】Building scalable web apps/Christopher Stolt 氏
Herokuの中の人。
英語だったのでほとんどわかりませんでしたorz_

PaaSの一般的な話に近いですが、インフラとかはHerokuがやるのでアプリ開発に専念できるよ!
という趣旨でした。

まだちゃんと使った事ないですが、PaaSの中では変な縛りが少ない方で使いやすそう。


■【17-B-7】ソーシャルコーディングの世界/松田 明 氏
ソーシャルコーディングというか、GitHubの世界の話。

誰でも自由に公開ができるオープンな世界→基本的人権の獲得!

という事でした。切り口が面白かったです。
こういう世界を持ってる人と持ってない人(主にSIer)は、どんどん差が広がっていくと思います。

趣味の音楽の話しになりますが、mixiのお陰でセッションが気軽にできるようになり、
世界が広がったのと同じですね。




他のセッション含めて、情報量が多すぎるので1週間くらいかけて確認してこうと思います。

LTO Ultrium

現場で棚の整理をしていたら、出てきました。

HP(旧コンパック) HP LTO4 Ultrium 1.6TB RW データカートリッジ C7974A

HP(旧コンパック) HP LTO4 Ultrium 1.6TB RW データカートリッジ C7974A


テープなんて未だにつかってんのね、と思ったのですが、
最近のテープメディアを舐めてました。

http://ja.wikipedia.org/wiki/Linear_Tape-Open


LTO-5 [編集]
2010年1月19日に規格がリリースされた
2010年第2四半期に出荷された
容量が更に倍になり、1.5TB に
転送レートは最大140 MB/s に
デュアルパーティショニングをサポート。各社共通のファイルシステムLinear Tape File System(LTFS)をサポート。


1.5TB!!!すげーーー!!

新しい規格での開発も進めていて、まだ増えるみたいですね。

日記を始めました。

始めました。


70人位のソフト会社に所属して、客先常駐で業務アプリの開発をやってます。
大学中退して、フリーターやりながらバンドを続けて、バンドを引退しこの業界へ。
この業界にした理由は、大学中退・未経験でも就職できるから。

ITコンサルに憧れて、でも技術の下積みをしたくてソフト会社へ。もうすぐ5年目に突入。
ところが、ITコンサルではなくて、技術力をもっと磨きたい、プログラミングをちゃんとやりたい(現在は、工数管理や各種調整、要件定義が中心)という思いが強くなりました。

色々調べてみると、技術者としてばりばりな人はみんなブログをやっているので、自分もやろうと思います。

まずはちゃんと続ける事が目標です。