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日日曜日

大学受かった