ウェブコワイ。
sshdをDynamic DNSを使って自宅鯖に立てているのだけど、/var/log/auth.log
をみるたび肝を冷やすので
不正アクセスを試みているユーザ名を雑に調べた。
ユーザ名を見ているとOSSのソフトウエアをインストールするとデフォで作られるユーザ名を狙った物が多くて、 次になんかありがちっぽい名前を狙っている感がある。
続きを読むハマった
X = a b c X += d e f all: echo $(X)
これはmake
を叩いてみるとa b c e e f
と出力される。
まぁ+=はこれで良さそう。
ちょっと直感に反している例として、make X=123
みたいに
外側から与えられる場合。これは123
とだけ出力される。
コレを123 d e f
と出力させたかったらoverride
を加えればいい。
X = a b c override X += d e f all: echo $(X}
これで無事123 d e f
と出力される。
しかしまぁこれ、なかなか悩ましくて外側から与えられる場合には、例えばコンパイルフラグが完全な状況になっていて欲しい場合もあり悩ましい。
例えば最終的にCFLAGS=-DA -DB
となってて欲しいところを-DAだけ外から与えてoverride +=
で-DB
とする設計の場合、この+=を無視できなくなってしまう。しかし外側から与えられると共通のフラグは勝手に+=されて欲しい気持ちにもなって悩ましい。。。
結局は人間の運用をどうするべきかということなのですが、まぁ結論がない。。。。。
本きれいですーうおー pic.twitter.com/jZrHDGBVvC
— インターネットも届かない闇 (@no_maddo) 2017年4月9日
電子書籍販売し始めました!!!
コンパイラを作って遊ぼう - nomaddo - BOOTH
技術書典2に本を出してきました。う-15 「コンパイラを作ってあそぼう」です。 @alt_apさんの素晴らしいイラストを見て!
殺伐とした部屋に突然の萌え絵が!!!お願いしたイラストがでかく印刷されるの満足度たかい! pic.twitter.com/eU1aWkZef6
— インターネットも届かない闇 (@no_maddo) 2017年4月9日
締め切り駆動開発しようと思って、締め切りギリギリに申し込んだ。1月初めだったかな。
感想としては締め切り駆動は進捗はでるけど寿命を減らす感がある(徹夜3回くらいした
印刷所から直入だったから荷物手ぶら状態だったけど、色々小物が必要だった
時給で換算すると余裕で100円を切るやつ。
赤字にならなくてよかった。
今回使ったlatexのテンプレートを貼っておきます。
今回私の本文はこれだけで作っています。あと図にパワポから生成したpdf。
遷移図みたいなの書くのにパワポが最高。graphvizとか書いてられない。
GitHub - nomaddo/b5-book-template
.shからmakeコマンドを叩きたくなり、さらにその中で実行するMakefileの変数を上書きする 処理を書きたくなった。そのラップするスクリプトはどう書いたらよいだろうか。
#include <stdio.h> int main() { #ifdef A printf("a"); #endif #ifdef B printf("b"); #endif }
all: gcc $(CFLAG) a.c
さて問題、これをCFLAG=-DA -DB
にするようにmakeするためのシェルスクリプトはどう書いたらよいだろうか。
ただし、この実行は複数回やるので変数に束縛することにする。
var="CFLAG=\"-DA -DB\"" make "$var"
コレを実行すると以下のようになる。
$ bash build.sh make: 無効なオプション -- 'D' make: 無効なオプション -- '"'
さあ何が悪いのかな。
今日1時間ほど詰まった問題を書いてみました。
正解はMakefileの$(CFLAG)が"$(CFLAG)"
となっていないからです。
まぁshellはつらいですね……
Git運用中に困ったので正しい回答が欲しくメモしておく。
今レポジトリupstream, originがあるとする。
Fortranの言語拡張。ノード間の非同期通信を隠蔽するための機能が多く含まれている。
Coarrayで書いたプログラムはMPIのライブラリが結合され、
Coarrayの配列として宣言された配列に代入すると通信が隠蔽されいつの間にか通信している。
非同期通信が基本。
とにかく楽にノード間(プロセス間?)通信するプログラミング言語はどういう設計があるのか気になる。
http://www.polyhedron.com/web_images//intel/productbriefs/8_CAF.pdf
色々サービスがあるがどれが安価で使い勝手がいいのか確かめたい。
ついでに自分の数値計算屋の技量を高めたい。
0.5h/hour で物理96コアのマシン借りられるの良さそうじゃないですか。
Type 2A - The ARMv8 - Premium Bare Metal Servers and Container Hosting
ARMサーバーとして面白そうなサービスが沢山始まってほしいなぁということで ARMv8の命令セットに親しんでいきたい。
アドレッシングの最適化やPeepholeなど古典だけど あまり触ったことのない低レベル最適化に手を出していきたい。
恥ずかしながら自分はこういうもの疎いのだけど、ビルドサーバでのビルドはなるべくクリーンな
状況でビルドしたいのでこういった技術に手を出さざるを得ない感じがする。
Gitlabとも仲良くしていきたい。
問題を解決するための開発・ビルド環境というのを研究していきたい。