SlideShare a Scribd company logo
Introduce GObject
Introspection
HanIRC #gnome
gana코코아
Typical GObject Application
Development Layer
GLib/GObject
ATK Pango
GTK+
Clutter Gstreamer
Ext Libraries
PyGTK Gtk#
java-
gnome
Gtk2-
Perl
Ruby-
Gnome2
C
Apps
Python
Apps
Mono
Apps
Java
Apps
Perl
Apps
Ruby
Apps
If Library apis are changed...
●Library bump version
●PyGtk bump version
●gtk-sharp bump version
●java-gnome bump version
●Gtk2-Perl bump version
●Ruby-Gnome2 bump version
●듣보잡 language binding bump version
GI Enabled Development Layer
GLib/GObject
ATK Pango
GTK+
Clutter Gstreamer
Ext Libraries
libffi/libgirepository
C
Apps
Python
Apps
Mono
Apps
Java
Apps
Perl
Apps
Ruby
Apps
Typelib
Typelib
Typelib
Typelib
TypelibTypelib
Typelib
Typelib
If Library apis are changed...
●Library bump version (with TypeLib)
●don't need to change each language binding.
Overview of GI's Architecture
●http://live.gnome.org/GObjectIntrospection/Architecture
●Annotations in library source codes
ogtk_window_resize()
 http://goo.gl/8i7dx
ogtk_window_get_size()
 http://goo.gl/MOr8a
The Difference between GI and CLI
●TypeLib are not bytecodes
but metadata.
●Each Language Host are
just using each C libraries
with libgirepository.
●Each Libraries are CIL
bytecodes.
●Each Language Host must
build/run on CLR.
Example 1 for python binding
# using pygtk
import gtk
w = gtk.Window()
w.show_all()
gtk.main()
# using gir
import gi
gi.require_version("Gtk", "2.0")
from gi.repository import Gtk
w = Gtk.Window()
w.show_all()
Gtk.main()
Example 2 for js binding (gjs, seed)
imports.gi.versions.Gtk = '3.0'
const Gtk = imports.gi.Gtk;
Gtk.init(null, 0)
w = new Gtk.Window({ type: Gtk.WindowType.TOPLEVEL })
w.show_all()
Gtk.main()
Example 3
●WebPreview
ojs version
 http://goo.gl/W4wt3
opython version
 http://goo.gl/lHspm
References
●http://live.gnome.org/GObjectIntrospection and subpages
●http://git.gnome.org/browse/

More Related Content

What's hot

What is coala?
What is coala?What is coala?
What is coala?
Lasse Schuirmann
 
Rockit: A Parser Generator for Ruby
Rockit: A Parser Generator for RubyRockit: A Parser Generator for Ruby
Rockit: A Parser Generator for Ruby
Jason Morrison
 
Git push to build, test and scan your containers
Git push to build, test and scan your containersGit push to build, test and scan your containers
Git push to build, test and scan your containers
Dharmit Shah
 
Effortless network response logging on Android
Effortless network response logging on AndroidEffortless network response logging on Android
Effortless network response logging on Android
Simon Percic
 
Marconi: Queuing and Notification service for OpenStack
Marconi: Queuing and Notification service for OpenStackMarconi: Queuing and Notification service for OpenStack
Marconi: Queuing and Notification service for OpenStack
Flavio Percoco Premoli
 
Introduction to Renjin, the alternative engine for R
Introduction to Renjin, the alternative engine for R Introduction to Renjin, the alternative engine for R
Introduction to Renjin, the alternative engine for R
Zurich_R_User_Group
 
Groovy
GroovyGroovy
Groovy
Tom Corcoran
 
Raspberry Pi for Developers and Makers
Raspberry Pi for Developers and MakersRaspberry Pi for Developers and Makers
Raspberry Pi for Developers and Makers
All Things Open
 
Git tips by symbols
Git tips by symbolsGit tips by symbols
Git tips by symbols
DQNEO
 
GCC compiler
GCC compilerGCC compiler
GCC compiler
Anil Pokhrel
 
Golang presentaion-2018-07-26
Golang presentaion-2018-07-26Golang presentaion-2018-07-26
Golang presentaion-2018-07-26
Shintaro Ikeda
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13
Daker Fernandes
 
Pyconsg2014 pyston
Pyconsg2014 pystonPyconsg2014 pyston
Pyconsg2014 pyston
masahitojp
 
RaspberryPiで作るガイガーカウンター
RaspberryPiで作るガイガーカウンターRaspberryPiで作るガイガーカウンター
RaspberryPiで作るガイガーカウンター
Yu Kusanagi
 
Go Programming language, golang
Go Programming language, golangGo Programming language, golang
Go Programming language, golang
Basil N G
 
Usage of GDB
Usage of GDBUsage of GDB
Usage of GDB
Jongseok Choi
 
Pda numerical 2
Pda numerical 2Pda numerical 2
Pda numerical 2
Dr. ABHISHEK K PANDEY
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwares
Ryo ONODERA
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
ShubhamMishra485
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
Uttam Gandhi
 

What's hot (20)

What is coala?
What is coala?What is coala?
What is coala?
 
Rockit: A Parser Generator for Ruby
Rockit: A Parser Generator for RubyRockit: A Parser Generator for Ruby
Rockit: A Parser Generator for Ruby
 
Git push to build, test and scan your containers
Git push to build, test and scan your containersGit push to build, test and scan your containers
Git push to build, test and scan your containers
 
Effortless network response logging on Android
Effortless network response logging on AndroidEffortless network response logging on Android
Effortless network response logging on Android
 
Marconi: Queuing and Notification service for OpenStack
Marconi: Queuing and Notification service for OpenStackMarconi: Queuing and Notification service for OpenStack
Marconi: Queuing and Notification service for OpenStack
 
Introduction to Renjin, the alternative engine for R
Introduction to Renjin, the alternative engine for R Introduction to Renjin, the alternative engine for R
Introduction to Renjin, the alternative engine for R
 
Groovy
GroovyGroovy
Groovy
 
Raspberry Pi for Developers and Makers
Raspberry Pi for Developers and MakersRaspberry Pi for Developers and Makers
Raspberry Pi for Developers and Makers
 
Git tips by symbols
Git tips by symbolsGit tips by symbols
Git tips by symbols
 
GCC compiler
GCC compilerGCC compiler
GCC compiler
 
Golang presentaion-2018-07-26
Golang presentaion-2018-07-26Golang presentaion-2018-07-26
Golang presentaion-2018-07-26
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13
 
Pyconsg2014 pyston
Pyconsg2014 pystonPyconsg2014 pyston
Pyconsg2014 pyston
 
RaspberryPiで作るガイガーカウンター
RaspberryPiで作るガイガーカウンターRaspberryPiで作るガイガーカウンター
RaspberryPiで作るガイガーカウンター
 
Go Programming language, golang
Go Programming language, golangGo Programming language, golang
Go Programming language, golang
 
Usage of GDB
Usage of GDBUsage of GDB
Usage of GDB
 
Pda numerical 2
Pda numerical 2Pda numerical 2
Pda numerical 2
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwares
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 

Viewers also liked

Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Amanda Lam
 
Gnome census
Gnome censusGnome census
Gnome census
Dave Neary
 
Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)
Igalia
 
SqueakGTK
SqueakGTKSqueakGTK
SqueakGTK
ESUG
 
نگاهی به Gtk3
نگاهی به Gtk3نگاهی به Gtk3
نگاهی به Gtk3
Ali Vakilzade
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
Gwang Yoon Hwang
 
Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3
caezsar
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
Anurag
 

Viewers also liked (8)

Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
 
Gnome census
Gnome censusGnome census
Gnome census
 
Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)
 
SqueakGTK
SqueakGTKSqueakGTK
SqueakGTK
 
نگاهی به Gtk3
نگاهی به Gtk3نگاهی به Gtk3
نگاهی به Gtk3
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
 
Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
 

Similar to Introduce gobject introspection

Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)
Yuren Ju
 
Git in Eclipse
Git in EclipseGit in Eclipse
Git in Eclipse
Dariusz Łuksza
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugc
ilugc
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
ystreet00
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
Akihiro Suda
 
Python and GObject Introspection
Python and GObject IntrospectionPython and GObject Introspection
Python and GObject Introspection
Yuren Ju
 
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraformSFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
South Tyrol Free Software Conference
 
GNU GCC - what just a compiler...?
GNU GCC - what just a compiler...?GNU GCC - what just a compiler...?
GNU GCC - what just a compiler...?
Saket Pathak
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
Marcin Pasinski
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
takezoe
 
Git tech talk
Git tech talkGit tech talk
Git tech talk
razasayed
 
The hacker choice
The hacker choiceThe hacker choice
The hacker choice
Flavio Castelli
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - Basic
Mosky Liu
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Igalia
 
Hg for bioinformatics, second part
Hg for bioinformatics, second partHg for bioinformatics, second part
Hg for bioinformatics, second part
Giovanni Marco Dall'Olio
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
Samuel Lampa
 
Git scm
Git scmGit scm
My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016
Alex Chistyakov
 
Debugging Rails 3 Applications
Debugging Rails 3 ApplicationsDebugging Rails 3 Applications
Debugging Rails 3 Applications
Nathan Broadbent
 
Golang : A Hype or the Future?
Golang : A Hype or the Future?Golang : A Hype or the Future?
Golang : A Hype or the Future?
Mindfire LLC
 

Similar to Introduce gobject introspection (20)

Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)
 
Git in Eclipse
Git in EclipseGit in Eclipse
Git in Eclipse
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugc
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
Python and GObject Introspection
Python and GObject IntrospectionPython and GObject Introspection
Python and GObject Introspection
 
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraformSFScon18 - Gerhard Sulzberger - Jason Tevnan  - gitops with gitlab + terraform
SFScon18 - Gerhard Sulzberger - Jason Tevnan - gitops with gitlab + terraform
 
GNU GCC - what just a compiler...?
GNU GCC - what just a compiler...?GNU GCC - what just a compiler...?
GNU GCC - what just a compiler...?
 
Comparing C and Go
Comparing C and GoComparing C and Go
Comparing C and Go
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
Git tech talk
Git tech talkGit tech talk
Git tech talk
 
The hacker choice
The hacker choiceThe hacker choice
The hacker choice
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - Basic
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Hg for bioinformatics, second part
Hg for bioinformatics, second partHg for bioinformatics, second part
Hg for bioinformatics, second part
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
 
Git scm
Git scmGit scm
Git scm
 
My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016
 
Debugging Rails 3 Applications
Debugging Rails 3 ApplicationsDebugging Rails 3 Applications
Debugging Rails 3 Applications
 
Golang : A Hype or the Future?
Golang : A Hype or the Future?Golang : A Hype or the Future?
Golang : A Hype or the Future?
 

More from Young-Ho Cha

마세라티의 비밀
마세라티의 비밀마세라티의 비밀
마세라티의 비밀
Young-Ho Cha
 
More than nexus, better than nexus.
More than nexus, better than nexus.More than nexus, better than nexus.
More than nexus, better than nexus.
Young-Ho Cha
 
7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트Young-Ho Cha
 
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
Young-Ho Cha
 
GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기Young-Ho Cha
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개Young-Ho Cha
 
웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리
Young-Ho Cha
 
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
Young-Ho Cha
 
자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음
Young-Ho Cha
 
Browser history and overview
Browser history and overviewBrowser history and overview
Browser history and overviewYoung-Ho Cha
 
Introduce native client
Introduce native clientIntroduce native client
Introduce native client
Young-Ho Cha
 
페챠쿠챠
페챠쿠챠페챠쿠챠
페챠쿠챠
Young-Ho Cha
 

More from Young-Ho Cha (12)

마세라티의 비밀
마세라티의 비밀마세라티의 비밀
마세라티의 비밀
 
More than nexus, better than nexus.
More than nexus, better than nexus.More than nexus, better than nexus.
More than nexus, better than nexus.
 
7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트7급 공무원도 쉽게 따라하는 쉘 스크립트
7급 공무원도 쉽게 따라하는 쉘 스크립트
 
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
 
GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
 
웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리
 
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
 
자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음
 
Browser history and overview
Browser history and overviewBrowser history and overview
Browser history and overview
 
Introduce native client
Introduce native clientIntroduce native client
Introduce native client
 
페챠쿠챠
페챠쿠챠페챠쿠챠
페챠쿠챠
 

Recently uploaded

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 

Recently uploaded (20)

Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 

Introduce gobject introspection

  • 2. Typical GObject Application Development Layer GLib/GObject ATK Pango GTK+ Clutter Gstreamer Ext Libraries PyGTK Gtk# java- gnome Gtk2- Perl Ruby- Gnome2 C Apps Python Apps Mono Apps Java Apps Perl Apps Ruby Apps
  • 3. If Library apis are changed... ●Library bump version ●PyGtk bump version ●gtk-sharp bump version ●java-gnome bump version ●Gtk2-Perl bump version ●Ruby-Gnome2 bump version ●듣보잡 language binding bump version
  • 4.
  • 5. GI Enabled Development Layer GLib/GObject ATK Pango GTK+ Clutter Gstreamer Ext Libraries libffi/libgirepository C Apps Python Apps Mono Apps Java Apps Perl Apps Ruby Apps Typelib Typelib Typelib Typelib TypelibTypelib Typelib Typelib
  • 6. If Library apis are changed... ●Library bump version (with TypeLib) ●don't need to change each language binding.
  • 7. Overview of GI's Architecture ●http://live.gnome.org/GObjectIntrospection/Architecture ●Annotations in library source codes ogtk_window_resize()  http://goo.gl/8i7dx ogtk_window_get_size()  http://goo.gl/MOr8a
  • 8. The Difference between GI and CLI ●TypeLib are not bytecodes but metadata. ●Each Language Host are just using each C libraries with libgirepository. ●Each Libraries are CIL bytecodes. ●Each Language Host must build/run on CLR.
  • 9. Example 1 for python binding # using pygtk import gtk w = gtk.Window() w.show_all() gtk.main() # using gir import gi gi.require_version("Gtk", "2.0") from gi.repository import Gtk w = Gtk.Window() w.show_all() Gtk.main()
  • 10. Example 2 for js binding (gjs, seed) imports.gi.versions.Gtk = '3.0' const Gtk = imports.gi.Gtk; Gtk.init(null, 0) w = new Gtk.Window({ type: Gtk.WindowType.TOPLEVEL }) w.show_all() Gtk.main()
  • 11. Example 3 ●WebPreview ojs version  http://goo.gl/W4wt3 opython version  http://goo.gl/lHspm