ページ: << 1 ... 4 5 6 7 8 9 10 11 12 13 14 >>

SE勉強会レポート (2008/10/19)

パーマリンク 2008/10/20 21:14:47 著者: おみう
カテゴリ: SE勉強会レポート

第15回高蔵寺SE勉強会レポートです。

<宿題&コーディング品評会>
お題:この場所の裏側はどこ?
「GoogleMaps上の任意の位置をクリックすると、その場所の地球の裏側の地図を表示するようにしてください。」という宿題でした。

今回はCakePHPではなく、普通のPHPで作りました。

index.php(一部修正)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=(Google Maps API Key)"
      type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(35.2653, 137.0428), 17);
      }
      
      GEvent.addListener(map, 'click', function(overlay, point) {
        if (point) {
          if (point.x > 0) {
            var x = point.x - 180;
          } else {
            var x = point.x + 180;
          }
          var y = point.y * -1;
          window.open('http://~/reverse.php?x=' + x + '&y=' + y, 'reverse');
        }
      });
    }
    //]]>
    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 500px; height: 300px"></div>
  </body>
</html>

reverse.php(一部修正)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=(Google Maps API Key)"
      type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    function load() {
      var x = <?php echo $_GET['x']; ?>;
      var y = <?php echo $_GET['y']; ?>;
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(y, x), 10);
        var marker = new GMarker(new GLatLng(y, x));
        map.addOverlay(marker);
      }
    }
    //]]>
    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 500px; height: 300px"></div>
  </body>
</html>

地図上の任意の位置をクリックすると、新しいウィンドウが開き、「地球の裏側の地図」が表示されます。
特にこれといった工夫はしておりません。
index.phpのほうで、「地球の裏側」の緯度・経度の計算をしています。


<開発 BakeSaleを触ってみよう>
CakePHP1.2で開発されたBakeSaleをインストールして、ちょっと使ってみました。

少々ミスがあったものの、何とかインストールしてみました。
せっかくですので、「支払い方法」をカスタマイズしてみようと思ったのですが、いまいちよくわかりませんでした。
「代引き」とか「銀行振り込み」を組み込みたかったです。
クレジットカードを持っていない or オンラインでクレジットカードを使うのが不安という人も多いので、代引きは必須だと思います。


<ブログ発表>
最近ホットな「Google ストリートビュー」の記事と、それに関連する大学のレポートを発表しました。

このレポートは、「自分の好きな内容で小論文を書いて、日本語小論文 評価採点システム(JESS)にかけてみよう」という授業のために書いたものです。
JESSというのは、小論文の読みやすさ・論理構成・内容などを評価してくれる、画期的なシステムです。
どうやら、Perlで作られているようです。
詳しい仕組みをもっと調べてみたいです。

最近ホットな「Google ストリートビュー」

パーマリンク 2008/10/18 10:37:46 著者: おみう
カテゴリ: Webサービス

ある授業でGoogle ストリートビューに関するレポートを書いた後に、やたらとGoogle ストリートビューに関するニュースを見かけるようになりました。

(参考URL)
「Googleストリートビュー」町田市議会が国に法規制の検討求める意見書
特集ワイド:グーグル「ストリートビュー」 「町並みくっきり」の功罪(上)
特集ワイド:グーグル「ストリートビュー」 「町並みくっきり」の功罪(下)

このサービスでまず面白いのが、普通の乗用車が道路を走行して写真撮影していることです。
Googleの割には、やや原始的な気がします。
僕の住んでいるところでは、サービスは開始していませんが、すでにカメラを取り付けた「撮影カー」を目撃したことがあります。
近いうちに僕の住んでいる地域でもサービスが提供されると思います。

やはり問題となるのは、プライバシーにかかわる問題です。
(この問題を大学の授業のレポートで論じました。)
一応顔などにはぼかしを入れているようですが、まだまだ不十分です。
家の中なども、普通に覗き込める状態になっているので、あまりいい気分にはなりません。
下手すると犯罪にも使われる可能性もあります。

とは言うものの、ヴァーチャル散歩を楽しめたり、いわゆる「面白画像」を発見できたりするので、ユニークなサービスだとは思います。

アコースティックライブ♪

パーマリンク 2008/10/14 00:15:15 著者: おみう
カテゴリ: 安藤裕子

安藤裕子さんのアコースティックライブのチケット(オフィシャル先行予約)が当たりました!
名古屋のしらかわホールです。

普通のライブには2回行きましたが、アコースティックは初めてです。

ただ、この日(木曜日)は午後6時まで授業があるので、急いで会場に駆け込むことになりそうです。
また、この次の日はセンター試験の準備で休講のようです。

SE勉強会レポート (2008/10/5)

パーマリンク 2008/10/06 20:14:27 著者: おみう
カテゴリ: SE勉強会レポート

例によって、第14回高蔵寺SE勉強会レポートです。


<宿題&コーディング品評会>
宿題の準備 ~FlashDevelopをインストールしてみた~で触れたとおり、CakePHPとFlashを連携させて何か作ろうという宿題でした。

CakeConnect 0.2というものを利用します。

まずは、CakePHP側のソースコード。

<controllers/pages_controller.php>

<?php
class PagesController extends AppController
{
    var $uses = array('Bbs');
    
    function display(){
        // 書き込み処理
        if (!empty($this->data['Bbs'])) {
            $this->Bbs->save($this->data);
        }
        
        $data = $this->Bbs->find('all');
        $this->set('data',$data);
    }
}

<views/pages/display.ctp>

<?php
foreach ($data as $i):
    echo $i['Bbs']['name'] . '(' . $i['Bbs']['message'] . ')' . "\n";
endforeach;


<データベース(テーブル名:bbs)>

create table bbs (
id serial not null primary key,
name text not null,
message text not null
);


続いては、CakeConnect側の準備。
以下のようなmxmlファイルを作ります。
CakeConnect 0.2のページにある、サンプルのアーカイブを流用すると楽です。
(長すぎて見づらいです。ごめんなさい。)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initApp()" width="500" height="450">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import flash.display.*;
			import flash.text.*;
			import net.hogepiyo.cake.*;
			import net.hogepiyo.cake.events.*;
			
			private var server:CakeConnect;
			
			private function initApp():void {
				this.server = new CakeConnect();
				/*
					通信結果を受け取るクロージャを設定する
				*/
				this.server.fault = this.fault;
				this.server.result = this.result;
				
				/*
				    クロージャを設定しない場合
				    CakeConnectからカスタムイベントが発行されるため
				    addEventListenerで拾うこともできる。
				    
				    this.server.addEventListener(CakeResultEvent.RESULT, this.hogeHandler);
				*/
				
				/* 
					通信中に操作をロックするDisplayObjectを指定する。
					この場合、Application全体が操作不能になる。
				*/
				this.server.lock = this;
			}
			
			//SWXConnecterの場合、dataの型はString以外の可能性があるため注意
			private function result(data:String):void {
				bbs_body.text = data;
			}
			
			private function fault(data:String):void {
				Alert.show(data, "通信失敗");
			}
			
			private function run(connecter:String):void {
			    var args:Object = null;
				/*
					CakePHPのルートディレクトリと
					アクセスするコントローラを指定する。
				*/
				this.server.url = "http:// … /flash_bbs/";
				this.server.controller = "pages";
				
			    /*
			        コネクタとアクセスするアクションを指定し、
			        アクションへ渡す引数をserver.call()へ渡して通信開始
			    */
				switch(connecter) {
					case "display":
						this.server.connecter = new URLConnecter();
						this.server.action = "display";
						/*
							コネクタの設定(以下は全てデフォルト値のため、設定不要)
							
							this.server.connecter.setting = {
						        timeout: 30, //タイムアウトする秒数
								format: "text", //xml, e4xなど
								method: "POST"
							}
						*/
					
						/*
							GET or POSTでデータを送る場合
							POSTに指定するとコントローラの$this->params[form]へ、
							GETに指定するとは$this->params[url]へデータが格納される。
							
						*/
						args = {"data[Bbs][name]":  namae.text, "data[Bbs][message]": message.text}
						
						/*
							その他通信方法
							
							コントローラの$this->dataへデータを格納させる場合
    						args = {"data": "arg"}
    						
							$this->dataへCakePHPのフォーム風にデータを格納させる場合
							args = {"data[Model][column]": "arg1", "data[Model][column2]": "arg2"}
							
    						URL形式でデータを送信する場合 (/controller/action/arg1/arg2)
							※日本語は文字化けする可能性があるため注意。
							args = ["arg1", "arg2"]
						*/
						break;
				}
				this.server.call(args);
			}
			
		]]>
	</mx:Script>
	<mx:Panel width="100%" height="100%" title="FlashでBBS" horizontalAlign="center">
	<mx:Form>
	    <mx:Label text="Flashで作った簡易BBSです。" width="100%" fontSize="13" fontWeight="bold"/>
	    <mx:FormItem label="お名前" width="100%">
	        <mx:TextInput width="100%" id="namae"/>
	    </mx:FormItem>
	    <mx:FormItem label="メッセージ" width="100%">
			<mx:TextInput width="100%" id="message"/>
		</mx:FormItem>
        <mx:HBox width="100%" horizontalAlign="right">
	        <mx:Button label="送信" click="this.run('display')"/>
        </mx:HBox>
	</mx:Form>
	<mx:Text id="bbs_body">
	</mx:Text>
	</mx:Panel>
</mx:Application>

掲示板です。CakePHPが出力するテキストをFlash内に埋め込んでいます。
下の図のような感じになります。
文字化けするらしいので、日本語はできないようです。


宿題に引き続き、発表でした。
僕は準備していなくて発表できませんでした。ごめんなさい。
一応ネタ(CakePHPで作った小学校クラス会サイト)は考えていたので、次の機会には必ず発表します。

コードリーディングでは、BakeSaleのコードを読みました。
なかなか高性能です。ソースコードを理解するのが大変ですが、勉強になります。


<おまけ>
パンダちゃんの送別会のついでに、僕の誕生日パーティーを開いてもらいました。
本当にありがとうございます!
一六社の近くにある旬家亭という素敵なレストランでごちそうをいただきました。
僕は20歳になりましたので、合法的に飲酒できるようになりました。
ワインもいただきましたが、渋いです。
味覚はまだお子様のようです…

20歳になったついでに(?)、ブログの左側のプロフィールを更新しました。

宿題の準備 ~FlashDevelopをインストールしてみた~

パーマリンク 2008/10/03 23:30:29 著者: おみう
カテゴリ: 北乃きい, Web技術

今日は少し暖かかったので、北乃きいさんが宣伝していた「マックフルーリー キャラメルマキアート」を食べてきました。
おいしかったです!「きいちゃんスマイル」が0円なら僕は毎日マクドナルドに通ってもいいです。
(でも、最近「スマイル0円」の表示を見なくなりました)

前置きが長くなりましたが、高蔵寺SE勉強会の宿題のために「Flex 3 SDK」と「FlashDevelop3.0.0」をインストールしました。
メモ書き程度ですが、インストールの方法を紹介したいと思います。
[参考]http://sothis.blog.so-net.ne.jp/2008-03-26

  1. Flex 3 SDKをダウンロード、解凍。
    c:\flex_sdk_3 などに解凍するとよい。
  2. FlashDevelop3.0.0をダウンロード、インストール。
  3. このままだと日本語が文字化けするので、参考ページで紹介されているとおりに対策を施したほうがよい。

    \FlashDevelop\Settings\ScintillaNET.xmlのglobalsセクションにあるdefault-fontを「MS ゴシック」もしくは「Terminal」に変更、default-font-sizeを10に変更

  4. ToolsからProgram Settingsのダイアログを開き、Plugins→AS3ContextのFlex SDK LocationにFlex 3 SDKのパスを設定。


フリーにしてはすばらしいソフトです。
宿題に関してですが、たいした物は作っていませんが、FlashとCakePHPを連携させることはできました。

<< 1 ... 4 5 6 7 8 9 10 11 12 13 14 >>

2018年1月
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Name:おみう

某国立大学文学部の学生。
英語学(生成文法など)を勉強している。

安藤裕子(歌手)と北乃きい(女優)のファンであり、安藤裕子のライブによく行っている。

子どもと遊ぶサークルに所属しているが、サークル内では「ヒゲ」(←子どもにつけられた)と呼ばれている。

サークル以上に、某予備校の模試監督員アルバイトに精を出しており、模試監督ネタがブログで連載になりつつある。

文系学生にしてはパソコンにかなり精通しており、高蔵寺SE勉強会で勉強をしている。


詳しいプロフィールを見る?

メールを送る?

検索

XMLフィード

16ブログ     powered by b2evolution