サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
gushwell.ldblog.jp
Pythonの勉強をしようと思い立ち、しばらく放置していたブログを再開したいと思います。 TypeScript、PythonとC#以外の話題が続いているので、ブログ名からC#とりました。 題材は、言語処理100本ノックの問題を一つずつ解いていこうというもの。 Visual Studio Codeを使いますが、環境設定方法はいろんな方が説明しているので省略します。 ソースコードは、GitHubで公開するつもりです。 今回チャレンジするのは、第1章: 準備運動の第0問です。 第1章: 準備運動 00. 文字列の逆順 文字列"stressed"の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ. ■書いたコード s = "stressed" rev = s[::-1] print(rev) ■今回学習したこと Pythonは、クラスやMainメソッドとか書かずにいきなりコードを書けます。
僕の書いたC#プログラミングの書籍『実戦で役立つ-C#プログラミングのイディオム-定石-パターン』が、技術評論社様より出版されることになりました。 2月18日発売です。現在、amazonにて予約受付中です。 初級者を対象とした本ですが、内容的には妥協はしていません。そのため、496ページとかなりのボリュームになりました。その分、中級者の方にも得るものがあると思います。 以下に示した目次から推測されるように、C#プログラミングと.NET Frameworkの基本的な使い方を中心に解説した本ですが、単なる無味乾燥なTIPS集、API解説集とはならないよう、説明にはいろいと工夫をしています。 例えば、良いコードと悪いコードを対比したり、旧来のコードの書き方と新しいコードの書き方を示したり、僕がどんなことを大切にしてコードを書いているかを記したり... などなど。 自分で言うのもなんですが、きちん
ほんのすこし時間ができたので、久しぶりにブログ更新です。 12/4 追記 TypeScript Advent Calendar 2016があるのをこの記事をアップ後に知りました。 1日目が空いていたので、勝手ながら、TypeScript Advent Calendar 2016 の1日目の記事として登録させていただきました。 ----- TypeScript2.0が正式に公開されたとのことで、TypeScriptに興味が沸いてきたので、ちょこっと勉強してみました。 JavaScriptは初心者に毛が生えたレベル。TypeScriptはほとんど知識ゼロなので、もし、おかしな事書いていたら、指摘していただけるとありがたいです。 準備 Get TypeScript のページの "Visual Studio 2015" のリンクをクリックし、言語で Japanese を選択し、「TypeScrip
エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのフルパスが ウィンドウに表示されるというサンプルです。 XAMLでは、Window の AllowDropプロパティを trueにすることで、D&Dを受け付けるようにしています。 以下は左側のエクスプローラから複数のファイルを選択し、右側のアプリケーションウィンドウのD&Dした画面です。 イベントハンドラは、PreviewDragOver と Drop の2つ。(XAML参照のこと) <Window x:Class="DragFromExplorerSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml
言語処理100本ノックでPython入門 #79 - 機械学習、scikit-learnで適合率-再現率&グラフの描画
前回は、Timestamp型/rowversion型のカラムがテーブルに用意されている場合の楽観的同時実行制御について書きましたが、今回は、Timestamp型/rowversion型のカラムが無い場合の楽観的同時実行制御について。 Database Firstで開発している時って、種々の理由でRowVersion列をテーブルに追加 できないことも結構あります。 でも大丈夫、ちょっと面倒くさいけど、そんなときにも対応可能です。 まず、以下のようなpartialクラスを定義します。 classが入れ子になっている点に注意。Metadataクラスに中に、Categoryテーブルの主キー以外の プロパティを定義し、ConcurrencyCheck属性を付加。 [MetadataType(typeof(Category.Metadata))] public partial class Catego
前回の投稿から1か月以上たってしまいました。これまではLINQ to Objectのサンプルコードを掲載してきましたが、今度は、Entity Frameworkついて書いていこうと思います。 と言っても、Entity Frameworkの範囲が広すぎて、僕の手にはおえないので、その一部の機能に限定されると思いますが... いつものように、一つ一つの記事は短めに。 僕の環境は、 1 Visual Studio Professional 2015 2 EntityFramework 6.1.3 です。 ところで、Visual Studio Community 2015 がダウンロードできるようになりましたね。 学生、オープン ソース貢献者、小規模チームは無料で利用できます。 さて、話を戻すと、サンプルデータベースとしては、相も変わらず Northwind を使います。
01: 条件に一致する要素をカウントする 02: 条件に一致する要素があるかを調べる 03: 全ての要素が条件を満たしているかを調べる 04: 平均を求める 05: 最小値、最大値を得る 06: 文字列を走査する 07: 条件に一致する最初の要素を取得する 08: 条件を満たす要素をN個取り出す 09: 重複を排除する 10: 項目間を任意の文字列でつなぐ 11: 条件に一致する最後のインデックスを求める 12: ある条件以降の要素を複写する 13: 2つのリストが等しいか調べる 14: 2つのリストの和集合を求める 15: リストを一定の値で埋める 16: 配列に連続した値を設定する 17: 指定したフォルダ内から条件に一致したファイル名を列挙する 18: 2つの配列を連結する 19: 配列の全ての要素に対し、ある変換処理をする(1) 20: 配列の全ての要素に対し、ある変換処理をする(
TextBlockに表示する文字列はプレーンな文字列だけではなく、複数の書式をもった文字列を表示させることができます。 アンダーラインを引くには、<Underline>と</Underline>で文字列をくくります。 ボールドにしたければ、<Bold> と </Bold>でくくります。 Run要素を使えば、背景色、文字色、フォントサイズも変更することができます。 以下、このサンプルのXAMLです。 <Window x:Class="TextBlockFormatedTextSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" He
「どう書く?orgに感謝を込めて」シリーズ その56 ■問題 (出題者: raynstard さん) 整数nを渡すと1 〜 n までの整数を重複しないようランダムに出力する関数「bingo」を作ってください。 この問題は、1 〜 n までの数をシャッフルせよ、って問題と同義ですね。 .NET Framework に List<T> や IEnumerable<T>に要素をシャッフルするメソッドがあればいいんですが、無いみたいなので IEnumerable<T> の拡張メソッド Shuffle を自作しました。 Fisher-Yates shuffle アルゴリズムを採用しています。 using System; using System.Collections.Generic; using System.Linq; namespace Doukaku.Org { static class L
まずはサンプルプログラムの実行時のスクリーンショットを。 TreeViewにデータを表示するということは、そのデータが階層構造を持っているということですから、 TreeViewのバインドするデータは、階層構造をもったクラスということになります。ここでは、Categoryというクラスを定義することとします。 public class Category : ObservableCollection<Category> { public Category() { } public Category(string name) { Name = name; } public string Name { get; set; } public Category Children { get; set; } } Categoryクラスには、Nameプロパティと、Childrenプロパティがあります。Nam
ウィザード画面のように、次へ、前へボタンがあるようなプログラムを WPFのナビゲーション機能を使って実装したサンプルを掲載します。 どんなプログラムなのかイメージがわくように、まずは実行時のスクリーンショットをお見せします。 以下、作成手順です。 1. ウィンドウの作成 WPFアプリケーションプロジェクトを新規作成してできる MainWindowのXAMLを以下のように変更します。 <Window x:Class="PageNavigationSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="250" Widt
1年以上続けてきたWPFサンプルですが、ひとまず終わりにして、今度は、WPFのチャート機能に挑戦します。 WPFでチャート(グラフ)を表示するには、WPF toolkitを使う必要があるのですが、 この WPF toolkitは、WPF4には対応していないみたいです。 .NET Framework4.xから、.NET Framework2ベースのアセンブリを呼び出すこともできますので、 WPF4から、WPF3.5用の WPF toolkitを使うこともできるのかも知れませんが試してません。 どうせならば、WPF4に対応したものを使いたい。 なので、WPF4でチャートを使う方法はないかなーと、Webをさまよっていたら、見つかりました。 MSDN Blogs の Delay's Blog にWPF4に対応したChartコントロールがアップロードされています。 Bitbucketにも、WPF4に
ShowメソッドとShowDialogメソッドのサンプルです。 スクリーンショットではその違いが分かりませんが、この2つのメソッドは、 いわゆるモードレスとモーダルの違いがあります。 なお、メインウィンドウを閉じようとした時には、Closingイベントハンドラで、 ダイアログを表示し、終了有無を確認するようにしてみました。 このハンドラの中で、引数 System.ComponentModel.CancelEventArgs e の、 Cancelプロパティをtrueにすることで、ウィンドウを閉じることをキャンセル することができます。 まずは、MainWindowのXAMLとC#のコードです。 <Window x:Class="ShowDialogSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p
Visual Studio 2005で、ユニットテストをするときに、アセンブリファイルや .configファイル以外のファイルが、実行に必要な場合があります。 例えば、 XMLファイルだったり、CSVファイルだったり、mdfファイルだったり、GIFファイルだったり。 Visual Studio のテスト実行環境は、テストを実行する度に、TestResultディレクトリの下に、新たなフォルダが作成され、そこでテストが行われるため、debug\binなどにファイルを置いても、これが利用できません。同様に、プロジェクトにファイルを追加し、そのプロパティの「出力ディレクトリにコピー」を「常にコピーする」に設定してもうまくいきません。 このような場合は、ユニットテストの構成ファイル .testrunconfigを編集することになります。 Visual StudioのIDEの[テスト]-[テストの実行
昨年(2012年)から掲載しているWPFのサンプルコードですが、随分と数が増えてきたので、目次を作成しました。 ※ この目次の順序は、記事の掲載順とは若干変更しています。 コントロール TextBox, TextBlock, Button CheckBox ComboBox ListBox RadioButton, ToggleButton, RepeatButton PasswordBox Canvas StackPanel WrapPanel DockPanel Border Grid(1) Grid (2) Margin, Padding, HorizontalAlignment, VerticalAlignment GridSplitter Image Hyperlink Label ContextMenu GroupBox ScrollViewer StatusBar ToolB
DrawingBrushで枠付きテキストを表示するサンプルです。 まずは、サンプルプログラムのスクリーンショットを示します。 TextBoxに文字列を入力し、ボタンを押すと、枠付き文字列が表示されます。 ここでは、枠にグラデーション効果を付けています。 ウィンドウサイズを変更するとそれに追随して枠付きテキストのサイズも変化します。 まずは、XAML。 <Window x:Class="DrawingBrushSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <T
前回「WPFサンプル:CollectionViewSourceを使い、ListViewを表示する」では、並び順をXAMLで 指定しただけなので、ヘッダー部分をクリックしても並び替えは行えませんでしたが、 今度はヘッダー部をクリックして並び替えを行えるようにします。 まずは、XAMLから。前回との違いは、GridViewColumnHeader.Click の指定を追加しただけです。 GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler" 全体を示します。 <Window x:Class="CollectionViewSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://sc
前回の「CollectionViewSourceを使ったListViewの並び替えとフィルター処理」での予告?の通り、 カラムヘッダーに▲と▼マークを表示してみたいと思います。 Window.Resourcesに以下のDataTemplateを2つ追加します。 このテンプレートは、ListViewのヘッダーカラムの表示を変更するものです。 TextBlockと▲と▼マークを描画するPathをを持ったDockPanelです。 <DataTemplate x:Key="HeaderTemplateArrowUp"> <DockPanel> <TextBlock HorizontalAlignment="Center" Text="{Binding}"/> <Path x:Name="arrow" StrokeThickness = "1" Fill = "gray" Data = "M 6,1
この記事は、C# Advent Calender 2012 http://atnd.org/events/33905 への参加記事です。 今年もC# Advent Calender が開始されました。 なかなか書くネタが見つからず、参加しようかどうか悩んでいるうちに、気が付いたら、空いている日が、 初日の 12/1 と 最終日の 12/25 の2日だけになってました。さすがに最終日はプレッシャーがかかると 思ったので、初日である 12/1 にエントリーさせてもらいました。 さて、お題は、「.NET Framework4.5 での非同期I/O処理 事始め」です。 既に多くの方がブログで async, awaitの記事を書いているので、2番煎じ、3番煎じの感は 否めませんが、まあ、このC# Advent Calenderは、ゆるいイベントということなので、大目 に見てください(^^; さて、こ
LINQ to Objectに拡張機能を供給するMicrosoftが提供しているライブラリ(Interactive Extensions; Ix)の各メソッドを紹介しています。 1.ForEachメソッド 2.Bufferメソッド 3.Concatメソッド 4.Catchメソッド 5.Distinctメソッド 6.DistinctUntilChangedメソッド 7.Doメソッド 8.DoWhileメソッド 9.Finallyメソッド 10.Generateメソッド 11.Hideメソッド 12.Ifメソッド 13.IsEmptyメソッド 14.IgnoreElementsメソッド 15.Maxメソッド、Minメソッド 16.MaxByメソッド、MinByメソッド 17.OnErrorResumeNextメソッド 18.Repeatメソッド 19.Retryメソッド 20.Memoizeメ
このエントリは、C# Advent Calendar jp 2011 への参加記事です。 アセンブリを動的にロードし、利用し終わったらメモリからアンロードしたいという要求って、どれくらいあるのか わかりませんが、今回は、そのやり方を説明します。 これって簡単なようでなかなか面倒です。残念ながら、Assembly クラスには、Load系のメソッドはありますが、 Unload系のメソッドがありません。 こんな時に AppDomainを使うと、要求を満たすことができます。 まずは、以下のようなクラスが、SampleLibraryアセンブリに定義されていたとします。 using System; namespace SampleLibrary { public class SampleClass { public void Execute(string s) { Console.WriteLine(
いげ太さんの記事に触発されて僕も書いてみた。 岩波国語辞典には、再帰→回帰 とあり、回帰の意味を見てみると、 (2) 〔名〕処理手続きや規則の定義に、それ自身を繰り返し使うような仕方。 とあります。 つまり、C#での再帰処理とは、ある処理をするのに、自分自身のメソッドを繰り返し呼び出す処理のことです。 なお、再帰は、処理だけではなく、構造においても使われます。コンピュータのフォルダ構造が その身近な例ですね。 さて、それでは、1 から n までの整数の合計(これを sum(n)と表す)を求める処理 について考えてみます。 sum(n) = 1 + 2 + 3 + 4 + ... + (n-2) + (n-1) + n と表せます。 1 から (n-1) までの合計は、というと、sum(n-1) であらわすことができます。 つまり、 sum(n) = sum(n-1) + n と定義できるわ
Messengerを理解するために自作してみた(1)-(3) Messenger+Behaviorを理解するために自作してみた(1)-(3) でとりあえず、コードビハインドにコードを記述せずに、ViewModelからViewを操作する 方法については理解したつもりだけれど、 それでも、今の僕の経験と知識では、コードビハインドに次のようなコードを書いても、 良いんじゃないかなーと思ってます。 private void button1_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("実行しますか", "確認", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { vieewModel.Execute(); } } こう主張すると、 「コードビハインドにView以外のロ
■はじめに これまで、3回に亘って、Messengerクラスを自作することで、MVVMにおける Messengerについて理解を深めようとしてきたわけですが、今回は、 「Messenger + Behavior」を使い、ViewModelからViewを操作する方法について考 えてみます。 XAMLにビヘイビアを記述することで、Viewのコードビハインドに、何も記述せずに、 ViewModelからViewを操作できるようになるらしいので、オレオレBehavior を実装して、 これを確かめてみようと思います。 この記事の趣旨は、 MVVMフレームワークがどうやって、Messenger + Behavior を 実現しているかを、理解することなので、当然、Expression Blendに付属している System.Windows.Interactivity も利用しません。 最低限のものを自
前回の続きです。 Messageクラスが定義できたので、次は、Messengerクラスの定義です。 このMessengerクラスには、2つのメソッドを定義します。ひとつは、Register。 もうひとつは、Send メソッドです。 Registerメソッドは、View側で利用するもので、メッセージの型情報と「デリゲート」を 関連付けるものです。 この「デリゲート」は、ViewModelから、Messengerを経由して間接的に呼び出されます。 Sendメソッドは、ViewModelで利用されます。 このSendメソッドは、引数で渡されたMessageオブジェクトに対応したデリゲートを 呼び出す機能を持ちます。 この対応付けは、先ほどのRegisterメソッドで対応付けしたものです。 では、Messengerクラスの実装をしてみます。 public class Messenger { pri
MVVMを勉強していたら、Messengerというものが出てきました。 これって何だろうか。 .NET Frameworkのクラスじゃなくて、MVVM Light Toolなどのフレームワークで 用意されているもので、ViewModelからViewを操作する時に利用するもののようです。 要は、ViewModelとViewの仲を取り持つ仲介者クラスです。 と、ここまでは分かりましたが、それ以上のこと(特にどういう仕組みなのか)が良くわかりません。 そこで、理解を深めるために、MVVM Light Toolの外部インターフェイスを参考に Messengerクラスをちょっと自作してみました。 とはいっても、ものすごい手抜きなので、これを実際に使うわけにはいかないと思うし、 MVVM Light Toolのソースコードは一切みていないので、僕の理解が間違っている可能性は ありますが、まあ、Mess
メールマガジン『C#プログラミングレッスン - LINQ to SQL編』で説明しきれなかった内容をブログに書いたものの目次です。 メールマガジンのバックナンバーも併せてどうぞ! 0.はじめに 1.コンパイル済みクエリ 2.DataContextのスコープ 3.接続文字列 4.DataContext.OnCreateって何? 5.読み込み専用でデータベースを利用する 6.データベースの作成 7.IDENTITY列の扱い 8.NULL許容の列を扱う 9.timestamp列とUpdateCheckプロパティ 10.ColumnAttribute.UpdateCheck プロパティ 11.独自メソッドを追加する 12.ADO.NETとの相互運用 13.エンティティクラスに検証を追加する 14.エンティティ クラスの更新時にデータを検証するには 15.挿入、更新、削除の動作のカスタマイズ 16.
次のページ
このページを最初にブックマークしてみませんか?
『Gushwell's Dev Notes』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く