Azureの小ネタ このページをアンテナに追加 RSSフィード Twitter

2013-05-22

[] Emacs Emulation Extension を Visual Studio 2012にインストールする

Xkeymacs を使っていますが、どうにもキーを取りこぼしてしまうので、 Emacs Emulation Extensionを使おうと思いましたが、VS 2012ではサポート外です。ただし、以下のURLにインストール方法が書かれていたので試してみたものの、この手番だとうまくいかなかったので備忘録として。

手番

    <SupportedProducts>
      <VisualStudio Version="11.0">
        <Edition>Pro</Edition>
      </VisualStudio>
    </SupportedProducts>
  • 再びZIP化して、拡張子をVSIXに戻す。
  • 元記事では、管理者プロンプトで云々でしたが、ここで、vsixintaller.exeを使う。
"c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\VSIXInstaller.exe" /admin EmacsExtensions.vsix
  • ダブルクリックしてインストールすると、%appdata%に入ってしまうが、こうすると、%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\Extensionsに入る
  • 最後に、Extensions 配下を探すとEmacs.vsk ファイルが存在するので、Commons7\IDEにコピーする
  • VSを起動して、オプション - 環境 - キーボード で Emacsが選択しに出ればOK。
  • 適当にEditorを開き、動作確認。

と以上。/admin でインストールしなくてもよいのかもしれないが、自分の環境ではうまくいかなかったので。

2013-04-20

[][] 独習Java サーバーサイド入門 第2版

 独習Javaのサーバーサイド入門編です。Javaの基本的な作法は知っている前提で、サーバーサイドについて知らない人向けのものとなっています。サーバーサイド系のJavaプログラミングを始めようという方にぴったりの入門書です。

 前提環境は、以下の通りとなっており特定のIDE、EclipseやNetBeansなどには、依存していません。

  • Windows 7
  • Java 7
  • Tomcat 7
  • MySQL

 内容については、要約すると以下の流れです。

  • 環境設定
  • JSP (Java Server Page)
  • HTTPの基本 (リクエスト、クッキー、セッション)

 環境設定、JSPの基本からはじり、HTTP通信、DB連携などサーバーサイドのプログラミングでは知っておかなくてはならない周辺技術ましっかりフォローされています。例によって手順の説明は豊富ですし、周辺説明も丁寧です。XMLを扱う部分では、XML基礎説明もされていたり。

 Javaの基本的なことを理解していれば、問題なく読み進めていけるでしょう。また春といえば新人教育でプログラミングを教える機会が多いかもしれません。そのような教科書、自習書にも使えると思います。


独習Javaサーバサイド編 第2版

独習Javaサーバサイド編 第2版

2013-03-24

[][][] フォルダをBLOBにコピー

例によってリハビリサンプルです。あまり参考になるコードでないのです。実用的に使うなら、Powershellのツールを使うと無問題でしょうか。

  • C#で相対パスを取りたい場合なにかライブラリなかたっけ?
  • BLOBコンテナを削除して、すぐ作成できたっけ?(開発ストレージではできたけど、コピー量が小さいからですかね)
  • バックスラをスラに変換するAPIは?Apache IOにあったなと思った私はJavaに毒されてる。

        public static void CopyToBlob(string sourceFolder)
        {
            var dir = new DirectoryInfo(sourceFolder);
            Console.WriteLine(dir.Name);

            // BLOBコンテンナの作成
            var account = CloudStorageAccount.DevelopmentStorageAccount;
            var client = account.CreateCloudBlobClient();
            var container = client.GetContainerReference(dir.Name);

            // 既存のコンテナ削除
            if (container.Exists())
            {
                container.Delete();
                Console.WriteLine("container deleted");
            }

            // コンテナ作成
            container.CreateIfNotExists();
            foreach (var f in dir.GetFiles("*", SearchOption.AllDirectories))
            {
                var name = f.FullName.Replace(dir.FullName + @"\", "");
                Console.WriteLine(name);
                var blob = container.GetBlockBlobReference(name.Replace(@"\", "/"));
                using (var stream = File.OpenRead(f.FullName))
                {
                    blob.UploadFromStream(stream);
                }
            }
            Console.WriteLine("done");
            Console.ReadKey();
        }
    }