switchを使ったステートマシンの実装と構造体配列を使ったステートマシンの実装

ステートマシンを実装するとき、一次元の状態遷移であれば、switchを使うことが多いと思いますが、構造体配列を使ったステートマシンと比較したら、どうなのか、試してみました。まずは、switchを使ったステートマシンの実装 #include "stdio.h" // ステート…

LinuxでBD再生メモ

備忘録がてら書く。 MakeMKVインストールして、 # ln -s /usr/lib/libmmbd.so.0 /usr/lib/libaacs.so.0 libbdplusはなくても再生できる模様。 ディスクを入れて、マウントする。 # mount /dev/sr0 /mnt sr0の数字部分は変わるっぽいので、テキトーに試してみ…

C言語マクロで関数ポインタを利用する

以前、マクロで関数を定義しているものを配列に入れて、関数ポインタのように順繰りに処理をさせたいことがありましたが、スキル不足でできませんでした。 マクロに関数ポインタを定義するような人は殆どいないのか、情報がありません。 だったら、自分でや…

gnome環境で無線LANを使用する

netctlでwifi-menuが使用できれば接続はできるが、gnomeのネットワーク設定が使えないのでnetworkmanagerとnetwork-manager-appletをインストールする。 # pacman -S networkmanager network-manager-applet netctlのサービスを無効にし、 # systemctl disab…

無線設定

grubインストール後に、netctlとdialogとwpa_supplicantをインストールする。 # pacman -S netctl dialog wpa_supplicant dhcpcdサービスを無効にし、 # systemctl disable dhcpcd.service netctlサービスを有効にする。 # systemctl enable netctl.service …

x260にarch linuxをインストールした

先日x260を購入し、arch linuxをインストールしました。 インストールは普段使いのarch Linuxさんを参考にしつつ、無線の設定だけ補足しようかと思います。

定番のHello World

公式サイトのドキュメント見てください。

インストールの確認

go version でバージョンが表示されればインストールできている。

golangのインストール

環境:ubuntu 16.04手順は、公式サイトに書いてあります。 まず、公式サイトからtar.gzをダウンロードします。 ダウンロードしたファイルのあるフォルダに移動して、 sudo tar -C /usr/local -xzf go1.8.linux-amd64.tar.gz を実行。 次に export PATH=$PATH…

golangはじめました

Cがある程度わかってきたので、気になっていたgolangをはじめてみました。

Cでコメントを取り除くプログラムを書いた

アスキー出版のC言語入門に下記のようなサンプルコードがありました。 #include <stdio.h> struct table_entry { void (*prtptr)(); //出力用関数のポインタ int next_state; //次の移るべき状態 }; int main(int argc, char *argv[]){ int c, col, row; void charptr</stdio.h>…

uniteからdeniteに移行中

とりあえずuniteのsourceがdeniteで使えるらしいので試してみました。 おもむろに以下のようなコードを用意し、 #include <stdio.h> int main(int argc, char *argv[]){ printf("hello world") return 0; } :QuickRunを実行すると、printf()のあとに;がないので、エラ</stdio.h>…

vimrc読書会でvimrcを読んでもらった

12月3日のvimrc読書会で私のvimrcを読んでもらいました。 私の知識不足が露呈しましたが、理解せずにコピペして使っていた設定をあれこれ言って教えてもらえたので有意義な時間でした。

C言語で処理時間を短縮する

C言語で処理時間を短縮する方法として、記憶クラスregisterを使用するというのがあります。 registerはCPUのレジスタに変数の値を格納する領域を確保できれば確保するため、メモリ上に確保する通常の変数宣言と比べて高速に変数にアクセスできるようになりま…

ファイアウォール

iptablesによるファイアウォールを設定する。 iptablesについてはたくさん資料があるのでそのあたりも参考にしつつ、以下のように設定した。 LOCALNET=192.168.11.0/255.255.255.0 MY_SSHD_CONFIG=/etc/ssh/sshd_config iptables -F iptables -X iptables -P…

特定のユーザーだけに許可を与える

PAM の pam_wheel.so は wheel グループに入っているユーザーだけに su を使用したログインを許可する。 /etc/pam.d/su /etc/pam.d/su-l の両方を編集して次の行をアンコメントする。 # Uncomment the following line to require a user to be in the "wheel…

3回ログインを失敗したユーザーをロックアウトする

指定した回数ログインに失敗したらロックアウトすることでセキュリティを高める。 /etc/pam.d/system-loginを編集することで設定できる。 3回ログインを失敗したユーザーを10分間ログインできないようにする。 auth required pam_tally.so onerr=succeed fil…

対策

kworkerの中でも何がCPUの使用率を上げているのか調べる。 grep . -r /sys/firmware/acpi/interrupts/ 私の場合は以下のように出力された。 /sys/firmware/acpi/interrupts/ff_gbl_lock: 0 enabled /sys/firmware/acpi/interrupts/gpe15: 0 invalid /sys/fir…

前提

crontabの導入が必要です。 pacmanでインストールしましょう。

Arch Linuxで一つのCPU使用率が100%付近になる問題の対策

CPU使用率をモニタリングしていたら、ある一つのCPU使用率だけ100%付近になっていました。 さくっと調べてみるとkwokerというプロセスが原因らしい。 対策方法はArch Linuxのwikiにあったけど、少しハマったので記事にする。

grubでsyntax errorが出た

windows10をgrubで表示させようとして、いじっていたら何かやらかしたらしく、syntax errorが出るようになってしまった。 ちょっと調べてみると、/etc/default/grubにGRUB_DISABLE_SUBMENU=yを追加すればいいらしい。 # vim /etc/default/grub GRUB_DISABLE…

無線LAN設定

無線LANについてがないので、そっちで少しはまっていました。 USBの無線LANを認識していて、ドライバもカーネルに入っていたので、なぜ繋がらなんだ…と思っていました。 network-managerとnetctlが喧嘩していただけだったんですけど。まぁそれはいいとして、…

Arch Linuxインストールしました

メインPCにArch Linuxインストールしました。参考にしたのは普段使いのArch Linuxさんのページ基本的にはこちらを参考にすれば問題なくインストールできます。

WoTのリプレイファイルを保存用HDに移動するバッチファイルを書いた

タイトルの通り、リプレイファイルを保存用HDに移動するバッチファイルを書きました。https://github.com/raiden325/WoTReplayFileTransfer/コード @echo off if exist C:\Games\World_of_Tanks\replays\*.wotreplay ( echo リプレイファイルがあったで保存…

vimのプラグインマネージャをdeinに変えました

neobundleが開発終了したためdeinに乗り換えました。とりあえず以下のようにvimrcを変更。 " プラグインが実際にインストールされるディレクトリ let s:dein_dir = expand('~/.vim/dein') " dein.vim 本体 let s:dein_repo_dir = s:dein_dir . '/repos/githu…

1/25くらいから発生しているmac版WoTのアップデートエラー対策

1/25くらいからmac版WoTでアップデートエラーが発生していました。 原因はwotlaucher.cfgファイルのURLの記述にミスがあることでした。 23行目の「http://update.worldoftanks.asia/ 」を「http://update.worldoftanks.asia/」にすると直りました。後ろにあ…

OSX 10.11にアップデートしました

osx 10.11が公開されて2日くらいでアップデートしました。 エレコムのマウスアシスタント2が動かなかったり、xtrafinderが動かなかったり、ntfs for macが動かなかったりしましたが、10.10よりきびきび動いている気がします。 macportsからhomebrewに乗り換…

Android 5.0をAndroid 4.4にダウングレードする(macでやる方法) 困った点を中心に書きます。 Java SE Developer Kitをインストールする ターミナルで java -version 実行するとjavaがインストールされているかわかる。 インストールされていなければインスト…

vimにテンプレートファイルを用意して、新規ファイル作成時に読み込ませる

まず、テンプレートファイルを用意します。 C言語用に下記のようなファイルを作り、$HOME/.vim/templateに入れます。 拡張子は*.cか*.txtにしておくといいでしょう。 #include <stdio.h> int main(int argc, char *argv[]){ return 0; } vimrcに以下の設定を追加しま</stdio.h>…

Unite-grepの使い方

みなさん、vimgrep使っていますか? 私は先日まで使っていました。Uniteにgrepのsourceがあることを知らなかったので。 :Unite grep とタイプすると、TargetとPatternを聞かれます。 Targetはバッファを指定します。カレントバッファを指定する場合は.を消し…