RT4 - The whole sordid story

Jesse Vincent
Jesse VincentFounder and CEO at Prime Radiant
RT 4
(Request Tracker 4.0)
                 jesse@bestpractical.com
                 http://bestpractical.com
Hi, I'm Jesse Vincent

From Boston, MA in the US
Perl Hacker
Current Perl 5 “pumpking”
Android Hacker (K-9 Mail)
Kindle Hacker (Savory)
Former Perl 6 project manager
Finding me

@obra
jesse@bestpractical.com
facebook.com/jesse.vincent
Hi I'm Jesse

Original Author of RT
Partner at Best Practical
RT project lead
(That just I don't get to
 code much anymore)
Best Practical

We make RT
We sell support
We sell training
We sell consulting
We sell custom development
Our offices

Boston, MA
Moscow, Russia
Hangzhou, China
Pinglin, Taiwan
(We're 11 people)
RT: Request Tracker


General purpose ticketing system
GNU GPLv2
Continuous
development
 since 1996
O(100) downloads
   every day
What is a ticketing system?
It keeps track of what
   needs to get done
RT4 - The whole sordid story
It keeps track of what
       got done
RT4 - The whole sordid story
...along with lots
   of metadata
RT4 - The whole sordid story
...and business logic
...and access control
...It's just a TODO list
On some very serious drugs
RT4 - The whole sordid story
not
RT4 - The whole sordid story
Important properties of
      ticketing systems
●   Everything has a unique ID
●   Everything has a timestamp
●   History can't be edited or erased
What do you use a ticketing
       system for?
Network operations Accounts Payable
Bug tracking       Accounts
                   Receivable
Call center
                   Vacation rentals
Helpdesk
                   Youth counselling
Customer service
                   Workflow
Work orders
What we use RT for
Bug Tracking
Bronze/Silver/Gold support
Customer Development
Resumes
Inbound Sales Inquiries
Sales Leads
Accounts Payable
Accounts Receivable
Who uses RT?
RT4 - The whole sordid story
Who else uses RT?
http://requesttracker.wikia.com/wiki/RTUsers
RT Scales
It scales down
(for testing or development)
Run RT on your laptop
SQLite
Standalone web server
It scales up
Largest RT I know about
40,000-70,000 tickets
...every day
(Nearly 1 ticket/second)
Multiple front-end app servers
Big database server
  with hot standby
Designed to be hookable
     and pluggable
Plugins
●


●   rt-action-linearescalate                   ●   rt-extension-log-memoryusage
●   rt-action-notifygroup                      ●   rt-extension-menubarsearches
●   rt-ajaxyreplypage                              rt-extension-mergeusers
                                               ●
    rt-authen-bitcard
●
                                               ●   rt-extension-mergeusershistory
●   rt-authen-openid2
                                               ●   rt-extension-nagios
●   rt-bugtracker
    rt-bugtracker-public                       ●   rt-extension-notificationmatrix
●


●   rt-condition-complex                       ●   rt-extension-priorityasstring
●   rt-crypt-smime                             ●   rt-extension-quickcalls
●   rt-extension-activityreports               ●   rt-extension-quickdelete
●   rt-extension-activityreports-billing       ●   rt-extension-quickupdate
●   rt-extension-addadminccsonqueuechange          rt-extension-reportspam
                                               ●

    rt-extension-attributewalker
●
                                               ●   rt-extension-rt_cpan_org
    rt-extension-captcha
                                                   rt-extension-spawnlinkedticketinqueue
●
                                               ●
●   rt-extension-cloneticket-withdata
                                                   rt-extension-utils
●   rt-extension-commandbyemail                ●



    rt-extension-commandbymail                 ●   rtfm
●


●   rt-extension-commentoncreate               ●   rtfm-extension-articletemplate
●   rt-extension-customfield-hideemptyvalues   ●   rtir
●   rt-extension-datediscordian                ●   rtx-calendar
●   rt-extension-extractcustomfieldvalues      ●   rtx-emailcompletion
●   rt-extension-formtools                         rtx-ticketlist-transactions
                                               ●
    rt-extension-jsgantt
●
                                               ●   rtx-workflowbuilder
●   rt-extension-ldapimport
(and a bunch more
created by RT users)
RT 4.0
Now available?
Not quite
Christmas 2010:

   4.0.0RC1
March 24, 2011:

  4.0.0 RC7
Release next week?
hcchien has been asking
 me to do a talk on RT4
  since at least 2006.
I've been promising “next year”
          for 5 years.
We started RT4 in
September 2007
I named it 3.999-DANGEROUS
In literature, they call
 that foreshadowing
I do public RT trainings
   a few times a year
I talk about RT's history
These are the slides I use
A Brief History of RT
RT 0.9 (1996)
●   Designed for use at a single
    company
●   2 sysadmins
●   30 users
RT 1.0 (1999)
●   Same as RT 0.9
    + a bit more courage
●   Used at hundeds of companies
●   Dozens of CSRs
●   Thouands of requests per day
●   Intense guilt
RT 2.0 (2001)
●   Total rewrite
●   Just after Jesse escaped Microsoft
●   DBIx::SearchBuilder
●   Abstraction
●   Whole new UI
●   No more frames
●   “Keywords”
RT 3.0 (2003)
●   Overhauled web interface
●   Extension mechanisms
●   Internationalization
●   Custom fields
●   Cleaner internals
●   Tests
RT 3.2 (2004)
●   New search UI
●   Spreadsheet / RSS output
●   Outgoing mail preview and logging
●   UI improvements
●   No major structural changes
●   More tests
RT 3.4 (2005)
●   Reimplemented Custom Fields
●   Custom fields on users, groups
    transactions
●   Generalized Transaction system
●   Faster, Faster, Faster
●   Prettier
●   Even more tests
RT 3.6 (2006)
●   All-CSS layout and styling
●   Customizable homepage
●   Built in charts and reports
●   Ticket "reminders"
●   Comprehensive test coverage
●   Cleaner code
RT 3.8 (2008)
●   More user preferences
●   Timezones
●   Theme
●   Ticket history order
●   New configuration system
●   Even more tests
RT 3.8 (continued)
●   “Favorite” tickets
●   Ticket relationship graphs
●   Branded queues
●   iCal feeds
●   PGP support
RT 4.0 (2008?)
Never trust a vendor who
 makes promises about
  unreleased products
That's really what it said!
It was sort of a joke
...little did I know
All Taiwanese know that
    4 is very unlucky
You're supposed
  to just skip 4
Nobody warned me
...until last night!
In my culture, 6 is
the unlucky number.
RT4 - The whole sordid story
Along came 2006
We started thinking
about building RT 4.0
RT is big
http://www.flickr.com/photos/swiv/4426214075/
RT is big
http://www.flickr.com/photos/daymin/4715213393/
RT is complex
http://www.flickr.com/photos/18909153@N08/5241036226/
RT is complex
RT4 - The whole sordid story
RT is old
http://www.flickr.com/photos/jpott/5326081706/
RT is old
http://www.flickr.com/photos/paulgissane/163290720
What would we change?
Modernize the API
Remove insane features
Use a framework!
Jifty
AJAX
Modern API
Lots of testing affordances
Plack
Automatic Database
Schema Management
UI Helpers
So, we started refactoring
Not a from-scratch rewrite
..but pretty close
No deadline
"It'll be ready when it's ready"
No fixed deliverable
"We want it to be good"
So, we went to work.
What went wrong?
We moved files around
Git made that sort of ok
We decided to modernize
    our coding style
We started renaming
classes and methods
RT's API was old
and InterCapped
The modern perl world
  is prettier_looking
We built refactoring tools
We ported the
full test suite
RT 3.6/3.7 were still in
 active development
We were fixing lots
  of bugs in 3.6
It was a constant battle
    to merge forward
3 years in, RT 3.999 was
     largely "done"
60% of the code of RT 3.8
Almost the same
feature set as RT 3.8.0
Almost the same
test suite as 3.8.0
Much cleaner
Ran on Jifty
Ran on Plack
New "Ticket Lifecycles" system
Much of the UI ported
to Template::Declare
It was a lot better
It killed off lots of bad
   old API decisions
...but mostly better for
    RT's developers
2627 commits
3 years of development
1484 files changed,
174558 insertions(+),
319761 deletions(-)
3.999 was different than 3.8 in
    some important ways
The API was recognizably the
           same
3.999 was better than 3.8 in
   some important ways
The API was 100%
  incompatible
There were lots and lots of
reasons to make the change
There are lots and lots of RT
   extensions out there.
We've done at least 75
There are more on CPAN
Just about every RT instance
has some local customizations
RT has been downloaded
about 100 times every day
For the past 5+ years
How many of you have ever
 customized or extended
     some software?
Guess what happens when
  you change an API?
Ever had an API change
break your customization?
RT has many users
They rely on many, many
     RT extensions
●


●   rt-action-linearescalate                   ●   rt-extension-log-memoryusage
●   rt-action-notifygroup                      ●   rt-extension-menubarsearches
●   rt-ajaxyreplypage                              rt-extension-mergeusers
                                               ●
    rt-authen-bitcard
●
                                               ●   rt-extension-mergeusershistory
●   rt-authen-openid2
                                               ●   rt-extension-nagios
●   rt-bugtracker
    rt-bugtracker-public                       ●   rt-extension-notificationmatrix
●


●   rt-condition-complex                       ●   rt-extension-priorityasstring
●   rt-crypt-smime                             ●   rt-extension-quickcalls
●   rt-extension-activityreports               ●   rt-extension-quickdelete
●   rt-extension-activityreports-billing       ●   rt-extension-quickupdate
●   rt-extension-addadminccsonqueuechange          rt-extension-reportspam
                                               ●

    rt-extension-attributewalker
●
                                               ●   rt-extension-rt_cpan_org
    rt-extension-captcha
                                                   rt-extension-spawnlinkedticketinqueue
●
                                               ●
●   rt-extension-cloneticket-withdata
                                                   rt-extension-utils
●   rt-extension-commandbyemail                ●



    rt-extension-commandbymail                 ●   rtfm
●


●   rt-extension-commentoncreate               ●   rtfm-extension-articletemplate
●   rt-extension-customfield-hideemptyvalues   ●   rtir
●   rt-extension-datediscordian                ●   rtx-calendar
●   rt-extension-extractcustomfieldvalues      ●   rtx-emailcompletion
●   rt-extension-formtools                         rtx-ticketlist-transactions
                                               ●
    rt-extension-jsgantt
●
                                               ●   rtx-workflowbuilder
●   rt-extension-ldapimport
We broke all of them
(all the extensions)
(all the users)
RT 3.999 had 40% less
  code than RT 3.8
RT 3.999 looked
 just like RT 3.8
RT 3.999 had almost the
 same features as 3.8
...with one really big change
RT 3.x has a system
  called “Scrips”
Scrips let you build
custom business logic
They're sort of like
“if...then...” statements
They can fire after any update
RT's approvals system
     uses Scrips
RT's email-sending rules
      use Scrips
They're really powerful
...but not omnipotent
Scrips are unchanged
     since RT 2.0
We decided to replace
 Scrips in RT 3.999
I wanted a simple
 macro language
clkao built the backend
“I'm not building a stupid macro
 language. If we're doing this, it
should support eval and apply”
We created lorzy
It was a lispy language
...with named, typed
      parameters
We ripped out Scrips and
    dropped in lorzy
Greenspun's Tenth Rule

Any sufficiently complicated C or
Fortran program contains an ad
hoc, informally-specified, bug-
ridden, slow implementation of
half of Common Lisp.
...at least we did it on purpose?
So, have I sold
RT 3.999 to you?
I don't like hurting users.
I don't like hurting customers.
Last summer, we threw away
      3 years of work.
[sad panda]
What'd we learn?
Second system syndrome
       hurts a lot
RT4 - The whole sordid story
.oO{         My problem is that
          I actually have users
       I don't want to alienate }
A working test suite is
  not a magic bullet
Incremental updates
          vs
    gut renovation
Got a working system?
Make the smallest change
 that could possibly work
Build for your users
When we do client work, they
say that they want high-quality
 software last week for almost
             free.
"Good, fast and cheap,
    pick any two"
Turns out that you
 must pick two.
Last summer, we started
    RT4 over again
What'd we do different
      this time?
We were working
 for a customer
The customer wanted
      RT 3.8...
...with a lot of extensions.
They wanted to pay us to
integrate those extensions.
We had a deadline
We had a fixed set of
   deliverables
We had a mostly fixed set of
       deliverables
We got to work
The client wanted frequent
       beta releases
The new RT 3.9 needed to
be deployable at any time
Lots of topic branches
We started pulling in work we'd
already done as core features
RTFM became Articles
Stock answers
Really useful
Lots of folks don't install it
So, now you don't get a choice
Lifecycles
Originally built for 3.999 &
    backported to 3.8
Mobile Interface
RT4 - The whole sordid story
Date custom fields
IP address custom fields
Full-text search for MySQL,
    Postgres and Oracle
Gmail-style folding
 of ticket history
RT4 - The whole sordid story
Some new features,
we built from scratch
New auditing and
debugging tools
A brand new visual theme
A brand new theme editor
RT4 - The whole sordid story
A new permissions editor UI
RT4 - The whole sordid story
Dropdown and radio-button
      custom fields
Autocompleters for users
 and email addresses
Ported to Plack
Some stuff, you'd never notice
Overhauled how we
do boilerplate code
(Fewer files change.
 They change less)
Cut down our use of autoconf
Made the test suite much faster
Eliminated "noise"
from the test suite
Successfully delivered
    to customer
Since then, we've been
stabilizing, fixing bugs and
       improving docs
RC 1 came out just after
      christmas
RC 7 came out last week
We're very, very close.
Try out RT4

http://bestpractical.com/rt/download.html
http://bestpractical.com/rt/git.html
Release Candidate means we
think it's ready for production
If it breaks, email
rt-bugs@bestpractical.com
Thank you!

Questions?
1 of 265

Recommended

RT and RT for Incident Response by
RT and RT for Incident ResponseRT and RT for Incident Response
RT and RT for Incident ResponseBest Practical Solutions
7.5K views104 slides
An introduction to RTIR by
An introduction to RTIRAn introduction to RTIR
An introduction to RTIRJesse Vincent
1.3K views61 slides
A brief introduction to RTIR by
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIRJesse Vincent
3.1K views98 slides
Chapter 8 security tools ii by
Chapter 8   security tools iiChapter 8   security tools ii
Chapter 8 security tools iiSyaiful Ahdan
527 views30 slides
PinTrace Advanced AWS meetup by
PinTrace Advanced AWS meetup PinTrace Advanced AWS meetup
PinTrace Advanced AWS meetup Suman Karumuri
1.5K views23 slides
FOSDEM 2012 git-annex talk by
FOSDEM 2012 git-annex talkFOSDEM 2012 git-annex talk
FOSDEM 2012 git-annex talkRichiH
679 views20 slides

More Related Content

Similar to RT4 - The whole sordid story

Data Structures for High Resolution, Real-time Telemetry at Scale by
Data Structures for High Resolution, Real-time Telemetry at ScaleData Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at ScaleScyllaDB
670 views21 slides
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics by
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data AnalyticsSupersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analyticsmason_s
23.4K views81 slides
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016 by
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016Matthew Broberg
1.3K views67 slides
Big data Argentina meetup 2020-09: Intro to presto on docker by
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerFederico Palladoro
211 views32 slides
From logs to metrics by
From logs to metricsFrom logs to metrics
From logs to metricsLeonardo Di Donato
429 views31 slides
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and Analytics by
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and AnalyticsKranky Geek Sao Paulo 2016 - WebRTC Statistics and Analytics
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and Analyticscallstats.io
457 views33 slides

Similar to RT4 - The whole sordid story(20)

Data Structures for High Resolution, Real-time Telemetry at Scale by ScyllaDB
Data Structures for High Resolution, Real-time Telemetry at ScaleData Structures for High Resolution, Real-time Telemetry at Scale
Data Structures for High Resolution, Real-time Telemetry at Scale
ScyllaDB670 views
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics by mason_s
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data AnalyticsSupersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analytics
mason_s23.4K views
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016 by Matthew Broberg
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016
Snap Telemetry Framework & Plugin Architecture at GrafanaCon 2016
Matthew Broberg1.3K views
Big data Argentina meetup 2020-09: Intro to presto on docker by Federico Palladoro
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
Federico Palladoro211 views
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and Analytics by callstats.io
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and AnalyticsKranky Geek Sao Paulo 2016 - WebRTC Statistics and Analytics
Kranky Geek Sao Paulo 2016 - WebRTC Statistics and Analytics
callstats.io457 views
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami... by Databricks
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Databricks1.8K views
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento by FIWARE
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE343 views
Creating PostgreSQL-as-a-Service at Scale by Sean Chittenden
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden1.2K views
Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020 by Taro L. Saito
Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020
Journey of Migrating 1 Million Presto Queries - Presto Webinar 2020
Taro L. Saito320 views
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to... by Datacratic
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
Datacratic1.4K views
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google by Ambassador Labs
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, GoogleBringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Ambassador Labs6.3K views
OSDC 2014: Devdas Bhagat - Graphite: Graphs for the modern age by NETWAYS
OSDC 2014: Devdas Bhagat - Graphite: Graphs for the modern age OSDC 2014: Devdas Bhagat - Graphite: Graphs for the modern age
OSDC 2014: Devdas Bhagat - Graphite: Graphs for the modern age
NETWAYS1.2K views
FIWARE Tech Summit - Stream Processing with Kurento Media Server by FIWARE
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE843 views
Python and R for quantitative finance by Luca Sbardella
Python and R for quantitative financePython and R for quantitative finance
Python and R for quantitative finance
Luca Sbardella13.8K views
How YugaByte DB Implements Distributed PostgreSQL by Yugabyte
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
Yugabyte1.3K views
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento by FIWARE
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE486 views
Presto Apache BigData 2017 by Zhenxiao Luo
Presto Apache BigData 2017Presto Apache BigData 2017
Presto Apache BigData 2017
Zhenxiao Luo480 views

More from Jesse Vincent

Building a keyboard from scratch by
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratchJesse Vincent
165.6K views158 slides
So, I made a keyboard by
So, I made a keyboardSo, I made a keyboard
So, I made a keyboardJesse Vincent
62.7K views136 slides
Perl 5.16 and Beyond - YAPC::Asia 2011 by
Perl 5.16 and Beyond - YAPC::Asia 2011Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011Jesse Vincent
1.6K views254 slides
Perl 5.16 and beyond by
Perl 5.16 and beyondPerl 5.16 and beyond
Perl 5.16 and beyondJesse Vincent
4.6K views302 slides
OSCON 2011 - Perl 5.16 and beyond by
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyondJesse Vincent
4.2K views307 slides
K-9 Mail for Android by
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for AndroidJesse Vincent
2.3K views141 slides

More from Jesse Vincent(18)

Building a keyboard from scratch by Jesse Vincent
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratch
Jesse Vincent165.6K views
So, I made a keyboard by Jesse Vincent
So, I made a keyboardSo, I made a keyboard
So, I made a keyboard
Jesse Vincent62.7K views
Perl 5.16 and Beyond - YAPC::Asia 2011 by Jesse Vincent
Perl 5.16 and Beyond - YAPC::Asia 2011Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011
Jesse Vincent1.6K views
OSCON 2011 - Perl 5.16 and beyond by Jesse Vincent
OSCON 2011 - Perl 5.16 and beyondOSCON 2011 - Perl 5.16 and beyond
OSCON 2011 - Perl 5.16 and beyond
Jesse Vincent4.2K views
P2P Bug Tracking with SD by Jesse Vincent
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
Jesse Vincent3.1K views
SD - A peer to peer issue tracking system by Jesse Vincent
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking system
Jesse Vincent30.4K views
Hacking your Kindle (OSCON Lightning Talk) by Jesse Vincent
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)
Jesse Vincent3.5K views
Beginning Kindle Hackery by Jesse Vincent
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle Hackery
Jesse Vincent12.4K views
SD, a P2P bug tracking system by Jesse Vincent
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
Jesse Vincent13.6K views
Prophet - Beijing Perl Workshop by Jesse Vincent
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
Jesse Vincent1K views
Beijing Perl Workshop 2008 Hiveminder Secret Sauce by Jesse Vincent
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Jesse Vincent1.2K views
Prophet: a path out of the Cloud by Jesse Vincent
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the Cloud
Jesse Vincent1.3K views
Hiveminder - Everything but the Secret Sauce by Jesse Vincent
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret Sauce
Jesse Vincent2.9K views
Prophet - A peer to peer replicated disconnected database by Jesse Vincent
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected database
Jesse Vincent4.4K views

Recently uploaded

Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
42 views31 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
139 views17 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
69 views8 slides
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsShapeBlue
81 views13 slides
HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
26 views151 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
317 views86 slides

Recently uploaded(20)

Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1042 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi139 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue81 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn26 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue26 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue40 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue62 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc72 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue31 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue55 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue60 views

RT4 - The whole sordid story