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月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月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 | このブログの読者になる | 更新情報をチェックする

2016年01月02日


Google MAP API が 1日に 25,000 ビューを超えると表示される画面



この表示は、某100均 の店舗検索画面です。この画面は、一瞬地図が表示された後この表示に変わりました。ただ、このページは検索結果のページで、元のページでも地図が表示されるのですが、そこは表示されていました。

そこでソースを見てみると、元のページでは apiキーが設定されていたので、正しく課金されているのだと思います。しかし、検索結果では apiキーが無いのでこのような表示になっているものと思われます。

つまり、一般的なページではこのような表示になり、表示を継続したければ apiコンソールで課金処理をする事によって復帰するのでしょう。


このサイトは地図の一日の使用量を声ました。このサイトの作成者である場合は、詳細についてこちらの生地をごらん下さい
この文章のリンク先は、こちら(英文)です。 25000ビューを超えると、1000ビュー毎に50セント( 0.5ドル )とあります。
タグ:Google Map google
posted by lightbox at 2016-01-02 00:09 | 記録 | このブログの読者になる | 更新情報をチェックする
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 終わり