- ランプの中身(Ruby on Railsのシステム開発)
- ランプの中身(Ruby on Railsのシステム開発)では、株式会社ケイビーエムジェイのRuby on Railsエンジニアが蓄積したノウハウを公開しています。Ruby on Railに関する技術解説や実践的なノウハウなど、開発現場の技術に則したコンテンツを随時追加していきます。 初心者の方でもわかりやすい技術解説を心がけています。リクエスト、ご質問も受け付けいますので、ご気軽にコメントを記述して下さい。
< 遠隔地のチョロQを操縦する方法 with... | メイン | 社内SNSをiPhoneで快適に見るため... >
佐藤伸吾です。
今回はRubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarth上で表示してみました。以下、その仕組みについて詳しく解説していきます。

デモ動画
実際に動作している様子については、以下の動画をご覧下さい。
PaSoRi
PaSoRiとは、ソニーの非接触型ICカード「FeliCa」用の読み取り・書き込み機のことです。今回は「RC-S320」という機種を使用しました。
libpasori
libpasoriというライブラリが公開されており、これを用いれば、PaSoRiからの各種データ取得が可能です。
Mac上にてlibpasoriを使用したい場合、以下のページが参考になります。
libusb
libpasoriはlibusbも使用しますので、インストールして下さい。
% port search libusb
libusb devel/libusb 0.1.12 Library
providing access to USB devices
% port variants libusb
libusb has the variants:
universal
% sudo port install libusb
テストプログラム
試しにC言語でテストプログラムを書いてみましょう。
単にデータを読み出すだけであれば、以下のようなプログラムでOKです。
#include
#include "libpasori.h"int main(void)
{
pasori *p;
felica *f;
uint8 d[16];p = pasori_open(NULL);
pasori_init(p);f = felica_polling(p, 0xfe00, 0, 0);
felica_read_without_encryption02(f, 0x170f, 0, 0, d);printf("%d¥n", d[14]*256+d[15]);
pasori_close(p);
return 0;
}
Suicaデータのフォーマット
Suicaデータのフォーマットについては
Ruby で Suica を覗いてみる
を参照してみて下さい。
rubyラッパーを書く
rubyからpasoriの機能を利用する為に、ラッパーを書きます。
詳細についてはRuby で PaSoRi 使ってみるを参照してみて下さい。
require 'dl/import'module Pasori
extend DL::Importable
dlload '/usr/local/lib/libpasori.dylib'typealias 'uint8', 'unsigned char'
typealias 'uint16', 'unsigned int'
#typealias 'uint16', 'unsigned short int'# libpasori.h
extern 'pasori* pasori_open(char*)'
extern 'void pasori_close(pasori*)'
extern 'int pasori_send(pasori*,uint8*,uint8,int)'
extern 'int pasori_recv(pasori*,uint8*,uint8,int)'POLLING_ANY = 0xffff
POLLING_SUICA = 0x0003
POLLING_EDY = 0xfe00SERVICE_SUICA = 0x090f
SERVICE_EDY = 0x170f# libpasori_command.h
extern 'int pasori_init(pasori*)'
extern 'int pasori_write(pasori*,uint8,uint8)'
extern 'int pasori_read(pasori*,uint8,uint8)'
extern 'felica* felica_polling(pasori*,uint16,uint8,uint8)'
extern 'int felica_read_without_encryption02(felica*,int,int,uint8,uint8*)'
end
module Pasori
class << self
def felica_raw_values systemcode, servicecode, little_endian = false
values = []
b = Array.new(4).to_ptr
psr = pasori_open ""
pasori_init psr
flc = felica_polling psr, systemcode, 0, 0
i = 0
while felica_read_without_encryption02(flc, servicecode, 0, i, b) == 0
row = b.to_a('I')
data = ""
row.size.times do |j|
if little_endian
4.times { |k| data += sprintf "%02x", (row[j].to_i >> (8 *
k)) & 0xff }
else
data += sprintf "%08x", row[j].to_i & 0xffffffff
end
end
yield data if block_given?
values << data
i += 1
end
pasori_close psr
values
end
end
end
require 'pasori'
Pasori.felica_raw_values Pasori::POLLING_SUICA, Pasori::SERVICE_SUICA,
true do |data|
puts data
end
路線・駅コード
路線・駅コードについては、路線・駅コード一覧からExcelファイルをダウンロードし、CSV形式で保存しておきます。
駅名から緯度経度を調べる
駅名から緯度経度を調べる為にGoogle Geocoderを使用しました。
GoogleMapsを利用したHTMLを生成する
erbを用いて、HTMLを生成します。GoogleMapsはJavaScriptから制御します。詳細についてはGoogle Mapsの基礎などを参照してみて下さい。
<%
require 'pasori'def Pasori.parse_suica_raw_value data
d = "%016b" % data[8, 4].hex
{
:type => data[0, 2],
:date => Time.local(d[0, 7].to_i(2) + 2000, d[7, 4].to_i(2), d[11, 5].to_i(2)),
:in => data[12, 4],
:out => data[16, 4],
:yen => data[20, 2].hex + (data[22, 2].hex << 8),
}
endrequire 'station'
stations = Station.read('StationCode.csv.utf8')
list = []
Pasori.felica_raw_values Pasori::POLLING_SUICA, Pasori::SERVICE_SUICA, true do |data|
d = Pasori.parse_suica_raw_value datastation_in = nil
station_out = nillist << []
list.last << d[:date]
stations.each do |s|
if s.area_cd.hex != 2 and s.line_cd.hex
== d[:in][0,2].hex and s.station_cd.hex == d[:in][2,2].hex
station_in = s
list.last << s
end
endstations.each do |s|
if s.area_cd.hex != 2 and s.line_cd.hex
== d[:out][0,2].hex and s.station_cd.hex == d[:out][2,2].hex
station_out = s
list.last << s
end
endlist.last << d[:yen]
end%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script
src="http://maps.google.co.jp/maps?file=api&v=2&key=hogehoge"
type="text/javascript"
charset="utf-8">
</script><style type="text/css">
#mymap {
position: absolute;
left: 0;
height: 400px;
width: 400px;
}
#list {
margin-left: 400px;
}</style>
<script type="text/javascript">
var map;
onload = function(){
map = new GMap2(document.getElementById("mymap"));
map.setCenter(new GLatLng(35.6984, 139.7732), 13);
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addControl(new GMapTypeControl());<% list.each do |inout| %>
setMarkers('<%= inout[1].station_name %>駅');
setMarkers('<%= inout[2].station_name %>駅');
<% end %>
}
onunload = GUnload;
onresize = function() { map.checkResize(); }var geocoder = new GClientGeocoder();
function moveTo(place){
geocoder.getLatLng(place, moveToThePlace);function moveToThePlace(latlng){
if(latlng){
map.panTo(latlng);
}else{
}
}
}function setMarkers(place){
geocoder.getLocations(place, setMarkersToThePlaces);function setMarkersToThePlaces(locs){
if(locs.Status.code == G_GEO_SUCCESS){
for(var i=0; i<locs.Placemark.length; i++){
var point = locs.Placemark[i].Point;
var lng = point.coordinates[0];
var lat = point.coordinates[1];
var latlng = new GLatLng(lat,lng);
var mk = new GMarker(latlng);
map.addOverlay(mk);
}
}else{
}
}
}
</script>
</head>
<body>
<h1>乗車履歴表示</h1>
<form onsubmit="moveTo(this.place.value); return false;">
<input type="text" size="40" id="place" />
<input type="submit" value="move" />
</form>
<div id="mymap" style="width:400px; height:400px;"></div>
<div id="list">
<table border="1">
<% list.each do |inout| %>
<tr>
<td><%= inout[0].strftime('%Y/%m/%d') %></td>
<td><%= inout[1].company_name %></td>
<td><%= inout[1].line_name %></td>
<td><a href="#" onclick="moveTo('<%= inout[1].station_name %>駅')">
<%= inout[1].station_name %></a></td><td>-></td>
<td><%= inout[2].company_name %></td>
<td><%= inout[2].line_name %></td>
<td><a href="#" onclick="moveTo('<%= inout[2].station_name %>駅')">
<%= inout[2].station_name %></a></td>
<td><%= inout[3] %>円</td>
</tr><% end %>
</table>
</div></body>
</html>
GoogleEarthを利用して乗車履歴を表示する
乗車履歴を元にKMLというXMLファイルを生成し、Google Earthに読みこませれば、3Dツアーを再生することができます。KMLファイルの詳細についてはGoogle Earth KMLのレシピを参照してみて下さい。
require 'pasori'def Pasori.parse_suica_raw_value data
d = "%016b" % data[8, 4].hex
{
:type => data[0, 2],
:date => Time.local(d[0, 7].to_i(2) + 2000, d[7, 4].to_i(2), d[11, 5].to_i(2)),
:in => data[12, 4],
:out => data[16, 4],
:yen => data[20, 2].hex + (data[22, 2].hex << 8),
}
end$stderr.print "乗車履歴読み取り中"
require 'station'
stations = Station.read('StationCode.csv.utf8')
list = []
Pasori.felica_raw_values Pasori::POLLING_SUICA, Pasori::SERVICE_SUICA, true do |data|
d = Pasori.parse_suica_raw_value datastation_in = nil
station_out = nillist_ele = []
list_ele << d[:date]
stations.each do |s|
if s.area_cd.hex != 2 and s.line_cd.hex == d[:in][0,2].hex
and s.station_cd.hex == d[:in][2,2].hex
station_in = s
list_ele << s
end
endstations.each do |s|
if s.area_cd.hex != 2 and s.line_cd.hex == d[:out][0,2].hex
and s.station_cd.hex == d[:out][2,2].hex
station_out = s
list_ele << s
end
endlist_ele << d[:yen]
next unless station_in and station_out
list << list_ele
$stderr.print '.'
end$stderr.print "\n"
require 'rexml/document'
require 'open-uri'
require 'nkf'puts '<?xml version="1.0" encoding="UTF-8"?>'
puts '<kml xmlns="http://earth.google.com/xml/2.0">'
puts '<Document>'
puts '<name>kinshicyou.kml</name>'
puts '<visibility>1</visibility>'
puts '<open>1</open>'
puts '<desctiption>desctiption</desctiption>'def output_point(lon, lat)
puts '<visibility>1</visibility>'
puts '<Style>'
puts '<IconStyle>'
puts '<Icon>'
puts '<href>root://icons/palette-3.png</href>'
puts '<x>96</x>'
puts '<y>160</y>'
puts '<w>32</w>'
puts '<h>32</h>'
puts '</Icon>'
puts '</IconStyle>'
puts '</Style>'
puts '<Point>'
puts '<extrude>1</extrude>'
puts '<altitudeMode>relativeToGround</altitudeMode>'
puts '<coordinates>' + lon + ',' + lat + ',50</coordinates>'
puts '</Point>'end
def add_heading
$heading += 90
$heading = $heading % 360
enddef output_placemark(g, inout)
address = inout[1].station_name + '駅(東京)'
point = g.getPoint(address)
if point
lon = point[0]
lat = point[1]name = inout[0].strftime('%Y/%m/%d')
name += ' '
name += address
name += ' '
name += '乗車'puts '<Placemark>'
puts '<name>' + name + '</name>'
puts '<desctiption>description</desctiption>'
puts '<LookAt>'
puts '<longitude>' + lon + '</longitude>'
puts '<latitude>' + lat + '</latitude>'
puts '<range>200</range>'
puts '<tilt>60</tilt>'
puts '<heading>' + $heading.to_s + '</heading>'
add_heading()
puts '</LookAt>'output_point(lon, lat)
puts '</Placemark>'
endaddress = inout[2].station_name + '駅(東京)'
point = g.getPoint(address)
if point
lon = point[0]
lat = point[1]name = inout[0].strftime('%Y/%m/%d')
name += ' '
name += address
name += ' '
name += '下車'puts '<Placemark>'
puts '<name>' + name + '</name>'
puts '<desctiption>description</desctiption>'
puts '<LookAt>'
puts '<longitude>' + lon + '</longitude>'
puts '<latitude>' + lat + '</latitude>'
puts '<range>200</range>'
puts '<tilt>60</tilt>'
puts '<heading>' + $heading.to_s + '</heading>'
add_heading()
puts '</LookAt>'output_point(lon, lat)
puts '</Placemark>'
endend
require 'geocoder'
key = 'hogehoge'
format = "xml"
g = Geocoder.new(key, format)$stderr.print "緯度経度取得中"
$heading = 0;
list.reverse.each do |inout|
output_placemark(g, inout)
$stderr.print '.'
end$stderr.print "\n"
$stderr.print "経路情報描画中"
puts '<Placemark>'
puts '<Style>'
puts '<LineStyle>'
puts '<color>99ff0000</color>'
puts '<width>6</width>'
puts '</LineStyle>'
puts '</Style>'
puts '<LineString>'
puts '<altitudeMode>relativeToGround</altitudeMode>'
puts '<coordinates>'list.reverse.each do |inout|
address = inout[1].station_name + '駅(東京)'
point = g.getPoint(address)
if point
lon = point[0]
lat = point[1]
puts sprintf("%s,%s,50", lon, lat)
endaddress = inout[2].station_name + '駅(東京)'
point = g.getPoint(address)
if point
lon = point[0]
lat = point[1]
puts sprintf("%s,%s,50", lon, lat)
end$stderr.print '.'
endputs '</coordinates>'
puts '</LineString>'
puts '</Placemark>'
$stderr.print "\n"puts '</Document>'
puts '</kml>'$stderr.print "処理終了!!\n"
まとめ
いかがでしたか?前回のGainerや今回のPaSoRiといったハードウェアをRubyから制御することによって、アイディア次第で面白い仕組みを比較的簡単に作ることが可能になります。
次回もRubyと何かを組み合わせて面白い仕組みを紹介する予定です。よろしければこのブログのRSSも購読してみて下さい。次回をお楽しみに!!
トラックバック URL
トラックバック一覧
≫ Suicaデータから乗車履歴をGoogleMapsで表示する
ランプの中身(Ruby on Railsのシステム開発) Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する http://do... [続きを読む] posted from ぶるべあの株と旅行日記 2008.03.25 21:51≫ This is one of the web's most interesting stories on Wed 26th Mar 2008
These are the web's most talked about URLs on Wed 26th Mar 2008. The current winner is .. [続きを読む] posted from purrl.net |** urls that purr **| 2008.03.26 11:07≫ Python: PaSoRiでSuicaの履歴を読み出す
Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示するって記事でPaSoRiなるものを知った。Edyもオサイフケータイも使ってないし、F... [続きを読む] posted from 良いもの。悪いもの。 2008.03.28 20:03≫ adipex no prescription
Site - very comprehensive and meticulous from all points of view, it [続きを読む] posted from adipex without prescription 2008.06.15 05:45≫ what is the generic for adipex
One isn't necessarily born with courage, but one is born with potential. Without courage, we cannot... [続きを読む] posted from adipex no prescription 2008.06.15 05:52≫ buy cheap adipex
More or less nothing seems worth doing, but oh well. I just don't have anything to say now. <a hr... [続きを読む] posted from adipex hurt me 2008.06.15 07:44≫ Stacy Kibler Nude
Manhunt Gay <a href="http://etoqomyjubujato1492008.blogspot.com/">Manhunt Gay</a> [続きを読む] posted from Stacy Kibler Nude 2008.07.23 02:34≫ Lisa Rinna Nude
Adult Flintstone <a href="http://uremef3902008.blogspot.com/">Adult Flintstone</a> [続きを読む] posted from Lisa Rinna Nude 2008.07.23 03:22≫ American Porn Thumbs
Sex Swing Videos <a href="http://www.google.com/notebook/public/04443973645862032114/BDSIKQgoQr9u93L... [続きを読む] posted from American Porn Thumbs 2008.07.23 04:10≫ Wendi Mclendoncovey Nude
Lesbian And Gay Sex <a href="http://www.google.com/notebook/public/04443973645862032114/BDQxBQwoQrdu... [続きを読む] posted from Wendi Mclendoncovey Nude 2008.07.23 04:57≫ Anna Nicole Smith Sex Movies
Manhunt Gay <a href="http://www.google.com/notebook/public/04443973645862032114/BDSMKQgoQs9u93LQj">M... [続きを読む] posted from Anna Nicole Smith Sex Movies 2008.07.23 05:44≫ Amateur Tiener
American Porn Thumbs <a href="http://www.google.com/notebook/public/04443973645862032114/BDQPCQwoQq9... [続きを読む] posted from Amateur Tiener 2008.07.23 06:27≫ Truro Mayor Gay Pride
Sex Porn Free Denmark <a href="http://www.freewebtown.com/quxe311/Sex_Porn_Free_Denmark.html">Sex Po... [続きを読む] posted from Truro Mayor Gay Pride 2008.07.23 07:14≫ Extreme Sex Toys
Gay Male Porno Video Clip Previews <a href="http://www.freewebtown.com/wina1658/Gay_Male_Porno_Video... [続きを読む] posted from Extreme Sex Toys 2008.07.23 08:01≫ Teen Pov
Nude Anne Hathaway <a href="http://www.freewebtown.com/unohi3315/Nude_Anne_Hathaway.html">Nude Anne ... [続きを読む] posted from Teen Pov 2008.07.23 08:45≫ Gay Pig Sex
Bam Margera Sex Video <a href="http://www.freewebtown.com/ilo5377/Bam_Margera_Sex_Video.html">Bam Ma... [続きを読む] posted from Gay Pig Sex 2008.07.23 09:30≫ Paz Vega Nude
Free Nude Celbs <a href="http://www.freewebtown.com/acoha2555/Free_Nude_Celbs.html">Free Nude Celbs<... [続きを読む] posted from Paz Vega Nude 2008.07.23 10:17≫ Kelsey Michaels Porn Videos
Rare Nude Celebrities <a href="http://www.freewebtown.com/idebo4567/Rare_Nude_Celebrities.html">Rare... [続きを読む] posted from Kelsey Michaels Porn Videos 2008.07.23 11:01≫ Amture Video Gay
Sly Cooper Porn <a href="http://www.freewebtown.com/ate4515/Sly_Cooper_Porn.html">Sly Cooper Porn</a... [続きを読む] posted from Amture Video Gay 2008.07.23 11:47≫ Lesbian Adult Movie Clips
Brandy And Mr Whiskers Porn <a href="http://www.freewebtown.com/wozof4920/Brandy_And_Mr_Whiskers_Por... [続きを読む] posted from Lesbian Adult Movie Clips 2008.07.23 12:30≫ Cassie Nude
Adult Coloring Pages To Print <a href="http://www.freewebtown.com/acoha2555/Adult_Coloring_Pages_To_... [続きを読む] posted from Cassie Nude 2008.07.23 13:22≫ Nude Dwarfs
Lynda Carter Porn Pic <a href="http://www.freewebtown.com/ocir3456/Lynda_Carter_Porn_Pic.html">Lynda... [続きを読む] posted from Nude Dwarfs 2008.07.23 14:03≫ Sexy Teen Porn
Nude Sandee Westgate Galleries <a href="http://www.freewebtown.com/apiko8665/Nude_Sandee_Westgate_Ga... [続きを読む] posted from Sexy Teen Porn 2008.07.23 14:53≫ Laure Marsac Nude
Bbw Adult Nude Bbw Bubble Butt <a href="http://jejy4392008.blogspot.com/">Bbw Adult Nude Bbw Bubble ... [続きを読む] posted from Laure Marsac Nude 2008.07.23 15:41≫ Ayumi Kinoshita Nude
Gay Sex Clips <a href="http://hojyhabehon2602008.blogspot.com/">Gay Sex Clips</a> Calender Girls Nud... [続きを読む] posted from Ayumi Kinoshita Nude 2008.07.23 16:23≫ Male Ass Stuffing
Jacks Teen America <a href="http://jejy4392008.blogspot.com/">Jacks Teen America</a> Virtual Games F... [続きを読む] posted from Male Ass Stuffing 2008.07.23 17:04≫ Teen Nudist Pics
Adult Theaters Palm Springs <a href="http://wasypem4292008.blogspot.com/">Adult Theaters Palm Spring... [続きを読む] posted from Teen Nudist Pics 2008.07.23 17:52≫ The Gay Barbie Song
Deelishish Nude Pics <a href="http://edubuxehityfusim4782008.blogspot.com/">Deelishish Nude Pics</a>... [続きを読む] posted from The Gay Barbie Song 2008.07.23 18:31≫ Australian Girls Masterbating
African Goddess Nude <a href="http://www.google.com/notebook/public/02273371091365957191/BDRGDQwoQu-... [続きを読む] posted from Australian Girls Masterbating 2008.07.23 19:17≫ Grandad Sex
Artful Nudes <a href="http://www.google.com/notebook/public/02273371091365957191/BDQcKQgoQzfnp87Qj">... [続きを読む] posted from Grandad Sex 2008.07.23 19:59≫ Wclg Girls
Ketrin Teen Model <a href="http://www.google.com/notebook/public/02273371091365957191/BDQxBQwoQuejq8... [続きを読む] posted from Wclg Girls 2008.07.23 20:44≫ Lombok Gay
Youn Teen Porn <a href="http://www.google.com/notebook/public/02273371091365957191/BDQcKQgoQy_np87Qj... [続きを読む] posted from Lombok Gay 2008.07.23 21:28≫ Jamie Lynn Spears Fake Nude
Upskirt Fighting Girls <a href="http://www.google.com/notebook/public/02273371091365957191/BDRGDQwoQ... [続きを読む] posted from Jamie Lynn Spears Fake Nude 2008.07.23 22:13≫ Jessica Alba In The Nude
Artful Nudes <a href="http://www.google.com/notebook/public/02273371091365957191/BDSMKQgoQyfnp87Qj">... [続きを読む] posted from Jessica Alba In The Nude 2008.07.23 22:52≫ Adult Arkansas
Sybia Sex Tool <a href="http://www.google.com/notebook/public/02273371091365957191/BDSIKQgoQs-jq87Qj... [続きを読む] posted from Adult Arkansas 2008.07.23 23:34≫ Girls Sequined Beaded Ballet Flats
Simmone Mackinnon Nude <a href="http://www.google.com/notebook/public/02273371091365957191/BDQPCQwoQ... [続きを読む] posted from Girls Sequined Beaded Ballet Flats 2008.07.24 00:20≫ Gay Blacks On Whites
<a href="http://rollyo.com/Milf-Lessons-Po8670">Milf Lessons Porn Review Of Milflessons</a> <a href=... [続きを読む] posted from Gay Blacks On Whites 2008.07.24 02:52≫ Porn Animated Gifs
<a href="http://rollyo.com/Gay-Sperm-Cup1618">Gay Sperm Cup</a> <a href="http://rollyo.com/Beijing-M... [続きを読む] posted from Porn Animated Gifs 2008.07.24 03:38≫ Wild Orchids Adult
<a href="http://rollyo.com/Can-Sex-Offende6604">Can Sex Offenders Enter Mexico</a> <a href="http://r... [続きを読む] posted from Wild Orchids Adult 2008.07.24 04:23≫ Ballerina Halloween Costumes Adult
<a href="http://rollyo.com/Adult-Cell-Phon8316">Adult Cell Phone Graphics Downloads</a> <a href="htt... [続きを読む] posted from Ballerina Halloween Costumes Adult 2008.07.24 05:11≫ The Brady Bunch Xxx
<a href="http://rollyo.com/Girls-Set-Stock8238">Girls Set Stock Car Lionel</a> <a href="http://rolly... [続きを読む] posted from The Brady Bunch Xxx 2008.07.24 05:54≫ Micro G String Bikini
<a href="http://rollyo.com/Gay-Hangouts-In6343">Gay Hangouts In Salt Lake City</a> <a href="http://r... [続きを読む] posted from Micro G String Bikini 2008.07.24 06:40≫ Gay Hitcher
<a href="http://rollyo.com/Sex-Party-Galle1479">Sex Party Galleries</a> <a href="http://rollyo.com/S... [続きを読む] posted from Gay Hitcher 2008.07.24 07:21≫ Teenage Girl Bedroom Ideas
<a href="http://rollyo.com/Sex-Fetish-Stor1704">Sex Fetish Stories</a> <a href="http://rollyo.com/Nu... [続きを読む] posted from Teenage Girl Bedroom Ideas 2008.07.24 08:09≫ Sex And Fucking
<a href="http://rollyo.com/Bright-Eyes-Cit7573">Bright Eyes City Has Sex Mp3</a> <a href="http://rol... [続きを読む] posted from Sex And Fucking 2008.07.24 08:53≫ Erin Kelley Nude
<a href="http://rollyo.com/Adult-Massage-K3283">Adult Massage Keystone Fl</a> <a href="http://rollyo... [続きを読む] posted from Erin Kelley Nude 2008.07.24 09:35≫ Sex With Pig
<a href="http://rollyo.com/Jason-Cerbone-N2837">Jason Cerbone Nude</a> <a href="http://rollyo.com/Se... [続きを読む] posted from Sex With Pig 2008.07.24 10:18≫ Vanessa Hudgens Actual Nude Shot
<a href="http://rollyo.com/Bathhouse-Sex9426">Bathhouse Sex</a> <a href="http://rollyo.com/Sex-Offen... [続きを読む] posted from Vanessa Hudgens Actual Nude Shot 2008.07.24 11:01≫ Snail Fuck
<a href="http://rollyo.com/Sun-Tanned-Girl5510">Sun Tanned Girls</a> <a href="http://rollyo.com/Nude... [続きを読む] posted from Snail Fuck 2008.07.24 11:51≫ Hard Yaoi Pics Porn Hentai
<a href="http://rollyo.com/Pete-Wentz-Nude8707">Pete Wentz Nudes</a> <a href="http://rollyo.com/Flin... [続きを読む] posted from Hard Yaoi Pics Porn Hentai 2008.07.24 12:36≫ Miss Mina Bbw
<a href="http://rollyo.com/Pictures-Of-Nud6968">Pictures Of Nude Lita</a> <a href="http://rollyo.com... [続きを読む] posted from Miss Mina Bbw 2008.07.24 13:19≫ Blonde Girls With Blue Eyes
<a href="http://rollyo.com/Gay-Bathouses8460">Gay Bathouses</a> <a href="http://rollyo.com/Turd-Porn... [続きを読む] posted from Blonde Girls With Blue Eyes 2008.07.24 14:08≫ Men Fucking Cowboy Boot Fetish
<a href="http://rollyo.com/Daughter-Penetr1609">Daughter Penetrated Her Ass</a> <a href="http://roll... [続きを読む] posted from Men Fucking Cowboy Boot Fetish 2008.07.24 14:48≫ Sexy Nude Redheads
<a href="http://rollyo.com/Girls-Pooping-I3034">Girls Pooping In Their Panties</a> <a href="http://r... [続きを読む] posted from Sexy Nude Redheads 2008.07.24 15:34≫ San Antonio Gay Life
<a href="http://rollyo.com/Homemade-Stream8024">Homemade Streaming Porn</a> <a href="http://rollyo.c... [続きを読む] posted from San Antonio Gay Life 2008.07.24 16:17≫ Free Nude Pics Anna Kournakova
<a href="http://rollyo.com/Bancock-School-7747">Bancock School Boys Nude</a> <a href="http://rollyo.... [続きを読む] posted from Free Nude Pics Anna Kournakova 2008.07.24 17:01≫ Free Naked Teens
Young Sexy Teens <a href="http://uilypahy8312008.blogspot.com/">Young Sexy Teens</a> Russian Girls G... [続きを読む] posted from Free Naked Teens 2008.07.24 21:02≫ Nude Male Models
World Of Warcraft Porn <a href="http://euizisidyzypukon4132008.blogspot.com/">World Of Warcraft Porn... [続きを読む] posted from Nude Male Models 2008.07.24 21:44≫ Japanese School Girls
Free Lesbian Sex Movies <a href="http://www.google.com/notebook/public/08846020943471582394/BDSIKQgo... [続きを読む] posted from Japanese School Girls 2008.07.24 22:27≫ Jenny Mccarthy Nude
Download Free Porn <a href="http://www.google.com/notebook/public/08846020943471582394/BDRE-QwoQn97Y... [続きを読む] posted from Jenny Mccarthy Nude 2008.07.24 23:31≫ Free Female Celebs Nude
Big Girls Dont Cry <a href="http://www.google.com/notebook/public/08846020943471582394/BDQPCQwoQjd7Y... [続きを読む] posted from Free Female Celebs Nude 2008.07.25 00:11≫ Free Webcam Girls
Aunt Polly Sex <a href="http://rollyo.com/Aunt-Polly-Sex3326">Aunt Polly Sex</a> Tyra Banks Nude <a ... [続きを読む] posted from Free Webcam Girls 2008.07.25 00:59≫ Free Online Porn Movies
Emily Procter Nude <a href="http://rollyo.com/Emily-Procter-N5461">Emily Procter Nude</a> Amateur St... [続きを読む] posted from Free Online Porn Movies 2008.07.25 01:48この記事にコメントする
TOPICS
2008/06/25
「ZD Net Builder」の連載記事です。第四回は「Rubyでどう書く?:重複したRSSをまとめる」が掲載されました。
2008/05/30
「ZD Net Builder」の連載記事です。第三回は「Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する」が掲載されました。
2008/05/07
「ZD Net Builder」に連載を始めました。第二回は「Rubyでどう書く?:RubyでPDF履歴書を作成する」が掲載されました。
2008/04/24
「アットマーク・アイティ」に『 Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する』が掲載されました。
RoR最新ブログ一覧
カテゴリ
全体のRoR最新ブログ一覧
- Cybozuのスケジュールをmobileme経由でiPhone 3Gに取り込む
- 今週のRuby on Rails最新情報
- Rubyでどう書く?:RubyでWord文書を作成する
- タニタさんの「からだカルテ」を使ってみました
- iPhoneを確保しました
- Edge Railsの最新情報
- Rubyのセキュリティ脆弱性
- mysqlでレコードの中身を一括置換する方法
- 同じappでDBを使い分ける
- Rubyでどう書く?:重複したRSSをまとめる
- TABLEに直接データを入れる便利な方法
- 社内SNSをiPhoneで快適に見るためのCSSを書いてみた
- phpmyadminをセキュアにアクセスする方法
- Rubyプログラムの組み方から、Exeファイルの作成まで
- Ruby、Railsインストール for MacOSX
- will_paginageを使ってみた
- dmgファイルの作り方
- PHP携帯電話の機種情報取得
- Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する
- リファラでアクセス制限をしてみた。
- 奇妙な演算子
- RJSを用いて、日付プルダウンメニューを書き換える (2
- railsの実行モードの設定 RAILS_ENV
- postgresでのユーザ権限付与(psql, grant)
- ドロップダウンに簡単にオートコンプリート機能を追加する方法
- Vimの自動補完
- IE6 以前で float に指定した margin が 2 倍になる現象を解消する
- サーバ監視ソフトウェア「ganglia」を使ってみる
- 監視ツールcactiについて
- Rubyでどう書く?:RubyでPDF履歴書を作成する
- グラフを作ってみるか!?
- clearfixでfloat解除
- SELinux無効にしてみる
- Rubyのソースコードから HTML Helpを生成してみよう!
- IEでダイジェスト認証をかけるとエラーになった。
- muninのインストール 〜監視ツールって〜
- Rubyでどう書く?:連続した数列を範囲形式にまとめたい
- RJSを用いて、日付プルダウンメニューを書き換える
- Passenger (mod_rails for apache)での色んな設定値について調べてみた
- docomo の罠
- ローカルで動画変換をする方法
- MacOSにpostgreSQL 8.3をインストール
- Postgres8_3⇔8_1の性能比較してみました
- rake db:migrate すると undefined method `last' for {}:Hash と出る
- ケータイWebサイトに携わっている方へ
- MySQL最大バッファサイズの設定
- railsのand/orを使った機能
- Railsライクなフレームワーク「CakePHP」②
- エラー表示で意図しない改行を解消する−fieldWithErrors、ActionView::Base、field_error_proc
- [mysqlのベンチマーク]MyBenchの設定
- Rubyのコマンドライン引数と環境変数について(初心者向け)
- Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する
- 簡単&便利 Capistranoのススメ (導入編)
- Rails的コメントアウト
- 使えるvalidate一覧
- せっかくなので、Thin を使って実践
- Xenを用いてCentOS上に仮想CentOSを2つインストールする
- aptanaでrailsをデバッグ実行する
- empty?とblank?の違いって?
- ローカルでコマンドを打つとアスタリスクで囲まれたエラーが出る
- rubyの便利ツールirbをカスタマイズしてみた
- 実行モード "environment"設定の基本
- RadRails(Aptana)のショートカット
- JRubyを触ってみた
- mongrelとの戦い〜503エラー?mongrelが死んだってことさ…
- sshでrootログインの禁止
- database.ymlの設定方法
- Railsライクなフレームワーク「CakePHP」①
- Rails導入でRuby標準クラスへ追加される関数達(String編)
- Rubyのマニュアルを手軽に参照する方法
- railsで画像などファイルをアップロードする方法
- 遠隔地のチョロQを操縦する方法 with JavaScript, AJAX, Rails, Gainer, Webカメラ, and USTREAM.TV
- Ruby on Railsで作られたradMineのカスタマイズ1 ~インストール編~
- MacBook AirのレビューとLet's noteとの比較
- Rails プラグイン : CSS Graphsの使い方(そしてちょっとだけ改造)
- Railsの開発でscreenを使う理由
- ActiveRecordのconditionsを綺麗に書くTips2つ
- [Rails 2.0]起動時のファイルの読み込みの順番がわかった!
- RailsのActionMailer(Tmail)でドットの連続などのRFC違反している携帯メールアドレスに対応する
- スパムを消して消して、もう消しまくって こうなりました。
- Ruby on Railsでacts_as_paranoidを使い倒す
- fastladderをrailroadで図を作ってみる。
- [書評] 他言語開発経験者でも、初心者でも、本屋で「チラ見」して確認してみよう
- ヘルパーメソッド
- Ruby標準csv遅い
- Linux2.6系の脆弱性でroot権限奪ってみた
- railsで開発したダイエットサイトとそのソースコード
- fastladderを試してみました ~rails2.0~
- HeartBeatの設定
- Railsの手動インストール
- Railsで「Lost connection to MySQL server during query」に遭遇した場合の対策
- RadiantCMSのインストール(2)
- Linuxとかのbashで使えるショートカットキーをまとめた一覧
- 長い文字列をカットして表示するプログラム
- SLこまんどの設定
- Rails プラグイン : Rails Widgets >Tabnavの使い方
- Scaffoldはどこからくるの? 後編
- ローカルメールサーバーでRailsでのメール受信のテストを便利に
- HTMLエスケープ
- aptanaのインストールと使い方について
- railroadを用いたER図作成
- RailsでAmazon APIを利用する
- ちょっとしたスペルミスなどで、時間を無駄にした経験があるなら ( カラー表示で編集しやすく )
- ちょー入門、Webサーバ構築で知ってて損をしない用語(2)
- Ruby on Rails ってなになに?
- 最近!流行りの、「Ruby」 知ってますか?
- RubyGems って単語よく出てきますよね?
- CentOS5とaptanaを使ったWindows開発環境 1
- gemコマンドの紹介
- ちょー入門、Webサーバ構築で知ってて損をしない用語(1)
- こんな人がこのブログを書いて・・・
- RadiantCMSのインストール(1)
- RubyでActiveRecordを使わないでDBに接続する方法
- Railsのキャッシュ機能を用いて動的ページを静的ページにする方法を紹介
- Rails 2.0のセキュリティ面の変更点
- DRBDのインストール
- Rails プラグイン : ColumnCommentsの使い方
- Scaffoldはどこからくるの? 前編
- RMagickの使い方
- Ruby on Rails インストール for Windows
ssatoのアーカイブ
プロフィール
- ssato
- 佐藤伸吾(akio0911)です。2008/01からWeb業界に入りました。フィジカルコンピューティングやユビキタスコンピューティングに興味があります。





