若き頃から首から下が動かなくなってもお金に困らないライフスタイルを突き詰め、それを達成する過程でひきこもりと化し足が枝のようになった男うきだいら。 このままではダメだとパーソナルトレーニングに通いだし、プロテインによる急な栄養補給、バク食いによる体重増加の結果、尿管結石になり死を覚悟した上ただのデブになった男うきだいら。 小学5年生の登下校時、りんご畑でうんちを漏らして大号泣した悔しさを私は生涯忘れることはないだろう。
Notoフォントは全ての言語に対応することを目指している。GoogleとAdobeが共同開発したこのフォントは、Webフォント、組み込みフォントを問わず無料で利用できる。 ※Adobe製品においては、『源ノ角ゴシック』という名称になる。 プログラミング用フォント『Source Code Pro』を開発したAdobeが関わっているおかげか、Notoフォント自体非常に美しい。 そんなNotoフォントは『Google Noto Fonts』なるプロジェクトで無料で公開されている。 Google Noto Fonts 今回は、このフォントをWebフォント ―すなわち、外部からダウンロードして使うフォントとして使う方法を紹介する。 実は面倒くさい、WebフォントでNoto Sans Japanese Type SquareやFONTPLUSなど、Webフォント提供サービスは多く存在する。サイトを見る
Visual Studio Codeの拡張機能開発で必ずお世話になる、拡張機能をアクティベートするタイミングの制御について解説する。 今回解説する方法を使えば、プロジェクトフォルダーにREADME.mdなるファイルがあるときだけアクティベートしたり、C#ファイルを開いたときだけアクティベートしたりできる。 activationEventsの書き方 プロジェクトフォルダーの最上位にpackage.jsonを置き、”activationEvents”というプロパティ内に複数の条件を書く。それぞれの条件は並列に判断され、1つでも合致する条件があれば拡張機能がアクティベートされるという仕組みになっている。
Visual Studio 2015が正式リリースとなり、いよいよC#6時代が幕を開けた。 async, awaitの時のような劇的な変化はないけれど、かゆい所に手が届いた感がある。 今回は、C#6で導入されたnameof 式と例外フィルター(when)を使うと、具体的にどう嬉しいかを考える。 nameof 式 変数やプロパティの名前を使いたい時、直接文字列を設定していたけれど、C#6からはnameofを使えばいい。var iAmSam = "I am Sam"; Console.WriteLine(nameof(iAmSam)); // Writes iAmSam これはプロパティ名を取るのにも使える。class Person { public int Age; } var he = new Person(); Console.WriteLine(nameof(he.Age)); //
C#に限らず、プログラミングをしていて、外部ファイルを開いたりコネクションを開いておいたりすることは多い。 そういった場合、後始末を忘れると、例えばファイルを開きっぱなしにしたりと、あちゃちゃ〜なコトになってしまう。 しかし、我々も人間。後始末をつい忘れてしまうこともある。C#でいうと、対象のオブジェクトのDispose()を呼び忘れたということだけれど、さすが至れり尽くせりのC#、そんなヒューマンエラーを防ぐ仕組み = usingステートメントを用意している。 後始末のためのインターフェース usingステートメントの有り難みを紹介する前に、.Netが用意している後始末のためのインターフェースをおさらいしておこう。 前述の外部ファイルやアンマネージドリソースを開放するため、.NetはIDisposableというインターフェースを用意している。その内容はこちら。namespace Syst
先日TOACHで紹介したLINQの入門記事は、おかげさまで多くの人に読んでもらえたようだ。 Hello LINQ world. 野暮ったいC#コードから卒業したいアナタへ。LINQ 基本の4つ。 このLINQの第一歩では、Any、Select、Where、FirstOrDefaultという4つの基本的なメソッドを紹介した。 今回は、もう少し込み入ったことをするときに使えるメソッドを説明したい。 重複を取り除く -Distinct- 配列中の重複している要素を刈り込んで、ユニークな要素だけにしてくれるサッパリメソッド。 作例では、[0, 1, 2, 2, 3, 4] なる”2″が重複している配列にDistinctをかけ、[0, 1, 2, 3, 4]という重複のない状態にしている。var numbers = new[] { 0, 1, 2, 2, 3, 4 }; // This contai
知れば知る程至れりつくせりな.Netフレームワーク。 RubyでWebサービスなんか作ってると、いくつもGemを入れないと話にならないけれど、C#の場合は.Net一本でけっこうカバーできる。 これまでにも色々.Netをべた褒めしてきたけれど、今回はEnvironmentという静的クラスを紹介しようと思う。 C#(.Net)の文字列比較が日本語に対応しすぎていて笑えたので、他の比較方法と併せて紹介する。 便利プロパティ 使い方は簡単で、System名前空間をusingし、Environmentのプロパティを呼び出すだけ。// 現在のディレクトリ Environment.CurrentDirectory; // コンピューター名 Environment.MachineName; // OSのバージョン Environment.OSVersion; // CPUのプロセッサー数 Environm
C#には、色々な文字列比較の方法があることを知っているだろうか? あなたが普段何気なくやっている文字列比較は実は奥が深く、小文字や大文字の比較はもちろん、半角/全角やカタカナ/ひらがななど、日本語専用ど直球な文字列比較もできる。 今回は、そんな奥深い文字列比較の世界を案内しよう。 小文字と大文字を区別しないで比較する まずは、ローマ字入力のあるソフトなりWebサービスだと結構使いドコロのありそうな、小文字と大文字を区別せずに比較する方法を紹介しよう。 作例は、”IAMLEGEND”と”iamlegend”を、二つの方法で比較するもの。var uppercaseText = "IAMLEGEND"; var lowercaseText = "iamlegend"; // This outputs Equals on Ordinal : False Console.WriteLine( "Eq
Ruby 3.0の文字列型の新仕様が波紋を呼んでいるそうな。 [Ruby] Ruby 3.0 の特大の非互換について immutableじゃなかった文字列型が、3.0からはimmutableになる。 今までも .freeze を付けることでimmutableにできたけれど、もちろん全てのコードがそうなっているわけではないから、Ruby3.0に移行するにあたって十分なコードリーディングとテストをしなければいけない。 これがC系のようなコンパイルのある言語なら、コンパイルエラーとして一発で検出できるからどうということはない。 気軽に書いていけることの代償に、こういう仕様の変更に弱いということが露呈してしまった。 書いてすぐ実行できることは、その時はいいけれど、その言語の進歩を阻害する。今良ければいいだけではなく、後々もいいということを目指さないといけないわけですな。 Ruby 3.0系と2.0
特に.Net系のメソッドで顕著なのだけれど、飛んでくる可能性のある例外が多すぎて、いちいちcatch文を書いていると too long code になってしまうことがある。 だからと言って例外をキャッチしないのは問題であることは論をまたない。 catchしたらしたでコードが長くなるし、しなかったらいざ例外が飛んできたときに対応できないし、といった両極に挟まれたとき、今回紹介する方法で一挙に解決できる。 Exceptionをキャッチする とても乱暴だけれど、すべての例外クラスが継承するException型でキャッチすれば、例外を取りこぼすこともない。try { DoSomething(); } catch (Exception exception) { DoErrorHandling(); } このままだと、不必要な例外も処理してしまう可能性があるから、やはり乱暴にすぎる。 解決策は、例外オ
Go言語を一通り学べるgoogle設えのA Tour of Goというチュートリアルをやっている。 A Tour of Go Go言語の最大の特徴であるgoroutineやchannelも含めて、Go言語をとりあえずウォークスルーできるから、趣味や仕事でGo言語に入るための第一歩としてとても良い。 しかしながら、このチュートリアルを通して、Go言語自体へのムクムクとした不満が、季節外れの入道雲のように立ち昇ってきた。 それは、省略がヒドいというもの。 Channel 実際に見てみよう。まずは、goroutineやその呼出元の間で値をやりとりするために使われるchannnel。これがロック機能も備えていることで、非同期処理どうしで同期的なロジックを簡単に組み込める素晴らしい仕組みなのだけれど、これを生成する処理が……。c := make(chan int) 出典はA Tour of Goの6
男性か女性か、走っているか止まっているか歩いているかなど、何か固定値をグループにしておきたいことはよくある。 賢明なる読者諸兄は、そんなときに列挙型(enum型)を使うだろう。 enum AwesomeBeer { HoegaardenWhite = 0, Inedit = 1, ChimayBlue = 2 } 例えば、こういう列挙型があったとして、それぞれのメンバーにint型の数値が割り当てられているとする。 今回は、数値をこの列挙型のメンバーへ変換する方法を探ってみたい。 一番簡単な方法には罠がある まずは、列挙型で直接キャストする方法。Console.WriteLine("0 is " + (AwesomeBeer)0); Console.WriteLine("1 is " + (AwesomeBeer)1); Console.WriteLine("2 is " + (Awesom
プログラミングをしていると、当たり前のことを当たり前にやるのに往生することがある。それは人生も同じ(笑いどころ) やりたいことがすごくハッキリとしているにも関わらず、ウネウネと遠回りしている方法で実現しているレファレンスばかり見つかって、ふへ〜とタバコを吸いたくもなる。 それは特にXamlを触っている時に多いけれど、つい最近、Enumのメンバーをすべて列挙するにはどうすればいいかわからなくなった。 Enumのメンバーを列挙するという、「列挙型を列挙する」方法って、そういえばあまりやってこなかったなと。 この禅問答のような問への回答は、Microsoftが用意している。やったぜナデラ! そのものずばりなEnum.GetValues() こういう列挙体を列挙したいとする。enum AwesomeSong { HeyJude, MarryYou, CallMeMaybe, StarshipTro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く