粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

Amazonのクーポンが使えないのはAmazonの出品する商品を買わないから

こんにちは。今日大学でAmazonのクーポンが配ってたので嬉々として使おうとしたら使えなかったのでかなり時間を消費してしまいました。
これは人生の損失です。二度と同じことに引っかからないよう備忘録を残しておきます。

AmazonのクーポンはAmazon.jpが販売する商品にしか適用できない!

最近Amazonでは割引クーポンなんかも配っているようですが,そっちではなく,N円分の金券のような扱いのクーポンのことです。

例えば最近はこんなキャンペーンがやってますね
Amazon.co.jp: Amazon Student プライムビデオ視聴で2,000円クーポンプレゼント: 本

こういうので2000円とかもらってウキウキしてレジ行くと以下のようにエラーが出たりします。


「入力されたクーポン番号は、お客様のご注文にはご利用いただけません」
f:id:ossyaritoori:20170518220724p:plain

ふぁ?
f:id:ossyaritoori:20170518220828j:plain

公式の記述

これはきちんと公式に記述があって,
Amazon.co.jp ヘルプ: クーポンについて
「クーポンは、マーケットプレイスなど第三者によって売買、供給されるAmazon.co.jp の商品の購入にはご利用いただけません。」f:id:ossyaritoori:20170518222739j:plain


もう少しでっかく書いて欲しいものです。マーケットプレイスとは?って話は後でします。

Amazonの販売する商品を探すには?

ということで,Amazonが販売する商品からほしいものを選ばないとクーポンが使えないようです。
う~ん面倒だなぁ。ところでAmazonマーケットプレイスってなんでしょう?

Amazonマーケットプレイスとの違い

AmazonにはAmazonが直接販売している商品と他の会社や個人が出品している商品に2パターンがあります。
amazonマーケットプレイスでは後者の商品を扱っています。売り場のことなんですね。(直訳)

これは時々悪質な詐欺が行われているようで,とてつもなく安い値段だったり,レビューがおかしかったりした場合は敬遠したほうが良いらしいです。(自分はよく使います。安いので。)

Amazonの販売する商品を検索する方法

ガラケーの場合は
アマゾンで、「アマゾン販売」商品のみを表示させる方法は? - アマゾ... - Yahoo!知恵袋
が参考になりそうです。

PCの場合は次のURLなんかにアクセスしてこの詳細選択のダイアログで指定することが可能です。

Amazon.co.jp: 本
この図の右下。
f:id:ossyaritoori:20170518222201p:plain

なお,僕がこの方法で探せたのは本だけでした。(本のカテゴリになってるし)
f:id:ossyaritoori:20170518222714j:plain

ここにも情報はあります。「本以外も可能」とありますができなかったんだよなぁ。
Amazonが発送する商品のみを検索する方法 | トリセド


一応,Amazonが販売している商品にはその旨が記載されているので地味に探すもよしですが…
f:id:ossyaritoori:20170518223122p:plain



ていうかこれ公式がもっと周知したりUIを改善すれば済む話なのでAmazonさん頑張って改善してください~~。

GitHubで部分的にフォルダをダウンロードする方法(含Windows版)

最近ファイル管理でぼちぼちGitを使い始めていますが
Dropbox等,他のクラウドサービスとの違って他のPCからデータに簡単にアクセスできないのが面倒ですね。
Gitで管理するのはソースだけにすべきですが,フォルダ分離するの少し面倒くさい…

GitHubのWebサイトから単一のファイルをダウンロード

これは欲しいファイルをクリックして開く画面の右端に下のようにDownloadボタンが現れるので問題無いかと思います。
f:id:ossyaritoori:20170507140703p:plain

svnコマンドを用いた特定のディレクトリのダウンロード

Linuxならsvnコマンドを用いて,以下の様に落とせるようです。

例えば,以下のディレクトリにファイルが存在するとして,

https://github.com/XXX/YYY/tree/master/ZZZ

/tree/masterの部分を/trunkに書き換えて以下のコマンドを打ちます。

svn checkout https://github.com/XXX/YYY/trunk/ZZZ

svn exportでも良いとかなんとか。
しかし,これWindowsのGit Shellだと出来ないんですよね。

GitShell(Git for Windows)を用いた場合

GitShellを用いた場合は,svnコマンドはgit svnと打つことで模擬できます。
ただ,上のコマンドは登録されてないか,initが必要っぽいのでめんどくさそうです。

最も簡単なのは恐らくcloneしてしまうことでしょう。

git svn clone https://github.com/XXX/YYY/trunk/ZZZ

(当然,tree/masterをtrunkに変更することを忘れずに!)

cloneして出来たフォルダの処理

cloneして出来たフォルダですが,Gitの管理から外すには
以下のように.gitと書いてあるフォルダを削除します。
f:id:ossyaritoori:20170507142508p:plain


matlabで行列の特定の値を持つ行を検出・置換・削除する

今回はfind関数を主に使っていきたいと思います。

find:特定の条件に一致する部分を調べる

等号条件

例> 行列 A から値が0である箇所を探す。

find(A==0)

この際の出力は1次元の配列になります。m行n列のi行j列目にある場合は,i*n+j として出力されることに注意。

以下のようなコードを書いて位置との対応を掴んでください。

mg = magic(4)
find(mg==1)

なお,後ろにfind(A==0,3)などと数値を列挙すると条件に一致する部分のうち数値の数だけ列挙してくれます。

不等号条件

例> 行列 A から値が10より大きい箇所を探す。

find(A>10)

findを使わない場合の記法との比較

findを使わずとも

A==0

という表記単体で,条件に一致するか否かの論理値を得ることができます。

A = magic(3)

A =

     8     1     6
     3     5     7
     4     9     2

>> A>5

ans =

     1     0     1
     0     0     1
     0     1     0

findではこの論理値行列の代わりに条件を満たす行列のindexをそのまま返します。

>> find(A>5)

ans =

     1
     6
     7
     8

特定の条件に一致する部分を置換

先程調べた箇所を行列に代入することで置換できます。

試しに行列の中で特定の条件を満たす部分を0にしてみましょう。

mg = magic(4)
place = find(mg>10)
mg(place)=0

魔法陣mgのうち,10より大きい成分の位置がplaceに入り,
mgのうちのplaceに該当する部分をまとめて0に置換できています。

これは,次のように縮めて書くことが多いです。

mg = magic(4)
mg(find(mg>10)) = 0

追記:先程述べた表記を活用すればfindを省略しても以下のように書くことも可能です。

mg = magic(4)
mg(mg>10) = 0

特定の条件に一致する部分を削除

同様に特定の値ではなく [] を代入することで該当する箇所を削除可能です。

例>ベクトルAのうち,0に該当する箇所を削除。

A(find(A==0)) = []

あるいは

A(A==0) = []

どうやらmatlabの仕様上では

Memoryブロックを用いてSimulinkで直前のデータを保持する

Memoryブロックを使おうって話です。
前のタイム ステップでの入力を出力 - Simulink - MathWorks 日本

機能と作成例

Memoryブロックは前回の値をHoldして出力します。
また,初期状態をSetすることが出来ます。

要件

初期状態で出力y=0,入力uがある閾値VALを超えた場合,y=1を出力。
前回y=1が出力されているならy=1を維持。

作成例

ORブロックを使って以下のように組みます。
f:id:ossyaritoori:20170505031327p:plain

注意点

データの型に注意(Boolean型なので直前の入力は論理値であるべきSwitchを使うなどしましょう。)

PCの空き容量が急に減った話(Latex暴走事件)

事件概要

シミュレーションを走らせていたらPCの空き容量がいきなり0になりました。
しかも減ったのは200G近く!

なにを言っているか(略)
f:id:ossyaritoori:20170102010912p:plain

これは仕事どころではない。GWを返せ。

犯人は誰だ

慌てて以下のメモリ新弾ツールを導入しました。
「DiskInfo」フォルダー内のファイル占有率を表示 - 窓の杜ライブラリ
頼むぞ。

これで中身を精査すると下の図のようにメモリの使用率をGraphicalに示してくれます。


なんだなんだ!?

辿っていくと…

どう見てもこいつが犯人やろ…
f:id:ossyaritoori:20170503172412p:plain

ちなみに場所は「C:\Users\<ユーザ名>\AppData\Local\Temp」にありました。

見ると
mY9956.log
等を名乗る謎のlogファイルが出力されていました。

よくよく見るとこれはTexのlogファイルではありませんか。ということで速攻消しました。

原因は何なのか。

logは複数ありよく見るとTexファイルのlogのようです。

以下の文から始まります,
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/W32TeX) (preloaded format=pdflatex 2015.5.19) 3 MAY 2017 01:27
entering extended mode

ちょうど昨日Beamerいじってたあたりです,

元凶のTexファイル

以下のようなTexファイルをコンパイルした結果?こんなログが出ているようです。
ちなみにTemp以下にあるのですが何処から生まれたのかよくわからないです,

なお,これと同じ内容のがたくさんあって正直ブルっちゃいました。
なんなんだ…

\documentclass{article}
\usepackage{filehook}
\usepackage{currfile}
\AtBeginOfEveryFile{\message{^^Jentering file \currfilename ^^J}}
\AtEndOfEveryFile{\message{^^Jleaving file \currfilename ^^J}}
\tracingonline=1
\tracingassigns=1
\usepackage{ajmacros}
\tracingassigns=0
\AtBeginOfEveryFile{}
\AtEndOfEveryFile{}
\begin{document}
\end{document}

そして訪れる平和。

消す際にもずっとpdflatexが該当するファイルをコンパイルし続けていたのでタスクマネージャーからKillして一件落着。

こうしてCドライブに平和が再び訪れたのでした。
f:id:ossyaritoori:20170503174427p:plain

しかし顛末はわからない

platexが延々にファイルをコンパイルしたlogを吐いていたのが原因でした。
Beamerをいじっている時によくわからないプログラムを走らせてしまったのか,
あるいは悪意あるソフトによる攻撃だったのかまだわからないままです。


誰かおしえちくり~~


(完)

追伸

この記事を書きながら問題解決を行っていたため途中文章に乱れがあるかと思います。
「ライブ感」ということで読者の皆様にはお許しいただければと思います。

また,ファイル診断のフリーソフトは結構気に入りました,続投決定です。

MATLABでPDFに余白を付けずに保存Ⅲ(MATLAB)

背景

古来より我々はmatlabの作るPDFのへんてこなことに悩まされ続けてきました。
今までも以下のようなシリーズで様々に悪戦苦闘してきました。

ossyaritoori.hatenablog.com
ossyaritoori.hatenablog.com

他の人のツールを使おう

以下のところからツールを落としてきます。
github.com

使い方 : テンプレ

このツールには主にpubfigとexpfigの2つがあります。
pubfigはfigureを綺麗に整形する機能が,
expfigはfigureを綺麗に出力(保存)する機能があります。

以下その例をば,

%figure定義
hfig=figure(1);
plot(~~);%なんか入れてplotしてね
grid on;
xlabel('frame number');
ylabel('error')
legend('A','B','Location','best')
title('Pyoyon')
pfig = pubfig(hfig);
pfig.LegendLoc = 'best';
pfig.FigDim = [15 11];
expfig('filename','-pdf');

loationをいじるところとか被ってたりするけどとりあえず何も考えなくともキレイな図が出るのが良いですね。

2018年4月追記)最後から二行目のところですが,FigDimという要素が削除されたようなので
pfig.Dimension = [15 11];
と書き換えて実行しましょう。

Figの大きさをいじる。

ソースコードはとても難解でしたがFigDimというクラスでFigureのサイズを司っています。

なおMATLAB公式によるとfigのうちのpositionというハンドルをいじれば変更できます。
https://jp.mathworks.com/help/matlab/ref/figure-properties.html

とりあえずコンパクトなサイズとして以下を使うようにしています,
[横 縦]の順です。

pfig.FigDim = [15 11];

Texでもろもろを綺麗に書くには(小ネタ集)

予め断っておくとこれは宗教です。個人メモです。
あくまでご参考までに。

何番目とかのアレ : nth

\nthというパッケージがあるらしく,
\usepackage{nth}で\nth{2}みたいな感じで書けるのですが…
これは記号には対応していないというポンコツ

そこで,プリアンブルにて,

\newcommand{\ts}{\textsuperscript}

と定義して文中で

$2$ \tf{nd} to $n$\ts{th} 

と書けばこの通り。↓
f:id:ossyaritoori:20170430184742p:plain

これ使いましょう。

転置

転置と言えば
Tや\mathsf{T},\intercal等があるようですが,これは\top一択。

見た目としては\mathsf{T}もなかなかです。(下図左が\mathsf{T},右の転置が\top)
f:id:ossyaritoori:20170430185138p:plain

打ち易さや式におけるスペースの占拠なども考えたらやっぱり\topを使うのが良いでしょう。


他にも何かあれば追加したいです。(追加するとは言ってない)