このブログを検索

2018年4月6日金曜日

[Diskstation] DiskStationにWebアプリケーションをホストしmysqlを操作する際にハマったこと

タイトルの通りハマったので必要箇所を記録しておきます.

【やりたいこと】
  • Diskstation上でPHPのWebアプリを動かし,MariaDBを操作する.
  • 今回はINSERT文を対象とする. 

【前提】
  • Diskstation上にWebStationをインストール済み
  • Diskstation上にPHP(今回は7.0)をインストール済み
  • Diskstation上にMariaDB(今回は10)をインストール済み
  • Diskstation上にphpMyAdminをインストール済み(なくても良い)
  • HTMLサイトはWeb経由で閲覧できる状態になっている
  • phpも正常に動作する
  • db処理のみ正常に動作しない

【php側】
  • ホスト名は「XXX.co.jp」ではなく「XXX.co.jp:3307」とする.
  • MariaDBの標準ポートが3307でそちらを使わなければならないらしい.
  • また,一応SQLインジェクション対策を行った版を書いている.
  • プリペアドステートメントを行う際に日時をINSERTする際は上記のcastを利用すると良い.

【Diskstation側】
  • (恐らく初期設定で対応されているが)セキュリティのファイアウォールでMariaDBを許可する.
  • WebStation->PHP設定->編集->拡張を全部チェック(恐らくmysqliだけでいいと思われるが)

以上.意外とハマったので備忘録として.

2016年12月6日火曜日

[小ネタ] 高齢者の事故は増えているのか

https://twitter.com/Hashi_J_Kou/status/805801815237197824/photo/1

本日、こちらの記事が画像ランキング上位に食い込んでいました。

ちなみに18時現在、26400リツイートされている様子です。

確かに最近、高齢者が第一当事者である重大事故のニュースが(TV上では)多く報道されているように感じます。
ネット上の意見では、高齢者に運転させるのは危険ではないか?というものもある様子です。
ただ、個人的には、TV報道は情報を偏って報道しているのではないかと、常に考えながら見ているので、公開されている統計情報を見てみました。

今回、次の点に着目してみました。
 1.高齢者の事故が増えているのか
 2.高齢者に運転させるのは危険か

早速データを見ていきましょう。今回はH5とH26で比較することにしました。

まず、出典は「公益財団法人交通事故総合分析センター」様のこちらのページより、以下を用いました。
 ・交通統計(平成26年版)
 ・交通統計(平成5年版)
※利用に関してメールで承認をいただきました。

また、人口のデータは「総務省統計局」様より、以下を用いました。
 ・人口推計(平成26年10月版)の「年齢(5歳階級),男女,月別人口-総人口,日本人人口(各月1日現在) 」
 ・人口推計:我が国の推計人口(大正9年~平成12年)の「 年齢(5歳階級及び3区分),男女別人口(各年10月1日現在)-総人口(大正9年~平成12年)」


「1.高齢者の事故が増えているのか」を単純に検証してみましょう。
年齢別の事故数(第一当事者)をグラフ化してみました。


このグラフより、H5→H26で
 ・高齢者の事故は確かに増えている(75歳以上で5.73倍、65歳以上で3.15倍)。
 ・総事故件数は減少している(0.80倍)。
 ・H5の20歳~24歳の事故数が異常に高い(全体の2割を占める)。

以上より、「高齢者に運転させるのは危険である。」と結論づけてもよいか。
このデータのみでは単純に「はい」とは言えません。


「2.高齢者に運転させるのは危険か」を検証してみましょう。
上記は単純な事故数でしたが、母集団のサイズを度外視しております。
従って、「アクティブなドライバー」のうち、「何件事故が起きているのか」に着目してみましょう。
ただし、アクティブなドライバー数を確認するすべがないので、今回は大雑把に「運転免許所有者」をアクティブなドライバーとします。




年齢別の事故率(事故数/免許保有者数)を見てみました。
 ・全体を通して減少傾向にある。
 ・高齢者が特別事故率が高いわけではない。
 ・30歳以上はおおよそ横ばいに見えるが、75歳以上で微増する(H26)。
 ・むしろ25歳以下の事故率が深刻である。

以上の結果より、
 ・高齢者だからと言って、事故率が高まるわけではなさそうである。
というデータがみられる。

ただし、ここで注意が必要である。今回は、
 事故率=事故数/運転免許保有者数
でカウントを行っているため、「実際に運転している人の数」と「運転頻度や時間」が度外視されている。
すなわち、年を取るほどに運転機会や運転時間は減少するであろうことを考えると、やはり1回の運転あたりの事故率は高齢者のほうが高い可能性がある。(が、これはデータがないので示せない。)



【結論】
 ・高齢者の「事故数」は増加している(H5→H26で5.73倍)。
 ・「事故率」は年齢別全体で減少している(H5→H26で0.6倍~0.8倍)。
 ・25歳以下の「事故率」の方が深刻に見える(運転頻度考慮すると妥当な可能性もある)。



参考までに、運転免許保有率もグラフ化してみました。
算出方法は、 保有率=運転免許保有者数/人口 です。
考察は特にしません。


おわり。

2016年1月8日金曜日

[Java][Android]GooglePlayからアプリの情報をちょっとだけスクレイピングする

エラー処理も加えず,カプセル化もしていませんが,ただデータ取りたいだけの時などに...
GooglePlayのURLを入力とし,アプリタイトル,カテゴリ名,カテゴリのID,開発者名を取得します. 直接URLを叩くので,アクセス過多に注意が必要です.
利用の際は下記をコピペして,getTitle(url).toString()で良いはずです.

2015年11月15日日曜日

[TensoFlow] チュートリアル

TensorFlowのチュートリアルを実施中です.
今のところこちらにしたがっていればいい感じなのですが,2点補足です.
私の環境では,

python fully_connected_feed.py

実行時に

 File "fully_connected_feed.py", line 23, in <module>
    from tensorflow.g3doc.tutorials.mnist import input_data
ImportError: No module named g3doc.tutorials.mnist

のエラーが発生しました.本件は23行目のimportがうまく行っていない様子なので,
こちらを参考に以下の修正を行うと改善しました.

#from tensorflow.g3doc.tutorials.mnist import input_data
#from tensorflow.g3doc.tutorials.mnist import mnist
import input_data
import mnist

しかし続いて,

TypeError: range() takes at least 2 arguments (1 given)

のエラーが発生しまして,こちらを参考にしたところ,mnist.pyのバージョンの違いによるものだそうで,旧バージョンのmnist.pyと入れ替えることで改善できました.

とりあえずここまででスムーズに行かなかった点でした.

[PC] HP ENVY700-270jpへのVMWare

Googleさんが機械学習ライブラリTensorFlowをオープンソースで公開ということで,一度動かしてみようと思いました.
生粋のWindowsユーザである私はまずUbuntuを導入するところから始めるわけでして,VMWareで仮想化してWindows7上にUbuntu14.04をインストールすることにしました.
VMWareのインストールは容易に済んだのですが,仮想端末を起動すると以下の様なエラーが.



この仮想マシンは,64ビットゲストOS向けに構成されています.ただし,64ビット操作は使用できません.
このホストはIntel VT-xに対応していますが,Intel VT-xは無効になっています.
Intel VT-xがBIOS/ファームウェア設定で無効となっている,またはこの設定を変更してから電源を入れなおしていない場合,Intel VT-xが向こうとなる場合があります.
(1)BIOS/ファームウェア設定でIntel VT-xが有効になっていることを確認し,「信頼される実行」を向こうにしてください.
(2)これらのBIOS/ファームウェア設定のいずれかを変更したら,ホストの電源を入れなおしてください.
(3)VMWarePlayerをインストールしてからホストの電源を入れなおしていない場合はホストの電源を入れなおしてください.
(4)ホストのBIOS/ファームウェアを最新バージョンに更新してください.


調べてみるとこちらのブログにて同じ課題に取り組んでおられたので参考にしました.
本環境はHP ENVY700-270jpなのですが,BIOSは起動画面でEscもしくはF10連打で起動できます.
ヒューレット・パッカードセットアップユーティリティが起動できるので,仮想化設定を有効にします.
するとVMWare上でエラーがでなくなるので無事仮想端末の動作が可能になりました.

TensorFlowに関しては,やってみてまとめる余裕があればまとめます.

2015年4月20日月曜日

[Android][Openshift]AndroidからOpenshiftサーバへのファイル転送

Android側からPOST通信にてOpenshiftサーバへファイルを送る方法です.
サーバ側はOpenshiftでなくてもなんでもいいですが,PHPで受け取ると仮定します.

★サーバ側(test.php)




これ自体はどこかのサイト様を真似させていただきました.
※無断転載等ご指摘頂いた際は削除いたしますのでご連絡ください.

★Android側
まず,どこかからhttpmime-4.2.1.jarをDLしてきます.
※現在最新版の4.4.1では謎のエラーが発生したので4.2.1を推奨します.

DLしたファイルをlib配下に配置するか,ビルドパスを通します.

ファイルを送りたい場所で以下を記述します.




これでOK.Android側からはMultipartEntityを使ってファイルなどをPOSTすることが出来ます.
ファイルを送る場合は,FileBodyを,文字列を送る場合はStringBodyをつかいます.
なお,これらの動作は遅延等を考慮しバックグラウンド動作させるのがベターなようです.
その辺はAsyncTaskでググりましょう.

また,本ソースコード内には適用しておりますが,以下の点でつまずいたので追記します.

★ $_FILES[ 'picture' ][ 'name' ]が文字化けする
送信側で文字コード指定をしているにもかかわらず,ファイル名が???に文字化けしました.
色々なパターンを試したがダメで,結果ファイル名だけ別途POSTすることで回避しました.
StringBodyは文字化けしない様子です.

2015年2月17日火曜日

[Excel][小ネタ]セルの書式が更新されない件

Excelにて書式が更新されない現象があったので備忘録として記載します.

【発生現象】
・Excelの一部のセルが数値なのに文字列扱いになっている.
・そのせいで並べ替えをしても,1,10,2,3,4,5...となって数値順にならない.
・セルの書式→数値に変更するものの,一旦セルをダブルクリックまたはF2キーを押してアクティブにしないと更新がかからない.


【対応方法】
今回は数値データのみ困っていたので以下の方法で強引に対応しました.
特にA2~A100を一気に数値にしたい場合です.
1.B2セルに以下を記述する.A2のところは必要なセル番号を記述する.
   =value(A2)
2.コピーしてB3~B100にペーストする.
3.B2~B100をコピーする.
4.A2~A100のセルの書式を数値に変更する.
4.A2~A100に対して,値のみをペーストする.


ちょっと強引ですが以上です.
セルの書式ではなく,数式が計算出来ない現象もあった気がしますが,対策を忘れてしまったのでまた思い出したら記載します.

2014年8月27日水曜日

[OpenShift][PHP]Red Hat OpenShiftでターミナルログイン

前回の記事でOpenShiftを用いて無料でクラウドPHP環境を楽しもうという紹介をしました。
使っていくにつれて、ターミナル環境を利用したいと思ったがWindows環境では中々躓いたので記録します。

前提:
 クライアント:Windows7 pro
 rhc,gitインストール済み

目標:
 OpenShift上の自分のアプリケーションにコマンドライン接続

結論:
 TeraTermからssh接続し、秘密鍵を指定するだけ。
 (ここに辿り着くまでに色々試した。。。)

やり方詳細:
1.OpenShiftの管理画面から「Want to log in to your application?」のリンクを押下
2.現れたボックスの中身をコピーする「ssh ~~~~~~~~@~~~~~~~~」
3.TeraTermのホストのところに貼り付け(ssh は削除してから)てOK
4.RSA/DSA/ECDSA鍵を使うを選択し、秘密鍵を押下

5.秘密鍵はrhc setup時に生成しているはずだが一般的には
  >C:\Users\UserName\.ssh\id_rsa
  のはずである。またパスフレーズを指定して自分で生成している場合は上図パスフレーズに入力する必要がある。
6.OKを押下するとログイン完了



ここに辿り着くまでに自分でRSA作りなおしたり、コマンドからSSHしたりなんなりで結構迷走しましたが、結論は簡単でした。悲しい。

2014年5月6日火曜日

[OpenShift][PHP]Red Hat OpenShiftで無料クラウドPHP

RedHatの提供するOpenShiftを利用すると,基本無料でPHPクラウドが利用できます.
本日はOpenShiftもGitもよくわからない私がPHPでDBアクセスするまでの道のりを説明します.

1.OpenShiftにSign Up
 >さすがに説明は省略.適当に新規登録してください.

2. コンソール画面(下図)からAdd Application
 >プロジェクトを追加するイメージです.


3.PHP5.4のカートリッジを追加
 >カートリッジを選択後,アプリ用のドメインを決定してCreate Applicationを実行

4.MySQLとPHPMyAdminを追加
 >自分のアプリを選択後,画面下部にMySQLを追加できるリンクがあります.
 >MySQL追加後PHPMyAdminを追加できるリンクがあります.

5.RHC Client Toolをインストール
 >上記リンクを参考にRHC Client Toolをインストールします.
 >まずRubyをインストール(この時Pathを通さないとコマンドプロンプトで動作確認できません)
 >Gitをインストールします.
 >コマンドプロンプトから「gem install rhc」 を実行します.

6.アプリ側に自分の開発用端末を追加
 >コマンドプロンプトから「rhc setup」を実行します.
 >その後ログインすることで勝手に追加されます.
 >20170526追記
 >Enter the server hostname: |openshift.redhat.com| と出力されてしまいログインを問われなくなってしまいました.こちらを参照したところ,これを問われた場合はopenshift.redhat.comと入力すると,ログインを問われますので,ログイン情報を入力するとセットアップが完了します.

7.Gitからプロジェクトをチェックアウト
 >コマンドプロンプトで「git clone "SSH key?"」を実行します.
 >ここで"SSH key?"はコンソールの下図(右の四角)よりコピペします.

8.アップロードはこちらのブログ様を参照
 >チェックアウト先(基本的にはC:\Users\<ユーザ名>\<プロジェクト名>)の下に
  phpフォルダを作成し,phpファイルも作成します.
 >「git add php/<作成ファイル名>.php」を実行します.
 >「git commit -m first」を実行します.
 >「git push」を実行します.

9.動作確認
 >「http://<プロジェクト名>-<ドメイン名>.rhcloud.com/<ファイル名>.php」にアクセスします.
 >無事表示されていれば完了です.
 >MySQLとの連携は通常のDBアクセスと同じです.

以上,備忘録を兼ねてまとめておきます.

2014年4月14日月曜日

[英語][学習]3月のTOEIC結果【690点現在の英語の見え方】

前々回の最後にて1月ごろに受験し,750を目指すとのことでした.
結論から言えば全て嘘になりました.

受験:3月(1月はグータラしていたから)
結果:690点(あんまり勉強していなかったから)

前回からの学習内容
・主にrarejobによる日々の英会話
 >特にDaily News Article教材を利用
 >TOEICマテリアルも実践してみたがあまり合わなかった
・英語論文に目を通す
 >基本AbstractとConclusionだけ

言い訳
・受験日が東京に引っ越す前日だった
・開始直前まで寝ているくらい眠かった
・前回受験以降は英会話をメインにしていた

正直な感想としては,受験直後には前より下がったんじゃないかと思っていた.もしかしたら今回は簡単なテストだったのかもしれない?
しかし結果としては伸びてきているので,rarejobの効果がないわけではないらしい.ただし,前々回の記事で述べているように,前提となる知識はある程度必要だと思う.(文法とか文法とか)あとは慣れ?

一般的にTOEICのBランクと呼ばれる730点まであと一息といったところです.
せっかくなので,今の英語に対する僕の気持ち?というか英語の見え方を少々述べます.


【690点現在の英語の見え方】
・難しい単語が少なければゆっくり英語記事が読める.
・けど,なんか意味がぼんやりしてる.
・よーく理解しようと読んだら大体わかる.
・リスニングはよく聞くフレーズとかはすっと理解できる.
・難しい単語とかが混ざるとおいていかれる.
・スピーキングはたどたどしい.
・自己紹介はもう慣れた.
・自分の意見が難しいものでなければつっかえながら言える.
・思っていたより690点は読み書き話しができない.


ちなみに
【305点だったころの英語の見え方】
・なんかよくわかんないけどこんな感じでしょって読めてる気になってる.
・文法なんて大体わかってるよって思ってる.
・リスニングで5W1Hにだけ耳を傾けている.
・5単語以上の文を聞き取れない.
・自己紹介すらままならない.
・Could you?やI'd like toの文すら使えない.
・だいたいジェスチャーで何とかなる.


800点越えたらまた視界が変わってくるのでしょうか.
今後もrarejobを継続することを第一目標にして,細々と英語学習,,というより英語に触れる時間を増やしていきたいと思います.
次回の目標はとりあえず750.いや800.受験は冬頃予定.その次900点を目標に!!英語力伸ばしたいです.

非常にどうでもいいですが,本ブログ英語学習に関するPVが一番低いです.

2014年1月31日金曜日

[Java][Android][Weka]始まりはVerifyErrorから

【現象】
 Androidアプリ実行中にVerifyErrorが発生して思った動作をしない.

【環境】
 Android 2.2~向け
 eclipse (AndroidSDK)利用

【背景】
 1.Androidアプリにおいて,weka.jarをライブラリとして利用するアプリを開発中.
 2.実行してみるとFilteredClassifierのインスタンス生成部でVerifyError.
 3.エラーをよく見てみると,BeansInfo.javaが見つからないらしい.
 4.検索したところ,AndroidSDKにはJavaやJavaxの一部のクラスが含まれていないらしい.特にbeans.jarが含まれていないことが原因と思われる.

【解決へ】
 1.こちらやこちらなどを参照したところ,beans.jarを含めてrepackageすればいい的な雰囲気.
 2.ただしbeans.jarはもう公式には公開されてないらしい...こちらより.
 3.apache harmonyから適当にDLすればなんとかなるかも?こちら.
 4.単純にDownloadsからapache harmonyをダウンロードしようとしても,もう公開されておらず,Archivesへ...こちら.
 5.よくわからないながら,M12→apache-harmony-5.0-hdk-r885602-windows-x86-32-snapshot.zipをダウンロードし解凍.jdk->jre->lib->beans.jarをゲット.
  6.単純にlibsに突っ込んでビルドするも失敗.
 7.先ほどのサイトの手順でやるもなぜか失敗...そもそもantって何っていう状態から開始したので,コマンドラインからのJavaビルドツールantと,ADKをコマンドラインから利用できるようにインストール.
 8.こちらのサイトの手順を試してみる.
  ※ただし以下コードのみ修正する.
 9.これでやっとビルド完了...

【感想】
 まとめてみるとこんなものですが,ここにたどり着くまでに3日かかる...
 AndroidSDKを単純なJavaとしてライブラリを利用する際は注意が必要ということが分かりました.
 なお,別でgoogle-play-services_libも読み込んで使っていましたが,これも間でエラーになったりといろいろありました.結局はgoogle-play-servicesのプロジェクトから.jarファイルをとってきてlibsに突っ込んだところエラーは消えました.(動作未確認)

2013年10月28日月曜日

[英語][学習][TOEIC][rarejob]英語勉強の成果に関して

以前英語に関する投稿を行いましたがその進捗に関して報告したいと思います.
(前回の記事あまりPV無いですけど私のひとりごととして書きます.)

【前提】
TOEIC元スコア : 310点 (丁度1年前:2012年10月)
理系大学卒 企業経験後 理系大学院

それまでの学習履歴
 中学英語 : できてたつもり(当時実力テスト70点前後)
 高校英語 : 皆無(落第点寸前)
   →ここでTOEIC295
 大学英語 : 皆無(マジで0)
   →就職後即のTOEICで305
 会社英語 : スピードラーニングを始める(1年ほど聞き流す)
   →いざスピードラーニングと550点目標にした結果TOEIC310

【今回】
TOEICスコア : 620点 達成(ダブルスコア\(^o^)/)
 2013年9月受験
 そんなにすごいことではない
 けど英語落第点寸前理系にしてはすごい嬉しい.

今回の主な勉強内容
 2013年4月~
  英語リーディング教本:薬袋 善郎先生
  日本人の英語:マーク・ピーターセン先生
  リピたん(P-study-System for Android):単語アプリ
   詳細は前回記事参照
   元は急がばまわれ式の英語勉強法を参考にさせていただいております.
 2013年9月~
  TOEIC公式問題集Vol2~5
 2013年9月末
  TOEIC受験

【感想と手応え】
いろいろな方々のブログで英語学習法は紹介されておりますので,あくまで1参考程度になればと思い個人的な感想を記載してみます.

1.前提知識が無い奴が何やっても無駄       
 言いすぎかもしれませんがあえて言い過ぎます.
 中学英語なら・・・と思ってたけど(私の場合)中学英語すらダメでした.
 意外と出来ると思っててもできない人は多いと思います.
 私は関係代名詞も含め中学文法は大丈夫と思っていましたが甘々でした.
 なのでスピードラーニングしかり単語帳しかり英作文しかり続きませんでした.
 このことから英語学習をする上で重要なのは
   自分の能力値をカナリ低く見積もること
   カナリ低いところからスタートすること
 が重要であると感じました.
 この意識によって何が変わるかというと
   気持ち面で継続が容易になる
    ・簡単だから理解しやすい
    ・わかるから楽しい
    ・楽しいから続けられる 
    ・楽しいから好きになる
 実はこれ,学習活動における最重要事項です.
 学習のコツは効率的な学習方法ではなく学習を楽しめること,
 即ちモチベーションが最重要課題なのです.(個人の意見です)
 なので,はじめは小さい自分でいいので,小さめの階段を少しづつ登りましょう.
 継続は力なり.間違いないです.なので継続するために工夫しましょう.

2.文法マスター最強説                
 こちらに関しては個人によってかなり違うと思いますので流し読みしてください.
 英語リーディング教本:薬袋 善郎先生の本にも書かれていますが,英語文法は
 非常に素晴らしいツールです.あくまでツールです.
  >ちまたでよく「外国人は英文法なんて意識しない.自然な英語を身につけ
  >るべき」とか仰る方もいらっしゃいますが,それは英語に関わる時間が圧
  >倒的に日本人に比べ多いからです.将来的にそのような状態になること
  >は最善ですが,そこにたどり着くために外国人の赤ちゃん~成人までと同
  >じプロセスをたどるわけには行きませんので,我々は効率よく文法を知っ
  >て英語を理解できて自然とわかるまで練習するのが良いと私も思います.
 私は上記の本が神本だと思いますのでいろいろな人に薦めてます.
 (ただ途中で挫けちゃう人が多いのが難点)
 読みきってみると英文法の絶対的基礎が一本筋で理解できて,英語リーディ
 ング力が圧倒的に向上した,,,わけではありませんが,構文をばらして理解
 できるようになりました.即ち,全くわからないが減り,
 頑張ればわかるかもが増えました.それがどうしたって,1のモチベ
 ーション維持に大いに貢献しました.
 更にこの本は中学レベルから話してくれてますので私に調度良かったです.
 そのくせ簡単すぎることが無いから素晴らしい.是非読みきってみることを
 おすすめします.

3.TOEIC公式問題集最強説              
 これはTOEIC攻略でいろいろなところで言われていますね.詳細は省略です.
 ですがあえて他のブログでも書かれていることを繰り返します.
  TOEICは慣れによる所が大きい
    >即ち公式問題集をやりまくれ
 コレは間違いないと思います.ただしやはり基礎ができていたほうが伸び幅が
 違うとも思います. 高いので大学所属の方は一度図書館に行ってみるのも手.


今回私が効果を特に感じたのは上記3つでした.コレを半年(1日1~2時間
やったりやらなかったり)で英語嫌いが600超えました.あくまで目安ですが.

私の本来の目標は英語力全体的に向上なので,TOEIC勉強は一旦休止して
現在は通常の英語学習に復帰しています.特にここまで来ると自分の課題が
見えてきまして,今の私の課題は「英語を英語で理解する」だと思います.
デカイ課題です...本当にデカイ.どこかのブログではみんなコレを意識しや
がれーー!的に書いてますが,1の通り基礎ができてないと無理だと思います.
何が無理かってモチベーションが続きません.続く人は相当タフでストイック
それこそ才能だと思いますので誇っていいと思います笑

できれば,英語を英語で理解するまでの中間ステップがあれば知りたいもの
ですが,今は英語長文(ラダーシリーズレベル2)をゆったり読んだり,英語の
漫画を読んでみたりをメインに学習しています.

あと個人的に会話が必要なので,隔週1回の市の英会話サークル(レベルは
バラバラ)とできるだけ毎日rarejobでSkype英会話を行っています.安いし!
あとあと,日本好きな人が集まるペンパルサイトで友達を探しカリフォルニアの
JKとメール交換もしています.地味に楽しいです.英語が嫌いだった私が毎日
英語に触れ,もっと実力を伸ばしたいと思えていることが何より今嬉しいです.

おそらくモチベーションがこのくらいにまで乗ってしまうと,学習は自分で進む
と思います.ここまでモチベーションを到達するための工夫等考えて行きたい
ですね.


【結論】
 私は低能である.そこからがスタート.

今低能であればあるほど,伸びる幅が大きい!
私みたいにダブルスコアが容易!目指せトリプルスコア!
次は1月ごろ受験して750の壁を超えられればと思います.

2013年8月20日火曜日

[Weka][Java]Wekaによるデータマイニング(インスタンスの作成)

今回はWekaをJavaで動かす際にはまった点に関してまとめます.
なお,WekaのインストールやJavaでの実行までは他ブログ様においていろいろ述べられておりますので割愛しまして,簡単なサンプル実行の際に戸惑ったことをまとめます.

私はソースの書き方に関してこちらのブログ様を参照させていただきました. ただ,単純にコピペでは動作せず...(Wekaのバージョンの関係?)戸惑ったのでまずメモします.はまった点は Instanceのあたりでエラーとなり,そもそもビルドできないというものです.

これは何処かの英語の記事で書かれていた通り
 ★InstanceはInterfaceなので実装されたInstanceから(Javaの)インスタンスを生成する必要がある.すなわちDenseInstanceクラスをつかえとのことでした.


従って上記コードを


にすることで解決します.


ただ,これだけではまた後日エラーが発生してしまいました.今度は実行時エラーでsetValueにてjava.lang.IndexOutOfBoundsExceptionが発生するというものでした.ソースを追いかけてみると,setValue(Attribute, String)等において,Attributeのm_Indexの値から配列を参照しており,AttributeのコンストラクタにおいてIndexを指定しない場合-1に自動でなるので,OutOfBoundsと.
ですので,まずInstancesを生成し,AttributesにIndexを付番しておくことで改善されました.以下コードです.

以上.

2013年6月20日木曜日

[Java3d]Windows7-64bit環境下でのJava3d実行

掲題の通りWindows7-64bit環境下でのJava3d実行にはまりました.

 過去のJava3dプログラムを現在の環境で動かそうとしたところ
まずは下記エラーが発生

Java 3D ERROR : OpenGL 1.2 or better is required

なんかこことか 色々さまよう果てに

OpenGLを使ったレンダリングだからエラーになるといったことが判明し

実行引数に「-Dj3d.rend=d3d」を追記すれば直るとの事だったが直らない...

今度は j3dcore-d3d.dllがないよ的なエラー.たしかにJava3d配下にそんな

もんはない・・・こことか色々参考にしたところ32bitと同じソースだから自分で

コンパイルしたとかどうとか.でも今じゃそんなファイル見当たらない....



こんな感じで数時間はまってましたが,結論は至ってシンプルでした.


【結論】

32bit版のJREで32bit版のJava3dを動かす.


JREを32bit版でもインストールし,プロジェクトの実行構成を変えたところ

普通に動作しました.なんなんだよっって感じでした.

2013年6月11日火曜日

[GAE]javax.jdo.JDOFatalUserException: Illegal argument

GAEでちょいとはまったのでメモしておきます.

DataStoreにデータをぶち込む処理で以下のようなエラーが出ました.



とあるデータは保存できるのに,とあるデータは保存できない...

似たようなエラーとして,次のようなサイトも見ましたがダメ.

エンティティグループが多すぎる(xawa雑記帳様)

一つのトランザクションで連続してデータを入れる(適当えんじにあ様)

バージョン違い(いろきゅう.jp様)


なんだか1MByte(程度)以上のデータになると発生するような雰囲気.

同じデータを分割して送信してみたところ正常に処理が完了しました.
(送信前に分割して複数回送信)

ださい解決策ですが参考までに.

※まとめて送信してmakePersistent前でばらしてもよいのかも?

2013年5月13日月曜日

[英語][学習] 自身の英語学習の経過~その1~

私の英語に関する記録をまとめておくことで,後で役に立つかと思い,簡単にまとめます.

個人情報 :24歳 ♂
TOEIC点数 :310点...OTL
わかる文法:中学レベルなら
わかる単語:中学レベルなら
学習意欲 :中学時 :受験勉強として最低限をやっていた.
      高校以降:皆無(赤点でなければよい)

そんな私がこの度英語を習得しなければならない状況に陥ったため英語学習を始めました.
その履歴をこれから記載してまいりたいと思います.

記載の形式は主に利用した学習方法とその効果を私の主観でまとめてまいります.

1.キクタンBASIC4000(単語)
 20歳の時に受験勉強で利用.
【効果   】★★☆☆☆
【継続し易さ】★★☆☆☆
【特徴   】簡単な単語~最後は難しい単語まで一通り4000語.
       毎日16語の区切りがあってきちんとできればやりやすいかも.
       レベル8まで英→和は完璧にしたはずがしばらく放置すると
       知識は全て消滅した.1日必ず16単語は結構キツイ.
       聞きやすいCDもついていたがすぐ飽きた.聞きながら続く人いるのか?

2.データベース3000(単語)
 もらい物.あまりやりこんでいないので評価は当てにならない.
【効果   】★★???
【継続し易さ】★????
【特徴   】系統ごとのくくりで覚えていく感じだった気がする.
       個人的には系統ごとは覚えにくい.
       キクタンもそうだったけど,単語帳って続けるの超しんどい.

3.スピードラーニング~24巻(リスニング)
 本格的にやらなきゃということで,ダメもとで購入.
【効果   】★☆☆☆☆
【継続し易さ】★★★★☆
【特徴   】本当に聞くだけで半年くらいやってみた.だんだん飽きる.
       ただし,私の能力値では聞いても全然理解できないから,
       スキルの向上にはあまりつながらないと感じた.基礎力をつけて
       出直します.

4.速読英単語 必修編(単語)
 本格的にやらなきゃということで,使いやすそうな単語帳を本屋で選別.
【効果   】★★★☆☆
【継続し易さ】★★☆☆☆
【特徴   】長文→単語の流れで1章が形成されていて,単語→長文で学習すると
       意外と長文が読める.両方の練習になったことは有用かもしれない.
       ただやはり単語帳は飽きやすい.20章で脱落.
       問題はやはり完璧に覚えられない(実際にその単語を利用できない)
       ことだと思う.

5.りぴたん(単語)
 Androidアプリで4択形式の単語.
【効果   】★★★??
【継続し易さ】★★★★☆
【特徴   】忘却曲線を参考にした単語記憶システムP-Study-Systemを用いているらしい.
       研究的にも非常に興味深かったので利用.その日にどれだけやったかという歴が
       意外にもやらなきゃと思わせてくれる.英→和を今やっているが,4択ではなく
       頭で考えて思いつくかどうかで勉強している.意外と続く.

6.英語リーディング教本(文法)
 こちらを参考に一度全部素直にやり遂げようと購入.
【効果   】★★★★☆
【継続し易さ】★★★☆☆
【特徴   】英語文法を徹底して記述してある.SVOC?ってレベルの私ですが,
       しっかりと読み込めば理解していけます.徹底して書いてありますが
       おそらく必要最低限で文法をマスターできるように,意外と全体は
       少なく感じました.(現在半分完了)
       読むほどちゃんと文法が理解できるから,ただひたすら聞くスピード
       ラーニングや長文系よりも,私には前提の知識が必要であったことを
       実感.知識がついていくのは中々楽しいと思えるようになりました.


現在のところここまで.TOEICは秋ごろに再受験予定.目標は500点(190点アップは無理か...?)
前回のTOEICからやったのは4~6です.
6の効果が個人的に期待できそうなので,こちら に素直に従っていくのは継続していこうかと思います.

お勧めは,TOEIC ~400点なら6を徹底してから他をしたほうがいいと思う.
やっぱり文法がわかると,英語が少しだけ楽しくなる.
継続できるのが大事だと...思う!



悲しいのはこの記録をつけて,後で見た時にスコアがあがってなかった時...がんばろう...

2013年4月9日火曜日

[GAE][PHP4G][SQL4G]SQL4GをGAE上で動かすまで

GAE上でデータ扱うのが面倒だったので,PHP+SQLでやりたいなと思ったところ「PHP4G」と「SQL4G」にたどり着きました.

基本的に下記記事の通りにすればOKですが,はまったところをメモとして記載し,2013年4月9日現在の最速と思われるサンプル実行までの手順をまとめておこうかと思います.

http://www.atmarkit.co.jp/fcoding/articles/gaephp/02/gaephp02a.html

1.GAE実行環境を準備する.
   (これは大前提なので,ほかの記事参考にしてください.)

2.GAEプロジェクトを作成する.

3. リトルソフト様よりPHP4GとSQL4GをDLする.

4.PHP4Gのwar配下を「appengine-web.xml」以外全部GAEのプロジェクトのwar配下にコピーする.(eclipseにドラッグドロップでOK)

5.「appengine-web.xml」はマージする.


  こんな感じなので,作成したプロジェクト側でも下記修正を加え,マージする.
 ★8~12行目:同様にしてコメントアウトにする.
 ★14~27行目:追記

6. プロジェクト右クリック→ビルド・パス→ビルド・パスの構成より「ライブラリー」にjarファイルを追加します.追加するファイルはwar/WEB-INF/lib/より下記の通り.

commons-codec-1.4.jar
commons-fileupload-1.2.1.jar
jetty-6.1.17.jar
jetty-util-6.1.17.jar
log4j-1.2.15.jar
lsj-1.3.jar
lucene-core-2.4.1.jar
org.osgi.core-1.2.0.jar
php4g.jar
quercus.jar
resin-util.jar
script-10.jar
servlet-api-2.4.jar
slf4j-api-1.5.0.jar
sql4g.jar
velocity-1.6.2-dep.jar

7.この状態でも,eclipse上でのテスト実行であれば動きます.
 >http://localhost:8888/sql4gadmin

8.ただしこのままだとGAE上では下記サイトでも記載の通り
  「Unable to find resource ‘sql4gadmin/MainPage.html’」がでます.
 >http://blog.aqn.jp/2011/03/gaephpsql4g/
  上記サイトの記載を参考におそらく最短でエラー回避の方法を記載しますのでご参考ください.

9.SQL4Gのプロジェクトファイルよりwar/WEB-INF/web.xmlを参照し,下記記載を作成したプロジェクトのweb.xmlに追記する.


10.さらに下記の通りコメントアウトする.(これやる必要あるのかは謎ですが)


以上の流れでPHP4GとSQL4Gのサンプルは動作するかと思います.
意外とはまる箇所があったので記載しておきました.

※地味に@ITにしたがっているだけだとはまりました...(僕だけ?)
 基本的にはweb.xmlとappengine-web.xmlの記載にだけ注意を払えば
 あとは全部コピーとビルド・パスだけで動くはずです.

2013年1月3日木曜日

[Android]DrawableをID指定で読み込んだ時のResources$NotFoundException

掲題の件に関してドハマりしたので記録として残しておきます.
原因はわかってしまえばアホなお話でした.


【発生事象】
ImageViewにDrawableの画像を指定する際にどの画像を指定しても

Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/ic_launcher.png from drawable resource ID #0x7f020001

のようなエラーが発生し画像が表示されない.



【原因】
assets内のファイルを読み書きした際にAssetsManagerをclose()していたため.


AssetsManagerを意図的にclose()すると,画像リソースを拾う際にも影響が出る模様です.
おそらくこれは利用者が意図してclose()しなくてもよいものなのだと解釈しておきます...

2012年9月17日月曜日

[Android]ProcessとTaskに関して

Androidにおいて、現在表示されているアプリを取得したいと思い、Processに関して調べました。

結論から言うと、getRunningTasks(int n)を使います。

調べてみたところ、プロセス関連では、

ActivityManagerからgetRunningTasks(int)を使うものと

getRunningAppProcesses()を使うものがあるということです。

getRunningTasks(int)は指定数を最大数として、runningのタスクを取得することができます。

詳細説明は こちら のブログより参考にさせていただきました。

これでバックグラウンドにて動いているものも含め、Activityが取得できます。

(SH-12CとGalaxyS2で試したところ、ホーム画面も検出する模様。)

 これで先頭の物が現在表示されているアプリである。





ちなみにgetRunningAppProcesses()は現在動いているProcessの一覧を取得しているものと思われます。

取得できる項目は リファレンス 参照。

気になる項目としては、「pid」「processName」「importance」があります。

pid:プロセスの固有ID
processName:プロセス名
importance:状態

特にimportanceはそのプロセスがどのような状態かを表し、なかなか有用です。

たとえばimportanceが

100:動作中のアプリケーション
300:動作中のサービス
400:バックグラウンドにいるアプリケーション

みたいな感じで、状態を区別できます。

あとは英語ができないのでよくわかりません。

サービスも含めて動作中のProcess等詳細に調べたい場合はこちらのが有用でしょう。




最後に、 サービスで動作し、接近センサーをトリガーとして、プロセスの出力を確認する

アプリを創りました。どんなものが出力されるか観察できます。

観測データはSDカード内部にCSVで保存されます。

EXCELで適当にさばいてください。

ソースコードは こちら より。

ソースのみlayoutファイルは含みません。

サービスの起動停止を行うonClickのついたボタンを適当に2つおいてください。

2012年7月21日土曜日

不定期にもほどがあるブログですが、たまには記載。


現在Androidアプリ開発を好んで行っております。弥太郎です。


なんとなく、業務で利用しているToDoListを公開してみます。


Excel2007以降で動作します。


別に大したものではないですが、どうぞ。


ToDoList.xlsx