secretbase.log

コードはすべてNYSLです

NuGet クイックスタート | nupkg をつくる

NuGet の公式ドキュメント からたどれる場所に nupkg を作るための Quickstart がおいてありまして参考になりました。 TL;DR nugetコマンドがある nuget spec hoge.csproj にて .nuspec のひな形がつくれる nuget pack hoge.csproj にてパッケージ(.nupack)…

nginx を Windows サービスとしてインストールする

はじめに 常時動作しているWindowsマシンがあり、 nginx と Webアプリケーション(nodejsまたはGoやPythonで記述)の組み合わせて提供することができそうで環境構築をしたのでメモします。 nginx は Windows の場合コマンドラインアプリケーションとして動作…

Windows インストーラー: Versionに設定できる数字の範囲

WIndowsインストーラーのバージョン プログラムのアンインストールまたは変更で、インストールしたプログラムのバージョンを表示することができます。 下記は、 1.0.0.0 と設定しているプログラムの例です。 WiXでは、下記 Product Element の Version で定…

WPFアプリケーションをEXEひとつにまとめる

はじめに WPFアプリケーションをインストーラーなどで配置する場合、Prismなどライブラリを使うとDLLを複数配置する必要があります。 WiXを用いる場合は、heat でまとめて wxsソースを自動生成して…といったアプローチが常套手段となりますが、EXEにDLLをマ…

例外処理は重いのでEnum.TryParseを用いたほうが良い

定義した Enum のメンバーに例えば入力した文字列が合致した場合に変換するといったケースはよくあります。 そういった場合に使えるメソッドが標準で用意されています。 文字列表現を Enum に変換するメソッド Enum.Parse Parse は戻り値として変換結果を返…

コレクションをソートして取り出す際にインデックスつける

コレクションから要素を取り出していく際に、連番をつけたいことがあります。 例えば下記のような文字列の配列を、ソートしてインデックスとともに要素を取得したい、といった場合のTipsです。 "Banana", "Apple", "Melon" ソートし取り出す際にインデックス…

名前空間の名前

C# の場合、namespace はどのように付けたら良いか、以前調べた。 https://msdn.microsoft.com/ja-jp/library/ms229026(v=vs.100).aspx から抜粋。 一般的な形式 <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] 説明 名前空間名には、プリフィックスとして企業名を付け、各企業の名前空間の名前</subnamespace></feature></technology></product></company>…

Windows 10 と Windows 8.1 を判定する

動作しているOSのバージョンを取得して判定する必要があり、 Environment.OSVersion を用いて Major と Minorで判定するようにサンプルコードを動作させてみました。 しかし、Windows 10 でも Windows 8.1 でも Major が 6 のまま。 Windows 10 では majorは…

C# 6.0 言語仕様 [非公式ドラフト版] を見つけた

C#

C# 5.0 (マイクロソフトが公開している最新) C# Language Specification が 5.0 が公開されています。 Download C# Language Specification 5.0 from Official Microsoft Download Center Visual Studio 2015から利用可能になった C# 6.0 言語仕様を探したと…

Windows 10にアップグレードしたあと、HDMI オーディオが正常に動作しないためオーディオドライバーを更新した – ThinkPad T440s

下記を参考にオーディオドライバーを更新したところ、解決しました。 Windows 10 64-bit ThinkPad T440s 更新前 更新前のドライバーバージョンです。 更新後 6.0.1.7522 にアップデートしました。 無事TVに音声が出力されました。 これで拡張ディスプレイに…

PowerShell で FizzBuzz

コマンドプロンプト(バッチファイル)より、PowerShell が充実していることは確かなので少しずつ使えるようになりたい。 そこでまずは FizzBuzz を実装してみた。エディタや実行環境は、Visual Studio 2012 (Expressではない) に PowerShell Tools For Visu…

Git for Windows/msysgit で ユーザー名、パスワードの入力頻度を下げる

git

複数のリポジトリを clone する必要があり、一発 clone するスクリプト書いた。社内の認証がhttpによる認証のため、毎回user/passwordを入力するのがだるい。 そこで、 http://$user:$password@example.co.jp/git/reponame みたいな感じで、URL に埋め込んだ…

フリーのプログラミング関連の書籍やサイトのまとめ

Github の最近ついたスターのリポジトリをつらつらとみていたら面白そうなリポジトリを発見。フリーのプログラミング関連の書籍やサイトのリンク集がMarkdownで書かれています。 free-programming-books/free-programming-books-ja.md at master · vhf/free-…

プログラミング言語 Julia で実装された将棋ソフトメカ女子将棋で遊ぶ

プログラミング言語Juliaで実装されている将棋ソフトウェア メカ女子将棋 をUbuntuにインストール、動作させてみましょう。 インストール手順は、下記に詳細があります。 http://mechawooser.blogspot.jp/2014/01/blog-post.html 注意点は、 OS は 64-bit の…

プログラミング言語Julia ~Ubuntu 編~

先日Windowsにインストールしてみた Julia ですが、Ubuntu のパッケージが用意されています。対象のUbuntuは 12.04, 12.10, 13.04, 13.10 があります。ここでは Ubuntu 12.04.3 (LTS) にインストールします。 Ubuntu にパッケージのリポジトリを導入 公式サ…

Julia Studio で始める Julia 入門

julia とは The Julia Language ハイレベルでハイパフォーマンスの動的プログラミング言語です。文法は他の言語と似ているようです。 去年くらいからたまに話題にならないレベルで、周りでも話にも聞かないレベルですが、将棋の電王戦のあるプログラムが jul…

2013年ふりかえり

2013年大晦日ということで簡単にふりかえっておきます。 ふりかえり 今年の前半は、OSC2013にmercuriap-users.jpで出展をしたり、OSPN Pressに寄稿 したりと少し活動をしていましたが、プライベートが忙しくなり3月くらいから時間があまり割けなくなってしま…

Windows 7 / Python 2.7.6 にて ez_setup.py にて UnicodeDecodeError が出て困ったけど解決した件

追記 (2014/6/3) Python ML にて報告がされていました。 http://www.python.jp/pipermail/python-ml-jp/2013-December/011156.html Python 2.7.7 にて下記不具合として修正されていますので、2.7.7を使いましょう。 http://bugs.python.org/issue9291 http:/…

Windows上でソースコードから開発版TortoiseHg をビルドしてみる

Mercurial & TortoiseHg Advent Calendar 2013 - connpass の 8日目のエントリです*1TortoiseHg を 使っているとちょっと改良してみたいなぁと感じることもありますが、Windows上のビルド環境構築はけっこう面倒だったりしますね。Windows 上で環境をスクラ…

PyCharm 3.0.2 にアップデート

PyCharm 3.0.2 がリリースされました。 [blog] Announcing PyCharm 3.0.2 URL2013-12-02 22:09:31 via twitterfeed Terminal fixes for Windows Remote interpreters fixes Test runner for Django 1.6 fixes Formatter, VCS fixes and other Windowsのター…

TortoiseHg のワークベンチから快適なターミナルを起動する(Windows)

Mercurial Advent Calendar 2013 2日目は、TortoiseHgのワークベンチから好きなターミナルの起動をできるようにしてみたいと思います。Windows上でコマンド入力するterminalはいくつか選択肢があります。 基本は OS標準添付の cmd(コマンドプロンプト)である…

Ubuntu 12.04 LTS にて Python 3.3 の環境構築

Ubuntu 12.04 (precise) の Python 3系は、Python 3.2.3 ですが、最新の Python 3.3.1をインストールし virtualenv を用いた環境の構築手順です。 PPA を導入 PPAにてPython3.3パッケージを公開している方がいます。自己責任で入れましょう。 sudo apt-get i…

PyCharm と Mercurial の連携

PyCharm とMercurialの連携をしてみた。diff画面がなかなかカッコイイので紹介します。 準備 (hg init相当) PyCharm上でリポジトリをつくることもできます。プロジェクトを普通に作成し、その後 ファイル追加 (hg add 相当) 普通にファイル追加すると、リポ…

Python の辞書に含まれる最大値のKeyを求めるクールな実装

下記のような辞書型があり、辞書の値の最大値を持つキーを取得したい。 例えば、下記のような辞書だ。 d = {'a': 1, 'b': 2, 'c': 3} 上記例では、 3 が最大値。よって、 c を得たい。 ここで if文のような条件分岐をつかった実装は クールではないのは容易…

WPF MVVM ふりかえり 発表資料

今年度から C#/WPF/MVVM/Prism な開発環境で過ごすことが多くなって来ました。私は実際の開発よりもCIやインストーラなどの役回りなのですが勉強しないといけないと思い、今日の mokusharp(木曜日 社内C#勉強会)で発表した資料になります。 発表資料(前編)…

ackより速いagを試してみる

ackより速いらしいagを試してみました。ackはgrepをよりプログラマ向けに便利にしたもので、agはperlで記述されたackよりCで書いている分高速であることがウリとのことです。 ack http://beyondgrep.com/ ag http://geoff.greer.fm/2011/12/27/the-silver-se…

SSH キーをクリップボードにコピーするワンライナー

あらかじめ、 ssh-keygen でキーを作成しましょう。公開鍵をコピーしたくなったときに、下記コマンドを実行します。 $ xclip -sel clip < ~/.ssh/id_rsa.pub Ctrl + V で貼り付けることができます。 インストール debian の場合、 xclip は、下記コマンドで…

debian 7 の Sphinx にて Could not import extension となる問題の原因と対策

debian 6 から 7.0 に upgrade したところ、sphinx の make html でエラーが出るようになってしまった。 Extension error Extension error: Could not import extension sphinxcontrib.plantuml (exception: No module named plantuml) make: *** [html] エ…

ifconfig コマンドの導入

debian GNU/Linux 7.0 への ifconfig インストール方法のメモ。 インストール方法 $ sudo aptitude install net-tools 実行方法 /sbin なので通常のユーザではPATHが通っていないことに注意。 $ /sbin/ifconfig インストールパスの確認方法 $ dpkg -L net-to…

local time から始めるプログラミング言語入門

プログラミング入門としては、Hello World を標準出力に出力することがよくあります。初めて触る言語で行うサンプルとして、Hello World より少しだけ進んで local time の現在時刻を表示するサンプルコードをいくつかつくってみました。 [2013/01/24 12:34:…

virtualenv 環境で sphinx を試してエラーが出て先生に尋ねたら解決した

Python のパッケージをインストールする場合、virtualenv を使うのが常識のよう なので、sphinxやその拡張もシステムに直接インストールせずに、virtualenv環境でやってみようと考えていました。 sphinxのビルド環境を virtualenv で用意する(ドキュメント…

分散バージョン管理の機能比較まとめ

DVCSで有名なものですと、 Git , Mercurial, Bazaar があります。 最近では、Veracity という分散バージョン管理も出てきました。どのように違ってどういう基準で選ぶと良いか悩みますね。これらの違いはなんでしょうか? そこで、比較資料をまとめてみまし…

入門TortoiseHg+Mercurial 書評

Mercurialコミッタのフジワラさん(id:flying-foozy)から、"入門TortoiseHg+Mercurial"を頂きましたのでこのエントリで紹介させていただきます。 入門TortoiseHg + Mercurial作者: 藤原克則出版社/メーカー: 秀和システム発売日: 2013/02メディア: 単行本購入…

.NET Framework のバージョンを確認する

調べたらバッチファイルで確認する方法 があるので、Windows8 で試してみました。 実行結果 Windows 8 は、.NET Framework 4.5 が同梱されていますが、その下位バージョンもインストールされていることがわかりました。 参考 http://www.atmarkit.co.jp/ait/…

svnversion で subversion の リビジョンが取得できる

svnversion を使えば、シンプルに revision だけ取得できます。Windows 7 32-bit / TortoiseSVN 1.7.10 / msysgit の環境で実行しています。 $ svnversion 212 $ which svnversion /c/Program Files/TortoiseSVN/bin/svnversion svnversion -h で helpがみら…

Windows で which コマンドを使えるようにする

Linux や Unix でおなじみの which コマンドが Windows にはない。よく準備するのでメモ。 準備手順 この内容を which.bat として、 パスの通っているところ(例えば C:\Windows\System32 )におけばOK。gist においていますので、 view raw をクリックすると…

Cygwin のバージョンを知る方法

Cygwinのターミナルを開いて下記コマンドで確認できます。uname は、 Linux や UNIX でも使えるコマンドです。 $ uname -r 1.7.16(0.262/5/3) また、 cygcheck コマンドがあります。 $ cygcheck -c cygwin Cygwin Package Information Package Version Statu…

OSPN Press 「オープンソース」を使ってみよう Mercurial 編 に寄稿しました

「オープンソース」を使ってみよう (第28回 Mercurial 編) に寄稿しました。 Windows ユーザ バージョン管理を知っているが使ったことがない 方を対象として、記事を書きました。 Windows上でバージョン管理を初めてみてはいかがでしょうか? また、オープン…

PIL を正しくインストールする

JenkinsマシンでビルドしたSphinx の image ディレクティブ の scale オプションが効いてなかったので、なんでだろう?とつぶやいたら、 清水川先生から Pillow(PIL)が入ってないんじゃね? ということで、PILを入れてみます。正しく PIL をインストールする…

MLでよく出てくる省略形の英単語の意味

英語が読めないながらも、興味ある開発系のメーリングリストに目を通して気になる話題をウォッチしていると楽しいです。そこでちょくちょく、よくわからない略語(頭文字)が出てきます。実際に、The Mercurial-devel Archivesに出てきた単語をメモしていて、…

Windows 7 で wget および unzip を導入 (Jenkinsのビルド成果物を取得する)

例えば Jenkins さんでビルドした成果物(archive.zip)は、Webサーバ上で公開されています。 Windows上で取得、展開したい場合、どうすればいいのでしょうか。 そこで、Windows上で使える GNU 系のツール(ここでは wget と unzip) を導入してみました。 wget …

2012年に参加した勉強会一覧

1月 日本鼻メガネの会 新年会 : ATND 第2回shinagawa.redmine勉強会 : ATND スタッフ 2月 第3回RxTstudy : ATND 2月17日 Shibuya.trac meets 品川Redmine ちきちき楽しい交流会♪(東京都) TokyoMercurial#2 3月 3月26日 DevLOVE ターミナル勉強会「オレの*_hi…

python の型の安全性

Python には変数の型宣言が必要なく、動的な型付けをします。では異なる型同士を演算するとどうなるのでしょう? 動的な型付け 下記の例では、変数 x, y はそれぞれ事前に型を定義することなく、代入することができます。 $ python Python 2.7.3 (default, A…

全てのエンジニアがPythonを勉強するべき2013年到来

2013年は、巳年です。ヘビといえばPython(ニシキヘビ)ですね。 Python をはじめよう Python を初めてない人は初めてみるのもよいと思いますので、まずは下記の記事を読んでやる気を出しましょう。 全てのwebエンジニアがPythonを勉強するべき2013年到来 Ho…

2012年ふりかえり

大晦日ということで振り返ってみました よかったこと Mercurial 関連 社内 Mercurial の試験導入でユーザやノウハウを増やした 社内 Python 勉強会はじめた TokyoMercurial へ継続参加 (2回目から) TortoiseHg のパッチ送った Sphinx 関連 拡張をつくって Py…

C# , Python , Ruby の yield の違い

毎週木曜日に社内でC#の勉強会をやっていて、そこで yield なる文がなにをやっているかわからないという話題に。そういえば Python で フィボナッチ数列 を取得するときに yield 使っていたっけ。同じかな?って思ったので試してみました。 結論 C#(イテレー…

pandoc で Redmine の Wiki を Sphinx に変換しよう

Sphinx Advent Calendar 2012 - connpass の 15日目のエントリとなります。本日は、pandocというドキュメント変換ツールの紹介です。 Sphinx を使う場合、reSTにてドキュメントを記述しますが、例えばプロジェクト管理にRedmineを導入している場合、Wikiに書…

TortoiseHg にて .hgignore を編集しよう

TortoiseHg Advent Calendar 2012 - connpass 13日目になります。今日は TortoiseHg で .hgignore を編集してみましょう。 .hgignore .hgignore の1行目(1行目じゃなくても途中からでもOKです)に記載する syntax:glob がなんだっけなぁと忘れることがよ…

TortoiseHgにてバンドルファイルを扱う

TortoiseHg Advent Calendar 2012 - connpass 11日目になります。 先日 TortoiseHgにてstripを習いましたが、今日は stripにて削除したバンドルファイルをTortoiseHgにて戻してみましょう*1 なお、バンドルファイル自体は、hg bundle で任意のリビジョンを作…

TortoiseHgを使って歴史改変をはじめよう(strip)

TortoiseHg Advent Calendar 2012 - connpass 9日目のエントリになります。今日は、いよいよMercurialの真価である歴史改変をはじめてみましょう。歴史改変というと難しいイメージですが、まずは手始めにコミットしたリビジョンを無かったことにすることから…