Amazonで返品

Amazonで3000円くらいのちょっとした電子小物を買った。
8月16日に注文して、届いたのは8月17日。
8月17日から8月19日までの3日間(実質は2日くらいだけど)使ったものの、いま一つどころじゃないな、いま100個くらいの劣悪な性能で満足できなかった。
商品の説明に間違いがあるわけではなく、おそらく初期不良ということでもなく、仕様の問題というか、とにかく満足できるレベルではない。

ということで返品・返金することにした。
Amazon歴は15年目くらいで、そんなに多くのものを買ってきたわけではないが、返品は初めて。
返品の理由は「満足できるレベルではないから」。
そんなのでも返品できるのかなあ、返金といっても全額戻ってくるのかなあ、とかいろいろ思うところはあったが、とりあえず返品。

続きを読む

IOCCCの名作を読み解いてみた

IOCCC、すごいよねえ。
公式サイトに行けば、昔からの入賞作品を見ることができる。

名作揃いだと思うのだが、個人的に特に好きなのが、1992年のBrian Westleyさん(aka Merlyn LeRoyさん)の作品。(ソースコード

           main(l
      ,a,n,d)char**a;{
  for(d=atoi(a[1])/10*80-
 atoi(a[2])/5-596;n="@NKA\
CLCCGZAAQBEAADAFaISADJABBA^\
SNLGAQABDAXIMBAACTBATAHDBAN\
ZcEMMCCCCAAhEIJFAEAAABAfHJE\
TBdFLDAANEfDNBPHdBcBBBEA_AL\
 H E L L O,    W O R L D! "
   [l++-3];)for(;n-->64;)
      putchar(!d+++33^
           l&1);}

古い仕様のCで書かれているが、GCC 4.9.3で正常にコンパイルできることは確認している。

cc westley.c

正常にコンパイルできたら動かしてみよう。例えばこんな感じで。
(動かす際には横幅80文字の端末を使う必要があるので注意)

a.out 35 135

出力はこんな感じ↓

しばらく出力を眺めて、何が書かれているのかを理解してから、もう一度ソースコードを見返した時に衝撃を受けた。
すごいよね~

続きを読む

VMwareにVine Linux 6.5を入れたらモニターが1176x885以上にできない

【環境】
ホストOS Windows 10
VMware Workstation Player 14.1.1
ゲストOS Vine Linux 6.5 64ビット版

【問題】
ゲストOSをインストールした直後は、ゲストOSのモニターのサイズ設定を1176x885よりも大きい1280x960とかに設定できる。
しかし、1回リブートしてしまうと、モニターのサイズが小さくなってしまい、メニューには1176x885が上限で、それ以上大きなサイズが表示されないので、設定できない。
xorg.confを直接いじってやっても、VRAMが足りないと言われて大きくできない。

【解決策】
VMwareの設定が書かれている.vmxファイルに

svga.minVRAM8MB = "TRUE"

を追記する。

続きを読む

JpGraphのLinePlotでSetColor()しても色が変わらない

JpGraph(Ver.4.2.0)を使ってPHPでグラフを描いていてはまった。
SetColor()を使って色を指定してもなぜか色が変わらないというトラブル。

ソースコードその1:

<?php
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

$ydata = array(1,2,1,3,1,4);

$graph = new Graph(400,300);
$graph->SetScale("textlin");

$lineplot=new LinePlot($ydata);

$lineplot->SetColor("orange");

$graph->Add($lineplot);

$graph->Stroke();
?>

ソースコードその2:

<?php
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

$ydata = array(1,2,1,3,1,4);

$graph = new Graph(400,300);
$graph->SetScale("textlin");

$lineplot=new LinePlot($ydata);

$graph->Add($lineplot);

$lineplot->SetColor("orange");

$graph->Stroke();
?>

どちらもオレンジ("orage")を指定しているはずが、その1はなぜか青で、その2だと期待通りのオレンジ。

何が違うのかと言うと、その1はSetColor()してからAdd()。一方のその2はAdd()してからSetColor()。

なぜか後者(その2)の順番でないと期待通りに色が変わらない。

ぐぐって探してみたんだが、このことに触れているサイトは見つけられなかった。
Ver.4.2.0の不具合なのかもしれないねえ。
それともPHPのバージョンのせい? PHPはVer.5.3.3。

@PAGESがいつの間にかサービス終了していた件

@PAGESがいつの間にかサービス終了していた。
先月(2月)の末で終わっていたようだ。
WordPressを使い始めた頃のサーバーの一つがたしか@PAGES。
最近はずっと放置だったが、一応アカウントは持っていた。
サービスを終了するよというメール連絡には気づかなかったのだが、ぐぐってみると事前のメール告知はあったらしいので、おそらく迷惑メールに紛れて見落としたのであろう。

@PAGES、サービス終了

3次のスプライン関数

なにを今さら? なんだが、ちょっと「あれ?」だったことがあったので、覚書ってことで。

1~NまでのN個の点があるとする。
この時、区間の数は N-1 個。
3次関数の係数は4個なので、求めたい係数の個数は 4*(N-1) = 4N-4 個。

制約条件は以下の通り。

  1. 各区間の始点 xi での値は元の点の yi と等しい。
    fi(xi) = yi (iは1~N-1)
    これが N-1 個の制約条件。
  2. 各区間の終点 xi+1 での値は元の点の yi+1 と等しい。
    fi(xi+1) = yi+1 (iは1~N-1)
    これが N-1 個の制約条件。
  3. 両端を除く各点で1階微分が等しい。
    f'i(xi+1) = f'i+1(xi+1) (iは1~N-2)
    これが N-2 個の制約条件。
  4. 両端を除く各点で2階微分が等しい。
    f''i(xi+1) = f''i+1(xi+1) (iは1~N-2)
    これが N-2 個の制約条件。
  5. 両端の区間の端っこでは2階微分がゼロ。
    f''1(x1) = 0
    f''N-1(xN) = 0
    これが2個の制約条件。

1~5までの制約条件の数を足すと 4N-4 個。
つまり未知数の数と等しく、一意に決まる。

めでたし、めでたし。どんとはれ。