2014年9月21日日曜日

はてなブログに移行する(多分)

こっちはMarkdownがいつまでたっても使えるようにならないから,はてなに行こうと思う

まあもともとブログ書いてなかったけど,行っても何も書かないかもだけど

2014年7月3日木曜日

RasPi買った


クラブの先輩がArchがいいと言っていたのでArch Linuxを入れた
確かに扱いやすかったり先進的だと感じるところはある(主にパッケージマネジャー・レポジトリ関連)が,新しいことを覚えなければならないのがめんどくさい(

dlnaサーバー・クライアントにしたりバックアップ鯖にしたりlxqt入れたりGPIOで遊んだりQt動かしたりGPUガンガン使ったりしたい

しかしこいつ,いつも使ってるvimの設定とかzshの設定入れたらそいつらを起動するだけで数秒かかったりするし,ロードアベレージがいつも1より大だし…なかなか低スペ(分かってたけど

raspiでGPIOを使ってみる 〜LEDでLoad Average〜

2014年6月14日土曜日

QMLで射影変換を利用してプロジェクションマッピングができる(多分)実装

/QMLQuadWarp



README.mdにあるみたいに長方形を変形できる.例では画像('Image')エレメントを利用しているが,`Item`から派生したコンポーネントであれば画像でなくてもソースとして利用できるはず.多分.

機会があればこれでプロジェクションマッピングしたい.

2014年6月2日月曜日

niconicoからあらかじめ取ってきたjsonをパースして必要な情報を表示するだけのスクリプト




Python楽しい✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

Qt 勉強会 #2 @Osakaに参加した

作りかけのものでも発表しようという気に現地でなって,QMLの話聞きながら即席プレゼン資料作った



QMLのお話はQUIt Codingというサイトで公開されているFive In a Rowというゲームを題材にされていたが,このなかの`Flickable``transform``Rotation`を用いて3Dっぽい表示をするというのがとても面白かった

あとで見つけた資料
Qt Quick Game Programming
これのP.30

結構長いこと記事書いてない

Twitterの比率を減らしてブログを書くようにしようと思い始めている
文章をまとめるのはめんどくさいから適当に書く

2014年1月26日日曜日

MitakaをVS2013でビルドする (失敗)



Step1. ソースをDL
4次元デジタル宇宙プロジェクトのページからソースを見つけてDL

Step2. VSで開く
slnファイルがついてないのでVSでプロジェクトを作成
ソリューション名をMitaka、プロジェクト名をMitakaとした場合、VSのソリューションディレクトリ/Mitaka/Mitaka/にソースのZIPを展開して出てきたcommon/,README.txt,Mitaka/を移動
こういう名前の付け方すると結果的にMitakaが三層重なることになるけど気にしない
そして移したファイルをVSのソリューションエクスプローラーにドラッグアンドドロップしてやるとヘッダ、ソースが登録される

Step3. 依存ライブラリ
DirectXのライブラリはWindows SDK8.1入れれば大丈夫?
Readmeに書いてある以外でWindows SDK7.1も必要になるので入れる
入れるときに多分失敗するのでここ見る
http://www.projectgroup.info/tips/Others/comm_0004.html
めんどくせえ…

libjpeg,libpng,zlibのソースを頑張ってDLする
zlibはwindows用のバイナリが公開されてるが(14/01/26現在)libpngのビルド時にソースが必要になる
libjpegビルド時にnmakeしたらwin32.makが見つからないとか言われてンンンってなるから
C:\Program Files\Microsoft SDKs\Windows\v7.0\Include\Win32.Makを
C:\Program Files(x86)\Microsoft Visual Studio 12.0\VC\includeにコピーしとく
なんでこんな作業が必要なんだ
でlibjpegをここらへん見ながらビルド
マルチスレッドとかなんとかいうのは知らない
http://oshiro.bpe.es.osaka-u.ac.jp/people/staff/imura/products/JpegFileIO

libpngは↑こ↓こ
http://xeo.sakura.ne.jp/wordpress/201202/program/361/

Step3. 依存ライブラリをプロジェクトから参照
さっきビルドできたやつをプロジェクトから見えるようにする
http://blog.livedoor.jp/tmako123-programming/archives/22001972.html
zlibはバイナリで配布してあるやつがそれっぽい階層になってるからいいとして
libjpeg、libpngはどのファイルを移動すればいいかパッとわからない
不親切だ
とりあえずlib/には.libを、include/には.hを全部入れとけばいいかな?

Step4. ソース修正
これでやっとビルドできるかというとそうではない
VSでビルド→プロジェクトのビルド してやるとエラーいっぱい吐くので修正してやる

まずM_PIが見つからないやつ
http://www.atinfinity.info/blog/archives/14
編集→検索と置換→フォルダーを指定して検索
でプロジェクト内で"#define _USE_MATH_DEFINES
を追記追記追記

minが見つからないやつ
#include <algorithm.h>
を追記

_CRT_SECURE_NO_WARNINGS
http://forums.codeguru.com/showthread.php?509615-How-to-use-define-_CRT_SECURE_NO_DEPRECATE&p=2001735#post2001735
_CRT_SECURE_NO_WARNINGSをプロジェクトのプロパティ→C/C++→プリプロセッサ→プリプロセッサの定義 に追加
何の根本的解決にもなってない気がするがとりあえずこれで

error C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp.
stricmpを_stricmpに書き換える


error C2065: 'Z_BEST_COMPRESSION' : 定義されていない識別子です。
#include  <zlib.h>

error C1083: include ファイルを開けません。'gl/wglext.h'
http://www.opengl.org/registry/#headers から4ファイルをダウンロードし
C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
に移動

cannot open include file 'afxres.h'

未解決の外部シンボルなんちゃら
プロジェクトのプロパティ→リンカー→入力→追加の依存ファイル
glu32.lib
opengl32.lib
libjpeg.lib
libpng.lib
を追記


……まだまだエラーが出る
そろそろ諦める_(:3」 ∠)_

2013年9月4日水曜日

Aztter(あずったー) ~twitter client for Ubuntu Phone~

Aztter(あずったー) is a twitter client for Ubuntu Phone.
This app is written using QML and C++.
I'm aiming to make Aztter simple but powerfull client.

I've been working on this for two weeks (please see Github) and today I could release version 0.1 at last.

In this first version, this app can authenticate your account, tweet, and streaming home timeline.



Please visit Github repository!
https://github.com/yuntan/Aztter-for-Ubuntu-Phone

ToDo: tweet detail, user page, cache icon, tabs, lists, etc...

2013年8月19日月曜日

TeXstudioで日本語入力がうまくいかないバグがあったから直した

直せたっぽいんで


diff --git a/qcodeedit/lib/qeditor.cpp b/qcodeedit/lib/qeditor.cpp
index b9a067f..3c9a72c 100644
--- a/qcodeedit/lib/qeditor.cpp
+++ b/qcodeedit/lib/qeditor.cpp
@@ -3153,7 +3153,7 @@ void QEditor::inputMethodEvent(QInputMethodEvent* e)
   return;
  }
  */
-#ifdef Q_WS_MAC
+// #ifdef Q_WS_MAC
     QString preEdit=e->preeditString();
     if( !preEdit.isEmpty()){
         int i=-1;
@@ -3170,7 +3170,7 @@ void QEditor::inputMethodEvent(QInputMethodEvent* e)
         preEditLength=preEdit.length();
         preEditLineNumber=m_cursor.lineNumber();
     }
-#endif
+// #endif
 
  if ( e->commitString().count() ) {
   m_cursor.beginEditBlock();
@@ -3192,10 +3192,20 @@ void QEditor::inputMethodEvent(QInputMethodEvent* e)
 
   m_cursor.endEditBlock();
  }
+ 
+ if( preEdit.isEmpty() && e->commitString().isEmpty() && preEditSet) {
+  m_cursor.beginEditBlock();
+  m_cursor.movePosition(preEditLength, QDocumentCursor::Left, QDocumentCursor::KeepAnchor);
+  m_cursor.removeSelectedText();
+  m_cursor.endEditBlock();
+  preEditSet = false;
+  preEditLength = 0;
+ }
 
  foreach ( QEditorInputBindingInterface *b, m_bindings )
   b->postInputMethodEvent(e, this);
  
+ e->accept();
 }
 
 /*!

http://texstudio.sourceforge.net/こっからソースをDLしてきて
cd texstudio2.6.2
patch -p1 mypatch.patch

でパッチを適用して
https://sourceforge.net/apps/mediawiki/texstudio/index.php?title=CompileTXS
の手順でコンパイル

2013年7月12日金曜日

VirtualBoxのextensionをユーザー名に日本語が(ry でインストールする方法

前の記事の続き
extensionも先程と同様に、まずパス名に漢字が含まれない場所において、次に先ほどのように環境変数を変更したシェルでC:\Program Files\Oracle\VirtualBox\VirtualBox.exeを起動して、あとはファイル→環境設定→拡張機能にてインストールする



VirtualBoxをユーザー名に日本語が含まれる環境でインストールする方法

私の場合、漢字の名前をユーザー名にしてしまったため、ホームディレクトリのパスががC:\Users\名前\みたいなことになっているのだが、これだとVirtualBoxをインストールまたはアップデートするときに下の画像のようなエラーが出てインストールできない

これは、VirtualBoxのインストーラーは一時ファイル置き場として<ホームディレクトリ>\AppData\Local\Tempを使用するのだが、上記の環境だとこのパス名に漢字が含まれてしまうため、パスの処理がうまくできずにエラーを吐いて終了してしまう
そこで、インストール時にだけ一時ファイル置き場を変更することを考えた
 まず、VirtualBoxのインストーラーを、パス名に漢字が含まれない場所に置く
私はCドライブのルートに置いた
次に、一時ファイル置き場を作成する
私はC:\tempとかいうフォルダがもともとあったのでそこを使った
PowerShellを開き、次のコマンドを打つ
$env:TMP = "C:\temp"
C:\VirtualBox-Win.exe
$env:TMPは一時ファイル置き場のパスを示す環境変数である
この値を一時的に変更しておいて、virtualboxのインストーラーを起動する

C:\tempとかC:\VirtualBox-Win.exeは自分の用意した環境に合わせて
 あと本件と直接関係はないが、VirtualBox Bridged Networkingはインストールしないほうがいいかもしれない
私の環境(Win8.1 64bit)ではWLANが繋がってもネットワーク設定がうまくいかず、インターネットに接続できなくなった
















2013年6月22日土曜日

Boost.勉強会 #12 大阪に参加してみた

 帰ってブログを書くまでがBoost.勉強会だと言われたので、数ヶ月ぶりにエントリーを更新する

 普段使ってるGoogle CalenderにIT勉強会カレンダーを登録してるんだけど、そこにBoost.勉強会が入ってたので、ちょうどその日空いてることだし、C++ってどんなふうなのなんかなー、レベル高いところを覗いてみたいなーと思ったので、登録し参加した次第

 先々週ぐらいに猫C++やり終わった!!!とかほざいてるC++超超初心者勢には荷が重すぎる内容であることは最初から分かっていたつもりだったんだが
……予想以上に重かった
理解できるセッションが最初の「C++で作るWEBアプリケーション」と最後の「C++コミュニティを作る」だけだった
まあ順番に感想を書いていく

 一つ目の「C++で作るWEBアプリケーション」
わかり易かったし、感動した
これからはC++ネイティブデベロッパーが自分の普段使いの言語でウェブのクライアント側の実装ができるようになるのか!、と
某しまぱん氏が「そこまでしてC++で書く意味とは」とおっしゃっていたが、
これからC++を学ぼうと思っている私のような者が「C++さえできればなんとかなるのか!!!」(おそらく実際はそうではない)と自信と誇りとを持ってC++学習を進められたり、既存のコードを活用できるという点で意味があることだと思う
非常に興味をそそられる内容だったので今度是非自分でもやってみたい

 2つ目の「C++初心者のためのBoost.MPL入門」
まず発表者が高校生ということに驚かされる
私も高校生のままでいたかった
あと……初心者のための?
私はもしかしたら超超初心者どころではなく超超超超初心者ぐらいかもしれない…
でなおしてきます

 昼食
@fadis_氏と桜花氏と某氏と某氏についていって入った居酒屋で海鮮丼を食べる
ウサギ(ry

 3つ目の「boost::multiprecisionと適応型無誤差演算」
ちょっと分かった
誤差なし演算させると莫大な時間がかかるので基本誤差ありで適度に誤差無しを使いましょうという内容(多分
将来物理系のシュミレーションとかしそうなのでそのときに直面しそう

 4つ目の「constexpr中3女子テクニック―実践と濫用そしてC++14へ」
こちらの発表は中3女子の方がなされてて、びっくり(
スライド数が多く、時間が超過するほど内容が濃く、熱く語っていらした
そして内容は…すいません全然わかりませんでした
とりあえず来週ぐぐりながら復習してみる…
ただ、音声合成とかグラフィックとかはやってみたいと思った
特に鏡面効果

 5つ目の「Allocators@C++11」
すいません(ry

 6つ目の「君はまだ、本当のプリプロセスを知らない」
すい(ry
ただ、変態的なことをしているような気配は感じた

 そして7つ目の「C++コミュニティを作る」
あきら氏の日本の技術者を救いたいという熱い思いを感じた
しかし、向上心のない職場(会社)って、どうなってるんだろう…会社って儲けるためにあるんだから、できるだけ楽に儲けるために能率が上がるツールを使おうという発想がないというのは…?
まあ、会社が儲かっても一般社員にはほとんど関係なく、能率が上がっても仕事の量が増えて帰る時間は変わらない、という会社が日本ではほとんどだろうからなあ…
早いうちから就職のこと考えとけとか言われるけど正直日本の会社に就職とかしたくない(ボソッ
あと、英語力に関する正直な感想として、バグ報告で意思を伝えられるぐらいの英語力は技術者なら持っていないとダメなんではと思った
やっぱり英語圏が開発の中心なわけだし
まあ受験を終えてからというものの英語力絶賛降下中な私が偉そうに英語についてゴチャゴチャ言うことはできないかもだが

以上、感想

当初の今回の目的はC++の 闇 高度なテクニックに触れようということだったので、目的は果たせた
プレゼンの内容は将来もっとレベル上がった時によく見直したい

2013年4月29日月曜日

ubuntu13.04にてadbが実行できない件

ubuntu13.04 64bit virtualboxによる仮想化環境で発生
別に13.04でなくても仮想化環境でなくても発生しうると思うが、重要なのは64bit環境ということである
Android SDKはLinux 64bit用のものを使用
ここでadbを実行しようとすると、
android-sdk/platform-tools$ ./adb
bash: android-sdk/platform-tools/adb: そのようなファイルやデ ィレクトリはありません
などというわけのわからないエラーに悩ませられる
…ファイルがない?
いや、ファイルビューアで見てもlsで確認してもちゃんとあるんですけど…

この場合は、apt-getでia32-libsをインストールすると直った

しかしこのエラー表示は分かりにくい
「バイナリを実行できません」的なメッセージだとまだ分かったけど
これは多分バグなんじゃないかと思うが、bashのバグなのか他の何かのバグでこうなるのかはよく分からない

>>> 13.4.29追記
ある方の情報によると、zsh使えばこの問題からはおさらばできるそうです

2013年3月28日木曜日

groovyを使ってみた - Android版iTunesになれるか

一昨日から2泊3日で高校(卒業済み)の天文気象部の合宿に行ってた
天気部だから当然合宿では天体観測するのだが、ぼっちで観測用のドームにこもって望遠鏡と格闘してる時に(同じコテージの他のやつはスマブラしてた。おのれ)、あまりに寂しいのでなんか曲をかけたいと思って
BUMPの天体観測(ベタ)とかかけてたんだがそのうちに昔NHKのドラマの主題歌に使われた曲のことを思い出した
その時はPCでWindowsを起動しiTunesを起動し曲をダウンロードするなどという手間なことをしたくなかったので(第一カードの残高がなかった)ようつべから適当に拾ってきてかけてた

今日帰ってきて、あの曲をiTunesで買おうと思い、Winを起動したところに、こんなニュースが飛び込んできた
groovyというサービスは前から告知がされており、私も面白そうだなーとその時は思ったのだが、すっかり存在を忘れていた
今回チケットももらえるとのことなので、早速登録し、使ってみた
登録画面のスクショ撮り忘れたので撮ってないが、最初からメールアドレスを登録しなくても、Twitterかfacebook経由でログインできる
私はtwitterでまずログインしてみた
twitterでログインすると、ニックネーム、ユーザーネーム、パスワードの登録画面が現れる
それぞれの欄を埋めて登録ボタン?(名前覚えてない)を押すと登録完了
気になる人は登録する前に規約を読みましょう(めんどくさいので読まなかった)
完了するとこんな画面が現れる
アルバム画面を出してみる
スクロールすると右に青いコントロールバーが現れるので、それをドラッグして任意の場所まで移動できる
楽曲を選択して再生させると歌詞が自動取得されて表示される(歌詞は著作権的に載せていいのかわからないのでスクショは載せない)
まあ私はCDから取り込んだり買ってダウンロードした時点でlirics masterつかって歌詞タグを埋めてるので別に良かったんだが、歌詞タグ埋めてなくても表示されるのは便利だと思う
ランキング画面のスクショも載せとく

さて、買いたい音楽を検索してみる
私が買いたいのはORANGE RANGEの「瞳の先に」という楽曲

さてあるかな?
お、あった
楽曲の項目をタップすると
「試聴」をタップすると45秒間試聴できる
しかし45秒って結構短い
そこでチケットを使ってみる

ここで、チケットについて少し追記しておこうと思う
groovy登録時点で10枚、メールアドレスを後から登録して10枚、そして後述するgroovy storeへのログインで10枚、計30枚がタダでもらえる
有料で購入しようとすると、
17枚で99円
45枚で250円
95枚で500円
200枚で1000円
チケットの購入はアプリ右上設定アイコンをタップし、設定内の「チケットセンター」に移動するとできる
ここで一つ注意点がある
現在groovyアプリはandroid向けにしか提供されていないが、iOSに提供されるようになった時に、androidのgroovyで購入したチケットはiOSのgroovyでは使えないようだ
android端末のプレイチケットとiOS端末のプレイチケットの残高は別々に管理される
端末ごとにプレイチケットが管理されているように思えるが、もしアプリをアンインストールしたときに、再インストールしてもチケット残高は変わらないのか、などについては「注意事項」を読む限りでは分からない(試す気にもなれない)

話を戻そう
「フル再生」をタップするとこんな画面になる
「再生開始」をタップするとチケットを1枚消費して楽曲がストリーミング再生できるようになる
チケット1枚で1曲を1回再生できる
なお、1回再生したらキャッシュされて次からはダウンロードなしで再生できる、というは無いようだ
チケットを消費する度に曲をダウンロードしてきているっぽい

こんなふうにチケットを1回の再生ごとに1枚消費しながら楽曲を聴いてもいいが、これだとチケットがなくなると聴けないし、オフラインでは曲が聴けないことになる
というわけで曲を買ってみた
先ほどの画面で「ダウンロード」ボタンを押すと、ブラウザが起動し、Groovy storeに飛ばされる

購入はアプリではできずウェブページでするようだ
「瞳の先に」は250円で購入できる(2013/3/28現在)
なお、iTunes Storeでもこの楽曲は販売されているが、そこでも価格は同じ250円だった(2013/3/28現在)
「250円」のボタンをタップすると、ログイン画面に飛ばされるので、先ほどのようにtwitterを使ってログインすればよい
ブラウザでログインしてから楽曲の購入画面を開き直し、また「250円」をタップすると決済画面に移る
キャリア経由の決済とクレジットカード決済を選べる
現時点ではコンビニでカードを購入し決済はできないので、決済方法ではiTunes Storeに比べると引けを取っているかもしれない
クレジットカード番号を入力し、「上記商品を購入する」をタップすると購入完了し、楽曲がダウンロードできるようになる
楽曲のダウンロードはブラウザではできず、groovyアプリ経由となる
「アプリ起動してダウンロード」をタップするとgroovyアプリに画面遷移し、ダウンロードが開始される
ライブラリから楽曲を選択し、聴いてみる

聞けることを確認した

ここまでスクショを大量に載っけながらアプリ紹介してきたわけだが、大事なのはここからである
購入した楽曲は、果たしてどのようなファイル形式で、どこに保存されているのか
そして、そのファイルは他のアプリでも開けるのか…
ファイルの場所自体は端末内を見てみると簡単にわかる
/sdcard/groovy/contents/
ファイル詳細は上のスクショの通り
m4a形式の音楽ファイルだった、ということは…
groovy以外のプレーヤーでも再生が可能だった
ファイル詳細は以下の通り
AAC 320kbps(!)、アルバムアートは埋め込み、歌詞は埋め込まれていなかった

楽曲の再ダウンロードについても記述しておくと、あるアカウントで楽曲を購入した場合、そのアカウントに紐付けられている端末において再ダウンロードが可能なようだ
なお、1アカウントにつき10台まで紐付けできる

ここまで色々述べてきたが、最後にサービスの感想を述べようと思う
今までAndroid端末において音楽が購入できるアプリ、又はサイトには「使える」ものがなかった(私目線)。AmazonのもSonyのunlimitedも試してみたが、洋楽ばかりだったりJpopはあるけどアニソンがなかったりと、コンテンツの豊富さに欠けていた(ここでいう「豊富」というのはよくアニソンが揃えられているという事である)。だからアニソンがよくそろっているiTunes Storeを利用するしかなかった。iTunesを利用するためだけに(遅い重い扱いにくい)Windowsを起動させ、iTunesを開き、Storeで検索し、コードを入力して買い、タグを埋め、端末に転送して(ドラッグアンドドロップ)やっと聞ける。めんどくさいことこの上ない。
それがこのサービスではどうだろう。アプリを開き、検索し、試聴し、気になったらチケットで聴く。聴く回数が多いようなら端末上で購入。ケーブルでどこかに転送する必要もなくそのまま他のプレーヤーでも聴ける。ktkr
iPhoneと比較しても優れているなと思える点が2つある。一つはチケットという方法が使えること。iPhoneではフル再生しようとすると購入するしかなかった。こちらは安価なチケットが使える。二つ目は楽曲のタグ編集ができること。iTunes Storeの管理者によって曲に埋め込まれたタグが気に入らなくてもiPhone上では(jailbreakenではどうかしらないけど)タグ編集できない。こっちはタグ編集アプリがあれば編集できる。再生する度に変なストレスを感じる(特にアルバムアートが気に入らないとか)こともない。うん完璧。(すいませんandroidの優位点になってしまった)
楽曲の品ぞろえについてはこれから検証しようと思うが、結構大丈夫なんじゃないだろうか。今回欲しかった曲があったという事がまずとても好印象だった(まああれはアニソンじゃないけど)。
ここでは触れられていないが、groovyにはソーシャル機能も備わっている。そちらもまあ使っていきたいと思う。(iTunesのpingみたいにならないといいな)
groovyには期待している。





2013年3月11日月曜日

メガネケースのお話

あれは2年以上前のことですね。メガネケースを買いました。
それから色々あってある方からメガネケースを2台頂き、計3台になりました。
好きに使っていいとのことでしたので、頂いた1台を使う用、買った1台を開発用、頂いた1台を父親に貸していました。
それからまた色々あって、父親に貸してた1台を残して2台を失ってしまいました。
理由は言いたくありません。

受験が終わり、Twitterをしてるところへ、Firefox OSは低スペ端末でも動くんだよ!という記事が目に入りました。
それからしばらくのち、合格発表も終わり、さてなんかするかと思い、その記事のことを思い出しました。
そうです。メガネケースにffOS入れようとか考えだしたのです。
それでそのことについて色々調べていたら、父親が帰ってきました。
「前かしてた携帯返して。ちょっとの間だから。」
「あー、あれな…捨てた。」
「は!?」
「ごめん、捨ててもうたんよ。」
「あっそう」
いつもの冗談だと思いました。

そのしばらくあと、父親の部屋に突撃。
「…んで、IS01捨てたって、ほんまなん?」
「あーそれがな、悪いんだけど…」
トイレの便器に落としたそうですw
これ書いてて笑えてきます。
すぐに引き揚げて、入念に水分を拭いて入念にアルコールのシートで拭いたあと、電源を入れるとついたそうですが、1日後につかなくなったそうな。
母親に相談したところそんな汚いもの捨てろと言われたそうで(そりゃそうだ)、受験前に起こったため、余計なことを言いたくないと黙っていたそうです。

/(^o^)\ナンテコッタイ

というわけでIS01クラスタの皆さん!さよなら(^_^)/~~~

2013年3月10日日曜日

大学受かった

2012年8月25日土曜日

広告など

めでたく18歳になったようなので
広告を入れてみたりした
でも右には入ってほしくないな、投稿の下だけでいい
あと収益ってどうやって受け取るんだ?...

2012年8月10日金曜日

SyntaxHighlighter導入ではまった件

前の記事にSyntaxHighlighterを導入しようとしたんだが
結局うまく動かせるまでに3時間ほどかかった、気がする
原因はDynamic Viewという、Bloggerに適用したデザインテンプレートのせい
こちらのブログを参照させていただき解決した
BloggerのDynamic View(動的ビュー)でSyntaxHighlighterを使う

以下、自分の忘れ防止のためのメモ
1.コードをここでHTMLエンコードする
2.
<pre class="brush:[コードの種類]">
<!-- ここにコードを記述 -->
</pre>
[コードの種類]は
Bashスクリプトのときbash
JavaScriptのときjs
CSSのときcss
Pythonのときpython
Plain Textのときtext
3.HTMLエディタに切り替えて、末尾に以下のコードを貼り付ける
<div style="display:none">
<pre class="brush:bash"></pre>
<pre class="brush:js"></pre>
<pre class="brush:css"></pre>
<pre class="brush:cpp"></pre>
<pre class="brush:pascal"></pre>
<pre class="brush:python"></pre>
<pre class="brush:php"></pre>
<pre class="brush:text"></pre>
<pre class="brush:sql"></pre>
<pre class="brush:perl"></pre>
<pre class="brush:as3"></pre>
<pre class="brush:xml"></pre>
</div>
<script type='text/javascript'>
 function loadScript(url, callback){
  var script = document.createElement('script')
  script.type = 'text/javascript';
  if (script.readyState){  //IE
   script.onreadystatechange = function(){
    if (script.readyState == 'loaded' ||
      script.readyState == 'complete'){
     script.onreadystatechange = null;
     callback();
    }
   };
  } else {  //Others
   script.onload = function(){
    callback();
   };
  }
  script.src = url;
  document.getElementsByTagName('head')[0].appendChild(script);
 }
 loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js', 
  function(){
   loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js', 
    function(){
     SyntaxHighlighter.config.bloggerMode = true;
     SyntaxHighlighter.autoloader(
       'bash  http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js',
       'js jscript javascript http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js',
       'css http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js',
       'cpp c http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js',
       'delphi pascal http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDelphi.js',
       'py python http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js',
       'php http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js',
       'text plain http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js',
       'sql http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js',
       'perl pl http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js',
       'actionscript3 as3 http://alexgorbatchev.com/pub/sh/current/scripts/shBrushAS3.js',
       'xml xhtml xslt html http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js'      
     );
     SyntaxHighlighter.all();
    }  
   );
  }
 );
</script>

2012年8月8日水曜日

ThinkPad X40にAndroid x86 4.0を入れてみたりなど その1



Android x86とは、韓国人開発者が開発しているPCで動く(予定の)Androidである
これまで私は何回か使用(試用)したことがあるが、画面の描画がのろかったりWifiに繋がらなかったりと、あくまで試用で本格使用できるものではなかった
しかし、いままでAsusのネットブックやら聞いたことのないメーカーのタブレットやらと私と馴染みの低いハードウェア向けにビルドされていたイメージを動作しないこと前提でThinkPad X40に突っ込んでいたが、4.0 - RC2では万を時してThinkPad向けイメージが公開された。他のビルドとどう内容が違うか知らないが非常にありがたい

ということで早速突っ込んでみた
(この記事の公開時期からすれば”早速”ではないが実際に突っ込んだ時期は公開のすぐ後だった、という読者にとってはどうでもいい情報を補足しておく)

intel 8xxというグラフィックプロセッサで悪名高いこのX40
ThinkPad向けにビルドされたAndroid x86はそのままでは動かない
普通に起動しても画面が真っ暗なまま時間が経過して行くだけ
そこで定番のWorkAround、起動時にコマンドラインオプションにnomodesetを追記で対応した
nomodesetはkernel mode settingとやらを無効化するオプションである。kernel mode settingがなんであるかはよく把握していないが。
具体的な方法は、BIOSがISOのブートローダー(syslinux)を読み込んでから、ブートするエントリの選択画面にて一番上のエントリーを選択した上でTabキーを押下し、エントリーの中身を表示させる。"linux"の行の末端に移動し、
nomodeset
を追記する。Ctrl-Xを押下しエントリー選択画面に戻り、先ほど編集したエントリーを選択しEnterを押下。するとAndroid x86が起動してくる。

さて、起動時にコマンドプロンプトが表示されて、それから数秒後にAndroidのブートアニメーションが始まるのだが、実はブートアニメーションが始まり、セットアップウィザードに行き着いた後でも、キーボードで何か入力すると、画面の後ろで動いているコマンドプロンプトにそのまま入力されてしまい、Enterを押すとそれが実行されてしまう。しかもその様子は画面にチラチラ表示されるがほとんど見えない。たとえば何かでrebootと入力しEnterしてしまうと、即再起動されてしまう。このようなバグは初期のAndroidでもあったという記事を読んだことがあるが、これと同じ理由だったりするんだろうか。
あと、この状態でカーソルキーを押下するとビープ音がけたたましく鳴り響き非常にうるさい。
これを回避するためには、エントリーを起動して直後、コマンドプロンプトが見えてるうちに
exit
と入力して、その後何が入力されても問題ないようにしておく必要がある。



さて、セットアップウィザードに行き着いたら、マウスを使って適当に設定し進めてやるとめでたくホーム画面に行き着く。さて試しにブラウザでネットでもしてみるか、とおもったら
……Wifiの設定がうまくいかん
Wifiをオンにするとちゃんと自宅のAPが見えるので、パスワードを入力して、と。よしこれで繋がるはず………あれ?
…1時間に及ぶ時間の消費(繰り返し試行、logcat、/data/misc/wifiを弄る)の後、どうやら入力したパスワードなどの設定を設定ファイル(/data/misc/wifi/wpa_supplicant.conf)に保存できていないのが原因らしい
それじゃあマニュアルで設定ファイルに追記してやろう。これぞLinuxの真髄(ぉ
設定ファイルにてけとーに自宅APの設定を追加後、Wifiを無効化して再度有効化すると、
お、うまくいった
追記した設定はこんな感じ
network={
ssid="hogehogeAP"
proto=fugafuga
key_mgmt=fugafuga
psk="hogefuga"
}
root済みのAndroid端末持ってる人はそっからこの部分だけコピペするのが簡単
これでブラウザが使えるようになった
うん、なかなかいい感じ


…続く?
参考にしたページ
How to boot the Android-x86 Live-CD when you have problems with your graphiccard

[8/10追記]
…やってしまった
何てバカなことを…
疲れてたんだな…
該当部分修正
…まあ気付いただけまし?遅い?