|
|
- としはる やたけ
- 5 years ago
- Views:
Transcription
1 Working Effectively with Legacy tdiary Code using Cucumber and RSpec KAKUTANI Shintaro; Eiwa System Management,Inc.; Nihon Ruby-no-kai
2
3
4 pragprog.com
5
6
7 Working Effectively with Legacy tdiary code using Cucumber and Rspec
8 Working Effectively with Legacy tdiary code using Cucumber and Rspec
9 Working Effectively with Legacy tdiary code using Cucumber and Rspec
10 Working Effectively with Legacy tdiary code using Cucumber and Rspec
11 Working Effectively with Legacy tdiary code using Cucumber and Rspec
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 end eval( = params['#{key}']" ) # for 1.4 = = = = = = # for ruby 1.6.x support do p
31 end eval( = params['#{key}']" ) # for 1.4 = = = = = = # for ruby 1.6.x support do p
32
33 Photo by rla579:
34
35
36
37
38 end eval( = params['#{key}']" ) # for 1.4 = = = = = = # for ruby 1.6.x support do p
39
40 To me, legacy code is simply code without tests. Michael Feathers, Workin Effectively with Legacy Code
41
42
43
44
45
46
47
48 Photo by pfish:
49
50
51 class HelloApp def call(env) [200, {"Content-Type" => "text/plain"}, "Hello, Sapporo!"] end end require 'hello_app' run HelloApp.new $ rackup hello.ru
52
53
54
55 #!/usr/bin/env ruby # # index.rb $Revision: 1.35 $ # # Copyright (C) , TADA Tadashi <sho@spc.gr.jp> # You can redistribute it and/or modify it under GPL2. # BEGIN { $defout.binmode } $KCODE = 'n' begin if FileTest::symlink?( FILE ) then org_path = File::dirname( File::readlink( FILE ) ) else org_path = File::dirname( FILE ) end $:.unshift( org_path.untaint ) require = CGI::new conf = TDiary::Config::new(@cgi) tdiary = nil status = nil if %r[/\d{4,8}(-\d+)?\.html?$] and 'date' ) = [@cgi.redirect_url.sub( /.*\/(\d+)(-\d+)?\.html$/, '\1\2' )] status = CGI::HTTP_STATUS['OK'] end begin 'comment' ) then tdiary = "day.rhtml", conf ) 'date' ) date if /^\d{8}-\d+$/ =~ date then tdiary = "latest.rhtml", conf ) elsif /^\d{8}$/ =~ date tdiary = "day.rhtml", conf ) elsif /^\d{6}$/ =~ date then tdiary = "month.rhtml", conf ) elsif /^\d{4}$/ =~ date then tdiary = "month.rhtml", conf ) end 'category' ) tdiary = "category.rhtml", conf ) 'q' ) tdiary = "search.rhtml", conf ) else tdiary = "latest.rhtml", conf ) end rescue TDiary::PermissionError raise rescue TDiary::TDiaryError end tdiary = "latest.rhtml", conf ) if not tdiary begin head = { 'type' => 'text/html', 'Vary' => 'User-Agent' } head['status'] = status if status body = '' if /HEAD/i then head['pragma'] = 'no-cache' head['cache-control'] = 'no-cache' head ) else then body = conf.to_mobile( tdiary.eval_rhtml( 'i.' ) ) head['charset'] = conf.mobile_encoding head['content-length'] = body.size.to_s else require 'digest/md5' body = tdiary.eval_rhtml head['etag'] = %Q["#{Digest::MD5.hexdigest( body )}"] if ENV['HTTP_IF_NONE_MATCH'] == head['etag'] and /^GET$/i head['status'] = CGI::HTTP_STATUS['NOT_MODIFIED'] body = '' else head['charset'] = conf.encoding head['content-length'] = body.size.to_s end head['pragma'] = 'no-cache' head['cache-control'] = 'no-cache' end head['cookie'] = tdiary.cookies if tdiary.cookies.size > 0 head ) print body end rescue TDiary::ForceRedirect head = { #'Location' => $!.path 'type' => 'text/html', } head['cookie'] = tdiary.cookies if tdiary.cookies.size > 0 head ) print %Q[ <html> <head> <meta http-equiv="refresh" content="1;url=#{$!.path}"> <title>moving...</title> </head> <body>wait or <a href="#{$!.path}">click here!</a></body> </html>] rescue TDiary::NotFound then 'status' => CGI::HTTP_STATUS['NOT_FOUND'], 'type' else print "Status: 404 Not Found\n" print "Content-Type: text/html\n\n" end puts "<h1>404 Not Found</h1>" puts "<div>#{' ' * 500}</div>" end rescue Exception then 'status' => CGI::HTTP_STATUS['SERVER_ERROR'], 'type' else print "Status: 500 Internal Server Error\n" print "Content-Type: text/html\n\n" end puts "<h1>500 Internal Server Error</h1>" puts "<pre>" puts CGI::escapeHTML( "#{$!} (#{$!.class})" ) puts "" puts CGI::escapeHTML( $@.join( "\n" ) ) puts "</pre>" puts "<div>#{' ' * 500}</div>" end
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Programming is the art of doing one thing at a time. Michael Feathers, Workin Effectively with Legacy Code
72 RED GREEN Refactoring
73
74
75
76
77
78
79
80 SUMMARY
81
82
83
84
85
86
87 #!/usr/bin/env ruby require 'webrick'... class TDiaryDevelopmentServer... def = WEBrick::HTTPServer.new( :Port => 10080, :BindAddress => ' ', :DocumentRoot => TDIARY_CORE_DIR, :MimeTypes => tdiary_mime_types, :Logger => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG) = WEBrick::Log::DEBUG trap("int") } trap("term") WEBrick::HTTPServlet::CGIHandler, File.expand_path("index.rb", WEBrick::HTTPServlet::CGIHandler, File.expand_path("update.rb", TDIARY_CORE_DIR)) end... end if $0 == FILE TDiaryDevelopmentServer.run end
88
89 module TDiary... # # class Config # configuration class # class Config... private # loading tdiary.conf in current directory def = = {} eval( File::open( "tdiary.conf" ){ f f.read }.untaint, binding, "(tdiary.conf)", 1 ) # language = 'ja' begin...
90
91
92
93
94
95
96
97
98 Photo by whiteoakart:
99
100
101
102
103
104
105
106 module TDiary... class Config def self.tdiary_config_file_path( filename = "tdiary.conf" ) filename end... private # loading tdiary.conf in current directory def = = {} load_current_directory_conf... end def load_current_directory_conf eval( File::open( Config.tdiary_config_file_path ) { f f.read }.untaint, b, "(#{Config.tdiary_config_file_path})", 1 ) end...
107
108
109
110
111
112
113 # -*- coding: utf-8 -*- Given " tdiary.conf" = TDiaryDriver.configure do data_path File.expand_path( "../fixtures/just_installed/tdiary.conf", File.dirname( FILE )) end end... Given /(?: ) (.*)/ do end When /(.*) (?: ) / @response end...
114 class TDiaryDriver... def data_path(path) stub(tdiary::config).tdiary_config_file_path { path } end... def invoke(path) raw_result = StringIO.new begin stdin_spy = StringIO.new("")... # $stdin = stdin_spy... $stdout = raw_result # tdiary_cgi_path = File.expand_path(path, tdiary_base_dir) load tdiary_cgi_path ensure... # RSpce expectation = ResponseHelper.parse(raw_result.read) end
115 class TDiaryDriver... def data_path(path) stub(tdiary::config).tdiary_config_file_path { path } end... def invoke(path) raw_result = StringIO.new begin stdin_spy = StringIO.new("")... # $stdin = stdin_spy... $stdout = raw_result # tdiary_cgi_path = File.expand_path(path, tdiary_base_dir) load tdiary_cgi_path ensure... # RSpce expectation = ResponseHelper.parse(raw_result.read) end
116 stub(tdiary::config).tdiary_config_file_path { path } TDiary::Config.stub!(:tdiary_config_file_path). and_return { path }
117 Photo by thomasvignaud:
118
119
120
121
122
123
124
125
126
127
128 class TDiaryDriver... def data_path(path) stub(tdiary::config).tdiary_config_file_path { path } end... def invoke(path) raw_result = StringIO.new begin stdin_spy = StringIO.new("")... # $stdin = stdin_spy... $stdout = raw_result # tdiary_cgi_path = File.expand_path(path, tdiary_base_dir) load tdiary_cgi_path ensure... # RSpce expectation = ResponseHelper.parse(raw_result.read) end...
129
130 module Rack class TDiaryApp class << self def index new(tdiarydriver.index) end... end... def call(env) # req = Request.new(env) tdiary_conf = ::File.expand_path( "../../tdiary.conf", ::File.dirname( FILE )) driver { data_path tdiary_conf } driver.invoke end end end
131 ... use Rack::ShowExceptions use Rack::CommonLogger use Rack::Lint use Rack::Reloader use Rack::Static, :urls => ["/theme"], :root => parent_dir map "/" do run Rack::TDiaryApp.index end map "/index.rb" do run Rack::TDiaryApp.index end map "/update.rb" do run Rack::TDiaryApp.update end
132 ... module Rack app = ShowExceptions.new( CommonLogger.new( Lint.new( TDiaryApp.index))) Handler::CGI.run app end
133
134
135
136
137 Let s face it, working in legacy code is surgery, and doctors never operate alone. Michael Feathers, Workin Effectively with Legacy Code
138 github
139
140
3360 druby Web Who is translating it? http://dx.doi.org/10.1007/s10766-008-0086-1 $32.00 International Journal of PARALLEL PROGRAMING Must buy! http://dx.doi.org/10.1007/s10766-008-0086-1 toruby The
More information3360 druby Web Who is translating it? http://dx.doi.org/10.1007/s10766-008-0086-1 $32.00 International Journal of PARALLEL PROGRAMING Must buy! http://dx.doi.org/10.1007/s10766-008-0086-1 toruby LT Linux
More informationruby novice ruby novice ruby novice.
GitHub Ruby 2549 2017 3 1 1 3 2 4 2.1 ruby novice........................... 4 2.2.............................. 6 3 8 3.1 ruby novice....................... 8 3.2 ruby novice............................
More informationcomp -MYPEDIA Programing- Ruby 1 attr_accessor :< 1>, :< 2> class Car def = carname end attr_accessor :name end car = Car.ne
Ruby 1 attr_accessor :< 1>, :< 2> class Car def initialize(carname) @name = carname attr_accessor :name car = Car.new("car1") car.name = "car2" puts car.name attr_reader :< 1>, :< 2> class Car def initialize(carname)
More information¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ
2 : TCP/IP : HTTP HTTP/2 1 / 22 httpget.txt: http.rb: ruby http get Java http ( ) HttpURLConnection 2 / 22 wireshark httpget.txt httpget cookie.txt ( ) telnet telnet localhost 80 GET /index.html HTTP/1.1
More informationEmacs Ruby..
command line editor 27014533 2018 3 1 5 1.1................................... 5 1.2................................... 5 2 6 2.1 Emacs...................................... 6 2.2 Ruby.......................................
More information10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV
tutimura@mist.i.u-tokyo.ac.jp kaneko@ipl.t.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/sem3/ 2002 11 20 p.1/34 10/16 1. 10/23 2. 10/30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20
More information$ sudo apt-get install libavahi-compat-libdnssd-dev $ sudo apt-get autoremove nodejs $ wget http://nodejs.org/dist/latest/node-v7.6.0-linux-armv7l.tar.gz $ tar xzf node-v7.6.0-linux-armv7l.tar.gz $ sudo
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 1, 2 of 14 ( RD S ) I 1, 2 of 14 1 / 44 Ruby Ruby ( RD S ) I 1, 2 of 14 2 / 44 7 5 9 2 9 3 3 2 6 5 1 3 2 5 6 4 7 8 4 5 2 7 9 6 4 7 1 3 ( RD S ) I 1, 2
More informationKyosuke MOROHASHI
Practical Meta Programming on Rails Application @2013-12-17 Ruby 1 in MOROHASHI Kyosuke (@moro) Kyosuke MOROHASHI Aga toolbox Ruby " " Ruby http://www.amazon.co.jp/exec/obidos/asin/4048687158/morodiary05-22/ref=noism
More information15 Phoenix HTML 15.1 ModestGreeter RAVT web/router.ex web/router.ex : 12 scope "/", ModestGreeter do 13 pipe_through :browser get "/", TopCont
15 Phoenix HTML 15.1 ModestGreeter RAVT web/router.ex web/router.ex : 12 scope "/", ModestGreeter do 13 pipe_through :browser 14 15 + get "/", TopController, :index 16 get "/hello/:name", HelloController,
More informationExpress5800/320Fc-MR
7 7 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Pentium III Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0212: Keybord Controller Failed. : Press to resume, to setup
More information3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,
WEB DB PRESS Vol.1 79 3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200, http://www.postgresql.org/http://www.jp.postgresql.org/ 80 WEB DB PRESS
More informationwide94.dvi
14 WWW 397 1 NIR-TF UUCP ftp telnet ( ) WIDE Networked Information Retrieval( NIR ) vat(visual Audio Tool) nv(netvedeo) CERN WWW(World Wide Web) WIDE ISODE WIDE project WWW WWW 399 400 1994 WIDE 1 WIDE
More informationWLX202 操作マニュアル
WLX202 JA 2 3 4 5 6 7 1 2 8 3 9 10 11 1 2 3 12 1 2 3 4 13 1 2 3 14 1 2 3 4 15 1 2 16 3 17 1 2 3 18 1 2 3 19 1 2 20 3 4 21 1 2 22 3 4 23 1 2 24 1 2 3 25 1 2 26 3 27 1 2 28 3 4 29 5 6 30 1 2 3 31 4 32 1
More informationインターネットマガジン2003年3月号―INTERNET magazine No.98
1 http://www.cpan.org/ http://search.cpan.org/ http://www.cpan.org/ open(input,'in-file'); while(){ push (input,$_); } close(input); @output = sort @input; open(output,'>out-file'); forearch $i
More informationRuby演習テキスト1
Ruby言語 基礎演習 社会人技術者研修 2014年度 テキスト 社会人技術者研修 2014年度テキスト 2014.11 Ruby基礎演習 1 2014.11 2015.2.1 puts "Hello Ruby >ruby hello.rb ( リターン ) > ruby hello.rb Hello Ruby # はじめての ruby プログラム puts "Hello Ruby" > ruby
More informationつくって学ぶプログラミング言語 RubyによるScheme処理系の実装
Ruby Scheme 2013-04-16 ( )! SICP *1 ;-) SchemeR SICP MIT * 1 Structure and Interpretaion of Computer Programs 2nd ed.: 2 i SchemeR Ruby Ruby Ruby Ruby & 3.0 Ruby ii https://github.com/ichusrlocalbin/scheme_in_ruby
More informationclass Cpd MW = { 'C'=>12.011, 'H'=>1.00794, 'N'=>14.00674, 'O' => 15.9994, 'P' => 30.973762 } def initialize @comp = Hash.new attr_accessor :name, :definition, :formula # formula def composition @formula.scan(/([a-z]+)(\d+)/)
More information{:from => Java, :to => Ruby } Java Ruby KAKUTANI Shintaro; Eiwa System Management, Inc.; a strong Ruby proponent http://kakutani.com http://www.amazon.co.jp/o/asin/4873113202/kakutani-22 http://www.amazon.co.jp/o/asin/477413256x/kakutani-22
More informationExpress5800/R320a-E4/Express5800/R320b-M4ユーザーズガイド
7 7 障害箇所の切り分け 万一 障害が発生した場合は ESMPRO/ServerManagerを使って障害の発生箇所を確認し 障害がハー ドウェアによるものかソフトウェアによるものかを判断します 障害発生個所や内容の確認ができたら 故障した部品の交換やシステム復旧などの処置を行います 障害がハードウェア要因によるものかソフトウェア要因によるものかを判断するには E S M P R O / ServerManagerが便利です
More informationuntitled
30 callcc yhara ( ( ) (1) callcc (2) callcc (3) callcc callcc Continuation callcc (1) (2) (3) (1) (2) (3) (4) class Foo def f p 1 callcc{ cc return cc} p 2 class Bar def initialize @cc = Foo.new.f def
More informationtest.gby
Beautiful Programming Language and Beautiful Testing 1 Haskeller Haskeller 2 Haskeller (Doctest QuickCheck ) github 3 Haskeller 4 Haskell Platform 2011.4.0.0 Glasgow Haskell Compiler + 23 19 8 5 10 5 Q)
More informationExpress5800/320Fa-L/320Fa-LR
7 7 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Pentium III Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0212: Keybord Controller Failed. : Press to resume, to setup
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 13 of 14 ( RD S ) I 13 of 14 1 / 39 https://bit.ly/oitprog1 ( RD S ) I 13 of 14 2 / 39 game.rb ( RD S ) I 13 of 14 3 / 39 game.rb 12 ( ) 1 require "io/console"
More informationbdd.gby
Haskell Behavior Driven Development 2012.5.27 @kazu_yamamoto 1 Haskell 4 Mew Firemacs Mighty ghc-mod 2 Ruby/Java HackageDB 3 Haskeller 4 Haskeller 5 Q) Haskeller A) 6 7 Haskeller Haskell 8 9 10 Haskell
More information: gettoken(1) module P = Printf exception End_of_system (* *) let _ISTREAM = ref stdin let ch = ref ( ) let read () = (let c =!ch in ch := inp
7 OCaml () 1. 2. () (compiler) (interpreter) 2 OCaml (syntax) (BNF,backus normal form ) 1 + 2; let x be 2-1 in x; ::= ; let be in ; ::= + - ::= * / ::= 7.1 ( (printable characters) (tokens) 1 (lexical
More informationr1.dvi
Ruby 2009.9.7 1 ( ) --- ( ( ) ( ) 1 --- ( ) 1 ( ) (?) IT 7K( )?? ( ) ( )? IT ( ) --- ( ) 1 ( ) --- ( ) (?) 2-3% Top-Level ICT Professional 5% ICT Professional 10% 100% 50% 20% Devl. Experiment Adv. ICT
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 12 of 14 ( RD S ) I 12 of 14 1 / 35 https://bit.ly/oitprog1 ( RD S ) I 12 of 14 2 / 35 game.rb ( RD S ) I 12 of 14 3 / 35 game.rb 11 ( ) 1 require "io/console"
More informationN Express5800/R320a-E4 N Express5800/R320a-M4 ユーザーズガイド
7 7 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Pentium III Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0212: Keybord Controller Failed. : Press to resume, to setup
More informationExpress5800/R320a-E4, Express5800/R320b-M4ユーザーズガイド
7 7 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Pentium III Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0212: Keybord Controller Failed. : Press to resume, to setup
More information6 (1) app.html.eex 28 lib/nano_planner_web/templates/layout/app.html.eex 27 <footer> Oiax Inc <%= this_year() %> Oiax Inc. 29 </footer>
6 (1) of_today 6.1 Copyright 2017 lib/nano_planner_web/views layout_view.ex this_year/0 lib/nano_planner_web/views/layout_view.ex 1 defmodule NanoPlannerWeb.LayoutView do 2 use NanoPlannerWeb, view 3 +
More informationparser.y 3. node.rb 4. CD-ROM
1. 1 51 2. parser.y 3. node.rb 4. CD-ROM 1 10 2 i 0 i 10 " i i+1 3 for(i = 0; i
More information<Documents Title Here>
Oracle Application Server 10g Release 2 (10.1.2) for Microsoft Windows Business Intelligence Standalone Oracle Application Server 10g Release 2 (10.1.2) for Microsoft Windows Business Intelligence Standalone
More informationIntroduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool
Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool for developing software for embedded systems that
More informationWeb XXX.XXX.XXX.XXX - - [02/May/2010:12:52: ] "GET /url/url2/page2.htm HTTP/1.1" "http://www.domain.co.jp/url/url2/page1.htm" "(compatibl
Web Web-Site Analytics Fukuoka Financial Group, Inc. Mahiru Sunaga SAS Institute Japan Ltd. Kiyoshi Murakami (Combind log format) Apache Web 2 1 Web XXX.XXX.XXX.XXX - - [02/May/2010:12:52:55 +0900] "GET
More informationWordPress Web
0948011 1 1 1.............................. 1 2 WordPress....................... 2 3........................ 3 4........................ 4 2 4 1 Web......... 4 3 5 1 WordPress...................... 5 2..........................
More information8 4 end 5 6 private def message 7 'Hello' 8 end 9 end g = Greeting.new 12 g.hello $ ruby lib/lessons/greeting.rb Hello Ruby public method protec
8 Rails 8.1 PicoPlanner Ruby lib lessons $ mkdir -p lib/lessons lib/lessons greeting.rb lib/lessons/greeting.rb (New) 1 class Greeting 2 def hello 3 puts message 87 8 4 end 5 6 private def message 7 'Hello'
More informationVer.1 1/17/2003 2
Ver.1 1/17/2003 1 Ver.1 1/17/2003 2 Ver.1 1/17/2003 3 Ver.1 1/17/2003 4 Ver.1 1/17/2003 5 Ver.1 1/17/2003 6 Ver.1 1/17/2003 MALTAB M GUI figure >> guide GUI GUI OK 7 Ver.1 1/17/2003 8 Ver.1 1/17/2003 Callback
More informationMicrosoft Word - D JP.docx
Application Service Gateway Thunder/AX Series vthunder ライセンスキー インストール 手順 1 1.... 3 2. vthunder... 3 3. ACOS... 3 4. ID... 5 5.... 8 6.... 8 61... 8 62 GUI... 10 2 1. 概要 2. vthunder へのアクセス 方法 SSHHTTPSvThunder
More informationSCM (v0201) ( ) SCM 2 SCM 3 SCM SCM 2.1 SCM SCM SCM (1) MS-DOS (2) Microsoft(R) Windows 95 (C)Copyright Microsoft Corp
SCM (v0201) ( ) 14 4 20 1 SCM 2 SCM 3 SCM 4 5 2 SCM 2.1 SCM SCM 2 1 2 SCM (1) MS-DOS (2) Microsoft(R) Windows 95 (C)Copyright Microsoft Corp 1981-1996. 1 (3) C:\WINDOWS>cd.. C:\>cd scm C:\SCM> C:\SCM>
More information10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name = "" => "" > item.valid? => true valid? true false
10 (1) 16 7 PicoPlanner validations 10.1 PicoPlanner Web Web invalid values validations Rails validates validate 107 10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #
More information9iAS_DEV.PDF
Oracle9i Application Server for Windows NT 1.0.2.0.0 2001.2.1 1 1 PL/SQL...3 1.1...3 1.2 PL/SQL Web Toolkit...5 1.3 Database Access Descriptor...6 1.4 PL/SQL...8 1.5 PL/SQL...10 1.6 PL/SQL...12 2 SERVLET...13
More information¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè2²ó
2 2015 4 20 1 (4/13) : ruby 2 / 49 2 ( ) : gnuplot 3 / 49 1 1 2014 6 IIJ / 4 / 49 1 ( ) / 5 / 49 ( ) 6 / 49 (summary statistics) : (mean) (median) (mode) : (range) (variance) (standard deviation) 7 / 49
More informationlistings-ext
(6) Python (2) ( ) ohsaki@kwansei.ac.jp 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1
More informationWindows Cygwin Mac *1 Emacs Ruby ( ) 1 Cygwin Bash Cygwin Windows Cygwin Cygwin Mac 1 Mac 1.2 *2 ls *3 *1 OS Linux *2 *3 Enter ( ) 2
September 2016 1 Windows Cygwin Mac *1 Emacs Ruby 1 1.1 ( ) 1 Cygwin Bash Cygwin Windows Cygwin Cygwin Mac 1 Mac 1.2 *2 ls *3 *1 OS Linux *2 *3 Enter ( ) 2 ~/16:00:20> ls 2 2 ls ls -a ~/16:00:20> ls -a
More information25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble
25 II 25 2 6 13:30 16:00 (1),. Do not open this problem boolet until the start of the examination is announced. (2) 3.. Answer the following 3 problems. Use the designated answer sheet for each problem.
More informationRubyKaigi2009 COBOL
RubyKaigi2009 COBOL seki@druby.org 3360 Pragmatic Bookshelf druby Web $32.00 International Journal of PARALLEL PROGRAMING !? MapReduce Rinda (map, reduce) map reduce key value [, ] [, ID] map()
More informationIntroduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for
Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for embedded systems that use microcontrollers (MCUs)
More information,,,,., C Java,,.,,.,., ,,.,, i
24 Development of the programming s learning tool for children be derived from maze 1130353 2013 3 1 ,,,,., C Java,,.,,.,., 1 6 1 2.,,.,, i Abstract Development of the programming s learning tool for children
More informationBASIC / / BA- SIC Web 1/10 1/10 / / JavaScript
BASIC / / BA- SIC Web 1/10 1/10 // JavaScript MIT Processing line(10,10,100,100); 1 BASIC / Phidgets 1 GAINER 2 USB / Phidgets USB 1: 1 http://www.phidgets.com/ 2 http://gainer.cc/ / / BGM Phidgets University
More informationMicrosoft Word - PrivateAccess_UM.docx
`````````````````SIRE Page 1 English 3 日本語 7 Page 2 Introduction Welcome to! is a fast, simple way to store and protect critical and sensitive files on any ixpand Wireless Charger. Create a private vault
More informationOracle Application Server 10g( )インストール手順書
Oracle Application Server 10g (10.1.2) for Microsoft Windows J2EE Oracle Application Server 10g (10.1.2) for Microsoft Windows J2EE and Web Cache...2...3...3...4...6...6...6 OS...9...10...12...13...25...25
More informationAutumn 2007 1 5 8 12 14 14 15 %!SASROOT/sassetup SAS Installation Setup Welcome to SAS Setup, the program used to install and maintain your SAS software. SAS Setup guides you through a series of menus
More informationExpress5800/320Fa-L/320Fa-LR/320Fa-M/320Fa-MR
7 7 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Pentium III Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0212: Keybord Controller Failed. : Press to resume, to setup
More informationはじめに
IT 1 NPO (IPEC) 55.7 29.5 Web TOEIC Nice to meet you. How are you doing? 1 type (2002 5 )66 15 1 IT Java (IZUMA, Tsuyuki) James Robinson James James James Oh, YOU are Tsuyuki! Finally, huh? What's going
More informationuntitled
16.4 35.6 44.6 49.3 49.3 51.8 60.5 69.0 81.0 78.2 78.7 77.9 82.9 88.4 88.5 98.7 26,931 25,31 11,03 16,256 10,32 6,872 60.36 40.80 62.26 11,189 10,62 12,56 11,46 6,985 60.95 12,87 7,919 61.53 12,44 7,657
More informationSOC Report
多段プロキシによる Tor の Exit ノードの隠蔽について N T T コ ミ ュ ニ ケ ー シ ョ ン ズ株式会社 経営企画部 マネージドセキュリティサービス推進室 セ キ ュ リ テ ィ オ ペ レ ー シ ョ ン担当 2013 年 03 月 15 日 Ver. 1.0 1. 調査概要... 3 1.1. 調査概要... 3 2. 注意事項... 3 3. 検証結果... 3 3.1. 検証環境...
More informationii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web 2014 3
Web 2.0 Web Web Web Web Web Web Web I II I ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web 2014 3 1. 1.1 Web... 1 1.1.1... 3 1.1.2... 3 1.1.3... 4 1.2... 4 I 2 5 2. HTMLCSS 2.1 HTML...
More informationohp.mgp
2019/06/11 A/B -- HTML/WWW(World Wide Web -- (TA:, [ 1 ] !!? Web Page http://edu-gw2.math.cst.nihon-u.ac.jp/~kurino VNC Server Address : 10.9.209.159 Password : vnc-2019 (2019/06/04 : : * * / / : (cf.
More informationPresentation
メタプログラミング Ruby LLPlanets 2011-8-20 征典 kdmsnr@gmail.com 1/50 征典 -kdmsnr 2/50 MF'sbliki 3/50 Ruby における メタプログラミングとは? 4/50 内部 DSL を書くことである 5/50 プログラミング 語 Ruby 8 章 リフレクションとメタプログラミング 豊富なリフレクション APIを使い メタプログラミングを実現する
More informationMOTIF XF 取扱説明書
MUSIC PRODUCTION SYNTHESIZER JA 2 (7)-1 1/3 3 (7)-1 2/3 4 (7)-1 3/3 5 http://www.adobe.com/jp/products/reader/ 6 NOTE http://japan.steinberg.net/ http://japan.steinberg.net/ 7 8 9 A-1 B-1 C0 D0 E0 F0 G0
More informationSystemwalker IT Service Management Systemwalker IT Service Management V11.0L10 IT Service Management - Centric Manager Windows
Systemwalker IT Service Management Systemwalker IT Service Management V11.0L10 IT Service Management - Centric Manager Windows Systemwalker IT Service Management Systemwalker Centric Manager IT Service
More informationjohokiso-char.pdf.pdf
1 2 (2) l ASCIIJISUnicode ISO-2022-JP, Shift_JIS, EUC-JP Web l Copyright 2006-2018 Kota Abe 2018/06/12 3 4 l ()!? 5 6 l : This is a pen. 84 104 105 83 This is a pen. (, encode) () (, decode) l 41 42 43
More informationMail_Spam_Manual_120815b
server~>su - server:~#mount /mnt/cdrom server:~#umount /mnt/cdrom # cd /mnt/cdrom #./ginstall -F -M [MTA ] -P AV # wget http://download.gideon.co.jp/ginstall.tgz #./ginstall -F -M P -P AV #./ginstall -M
More informationプラズマ核融合学会誌4月【84-4】/講座5
Practical Data Analysis Using Open Source Software 5. Ruby for Geophysical Fluid Sciences HORINOUCHI Takeshi corresponding author s e-mail: horinout rish.kyoto-u.ac.jp air lon lat level time global_temp.rb
More information演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 講義で使うフォルダ 2/23
Web データ管理 CGI (3 章 ) 2011/11/30( 水 ) 1/23 演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 講義で使うフォルダ 2/23 CGI とは Common Gateway Interface の略 通常のページでは
More informationOracle Application Server 10g(9
Oracle Application Server 10g (9.0.4) for Microsoft Windows J2EE Oracle Application Server 10g (9.0.4) for Microsoft Windows J2EE and Web Cache...2...3...3...4...6...6...6 OS...9...10...12...13...24...24
More informationuntitled
NEC Express5800 Microsoft Windows Server 2003, standard x64 Edition/ Microsoft Windows Server 2003, Enterprise x64 Edition for Express5800/120Lh ) MicrosoftWindows Microsoft Corporation Windows Server
More information1 122
6 1 2 3 4 5 6 1 122 PhoenixBIOS Setup Utility MainAdvancedSecurityPowerExit MainSystem DevicesSecurityBootExit System Time: [XX:XX:XX] [XX:XX:XX] System Date: [XX/XX/XX] [XX/XX/XXXX] Item Specific Help
More informationユーザーズマニュアル
1 2 3 4 This product (including software) is designed under Japanese domestic specifications and does not conform to overseas standards. NEC *1 will not be held responsible for any consequences resulting
More informationスライド 1
1 1. 2 2. 3 isplever 4 5 6 7 8 9 VHDL 10 VHDL 4 Decode cnt = "1010" High Low DOUT CLK 25MHz 50MHz clk_inst Cnt[3:0] RST 2 4 1010 11 library ieee; library xp; use xp.components.all; use ieee.std_logic_1164.all;
More information演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) Web プログラミング 1 CGI (3 章 ) 2012/6/12( 水 ) 講義
演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) Web プログラミング 1 CGI (3 章 ) 2012/6/12( 水 ) 講義で使うフォルダ 1/23 2/23 CGI とは Common Gateway Interface の略
More information1,.,,,., RDBM, SQL. OSS,, SQL,,.
1,.,,,., RDBM, SQL. OSS,, SQL,,. 3 10 10 OSS RDBMS SQL 11 10.1 OSS RDBMS............................ 11 10.1.1 PostgreSQL................................. 11 10.1.2 MySQL...................................
More informationオンラインテスト
1. 2. JavaScript 3. Perl 4. CGI 1. WWW HTML WWW World Wide Web HTML Hyper Text Markup Language XML, XHTML Java (.java) JavaApplet (.class,.jar) JavaServlet (.jsp) JavaScript (.html) CGI (.cgi) SSI (.shtml)
More informationMicrosoft Word - PSB導入ガイド_ docx
入 1 / 49 入 日 1.0.0 2013/12/02 用 用 F-Secure 角 自 止 一 2 / 49 ... 4 1.... 4 2.... 4 3. 入... 4 4. 手 Windows... 5 4.1... 5 4.2 Windows... 9 5. 手 Windows Server... 13 6. 手 Linux... 19 6.1... 19 6.2 PSB... 20
More informationsoturon.dvi
12 Exploration Method of Various Routes with Genetic Algorithm 1010369 2001 2 5 ( Genetic Algorithm: GA ) GA 2 3 Dijkstra Dijkstra i Abstract Exploration Method of Various Routes with Genetic Algorithm
More information第3回_416.ppt
3 3 2010 4 IPA Web http://www.ipa.go.jp/security/awareness/vendor/programming Copyright 2010 IPA 1 3-1 3-1-1 SQL #1 3-1-2 SQL #2 3-1-3 3-1-4 3-2 3-2-1 #2 3-2-2 #1 3-2-3 HTTP 3-3 3-3-1 3-3-2 Copyright 2010
More information25 About what prevent spoofing of misusing a session information
25 About what prevent spoofing of misusing a session information 1140349 2014 2 28 Web Web [1]. [2] SAS-2(Simple And Secure password authentication protocol, ver.2)[3] SAS-2 i Abstract About what prevent
More informationIntroduction Purpose This course explains how to use Mapview, a utility program for the Highperformance Embedded Workshop (HEW) development environmen
Introduction Purpose This course explains how to use Mapview, a utility program for the Highperformance Embedded Workshop (HEW) development environment for microcontrollers (MCUs) from Renesas Technology
More informationML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1
More Logic More Types ML/OCaml GADT Jacques Garrigue ( ) Jacques Le Normand (Google) Didier Rémy (INRIA) @garriguejej ocamlgadt ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1 ( ) ML type nebou and
More informationMicrosoft PowerPoint - Lecture_2
プログラミング Java III 第 2 回 :WebForm および サーブレット入門 Ivan Tanev 講義の構造 1. ダイナミックWebコンテンツとサーブレット 2.Webフォーム 3. 演習 2 1. ダイナミック Web コンテンツとサーブレット 3 1. ダイナミック Web コンテンツとサーブレット Internet Response: HTML テキスト ユーザー 4 1. ダイナミック
More information5 1 2 3 4 5 6 7 8 9 10 11 12 1 132 CMOS Setup Utility - Copyright (C) 1984-2000 Award Software Power Management Setup ACPI Suspend Type S3 (STR) Power Management User Define Video Off Method DPMS Video
More information10 2000 11 11 48 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) CU-SeeMe NetMeeting Phoenix mini SeeMe Integrated Services Digital Network 64kbps 16kbps 128kbps 384kbps
More informationÇPÇRèÕÉIÉuÉWÉFÉNÉgéwå¸ã@î\.pdf
COPYRIGHT 200 COBOL CLASS-ID.. FACTORY. METHOD-ID.. OBJECT. METHOD-ID.. COPYRIGHT 200 COBOL 2 COPYRIGHT 200 COBOL 3 COPYRIGHT 200 COBOL 4 COPYRIGHT 200 COBOL 5 COPYRIGHT 200 COBOL 6 COPYRIGHT 200 COBOL
More information1 ( : Documents/kadai4), (ex.py ),. print 12345679 * 63, cd Documents/kadai4, python ex.py., python: can t open file ex.py : [Errno 2] No such file or
Python 2010.6 1 Python 1.1 ( ). mi.,.py. 1.2, python.. 1. python, python. ( ). 2.., python. Python (>>>). Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type help, copyright,
More informationMicrosoft Word - sample_adv-programming.docx
サンプル問題 以下のサンプル問題は包括的ではなく 必ずしも試験を構成するすべての種類の問題を表すとは限りません 問題は 個人が認定試験を受ける準備ができているかどうかを評価するためのものではありません SAS Advanced Programming for SAS 9 問題 1 次の SAS データセット ONE と TWO があります proc sql; select one.*, sales
More informationWEB DB PRESS Vol.1 65
http://www.fastcgi.com/ http://perl.apache.org/ 64 WEB DB PRESS Vol.1 WEB DB PRESS Vol.1 65 Powered by mod_perl, Apache & MySQL my $input; my %form; read STDIN, $input, $ENV{'CONTENT_LENGTH'}; foreach
More information(CC Attribution) Lisp 2.1 (Gauche )
http://www.flickr.com/photos/dust/3603580129/ (CC Attribution) Lisp 2.1 (Gauche ) 2 2000EY-Office 3 4 Lisp 5 New York The lisps Sammy Tunis flickr lisp http://www.flickr.com/photos/dust/3603580129/ (CC
More informationhaskell.gby
Haskell 1 2 3 Haskell ( ) 4 Haskell Lisper 5 Haskell = Haskell 6 Haskell Haskell... 7 qsort [8,2,5,1] [1,2,5,8] "Hello, " ++ "world!" "Hello, world!" 1 + 2 div 8 2 (+) 1 2 8 div 2 3 4 map even [1,2,3,4]
More informationRuby 50 Ruby UTF print, \n [Ruby-1] print("hello, Ruby.\n") [Ruby-2] Hello, Ruby. [Ruby-3] print("hello, \"Ruby\".\n") 2 [Ruby-4] seisuu = 10 pr
Ruby 50 Ruby UTF-8 1 1 print, \n [Ruby-1] print("hello, Ruby.\n") [Ruby-2] Hello, Ruby. [Ruby-3] print("hello, \"Ruby\".\n") 2 [Ruby-4] seisuu = 10 print(seisuu, "\n") jissuu = 3.141592 print(jissuu, "\n")
More information27011559 2018 3 1 3 2 4 2.1........................ 4 2.2.................................. 5 2.3 pseudovasp................................... 7 3 8 3.1 EAM potential.................................
More informationExpress5800/R110a-1Hユーザーズガイド
4 Phoenix BIOS 4.0 Release 6.0.XXXX : CPU=Xeon Processor XXX MHz 0640K System RAM Passed 0127M Extended RAM Passed WARNING 0B60: DIMM group #1 has been disabled. : Press to resume, to
More informationWDI-Slides-14.pptx
WEB+DB システム ( 入門編 ) 第 14 回 My Twitter サイトの制作 今日のテーマ p 前回制作した My Twitter をさらに拡充させて 形にしてみます p 新しい構造の実装として 自己参照結合による多対多の構造を実装してみます コミュニケーション ( 再掲 ) フォロー情報の登録を考えてみます 後期に 一連の技術的な発展系も考えてみて 本格的な つぶやき コミュニケーション構造を作ってみたいと思います
More informationuntitled
CA Easytrieve CA Technologies CA Easytrieve P 3 7 P 8 30 16 DB2 IMS IMS ADABAS JCL OS 2 Copyright 2012 CA. All rights reserved. CA Easytrieve CA Easytrieve CA Easytrieve CA Easytrieve COBOL,PL/I 3 Copyright
More informationif clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =
VHDL 2 1 VHDL 1 VHDL FPGA VHDL 2 HDL VHDL 2.1 D 1 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; regs.vhdl entity regs is clk, rst : in std_logic; clear : in std_logic; we
More informationVDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool
VDM-SL VDM++ 23 6 28 VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web 2 1 3 1.1............................................... 3 1.1.1 bool......................................... 3 1.1.2 real rat int
More informationjssst-ocaml.mgp
Objective Caml Jacques Garrigue Kyoto University garrigue@kurims.kyoto-u.ac.jp Objective Caml? 2 Objective Caml GC() Standard MLHaskell 3 OCaml () OCaml 5 let let x = 1 + 2 ;; val x : int = 3 ;; val-:
More information