Android開発ふかすぎる、、、結構赤っ恥だ。

20150507

Logging


Android開発ふかすぎる…もろ自分が素人だよと
言わないばかりの内容をアップしていっているだけど、
徐々に進化もしていることは確かです。
今回、anaの旅割計算でカレンダー表示が
出ないよという奴を対応しました。
Android4.2以降なら表示されるはずです。
徐々にどのようにすればそう言う事ができるかも
表面上わかってきました。
いきなり深い事をやったら面食らうので浅いところから
徐々に進めば良いかなと思います。
表面上の話は自分が完璧に理解できるまで
記事としてはアップすることはないです。←たぶん、、、。
追記:
今回修正した箇所は三箇所だけ、あとコードをすこしばかし書き換えました。
そうすることで上手くいきましたが、Versionによってうまく機能するしない
という問題が発生しました。
ある程度、対応したものを作る場合、
オリジナルviewを作らないと駄目だということが
早くもこの段階でわかってしまったので・・・・結構凹んでます。
ということで?使っていただける方は
再度、アンイストールして入れ直してみてください。
https://zip358.com/tool/anatabiwari.apk?[v4.2~v4.4]
https://zip358.com/tool/anatabiwari2.apk[v5~]
onCreateところのPGをこちらに可変しました。

        DatePicker datePicker1 = (DatePicker) findViewById(R.id.datePicker);
        datePicker1.updateDate(Calendar.YEAR,Calendar.MONTH,Calendar.DAY_OF_MONTH);
/*Android Version5
        Calendar cal = Calendar.getInstance();
        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
        long time = cal.getTimeInMillis();
        datePicker1.setMinDate(time);
*/
/*        datePicker1.init(Calendar.YEAR,Calendar.MONTH,Calendar.DAY_OF_MONTH, new OnDateChangedListener() {

 
追記2:Build.VERSION.SDK_INTでバージョンにより
処理の切り替えるようプログラムを入れましたので、どちらをDLしても問題ありません。

タグ

AM, Android Version5, Android4.2以降, Build.VERSION.SDK, cal.get, cal.getTimeInMillis, cal.set, Calendar cal, Calendar.DAY, Calendar.DAY_OF_MONTH, Calendar.getInstance, Calendar.MONTH, Calendar.YEAR, DatePicker datePicker1, datePicker1.init, datePicker1.setMinDate, datePicker1.updateDate, findViewById, long time, new OnDateChangedListener, R.id.datePicker, アンイストール,


高知駅から真北へに行けば:すぐそこ!?

20150507

Logging


GW明けに高知駅前で撮った写真、時間帯は12:00頃です。それにしても人がいないなと思いながら撮影しました・・・。もう少しぐらい人がいてもいいじゃないのかとか思ってしまいました。この頃、気づいたのですが高知駅から真北へ20?30分ほど歩くとイオンにたどり着くということをこの頃気づいてしまったのですが、学生さんとか知っているのかなぁ・・・・。大人になると高知県人はほとんどの人は移動手段が車となってしまうのですが、もう少し公共機関を使いましょと言いたい。使えば使うほどダイアの改正が行われる可能性が高くなります。ダイアが改正されると本数が増え便利なるはずです。高知県は土讃線と奈半利線しか無いので使う機会が少なくなるのは理解できますが、使えば使うほど赤字から黒字化になると思うので・・・・。JR四国さんには、頑張ってもらいたいです(頑張っていると思うのですが)。
 

 

タグ

, GW明け, JR四国, イオン, ダイア, 公共機関, 可能性, 土讃線, 大人, 奈半利線, 学生, 改正, 時間帯, 本数, 機会, 真北, 移動手段, 赤字, 高知, 高知県人, 高知駅前, 黒字化,


動画作成の練習を始めてます(動画と静止画の違いとか)。

20150506

Logging


 
動画作成を始めて数週間ぐらい経ちます。始めたと言っても毎日撮影しているわけではないので、まだ数日程度なのですが、数十秒の動画を作成しました。ちなみに音楽はユーチューブで使用して良い音楽を使っています。ただし使用して良いだけで、この動画で収益を上げても自分には何一つ入らないようになってます。今回、4?6秒の動画を継ぎ接ぎして一つの動画に組み立てたわけですが・・・・まだまだ感が大いに有ります。動画を作っていてわかったことは静止画と違い、動きのないモノを映す場合、成約が発生すること、また撮影するものによっては、長く撮れない事(見ていて飽きが来る)がわかりました。あと、映しているモノの動きの流れとかが次のシーンとかに影響を受けるので大事なんだと言う事がわかりました。動画撮影するのはあまり楽しくはないのですが、撮影したものを編集する作業は結構面白いですし、作品が出来上がった時は結構うれしいですね。
 
 

タグ

, ユーチューブ, 一つ, , 作品, 作業, 動き, 動画作成, 収益, 影響, , 成約, 数十秒, 数日程度, , 流れ, 練習, 良い音楽, 静止画, 飽き,


2015年:砂浜Tシャツアート展/高知県幡多郡黒潮町の入野海岸

20150505

Logging


砂浜Tシャツアート展/高知県幡多郡黒潮町の入野海岸へ行ってきました。
行きは車で一般道路を通って黒潮町まで行ったのですが、到着するのに三時間ぐらい費やしました。
高知市内だと二時間半ぐらいはかかると思います。帰りは高速道路を使ったので一時間ほど短縮出来ました。
砂浜Tシャツアート展ですが、行って良かったものの少しばかり遠いなと感じます。
今度、行く時には電車で行こうかなと考えています。
電車だと片道4850円ぐらい費用が発生する(高知駅から土佐入野駅まで)ものの車酔いは発生しませんし、運転手だと疲労困憊になる事はないです。
主催している砂浜美術館には申し訳ないのですが、桂浜で同じようなイベントを行って欲しいと若干感じました。
ちなみに応募した皆さんが描かれたTシャツですが、風が吹いているとTシャツに描かれた作品があまり見えないのが若干難…。
しかし、風に無数のTシャツがなびいているのは圧巻でした。それを見るだけでも見に行く価値ありかと思います。

砂浜Tシャツアート展


2016年の動画に差し替え。
 

タグ

2015, 4850, アート, ありか, イベント, いま, シャツ, それ, もの, , 一般, , 主催, , , 今度, 作品, 価値, 入野, 到着, , 土佐, 圧巻, 少し, 市内, 幡多郡, 応募, , , 桂浜, 海岸, 無数, 片道, 疲労困憊, 発生, 皆さん, 短縮, 砂浜, 美術館, 若干, 費用, , 車酔い, 運転手, 道路, , 電車, , 高知, 高知県, 高速道路, 黒潮町,


ANA旅割計算の締め切り日表示するアプリを作ってみました。

20150504

Logging


ANA旅割計算の締め切り日表示するアプリを作ってみました。Android4.0以降ならすんなりと動くと思います。ただし実機で確認したところ、上記のような見栄えの良い感じではなかったです。カレンダーが表示されていなくて、SELECTバーでの選択表示でした。ちなみにアプリのコードも貼っときます。まだまだ、改良できそうなんですけどダサいコードだな、どうすれば短いコードになるだろうと思ってます。最初はボタンをクリックしないで動くようにコードを書いていたのですが、実機で確認したら、datepikerのイベントが発生したらalert画面が表示される事になってたのですが、操作性を考慮してButtonに切り替えました。あえて、datepikerのイベントで動くコードもコメントにして残してます。こんなしょぼいアプリを作るのに数時間費やしました。アルゴリズム的には出来るですが、未知の言語は辛いですAndroidのAPI機能が全然わからない感じです・・・・。リファレンスの本を買おうかな。。。
 
今回のアプリは上位機種のAndroidならそれなりの見栄えで表示されると思います。
DLはこちらから、
https://zip358.com/tool/anatabiwari.apk?[v4.2~v4.4]
https://zip358.com/tool/anatabiwari2.apk[v5~]
改正版 追記:ウェブサービス (どちらもショボい(`・ω・´))
http://zip358.com/tool/ANAmobile/?[mobile用]
http://zip358.com/tool/ana_calendar/ [PC用]

package com.example.zip.myapplication4;
import android.content.DialogInterface;
import android.preference.DialogPreference;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.DatePicker;
import android.app.AlertDialog;
import android.widget.DatePicker.OnDateChangedListener;
import java.security.acl.Permission;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DatePicker datePicker1 = (DatePicker) findViewById(R.id.datePicker);
        Calendar cal = Calendar.getInstance();
        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
        long time = cal.getTimeInMillis();
        datePicker1.setMinDate(time);
/*        datePicker1.init(Calendar.YEAR,Calendar.MONTH,Calendar.DAY_OF_MONTH, new OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                String str = Integer.toString(year) +"/" + Integer.toString(monthOfYear + 1) + "/" + Integer.toString(dayOfMonth);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
                Date date = null;
                Date date1 = null;
                Calendar cal1 = Calendar.getInstance();
                Calendar cal2 = Calendar.getInstance();
                Calendar cal3 = Calendar.getInstance();
                Calendar cal4 = Calendar.getInstance();
                try {
                    date = sdf.parse(str);
                    cal1.setTime(date);
                    cal1.add(Calendar.DATE, -60);
                    cal2.setTime(date);
                    cal2.add(Calendar.DATE, -45);
                    cal3.setTime(date);
                    cal3.add(Calendar.DATE, -28);
                    cal4.setTime(date);
                    cal4.add(Calendar.DATE, -21);
                    new AlertDialog.Builder(MainActivity.this)
                            .setTitle("ANA旅割締め切り日")
                            .setMessage("旅割60締日"+ String.format("%2d月%2d日", cal1.get(Calendar.MONTH)+1, cal1.get(Calendar.DAY_OF_MONTH))+ "\n" +
                                            "旅割45締日"+ String.format("%2d月%2d日", cal2.get(Calendar.MONTH)+1, cal2.get(Calendar.DAY_OF_MONTH))+ "\n" +
                                            "旅割28締日"+ String.format("%2d月%2d日", cal3.get(Calendar.MONTH)+1, cal3.get(Calendar.DAY_OF_MONTH))+ "\n" +
                                            "旅割21締日"+ String.format("%2d月%2d日", cal4.get(Calendar.MONTH)+1, cal4.get(Calendar.DAY_OF_MONTH))+ "\n"
                            )
                            .setPositiveButton("閉じる", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            })
                            .show();
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        });
*/
    }
    public void  anatabi(View v) throws ParseException {
        DatePicker datePicker1 = (DatePicker) findViewById(R.id.datePicker);
        String str = Integer.toString(datePicker1.getYear()) +"/" + Integer.toString(datePicker1.getMonth()+1) + "/" + Integer.toString(datePicker1.getDayOfMonth());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        Date date = null;
        Date date1 = null;
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        Calendar cal3 = Calendar.getInstance();
        Calendar cal4 = Calendar.getInstance();
        date = sdf.parse(str);
        cal1.setTime(date);
        cal1.add(Calendar.DATE, -60);
        cal2.setTime(date);
        cal2.add(Calendar.DATE, -45);
        cal3.setTime(date);
        cal3.add(Calendar.DATE, -28);
        cal4.setTime(date);
        cal4.add(Calendar.DATE, -21);
        new AlertDialog.Builder(MainActivity.this)
                .setTitle("ANA旅割締め切り日")
                .setMessage("旅割60締日" + String.format("%2d月%2d日", cal1.get(Calendar.MONTH) + 1, cal1.get(Calendar.DAY_OF_MONTH)) + "\n" +
                                "旅割45締日" + String.format("%2d月%2d日", cal2.get(Calendar.MONTH) + 1, cal2.get(Calendar.DAY_OF_MONTH)) + "\n" +
                                "旅割28締日" + String.format("%2d月%2d日", cal3.get(Calendar.MONTH) + 1, cal3.get(Calendar.DAY_OF_MONTH)) + "\n" +
                                "旅割21締日" + String.format("%2d月%2d日", cal4.get(Calendar.MONTH) + 1, cal4.get(Calendar.DAY_OF_MONTH)) + "\n"
                )
                .setPositiveButton("閉じる", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                })
                .show();
    }
}

 

タグ

AM,


3日、4日は何処にも行かない(高知県、雨だからね)

20150503

Logging


3日か4日は何処にも行かない、家で引きこもってます(´Д`)。都会から高知県に帰ってきた人々や高知県に観光に来ている人々が帰る頃からいろいろと活動します。そういやGW期間中に県外へ言ったことが無いです・・・・?。自分の記憶の中では都会から田舎、高知県に帰ってきた記憶はあるのですが県外へ行ったという記憶はない感じですね。まず、飛行機の予約をとるのが結構困難なのがGW期間やお盆期間です。2ヶ月前から予定が決まっていれば話は別ですが、予約を取るにまず苦労します。また、高知県にはLCC(格安空港会社)が参入していないので県外へ行くとなると結構割高なんです。自分はANAを使うので県外へ行く時は2ヶ月前とから予約を取るのですが、それでも高いなと感じます。高速バスって言う破格の値段で東京や大阪とかへ行ける乗り物があるのですが、これを使うと一睡も寝ずの旅になるので結構辛いです。知らない人だらけの中で、みんなよく寝れるなと感心します。貴重品とか預けていても何か、それでも警戒心が高いので寝れません。修学旅行とか寝れなかったタイプなので…。そんな苦手な乗り物を使って今月か来月、東京へ行こうかなと考えています。それも弾丸旅行!?
 

タグ

, GW期間中, LCC, お盆期間, 一睡, 乗り物, 予約, 人々, 何処, 修学旅行, 弾丸旅行, 東京, 格安空港会社, 県外, 記憶, 警戒心, 貴重品, 都会, 飛行機, 高知県, 高速バス,


#映画感想 映画、ビリギャルを観てきましたので感想を。

20150502

Logging


映画、ビリギャルを観てきましたので感想なんかを残しときます。
この映画、実話を基に作られた映画だけに良かったです。
涙あり笑いありの映画になっています、
何処までが実話なのかが分からないですが事実、
学年ビリの女子高校生が慶応大学に受かったという事は紛れも無い事実です。
このビリギャルを観ていていると自分も頑張ろう
という気持ちを持たしてくれる映画になっています。
おそらく無駄な努力ではなく身となる努力と
他の人達の支えや応援の結果、彼女は慶応大学に合格したんだと自分は思ってます。
全然努力もせずに慶応大学に合格する人は
元々IQの高い一部の人達です。
巷では昔に比べてレベルが下がったと言われてますが、
名のある慶応大学です、並々ならぬ努力しないと
一般的なIQの持ち主は、受からないように思えます。
一部、カンニング行為を考えさせるシーンが映画にありましたが、
おそらくそう言う行為はしていないからこそ、
そんなシーンをあえて入れただと自分は思っています。
自分はビリギャルはあまり期待して
観に行ったわけではないのですが
映画を通して得るものがあったので良かったです。
最後に塾講師の言葉を載せときます。「目標を下げたらどんどん低い方に流れていくよ
まとめ:映画、ビリギャルはみんなに勇気や自信を与える映画
なっているだと思います。期待せずに観に行くと結構、お釣りかえってきます。
エンディングで流れるサンボマスターの「可能性」のMV(ミュージックビデオ)
映画版がYOUTUBEに流れていますが、
それを見てしまうとネタバレ的な要素になっているので見ないで
映画を見に行くと良いと思います。

タグ

7, nbsp, , くに, こと, ゴニョゴニョ, はり, もの, わけ, 不摂生, , 元々IQ, 大事, 始末, 平等, 日々, 生活, 睡眠, 老化, 要因, 遺伝子,


Tera TermのマクロTTLを使用して自動ログインする方法はこんな感じ。

20150502

Logging


UTF-8形式のファイルを作成して下記のコードを記載します。そして任意のファイル名をつけて拡張子TTLで保存します。その後、任意のファイルをダブルクリックします。この際、ファイルの関連付けがされていなければTera Termのexeファイルが保存されている場所にttpmacro.exeが存在しますので、そちらと関連付けを行います。
Tera Termが保存されている階層→”C:\Program Files\teraterm\”

HOSTADDR = ‘255.255.255.255’
USERNAME = ‘USERNAME’
PASSWORD = ‘PASSWORD’
COMMAND = HOSTADDR
strconcat COMMAND ‘:22 /ssh /2 /auth=password /user=’
strconcat COMMAND USERNAME
strconcat COMMAND ‘ /passwd=’
strconcat COMMAND PASSWORD
connect COMMAND
wait ‘#’
sendln ‘ls’
sendln ‘cd /var/www/html’

上記の記述してあるホスト名、ユーザー名、パスワードを変更することでLinuxサーバにログインすることが可能です。また、waitと言うのは文字待ち(ここでは#待ち)。sendlnは文字を自動的に送信します。要するに自動でコマンドを打つ事が可能なので、WEBサーバやDBサーバを自動で構築することも不可能ではないですが、若干面倒くさいです・・・。Tera Termのマクロコマンドを知っていなくても、sendlnなどを使用してLinuxコマンドで処理する事も可能ですしマクロと組み合わせるともっと便利になるかもしれません。Tera Termのマクロの存在は知っていましたが使う機会が全然なかったので自分はコレぐらいのことしか知りません。

タグ

AM, connect COMMAND, HOSTADDR, Linuxコマンド, ls, passwd, password, Program Filesteraterm, sendln, strconcat COMMAND PASSWORD, strconcat COMMAND USERNAME, ttpmacro.exe, username, UTF-8形式, ダブルクリック, ファイル, マクロコマンド, めちゃくちゃ, リズム, 拡張子TTL, 関連付け,


プログラムのレベル、自己評価。自己嫌悪。自画自賛。

20150501

Logging


例えば、ExcelVBAはたぶんソコソコ良い感じだと自分で思っています。Accessも基本VBAがベースなので同じくソコソコ良い感じだと思っています。今ままでVBAで本気を出したことはないけれど恐らく( `д´) ッ!となるレベルです。続いてWEB系のperlですが、これは普通ぐらい・・・ここ数年使ったことがありません。PHPですが、まぁこちらも普通レベルですね。仕事としてまぁ難易度高くなければそつなくこなす程度です。続きましてjqueryとかjavascriptですが大好物です。特にDOMが好きです。むかし凝ってましたが今は、かなり忘れてしまってます。WEB系はCMSをバリバリこなして一人前ですが、ググりゃ何とかいけるレベルです。そつなくこなしている程度です、なので一人前かどうかは分かりません。またまた、続いてソフトウェア系の開発言語にいきまして、Java言語、あまりにもこの言語でコードを書いた事がないので、ググりながらメソッドなどを調べたりライブラリを調べたりしないと言う感じで比較的に難しいです。続いてVB2005以上、こちらはまぁ出来るかなぁぐらいです。続いて続いてVC++ですが、VBが理解できれば応用は効きます。それぐらいの知識です、深くなく浅瀬です・・・・。ここまで書いて読者の皆さんは理解したと思いますが自分は総合的なプログラムレベルは言いませんが・・・昔は自分なんて全然駄目だと感じていたのですが、いろいろな人のコードを見てきた結果、どのレベルに自分がいるかこの頃、見えてきました。あと少しで自分の目標に達成しそうな気がします。あとは時間と努力の問題かなと思ってます(どのぐらい多くコードを書いて自分の身になるかだと思ってます)。
今後、この職業で飯を食うかは分かりませんが、副業としては確実に続けていきます。その方が気楽かなと思っています。
 

タグ

, ExcelVBA, javascript, Java言語, jquery, perl, VB2005以上, VC++, コード, ソフトウェア系, それぐらい, プログラム, むかし, メソッド, ライブラリ, 一人前, 基本VBA, 浅瀬, 自己嫌悪, 自画自賛, 難易度,