Kotaro7750's diary

低レイヤを中心とした技術ブログ、たまに日記

KVM上のUbuntuでMirakurun+EPGStationで録画サーバーを構築する

自宅サーバーで録画サーバーを構築したいと思い構築した.その記録を他の人にも参考になるかもしれないので記事にする. 環境は以下. ホストOS Ubuntu 18.04.5 LTS ゲストOS Ubuntu 18.04.5 LTS 用意した機材 録画を行うためには以下の機材が必要になる. B…

自作RISC-V32IMインオーダプロセッサ 煌

半年前くらいから自作プロセッサをほそぼそと開発していたが,インオーダパイプラインプロセッサとしては割と高性能だと思うものができたので簡単に紹介していく. github.com 大まかな特徴 RISC-V32IM準拠 これに関してはそのまま.RISC-V32IMの内,システ…

tmux上のneovimでtrue colorを使ってundercurlを正しく表示する

neovimのカラースキームには、cui用とgui用があり、ターミナルからは本来なら前者しか使えず、256色しか表現することかできません。しかし、最近のターミナルでは、true colorと言って16進数カラーコードで指定可能な色を表現することができます。 この機能…

ubuntuで英字キーボードを使用したときの日本語入力設定(おまけ vimでの自動IMEオフ)

ubuntuで英字キーボードを使用したときの日本語入力設定 私は普段Ubuntuに英字キーボードを繋いでいるのですが、そうなるとめんどくさいのが日本語入力の設定です。この記事では私がたどり着いた答えを解説していこうと思います。 また、この記事のやり方を…

自動デプロイ付きWEBアプリをheroku無料版で構築する【フロント編】

構成 学生が小規模なWEBアプリを作ろうと思った時、ネックになるのはどのサーバーを使おうかという点だと思います。私はケチなので一円たりとも払いたくはありません。そのため、今回は制限内でなら完全無料でDBも作れるherokuでWEBアプリを作成する方法を解…

GitHub ActionsでdotfileのCIを回す

以前の記事で、neovimで使うpythonの環境を自動構築するシェルスクリプトを書きましたが、neovim以外でも似たようなことを行うスクリプト群を作成しました。しかし、作ったはいいもののはたしてこれがうまくいくのかということに確証が持てなかったので当然…

pythonでneovimのdenite拡張を作る

neovimにはリモートプラグインというneovim本体とは別のプロセスで動くプラグインがあります。リモートプラグインは、msgpack-rpcという仕様でneovim本体と通信し、通信部分はすべてライブラリがやってくれるので、簡単にプラグインを書くことができ、この記…

Neovimのpython環境を一発で自動構築する

Vim

私はメインのエディタとしてneovimを使っていますが、一部のプラグイン(deopleteなど)にはpython環境が必要なことがあります。 しかし、pythonのバージョンは使うマシンや環境によって異なるため、同時に複数のマシンで環境を揃えたり、新しいマシンを導入し…

C++による平衡二分木(AVL木)の実装

前の記事でも書きましたが、趣味で下のgif画像のような平衡二分木(AVL木)を実装したので、それについての解説を書いていこうと思います。 kotaro7750.hatenablog.com AVL木 コード全体は以下のレポジトリにあります。 github.com 二分木について 二分木の検…

二分木のGIFアニメーションを生成する

趣味で平衡二分木を作ったのですが、(この解説記事ももうすぐ上げます)記事を書くにあたり、下のようなgifアニメなどによる説明があると分かりやすいと思い、それを自動生成するスクリプトを書きました。 二分木のgif画像 適当な実装 仕組み dot言語による…

プライバシーポリシー

当サイトに掲載されている広告について 当サイトが使用しているアクセス解析ツールについて 当サイトへのコメントについて 当サイトに掲載されている広告について 当サイトでは、第三者配信の広告サービス(Googleアドセンス)を利用しています。 このような…

VimをVSCode並のエディタに魔改造する

この記事はEEICアドベントカレンダー2019の7日目の記事として書かれました。 若者のVim離れ 突然だが読者の皆様に問いたい。 エディタは何を使っているだろうか? EEICの人ならおそらく普段から何らかのエディタをプログラミング等に使っているはずだ。 nano…

【Zaim】家計簿をモバイルSuicaと連携して管理を自動化する

var newMeta = document.createElement("meta"); newMeta.setAttribute("http-equiv", "refresh"); newMeta.setAttribute("content", "0; url=https://gehirn.kotaro7750.net/posts/20191128-zaim-mobilesuica/"); document.getElementsByTagName("head")[0]…

ヘッダフィールド図自動生成プログラムを作った

ipv4のヘッダフィールド図 上のような図を記事とかに貼り付けるときにasciiアートみたいに作れるツールがあるといいなということで作りました。 【2019/11/30追記】 「今後の展望」に書いていた機能を実装しました デモ 実装の簡単な説明 今後の展望 下にgit…

【はてなブログ】Google Analyticsで記事のプレビューを集計させない方法

Google Analyticsでは記事のプレビューも集計されてしまう 【設定その1】サブディレクトリフィルタで集計に含めないようにする 【設定その2】自分自身のアクセスを集計に含めないようにする Google Analyticsでは記事のプレビューも集計されてしまう 自分…

x86_64における関数のプロローグ・エピローグ

x86_64(x64,amd64)でのCにおける関数呼び出し、リターンの際のスタック、レジスタの使われ方について解説していきます。 環境 使うコード アセンブラ上での解説 プロローグ エピローグ おまけ ~引数渡しに使われる汎用レジスタ~ 参考資料 環境 Linux 4.15.0-…

CPUの創り方を読んだ

動機 どんな本? 初見だった内容の復習 スイッチのマトリクス配置 プルアップ・ダウン コンデンサによるチャタリング除去 スイッチの出力 まとめ 動機 そろそろ本腰入れて低レイヤのお勉強しなくちゃと思い、一応コンピュータ・アーキテクチャの授業でやった…

Neovim内でのターミナル利用を快適にするVimscript

Vim

以下のリポジトリに設定ファイルが全て載ってるので参考にどうぞ。 github.com Terminalモードについて デフォルトのターミナルモード 快適にしたターミナルモード SaveMRUBuffer関数 通常のバッファとは ToggleTerminalMRU関数 現在のバッファがターミナル…

guakeを手探る

前書き 環境 課題設定 使用した内部的な機能 ターミナルでコマンドを実行する VteTerminalのシグナルをキャッチして関数を実行する 追加機能その1:開いているタブのコマンド実行履歴をバックアップする 現状と目標 実装 コマンド履歴保存 タブとテキストフ…

Linuxにおけるネットワークインターフェースについて

ネットワークインターフェースとは 物理NIと仮想NI NIの種類 docker0 lo tun0 wlps0 ネットワークインターフェースとは コンピュータがネットワーク上にある他のコンピュータと通信する際に、パケットをやり取りする「境界」となるリソースでがネットワーク…

UEFIを使ったOS起動の流れの概要

OS

セキュリティミニキャンプ山梨2019に参加することになり、事前課題としてUEFIアプリを書いているのですが、UEFIつかってどういうように起動しとるんだと思ったので自分でまとめてみることに。 ハードウェアの初期化 ブートされるパーティション BIOSでのブー…

Treasure2019 参加記 〜選考から講義パート〜

はじめに この記事では私が8/12~8/30まで参加した、VOYAGE GROUPのインターンであるTreasure2019について書いていこうと思います。 他の人の記事をちらほらと見て、みんな次の日とかには書き始めていたのか早い人は土日中には書き上がっているようでしたが、…

データベース正規化

正規化とは 正規化とはデータベースにおいて、データの冗長性をなくすことです。データの属性間に依存関係がある時に、複数のテーブルに分けたりすることで無駄な属性を省くことができます。正規化により、データベース内では1データ1箇所の原則が守られま…

コンテナについて学習したことのアウトプット

OS

前書き 記事にはしていませんが、最近何回かイベントに参加して色々な企業のインターンについて聞いているのですが、そのなかで、インフラエンジニアという職種に興味がわきました。この職種にも色々あるらしいですが、エンジニアが開発に専念できるような基…

ABC123 感想

ABC123 4月6日(土)21:00~21:40に開催されたABC123に参加しました。この記事はその記録兼復習です。 atcoder.jp また、私のコードはGitHubにあります。参考にどうぞ。 github.com A - Five Antennas 一組でも距離が離れてる組み合わせがあるとダメなので、…

ABC122 感想

ABC122 3月24日(日)21:00~21:40分に開催されたABC122に参加しました。この記事はその記録兼復習です。 atcoder.jp また、私のコードはGitHubにあります。参考にどうぞ。 github.com A - Double Helix どうでもいいけど今回は塩基のお話でA,T,G,Cが出てきた…

golangで簡単なslackbotを書いてみた

動機 どんなBot? 全体像 苦労したところ クロール処理 感想 動機 最近インターン先でgolangに触れる機会がありました。(その記事もいつか書きたいですね。)その時は時間的制約でそこまでgolangに触れなかったので、練習がてら書いてみることにしました。…

自己紹介

プロフィール 職業:学生 大学:東京大学工学部電子情報工学科(EEIC2019) 何してる人? エンジニアになるべく精進している学生です。もともと学生団体のシステム担当として小銭を稼いでました。インターンとかにも行ってます。 インターン歴 treasure2019修…