Projects:Fix The Web

From Python
Jump to: navigation, search

Draft of ideas for a project. Please join discussion to help this noble cause materialize!

Note: If you prefer coding rather than discussing strategy, please consider joining the web site pilot project.

Contents

Synopsis

A project to deal with (in)compatibility/usability of Web sites.

Challenge

Way too many Web sites implemented badly, non-standard, inaccessible. We can do something(s) to help ourselves!

הרעיון המרכזי הוא לתקוף את הבעיה משני כוונים במקביל: מצד אחד לשתף פתרונות אד-הוק למשתמשים (בעיקר שיתוף סקריפטי GreaseMonkey ו- plug-ins יעודיים), ומצד שני יצירת קשר עם בעלי האתר ונסיון לפתור יחד אתם את הבעיה (בעיקר ניהול דיווח ומעקב אחרי בעיות, בדומה ל- tech-evangelism של Mozilla).

Fix (at the root)

Push

"Encourage" site builders to resolve problems.

  • Directory of sites with problems. Campaign management.
  • "Political" (as in public, publish, rally) pressure: "hall of shame".
  • Legal? (Some sites, in some countries, are liable.)

Pull

  • Problems knowledge base: assist (willing, cooperative) site builders with technology. Other incentives?
  • Assist open source projects, eg, CMSs, to correct their ways, eg, bidi.
  • Raise awareness of importance of standardization, accessibility, usability, etc:
    • Reprimand bad sites, praise good ones.
  • Offer design improvements, eg, alternative stylesheets?

השילוב הזה חיוני: מצד אחד היכולת לקבל פתרון מיידי לבעיה ולאפשר שימוש באתר שהיה עד כה סגור לרוב הדפדפנים יכולה ליצור פופולריות ובסיס משתמשים רחב. מצד שני, הנכנסים לאתר יכולים לראות מול העיניים את הבעיות הקיימות והגורמים להן, וכך להגדיל את המודעות לחשיבות הנושא. הפופולריות והגברת המודעות יכולות מצידן להגדיל את הרצון לשיתוף פעולה מצד בעלי האתרים ויוצריהם.

  • כתמריצים לשיתוף פעולה, אפשר לתת מקום לבאנרים של אתרים ששיתפו פעולה ותיקנו עצמם. משרד W3C הישראלי מוכן להציע קישור מהאתר שלו לאתרים תואמי תקן (ואולי אף מהדף הראשי שלו - כנראה בתשלום).
  • כדאי לנסות ליצור קשר עם גורמים נוספים שיכול להיות להם עניין באתר כזה - למשל קהילת Apple/Safari.
  • כדאי, מעבר לטיפול ודיון בבעיות ספציפיות, לספק גם FAQ וטיפים כלליים - לדוגמה להסביר על השימוש ב- "User Agent Switcher" ועל השימוש ב- Firebug.
  • לספק "קישורית חכמה" (bookmarklet) שאנשים יכולים להוסיף לרשימת הסימניות שלהם, שתעבור לאתר FixTheWeb ותעביר לו את כתובת הדף הנוכחי. האתר יגיב בהצגת הדיווח על הבעיה אם היא כבר קיימת (כולל הלינק להורדת סקריפט התיקון) - ובמידה שהבעיה לא קיימת במאגר - יציג טופס פתיחת בעיה חדשה. כך אנשים שנתקלים בבעיות בזמן הגלישה יכולים פשוט להקליק על הקישור הזה ולקבל מענה - לפעמים מיידי.
  • במסגרת דף ההסבר לבעלי אתרים, לספק רשימה של בעלי מקצוע המוכנים לבצע התאמת אתרים לתקנים או להעביר השתלמויות/הרצאות בנושא. לבדוק האם עדיף במקום זאת לתת רשימה של קישורים לאתרים אחרים המציעים רשימות כאלה.

Patch (go around it)

  • GreaseMonkey, Stylish, bookmarklets...
  • Filtering proxies
    • Public: a site (proxy service) that transparently "fixes" content as you browse the Web. (There are services that convert, eg, office documents, to HTML. Google offers such a (lousy?) conversion of PDFs, etc.)
    • Local: run the same thing yourself. Safer (ie, privacy)? Faster (latency)?
  • Mash-ups: scrape (necessary) evil sites and post cleaned content elsewhere.
  • Don't use that site, find an alternative. Nobody is irreplaceable. (And "vote with your feet".) (A non-solution? Border case?)

Eg, I seldom use Firefox (addicted to Konqueror), but would love to be able to hack sites like GreaseMonkey and Stylish do. Maybe even with Python instead of JavaScript!

Solutions (features)

Sites directory

Directory of sites with problems. Cross of ticketing system with CRM?

  1. Campaign management: track resolution.
  2. Analysis of problems and cross-linking to problems knowledge base, easy solutions downloading, or alternative URLs, etc.

Problems knowledge base

Directory/knowledge base: collect technical information about issues and provide an excellent resource for users and site builders: analysis, solutions.

  • Purpose is to focus on technology, the generic (recurring) aspect of problems, not specific sites.
  • A Wiki? Excellent flexibility, but sometimes (WikiMedia?) usability stinks, and shallow (contrast with deep(er) expert systems), though maybe tagging (folksonomy) and full text search would suffice.
  • There are many types of problems: compatibility, usability, accessibility, taste... This would be an ongoing effort, more discussion than mere repository of solutions, probably.

Should provide an API (Web services?) for querying the sites directory and maybe downloading solutions (eg, GM scripts) automatically. Harness our collective intelligence to fix stuff transparently!

Automated patching

  • Automatic discovery: Firefox add-on (or HTTP proxy for others?) that notifies about availability of solutions/fixes/tickets about sites in real time.
  • Proxy services that actually fixes a broken site in real time by filtering (Web scraping, blocking or extracting content, mashups) and rewriting its HTML, etc:
    • Service can be provided over the Web or by running a tiny HTTP proxy (trivial, with Python) on localhost and channeling traffic through it.
    • Collaborate on developing "filters" for specific broken sites, or generic garbage scrubbing filters... (Implement these as code (Python), not data, for expressive power. Sign them digitally.)

Problem types

  1. HTML: non-standard or buggy markup, badly designed pages...
  2. CSS
  3. Images
  4. Scripts (JavaScript)
  5. Other content-types
    1. Embedded plug-ins: flash, realplayer?
    2. Documents

Scenario

While using your favorite browser, you recall you need to pick up your uncle from the airport tomorrow. You go to the website of said airport to check the landings schedule. Alas, the list of flights was apparently designed for and tested on only one browser, so it blinks and disappears from the display before you manage to read it. You click the "FixTheWeb" icon (bookmarklet actually) in your bookmarks toolbar...

Since this problem was already reported, you get immediately to the status page for this problem. You notice that the problem was identified and that some user already uploaded a DreaseDonkey script for fixing it. Also, the airport site maintainers have been contacted by another user a few days ago, and got an auto-reply promising response within a week.

You leave an anonymous message on the problem's thread saying "plugin for Doodle Dhrome wanted - pretty please!" (had you logged in to the site, you could have also ticked the "notify me" box in the "Dhrome" column of the problem status page).

Since you happen to have DreaseDonkey installed in your DireDox browser, you download the script and Bob's your uncle (and he'd sure appreciate you appearing on the right time to give him a lift)...

Web site

A preliminary project for a Django site was started. We should also create a separate design document for that site. Some ideas are listed below.

  • לגבי אחסון - מסתמן שלא תהיה בעיה לקבל ע"י W3C ו/או איגוד האינטרנט.
  • לגבי שם domain - אני מציע fixtheweb.org.il (ואולי גם fixtheweb.org אחרי שזה יתפוס).
  • פלטפורמה - חשבתי על אתר מבוסס Django.
  • שם עברי קליט: אני מציע "תיקונצ'יק".
  • (Objection: the Web is global. (All?) these problems are not unique to .il. There's a lot to be gained from combining forces with the global community even when focusing on local problematic sites. The technology (solutions) isn't local either.)
As I see it, the project would track problems on site-by-site basis, and much of its power would come from the large non-techie community that would come in search for quick solution to some immediate problem (and on the way would become part of the solution). In .il, Hebrew sites get the largest audience, so hebrew interface is crucial.
Of course, sharing code with other local sites (spreading the word, maybe creating a global network of such), and cooperation in the technical discussions is good, so English is important for the tech discussion content.
  • (Shared) hosting is cheap. No problem. (Even I have a site!)
Still, W3C hosting is a plus (bandwidth, affiliated cause, maybe domain...)
  • Services/features can be split across sites, if necessary (performace, platform...).
  • Maybe use Google App Engine (which is Django-like) if we get millions and millions of users? ;-)
I believe that by the time we got the first million users, the problem of broken/IEOnly sites in Israel would be long gone, so we'd have achieved our goal, packed up and went on to new projects ;-)

Tasks

  • Collect and learn about usable pluggable apps (e.g. use [django-plugables]). We want a cross-over bugtracking/filesharing/forum system, so problem tracking related apps would be a good start. (Wiki, please, no message board. This is to be a knowledge base, not yet another chitchat.)
Disagree - we need to provide medium for the larger non-techie, typically wikiphobic, but non-ie-using populace to vent frustrations. However, a wiki is certainly good to have, for easy content management and community focus.
  • Graphics and CSS wizardry: collect ideas, prepare logos, etc.
  • Prepare a Fix The Web:Design page. (Uh?)
  • Find similar and related sites/projects.
  • Begin listing problematic sites. (Local banks?)
  • Analyze problems with specific sites or general problems.
  • Study GreaseMonkey, bookmarklets, etc: how to integrate with this project?

Volunteers

Need people (need to know I have help before I start anything - so name and short comment please)

  • AmitAronovitch: willing to do whatever task needed, but have limited time.
  • Ilan: general hacking, y'know...
  • User:Udi: Will be happy to be involved in designing, coding and promoting.


Resources

  1. Genesis, in a PyWeb-IL thread.
  2. GreaseMonkey
  3. W3C, Israeli office, and ISOC-IL.
  4. Django Issues - Issue tracker app from the NYC Django club. Seems to go in a direction that could be useful to this project.
  5. בלוג פשוט: GreaseMonkey Scripts for fixing Hebrew Websites
  6. Mazrim by Ilan Shavit: A small application to allow better support for watching and listening to Israeli TV and Radio.
  7. מוזילה ישראל: רשימת אתרים בעייתיים
Personal tools