2021年3月31日水曜日

ダークモードを止めてみた

 いろんなエディタなどでダークモードがあるので、ダークモードも使ってみたけど、結局はやめることにした。

一番の理由として「目が疲れる」があった。

論文を読みながらプログラムを作ったりするわけだけど、論文はPDFなのでフォントを自由に変更することができない。論文のフォントはダークモードを前提にしているものではないので、ダークモードだと読みづらい。結果的にPDFはライトモードでエディタがダークモードだと明暗の差に目を合わせるのが頻繁になってしまって、目が疲れてしまう。

やはり、PDFはフォントを変えることができないのが長時間読む場合でも辛いので、なんとかならないものかな、と思ったりしている。



2021年3月20日土曜日

RictyやMigu 1Mを試してみたけど

 それなりにプログラミングをしている時間もあるので、フォントを変更したらもっと便利かもしれない、と思ってやってみたけど、結局ダメだった。

 Ricty Dimished や Migu 1M などが良さそうなので、それを試してみた。(個人的には0は中にドットが入っているものよりもスラッシュが入っているほうが見やすいので、そういうので選んでみた。)

 確かに見やすくはなったのだけど、これらのフォントでは自分の環境では

 εが正常に表示できなかった。 

自分のプログラムでは0とOやIとlと1を見間違えることはほぼないので、それらの差が見た目で分からなくても対して困らないのだけど、さすがに \epsilon が \cdot になってしまうのは致命的なので、結局フォントはデフォルトに戻した。

たぶん自分の環境で上手くいかないだけで他の環境では上手く表示できているんだろうけど、逆にどうやって解決したらいいのかが情報収集できず断念。

個人的には Migu 1Mは見やすいと思う。



2021年3月4日木曜日

ヤマザキ 春の最適化まつり

「ヤマザキ 春のパンまつり」では、各パンに点数がついていて合計点数が28点を超えるとお皿を1枚もらえる、ということになっている。

 こうなると最適化の視点では当然のことながら「1枚もらえる最小金額がいくらだろうか ?」というのが気になってくる。

そこでサクッとJuliaで最適化を行ってみた。

[1] まずはデータが必要ということで

https://gameboku.com/archives/21020003.html

に纏めてくれてあるデータを使わせてもらうことにして

 【表1】全対象商品(338品) 点数・カロリー効率一覧

の表部分をExcel にコピー&ペーストして UTF-8 の CSV として保存する。ファイル名については、今回はあまり深く考えずに Book1.csvとしておいた。

[2] 以下の Julia コードを実行する。

==========================

using CSV
using DataFrames
using JuMP
using GLPK
using LinearAlgebra

df = CSV.File("Book1.csv", header=true, delim=',') |> DataFrame

point = df.得点
price = df.価格
name = df.商品名
n = length(price)

model = Model()
set_optimizer(model, GLPK.Optimizer)
@variable(model, x[1:n]>=0, Int) # 商品は整数個
@constraint(model, dot(point, x) >= 28)  # 合計28点以上
@objective(model, Min, dot(price, x)) # 合計金額を最小化

optimize!(model)

x_value = Int.(value.(x)) # 最適解を得る
optimal_value = Int(objective_value(model)) # 最適値を得る

nz_index = findall(x_value .!= 0) # 0 個になっていないところのみを抜粋

println("--最適合計金額 = $(optimal_value)円")
println("--最適解--")
for index in nz_index
    print("$(name[index])")
    print("[$(point[index])ポイント, $(price[index])円]を")
    print("$(x_value[index])個購入する")
    println()
end

==========================

 [3] 結果を見る

プログラムにバグとかがなければ、これで求めることができる。

Julia を使うのが面倒であれば、Excel のソルバーを使っても同様に求めることができる。

ちなみに、点数が0.5,1.0,1.5,2.0,2.5と0.5点刻みとシンプルなので、最適解も結構シンプルな組合せになるようだ。


2020年11月26日木曜日

TeXLive の10%しか使ってない

TeXLive を 2020 に上手く更新できなかったので再インストールすることした。

scheme を full にして完全インストールすると5GB以上のディスクを消費するが、試しに scheme を basic にしてインストールしてみた。

もちろん、いろいろと足りないパッケージがあって、例えば algorithm.sty が入ってなかったので、

$ tlmgr search --global --file algorithm.sty

として algorithms パッケージを特定して、これをインストールしてみた。

$ tlmgr install algorithms

他にも足りないものがあれば逐次インストールして、あと platex も入ってなかったのでplatexもインストールしてみた。

結果的には500MBぐらいの容量だけで自分が使っているTeXソースをコンパイルできた。

どうやら、自分のところではTeXLiveの機能の10%だけで十分なようだ。

 


2020年11月18日水曜日

ssha (sshでなくて)

Termuxを使っているときに気がついたけど、ssh だけでなく ssha  というコマンドもあり、これが結構便利。

ssha  の場合は、https://wiki.termux.com/wiki/Remote_Accessにも 書かれている通り、

ssh-agent を自動的に処理してくれることになっており、例えば

 $ ssha server01

としてsshのパスフレーズを入力してserver01 にログインした後に、もう一度 Termux の別のセッションから

 $ ssha  server01

とすると、今度はパスフレーズの入力を省略してログインできる。


片方のセッションでエディタを使っていて、もう片方でコマンドラインで実行する、と言ったときに便利。(似たようなことは screen コマンドで複数のウィンドウを使ってもできるけど。)

 


2020年9月25日金曜日

Matlab の mex のための gcc 6.3.0 のコンパイル方法

 Matlab R2020a のmexでコンパイルするには、gcc のバージョンが6.3.0とかなり古いものが必要となるが、gcc 6.3.0 はそのままではgcc 10.1.0 ではコンパイルできなかったので(途中でエラーが出る)、コンパイル方法をメモしておく。

$ wget http://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-6.3.0/gcc-6.3.0.tar.gz

$ tar xzf gcc-6.3.0.tar.gz

$ mv gcc-6.3.0 gcc-6.3.0-source

$ cd gcc-6.3.0-source

$ ./contrib/download_prerequisites

$ cd ..

$ mkdir -p build

$ cd build

$ ../gcc-6.3.0-source/configure --prefix=[インストールパス]/gcc-6.3.0 --disable-multilib --disable-libsanitizer

$ make


make が途中で止まったら、

emacs +61 x86_64-pc-linux-gnu/libgcc/md-unwind-support.hn

struct ucontext *uc_ = context->cfa;

ucontext_t *uc_ = context->cfa;

とする。


これで再度 make をする。

$ make

また停止したら、 `find . | grep java-signal.h`

./include/java-signal.h:31:10: note: forward declaration of ‘struct _Jv_catch_fpe(int, siginfo_t*, void*)::ucontext’

   struct ucontext *_uc = (struct ucontext *)_p;    \

の部分を

   ucontext_t *_uc = (ucontext_t *)_p;    \

にする。   


これで再度 make をする。

$ make

あとは make install する

$ make install 


インストールした後の環境変数の設定方法としては、

export PATH=[インストールパス]/gcc-6.3.0/bin:$PATH

export LD_LIBRARY_PATH=[インストールパス]/gcc-6.3.0/lib64/:$LD_LIBRARY_PATH

とする。

2020年3月11日水曜日

Dropbox paperのダークモード

Dropbox paper が LaTeX 表記を使えるので、他の人に送りたい簡単なメモなどにつかっったりしている。
いつごろかダークモードにできるようになって、自分のPCではダークモードになっているのだが、困ったことに切り替えボタンが見つからない。。。
ダークモードと普通のモードの切り替えができずにどうしたものか。。。