SlideShare una empresa de Scribd logo
1 de 211
Descargar para leer sin conexión
Hudson                  with

           bleis-tift


         May 28, 2011
id:bleis-tift / @bleis
id:bleis-tift / @bleis
id:bleis-tift / @bleis

Git      Jenkins
id:bleis-tift / @bleis

Git      Jenkins
F#       Scala
1   CI
.
    2




.
1   CI
.
    2




.
1   CI
.
     2




.
              Perl   Git   Groovy   Ruby
    F#
51
51



XFD eXtreme Feedback Device   CI
XFD
XFD
XFD
CI
CI



Continuous Integration
CI



Continuous Integration

commit push
CI



Continuous Integration

commit push


              Jenkins
CI
CI
CI
CI
CI
CI




     Reject
Private System Build
Private System Build
IM
IM
IM
RSS
IM
RSS
IM
RSS
XFD
IM
RSS
XFD   Private System Build
IM
RSS
XFD   Private System Build
SSTP Sakura Script Tranfer Protocol
SSTP Sakura Script Tranfer Protocol
     Secure Socket Tunneling Protocol
SSTP Sakura Script Tranfer Protocol
     Secure Socket Tunneling Protocol

             SSTP
SSTP
SSTP
SSTP
SSTP
1. push
1. push



push     CI
1. push



push     CI
Git
1. push



push     CI
Git
          Perl
1. push



push      CI
Git
            Perl
  Git    Perl
Perl
2. CI
3.
3.



Notification Plugin
3.



Notification Plugin

Groovy Postbuild Plugin
3.



Notification Plugin

Groovy Postbuild Plugin

Groovy   Runtime     Jenkins
4.
4.


Jenkins   Windows
4.


Jenkins   Windows
4.


Jenkins     Windows

cygrunsrv
4.


Jenkins     Windows

cygrunsrv
Ruby         Perl     Python
4.


Jenkins     Windows

cygrunsrv
Ruby          Perl     Python

                          TCP
            100
5.   6.
5.          6.



     Job   Build
5.          6.



            Job   Build

Ruby
5.               6.



                  Job   Build

Ruby
Scala        F#           JVM
                        F #
Ruby   IP
Ruby       IP

F#     1        Job
Ruby       IP

F#     1        Job

Ruby       3          IP
bleis-tift
F#
F#
F#




F#
F#




F#
F#
F#


use provider = new FSharpCodeProvider()
let src = "module Tempn
           let body (arg: " + argType + "): " +
           retType + " =n" + expr
let param = CompilerParameters(
              GenerateInMemory=true)
let res = provider
            .CompileAssemblyFromSource(param, src)
let asm = res.CompiledAssembly
let t = asm.GetType("Temp")
t.GetMethod("body").Invoke(null, arg)
fsi
fsi
fsi
fsi



-r         fsi.exe   dll
fsi



-r               fsi.exe   dll

           dll                   fsi
fsi



-r                fsi.exe   dll

           dll                    fsi

           REPL
fsi



-r                fsi.exe   dll

           dll                    fsi

           REPL
fsi
fsi

–lib:path dll
fsi

 –lib:path dll
-r asmfile              dll
fsi

 –lib:path dll
-r asmfile              dll
  –use:file fsi
fsi

 –lib:path dll
-r asmfile              dll
  –use:file fsi
                 fsi
fsi

 –lib:path dll
-r asmfile              dll
  –use:file fsi
                 fsi
                             lib
fsi

 –lib:path dll
-r asmfile              dll
  –use:file fsi
                 fsi
                             lib
                                   dll
       r
fsi

 –lib:path dll
-r asmfile                      dll
  –use:file fsi
                 fsi
                                     lib
                                           dll
       r
                       open
                         use
GUI
Git
Git


Git         DVCS
Git


Git         DVCS
Git


Git         DVCS




             Git
http://github.com/bleis-tift/Git-Hooks
http://github.com/bleis-tift/Git-Hooks

       rewrite
Groovy Postbuild Plugin
Groovy Postbuild Plugin


Jenkins
Groovy Postbuild Plugin


Jenkins
Jenkins
               Groovy
Groovy Postbuild Plugin


Jenkins
Jenkins
                        Groovy

          Post build task
Groovy Postbuild Plugin


Jenkins
Jenkins
                        Groovy

          Post build task


      Job
manager.hudson   manager.build
Groovy?
Groovy?


JVM
Groovy?


JVM
Groovy?


JVM

JVM
Groovy?


JVM

JVM

      Jenkins
Groovy?


JVM

JVM

              Jenkins

      Scala
push or reset


   push         reset
push or reset
push or reset
push or reset


   push         reset
push or reset


   push         reset


      reset
push or reset


   push         reset


      reset
      push
push or reset


          push         reset


             reset
             push
push
push or reset


          push         reset


             reset
             push
push
push
push or reset


          push         reset


             reset
             push
push
push

push
push or reset


if (manager.build.result == hudson.model.Result.SUCCESS) {
  def res = "git push origin master".execute().waitFor()
  if (res == 0)
    return
  manager.buildFailure()
}
def commits = manager.build.changeSet.items
if (commits.length == 0)
  return
def scm = manager.build.project.scm
def repo = scm.repositories[0].getURIs()[0].toString()
def parent = commits[0].parentCommit
def reset = "git --git-dir=$repo/.git reset --soft $parent"
reset.execute().waitFor()
Ruby
Ruby
Ruby




s = new java.net.Socket("localhost", 10000)
s << (manager.build.project.name + "n"
      + manager.build.number + "n")
s.close()
Cygwin   Windows
Cygwin   Windows




Windows        F#   C#
Cygwin     Windows




Windows          F#   C#

cygrunsrv             Cygwin
Cygwin




cygrunsrv -I JobNotifier -p /usr/bin/ruby.exe 
-a /home/bleis/notifier.rb
Cygwin




cygrunsrv -I JobNotifier -p /usr/bin/ruby.exe 
-a /home/bleis/notifier.rb
S
S
Sakura Script
S
Sakura Script
EXECUTE/1.0
EXECUTE/1.0




EXECUTE SSTP/1.0
Sender: JobNotifier
Command: GetName
EXECUTE/1.0




EXECUTE SSTP/1.0
Sender: JobNotifier
Command: GetName
Sakura Script


default/
    default.txt
            /
    abort/
    failure/
    success/
    unstable/
Sakura Script


default/
    default.txt
            /
    abort/
    failure/
    success/
    unstable/
Plugin
SSTP
Notifier.fs
module Notifier

open JobNotifier.Gui

let notify (app: App) (job: Jenkins.Job.t) (build: Jenkins.Build.t) _ _ =
  let icon =
    match build.Result with
    | "SUCCESS" -> App.Icon.Info
    | "FAILURE" -> App.Icon.Error
    | _ -> App.Icon.Warning
  app.ShowBalloonTip(icon, job.Name + " : " + build.Result)
Plugin
         XFD
Plugin
         XFD
Plugin
         XFD


mzp
Plugin
         XFD


mzp
Hudson以外の何か with 任意

Más contenido relacionado

La actualidad más candente

Windows kernel debugging workshop in florida
Windows kernel debugging   workshop in floridaWindows kernel debugging   workshop in florida
Windows kernel debugging workshop in florida
Sisimon Soman
 
Windows kernel debugging session 2
Windows kernel debugging session 2Windows kernel debugging session 2
Windows kernel debugging session 2
Sisimon Soman
 

La actualidad más candente (19)

Bash 4
Bash 4Bash 4
Bash 4
 
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
 
Authen Free Bsd6 2
Authen Free Bsd6 2Authen Free Bsd6 2
Authen Free Bsd6 2
 
Linux Basics
Linux BasicsLinux Basics
Linux Basics
 
3.1.c apend scripting, crond, atd
3.1.c apend   scripting, crond, atd3.1.c apend   scripting, crond, atd
3.1.c apend scripting, crond, atd
 
bash
bashbash
bash
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry manager
 
packaging
packagingpackaging
packaging
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 
50 Perintah Dasar pada linux
50 Perintah Dasar pada linux50 Perintah Dasar pada linux
50 Perintah Dasar pada linux
 
Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filter
 
FreeBSD Document Project
FreeBSD Document ProjectFreeBSD Document Project
FreeBSD Document Project
 
Windows kernel debugging workshop in florida
Windows kernel debugging   workshop in floridaWindows kernel debugging   workshop in florida
Windows kernel debugging workshop in florida
 
MongoDB - Monitoring & queueing
MongoDB - Monitoring & queueingMongoDB - Monitoring & queueing
MongoDB - Monitoring & queueing
 
Windows kernel debugging session 2
Windows kernel debugging session 2Windows kernel debugging session 2
Windows kernel debugging session 2
 
Perintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating SistemPerintah perintah dasar linux Operating Sistem
Perintah perintah dasar linux Operating Sistem
 
Installation of lammps-5Nov14 on Mac OS X Yosemite
Installation of lammps-5Nov14 on Mac OS X YosemiteInstallation of lammps-5Nov14 on Mac OS X Yosemite
Installation of lammps-5Nov14 on Mac OS X Yosemite
 
BOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containersBOSH deploys distributed systems, and Diego runs any containers
BOSH deploys distributed systems, and Diego runs any containers
 

Destacado

CIのその先へ
CIのその先へCIのその先へ
CIのその先へ
bleis tift
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
Oda Shinsuke
 
輪るビングドラム.NET
輪るビングドラム.NET輪るビングドラム.NET
輪るビングドラム.NET
bleis tift
 

Destacado (10)

CIのその先へ
CIのその先へCIのその先へ
CIのその先へ
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
 
C#でこなすexcel課題
C#でこなすexcel課題C#でこなすexcel課題
C#でこなすexcel課題
 
VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
SCM Boot Camp
SCM Boot CampSCM Boot Camp
SCM Boot Camp
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
輪るビングドラム.NET
輪るビングドラム.NET輪るビングドラム.NET
輪るビングドラム.NET
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 

Similar a Hudson以外の何か with 任意

Node.js basics
Node.js basicsNode.js basics
Node.js basics
Ben Lin
 

Similar a Hudson以外の何か with 任意 (20)

Crafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyCrafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in Ruby
 
Writing Rust Command Line Applications
Writing Rust Command Line ApplicationsWriting Rust Command Line Applications
Writing Rust Command Line Applications
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Node.js basics
Node.js basicsNode.js basics
Node.js basics
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023
 
Infrastructure as code - Python Saati #36
Infrastructure as code - Python Saati #36Infrastructure as code - Python Saati #36
Infrastructure as code - Python Saati #36
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meeting
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Puppet NBLUG 2008-09
Puppet NBLUG 2008-09Puppet NBLUG 2008-09
Puppet NBLUG 2008-09
 
Package Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π SupercomputerPackage Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π Supercomputer
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Introducing Ansible
Introducing AnsibleIntroducing Ansible
Introducing Ansible
 
Self revisor
Self revisorSelf revisor
Self revisor
 
aptly: Debian repository management tool
aptly: Debian repository management toolaptly: Debian repository management tool
aptly: Debian repository management tool
 
CoreOS @ gluecon 2015
CoreOS @ gluecon 2015CoreOS @ gluecon 2015
CoreOS @ gluecon 2015
 

Más de bleis tift

yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)
bleis tift
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリ
bleis tift
 

Más de bleis tift (20)

PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documents
 
解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler解説?FSharp.Quotations.Compiler
解説?FSharp.Quotations.Compiler
 
効果の低いテストの話
効果の低いテストの話効果の低いテストの話
効果の低いテストの話
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前に
 
札束でExcelを殴る
札束でExcelを殴る札束でExcelを殴る
札束でExcelを殴る
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJava
 
SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~
 
F#事例発表
F#事例発表F#事例発表
F#事例発表
 
yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
 
F#の基礎(嘘)
F#の基礎(嘘)F#の基礎(嘘)
F#の基礎(嘘)
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
 
自分戦略
自分戦略自分戦略
自分戦略
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリ
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Hudson以外の何か with 任意