ラベル .NET の投稿を表示しています。 すべての投稿を表示
ラベル .NET の投稿を表示しています。 すべての投稿を表示

2021/09/06

2021/09/06 筋トレ

  • バーベルインクラインベンチプレス 40kg 20,20
  • バーベルベンチプレス 50kg 15
  • バーベルベンチプレス 60kg 10,9


弱い。あとは腹筋と懸垂。

2020/08/31

デザイナが自動生成する InitializeComponent にカスタムコントロール独自追加プロパティ初期化コードを生成させたくないとき


まじかこれ、知らなかったわー。HogeFugaPiyoプロパティの初期化コードをInitializeComponent 内に自動生成して欲しくないときは下記のメソッドをコントロール側に追加する。

public bool ShouldSerializeHogeFugaPiyo ()

public void ResetHogeFugaPiyo ()

まじかこれ。

2012/04/10

.NET2.0でもラムダ式やvarが使える

コンパイラのバージョン次第で。ってのを今日会社で後輩(?)に教えてもらいました!スーパープログラマ後輩なのでいろいろ教えてもらってます(・∀・)あとmap欲しいなー(つまりlinqのselectのことですが)って思ってたら、ArrayにConvertAllやForEachやその他もろもろがあることも教えてもらいました。.NET2.0もなかなかやるじゃないですか。



2012/03/07

C#でREPL(Windows)

string.Formatのフォーマット指定子全部覚えてます?Enumerable.Range(0, 10)の結果が0から10までなのか0から9までなのか覚えてます?僕は覚えてないのでググるか、試しに書いてみます。consoleプロジェクト作って試したり、今書いてるソースに応急的に書き足して試したりするのって面倒じゃないですか?みんなどうやってんの?ConsoleApplication58.csとか作ってやってんの?REPL欲しくないですか? なのでvpsにmono入れてsshでcsharpを使って試してました。が、monoのwindows向けのバイナリ入れればいい話でした。アホ過ぎた。csharp.bat叩けばcmdでreplが立ち上がるのでお手軽。

Effective C# 4.0

2012/02/07

C#でExcel2007からPDFに変換する

Excel 2007ってPDFとして保存する機能があるんですって。すげー!という気もするけど今更かよという気も。で、C#からもPDFに変換できる。 全てのシートを印刷するってのをやってみたけど、デカいExcelをPDFに変換するときに「発行中」ってプログレスが出るのはどうにかならんのか。
それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。

取りあえず以上。関連はこのへん。
調べたけど、ExcelViewerじゃーPDFに変換はできないっぽい。そもそも保存ができない。(Excel 2007は保存時にPDFで保存するかどうか選べる)

追記

それとExcelファイルによってはわけのわからない状態になることが・・・。というのは、まだ調べてるとこだけど削除済みのシートまでPDFに変換されているような・・・。
非表示になってるシートもPDFとして化されてたからだった。



C#でBullZipを使ってPDFを結合する

これの続きみたいなもん。 BullZip PDF PrinterのPdfUtilのMergeメソッドで結合できる。ただし、 が必要。pdftk.exeとlibiconv2.dllをpathの通ったとこに置く。もちろんpdftkは単体でも動く。



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でまとめて実行するシェルスクリプト
という具合で、あとはcronでぶんぶん。
どれも単体でコマンドとして実行できるのでいろいろと便利。

同じような仕組みで、twitterにつぶやくだけのコマンドとURLを短縮/展開するだけのコマンドをgaucheで作って、tumblrからランダムに記事を選んで呟くtwitter botや、twitterのお気に入りからランダムに選んで呟くtwitter botなどを動かしてたりします。これらも単体でコマンドとして動かせるので意外と楽しめる。ソースはお粗末ですが。

mifare, window制御DSL

仕事では引き続きC#でmifareをごにょごにょするお仕事をしています。進捗が悪くてあばばばば状態。
で、その関連(全然関係なさそうだけど)でwindowsの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

C#の拡張メソッドでgaucheのutil.listにあるslicesっぽいもの書いてみた。組み込みでこういうのあるのかも知らんけども。 出力 Achiralというのをちらっと眺めてみたけど、Schemeで見慣れたようなものもあれば何をしているのかわからないものまでいろいろ。
拡張メソッドいいれすれー。  マクロもあればいいのに。Lispの伝統的なマクロをC系シンタックスでってのは無理があるのかもしれないけど、Pure言語にあるようなマクロだったらいけるんじゃないの。

追記

職場で「これだと遅延評価が効かないんで、こうしたら良いよー。」と教えてもらったので、それを参考に書き直してみました。



2011/08/22

csharp repl

何かとREPLが欲しくなるわけです。

monoにはC#のreplがあるってんで入れてみました。どうして肝心のVSにはないんでしょうね。馬鹿なの死ぬの? mono自体はyumで入れようと思いましたが途中でコケたので、ソースから入れました。(windowsでも
$ csharp
でREPL開始。

ShowUsing();でusingされている名前空間を、ShowVars();でREPLの環境内にある変数を表示しれくれます。quit;で終了。
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 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>
微妙に補完も助けてくれます。 Enumerableと入れてタブを押したら
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.
といった具合です。

 テスト用のプロジェクトを立ち上げてもいいし、コードの余白に確認用のコードを書いてイミディエイトウィンドウで確認してもいいんですけどね。


ところで

最近mifareをC#でごにょごにょする仕事をしてます。
C#もVisual Studioもすごく久しぶりでプログラミング以前のところで四苦八苦したり。
プログラミングの方もだいぶ四苦八苦してますが。

C#(というか.NET)はすごいし、まじで素晴らしいです。でもC系のシンタックスって人に優しくなくないですか?優しくないです。

VSのEmacsキーバインドがどうにも微妙でViEmu入れてみたり。
このままだとViEmu買ってしまいそうで怖い。その点2010は無料でいい感じの拡張があっていいですねー(棒読み

 

追記





2011/01/06

日記

今年は正月にコードを書くこともなく、プログラミング書初めは elisp でした。
その次が JavaScript で、その次は C# 。
まだ Scheme 書いてません。

Scheme つながりで Visual Studio の Color Scheme を変更しました。
エディタの背景が白っぽいと目がチカチカしてくるので、背景が黒いのを適当に選びました。
ディスプレイが明るいのも苦手。

ところで、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 キーバインドがデフォルトでは提供されていないとか。

そういや、こういう噂はどうなったんでしょうね。


参考

Emacsテクニックバイブル ~作業効率をカイゼンする200の技~

2010/03/26

MCTSのカード


先日、財布と一緒に掲題のカード無くしたんだけど、再発行できるのかな。
そうそう、こういうカード↓。





2009/10/17

[メモ]Nemerle, Scheme, Continuation, Factor

[Nemerle]

マクロに興味沸いた。仕事で C# だし IronScheme の方が気になるし .NET 系言語はこれ以上さわる気になれないけど気になる。

[Factor]

Factor に乗り換えるプログラマーは、Factor のより高位なプログラミング力を手に入れるために、ローカル変数を放棄しなくてはなりません。
PostScript にはまっているので気になります。

[Scheme]


  CPS - continuation passing style - 継続渡しスタイル

継続もマクロもまともに書けません。これじゃダメですね。勉強しよー。

プログラミングGauche

2009/10/09

C# - 例外

ただのメモ

 

catch句

catch (ArgumentOutOfRangeException aex)

ではなく

catch (ArgumentOutOfRangeException)

とも書ける

 

だからどうというわけではなく、へぇーと思ったもんで。

2009/10/08

TFS - チームプロジェクトを削除する

TFS : Team Foundation Server

開発の超力強い味方。

 

使い始めた頃に安易にチームプロジェクトを作りまくって削除方法がわからず困ったのでメモ。

  1. Microsoft Visual Studio 9.0\Common7\IDE\TFSDeleteProject.exe を叩く。以上。

 

GUIでの削除はできない。Batを作っておくと便利。

@Rem -------------------------------------------------------------
@Rem --- TeamProject delete bat
@Rem --- 2009/07/02 Defined By hoge
@Rem -------------------------------------------------------------

@CD C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
@Set /p s="server name : "
@Set /p p="project name : "
@TFSDeleteProject.exe /server:%s% %p%

@Pause >nul

@Set s=""
@Set p=""





C# - TraceListener

WS000025

画像はTrace Viewer。最近TraceListenerを扱うことが多いのでメモ。

 

TraceListenerとは

この「TraceListener」の存在をもっと早く知っていたら、ログ実装処理に手間かけなくて済んだのに・・・

「TraceListener」を知らないでログ出力処理なんか書くと、コード量は増えるし、後で知った時のショックが大きいです。

私もこれを知ったときはショックでした。C#を始めたころから読んでいるC#プログラミングレッスンで知りました。

 

TraceListenerの種類

画像のTrace Viewerで開いているのはXmlWriterTraceListenerでとったWCFサンプルのログ(.svclogファイル)

 

参考になる資料

C#プログラミングレッスン

個人的には下手にC#の本買うよりこのメルマガを通読する方が2兆倍勉強になると思っています。

 

 

ところでこの↓の本、読み始めた頃は「結構いいかも」と感じたけど微妙な空気になってきた・・・。出版前にコードのチェックしてあるんだろうか。ステップバイステップの各ステップのチェックはしてあるんだろうか。怪しい。あまりにも、その、間違いが・・・。もう少しちゃんとチェックしないと読者も著者も出版社もみんな不幸になるのでは・・・。

これからはじめるWCFプログラミング

これからはじめるWCFプログラミング

posted with amazlet at 09.10.07

鄭 立 小森谷 良明 加藤 誠司 飯田 洋介
秀和システム
売り上げランキング: 225303

おすすめ度の平均: 3.0

5 これぞWCFの教科書!!
1 DCOMとの対比での説明は正しいやり方とは思えない

Amazon.co.jp で詳細を見る





2009/10/07

WCFメモ、疑問

[メモ1]

ASP.NET であれば以下のURLにある方法でポートを固定できるけど、WCFの場合はどこ?

 

[メモ2]

これからはじめるWCFプログラミング」Chapter4:メッセージ交換パターン のサンプルをやっててエラー。

System.InvalidOperationException: コントラクトには Duplex が必要ですが、バインド 'WSHttpBinding' はこれをサポートしていないか、サポートするように正しく構成されていません。

わからなかったので調べると

Contract requires Duplex, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.

wsHttpBinding -> wsDualHttpBinding とすれば良いのかな?とApp.configで該当のところを書き換えてみるとうまくいった。理由までは調べなかった。しかも読み進めると次のページに書いてあった。くどいくらいくどいステップバイステップもあればこういうのもあるわな。

 

これからはじめるWCFプログラミング
鄭 立 小森谷 良明 加藤 誠司 飯田 洋介
秀和システム
売り上げランキング: 225303
おすすめ度の平均: 3.0
5 これぞWCFの教科書!!
1 DCOMとの対比での説明は正しいやり方とは思えない

複数プロジェクトのデバッグ時に複数のプロジェクトをいっせいにスタートさせる

別に書くまでのことはないんだろうけどもメモ。

 

ソリューションを右クリックしてプロパティ

 WS000023

 

デバッグ時にいっせいに実行したいプロジェクトを指定

WS000024





2009/10/06

面白そうなJavaScriptを見つけた

WS000021

AJAX Client Library for ADO.NET Data Services

CodeZineの記事を読んでたら何やら面白そうなものを発見。早速ダウンロードして読んでみた。JSだけど.NETらしいコードや名前付けで読みやすかった。(別に全て目を通したわけではないけど)

 

目に付いたのはStringBuilderクラス(MicrosoftAjax.debug.js)。C#でもそうだけどJSでも+演算子での文字列連結遅いもんねー。ところでJSって名前に$使えるんだね。知らなかった。

 

ついでにJSで気になってたところや曖昧だったところを少し試し書きしてみた。

処理系はEjacs

 

 

乱数ってどうやるんだっけ

// 乱数 0 ~ 10000
parseInt(Math.random()*10000);
// 8503

 

$マーク使えるんだ

// $
function aaa$bbb ()
{
  return "called 'aaa$bbb'";
}

aaa$bbb();
// called 'aaa$bbb'

 

// $
function $ ()
{
  print("called '$'");
};


$();

// called '$'

 

argumentsってローカル関数の場合どうなるんだろ

// arguments
function test ()
{
  var pargs = function (args, msg)
  {
    var ret = [];
    ret[args.length] = msg;
    for (var i = 0; i < args.length; i++)
    {
      ret[i] = args[i];
    }
    return ret;
  };

 

  print(pargs(arguments, 'nest level 0'));

 

  var fun = function ()
  {
    return arguments;
  };

 

  print(pargs(fun(2, 4, 6), 'nest level 1'));
  return 'end test';
};

 

test(1,3,5,7,9);
/*
1,3,5,7,9,nest level 0
2,4,6,nest level 1
end test
*/

 

C#のnull結合演算子(??)みたいなのってどうだったっけ

// null coalescing operator
null | 1;
// error

 

null || 0;
// 0

 

1 || null;
// 1

 

null || undefined || 9;
// 9

 

function coalesce ()
{
  var arg = arguments;
  for (var i = 0; i < arg.length; i++)
  {
    if (arg[i])
    {
      return arg[i];
    }
  }
};

/*
coalesce(1,2,3,4)
1
coalesce(null, 1, 2, 3)
1
coalesce(null, undefined, 1, 2, 3)
1
*/

 

function arrayCoalesce(ary)
{
  return ary || [];
};

/*
arrayCoalesce(null)
1,2,3
arrayCoalesce(undefined)
1,2,3
arrayCoalesce([])
arrayCoalesce([1])
1
*/

 

厳密な比較じゃないとハマるよねーとか

1 == 1;
// true
1 === 1;
// true
1 == '1';
// true
1 === '1';
// false
true == 1;
// true
true === 1;
// false
true == '1';
// true
true === '1';
// false
false == 'false';
// true
false === 'false';
// false

 

何も関係ないけどiota

// iota
function iota (max, min, inc)
{
  var ret = [];

  for (var i = 0, j = min || 0;
       j <= max || 0;
       i++, j = j + inc || 1)
  {
    ret[i] = j;
  }
  return ret;
};

 

 

どこで読んだか忘れたけど「星の数ほどあるJavaScriptの本の中で"唯一"の良書」と聞いて購入。基本的な言語仕様の説明である10章までを読んで満足して積んでる。

JavaScript 第5版
JavaScript 第5版
posted with amazlet at 09.10.06
David Flanagan
オライリー・ジャパン
売り上げランキング: 5119
おすすめ度の平均: 4.0
4 言語としてのJavaScriptに一番踏み込んだ本
5 JavaScriptのバイブル本
4 JavaScripterに捧げる本
5 JavaScriptを理解したいのならだまされたと思って読んでください
2 初心者には難しいです