ブログの説明
ブログの説明2
簡単なプレゼンとかで使用する資料を remark.js を使用して Markdown で作成しているのですが、IE のみスライドが表示されず、ずっと Chrome や Firefox で閲覧してくださいと言ってきました。
しかし、ヘッダーに以下の一行を追加することで IE でも正しく表示されるようになりました。
もっと早く気づくべきだった・・・orz
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;IE=10;IE=11;edge;">
Amazon の広告情報などを取得する Amazon Product Advertising APIを利用するためには、AWS (Amazon Web Services) からアクセスキーを発行する必要があります。
AWS にログインすると、ルートアカウントに対してアクセスキーを発行するのは非推奨で、IAM ユーザーを作成し、個別の IAM ユーザーに対して適切な権限を与えるように言われます。
これについて、少し前までは IAM ユーザーに対して Product Advertising API の権限を付与することができなかったみたいで、ネット上を検索してみても Product Advertising API のアクセスキーはルートアカウントでしか発行できないという記事がたくさん見つかります。
しかし現在では IAM ユーザーに対して Product Advertising API に対する権限を付与できますので、まずは Amazon に言われる通りに IAM ユーザーに対して権限を付与するようにしましょう。
ただし、現時点では Amazon Product Advertising API を利用するには、AdministratorAccessの権限が必要のようです。
これだとせっかく IAM ユーザーを作成してもフルアクセスできてしまうのであまり意味がありません。
IAM ユーザーに Amazon Product Advertising API だけを利用できるようにするには独自にポリシーを作成する必要があるみたいです。
この件について、下記の参考 URL として挙げているサイトの内容がとても参考になりました。
AWS 初心者の私も危うくルート権限を付与するところでした。
日進月歩の IT の世界ではググる際に期間を指定するというのも重要なテクニックですね。
尚、取得したアクセスキーはコード上に直接記述せず、環境変数を使うなどするのが普通のようです。
アクセスキーをハードコーディングしたソースコードを Github などのパブリックなリポジトリに公開してしまい、不正利用された結果 Amazon から莫大な費用を請求されたというのはよく聞く話です。
そうなってしまった場合でも初回は何とか支払いを免除されたケースもあるらしいですが、絶対とは限らないので、自分の身は自分で守る必要があります。
Visual Studio Code を使用して Markdown でドキュメントを作成していたのですが、プレビューしようとすると、以下のエラーメッセージが表示されました。
Visual Studio Code のバージョンは 1.12.2 です。
Running the contributed command:'markdown.showPreviewToSide' failed.
どうやらネットワーク上にあるファイルを編集しているのが原因のようです。
ファイルをローカルにコピーするとプレビューできました。
以前のバージョンではネットワーク上にあるファイルもプレビューできていたのですが、変更されたみたいですね。
私は Android 用のアプリも iOS 用のアプリも作成したことはありませんが、Xamarin を使えば C# でもモバイルアプリが作成できると知り興味があったので試してみました。
とりあえず作成したかったのは Android 用のアプリです。
Visual Studio 2017 Community
[ファイル] > [新規作成] > [プロジェクト] より新しいプロジェクトを作成します。
[インストール済み] > [テンプレート] > [Visual C#] > [Cross-Platform] > [クロスプラットフォームアプリ (Xamarin.Forms またはネイティブ)] を選択します。
以下のような「テンプレートの選択」という画面が出てきました。
UI テクノロジですが、Xamarin.Forms はクロスプラットフォームにUIを定義し、ネイティブはプラットフォームごとに UI を定義するらしいです。
他の項目はよくわかりません。とりあえず全てデフォルトのままで OK を押しました。
続いて以下の画面が表示されますが、こちらも全てデフォルトのままにしました。
以上で Xamarin のプロジェクトが作成されると思います。
この状態でビルドしてデバッグを開始すると、以下の画面が表示されました。
iPhone は持っていないのでとりあえずスルーしました。
しばらく待つと Android のエミュレーターが起動し、その中でアプリケーションが起動します。
しかしめちゃくちゃ重く、まともに使用できないなと思いました。
デバッグを行う際、以下のような画面が表示されたので、軽量なエミュレーターを使用するば改善されるかもしれません。
私は ASP.NET も .NET Core も触ったことありませんが、興味があったので試してみました。
[ファイル] > [新規作成] > [プロジェクト] より新しいプロジェクトを作成します。
[インストール済み] > [テンプレート] > [Visual C#] > [Web] > [ASP.NET Core Web アプリケーション (.NET Core)] を選択します。
これでプロジェクトが作成されました。
とりあえずこの段階で F5 を押してビルドしてみます。
すると、ブラウザに以下の画面が表示されると思います。
上述した通り、私は ASP.NET も .NET Core も初めてのため、この画面がどういう仕組みで動作しているのかさっぱりわかりませんでした。
なので、少し調べてみた結果を書いてみます。
https://codezine.jp/article/detail/9778
まずプログラムのエントリーポイントとなる Main メソッドは Program.cs にあります。
そこを見てみると以下のようなコードになっています。
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup&rt;()
.UseApplicationInsights()
.Build();
host.Run();
}
}
ASP.NET Core ではクロスプラットフォーム対応のためアプリケーション内部に Kestrel という Web サーバーを内包しており、それを起動しているそうです。
しかし、実際には Kestrel 単体では動作させず、 Windows では IIS を、Linux などでは Apache や Nginx などをリバースプロキシサーバーとして使用し、それらを経由して Kestrel にアクセスするようにするみたいです。
上記のデバッグ画面表示時も IIS Express 経由で表示されているみたいです。
さて、上記のコードに .UseStartup<Startup>() という記述があり、これが最初に表示するページを指定しているのだそうです。
ここでは Starup というクラスが指定されており、その実体は Startup.cs というファイルに記述されています。
中身については以下のサイトの解説がわかりやすかったです。
http://blog.shibayan.jp/entry/20160517/1463468762