骨のダイスを転がそう
2010-11-03
_ [SQL] SQL で 8クイーン
ふと思い立って。
Cell |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
に対して
WITH E1 AS ( SELECT E.Cell I FROM eight_queen E ), E2 AS ( SELECT E1.*, E.Cell II FROM eight_queen E,E1 WHERE E1.I <> E.Cell AND E1.I + 1 <> E.Cell AND E1.I - 1 <> E.Cell ), E3 AS ( SELECT E2.*, E.Cell III FROM eight_queen E,E2 WHERE E2.I <> E.Cell AND E2.I + 2 <> E.Cell AND E2.I - 2 <> E.Cell AND E2.II <> E.Cell AND E2.II + 1 <> E.Cell AND E2.II - 1 <> E.Cell ), E4 AS ( SELECT E3.*, E.Cell IV FROM eight_queen E,E3 WHERE E3.I <> E.Cell AND E3.I + 3 <> E.Cell AND E3.I - 3 <> E.Cell AND E3.II <> E.Cell AND E3.II + 2 <> E.Cell AND E3.II - 2 <> E.Cell AND E3.III <> E.Cell AND E3.III + 1 <> E.Cell AND E3.III - 1 <> E.Cell ), E5 AS ( SELECT E4.*, E.Cell V FROM eight_queen E,E4 WHERE E4.I <> E.Cell AND E4.I + 4 <> E.Cell AND E4.I - 4 <> E.Cell AND E4.II <> E.Cell AND E4.II + 3 <> E.Cell AND E4.II - 3 <> E.Cell AND E4.III <> E.Cell AND E4.III + 2 <> E.Cell AND E4.III - 2 <> E.Cell AND E4.IV <> E.Cell AND E4.IV + 1 <> E.Cell AND E4.IV - 1 <> E.Cell ), E6 AS ( SELECT E5.*, E.Cell VI FROM eight_queen E,E5 WHERE E5.I <> E.Cell AND E5.I + 5 <> E.Cell AND E5.I - 5 <> E.Cell AND E5.II <> E.Cell AND E5.II + 4 <> E.Cell AND E5.II - 4 <> E.Cell AND E5.III <> E.Cell AND E5.III + 3 <> E.Cell AND E5.III - 3 <> E.Cell AND E5.IV <> E.Cell AND E5.IV + 2 <> E.Cell AND E5.IV - 2 <> E.Cell AND E5.V <> E.Cell AND E5.V + 1 <> E.Cell AND E5.V - 1 <> E.Cell ), E7 AS ( SELECT E6.*, E.Cell VII FROM eight_queen E,E6 WHERE E6.I <> E.Cell AND E6.I + 6 <> E.Cell AND E6.I - 6 <> E.Cell AND E6.II <> E.Cell AND E6.II + 5 <> E.Cell AND E6.II - 5 <> E.Cell AND E6.III <> E.Cell AND E6.III + 4 <> E.Cell AND E6.III - 4 <> E.Cell AND E6.IV <> E.Cell AND E6.IV + 3 <> E.Cell AND E6.IV - 3 <> E.Cell AND E6.V <> E.Cell AND E6.V + 2 <> E.Cell AND E6.V - 2 <> E.Cell AND E6.VI <> E.Cell AND E6.VI + 1 <> E.Cell AND E6.VI - 1 <> E.Cell ), E8 AS ( SELECT E7.*, E.Cell VIII FROM eight_queen E,E7 WHERE E7.I <> E.Cell AND E7.I + 7 <> E.Cell AND E7.I - 7 <> E.Cell AND E7.II <> E.Cell AND E7.II + 6 <> E.Cell AND E7.II - 6 <> E.Cell AND E7.III <> E.Cell AND E7.III + 5 <> E.Cell AND E7.III - 5 <> E.Cell AND E7.IV <> E.Cell AND E7.IV + 4 <> E.Cell AND E7.IV - 4 <> E.Cell AND E7.V <> E.Cell AND E7.V + 3 <> E.Cell AND E7.V - 3 <> E.Cell AND E7.VI <> E.Cell AND E7.VI + 2 <> E.Cell AND E7.VI - 2 <> E.Cell AND E7.VII <> E.Cell AND E7.VII + 1 <> E.Cell AND E7.VII - 1 <> E.Cell ) SELECT * FROM E8 ORDER BY I,II,III,IV,V,VII,VIII
こんな馬鹿な解じゃなくてもっとスマートな方法がありそうなもんだが
2010-11-08
_ [.Net] ADに接続して、グループの所属を確認
System.DirectoryServices.AccountManagement を参照に加えておいて、using で名前空間をインポート。
using ( PrincipalContext ctx = new PrincipalContext( ContextType.Domain, "HOGE", "OU=FUGA,DC=hoge,DC=or,DC=jp", "hogehoge", "fugafuga") ) { GroupPrincipal g = GroupPrincipal.FindByIdentity(ctx, "admins"); UserPrincipal u = UserPrincipal.FindByIdentity(ctx, @"HOGE\foobar"); if (g != null) { Console.WriteLine(u.IsMemberOf(g).ToString()); foreach (var n in g.Members) { Console.WriteLine(n.DisplayName); } } else { Console.WriteLine("グループが見付かりませんでした。"); } }
2010-11-21
_ [ruby] Hiki 0.8.8.1 で SyntaxHighlighter
備忘録に使っている Hiki で、gakusiさんの insert_header プラグインと kwatchさんの hikidoc_pre プラグインを使って、SyntaxHighliter を使っていたんだけど、バージョンを、0.8.7から、0.8.8.1 に変更したら、ソースコードに色がつかなくなった。
調べてみたら、0.8.7 から、0.8.8.1 になるときに、hikidoc.rb が大幅に書き変わっている。で、このあおりで、 hikidoc_pre プラグインが効かなくなったらしい。
コードを覗いてみたら、自分でなんとかなりそうな雰囲気だったので、手作業で修正した。
最新の hikidoc が単独のライブラリとして開発されていて google-code-prettify に対応していると知ったのは、その後だった。ギャフン。
2010-11-28
_ [C#][ASP.NET] DataSourceControl と CompositeDataboundControl
ASP.NET で開発をしているなら一度は目を通しているであろう、不朽の名エントリ、「なま暖かくて柔らかい、ちょっと触るとプルプル動く」(何か本サイトに繋がらないので、google キャッシュ) に書かれていたサンプルコードをもとに、いろいろテスト。
実は、あそこに書かれているままだとうまいこと動かないので、他の方の言及なども参考にして修正してようやく手元で動くことを確認した。
aspx で、Intellisence が効くのは良いですね。チャンスがあったら仕事でも使えないだろうか。
http://kamiyn.spaces.live.com/blog/cns!5BB0A706A97A84BA!3586.entry
http://kamiyn.spaces.live.com/blog/cns!5BB0A706A97A84BA!3652.entry
http://blogs.wankuma.com/mrt/archive/2007/09/13/96121.aspx
元記事は、サンプルコードのさわりが書かれているだけだった。以下の記事では、DatasourceControl には言及がないけれど、ITemplate 関連の記事はきっちり書かれていて理解の助けになった。