SurfaceViewの勉強を開始した

( ノ゚Д゚)こんにちわ

明日のCoderetreat Fukuiのために少し描画の勉強をしてみました。

画像のような感じでグリッドを表示するだけのものです。

large

丸め誤差も何も考えずに作っているため、グリッド数を多くするとバグります∑(゚д゚lll)
※練習目的だったのでfloatで値を管理せずintで管理する雑仕様です。

ソースに関しては、ある程度完成したら公開する予定です。

最近はforも拡張forを使うためか<=なところを<と書いてグリッドの最後の線が足りない?あれ?的な恥ずかしいことをしていました。

通常のfor文

[java]
for (int i = 0; i < 5; i++) {
// 処理
}
[/java]

拡張for文

[java]
List<String> list = new ArrayList<String>();
for (String str : list) {
// 処理
}
[/java]

そのままクラスを使える拡張forが便利すぎて通常forを使用していなかったのが原因です。

もう明日が勉強会当日ですが、当日の記事も書く予定ですので写真の撮り忘れがないようにしないとな(∩´∀`)∩

Coderetreat Fukuiに参加してきます!

( ノ゚Д゚)こんにちわ

2月23日(土)にプログラマのための練習、学習なるものが開催されるようですので参加してきます!

概要はこちらを参照ください。

※すでに満員なので、参加したい方はキャセル待ちになっている状態です。

 

概要にある設計、テストに興味があり参加しますが、Coderetreatって何?状態です。本当にごめんなさい。

最悪の自体に備えて、お菓子スポンサー的な行動が出来るように、買い込んできました(´∀`)(笑)

 

実際にCoderetreatって何をするの?ってことで一昨年東京で開催されたというレポートを読んでみることにしました。

 

ふむふむ・・・

なるほど

要は、ライフ・ゲームを複数回のコーディングをペアで開発して、次のセッションの時は相方を代えてつつ前回のコードは破棄しておく。

よくわからない部分があるな・・・。

コード破棄はするけど、改良して1から作り直すのはOKなのかな。

 

そしてライフゲームとは、なんぞや?


ライフゲームとは生命の誕生や死を計算機上でシミュレーションするゲームです。点が生命を表し、 生命は過疎や過密によって死にます。また適当な条件で繁殖します。 ゲームとはいっても目的などはなく、ただ眺めるのが基本です。 いろいろな形ではじめてみると、ちょっと想像できないような変化が楽しめます。

ルール

世界は碁盤の目状のマスで構成されます。 各マスは生命がいる、いないで黒と白に色分けされます。 次の世代には以下のルールで生命が誕生します。

生命のいないところには周囲にちょうど3個の生命がある場合に新しく生命が誕生します。

生命がいるところは、周囲に2個、または3個の生命がいる場合に、そのまま生命が残ります。 そうでない場合には死んでしまいます。

ルールを変えてみたり、2種類以上の性質の異なる生命を考えてみたりすれば、 より複雑な生態系をシミュレートすることもできます。


(´・д・)ほう。

有名なゲームのようだな。当日楽しみにしていよう!

 

ではお休みなさいノシ

ServiceのBindについて

( ノ゚Д゚)こんにちわ

今回はServiceのBindについて簡単にお話します。

Androidにバックグラウンドで動くサービスというプロセスがあり、バックグラウンドで

動いているためアプリ画面に処理結果などを直接反映することができません。

※Intentで投げたり方法としてはあります。

しかし!そのサービスとアプリ画面(Activity)を関連づけるbindServiceなるものを使えば簡単に処理結果を表示することができます。

SampleBindService ← 超簡単なサンプルソース

サービスを関連づけるポイントは4つ

  1. ActivityとServiceのinterfaceとなるaidlを作る
  2. Serviceでbindされたときにinterfaceのインスタンスを返す
  3. ActivityとServiceで接続が成功したら、Serviceから受け取ったインスタンスを変数へ格納する
  4. AndroidManifest.xmlにサービスを設定する

以上の4点をすることで動きます。

超簡単なサンプルを見ていただくと40行くらいしか書いていないですが動きます。

「1.」から簡単に説明します。

[java highlight=”4″]
package com.heibon.app.sample.bindservice;

interface IJoinBindService {
String joinText(String text1, String text2);
}
package com.heibon.app.sample.bindservice;

interface IJoinBindService {
String joinText(String text1, String text2);
}
[/java]

aidlのパッケージ名とインターフェースとしてのメソッド名を記載します。

ファイル名には、必ず「.aidl」とつけてください!←これ重要です

次に「2.」のインスタンスを返す処理です。

[java firstline=”9″ highlight=”9,20″]
private final IJoinBindService.Stub _Stub = new IJoinBindService.Stub() {
@Override
public String joinText(String text1, String text2) throws RemoteException {
// 文字列を結合して返す
return text1 + text2;
}
};

@Override
public IBinder onBind(Intent intent) {
// Stubのインスタンスを返す
return _Stub;
}
[/java]

ハイライトにしていある9行目のインスタンスをバインドされた時に20行目で返すという処理です。

「3.」の処理は以下で。

[java firstline=”57″ highlight=”66,69″]
_ServiceConnection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
_IBind = null;
_IsBind = false;
}

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
_IBind = IJoinBindService.Stub.asInterface(service);
}
};
_IsBind = bindService(new Intent(getApplicationContext(), JoinService.class), _ServiceConnection, BIND_AUTO_CREATE);
[/java]

69行目でサービスのバインドをして、66行目でServiceとの接続が出来たのでインスタンスを変数へ格納しています。

 

あとはボタンを押された時の処理を書くだけです。

[java firstline=”40″ highlight=”45″]
public void onClick(View arg0) {
if (_IsBind) {
String text1 = _Et1.getText().toString();
String text2 = _Et2.getText().toString();
try {
String result = _IBind.joinText(text1, text2);
_TvResult.setText(result);
} catch (RemoteException e) {
e.printStackTrace();
_TvResult.setText("ERROR");
}
}
}
[/java]

ボタンが押されたら45行目のようにサービスから受け取ったインスタンスを使用してサービスに処理してもらい、計算結果を受け取っています。

 

実装自体は簡単ですが、分からない点がありましたらコメントを残してください。

では(つ∀-)オヤスミー

Windows8のシャットダウンについて

( ノ゚Д゚)こんにちわ

Windows8にアップした自宅PCですが、Windows8からシャットダウンの場所が変わったのか使いづらい!!!

シャットダウン

調べてみるとこちらに方法が載っていました。

上記の通り「Alt+F4」でも出来るのですが、フォーカスがディスクトップに向いていないと画像のシャットダウン画面が出てこないのでVBScriptでシャットダウンのボタンを作ってみました。

vbsのソースは以下で。

[java]
dim objShell
set objShell = CreateObject("shell.application")
objshell.ShutdownWindows
set objShell = nothing
[/java]

※ファイル名は「shutdown.vbs」にしています。

シャットダウンボタン

シャットダウンのアイコンにしたいのですが、スクリプトファイルなのでショートカットを作成しアイコンを変更します。

ショートカット

※ディスクトップ → 右クリック → 新規作成 → ショートカット作成

ショートカットが作成できたら、ショートカットのプロパティのショートカットタブの中にあるアイコンの変更を選択して、アイコンを変更してください。

これでディスクトップから簡単にシャットダウン出来ます( ・´ー・`)

SyntaxHighlighter Evolvedなるものを入れてみた

( ノ゚Д゚)こんにちわ

先輩からのホモチョコしかもらってない平凡です。

悲しくなんてありません(´・ω:;.:…

タイトルのとおり、本日よりSyntaxHighlighter Evolvedというソースコードを綺麗に簡単に表示できるプラグインを入れてみました。

プラグインの検索で、すぐに出てきます。

サンプルとして昨日のリダイレクトでページを飛ばすHTMLのソースを表示します。
4行目のメタタグで1秒後に指定URLへ飛ばすという処理をしているのでハイライトにします。

[html highlight=”4″]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head>
<title>Apache HTTP Server Test Page powered by CentOS</title>
<meta http-equiv="refresh" content="1 ; URL=http://heibon.net/blog/">
</head>
<body>
<h1>移動します</h1>
</body>
</html>
[/html]

確認してみたところちゃんと表示されてるっぽい☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

プラグインで簡単にできるって素晴らしいですな。

移行作業が進まない(笑)

ブログをFC2から、VPSに移動作業をせずに気がつくと他のことをしちゃってます∑(゚Д゚)!!

Chromeさんのアドレスバーにドメインを打ち込むとリダイレクトでブログに行くようにしました。

↓で試せます。

heibon.net

また、固定ページに自己紹介のページを作成しました。

画像と文字を横に並べるだけで一苦労・・・。

Web系は苦手意識があるせいか難しいですね(´ε`;)ウーン…

金沢のAWS勉強会に行ってきたよ!

こんにちわ。
へいへいぼんぼんな日常を送ってる平凡です。
先週の2月2日(土)に金沢でAmazon Web Serviesの勉強会に行ってきました!!
そう
041

 

 

 

 
これ、みんな大好きアマゾンさんです。
親に「またアマゾンから箱届いてるよ」って言われるくらい親しみを持っています(*´з`)
全然関係ないけど、のんびり下道で金沢まで行こうと思ったのが悪かったのかETCを持っていかず
片道3時間かかっちゃいました(;´・ω・)
まじアホですわ
AWS勉強会の募集ページはこちら
※リンク切れてたら教えてください
講師の方はAmazon Web Services ブログにも凛々しい顔写真がのっている堀内さんでした!
記念に一枚パシャッってるんですが、載せていいか聞くの忘れたため載せませんw
そして、タイムテーブルがこれです。短時間勉強会!
—————————
13:30 ~ 14:00 プレハンズオン AWS アカウント取得編
14:00 ~ 14:10 休憩
14:10 ~ 14:15 アジェンダ紹介・会場案内
14:15 ~ 16:30 ハンズオン (途中適時休憩を挟みます)
—————————
最初見たときに「アカウントまで作って3時間で構築終わる!?マジで!!!!」って全然サーバの知識ないくせにポチッちまいやした(笑)
簡単な内容については、こんな感じ
①AWSのアカウントがない人は、早く来て準備 ← 自分はここから
②講師紹介と会場紹介 ← 主催者、講師様ありがとうございました!!
③Webサーバの立ち上げ ← AMIというパッケージ?を用意してくださっていたのでボタンポチポチで完了
④鍵認証の設定 ← これもボタンポチポチ
⑤IPを設定してTeraTermでログイン ← スムーズに進んだ
⑥ドメインの設定方法の説明 ← 実際にドメイン取得しなかったので説明だけ
⑦DBの設定 ← ちょこっと設定が多いかも
⑧いつの間にかWebサイトが完成していた ← Σ(゚Д゚;≡;゚д゚)!?
⑨DBの切り離し ← RDSというものを使って設定。少しテンパってた
⑩Webサーバをもう1つ立ててロードバランサーによるアクセス負荷を分散する ← 超簡単
簡単に10個にまとめましたが、セキュリティポリシーの設定など他にもありました。
写真については、スピーディーだったため1枚しか撮れず・・・
037

 

 

 

 
後日、いただいた資料を基に、もう1度自分で構築をやってみようと思います。
Amazon さんからいただいた$25 のクーポンも有意義に使わせていただきます!

明けましておめでとうございます

遅くなりましたが、今年も一年よろしくお願いいたしますm(__)m
お休みは、鐘突や餅つきをしたくらいでグーたらしてました(*´∀`)幸せな年越しです。
新年ということで、新しいアプリを作り始めましたよ!
035

 

 

 

 

 
同じような有名どころあるんですが、しっくりこないので作っちゃいました。
他の画像とか、アイコンとか、どうしようかなーって状態です(´・ω・`)イケてるアイコンが欲しい。。。
中途半端のアプリが多くなってきましたが、いつも通りなので楽しく今年もやっていこうと思います。
よろしくね(・∀・)人(・∀・)