Project Zero

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Project Zero - Presentation Transcript

    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. 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. 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. 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. 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 += { \"events\" : my_event, \"handler\" : test.php } Standard Zero life cycle events: start, stop, request begin/end etc. Ant Phillips - Project Zero 5
    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(\"/request/view\", \"JSON\"); zput(\"/request/json/output\", $obj); render_view(); Error renderer serves up standard error pages. Ant Phillips - Project Zero 6
    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. 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. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Meerkat Demo Ant Phillips - Project Zero 9
    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. 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. 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. 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=\"0\" role=\"checkbox“ aria-checked=\"true\" onkeydown=\"return checkBoxEvent(event);\" onclick=\"return checkBoxEvent(event);\"> Any checkbox label </span> There is also considerable overlap with mobile applications..! Ant Phillips - Project Zero 13
    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. 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. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Aggregating Content - Assemble Ant Phillips - Project Zero 16
    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. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Thank You! Ant Phillips - Project Zero 18
    19. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Ant Phillips - Project Zero 19
    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. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Why Mainframes Are Cool Ant Phillips - Project Zero 21
    22. projectzero.org Zero complexity. Zero overhead. Zero obstacles. What I Thought They Were Ant Phillips - Project Zero 22
    23. projectzero.org Zero complexity. Zero overhead. Zero obstacles. Agile Development? Ant Phillips - Project Zero 23
    24. projectzero.org Zero complexity. Zero overhead. Zero obstacles. No More Green Screen, Now We Have… Ant Phillips - Project Zero 24
    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. 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. projectzero.org Zero complexity. Zero overhead. Zero obstacles. They Are Still Big Iron Though… Ant Phillips - Project Zero 27
    28. projectzero.org Zero complexity. Zero overhead. Zero obstacles. The Big Issue – The Cost Of Energy Ant Phillips - Project Zero 28

    + Ant PhillipsAnt Phillips, 2 years ago

    custom

    2640 views, 0 favs, 3 embeds more stats

    An introduction to Project Zero presented at PHP Lo more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2640
      • 2539 on SlideShare
      • 101 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 44
    Most viewed embeds
    • 87 views on http://www.projectzero.org
    • 13 views on http://jisi.dreamblog.jp
    • 1 views on http://stlzro3.torolab.ibm.com

    more

    All embeds
    • 87 views on http://www.projectzero.org
    • 13 views on http://jisi.dreamblog.jp
    • 1 views on http://stlzro3.torolab.ibm.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories