Asial Blog

Recruit! Asialで一緒に働きませんか?

バックエンド(プログラミング)の一覧

グラフ作成Webサービス「JSChart」をリリースしました。

カテゴリ :
バックエンド(プログラミング)
タグ :
グラフ
JavaScript
Tech
icon
グラフ作成WebサービスのJSChartをリリースしました。

このサービスは、ウェブページにタグを貼り付けるだけで簡単にグラフを表示することができます。

セッション値漏洩

カテゴリ :
バックエンド(プログラミング)
タグ :
セッション
漏洩
Tech
PHP
session
icon
意外と盲点!!
Webサイト同士のセッションの重複によるセッション値漏洩のメカニズムを解説します☆

PHP再発見

カテゴリ :
バックエンド(プログラミング)
タグ :
icon
森川です。

モンテカルロ法でπの計算を行うブログを見つけたので、それに触発されてそのスクリプトをPythonとRubyで書いてみました。

PHP
  1. <?php
  2. $iteration = 100000; 
  3. $precision= 1000000;
  4.  
  5. for ($i = 0; $i < $iteration; $i++) { 
  6.   $x = mt_rand( 0, 2 * $precision ) / $precision - 1; 
  7.   $y = mt_rand( 0, 2 * $precision ) / $precision - 1; 
  8.   if ((($x * $x) + ($y * $y)) < 1 ) {   
  9.     $hits++;
  10.   }  
  11. }

Python
  1. from random import *
  2. iteration = 100000
  3. i = 0
  4. hits = 0
  5. seed() 
  6. while i < iteration: 
  7.   i = i + 1
  8.   x = random()
  9.   y = random()
  10.   if (((x * x) + (y * y)) < 1) :
  11.     hits = hits + 1
  12. print "PI is about", (float)(4 * hits) / (float)(iteration), "
    \n"

Ruby
  1. iteration = 100000
  2. i = 0
  3. hits = 0
  4. while i < iteration
  5.   i = i + 1
  6.   x = rand()
  7.   y = rand()
  8.   if (((x * x) + (y * y)) < 1) :
  9.     hits = hits + 1
  10.   end
  11. end
  12. print "PI is about", (4*hits).quo(iteration) , "
    \n"

このスクリプト自体は全然難しくないので、すぐにPythonでもRubyでも書くことができましたが、そんな中でもPHPの良さを再発見することができました。
それは、マニュアルの見やすさです。

PHPのマニュアルは説明の中に出てくる関数にリンクが貼られていて、すぐその内容を調べることができます。また、関数の説明にサンプルがかなりの確率で付いているので、すごくスクリプトを書きやすいです。

それと、比較してみるとわかるのが、キャストの柔軟性です。特に変数に型がないので、割り算の結果を少数にするのが一番簡単です。

ただ、Pythonの書き方が非常に簡単で個人的には好きです。Rubyはオブジェクト指向な部分がこのスクリプトでも quo などに表れていますが、PHPに慣れていると少しとまどってしまいます。まぁJavaScriptと同じと考えると割とすんなり入っていけるかなぁとも思いますが。

さらに、PHPの実行スピードは意外と速い。以下は実行時間を計ってみた場合のログですが、PHPが一番速く、続いてPython、Rubyは for if や変数の代入などの処理が大きいようです。


  1. #time php monte.php
  2. PI is about3.14408
  3. real    0m0.221s
  4. user    0m0.214s
  5. sys     0m0.008s

  1. #time python monte.py
  2. PI is about 3.14396 
  3. real    0m0.262s
  4. user    0m0.255s
  5. sys     0m0.006s

  1. #time ruby monte.rb
  2. PI is about3.14556
  3. real    0m0.400s
  4. user    0m0.395s
  5. sys     0m0.005s

意外とPHPは遅いと思われているかもしれないけれど、計算や繰り返し処理単体では決して遅くはありません!!!

PostLBSを試してみました。

カテゴリ :
バックエンド(プログラミング)
タグ :
MapServer
バボちゃんもどき
この間の合宿で作ったモノを、Webにアップしました。


デモはこちら

地図上の適当な位置をダブルクリックすると、
中心からそこまでの道をたどっていってくれます。

PostLBS自体はちゃんと動いているのですが、
JavaScript側のコードが合宿中の勢いで作ったものなので、
けっこうバグがあります。
適当に時間見つけて直す予定ですので、現状はおもちゃ程度と思って見て頂ければ・・・。

現状、分かっているバグですが
ダブルクリック連打したりすると、迷子になってしまいますorz

(しかし、MapServerは結構いろいろな事ができるなぁ。)
他にも、こんな機能は実装できないの?等、ありましたらお気軽にご質問下さい。


ps. こういった仕事以外の自由なことをできる合宿は、なかなかいいなと実感しました。

Web+DB PRESS「Webマッピングのすすめ」

カテゴリ :
バックエンド(プログラミング)
タグ :
MapServer
icon
WEB+DB PRESS Vol.34(8月24日発売)に
「MapServerによるWebマッピングのすすめ第1回」を森川が執筆しています。

今回の記事では、データベースに格納された位置情報を地図として描画する方法等を紹介しています。
簡単な、Mapファイル(設定ファイル)の記述方法の解説と、
MapScriptからの地図描画方法をのせています。

地図日記データ取り込みました。

カテゴリ :
バックエンド(プログラミング)
タグ :
MapServer
icon
MapServerデモのスクロール地図に、地図日記2のデータを取り込みました。

新しいデモ、アップしました。

カテゴリ :
バックエンド(プログラミング)
タグ :
MapServer
アシアル
icon
MapServer開発キットのデモを追加しました。

デモページ

行ってきました、入門Webマッピング発刊記念イベント

カテゴリ :
バックエンド(プログラミング)
タグ :
MapServer
アシアル
icon
はじめまして。中川です。

MapServer開発キットをついにリリースすることができました。
アシアルも今後、Webマップサービスに関わっていくことになると思いますので、
よろしくお願いします。