2013-05-22
■[VS] Emacs Emulation Extension を Visual Studio 2012にインストールする
Xkeymacs を使っていますが、どうにもキーを取りこぼしてしまうので、 Emacs Emulation Extensionを使おうと思いましたが、VS 2012ではサポート外です。ただし、以下のURLにインストール方法が書かれていたので試してみたものの、この手番だとうまくいかなかったので備忘録として。
手番
- Emacs Emulation Extension Now Available! - The Visual Studio Blog - Site Home - MSDN Blogs から EmacsEmulations.vsix をダウンロード
- 拡張子をZIPに変更し解凍
- extension.vsixmanifest (XML)にVSのバージョン番号が埋め込まれているので、それを10.0 -> 11.0 に編集する。
<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][書評] 独習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の基本的なことを理解していれば、問題なく読み進めていけるでしょう。また春といえば新人教育でプログラミングを教える機会が多いかもしれません。そのような教科書、自習書にも使えると思います。
- 作者: 山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2013/01/29
- メディア: 大型本
- 購入: 1人 クリック: 1回
- この商品を含むブログを見る
2013-03-24
■[Azure][Blob][サンプル] フォルダを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();
}
}

