projectzero.org
                         Zero complexity. Zero overhead. Zero obstacles.




Project Zero


   Ant Phillip...
projectzero.org
                                                                        Zero complexity. Zero overhead. Ze...
projectzero.org
                                                               Zero complexity. Zero overhead. Zero obstac...
projectzero.org
                                                             Zero complexity. Zero overhead. Zero obstacle...
projectzero.org
                                                               Zero complexity. Zero overhead. Zero obstac...
projectzero.org
                                                             Zero complexity. Zero overhead. Zero obstacle...
projectzero.org
                                                                       Zero complexity. Zero overhead. Zer...
projectzero.org
                                                                  Zero complexity. Zero overhead. Zero obs...
projectzero.org
                                             Zero complexity. Zero overhead. Zero obstacles.




Meerkat D...
projectzero.org
                                                                    Zero complexity. Zero overhead. Zero o...
projectzero.org
                                                      Zero complexity. Zero overhead. Zero obstacles.




...
projectzero.org
                                                             Zero complexity. Zero overhead. Zero obstacle...
projectzero.org
                                                             Zero complexity. Zero overhead. Zero obstacle...
projectzero.org
                                                                          Zero complexity. Zero overhead. ...
projectzero.org
                                                                  Zero complexity. Zero overhead. Zero obs...
projectzero.org
                                                    Zero complexity. Zero overhead. Zero obstacles.




Ag...
projectzero.org
                                                                     Zero complexity. Zero overhead. Zero ...
projectzero.org
                               Zero complexity. Zero overhead. Zero obstacles.




Thank You!




 Ant Phi...
projectzero.org
                              Zero complexity. Zero overhead. Zero obstacles.




Ant Phillips - Project Z...
projectzero.org
                                                               Zero complexity. Zero overhead. Zero obstac...
projectzero.org
                                      Zero complexity. Zero overhead. Zero obstacles.




Why Mainframes A...
projectzero.org
                                                   Zero complexity. Zero overhead. Zero obstacles.




Wha...
projectzero.org
                                                   Zero complexity. Zero overhead. Zero obstacles.




Agi...
projectzero.org
                                                   Zero complexity. Zero overhead. Zero obstacles.




No ...
projectzero.org
                                                        Zero complexity. Zero overhead. Zero obstacles.


...
projectzero.org
                                                             Zero complexity. Zero overhead. Zero obstacle...
projectzero.org
                                                     Zero complexity. Zero overhead. Zero obstacles.




T...
projectzero.org
                                                      Zero complexity. Zero overhead. Zero obstacles.




...
Upcoming SlideShare
Loading in …5
×

Project Zero

3,861 views

Published on

An introduction to Project Zero presented at PHP London 2008

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,861
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
54
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Project Zero

  1. 1. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Project Zero Ant Phillips antphill@uk.ibm.com Ant Phillips - Project Zero Copyright 2008 © IBM Corporation
  2. 2. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Introduction Project Zero is an IBM technology incubator project. Building a radically simplified platform to enable the productive development and deployment of rich internet applications. TM System language is Java . Zero runs on a Java Virtual Machine. TM Supports Linux, Mac and Windows. Application languages are PHP and Groovy. Zero contains a PHP 5 interpreter written in Java TM The application is the server. Favours convention over configuration. Ant Phillips - Project Zero 2
  3. 3. projectzero.org Zero complexity. Zero overhead. Zero obstacles. So What Simplifications Are We Aiming For? Versioning dependencies. Sharing assets from different languages. Implementing REST services. Building a rich user interface. I want to spend less time sorting out browser incompatibilities! Accessibility. Aggregating content. Ant Phillips - Project Zero 3
  4. 4. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Versioning Dependencies Versioning ensures applications don’t break! Specific versions can be set (v1.1.34). Versions upwards from a particular release (v1.0+). Ranges of acceptable versions (v1.0 – v1.5). Virtual Directories break an application up into modules. A module is simply a collection of files packaged together. Includes a module name, version and author details. An application declares the modules it depends on. Files are searched across application and dependent modules. Applications behave as if the directories are merged. Ant Phillips - Project Zero 4
  5. 5. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Sharing Assets - Events Zero provides events for one script to call another. Events are programming language agnostic. Fired by an application using fire_event(). fire_event('my_event', array(‘data'=>'foobar')); Event handlers are defined in the Zero configuration file: /config/handlers += { quot;eventsquot; : my_event, quot;handlerquot; : test.php } Standard Zero life cycle events: start, stop, request begin/end etc. Ant Phillips - Project Zero 5
  6. 6. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Sharing Assets - Rendering Zero provides renderers for generating output. Renderers are programming language agnostic. View renderer serves up script output: zput('/request/view', 'hello.php'); render_view(); XML, JSON and ATOM for well known data types: zput(quot;/request/viewquot;, quot;JSONquot;); zput(quot;/request/json/outputquot;, $obj); render_view(); Error renderer serves up standard error pages. Ant Phillips - Project Zero 6
  7. 7. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Implementing REST Services Zero provides a really simple way to create REST services. REST services fit well with test-driven development. Convention for create/retrieve/update/delete operations (CRUD). You can also list the members in the collection. HTTP Method URI Description GET /people List members POST /people Create member GET /people/1 Retrieve member PUT /people/1 Update member DELETE /people/1 Delete member Ant Phillips - Project Zero 7
  8. 8. projectzero.org Zero complexity. Zero overhead. Zero obstacles. REST Services in Project Zero Each REST service is implemented by a script (called a handler). Scripts live in the directory: <apphome>/app/resources Services are accessed using a standard URL convention: /resources/<collection name>[/member[/<path info>]] HTTP requests mapped to handler methods as follows: Resource GET PUT POST DELETE Collection list putCollection create deleteCollection /people Member retrieve update postMember delete /people/1 Ant Phillips - Project Zero 8
  9. 9. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Meerkat Demo Ant Phillips - Project Zero 9
  10. 10. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Building A Rich User Interface Dojo is the preferred Ajax/JavaScript toolkit for Zero. Open source toolkit to simplify rich web applications. http://www.dojotoolkit.org v1.0 released on 5th November 2007. Addresses key problem with browser compatibility. Dijit library provides rich set of user interface widgets. Accessibility built in Internationalised Theme 100% customisable DojoX adds experimental and specialised extensions. Wire, XML, cryptography, network Ant Phillips - Project Zero 10
  11. 11. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Input controls – buttons, combo box, sliders, text areas. Layout – accordion, split/stack containers, tabs. Command – button, menu, toolbar. User assistance and feedback – progress bar, tooltip, dialog. Advanced editing and display – editor, tree, colour palette Ant Phillips - Project Zero 11
  12. 12. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Accessibility Accessibility relies on extracting clues from an HTML document. Today, semantics are limited to tag elements names. Almost entirely dependent on tabbing through page contents. Applications make extensive use of tag elements such as DIVs! HTML allows content to be used for presentation formatting. What actions can be performed on a given element? How to convey state - is the popup menu is collapsed or expanded? Live regions are problematic in dynamically updating applications! Ant Phillips - Project Zero 12
  13. 13. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Accessible Rich Internet Applications (W3C ARIA) Aims to address the accessibility of rich internet applications. A way to reproduce the keyboard functionality of desktop applications on a web page. Roles, states and actions are the key additions: <span tabindex=quot;0quot; role=quot;checkbox“ aria-checked=quot;truequot; onkeydown=quot;return checkBoxEvent(event);quot; onclick=quot;return checkBoxEvent(event);quot;> Any checkbox label </span> There is also considerable overlap with mobile applications..! Ant Phillips - Project Zero 13
  14. 14. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Overlap Between Accessible and Mobile Applications Content Disabilities Context Mobile Devices Context Interaction and navigation User with a motor disability may Device has no mouse, only requires mouse. not be able to use a mouse. alphanumeric keypad or rocker switch. Information conveyed using User who is blind or colour blind Screen has limited colour palette colour (for example, “required perceives colour incorrectly or not and colour difference is not material is shown in red”) with at all. presented. Device is used in no redundancy. poor lighting (for example, outdoors), so colours are not clearly perceived. Large page or large images. User with restricted field of vision Mobile device has small screen or using screen magnifier gets only (viewport). small part of page/image at a time. Many more examples: http://www.w3.org/WAI/mobile/experiences Ant Phillips - Project Zero 14
  15. 15. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Dojo Core Widget Set (Dijit) Accessibility ARIA specification implemented in all widgets. Fully keyboard accessible in Firefox and Internet Explorer. Screen reader accessible in Firefox. Works in operating system high-contrast mode (system colours). Works with images off (regular <img> tags). Currently only auto-detected in Firefox. Must be in high contrast mode for image-off support in Internet Explorer. More information available from: http://www.w3.org/WAI/intro/aria. Ant Phillips - Project Zero 15
  16. 16. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Aggregating Content - Assemble Ant Phillips - Project Zero 16
  17. 17. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Installing Zero Get a Java SE 1.5 SDK. http://www.ibm.com/developerworks/java/jdk/linux/download.html http://java.sun.com/javase/downloads/index_jdk5.jsp Get the PHP Development Tools (PDT) Eclipse all-in-one. http://download.eclipse.org/tools/pdt/downloads/?release=R20070917 Install Zero using the Eclipse Update Manager. http://www.projectzero.org/wiki/bin/view/Download/DownloadPhp Links and walkthrough on www.projectzero.org. Getting started: http://www.ibm.com/developerworks/library/wa-pz-intro/ Community, blogs, questions, answers, opinions and thoughts: http://www.projectzero.org/wiki/bin/view/Community/WebHome Ant Phillips - Project Zero 17
  18. 18. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Thank You! Ant Phillips - Project Zero 18
  19. 19. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Ant Phillips - Project Zero 19
  20. 20. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Legal Notices Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel and Pentium are trademarks or registered trademark of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. Ant Phillips - Project Zero 20
  21. 21. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Why Mainframes Are Cool Ant Phillips - Project Zero 21
  22. 22. projectzero.org Zero complexity. Zero overhead. Zero obstacles. What I Thought They Were Ant Phillips - Project Zero 22
  23. 23. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Agile Development? Ant Phillips - Project Zero 23
  24. 24. projectzero.org Zero complexity. Zero overhead. Zero obstacles. No More Green Screen, Now We Have… Ant Phillips - Project Zero 24
  25. 25. projectzero.org Zero complexity. Zero overhead. Zero obstacles. But Things Have Moved On! Mainframes run Linux amongst many other Operating Systems Ant Phillips - Project Zero 25
  26. 26. projectzero.org Zero complexity. Zero overhead. Zero obstacles. They Certainly Pack A Punch IBM System z9 runs up to 54 hot swappable processors. 64 bit Power Architecture chips. Parallel Sysplex allows 32 such systems to be connected Can be physically separated by up to 100km. That adds up to 18,660,000,000 core instructions per second. Oh, and every instruction is executed twice! And there are the additional processors (cryptography etc). Not just COBOL! PHP, Java, C/C++ and many others. Ant Phillips - Project Zero 26
  27. 27. projectzero.org Zero complexity. Zero overhead. Zero obstacles. They Are Still Big Iron Though… Ant Phillips - Project Zero 27
  28. 28. projectzero.org Zero complexity. Zero overhead. Zero obstacles. The Big Issue – The Cost Of Energy Ant Phillips - Project Zero 28

×