SQLの窓

2016年01月28日


Android Studio のとんでもないエラー『Some conflicts found in installation area』のなんとか対処法( 最悪は再インストールなので )



Android Studio をアップグレードしようとすると、最後の最後にこのようなダイアログが出て終わってしまいます。当然アップグレートはできていませんでした。世の中を探しても、StackOverflow ですら再インストールをすすめています。何かの整合性の問題(conflict/矛盾)だと思われますが、さすがに再インストールは時間が無いので、正常に動作している PC よりまるごとコピーして利用しました。

この際、上書きするのではなく以下のような手順を取っています。

1) 他のPCより適当な場所へコピー
2) 壊れているオリジナルフォルダをリネーム
3) この場所へ 1) のフォルダを移動

1) と インストールフォルダは同じドライブである必要があります。こうすれば、トラブルを最小限に抑えて復帰の準備ができます。ファイルやフォルダの移動は、余程の特別な理由が無いかぎり、同一ドライブでは管理情報の変更のみで実体の場所変更はありません。なので、3) の処理はすぐ済みます。上書きコピーをしてしまうと、上書きの確認やら、権限の問題やらなにやら、経験から言ってロクな事が発生しない可能性が多いのでこうした処置が必要になります。
※ また、これなら元へ戻すのも簡単なわけです。

結果うまく動作しました。コピーした元の Android Studio は既にアップグレード済み(1.5.1)なので、そのバージョンで正しく動作しました。( 次のアップグレードでどうなるかは保証できませんけれど )

再インストールよりははるかに早い復帰となりますので、各バージョン毎のバックアップを取っておくのもいいかと思われます。

ビルド時のよく解らないエラーの対処

gradle のエラーが明示される場合は、Users\User\.gradle を全て削除する方法もありますが、とにかく Androd Studio 内のソース全体でエラーがたくさん出る場合は、ユーザフォルダに .AndroidStudiofバージョン数字 のフォルダがあって、中の system\caches の中にあるファイルを全て削除すると良い場合があります(自己責任)。




posted by lightbox at 2016-01-28 19:58 | Android Studio 2 | このブログの読者になる | 更新情報をチェックする

2016年01月25日


Seesaa ブログで Twitter カードを使用する方法

Twitter カードは、ツイート内に投稿された URL 先のメタ要素を参照してツイートに画像や概要等を付加するルールです。( PC の場合は『全て表示』するとと表示されますが、スマホアプリからだと最初から表示されます)

▼ Android アプリにて


画像は固定にするのならばとても簡単です。今すぐにでも簡単に始める事ができます。

デザインから『記事』コンテンツを開いて HTML の先頭に以下のように書き込んで保存するだけです
( 単独の記事ページのみの設定ですが、意味が解れば他のページにも応用できます )
<% if:page_name eq 'article' -%>
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:image" content="画像のURL" >
<meta name="twitter:site" content="@ユーザ名" >
<meta name="twitter:title" content="<% article.subject | tag_strip %>">
<meta name="twitter:description" content="<% article.body | tag_strip | oneline | text_summary(100) %>">
<% /if -%>

※ Seesaa の変数で記事情報を得るには、記事コンテンツで書く必要があります

記事毎に画像を変えるには

さすがに記事毎に画像を設定するには Seesaa だけでは無理があるので、外部サイトより PHP ページを呼び出して画像として扱います。
記事内で META 要素で画像を指定すると、後から記述した記事内の情報が優先されました。これで、Seesaa 内で簡単に完結できます。


▼ 外部で画像を用意する方法
パラメータとしては、記事 id を使うと都合がいいので、記事を書く場合は最初は必ず 『非公開』で保存します。保存すると、Seesaa の記事投稿ページの URL に id が表示されるのでコピー&ペーストで利用します。
<meta name="twitter:image" content="http://サイトドメイン/フォルダ/画像取得.php?id=<% article.id %>" />

画像取得.php の内容は、データベースを使わない場合は以下のようになります
<?php
$_GET['img'] = 'http://winofsql.jp/logicalerror_k.jpg';
$type = "Content-Type: image/jpeg";


if ( $_GET['id'] == '431370653' || $_GET['id'] == '431586073' ) {
	$type = 'Content-Type: image/png';
	$_GET['img'] = "https://lh3.googleusercontent.com/-rcXr0TEtK9U/VneXBjsS7LI/AAAAAAAAc4c/V3aID9ySqMU/s600-Ic42/_img.png";
}
if ( $_GET['id'] == '430950219' ) {
	$type = 'Content-Type: image/png';
	$_GET['img'] = "https://lh3.googleusercontent.com/-rktBELHhoNY/VmhbqJ_Y8zI/AAAAAAAAc1U/2NdaaXuGO-U/s600-Ic42/_img.png";
}


header($type);

$pi = pathinfo($_GET['img']);
$ext = strtolower($pi['extension']);

if ( $ext == 'png' ) {
	$im = @imagecreatefrompng($_GET['img']);
}
if ( $ext == 'gif' ) {
	$im = @imagecreatefromgif($_GET['img']);
}
if ( $ext == 'jpg' || $ext == 'jpeg' ) {
	$im = @imagecreatefromjpeg($_GET['img']);
}

// 失敗
if(!$im) {

	//空の画像
	$im  = imagecreatetruecolor(200, 200);			// 200x200
	$bgc = imagecolorallocate($im, 255, 255, 255);		// 背景色(白)
	$tc  = imagecolorallocate($im, 0, 0, 0);		// 文字色(黒)

	imagefilledrectangle($im, 0, 0, 200, 200, $bgc);	// 背景を塗る

	// メッセージ
	// (5,5) は座標
	imagestring($im, 1, 5, 5, 'Error loading', $tc);

}
else {

	imagealphablending($im, false);
	imagesavealpha($im, true);

}

imagepng($im);
imagedestroy($im);

?>


このままでは、どんどんソースコードが長くなるので、データベースが使える場合は以下のようにして、データベースにデータを追加する事によって新しい記事に対応します。
<?php
$_GET['img'] = '画像データがない場合のデフォルトJPG画像の URL';
$type = "Content-Type: image/jpeg";

$host = "";
$db = "";
$user = "";
$pass = "";

$link = mysqli_connect($host, $user, $pass, $db);
mysqli_set_charset($link, "utf8");

$sql = "select * from links where target2 = '{$_GET['id']}'";
$result = mysqli_query($link, $sql);
if ($result) {
	if ( $row = mysqli_fetch_assoc($result) ) {
		$_GET['img'] = $row['URL'];
	}
}

$pi = pathinfo($_GET['img']);
$ext = strtolower($pi['extension']);
if ( $ext == 'png' ) {
	$type = 'Content-Type: image/png';
	$im = @imagecreatefrompng($_GET['img']);
}
if ( $ext == 'gif' ) {
	$type = 'Content-Type: image/gif';
	$im = @imagecreatefromgif($_GET['img']);
}
if ( $ext == 'jpg' || $ext == 'jpeg' ) {
	$type = 'Content-Type: image/jpeg';
	$im = @imagecreatefromjpeg($_GET['img']);
}

header($type);

// 失敗
if(!$im) {

	//空の画像
	$im  = imagecreatetruecolor(200, 200);			// 200x200
	$bgc = imagecolorallocate($im, 255, 255, 255);		// 背景色(白)
	$tc  = imagecolorallocate($im, 0, 0, 0);		// 文字色(黒)

	imagefilledrectangle($im, 0, 0, 200, 200, $bgc);	// 背景を塗る

	// メッセージ
	// (5,5) は座標
	imagestring($im, 1, 5, 5, 'Error loading', $tc);

}
else {

	imagealphablending($im, false);
	imagesavealpha($im, true);

}

imagepng($im);
imagedestroy($im);

?>


画像は自分で用意するので、mime タイプは拡張子で決定しています。

結果のチェック

うまくいっているかどうかは投稿すれば解りますが、Twitter に投稿せずに確認するには、Twitter のチェックページを使用します

Card validator

補足事項

世の中のこの手の情報は、Facebook とともに記述されている事が多いですが、Seesaa で Facebook の OGP で記事別画像を実現するには相当の技術的知識が必要なので最初からあきらめたほうがいいです。その理由は、Facebook 用のメタ要素は必ず HEAD 要素内に書く必要があるのに対して、Seesaa では、その情報を用意するのに、通常では BODY 要素内に書かざるを得ないからです。

がんばれば、実現できますが、相当の準備をもって臨まないと HTML が壊れてしまいますし、実現することによって発生する弊害の対応も発生するのでおすすめできません。

※ 記事タイトルは、Seesaa でも HEAD 内で変数を指定できます
<% if:page_name eq 'article' -%>
<meta property="og:type" content="article" />
<meta property="og:title" content="<% extra_title %>" />
<meta property="og:site_name" content="サイト名">
<meta property="og:locale" content="ja_JP" />
<% /if -%>




Seesaa独自タグ簡易リファレンス

posted by lightbox at 2016-01-25 04:18 | Seesaa プログ管理支援 | このブログの読者になる | 更新情報をチェックする

2016年01月15日


NAVER に問い合わせた『バグ』が五日経って対応されて返事が来ました。


前の記事

NAVER さんが問題を認めて修正してくれました。という事で『バグ』という表現を行います。

▼ 以前


▼ 対応後



▼ 問い合わせた内容
添付画像の部分の昔のコメント部分で かめこぉxxさん の画像が外部の終了あるいは危険なサイト(loda.jp)なので、画像が取得できない理由で facebook ボタンがいつまでも表示されず、かつロードしっぱなしの状態が続きます。

コメント部分を削除していただきたいのですが。
▼ 返って来た内容 ---------------------------------------------------- NAVERをご利用いただき、誠にありがとうございます。 NAVERヘルプセンターです。 お問い合わせくださいました件について、ご案内させていただきます。 このたびは、ご案内が遅れましたことを深くお詫び申し上げます。 また、弊社サービスをご利用いただく際に、 ご迷惑をお掛けしてしまい、誠に申し訳ございません。 頂戴しました情報をもとに、弊社にて調査を行いましたところ、 同様の現象を確認いたしました。 ご連絡いただきました現象につきましては、 現在修正対応が完了しておりますので、 お手数ではございますが、再度お試しいただき、 お客さまの問題が解決となるか ご確認くださいますようお願いいたします。 問題が解決されない場合は、 度々お手数ではございますが再度ご連絡くださいませ。 引き続きNAVERまとめをよろしくお願いいたします。 他にもご不明な点やお気づきの点などございます際には、 お気軽に以下《返信用URL》より、ご連絡くださいますよう、 お願いいたします。 このたびは、お忙しい中、お問い合わせくださいまして 誠にありがとうございました。 ---------------------------------------------------- とても丁寧です。丁寧すぎるくらい。それだけに『同様の現象』にはすこし『カチン』と来ました。書いた本人は無意識の表現でしょうが( 当然対応者と返事書く人は別ですから )、クレーム内容に対して以前からの自分の中の印象がこんなところで出ているのでしょう。 『同様の現象』では無く、『ご指摘の現象』が正しいです。単に、技術不足を起因とするページ表示のトラブルですから。Facebook のボタンも無事復活しました。( Facebook のボタンは仕様的に一番面倒くさくて問題になる事があります) 普段泣きたくなるような対応に毎日追われてるんでしょうね。 関連する記事( 問い合わせ ) NAVER の古いコメント部分がバグって、Facebook のボタンは表示されないわ、ロードしっぱなしだわ・・・。なので問い合わせした
posted by lightbox at 2016-01-15 21:12 | WEBサービス | このブログの読者になる | 更新情報をチェックする

2016年01月13日


フォント : msgothic.ttc を分解し、3種類の ttf を作成して利用する方法

msgothic.ttc には、3種類のフォントが収められていますが、なんらかのフォント関係のソフトウェアで利用するには、ttf に変換する必要があります。
例えば、TCPDF で MSフォントを埋め込まないで PDF に出力するには、msgothic.ttc を分割してからそれぞれのフォント用のデータを作ってプログラム内で使用する必要があります
TCPDF 内にある cid0jp.php 内の $name の値を 日本語のMSフォント名で書き換え(SHIFT_JIS で保存)て、TCPDF 内から cid0jp で参照する方法もありますが、それだと半角の文字ピッチが狂う可能性が高いです。 MS ゴシック MS Pゴシック MS UI Gothic ※ 勝手に加工して再利用するのはいけませんが、フォントを知る為には有効です
msgothic.ttc を取得するには、エクスプローラで Fonts フォルダに入って、3種類のいずれかのフォントを右クリックしてメニューより『コピー』してから保存したいフォルダで貼り付けます
変換方法 その方法は、まず UniteTTC のページより UniteTTC.zip をダウンロードして、中にあるコマンドプロンプトアプリケーションである、UniteTTC.exemsgothic.ttc を引数にして実行します。
>UniteTTC.exe msgothic.ttc
そうすると、以下の3つのファイルが作成されます
msgothic003.TTF
msgothic001.TTF
msgothic002.TTF
これがそれぞれの MS ゴシックファイルです 関連する記事
posted by lightbox at 2016-01-13 15:29 | PHP + PDF | このブログの読者になる | 更新情報をチェックする

2016年01月10日


NAVER の古いコメント部分がバグって、Facebook のボタンは表示されないわ、ロードしっぱなしだわ・・・。なので問い合わせした



かなり前からおかしかったんですが、きっちり原因調べてみようと Google Chrome のデベロッパーツールで該当部分を見ると、コメント欄が参照している画像が、すでに終了したサービス(loda.jp)の上に、その URL にアクセスすると、Google Chrome がブロックするという、面倒くさい内容でした。

NAVER のコメントサービスは昔運用されていましたが、今は残骸だけが残っており、自分のコメントは消せるようですが、他人のコメントはどうにもならないっぽいです。
▼ これが現物です。


▼ 問い合わせた内容
添付画像の部分の昔のコメント部分で かめこぉxxさん の画像が外部の終了あるいは危険なサイト(loda.jp)なので、画像が取得できない理由で facebook ボタンがいつまでも表示されず、かつロードしっぱなしの状態が続きます。

コメント部分を削除していただきたいのですが。
その後2時間ほどで、いったんの返答が返って来ましたが、27時間経過しても対応がされた気配はありません。 ▼ 返って来た内容 ---------------------------------------------------- ご連絡いただきました件につきまして、 現在、担当部署にて確認させていただいております。 ご案内する準備が整い次第、早急にご連絡させていただきます。 大変心苦しいかぎりでございますが、 今しばらくお待ちいただけますようお願い申し上げます。 少しでも早く結果をお伝えできますよう、努めてまいりますので、 何卒ご理解ご了承のほどお願いいたします。 このたびは、ご多忙のなかご連絡くださいまして、 誠にありがとうございました。 ---------------------------------------------------- とまあ、至極一般的な状況なんですが、きちんと対応するんでしょうかね。昔 Google なんかは、バグを問い合わせた時はトンチンカンな返答返って来たしなぁ・・・・。担当部署ってのがクセもんな気がします。だいたい技術系は一般顧客ナメてる事が多い気するし、現実的に言っても、こちらが技術者とは想定しないもんね。 関連する記事( その後 ) NAVER に問い合わせた『バグ』が五日経って対応されて返事が来ました。
posted by lightbox at 2016-01-10 17:47 | WEBサービス | このブログの読者になる | 更新情報をチェックする

2016年01月03日


Android Studio : Intel の HAXM と System Image を最新にしたら、installation failed since the device possibly ... というエラーが出ました

▼ こういうダイアログが出ました。( たぶん System Image が原因だと思いますが )

( Stack overflow )

原因はいろいろあるようですが、自分の今回の場合の対処は、仮想デバイスの RAM を増やす事で対応できました。



HAXM を更新する前までは、RAM は 400 に足りなかったはずですが、ほぼデフオルトで動作していた記憶があります。このダイアログは Android Studio 側ですが、エミュレータ側ではシステム領域が足りないというメッセージが出ていたのですが、アプリを削除しても変わる事が無く、RAM の変更で対処しました。


この際、Java のバージョンを最新 ( Java8 Update 66 )にしたのですが、関係無く、その代わりにコントロールパネルに Java の表示がされないというトラブルに遭遇し( コントロールパネルから更新するとそうなりました )、結果的にはダウンロードして更新する事によって元に戻りました

もし、それでも表示されない場合は、jre のフォルダ内の bin の中に javacpl.exe があるのでそれを実行するとコントロールパネル用のアプリが起動されます。 


posted by lightbox at 2016-01-03 03:45 | Android Studio 2 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり