それほど間違っていないマイクロマウス用語事典2018年版

それほど間違っていないマイクロマウス用語事典2018年版

なにこれ

マイクロマウスをはじめたばかりの人にありがちなのが,大会に行ったものの用語がよくわからなくて,「何言ってんだこいつら」状態になるという問題です. 私が初めてマイクロマウスの大会に参加したのは2013年の学生大会なのですが,その際に審査員の方から「これは重ね探索ですか?」と聞かれて「何だそれは」となったのを昨日のことのように思い出します. また,競技者は当日心の余裕がないので,MCの人にマイクを向けられても観客のことなんかそっちのけで自分が普段使ってる用語で話してしまいがちです.

というわけで,私が「これはマイクロマウス固有の用語だろう」と独断と偏見により判断した語句を,軽く事典ライクにまとめてみました. なるべく一般的な語句を使用して説明しようと試みています. 一部内輪ネタが入ってしまっているかもしれません.すみません.

コメントくだされば2019年版に反映させるかもしれませんが保証はしません.

ちなみにこの記事のネーミングはこちらの書籍をパクっています.

Read More

Share Comments

LaTeX Beamerで図表などの位置を絶対座標で指定する方法

LaTeX Beamerで図表などの位置を絶対座標で指定する方法

概要

LaTeX Beamerを使いはじめるにあたって,はじめにぶち当たる障壁はなんといっても図の配置だと思います. PowerPointやKeynoteといったWYSIWYG系のプレゼンテーション作成ツールに慣れている人がBeamerスライドを見ると,「ここの図をもうちょっと左に動かして」とか,「ここの部分赤丸で囲んだほうが良いんじゃない」みたいな指摘が飛ぶことがあるのですが,楽な方法がなかなか検索しても出てきません.

これまで私は\vspace\hspaceをふんだんに駆使して図を巧みに配置していたのですが,さすがにこれではコードが汚くなりすぎます. というわけでシンプルでかつ効果的な方法を見つけたので書きます.

サンプルスライド:

方法

textposパッケージを利用します.プリアンブルに以下を記述します.

\usepackage[absolute,overlay]{textpos}
  • absolute : textposパッケージを絶対座標指定モードで使用する
  • overlay : 文字の上から配置する

textblock*環境の幅と座標を指定して,中に表示させたい図表やテキストを差し込むだけでOKです.ここで,figure環境を使わないことがポイントです.figure環境を使用した場合,y座標がずれる可能性があります.

% この場合は (230pt, 100pt) の位置に 0.4\linewidth の幅のブロックができる.
\begin{textblock*}{0.4\linewidth}(230pt, 100pt)
    \centering
    \includegraphics[width=\linewidth]{./figure.pdf}
\end{textblock*}

TiKZで描画した図形も同様にして配置できます.

% この場合は (300pt, 180pt) の位置に 0.4\linewidth の幅のブロックができる.
\begin{textblock*}{0.4\linewidth}(300pt,180pt)
    % TiKZを使った図形の描画
    \begin{tikzpicture}
        % 幅 0.7cm, 高さ 0.5cm の楕円を,線幅2pt,色は赤色で作成
        \draw[tangored, line width=2pt] ellipse (0.7cm and 0.5cm);
    \end{tikzpicture}
\end{textblock*}

アスタリスクなしのtextblock環境との違いは値を自由に指定できる点です.textblock環境の方は,変数で設定した値の定数倍の位置に配置するものになっているので,このような用途ではtextblock*環境の方が使いやすいと思います.

さらに踏み込んだTips

  • eso-picパッケージを使ってスライドの上からグリッドを表示することで,座標の決定が楽になります.

    \usepackage[colorgrid,gridunit=pt,texcoord]{eso-pic}
  • layoutパッケージを使うとプレゼンのヘッダやフッタ等のサイズを簡単に調べることができます.配置がうまくいかないときのデバッグに便利です.

    \usepackage{layout}
    
    %...
    
    \frame{
        \layout
    }

まとめ

この記事では,textposパッケージを用いた図表の絶対座標配置の方法とTipsを解説しました. textposパッケージはもともと発表ポスターを作る際の図の配置を便利にしようというモチベーションで開発されたもののようですので,Beamerとの相性も抜群ではないでしょうか. お困りでしたらぜひお試しください.

関連記事: TeXでプレゼン - LaTeX Beamerを使う人のためのTips集

参考

Share Comments

ネタでしかない仮想通貨「円天(Yenten)」をマイニングして暖を取る話

ネタでしかない仮想通貨「円天(Yenten)」をマイニングして暖を取る話

概要

最近身も心も寒いので,とりあえず身の寒さだけなんとかしようと思い暖房をつけるのですが,最近こんなニュース[1]を見てしまったせいで,

暖房ってめっちゃ無駄なのでは??

と思うようになってしまい,マイニングで暖を取る環境を整えようと決意したのが数日前の話です. しかし,BitcoinやBitcoinCash等の有名所の通貨はもはや新規参入に旨味がない上,送金にも時間がかかるし手数料も高いというのが現状です. それはあまりにももったいないので,マイナーなコインを採掘して小銭を得つつ暖を取るというのが今回の目標です.

円天はCPUでマイニングする暗号通貨

あの2000年代後半の 円天事件の円天ではありません

円天事件はこれ↓

擬似通貨「円天」は電子マネーとして使用可能と公開されていた。10万円以上を預け、あかり会員になると「1年ごとに預けた金額と同額の円天を受け取ることができる」「年利100%の金利が払われる」とされ、受け取った円天は、円天市場で利用することが可能とされていた。

擬似通貨ではない 仮想通貨「円天」 は,2017年10月末に登場したばかりのマイナー仮想通貨です. GPUやASICでは生成しづらい種類のハッシュを使用しているため,基本的にCPUでマイニングを行うという特徴があります. わたしはGPUリッチなPCなど持ち合わせていませんので,手元にある非力なノートPCで手軽にマイニングできるのはアドです. また,マイナー通貨なので,記事を書いている時点ではそこそこ掘れています.

Yenten is made for reducing MEGA WASTE of electricity by ASIC on the earth. When this cryptocurrency spreads, reduction of CO2 emission would be realize by Yenten.

概要にCO2排出量削減とかまじめっぽいことが書いてありますが,これは(たぶん)ネタです. ウェブサイトを見ればわかりますが,「円く円天」とか,「どう払うん?」「円天で」とか完全にネタづくしです. 作者の名前も conan-equal-newone (コナンは新一) とかいうやつで,これもたぶんネタです

これで仮想通貨「円天」の魅力を知ってもらえたと思います(?).

ここから先は,実際に円天ウォレットを作成し,マイニングして報酬を得るところまでを説明していきます.

もし万が一この記事が役に立ったのであれば,ぜひチップをはずんでください.
円天アドレス: YjRBHYAcbmGkvGrKWVqFfXFrKHCRMx4gqp

Read More

Share Comments

[rogy Advent Calendar 2017]「うわっ…わたしのMATLABコード、遅すぎ…?」

[rogy Advent Calendar 2017]「うわっ…わたしのMATLABコード、遅すぎ…?」

rogy Advent Calendar 2017 17日目の記事です. 前の記事はもりゅーのV-REPとC/C++で自作ロボットを動かすでした.

「MATLABは遅い」,ほぅ…

MATLABに対する愚痴として有名なのが,「MATLABは計算が遅い」というものです. 曰く,「MATLABはインタプリタ言語だから」とか,「大規模計算向けに作られていない」とか. 実際の話をすると,MATLABはインタプリタ言語ですが最近のバージョン(R2015b〜)ではJITコンパイラを使った最適化が常時走っていますし,並列計算GPU計算によって大規模な計算も難なくこなせるように作られています.

では,コードが遅いのはなぜなのでしょうか?MATLABの問題なのでしょうか?コードを改善するだけで実行速度を速くできないのでしょうか? 今回はそんな問いに答えていきたいと思います.

この記事の内容の多くはOctaveにも使える話かと思いますので,フリーソフトウェア狂のOctaveユーザの方も参考にしてみてください.

また,大抵のテクニックは公式のドキュメンテーション[1]にも書いてありますが,この記事ではさらに掘り下げてマニアックな方法についても説明していきます.

なぜ遅いのか

なぜ手元のコードが遅いのか. それには大きく分けて以下の3つが考えられます.

  1. 反復回数の多いforループを多用している
  2. 配列の大きさを頻繁に変更している
  3. アルゴリズムが悪い

1. 反復回数の多いforループを多用している

MATLABにはループ処理が遅いという欠点があります. したがって,反復回数の多いforループをなるべく削減することが高速化への第一歩になります[2]

2. 配列の大きさを頻繁に変更している

MATLABの配列(行列やベクトル)は,動的にメモリを確保できるように作られています. したがって,たとえば

x = [0 1 2 3];  % x = [0 1 2 3]
x = [x x];  % x = [0 1 2 3 0 1 2 3]

というように,配列の大きさも動的に変更することができます.

しかし,これには変数にメモリを新たに割り当て直す処理が必要となるので,通常の演算に比べて時間がかかります. 2, 3回なら問題ありませんが,これを1000回,1万回と繰り返してしまうと,全体としてパフォーマンスが低下してしまいます.

これを解消するために,zerosones 等のコマンドを使用して,予め必要なサイズのメモリを確保しておくことが推奨されています[3]

3. アルゴリズムが悪い

計算の遅いアルゴリズムを使用してしまうと,実行時間は長くなります(#それはそう). これはMATLAB側ではどうしようもありませんが,MATLABに予め実装されている高速なアルゴリズムを使って,自作の遅いアルゴリズムを置き換えることができる場合があります.


それではどのようにすればこれらの問題を解決できるのか,具体的な例を使って見ていきましょう. また,これらの問題を解決した上でさらに高速化するにはどのようなテクニックが有効かについても解説します.

Read More

Share Comments

2017年マイクロマウスシーズンを振り返って

2017年マイクロマウスシーズンを振り返って

ふりかえり

2017年の新作 “Vert” についてはこちら: Vertマシン紹介

今年は2年ぶりの新作を引っさげて大会巡りをする予定だったのですが,設計が予定通り進まず(平常運転),全日本大会のみでのお披露目となりました.

研究と並行しながらの設計・製作・調整作業に関しては,今年度は良い手応えを得ることができたので,来年以降も少なくとも出場はしていきたいと考えています. つぎは早めに設計をはじめること(大事),作業の見通しを立ててスケジュール管理をもう少しがんばること,なるべくお金と時間をかけない開発方針を立てること,などが課題でしょうか.

Read More

Share Comments