SQLの窓

2013年09月29日


Visual Studio の『中かっこの改行オプション』



中かっこと書いてありますが、『波型かっこ』と言ったほうがピンと来るんですが・・・・

自分は、BASIC => COBOL => C言語 と育った古いプログラマなんで、どうしても if から { までを一つの単位と考えてしまいます。今は、実際にプロジェクタにソースコードを映したりしてるので、無駄な一行ははぶきたいという気持ちが大きいです。

なぜかデフォルトでは、{ は、一行を占領するようになっているので、最初から Visual Studio の人は疑問にも思わないでしょうけれど。

一応このへんは変更できるので。



posted by lightbox at 2013-09-29 21:37 | VS(C#) | このブログの読者になる | 更新情報をチェックする

2013年09月28日


Android 単純リストビューを google-gson で最速構築



このままでは使い物にはなりませんが、基本コードとしてのテンプレートになります。ですから、この後、ListView と Gson 用クラスををカスタマイズして項目を増やしていくだけでリストビューの部分の作成は容易になります。
package com.example.listviewobjectjson;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;

import com.google.gson.Gson;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class MyListview extends Activity {
	
	private Gson gson = null;
	private WebGet task;
	private JSON_STRING js;
	private ArrayAdapter<MyObject> basicAdapter;
	
	// ************************************************************
	// Android 用初期処理
	// ************************************************************
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_my_listview);

		Button button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// AsyncTask に引数を与えて呼び出す
				// 1) doInBackground, 2) onProgressUpdate, 3) onPostExecute
				task = new WebGet();
				task.execute( "http://10.0.2.2/lightbox/php_json/log.php" );
			}
		});
 	}
	
	// ************************************************************
	// Android 用非同期処理
	// ************************************************************
	private class WebGet extends AsyncTask<String, String, String> {
		
		// ここは使っていません
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
		}
		
		// *******************************************************
		// UI スレッド側の処理 ( 引数は JSON 文字列 )
		// *******************************************************
		@Override
		protected void onPostExecute(String result) {
			// UI スレッドとして処理される
			System.out.println(result);

			// gson インスタンス
			gson = new Gson();
			
			// JSON を クラスインスタンスに変換
			js = gson.fromJson(result,JSON_STRING.class);
			
			// js.item は List<MyObjecyt>
			basicAdapter = new ArrayAdapter<MyObject>(
					MyListview.this,
					R.layout.textview,
					js.item
			);
			
			// リストビューにアダプタをセット
			ListView listView = (ListView)MyListview.this.findViewById(R.id.listView1);
			listView.setAdapter(basicAdapter);			

		}

		// *******************************************************
		// 非同期スレッドの呼び出し
		// *******************************************************
		@Override
		protected String doInBackground(String... aurl) {

			Log.i("MyListview2:","開始");
			String json_string = "";

			try {

				// 引数の URL を使用して実行
				URL url = new URL(aurl[0]);
				// 接続オブジェクト( getInputStream をする為のもの )
				HttpURLConnection http = (HttpURLConnection)url.openConnection();
				http.setConnectTimeout(30000);
				http.setReadTimeout(30000);
				http.setRequestMethod("GET");
				
				// 以下読み込み3セット
				InputStream i_stream = http.getInputStream();
				// UTF-8 でリーダーを作成
				InputStreamReader i_stream_reader = new InputStreamReader(i_stream, "UTF-8");
				// 行単位で読み込む為の準備   
				BufferedReader b_reader = new BufferedReader(i_stream_reader);
				
				// 行の一括読みこみ
				String line_buffer;   
				// BufferedReader は、readLine が null を返すと読み込み終了 
				while ( null != (line_buffer = b_reader.readLine() ) ) {   
					// コマンドプロンプトに表示   
					json_string += line_buffer;
				}
	 
				// 後処理
				b_reader.close();
				i_stream_reader.close();
				i_stream.close();

				http.disconnect();
			}
			catch (Exception e) {
				e.printStackTrace();
			}
			
			// JSON 文字列を onPostExecute に対して送る
			return json_string;
		}

	}	
	
	// ************************************************************
	// GSON で使う為の JSON 文字列の構造を定義したクラス
	// ************************************************************
	private class JSON_STRING {
		List<MyObject> item;
	}

	private class MyObject {
		String text;
		
		// 単純リストビューなので、toString で 内容を返すようにしておく
		public String toString() {
			return this.text;
		}
	}
	
	// ************************************************************
	// メニュー( 未使用 )
	// ************************************************************
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_my_listview, menu);
		return true;
	}
}


関連する記事

Android をテストするのにほんの少し楽になるかもしれないクラス
( このクラスでもう少しコードがすっきりします )



posted by lightbox at 2013-09-28 23:19 | Android | このブログの読者になる | 更新情報をチェックする

2013年09月27日


9月27日10時頃、Google Chrome でのみ AdSense の表示がおかしくなりましたが・・・

クッキーを全て削除すると元へ戻りました。

ログイン状態の保存とかあるので、複数の PC でいろいろ試してみましたが、結局 CTRL+SHIFT+DEL で『全て』を削除したほうが無難なようです。F12 からのリソースのクリアでもうまく行ったようですが、結局意図せぬクッキー削除が発生していたので・・・。

なんか、広告の右肩の表示ってこんなだったでしょうか? だとしたら、この更新とともに起きた不具合かもしれません。現象としては、主に最初に表示された通常広告が表示されませんでした。(突然起きています)

AdSense は、広告なんで一般の方にはなんの支障も無いですが、利用されている方にとったら、ちょっと(かなり?)びっくりする現象です。


※ なんか、テキスト広告がかっこよくなってます?



posted by lightbox at 2013-09-27 22:49 | 記録 | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり