Skip to content

Instantly share code, notes, and snippets.

@aetos382
aetos382 / wpfapm.cs
Last active September 16, 2015 03:40
private void button_Click(object sender, RoutedEventArgs e)
{
// ここは UI スレッドで実行される
Debug.WriteLine("button_Click : {0}", Thread.CurrentThread.ManagedThreadId);
var request = WebRequest.CreateHttp("http://tech.blog.aerie.jp");
request.BeginGetResponse(this.OnGetResponseCompleted, request);
}
private void OnGetResponseCompleted(IAsyncResult result)
private void button_Click(object sender, RoutedEventArgs e)
{
// ここは UI スレッドで実行される
Debug.WriteLine("button_Click : {0}", Thread.CurrentThread.ManagedThreadId);
var client = new WebClient();
client.Encoding = Encoding.UTF8;
client.DownloadStringCompleted += this.OnDownloadStringCompleted;
client.DownloadStringAsync(new Uri("http://tech.blog.aerie.jp"));
}
@aetos382
aetos382 / aspeap.cs
Last active September 16, 2015 03:44
public async Task<ActionResult> Index()
{
// ここはリクエスト スレッドで実行される
Debug.WriteLine("Index : {0}", Thread.CurrentThread.ManagedThreadId);
ThreadPool.QueueUserWorkItem(this.WorkerThread);
var client = new WebClient();
client.Encoding = Encoding.UTF8;
client.DownloadStringCompleted += this.OnDownloadStringCompleted;
Set-StrictMode -Version 2.0
function Get-SqlDataScript {
param(
[Parameter(Mandatory, Position = 0)]
[string] $ServerName,
[Parameter(Mandatory, Position = 1)]
[string] $InstanceName,
using (var doc = SpreadsheetDocument.Create("output.xlsx", SpreadsheetDocumentType.Workbook))
{
/* [1] */ var workbookPart = doc.AddWorkbookPart();
/* [2] */ var workbook = workbookPart.Workbook = new Workbook();
/* [3] */ var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
/* [4] */ worksheetPart.Worksheet = new Worksheet();
var sheets = new Sheets();
/* [5] */ workbook.Append(sheets);
@aetos382
aetos382 / env.ps1
Last active December 9, 2015 11:29
# これは OK
gc Env:HOGE
gc Env:\HOGE
gc Environment::HOGE
# これはダメ
gc Environment::\HOGE
gc Environment::Env:HOGE
gc Environment::Env:\HOGE
function Out-Default {
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline)]
[PSObject] $InputObject,
[Switch] $Transcript)
@aetos382
aetos382 / OutputHistory.ps1
Last active January 29, 2016 10:46
https://gist.github.com/aetos382/6128df251617ac5bea99 が変な風に進化したらこうなった。
$OutputHistoryContext = [PSCustomObject] @{
Enabled = $true
DisabledTemporary = $false
Count = -1
Queue = New-Object 'System.Collections.Queue'
LastOutputVariableName = ''
}
function Out-Default {

最初に言っとくと

2016年の恵方は正確には「南南東」でも「南微東」でもありません

恵方は東洋式の方位で定義されているからです。
敢えて西洋式の方位で言うなら「南微東やや東」。南微東が分かりにくければ「南南東やや南」。

ちなみに西洋式とは、まず東西南北の4方位に割り、それぞれの間を2分割、さらに2分割…として、最終的に32分割したもの。
東洋式は、十干、十二支、八卦を組み合わせて24分割したものです。

@aetos382
aetos382 / VoiceText.ps1
Last active February 6, 2016 14:15
VoiceText API は 401 Unauthorized レスポンスで WWW-Authenticate ヘッダーを返さないので、.NET で使うときは Credentials を使わずに Authorization ヘッダーを自分で組み立ててやらないといけないらしいっす。
<#
.NET の HttpWebRequest は 401 Unauthorized レスポンスの WWW-Authenticate ヘッダーを見て、使用すべき認証方式(Basic、Digest、etc)を判断します。
VoiceText API は WWW-Authenticate ヘッダーを返さないので、HttpWebRequest は使用すべき認証方式を判断できず、エラーになってしまいます。
そのため、Authorization ヘッダーを自分で組み立てて Headers に指定してやらなければなりません。
Github API なんかも同様…
#>
$key = 'xxxxx'
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("${key}:"))