2012年10月30日火曜日

2つの種類の項目の合計を棒グラフに表す方法

表計算ソフトでデータをまとめていると,例えば,

A,B,C,D という項目があって,

AとBの合計値と,CとDの合計値を比較した棒グラフを作成したいという状況がたまにある.

その方法がわかったので,メモ.




まず,以下の画像のように表を作る.





上画像の赤枠で囲まれた領域を指定して,グラフのアイコンをクリックして,グラフを作成.グラフの作成には,「縦棒」の「積み上げ」を選択する.この時,以下の画像のように,「行列のデータを系列」を指定する.



そして,データ系列のA,B,C,D社の範囲を適切な場所に指定する.この場合は,1月の販売個数から4月の販売個数の範囲(実際に指定した範囲は,$Sheet1.$AJ$78:$AT$77)を指定する.

すると,以下のようにグラフが作成される.



これで,2種類のデータをまとめた合計値を比較するグラフが作成できた.
あとは,ラベルや2つの棒グラフの感覚を狭めればオッケー.



ポイントは,一番最初の画像のような表をつくること.
簡単そうに見えて,意外とわからない.




2012年10月25日木曜日

LibreOfficeにLatexの数式を埋め込む

LibreOfficeのImpressに数式を埋め込む必要があったので,その方法をメモ.

導入した環境は,次の通り.

  • Windows7 (64bit)
  • LibreOffice 3.5.3.2 

  1. TheMaths - LibreOffice Extensionsに行って,Get TexMaths for All platformsをクリックし,ダウンロード.
  2. ダウンロードしたら,ファイルを開くと,自動的にExtensionsのインストールが開始される.
  3. Impress を開いている場合は,一回閉じてから再起動すると,円周率のπがアイコンが表示されているので,クリック
  4. 任意のlatexの数式を記述し,latexボタンをクリックすると,自動的に生成される.

これで完了.

特にエラーもなく,導入はだいぶ楽だった.

本物のlatexと同様の表記になるので,数式が美しく表示される.






2012年7月30日月曜日

子供のころの方がハッカー的だった

ハッカーという言葉の意味は,「うまくやってのける」というhackという言葉から来ている.

成人を迎え,それなりの年月が経つと,何かをうまくやってのけることが難しい.

ちょっとのことでも,ヤル気がなくて手付かずになってしまうことは,ままある.


夏を迎え,ふと,幼少期の頃を思い出す.

私は,作ることが大好きだった.

夏休みの課題に,自由工作があった.

だいたいの生徒は面倒臭がってやらなかった.

しかし,私は日頃から工作をしていたので,その自由工作の課題はとても嬉しかった.

当時は,評価されたいとか,よこしまな気持ちはほとんどなく,自由工作でスゲーのを作ってクラスの奴らに自慢してやろう,くらいの気持ちだった.

子供の気持ちは単純ゆえに純粋である.


工作をしているときに,どうしても材料が足りなくなったりする.

それは,材料費であったり,材料自体があまり売られていなかったりと,理由は様々だ.

当時はまだ子供だったし,材料を親に買ってもらうことも難しかった.

少し凝ったモーター付きの機材を買うにも,3000円くらいしたし,そうそう買ってもらえる値段ではなかったのだ.

また,まだインターネットも一般家庭に普及していない時代だ.

片田舎に住んでいた子供にとって,都会にしか売っていない材料は魅力的だったが,それを買いに,現地に足を運ぶことは難しかった.

今では,インターネットを使って誰でもいつでも商品を購入できる.

安い店を比較したり,未知の材料を探すことも可能だ.

なんとも便利な時代である.


このように,材料が足りなくなると,必然的に何か別のモノで補わなければならなかった.

例えば,簡易的なロボットを作るために,大きな筒のようなものが必要だったことがあるが,そういう時は,代用として,ラップの芯などで補った.

ラップの芯は,汎用性が高く,頑丈で,材質は紙だから加工もしやすかったり,当時にしては,非常にありがたいアイテムだったのだ.

直方体のお菓子のからや,ペットボトルも多いに役に立った.

メジャーなところでは,卵のパックも色々と役に立った.

こうやって,足りないものはどんどんその場にある機材で代用していくのだ.

だから,最後には予想してなかったものができることも,たまにある.

それでも,作っている仮定が楽しかったし,作ったもの自体はあまり重要じゃなかった.


そう,私は当時,「うまくやってのける」というハッカー精神を既に持っていたのだ.

とりあえず,プロトタイプを作る.

クオリティはいきなり高くはできないから,とりあえず作って考える.

わからないことは調べる.

工作に使えそうなものはないか,常に周りを見渡す.

工作に没頭する....


大事な精神はほとんど工作で身に着けていたのだ.

しかし,年月がたち,大人になってからは,ほとんど工作をしなくなった.

足りない材料は,インターネットに売っている.

金もあるから,少し無理をすれば買うことができる.

....そうやってどんどん,離れていったのだ.

いつでも買える状況は,怠惰を招いた.

今の私より,子供の頃の私の方がよっぽどハッカーだった.

いや,みんな昔はハッカーだったのかもしれない.

砂場やレゴブロックで変幻自在にモノを作っていたあのころは,創造的だった.
オリジナリティにあふれていた.

固定観念や常識にとらわれないあの頃は,最上であった.


くだらない作業に追われ,一つのことに集中できなくなってしまっているのか.

固定観念に追われているのか.

色々考えなければならない問題が多いせいなのか.

きっと理由は様々だろう.


子供のような純真な心をもった人の方がハッカーになりやすいのは,とてもよく分かる.

この先,自分がどうなるのかはわからないが,ただひとつ言えることがある.

それは,あの頃の精神は二度と取り戻せない.


子供っぽさはあるが,子供では無い.

大人になるとは,何かを積み減らしていくことなのかもしれない.


そんな寂愁の念を抱きながら,また,夏がくると,そんなことを思い出すのだろう.

今年の夏も暑くなりそうである.

2012年2月8日水曜日

管理者権限がない問題(個人用のメモ)

Windows7の,アクセス許可がありません,管理者権限がありません,という問題に関して.

コマンドプロンプトを実行して,コマンド入力→プログラム実行までの流れで,管理者権限がないということで,拒否された.

以前はこういうことがなかったが,

コマンドプロンプトを管理者として実行すると解決.

管理者としてログインしているはずなのに,なぜこうなるのか・・・.


2012年1月28日土曜日

象と亀の寓話

『私は人々が宗教的信仰を欲するような具合に確実性を欲した。確実性は他のどこよりも数学の中に見出されそうであった。しかし、私の教師たちが私に受け入れさせようとした多くの数学的証明は誤謬に満ちていること、そしてもし数学の中に実際に確実性が見出されうるならば、それはこれまで確実であると思われてきたものよりも堅固な基礎を持つ数学の新しい分野においてであろうという事を発見した。しかし仕事が進むにつれて私は象と亀の寓話を絶えず思い出す羽目となった。数学的世界を乗せる象を作り上げると、私はその象がよろめくのを見いだし、その象が倒れないように保つ亀を作ることに取りかかった。しかしその亀も象と同じく安定ではなかった。そして20年にもわたる非常な労力のあとで、私は数学的知識を疑う余地のないものにすることで自分にできることはもう何もないという結論に達した。』
バートランド・ラッセル,『自叙伝』


(P.J.Davis・R.Hersh"数学的経験",森北出版,1986,p.323)





2012年1月24日火曜日

Processing用のOBJ Loaderの導入

NyARToolkitに3DモデルをAR表示するとなると,Processingにローダーを入れなければならない.

今回導入するのは,.obj形式のProcessing用のローダーである,"saitoobjloader"である.

例によって,Windowsの環境を想定している.

実行環境は,Windows7 (64 bit).


.obj loader for Processing で検索すると,出てくるので,サイトにあるOBJLoader.zipをダウンロードする.

中身を解凍すると,フォルダのなかに,"objloader.jar"というファイルがあるので,そのファイルをコピーして,NyARToolkitのスケッチフォルダの中にある,codeフォルダに入れておく.

これでobj形式の3Dモデルが表示できるようになる.


プログラムのコードの中の先頭に,

  • import saito.objloader.*;
と記述して,外部ファイルをインポートする.

そして,
  • OBJModel model;
と宣言する.

setupの関数の中には,
  • model = new OBJModel(this);       //objファイルのモデル生成
  • model.load("samplemodel.obj");    //samplemodel.objという名前のモデルをロード
このように記述することで,実際にモデルをロードすることができる.

モデルを描画するときは,draw()関数の中に,
  • model.drawMode(POLYGON);    //ポリゴンモデルを生成
  • model.draw();                          //モデルを描画
このように記述する.これで,実際のモデルが表示される.



以上が,objloaderの導入の流れになる.


今回はここまで.







2012年1月23日月曜日

AR.Drone + NyARToolkit for Processing (その1)

AR.Droneから取得したカメラ画像を,NyARToolkit for Processingを使って,3Dモデルをオーバーレイ表示する方法について

今回は,AR.Droneというおもちゃを使って,3DモデルをAR表示してみたので,その手順を書く.

AR.Droneとは,フランスのParrot社が開発したリモコンヘリのおもちゃである.

値段は3万くらいと,おもちゃにしてはそれなりの額だが,できることは多い.

特徴は,

  • iPhone, iPad, iPod nano で操縦できる
  • AR表示ができる
といったところ.

みんながみんなAppleの商品を持っているわけではないので,今回は普通のPCでやることを想定.

Wi-Fiを使用したアドホック通信なので,無線LANが内蔵しているノートPCなどでも操作が可能.

詳しいことは,工学ナビさんなどを見ると良いと思う.非常にわかりやすく解説している.


今回はこのAR.Droneを使ってみようという試み.

しかし,普通にAR.Droneのコードを使うと難しいようなので,今回は,AR.DroneをProcessingで制御することにした.

Processingだと,比較的簡単にソースコードが書けるらしい.また,Processingが動く環境であれば,どこでも実行できるというメリットもある.


主に準備するのは,以下のもの
  •   ARDroneForP5(AR.Droneを制御するためのProcessing用のライブラリ)
  • NyARToolkit for Processing(AR表示するためのツールキット)
  • Processing
  • 3Dモデル(今回は,obj形式のモデルを使用した)
  • マーカー(ARでおなじみのマーカー.いくつか用意しておくと楽.)
実行環境は,Windows7搭載のノートPC.

ネットを調べても,断片的な情報しかでてこないので,もうちょっと具体的に記述していこうと思う.

  1. Processingのインストール
  2. NyARToolkit for Processingのインストール(以前書いた,NyARToolkitの項を参照)
  3. ARDroneForP5のインストール(ただ単に落としてきたフォルダをスケッチフォルダに突っ込むだけ)
  4. Processing用のobjローダをダウンロード,所定の位置にファイルを配置

おおざっぱな流れはこんな感じ.

どのソースコードをメインにしていくかは任意だが,今回はNyARToolkitに付属のサンプルの中にある,"simpleLight"をベースに作っていくことにした.

この"simpleLight"に,制御のプログラムARDroneForP5を突っ込む.Codeフォルダに.jarファイルをつっこみ,あとはソースコードに追加の記述をするだけ.

追加に使用したARDroneForP5のソースコードはサンプルにあった,"ARDroneForP5_Sample"のコード.

この統合が終わったら,最後にobjローダの記述を追加して,3Dモデルを表示できるようにしておく.

詳しいソースコードなどは,また次回.

今回はここまでで.