Webページの選択箇所をtweetするscriptlet

まず間違いなく車輪の再発明だと思うけど晒す。

javascript:(function(){var%20q=(document.all)?document.selection.createRange().text:(window.getSelection()+'');url_next='http://twitter.com/home/?status='+encodeURIComponent(q)+'%20'+encodeURIComponent(document.title)+'%20'+encodeURIComponent(location.href);location.href=url_next})();

C#でも匿名メソッドを使って非同期通信(Uriクラスの拡張メソッド編)

C#でも匿名メソッドを使って非同期通信(拡張メソッド編) - まさるDiaryの続き

さすがにあんまりだったので、Uriクラスを拡張するようにしてみた。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;

namespace ConsoleApplication1
{
  public static class WebHelper
  {
    public static void Get(this Uri url, Action<string> callback)
    {
      WebRequest request = WebRequest.Create(url);
      request.Method = "GET";
      request.BeginGetResponse(result =>
      {
        WebResponse response = request.EndGetResponse(result);

        using (var stream = new StreamReader(response.GetResponseStream()))
        {
        if (callback != null)
        {
          callback(stream.ReadToEnd());
        }
        }
      }, request);
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      new Uri("http://blogs.wankuma.com/masaru/").Get(result => Console.WriteLine(result));

      Thread.Sleep(1000);
    }
  }
}

C#でも匿名メソッドを使って非同期通信(拡張メソッド編)

ネタ元:Silverlightでも匿名メソッドを使って非同期通信 - present

カッとなってやった。今では反省している。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;

namespace ConsoleApplication1
{
  public static class WebHelper
  {
    public static void Get(this string url, Action<string> callback)
    {
      WebRequest request = WebRequest.Create(url);
      request.Method = "GET";
      request.BeginGetResponse(result =>
      {
        WebResponse response = request.EndGetResponse(result);

        using (var stream = new StreamReader(response.GetResponseStream()))
        {
        if (callback != null)
        {
          callback(stream.ReadToEnd());
        }
        }
      }, request);
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      "http://d.hatena.ne.jp/masaru_b_cl/".Get(result => Console.WriteLine(result));

      Thread.Sleep(1000);
    }
  }
}

FizzBuzz>それLINQで>それワンライナーで

なんかまた流行ってるみたいなので。

FizzBuzz - monjudoh’s diary
FizzBuzz - ぐるぐる~

C#

Enumerable.Range(1,100).Select(n=>n%15==0?"FizzBuzz":n%3==0?"Fizz":n%5==0?"Buzz":n.ToString()).ToList().ForEach(Console.WriteLine);

VB

Enumerable.Range(1,100).Select(Function(n)If(n Mod 15=0,"FizzBuzz",If(n Mod 3=0,"Fizz",If(n Mod 5=0,"Buzz",n.ToString())))).ToList().ForEach(AddressOf Console.WriteLine)

C#:131、VB:169 / C# : VB ≒ 1 : 1.3 / つまり、C#ではなくVBを使うだけで、ステップ数が1.3倍になるのだよ! ΩΩ Ω<な、n(ry

http://twitter.com/masaru_b_cl/statuses/4512086548