Azure用HelloWorldを作る

前回までの設定が終わっている状態から開始

  • VisualStudioOnlineのポータルから、プロジェクトを1コ作る(Agile / Git を選択した)
  • VisualStudio2013を起動し、チームエクスプローラーからVSOnlineに接続し、該当のプロジェクトを選択
  • VS2013上のチームエクスプローラーからプロジェクトを"複製"
  • プロジェクトの場所は、cloneしてきたフォルダを指定してから作成する

※新しいプロジェクトを作成で、Webから「ASP.NET Web アプリケーション」を選択。ここで、Application Insights をプロジェクトに追加という項目があるので、先程自動作成されたInsightsのテレメトリを追加します。

  • 次のダイアログで、何で作るのかという指定がされるので、MVCを選択(これがASP.NET MVC 5になる)。
  • Azure上に作るので、Azureの項目は「認証」は [個人ユーザー アカウント] が設定されていること(認証が必要なアプリを作る場合)、[クラウド内のホスト] がオンになっていること、プルダウンが「Web アプリ」になっていることを確認してOK。
  • 次のダイアログでサイトを作ったりしますが、既に作成されているので、キャンセル。。。(これでいいのか?)

Azure事始め

Azure並びにVisual Studio Onlineで何か始めるための備忘録

必要なもの

Visual Studio Online の設定と、Azure上での初期設定は割愛。というか大分昔に初期設定したままで忘れてしまった。ちなみに、Azure上のADでアカウントをADに紐付けておいた。

Azureのポータル

Azureの新ポータル

VisualStudioOnlineのポータル

  • https://[アカウント名].visualstudio.com/

とりあえず、HelloWorldなアプリを作ってみる

ちなみに、Azure上でWEBっぽい何かを作れそうなサービスが幾つかあるのでそれを調べる。
新ポータルをなるべく使う方向で頑張ってみる

  • 新ポータル上の左上の「新規」からサービスを作れる
  • 「参照」の中に色々なグルーピングがされているので、そこから選ぶ
    • 今回のケースでは、「Web+モバイル」から、「Web App」を選ぶ普通かも
    • DBを使ったWebアプリを想定してる場合、Marketplaceに「Web App+SQL」というひな形があるので、そっち使った方が便利っぽいのでそっちを使う

Azureの設定

  • Webアプリの設定
    • 「URL」に適当にURL候補を入れる
    • 「新しいApp Service プランを作成する」は複数作った時に共有出来る機能・容量がセットになったものとのこと。とりあえずURL候補と同じか、もう少し粒度が大きい名前を付けてみる
    • 「価格レベル」はS1 Standardだけど、そんなに要らないのでB1 Basicに変更
    • 「場所」は Japan East を選択
  • データベースの設定
    • 「名前」にはURLと対で動かしたいので、URL候補で入れたものと同じものにしておいた
    • 「価格レベル」では、Basicを選択。2GBもあれば十分。ここでGeoレプリケーションとか使う必要があれば、Standard以上を選択
      • ここでDTUという言葉が出てくるけど、データベース スループット ユニットとの事。1DTUがどの程度のパフォーマンスなのかは不明
    • 「照合順序」は自分で正しい、照合順序を入力する。プルダウンになってくれていてもいいのに…
      • 今回はおそらく最も緩いJapanese_CI_ASとしてみました。大文字小文字を認識するので注意
    • 「サーバー」はサーバの設定。サーバ名はアカウント名と同じものにしました。「場所」は東日本。ここら辺微妙に日本語化されていたりされていなかったりですね。。。
  • 新規リソースグループの作成
    • 名前をつけるだけですが、Webアプリもデータベースも同じ名前になったので、ここも同じ名前にしておきました。

これで、設定終わり。作成すると、ポータルトップに戻り、「Web App + SQL を作成しています」というタイルが1つ増える。通知でもprogress barで進捗が分かるっぽい。ちょっと時間が掛かったが、すんなり作成が出来た。

  • 通知から結果の詳細を見てみると microsoft.insights/autoscalesettings/write ってところだけFailedになってる。。。GatewayTimeoutだって。あとで調べる。Insightsなので、とりあえずスルー

余談:ちなみに照合順序については

ここら辺見てみる

リスト

諸々エンジニアとしての自分がキャッチアップ出来ていない感もあるので、
何かしら手を動かす時間を設けようと思う。WindowsLinuxも、周辺ツールも。
キーワードとしては、.NET Framework , C# , PHP , Ruby , swift, java(android) , IIS , nginx , SQLServer , MySQL , git , jenkins/travis ci/circle ci とか。
言語としてはC#はかなり面白いと感じているので、もうちょっとMSILに近いところまで深く追ってみたい。

IISSQLServerはもはやAzureの一部をPackagingしたものでしかないので、Azure使って何かやってみようかな。自宅とかで。
先日Macを折角買ったのに、あまり触れていなくてネットサーフィンしかしてない。
androidの開発もそうだけど、Xcode6は入っているので swift にも触手を伸ばそう。キャッチアップしたいものが増えてる。。。

仕事は6割の力で

ずっと前に書いて下書きのままほったらかしになっていたエントリがあったので、再考してアップしてみる。



主に責任感があって頑張りすぎの人向けに。状況によっては実践できる事と出来ないことがあるのは承知の上で、過去いくつかお説教したこと。

とあるケース。自分に降ってくる仕事がたくさんある。あるいはそのうち自分に降ってくるであろう仕事がいくつか見えている。スケジューラなどを使って、そのやるべき事をTODO形式で列挙。消化できたタスクは翌日のTODOに書かない。いくつかの分類で仕事の種類を分けている。締切りがあるものは明記している。でも優先順位がいまいちはっきりしていない。そして、時々そのリストにはない割り込みの仕事も降ってくる。タスクが減らない。困った。と言う状況。

この場合結果として、その目の前のタスクを消化すべく全力で仕事をして頑張っているんだけど、その分全力から漏れた分がミスとなって顕在化するケースがあった。このケースで問題なのは、仕事の優先順位がはっきりせず、TODOもただ列挙して終わっているいる点。優先順位がはっきりしないと仕事の重み付けが曖昧になって、どれも最優先に見えてくる。余裕がなくなるから尚更だ。結果として常に10割の力配分で仕事をすることになってしまう。無理なものは無理と言うことも大事。

もちろん優先順位をきちんと管理して、タスク管理という面で何かしらのツールを使って進捗などを管理して改善することも出来るけど、結局仕事に振り回されてしまうことになりやすいので、自分自身のタスクを管理する前提となる「力配分」に関してアドバイスをした。

結局、脳みそを使って生産活動をする上で一番大切なのは精神状態。これが健康的な状況であれば、肉体的にきつくても案外大変では無かったりする。脳みそが健全な状態であれば余裕が生まれ、仕事の精度は自然と上がってくる。

タスク管理で自分自身でも意識しているのは、仕事は6割の力でこなすこと。

割り振られる仕事の量、時間に対して合わせるのではなく、常に自分の持てる力の6割を上限として仕事をすることをベースとする。そのうち残りの2割は、自分の仕事っぷりを客観的に見直すために使う。何か漏れとか落ち度は無かったっけ?とか。もっと効率的に作業進められたかなとか。

さらに残りの2割は、別に遊んでればいいと言うわけではなく、割り込みの仕事が来たとき、本当にマズいときのバッファ。なので、全体としてはMAXでも8割の力で抑えられ、まだ2割の余裕が残るので、そんなにパニックにならずともちょっと頑張れば仕事を処理できる。常に2割の余力を残して仕事をし続けると、結構精神的に楽になる。もうひとふん張りが効くことが自覚できるから。

この4割の余裕で仕事の効率が上がったり、ミスが少なくなる。この見直しの時間で自分の仕事の効率を振り返ることが出来、結果として6割のボリュームが徐々に大きくなる。するといずれ昔の10割以上の力配分でこなしていた仕事が6割でこなせるようになるわけだ。

ちなみに、この配分を時間ベースでやると上手くいかない。ノッてる時は6割のペースで仕事をしているようでも、あっという間に定時になっちゃったというぐらい集中しているときもある。そういう時は、時間を気にせずキリがいいところまで仕事しちゃえばいい。逆に疲れきっている時は、その6割が時間にするとたった数時間ということもある。こういうときは、誰か暇そうな人と雑談して和んでみたり、散歩してみたり、さっさと帰っちゃえばいい。きちんとリフレッシュする。そのための残りの4割。

改めて。状況によって出来ることと、出来ないことがあるので、出来ることからやってみるのが吉。

プレイングマネージャー的な人の仕事のこなし方を知りたい

プログラマと言いつつも、実際には去年からチームが出来て、マネージャーっぽい仕事をしながら業務に勤しむ毎日です。なんともまあ、世の中のプレイングマネージャーは一体自分の仕事とまわりのメンバーの仕事とをどう都合つけながら仕事をしているのか気になります。

最近の自分は日中、チームのみんなの報告や相談事などを随時聞いていたり、方向性を決めたり、仕上がったもののソースチェックをしたり、他部署との仕様の調整やスケジュール調整、案件の優先順位の組み換えとリソースの調整などを行いつつ、他部署の人との会議、相談事、細かな調査などもこなしています。メンバーのみんなも気を遣って声を掛けてくれていたりするのはとても感じます。申し訳ない。全然話しかけてもらっていいのに。

なるべくメンバーのみんなにはお願いしている案件に集中してもらえるようにも配慮しつつも実際にはそこまでは出来ていなかったり。その上で自分の担当の業務(まだメンバーにはお願いし切れていない部分など)をこなしたりするわけですが、どーしても、通常の営業時間中に自分の業務までたどり着けない。世に言う残業の時間帯でやっとこさ自分の仕事が進むという日常です。営業時間中には、まとまった時間も取れず、運良く時間が取れて集中して仕事に入ろうと思っても問い合わせなどでリズムが保てない。なので、最近は営業時間中に生産的な仕事を行うことを諦めました。なので、日中は会議以外ではネットを見てたり、簡単なお便利スクリプトを書いている程度か、うろうろして自分に用事がありそうな人と雑談してみたりと、「お前仕事してんの?」みたいな人と化しています。

世の中のプレイングマネージャー(マネージャーではなく)のような立ち位置の人は一体どう仕事と時間の割り振りをして仕事をしているんだろうと悩みます。多分自分の時間の使い方で少しは改善できるのかも知れませんが、まわりの人からの問いあわせも無下にできず。。。うーーーん。

バージョン管理システムの管理ディレクトリを見せないように.htaccess

ネタ元はDrupal.orgのフォーラムっぽいところだったけど、CMSなどに限らずバージョン管理をしつつ、deployの必要がある場合、CSVとか.svnとか.gitとかできちゃうよね。DOCUMENT_ROOT下にあるけど見せちゃダメだよね。ということで、.htaccessで制御。mod_rewriteで。

RewriteRule "(^|/)(CVS|\.svn|\.git)/" - [F]

http://drupal.org/files/issues/git-htaccess-1_0.patch
がそのパッチだけど、コメントを見ると、「FilesMatchだけじゃ全部カバー出来ないから、mod_rewriteが使えるんだったら、ブロックしておやり。」ってことらしい。
ちなみに、mod_rewriteのオプション [F] は Forbidden

ubuntu9.10でのchrome(chromium)インストール

ちょっと前のchromeはまだまだ使い辛かったりした点も有ったみたいですが、最近のchromeは結構安定して使えて結構速いです。少なくとも、firefoxよりも快適に使えていて、私は乗り換えてしまいました。今日時点でのバージョンは

5.0.370.0 (43799) Ubuntu

インストール方法

$sudo vi /etc/apt/source.list

source.listを開き、aptitudeの対象を追加します。

## google chome
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main

その後、

$sudo apt-get update
$sudo apt-get install chromium-browser

で完了。以前は拡張機能を利用するには、わざわざオプションを付けて起動しないと利用出来なかったみたいですが、現在ではインストールされた素の状態で普通に利用することが出来ます。