aswww log

エンジニアの技術録。アプリとかウェブとか

はてなブログでPNG画像のアップロードがうまくいかない

前回の記事投稿でだいぶ時間とられたので覚書。結論としてはJPG画像にしたらうまくいった。

はてなブログの画像アップロードの仕様
 現時点では以下のとおり

はてなブログから投稿できる画像ファイルの形式は、JPEG、GIF(アニメーションGIFを含む)、PNGのいずれかです。1枚で、長辺が10,000pxかつファイルサイズが10MBまでの画像に対応しています。

help.hatenablog.com

PNG画像→JPEG画像に変換
 対象の画像はWindows上では容量・サイズともに問題かった。なのでもう少し調べてみると以下の記事を発見。PNG画像は勝手に容量が大きくなるとのこと。ためしに画像形式をPNGJPEGに変更したらすんなり画像アップロードできた。アップロードしたPNG画像は40KBだったので相当大きくなったのかな

gamestart.hateblo.jp

Android Studio 3.1.3 における ADB初期化エラー

バイス・ファイル・エクスプローラーを開いたまま再起動したら以下のエラーが表示された

f:id:aswww:20180726120425j:plain

抜粋

Error initializing ADB: Unable to establish...(中略)
Try re-opening Studio after killing any existing adb deamons.

日本語訳

ADBの初期化に失敗しました。
IDEを再起動した後、adbデーモンのプロセスをキルしてください。

とりあえず再起動してもエラーが出てしまい変わらず。(しかもめちゃくちゃ重い)
調べてみたらStackOverFlowに似たような事例と解決法がのっていたのでやってみた。

android studio - Error initializing ADB: Unable to create Debug Bridge: Unable to start ADB server - Stack Overflow


手順は以下のとおり。(Windows 10の場合)

Android Studioを完全に終了する。(タスクマネージャーで確認)
コマンドプロンプトで↑のエラーに書いてあるadb.exeのパスを指定して以下のコマンドを実行。

C:\Users\ooooo\AppData\Local\Android\Sdk\platform-tools>adb.exe start-server

※結果は何も表示されない

・タスクマネージャーの詳細タブでadv.exeが存在するのを確認。そのままタスクマネージャー上で右クリックで終了する。
・改めてAndroid Studioを立ち上げる。今度はエラーが出ないはず。

Android Studio 3.1.3 IDE上からエミュレーターのPreferenceの内容を確認する

バイス・ファイル・エクスプローラーという機能を使えばGUIエミュレーター端末でアプリを実行したときのPreferenceの内容が確認できる。ちなみにAndroid Studioの3.1.3以前のバージョン(いつからかはわからない)だと確認方法が違う可能性があるので注意。

・デバイス・ファイル・エクスプローラーを開く
Googleの公式マニュアルのとおり。IDE右下にデバイス・ファイル・エクスプローラーって書いてあるタブがあるのでそれをクリックするのが手軽。
Device File Explorer で端末上のファイルを表示する  |  Android Developers

・以下をダブルクリックで開けばPreferenceの内容を確認できる
/data/data/[パッケージ名].debug/shared_prefs/[パッケージ名].debug_preferences.xml

ちなみにこのまま編集はできない。右クリックでファイル削除できるので、Preference初期化したいときは削除すればOK。編集したい場合は↑のXMLをいったんダウンロード→編集後のXMLをアップロードといった方法でするらしい。

半年ぶりにAndroidアプリをビルドしようとしたらbuild.gradleでエラー

2018年4月にAndroidアプリ周りで色々と仕様変更があり、ビルドがすんなり通らず苦戦したログ。

○gradle 3.0.0以上になって各書式が変わった
これはAndroidStudio3.0以上にアップデートした影響かもしれないけど、gradleを3.0.0以上にする必要が出てきてそれにともなって書式が変わった。具体的には以下の記事にあるとおり。自分の作ったアプリで関係あったのがapp配下のbuild.gradleにて"compile"と書いていたところを"implementation"に置換した。

Android Plugin for Gradle 3.0.0 への移行  |  Android Developers


○サポートライブラリが参照しているライブラリのバージョンの不整合によるエラー
以下のとおり、googlePlay公開における規約変更に伴い、targetSDKを現在の最新にする必要があった。
Google、Androidアプリに新バージョンAPIへの対応を義務づけ - CIOニュース:CIO Magazine

tartgetSDKを変更するとなるとサポートライブラリのヴァージョンも合わせて変更する必要がある。今回はtargetSDKを27に変更したのでサポートライブラリ郡もすべてそれに合わせて変更した。すると以下のライブラリだけエラー。

implementation 'com.android.support:appcompat-v7:27.1.1'

記載方法に間違いはないはずで、プロジェクトクリーンアップ、再起動、何をしても赤波線が消えなかったので根気よくググったら以下の記事を発見した。サポートライブラリの中で読んでいるサポートライブラリがバージョン違い(sdk26)になっていたらしく、サポートライブラリ内でエラーになっていたらしい。

kondotoru.hatenablog.com

上記事記載どおりにサポートライブラリ内で呼ばれているサポートライブラリを別行で指定してあげたらなんとかビルドがとおった・

Node.js+npmインストール(CentOS 7系)

Node.js+npmインストールCentOS 7系)

yumでインストールするのがスタンダードみたいなのでやってみる。

 yum install gcc gcc-c++
 yum install  nodejs --enablerepo=epel //nodejsのみインストール
 node -v //成功(バージョン表示)
v0.10.46
 yum install npm --enablerepo=epel

読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
︙
5.10-25.el6.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ: 1:v8-3.14.5.10-25.el6.x86_64 (epel)
             要求: libicuuc.so.42()(64bit)
エラー: パッケージ: 1:v8-3.14.5.10-25.el6.x86_64 (epel)
             要求: libicudata.so.42()(64bit)
エラー: パッケージ: gyp-0.1-0.6.1010svn.el6.noarch (epel)
             要求: python(abi) = 2.6
            インストール: python-2.7.5-39.el7_2.x86_64 (@updates)
                python(abi) = 2.7
                python(abi) = 2.7
            利用可能: python-2.7.5-48.el7.x86_64 (base)
                python(abi) = 2.7
                python(abi) = 2.7
            利用可能: python34-3.4.5-1.el6.i686 (epel)
                python(abi) = 3.4
エラー: パッケージ: 1:v8-3.14.5.10-25.el6.x86_64 (epel)
             要求: libicui18n.so.42()(64bit)
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

yumの依存関係が解決できなく、以下のとおりmakeでインストールした。
#OSアップグレードなど別途試行できそうなことはあった

git clone https://github.com/isaacs/npm.git
cd npm/
make
make install
npm

動いた

[root@dev tmp]# cat test.js
var http = require('http');
var server = http.createServer();

console.log('Hello Node.js');
[root@dev tmp]# node test.js
Hello Node.js

動いた

参考:
http://qiita.com/you21979@github/items/4efd9fc4363573191b5c
http://www.yoheim.net/blog.php?q=20130812

Node.js+npmインストール(Windows7)

Windowsインストーラーでのインストールなので簡単。
以下からインストーラーダウンロード&実行インストール
(Node.js公式)
https://nodejs.org/ja/download/

インストール完了したらコメンドプロンプトで以下のコードを実行

C:\Users\[ユーザー名]>cat test.js
var http = require('http');
var server = http.createServer();

console.log('Hello Node.js');

C:\Users\[ユーザー名]>node test.js
Hello Node.js

動いた。

参考:Node.js / npmをインストールする(for Windows
http://qiita.com/taipon_rock/items/9001ae194571feb63a5e

nightmareJsのインストールとElectronに関わるコマンドと参考リンク

npm install vo

○npmパッケージ一覧表示

npm ls --depth=0

○npmパッケージ詳細一覧表示

npm ls 

○Electronのパッケージ化パッケージインストール

npm i electron-packager -g

○Electronパッケージ生成

$ # electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> --version=<version>
electron-packager ./jstest getAdToday --platform=darwin,win32 --arch=x64 --version=0.36.1

nightmarejsで参考にしたサイト
googleログイン

  • Nightmareがv2(Electronベース)になり、使いやすく感動したのでLIGブログのPV/UUデータ取得を自動化してみた。

http://qiita.com/n0bisuke/items/8a7a52321380e5cf0379

○オプション一覧

  • Nightmareさんとこをざっくり訳

http://kurokokoruru.hatenablog.com/entry/2016/01/03/185817

  • Nightmarejsでセッションを維持しない

http://qiita.com/notsunohito/items/c8d7768cc6b30dd8e441

Electronで参考にしたサイト
○Electronをパッケージ化する

  • 30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで

http://qiita.com/nyanchu/items/15d514d9b9f87e5c0a29#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

○package.jsonの書き方とか

  • はじめてのElectronAdd

https://goo.gl/koUKXI


エラー関連
■npm ERR! enoent ENOENT: no such file or directory, open package.json
electron-packager入れてなかったことが原因

■実行ファイルを実行したらError: Unable to find a valid app
package.jsonがソースディレクトリになかったことが原因[]
https://github.com/electron-userland/electron-packager/issues/264