カテゴリー
Programming

UNIXのcalコマンドもどき。

C言語を思い出すために書いてみた。所要時間1時間。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// メイン関数
int main(int argc, char* argv[]) {
    // today変数にNULLをセットする
    time_t today = time(0);
    // localtimeはNULLを現在時刻として解釈する
    struct tm* day = localtime(&today);
    // 2020/7/13 → 2020/7/1に変更する
    day->tm_mday = 1;

    // プログラム開始時の引数が1個のとき (./cal 7)
    if (argc > 1) {
        // "7" -> 7
        int month = atoi(argv[1]);
        if ( month == 0 ) {
            fprintf(stderr, "Can't parse month text.\n");
            return 1;
        }
        day->tm_mon =  month - 1;
    }
    // プログラム開始時の引数が2個のとき (./cal 7 2020)
    if (argc > 2) {
        int year = atoi(argv[2]);
        if ( year == 0 ){
            fprintf(stderr, "Can't parse year text.\n");
            return 1;
        }
        day->tm_year = year - 1900;
    }

    // カレンダーを表示させたい月をdayに設定する
    time_t st = mktime(day);

    char buf[256];
    strftime(buf, sizeof(buf), "%Y/%m", day);
    printf("       %s\n", buf);
    printf("Su Mo Tu We Th Fr Sa\n");

    // 1日までは空っぽ文字で表示しておく
    for ( int i = 0; i < day->tm_wday; ++i ) {
        printf("   ");
    }

    // カレンダー表示対象の月を覚えておく
    int month = day->tm_mon;

    // dayがカレンダー表示対象の月の間だけ出力する (翌月になったらwhileから抜ける)
    while (month == day->tm_mon) {
        printf("%2d ", day->tm_mday);
        if ( day->tm_wday == 6 ) {
            printf("\n");
        }
        // dayに1日足す
        day->tm_mday += 1;
        st = mktime(day);
        day = localtime(&st);
    }

    printf("\n");
    return 0;
}
カテゴリー
WordPress

WordPressにインストールしたプラグイン一覧

MarkdownでWordpressの投稿編集できるプラグインを入れてみました。
Gutenbergエディタもなれると使いやすいと思う派ですが、MarkdownのほうがHTMLに近くて直感的に打てるのでやっぱ好き。

2020/7時点で入れているプラグイン一覧

カテゴリー
PC

ASUSのゲーミングPCを買ったら1週間でグラボが壊れた件

Amazonでセールやってて安かったので買いました。ゲーミングPC。

ASUS ゲーミングデスクトップ ROG Strix GA15 (G15DH) (Ryzen™ 7 3700X/16GB/SSD 1TB(PCIE 3.0×2), HDD1TB/RTX 2060 SUPER/スターブラック)【日本正規代理店品】G15DH-R7R2060S
画像
画像
画像
画像
画像

で、買ってきて気づいたこと。

  • 同梱されるWindows 10 Homeには、ASUSのユーティリティーやドライバとともに、McAfeeのセキュリティ対策ソフトが付いている。そして、初回セットアップ時に問答無用でASUSだけでなくMcAfeeにも各種の動作ログを送るように求めるプライバシーポリシーに同意せよ、と出てくる。(集めるにしてもちょっと露骨すぎ)
  • 初回起動後は、NVIDIA GeForce Experienceによって最新版のグラフィックスドライバーへ更新される。が、ついでにNVIDIAにユーザ登録&利用状況のログを送ってアグリーメントが求められる。(まぁこれは仕方ない)
  • MicrosoftのWindows 10インストールメディア作成ツールでUSBメモリを作ってクリーンインストールすれば、上記の各種プライバシー的なものは回避できる。
    Microsoftも信じないって人はほかのOSを入れれば良いと思うけど。
  • ASUSのUEFI画面のマウスは、誰かうれしいのだろうか?動かしてもめっちゃ遅くてまともに使い物にならない。キーボードで設定すれば良いので無視する。
  • ゲーミングPCだけあって非常にきらびやかにLEDが光る。UEFI画面で無効化出来る。
  • M.2 NVMeで1TBのSSDが2本付いてた。片方がTOSHIBA、片方はIntel。速度差はほぼ無い。
  • GPU負荷が下がればファンが停止する。動いていても気にならない程度には静か。
  • GeForce RTX 2060 Superは、Intel CPUの内蔵GPU機能になれてる人からすれば、使いこなせないなと思えるほどパワフル。

購入目的は、NVIDIA RTX Voiceによるノイズキャンセル機能。

画像

普段はYAMAHA YVC-300を利用いるため集音性には満足していたのだが、逆に音を集めすぎることにより机の上に置いてあるキーボードの打鍵音を拾いすぎてしまっていた。
→ 実際にRTX Voiceをオンにすると、打鍵音だけ綺麗にキャンセルされ、会議参加者からも大好評。こういうところで周囲をいらつかせないことも在宅勤務で仕事を快適に進めるコツなのかなとも思う。

と、1週間くらい使っていたある日。朝、PCを起動したらこんな画面に。

画像
画像

明らかにGPUがおかしい……。

一応、HDMIケーブルのつなぎ替えをしてみても……。ピンク色の斑点が出続ける。

ということで、ASUSのサポートセンターに電話。
初期不良の可能性が高いとしつつ、引き取り修理になりました。(症状が確認出来れば無償でパーツ交換など)

6/28 購入 → 6/30 到着 → 7/6 故障 → 7/8 運送業者にて引き取り

2週間くらいで対応が進むと思うので、戻ってきたら続きを書きます。