http://eventdots.jp/event/592870
「WPFからみるMVVM」楽しみです。
]]>あとFriendlyを使って、プロダクトでは絶対やってはいけないような事を率先してやってます。
テストプログラミングって自由だな〜!Friendly最高だな〜!素敵すぎますね!
あと、最近ようやくAWSやAzureといったクラウド関連に触手が伸ばせるようになりました。
サーバレスアーキテクチャ!なんだろそれ!うまいだろきっと!
AWS LambdaやAzure Functionおぼえよ!って鼻息荒くしてます!面白そうだ〜。
]]>
評価:
市川 忠男 森北出版 ¥ 3,672 (2005-03) コメント:4章がリレーショナルデータベースな内容になってます。ページ数があまりありませんが、ポイントがものすごく的確にまとまっていて、感動します。 |
評価:
増永 良文 サイエンス社 ¥ 2,808 (2003-03) コメント:特にデータベース管理者の心意気とか余計な主張とかはなく、純粋にリーレーショナルデータベースに関して論理的な展開で紹介されている良本だと思いました。教え方がうまいと思うし、論理的だと思う。すばらしいです。 |
評価:
奥野 幹也 技術評論社 ¥ 3,110 (2015-03-10) コメント:難しい |
日記です。
SQLがわからん。
DBがわからん。
DBAコマンド全く覚えられない。
という状態のまま、10年くらいPGやってます。あな恥ずかしです。
チューニングがどうのこうのと言われましても・・・。赤面です。
まあ既に死亡確定みたいな状態ではあるのですが、
生き恥さらして、ちへどをはきながら、底辺を這いつくばって苦手克服ですよ。
というわけで、買ってみました。読んでみました。丁度一ヶ月前くらい?
「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)」
すみません。手元に今ないので不正確なのですが、
2章だったか3章だったか、数式が出てきまして、
これがサッパリでして、見たことある記号に見えるけど、
なんだっけ?調べてみると、自分が知ってる記号と何か違ったり
いよいよ混乱の谷底へとおこちちゃいました。
今回の自分は、そこで終わりません。
じゃー数学勉強すればいいじゃない!?
と、方向転換
「ろんりと集合」
命題論理の演算
反射法則、交換法則、ド・モルガンなどの法則
述語論理
集合
集合の法則と論理の法則の対応
写像
などなど一度は勉強したことがあるようなないような内容でしたが
とてもわかりやすい本だったので、わかったような実感を得ることができました。
ただ、「理論から学ぶデータベース実践入門」を読むための数学の知識は
もう少し高度なものが要求されているような気がします。
どうしたら良いんだろう・・・。
ちなみに記号は色々と流派があるようでして、
「記号論理入門 (日評数学選書)」
この本の付録Aを読むと、ある程度の対応付けが可能になるかな・・・。
データベースの論理は
データベース実践講義 ―エンジニアのためのリレーショナル理論 (THEORY/IN/PRACTICE)
プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに
あたりに詳しく書いているかもしれない・・・読めてないからわからない。
評価:
Alexander A. Stepanov,Daniel E. Rose 翔泳社 ¥ 2,808 (2015-05-19) |
問1 以下、のGOFデザインパターンを簡単に説明せよ。
Abstract Factory
Adapter
Bridge
Builder
Chain of Responsibility
Command
Composite
Decorator
Facade
Factory Method
Flyweight
Interpreter
Iterator
Mediator
Memento
Observer
Prototype
Proxy
Singleton
State
Strategy
Template Method
Visitor
回答
Abstract Factory
具体的な生成は具象クラスが提供するが、利用者は共通のインスタンス生成を保証するパターン。
Adapter
異なる型同士を中継するアダプターを提供するパターン。
Bridge
特定のロジックだけを抜き出し、再利用するパターン。
Builder
複数の型が関連する複雑なインスタンス生成するパターン。
Chain of Responsibility
状態をリポジトリに保存・取得するパターン。
Command
複数のロジックを共通の実行形式にするパターン。
Composite
再帰的な構造をとるパターン。
Decorator
インスタンスを特定の状態にするパターン。
Facade
システムの呼び出し口を一つにするパターン。
Factory Method
・・・。いつも忘れる。
Flyweight
なんだっけ(笑)
Interpreter
こんなのあったけ(笑)
Iterator
コレクションの列挙する構造を提供するパターン。
Mediator
こんなのあったけ(笑)
Memento
思い出せない・・・。
Observer
状態の変更を通知する構造を持つパターン。
Prototype
うん・・・。
Proxy
Adapterとほぼ同じ・・・提供する側かされる側が用意するのかで名前が変わったような。
Singleton
インスタンスが一つであることを保証するパターン。
State
あれ?StateとStrategyの片方しか思い出せない。
Strategy
状態により振る舞いを変えるパターン。
Template Method
特定の振る舞いを抽象化する構造を持つパターン。
Visitor
ロジックと状態を分離する構造を持つパターン。
正解(Wikiを参考にしました。http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2))
Abstract Factory
関連する一連のインスタンスを状況に応じて適切に生成する方法を提供する。
Adapter
元々関連性のない2つのクラスを接続するクラスを作る。
Bridge
クラスなどの実装と、呼出し側の間の橋渡しをするクラスを用意し、実装を隠蔽する。
Builder
複合化されたインスタンスの生成過程を隠蔽する。
Chain of Responsibility
イベントの送受信を行う複数のオブジェクトを鎖状につなぎ、それらの間をイベントが渡されてゆくようにする。
Command
複数の異なる操作について、それぞれに対応するオブジェクトを用意し、オブジェクトを切り替えることで操作の切替えを実現する。
Composite
再帰的な構造を表現する。
Decorator
あるインスタンスに対し、動的に付加機能を追加する。Filterとも呼ばれる。
Facade
複数のサブシステムの窓口となる共通のインタフェースを提供する。
Factory Method
実際に生成されるインスタンスに依存しない、インスタンスの生成方法を提供する。
Flyweight
多数のインスタンスを共有し、インスタンスの構築のための負荷を減らす。
Interpreter
構文解析のために、文法規則を反映するクラス構造を作る。
Iterator
複数の要素を内包するオブジェクトのすべての要素に順にアクセスする方法を提供する。反復子。
Mediator
オブジェクト間の相互作用を仲介するオブジェクトを定義し、オブジェクト間の結合度を低くする。
Memento
データ構造に対する一連の操作のそれぞれを記録しておき、以前の状態の復帰または操作の再現が行えるようにする。
Observer (出版-購読型モデル)
インスタンスの変化を他のインスタンスから監視できるようにする。Listenerとも呼ばれる。
Prototype
同様のインスタンスを生成するために、原型のインスタンスを複製する。
Proxy
共通のインタフェースをもつインスタンスを内包し、利用者からのアクセスを代理する。Wrapperとも呼ばれる。
Singleton
あるクラスについて、インスタンスが単一であることを保証する。
State
オブジェクトの状態を変化させることで、処理内容を変えられるようにする。
Strategy
データ構造に対して適用する一連のアルゴリズムをカプセル化し、アルゴリズムの切替えを容易にする。
Template Method
あるアルゴリズムの途中経過で必要な処理を抽象メソッドに委ね、その実装を変えることで処理が変えられるようにする。
Visitor
データ構造を保持するクラスと、それに対して処理を行うクラスを分離する。
コメント
う〜ん。大分、間違えてます。うん、ブログに載せるの恥ずかしいけど、これから再勉強して、マスターするどー。
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace Art55.TfsApi20140508_001
{
class Program
{
static void Main(string[] args)
{
var teamCollectionUri = new Uri(@"https://XXXXXXXX.visualstudio.com/DefaultCollection");
var teamCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(teamCollectionUri);
// 前に認証されていない場合は Team Foundation Server につながりを認証します。
teamCollection.EnsureAuthenticated();
var versionControlService = teamCollection.GetService<VersionControlServer>();
const string localProjectPath = @"c:/source/test";
Workspace localWorkspace = versionControlService.TryGetWorkspace(localProjectPath);
if (localWorkspace != null)
{
// すでに存在する場合は、削除する。
localWorkspace.Delete();
}
string workspaceName = string.Format("{0}_{1}", Environment.MachineName, DateTime.Now.ToString("yyyyMMddHHmmssms"));
const string serverProjectPath = @"$/hoge/";
localWorkspace = versionControlService
.CreateWorkspace(
workspaceName,
versionControlService.AuthorizedUser,
string.Empty,
new[] { new WorkingFolder(serverProjectPath, localProjectPath) });
localWorkspace.Get();
localWorkspace.Delete();
}
}
}
ちょっとだけ説明。
var teamCollectionUri = new Uri(@"https://XXXXXXXX.visualstudio.com/DefaultCollection");
var teamCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(teamCollectionUri);
自分のvisual Stuido OnlineのURI(つまりURLです。)とチームコレクションを指定します。URIだけ指定して、後かチームコレクションにアクセスする2段構えの方法もあります。今回は、チームコレクションを直接指定しました。
const string localProjectPath = @"c:/source/test";
ローカルのワークスペースのパスを指定します。c:/source/testというパスを指定しています。一時的に利用するなら、時刻などを指定したフォルダを作成してもいいかもしれません。サンプルコードなので適当ですが、実際に利用しているWorkSpaceのパスなどを指定すると、ギャーってなるので注意してください。
string workspaceName = string.Format("{0}_{1}", Environment.MachineName, DateTime.Now.ToString("yyyyMMddHHmmssms"));
ワークスペース名です。今回は、既存のワークスペースは利用せず一時的に別のワークスペースを作成し、そこにソースを落としたいので、既存のワークスペースに被らないような名前を指定しました。ワークスペースが被らないことも注意する必要がありますが、その前に指定したlocalProjectPath も既存のワークスペースですでに指定されていたりするとエラーとなるので注意が必要です。
localWorkspace = versionControlService
.CreateWorkspace(
workspaceName,
versionControlService.AuthorizedUser,
string.Empty,
new[] { new WorkingFolder(serverProjectPath, localProjectPath) });
ワークスペースを作成します。既存のワークスペースを取得する場合は、GetWorkspaceメソッドまたあTryGetWorkspaceメソッドを利用します。
const string serverProjectPath = @"$/hoge/";
Visaul Studio Onlineの取得したいソースのパスを指定します。
localWorkspace.Get();
実際に、ソースを取得します。
localWorkspace.Delete();
一時的に利用したかっただけなのでワークスペースを削除します。削除し忘れるとVisual Studio 2013等から削除しなければなりません。
今回は、ユーザ名、ドメイン、パスワードを指定していませんが、これはVisual Studio 2013からVisual Stuido Onlineへ接続している為と思われます。未接続の場合は、認証する処理も必要です。
まとめ
1.Visual Studio Onlineは、ローカル上のTFSと同様にTFS APIが利用できる。
2.TFS APIは、以下のdllを参照することで利用できる。
・Microsoft.TeamFoundation.Client.dll
・Microsoft.TeamFoundation.VersionControl.Client.dll
3.TFS APIを利用することで、Visual Studio 2013からソース管理するよりも高度な操作が可能である。
------------------------------------------
【キーボード】6年前のRealForceを復活させることはできる!?その3
http://pro.art55.jp/?eid=1304218
【キーボード】6年前のRealForceを復活させることはできる!?その1
http://pro.art55.jp/?eid=1304216
【キーボード】6年前のRealForceを復活させることはできる!?その2
http://pro.art55.jp/?eid=1304217
------------------------------------------
評価:
--- アイリスオーヤマ(IRIS) ¥ 554 (2008-12-10) |
開封する。
机に設置する。
キーボードが滑らないか押してみる。
滑らない。
キーボードがガタつかないか右上を押してみる。
ガタガタ
あれ?
あー爪が中途半端になってるんだな。
爪を見てみるとたたまれている。
うん?
もしかして、爪を出した状態でがたつかないようにしたのかな?
なんて思ってみる。
爪を出してみて
がたつきチェック。
ガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタガタ
おおおおおお!
がたつくぞ!
てか前の10倍くらいガタつくぞ!
その後、ガタガタ震えながら営業さんの携帯に電話しました。
電話した結果新品を送りますって事になりました。
どーなっとんじゃ!!!
ちなみにどれくらい隙間が空いてたかというと、
一円玉が差し込めるくらい隙間空いてましたわ。
報告によると、キーボード内部の鉄板の爪の部分が反り返っていた為
ガタつきがあったという事でしたが、
もしかして、マジで力任せにねじったのかな?
金属って一度ゆがむともとには戻らないよ?素人なん?
力任せにねじると、数日間は金属が動くよ。うん。素人なん?まじで!?
東プレの中に人にキーボードクラッシャーがいるとは思わなかったよ。
----------------------------------------
(追記)
そういえば、RealForceを注文したあと、待ち焦がれすぎて、いろいろしてべていた時期に一つ発見したことを思い出しました。たしかゆがんでいるって内容が2チャンネルのまとめブログ(だとおもう)に掲載されていて、内容をおっていくと筐体をねじると治るみたいな指摘を受け、実際に不具合を訴えてた人が試したら治ったみたいな投稿があったことを思い出しました。もしかして、ねじると治るのかな?って思うんですけど、交換してくれると約束してくれたので、まあ、やめておきます。はい。てか、中の人、まさかねじっただけ?ねじると時間がたつと、またずれるよね・・・なんども微調整が必要だよね・・・めんどくさー。
----------------------------------------
(追記)
東プレさんから連絡がありました。現在、在庫がなく、次回の製造が完成次第交換していただけるとのことでした。それからガタつくキーボードをその間つかわなければならないので対応策も教えてもらいました。
「ちょっと乱暴ですが、KBを手に持った状態で
左側を下方向、右側を上方向にねじってください」
※これやって壊れても、私は責任を負いかねますので、
同じ症状で悩んでる方は素直に東プレさんに相談されることをお勧めします。