キックボード買った!

キックボードが欲しい

JD RAZOR MS-185 ホワイト

JD RAZOR MS-185 ホワイト

自転車より手軽な乗り物が欲しくてキックボード(JD Razor MS-286)を購入しました。ブームはとっくに終わってるし、物珍しいので目立つし、大人が乗ってたら冷たい目で見られること間違いありませんが、気にしたら負け!どうしても乗りたかったので購入しました。キックボードは子供のおもちゃというイメージが強いですが、大人向けの格好いいモデルも発売されています。ここではキックボードを普及させるべく、今回調べたことをまとめ、キックボードの魅力や選び方について紹介します。

キックボードの使い道

キックボードは単に遊ぶだけじゃなく、近所を気軽に散歩したり、車に積んでアウトドアに持って行ったり、通勤に使ってる人もいるみたいですね。小さいので電車に持ち込むことができるし、駅からキックボードで目的地まで楽々移動なんていうのもいいですね。構造がシンプルなので改造しやすく、改造を楽しんでいる人もいるようです。ちなみに私は最終的にトリックしたり、痛キックボード化するのが目的です。楽しみが広がります!

ただし交通量が多い所ではキックボードの使用を避けてくださいね。街中で使うのは正直グレーな部分がありますね。自転車も本来は歩道を走ってはいけないのと同じような感じだと思います。

キックボードの種類

今回私が購入したのはJD Razor MS-286というもので、amazonで8000円でした。キックボードは安いものだと3000円くらい、高いものは数万円します。単純にキックボードといってもさまざまな種類があります。

人力キックボードと電動キックボード

キックボードというと足で蹴って乗るものを想像されると思いますが、電気で動くキックボードもあります。また電動のものだけでなく混合ガソリンを使うもの、ガスボンベで動くものもあるようです。自動で動くかどうかの違いですが、人力のキックボードと電動のキックボードは特徴が大きく異なるため利用目的が変わってきます。一番の違いは車体重量です。人力キックボードは3kgですが、電動のものは軽量のものでも10kg、大きい物になると30kg以上あります。電動のものを手に持って電車で運ぶことはまず無理でしょう。車で運ぶのも辛いかもしれません。手軽さを比べると

徒歩 > 人力キックボード > 折りたたみ自転車 > 自転車、電動キックボード > 原付バイク

といったところでしょうか。

電動キックボード
電動キックボードはちょっとした原付みたいなものなのです。例えばこちらの電動キックボードは8万円で販売されています。

これより安いものもあります。電動の特徴は次の通りです

  • 人力のものに比べてはるかに重い
  • 速度
    • 時速はモーターが100Wのもので15km(人間の小走り)くらい、500Wのものだと25km(チャリでとばした時)くらい
    • スペック的に30km出せたとしても、危ない&恐いので最高速度まで出すことはないと思われ

電動キックボードの説明はこの辺にしておいて、次から人力のものについて説明していきます。

キックボードの形状

キックボードといっても形状はさまざまです(ちなみに本来はキックスクーターと呼びます)。
次のキックボードが最も一般的な形状ですが、その他にも変わったキックボードがあります。

サドル付きのキックボード

中にはサドル(イス)の付いているキックスクーターがあります。自転車からペダルをとったところを想像してください。要するに足で蹴って進む自転車です。これはキックバイクと呼ばれるもので、キックボードとは若干違うものです。

次のバギークロスはサドルはついてないもののキックボードというよりはキックバイクです。折りたためないのがネックです。

ペダル付きのキックボード

通常キックボードは足で蹴って進みますが、ペダルで蹴って進むものもあります。ペダルというと自転車のようなペダルを想像されると思いますが、踏みこむタイプのペダルです。ペダルを踏めば進むので地面を蹴る必要がありません。もちろん足で蹴って進むキックボードがほとんどで、ペダル付きのキックボードは少数です。

ウィール(タイヤ)の数

通常は2輪ですが3輪のものもあります。3輪のものは倒れず自立します。

予算とブランド

キックボードを選ぶには予算から考えるのがてっとり早いと思います。予算が1万円以下の場合、国内ブランドのJD Razorがおすすめです。JD Razorのキックボードは品質が良く、商品のレパートリーも多いため自分に合った1台が見つかるでしょう。またパーツも充実しています。

公式ホームページ(動画が流れます)

5千円程度であればJD Razorの廉価版の最も標準的なモデル(JD BUG MS-101)あたりがおすすめです。

JD BUG MS-101A ブルー

JD BUG MS-101A ブルー

予算がさらに少ない場合はKaiserのブランドを選択すると良いと思います。amazonで検索すると出てきます。


逆に予算が1万円以上ある場合、海外ブランドのものを選択できます。Micro Mobility Systems、Xootr 、K2、Ciro、Fuzionなど、海外ブランドはいろいろあります。高価な製品も多い分、格好いい製品、高品質な製品がたくさんあります。

次のキックボードはMicro Mobility SystemsのMicro Scooter Whiteです。白が格好いい!

マイクロ・ホワイト/ Micro White 【キックボード】(正規輸入品)

マイクロ・ホワイト/ Micro White 【キックボード】(正規輸入品)

最速のキックボードが欲しい方はXootrというブランドの製品をおすすめします。
参考 けんけんの買い物ブログ-121 Xootr kick scooter 編

選び方

ウィール(タイヤ)

キックボードを選ぶ際、最も重要なポイントはウィールです。まずウィールのサイズによって安定性が変わってきます。ウィールが大きい方が安定性が高く、速くなります。逆にウィールが小さいと溝にはまる危険があります。一昔前にキックボードが流行った時は4インチ(100mm)のウィールが主流でしたが、最近は5インチ(125mm)、6インチ(150mm)といったウィールの大きなものが流行っているようです。

ウィールが小さい場合は小回りが効きます。また持ち運びの際に有利になります。ただし、持ち運ぶと言ってもさほど大差は無いでしょう。街を走るならウィールの大きい物、トリックをしたいならウィールの小さいものを選ぶといいと思います。

ウィールの硬さも重要になります。通常のウィールは硬いプラスチックですが、もう少し柔らかいものや、自転車のようにゴムタイヤに空気を入れるものもあります。ウィールが硬いほど速度がでますが、硬いぶん地面からの振動が伝わりやすくなります。

ブレーキ

通常のキックボードのブレーキは後輪を踏むようにして使うタイプ(フェンダータイプ)ですが、自転車のようにブレーキレバーを握るタイプもあります。また後輪だけでなく、前輪にもブレーキがついているものもあります。

その他
  • 車高。身長が高い方は車高にも気をつけましょう。
  • 耐荷重。自分の体重が大丈夫か確認してください。
  • サスペンション。衝撃を和らげるためにサスペンションのついているものがありますが、ウィールほど重要ではありません

サスペンションやエアタイヤのように衝撃を吸収する仕組みがついているものは速度の面で劣ります。極端な話タイヤを金属製にしたら相当速いでしょうが振動で乗り心地は最悪でしょうね。また多くのキックボードは折りたたみ可能ですが、これも速度を出そうと思うと不利に働きます。広げたときになるべくガッシリしてるものを選びましょう。最速と名高いXootrのキックボードは多分この辺をしっかりクリアしてると思います。

おすすめ

ウィール(タイヤ)の大きいキックスクーターをおすすめします。溝などにはまりにくく安定して走ることができます。

8インチ(200mm)ウィールのキックボードです。amazonのコメントにも記載されていますが、安定性が抜群です。

JD RAZOR MS-185 ホワイト

JD RAZOR MS-185 ホワイト

8インチ(200mm)ウィールのキックボードです。上記の製品とは違って自転車のようなエアタイヤなので衝撃にも強く、街を快適に走れること間違いなし。

JD RAZOR MS-138 OFF ROAD エアータイヤ ブルー

JD RAZOR MS-138 OFF ROAD エアータイヤ ブルー

こちらも8インチ(200mm)ウィールを採用。プラスチック性のウィールなので上記の製品よりも速いと思います。値段は少し高くなりますが、デザインも格好良く、私も次はこの製品を狙ってます。

Micro Scooter Black(キックボードブラック)

Micro Scooter Black(キックボードブラック)

最後に

キックボードの紹介はここで終わりですが、また改造や面白いネタがあれば書いて行きます!

Hadoop入門者向けの注意点とかコツ(2)

前回クラスタの構成について述べました。今回はプログラミングを行う上での注意点について書いていきます。

プログラミング環境

Eclipseでプログラミングする場合について述べます。

  • Eclipse Pluginは動かない
    • /opt/hadoop/contrib/eclipse-plugin/にEclipseプラグインが入ってるんですが、このプラグインを使ったプログラムの実行、HDFSの操作はエラーが出てできませんでした。ただMapReduceプロジェクトを作成するとき必要なライブラリパスを追加してくれるのは楽です。
  • 擬似分散モードでプログラムを動かす場合、通常の実行(Java Application)でもok.
  • 完全分散モードでプログラムを動かす場合、通常の実行(Java Application)でもokなときもある.
  • 完全分散モードで正しく動かすにはjarファイルにまとめてから実行する必要がある
    • これを簡単に行うにはantの設定が必要

antの設定は以下の通り

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="develop" basedir="./">
	<description>Hadoop開発用</description>

	<property name="src-dir" value="./src" />
	<property name="bin-dir" value="./bin" />
	<property name="jar-dir" value="./jar" />
	<property name="jar-file" value="${jar-dir}/sample.jar" />

	<property name="hadoop-bin-dir" value="/opt/hadoop/bin" />
	<property name="hadoop-dir" value="/opt/hadoop/" />

	<property name="target-class" value="rulebase.hadoop.main.Main" />

	<target name="develop" depends="remove-jar,jar,run">
	</target>

	<target name="jar">
		<echo>make jar</echo>

		<jar jarfile="${jar-file}">
			<fileset dir="${bin-dir}" includes="**/*.class" />
			<fileset dir="${hadoop-dir}" includes="**/*.jar" />
		</jar>
	</target>

	<target name="remove-jar">
		<echo>remove jar</echo>
		<delete file="${jar-file}">
		</delete>
	</target>

	<target name="run">
		<exec executable="/opt/hadoop/bin/hadoop">
			<arg value="jar" />
			<arg value="${jar-file}" />
			<arg value="${target-class}" />
		</exec>
	</target>
</project>

テスト方法

この順番でテストします。HDFSはファイルの準備にとても時間がかかるので最初はローカルファイルを利用してテストしましょう。

  1. ローカルファイルを利用して擬似分散モードで実行
  2. HDFSを利用して擬似分散モードで実行
  3. HDFSを利用して完全分散モードで実行

なお完全分散モードの場合、タスクトラッカーでSystem.out.printlnを記述していてもメッセージは表示されません。メッセージを出力したいのであれば、HDFS上のファイルを利用するのがいいと思います。

プログラミングの注意点

  • Configureオブジェクトの扱い方はこのフレームワークの肝なのでよく勉強しておきましょう
    • デフォルト設定が存在する
    • Toolを使うとxmlファイルから設定を読み込める
    • 後からプロパティを設定できる
  • MapReduceのライブラリは新しいAPIと古いAPIの2種類あります。古い方はorg.apache.hadoop.mapred、新しい方はorg.apache.hadoop.mapreduceに入ってます。古いAPIはとても使いにくいので新しいAPIをおすすめします。
  • プログラム中で絶対パスやホストの決め打ちを利用しないようにしましょう。例えばhdfs://localhost:9000/user/hadoopやfile://home/hadoopです。環境が変わっても実行できるようにしておいてください。
  • key、valueにはWritableインタフェイスを実装したものしか使えません。よくkey,valueには任意のデータが使えるとありますが誤解を招く表現ですね。
  • map関数を実装しているクラス、reduce関数を実装しているクラス、それらを呼び出すクラスは別のVM上で動きます。そのためオブジェクトを共有することができません。
    • 簡単な文字列ならConfigurationオブジェクトを通じてmapのクラスやreduceのクラスに渡すことができます
    • オブジェクトを渡したい場合はシリアライゼーションして渡す必要があります
  • reduce関数のIteratorで取得できるオブジェクトは全て同じものです。next()を呼び出すたびにオブジェクトの値が変わるだけです。別の値で保存したい場合、オブジェクトをcloneしてください。
  • reduce関数のIteratorは1回しか回すことができません。2回以上回したければリストなどに保存しておいてください。

プログラムの実行時

java.lang.IllegalArgumentException: Wrong FS:
hdfs://host:9000/user/hadoop/file  Expected file:////

上のようなエラーがよく出ると思います。これはローカルファイルを期待していたのに、指定されたのがHDFSのファイルだという意味です。Configureのfs.default.nameで指定したファイルシステムを使う必要があります。


以上です


Hadoop入門者向けの注意点とかコツ(1)

修論やっと終わりました…死ぬかと思った。Hadoop MapReduceを利用してちょっとしたことをやったんですが、いろんなところで躓きました。Hadoopには「簡単 大規模 分散処理 なんだかすごい魔法の技術」っていうイメージを抱いていましたが、ぜんぜんそんなことないです。実装すごい大変でした。これからHadoopMapReduceをやってみようって人のために僕が躓いた所をまとめておきます。

最初に読むべきドキュメント

公式のチュートリアルを読みましょう。バージョンごとにドキュメントが違うので注意してください。英語が苦手だなって人は、日本語のドキュメントを読みましょう(ただし0.20まで)。でもHadoopはトラブルがガンガン起こると思うので、そんなときに英語も頑張って読むぞって人じゃないとHadoopでプログラミングするのは難しいです。

さらに詳しいドキュメントが欲しければオライリーの第二版Hadoop(通称象本)、またはHadoop徹底入門を読みましょう。

Hadoop 第2版

Hadoop 第2版

Hadoop徹底入門

Hadoop徹底入門

それ以上の中級者だとNTTデータのHadoop報告書オライリーHadoop MapReduce デザインパターンですかね。

クラスタの構成

Hadoopをインストールします。OSはUNIX系統が必要です。cygwinを使えばWindowsでもいけるみたいですが、ややこしそうなのでLinuxがいいとおもいます。いろんなサイトをみてるとCentOS(Red Hat系)がよく使われていました。私はOpenSUSE11(Red Hat系?)を使いました。

Hadoopをダウンロードします。Hadoopのソフトウェア群をまとめたHadoopディストリビューションClouderaなんてものがありますが、これを使うとどこに何があるか分かりにくいので初めての人にはおすすめしません。Hadoopの公式からダウンロードしましょう。Hadoopのバージョンは0.23のアルファ版がいいと思います。0.20は安定版ですが古いAPIをメインに利用しているためプログラミングの段階で苦労します。

クラスタ構成時のポイントを書いておきます

  • もしEclispeでプログラミングしてテストするって方はHadoopの実行ユーザーをEclipseの実行ユーザーと同じにしておくといいです。
  • JDKは最初からインストールされてるOpenJDKではなく本家のものを使います。
    • インストールしたらupdate-alternativeまたはalternativeコマンドでjavaのバージョンを切り替えられるようにすると楽です。
    • OpenSUSE11ではOpenJDKが入ってる状態で本家のJDKを入れるとパソコンを再起動したときにフリーズしました。これはjexecというのが悪さをしていたようです。本家JDKをインストールした直後に/etc/init.d/rc1〜5で、jexecを起動しないようにしておきましょう。もし起動しなくなったら起動時のjexecでのハングをご覧ください。私はこの方法でもだめだったので、OSインストール時のディスクを使ってレスキューモードでHDD(/dev/sda2)をマウントし、/etc/init.d/rc1〜5をいじりました。
  • Hadoop本体を展開
  • 一時ファイルの場所を変更する
    • 一時ファイルはデフォルトでは/tmp以下に作成されますが、ここに作成したファイルは一定期間後に削除されるので一時ファイルの場所を変更しましょう。

擬似分散や2台以上で動かすのは苦労すると思います。問題が起こった場合、次の確認方法があります。

  1. ノードの起動時に問題が起こった場合、各ノードのログファイル/opt/hadoop/logs/ディレクトリをみます。
  2. 起動に成功していればジョブトラッカーやネームノードのWEB UIでタスクトラッカーの台数、データノードの台数が正しいか確認しましょう。きちんと起動しているにもかかわらず台数の表示がおかしいケースもあります。そういう時はサンプルプログラムを一度実行してみてください。

問題が起きやすいのはネットワーク周りとパーミッションです。ネットワーク周りは実験用の環境であれば各ノードのファイアーウォールを切っておくと楽です。パーミッションはローカルファイルシステムパーミッションだけではなく、HDFSパーミッションにも問題が起こります。

クラスタ構成を変更した場合はHDFSをフォーマットする必要があります。ここで注意点です。フォーマットする前には全ノードの一時ファイルを削除してから行いましょう。これでよくトラブルが起きます。一時ファイルはデフォルトだと/tmp/hadoop-*のディレクトリに入ってると思います。

クラスタを簡単に管理する

台数が増えるごとに管理が面倒になりますよね。そんなとき自分でスクリプトを書いたり、エイリアス環境変数を設定すると楽になります。

Hadoopの基本操作

エイリアスHadoopの記法操作を簡単にします。次の場所やコマンドを、~/.bashrcにaliasで登録しておくと楽です。

h='/opt/hadoop'  #Hadoop本体のディレクトリ

hadoop_conf='$h/conf'  #設定ファイルのディレクトリ
hadoop_log='$h/logs'  #ログファイルのディレクトリ
alias hadoop='$h/bin/hadoop' #Hadoopのバイナリファイル

alias h-sample='hadoop $h/bin/hadoop jar $h/hadoop-examples-*.jar pi ' #サンプルの実行

ファイルの同期を簡単にする

クラスタ間でhadoop/confや/etc/hostsなどを同期するのにrsyncを使ったbash、sync.shを書きました。これはマスターノードから利用することを想定しており、指定したファイルを/opt/hadoop/conf/slavesに記述されたホストに同期させます。

#!/bin/sh

#引数
# $1 送り元のファイル
# $2 送り先のファイル
# $3 ターゲットのuser


if [ "$1" = "" ] ;then
echo "\$1: 送り元を指定してください"
exit 1
fi

if [ "$2" = "" ] ;then
  send=$(echo "$1")
else
  send=$(echo "$2")
fi

if [ "$3" = "" ] ;then
 user=$(id -un)
else
 user=$(echo "$3")
fi

while read LINE;do
  run=$(echo "rsync -avr --delete $1 $user@$LINE:$send")
  echo $run
  $run

done < "/opt/hadoop/conf/slaves"

このスクリプトの使い方を示します。ディレクトリの場合は後ろに/をつけるのを忘れないで下さい。

sync.sh file_name #ファイルを同期
sync.sh directory_name/  #ディレクトリを同期

これを利用して/etc/hostsや/hadoop/confを同期させるには次のようにします。sync.shは適当なディレクトリに入れておいて、そのディレクトリに対して$script_homeという変数を設定しておきます。

alias sync-conf='$script_home/sync.sh $h/conf/'
alias sync-hosts='sudo $script_home/sync.sh /etc/hosts'

このコマンドをaliasに登録しておくと一瞬で/etc/hostsや/hadoop/confを全ノードに同期することができます。

HDFSのフォーマットを簡単に行う

HDFSを正しくフォーマットして使うには全ノードの一時ファイルを削除してからフォーマットする必要があります。これを簡単に行うスクリプトです。

#!/bin/sh

remove(){
	#$1にはファイル名が入る
	while read LINE;do
		echo $LINE
		removeAtNod $LINE
	done < "$1"
}

removeAtNod(){
	#$1にはノード名がはいる
	ssh -n $1 "rm -r /tmp/hadoop-*"
}

remove "/opt/hadoop/conf/masters"
remove "/opt/hadoop/conf/slaves"

/opt/hadoop/bin/hadoop namenode -format

以上です
第2回に続きます

追記 2/19 12:21

Cloudera の shiumachi さんからコメントをいただきました。私よりずっと詳しい方ですのでshiumachiさんの意見も参考にしてみてください。/tmpの件については記事の中に入れさせてもらいました。ありがとうございます!

【ネタバレ注意】まどかマギカの解釈と感想

アニメ直前にmixiボイスで呟いた内容

まどか「わたしがみんなを救う!」→ まどか魔法少女になる → ワルプルギスの夜やつける → なんか分からんがエントロピーを凌駕して魔女化しない → ついでにまどか死亡\(^o^)/ → まどか抜きの日常が戻ってくる

だいたい合っててワロタwwwww
他の人の感想や解釈を読む前に、100%純粋な自分の解釈と感想を書いておきますね。

まず最終話簡単にまとめると

ほむほむではワルプルギスの夜に勝てない
↓
まどかが魔法少女になる
↓
まどかの願いは「過去も未来も全ての魔女を生まれなくする」
↓
まどかは人間から、「魔法少女が魔女になる瞬間にまどかが浄化する」という現象に変わる。宇宙の法則が変わる。まどか全ての呪いを引き受ける
↓
その呪いさえも、まどかという現象が浄化(まどかがまどかを浄化とか矛盾しているようだけど、現象なので問題ない)
↓
まどかのいない日常。といっても、魔法少女は健在。以前と変わったのは、魔法少女が戦うのは魔女ではなく魔獣であること。そして魔法少女は魔女化する瞬間に浄化される。ソウルジェムが穢れていくのは以前と同じ。
↓
すなわち、ほぼ王道の魔法少女ものアニメのルールになる。

まどかの「また会える」的な発言

宇宙が再構成されたあと、ほむほむは、まどかが守りたかった世界を最後まで守ろうとします。そしてED後、ほむほむは敵を倒した後、闇に包まれるんですが、これは魔女化のサインです。アニメはここで終わりますが、この後ほむらが魔女化しそうになるわけです。すなわち、まどかが浄化しに来て、二人はまた会えるという訳です。アニメ内の言葉を借りるなら、「浄化=迎えにいく」と言い換えてもokです。つまり、ハッピーエンドきたこれ\(^o^)/ ただ両手放しにハッピーエンドとはいえないところが虚淵っぽいwww

ハッピーエンドきたこれ!

宇宙を再構成したといっても、魔法少女の運命は明るいものではありません。だけどこのアニメで最大に報われたのは

「まどかが、ほむほむの気持ちを理解してあげられたこと」
「まどかが、ほむほむの気持ちを理解してあげられたこと」

大事なことなので2回書きましたwこれに尽きます!

10話では、ほむほむの過去のループ話が説明されました。あの話ではループしたのは3回?くらいだったんですが、僕はもっとループしてると思ってます。ほむほむは、ワルプルギスの夜の出現位置を統計的に割り出せるほどループしてるんです。統計って恐ろしいほどの回数繰り返さないと取れないですよね。それだけの苦労をほむほむは今まで重ねてきた。そしてその事実をまどかは知らない。10話見て、ほむほむ救われねええええええ!と思ってました。

それが最終話で救われたああああああああああ!ああこれはもうハッピーエンドですよね!

はちくじいいいいいい!

コトブキ屋の八九寺真宵ちゃん。ペロペロしたくなるクオリティ。

コトブキヤ 化物語 八九寺真宵 1/8スケールPVC塗装済み完成品

コトブキヤ 化物語 八九寺真宵 1/8スケールPVC塗装済み完成品











iTunesからiPodに転送される曲は?

iTunesには、「選択したプレイリスト、アーティスト、アルバム、およびジャンル」のみ転送するという項目と、「チェックマークのある曲とビデオだけを同期」という項目があり、どの曲がiPodに転送されるのか分かりにくいので試してみた。ちなみにiTunesのバージョンは10.1.1.14。

最初は以下のような状態

  • チェックマークのある曲とビデオだけを同期 オフ
  • ミュージックライブラリ全体 オン
  • iTunesに10曲入ってる

この状態でiPodと同期を行うとiPodの中には10曲入る




選択したプレイリスト、アーティスト、アルバム、およびジャンル

選択したプレイリスト、アーティスト、アルバム、およびジャンル

ここにチェックを入れると、iPodに転送したいプレイリスト、アーティスト、アルバム、およびジャンルを選択できるようになる。今はプレイリスト、アーティスト、アルバム、およびジャンルを一つも選択していないので右上に転送される曲が0曲と表示されている。


プレイリストを選択する

「無題のプレイリスト」を作成して3曲入れる。

「選択したプレイリスト、アーティスト、アルバム、およびジャンル」があった画面でそのプレイリストを選択。

この状態で同期すると、「無題のプレイリスト」に含まれる3曲だけが同期される。

チェックマークのある曲とビデオだけを同期

先ほどの「無題のプレイリスト」に含めた3曲のうちの1曲のチェックマークを外し、オプションの項目から「チェックマークのある曲とビデオだけを同期」にチェックを入れる。


「チェックマークのある曲とビデオだけを同期」と「選択したプレイリスト、アーティスト、アルバム、およびジャンル」の項目に両方共チェックを入れたわけだが、この状態で同期を行うとiPodの中は2曲になった。