2015年9月18日金曜日

Qt Creatorでfcitxを使って日本語を入力する

Qt Creatorでfcitxを使って日本語を入力する

なぜかQtCreatorで日本語を入力できなくてなやんでいたのですが、プラグインが標準で入っていないのが原因のようです。
$cd fcitx-qt5
$git checkout 0.1.3
現在の最新版は1.0.4のようなのですが、どうしてもコンパイルできないので、参考にしたページに書かれていたバージョンでいきました。
特に問題もなく入力できています。
$vi CMakeList.txt
5行目をコメントアウトする
#set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
CMAKE_PREFIX_PATH にはqtインストール先を指定
$cmake . -DCMAKE_PREFIX_PATH=/opt/qt5/5.5/gcc_64
$make
srcディレクトリ以下にlibfcitxplatforminputcontextplugin.soというファイルができているので、これをプラグインのディレクトリにコピーする
$sudo cp src/libfcitxplatforminputcontextplugin.so /opt/qt5/5.5/gcc_64/plugins/platforminputcontexts/
$sudo cp src/libfcitxplatforminputcontextplugin.so /opt/qt5/Tools/QtCreator/bin/plugins/platforminputcontexts/
環境変数を設定する
$HOME/.bashrcあたりに書く
export QT_IM_MODULE=fcitx

参考にしたページ
fcitx環境のQt5.4で日本語入力できるようにする
http://blog.pyyoshi.com/2015/03/04/fcitxhuan-jing-noqt5-4deri-ben-yu-ru-li-dekiruyounisuru/

LinuxMint 17.2にRaspberryPiのQtのクロス開発環境を入れる

LinuxMint 17.2にRaspberryPiのQtのクロス開発環境を入れる

LinuxMint 17.2 xfce 64bitの環境です。
RaspberryPi Beginners Guide - Qt Wiki
http://wiki.qt.io/RaspberryPi_Beginners_Guide
こちらのページにわかりやすく書いてあるのですが、英語なので読むのに時間がかかるので、日本語でメモしておきます。
説明のページでコマンドの例に示してあるURLはことごとくつながらないので、すぐ下に書いてあるミラーなどのページからダウンロードなりする必要がありました。

0. 前準備

必要なので、さきに入れておく。
ぜんぶapt-getで入ります。
git
g++
freeglut3-dev
(以下64bitの環境のみ)
ia32-libs
lib32z1
lib32ncurses5
lib32bz2-1.0

1. 必要なものをダウンロード

すべて、$HOME/optにダウンロードしたものとします。
  1. RaspbianのSDカードのイメージ
     Download Raspbian for Raspberry Pi
    https://www.raspberrypi.org/downloads/raspbian/
    2015-05-05-raspbian-wheezy.zip
  2. クロス環境を作るときに設定をしてくれるスクリプト類
  3. Qtのソース
    $git clone git://code.qt.io/qt/qt5.git
    $cd qt5
    $ ./init-repository

2. コンパイル

ラズパイのイメージのマウント

$unzip 2015-05-05-raspbian-wheezy.zip
$sudo mkdir /mnt/rasp-root
$sudo mount -o loop,offset=62914560 2015-05-05-raspbian-wheezy.img /mnt/rasp-root
offsetの値は以下のようにチェックする。同じイメージなら同じはずです。
$ fdisk -l 2015-05-05-raspbian-wheezy.img
Disk 2015-05-05-raspbian-wheezy.img: 879 MB, 879558656 bytes
255 heads, 63 sectors/track, 106 cylinders, total 1717888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa6202af7
                     Device Boot      Start         End      Blocks   Id  System
2015-05-05-raspbian-wheezy.img1 8192 122879 57344 c W95 FAT32 (LBA)
2015-05-05-raspbian-wheezy.img2 122880 6399999 3138560 83 Linux
2つ目のパーティションをマウントしたいので、1セクター512なので、512*122880を飛ばしてマウントするいう意味です。
$cd cross-compile-tools
$sudo ./fixQualifiedLibraryPaths /mnt/rasp-root/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc
これで、環境に合わせて設定してくれます。
$cd ../qt5/qtbase
$./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-root -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /opt/qt5pi -hostprefix /opt/qt5pi
$make -j 4
$sudo make install
コンフィグのオプションで最後の -prefixがラズパイのイメージのどこに入れるかで、-hostprefixが母艦のどこに入れるかになります。
次はよくわかりません。必要なモジュールを個別に入れます。
qtimageformats, qtsvg, qtjsbackend, qtscript, qtxmlpatterns, qtdeclarative, qtsensors, qt3d, qtgraphicaleffects, qtjsondb, qtlocation, qtdocgallery
これだけあるみたいですが、自分はよくわからないので、全部入れました。
ディレクトリの中が空のものとかもあってよくわかりませんでした。
それぞれのディレクトリに移動して以下の用にコンパイルします。
$/opt/qt5pi/bin/qmake .
$make -j4
$sudo make install

3. イメージの書き込み

きちんとインストールされてるか確認をしてから、SDカードに書き込みます。
$ ls /mnt/rasp-root/opt/qt5pi
$sync
$sudo umount /mnt/rasp-root
sudo dd bs=1M if=2015-05-05-raspbian-wheezy.img of=/dev/sdb
of=/dev/sdbは環境によって異なるので、チェックしてから。
母艦で開発するときにイメージをマウントする必要があるので、消さないように注意する。

Qtcreatorの設定に続く

LinuxMint 17.2にQt5.5をインストール

LinuxMint 17.2にQt5.5をインストール 環境はLinuxMint 17.2 xfce 64bitです。  
1.ダウンロード Qtのダウンロードページ http://www.qt.io/download-open-source/#section-2 自動的にプラットフォームを選択してくれるインストーラもあるんですが、オフラインでやりたかったので、オフライン版をダウンロードしました。 オフライン版ですが、多少は通信するようです。 Qt 5.5.0 for Linux 64-bit (532 MB) でした。

2.インストーラの実行 ダウンロードしたインストーラを実行します。 登録はスキップできます。 インストール先は/opt/qt5としました。(rootで実行してる必要があります。) Qt5.4とかも入れられるみたいですが、最新の5.5とTools,Extrasを選択しました。 990MBの容量が必要と出ました。 インストールが終わると/opt/qt5/Tools/QtCreator/bin/にQtcreatorが、 /opt/qt5/5.5/gcc_64/bin/以下にqmakeなどが入ります。


LinuxMint 17.2にRaspberryPiのQtのクロス開発環境を入れるにつづく

2015年9月9日水曜日

GeChic On-Lap 1302を分解

調子の悪いOn-Lap 1302を入手したので分解してみた。

メモ代わりなので写真はありません。
途中でなぜか調子が良くなったので、最後まで分解していません。
蓋を開けるまでの手順のメモとして。



1. 裏側に丸いシールで蓋がしてあるネジが有る。6本。コネクタの周りに3本ある。


2. 額縁の白い枠を外す。両面テープで接着してある。隙間に薄いものを入れて強引に。
曲げないように気をつける。



3. 白いカバーを外す。ネジが4本。特に隠れたネジはない。
下側のみ両面テープで接着されている。
曲がりやすいので、曲げないように注意する。



4. 液晶パネルの周りにネジが4本。特に隠れたネジはない。
パネル上部が外れるが、下側はコネクタが基板につながっているので外れない。
液晶の基板部分が下側に出っ張っているので、あまり曲げないようにする。


液晶の型番
B133ZW03 V1


5. 液晶下側の保護シール?を外すとアルミのシールドがあって、その下に基板がある。
この基板でHDMI-LVDS変換とボタンの処理(OSD?)を行ってるのかな?



6. 液晶上部を少し手前に倒してパネルと基板をつないでるケーブルのコネクタを外す。
バックライトLED用のケーブルもつながっている。





この時点で電源を入れてみるとLEDが点灯した。
パネルをつなぎなおして接続、電源をいれてみると普通に写ったので分解はここまで。

2015年6月23日火曜日

[PHP] Composerでgithubの認証を求められたときの対策

[PHP]Composerでgithubの認証を求められたときの対策

composer updateをしたら
Loading composer repositories with package information
Authentication required (api.github.com):         
  Username: 
  Password: 
とか出てGitHubへの認証を求められました。
ComposerがGitHubのAPIを使っている関係で出るエラーらしいです。
ツイッターに書いたら以下のページを教えて頂きましたが、半日たってもエラーがでたままで、GitHubにアカウントを作ってTokenを取得することにしました。
お世話になります。 fuelphpをcentosにインストールしたいのです… - 人力検索はてな
http://q.hatena.ne.jp/1432733578

環境

Windows7 64bit
PHPのバージョンとかは関係なさそうです。

1. 大まかな手順

  1. GitHubにアカウントを作る
  2. Personal access tokensを作成する
  3. composerに設定する

2. 注意

  • トークンはパスワードみたいなものなので、漏れないように扱う。
  • トークンは作成した時にしか見れない。
  • 複数のマシンで使いたいときは、同じアカウントでトークンを作成する。

3. 手順

1. GitHubにアカウントを作る

  1. https://github.com/ にアクセスして、トップページでusername,email,passwordを入力して、”Sign up for GitHub”を押す。
  2. 無料のプランがあるので、それを選択してOK

2. Personal access tokensを作成する

  1. 個人のページに移動するので、一番右上の”View profile and more”ボタンから”settings”を選択する。
  2. 左側のメニューから”Personal access tokens”を選択
    “Generat new token”をクリックする。
  3. “Token description”を適当に入力して、下のチェックボックスはデフォルトのままで”Generate”ボタンを押す。
  4. トークンのリストに戻るとトークンが表示されているので、コピーする。このトークンは見れなくなるので、作業完了まではページを閉じずに置いておいた方が吉です。

3. composerに設定する

 composer config --global github-oauth.github.com
を実行してトークンを保存しておく。Windows7の場合は、”C:\Users\username\AppData\Roaming\Composer\auth.json”に値が保存されています。

2015年6月18日木曜日

[Play Framework][Java]Eclipseで開発してるときにコントローラーのソースでviewに「cannot be resolved」ってエラーが出てうざいとき Eclipseのパッケージエクスプローラーで <MyApp>->target->scala-2.10->src_managed->main のフォルダを右クリックしてBuildPath->Use as Source Folderを選択。

参考ページ

scala code causes error in eclipse for playframework-2.0 - stackoverflow

http://stackoverflow.com/questions/10960538/scala-code-causes-error-in-eclipse-for-playframework-2-0

2015年5月29日金曜日

Androidでボタンの色を動的に変更する


Androidでボタンの背景をShapeで作って、その色をコードから動的に変化させるためのメモです。

ボタンをおした時やフォーカスが当たった時の変化に対応しています。




1. 全体のレイアウト


適当にボタンを作っただけです。 android:background=”@drawable/button_background”でボタンの背景を指定しています。


       <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            tools:context=".MainActivity">

        <Button
                android:id="@+id/button1"
                android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/button_background"
            android:text="Button1"/>

    </RelativeLayout>

2. ボタンの背景用Shape


ボタンが押されたとき、フォーカスがあるとき、ボタンが押されていないときの順番で定義しています。順番は次の手順で必要になります。


1.で設定したファイル名に合わせて、drawableの直下にbutton_background.xmlというファイル名で作成しています。


初期の色は適当です。それぞれの状態ごとに本体部分の色と枠線の色を定義しています。


<?xml version="1.0" encoding="utf-8"?>
    <selector
        xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- ボタンが押されたときの定義 -->
    <item android:state_pressed="true">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid
                android:color="#0000FF"/>
            <stroke
                android:width="1dp"
                android:color="#00FF00"/>
            <corners
                android:radius="5dp"/>
        </shape>
    </item>

    <!-- フォーカスがあるときの定義 -->
    <item android:state_focused="true">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid
                android:color="#FF0000"/>
            <stroke
                android:width="1dp"
                android:color="#00FF00"/>
            <corners
                android:radius="5dp"/>
        </shape>
    </item>

    <!-- ボタンが押されていないときの定義 -->
    <item android:state_pressed="false">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid
                android:color="#FF0000"/>
            <stroke
                android:width="1dp"
                android:color="#FF0000"/>
            <corners
                android:radius="5dp"/>
            />
        </shape>
    </item>
</selector>

3. ボタンの色を変更するコード


pushedDrawable,focusedDrawable,unselectedDrawableが状態ごとの背景です。Shapeを定義した順番で取得できます。


GradientDrawable.setStroke()で枠線の太さと色を、GradientDrawable.setColor()で本体部分の色を変更しています。


Button button = (Button) findViewById(R.id.button1);
    StateListDrawable background = (StateListDrawable) button.getBackground();
    DrawableContainer.DrawableContainerState containerStateDrawable = (DrawableContainer.DrawableContainerState) background
            .getConstantState();
    Drawable[] children = containerStateDrawable.getChildren();

    GradientDrawable pushedDrawable = (GradientDrawable) children[0];
    GradientDrawable focusedDrawable = (GradientDrawable) children[1];
    GradientDrawable unselectedDrawable = (GradientDrawable) children[2];

    pushedDrawable.setColor(Color.GRAY);
    pushedDrawable.setStroke(10, Color.CYAN);

    focusedDrawable.setColor(Color.CYAN);
    focusedDrawable.setStroke(10,Color.GRAY);

    unselectedDrawable.setColor(Color.MAGENTA);
    unselectedDrawable.setStroke(10, Color.YELLOW);

getBackground()でDrawableを変数に取得して、変数の中身を探すという方法で調べたので、すごく時間がかかりました。


調べ終わってから検索して以下のページを見つけました。全て書いてあります。

How can I change colors in my StateListDrawable? - stackOverflow

http://stackoverflow.com/questions/19864337/how-can-i-change-colors-in-my-statelistdrawable


Written with StackEdit.

2015年3月23日月曜日

RaspberryPi にNode.jsを入れる

参考のページを見ながら、すぐできました。
多少バージョンが古くても手軽に導入するというスタンスです。
ソースからビルドすると、一晩かかるらしいので。

参考にしたページ

Raspberry PiとNode.jsで作る独立稼働モバイルサーバ | Think IT(シンクイット)
RPiにMongoDBをインストール - 落書き以上、技術メモ以下
Emerson’s Site | MongoDB + Raspberry Pi (without building anything!)
svvitale/mongo4pi · GitHub

1. nodebrewnのインストール

$curl -L git.io/nodebrew | perl - setup
$HOME/.nodebrew/current/binにパスを通すように表示されればOK。
.bashrcに上のパスを追加しておく。

2. node.jsのインストール

公式の最新版にはarm用のバイナリがなかったので、少し古いバージョンを選択
$nodebrew install-binary 0.10.28
Install successful
インストール済みのnode.jsのバージョンを確認
$ nodebrew list
v0.10.28
current: none
利用するバージョンをセット
$nodebrew use v0.10.28
use v0.10.28
確認
$node -v
v0.10.28

3.MongoDBのインストール

svvitale/mongo4pi · GitHub
こちらでインストール用のスクリプトを用意してくれているので、gitでもらってきて使います。
$git clone https://github.com/svvitale/mongo4pi.git
$cd mongo4pi
$sudo ./install.sh
完了です。

2015年3月2日月曜日

LinuxMint 17.1で日本語入力

LinuxMint 17.1で日本語入力


追記:2016/7/5
LinuxMint 17.3での日本語入力の設定を書きました。
システム標準の方法で入れています。
アイコンとかも標準のになっているので、こちらのほうが楽に入れられます。



LinuxMint17のときに日本語入力について書いたんですが、そちらにコメントしてくださった方によりますと17.1RCから設定ー>Languagesからインプットメソッドがインストールできるようになっているらしいです。

ということで、そちらの方から入れてみたんですが
 1.パネルに出るアイコンがなんかペンギンみたいなのに変わってる?
 2.そのアイコンをクリックしたときに出るメニューが中国語
 3.mozcをONにしてもアイコンは変わらない
 4.変換候補の出るポップアップがちょっと格好よくなってる

慣れの問題なんでしょうが、自分的には以前の動きと表示が好きだったので、一旦削除して、以前の方法で入れなおしました。

設定->Languageの設定画面からは削除できないようで、パッケージをざっくり削除すると設定画面の方も元に戻っていました。

    $sudo apt-get remove --purge fcitx*

これで削除できます。



AkiIno Blog: Linux Mint 17で日本語入力
http://blog.inoaki.com/2014/07/linux-mint-17.html

LinuxMintのChromium Browserを日本語化する方法

LinuxMintのChromium Browserを日本語化する方法


apt-getで入れたChromiumブラウザのメニューが英語のままで使いにくかったので、日本語化してみました。

というか、前はもっと難しかったような気がしたけれど、いつのまにかパッケージ一個いれるだけでいいみたい。


    $sudo apt-get install chromium-browser-l10n


これだけでOKでした。