2015年11月22日日曜日

Android Studio の build でエラーが出たときの対処

Android Studio でアプリの開発を行っていますが、APKファイルを作成するために「Generate Signed APK」を実行したところ building APK でエラーがでたというメッセージが出力され APKファイルが作成されませんでした。

build.gradle ファイルに以下のように記述をしたところ、build は終了し、APKファイルが作成されました。


android{

    lintOptions{
          checkReleaseBuilds false
          abortOnError false
    }
}

ただし、この記述をしないでソースを修正したほうがよいのかなとも思います。


2015年11月18日水曜日

2015年11月15日日曜日

Ubuntu 15.10 への Java のインストール(jdkのインストール)

今年の夏に購入した ASUS社のX552WというノートパソコンではUbuntu 15.10 が使用できるようにしてあります。このノートパソコンでAndroid Studioを動作させるために Java のJDK をインストールすることにしました。

以下のコマンドを入力しました。

sudo apt-get install openjdk-7-jdk


Linux用のAndroid Studio をダウンロードして 解凍したのちに、android-studio/bin の配下の studio.sh を実行しました。

しかしながら以下のメッセージが出力されてしまいました。

Unable to run mksdcard SDK tool


どうやら、X552Wというノートパソコンで使用されているCPUはAMDの64bitのものであるためのようです。
そこで以下のようにコマンド入力しました。
sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6


これによって、Android Studio は動作するようになりましたが以下のようなメッセージが表示されました。

System Health
OpenJDK shows intermittent performance and UI issues.We recommend using the Oracle JRE/JDK

jackcess のサンプル(テーブルの削除)

Jackcess を使ったサンプルです。データベース内の指定したテーブルの削除を行います。


https://gist.github.com/640282f9d04c2bc9b8c2

2015年11月13日金曜日

jackcess のサンプル(テーブルのリスト)

jackcess を使ってAccessデータベースのテーブルのリストを出力するサンプルです。UNIX上で動作するものです。






import java.io.File;
import java.util.List;
import java.util.Set;

import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;


public class TableList {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

       
        String db_name="/home/xxxx/Dropbox/doc/mdb/sample.mdb";
       
        try{
            Database db = DatabaseBuilder.open(new File(db_name));
           
            Set<String> tablenames= db.getTableNames();
           
           
           
            for(String tablename : tablenames){
               
                System.out.println(tablename);
            }
           
           
        }catch(Exception e){
            System.out.println(e.toString());
        //    System.out.println(e.getMessage());
           
        }
       

       
       
    }

}

jackcess のサンプル(クエリーのリスト)

jackcess を使ったjava のサンプルのソースコードです。
データベースの中にあるクエリーの名前を出力しています。








import java.io.File;
import java.util.List;

import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.query.Query;


public class QueryTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

       
        String db_name="/home/xxxx/Dropbox/doc/mdb/sample.mdb";
       
        try{
            Database db = DatabaseBuilder.open(new File(db_name));
           
            List<Query> queris = db.getQueries();
           
           
           
            for(Query query : queris){
               
                System.out.println(query.getName());
            }
           
           
        }catch(Exception e){
            System.out.println(e.toString());
        //    System.out.println(e.getMessage());
           
        }
       
    }

}

2015年11月11日水曜日

jackcess のサンプル

jackcess を使ったサンプルのコードです。
データベース名とテーブル名を指定してフィールド名(columnの名前)を出力するものです。
jackcess を使ったサンプルは以前にも紹介させていただいたことがあります。




import java.io.File;
import java.util.List;

import com.healthmarketscience.jackcess.Column;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Table;


public class Jack {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
       
        String db_name="/home/xxxx/Dropbox/doc/mdb/sample.mdb";
        String table_name="sample_table";
       
        try{
            Database db = DatabaseBuilder.open(new File(db_name));
            db.setColumnOrder(Table.ColumnOrder.DISPLAY);
            Table table = db.getTable(table_name);
           
            List<? extends Column> Columns = table.getColumns();
           
            for(Column column : Columns){
               
                System.out.println(column.getName());
            }
           
           
        }catch(Exception e){
            System.out.println(e.toString());
           
           
        }

    }

}

2015年10月31日土曜日

HDMI をコンポジットに変換する

HDMI の出力をコンポジット端子に変換するための器具です。アマゾンでいくつか同じようなものがありました。mk802ivの出力画面を以前に使用していたアナログテレビに映し出すために購入しました。


1040円

1215円+120円 結局はこれを購入しました。中国から china post で送付されてきました。届いた荷物の梱包にはDDA55Wと記載されていました。 

1500円

2015年10月25日日曜日

PC用ワンセグチューナー

PCでワンセグを見るためのワンセグチューナーを購入しました。Windows10 のPC にインストールしてテレビを見ることができました。付属のアンテナでは、スキャンしても4つの局しかでてきませんでしたが、付属の変換アダプタを使って、家で使用していた普通のテレビ用アンテナに接続したところ、5つの局がスキャンででてきました。



ラグビーボール型BlueToothスピーカー

ちょっと興味があるのが、ラグビーボール型BlueToothスピーカーです。sdカードやUSBメモリに格納されたmp3ファイルの再生もできるようです。Androidやmp3プレーヤーとケーブル接続して音楽を聞くこともできるようです。




以下の機種は、ノキアのBL-5Cというバッテリーが使用されているそうです。

2015年10月21日水曜日

Android SDK Tools revision 24.4.1 をインストール

Android Studio を起動したところ、アップデートが来ていたので、Android SDK Tools revision 24.4.1 をインストールしました。


Aukey の 12000mAh モバイルバッテリー PB-N28 を購入しました。

zenfone5 およびNexus7 を外出する時に持ち歩いて、外出先で充電するという目的のために、モバイルバッテリーの購入を検討しておりました。迷ったあげくに、結局のところAukey AIpower 12000mAh モバイルバッテリーの PB-N28 という機種を購入しました。




Anker の 10400mAh の Anker PowerCore 10400 という機種も検討しました。実はAnker PowerCore 10400という機種にしてもよかったかなとも思っています。 Anker PowerCore10400 では、持ち運びに便利なトラベルポーチ(袋)がついてきます。また、PowerIQ と VoltageBoost が搭載されているという点も魅力的でした。

一方でAukey AIPower PB-N28 では、LED ライトがついています。これが災害時などに地味に便利かなと思ったのです。また、AIPower が搭載されているという点が魅力的でもありました。

側面のボタンをポンと押すと、PB-N28のバッテリーの残量がAukeyという文字の表示の色で判別できます。60%~100%の場合は白色、20%~60%の場合には緑色、20%~0%の場合には赤色の表示となります。


PB-N28 には、USBケーブルはついていますが、ACアダプタはついていません。PB-N28そのものを充電するには2Aに対応したACアダプタがよいようです。Nexus7(2012)を充電するための ACアダプタが、5.0V -- 2.0Aなので、これを流用して使えばよいかなと思っています。また、mk802iv を購入した時についてきた ACアダプタも 5V -- 2A だったので、それを使えばよいかなとも思ったりします。Nexus7(2013)やzenfone5 のACアダプタは、5.2V--1.35Aだったので使用できるかどうかわかりません。

気になったのはモバイルバッテリーそのものを充電しながら、同時にスマホを充電することができるのだろうかということです。Anker PowerCore 10400 の場合にはできないということのようでした。一方でAukey AIPower PB-N28 の場合にはどうなのだろうかと思っていました。するとPB-N28のユーザーマニュアルに以下のように記述されていました。

本製品は同時に充放電することをサポートしていますが、内蔵されたバッテリーを損害しないために、同時に充放電することはお勧め致しません。

どうやら、できないわけではないのですが、やらないほうがよいようです。



PB-N28 そのものを充電する際には、Aukey の文字が赤く点灯します。満充電になるとその文字が白く変わります。

スマホを充電するには、USBケーブルを接続したあとで、側面のボタンを押します。 すると充電が始まります。


側面のボタンを長押しすると、小口面のLEDライトが点灯します。再度、長押しすると消えます。

zenfone5 や Nexus7 の充電の他に、ワンセグチューナー AN-T013 を充電することもできました。またモバイルWiFiルーターGP01 の充電もしようと思っています。




以下の各動画では、Aukey AIPower PB-N28 が紹介されています。







2015年10月17日土曜日

Androidタブレット・スマホ用ワンセグチューナー

私の持っている、Nexus7 や zenfone5 などのAndroidタブレットやスマホでは、ワンセグを見ることができない(家の中ではnasneを使ってテレビをみることはできるけれど外出先でテレビを見ることができない。)のですが、次のような商品があることがわかりました。Androidでも使用できるワンセグチューナーです。 (ポータブルワンセグチューナーAN-T013)

無線Lanを使って接続するものです。zenfone5 や Nexus7 や mk802iv(液晶ディスプレイに接続) などで試してみたいと思います。



(2015.10.24)このワンセグチューナーを購入して、使い始めました。 ワンセグなので、画質は荒いですが、zenfone5 や Nexus7 では、画質の悪さはあまり気になりません。 mk802iv を20インチぐらいの大きな液晶ディスプレイに接続して使うと、この場合にはさすがに画質の悪さが気になります。フルセグチューナーが欲しくなるところです。

このワンセグチューナーは、WiFiで接続するタイプなので、接続している間は、インターネットへの接続ができなくなります。インターネットに接続したくなったら、WiFiの切り替えが必要になります。

また、このワンセグチューナーに同時にWiFi接続できるのは、1台だけです。1台のマシンがワンセグチューナーに接続していると、他のマシンから、接続しようとしてもできないようです。

このワンセグチューナーは、Android だけではなく、iPhoneやiPad でも使用できるようです。ただし私は、iPad でもiPhone も持っていないので、試していません。

Android デバイスとしては Nexus7および zenfone5 および mk802iv の他に、ANDBOX44 というものも持っているのですが、ANDBOX44 では、ワイヤレスTVのアプリが動作しませんでした。

ANDBOX44 では、WiFi ではなくて有線でLANに接続するタイプなのでアプリが動作しないのかと考えて、あたかもWiFi接続があるかのように見せかけるというアプリを使ってみましたが、やっぱりダメでした。 WiFi接続があるかのように見せかけるアプリは fake wifi connection というキーワードで検索して見つけました。


http://repo.xposed.info/

http://www.minixforum.com/threads/fake-wifi-how-to-trick-apps-asking-for-wifi.4361/


2015年10月15日木曜日

USB充電器およびケーブル

購入したいと考えているのは、モバイルバッテリーの他にUSB充電器および充電用USBケーブルです。zenfone5 などのスマホだけではなくて、Nexus7 などのタブレットの充電にも使用できるものが欲しいと考えています。
以下は、アマゾンでベストセラーとなっているものです。各ポートの最大出力は、2.4Aです。PowerIQ搭載です。

以下は、急速充電に対応したUSBケーブルです。アマゾンでベストセラーとなっているものです。

zenfone5 用のモバイルバッテリー

旅行などの際にzenfone5を使用するためモバイルバッテリーを購入しようと考えています。なおzenfone5のバッテリー容量はカタログでは2110mAhです。

amazonでベストセラーになっています。anker の5200mAhです。重さ204g
anker の 10400mAh です。重さ259g なおAnker の製品はバッテリー本体を充電しながら同時にスマホも充電するということができないようです。
Aukey の12000mAh です。youtube動画
  youtube動画LEDがついていて懐中電灯の代わりになるようです。AIPowerという機能付きです。(接続した機器に合わせて最適の電流を流すらしい)重さ240g

Oniteの5600mAh です。zenfone5 への対応をうたっています。LEDがついています。重さ181g 出力が5V 1A なのでzenfone5 は充電できても Nexus7を充電することはできないだろうと思われます。

Powerseedの11000mAh です。10000mAh を越えているものとしては、安めのように感じます。重さ275gちょっと重いのかな

TEAMの10400mAh です。重さ245g

cheeroの13400mAh です。重さ245g 値段は高いけどよいもののようです。

2015年10月10日土曜日

Eclipse から Android Studio へ

Androidアプリの開発の環境を、Eclipse から Android Studio へ移行している途中です。
Eclipse で作成したプロジェクトのソースコードを基本的には、そのまま、Android Studio のプロジェクトのほうへコピーしています。

なおAndroid Studio の SDKは以下の場所に作成されました。(xxxxはユーザー名です。)

 \Users\xxxx\Appdata\Local\Android\sdk

jar ファイルなどのライブラリは、libs の配下に配置します。また buid.gradle の中に dependencies として記述します。

Android Studio でコンパイルする際に -Xlint:deprecationオプションがどうのこうのという茶色(赤色?)のワーニングメッセージが表示されました。どう対処すればよいのかわかりません。

2015年10月6日火曜日

Raspberry Pi2 Model B


Raspberry Pi2 Model B が欲しいなと思っています。いろいろ遊べそうですので。



2015年10月4日日曜日

TT-029

多機能なNizhi というガジェットです。mp3プレーヤー、スピーカー、FMラジオなどの機能を持ちます。


https://www.youtube.com/watch?v=NuwgANVSQLw

2015年10月2日金曜日

BlueTooth対応スピーカー


mp3 ファイルを聞くこともできる BlueTooth 対応スピーカーです。どうやら BTK1015 という商品のようです。


youtube で BTK1015 で検索すると、いろいろでてきます。

https://www.youtube.com/watch?v=P_n8VJj0b1E

https://www.youtube.com/watch?v=JRsNTMJTqlY

 https://www.youtube.com/watch?v=C4XjJnywrhw

2015年9月26日土曜日

スピーカー付きmp3プレーヤー

語学番組や音楽などを、mp3 ファイルをmicroSDカードに入れておいて、それを聞きたいという希望があります。iPod Classicは持っているのですが、iTunes などで音楽ファイルを入れたり消したりして同期させるのがやや面倒くさいので、mp3ファイルをmicroSDカードに入れるだけのほうが手軽でわかりやすいと思います。 以下の商品は基本的にはスピーカーですが、microSDカードに入れたmp3ファイルを再生することもできるらしいのでおもしろいかなと思っています。



以下の商品はFMラジオも聞けるようです。日本のFMラジオには対応していないものもあるかもしれません。

以下の商品はFM/AMラジオですが、mp3ファイルも聞けるようです。

2015年9月24日木曜日

ASUSのZenpad 8 がいいなと思っています。

音声通話ができるSIMをさせば、通話もできるようになるらしいです。


2015年9月23日水曜日

FMトランスミッター

iPodの中に入れた音楽や語学番組を車の中で聞くことができるようにするためにFMトランスミッターが欲しいなと思っています。アマゾンで調べてみるといろんな種類があることがわかりました。iPod やスマホとケーブルで接続して使用できるようです。また、USBメモリやSDカードに入れたmp3ファイルを聞く機能があるものもあるようです。またスマホなどをUSB接続して充電する機能がついているものもあるようです。

以下は、3.5mmミニプラグで接続するタイプのものでしょうか。

また、以下はケーブル接続には、対応していないようですが、mp3 mp4 に対応しているようです。

2015年9月17日木曜日

モバイル Wi-Fiルータ GL02P

モバイル Wi-Fiルータ GL02Pをネットオークションで購入しました。

このポケットWi-Fi ルータはSIMロックフリーのようです。

ドコモ系MVNOであるワイヤレスゲート社の格安SIMカードを入れたところ、問題なく通信ができました。


挿入できるSIMサイズは、標準サイズのSIMになります。

自分が持っているワイヤレスゲート社のSIMのサイズは、microSIM だったので、SIMサイズを変換するアダプタを使用しました。ところが、SIMカードがアダプタからはずれてしまい、アダプタだけが挿入された状態になってしまいました。こうなると、アダプタがひっかかって抜けなくなってしまうのです。同じ症状に陥った他の人のレビューを参考にさせてもらい対処いたしました。やれやれ。







2015年9月16日水曜日

モバイル Wi-Fi ルータ GP01


モバイル Wi-Fi ルータの GP01をオークションで入手しました。

GP01についての情報は以下のサイトで確認できます。
http://www.ymobile.jp/lineup/old/gp01/


このGP01 のファームウエアのバージョンを、V3.00 にバージョンアップすることにより、SIMロックフリーにできるという情報を見つけました。


すでにバージョン3.00にアップされているかどうかは、起動時のWELCOMEの表示のところで、WELCOMEの文字の下にSoftware Ver 3 の文字の表示がされるのでわかります。

また、GP01 をPCなどに接続して設定ツールで確認できるようです。
購入時のバージョンは以下のようでした。このバージョンは、バージョン3.00ではないようです。

21.307.02.01.168

なお、バージョン3.00にアップしたところ以下のバージョンになりました。

21.334.00.06.168




インターネットの次のサイトを見ながら、ファームウエアをV3.00にバージョンアップしました。

http://www.ymobile.jp/lineup/old/hw/gp01/updatetool.html

ファームウエアをバージョンアップするには、PCとGP01をUSB接続する必要がありますが、USBケーブルは、100円ショップで購入した「スマートフォン用USB充電・転送テーブル」を使用いたしました。


ドコモ系列のMVNOのワイヤレスゲートのSIMカードをいれたあとで、APNのプロファイルを作成する設定をしたところ、インターネットに接続できることが確認できました。

またNexus7 から、このGP01にWi-Fi接続してインターネットに接続できることを確認しました。

このGP01 のIMEI をインターネットの以下のサイトで、ネットワーク利用制限携帯電話機の確認をしたところ、結果は-「製造番号が確認できません。」となりました。SIMフリーの場合には、どうやら「製造番号が確認できません。」となるようです。
 
http://www.softbank.jp/mobile/support/3g/restriction/
https://ct11.my.softbank.jp/WBF/icv


以下はGP01 の開封と設定についての動画です。













2015年9月14日月曜日

モバイル Wi-Fi ルータ

Nexus7 の Wi-Fi モデルを持っています。このNexus7 を外出先でも使用できるようにモバイル Wi-Fi ルータを手に入れたいと思っています。

ただ モバイルWi-Fi ルータは結構高いようなので、安く手に入れる方法がないか探してみました。

イー・モバイルのモバイルWi-Fi ルータがオークションなどで、安く出回っているという情報を見つけました。

また以下の機種はどうやら、SIMフリーらしいのです。(ただし以下の機種でもSIMフリーでないものもあるようです。)

GP01 (A2716)
GP02

GL01P
GL02P
GL04P
GL06P


なお、D25HW という機種はSIMフリーなのかどうかよくわかりません。

(2015.9.15)
GP01 という機種をオークションで入手しました。

(2015.9.16)
GL02P という機種もネットオークションで入手しました。

2015年9月11日金曜日

Android Studio のアップデート

Android Studio 1.2.2 から 1.3.2 へアップデートしたいのだけれども、やり方がわからない。Android Studio 1.2.2 をアンインストールしてから、Android Studio 1.3.2をインストールすればよいのだろうか?そうするしかないのだろうか?


結局のところ、Android Studio 1.2.2 をアンインストールして、Android Studio 1.3.2 をインストールしました。

2015年9月7日月曜日

perl でmysql データベースに入力

perl を使って mysql を操作しています。csv ファイル(カンマ区切りのファイル)を読み込んで、mysql データベースに入力(インサート)しています。

以下は、そのサンプルです。sample.csv というファイルを1行づつ読み込み、split という機能でカンマで区切ってあるデータをそれぞれ取り出してから、mysql データベースに入力しているものです。


perl を使って mysql データベースにデータを入力する方法については、以前にも紹介させていただいたことがあります。



#!/usr/bin/perl
use strict;
use warnings;
use Web::Scraper;
use URI;
use Encode;
use strict;
use warnings;
use utf8;
use DBI;


open(IN,"sample.csv");
while( my $Meigara0 = <IN> )
{
chomp($Meigara0);

my @Meigara_list;
   $Meigara_list[0] = '';
   @Meigara_list = split(/\,/,$Meigara0);
my $price    =$Meigara_list[1];
my $kataban  = $Meigara_list[0];
my $spec = $Meigara_list[2];
my $url      = $Meigara_list[3];

my $dbuser="root";
my $dbpass="xxxx";
my $dbname="sample_db";

my $dsn = "DBI:mysql:$dbname";
my $dsh = DBI -> connect ( $dsn, $dbuser, $dbpass , { RaiseError => 0 } );
   $dsh->do("set names utf8");
my $sth;

my $sql="insert into sedori (flug,price,kataban,spec,url) values (-99,'" . $price . "','" . $kataban . "','" . $spec . "','" . $url . "');";

   $sth = $dsh->prepare($sql);
   $sth->execute;
  my $num_rows = $sth->rows;
  print "num_rows:" . $num_rows . "\n";


}

2015年9月2日水曜日

Ubuntu 上で iPod classic の中身にアクセス

私は、iPod classic 30G を持っています。

iPod の中身にアクセスするためには、(iPod とPCをケーブルで接続した上で)Windows上では iTunes というソフトウエアを使えばよいということは知っていました。

iTunes でなくても、Windows上でiPod の中身を取り出すことのできるソフトウエアもあることは以前に紹介させていただきました。


Ubuntu 上でも、Rhythmbox または、gtkpod というソフトウエアを使用することにより、iPod の中身にアクセスできることがわかりました。

Rhythmbox では、iPod に入っている音楽などをPC上で鳴らすことができます。

また、ポッドキャスト(podcast)などを、Rhythmbox で取り込んだあとで、mp3 ファイルとして取り出すことができます。

Bilingual News (バイリンガルニュース)というポッドキャストを、Rhythmbox で取り込みmp3 ファイルとして取り出したあとで、gtkpod を使って iPod に入れることができました。

mp3 ファイルを聞くためだけの目的で、mp3プレーヤーも購入しようかとも思っていましたが、Rhythmbox と gtkpod があれば、iPod classic だけでもやっていけそうな気がしています。







2015年8月26日水曜日

Ubuntu で mysql サーバーのインストール

Ubuntu 15.04 でデータベースを使ってみようと思いたちました。そこで今までも何度かインストールしたことはあるのですが、mysql サーバーをインストールしてみました。最近マリアDBというデータベースがあることを知ったのですが、それではなくて、とりあえずは、なじみのあるmysql にしました。


以下のコマンドにより mysqlサーバーをインストールしました。

sudo apt-get install mysql-server

途中で、root のパスワードを聞かれましたので、適当に入力しました。

以前にもインストールしたことはあるのですがutf-8の設定が必要のようです。

/etc/mysql/conf.d/language.cnf というファイルは存在しなかったのですが、新規に作成しました。

その後以下のコマンドで mysql サーバーに接続してみます。(パスワードを聞かれます。)


mysql -u root -p

mysql サーバーに接続したあとで status コマンドを入力して状態を表示させて以下のように characterset がすべて utf8 になっていることを確認します。


Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8





2015年8月23日日曜日

Ubuntu上でAccessの.accdbや.mdbファイルを見る方法

Ubuntu上でAccessの.accdbや.mdbファイルを見る方法です。以下のサイトを参考にさせていただきました。LibreOffice のbase とucanaccess を使用します。


http://tahsinabrar.com/open-a-microsoft-access-accdb-file-in-ubuntu/


Windows上であれば、LibreOffice を使って、Accessの.accdbや.mdbファイルを見ることはできることは知っていましたが、Ubuntu上のLibreOffice でもこの方法を使えばできるようなのです。


2015年8月22日土曜日

ASUS X552W でメモリ増設しました。


先日、購入したノートパソコン ASUS X552W (X552WA-B-SX015)でメモリの増設をしてみました。 増設したのは、4Gのメモリです。増設後は、もともと入っていた2Gのメモリと合わせて6Gメモリとして認識されるようになりました。なお増設の前にBIOSの更新が必要かとも思ったのですが、更新は特に行いませんでした。


以下のサイトを参考にさせていただきました。

http://open.mixi.jp/user/62414894/diary/1941867338?org_id=1941856608



購入したのは、以下のメモリです。

2015年8月9日日曜日

Androidアプリ開発で中国語に対応させる

拙いながらEclipse を使ってAndroidアプリ開発を行っています。現在、作成中のアプリは、英語と日本語の表示に対応させています。

まずプロジェクトのフォルダーの配下の/res/values/strings.xml というファイルにデフォルトの環境(英語環境)で表示させたい英語のメッセージなどの文字列をキーワードといっしょに記述しておきます。


次に、/res/values-ja/strings.xml というファイルに日本語環境で表示させたい日本語のメッセージの文字列をキーワードといっしょに記述しておきます。

ソースコードの中では、メッセージを直接書かずに、R.string.<キーワード> のように記述しておきます。

プログラムの実行時に R.string.<キーワード> の部分がそれぞれの言語の文字列に変換されて表示されるようです。英語でも日本語でもない言語の環境では、デフォルトの英語で表示されるようです。


今回、英語と日本語の言語の表示の他に、第3の言語として中国語の表示にも対応させようと考えつきました。

日本語の場合には、values-ja というフォルダにstrings.xml ファイルを配置しておりましたが、中国語の場合には、values-zh というフォルダにファイルを配置すればよいらしいことがわかりました。

なお中国語には繁体字と簡体字があるようなのですが、どのように区別してよいのかはわかりませんでした。



以下は、私が用意した英語用(デフォルト)、日本語用、中国語用のそれぞれのstrings.xml のサンプルです。中国語は、google のオンライン翻訳などを使って作成したものですが、中国の人にちゃんと通じるかどうかあまり自信がありません。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">MDB Database Editor</string>
    <string name="versionCode">6</string>
    <string name="versionName">20150809.1100</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="select_database">Select Database File</string>
    <string name="tap_table">please tap a table name.</string>
    <string name="no_table">there is no table in this database.</string>
    <string name="error">error occurred.</string>
    <string name="not_access_file"> is not Access (.mdb .accdb)file.</string>
    <string name="upper_directory">(upper directory)</string>
    <string name="error_display_table">Error occurred in displaying table contents.</string>
    <string name="add_menu">Add Menu</string>
    <string name="search_menu">Search Menu</string>  
    <string name="previous20">previous 20 records</string>
    <string name="next20">next 20 records</string>
    <string name="complex_type">COMPLEX_TYPE column exists.</string>
    <string name="add">Add</string>
    <string name="search">Search</string>
    <string name="update">Update</string>
    <string name="delete">Delete</string>
    <string name="delete_by_sql">Delete by SQL statement</string>  
    <string name="search_comment">you can use * at Text field.ignore case</string>
    <string name="sort">sort:</string>
    <string name="sort_cancel">sort cancel</string>
    <string name="ignore_case">ignore case</string>
    <string name="asc">ascend</string>
    <string name="desc">descend</string>
    <string name="record_deleted">A record was deleted.</string>
    <string name="record_updated">A record was updated.</string>
    <string name="record_added"> record was added.</string>
    <string name="no_change">There is no change.</string>
    <string name="can_not_edit">can not edit(update,delete) this table</string>
    <string name="delete_confirmation">delete confirmation</string>
    <string name="are_you_sure">Are you sure to delete this record?</string>
    <string name="ok_delete">OK delete</string>
    <string name="cancel">Cancel</string>
    <string name="display_on_off">information on/off</string>
    <string name="dupuricate_record">(Warning)dupuricate record</string>
    <string name="only_first_editable">only first-find record can be edited/deleted.</string>
 
</resources>


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello_world">Hello world!</string>
    <string name="select_database">データベースファイルの選択</string>
    <string name="tap_table">テーブル名をタップしてください。</string>
    <string name="no_table">このデータベースにはテーブルがありません。</string>
    <string name="error">エラーが発生しました。</string>
    <string name="not_access_file">は Accessファイル (.mdb .accdb)ではありません。</string>
    <string name="upper_directory">(上の階層へ)</string>
    <string name="error_display_table">テーブルの内容の表示でエラー発生しました。</string>
    <string name="add_menu">追加メニュー</string>
    <string name="search_menu">検索メニュー</string>
    <string name="previous20">前の20件</string>
    <string name="next20">次の20件</string>
    <string name="complex_type">COMPLEX_TYPE のフィールドが存在します。</string>
    <string name="add">追加</string>
    <string name="search">検索</string>
    <string name="update">更新</string>
    <string name="delete">削除</string>
    <string name="delete_by_sql">SQL文による削除</string>
    <string name="search_comment">Textフィールドでは*が使用できます。大小文字区別なし</string>
    <string name="sort">並べ替え:</string>
    <string name="sort_cancel">並べ替え キャンセル</string>
    <string name="ignore_case">大小文字を区別しない</string>
    <string name="asc">昇順</string>
    <string name="desc">降順</string>
    <string name="record_deleted">レコードが削除されました。</string>
    <string name="record_updated">レコードが更新されました。</string>
    <string name="record_added">レコードが追加されました。</string>
    <string name="no_change">変更がありません。</string>
    <string name="can_not_edit">このテーブルは変更、削除できません。</string>
    <string name="delete_confirmation">削除の確認</string>
    <string name="are_you_sure">本当にこのレコードを削除しますか?</string>
    <string name="ok_delete">削除する</string>
    <string name="cancel">キャンセル</string>
    <string name="display_on_off">表示オンオフ</string>
    <string name="dupuricate_record">(警告)重複したレコード</string>
    <string name="only_first_editable">はじめに見つかったレコードのみ編集/削除が可能</string>
 
 
 
</resources>




<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello_world">Hello world!</string>
    <string name="select_database">选择一个数据库文件</string>
    <string name="tap_table">请选择一个表名</string>
    <string name="no_table">该数据库没有表</string>
    <string name="error">发生了错误。</string>
    <string name="not_access_file">这不是一个Access数据库(.mdb .accdb文件)</string>
    <string name="upper_directory">(父目录)</string>
    <string name="error_display_table">在表的显示会发生错误</string>
    <string name="add_menu">添加</string>
    <string name="search_menu">搜索</string>
    <string name="previous20">此前的20条记录</string>
    <string name="next20">接下来的20条记录</string>
    <string name="complex_type">COMPLEX_TYPE 会场上存在</string>
    <string name="add">添加</string>  
    <string name="search">搜索</string>
    <string name="update">更新</string>
    <string name="delete">删除</string>
    <string name="delete_by_sql">用sql删除</string>
    <string name="search_comment">在文本字段 您可以使用* 大写小写不敏感</string>
    <string name="sort">数据的排列:</string>
    <string name="sort_cancel">取消 数据的排列</string>
    <string name="ignore_case">大写小写不敏感</string>
    <string name="asc">升序</string>
    <string name="desc">降序</string>
    <string name="record_deleted">记录已被删除</string>
    <string name="record_updated">一个记录被更新</string>
    <string name="record_added">创纪录的加入</string>
    <string name="no_change">没有变化</string>
    <string name="can_not_edit">此表不能被改变或删除的</string>
    <string name="delete_confirmation">删除确认</string>
    <string name="are_you_sure">你确定要删除此记录?</string>
    <string name="ok_delete">删除</string>
    <string name="cancel">取消</string>
    <string name="display_on_off">显示的 开 关</string>
    <string name="dupuricate_record">(警告)重复记录</string>
    <string name="only_first_editable">唯一的记录你已经先发现,你可以更新或删除</string>
 
 
 
</resources>





STOP 白内障(ためしてガッテンより)

白内障の進行を遅らせるには(2015年8月5日ためしてガッテンより)


早期発見して目薬をもらう
紫外線カット
マルチビタミンの摂取

2015年8月4日火曜日

Androidアプリ開発 ファイルマネージャから起動する方法

Androidアプリの開発の勉強をしております。現在、作成しているアプリは、Microsoft Access のデータベースファイルの中身を見たり(ビューワー)や編集したり(エディター)するものです。

アプリをまず起動して、次にデータベースファイルを選択するという使い方となっています。データベースファイルというのは、拡張子が.mdb かまたは .accdb のファイルのことです。

アプリを起動してからファイルを選択するのではなくて、逆にファイルマネージャで拡張子が.mdbまたは.accdbのファイルを選択すると自動的にこれらのアプリが起動するようにできないかと考えておりました。

インターネットのgoogle でいろいろ調べてなんとかできるようになりました。暗黙的インテントというしくみを使えばよいらしいのです。


以下のサイトを参考にさせていただきました。

https://groups.google.com/forum/#!topic/android-group-japan/D8LhZqKm_-o


マニフェストファイル(AndroidManifest.xml)に以下のような行を追加することで実現できました。

<intent-filter>
   <action android:name="android.intent.action.VIEW"></action>

        <category android:name="android.intent.category.DEFAULT"></category>
       <data android:host="*" />
            <data android:scheme="file"/>
       <data android:mimeType="*/*" />
            <data android:pathPattern=".*\\.mdb" />
       <data android:pathPattern=".*\\.accdb" />
</intent-filter>

2015年8月1日土曜日

Ubuntu 15.04 に dropbox をインストールする

X552W というノートパソコンを新規購入したのですが、そのノートパソコンに Ubuntu 15.04 をインストールしました。

さらにその Ubuntu 15.04 に次のコマンドを入れることにより、dropbox をインストールしました。

sudo apt-get install nautilus-dropbox


そのあとで、コマンドラインから dropbox と入力したところユーザーID(メールid)とパスワードを聞いてきたので入力したところ、同期がおこなわれました。


2015年7月29日水曜日

ASUS X552W を購入しました。

ASUS のノートパソコン X552W を購入しました。

型番は X552W ですが、もう少し詳しくみてみると型番は、X552WA-B-SX015 でした。

このノートパソコンはメモリが2Gですが、公式には増設できないそうです。ですが、インターネットで見てみると、メモリを増設するスロットがあり、実際に増設した人がいるようです。

増設したメモリは、PC3L-12800(  DDR3L-1600 )4Gだそうです。もともとの2Gのメモリと合わせて6Gとなり、動作も快適になったそうです。

(2015.8.21)
実際に4Gメモリを購入してメモリの増設を行いました。


このノートパソコンには、Windows8.1 with Bing がインストールされており、Windows10 へのアップグレードを予約しました。

なお、とりあえずX552W のDドライブを削減して空き領域を作成して、そこにUbuntu 15.04 をインストールしました。X552W を起動する時にOSをUbuntuにするか Windows にするかを選択できるようになりました。


PC TV with nasne をインストールして評価してみました。新しく購入したこのノートパソコンでテレビの番組が見られることを確認しました。14日間は無料で評価使用できるようです。

なお、以前からもっていたノートパソコンでは、PC TV with nasne は動作しなかったのです。なぜ新しいノートパソコンX552W で動作するのかは不明です。


(2015.8.8)
このノートパソコンを Windows10 にアップグレードしました。


このノートパソコンは、CPUがやや弱く、動画やDVDを見ようとするとカクカクすることがあるということでした。たしかに、yutube を見ているとカクついたことはあります。

(2015.10.24)PCにUSB接続して使用できるワンセグチューナーを購入しました。このPCでワンセグのテレビを見られるようになりました。



2015年7月24日金曜日

ファイルが存在したら何々をする(Unix シェルスクリプトのサンプル)

Linux(Unix) のシェルスクリプトで、「もしファイルが存在したら何々をする」という処理をしたい場合があります。その場合には例えば以下のサンプルのように記述します。なおシェルスクリプトの種類はBシェルです。




if [ -f xxxxxxxx.csv ] ; then
     rm xxxxxxxx.csv
     echo xxxxxxxx.csv removed
fi



上記のシェルスクリプトでは、xxxxxxxx.csv というファイルが存在したら、それを削除して xxxxxxxx.csv removed と表示します。


2015年6月25日木曜日

avast Internet Security を更新

Windows7 で使用しているパソコンでセキュリティソフトであるavast Internet Security を更新しました。

3台で2年間のライセンスで、7980円でした。

コンビニで支払いを行ったところ、ライセンスファイルが添付された電子メールが届きました。

avast Internet Security がインストールされているWindows7 のパソコンで、ライセンスファイルをダブルクリックすると読み込まれて更新が完了しました。


なお Windows8.1 で使用している別のパソコンでは、今まで KingSoft Intenet Security (広告が表示されるが無料)を使用してきましたが、今回から、 avast Internet Securityに切り替えました。


2015年6月23日火曜日

Android アプリ FTPサーバー

Android アプリのFTPサーバーを ZenFone5 にインストールしました。



https://play.google.com/store/apps/details?id=com.theolivetree.ftpserver&hl=ja


目的はPCで作成したアプリの apk ファイルをZenFone5 に持っていって稼働確認をするためです。


デフォルトでは、ポート 2221 になるので、パソコン側からFTPプロンプトがでているところで
 open 192.168.x.y  2221 のように入力して接続します。

ユーザ名とパスワードをきかれるので、デフォルトの francis をそれぞれ入力します。

apk ファイルを put コマンドを使ってPCから、ZenFone5 に送信するわけですが、putコマンドを使う前に、 bin コマンドを入力しておく必要がありました。そうしないと、送信された apk ファイルが ZenFone5 側でアプリのファイルとして認識されないようでした。


2015年6月20日土曜日

Android Studio を再度インストール

現在、Windows7 の環境で Android アプリ開発の勉強をしております。このたび、Windows7 の環境に、Android Studioを再度インストールしてみました。これは以前にもやったことがあるのですが、やり方を忘れてしまっておりました。

はじめに、Java のJDK をダウンロードしてインストールしておく必要があるようです。 それから、Android Studio をダウンロードしてインストールします。

なお、Android Studio をインストールする途中で以下のような画面がでました。何を意味するのか不明です。




この画面で、「Setup Proxy」を選択すると以下のような画面となりました。ここで「Auto-detect proxy settings」を選択するとエラーはでなくて次にすすみました。





































 マシンは、あいかわらず、DELL の Dimension 4600C および、同程度の性能のマウスコンピュータの Pentium4 のマシンを使用しています。これらのマシンの性能は、現在、世の中に出回っているマシンと比べるとずいぶん遅くなっており、Android Studio を動作させるのには、無理があるように感じます。


新しいマシンが欲しいところです。今年の夏には、Windows10 がリリースされるらしいので、それに合わせて新しいパソコンを購入しようかと思っています。

(2015.9.8)
なお、sdk は以下の場所に作成されました。(xxxxはユーザー名)

c:\Users\xxxx\Appdata\Local\Android\sdk

2015年6月18日木曜日

Android アプリを Nexus7 の実機でデバッグする方法について

Android アプリの開発のデバッグをするために、動作確認をする際に Nexus7 を使用しております。まずプログラムを書いたのちに、apk ファイルをエクスポートし、そのapkファイルをNexus7上でクリック(タップ)してインストールしてから動作確認をしています。



以前に、apkファイルを使用せずに、Nexus7実機 をUSBケーブルでWindows7のPCに接続した状態でAndroidアプリ開発のデバッグに使用したことがありました。


http://chaos-fractal.blogspot.jp/2015/02/androidnexus7.html


最近になってもう一度それをやってみようと思ったのですがやり方をすっかり忘れてしまっていました。しかし、なんとか、eclipse 上でそれらしい画面が再度見つかったようなので、また忘れないうちに記載させていただきたいと思います。


なお、Android アプリの開発には、現在まだ eclipse を使用しております。

PCにUSB接続したNexus7の実機で動作確認するには、以下の画面でasus-nexus7-xxxxxxxx をセレクトする必要があります。



なお、あらかじめ、eclipse の Run Configurations のところで Target を以下のように設定しておきます。




Nexus7 (2012) を早くする方法

最近、Nexus7 (2012) が遅いのでAndroid 5 からAndroid 4.4.4 に戻したばかりです。なお、それによって以前のようにサクサクと動くようになりました。ただしハードディスクの容量が16Gのモデルのはずなのに6.02Gしか認識されなくなってしまうという副作用がありました。


今更ですが、Nexus7 を早くする方法についての Youtube 動画を見つけたので紹介させていただきます。


2015年6月12日金曜日

PC TV with nasne

以前に nasneを購入しました。これによって、Nexus7 で地上波のデジタル放送のテレビが視聴できるようになっていました。

 
PC TV with nasne を Windows のPC にインストールしました。うまくいけば、PC上で同様にテレビが視聴できるようになるはずです。
しかしながら nasne の登録のところで、「nasne が見つかりませんでした。」というメッセージが表示されてしまいました。


http://www.sony.jp/playstation/store/products/nasne/pcnasne-dl/



(2015.07.31)
ASUS社のX552W というノートパソコンを購入して、そのノートパソコンにPC TV with nasne をインストールしてみると うまくいきました。ノートパソコン上で地上波デジタルの番組を見ることができたのです。

脱・糖尿病体質(ためしてガッテンより)

6月10日放送のNHKためしてガッテンより

バクテロイデスという細菌の関係で、糖尿病体質を脱するには、野菜を一品加えて食べるとよいらしいです。加えるとよいのは、 水溶性食物繊維と含む野菜や食物です。

(ごぼう にんにく たまねぎ にんじん きのこ かいそう ひじき なっとう 大麦入り玄米ごはん など)(テレビを見ながらあわててメモをとったので間違っているかもしれません。)

また脱・糖尿病体質のためには、まず魚を食べてから、あとからご飯を食べるほうがよいらしいです。まず魚を食べると、腸の中で、「インスリンを出せ」という指令を出すスイッチをまず押すことになるということらしいです。


http://www9.nhk.or.jp/gatten/archives/P20150610.html

2015年6月7日日曜日

Nexus7 (2012) をAndroid 4 に戻したい

Nexus7 (2012) が Android 5になってから、遅くて使いづらいので、Android 4に戻そうかと思いましたが、なんとなく面倒そうなので、ついそのままにしていました。


http://androidlover.net/android-os/android-5-0-lollipop/android-5-0-lollipop-android-4-4-4-kitkat-download.html


okGoogle を止めると軽くなるという情報があったので試してみました。
「Google設定」「検索とGoogle Now」「音声」 


http://sumahoinfo.com/nexus7-nexus5-android5-1-slow-lag-fix


確かに少しは軽くなったような気はします。

(2015.6.12)
しかしながら、するすると軽いというところまでは、ならないようなので、やはり、4.4に戻そうと思い立ちました。 そこで、Nexus Root Toolkit というのをダウンロードしてみました。

http://www.wugfresh.com/nrt/


(2015.6.13)
Nexus Root Toolkit をWindows にインストールして、英語に苦しみながらもAndroid 4.4.4 に戻すことができました。手順としては、ドライバーをインストールして、ブートローダーをアンロックして、その後ファクトリイメージのフラッシュとなるようです。終わった後で、リロックしようとしましたが失敗しました。Android 4.4.4 になってから軽くなったのですが、ストレージの容量が減ってしまったようです。16ギガモデルなのに、6.02ギガしかないような感じになってしまいました。

(2015.8.1)ストレージの容量が6.02ギガになってしまう件についてインターネットで調べてみたところ対応策が書かれているサイトがありました。それによれば、いったんOEMロックをして再度アンロックすればよいとのことでした。そこで、いったんOEMロックをしてから再度アンロックしてみました。するとストレージの容量が増えました。











FUSION IP-Phone SMART

以前に、IP電話として、viber をAndroid端末にインストールして viber out を試してみたことがありました。

今回は、FUSION IP-Phone SMART を登録して使用してみました。クレジットカード1枚につき、050 で始まる番号をひとつもらえます。

Zenfone5 に smarTalk をインストールしてみました。ちょっと使った範囲では、音質は、viber ほど悪くはありませんでした。ただし、音声のタイムラグがあるかもしれないと感じました。

 


2015年5月31日日曜日

ブラウザでの作業を自動化する iMacros

FireFox などブラウザでの作業を自動化する iMacrosを使い始めました。
あるサイトに接続して情報を取り出してファイルに保存するという処理を自動化するためです。

なお同じ処理を以前は、Perlによるスクレイピングというやり方でおこなっていました。

Ubuntu 15.04がうまく起動しなくなった

Ubuntu 15.04がうまく起動しなくなった(起動してもいつもの画面がでてこないで真っ暗のまま)ので、どうしようか考えあぐねていました。

起動する際に、ひとつ前のカーネルを選択して起動したところ、いつもの画面になりました。

ZenFone5 と Nexus7(2013) のACアダプタ

ZenFone5 と Nexus7(2013)はどちらも ASUS の商品です。

そうしてZenFone5 と Nexus7(2013) の充電用のACアダプタは、似ていると思っていましたが、よく見ると同じ型番でした。



http://shop.asus.co.jp/item/%E2%89%AAZenFone%20accessory%E2%89%ABAC%20Adapter%20%EF%BC%8F%20Black/




なお OUTPUT 5.2V 1.35A と書かれていました。

2015年5月17日日曜日

ZenFone 5 で GPS を オフにするには

ZenFone 5 を購入した人たちのレビューを読んでいたところ、ZenFone 5 の電池の消耗を少なくするためには、GPS をオフにすると効果があるというようなことが書かれていました。


GPS をオフにするには、どうすればよいのか、はっきりとはわからないのですが、ZenFone 専用のメニューにおいて、「位置情報」というところをオフにすればよいのかもしれません。


2015年5月16日土曜日

Nexus7 (2013) 用ケース

Nexus7 (2013)用ケースを購入しました。Bluetooth のキーボードつきのケースです。

Android で podcast を聞くアプリ


Nexus7 などのAndroidでpodcast を聞くためのアプリとして、以前は Rat Poison というアプリを使用していました。

最近になってPodcast Addict というアプリをインストールしました。バイリンガルニュース(Bilingual News)などを聞いています。


https://play.google.com/store/apps/details?id=com.bambuna.podcastaddict&hl=ja

google 手書き入力

Nexuxs7 などのAndroid で文字入力をする際に、手書き入力ができると便利だと思っています。前回、紹介させていただいたのは myscript stylus ですが、最近、知ったのは 「google 手書き入力」です。「MyScript Stylus」と「google 手書き入力」のふたつはよく似ていると感じました。



https://play.google.com/store/apps/details?id=com.google.android.apps.handwriting.ime




なお、最近、購入したZenFone5 というスマホでは、ATOK がもともと入っているので、手書き入力を使わなくても十分便利かもしれません。


自炊をするにあたって参考にさせていただいているブログ





このブログ主は、認知症の母親を介護している中年男性のようです。

「サムライごはん」de自衛自炊

http://blog.livedoor.jp/journey893crow/

2015年5月2日土曜日

ZenFone 3

ZenFone 5 を購入したすぐ後に、日本で ZenFone 2 が発表されてしまいました。ZenFone 2は魅力的ですが、これを買うわけにもいかないので次に買うのは、ZenFone2 の次の機種(ZenFone3あたり)かなと思っていました。

なお、ZenFone 3 では、CPU にSnapdragon 615 が採用される見通しだそうです。

http://news.softpedia.com/news/ASUS-ZenFone-3-to-Use-Snapdragon-615-Says-CEO-479635.shtml

2015年4月30日木曜日

ZenFone5でLTEを切って3G接続にするには

ZenFone5ワイヤレスゲート社の480円のSIMカードを購入して使用しています。私の購入したZenFone5 では LTE に対応しており、ワイヤレスゲート社のSIMカードもLTEに対応しています。しかしながら、LTEを切って、3G接続にすると、バッテリーの持ちがよくなると、どこかに書かれていました。

LTE を切って3G接続にする方法は、ZenFone5 の「設定」「その他」「モバイルネットワーク」「優先ネットワークタイプ」のところで行います。もともとは、「LTE/GSM/WCDMA自動」 となっているところを「WCDMAのみ」や「GSM/WCDMA自動」などに切り替えればよいようです。なおGSMは日本では電波が飛んでおらず「GSMのみ」などに設定しても意味がないそうです。



なお、一方で、格安MVNOの3G接続では
セルスタンバイ問題が発生して、電池の消費が増えてしまうという話も聞きました。そうすると、私の持っているzenfone5 の環境では、LTE(4G)の接続にしておいたほうが電池の持ちがよいのかもしれません。

私の環境では、どっちにしても電池の消費量が多くなってしまうのかもしれません。
なお、ZenFone5を購入した人たちのレビューを読んでいたところ、GPSをオフにすると電池が長持ちするというような内容のレビューがありました。

ZenFone5 用の手帳型ケースを購入しました。

ZenFone5 用の手帳型ケースを購入しました。



ふたが磁石でぴったりとしまるのはよいのですが、この磁石のせいで電子コンパスが狂うようです。このケースをつけてから、map というアプリで正確な方位を示さなくなりました。

2015年4月29日水曜日

zenfone5 に viber をインストールして viber out

先日、mk802iv に viber をインストールして、自宅の固定電話にかけてみました。すると viber から固定電話への音が非常に悪くて聞き取れませんでした。

そこで、今度は、最近 購入した zenfone5にviber をインストールしてみました。そうしてzenfone5 のviber から viber out の機能を使って自宅の固定電話にかけてみたのです。 結果は同じでした。音が非常に悪くて、固定電話上で viber の音声が聞き取れないレベルでした。

現在、viber ではキャンペーン中で、固定電話への viber out が無料なのですが、これでは無料と言っても使用できないなと感じました。無料だからこのレベルなのかもしれません。

また、viber では楽天ID と関連づけることによりポイントをゲットできるらしいです。この関連付けをすれば、もしかすると音質がよくなるのかもしれないとも思いましたが、やっていません。

2015年4月28日火曜日

ubuntu 15.04 にアップグレードしました。

Dell のdimension 4600C というパソコンで lubuntu 14.10 を入れて使っていましたが、この度 ubuntu 15.04 のアップデートが届きました。そこで、アップデートを行い、15.04 にしました。

ubuntu 15.04 の画面をそのままにしておくと、自動的にスリープモードにはいるのですが、なぜかスリープモードから復帰できなくなっていました。そこで時間がたってもスリープモードに移行しないように設定して使っています。

なお、ubuntu 15.04 にアップグレードしてから、起動後に、自動的に、 AbiWord というソフトウエアが起動するようになりました。



(2015.5.31)
Ubuntu 15.04がうまく起動しなくなった(起動してもいつもの画面がでてこないで真っ暗のまま)ので、どうしようか考えあぐねていました。

起動する際に、ひとつ前のカーネルを選択して起動したところ、いつもの画面になりました。

thinkfree mobile

最近、zenfone5 を購入しましたが、あらかじめはいっているアプリのひとつに thinkfree mobile というのがあるようです。Excelのファイルをクリックすると以下のような画面となりました。「今すぐアクティブ化」というのを押していいのかどうか迷っています。










































(2015.4.28)
「今すぐアクティブ化」を思い切って押してみました。しかしながら変わったことは何も起きませんでした。Excel ファイルをクリック(タップ)するとすぐにExcelの表の内容が見られるようになりました。



2015年4月19日日曜日

mk802iv に viber をインストールしました

Viber では、2015年4月18日現在、キャンペーンとして、固定電話への電話を無料にしているそうです。

ためしにMK802IV に Viber をインストールしてみました。インストールしたあとで、使えるようにするために自分の携帯電話の番号を入力します。すると、その携帯電話に認証コードが届きました。届いた認証コードを入力すると使えるようになりました。


自分の家の固定電話に、Viber から電話をかけてみました。発信者は、自分の携帯電話の番号となっていました。ただし、090-で始まるのではなく、81 の国コードから始まる電話番号となっていたのです。


音質はあまりよくありませんでした。聞き取れないくらいでした。これは、MK802IVに繋いでいるマイクのせいなのか、Viberのせいなのかよくわかりません。


SIMフリースマホのZenFone5を持っていますが、このZenFone5にViberとsmarTalk をインストールして、Viberは固定電話への発信専用とし、smarTalk は着信専用にすればよいと思いつきました。

smarTalkでは050で始まる電話番号をもらえるので、この番号を自分の番号として知り合いに教えればよいと考えました。


2015年4月18日土曜日

スマホのデータ通信用SIMでIP電話

ZenFone5というSIMフリースマホに、ワイヤレスゲートの通信用SIMを入れて使っています。

データ通信はできても、通話はできないのですが、やろうと思えばアプリを使って以下のようなIP電話ができるらしいことがわかりました。(間違っているかもしれません。)
それぞれ050 で始まる電話番号を取得できるようです。

050 plus
050 free ブラステル
FUSION IP-PHONE SMART(アプリ smarTalk)



このうち、smartalk は、基本料が無料のうえ、留守番電話も無料で使用できるので、使ってみようかなと思っています。クレジットカード1枚につき、ひとつの050番号を取得できるようです。音質が悪いとか音が途切れるとか、遅延が発生するという問題があるようですが、設定である程度は改善できるようです。



なお、110 や 119 などの番号にはかけることができません。

2015年4月14日火曜日

ZenFone5 を購入しました。










いわゆるSIMフリーのスマホと、格安SIM を組み合わせてスマホデビューをしようと思っていろいろ考えていました。SIMフリーの格安スマホとして、freetel のpriori2 とASUSのzenfone5 のふたつのうちのどちらかにしよう思い検討しておりました。

結局、zenfone5 を買ってスマホデビューしました。しかしながら、4月20日には日本でzenfone2が発表されると知っていれば、買うのを待ったかもしれません。もっとよく調べてからにすればよかったと思っています。

ただしzenfone5 は結構気にいっています。ワイヤレスゲート社の格安SIM を入れて使っています。(月額480円SMSなし最高速度250Kbps使い放題)


なおバッテリーの減りが少し早いような気はします。1日しか持ちません。もともとzenfone5がそうなのか、SMSがないでセルスタンバイ問題が起きているせいなのかはわかりません。(2015.4.18)なおセルスタンバイ問題でバッテリーの消費が早くなるのは、3G通信の際に起こるらしいことがわかりました。LTE通信の際にはバッテリーの消耗が早くなる現象は起こらないそうです。


なお、zenfone5 でテザリングの機能を使って、Wi-FiモデルのNexus7 をインターネットに接続するということもできるようになりました。


zenfone5 には、microSDカードが入れられるようになっています。32GバイトのmicroSDカードを入れて容量が増えたと思っていました。ところが、Android 4.4 では、増設したmicroSDカードへの書き込みが制限されているということでした。
 (2015.5.3)ただしZenFone5 に標準で入っているカメラアプリでは、写真の保存先として、MicroSDに書き込むことができることがわかりました。設定で保存先として内部ストレージとMicroSDのどちらかが選べるようになっています。また、ZenFone5 に標準で入っているファイルマネージャでも、MicroSD 上に新フォルダを作成したり、MicroSD にファイルをコピーできることがわかりました。

また、私の購入したZenFone5 には、日本語入力のためのATOKがもともと入っていました。ATOKは普通に購入すると1500円ぐらいはするらしいです。Android のATOK は使用したことがないのですが、これから使用してみたいと思っています。


ZenFone5 と Nexus7(2013)はどちらも ASUS の商品です。
そうしてZenFone5 と Nexus7(2013) の充電用のACアダプタは、似ていると思っていましたが、よく見ると同じ型番でした。


ZenFone5 に smarTalk というアプリを入れてみました。


(2015.10.14)zenfone5 を持って旅行に行くことになりそうなので、バッテリーの減りが心配です。そこで、モバイルバッテリーの購入を考えています。

(2015.10.17)zenfone5 では、そのままではワンセグを見ることができないのですが、別途ワンセグチューナーを購入するという手段があることがわかりました。




2015年4月12日日曜日

ワイヤレスゲートの格安SIM が届いた

ワイヤレスゲートの通信専用の格安SIMが届きました。最近、購入した zenfone5 に挿入してセットアップを行いました。結果として、zenfone5 でインターネットに接続できるようになりました。

なおクレジットカードの登録が必要ですが、私の場合には、はじめVプリカのカード番号を入力してみましたが、うまくいきませんでした。


バッテリーの消費が異常に早くなるというセルスタンバイ問題というのがあるようです。この問題はSMSが使用できるようにすると回避できるらしいのですが、今回購入した格安SIMはSMSは使用できないものです。(SMSに対応したものは、150円高くなるので今回は、SMSなしのものを購入しました。)

したがって、セルスタンバイ問題というのが起きているらしいのですが、バッテリーの減りが異常に早いのかどうかは、よくわかりません。


(2015.4.18)なおセルスタンバイ問題でバッテリーの消費が早くなるのは、G3通信の際に起こるらしいことがわかりました。LTE通信の際にはバッテリーの消耗が早くなる現象は起こらないそうです。

なお、この契約では、回線速度が250Kbpsなので、youtube は見られないと思っていました。でもzenfone5 に入れて使ってみると、youtube の画質を落とすと見られることもあるようです。(ただし画像がブチブチと途切れてしまうこともあります。時間帯によってネットワークの混み具合が違うせいかもしれません。)


2015年4月11日土曜日

ZenFone2 についての動画

つい最近、台湾のASUSというメーカーのZenFone5 というSIMロックフリーのスマホを購入しました。

しかしながら2015年4月20日に、日本でZenfone2が発表されるとのことです。上位機種はメモリを4G積んだはじめてのスマホとなるとのことです。また価格も安いと言われています。


つい最近 ZenFone5 を購入したばかりですが、ちゃんと ZenFone2 の情報を知っていたら、ZenFone5 を購入することはなかったでしょう。 ZenFone2 が日本で発売されるのを待っていたと思われます。そうして、ZenFone2 を購入するまでの間に、つなぎとして、FreeTel のPriori2 (1万円ぐらい)を購入していたかもしれません。










2015年4月10日金曜日

2015年4月8日水曜日

格安スマホ

最近になってスマホが欲しいなと思っています。現在の時点で検討しているのは、安いタイプのSIMフリーのスマホです。SIMカードも、MVNOの格安SIM(ワイヤレスゲートなど)を入れたいと思っています。 zenfone5 はメモリが2ギガだし、将来はAndroid 5にアップグレードされるらしいですし、バッテリーの持ちがfreetel priori2に比べてよいらしいということです。値段を気にしなければ、一番欲しいものです。freetel priori2 の 3Gモデルは、約1万円なので、値段は魅力的ですが、LTEに対応していない、ピンチイン、ピンチアウトにバグがあるなどの問題があるらしいです。





2015年4月6日月曜日

Ubuntu 14.10 で beep 音をだす

beep と入力しても音が出なかったので次のようにしました。


まず sudo apt-get install beep を実行する。

次に sudo modprobe pcspkr を実行する。

beep と入力すると音が鳴りました。


鳴らしたくない場合には次のように入力するそうです。

sudo modprobe -r pcspkr






2015年4月5日日曜日

perl と awk で標準エラー出力


perl で標準エラー出力に出力するには次のサンプルのようにします。


print STDERR "helo\n";


gawk で標準エラー出力するには次のサンプルのようにします。


print "helo"  > "/dev/stderr"



2015年4月4日土曜日

モバイル Wi-Fi ルータ

最近、欲しいものは、モバイルWi-Fiルータです。これがあれば、Nexus7 (Wi-Fiモデル)を外で持ち歩きながら使用することができると考えています。




Perl でエラー処理(eval)

Perl を使って Webページのスクレイピングを行なっておりますが、パターンにマッチしなかった時にエラー終了してしまい、それをどう処理(ハンドリング)するのか悩んでおりました。

インターネットで調べたところ eval を使ってエラーハンドリングすることができることがわかりました。

以下のサンプルプログラムでは、Web::Scraper を使って、スクレイピングを行なっていますが、パターンにマッチしなかった場合には、エラーを表示したのちに、終了コード 1で終了します。





#!/usr/bin/perl

use strict;
use warnings;
use Web::Scraper;
use URI;
use Encode;

sleep(10.5);

  my $KATAKAKU = $ARGV[0];
  my $url = "http://xxxxxxxx.com/search?i=All&kwd=" . $KATAKAKU;


my $scraper = scraper {

  process '//ul[@class="item_condition_list"]/li[@class="price"]','price[]' => 'TEXT';
  process '//span[@class="item_title"]/a[@class="original_link"]','asin[]' => '@href';
  process '//span[@class="item_title"]/a[@class="original_link"]','spec[]' => 'TEXT';

};


my $res;

eval{
  $res = $scraper->scrape(URI->new($url));
};
if ($@){
print "ERROR: $@";
exit 1;
}


  my @spec;
  my @price;
  my @asin;

eval {
   @spec = @{$res->{spec}};

    @price = @{$res->{price}};
    @asin  = @{$res->{asin}};
};
if ($@){
print "ERROR: $@";
exit 1;
}

 my $length = @price;


print "xxxxxxx_spec: ".encode('sjis',$spec[0])."\n";
print "xxxxxxx_price: ".encode('sjis',$price[0])."\n";
print "xxxxxxx_asin: ".encode('sjis',$asin[0])."\n";
print "array_length: " . $length ."\n";


Perl で cpan



Perl でスクレイピングを行なうために、Web::Scraper というモジュールを cpan でインストールしようとしましたが、はじめはうまくいきませんでした。なお、使用しているOSはLubuntu14.10 です。

cpan でのインストールがうまくいかない原因は、次のようなことでした。


- cpan を実行する際にスーパーユーザになっていなかった。
- make が使用できない。




次のようにすることで解決いたしました。

- cpan を実行する前に、su コマンドでスーパーユーザになる。
- sudo apt-get install make  というコマンドにより make をインストールしておく。



2015年4月3日金曜日

Perl で LWP

Webページの情報をそのままとってきたいという要望はあると思います。

そんな時には、Perl の LWP を使うと便利です。

以下のサンプルでは、引数に指定した URL のWebページのソース情報を出力します。





#!/usr/bin/perl -w

use strict;
use warnings;

use HTTP::Request::Common;
use LWP::UserAgent;

sub get_stock_price {

  my ($code) = @_;

  my $url = sprintf($code);



  my $response = LWP::UserAgent->new->simple_request(GET $url);
     print $response->content;

   return 0;
}


  print get_stock_price($ARGV[0]) . "\n";

2015年4月2日木曜日

Perl でスクレイピング

以前に、ヤフーのサイトから株の価格の情報を取り出すために、perl でスクレイピングを行なうサンプルを紹介させていただきました。

http://chaos-fractal.blogspot.jp/2012/12/perl-yahoo.html


最近になって、またPerl でスクレイピングを行なっております。現在、行なっているのは、ネットショップのサイトから、商品の情報を取り出して、テキスト形式のリストを作成するというものです。

「perl は言語仕様が変なので、困ることが多く、使わないほうがよいですよ。」と知人にアドバイスされたことがありますが、perl だと便利なこともあり、つい使ってしまいます。


スクレイピングのサンプル




#!/usr/bin/perl

use strict;
use warnings;
use Web::Scraper;
use URI;
use Encode;


 print STDERR "please input specail page number" ."\n";
 my $page_number = <STDIN>;
 chomp($page_number);

 my $url = 'http://shop.xxxxxxx.co.jp/dir/special/?page=' . $page_number . '&num=50';
 print STDERR $url . "\n";


my $scraper = scraper {
process '//table[@class="itemData"]/tr[1]/td[1]/input[1]','spec[]' => '@id';
process '//table[@class="itemData"]/tr[1]/td[2]','name[]' => 'TEXT';
process '//table[@class="itemData"]/tr[1]/td[3]','disc[]' => 'TEXT';
process '//table[@class="itemData"]/tr[1]/td[4]','price[]' => 'TEXT';

process '//table[@class="itemData"]/tr[1]/td[5]','fie5[]' => 'TEXT';
};

my $res = $scraper->scrape(URI->new($url));
my @spec = @{$res->{spec}};
my @name = @{$res->{name}};
my @disc = @{$res->{disc}};
my @price = @{$res->{price}};
my @fie5 = @{$res->{fie5}};
my $length = @name;

for ($_ = 0; $_ < $length; $_++){
        print encode('sjis',$spec[$_])."\n";
        print "spec: ". encode('sjis',$name[$_])."\n";
        print encode('sjis',$fie5[$_])."\n";
}







2015年3月28日土曜日

Access のVBAのサンプル

以下は、カンマ区切りのテキストファイル(CSVファイル)から、データを読み込んで、Accessデータベースのテーブルにレコードを追加するマクロ(VBA)のサンプルです。Access2003 で試しました。



------------------------------------

Sub read_csv_file()


Set Db = DBEngine.Workspaces(0).Databases(0)

Set Tbl = Db.OpenRecordset("価格リサーチ結果", DB_OPEN_TABLE)


strFileName = "c:\users\xxxxxx\dropbox\pl\nttx.csv"

Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objfile = objFileSystem.OpentextFile(strFileName)

    Do Until objfile.atendofstream
 
        strRecBuff = objfile.readline
       
        aaa = Split(strRecBuff, ",")

       
       
            katakaku = aaa(0)
            urine = aaa(2)
            PRICE = aaa(3)
            HREF = aaa(4)
            hinmei = aaa(6)
       
       
            Tbl.AddNew
                Tbl.仕入れ値 = PRICE
                Tbl.販売値 = urine
                Tbl.品名 = hinmei
                Tbl.型格 = katakaku
                Tbl.購入URL = HREF
                Tbl.日付 = Now()
           Tbl.Update

    Loop
objfile.Close

End Sub

2015年3月23日月曜日

加齢黄斑変性について(NHKチョイスより)

たしか3月14日(土)だったと思いますが、NHKのチョイスというような名前の番組で、加齢黄斑変性について放送されていました。


原因は、黄斑の部分に弱い血管ができてしまう、(弱い血管がはえやすくなる)、その部分から水がもれたり出血をおこしたりすることのようです。

タバコや食べ物の影響があります。

加齢黄斑変性は1998年には、37万人だったのが、2012年には89万人となっており増えています。初期であれば治療できます。

加齢黄斑変性は欧米では、中途失明理由の第一位となっています。

もっとも有効な治療法は、抗VEGF薬で、血管ができるのをふせいだりします。ただし脳こうそくの危険がある場合には使用できません。

目に注射を行なうもので、治療は続けないといけません。1回につき5万円かかります。

眼底カメラで前兆がわかります。

網膜の細胞が出すドルーゼンという物質が 目の奥にたまると新しい血管ができてくるので加齢黄斑変性になりやすくなります。

眼底検査は、3割負担で1,200円程度です。網膜の断面を見るOCT検査は600円です。造影は、1350円です。

食事とかタバコが影響します。

ドルーゼンがたまると見え方にゆがみがでてきます。

緑黄色野菜をバランスよくとることにより、ドルーゼンの発生をおさえることができます。

緑黄色野菜が持つ抗酸化作用によります。

サプリメント、ビタミンA、C、E、ルテイン、亜鉛などを摂取することも大事です。

食べるとよい野菜としては

ほうれん草
小松菜
ブロッコリー
にんじん
かぼちゃ
パブリカ


油と一緒にとるとルテインの吸収率が上がります。

肉をとると逆によくありません。

βカロチンの取りすぎはあまりよくない場合も

また禁煙が大事です。


視界がゆがむ、ぼやける、黒い点が見えるなどの場合には要注意です。

2015年3月21日土曜日

LibreOffice のマクロ

以下は、昨日に作成したLibreOffice用(Windows上で動作)のマクロです。

私は、Access2003 は持っていますが、Excel は持っておらず、Excel の代わりにLibreOffice やOpenOfficeの Calc を使用しています。LibreOffice の Calc のデータを、Access のデータベースにコピーするためのマクロです。 Calc ファイルの、2列目、3列目、4列目のデータを、サンプルデータベース.mdb というAccessデータベースのサンプルテーブルにコピーしています。入力するデータは、日付、JANコード、商品名です。同じJANコードのレコードがすでに、Accessデータベース側に存在する場合には、メッセージを出力し、コピーは行われません。

なお、以前にも LibreOffice のマクロでAccessデータベースにレコードを入力するサンプルを紹介させていただいたことはありました。


sub adodb_put_mdb2

    Dim hiduke as String
    Dim jancode as String
    Dim shouhinmei as String
     Dim j as Integer
     Dim kison as Boolean
       
       
    j = inputbox("行数を入れてください","はじめる行数","3")
   
    j = j-1
   

 Set conn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")
   
   conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\Users\hiroshi\Dropbox\doc\mdb\サンプルデータベース.mdb"
  
   
    rs.Open "select * from サンプルテーブル", conn ,3,3
'

    do while j < 2000


    hiduke= ThisComponent.Sheets.getByName("3月").getCellByPosition(1,j).string
    jancode= ThisComponent.Sheets.getByName("3月").getCellByPosition(2,j).string
    shouhinmei= ThisComponent.Sheets.getByName("3月").getCellByPosition(3,j).string

    ' msgbox jancode
   
   
    if jancode = "" then
         exit do
    end if
       
   
    rs.Movefirst()
    kison = false
   
    do until rs.EOF
   
   
        'msgbox rs.Fields.Item("JANコード").value
       
        if    jancode = rs.Fields.Item("JANコード").Value then
            msgbox "既にあります。" & jancode & rs.Fields.Item("商品名").value
            kison = true
            '& rs.Fields.Item("日付").value
           
        end if
       
        rs.Movenext()           
    loop

    if kison = false then
   

    rs.AddNew
     rs.Fields.Item("日付").value=hiduke
     rs.Fields.Item("JANコード").value=jancode
     rs.Fields.Item("商品名").value=shouhinmei
     rs.Update

      end if
     
 
  j = j+1
 
  loop
 
    rs.Close
    conn.Close
   
msgbox "end"

end sub