Midnightjapan

Programing

Android 4.2~4.4ダウンロード障害の対応

by jun on 8月.19, 2017, under Android, Android, Java, Programing

今回のお仕事は障害対応でサーバーサイドJavaのサポート開発をしていて簡単で奥の深い問題を知ることができたのでナレッジとして。
タイトルの通りあまりJavaの話は関係ありません。

案件としてはAndroid4.2~4.4の端末でダウンロードできないシステムがありこれを解消したいという内容。
予算の都合か、さらに古いAndroid4.1.1端末で検証することになりました。

結構単純なプログラムでリクエストに応じた画像をダウンロードさせてあげるというもの。
ContentType(“application/octet-stream”)と設定されています。

検証してみました。

Android4.1.1には標準ブラウザが入っています。これがChromeかどうかが問題です。
調べたところ、標準ブラウザがChromeであるかどうかはディストリビューションにより違います。
そこでChromeと両方入れて検証しました。

標準ブラウザ → ダウンロード > 0 byte > 開けない
Chrome    → ダウンロード> ギャラリーに入らない > 開けない > FileExplorerをいれる > 見れる!ギャラリーに登録で成功・・・

本当だ。
しかも一般ユーザーにFileExplorerいれてなんてことはさせられない・・・・

冒頭で書いたとおり、画像なのに指定なしのContentType(“application/octet-stream”)がそもそもおかしいのではという動きであったため、ここを直して検証してみました。

ContentType(“image/jpeg”) に変更!

標準ブラウザ → ダウンロード > 0 byte > 開けない
Chrome    → ダウンロード> ギャラリーに入る > 開けた!

標準ブラウザは本来ディストリビューション側で組み込んだもので、Chromeなどと同じようにアップデートする必要があるのですが、たぶんお構いなしなんでしょうね。
それにソースとしても、古いのでサポートできません!でいいのかもしれませんが、以前は10年以上使えるPC相手だったのが、2年するとサポート完了のスマホ相手にすると日本の美学がなくなっていくように思いました。

ついでにAndroid 4.2~4.4の機種についても調べました。

機種名 標準ブラウザ その他搭載ブラウザ
Nexus 10、Nexus 7(2013)、Nexus 4、Nexus 5(EM01L) 、SH-01G、SH-02G、KYV31、402SH Chrome なし
SO-01F Chrome (smallブラウザ)
Galaxy SC-04E、SC-01F、SC-02F、 SC-04F、SCL22、SCL23など Sブラウザ Chrome
Fujitsu Arrows F-01F、Xperia SO-03F、LG G-Flex LGL23、Xperia SOL25、DIGNO R 202K、AQUOS PHONE 303SHなど Androidブラウザ Chrome
Aquos ZETA SH-04F、Fujitsu Arrows F-05F、Aquos 304SH、Xperia SO-01G、京セラ Torque G01 KYY24、LG isai LGV31など Androidブラウザ Chrome

赤字の部分が問題のようです。Chrome標準に統一してくれてもいいようなものですが、日本のメーカーが多いのも釈然としません。

簡単そうで奥の深い話題でした。

コメントなし more...

PHP5 PEAR:SMTP送信について

by jun on 10月.27, 2016, under PHP, Programing

PHPのバージョンを5.6.8にバージョンアップしたためPEARライブラリもアップデートしました。
すると突然、こんなエラーが。

pear mail authentication failure [SMTP: STARTTLS failed (code: 220, response: ready for tls)]

なにも変更していないんだが・・・・。
pearとmailライブライをあさってみたがなかなかいい情報がなく、TLSで探してみるとありました。

http://osticket.com/forum/discussion/3422/failed-to-configure-email-smtp-settings

どうもPHP5.1.0以上はTLS必須にしているらしいです。
なるほど、というわけで
PEAR>Net>SMTP.php
私の場合は463行目(pearのバージョンによると思います)

if (version_compare(PHP_VERSION, '5.1.0', '>=') && isset($this->_esmtp['STARTTLS'])) {
if (PEAR::isError($result = $this->_put('STARTTLS'))) {
↓
if (version_compare(PHP_VERSION, '6.1.0', '>=') && isset($this->_esmtp['STARTTLS'])) {
if (PEAR::isError($result = $this->_put('STARTTLS'))) {

こんな風に直してやったらちゃんと動作しました。
めでたしめでたし。

コメントなし more...

MySQL AUTO_INCREMENTを下げる

by jun on 7月.04, 2016, under Mysql, Programing

MySQL 5.5.48ストレージエンジンはInnoDBにてAuto_Increment値を上にあげるのは
mysql > show table status like ‘テーブル名’\G
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 50000;
などで変更される。今回はたまたま1から256まで入っていたデータ移行は10000以上にしようとAuto_Increment値をあげておいたデータに対して、10000以上のデータは消して257から入れたい!と思ったときにこうしました。
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 257;
実行上はOKとでるので調べてみると
*************************** 1. row ***************************
Name: テーブル名
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1103
Avg_row_length: 2391
Data_length: 2637824
Max_data_length: 0
Index_length: 1474560
Data_free: 72351744
Auto_increment: 32687
Create_time: 2016-07-04 12:19:54
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.02 sec)
と、まったくかわっていません。MySQLでは最大値+1以外の設定はできないそうです。
そこで10000以上のコンテンツはdeleteしました。
これでデータ上でもmax(id)は257になっています。
ここで以下を実行してみると
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 257;
やはりかわりません。
答えはこうです。
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 1;
こうすると最大値+1を計算してくれるようです。
要するにAUTO_INCREMENT値のリセットを行ったようです。

コメントなし :, more...

Eclipse “compute launch button tooltip error”の解消について

by jun on 6月.09, 2016, under Eclipse, Programing

Eclipseの開発環境構築がほぼデフォルトになってきた今日この頃、起動時に”compute launch button tooltip error”なるが発生するようになった。
実害もなくエラーがでるだけであったため放置していたが、開発が大詰めになるとエラーがきになってくるもの。
そこで意外と簡単に解消できたため、記録として残す。
環境は以下の通り。開発Java、Javascript、PHP、あいかわらずWEBオープンソース系開発がメイン。
Eclipse 4.2 Juno
+ Pleiades 1.4.2 : 日本語対応プラグイン
+ JStyle : 日本語対応コード表示設定プラグイン
+ PDT : PHP開発環境
+ JDT + JDK1.7 : Java7 Java Server Side 開発環境
+ Eclipse Tomcat Plugin : Tomcat コントロールプラグイン
+ Aptana Studio : WEB拡張プラグインおもにファイル送信
+ DB Viewer : DB管理プラグインおもにMySQLの管理
+ Subversive Subversion Plugin : SVN1.7+JDTプライグインでソース管理
なにが原因かわからないのが痛いところ、SVNで資源もってきてPHPやらJavaのローカルデバッグ環境を整備していたらエラーが表示された。
そんなときの解決策はダブルクリック一発!

eclipse.exe -clean.cmd

eclipse.exe -clean.cmd

これだけでスッキリ解消しました。
別のPythonとJava8の環境ではこんなエラーでないんだけどなぁ。いずれ詳しく調査したいと思います。

コメントなし more...

特定のアプリケーションの選択内にネットワークドライブが表示されない

by jun on 7月.12, 2015, under Programing, VB, Windows

Windowsのアプリケーションを開発していると開発言語やWindowsのバージョンや権限によって動作が変わってきたりして、問題の切り分けに時間がかかります。この問題もその一つで、できあがったアプリからフォルダー選択などをしてもらうウィンドウを表示した際に、すでに登録済みのネットワークドライブが表示されなくて、問題の切り分けに時間がかかりました。

そんな時のおまじないです。

レジストリエディタを使います。

  1. regedit を起動します。
  2. 以下まで遷移します。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  3. [新規作成]DWORD 値 をクリックし「EnableLinkedConnections」を入力する。
  4. EnableLinkedConnections、右クリックし、[値のデータ] ボックスに 「1」 と入力し[ok] をクリックします。
  5. コンピュータを再起動します。

これでアプリ側のファイルリストのPCの中にネットワークドライブが表示されました。UACの仕様のようですが、詳しくは別途Google先生に聞いてみて下さい。

コメントなし more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!