EmacsでC言語モードのタブ幅を設定する

苦しんだのでメモ。 TL;DL c-basic-offsetの設定も試してみるとよい。 経緯 最近Emacsを使い始めようといろいろ環境構築している。 TAB入力で半角スペース4文字幅でインデントをいい感じにしたい、tab-widthを4に設定してもきかない。 結論として次のようにi…

AWS CloudFormationについて

AWS SAAの勉強をしています。 AWS CloudFormationについてわからなかったので調べたことをメモ 概要 AWSでインフラを構成する場合は、EC2を作って、AutoScalingグループを構成してELBをアタッチして……のように、AWS マネジメントコンソール?上でどのような…

AWS Directory Serviceについて

SAAの勉強をしています。 AWS Directory Serviceについて調べたのでメモ aws.amazon.com 概要 MicrosoftのActive Directory Domain Service(AD DS)の仕組みをAWSで利用できるようにしたもの。 AD DSは、オンプレミスで動作するディレクトリサービスのこと…

Amazon DynamoDBについて

AWS SAAの勉強をしています。 Amazon DynamoDBについて調べたことをメモ。 aws.amazon.com Amazon DynamoDBの概要 フルマネージド、サーバーレスのkey-value NoSQLデータベース。 NoSQLなので、SQLは使えない。セッションデータやユーザデータの保存に向いて…

Amazon Kinesis Data StreamsとAmazon Kinesis Data Firehoseの違い

AWS SAAの勉強をしています。 問題を解いていると、Amazon Kinesis Data StreamsとAmazon Kinesis Data Firehoseがよく出てくるのでメモ。 Amazon Kinesis とは? クリックデータのような大量のデータのストリーミングをうまいこと処理するためのサービスっ…

AWS AppSyncについて

AWS SAAの勉強をしています。 AppSyncがよくわからなかったので調べたことメモ。 AppSyncとは? まずはAWS公式の概要を見てみます。 サーバーレスな GraphQL と Pub/Sub API を使用してアプリケーション開発を加速する AWS AppSync は、サーバーレスの Graph…

2022年の振り返り

2022年の振り返りをします。 作ったもの、触ったもの コンピュータシステムの理論と実装をやった。HDLから初めて、NANDの組み合わせでCPUを作り、アセンブラ、仮想マシン、コンパイラを作っていくというもの。とりあえず動くコンパイラっぽいものができて非…

Jackコンパイラ作成(途中)

コンピュータシステムの理論と実装を続けてます。 今はJack言語のコンパイルを作成中で、構文解析を組んでいるところ。 ATSを作らずに、解析したすぐ側から構造をXMLに出力してたんだけど、それだと先読みが必要なノードでうまくいかないとわかって調整中。 …

Go言語に少し触れた

昨日、A Tour of Goを少しみてみた。 パラパラとめくりながらfor文あたりまで読んでみたけど、なかなか良いと思った。コンパイル言語っぽいし、身につけるのもありかな。 個人的に良いなと思った部分。 ・型宣言 識別子、型の順番に定義するところ。たしかに…

コンピュータシステムの理論と実装(3)

昨日はVMのStaticsTestを通すことができた。 StaticsTestはStaticセグメントへのリードライトのテストで、staticセグメントのスコープがちゃんと処理できているか?のテストだと思う。 初め、処理が全部終了しても、staticセグメントからスタックにとってき…

コンピュータシステムの理論と実装(1)

昨日はプロジェクト8のFibonacciFunctionのテストが通った。2日くらいかかってしまった。 VMのeq、lt、gt命令の実装がバグってて、正しいアセンブラをはけてなかった。 次はstatic変数を使うテストみたい。何も考えずにテスト通してみたら通らなかった。また…

ファイル読み切ったあとのstd::ifstream::seekg()がうまく動かない

少し前に悩んでました。 ファイル終端まで読み切るとeofフラグが立ってしまうから、そのままだとシークできないみたいです。 一旦ifstream::clear()をしてフラグを落としてやればシークできるようになりました。 どうもファイル終端まで一度読んでしまうと、…

Makefile書き方メモ

Makefileを書く上での個人的なメモ書きをしておきます。だんだん書いていきます。 以下の例では、空白をスペースで書いていますが、 Makefileはスペースではなくtab文字でないとかけないはずなので、 コピペしたい人は気をつけてください。 (写経するか、コ…

「低レイヤを知りたい人のためのCコンパイラ作成入門」の進捗

低レイヤを知りたい人のためのCコンパイラ作成入門をまたぼちぼちやっていました。 github.com 前回から結構色々実装しました。 関数呼び出し 関数定義(6引数まで) *演算子と&演算子 変数宣言 ポインタの計算 sizeof演算子 配列 []演算子 難しかったところ…

「低レイヤを知りたい人のためのCコンパイラ入門」の進捗報告(関数定義)

今週末は久しぶりに低レイヤを知りたい人のためのCコンパイラ作成入門をやっていました。 定期的に挑戦しては挫折してを繰り返していたんですが、約半年ぶり?に触れました。前回のコミットを見たら1月とかになっていてひえ~と。 今週末にやったのは、以下…

Surface Book2を使っていてサブディスプレイの検出ができない時

たまーに発生してそのたびに「なんで検出されないんだ?」と悩んでいるので、忘れないように書いておきます。 環境 メモなので雑ですが… 使っているのはSurfae Book2 Surface Dockを使ってテレビをサブディスプレイとして使用 たまにサブディスプレイが検出…

ABC021 - C - 正直者の高橋くん

探索!となるとBFSよりDFS採用しようかなと思いがち。 解説ACです。 問題 atcoder.jp 考えたこと はじまりの街からの距離をそれぞれ調べていって、距離1の街の個数 * 距離2の街の個数 *......でいいかなと思ったけど、途中から枝に入っていってどん詰まり…

ABC014 -C - AtColor

imos法みたいなことをやる。みたいなっていうかそのもの? 問題 atcoder.jp 考えたこと 全部の色の絵の具について購入してもいい人の人数を入れる箱を用意しておく。クエリで与えられる「購入してもいい色の範囲」について、その箱をプラスしていけば良さそ…

ABC018 - C - 菱型カウント

ABC - C埋めを再開しました。解説ACです。 問題 atcoder.jp 考えたこと ひし形の中心でループ回して探索してく。 行/列のループを回せば、r <= 50, c<= 50の制約はクリアできるので部分点はもらえるけれど…。ひし形の判定の計算量を落とす方法がわからなかっ…

APC001 - C - Vacant Seat

にぶたんをスラスラ書けるようになりたい。 この問題でAtCoder Problems の BootCamp for Beginners 完埋めです~! 初のインタラクティブ問題だった。 問題 atcoder.jp 考えたこと 男性と女性が隣り合っちゃいけないので、男女男女男女…と並べればいいけれ…

エンベデッドシステムスペシャリストになった話

この間の2020年秋期エンベデッド試験に無事合格しました。 これで僕も晴れてエンベデッドシステムスペシャリストです。 高度持ちとしてドヤっていけます。 今回はエンベデッド試験とかについてかきます。 実はQiitaにすでに記事を書いたんですが、もうちょっ…

CODE FESTIVAL 2017 qual A C - Palindromic Matrix

解けそうでWA出してたから、3日くらいかかってしまった。 これも一種のバケット方なのかも。 問題 全部の行、列が回文になっている回文行列を作れ、とのことです。 atcoder.jp 考えたこと 行列を全部回文にするので、H * Wの1マスを決めるとすると、プラス…

ABC105 C - Base -2 Number

これも解説ACです。 復習するやつってカテゴリ作って記事にしたら復習問題管理できるのでは?? 例によってけんちょんさんの記事を参考にしました。 drken1215.hatenablog.com 問題 atcoder.jp 考えたこと -2を底にするので、-2の倍数を計算してみて引いたり…

ABC187 E - Through Path

けんちょんさんの記事見て解説ACしました。 drken1215.hatenablog.com 解説ACなのですが、身につくことがあったのでメモ記事を書きます。 競プロの問題といたよ履歴もこれで3つ目ですね。章構成のテンプレとか挿入できるようにしておきたい。 問題 atcoder.j…

ABC109 D - Make Them Even

今日はABC109 Dを解きました。 割とスムーズに解放が思いついたけど、実装が面倒だった。 問題 atcoder.jp 考えたこと 入力をodd / evenで0、1のgridにして、左上からジグザグに1をずらしていけばいい気がする。— mutax (@RMT_xxx) 2021年1月3日 だいたいつ…

ABC187 参加記録

ABC187に参加するなどしました。 初の水パフォで緑に手が届きそうです。ホクホクです。 初の!!!水パフォ!!!!次で緑はいるぞ!!!!!!!今年は幸先がいいぜ!!!mutaxさんのAtCoder Beginner Contest 187での成績:1427位パフォーマンス:1278相当…

ABC147 D - Xor Sum 4

ABC147 Dを解説ACしました。 覚えたことをメモ書きしていきます。 問題 atcoder.jp 考えたこと 二重ループしたくなる数式だけど、制約的に二重ループだと絶対間に合わない。 XORの和をとっていくので、先に足し合わせてXORとったら行けたりしないかな?と思…

新たに定義した構造体をstd::setに入れる方法

普段、整数型(int型やlong型、long long型など)やstd::stringクラスくらいしか入れないのですっかり失念していたのですが、std::setクラスに自分で定義した構造体を入れるようにしたらコンパイルエラーになりました。たぶんstd::mapでも同じなんじゃないか…

自作エディターを作る! C言語でコンソールのカーソルを移動する

今回は予告通りキー移動について書いていきます。 前回までで矢印キーの入力検出はできているので、あとはコンソール上のカーソルを移動すればいいです。 あとはmessage_loop()関数でイベント処理をする仕組みについても紹介します。 前回の記事はこちらです…

自作エディターを作る! キー入力監視スレッドの改善(unixでのkbhit()の実装)

前回の記事では、getchar()をタイムアウトありで呼ぶようにして、1byteずつ取得した文字をKEY構造体に突っ込んでいたんですが、そちらを辞めにしました。 kbhit()関数を新たに作成し、入力がある場合はread()でバッファをまるごと取得し、ない場合はしばらく…