SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
GUI Programming 
with Perl / GTK
Anuradha Weeraman
anu@taprobane.org
http://www.linux.lk/~anu/
23 May 2006
 
Contents
●
 Overview 
●
 GUI Toolkits
●
 Hello World
●
 Layout
●
 C ­> Perl
●
 GUI Builders
●
 CPAN
Overview
●
 What's a widget?
●
 What's a GUI?
●
 What's a GUI toolkit?
●
 What's GTK?
●
 What's GTK­Perl?
●
 How is GUI programming different?
GUI Toolkits
●
 Athena Widget Library
●
 OSF Motif
●
 Xforms
●
 FLTK
●
 the GIMP Toolkit
●
 Qt Toolkit
●
 LessTif
Hello World
#!/usr/bin/perl
use Gtk2 '-init';
$window = Gtk2::Window->new;
$label = Gtk2::Label->new ("Hello World");
$window->add ($label);
$window->show_all;
Gtk2->main;
Hello World – Part 2
#!/usr/bin/perl
use Gtk2 '-init';
$window = Gtk2::Window->new;
$window->signal_connect(
destroy => sub { Gtk2->main_quit }
);
$label = Gtk2::Label->new ("Hello World");
$window->add ($label);
$window->show_all;
Gtk2->main;
Hello World – Part 3
#!/usr/bin/perl
use Gtk2 '-init';
$window = Gtk2::Window->new;
$window->set_title("Hello");
$window->signal_connect(destroy => sub { Gtk2->main_quit });
$button = Gtk2::Button->new ("Greetings Earthling");
$button->signal_connect(clicked => sub { Gtk2->main_quit });
$window->add ($button);
$window->show_all;
Gtk2->main;
Hello World – Part 4
#!/usr/bin/perl
use Gtk2 '-init';
sub quit_program {
Gtk2->main_quit;
print "Program has stopped.n";
}
$window = Gtk2::Window->new;
$window->set_title("Hello");
$window->signal_connect(destroy => &quit_program);
$button = Gtk2::Button->new ("Greetings Earthling");
$button->signal_connect(clicked => &quit_program);
$window->add ($button);
$window->show_all;
Gtk2->main;
Layout ­ HBox
$window = Gtk2::Window->new;
$hbox = Gtk2::HBox->new;
$button_1 = Gtk2::Button->new ("Button 1");
$button_2 = Gtk2::Button->new ("Button 2");
$hbox->pack_start ($button_1, 0, 0, 0);
$hbox->pack_start ($button_2, 0, 0, 0);
$window->add ($hbox);
Layout ­ VBox
$window = Gtk2::Window->new;
$vbox = Gtk2::VBox->new;
$button_1 = Gtk2::Button->new ("Button 1");
$button_2 = Gtk2::Button->new ("Button 2");
$vbox->pack_start ($button_1, 0, 0, 0);
$vbox->pack_start ($button_2, 0, 0, 0);
$window->add ($vbox);
C ­> Perl
●
 Consistent naming
●
 One­to­one mapping
●
 Object­oriented
●
 Transparently handles type­casting, reference 
counting etc.
●
 Exceptions allowed where Perl capabilities 
afford a cleaner API – multiple return values, 
string / array function parameters
Function Name Translation
g_ -> Glib
gtk_ -> Gtk2
gdk_ -> Gtk2::Gdk
gdk_pixbuf_ -> Gtk2::Gdk::Pixbuf
pango_ -> Gtk2::Pango
Function Name Translation
gtk_window_ -> Gtk2::Window
gtk_button_ -> Gtk2::Button
gtk_window_new -> Gtk2::Window->new
gtk_button_new -> Gtk2::Button->new
Function Parameters
gtk_window_set_title
(GtkWindow *window, gchar string)
becomes
$window->set_title ($string)
Function Parameters
GList replaced by variable number of arguments:
gtk_window_set_icon_list (GtkWindow * window, GList * list)
$window->set_icon_list (@icons)
Same with the array moved to the end of the parameter list:
gtk_list_insert_items (GtkList *list, GList *items, gint position)
$list->insert_items ($position, @items)
  
Array parameter and integer with the size of that array, replaced by variable number 
of arguments:
gtk_curve_set_vector (GtkCurve *curve, int veclen, gfloat vector[])
$curve->set_vector (@vector)
Same with the array moved to the end of parameter list:
gtk_item_factory_create_items (GtkItemFactory * ifactory,
guint n_entries, GtkItemFactoryEntry * entries,
gpointer callback_data)
$itemfactory->create_items ($callback_data, @entries)
Return Values
gtk_window_get_size (GtkWindow *window, gint *width,
gint *height)
($width, $height) = $window->get_size
gtk_calendar_get_date (GtkCalendar * calendar,
guint year, guint month, guint day)
($year, $month, $day) = $calendar->get_date
GUI Builders ­ Glade
Installing Modules
Download foo­module.tar.gz
$ tar zxvf foo­module.tar.gz
$ cd foo­module
$ perl Configure.PL
$ make
$ make test
# make install
           OR
use CPAN.
CPAN
●
 CPAN.org
●
 Comprehensive Perl Archive Network
●
 Mirrors all over the world
●
 Command line shell
●
 Bundled with standard Perl distribution
●
 Intuitive module management
CPAN
perl ­MCPAN ­e shell
cpan> install Term::ReadKey
cpan> install Term::ReadLine
cpan> install Bundle::CPAN
cpan> h or ?
 Thank You!
For more information, visit:
http://www.gtk.org
http://www.gtk2­perl.sourceforge.net
You can download this presentation 
from http://www.linux.lk/~anu

Mais conteúdo relacionado

Mais procurados

Docker presentation
Docker presentationDocker presentation
Docker presentationEugen Oskin
 
T3chFest 2017 - La Revolucion del Open Source
T3chFest 2017 - La Revolucion del Open SourceT3chFest 2017 - La Revolucion del Open Source
T3chFest 2017 - La Revolucion del Open SourceIván López Martín
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
 
GroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するGroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するongaeshi
 
Graphics Programming OpenGL & GLUT in Code::Blocks
Graphics Programming OpenGL & GLUT in Code::BlocksGraphics Programming OpenGL & GLUT in Code::Blocks
Graphics Programming OpenGL & GLUT in Code::BlocksBudditha Hettige
 
GIT - DUG Antwerp
GIT - DUG AntwerpGIT - DUG Antwerp
GIT - DUG AntwerpKrimson
 
Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Luis Lopez
 
Luigi - A Python framework for data processing and pipelining
Luigi - A Python framework for data processing and pipeliningLuigi - A Python framework for data processing and pipelining
Luigi - A Python framework for data processing and pipeliningHoffman Lab
 
Kotlin everywhere: share your kotlin code across platforms
Kotlin everywhere: share your kotlin code across platformsKotlin everywhere: share your kotlin code across platforms
Kotlin everywhere: share your kotlin code across platformsBoris D'Amato
 
Gcd(i os & os x 멀티스레딩 기법)
Gcd(i os & os x 멀티스레딩 기법)Gcd(i os & os x 멀티스레딩 기법)
Gcd(i os & os x 멀티스레딩 기법)창욱 정
 
Introduction to the Moby Project
Introduction to the Moby ProjectIntroduction to the Moby Project
Introduction to the Moby ProjectJochen Zehnder
 
How to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopHow to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopPavitraBhagat
 

Mais procurados (17)

Docker presentation
Docker presentationDocker presentation
Docker presentation
 
ng-docs
ng-docsng-docs
ng-docs
 
T3chFest 2017 - La Revolucion del Open Source
T3chFest 2017 - La Revolucion del Open SourceT3chFest 2017 - La Revolucion del Open Source
T3chFest 2017 - La Revolucion del Open Source
 
How to Contribute to GStreamer
How to Contribute to GStreamerHow to Contribute to GStreamer
How to Contribute to GStreamer
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
Gcc - Linux Hack Day
Gcc - Linux Hack DayGcc - Linux Hack Day
Gcc - Linux Hack Day
 
GStreamer Instruments
GStreamer InstrumentsGStreamer Instruments
GStreamer Instruments
 
GroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布するGroongaアプリケーションをDockerコンテナ化して配布する
GroongaアプリケーションをDockerコンテナ化して配布する
 
Graphics Programming OpenGL & GLUT in Code::Blocks
Graphics Programming OpenGL & GLUT in Code::BlocksGraphics Programming OpenGL & GLUT in Code::Blocks
Graphics Programming OpenGL & GLUT in Code::Blocks
 
GIT - DUG Antwerp
GIT - DUG AntwerpGIT - DUG Antwerp
GIT - DUG Antwerp
 
Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...Improving GStreamer performance on large pipelines: from profiling to optimiz...
Improving GStreamer performance on large pipelines: from profiling to optimiz...
 
Luigi - A Python framework for data processing and pipelining
Luigi - A Python framework for data processing and pipeliningLuigi - A Python framework for data processing and pipelining
Luigi - A Python framework for data processing and pipelining
 
Nuget
NugetNuget
Nuget
 
Kotlin everywhere: share your kotlin code across platforms
Kotlin everywhere: share your kotlin code across platformsKotlin everywhere: share your kotlin code across platforms
Kotlin everywhere: share your kotlin code across platforms
 
Gcd(i os & os x 멀티스레딩 기법)
Gcd(i os & os x 멀티스레딩 기법)Gcd(i os & os x 멀티스레딩 기법)
Gcd(i os & os x 멀티스레딩 기법)
 
Introduction to the Moby Project
Introduction to the Moby ProjectIntroduction to the Moby Project
Introduction to the Moby Project
 
How to Git and Github | Hands on workshop
How to Git and Github | Hands on workshopHow to Git and Github | Hands on workshop
How to Git and Github | Hands on workshop
 

Destaque

Javascript in Linux Desktop
Javascript in Linux DesktopJavascript in Linux Desktop
Javascript in Linux DesktopYuren Ju
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjutadelfinostefano
 
Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3caezsar
 
Integrating CC Licensing with Applications
Integrating CC Licensing with ApplicationsIntegrating CC Licensing with Applications
Integrating CC Licensing with ApplicationsNathan Yergler
 
Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel DevelopmentPriyank Kapadia
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programmingManoj Tyagi
 

Destaque (8)

gtk2-perl
gtk2-perlgtk2-perl
gtk2-perl
 
PHP-GTK
PHP-GTKPHP-GTK
PHP-GTK
 
Javascript in Linux Desktop
Javascript in Linux DesktopJavascript in Linux Desktop
Javascript in Linux Desktop
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjuta
 
Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3
 
Integrating CC Licensing with Applications
Integrating CC Licensing with ApplicationsIntegrating CC Licensing with Applications
Integrating CC Licensing with Applications
 
Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel Development
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 

Semelhante a GUI Programming with Perl / GTK

gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!ystreet00
 
Using GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnlUsing GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnlKentaro Ebisawa
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.Girish Ghate
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingLubomir Rintel
 
step by step to write a gnome-shell extension
step by step to write a gnome-shell extension step by step to write a gnome-shell extension
step by step to write a gnome-shell extension Yuren Ju
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)Igalia
 
GKE_ How I get started_.pdf
GKE_ How I get started_.pdfGKE_ How I get started_.pdf
GKE_ How I get started_.pdfLuillyfe Blanco
 
Exploring Raspberry Pi
Exploring Raspberry PiExploring Raspberry Pi
Exploring Raspberry PiLentin Joseph
 
Git: Why And How to
Git: Why And How toGit: Why And How to
Git: Why And How tolanhuonga3
 
ELC-E Linux Awareness
ELC-E Linux AwarenessELC-E Linux Awareness
ELC-E Linux AwarenessPeter Griffin
 
Spec2: How to Build a new GUI
Spec2: How to Build a new GUISpec2: How to Build a new GUI
Spec2: How to Build a new GUIESUG
 
Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Igalia
 
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Tzung-Bi Shih
 
Putting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterPutting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterGerard Gigliotti
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and QtICS
 

Semelhante a GUI Programming with Perl / GTK (20)

gtk2-perl
gtk2-perlgtk2-perl
gtk2-perl
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 
Using GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnlUsing GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnl
 
Go, meet Lua
Go, meet LuaGo, meet Lua
Go, meet Lua
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
 
step by step to write a gnome-shell extension
step by step to write a gnome-shell extension step by step to write a gnome-shell extension
step by step to write a gnome-shell extension
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)
 
GKE_ How I get started_.pdf
GKE_ How I get started_.pdfGKE_ How I get started_.pdf
GKE_ How I get started_.pdf
 
Exploring Raspberry Pi
Exploring Raspberry PiExploring Raspberry Pi
Exploring Raspberry Pi
 
Git back on_your_feet
Git back on_your_feetGit back on_your_feet
Git back on_your_feet
 
Debugging 2013- Sune Vuorela
Debugging 2013- Sune VuorelaDebugging 2013- Sune Vuorela
Debugging 2013- Sune Vuorela
 
Git: Why And How to
Git: Why And How toGit: Why And How to
Git: Why And How to
 
ELC-E Linux Awareness
ELC-E Linux AwarenessELC-E Linux Awareness
ELC-E Linux Awareness
 
Spec2: How to Build a new GUI
Spec2: How to Build a new GUISpec2: How to Build a new GUI
Spec2: How to Build a new GUI
 
lab1-ppt.pdf
lab1-ppt.pdflab1-ppt.pdf
lab1-ppt.pdf
 
Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)
 
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
 
Putting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipsterPutting the Fun into Functioning CI/CD with JHipster
Putting the Fun into Functioning CI/CD with JHipster
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and Qt
 

Último

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

GUI Programming with Perl / GTK