2026年1月17日土曜日

2026年01月16日の記事一覧

(全 11 件)

  1. 「LINEグループに招待して」詐欺急増。社長/上司を装う偽メールに警視庁が警告
  2. あの「Pinterest風」レイアウトをCSSのみで実現する「CSS Grid Lanes」、いよいよ実装段階へ!Safariは実装完了、デバッグツールの提供も開始
  3. Scammers use AI to enhance their family emergency schemes
  4. 「パフォーマンスチューニングのために普段からできること」〜なぜ突然システムが遅くなるのか?ISUCON優勝者が語る計測と推測のリアリティ 〜 - KAKEHASHI Tech Blog
  5. Google、55言語に対応した新しい翻訳モデル「TranslateGemma」を公開
  6. マイナンバーカードでタッチ決済、買い物もOK--実証実験が始動
  7. イヤフォンケーブルの長さ調整をする時に一工夫、コイル巻きの秘訣【吉田伊織のA&V奥の細道】
  8. AIレイオフによる【ITエンジニア失業論】の誤解|片山良平@paiza会長
  9. 標準ライブラリーが提供する数学関数はどのくらい正確か、あるいはどの程度環境依存するのか
  10. Decompiling the New C# 14 field Keyword
  11. LINEグループ作成を要求されるCEO詐欺メールについてまとめてみた - piyolog


from なるほどですね https://dailyfeed.azurewebsites.net/api/takepara-out/20260116
via IFTTT

2015年4月13日月曜日

dotnetConf2015 Japan

https://github.com/takepara/MvcVpl


↑こちらにいろいろ置いときました。

参加してくださった方々の温かい対応に感謝感謝です。

2014年5月22日木曜日

Amazon RDS for SQLServerはミラーリングだった

ディスクのスナップショットでしょー。データ欠落することもあるんだろーなー。なんて適当なこと言ってマジすいません。

インスタンス立てて確認しました。マジ、ミラーリングでした。調子乗ってすいませんでした。データベース作ってしばらくすると、見慣れたあの表示。

rds1

作りたては、まだミラーリング準備中なんだろね。確認してないけど。

テーブル作ってテストデータ100万レコード作成中にいきなり!

rds2

この見慣れた「プリンシパル、同期済み」が出てきた。

rds3

あー。ちゃんとミラーリングやー。相方のサーバー名も違うやつだし、ウィットネスもいた。

なのに接続先は固定でfailover partner指定とかないんだぜ!そこはエンドポイントが受け付けて、そこから先にうまいこと繋げてるんだろね。

ここから先はビールでマッチョなお方、おねげーします。

2014年5月21日水曜日

URLRewriteでほとんどすべてCDNに向ける

HTMLの書き換えルールをURLRewriteでセットすれば、環境設定だけでCDN向けたりできるよー、っていうのを書いたのはいつの話だろう...。

URLRewrite+CloudFrontでパフォーマンスを取り戻す http://takepara.blogspot.jp/2011/12/urlrewritecloudfront.html

いまや、猫も杓子もCDN使うじゃないですか。
CloudFront/KeyCDNもHTTP Methodうまいこと処理できるようになってるから、オリジンにガッツリかぶせて(サイトの公開URLをCDNに向けてすべてのリクエストをCF経由オリジン行き)しまうっていうアプローチもありですし。

とはいえ、トラフィックあれだしー、証明書もなんだしー、お金かかるっしーなっしー、だとやっぱりURLRewriteですよね。
でもね、前のエントリの方法だと、SRC属性がちゃんと"/"で始まってることを条件にしてたんです。そうは問屋が卸さない書き方をすることもあるですよね。ルール厳しいと比較的低コストで最適化できるからいいのにー、という理屈は通りませんよ。

なので、こうなったらIMG/SCRIPT/LINKガッツリ全部書き換えてやる!でも、絶対参照やスキーム相対でホスト名込のものはそのまま残す。

前回の方法はSRC属性(ターゲットPATH)のみのパターンマッチでやってたけど、今回はリクエストURLも参照することでより広範囲に適用。もちろんパターンマッチはするんだけど、それはホスト名指定を救いたいから、という意味で、特定パスのマッチとはちょっとアプローチが違います。

考えられる組み合わせとして、リクエストURLが"/"で終わってるか、終わってないか。ターゲットPATHが"/"で始まってるか、始まってないか。の、組み合わせで4パターン。だけどターゲットPATHが"/"で始まってる絶対パス指定はリクエストURLにかかわらず、絶対パスなので実質3パターン。

  • リクエストURLが"/"で終わってない
    http://localhost/rewrite
  • リクエストURLが"/"で終わってる
    http://localhost/rewrite/
  1. ターゲットPATHが"/"で始まってない
      <img src="images/logo.gif" />
      <img src="./images/logo.gif" />
      <img src="../rewrite/images/logo.gif" />
  2. ターゲットPATHが"/"で始まってる
      <img src="/rewrite/images/logo.gif" />
  3. 例外的にhttp/httpsで始まってるものと、"//"のスキーム相対で始まってるもの
      <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
      <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.min.js"></script>

なので、3パターンの組み合わせに対して、Rewriteするルールを作成すれば、ターゲットPATHそのものに対するパターンマッチを行う必要がなくなる(特定のパスを指してるものだけをCDNに向けるようなRewriteをしない)ので、コーダーの書き方に依存したRewriteにならないはず。

これらのコンテンツがRewriteで正しく表示されるように考えたルールが↓これ(CDNのホスト名はlocalhost扱い)。

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <rewrite>
      <outboundRules>
        <rule name="HttpCdnPathAbsolute" preCondition="html" enabled="true">
          <match filterByTags="Img, Link, Script" pattern="^/[^/]+(.*)$" />
          <action type="Rewrite" value="//localhost{R:0}" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
          </conditions>
        </rule>
        <rule name="HttpCdnPathRelativeSlashEnd" preCondition="html" enabled="true">
          <match filterByTags="Img, Link, Script" pattern="^((?!/.*)(?!//.*)(?!http.*)(?!https.*))(.*)$" />
          <action type="Rewrite" value="//localhost{PATH_INFO}{R:0}" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
            <add input="{REQUEST_URI}" pattern="/$" />
          </conditions>
        </rule>
        <rule name="HttpCdnPathRelativeUnslashEnd" preCondition="html" enabled="true">
          <match filterByTags="Img, Link, Script" pattern="^((?!/.*)(?!//.*)(?!http.*)(?!https.*))(.*)$" />
          <action type="Rewrite" value="//localhost{PATH_INFO}/../{R:0}" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
            <add input="{REQUEST_URI}" pattern="[^/]$" />
          </conditions>
        </rule>
        <preConditions>
          <preCondition name="html">
              <add input="{RESPONSE_CONTENT_TYPE}" pattern="text/html" />
              <add input="{RESPONSE_STATUS}" pattern="^[45].*$" negate="true" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
  </system.webServer>
</configuration>

↑これはHTTPの時だけCDNにっていう設定なのでconditionsにHTTPSが”off”って入ってる。HTTPSも同じホストに書き換えていいなら、そこ削除で。HTTPSの時は違うホスト名にしたい場合、同じ組み合わせをもういっちょHTTPS用に登録してね。

 

何もしなかった時のレンダリング結果

<!DOCTYPE  html>
<html>
<head>
  <meta charset="utf-8">
  <title>Rewrite Test</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="./jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="../rewrite/jquery-1.10.1.min.js"></script>
</head>
<body>
  <img src="/rewrite/images/logo.gif" /><br />
  <img src="images/logo.gif" /><br />
  <img src="./images/logo.gif" /><br />
  <img src="../rewrite/images/logo.gif" /><br />
</body>
</html>

フォルダ構成としては

/rewrite
/rewrite/index.cshtml
/rewrite/images
/rewrite/images/logo.gif

これをイメージ。

 

リクエストURLが"/"で終わってない時のレンダリング結果

<!DOCTYPE  html>
<html>
<head>
  <meta charset="utf-8">
  <title>Rewrite Test</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/../jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/.././jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/../../rewrite/jquery-1.10.1.min.js"></script>
</head>
<body>
  <img src="//localhost/rewrite/images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/../images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/.././images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/../../rewrite/images/logo.gif" /><br />
</body>
</html>

 

リクエストURLが"/"で終わった時のレンダリング結果

<!DOCTYPE  html>
<html>
<head>
  <meta charset="utf-8">
  <title>Rewrite Test</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/./jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/../rewrite/jquery-1.10.1.min.js"></script>
</head>
<body>
  <img src="//localhost/rewrite/images/logo.gif" /><br />
  <img src="//localhost/rewrite/images/logo.gif" /><br />
  <img src="//localhost/rewrite/./images/logo.gif" /><br />
  <img src="//localhost/rewrite/../rewrite/images/logo.gif" /><br />
</body>
</html>

 

リクエストURLが"http://localhost/rewrite/index.cshtml/"となってる時のレンダリング結果

<!DOCTYPE  html>
<html>
<head>
  <meta charset="utf-8">
  <title>Rewrite Test</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/./jquery-1.10.1.min.js"></script>
  <script type="text/javascript" src="//localhost/rewrite/index.cshtml/../rewrite/jquery-1.10.1.min.js"></script>
</head>
<body>
  <img src="//localhost/rewrite/images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/./images/logo.gif" /><br />
  <img src="//localhost/rewrite/index.cshtml/../rewrite/images/logo.gif" /><br />
</body>
</html>

明らかに参照パスがおかしい(階層が一個浅い)んだけど、この場合も救いたいとなるとかなりヘビー。なんでかというと、階層構造を無視してる指定になってるから。 現状ではこういうリクエスト時に末尾の"/"を削除したURL(canonical url)にリダイレクトするようにすればうまくいくぜ!たぶん。きっと。

2014年5月14日水曜日

KRuntimeとかMVCとかちょっと触ってみた

Introducing ASP.NET vNext - Scott Hanselman

もうみんな、ASP.NET vNEXTっていうか、.NETでの開発方法の変更が気になって仕方ないすね。
ここまで変えてくるのかよ!っていうくらい感動的。.NET初めて出てきた時くらいのワクワクですねー。

とりあえず、KVMつかってみよー。

https://github.com/aspnet/home

に書かれてること素直にやるだけす。

cloneしてkvmsetup。
PowerShellでもCmdでも。それぞれ別々にね。
kvm install なんちゃらかんちゃらで .kreにランタイムをごっそり。MyGet。

で、Samples/ConsoleAppでkvm restore。これで、一個上のpackagesに色々ごっそり。MyGet。

あとはもうk run。


すげー!Hello World。binがないー!!し、Tempにcscなら吐き出すはずのものがないー!
あ、SET KRE_TRACE=1ね。
klr.exeさんよー!中でRoslynだねー。

KRuntime structure
https://github.com/aspnet/Home/wiki/KRuntime-structure

次。HelloWeb。k runじゃなくてk web。



StaticFilesモジュール。いや、StaticFileMiddleware。これもpackagesにMicrosoft.AspNet.StaticFiles.dllとしてMyGet。
Task Invoke(HttpContext context)なんだけど、そうでしたっけ?
Task Invoke(IDictionary environment)じゃないのね。いい感じ!は!そこは一旦置いとこう。楽しみにとっとくー。

次。HelloMvc。
同じですね。k webですね。



うほ。うごきよる。しかもRazorリポジトリにごっそり入ってるから、移行中なんだね。すげーなー。
Microsoft.AspNet.Mvc.Razorのソースみたら、ICompilationServiceの実装がRoslynCompirationService。BuildManager使わないんじゃん!kprojって拡張子気になるけどおいとこ。やべー。興奮してきた。Razorはまだcshtmlしか実装してないみたい。vbhtmlのコードがなかった。
Microsoft.AspNet.Mvcがどこまで移行してるのか、試しに、HomeControllerとIndex.cshtmlをいじってみたよ。

Controllers/HomeController.cs


Views/Home/Index.cshtml

ModelBindするかなー。って程度の確認ですけどね。



するがな!
すごいがな!
ブルブルしてきた。超ブルブルしてきたSystem.Web完全に分離できてるー。かっけー。そんなの当分先になると思ってたのにー。MVC6でも参照なくすんかいー。

ちょっと、こう、やべし。超楽しい。どこかのLINQの人じゃないけど、超楽しい。
Microsoft.AspNetの中身、いろいろみていこう。OWINよく知らないけど、これだけ楽しいなら、もう最高ス。
まだIISで動かしてない(KLR上で動かすだけだからビルドじゃなくて実行しただけ)から、Heliosだとどんなbinになるのか気になるしー。App_CodeとかASP.NETでのシステムフォルダの扱い(app_globalresourcesとかさー)がどこまで行けるようになるのかなー。たまらん!

ん?
the assemblies never exist on the disk.
んん!?
・No-compile developer experience
って書いてるね...。まじか。ビビった。

#244 ファビュラスサウンド

最近、ヘリが家の上を飛んでいてすごく大きな音で、なんなら朝6時前くらいから飛んでその音で目が覚めるレベルなんですが、収録中にその話をして、いやー、米軍か?なんて言ってたんですが、すいません。山火事の消化活動のために自衛隊が水を運ぶヘリでした。もう、ほんと、すいませんでした。一生懸...