- バーベルインクラインベンチプレス 40kg 20,20
- バーベルベンチプレス 50kg 15
- バーベルベンチプレス 60kg 10,9
2021/09/06
2020/08/31
デザイナが自動生成する InitializeComponent にカスタムコントロール独自追加プロパティ初期化コードを生成させたくないとき
- VSのデザイナに初期化させないプロパティを作成する - natrium's reminder
- ShouldSerialize メソッドと Reset メソッドによる既定値の定義 - Windows Forms | Microsoft Docs
public bool ShouldSerializeHogeFugaPiyo ()
public void ResetHogeFugaPiyo ()
まじかこれ。
2012/04/10
.NET2.0でもラムダ式やvarが使える
2012/03/07
C#でREPL(Windows)
2012/02/07
C#でExcel2007からPDFに変換する
それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。
取りあえず以上。関連はこのへん。
調べたけど、ExcelViewerじゃーPDFに変換はできないっぽい。そもそも保存ができない。(Excel 2007は保存時にPDFで保存するかどうか選べる)
追記
それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。非表示になってるシートもPDFとして化されてたからだった。
C#でBullZipを使ってPDFを結合する
2012/02/03
C#というか.NETでExcelやWordをプログラマブルにPDF化する(BullZip)
こいつを使います。
インストールして以下のパスにあるdllを参照する。
"C:\Program Files\Common Files\Bullzip\PDF Printer\API\Microsoft.NET\v4.0""C:\Program Files\Bullzip"でないことに注意。
あとは下記サンプルのように簡単にPDF化できます。
PdfSetttings.SetValueがなかなかわけわかめなので、下記参照。
指定したExcelとWordを一括でPDFにするサンプル書いてみたけど、思った以上にキレイに出力されてビックリ。これは使える気がする。しかも無料で商用可能らしい(要出典)。
PDFにするときにExcelやWordがチラっと起動するのはどうにかならんもんか。。仮想プリンタだしそうはいかんのだろうねー。
検索してみると.NETに限らずAccess VBAやVBScriptからBullZip使って同じことしてる例がある。
あれあれ、改めて調べるとoffce 2007からは標準でPDF出力がサポートされてんのか?
2011/09/15
日記(bookmark, mifare, window制御DSL, KPF)
bookmark
しばらく前から、その日bookmarkしたリンクをブログに投稿するようにしてる。手動の更新頻度に比べてbookmarkの自動投稿頻度が高くてちょっとうざいかな・・・。週一に変更しようかどうしようか。もうしばらく様子を見てみる。ネタ元(というかパクりました)はこちら
bookmark自動投稿の仕組み的には
- ユーザーIDと日付け範囲とカテゴリ(quoteとかlinkとか)指定でtumblrの記事をJSONで取ってくるコマンド(gaucheスクリプト)
- jsonを変形するコマンド(gaucheスクリプト)
- jsonとテンプレートからテキスト(今回はHTML)を吐くtemplate-filter(Template Engine)コマンド(@kikuchan98さん製のgaucheスクリプト)
- bloggerに投稿するコマンド(PHP製)
- 上記のコマンドをpipeでまとめて実行するシェルスクリプト
どれも単体でコマンドとして実行できるのでいろいろと便利。
同じような仕組みで、twitterにつぶやくだけのコマンドとURLを短縮/展開するだけのコマンドをgaucheで作って、tumblrからランダムに記事を選んで呟くtwitter botや、twitterのお気に入りからランダムに選んで呟くtwitter botなどを動かしてたりします。これらも単体でコマンドとして動かせるので意外と楽しめる。ソースはお粗末ですが。
mifare, window制御DSL
> handle "hoge piyo fuga" > move 100 200 > repeat 4 click > move 42 42 > click > repeat 10 key down_arrow > key enterというようなコードをインタプリタに投げると、「hoge piyo fuga」というタイトルのwindowをハンドルして、そのwindowのクライアント領域でのx=100, y=200に移動してclickを4回、42,42に移動してクリックして↓キーを10回押下してenterという操作をします。(ちなみにマウスポインタは動かしません)クリックしたり入力したりコンボボックスを選択したりできるわけです。windowはアクティブでなくても、他のwindowの裏に居ても大丈夫。他に文字や文字列を送ったりもできるのでわりと何でもできます。
言葉では解りづらいので動画を貼れば手っ取り早いのですが。要はコードを解釈してwin32APIでwindowメッセージを送っているだけです。
テキストをインタプリタに投げればwindowをその通りに操作してくれるので、プログラムからテキストを生成して投げればいろんなことができるかも。名前はまだない。公開もたぶんできない(?)けど、勉強会とかで見せることはできるかも。
簡単なlexer(字句解析器)と粗末なインタプリタで動きます。面白かったんでREPLも付けてみました。ちなみにC#製。
KPF
前回から600日以上経過することになりますが、久しぶりにKPF開催します!まだ正式な告知は行なっていませんが、2011/10/22(土)に開催予定です!皆様ふるってご参加ください。
LT,、発表も絶賛大募集中です。
よろしくお願いします。
よし、風呂入って寝る。
2011/08/25
C#練習がてらslices
拡張メソッドいいれすれー。 マクロもあればいいのに。Lispの伝統的なマクロをC系シンタックスでってのは無理があるのかもしれないけど、Pure言語にあるようなマクロだったらいけるんじゃないの。
追記
職場で「これだと遅延評価が効かないんで、こうしたら良いよー。」と教えてもらったので、それを参考に書き直してみました。2011/08/22
csharp repl
monoにはC#のreplがあるってんで入れてみました。どうして肝心のVSにはないんでしょうね。馬鹿なの死ぬの? mono自体はyumで入れようと思いましたが途中でコケたので、ソースから入れました。(windowsでも)
$ csharpでREPL開始。
Mono C# Shell, type "help;" for help Enter statements below. csharp> ShowUsing(); using System; using System.Linq; using System.Collections.Generic; using System.Collections; csharp> var a = Enumerable.Range(0, 100); csharp> ShowVars(); System.Collections.Generic.IEnumerable微妙に補完も助けてくれます。 Enumerableと入れてタブを押したらa = System.Linq.Enumerable+ c__Iterator24 csharp> var a = Enumerable.Range(0, 100).ToArray(); csharp> ShowVars(); int[] a = System.Int32[] csharp> a.Select (i => Convert.ToString((byte)i, 16).ToUpper()); { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1A", "1B", "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63" } csharp>
csharp> Enumerable Enumerable EnumerableExecutor EnumerableQuery続いて「.」を入れてタブを押したら
csharp> Enumerable. Aggregate All Any AsEnumerable Average Cast Concat Contains Count DefaultIfEmpty Distinct ElementAt ElementAtOrDefault Empty Except First FirstOrDefault GroupBy GroupJoin Intersect Join Last LastOrDefault LongCount Max Min OfType OrderBy OrderByDescending Range Repeat Reverse Select SelectMany SequenceEqual Single SingleOrDefault Skip SkipWhile Sum Take TakeWhile ThenBy ThenByDescending ToArray ToDictionary ToList ToLookup Union Where Zip csharp> Enumerable.といった具合です。
テスト用のプロジェクトを立ち上げてもいいし、コードの余白に確認用のコードを書いてイミディエイトウィンドウで確認してもいいんですけどね。
ところで
C#(というか.NET)はすごいし、まじで素晴らしいです。でもC系のシンタックスって人に優しくなくないですか?優しくないです。
追記
2011/01/06
日記
その次が JavaScript で、その次は C# 。
ところで、1年以上ぶりに開発のお仕事に復帰しました。といってもバイトですけども。
2010/08/25
Visual Stuidio (2008) での Emacs キーバインド
キーボードマップ スキームを Emacs に設定後、以下の設定を追加してみました。
キー | 実行されるコマンド |
---|---|
C-c i | 編集.選択範囲のフォーマット |
C-h | 編集.一語削除 |
M-; | 編集.選択範囲のコメント |
M-+ | 編集.選択範囲のコメントを解除 |
C-, | ウィンドウ.前のドキュメントウィンドウ |
C-. | ウィンドウ.次のドキュメントウィンドウ |
たったこれだけですが、追加したら結構良い感じになりました。
あとは
C-g を Emacs と同じようなキャンセルっぽい動作に
tab の入力を C-i に
補間候補のポップアップ内の選択も C-n, C-p に できたらもっと幸せなんですが・・・。
ところで、VS2010 では Emacs キーバインドがデフォルトでは提供されていないとか。
そういや、こういう噂はどうなったんでしょうね。
参考
2010/03/26
2009/10/17
[メモ]Nemerle, Scheme, Continuation, Factor
[Nemerle]
マクロに興味沸いた。仕事で C# だし IronScheme の方が気になるし .NET 系言語はこれ以上さわる気になれないけど気になる。[Factor]
Factor に乗り換えるプログラマーは、Factor のより高位なプログラミング力を手に入れるために、ローカル変数を放棄しなくてはなりません。PostScript にはまっているので気になります。
[Scheme]
- About Scheme
- WHY Common Lisp?
- WHY Allegro CL?
- Three Dogmas of Scheme (Recursion, Single name space and Continuation)
- Call with current continuation patterns -> call/cc
- 使いたい人のための継続入門
- 継続 : Wikipedia
- 継続
CPS - continuation passing style - 継続渡しスタイル
継続もマクロもまともに書けません。これじゃダメですね。勉強しよー。
2009/10/09
2009/10/08
TFS - チームプロジェクトを削除する
TFS : Team Foundation Server
開発の超力強い味方。
使い始めた頃に安易にチームプロジェクトを作りまくって削除方法がわからず困ったのでメモ。
- Microsoft Visual Studio 9.0\Common7\IDE\TFSDeleteProject.exe を叩く。以上。
GUIでの削除はできない。Batを作っておくと便利。
@Rem ------------------------------------------------------------- @CD C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE @Pause >nul @Set s="" |
C# - TraceListener
画像はTrace Viewer。最近TraceListenerを扱うことが多いのでメモ。
TraceListenerとは
この「TraceListener」の存在をもっと早く知っていたら、ログ実装処理に手間かけなくて済んだのに・・・
「TraceListener」を知らないでログ出力処理なんか書くと、コード量は増えるし、後で知った時のショックが大きいです。
私もこれを知ったときはショックでした。C#を始めたころから読んでいるC#プログラミングレッスンで知りました。
TraceListenerの種類
- TextWriterTraceListener
- EventLogTraceListener
- DefaultTraceListener
- ConsoleTraceListener
- DelimitedListTraceListener
- XmlWriterTraceListener
画像のTrace Viewerで開いているのはXmlWriterTraceListenerでとったWCFサンプルのログ(.svclogファイル)
参考になる資料
C#プログラミングレッスン
- No.125 Debug ~ No.126-Debug(2)
- No.127-Trace(1) ~ No.132-Trace(6)
- No.133-TraceSource(1) ~ No.139-TraceSource(7)
個人的には下手にC#の本買うよりこのメルマガを通読する方が2兆倍勉強になると思っています。
ところでこの↓の本、読み始めた頃は「結構いいかも」と感じたけど微妙な空気になってきた・・・。出版前にコードのチェックしてあるんだろうか。ステップバイステップの各ステップのチェックはしてあるんだろうか。怪しい。あまりにも、その、間違いが・・・。もう少しちゃんとチェックしないと読者も著者も出版社もみんな不幸になるのでは・・・。
posted with amazlet at 09.10.07 鄭 立 小森谷 良明 加藤 誠司 飯田 洋介 おすすめ度の平均: これぞWCFの教科書!! |
2009/10/07
WCFメモ、疑問
[メモ1]
ASP.NET であれば以下のURLにある方法でポートを固定できるけど、WCFの場合はどこ?
[メモ2]
「これからはじめるWCFプログラミング」Chapter4:メッセージ交換パターン のサンプルをやっててエラー。
System.InvalidOperationException: コントラクトには Duplex が必要ですが、バインド 'WSHttpBinding' はこれをサポートしていないか、サポートするように正しく構成されていません。
わからなかったので調べると
wsHttpBinding -> wsDualHttpBinding とすれば良いのかな?とApp.configで該当のところを書き換えてみるとうまくいった。理由までは調べなかった。しかも読み進めると次のページに書いてあった。くどいくらいくどいステップバイステップもあればこういうのもあるわな。
これからはじめるWCFプログラミング posted with amazlet at 09.10.07 鄭 立 小森谷 良明 加藤 誠司 飯田 洋介 秀和システム 売り上げランキング: 225303 おすすめ度の平均: これぞWCFの教科書!! DCOMとの対比での説明は正しいやり方とは思えない |
2009/10/06
面白そうなJavaScriptを見つけた
CodeZineの記事を読んでたら何やら面白そうなものを発見。早速ダウンロードして読んでみた。JSだけど.NETらしいコードや名前付けで読みやすかった。(別に全て目を通したわけではないけど)
目に付いたのはStringBuilderクラス(MicrosoftAjax.debug.js)。C#でもそうだけどJSでも+演算子での文字列連結遅いもんねー。ところでJSって名前に$使えるんだね。知らなかった。
ついでにJSで気になってたところや曖昧だったところを少し試し書きしてみた。
処理系はEjacs。
乱数ってどうやるんだっけ
// 乱数 0 ~ 10000 |
$マーク使えるんだ
// $ aaa$bbb();
// $ $(); // called '$' |
argumentsってローカル関数の場合どうなるんだろ
// arguments
print(pargs(arguments, 'nest level 0'));
var fun = function ()
print(pargs(fun(2, 4, 6), 'nest level 1'));
test(1,3,5,7,9); |
C#のnull結合演算子(??)みたいなのってどうだったっけ
// null coalescing operator
null || 0;
1 || null;
null || undefined || 9;
function coalesce () /*
function arrayCoalesce(ary) /* |
厳密な比較じゃないとハマるよねーとか
1 == 1; |
何も関係ないけどiota
// iota for (var i = 0, j = min || 0; |
どこで読んだか忘れたけど「星の数ほどあるJavaScriptの本の中で"唯一"の良書」と聞いて購入。基本的な言語仕様の説明である10章までを読んで満足して積んでる。
JavaScript 第5版 posted with amazlet at 09.10.06 David Flanagan オライリー・ジャパン 売り上げランキング: 5119 おすすめ度の平均: 言語としてのJavaScriptに一番踏み込んだ本 JavaScriptのバイブル本 JavaScripterに捧げる本 JavaScriptを理解したいのならだまされたと思って読んでください 初心者には難しいです |