2016年12月21日

なに!?マスタメンテナンスが1日で5本できたって?

 マスタメンテナンスほど時間をかけて作ってはならないものはありません。
(ちなみに、Webシステム。)
1本目はちょっと時間かけてもよいけどそれを真似れば一瞬にして何本も完成するほどにマスタメンテナンス機能の標準化をすれば良いだけです。

 隣の人が1日で5本できたという報告をプロジェクトリーダに報告してリーダは「えぇー」とびっくりしていたけど、「そりゃ、俺が基準になるマスタメンテを作ったんだからそれくらいのスピードでやってもらわないと困るわ」と心の中でつぶやいておきました。

 その隣の人もびっくりしたんじゃないですかね?
どこを触れば良いかがわかったときは、スルスルできるので。
(いや5本ではなくもっと作れるはず。他にもあれば進捗が一気に上る。)


 マスタメンテナンスはそれで良いですが、他の機能はてんでバラバラで作っているのでまとまりがないんだろうと思っています。
 多分モジュール分割の概念がないのか、めんどくさいのかわかりませんがコントローラ内でSQL発行したり共通化できる部分を共通化して外出にしたりすらされていないのを見ると他人事ながら腹が立ってきます。

 でも自分がメンテナンスするわけではないのでほっといていますが。

2016年12月12日

WebシステムのHTMLはできるだけ簡単に

Webシステムは通常ブラウザ上で動作させるのでHTMLを書きます。
HTML、CSSの知識が乏しい為とんでもないマークアップを書いてしまう人がいます。

よくある項目のタイトルと入力エリアがあるパターンでdivタグを5重くらい重ねて表現する人がいます。

こんな感じの入力欄を作るだけで下の「深いタグ」のようなHTMLを書く人がいます。
詳しくは覚えていませんが、各タグは、枠線の為のタグ、幅を決めるタグなどそれぞれ役割があるようです。
しかし、CSSを適切に使うことで「浅いタグ」くらいで済みます。修正も見た目もよくよくなります。

名前:

深いタグ
<div>
  <div>
    <div>
      <div>
        <div>
          <span>名前:</span>
          <input>
        </div>
      </div>
    </div>
  </div>
</div>


浅いタグ
<div>
  <label>名前:</label>
  <input>
</div>


具体的な正解は書きませんが(笑)

AWSのロードバランサーOutServiceにどきどき

AWSのEC2を再起動したあとでロードバランサーでずっとOutServiceになってるとときは焦るわー。

大抵はEC2をドードバランサーに付け直すことでInServiceになるんだけどたまに一向に状態が変わらないときがあります。

こんなときは、EC2自体を再起動してやるとInServiceになります。
(でもEC2の再起動でもインスタンスステータスのチェックでエラーになったりするんですけどね。そしたらもう一度再起動。)


さよならatom。よろしくVisualStudioCode。

プログラミングをするときのエディタはよく変更します。

最近は、githum製atomを使っていました。
いろんなプラットフォームで使用できるので統一しようとずっと使ってました。とても良かったです。
ですが、最近はちょっと遅い(いやだいぶもたつく)感じが出てきたのでほかへの乗り換えを検討していました。

 Visual Studio Codeを使って作業をしています。
ちょっと前までは、エディタの横割りができなかったのでうーんって感じで避けていたのですが最近やっと横割りになる機能が実現されたのでテスト的に乗り換えです。

通常出できば良いことは以下の通りです。

  • JavaScriptのminify化
  • LESSのCSS化
  • CSSのminify化
  • 開発言語のSnipet、色

あと良かったのはエディタ内にコンソールが出せるとこでしょうか(atomもあるはずですが使って無かった)。
今まで、Vagrantで開発サーバを起動する為にコンソールを別に起動してやっていたのですが「Ctrl+@」でワンタッチで起動できるのですごく便利です。
gitのコマンドもそこでたたいたりして。

あと、一番良いのはサクサク感です。スピードに関してはatomには戻れようにありません。
Pluginを入れすぎてるから遅いのでは?と考えられますけど…。

こんな感じで開発用のテキストエディタを乗り換えました。


余談ですが、もう一つNotepad++というエディタを使っています。
これは、開いたファイルをタブ形式で表示してくれ、エディタを再起動しても元に復元してくれるのでとても重宝しています。
よく使うやり方が、変更履歴やログファイルを常に開いておき、いつでもサクッっと変更したり見たるすることができます。
ちょっとしたビューワー代わりに使っています。
エディタとしての機能も申し分ないです(以前はこのエディタで開発をしていました)

なので。
さよならatom。よろしくVSCです。

2016年12月9日

老婆心ながらリハは必要ですよと言いたい

リリースやデータベースの移行の練習もせずに客先でやるみたいな話し声が聞こえてきて大丈夫か?この人達と他人事ながら心配になった。

客先でのリリースとかの作業は一回以上はリハーサルしないとだよね。

あと、今時点のソースをGitにPushしておいてくださいという声も聞こえてきたけど大丈夫かね?バックアップ場所ではないんですよ。
そのあと誰かに言われたんだと思うけど、「動く時点のものをアップしてください」と言ってました。
(そもそも当たり前にそういう運用をしないとダメなんだけどね)

Gitというかバージョン管理のツールとかあまり使ったことのないチームのようでとっても心配。
他人事ながら…。


メンバーがなんらかの問題点をリーダーに説明してるけど、リーダーは何を言われているか理解できていないと説明をしているメンバーはリーダーが理解できていないことに気づかずに専門的な言葉をならべて喋り続けているのがなんか滑稽な感じ。


多分トラブル。その頃自分はいない。


2016年11月10日

Google Chromeの拡張機能のSortdは使えそう

G Suite(旧Google Apps)を使って仕事をしています。
その中でもGmailは欠かせない機能です。

ときには、メールで状態を管理したくなり、状態用のタグを付けて管理をしていることがありました。

ですが、メールをレーン(状態)でビジュアル的に見て管理することができる拡張機能を見つけました。
よくあるカンバンと言われる機能だと思います。

Sortd Smart Skin for Gmail」というものです。
http://www.sortd.com/

今までは、来たメールで直接状態を管理することはできませんでしたが、これは、メールで状態を管理することができます。
メールに独自のタイトルを付けることでわかりやすく管理することもできます。


ちょっと真面目に使ってみようかと思います。

2016年11月8日

Visual Studio Code 1.7.1になる

Visual Studio Codeが1.7.1になってやっと上下の分割ができるようになりました。

速度的には、atomよりもとてもサクサクと動作するのはわかっていたのですが、上下の分割ができないという理由で本格利用を避けていました。

この点が解決したのでもうちょっとちゃんと使ってみようかと思っています。
atomの場合、上下左右の分割は自由にいくつでもできますが、実際問題、上下左右に細かく分割することはなく上下に3つ程度に分割し各ペインにファイルを開くということが多いでです。

PHP, JavaScript, Less(CSS)の開発のスピードが上がるか楽しみです。
※PHPは、NetBeansが良いなというのを最近体験してしまって、浮気しそう…。



VisualStudioCode(http://code.visualstudio.com/)

2016年11月7日

仕事でLaravelを使ってますよ。

 LaravelはPHPのフレームワークで、最近人気が出てきているようです。

一番使っていたのは、CakePHP 2系なのですが、Laravelも手に馴染みそうです。
(CakePHP3も練習したいのですが…。)

何が一番いいかというと、教えてくれる人が居ることです。
新しい道具を使うときはやっぱり基準になる人がいると聞けるし楽ちんです。
後はプロジェクト内で足りないものを付け足していくたでだし。

 CakePHPや、JavaScriptで磨いた腕が発揮できそうです。

2016年11月5日

Googleカレンダーでバグなのか仕様なのか?


Googleカレンダーのバグを発見しました。
2日に渡るカレンダーの設定をして、開始の時間が終了の時間より大きいとカレンダー上に帯がでない。
仕様なのかバグなのかわかりませんが、多分バグ何だと思います。

なぜなら、3日以上だと帯が出るので。

2016年10月20日

コミットログに。

 今、手伝っているプロジェクトでは、ソース管理にSubversionを使っています。
それはそれで全然問題ないないです。

問題点はそのSubversionにコミットしたときのコメントがすごい。


  • 「障害修正(10/18)」
  • 何も書いていない


まぁ、その組織の問題なのでなんか言ったところで変わらないと思うし、もう少しで終了なのでなにかをいうつもりもないんですけど。
とても、残念です。
でも、昔から知ってる人で昔々にそのあたりの話しはしたことがあるので言わなくてもいいかなとも思っています。

なぜかっ!
特に困っている様子もないので。

でも、自分のプロジェクトのときは厳しく対応はしてもらいますけどね。

2016年8月12日

IT技術者の人は(だけではないですが)

 IT技術とか変化が激しかったり、いろいろな技術があって日常業務ではできないようなことを身に着けるためには、長い休みはとても良い時間だと思います。
 日頃の疲れを癒すために過ごすこともとても大切ということも認識しています。

ですが、通常業務中にできないようなことは長期の休みの間にいろいろと学習や挑戦をしたほうが良いと思います。
というか、しなければなりません。

業務時間中に与えられた作業をこなすことが仕事と思っている人は「なぜお金ももらえないことをしなければならないの?」となるかもしれませんが、目先の利益よりももう少し先の利益を考えてもよいのではないかと思います。

新しい技術(自分にとって)を覚えたことによって新しい面白いことができるかもしれませんし、今やっていることが楽になるかもしれません。


まぁ、こんなことはIT技術者だけではなくて全部の仕事に言えることですけどね。

2016年8月6日

そのツールを使うのはただの手段とはいうが。

 システム開発や管理をする為に有料無料を問わずにいろいろな製品が発表されています。
当然何かの問題を解決する為に開発された製品達ばかりです。

自分たちが抱えている課題を解決するために導入したツールがマッチするととてつもない効果を発揮してくれます。

 ですがマッチしなかったり、どう使っていくかも考えずに導入していくと逆に足を引っ張ってくれるものになります。

 で、よく「ツールを使うことが目的では無いんだっっっ!」と声高々にいう人が居ますが、これは一般的には正解です。間違っているとも言いません。

 ですがなんですよ。
そのツールが自分たちの課題を解決できるものかどうかを評価しているは、「ツールを使うことを目的にする」ということもしないと正しい評価だったり判断ができなくなってしまします。

※ここで間違ってほしくないのは「本来やらなくてはならないことをならなくても良いということにはなりません

新しい何かを導入するときはそれなりのコストを代償として払う必要があるということです。
お金だったり、時間だったり。(一番大きいのは時間だと思いますが)


もし自分が新しいツールを導入しようとした時は、現状(現在のやり方)を維持しながら新しいことも同時にやっていきます(時間というコストを支払っています)。
そうしないと自分のものにならずに一番よくない「使うことが目的」になってしまいます。

よくあるパターンが下請けの仕事をする時にこんなパターンになってしまう場合があります。



ここから現在の自分の状態ですが。

ある会社のプロジェクトに参加していて、プロジェクト管理のツールを使っているのですが、(自分も相手の会社も)初めて使うものです。※全社で同じものを使って管理をしたいそうです。
結局使い方を調査したり、どうやって運用していくかを決めているのは自分なんですよね(自分もそれを使って管理とかをしたいので何の苦でも逆に嬉しい)。
相手の会社の人と話をしていると使い方だけ(それらしい答え)を習得したいらしいです(時間という代償は払わない)。

多分、なぜこういう使い方にしているとかを知らないので全社に展開したあとに最悪の「使うことが目的」みたいになってしまうのではないかと感じています。


まぁ、自分の血肉が強化されていくので問題は無いんですけどね。

2016年7月25日

AWSで開発してるのになぜ?

 んー。
なぜかわかりませんが、せっかくクラウド上(AWS)でシステム開発をしてるのにその機能を精一杯使って開発をしないのかがわからない。

 サーバの設定を変えてテストをする必要があるようなので新しいサーバを立てて、そこで動作確認をすればいいのに。
 でも、運用しているサーバにちょこちょこと何かを設定して頃合いを見て再起動とかしようとしているらしい。

 もしうまく行かなかったらどうするつもりんなんだろう?(まぁ、対して使われていない管理サーバだけど)

 もう、効率悪いというか、なにも考えられないというとか、外から見ていてイライラするっす!


EC2 → AMI → テスト用の新しいEC2でテストする。
とすればいいだけなんだけど?

 うーん、何もしらな過ぎませんか?なんか、勉強してるんだよね?

だめだ、考えるだけでイライラする。

2016年7月18日

当たり前なんだと思うが、ちょっと感動。Gitの話。

 ソース管理をGitに切り替えてから1年くらい経ちます。

メインブランチとそこから派生させたフィーチャーブランチで同時開発をしてました。

メインブランチにコミットしたら、フィーチャーブランチへのマージを真面目にやってました。

とうとうフィーチャーブランチをマージする時がやってきて、マージしてみるとコンフリクト無しでマージができました。
当たり前と、言えば当たり前ですが、感動モノです。
なぜなら、フィーチャブランチのコミット回数が534回(マージも含めてですが)もあるもんで。

メインブランチにマージした時に何かおきると思ってたのでちょっと感動してしまいました。

2016年7月16日

多分終わらないと思うよ、その作業。

 ある会社の若手の話です。

 ある作業は、直ぐに何か問題になるほど急いでいるわけではないけど、既に手を付けているがいつになっても終わりましたという報告が無い。

 急いでいないという(先輩の言葉)ことから、「自分の作業が空いた時にやっています。」という。
まだちょっと調べないとダメなところもあるらしいことも言っている。

 きっとですが、そのスタンスだとその作業は当分終わらないと思います。
空いた時っていつ?会社にいる間は全ての時間を自由使えるの?他人からの依頼作業とかないの?

 仕事や作業への向き方ですが、終わらせるという意識がない限り終わることは無いです。
やらない理由、終わらない理由は無限にあるのでね。

ちょっとくらい残業してでも、終わらせるという気概がほしいと思いました。

他の会社の人のことなのであーだ、こーだとあまり言いたくないですが、言いたくてうずうずしてます。
そんな教育じみた事は自分の仕事外のことなので言わないほうが良いのですが、自分の価値を上げるためには言ったほうがいいんだろうなーとちょっとは思ったりします。


まぁ、頑張ってね。

2016年7月14日

大抵守らないのはリーダー


課題の登録は、JIRAへと言っているのにSlackに投稿するダメな人。 今回もそうだけど、大抵は、プロジェクトリーダーとか管理者という肩書を持っている人人がルールを守らない。

というか、把握していないというか、使い方を解ってないというか、その瞬間に近くにある何かを使う(口頭も含まれる)。

自分が音を発すれば、誰かが何かをしてくれると思っている。


超イラつく。

2016年7月13日

若手だからしょうがないでは片付けたくないこと

 作っているシステムである機能を実現するために、ライブラリを探してきました。
それをシステムのライブラリとして使おうとしたときに、なんか使えなかったようです。

まぁ、そこまでは全然問題ないんですけどね。
聞き方が気に入らないということですよ。


ライブラリを使って見たんですけど動きません。
◯◯で、ライブラリを読み出す記述をしたけど問題ないですか?

心の声
しらねーって。
何が問題かを調べれば?
調べるとこなんて山程あると思うけどね。


これだから若手はっ(怒)とは言いませんが、あまりにも答えを聞きたがるのが気に入りません。
多分自分のやったことに対しての自信があるけど、なんだか上手くいかない。というのが本音では無いでしょうか?


で、わたくし、(知ってても)簡単に答えは教えません。
というか、自分も調べないとならないだけなので代わりに調べてあげるほと暇ではないのでね。
なんでも、答えを持っていると思ったら大間違い。
確かに、あなたさまよりも引き出しはあると思うけどね。
それも、答えの引き出しではなく考える為の引き出し。


もう一つ。
これは賛否両論あると思うけど。

Slackでやり取りしながら作業を進めてるんですが、
「今、こういう状況で〇〇で困っています。エラーはこんなのが出ていますが調査中です。」
という文面に合わせてエラー内容を投稿したり、どこかのサイトのURLを投稿するのはいいのですが、ただ、エラーの内容を投稿したり、サイトのURLを投稿しているのをみると何をしてほしいのかさっぱりわかりません。
現状を報告をしているのか、調査してほしいのか?

自分のコミュニケーション能力が高いとかは全然思わないけど、なんなのかわからない投稿は山手ほしいととっても思います。

まぁ、こういうときは見て見ぬふりですけどね。

画面デザインになにを使ってますか?

 通常お客様と画面イメージを打ち合わせるときに何かツールを使って画面イメージを確認すると思います。

 よくあるのがEXCELやVisioはたまた、HTMLで書いて製造に活かそうという方もいると思います。
実際のところそれを作る人の手に馴染んでいるものが一番早くて綺麗にできると思います。


以前から試しに使っているのですがCacooを使っています。
何がいいかというと、

  • ブラウザさえあればどこでも使える
  • いろいろなステンシルがある(有料、無料を含めて)
  • 作成した画面を簡単に共有できる
  • 図をばらばらで管理ではなくエクセルの様にシート管理ができる。
  • フォルダ管理ができる(プロジェクトでわかるとかできるよね)
  • 無料で25枚までのシートを作ることができる
    一番安いプラスプラン(\490/月)の場合、1,000枚まで作ることができるのでこれでも十分かもね。
  • 他にもね。

 実際に画面のデザインをしいて便利だと思ったのは、他のボックスと位置を揃えるのが簡単です。
 複数のボックスを選択して整列するという機能もありますが、マウスでボックスを動かしている時に他のボックスと位置が合うと他のボックスの色が変わって、「今、このボックスと位置が会ってますよ」と知らせてくれるのがとてもよい感じです。


 画面の動きはなくても良い場合は、Cacooを使ってデザインをするととっても効率よくできるのでは無いでしょうか?

 画面遷移が必要なときは、Prottを試そうと思っています。


2016年7月7日

公開されている場所のファイル名の付け方とかに思うこと

 ファイル名に「最新」と「日付」とかのサフィックスをつけて管理するのはどれが本当の最新がわからなくなってしまうから、やめようよというのはだいぶ昔から言われてるけど、いっつもそんなのを見かける。

 そんなサフィックスは書いた本人はその時わかっているだけで他の人はおろか何日後かの自分もどれがカレントなのかすらわからなくなる。

なので、提案です(というかそうしなさいよ)。

カレントの文書は、「何も付けない」!!

というルールでどうでしょう。

シンプルだし、例えばそのファイルにのショートカットを作っておけば、自分が見たいだけのファイルのソートカットを作って「自分が関連するフォルダ」なるものに貯めておけば「探す無駄」が省けて仕事も効率化しますよね。


そういえば、何年か前あるソフト会社(大手)に出向していた時に、この問題があって、この提案をしたら、日付のサフィックスを付けたファイルに対してショートカットを付けてる人を見かけたな。
まぁ、何のためにそれをしたのかをご理解いただけなかったのが問題ですが今となってはいい思い出です。


ホント、最新とか、日付とかのサフィックスが付いているファイルを公の場に置いてあるのを見るとイラつく。

ファイルのバージョン管理ツールを使ってやる方法はちょっと置いといて。
別の問題もあるので。

2016年7月5日

【備忘録】トラブった時とかきっと役にたったコマンド

トラブった時とかきっと役にたったコマンド

インストールされているパッケージ
例)httpdに関連するパッケージを探す
>yum list installed | grep httpd
 →インストールされているパッケージがわかる
>rpm -qa --list | grep httpd
 →さらに、インストールした日付もわかる

開いているファイルのプロセスを特定
例)httpdのプロセスを探す
>sudo lsof -i | grep httpd

yumの操作履歴?
>yum history list all



ただのメモですので…。

2016年6月19日

「電子申請サポートシステム for Wordアドイン」って結構ずさん?

 陸上無選協会は、無線機の免許の為の申請書を「電子申請サポートシステム for Wordアドイン」というのを使ってシステム化しやすいようにしてくれています。
利用者としてはとてもありがたいと思っています。

ページと項目毎のフィールドに名前を付けてあるのでシステムで管理しているデータをテキストファイルに出力することで簡単に連携できます。
システムで出力したテキストファイルを提供されているテンプレートのWord文書に読み込ませるとそのフィールドに値を設定してくれます。

ですが、ですがですよ。
フォーマットによっては恐らく作りが良くないんでしょうけど、テキストファイルに項目名が存在しないと全然関係の内フィールドの値を設定してくれます。

例えば、「無線設備の設置場所4」というキー項目がないと勝手に「かがみ申請者名前フリガナ」という違う項目の値を設定してくれます。

「無線設備の設置場所4」というキー項目を準備すれば問題無いんですけどね。

でも作る側としては出力するテキストデータを共通化して楽チンしようしているので項目は無視してほしいわけですよ。

もうちょっと使い勝手よくに作って欲しいです。

または、フォーマットのメンテナンスの仕事受けますけどね。

2016年6月16日

「取り急ぎ」ということば禁止令

メールの「取り急ぎ」という言葉を廃止してほしい。

その「取り急ぎ」の後のフォローとかいつ正式にとかのことが書いてあればまだいいんだけど大抵は書いてない。

何かの作業をお願いした時に目についたとこだけ作業して「とりあえず返しておけ」程度。
全部やってから返してほしいのよ。か、いつ正式なのを出すかの明記を。

この言葉を書いて終わるのは大抵「ちょっとめんどくさいから後回しにします。でも、言われなかったらやらないけどね。ははっ。」という言葉が見え隠れしてるんですよ。

こういう人と何かをつくりあげようとするとこんなのばっかりでやり直しが繰り返される。
通常の自分の仕事もやり直しばっかりしてるんだろうなと想像される。
で、叱られてもその場では反省したようなふりをするし。

ダメなんだよ、話になりません。

2016年6月6日

チャットで質問する時のこころ構え

 いつも思ってるんですけどなんでどね。

一緒にプロジェクトをやっている人から質問がチャットで来るのはいいんですが、聞きたいことをまとめてから来れば?ってすごく思う。

 特にキーボードを叩くのが遅い人はそれをやっておこないと、会話のリズムがめちゃくちゃになってしまいます。
 こっちは、打ち終わるまでずーっと待ってるんですよね。
ほんの数十秒だったとしてもじーっとまっとないとならないですしね。

そこから派生した話は仕方ないですが…。

2016年5月26日

PHPUnitでテストしてるけど

 ある会社の若手とPHP使ったシステムのUnitテスト(PHPUnit)を書いてて一応これで行けるんではないか?という状態になってたけど最近、テストコードのコミットを見たら

ユニットテストを正常に行えないため、fixturesの利用を廃止

なんてコメントのコミットを発見してしまうましたよ。

??はっ?

ユニットテストを正常に行えないため?ってPHPUnitがバグってるってことなの?

いやいや、あなたの使い方が誤ってるだけですよそれは。

自分がやった時はちゃんと動いてましたけどね。
でも、Fixureの動きがわからない時は、データベース壊したり大変だったけど、何をどこにセットすればどう動くかは理解できましたけど。


めんどくさいけど、明日検証して、こらっ!って言わないとだなこれは。

2016年5月24日

VCSでファイルコミットの時に気をつけてね

 プログラム開発している時は、今時は、Gitだったり、Subversionだったりを使ってソースのバージョン管理をするのは当たり前です。

 ですが、こんな人は「コミットしないでください」と言いたくなってしまいます。


  1. 特に内容は変更してないけど、使っているエディタの影響でインデントが全体的にちょとずれちゃったけどそのまま大量にコミット
  2. コンフリクトとになったけど、そのマーク付きのままコミット
  3. コンフリクトになったけど、適切に修正しないでコミット
  4. 変更の塊ごとではなく、ファイルを個別にコミット
    Gitだったら、コミットを纏めることができるからまだ救いようはある。
    コミットをまとめてからPushしてくれれば良いので


みなさんは、ちゃんと意識してコミットしてますか?
VCSは、バックアップようのもとと思っていませんか?
使ったことない人、理屈がわかってない人にはちゃんとなぜ使うのかをちゃんと説明して挙げてください。





2016年4月21日

システム開発は、どこを目指しながらすすめるか

 一般論としては多分正しくないですが、こうシステム開発というか、プロジェクトを進めないと次回も同じ目にあったり、何も得ることができないと思っています。

まず!

 システム開発で「システムを完成させて稼働させること」を目標にすると、動けばOKのシステムになってしまって、

  • メンテナンス性が悪いとか
  • 遅いとか
  • 動いてるソースと直しているソースが違うとか
  • 残業が殺人的になるとか
  • 自分さえ良ければほかはどうでもよいという人が出てきたりとか
  • 新しい技術を習得して次の時に楽をするとかができない

となってしまいます。

プロジェクトを完成させるとなんで最低限やらないととダメなことなのでそんなところを目標にしても
なんの意味もないです。

人が逃げようが、死のうが、精神的にやられようがそんなことは関係なく、プロジェクトは完成させなければならないのです。

なので、なので、次回楽になるような仕組みを実験しながらプロジェクトを進めると案外楽しかったりします。

だって、その部分は初めてなので上手く行かなくて当たり前なんですよ。でも、上手く行けば次回からいろいろと楽になったりするんですから。
上手く行かなくても、何がまずかったのかを検証すれば次回にはきっと上手く行くんですよ。そして、楽になる。

スキルアップになるとも言います。

だからいつも言うんです。

今やっていることは、次のプロジェクトの為の練習なんだよ。
※練習は本番の為にやるので手抜きは無いという前提ですよ。


さぁ、プロジェクトリーダーやメンバーは、次のプロジェクトの為に頑張って練習しましょう!


お客さんに怒られそう…。


Oracleでエラーが出たから教えてほしいといわれ

 もうちょっと(いや、もっと!)、調べることを覚えたらどう?

 VB.NETのアプリケーションでストアドプロシージャを呼び出したらあるエラーが出ているようです。
なんかすごく奥が深い話でヒントがほしいのかと思ったら、返却されているエラーコードは何を意味するものかすら調べないで答えだけほしかったようです。

 「まずは、エラーコードが何を意味するのから調べてください」と言ったら、Google検索でOracleのエラーコード検索しました。
 まぁ、エラーコードの意味を知るためには、これが一番手っ取り早い探し方だと思うので良いと思います。

 で、検索結果をさーっとみて、適当なリンクをクリックして中をチラ見してました。
「なんかよくわからない」と発しましたよ。

「はぁ…、まずは、エラーコードが何を意味するかを調べてから、解決方法を探ればいいんじゃないですか?」と答えたあげましたよ。

何なんだろ?自分が何を探しているのかわからない状態で答えだけを求めようとする姿勢にちょっと腹がたちました(自分の中で)。

 エラーコード見たら、「更新できないビューを更新しようとしている」というものででしたので、ストアドプロシージャを見てみたらどうですか?とこれで終わりです。
 ストアドプロシージャを見てみたら、サマっているビューを更新していたそうです(Oracleの環境を作るのをミスっていただけ)


 もう、超ベテランなんだから答えだけ聞きたがるんじゃなくてもうちょっと、何が問題かを考える力を付けてほしいものですよっ。
 超若手だったらどういう手順で調べていくのかはちゃんと教えますけどね。


まずは、エラーコードの意味を把握してから調べましょうね。

2016年3月23日

GAE/GOで開発する準備のメモ

 以前から知ってはいたのですが、なかなか機会がなく触ることができなかったPaasのGAE/GOを真面目に練習をしようと思いやっと、納得のいく構成ができたのでメモっておきます。
 ほとんどの情報は、先人の方々がいろいろ調べてWeb上に公開してくれていたのでそれを自分なりにまとめておきます。


アプリケーションディレクトリ構成
¥appws
  ¥app
  ¥golib

appwsディレクトリは、当該アプリケーションのルートになります。
appディレクトリは、実際のアプリケーションのソースを配置します。中のディレクトリの構成は、GO元ののルールに従います。
golibディレクトリには、アプリケーション毎にバージョンを固定したいライブラリをインストールします。
先にGOPATHの設定のスクリプトを実行することで、アプリケーションワークスペースを基準にGOPATHを設定します。


GOPATHの設定
[Linux]
#!/bin/bash
export GOPATH=`pwd`/golib

[Windows]
@echo off
@title アプリケーション名
SET GOPATH=%CD%¥golib
cmd /k

GAE/GOのWebフレームワーク
いろいろと出ていますが、これが今のトレンドというのが無いようです。
探っていたところ以下のものが良いかもしれないということで以下ものを使って練習しよう思います。
本来は、GO言語生のやつで基礎を押えてからが良いのですがちょっと一足飛びに。

https://github.com/astaxie/beegae
https://github.com/yosukesuzuki/beegae

以下のことがわかりやすくできることが大切です。
セッション管理
DBアクセス
認証
テンプレート




この記事はもうちょっと充実させて予定です。

2016年3月15日

レビュー記録の方眼紙エクセル禁止してっ!

 ほんと、レビュー記録を方眼紙EXCELでやりたくない。

  • プレビューするとセルからはみ出てる
  • 記録した内容が長いとセルを広げてレイアウトが崩れる
    いちいちデザインを気にしながら書きたくない。
  • きっと、ファイル名に日付とかを付けて管理してどれが正しいかわからなくなる。
    離れてるとこでやると前のが消えたりする
  • どこを変えたかわからない
    で、いろんな色とか吹き出しを付けてわけが分からなくなる。
  • 今時でない


いろんなツール試しに使ってみようよ(怒)

2016年3月5日

仕事用の道具を晒してみる(2016年3月)

開発ツールを晒してみます。
現時点では、Webを使ったシステムが主になっています。
オープンソースのツールだったり、無料のものだったりが主です。
いつでもMSの世界にもどっても良いようにMSDNサブスクリプションも契約し続けてるんですけどね。
いざっ。

クライアントOS

  • Windows10 Enterprise
  • Linux Mint(たまに練習の為に。Windowsだと開発環境を作るのが面倒な時があるので)

テキストエディタ

  • Atom(プログラムソースはここで書くことにしています。ほとんどLL言語なんで)
  • Notepad++

開発言語

  • PHP(CakePHP)
  • JavaScript
  • Less(CSS)

データベース関連

  • MySQL(特に希望がなければこれ一本)
  • A5:SQL Mk-2(SQL発行したり、ER図をかいたりしてます。)

サーバーOS

  • CentOS

仮想マシン

  • XenServer(ずっと動かしているものはここで動作しています。MySQLとか)
  • Vagrant(開発中のアプリケーションはここ上でCentOSを起動させて動作確認。これ使ってないと効率は激下がり)

クラウドサービス(開発)

  • Amazone Web Service
  • Google Cloud Platform(まだ練習状態)
  • Google Apps for Work(メール(Gmail)どかストレージ(GoogleDrive)とか便利。これに寄せてます)
  • Evernote(無料版。いろんな手順書とかをここに記録しています)
  • bitbucket(ソース管理にGitの無料リポジトリを使ってます。さよならSubversion)
  • Cacoo(画面イメージを書いたりお絵かきをするときに便利)
  • prott(スマートフォンやタブレットの画面イメージや遷移をデザインするのに使う予定です)

クラウドサービス(事務系)

  • freee(会計はこれでっ。今年は、Freeeで確定申告できました。口座を自動的に同期してくれるので物ぐさ便利)
  • misoca(お客さんへの請求書はこれでやってます。楽ちん。freeeとも連携)

コミュニケーション
  • Skype(携帯以外に電話をかけるときには、安い安い電話を使ってます。)
  • Google Hungout(お客さんと打ち合わせをするときはこれを使ってます。ドキュメントの共有がしたくてこれです。最近Skypeでもできるようです。)




つらつらと書いてみましたが、大して使って無いですね。
開発言語は他にも使えるんですが今やっているプロジェクトがたまたまPHPってだけです。
最近は、Go言語や、Google App Engine(GAE)にも興味が出てきています。
GAEだったら、アプリケーション・サーバーを安上がりにできそうです。


これからは、Macを使う比率も上がりそうなのでそっちの練習もしようと思っています。Mac miniを持っているんですがあまり使ってないんです(iOSのアプリを開発がしたくて買ったんですがあまり電源入ってないです)

TrelloというWebサービスをちょっと触ってみた

 タスク管理をするのに良いのが無いかずーっと気にかけていたのですが、よさ気なのに出会いました。
 現在のスケジュール管理などは、Google CalendarやEvernoteでやっていたのですがなんかいまいちしっくりきませんでした。

 で、出会ったのが「Trello」(テレロ)です。
タスク管理をTodo→Doing→Doneな感じも簡単に作ることもできます。
昔、付箋でやっていたことをブラウザでやることができるのは良いですよね。
大きなタッチパネルのディスプレイだったら本当の付箋があるように画面を操作してタスクを動かすことができそうです。
本物の付箋でないよいところは剥げ落ち無いことでしょうか(笑)

更には、カレンダー形式での表示もすることもできます。


Google Calendarのタスク機能は貧弱すぎてあまり使えていなかったのですが、Trelloは、タスク内で他人とコミュニケーション(Activety)が取れそうです。
Activityを使ってチャット的にディスカッションを残すこともできそうです。

ファイル添付や、絵文字も使えます。

スマホアプリもあるのでPCなくてもタスク管理がとっても簡単にでしますね。


あとは、これを一緒に使って仕事をしてくれる人がいればいろいろと仕事も捗りそうです。
一人で仕事してるとこういった複数人で使うと力を発揮してくれるツールの醍醐味が味わえないんですよね。残念ですが。


これも良さそうです。
サイボウズLive(https://cybozulive.com/)
これもタスク管理ができて、カレンダー表示もできます。
ただ、カンバンのような使い方はできないようです。

さっき気づいたのですが要望を挙げる為の機能があるようです。
欲しい機能を挙げておけばいつか対応してくれるかもしれませんね。


EXCELで管理とかやめて早くこういったのをガンガン使って仕事したいです。

2016年2月29日

やっぱりGoogle App Engineを練習しよう

 Googleへ2回目のGoogle Cloud Platformのセミナーに行ってきました。

前々から、Google App Engineには興味があって、JavaやPHPで試してみて動いた、動いたで終わっていたのですが、今度は、Go言語に興味が出てきました。

 Go言語はGoogleが作ったC言語をベース(言語仕様)に作られた言語です。
ソースのままだったり、コンパイルして動かします。
実際にやってみたらサクッってできたのでちょっといろいろ調べたり、システム作ったりしようかと思っています。

 で、今回はGoogle App Engine上で動かすのに挑戦しました。
サクッてできなかったら嫌だなーって思いながらやってみたんですが簡単にアプリケーションが動きました。
まぁ、入門の記事(http://www.apps-gcp.com/gae-go-gettingstart-01/)を見ながらだったのですぐにできました。

 ローカル環境での動作、AppEngineへデプロイしての動作のいづれも簡単だったのでちょっとまじめにやってみます。
 一覧画面→詳細画面のマスタメンテナンスくらいができれば良いかなと思ってます。


その為には、他にもいろいろと覚えないとならないことがあります。
特に、データストアあたりとトランザクション処理はどうやるのかとか業務で使おうとしたらいろいろありそう。

 まずは、決意表明のみ。


あと、WordPressをAppEngine上で動かす試みをして成功している記事を見たことがあるのでそれにも挑戦したいと思っています。
現在は、レンタルサーバーを借りてそこで動かしているので…。
AppEngineにのせることができれば無料で対応することができるかも(いや待てよ、MySQLの部分でお金かかりそう…)


2016年2月25日

MSがXamarinを買収→わくわくする


 今、Xamarinを買うと結構高額だと思いますが、MSDNサブスクリプションを契約している人はどんな感じで対応してもらえるのか楽しみです。

 確か、今年がMSDN サブスクリプション最後の年だったと思うのでもし、ダウンロードできるんだったら非常に楽しみです。

 C#でAndroidでも、iOSでもどっちでもネイティブのアプリが開発できるんでしょう。
これで、わくわくしなかったらデベロッパー人では無いですよ。


「モバイルアプリ開発に最適な言語はC#」――マイクロソフトがXamarinを買収へ


しかーし、これでまたembarcaderoのRAD Studioが悲しいことになるかもしれないです。
買うか買わまいかずーっと悩んでいたんだけど、やっぱり、MSDNサブスクリプションユーザの自分としては、MS開発ツールがほとんど揃っているというのは他のツールには手を出しにくいです(もと、Delphiユーザですが…)。

 あっ、でもいま仕事で使っているのは、OSとOffice以外、OSSだったりするんですけどね。


2016年2月21日

急ぎだったのか、実績が欲しかったのか?

 お客さんからの要望なので対応してほしいと言われて、内容を詰めて対応してリリースまでしたのに受け入れテストを2Wたってもやっていないとはどういうことでしょうか?

 もし、本番ギリギリで操作確認して思ったのと違うの言われたらなんで2Wもそのままにしていたのか?とか急に修正してくれと言われてもできるわけがないと突っ返そうか?

 これがエンドユーザでシステム開発というのを分からないのだったらまだわかるが(その前に、予め釘は刺しておきますが)一応システム開発のことを知っている人なのに大丈夫か?
 忙しいとは言っているけど、こういったのが続いているのでやる気が無いのでしょう。

ざんねーん、早く変わってもらったら?どう?
無理だったら、ヤメれば?楽になるよ。




2016年2月20日

やっとソース管理がまともになりそう

 Bitbucketを使ってソース管理をしていますが、そのリポジトリの管理がやっとチーム配下に移すことがきまりました。
 今まで、個人のアカウント下のリポジトリを使って開発をしてましたが、プロパーの人がなかなか何もしてくれなくてそのままになっていました。
 言っても問題視をしない(または、忘れている)のでほっておいて困ったら「ほら、こうなりますよね」と言おうと思っていたのですが、やっとプロパーの中で今までの開発のやり方、管理の仕方には問題があるのではないかと言う人が出てきたのでちょっと変化が起きました。

何が問題かというと以下のことが考えられます。

  • 当事者意識がない
  • 現時点では困っていない
  • 自分の気にしないとならない作業が増えむのが困る
  • 自分に責任が来るかもしれないので判断したくない。
個人としてはわります。
日々こなさないとならないタスクが多くあるのに自分が直接やらない作業まで面倒を見たくない。ということです。



しかしですね。
 会社内では、絶対にチームでの作業になるので管理をするという人は、全体最適の意識で行動しないといつまでたっても変わりません。

 どこでも言われてますが、発案者=担当者(責任者)になるということをやめないかぎり変化は起きないと思いますよ。
 新しいアイディアがでたら、担当者を決める(同じ人になる場合もあると思いますが)にしないと言ったもん負けみたいな現象が起きてしまいます。



今、楽かどうかよりも先が楽になるようにしていけばどんどん楽になっていくはずです。

2016年2月18日

マネジメント2人体制って…。

 マネジメント2人+サポート1人+担当1人って、どんな大掛かり?

マネジメント2人で何がマネジメントのするのか不思議でならない。きっと、相手任せになる。
サポートって、何をサポートする?多分他人事になる。

まぁ、意図がわからないのでど表面的なことにたいしての批判みたいなのになってしまいますが…。


2016年2月10日

Subversionと違って、Gitの何が気持ちいいかというと

 なんといっても、コミットを一つにまとめることができる機能は最高です。

一つの大きなテーマ(課題)の対応をしている時に、その中でのまとまり毎に小さくコミットして行きます。
で、最後に一つのテーマのコミットに纏めることができるのでコミットが多くなりすぎてカッコ悪いことにならない。

本来は、それぞれのコミットを独立させておいたほうが判りやすいのだと思いますが、修正箇所が思いの外、広範囲に渡っていた場合など、少しずつコミットして最後にまとめたほうが見栄えが良いのです。
失敗しても少しずつコミットしてれば戻れるし。


Gitバンザイッ。

2016年2月7日

Kintone Cafeでハンズオンしてきた

 先日、近所でKintone Cafeというのに参加する機会があってハンズオンしてきました。
お試しで触ったことがあったのですが、やはり仕事でちゃんとつかっている人の話を聞きながらやると違いますね。
 自分がやっていたやりかたがほかの人がやっているやりかたと同じなのかどうかを確認することができました。

 一番よかったのは、懇親会に参加させていただいたことです。
Kintoneのプロダクトマネージャーの方などの中の人と直接話ができたのもよかったです。
Kintoneオンリーで仕事してる社長の方もいて話をすることができてたのもよかったですよ。
 その社長さんは、「納品」をなくせばうまくいくの倉貫義人さんとのお知り合いだそうで、その話をお聞きすることができてとても嬉しかったです。

 時代の流れに乗っかってグイグイ行ければいいなーと感じるいい時間を過ごさせて頂きました。

2016年2月3日

VHDファイルをブートにする方法をメモ

--------------------------------------------------------------------------------
エントリの追加
bcdedit /create /d "Windows7 Dev VHD" /application OSLOADER

REM 下のエントリーをENTEYキーに書く。
REM エントリ {5cdc9697-0244-11e3-a3d1-005056c00008} は正常に作成されました。



--------------------------------------------------------------------------------
: エントリーのの設定

SET DRIVE=I:
SET VHDPATH=\AppData\VHDBoot\win7ult\win7ult_dev.vhd
SET ENTRY=5cdc9697-0244-11e3-a3d1-005056c00008

bcdedit /set {%ENTRY%} device VHD=[%DRIVE%]%VHDPATH%
bcdedit /set {%ENTRY%} osdevice VHD=[%DRIVE%]%VHDPATH%
bcdedit /set {%ENTRY%} path \Windows\System32\winload.exe
bcdedit /set {%ENTRY%} systemroot \Windows
bcdedit /set {%ENTRY%} locale jp-JP
bcdedit /set {%ENTRY%} detecthal yes
bcdedit /displayorder {%ENTRY%} /addlast

:END
echo 終わり
pause

本日開発環境を作りなおすの巻

 開発環境といってもデータベース・サーバーのことです。

今まで、VMWare ESXi 5.5を使って仮想マシンを立てて開発に使用していました。
どこかの記事でESXi 5.5自体をUSBメモリにインストールすれば、HDDを消費せずに済むとよという記事に乗っかってその通りに運用していました(1年くらいノンストップで運用)。
他には、RedmineとSoftEatherを動かしてましたよ。

だがしかし、よくよく考えてみたら、USBメモリなんていつ急に使えなくなるということもあるのでやはりこれは危険ということで新しい環境を構築することにしました。

使っているソフトは、「XenServer 6.5」のフリー版です。
Citrixのサポートを受けずに自分でできるんだったら、無料で使用できますよというものです。


準備段階として新しいHDD 2TB(7,000円弱)を購入しました。
今は、2TBくらいが一番手ごろなのでしょうか?

ちゃんとした運用をするのであれば、RAIDを組んだりいろいろとするのでしょうが、そこまでは求めていないのでよしとします。

ESXiよりもクライアントソフトがよい感じがします。
仮想マシンのバックアップや復元が簡単そうです。


これで、仮想環境はXenServerに決まりっ!。

これから、OSインストール、設定、MySQLのインストールとデータベースの復元をしなければならないのでちょっと時間が掛かりそうです。
徹夜でやるか、明日の仕事をサボって作業するかどうしようか悩みどころです。


参考にした記事
XenServerをインストールしてみた
XENSERVER 6.5を使ってみました


2016年1月22日

AWSからGCPへの移行を検討

 移行したい理由は、お客さんにもう少し安くなりませんか?と言われたのとGCPのセミナーを聞いたのがきっかけです。

まずは、安くなりませんか?の話から。
一般的なWebアプリケーションの構成なのですが、DBサーバにダウンされるのが困るので二重化しています。
GCPというのがGoogle Cloud Platformです。
DBサーバは、CloudSQL 2ndなのでまだβ版なのでけどね(早く正式リリースして欲しいです)。
やはり、DBサーバの価格差が大きいです。
AWSは、サーバダウンに備えて2台使いますが、GCPは、サーバ単体でそれをカバーする仕組みがあるそうなので1台で良いようです。

APサーバ
 AWS t2.small CPU=1 MEM=2GB  $0.04/h
 GCP n1-standard-1 CPU=1 MEM=3.65GB $0.039/h

DBサーバ
 AWS(RDS) db.t2.medium CPU=2 MEM=4GB $0.208/h(Multi AZ)
 GCP(CloudSQL 2nd) n1-standard-2 CPU=2 MEM=7.5GB $0.078/h


GCPのセミナーで聞いた話。
コストパフォーマンスを見てもだいぶGCPが良いのではないかと思います。

2015/12/04 GCE vs EC2 vs Azureベンチマークを見ても凄さを伺います。
※このベンチマークをとった会社の人が言っていましたが、AWSのEC2は、たまたま状態の悪いのを引いたのかもしれないと言ってました(差が激しすぎるそうです)

サーバは、日本にはないのですがGoogleが世界に引いたネットワークケーブル内を通っているらしくアジアにあるサーバであればそれほど遅延を感じることはありませんでした。
(実際、お客さんの環境をテスト的に移植してみました)
サーバが日本に来ればもっとよくなると思うんですけどね。Googleさんよろしく。

ポリシーとしてセキュリティー重視ということなのでそのあたりも安心ですよね。


もっと、もっとGCPのセミナーや本の出版をしていただきたいと思いました。

2016年1月20日

サーバーが息を吹き返しました

 今朝、サーバーが起動しなくなって大慌てでカスタマーサポートに連絡したりしてましたが本日、復旧が完了しました。

 カスタマーサポート曰く、マザーボードか電源ユニットですねと言っていたので電源ユニットを交換することにしました。


  1. 知り合いのパソコン修理店へ相談に行き、電源ユニットだけだったらプラモデルを組み立てるみたいに簡単だから自分でやってみてと言われ、自分でやってみることを決意。
  2. たまたま、家にあった電源ユニットを使って付け替えようとしたら、マザーボードの電源の端子と電源ユニットの端子の数が違うことが判明(24ピンと20ピン)。
    この違いがあることすら知らない…。
  3. 仕方なく、近くのドスパラへ電源ユニットを買いに言ったのですが、なんか渋い顔をされることに。
    よくよく聞いてみたら、動くかどうかわからないからあまり売りたくないらしい。
    動く保証はできないからそれでも良かったら販売するということなので、まぁ、5,000円弱なので購入。
  4. 家に戻って初めての電源ユニットの交換をしてみました。
    なんの問題もなく物理的な接続はできたので電源を入れてみましたよ。
    電源も切れることなく稼働したようなのでミッション完了。


たった今、サーバーも立ち上がり使えるようになりました。
今このサーバーの中の部品で一番新しいのは電源ユニットになりました。


この間に、次のサーバーの購入の検討をしたり、もしサーバーが復旧できなかったらめんどくさいなーとかいろいろ考えました。

 わかっているけどバックアップは超大切ですよ。


開発サーバーがお亡くなりになったようです

 新年早々、開発サーバーがお亡くなりになったようです。

省電力、安価のDELLのサーバー(PowerEdge T105)でした。
最近、瞬電にあって再起動したら動いたのでそのままにしておいたのですが、どこか痛めたのかもしれません。


症状は、電源をいれても数秒後に電源が落ちてしまうというものでした。


カスタマーサポートに電話したら、マザーボードか、電源ユニットがおなくなりになったのだろうという答えでした(大体そのあたりだと思うが…)。


一応やってみたくださいと言われたのが以下ですが、症状は変わりませんでした。

  • 電源ケーブルを替えてみる
  • 電源ケーブルを抜いて、電源ボタンを長押しして、静電気を放電してみる。
部品交換をしてもらった場合、電源ユニットは既に在庫がなく、マザーボードを交換するとエンジニアの派遣と合わせて70,000円くらいかかるそうです。
70,000円を出すんだったら、新しいサーバーを購入するのでエンジニアの派遣はやめておきました。

これを機に開発サーバー(データベースだけですが)は、クラウドに以降してしまおうかと検討中です。
(ここは、練習も兼ねてAWSではなくGCP(GoogleCloudPlatform)です)


とりあえず、知り合いのパソコン修理屋さんに見てもらって、電源ユニットの交換をお願いしようかと思ってます。
運良く、ほぼ新品の電源ユニットが手元に手元にあったのでそれを持ち込んでお願いしようかと。


その開発環境は、USBメモリ起動の無償版ESXiだったのでPCが違っていても簡単に復活できるかもです。
新しいサーバーにHDDを付け替えてUSBメモリで起動すれば簡単に行こうが完了するのでは無いかと淡い期待も持っています。


この作業が終わらないと今抱えている仕事が止まってしまうのでとても怖いです。
とりあえず、2,3日開発が止まるのですみませんという電話だけはしておこう。


復旧できなかったら面倒くさいなー。



教訓 サーバーは、昨日動いていたから今日も動くとは限らない。