The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford.

Slides:



Advertisements
Similar presentations
Interaction Design: Visio
Advertisements

1. What is Essex Scheduler? 2. Why Android? 3. Software design 4. Application graphics 5. Releasing to Google Play 6. Application maintenance Essex Scheduler.
An Introduction to Using
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
1 of 6 Parts of Your Notebook Below is a graphic overview of the different parts of a OneNote 2007 notebook. Microsoft ® OneNote ® 2007 notebooks are digital.
Microsoft Office Illustrated Inserting Illustrations, Objects, and Media Clips.
ICS 665 Jesse Abdul. jQuery UI Overview  jQuery UI javascript library Includes all UI component functionality  jQuery UI CSS framework Includes standard.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
 jQuery Mobile An Introduction. What is jQuery Mobile  A framework built on top of jQuery, used for creating mobile web applications  Designed to make.
Console Application Programming Brian Hendricks. Getting Started On the web –New user help adcon.fnal.gov/controls/clib/new_user.html –Library help adcon.fnal.gov/controls/libraries.html.
ASP.NET AJAX. Content ASP.NET AJAX Ajax Control Toolkit Muzaffer DOĞAN - Anadolu University2.
INTRODUCTION TO HTML5 Drag and Drop in HTML5. Browsers Support  Currently, most of the major HTML5 desktop web browsers support the new HTML5 drag-and-drop.
Chapter 4 Dreamweaver: Part II The Web Warrior Guide to Web Design Technologies.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
UI Design Patterns & Best Practices Mike Wolfson July 22, 2010.
ASP.NET INTRODUCTION INTO وزارة التربية و التعليم العالي كلية العلوم و التكنولوجيا قسم علوم الحاسوب و تكنولوجيا المعلومات اعداد الاستاذ: عبد الله محمد.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Echo2 Java AJAX Web Framework Petar Milev. Contents 1.Introduction to Echo2 2.Echo2 Target – Business Web 3.Why Choosing Echo2? 4.Live Demo 5.How It Works?
Web Page Design I Retest Terms Review. 1. Web pages are created using a language known as ___________. The coding of this language must follow specific.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
DataFlex Web Framework Symposium – Part 2 Web Framework Overview John Tuohy Development Team
IE 411/511: Visual Programming for Industrial Applications
MagicInfo Pro Scheduler Now that a template has been created from content imported into the Library, the user is ready to begin scheduling content to.
File Upload Competitive Analysis. Catalyst - Browse in-line Of interest:
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
The Web. How does the Web work? The web is a collection of networks, starting near your home or office and expanding until we reach the global network.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
1 Tradedoubler & Mobile Mobile web & app tracking technical overview.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Teacher’s Assessment Assistant Worksheet Builder Starting the Program
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
10 Reasons to Choose the Yii Framework. The development of Yii framework began on January 1, 2008.Yii framework It is an open source application that.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
Session 27 Swing vs. AWT. AWT (Abstract Window ToolKit) It is a portable GUI library for stand-alone applications and/or applets. The Abstract Window.
BigBlueButton Brain dump -- Features, ideas and comparison with Adobe Connect.
Python Programming Graphical User Interfaces Saad Bani Mohammad Department of Computer Science Al al-Bayt University 1 st 2011/2012.
JRN 302: Introduction to Graphics and Visual Communication - Intro to Photoshop Thursday, 9/3/15.
Design Principle Hierarchy. GUEPs  Generative User Engineering Principle  Defined by Thimbleby, Interact ’ 84,  Helps users deduce rules for.
Introduction to Visual Studio & GUI Programming Prepared by: Ahmad Ramin Rahimee Assistant Professor ICTI.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
Design Patterns David Talby. This Lecture Re-routing method calls Chain of Responsibility Coding partial algorithms Template Method The Singleton Pattern.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
IPS Infrastructure Technological Overview of Work Done.
GTK+
Easy WP Guide V2.6 for WordPress 3.8. easywpguide.com Adding Tags within your Post Adding Tags whilst editing your Post, will automatically assign those.
The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford.
Microsoft Office 2008 for Mac – Illustrated Unit D: Getting Started with Safari.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Secure Mobile Development with NetIQ Access Manager
Microsoft PowerPoint Prepared by the Academic Faculty Members of IT.
 David Hietpas  Library Web Developer  University of Wisconsin - Polk Library.
XP New Perspectives on Creating Web Pages With Word Tutorial 1 1 Creating Web Pages With Word Tutorial 1.
Comprehensive Continuous Improvement Plan(CCIP) Training Module 4 Funding Application Pages.
Building GUI applications with Python, GTK and Glade
Setting up Categories, Grading Preferences and Entering Grades
Administrator Training
Adding a File to a Course
GNOME/GTK+ Introduction
An Introduction to Using
IOS SDK v1.0 with NAM 4.2.
Oracle Sales Cloud Sales campaign
The Basic Usage and The Event Handling in Glade.
Tutorial 7 – Integrating Access With the Web and With Other Programs
Plug-In Architecture Pattern
Presentation transcript:

The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford

History of gnome-libs ● What are libgnome/libgnomeui? – Initial GNOME library – Held all shared code in the early desktop – Dumping ground before we really knew what we wanted in a desktop

Problems ● Lack of defined scope – GTK+ does widgets – GConf does configuration – gnome-libs does ??? ● Dependency liability – Bonobo not portable to windows – Complicates the platform ● Relatively unmaintained code base ● Desktop integration issue

Our Goal ● Deprecate ● Whack entirely!! ● Remove ● Fit with a pair of concrete shoes ● Send to the great Attic/ in the sky

Our Approach ● Deprecate as much as code as possible ● Move inappropriately placed code into appropriate libraries ● See what's left – With some luck, everything will be gone

Comparison of Size

What the heck is there? ● Dead code ● General purpose objects and widgets ● Code to integrate non-codependent libraries ● Code to integrate applications with the desktop

Dead Code ● Large chunks of both libraries are deprecated – Over a third ● kept for ABI/API compatibility only ● 'nuff said

Objects and Widgets ● About a dozen widgets ● Tend to be lower quality than GTK+ ● All except GnomeApp and GnomeEntry are straightforward ● All have either an appropriate target library where they belong or can be deprecated

Objects ● gnome-client ● gnome-config ● gnome-i18n ● gnome-score

Widgets ● GnomeAbout ● GnomeApp/GnomeDock ● GnomeDruid ● GnomeEntry ● GnomeHRef ● GnomeIconList ● gnome_icon_lookup()

gnome-client ● Description: – Provides session manager support to applications ● Problem: – Buggy and unmaintained – Too complicated ● Action: – Finish GsmClient and move it into GTK+

gnome-config ● Description: –.desktop file parser ● Problem: – not flexible – indeterminate use case – Many alternate implementations (6 at last count) ● Action: – Rewrite proposed by Ray Strode: #139973

gnome-i18n ● Description: – provides a set of standard gettext macros – gnome_i18n_get_language_list() ● Problems: – Used by libraries lower in the library stack – Cut-n-pasted all over ● Solution: – Move language list getter to glib – Discussed in #95587

gnome-score(s) ● Description: – Set of widgets and library code for handling game score code ● Problem: – Not generically useful ● Action: – move into gnome-games as a library

GnomeAbout ● Description: – Simple 'About...' dialog ● Problem: – Limited API ● Action: – Move to GTK+ once the API is done – Discussed in #109435

GnomeApp/GnomeDock ● Description: – Framework for application main windows. ● Problem: – Unclear that users actually want this – Depends on BonoboDock – HIG is moving in a different direction – Different apps have different forms. Think IDE vs. Office vs Web browser...

GnomeApp/GnomeDock (II) ● Action: – If need be, write one or more dock for GTK+. – Unclear if needed

GnomeDruid ● Description: – Assistant widget ● Problem: – Complex API – Bad for accessibility as style can be set explicitly ● Action: – Discussed in # – HIG work needed

GnomeEntry ● Description: – Multiple specialized history entries ● Problem: – Complex API – Dubious targets – Standards non-compliance – Depends on gconf ● Action: – James Cape proposed a replacement

GnomeHRef ● Description: – Simple hyperlink button ● Problem: – Depends on gnome-vfs ● Solution: – Unclear. Possibly provide callbacks that gnome- vfs can use.

GnomeIconList ● Description: – A simple icon list widget ● Problem: – Uses gnome-canvas – Unmaintained – Too simple a widget ● Action: – Discussed in #61819

gnome_icon_lookup() ● Description: – Set of functions to lookup an icon from file information ● Problems: – depends on gnome_vfs ● Actions: – Unclear

Integration code (I) ● gnome-libs is high in the library chain

Problems ● Some libraries depend on functionalities that other libraries provide. For example: – GTK+ needs gconf keys – GTK+ needs gnome-vfs methods – gnome-vfs needs graphical and widget abilities

GTK+ and gconf ● History of proposed entry widgets ● Color picker palette ● Themes ● Settings (such as double click time, drag threshold)

GTK+ and gnome-vfs ● Filechooser backend ● URL callbacks ● VFS access to files

gnome-vfs and GTK+ ● Authentication dialogs ● Warning messages ● Launch feedback on application launch

Integration code (II) ● code to integrate GNOME applications with the rest of the desktop. – gnome-help – gnome-program – gnome-sound – gnome-triggers

gnome-help ● Description: – Integrated help system ● Problem: – GNOME specific ● Action: – Move to GTK+?

gnome-program ● Description: – Provides three distinct features: ● Argument Parser ● Central repository for known paths ● Desktop integration system

gnome-program (II) ● Problems: – Argument parsing uses popt, which doesn't handle UTF-8 correctly – popt API doesn't fit stylistically – path repository doesn't work well – path repository also doesn't use xdg basedir spec – module registry requires explicit linking, and doesn't work well with language bindings

gnome-program (III) ● Solutions: – Anders has written an option parser destined for glib. – Path repository should be rethought. Really only used for help – Library registry in glib? ● We don't know

gnome-sound ● Description: – Plays sound files. Goes 'ping' – Uploads sound files to the esound daemon ● Problem: – uses esound – largely uninteresting ● Action: – GStreamer, if needed. Dump otherwise.

gnome-triggers ● Description: – Plays sounds when global events occur. ● Problem: – Depends on esound. Uses esound in the API ● Action: – Possibly replace with something using accessibility hooks?

What wasn't removed ● gnome-help ● gnome-program ● authentication dialog ● GtkFileChooser vfs backend ● gnome_icon_lookup()

Solutions ● No really good solutions ● Some half-solutions – XSETTINGS – libgnomevfsui – rearrange the dependency chain ● No good ideas on the desktop integration issue

Conclusions ● Going to continue with our deprecation of gnome-libs ● Build upon the current half-solutions ● This was harder than expected!

Questions?