2013/12/21

ROSでopenni_trackerを使う

ROSでKinectのトラッキングをやってみます.

インストールなどはここを参考にしてください.

openni_tracker - ROS Wiki
http://wiki.ros.org/openni_tracker

そして,次のコマンドを実行していきます.

roscore

roslaunch openni_launch openni.launch

rosrun openni_tracker openni_tracker

しかし,最後のコマンドを実行すると次のようになってしましました.

[ERROR] [1387619206.627480298]: Find user generator failed: This operation is invalid!
ググると,これはNITEがインストールされていないか,されていてもバージョンが古いことが原因だそうです.

よって,以下のサイトからNITE v1.5.2.23をダウンロードしてきました.
OpenNI SDK history | OpenNI
http://www.openni.org/openni-sdk/openni-sdk-history-2/

公式はあまり古いソフトをダウンロードできるようにしてくれていないので,
もしなかった場合はこちらからダウンロードできます.
#こっちはv1.5.2.21です.
Index of /downloads/3rdparty/bin-linux
http://www.mira-project.org/downloads/3rdparty/bin-linux/

解凍して,次のようにインストールします.
sudo install.sh

これで,実行できるようになりました.
しかし,今のままではコンソール上に出力するだけなので,
グラフィカルにできるようにしてみたいと思います.

2013/12/05

Cygwinでゴミ箱を利用するために"trash-cli"をインストールする

Ubuntuではrmの代わりに,trash-cliをapt-getでインストールして使っているので,
Cygwinでも利用できるようにしました.

ちなみにこれはapt-cygとpipを使ってインストールします.

apt-cygが入っていることが前提なので入っていない場合は下の記事などを参考にして入れてください.
○○○○に怖いものなんてない!!: Cygwinにapt-cygを導入する
http://kowaimononantenai.blogspot.jp/2013/12/cygwinapt-cyg.html

まず,apt-cgyでpythonとpython-setuptoolsをインストールします.
python-setuptoolsはpythonでソフトウェアをインストールするときに使うものです.
apt-cyg install python
apt-cyg install python-setuptools

python-setuptoolsをインストールすると"easy_install"コマンドが使えるようになるので,次はpipをインストールします.
pipはsetuptooleよりも簡単にソフトをインストールできるようにするものです.
easy_install pip

これでpipが使えるようになったのでいよいよtrash_cliをインストールします.
pip install trash-cli

これで"trash-put"コマンドなどが使えるようになりました.


参考にしたサイト
rm が消しすぎるので、rm の替わりにゴミ箱に放り込むコマンドが欲しい. - それマグで!
http://takuya-1st.hatenablog.jp/entry/20110726/1311655677
Pythonで一番最初に入れるべきパッケージ setuptools と pip - Life with Python
http://www.lifewithpython.com/2012/11/Python-package-setuptools-pip.html

Cygwinにapt-cygを導入する

Cygwinでソフトウェアをインストールする際にはインストールする際に利用したsetup.exeを利用するのですが,できればCygwin上のターミナルでコマンドでできるようにしたかったので,
apt-cygを導入しました.

導入方法を書いていきます.

まず,前準備でapt-cygを利用するために必要なものをsetup.exeを使ってインストールしてきます.
setup.exeを利用したインストール方法はCygwin自体をインストールするときとほぼ同じで,
ソフトウェア一覧の画面になったときに必要なソフトをインストールする設定にすればいいだけです.
#Cygwin自体をインストールするのと同じようにしても2回目以降はCygwin自体はインストールされず,ソフトだけインストールされます.

setup.exeで次のものをインストールします.
#検索して探すと楽です.
  • wget
  • tar
  • gawk
  • bzip2
  • git
ちなみにgitはapt-cygをダウンロードするときに使います.

apt-cygのプロジェクトは下にあるのですが,
apt-cyg - A command-line software installer for Cygwin - Google Project Hosting
http://code.google.com/p/apt-cyg/

そのサイトで「これからの新しいのはGitHubでフォークしてあるものを使ってください。」というような記述があるので,
その通りにGitHubの方を使います.

フォーク前のGitHubはこちらです。
transcode-open/apt-cyg
https://github.com/transcode-open/apt-cyg

こちらにどのようにフォークされているか確認することができます。
Network Graph · transcode-open/apt-cyg · GitHub
https://github.com/transcode-open/apt-cyg/network

 現時点では"kou1okada"というところのapt-cygが一番活発に変更されているので、
ここのapt-cygを使いたいと思います。
kou1okada/apt-cyg · GitHub
https://github.com/kou1okada/apt-cyg


まず,Cygwinを立ち上げて,
git clone https://github.com/kou1okada/apt-cyg.git
cd apt-cyg
chmod +x apt-cyg

######################################################
# 2013.12.07 追記
# acさんのコメントを参考にして上の記述を変更しました。
# acさん有難うございます。
######################################################

そして,apt-cyg自体をPATHが通るところに置きます.
(/usr/bin にコピーしてもいいですし,リンクを張ってもいいです.)

次にupdateします.
apt-cyg update

何かをインストールしたいときには次のようにします。
下は"vim"をインストールするときの例です。
apt-cyg install vim

他の操作方法はhelpオプションで確認できます。
apt-cyg --help
apt-cyg: Installs and removes Cygwin packages.
  "apt-cyg install " to install packages
  "apt-cyg remove " to remove packages
  "apt-cyg update" to update setup.ini
  "apt-cyg show" to show installed packages
  "apt-cyg find " to find packages matching patterns
  "apt-cyg describe " to describe packages matching patterns
  "apt-cyg packageof " to locate parent packages
Options:
  --charch     : change archetecture (must appear first)
  --use-setuprc      : set cache and mirror with /etc/setup/setup.rc
  --ignore-case,-i   : ignore case distinctions for 
  --force-remove     : force remove
  --mirror, -m  : set mirror
  --cache, -c   : set cache
  --file, -f   : read package names from file
  --noupdate, -u     : don't update setup.ini from mirror
  --ipv4, -4         : wget prefer ipv4
  --help
  --version

これでおkです。




2013/11/23

VC++で「fatal error LNK1104: cannot open file 'kernel32.lib'」となった時の解決方法

VC++2010でコンパイルすると
fatal error LNK1104: cannot open file 'kernel32.lib'
となってしまうことがありました.

ググってみると,
どうやらWindowsSDKの中にkernel32.libがあるので,そこのパスを通してあげればいいようです,
しかし,VC++のライブラリディレクトリを確認すると,
$(WindowsSdkDir)libが,
ヘッダーのディレクトリを確認すると
$(WindowsSdkDir)includeが,
もう設定されていました.

しかし,エラーは出ているので,確認をしてみると,
環境変数で
 $(WindowsSdkDir)が設定されていませんでした.

$(WindowsSdkDir)を手動で環境変数を追加してもよかったのですが,
直接ファイルの場所をVC++のライブラリとインクルードのパスに追加してあげると,
エラーがなくなりました.

これでおkです.

参考にしたサイト
visual studio 2010 - fatal error LNK1104: cannot open file 'kernel32.lib' - Stack Overflow
http://stackoverflow.com/questions/15053337/fatal-error-lnk1104-cannot-open-file-kernel32-lib

c++ - LNK1104: cannot open file 'kernel32.lib' while linking openCV - Stack Overflow
http://stackoverflow.com/questions/18389115/lnk1104-cannot-open-file-kernel32-lib-while-linking-opencv

1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib,'
http://social.msdn.microsoft.com/Forums/vstudio/en-US/3f4d7dcb-f06a-4b5b-80e1-07df9b452457/1link-fatal-error-lnk1104-cannot-open-file-kernel32lib?forum=vclanguage

visual studio 2010 - fatal error LNK1104: cannot open file 'kernel32.lib' - Stack Overflow
http://stackoverflow.com/questions/15053337/fatal-error-lnk1104-cannot-open-file-kernel32-lib

2013/11/19

「エラー: プロジェクトに "ConfigurationGeneral" 規則がありません。」とエラーになった時の解決方法

Visual Studio C++ 2010 でx64用にビルドをすると次のようなエラーになってしまい,ビルドすることができませんでした.
エラー: プロジェクトに "ConfigurationGeneral" 規則がありません。
ググると,次のようなサイトが出てきました.
VisualStudioビルド失敗:エラー[プロジェクトに "ConfigurationGeneral" 規則がありません。] - Blog
http://d.hatena.ne.jp/kudolf/20120121/1327119448

2011-05-07 - Diary of Chiharu - Chiharu の日記
http://d.hatena.ne.jp/chiharunpo/20110507

Visual C++ 2010 Expressでx64 Build - Blog.Takamin.net
http://d.hatena.ne.jp/takaminet/20120120/1327070733

どうやら,「Visual Studio 2010 Service Pack 1」と「Windows SDK for Windows 7 and .NET Framework 4」間で起こる既知の問題らしいです.

確かに,自分のPCはその両方をインストールしています.
Visual Studio 2010 Service Pack 1 で起こる問題についての最新情報
http://msdn.microsoft.com/ja-jp/visualc/gg697159

解決方法としては,ほかのサイトにも書いているように,修正プログラムをダウンロードして実行すればいいようです.
マイクロソフト公式ダウンロード センターから Windows SDK 7.1 用 Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラム をダウンロード
http://www.microsoft.com/ja-jp/download/details.aspx?id=4422

自分の環境でも修正プログラムを実行した後はx64のビルドができるようになりました.

2013/11/17

Visual C++ 2010にfreeglutをインストール

ちょっと前ですが、WindowsにGLUTをインストールしました。

○○○○に怖いものなんてない!!: VC++2010でGLUTのインストール
http://kowaimononantenai.blogspot.jp/2012/10/vc2010glut.html

しかし、GLUTは長い間開発が止まっているようです。
その代わりに現在はfreeglutというものがGLUTを置き換えるような形で開発されているようです。

The freeglut Project :: About
http://freeglut.sourceforge.net/

GLUTにはない機能もあるらしいのでfreeglutをインストールします。


基本的に次のサイトを参考にしてインストールしました。

Windows で GLUT を使う準備をする
http://www.naturalsoftware.jp/blog/2901

freeglutのインストール - ge56@web
https://sites.google.com/site/ge56web/programming/introduction/work1

自分の環境で参考にしたサイトと違うところは
VisualStudio2010でバッチビルドをするときに32bitだけでバッチビルドしたことくらいです。

WinodwsでBoostをソースからインストール

これまでWindowsにboostをインストールする際には"BoostPro"を利用していました。

BoostPro Computing - Advanced C++ Support, Training, and Development - BoostPro
http://www.boostpro.com/

しかし、今回このページに行くと「開発終了」であるというアナウンスが出ていました。
BoostProはコンパイル済みのものをインストールできるので簡単でよかったのですが、
最新のBoostのバージョンは提供されていません。

よって、Boostをソースからインストールしたいと思います。

まず、Boostをダウンロードしてきます。現時点では1.55.0が最新版みたいです。zipで落としてくるのは重くて大変なので、解凍できるソフトをインストールしているなら7zあたりがいいと思います。
Boost Downloads
http://www.boost.org/users/download/

解凍をして任意の場所に置いておきます。
今回は次の場所に置きました。
C:\boost\boost_1_55_0

次にコマンドプロンプトを起動します。
しかし、これは通常のコマンドプロンプトではなく、VisualStudioでコンパイルしないといけないためVisualStudioに付属しているコマンドプロンプトを利用します。
今回はVisualStudio2010 ExpressでBoostを使いたいので

すべてのプログラム ->> MicroSoft Visual Studio 2010 Express ->> Visual Studio コマンドプロンプト(2010)

のコマンドプロンプトを開きます。

先ほど置いたファイルの場所に行き、
bootstrap.bat

をします。これはmakeでいうconfigureみたいなものみたいです。
 これを実行すると次のような表示が出てきます。
C:\boost\boost_1_55_0>bootstrap.bat
Building Boost.Build engine

Bootstrapping is done. To build, run:

    .\b2

To adjust configuration, edit 'project-config.jam'.
Further information:

    - Command line help:
    .\b2 --help

    - Getting started guide:
    http://boost.org/more/getting_started/windows.html

    - Boost.Build documentation:
    http://www.boost.org/boost-build2/doc/html/index.html
 これを見ても分かるように、つぎはb2.exeを実行するといいようです。
加えて、b2.exeを実行するときに一緒にオプションを指定してあげます。

どのようなオプションがあるかは--helpオプションで確認することができます。
このオプションをつけるとしたのような出力が出てきました。
C:\boost\boost_1_55_0>b2.exe --help
Boost.Build 2011.12-svn

Project-specific help:

  Project has jamfile at Jamroot

Usage:

  b2 [options] [properties] [install|stage]

  Builds and installs Boost.

Targets and Related Options:

  install                 Install headers and compiled library files to the
  =======                 configured locations (below).

  --prefix=<PREFIX>       Install architecture independent files here.
                          Default; C:\Boost on Win32
                          Default; /usr/local on Unix. Linux, etc.

  --exec-prefix=<EPREFIX> Install architecture dependent files here.
                          Default; <PREFIX>

  --libdir=<DIR>          Install library files here.
                          Default; <EPREFIX>/lib

  --includedir=<HDRDIR>   Install header files here.
                          Default; <PREFIX>/include

  stage                   Build and install only compiled library files to the
  =====                   stage directory.

  --stagedir=<STAGEDIR>   Install library files here
                          Default; ./stage

Other Options:

  --build-type=<type>     Build the specified pre-defined set of variations of
                          the libraries. Note, that which variants get built
                          depends on what each library supports.

                              -- minimal -- (default) Builds a minimal set of
                              variants. On Windows, these are static
                              multithreaded libraries in debug and release
                              modes, using shared runtime. On Linux, these are
                              static and shared multithreaded libraries in
                              release mode.

                              -- complete -- Build all possible variations.

  --build-dir=DIR         Build in this location instead of building within
                          the distribution tree. Recommended!

  --show-libraries        Display the list of Boost libraries that require
                          build and installation steps, and then exit.

  --layout=<layout>       Determine whether to choose library names and header
                          locations such that multiple versions of Boost or
                          multiple compilers can be used on the same system.

                              -- versioned -- Names of boost binaries include
                              the Boost version number, name and version of
                              the compiler and encoded build properties. Boost
                              headers are installed in a subdirectory of
                              <HDRDIR> whose name contains the Boost version
                              number.

                              -- tagged -- Names of boost binaries include the
                              encoded build properties such as variant and
                              threading, but do not including compiler name
                              and version, or Boost version. This option is
                              useful if you build several variants of Boost,
                              using the same compiler.

                              -- system -- Binaries names do not include the
                              Boost version number or the name and version
                              number of the compiler. Boost headers are
                              installed directly into <HDRDIR>. This option is
                              intended for system integrators building
                              distribution packages.

                          The default value is 'versioned' on Windows, and
                          'system' on Unix.

  --buildid=ID            Add the specified ID to the name of built libraries.
                          The default is to not add anything.

  --python-buildid=ID     Add the specified ID to the name of built libraries
                          that depend on Python. The default is to not add
                          anything. This ID is added in addition to --buildid.

  --help                  This message.

  --with-<library>        Build and install the specified <library>. If this
                          option is used, only libraries specified using this
                          option will be built.

  --without-<library>     Do not build, stage, or install the specified
                          <library>. By default, all libraries are built.

Properties:

  toolset=toolset         Indicate the toolset to build with.

  variant=debug|release   Select the build variant

  link=static|shared      Whether to build static or shared libraries

  threading=single|multi  Whether to build single or multithreaded binaries

  runtime-link=static|shared
                          Whether to link to static or shared C and C++
                          runtime.


Configuration help:

  Configuration file at C:\boost\boost_1_55_0\tools\build\v2\user-config.jam

  This file is used to configure your Boost.Build installation. You can modify
this file in place, or you can place it in a permanent location so that it
does not get overwritten should you get a new version of Boost.Build. See:

  http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html

for documentation about possible permanent locations.

General command line usage:

    b2 [options] [properties] [targets]

  Options, properties and targets can be specified in any order.

Important Options:

  * --clean Remove targets instead of building
  * -a Rebuild everything
  * -n Don't execute the commands, only print them
  * -d+2 Show commands as they are executed
  * -d0 Supress all informational messages
  * -q Stop at first error
  * --reconfigure Rerun all configuration checks
  * --debug-configuration Diagnose configuration
  * --debug-building Report which targets are built with what properties
  * --debug-generator Diagnose generator search/execution

Further Help:

  The following options can be used to obtain additional documentation.

  * --help-options Print more obscure command line options.
  * --help-internal Boost.Build implementation details.
  * --help-doc-options Implementation details doc formatting.

...found 1 target...
しかし、オプションをすべて指定しなくても、基本的には
b2.exe
とオプションなしで実行してもデフォルトで勝手に指定してくれます。
デフォルト以外の値にしたい時だけオプションをつけるといいです。
自分は次のようなオプションを付けました。
b2.exe toolset=msvc-10.0 -j8

自分の環境ではインストールするPCにVisualStudio2010以外にもVisualStudioがインストールされていて、このオプションをつけないとVisualStudio2010ではないものでコンパイルされてしまったので"toolset=msvc-10.0"で2010でのコンパイルを明示しました。
msvc-10.0の10.0のところは
VisualStudio2008 ->> msvc-9.0
VisualStudio2010 ->> msvc-10.0
VisualStudio2012 ->> msvc-11.0
VisualStudio2013 ->> msvc-12.0


のようにして好きなバージョンでコンパイルできます。
また、"-j"オプションはmakeでは定番ですが、コンパイルするときに並列処理で利用するコア数を指定しています。
数が多いほどコンパイルは早いですが、多くてもCPUのコア数程度にしましょう。

並列処理をしてもコンパイルにはある程度時間がかかります。

終わると次のような出力が出てきます。
The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    C:/boost/boost_1_55_0

The following directory should be added to linker library paths:

    C:\boost\boost_1_55_0\stage\lib
これを参考にVisual Studio 2010でインクルードディレクトリとライブラリディレクトリを追加しましょう。
これでおkです。

あとは何かしらネットで見つけたサンプルを実行してみましょう。



参考にしたサイト
Boost開発環境の構築 @Visual Studio 2010 SP1 - 堕(惰)プログラマ開発記録
http://d.hatena.ne.jp/godai_0519/20110520/1305895194

予定外 Windows環境へのBoostライブラリインストール
http://homepie.blog.shinobi.jp/vc--/windows%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AEboost%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

Visutal Studio で Boost C++ Libraries をビルドする - Life like a clown
http://d.hatena.ne.jp/tt_clown/20110323/1300886446#20110323f1

Boostライブラリのビルド方法 - boostjp
https://sites.google.com/site/boostjp/howtobuild

2013/11/16

DreamSparkを使ってVisual Studio Professional 2013を無料インストール(学生向け)

先日、Visual Studio 2013が公開されました。

インストールしようとしたときに「学生はVisual Studio Professional 2013を無料でインストールできる」という記事を見つけました。

【学生は無償】 最新のVisual Studio 2013 を早くも DreamSpark で提供開始! - マイクロソフト 開発者情報ブログ
http://windows-developer.hatenablog.jp/entry/2013/11/01/122130

 DreamSparkというのを経由すれば、学生ならばVisual Studio Professional 2013を無料でインストールできるらしいです。

今までは"Express"を使っていたのですが、無料で使うことができるのなら"Professional"のほうが様々な機能が追加されているのでProfessionalを使ってみようと思います。

以下でインストール方法などを大まかに説明していきたいと思います。


まず、下のURLにアクセスします。
Microsoft DreamSpark
https://www.dreamspark.com/Default.aspx

DreamSparkのアカウントを持っていないときは、まずアカウント登録をします。


アカウント登録をした後に、すぐ 学生であることを検証するページに行くので検証する方法を指定します。
自分は「学校を経由して検証を受けます」を指定して、
学校名を英語で検索するとよかったので、だいたいはこれでおkなのでしょうか。

これで登録は終わりです。
今度はダウンロードをします。





ダウンロードする種類を選択できるようなので
自分は「日本語」の「32bit」を選びました。
なぜか64bitはないみたいですね。
「32bit」の代わりに「32bit Web installer」を選ぶこともできます。
「32bit Web installer」は選択していないのでわかりませんが、
「32bit」だとISOファイルが、「32bit Web installer」だとEXEファイルがダウンロードできるのではないかと思います。



これでダウンロードが始まるのではなく、もう少し作業をしないといけないみたいです。
次の画像の上から書いてある通りにやっていきます。
これをそのままやるとファイルのダウンロードが始まります。
今回はISOイメージをダウンロードしたので、DVDなどに焼いたり、仮想ドライブソフトを使ったりしてインストールします。

インストールすると再起動を催促されるので再起動します。

これでおkです。

これからいろいろ使ってみようかと思います。

2013/11/12

std::accumulateでvectorの合計や平均値を出す(std::accumulateの第3引数について考察もあり)

配列やVectorなどの合計や平均値を求めたい場合に"std::accumulate"という関数を使うと比較的簡単に求められます.

これから,基本的な使い方と,自分がはまったところを説明します.
まず,簡単な使い方は下のコードを見てください.

#include <iostream>
#include <vector>
#include <numeric>

int main(void)
{
  std::vector vec;

  for( int i = 0; i <= 10; i++){
    vec.push_back( i );
  }
    std::cout << "sum = " << std::accumulate(vec.begin(), vec.end(), 0) << std::endl;
    std::cout << "avg = " << std::accumulate(vec.begin(), vec.end(), 0) / vec.size() << std::endl;
}

実行結果はこのようになります.

sum = 55
avg = 5

これを見るとわかると思いますが,
"std::accumulate"の第一引数には配列やVectorの足し始め,
第二引数には配列やVectorの足し終わりを書くと,
その間をすべて足した値が戻り値で帰ってくる.
for文を回して自分で足していくのはミスの元だし,コードが長くなってしまうので,こっちのほうがいいでしょう.

しかし,この関数には第三引数も入れる必要があり,上の例では"0"が入っています.
ネットのリファレンスなどを見るとこのように書いて有ります.
init           initial value of the sum 
std::accumulate - cppreference.com
http://en.cppreference.com/w/cpp/algorithm/accumulate

accumulate - C++ Reference
http://www.cplusplus.com/reference/numeric/accumulate/

つまり,「初期値」です,
この扱いについてはまってしまいました.

説明の前に次のコードを見てください.

#include <iostream>
#include <vector>
#include <numeric>

int main(void)
{
  std::vector<double> vec;

  for( double i = 0.9; i < 5;i++){
    vec.push_back( i );
    std::cout << i << std::endl;
  }

  std::cout << "##########" << std::endl;

  std::cout << "sum1 = " << std::accumulate(vec.begin(), vec.end(), 0) << std::endl;
  std::cout << "sum2 = " << std::accumulate(vec.begin(), vec.end(), 0.0) << std::endl;
  std::cout << "avg1 = " << std::accumulate(vec.begin(), vec.end(), 0) / vec.size() << std::endl;
  std::cout << "avg2 = " << std::accumulate(vec.begin(), vec.end(), 0.0) / vec.size() << std::endl;
}

これを実行すると次のようになります.
0.9
1.9
2.9
3.9
4.9
##########
sum1 = 10
sum2 = 14.5
avg1 = 2
avg2 = 2.9

まず,作っている配列についてですが,はじめに表示された数字がVectorに入っているので,
"std::accumulate"で合計を出したときに出てきて欲しい答えは
0.9 + 1.9 + 2.9 + 3.9 + 4.9 = "14.5"
です.
"sum2"は予想通り14.5になっていますが,
"sum1"は"10"になっています.
この2つの違いは第三引数が"0"か"0.0"かという事です.

つまり,第三引数のinitの値は合計を計算する際の型に関係するという事です.
"0.0"を入れると小数まで計算するという事なので,14.5という戻り値が帰ってきますが,
"0"を入れると整数で計算してしまうので,
0.9 + 1.9 + 2.9 + 3.9 + 4.9
ではなく,整数で丸めた
0 + 1 + 2 + 3 + 4 = 10
という答えが帰ってきてしまうのです.

なので,平均を出すときも合計が間違っているのでavg1は出てきて欲しい答えとは違ってきてしまいます.

よって,合計求める配列やVectorの要素が"int"なら0で良いですが,
"double"や"float"のときは0.0としましょう.

g++を実行するときファイル名とライブラリ指定などのオプションには書く順番がある?

タイトルをなんて書けばいいのかわからなかったので,わかりにくいタイトルになってしまっています.

とりあえず,g++やgccには"-l"でライブラリの指定をすることができます.
例えば,下のソースをコンパイルするときは

#include <iostream>
#include <math .h>

int main(void){
        std::cout << sin(30) << std::endl;
}

このようにコンパイルすることができます.

g++ math.cpp -lm     #ライブラリの指定がファイル名の後でも
g++ -lm math.cpp     #ファイル名の前でもいい

どちらのコマンドでもおkなので,
「別にファイル名と"-l"や"-I"などのオプションには順番は関係ないんだー」
と思っていました.

しかし,
今回Boostのthreadを使ってマルチスレッドを使用とした時に,次のソースをコンパイルしたら...

#include <iostream>
#include <boost/thread.hpp>

void thFunc(void)
{
        std::cout << "thread" << std::endl;
}

int main(void)
{
        boost::thread th(thFunc);
        std::cout << "main" << std::endl;
        th.join();
        return 0;
}

ファイル名がはじめのコマンドはおkでしたが,

g++ thread.cpp -lboost_thread     #これはおk

ファイル名が後のコマンドだとエラーになってしまいました...

g++ -lboost_thread thread.cpp     #これはエラー


#/tmp/ccXxcECw.o: In function `main':
#thread.cpp:(.text+0x65): undefined reference to `boost::thread::join()'
#thread.cpp:(.text+0x76): undefined reference to `boost::thread::~thread()'
#thread.cpp:(.text+0x8e): undefined reference to `boost::thread::~thread()'
#/tmp/ccXxcECw.o: In function `boost::detail::thread_data_base::thread_data_base()':
#thread.cpp:(.text._ZN5boost6detail16thread_data_baseC2Ev[_ZN5boost6detail16thread_data_baseC5Ev]+0x24): undefined reference to `vtable for boost::detail::thread_data_base'
#/tmp/ccXxcECw.o: In function `boost::thread::thread(void (*)(), boost::disable_if >, boost::thread::dummy*>::type)':
#thread.cpp:(.text._ZN5boost6threadC2IPFvvEEET_NS_10disable_ifINS_14is_convertibleIRS4_NS_6detail13thread_move_tIS4_EEEEPNS0_5dummyEE4typeE[_ZN5boost6threadC5IPFvvEEET_NS_10disable_ifINS_14is_convertibleIRS4_NS_6detail13thread_move_tIS4_EEEEPNS0_5dummyEE4typeE]+0x30): undefined reference to `boost::thread::start_thread()'
#/tmp/ccXxcECw.o: In function `boost::detail::thread_data::~thread_data()':
#thread.cpp:(.text._ZN5boost6detail11thread_dataIPFvvEED2Ev[_ZN5boost6detail11thread_dataIPFvvEED5Ev]+0x1f): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
#/tmp/ccXxcECw.o:(.rodata._ZTIN5boost6detail11thread_dataIPFvvEEE[typeinfo for boost::detail::thread_data]+0x10): undefined reference to `typeinfo for boost::detail::thread_data_base'
#collect2: ld はステータス 1 で終了しました
これで数時間はまりました. 上の例のようにどちらでもおkだと思っていたので, 確かにmakefileなどにはファイル名が先に書いて有りますね. まあ,いい勉強になりました. g++やgccではライブラリの指定などのオプションよりもファイル名を先に書きましょう.

2013/11/08

FirefoxのキャッシュをRAMDISKにして高速化する

前回Chrome(Chromium)のキャッシュをRAMDISKにして高速化する方法を書きました。

●Windows
○○○○に怖いものなんてない!!: RAMディスクを用いてChromeのキャッシュをRAMに保存
http://kowaimononantenai.blogspot.jp/2012/09/ramchromeram.html

●Linux
○○○○に怖いものなんてない!!: RAMディスクを用いてChromiumのキャッシュをRAMに保存
http://kowaimononantenai.blogspot.jp/2012/09/ramchromiumram.html

しかし、今のデフォルトブラウザは"Firefox"になってしまったので、FirefoxのキャッシュをRAMDISK化したいと思います。

RAMDISKを作るところは上のサイトと同じなのでFirefox側の設定のみ書きます。

1)
RAMDISK内にFirefoxのキャッシュを置くためのフォルダを作る。

2)
Firefoxのアドレスを書くところに
about:config
と打つ。
「動作を保障できません。」というような感じの警告が出てきますが、「使用する」を押します。

3)
適当なところで右クリックをして
「新規作成」 -> 「文字列」
と進み、

設定名を
browser.cache.disk.parent_directory

文字列名を
先ほど作成したRAMDISK内のキャッシュフォルダ

を入力する。


これでおkです。

参考にしたサイト
【Firefox】cacheの保存場所をRamDiskにする方法 | ハルパス
http://blog.halpas.com/archives/833

2013/11/07

Windows7でWindows SDKのインストールする際に出るエラーの解決方法

Windows7 64bit環境で、Windows SDKをインストールするとエラーが出てしまいました。

インストーラーはここからとってきました
Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 from Official Microsoft Download Center
http://www.microsoft.com/en-us/download/details.aspx?id=8279

Logを見ると最後のほうはこうなっています。
12:13:55 2013年11月7日: [SDKSetup:Error] Config_Products_Install: Windows SDK Setup (failed): Installation of the "Microsoft Windows SDK for Windows 7" product has reported the following error: Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information. Stack:    場所 SDKSetup.Product.ConfigureNewProduct(ManualResetEvent CancelEvent)       場所 SDKSetup.Product.SetupProduct(TaskMode taskMode, ManualResetEvent CancelEvent)       場所 SDKSetup.ProductCollection.SetupProducts(TaskMode taskMode, DownloadManager downloadManager, ManualResetEvent cancelEvent)       場所 SDKSetup.ConfigProducts.DoCurrentTask(TaskMode Task)

いろいろググると情報がありました。
Microsoft Windows SDK for Windows 7 and .NET Framework 4
http://social.msdn.microsoft.com/Forums/ja-JP/97f023ab-5083-476f-a0d3-773370497c53/microsoft-windows-sdk-for-windows-7-and-net-framework-4

Windows SDK for Windows 7.1 をインストールするとエラーが発生する - Microsoft.NET - Project Group
http://www.projectgroup.info/tips/Others/comm_0004.html

I can't install Microsoft Windows SDK for Windows 7 and .NET - Microsoft Community
http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/i-cant-install-microsoft-windows-sdk-for-windows-7/e6bd1572-b750-470d-beec-e904c6fedb87

調べてみると以下の2つが悪さをしているようです。
・Microsoft Visual C++ 2010 x86 Redistributable
・Microsoft Visual C++ 2010 x64 Redistributable


Windows SDKがインストールしようとしている上のソフトのバージョンよりも
元々入っているバージョンのほうが高いとエラーが起きるようです。

#確かDirectXSDKのインストールでも同じようなエラーがありました。
○○○○に怖いものなんてない!!: DirectX SDK June 2010 をインストールしたときに「Error Code S1023」となったら
http://kowaimononantenai.blogspot.jp/2013/07/directx-sdk-june-2010-error-code-s1023.html

Winodws SDKをインストールすると上の2つもインストールされるので(ちょっとバージョンが下がりますが、あまり問題ではありません。)
もともと入っているほうはアンインストールします。

そして、もう一度Windows SDKをインストールすると今度はうまくいくはずです。


#参考にしたサイトではこの作業を行っても別なエラーが出て、
#VisualC++ Compilerのインストールをするチェックを外せばできるようになったようですが、
#自分はこの作業をしなくてもインストールできました。

2013/11/06

ARToolKitのインストール(Windows7 64bit, VisualC++ 2010)

ARToolKitを次のような環境でインストールします。
・Windows7 64bit
・VisualC++ 2010




1)
ARToolKit本体をインストール

まず、ダウンロード
ARToolKit - Browse /artoolkit at SourceForge.net
http://sourceforge.net/projects/artoolkit/files/artoolkit/

解答したフォルダを任意の場所に置く。
(今回はCドライブ直下にしました。)

次は、コントロールパネルから環境変数のPathに次を追加します。
C:\ARToolKit\bin

そして、再起動します。

2)
glutのインストール
ARToolKitは描画などをGLUTを使って行っているのでインストールしないといけません。
Nate Robins - OpenGL - GLUT for Win32
http://user.xmission.com/~nate/glut.html

インストール方法は下記を参照
○○○○に怖いものなんてない!!: VC++2010でGLUTのインストール
http://kowaimononantenai.blogspot.jp/2012/10/vc2010glut.html


3)
vcpvcr71のインストール
(ARToolKitはもう古いので、前のWindowsのライブラリを利用します。
しかし、Windows7では標準で入らなくなってしまったので、個別に入れます。)

まず、ダウンロード
vcpvcr71 (msvcp71.dllとmsvcr71.dll同梱)のダウンロード : Vector ソフトを探す!
http://www.vector.co.jp/soft/dl/win95/util/se435079.html
解凍して、フォルダの中の
msvcp71.dll
msvcr71.dll

C:\Windows\SysWOW64
にコピー。
先ほどの場所でvcpvcr71をダウンロードしてきた場合には、
"vcpvcr71"という"msvcp71.dll"と"msvcr71.dll"がきちんと適応されているかチェックできる便利ツールもついているのでやってみるといいです。
ちなみに、
「msvcp71.dllとmsvcr71.dllはマイクロソフト社の製品です。
・・・・」
とかいてあったらおkです。
その代わりに何かエラーがでたら、適応できていないので、コピーする場所の再確認などをお願いします。

4)
サンプルの実行
Webカメラを挿して、
ためしに、"C:\ARToolKit\bin\simpleTest2"を実行してみましょう。

きちんとできていると思います。

次は"C:\ARToolKit\bin\simpleTest2d"を実行してみましょう。
しかし、これでは次のようなエラーが出てしまうと思います。


「コンピューターにMSVCP71D.dllがないため、プログラムを開始できません。
この問題を解決するためには、プログラムを再インストールしてみてください。」

これは先ほどダウンロードしたDLLのデバック版が入っていないため起きることです。
よってデバック版をダウンロードしてきます。

msvcp71d.dllの無料ダウンロード - DLL-files.com
http://jp.dll-files.com/msvcp71d.dll.html
msvcr71d.dllの無料ダウンロード - DLL-files.com
http://jp.dll-files.com/msvcr71d.dll.html

ちなみに、上のサイトのではインストールする方法というのが2種類ありますが、Fixerを使わず、ZIPファイルの使用(上級向け)
というのを選択したほうがいいです。

そして解凍したら、DLLを同じように"C:\Windows\SysWOW64"にコピーします。

これで、"simpleTest2d"をもう一回やってみると、
きちんと起動していると思います。

まずはこれでおkです。
次はプロジェクトを作って、ARToolKitのヘッダーやライブラリを使えるようにします。


参考にしたところ
Win7(64bit)で初めてのARToolKit インストール編│黒い森から来た少年
http://3335.blog106.fc2.com/blog-entry-103.html
ARToolKit (1): Windows7、Visual C++2010環境でインストール
http://tsujimotter.info/2012/05/14/artoolkit-1/

2013/10/29

OpenCVでMatとIplImageの相互変換

題目のとおりですが,
下のサイトの通りにやったら出来ました.

[C++/OpenCV] cv::MatとIplImageの相互変換|プログラミング備忘録+その他いろいろなブログ
http://ameblo.jp/ns-programming-memo/entry-11229431837.html

UbuntuでSunJava6を使う

ある事情でOpenJDKなどではなく,SunJava6をインストールしないといけない状況が出てきたのですが,

SunJava6ももう古く,あまり情報もありません.
いろいろ試したところ,
もしもインストールしたい時は下に示すような作業を行うといいです.

これはUbuntu10.04,Ubuntu12.04での動作を確認しています.

まず下記サイトからダウンロードします.
flexiondotorg/oab-java6 · GitHub
https://github.com/flexiondotorg/oab-java6

git clone https://github.com/flexiondotorg/oab-java6.git
cd oab-java6
sudo ./oab-java.sh
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin

これでおkです.
synapticでSunJava6のやつを全部インストールしてもいいかもしれません.

次は,SunJava6をJavaのデフォルトにします.
これをしないと,もし他のJavaが入っていた時には,SunJava6を入れても他のやつがデフォルトになってしまっている可能性があるためです.

sudo update-alternatives --config java
sudo update-alternatives --config javac

java -version

うえの2つのコマンドがデフォルトを指定するコマンドです.
したのやつはJavaのバージョンを表示するものですが.これではいっているJavaの確認もすることが出来ます.
こんな感じに出てきたら,SunJava6がデフォルトになっているということです.

 java -version

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

ここに"OpenJDK"とか書いてあったらデフォルトの指定のコマンドをもう一度実行してデフォルトを変えてください.

これでおkです.


C++で"count"という変数が使えない!?

C++でプログラミングしていたときになんかにか"count"という変数を定義して,使っていると

undeclared (first use this function)

error: reference to ‘count’ is ambiguous

とエラーになってしまうことがあった.
訳すと「曖昧だ」や「多義だ」というように取れる.
また,"count"を"count2"など他の変数名にするとエラーが起きないので間違いなく"count"という名前がだめらしい.

チョットぐぐってみると
Cygwinでg++がグローバル関数をはじいてしまう | C・C++のQ&A【OKWave】
http://okwave.jp/qa/q5368929.html

count
ではなく
::count
とすればいいと書いてある.
多分,なんかでcountが使われてて
使うと多義になっちゃうからエラーが出るのかな.

OpenCV使ってたからそこでなったんだろうか.

2013/10/28

g++のインクルードパスやライブラリのパスを見る

g++の現在のインクルードパスやライブラリパスを調べたいということがあるのですが、
そのような時はこちらのサイトを参考にするといいとおもいます。

http://takuya-1st.hatenablog.jp/entry/20120920/1348511712

とてもわかりやすいですが、ライブラリパスを表示する時のrubyのプログラムの部分が理解できていないので、
今度解読して、勉強のためbashにでも直してみたいと思っています。

UbuntuにOpenCV2.3.1をmakeしてインストール

################################################
#結果的にOpenCV2.3.1をUbuntu10.04にインストールすると,
#VIDIOC_DQBUF: 入力/出力エラーです
#libv4l2: error converting / decoding frame data: v4l-convert: error parsing JPEG header: Not a JPG file ?
#というようなエラーが出たり,あまりうまく行かなかったので,
#かわりにOpenCV2.2をインストールして見ましたが,こちらは特に問題はないようです.
#OpenCV2.2のインストールも下記の方法と同じようにして入れることができます.
################################################

UbuntuにOpenCVをapt-getではなく、makeしてインストールします。

Ubuntuは10.04、OpenCVは2.3.1を使います。

まずは、必要そうなものをapt-getでインストールします。
実際にインストールしたのは、下のサイトで意んんストールしているものをかたっぱしからインストールしてみました。

http://tai1-mo.blogspot.jp/2011/08/opencv231-for-ubuntu1004.html
http://www.kkaneko.com/rinkou/opencv/opencvinstalllinux.html
http://www.mori-soft.com/2008-08-15-01-36-37/opencv/90-opencv-21

そして、OpenCVをダウンロードしてきます。
http://opencv.org/downloads.html

今回はMakefileをつくるためにccmakeを使うので、ccmakeをインストールします。
(cmakeでも別にいいです。)
sudo apt-get install cmake-curses-gui

tar xvf OpenCV-2.3.1a.tar.bz2
cd OpenCV-2.3.1
mkdir build
cd build
ccmake ..

としてConfig画面を出します。
何をどのように設定したのかは、さっきのサイトをみて、いりそうなやつを設定してみました。

make -j 4
sudo make install

でおkです。
これで入ったら、
/usr/local/include
にヘッダーが、
/usr/local/lib
にライブラリが入ります。

エラーがでたらその都度対応して、出なくなったら、サンプルを実行してみます。
それもおkなら、下記のサイトでカメラとかいらなそうなサンプルを持ってきてコンパイルできるかどうか試します。

http://book.mycom.co.jp/support/pc/opencv2/c3/opencv_img.html

コンパイルするときのオプションは次のようにします。
g++ -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_core main.cpp

`pkg-config --cflags --libs opencv`とかしてしまうと、apt-getで入っている方のOpenCVが当てられてしまうので注意です。

しかし、この様にすると、自分はこの様なエラーになってしまいました。 

error while loading shared libraries: libopencv_highgui.so.2.3: cannot open shared object file: No such file or directory

ライブラリのpathを-Lで設定しているのに見つけていないようです。

これはこのサイトをみて解決しました。
http://www.ozbotz.org/opencv-install-troubleshooting/ 

echo "LD_LIBRARY_PATH=/usr/local/lib" >> ~/.bashrc
 
これで環境は整いました。 
 

2013/10/27

HTMLでタグの<や>をエスケープする方法

HTMLにプログラムを書くと
<, >
がかけなくて困る時があります.

そんな時にはエスケープしてプログラムに文字として表示して欲しいという事を明示します.

つまり,次のように書き換えればいい訳です.
<   ==>   &lt;
>   ==>   &gt;

例えば,
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

と書きたい時には
#include &lt;opencv2/core/core.hpp&gt;
#include &lt;opencv2/highgui/highgui.hpp&gt;

と書けばいいです.

OpenCVでfillConvexPolyを使って四角形や多角形を描画する

OpeCVの2.xのお話ですが,

OpenCVで任意の四角形や多角形を描画するときにはポリゴンを使って頂点をつなげて描画するみたいです.

初めは下記ので書かれている
cv::fillPoly
を使って書こうと思ったのですが,

描画処理 — OpenCV-CookBook
http://opencv.jp/cookbook/opencv_drawing.html

下記のサイトのfillPolyを見てみると,引数は次のように書かれています.
描画関数 — opencv v2.1 documentation
http://opencv.jp/opencv-2.1/cpp/drawing_functions.html

void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point())

特に2個目の"Point**"とか渡さないといけなくて,なんか変だなと思っていました.

そしてなんとなく上の方を見てみると"fillConvexPoly"というのを見つけました.

void fillConvexPoly(Mat& img, const Point* pts, int npts, const Scalar& color, int lineType=8, int shift=0)

これだとPoint*を渡せばいいのでわかりやすいです.
また,「fillPolyよりも高速で動作する」とも書いています.
勝手に塗りつぶされるのがたまにキズですが,今回は塗りつぶされてもいいのでこれを使います.

"fillConvexPoly"を使ったサンプルプログラムを探したのですが,見つからなかったので,
自分で書きます.

/*****************************************************
    C++  のプログラム(Python版は下に書きます)
******************************************************/

次にプログラムを載せますが,
カメラで画像を取得して適当な4つの点を結ぶ四角形を描画します.
下のは四角形ですが,配列を増やせば多角形もいけます.


#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char *argv[])
{
  cv::VideoCapture cap(0);
  cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
  cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
  
  // カメラがオープンできたかの確認
  if(!cap.isOpened()) return -1;
  cv::namedWindow("Capture", CV_WINDOW_AUTOSIZE|CV_WINDOW_FREERATIO);

  while(1) {
    cv::Mat frame;
    cap >> frame;


    cv::Point pt[4]; //任意の4点を配列に入れる
    pt[0] = cv::Point(100, 100);
    pt[1] = cv::Point(150, 200);
    pt[2] = cv::Point(300, 300);
    pt[3] = cv::Point(400, 100);

    //描画 引数は (画像, 点の配列, 点の数, 色)
    cv::fillConvexPoly( frame, pt, 4, cv::Scalar(0,0,200) ); 
    
    cv::imshow("Capture", frame);
 
    if(cv::waitKey(30) >= 0){
      break;
    }
  }
}


実行結果はこのようになります.




#####################################
#   2015年1月18日 追記
#   コメントでPythonの方のプログラムのリクエストがあったので書きます。
#   Python のプログラム
#####################################
Ubuntu14.04
Python 2.7.6 , python-opencv 2.4.8
で確認しました。

引数などを確認すると
Drawing Functions — OpenCV 2.4.9.0 documentation
http://docs.opencv.org/modules/core/doc/drawing_functions.html#void%20fillPoly(Mat&%20img,%20const%20Point**%20pts,%20const%20int*%20npts,%20int%20ncontours,%20const%20Scalar&%20color,%20int%20lineType,%20int%20shift,%20Point%20offset)

cv2.fillConvexPoly(img, points, color[, lineType[, shift]])

となっています。
同じようにカメラ画像から取得した画像にfillConvexPolyで多角形を描画します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2
import numpy as np

def main():
    cap = cv2.VideoCapture(0)

    while(True):
        #カメラのキャプチャからフレームを取得する
        ret, frame = cap.read()
        #多角形を記述
        contours = np.array( [ [100,100], [100,230], [230, 250], [150,70] ] )
        #fillConvexPolyで多角形を描画
        cv2.fillConvexPoly(frame, points =contours, color=(0,0,255))

        cv2.imshow('Camera Capture', frame)

        #何かキーを押したら終了
        if cv2.waitKey(10) > 0:
            cap.release()
            cv2.destroyAllWindows()
            break

if __name__ == '__main__':
    main()

実行するとこのようになります。
これでおkです。






OpenCVをg++でコンパイルするときのオプション

OpenCVでC++ファイルをコンパイルするときにオプションをよく忘れてしまうのでメモ

g++ `pkg-config --cflags --libs opencv` main.cpp

使うときはこれをコピーしよう

2013/10/25

ShapeCollageを使って大量の画像を自動レイアウト

これまで撮った写真をおしゃれに配置して,一枚の写真を作りたかったのですが,
そのような場合にピッタリなソフトがありました.

Shape Collage - Automatic Photo Collage Maker
http://www.shapecollage.com/

公式の画像にあるように,おしゃれに配置してくれます.

ダウンロード方法とちょっとした使い方を説明します.

今回使ったところ,現在の最新版のVer2.5.3では,
日本語対応などいろいろ改良されていいところがあるのですが,
配置した画像中にロゴが入ってしまいました.

できればロゴは入ってほしくないのですが,
「Ver2.1ならロゴが入らない」という情報があるので,今回はちょっと古いVer2.1をインストールします.

まず,インストーラーをダウンロードします.

ShapeCollage-2.1-Setup
http://www.mediafire.com/download/dwzmmzjmden/ShapeCollage-2.1-Setup.exe

使い方は下のサイトが詳しいです.

コラージュの作成方法
http://itfutaba.hp2.jp/i/00IT-Futaba/Manual/collage/New/guide.htm
唯一,これ通りにいかなかったのは,
画像の追加をドラック&ドロップですることができず,「+」ボタンで追加したくらいです.

#2013.10.27追記
#再度行ったところ,ドラック&ドロップでも画像を追加出来ました.
#これで参考のサイトと全く同様に出来ます.

これでおしゃれに写真をレイアウトできました.

ページビューが100,000を超えたので人気の記事を調べて見ました.

今見たところ,ページビューの数が100,000を超えていました.

こんなブログを見てくれて有難うございます.

記念して,人気のある記事のランキングを載せてみようと思います.


1位
○○○○に怖いものなんてない!!: mp4とm4vの違い
http://kowaimononantenai.blogspot.jp/2012/09/mp4m4v.html

なんとなく書いた記事なのですが,ぶっちぎりで1位ですね.
やっぱりみんな疑問に思っていたのかもしれません.


2位
○○○○に怖いものなんてない!!: Ubuntu13.10の標準プラウザの議論が続く
http://kowaimononantenai.blogspot.jp/2013/06/ubuntu1310.html



これは英語の記事を翻訳したものです.
このような需要もありそうだとわかったので,もっと力を入れていきたいと思います.

3位
○○○○に怖いものなんてない!!: STM32F4-Discoveryの開発環境構築 (EWARM)
http://kowaimononantenai.blogspot.jp/2012/10/stm32f4-discovery-ewarm.html

次はARMマイコンについてです.
ただ開発環境を整えただけですが.

4位
○○○○に怖いものなんてない!!: USBメモリの無料データ復元ソフト
http://kowaimononantenai.blogspot.jp/2012/08/usb.html

これは実際に試してみて,いいものを調べた記事なので,
それなりに高く,良かったです.

5位
○○○○に怖いものなんてない!!: Processingの日本語文字化け解決法
http://kowaimononantenai.blogspot.jp/2013/07/processing.html



これも,案外簡単に解決したものなので,
こんなに高いとは思っていませんでした.


まあ,100,000ビューではこんなかんじでした.
個人的には
○○○○に怖いものなんてない!!: Ubuntu12.04をusb3.0でブート
http://kowaimononantenai.blogspot.jp/2012/08/ubuntu1204usb30.html

あたりが頑張った記事なので,高いと嬉しかったのですが,
そう単純には行かないようですね.

2013/10/15

Ubuntuを起動した時に「vesamenu.c32: not a COM32R image」となったら

Ubuntu10.04のUSBインストーラーを起動したところ,

「vesamenu.c32: not a COM32R image」

となってしまい,OSが起動しなくなってしまいました.

これを直すには,
他のUbuntuでUSBをマウントして,
syslinux/syslinux.cfg


default vesamenu.c32
を
default live
直せば大丈夫です.

参考にしたサイト
Ubuntu(or LinuxMint)上でLinuxMint12 64bitのUSB起動ディスクを作成する - TrinityT’s LABO
http://d.hatena.ne.jp/TrinityT/20120212/1329032660

2013/10/12

Ubuntu10.04でVim7.3を使う

いまでも諸事情でUbuntu10.04も使っているのですが,
デフォルトでは10.04のVIMは7.2なので,もう少しバージョンが高い7.3を使えるようにします.

PPAで追加するだけです.
sudo add-apt-repository ppa:infie/vim-lucid
sudo apt-get update
sudo apt-get install vim

以下のサイトに詳しいことは書いていますが,oneiricのvimをlucidにバックポートしたものらしいです.
VIM lucid backports : Maarten Rijke
https://launchpad.net/~infie/+archive/vim-lucid

これでちょっと新しいvimを使えます.

2013/10/10

セーフモードのコマンドフロンプトでユーザーを追加する

ちょっとPCがおかしくなったので,自分のユーザーのファイルを丸ごとバックアップしたかったのだが,
ログオンしているユーザー自身のユーザーのファイルはなにかと使用中であることが多いので,
別にアカウントをつくって,コピーしたほうがいい.

現時点ではセーフモードでないとログインできない状態なので,
「セーフモードでユーザーを作る」方法を書きます.

1)
起動するときに「F8」を押す.

「セーフモードとコマンドプロンプト」を選択して起動させる.

2)
コマンドプロンプトが出てきたら,
net user <作成するユーザー名> /add
net localgroup Administrators <作成したユーザー名> /add

でAdministratorのユーザーを作ることができます.
で,リブート
shutdown -r -t 5

これでAdministratorのユーザーを追加することができました.

【困っています!】セーフモードでのアカウント作成 - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1062375395

2013/10/03

Windows7 64bitでIPythonを使う

最近になってやっとIPythonというPythonの中でも便利なものを見つけました.
よって,WindowsにIPythonをインストールします.

公式に行くとこのようなインストール方法を進められますが,
Installing IPython — IPython
http://ipython.org/install.html

自分はこちらでやりました.

pip と ipython インストール手引き (Windows編) - secretbase.log
http://cointoss.hatenablog.com/entry/20120531/1338474875

こちらの方がpipで入るし,簡単ですね.

Gimp2.8のツールオプションの一部が空欄になってしまうバグが直っている

かなり前ですが,GIMPが2.8.0になった時に,
インストール版だとツールオプションの一部が空白になってしまうというバグがありました.
GIMP2.8のバグ:ツールオプションの設定項目の数値が消える不具合を直す方法。 | GIMP2の使い方
http://gimp2-how-to-use.blogspot.jp/2012/05/gimp28_06.html

まあ,上のURLにもあるように環境変数を指定すれば治るのですが,
環境変数をあまり増やしたくないので,ポータブル版を使っていました.

しかし,ポータブル版も
右クリックー>gimpで編集
がスムーズにできないのでちょっと使いにくかったです.

そして,今HPを見てみるとGIMP2.8.6が最新版になっています.
今あるバグありのばーしょんは2.8.0なので,
「もしかしたらバグが直っているかもしれない」
と思い,インストールしてみたところ,やはりバグが直っていました.

これでスムーズに画像を編集できます.

2013/09/29

WubiでUbuntuをインストールしたときに"nonetype object has no attribute get_info"とエラーになったら

題名の通り,Wubiをインストールすると

nonetype object has no attribute get_info

というエラーが出てきてしまった.

これの解決策は,あまりいいのかわからないが,
「何回もインストールしてみる」
とインストールできてしまった.

たまに,再起動したり,ダウンロードしなおしたりして,自分は4回目のインストールでうまくいった.


2013/09/27

Ubuntu12.04でTexlive2012を使う

前回、Ubuntu12.10でTexlive2012を使う方法を書きました。
○○○○に怖いものなんてない!!: UbuntuでTeXを使う
http://kowaimononantenai.blogspot.jp/2013/04/ubuntutex.html



これは、Ubuntu12.04のTexliveが2009なので、その問題を回避した方法でした。
しかし、通常はUbuntu12.04を使っているので、仮想であれいちいちUbuntu12.10を使うのは面倒です。

よって、Ubuntu12.04でTexllive2012を使えるようにしました。

下のPPAを入れるとUbuntu12.04でもTexllive2012を使えるようになります。
sudo apt-add-repository ppa:texlive-backports/ppa

そして、この後は前の記事同様、
sudo apt-get install texlive texlive-lang-cjk xdvik-ja

とします。

これでおkです。

TexファイルからDVIにするには
platex sample.tex

DVIを見るには
xdvi sample.dvi

DVIからPDFにするには
dvipdfmx sample.dvi

参考にしたサイト
TeX Live Backports PPA : “TeX Live Backports” team
https://launchpad.net/~texlive-backports/+archive/ppa?field.series_filter=precise













TeXLive2012のインストール(Ubuntu 12.04) — tasusuweb
http://tasusuweb.appspot.com/tex/install_texlive.html

Ubuntu12.10にtexlive2012をインストールする - KRAKENBEAL RECORDS
http://krakenbeal.blogspot.jp/2012/11/ubuntu1210texlive2012.html

installation - How do I install the latest TeX Live 2012? - Ask Ubuntu
http://askubuntu.com/questions/163682/how-do-i-install-the-latest-tex-live-2012


2013/09/25

グラフィックのドライバーをアップデート,または削除する方法

今回,グラフィックスのアップデートを行ったので,作業をメモします.

次の順序でやってください.
また今回はAMDのドライバーですが,基本的にNVIDIAでも同様です.

1)新しいドライバーをダウンロードする.

2)Driver Fusionをインストールする
これはグラフィックのドライバーをPCから完全に消去するために必要なものです.
下記サイトからダウンロードしてインストールする.

Driver Fusion - The Complete Device And Driver Solution
http://treexy.com/products/driver-fusion

3)現在のドライバーをアンインストールする
コントロールパネルから行ってください.
そのあと,再起動です.

4)セーフモードでPCを立ち上げる.
OSが立ち上がるときに「F8」を連打してセーフモードで立ち上げます.

5)セーフモードで立ち上がったら,Driver Fusionで今までのグラフィックドライバーを完全に消去する
使い方は,大体見たらわかりますが,
グラフィック -> AMD をクリックして消せばいいです.

6)PCを通常に再起動

7)新しいドライバーをインストールする.

これでおkです.

参考にしたサイト
【メモ】AMD グラフィックドライバを更新・再インストールする:めそのPCメモ
http://pcmeso.blog.fc2.com/blog-entry-96.html

2013/09/22

VimをNeobundleでプラグイン管理

今までVimでプラグイン管理を行なっていなかったので,
かなり遅いですが,Neobundleでプラグイン管理するようにしました.

ここではNeobundleのインストール方法を書きます .
ついでにNeobundleを使って,vimprocのインストールも行います.
 vimprocはvim内で非同期処理などを行うことができるようになるプラグインで,
いろいろなプラグインを使って行くなら入れておいて損はないものです.

まず,それぞれをgitからクローンします.

mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
git clone https://github.com/Shougo/vimproc ~/.vim/bundle/vimproc

そして,~/.vimrcに次のように追記します.

"""""""""""""""""""""""""""""""""""""""""""""""""
"Neobundle set up
"reference to  https://github.com/Shougo/neobundle.vim/blob/master/README.md
set nocompatible

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
endif

call neobundle#rc(expand('~/.vim/bundle/'))

" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'
" Recommended to install
NeoBundle 'Shougo/vimproc'


filetype plugin on
filetype indent on

NeoBundleCheck
"""""""""""""""""""""""""""""""""""""""""""""""""
これでおkです.

実際にプラグインを入れたい時には
NeoBundle 'Shougo/vimproc'
のような感じで追加します.

通常はこのように書くだけでいいのですが,
vimprocはちょっと特殊でvimproc内でmakeしないといけないです.

なので,次のようにします.

cd ~/.vim/bundle/vimproc
make


実際にNeobundleでプラグインをインストールするときには,
.vimrcに追加して,
 vimを起動して

:NeobundleInstall
:NeobundleUpdate

すればおkです.





参考にしたサイト


vimにプラグイン管理のNeoBundleを入れて、ファイラーNERDTreeプラグインを入れてみる - Fevnirのブログ
http://fevnir-r.hateblo.jp/entry/2013/02/03/020607

neobundle.vim/README.md at master · Shougo/neobundle.vim · GitHub
https://github.com/Shougo/neobundle.vim/blob/master/README.md

Vim - NeoBundleの導入 - Qiita [キータ]
http://qiita.com/puriketu99/items/1c32d3f24cc2919203eb

Vimプラグインの管理にNeoBundleを使う - weblog of key_amb
http://keyamb.hatenablog.com/entry/2013/06/13/164725

Vim-users.jp - Hack #238: neobundle.vim で plugin をモダンに管理する
http://vim-users.jp/2011/10/hack238/

Vim のプラグインを neobundle で行うように変更&プラグインも見直し | Numb.
http://wp.graphact.com/2012/11/09/hello-neobundle-vim

2013/09/18

Ubuntu10.04でThinkpadの「トラックポイントを使ってスクロール」をできるようにする。

Ubuntu10.04でThinkpadのキーボードを使ったときに、「トラックポイントを使ってスクロール」が出来なかった。

できるようにするには下記のサイトと同じように、

ThinkPad X61 + Ubuntu 10.04 トラックポイントでスクロールできるようにする - ありの日記
http://d.hatena.ne.jp/hiro_nemu/20100421/1271859786

 sudo vim /usr/lib/X11/xorg.conf.d/20-thinkpad.conf

で次の記述をしたファイルを作る

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection
 
これであとは再起動をすればおk。 

2013/09/13

Ubuntu 12.04の初期設定 Ver8

/**************************************************************************/
PPAのリポジトリを追加するもの
/**************************************************************************/
●ubuntu-defaults-ja
sudo add-apt-repository ppa:japaneseteam/ppa

●firefox
sudo add-apt-repository ppa:mozillateam/firefox-next

●libreoffice
sudo add-apt-repository ppa:libreoffice/ppa

●gimp
sudo add-apt-repository ppa:otto-kesselgulasch/gimp

●virtualbox
sudo add-apt-repository ppa:debfx/virtualbox


/**************************************************************************/
Unityのインジケータ関連でインストールするもの
/**************************************************************************/
●indicator-multiload
sudo add-apt-repository ppa:indicator-multiload/stable-daily

●indicator-sensors
sudo add-apt-repository ppa:alexmurray/indicator-sensors


/**************************************************************************/
標準のリポジトリに入っているもの
/**************************************************************************/
●vim

●vim-gnome

●terminator

●trash-cli

●chromium

●midori

●synaptic

●openssh-server

●gparted

●ibus-mozc

●gdebi


/**************************************************************************/
その他の設定
/**************************************************************************/
●home直下のディレクトリを英語に
LANG=C xdg-user-dirs-gtk-update

●Dropbox
Ubuntu Software Senterからインストール

2013/08/20

MPC-HCでBlu-rayを再生する方法

PCでBlue-rayを再生する方法です。

自分はMPC-HC(Media Player Classic Home Cinema)を使っているのでこれを使いますが、
違うプレイヤーでもほぼ同じだと思います。

まず、普通にBlue-ray Diskを入れて再生しても再生はできないと思います。
たぶん、
「描画に失敗しました。」

という内容の表示が出てしまいます。

これはBlue-rayの保護がかかっていてPCでは再生できないからです。
なので、保護がかかっているものでも再生できるようにします。

ここでは"Passkey Lite"を使って保護を解除します。

Passkey for DVDとPasskey for ブルーレイの簡単無料版
http://www.dvdfab.jp/passkey-lite.htm

"Passkey Lite"は"Passkey for DVD"や"Passkey for ブルーレイ"の無料版です。

無料版ですが、その代わりに対応しているBlue-rayの保護が制限されているようです。

これをインストールして、再起動して、プロテクトは「Lite (Free)」を選択します。

これであとはBlue-rayを入れるだけで駐在しているPasskey Liteが動作します。
そのあとにいつも通りにプレイヤーで再生すればおkです。

参考にしたサイト
【図説】ブルーレイを無料で再生できるフリーソフト「MPC-HC」の紹介 | よっちーの小屋
http://ironboy1203.blog.fc2.com/blog-entry-100.html

2013/08/06

Ubuntu 12.04の初期設定 Ver7

/**************************************************************************/
標準のリポジトリに入っているもの
/**************************************************************************/

●vim

●vim-gnome

●terminator

●trash-cli

●chromium

●Midori

●synaptic

●openssh-server

●gparted

●ibus-mozc

●gdebi

●Dropbox
Ubuntu Software Senterからインストール

/**************************************************************************/
PPAのリポジトリを追加するもの
/**************************************************************************/
●ubuntu-defaults-ja
sudo add-apt-repository ppa:japaneseteam/ppa

●Ubuntu-Tweak
sudo add-apt-repository ppa:tualatrix/ppa

/**************************************************************************/
Ubuntu TweakでPPAを追加するもの
/**************************************************************************/
●Firefox

●VirtualBox

●GIMP

●LibroOffice

/**************************************************************************/
Unityのインジケータ関連でインストールするもの
/**************************************************************************/
●indicator-multiload
sudo add-apt-repository ppa:indicator-multiload/stable-daily

/**************************************************************************/
その他の設定
/**************************************************************************/
●home直下のディレクトリを英語に
LANG=C xdg-user-dirs-gtk-update

2013/08/04

BIOSの警告音がなったら

先日から
PCを起動するとすぐ、

ピーー。ピッ。ピッ。
ピーー。ピッ。ピッ。

と警告音が鳴りだすようになってしまいました。

初めは何回か強制終了して起動しなおすと直ってしまっていたので、
そのままにしていたのですが、
ずっとこのままにしておくことにもいかないので直そうかと考えました。

PCを起動するとすぐ警告音が鳴ってしまうので
OSの問題ではなくBIOSまでに何か問題があるのではないかと検討を付けて、

「BIOS 警告音」でググると

こんなページを見つけました。
BIOS 警告音一覧
http://www.redout.net/data/bios.html

警告音にもいろいろ種類があって、
そのそれぞれでどこが悪いかを示してくれているんですね。
BIOSすごい!!

ちなみに今回は
ピーー。ピッ。ピッ。
なので、
長 短×2
です。

見ると、、、
グラボ周りに問題があるようです。

さっそくPCを開け、
グラボを取り外したところ、

すごい埃。。。

もしかしたらこのせいかもしれないと思い、
グラボをブロワーできれいに掃除をして挿し直すと

きちんと起動しました。

BIOSってすごいですね。

2013/07/22

Processingでシリアル通信をして"serial is only compatible with the 32-bit download of Processing."とエラーがでたら

Processingでシリアル通信をしたところ

"serial is only compatible with the 32-bit download of Processing."

というようなエラーが出てしまいました.

これはエラーが言っているように,
「32bitのProcessingだけでシリアル通信ができる」
ということです.

現在は64bitのProcessingを利用していたので,
32bitのProcessingをダウンロードして実行したところ,うまくいきました.

すぐ解決したので,大丈夫だったのですが,

できれば,
開発者様には64bitでもシリアル通信ができるようにしていただきたいと思っています.


ProcessingでJMyronを利用してWebカメラの画像を表示させる

ProcessingでWebカメラの画像を表示させるのはそのままではいけないらしく,
「JMyron」を利用することによってできるようになるらしいです.



よって,Webカメラを使えるようにします.

まず,下記のサイトでJMyronをダウンロードしてきます.

Myron (WebCamXtra) - Computer Vision & Well Connected Motion Tracking
http://webcamxtra.sourceforge.net/download.shtml

"Processing Library(Popular)"のところの"Download JMyron 0025"をクリックするとおkです.

そして,

解凍したフォルダの中の"JMyron"フォルダを
C:\Users\(ユーザー名)\Documents\Processing\libraries
の中にコピー.

もし,サンプルプログラムなどもひつようであれば,
解凍したフォルダの"JMyron Example"を
C:\Users\(ユーザー名)\Documents\Processing
などにコピー.
(これは別にどこでもいいです.)

そして,
解凍したフォルダ"Extra DLLs"の中のDLLファイルを
C:\Windows\System32
にコピーします.

これでおkです.

Processingの日本語文字化け解決法

Processingなのですが,
コメント文などに日本語を書きたいと思っても
日本語を書くと文字化けしてしまい,トウフ状態のようになってしまいます.



これでは使いにくいので,日本語をかけるようにします.

やることはこれと同じです.

Programming/Processing/Tips/EnableJapaneseComment - Neareal
http://andorelseif.com/Neareal/index.php?Programming%2FProcessing%2FTips%2FEnableJapaneseComment

C:\Users\(ユーザー名)\AppData\Roaming\Processing\preferences.txt

をバックアップしておきます.

そして,そのファイルを編集するのですが,

editor.font=processing.mono,plain,12

のところを

editor.font=MSGothic,plain,12

とします.
そして,保存すれば日本語が書けるようになるはずです.

ここで,注意点なのですが,

日本語で書いたりなどすると,

文字を打つと出てくるカーソルと,実際に文字が出てくる位置が若干違ってきてしまいます.

これはフォントなどの関係なので,仕方ないところもあります.

特に文字の大きさを大きくしてしまうと,位置のずれも大きくなってしまうので,
12,13くらいの文字の大きさ,またはそれ以下でやると少しはいいと思います.

ダヴィンチ32U(Da Vinci 32U)の初期設定

ちょっとしたことでArduino互換のダヴィンチ32Uを使用することになったのですが,





ダ・ヴィンチ32U with Arduino Bootloader - Da Vinci 32U w/Arduino Bootloader/ATMEGA32U4 - ネット販売
http://strawberry-linux.com/catalog/items?code=25005

正式なArduino製品ではないので,ArduinoIDEでプログラムを作れるようにするには
ちょっと設定が必要みたいです.

ここで注意が必要なのは,上の画像のようにICにシールが貼られているか貼られていないかで
Arduinoのブートローダーが対応かどうかが分かり,
それによって設定が違います.

今回はシールが貼られているArduinoのブートローダー対応の方のお話です.
(最近のものはきちんと対応しているそうです.)

ほとんどここと同じですが...
ダ・ヴィンチ32U with Arduino Bootloader - サポート | ストロベリー・リナックス
http://strawberry-linux.com/support/25005/1465444


(1)ドライバーのインストール
 ここからとってきます.
http://strawberry-linux.com/pub/da-vinci-32u.zip

解凍して,
中の"da-vinci-32u.inf"を右クリック -->> インストール

これでドライバーが入ります.

(2)ArduinoIDEの設定変更

解凍したファイルの中の"readme.txt"もみながら行ってください.

まず,
ArduinoIDE本体の中の
arduino-1.0.5\hardware\arduino\boards.txt
をリネームして退避させておきます.

そして,
解凍したファイルの中の
da-vinci-32u-20130208\1.0.3\boards.txt

arduino-1.0.5\hardware\arduino
の中にコピーします.
(解凍した方のboards.txtはArduinoIDEのバージョン1.03用みたいですが,
ArduinoIDEバージョン1.05でも動作を確認しました.)

そして,ArudinoIDEを実際に開いてみて
 ツール --> マイコンボード
の中に
"Da Vinci 32U"
があるかどうかを確認して,
あったらそれを選択します.

あとはいつものようにデバイスマネージャーでDa VinciのCOM番号を確認して
「シリアルポート」で合わせてあげればいいだけです.



2013/07/15

Buffaloの無線LANを買い替え

今までBuffaloの"WHR-G301N"というものを使っていました。

〈エアステーション エヌフィニティ〉 11n対応 11g&b 無線LANブロードバンドルーター ecoモデル | WHR-G301N
http://buffalo.jp/products/catalog/network/whr-g301n/

これでもそんなに不満はなかったのですが、
唯一言うとしたら、
「有線の速度が100MB」
という事でした。

自分はUbuntuでSambaのファイルサーバーを使っているので、
大きなファイルをローカルに持ってくるときなどはそれなりに遅いなと感じていました。

その時のファイルサーバーの転送速度を調べた記事を確認してみると、

○○○○に怖いものなんてない!!: ファイルサーバーの速度測定
http://kowaimononantenai.blogspot.jp/2012/07/blog-post.html

90MB、
約100MBなのでやはり無線LANが足かせになっているようでした。


ファイルの転送速度アップのため、
今年の正月に安売りしていた無線LANを買いました。
あとで設置しようと思っていたらこんな時期になってしまいました。

Buffaloの"WZR-HP-G450HA"です。

エアステーション ハイパワー Giga 11n対応 11g&b 450Mbps対応 無線LANブロードバンドルーター : WZR-HP-G450HAシリーズ | BUFFALO バッファロー
http://buffalo.jp/product/wireless-lan/ap/nfinity-highpower/wzr-hp-g450ha/#spec

こいつは有線が1GBなので、転送速度のアップができそうです。

こいつを設置して、前の記事と同様のソフトを使って転送速度を測定しました。

用いたファイルが違うので、厳密には比較できませんが、だいたい
700MB後半〜800MB後半
の値が出まして、
簡単に計算すると約9倍の速度になりました。

これで、大きい物をサーバーから持ってこようとしても
それほど時間がかからなく出来そうです。

2013/07/13

.Vimperatorrcのまとめ

自分の設定のデータの
.vimperatorrc
をバックアップします。

"更新履歴
"2013 07 10 Ctrl+aで全選択になるように変更

source! /home/○○○○/.vimperatorrc.local

" vim: set ft=vimperator:

"hintを数字ではなく,文字にする
set hintchars=hjklasdfgyuiopqwertnmzxcvb

"インサートモードの時,Ctrl+aで全選択になるようにする
inoremap  

"自動フォーカスを禁止する
set focuscontent

2013/07/09

Cygwinをインストール(Windows7_64bit)

まず,公式HPからインストーラーをダウンロードしてきます.

Cygwin
http://www.cygwin.com/

何個かある"setup.exe"のリンクをクリックするとダウンロードできます.

"setpu.exe"をダブルクリックしてインストールをします.

いろいろな設定ができますが,
今回はこんな設定でやりました.

○Cheese a download source
→install from internet

○Select Root Install Directry
Root Directry
→C:\cygwin

○Select Local Package Directory
Local Package Directory
→C:\cygwin\package

○Select Your Internet Connection
→Direct Connection

○Choose A Download Site
→ftp://ftp.jaist.ac.jp

○Select Packages
次のものを"install"に変更
Delel
  gcc-core
    gcc-g++
    git
    git-svn
    make

Editor
    vim

Utils
    bzip2
    tar

Web
    wget

ここは自分の好きなようにでいいです.
基本的には一番上のALLが"install"ならすべてのパッケージをインストールします.

そこが"default"なら最小限のパッケージだけインストールしますが,
下の方のパッケージのジャンルから個別に好きなパッケージを"install"にすればインストールができます.

つまり,
・この画面が出て何の設定もせずにそのまま「次へ」を押すと最小パッケージだけインストール.

・ALLを"install"にすると全部のパッケージをインストール.

・ALLは"defualt"にしておいて下の方のジャンルから自分の好きなパッケージを"install"にすると,
 最小パッケージ+選択したパッケージをインストール

になります.

なので,自分は明らかに使うであろう
gcc-core,gcc-g++,make,vim
をインストールにして,
ネットで他の人が初期段階で入れているパッケージの中から
「これは自分も使うかも」というものをinstallにしました.

ここで,たとえ最小パッケージにしたとしても,

・setup.exeをダブルクリックしてインストールパッケージの再設定
・apt-cygで個別にインストール

することができるので,

最初は最小限パッケージか+αがいいかなと思います.
(あとでインストールするのがめんどくさい人や不安な人は全部入りでもいいですが,
インストール時間が長くなってしまうことを考慮しておいてください.)


そのあとはインストールが進みます.

インストールが終わったら
"Cygwin Terminal"
を起動します.

これできちんとターミナルが出てきたらおkです.


参考にしたサイト
http://www.leadtek.co.jp/SpursEngine_SDK-Quick_Start_Guide/install-cygwin.html

http://www.kkaneko.com/rinkou/cygwin/cygwin.html

http://www.ne.jp/asahi/hishidama/home/tech/windows/cygwin.html

http://kouyama.math.u-toyama.ac.jp/main/computer/personal/cygwin/1.7.x/



Unityでデュアルディスプレイにした時にランチャーをすべての画面に表示に表示させる

デュアルディスプレイにした時に左の画面だけにランチャーが出るのではなく,
すべての画面にランチャーを出します.

Ubuntuの電源ボタンから「モニターの設定」を選択します.

すると下のような画面が出てきますが,

わかってしまえば簡単ですが,

NVIDIAの方の設定画面でいろいろやっていて時間がかかってしまいました.
(わかってしまえば,NVIDIAの設定ではなく,Unityの設定の問題ですね.)

2013/07/08

DirectX SDK June 2010 をインストールしたときに「Error Code S1023」となったら

下記のサイトから「DirectX SDK June 2010」をWindows7にインストールしようとしたところ,
http://www.microsoft.com/en-us/download/details.aspx?id=6812

「Error Code S1023」でエラーになってしまいました.
(実際には文字化けでS1023しかわかりませんでしたが...)

ググってみると
stackoverflow.com/questions/4102259/directx-sdk-june-2010-installation-problems-error-code-s1023

どうやら
Microsoft Visual C++ 2010 x86 redistributable - 10.0.○○○

Microsoft Visual C++ 2010 x64 redistributable - 10.0.○○○
をアンインストールするといいらしいです.
(○○○は30319の数字以上)

どうやらDirectX SDKをインストールするとそれらの10.0.30319がインストールされるので,
現時点でそのバージョンより新しいものがあるとエラーになるそうです.

指示通りにアンインストールしてからもう一度DirectX SDKをインストールしたところ,
うまくいきました.

MSが出しているソフトなのでそこらへんはきちんとやってほしい気もしますが,
たぶんちょっとバージョンが落ちたくらいではあまり変わらないと思います.

そのほかの参考にしたサイト
http://hkawashi2.blogspot.jp/2012/03/directx-sdk-june-2010.html

http://redchat.exblog.jp/16828539/

Thinkpad USB トラックポイントキーボード(55Y9024)の初期設定

ちまたでは「ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード - 日本語」が発売されてそちらのレビューなどが増えていますが,
http://shopap.lenovo.com/SEUILibrary/controller/e/jpweb/LenovoPortal/ja_JP/catalog.workflow:item.detail?GroupID=460&Code=0B47181&category-id=3FB2CEB78A0F49D18148731559AF4603&hide_menu_area=yes


「ThinkPad USB トラックポイントキーボード(日本語)」 を買いました.
http://shopap.lenovo.com/SEUILibrary/controller/e/jpweb/LenovoPortal/ja_JP/catalog.workflow:item.detail?GroupID=460&Code=55Y9024&category-id=3FB2CEB78A0F49D18148731559AF4603&hide_menu_area=yes

トラックポイントのついたUSBキーボードがあることを知ったのが最近ですが,
加えて,Bluetoothの新しいものが発売されのを知りました.

そして,新しいキーボードの画像を見たときに,
明らかに今までのキーボードのほうがいいと感じたので
新しいのが出たことで古いのがなくなってしまう前に買いました.


そして,UbuntuではUSBをさせばきちんと操作できるのを確認しました.

しかし,Windowsではドライバーなどをインストールする必要があります.

ではその操作方法を...


まず,ドライバーを取ってきます.
http://support.lenovo.com/ja_JP/downloads/detail.page?DocID=DS013897

ドライバーをインストールすると
コントロールパネル =>> マウス
を開くと,「USB TrackPoint」というタブができますが,
下のように設定をします .
「感度の調整」はそれぞれ好きなようにしていいですが,

もし,この状態でブラウザなどで
「中ボタンを押しながらトラックポイントを上下」
したときに,自分の思い通りにスクロールしないのであれば,
真ん中のところを「オフ」にしておいてください


スクロールが思い通りならこれで終わりですが,
思い通りでないのであれば,別なソフトで動作させます.


下記のサイトから「Wheel Ball」をダウンロードします.
http://kamigaki.la.coocan.jp/wheelball.htm

「WheelBall.exe」を実行します.
タスクバーの右の方にアイコンがでてくるので,
右クリックで設定を押します.

そして,下のように設定をします.
そして,またブラウザなどで
「中ボタンを押しながらトラックポイントを上下」
すると,
ThinkpadのPCの動作と同じような動作になっていると思います.

これでおkです.

2013/06/28

Ubuntuでマウスの速度や感度,マウスカーソルの大きさの変更

マウスの速度や感度は「マウスとタッチパッド」というソフトで設定します.

速度や感度が数字で設定できないのでこのくらいにしましたということを画像で残しておきます.





また,マウスカーソルの大きさも自分的にはもう少し大きい方がいいので,変更します.

まず,「dconfエディター」をインストールします.
sudo apt-get install dconf-tools

起動して,

org =>> gnome =>> desktop =>> interface

と階層を下り,
"cursor-size"
を編集します.

今回は,30にしました.(デフォルトは24)

これでおkです.


参考にしたサイト
http://kometchtech.blog45.fc2.com/blog-entry-1098.html

2013/06/27

W: GPG エラー: http://ppa.launchpad.net lucid Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY ????? と表示されたら

あるPPAリポジトリを追加したら
$sudo apt-get update

をすると,題名のように

W: GPG エラー: http://ppa.launchpad.net lucid Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY ?????

とエラーが出てしまいました.
("?????"のところには追加したPPAに対応した文字列が出てきます.)

表示の通り,公開鍵が足りないようなので追加します.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ?????

("?????"のところにはエラーで出た文字列をそのまま入力します.)

これでもう一度
sudo apt-get update

をすれば,エラーがなくなっていると思います.

参考になったサイト
http://ubuntuforums.org/showthread.php?t=1595977

2013/06/25

FireFoxのアドオンまとめ その1

ChromeからFirefoxにメインを移して数週間経ちますが,
アドオンが数個に増えてきたので,メモがてらに書いておきます.

●アドオンページで入手できるもの
・Gmail Notifier(restartless)
  Gmail用

・Tab Mix Plus
  多段タブしたり,タブを複製しやすくするもの.

・feedly
  次期Google Reader

・Vimperator
  FirefoxでVim.これのために移って来ました.

・Vimperator-ja
  Vimperatorの日本語ヘルプ


●ネット経由でインストールするもの
・Googleアナリティクスオプトアウトアドオン
  Googleアナリティクスに自分の数をカウントしないようにするもの.

  ここからインストール
  https://tools.google.com/dlpage/gaoptout?hl=ja

・ProfilePassword-Firefox
  Firefoxを起動した時にパスワードを要求させる

  ここからインストール
  https://freeshell.de//~kaosmos/profilepassword-en.html#PPFF

2013/06/19

Feedlyでブログの題名をクリックすると変なブログに飛ばされる

Google Readerの代わりにFeedlyを使っているのですが,
まだ見ていない記事の題名をクリックするとそのブログのページにこれまでは飛んでいたのですが,

ちょっと前あたりから
クリックすると
「コンフェデレーションズカップ2013特集 - gooニュース」
というベージに飛んでいってしまっていました.

今までこんなことがなかったので,
「なんだ?なんだ?広告か?」
と思って無視していたのですが,
どの記事をクリックしてもこのブログに飛んでいってしまっている状態だったので
いい加減嫌になってきました.

ググっても同じような人を見つけることができません.

ブラウザはFirefoxの22.0
Feedlyの16.0.500です.

対策としては
Feedlyのアドオンを再インストールすることによって解決しました.

2013/06/18

[翻訳]Ubuntu13.10の標準プラウザの議論が続く

これは6月6日のomgubuntuの翻訳記事です.
元の記事はこちらです.
http://www.omgubuntu.co.uk/2013/06/ubuntu-developer-continue-to-mull-switch-to-chromium

###############################################################

Ubuntu13.10の標準プラウザの議論が続く

 

どのWebブラウザがUbuntu13.10に標準搭載されるべきかの議論について

今のデフォルトのFirefoxからwebkitベースのChromiumに変えるという議論がVirtual Ubuntu Developer Summitの5月に初めて上がった.

Ubuntu Desktop Mailling Listに投げられた議論が続く中で,CanonicalのJason Warner氏は次のことを記述した.

「ここ数週間,私はかなりの数の記事やコメントを見てきた,それを考慮して,いくつかの議論に注目したい」

1.どちらのブラウザがより良いのかということではない.

2.どちらのブラウザがより特典があるのかということではない.

3.オープンであることとフリーであることは,まだ私達のコアな価値の一部である.
しかし,このスレッドが「どちらがよりオープンまたはフリーであるか」という議論に変わるべきではない.

何が重要であるかは共通のユーザー体験だ.
よくある話であるが,どちらのブラウザが一般的なエンドユーザーにとって最良となるのだろうか?

結局どちらがいいのか?

私達は先月に「どちらのブラウザが標準搭載するもととして良いのか」という投票を行った.

8300を超える人々が投票を行い,57%がFirefoxに好意的なのに対し,43%がChromiumを選んだ.

これは,より多くの人々がFirefoxよりChromiumを選んだということ述べる理論的根拠の一部だ.

最後の30日のこのサイトを訪れたLinuxユーザーを見てみると,Firefoxが50.9%,Chrome系が46.8%だった.

Firefoxが勝ったのは,現在標準搭載しているという便利さから来る利益のおかげではないのだろうか?

しかしながら,これは約50%のLinuxユーザーが標準搭載ではないブラウザに流出してしまっているということを示している.

結論

どちらにするのかをきめることはまだできないが,Warner自身はChromiumが優勢だと述べている.

もちろん,結論はどちらのブラウザが標準搭載されるかという問題ではない.

どちらもUbuntu Software Centerからインストールすることが可能なのだから.

あなたはどちらを選びますか?


###############################################################

今は本当にChrome,Chromiumのユーザーが多いですよね.

そんな中で私は今Chrome系からFirefoxへVimperatorを求めて移行作業中なのですが...

自分がFirefoxに慣れてきた頃にデフォルトがChromiumになってしまいそうですね.

自分個人としては,ユーザーの多さなどでChromium優勢かなと思いますが,
どちらにしてもコマンド一発でインストールできるのでどちらでもいいというのが本音です.

加えて,どちらにしてもPPAからよりバージョンの高いものをインストールできるようにしているので,
手間的にはあまり変わりありません.

2013/06/16

Vimにクリップボードからペーストしたときにぐちゃぐちゃになってしまうのを直す

Vimにクリップボードからのペースト(Ctrl+Shift+V)をすると
インデントの関係かわかりませんが
とにかく,ぐちゃぐちゃになってしまうことがあります.

これまでは1行1行直していたのですが,

それを防止する方法がありました.
ペーストをする前に
:set paste

をするといいです.

参考になったサイト
http://blog.layer8.sh/ja/2013/03/04/vim-trouble-shooting/

Vimで書き込み権限のないファイルを編集してしまったら

Vimであるファイルを編集をして
「よし,終わった!」
と思い,":wq"を押したら,
E45: 'readonly' オプションが設定されています (! を追加で上書き)
となったことはないですか?

書いてあるとおりに"!"をつけても書き込めないし,
最近は諦めて,sudoをつけてもう一回編集しなおしていたりしました.

しかし,このようになった場合でもファイルに上書きをすることができます.
:w !sudo tee %

これでおkです.
よかったよかった.

参考になったサイト
http://dev.koba206.com/?p=298

http://blog.layer8.sh/ja/2013/03/04/vim-trouble-shooting/

Vimperatorでヒットに数字ではなく文字を使う

今までChromeでVichromeをつかってChromeをVim化させていましたが,

FirefoxのVimperatorというものがそれなりに前からあり,「ユーザーが多く,完成度が高い,また,奥が深い」ということを聞いたのでやって見ることにしました.

まだ,ちょっとしか使っていませんが,いい感じですね.
"set"も使えて,本当に何でも出来そうです.

".vimperatorrc"で設定を保存しておけたりするところが,Vimっぽくていいです.

ChromeとFirefoxどちらをメインにするか今のところ悩んでいますが.VimperatorのおかげでFirefoxになってしまいそうです.

ここから本題なのですが,
ViChromeでもVimperatorでも,"f" を押すと,どのリンクを押すのかをキーボードで選べるようになっていますが,
その時にViChromeは文字で,Vimperatorでは数字で選ぶことができます.

文字ならば,指のホームポジションから近いので押しやすいですが,
数字だと指を伸ばさないといけないので押しにくい.

しかし,そこでカスタマイズできるVimperatorの力を発揮して,数字じゃなく,文字にします.

まず,
設定は".vimperatorrc"に書くのですが,(Linuxの場合~/にある.)
デフォルトでは作られていないようですね.

勝手に作っても良さそうですが,
Vimperator側でテンプレートを生成してくれるようです.

 Firefoxを開いてVimperatorの入力画面で
:mkvimperatorrc

ネットを見るとこれにかぎらないですが,ちょっとだけコマンドが変わっていたりするので,
バージョンの違いがあるのかもしれないです.
ちなみに使用しているのはFirefox22.0 Vimperator3.7です.

そうすると
~/.vimperatorrc
ができています.

デフォルトはこんな感じなんですね.
set hintchars=hjklasdfgyuiopqwertnmzxcvb

これをすることで123...のところをhjkl....にすることができます.
(ちなみにabcd.....というものもあったのですが,hjkl...のほうが指から近いですし,いいです.)

そして,保存をして,Firefoxを再起動するとおkです.