2019/11/27 11:00

GitHub Actions が正式リリースされたので、当ブログの自動ビルドシステムを AWS CodePipeline + AWS CodeBuild から GitHub Actions へ移行してみました。 GitHub Actions とは GitHub Actions は、継続的インテグレーション (CI) を GitHub で直接行えるシステムです。今までは GitHub の外部に Jenkins を立てたり CircleCI などのサービスを用いて CI を回していましたが、 GitHub Actions のお陰で外部サービスを利用せずとも CI を回すことができるようになりました。 この GitHub Actions はパブリックリポジトリなら無料です。プライベートリポジトリでは Free プランなら月あたり 200…

2019/08/07 20:00

せっかく AWS を使い始めたので、今まで VPS で運用していた WordPress ブログを AWS 上に移行し、 GatsbyJS でサーバーレス化してみました。 発端 WordPress は広く使われているブログソフトウェアであり、簡単に使うことができるという利点がありますが、使っていくうちに以下のようなことを思うようになりました。 ページが表示されるまで時間がかかる Jetpack 遅すぎ 不正なログイン試行多くね? 個人ブログだしもっとスリムでいいのでは? つまり、パフォーマンスとセキュリティの面で思うことがあったという訳です。 セキュリティに関しては、特に気をつけなければならないなと常日頃から考えています。脆弱性突かれてサーバーいじられるようになったら終わりですからね。 へのアクセスがとても多いのを見てどうしたものかと思いました。 静的サイトジェネレータ GatsbyJS…

2019/02/24 22:00

自宅の Arch Linux 環境を一新したくなったので、再インストールがてら手順を記事にしてみました。どなたかの参考になれば幸いです。 Arch Linux とは Arch Linux は、x86 _ 64 向けに独自に開発された、あらゆる用途に対応できる万能 GNU/Linux ディストリビューションです。その開発は、シンプリシティ、ミニマリズム、およびコードの簡潔性に焦点を当てています。Arch は最小限の基本システムの状態でインストールされ、ユーザー自身が、ユーザーの理想とする環境のために必要なものだけをインストールして構築することができます。 Arch Linux - ArchWiki Arch Linux はこんな人におすすめな Linux です。 常に最新バージョンを使いたい 余計なソフトウェアは入れたくない もっと Unix 系 OS の操作に慣れたい でも Gentoo…

2018/12/08 00:00

この記事は TCU-CTRL場外乱闘 Advent Calendar 2018 8日目の記事です。 また、本日 12/8 は著者りぶの誕生日です。プレゼントお待ちしています。 7日目担当キンジーの記事はこちら。 「キンジー」の由来がよく分かる記事。昔は遊戯王のアニメをリアルタイムで観てました。 この記事は以下のツイートの詳細を記したものです。 免責事項 この記事では、本来End-to-Endで暗号化されるHTTPS通信の内容を閲覧したり編集するといったことを紹介しています。HTTPS通信の内容を閲覧したり編集することによって生じた損害等の一切の責任を負いかねますので、ご了承ください。 iOS用ニコニコ動画プレイヤー iOS…

2017/12/08 00:00

この記事は TCU-CTRL場外乱闘 Advent Calendar 2017 8日目の記事です。 また、本日 12/8 は著者りぶの誕生日です。プレゼントお待ちしています。 ごあいさつ こんばんは。挨拶は人間とコミュニケーションをとる上で重要です。 Wikipedia の「挨拶」の記事にはこう記されています。 挨拶(あいさつ、儐とも書く)は、新たに顔を合わせた際や別れ際に行われる、礼儀として行われる定型的な言葉や動作のことを指す。また、式典などで儀礼的に述べる言葉をいうこともある。また、日常生活には欠かせない人と人とが気持ちよく生活できる言葉でもある。 挨拶 - Wikipedia しかし、 Discord…

2016/06/26 22:52

今回はQiの使いやすさを向上するものを紹介します。 構造体を として扱えるようにする パーサに 演算子を適用すると、属性が になることは前回説明しました。でも だと後々ゴチャゴチャしすぎるので、 みたいなのに突っ込めたらとても分かりやすくなってGoodです。Boost.Fusionを使うと出来ます。 マクロには、最初に構造体、それ以降にメンバ名を指定します。これを使うと、Qiが構造体を とみなして扱ってくれます(正確には「構造体をFusionシーケンスに適応させる」が正しい。詳しく知りたい人はググってください)。 こんな風に結果の変数にアクセスできます。メンバには当然名前がついているのでパースした後の処理がとてもやりやすくなります。 余談: 本当は、属性 はFusionコンテナである のことです。前回 使用時にインクルードした ファイルは、Fusion…

2016/06/16 23:00

今回から、詳しい文法の定義方法を紹介します。 EBNF記法 コンピュータ言語の定義に使われるBNF(Backus-Naur form)を拡張したEBNF(Extended BNF)に近い書き方で文法を定義できるのがQiの特徴です。 例えば、EBNFで自然数(先頭が'0'でない1以上の数字列)を定義すると、 といった感じになります(詳しくはググってください)。Qiではほぼこのまま(演算子が違ったりはするけど)文法を定義できます。 おかげでC…

2016/06/16 09:35

Boost.Spirit.Qi(以下Qi)はC++用の構文解析ライブラリです。テンプレートや演算子オーバーロードを最大限に駆使しており、C++内で文法定義を完結させることができます。 その分コンパイルがとても遅いです。 準備 QiはBoostの中に含まれています。Qiはビルド不要なライブラリなのでVisual Studioを使用している場合はNuGet経由でインストールすることができます。 ヘッダファイルをインクルードして準備は完了です。 などはお好みで。 基本 Qiでは文法を定義して、文字列をパースして構造体などに落としこむという感じで構文解析を行います。まずは例として整数が書かれた文字列をパースしてint型の値に変換してみましょう。 が実際に文字列をパースする関数です。最初の…

2015/12/04 00:57

大体こんな感じで安定してきたので書き残し。 以前まではExpression Tree使ってリファクタリングが効くようにしていたRaisePropertyChangedのオーバーロードがあったりもしたけど、nameof演算子が使えるようになってからは全く使わなくなったので省略。 実際の使い方は以下の通り。