SlideShare a Scribd company logo
Retooling the World
   Wide Web for its
   Original Purpose
Bringing Innovation in the Web back to the University
Pre History
• e.g. AARNET, Bitnet, JANET (UK)
• Low bandwith networks
• High technical barrier to entry
The Bronze Age
• Usenet
• Wais
• Gopher
• Archie and Veronica
• and Anonymous FTP
Limitations

• Still all text mode based
• Still high technical barrier to entry
• Didn’t build critiacal mass
The Iron Age
The Iron Age
AKA
     The birth of the WWW


•   (coincided with the first “user friendly” Unix (NeXt)

• Reminder - the WWW links documents
    and media together
The Age of Steel
This is where I came in
• Developed a web site for a hospital
  research unit
• Used the tools that I knew how
• (Notepad)
But they broke
        computers!
• Realised how crippled windows was
• Separating design from content
• How do I do this?
 • perl -p -i -e ‘s{<font.*</font>}{}g;
    {(<head>)}{$1<style>$blah</style>’
  • Absence useful tools :-(
My Replacement Broke
          It
-----Original Message-----
From: Kieren Diment
Sent: Friday, 20 September 2002 11:46
To: IDENTITY PROTECTED
Subject: Website problem

The new java applets for the website only work with java enabled web
browsers,

It is unfriendly for people with disabilities.
I suggest that you should revert to a text based navigation system for the
website as currently it will not work well with screen readers, or
will not work well if at all with older computers,
[ Comments on IE only features snipped ]

---- Reply ----

Thats true about your comments, but I think Microsoft has monopolised the IT
market and everyone besides you is using IE. I dont think diabled people
will be going to the computer shop asking for UNIX systems of NETscape
browsers.
3 Years Later...
The Age of Silicon
Another Project

• I learned Perl and began using Linux
• I was asked to do another website
• Scoop (http://kuro5hin.org) seemed to be a
  candidate for a web based research hub
But ... Problems
• mod_perl
 • Dedicated server required
 • Very hard to debug
• Mixture of content and presentation
• Too many features
 •   Spent too much time customising by feature removal
But it must have been a
    little successful


• Because I was asked to do it again!
This time we’ll do it
     from scratch

• Enter Maypole.
• Develop a databased backed web
  application in ~ 10 lines of code.
But...


• Spending 90% of the time dealing with
  Maypole and Class::DBI problems.
Fighting the problems


• By Doing Evil
 • Stuffing controller logic into templates
    •   Particularly authentication/authorization logic
Same problems again


• mod_perl == mod_no_debugger
Positive Outcomes

• I have a prototype
• And a happy client who wants to pay me
  again
 •   (at the next funding round :-/ )
Two Tier System

• Public Website
• Private research source and output
  (publications) repository
 • Private area has option to push out to
    public site
Enter Catalyst

• Extendable
• Model Agnostic
• Supports Test driven development
 • And we’ll come to why this is important
The Public Site is
          Solved

• Evaluating options for the private
  repository
Social Bookmarking for
       Scientists

• GPL
• Backed by a reputable publisher (NPG)
• But...
Community Problems

• GPL in name only
• Limited Community
• Don’t accept patches
• Their production code != the GPL code
• NO TEST SUITE
Technical Problems

• mod_perl == mod_no_debugger
• Class::DBI
• (Sub::WrapPackages + Smart::Comments)
 • 20MB of error log per request
 • Class::DBI causes deep recursion errors!
And...


• The data model is wrong by being too right
Zotero

• Standalone XUL + sqlite application for
  Firefox 2
• But Removes collaboration features
• Particularly incidental collaboration
  features
Zotero cont.


• Better (less correct) data model
• But would better be implemented as a
  server based collaborative application.
Wrap up:
Evaluating the Community
Look at your OSS
  community and ask:
• Do the same questions come up again and
  again?
• Are there critical show stoppers?
• How big is the community?
• Can you get free support?
• From what routes? IRC, ML?
http://www.totaldatasolution.com/colabr8

More Related Content

Similar to Retooling the world wide web for its original purpose

From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
guestd34230
 
Processing
ProcessingProcessing
Processing
elliando dias
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
jeresig
 
Between Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative IntroductionBetween Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative Introduction
lukhnos
 
Mark Little Fence Sitting Soa Geek
Mark Little Fence Sitting Soa GeekMark Little Fence Sitting Soa Geek
Mark Little Fence Sitting Soa Geek
deimos
 
FOSDEM 2009 Thunderbird 3 talk
FOSDEM 2009 Thunderbird 3 talkFOSDEM 2009 Thunderbird 3 talk
FOSDEM 2009 Thunderbird 3 talk
davidascher
 
Web Development: The Next Five Years
Web Development: The Next Five YearsWeb Development: The Next Five Years
Web Development: The Next Five Years
sneeu
 
Summer Presentation A L L
Summer Presentation  A L LSummer Presentation  A L L
Summer Presentation A L L
cameronparkins
 
Beginner Series 5 2009 Final
Beginner Series  5 2009 FinalBeginner Series  5 2009 Final
Beginner Series 5 2009 Final
Froemke
 
Snakes on the Web
Snakes on the WebSnakes on the Web
Snakes on the Web
Jacob Kaplan-Moss
 
10 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 200810 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 2008
Jazkarta, Inc.
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
Ben Cheng
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Long Nguyen
 
The 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEPThe 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEP
Ioannis Baltopoulos
 
10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone
Jazkarta, Inc.
 
Mojomojo Talk
Mojomojo TalkMojomojo Talk
Mojomojo Talk
Marcus Ramberg
 
Rails For Legacy Apps
Rails For Legacy AppsRails For Legacy Apps
Rails For Legacy Apps
Patrick Crowley
 
The Future of Firefox and JavaScript
The Future of Firefox and JavaScriptThe Future of Firefox and JavaScript
The Future of Firefox and JavaScript
jeresig
 
PPW2007 - Continuity Project
PPW2007 - Continuity ProjectPPW2007 - Continuity Project
PPW2007 - Continuity Project
awwaiid
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
jward5519
 

Similar to Retooling the world wide web for its original purpose (20)

From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
 
Processing
ProcessingProcessing
Processing
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Between Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative IntroductionBetween Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative Introduction
 
Mark Little Fence Sitting Soa Geek
Mark Little Fence Sitting Soa GeekMark Little Fence Sitting Soa Geek
Mark Little Fence Sitting Soa Geek
 
FOSDEM 2009 Thunderbird 3 talk
FOSDEM 2009 Thunderbird 3 talkFOSDEM 2009 Thunderbird 3 talk
FOSDEM 2009 Thunderbird 3 talk
 
Web Development: The Next Five Years
Web Development: The Next Five YearsWeb Development: The Next Five Years
Web Development: The Next Five Years
 
Summer Presentation A L L
Summer Presentation  A L LSummer Presentation  A L L
Summer Presentation A L L
 
Beginner Series 5 2009 Final
Beginner Series  5 2009 FinalBeginner Series  5 2009 Final
Beginner Series 5 2009 Final
 
Snakes on the Web
Snakes on the WebSnakes on the Web
Snakes on the Web
 
10 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 200810 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 2008
 
Pylons + Tokyo Cabinet
Pylons + Tokyo CabinetPylons + Tokyo Cabinet
Pylons + Tokyo Cabinet
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
The 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEPThe 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEP
 
10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone
 
Mojomojo Talk
Mojomojo TalkMojomojo Talk
Mojomojo Talk
 
Rails For Legacy Apps
Rails For Legacy AppsRails For Legacy Apps
Rails For Legacy Apps
 
The Future of Firefox and JavaScript
The Future of Firefox and JavaScriptThe Future of Firefox and JavaScript
The Future of Firefox and JavaScript
 
PPW2007 - Continuity Project
PPW2007 - Continuity ProjectPPW2007 - Continuity Project
PPW2007 - Continuity Project
 
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 

Retooling the world wide web for its original purpose

  • 1. Retooling the World Wide Web for its Original Purpose Bringing Innovation in the Web back to the University
  • 3. • e.g. AARNET, Bitnet, JANET (UK) • Low bandwith networks • High technical barrier to entry
  • 5. • Usenet • Wais • Gopher • Archie and Veronica • and Anonymous FTP
  • 6. Limitations • Still all text mode based • Still high technical barrier to entry • Didn’t build critiacal mass
  • 9. AKA The birth of the WWW • (coincided with the first “user friendly” Unix (NeXt) • Reminder - the WWW links documents and media together
  • 10. The Age of Steel
  • 11. This is where I came in
  • 12. • Developed a web site for a hospital research unit • Used the tools that I knew how • (Notepad)
  • 13. But they broke computers! • Realised how crippled windows was • Separating design from content • How do I do this? • perl -p -i -e ‘s{<font.*</font>}{}g; {(<head>)}{$1<style>$blah</style>’ • Absence useful tools :-(
  • 14. My Replacement Broke It -----Original Message----- From: Kieren Diment Sent: Friday, 20 September 2002 11:46 To: IDENTITY PROTECTED Subject: Website problem The new java applets for the website only work with java enabled web browsers, It is unfriendly for people with disabilities. I suggest that you should revert to a text based navigation system for the website as currently it will not work well with screen readers, or will not work well if at all with older computers, [ Comments on IE only features snipped ] ---- Reply ---- Thats true about your comments, but I think Microsoft has monopolised the IT market and everyone besides you is using IE. I dont think diabled people will be going to the computer shop asking for UNIX systems of NETscape browsers.
  • 16. The Age of Silicon
  • 17. Another Project • I learned Perl and began using Linux • I was asked to do another website • Scoop (http://kuro5hin.org) seemed to be a candidate for a web based research hub
  • 18. But ... Problems • mod_perl • Dedicated server required • Very hard to debug • Mixture of content and presentation • Too many features • Spent too much time customising by feature removal
  • 19. But it must have been a little successful • Because I was asked to do it again!
  • 20. This time we’ll do it from scratch • Enter Maypole. • Develop a databased backed web application in ~ 10 lines of code.
  • 21. But... • Spending 90% of the time dealing with Maypole and Class::DBI problems.
  • 22. Fighting the problems • By Doing Evil • Stuffing controller logic into templates • Particularly authentication/authorization logic
  • 23. Same problems again • mod_perl == mod_no_debugger
  • 24. Positive Outcomes • I have a prototype • And a happy client who wants to pay me again • (at the next funding round :-/ )
  • 25. Two Tier System • Public Website • Private research source and output (publications) repository • Private area has option to push out to public site
  • 26. Enter Catalyst • Extendable • Model Agnostic • Supports Test driven development • And we’ll come to why this is important
  • 27. The Public Site is Solved • Evaluating options for the private repository
  • 28.
  • 29. Social Bookmarking for Scientists • GPL • Backed by a reputable publisher (NPG) • But...
  • 30. Community Problems • GPL in name only • Limited Community • Don’t accept patches • Their production code != the GPL code • NO TEST SUITE
  • 31. Technical Problems • mod_perl == mod_no_debugger • Class::DBI • (Sub::WrapPackages + Smart::Comments) • 20MB of error log per request • Class::DBI causes deep recursion errors!
  • 32. And... • The data model is wrong by being too right
  • 33.
  • 34. Zotero • Standalone XUL + sqlite application for Firefox 2 • But Removes collaboration features • Particularly incidental collaboration features
  • 35. Zotero cont. • Better (less correct) data model • But would better be implemented as a server based collaborative application.
  • 37. Look at your OSS community and ask: • Do the same questions come up again and again? • Are there critical show stoppers? • How big is the community? • Can you get free support? • From what routes? IRC, ML?