SlideShare a Scribd company logo

Joomla Bugs, Patches & Fun - Joomladagen 2014

Peter Martin
Peter Martin
Peter MartinJoomla website specialist db8 from Nijmegen, Netherlands at db8

Alle software bevat kleine fouten ("bugs"). Joomla ook. Om die fouten te verhelpen worden verbeteringen ("patches") gemaakt en uitgebracht. Voordat die verbeteringen in de Joomla broncode terecht komen, dienen ze getest te worden. Het in teamverband testen van bugs en patches kan erg leuk ("fun") zijn. Je hebt daarvoor geen programmeerkennis nodig! Iedereen met een beetje Joomla ervaring kan helpen met het testen van bugs en patches! In deze sessie verteld Peter Martin hoe hij enthousiast werd over Bugs, Patches & Fun, hoe het proces van software fouten in Joomla oplossen werkt. En hoe jij zonder programmeerkennis kunt helpen om de Joomla broncode te verbeteren.

Joomla Bugs, Patches & Fun - Joomladagen 2014

1 of 90
Download to read offline
Joomladagen 2014Joomladagen 2014
Bugs, patches &
fun
Peter Martin, www.db8.nl. twitter: @pe7er
Joomladagen.nl/2014 – 22+ 23 maart 2014
Joomladagen 2014Joomladagen 2014
Peter Martin
● Joomla website specialist
Marketing + Communicatie
achtergrond & technische
affiniteit
● Vrijwilliger Joomla:
– Global Moderator
– Community Leadership
Team
● Open Coffee Nijmegen
● Linux User Group Nijmegen
Interesses:
● Open Source Software
● Linux sinds 2007
(Ubuntu → Debian → Arch
Linux → Debian)
● Raspberry Pi
● Muziek (Vinyl)
● Filmhuisfilms
Website: www.db8.nl – e-mail: peter at db8.nl
LinkedIn: http://www.linkedin.com/in/pe7er – Twitter: @pe7er
Joomladagen 2014Joomladagen 2014
Overzicht Presentatie
>>> Sheets via: www.db8.nl <<<
a)Introductie
b)Bugs & Patches
c)“Mijn” bug
d)Pizza, Bugs (& Beer) & Fun
e)Bugtracker Process
f) Test, Test, 1, 2, 3
g)Demonstratie
h)Vragen?
Joomladagen 2014Joomladagen 2014
b) Bug & Patches
Joomladagen 2014Joomladagen 2014
Een software bug
● Fout in een computer
programma
– Onjuist of onverwacht
resultaat, of
onbedoelde gedrag
– Door programmeur
gemaakte fouten in de
bron code (source
code) van het
programma.
Joomladagen 2014Joomladagen 2014
Joomla bron code
index.php regel 1-30
<?php
/**
 * @package    Joomla.Site
 *
 * @copyright  Copyright (C) 2005 ­ 2013 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
if (version_compare(PHP_VERSION, '5.3.1', '<'))
{
die('Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!');
}
/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php'))
{
include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}
Ad

Recommended

Grandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User FriendlyGrandma & Joomla - Make Joomla User Friendly
Grandma & Joomla - Make Joomla User FriendlySander Potjer
 
JD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-RJD14nl Form2content VS Zoo GJ-R
JD14nl Form2content VS Zoo GJ-RGert-Jan Radstaake
 
Joomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorJoomla componenten bouwen met Component Creator
Joomla componenten bouwen met Component CreatorRené Kreijveld
 
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nlSitemaps uit de doeken gedaan - Nico Bouwman - #jd15nl
Sitemaps uit de doeken gedaan - Nico Bouwman - #jd15nlJoomla!Days Netherlands
 
Joomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceJoomladagen 2015 Joomla Performance
Joomladagen 2015 Joomla PerformanceSimon Kloostra
 

More Related Content

What's hot

Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Rick Spaan
 
Going live with a Checklist
Going live with a ChecklistGoing live with a Checklist
Going live with a ChecklistRené Kreijveld
 
Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Peter Martin
 
Versimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesVersimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesEmiel Kwakkel
 
Data optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielData optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielRené Kreijveld
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenSander Potjer
 
Presentatie ark extensions inline edit and mediamanagment
Presentatie ark extensions inline edit and mediamanagmentPresentatie ark extensions inline edit and mediamanagment
Presentatie ark extensions inline edit and mediamanagmentJoris Stolker
 
Een autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentEen autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentRené Kreijveld
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Sander Potjer
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! pluginStudioDeOorzaak
 
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nl
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nlBeter vindbaar met Onpage SEO - Maurice Lehr - #jd15nl
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nlJoomla!Days Netherlands
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templatesHerman Peeren
 
Nllgg Presentatie 2 Februari 2008
Nllgg Presentatie 2 Februari 2008Nllgg Presentatie 2 Februari 2008
Nllgg Presentatie 2 Februari 2008Wilco Jansen
 
Joomla! gebruiksvriendelijker. 10 tips!
Joomla! gebruiksvriendelijker. 10 tips!Joomla! gebruiksvriendelijker. 10 tips!
Joomla! gebruiksvriendelijker. 10 tips!Sander Potjer
 
Joomladagen 2016: Top 10 joomla SEO bloopers
Joomladagen 2016: Top 10 joomla SEO bloopersJoomladagen 2016: Top 10 joomla SEO bloopers
Joomladagen 2016: Top 10 joomla SEO bloopersSimon Kloostra
 

What's hot (16)

Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016Joomla backend-beheer vereenvoudigen - Joomladagen 2016
Joomla backend-beheer vereenvoudigen - Joomladagen 2016
 
Going live with a Checklist
Going live with a ChecklistGoing live with a Checklist
Going live with a Checklist
 
Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15Linux command-line-magic-jdnl15
Linux command-line-magic-jdnl15
 
Versimpel beheer met Joomla modules
Versimpel beheer met Joomla modulesVersimpel beheer met Joomla modules
Versimpel beheer met Joomla modules
 
Data optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielData optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobiel
 
Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publiceren
 
Presentatie ark extensions inline edit and mediamanagment
Presentatie ark extensions inline edit and mediamanagmentPresentatie ark extensions inline edit and mediamanagment
Presentatie ark extensions inline edit and mediamanagment
 
Een autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2ContentEen autodealer website bouwen met Form2Content
Een autodealer website bouwen met Form2Content
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
 
JUGs Presentatie - #jd15nl
JUGs Presentatie - #jd15nlJUGs Presentatie - #jd15nl
JUGs Presentatie - #jd15nl
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! plugin
 
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nl
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nlBeter vindbaar met Onpage SEO - Maurice Lehr - #jd15nl
Beter vindbaar met Onpage SEO - Maurice Lehr - #jd15nl
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Nllgg Presentatie 2 Februari 2008
Nllgg Presentatie 2 Februari 2008Nllgg Presentatie 2 Februari 2008
Nllgg Presentatie 2 Februari 2008
 
Joomla! gebruiksvriendelijker. 10 tips!
Joomla! gebruiksvriendelijker. 10 tips!Joomla! gebruiksvriendelijker. 10 tips!
Joomla! gebruiksvriendelijker. 10 tips!
 
Joomladagen 2016: Top 10 joomla SEO bloopers
Joomladagen 2016: Top 10 joomla SEO bloopersJoomladagen 2016: Top 10 joomla SEO bloopers
Joomladagen 2016: Top 10 joomla SEO bloopers
 

Similar to Joomla Bugs, Patches & Fun - Joomladagen 2014

JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!René Kreijveld
 
Trello, git, gitlab, gitlab-ci
Trello, git, gitlab, gitlab-ciTrello, git, gitlab, gitlab-ci
Trello, git, gitlab, gitlab-ciZhann_
 
Joomla10 Joomla15 Migratie
Joomla10 Joomla15 MigratieJoomla10 Joomla15 Migratie
Joomla10 Joomla15 MigratieWilco Jansen
 
Programmeren van Plugins voor Joomla 1.5
Programmeren van Plugins voor Joomla 1.5Programmeren van Plugins voor Joomla 1.5
Programmeren van Plugins voor Joomla 1.5Peter Martin
 
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...Relatics
 
Tussentijdse presentatie maart 2013
Tussentijdse presentatie maart 2013Tussentijdse presentatie maart 2013
Tussentijdse presentatie maart 2013Tim Ameye
 
Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tim Ameye
 
XSPlatforms met PDM naar grote hoogte • Directie stream
XSPlatforms met PDM naar grote hoogte • Directie streamXSPlatforms met PDM naar grote hoogte • Directie stream
XSPlatforms met PDM naar grote hoogte • Directie streamEnginia
 

Similar to Joomla Bugs, Patches & Fun - Joomladagen 2014 (8)

JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!JMonitoring, powertool voor Joomla!
JMonitoring, powertool voor Joomla!
 
Trello, git, gitlab, gitlab-ci
Trello, git, gitlab, gitlab-ciTrello, git, gitlab, gitlab-ci
Trello, git, gitlab, gitlab-ci
 
Joomla10 Joomla15 Migratie
Joomla10 Joomla15 MigratieJoomla10 Joomla15 Migratie
Joomla10 Joomla15 Migratie
 
Programmeren van Plugins voor Joomla 1.5
Programmeren van Plugins voor Joomla 1.5Programmeren van Plugins voor Joomla 1.5
Programmeren van Plugins voor Joomla 1.5
 
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...
Willem van de Wetering - Master template Grip: Synchronisatie binnen Rijkswat...
 
Tussentijdse presentatie maart 2013
Tussentijdse presentatie maart 2013Tussentijdse presentatie maart 2013
Tussentijdse presentatie maart 2013
 
Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012
 
XSPlatforms met PDM naar grote hoogte • Directie stream
XSPlatforms met PDM naar grote hoogte • Directie streamXSPlatforms met PDM naar grote hoogte • Directie stream
XSPlatforms met PDM naar grote hoogte • Directie stream
 

More from Peter Martin

Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Peter Martin
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)Peter Martin
 
Internet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenInternet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenPeter Martin
 
Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Peter Martin
 
Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Peter Martin
 
GNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenGNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenPeter Martin
 
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Peter Martin
 
Music Trackers - Linux Usergroup Nijmegen 2014
Music Trackers - Linux Usergroup Nijmegen 2014Music Trackers - Linux Usergroup Nijmegen 2014
Music Trackers - Linux Usergroup Nijmegen 2014Peter Martin
 
linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014Peter Martin
 
How IT works - Joomladay UK 2014
How IT works - Joomladay UK 2014How IT works - Joomladay UK 2014
How IT works - Joomladay UK 2014Peter Martin
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Peter Martin
 
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Peter Martin
 
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Peter Martin
 
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Peter Martin
 
Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Peter Martin
 
How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014Peter Martin
 
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantPeter Martin
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Peter Martin
 
Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Peter Martin
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Peter Martin
 

More from Peter Martin (20)

Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016
 
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)JCE editor optimaliseren (Joomla Den Bosc­h 2016)
JCE editor optimaliseren (Joomla Den Bosc­h 2016)
 
Internet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup NijmegenInternet of Things - Linux Usergroup Nijmegen
Internet of Things - Linux Usergroup Nijmegen
 
Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)Joomla: 10 years of progress (jd15fr)
Joomla: 10 years of progress (jd15fr)
 
Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15Joomla 10-jaar-vooruitgang-jdnl15
Joomla 10-jaar-vooruitgang-jdnl15
 
GNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spottenGNU Radio & digitaal vliegtuig spotten
GNU Radio & digitaal vliegtuig spotten
 
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
 
Music Trackers - Linux Usergroup Nijmegen 2014
Music Trackers - Linux Usergroup Nijmegen 2014Music Trackers - Linux Usergroup Nijmegen 2014
Music Trackers - Linux Usergroup Nijmegen 2014
 
linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014linux-commandline-magic-Joomla-World-Conference-2014
linux-commandline-magic-Joomla-World-Conference-2014
 
How IT works - Joomladay UK 2014
How IT works - Joomladay UK 2014How IT works - Joomladay UK 2014
How IT works - Joomladay UK 2014
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
 
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
Joomla multilingual website without 3rd party extensions - Joomladay UK 2014
 
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
 
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
Developing a Joomla 3.x Component using RAD FOF- Part 1: Back-end - Joomladay...
 
Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014Troubleshooting Joomla! problems - Joomladay Germany 2014
Troubleshooting Joomla! problems - Joomladay Germany 2014
 
How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014How IT works - Joomladay Germany 2014
How IT works - Joomladay Germany 2014
 
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & VagrantLinux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
Linux Nijmegen - Webserver (LAMP stack) opzetten met VirtualbBox & Vagrant
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014
 
Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014Joomla 3 Component programmeren met RAD - Joomladagen 2014
Joomla 3 Component programmeren met RAD - Joomladagen 2014
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)
 

Joomla Bugs, Patches & Fun - Joomladagen 2014

  • 1. Joomladagen 2014Joomladagen 2014 Bugs, patches & fun Peter Martin, www.db8.nl. twitter: @pe7er Joomladagen.nl/2014 – 22+ 23 maart 2014
  • 2. Joomladagen 2014Joomladagen 2014 Peter Martin ● Joomla website specialist Marketing + Communicatie achtergrond & technische affiniteit ● Vrijwilliger Joomla: – Global Moderator – Community Leadership Team ● Open Coffee Nijmegen ● Linux User Group Nijmegen Interesses: ● Open Source Software ● Linux sinds 2007 (Ubuntu → Debian → Arch Linux → Debian) ● Raspberry Pi ● Muziek (Vinyl) ● Filmhuisfilms Website: www.db8.nl – e-mail: peter at db8.nl LinkedIn: http://www.linkedin.com/in/pe7er – Twitter: @pe7er
  • 3. Joomladagen 2014Joomladagen 2014 Overzicht Presentatie >>> Sheets via: www.db8.nl <<< a)Introductie b)Bugs & Patches c)“Mijn” bug d)Pizza, Bugs (& Beer) & Fun e)Bugtracker Process f) Test, Test, 1, 2, 3 g)Demonstratie h)Vragen?
  • 5. Joomladagen 2014Joomladagen 2014 Een software bug ● Fout in een computer programma – Onjuist of onverwacht resultaat, of onbedoelde gedrag – Door programmeur gemaakte fouten in de bron code (source code) van het programma.
  • 6. Joomladagen 2014Joomladagen 2014 Joomla bron code index.php regel 1-30 <?php /**  * @package    Joomla.Site  *  * @copyright  Copyright (C) 2005 ­ 2013 Open Source Matters, Inc. All rights reserved.  * @license    GNU General Public License version 2 or later; see LICENSE.txt  */ if (version_compare(PHP_VERSION, '5.3.1', '<')) { die('Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!'); } /**  * Constant that is checked in included files to prevent direct access.  * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower */ define('_JEXEC', 1); if (file_exists(__DIR__ . '/defines.php')) { include_once __DIR__ . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', __DIR__); require_once JPATH_BASE . '/includes/defines.php'; }
  • 7. Joomladagen 2014Joomladagen 2014 Bron code – kleine bug index.php require_once JPATH_BASE . '/includes/framework.php'; // Mark afterLoad in the profiler. JDEBUG ? $_PROFILER­>mark('afterLoad') : null; // Instantiate the application. $app = Jfactory::getApplication('site'); // Initialise the application. $app­>initialise();                         ug                        b                       g           bug                       u        bug       bugbug          b       g             bug      bugbug bu                bug  bugbugbugbugbugbug   bug   bug   bugbugbugbugbugbugbugbugb      bug   bug bugbugbugbugbugbugbugbugbu    bugbugbugbu gbugbugbugbugbugbugbugbugbu   bugbugbugbug    bugbugbugbu gbugbugbugbugbugbugbugbugbu      bug   bug bugbugbugbugbugbugbugbugbu   bug   bug  gbugbugbugbugbugbugbugbugb                bug  bugbugbugbugbugbug             bug      bugbug  bu       bugbug          b        g                       u         bug                       g            bug                        b                         ug
  • 8. Joomladagen 2014Joomladagen 2014 Bron code – grote bug index.php // Mark afterIntialise in the profiler. JDEBUG ? $_PROFILER­>mark('afterInitialise') : null;                        ""$o               o$""                          ""$o           o$"                      o    "$""""o                  "o         $"                 o""" $"          "$o                "$o" $o "  $                 o$"           "$o               $$$o$$$$o$$$$               $"             "oooo      o "" ""$$$$$$$$""o"" oo     oooo"              "$$$$$$oo"oo$$$o" o$$$$oo" o$$$o "o$$$$$$$                    "$ $$$$$$$$$oo   o$$$$$$$$$o"$"                    $ $$$   $$$$$$  o$$$$$$  "$$o"o                   $ $$$$o  $$$$$$  $$$$$$$  $$$$o"o                  $  $$$$$  $$$$$"   "$$$$$ $$$$$$ $                   $o""""" """"         """ """"""$"                  $  o$$$$$"""$$$$$"$$$$$""$$$$$ooo"o                  $  o"$o $$$$$$$$oo$$$$$$$$o $$""  $               oo$     "$$$$$$$$$$$$$$$$$$$$" o" o $oo            o$$$"$ $$o"o $$$$$$$"" "$$$$$$$    o$$ $$$$o      UN BUG          o$$$$" $ $$$$ o "$$$$$oo o$$$$$$  "o$$$$ $ $$$$$         o$$""    $ $$$$$o" "$$$$$$$$$$$$$ o o$$$$$o$   "" $$         $$"      $ $$$"  o"o$$$$$$$$$$$$   " "$$$ $       $$o        o$$       "o $$    "  $$$$$$$$$$$"o    "$$ $       $$$        $$$      oo$ $       o""$$""$$$o "      $"o$o      $$$o       o$$$$   o$$$"o"$oo$$$$o" o     $o $$$$$oo$ $$$$o    $$$$       $$$$   $$$$" $ $$$$$""   $$  o$$$ """$$$$"o" "$$$o  "$$$o       $$$" o """    $ $$$oo   $$$$o" $$   o$$$"o"   """"$  o$$$    o$"     $$$       $ "$"" o$"o"$$o$$$$  "$$"o"      o$$     "$oo  $ "        $$o       $ "oo$"o$$$"o$o"$$$$o" o"       $$$       ""$o $$          $$$o       "o$$o$"$$"$$o$$o$$"$$o"       $$$          ""o              $$$        ""$$$ $$$$$$ $$$$ $"        $$$$            $$              $$$$           $$$$"$$$o$ $""          $$$               $$$$             "$$$ """            $$$$               $$""                                 "$$            oo$"                                       $ooo           $                                             "$$
  • 9. Joomladagen 2014Joomladagen 2014 Bron code – hele grote bug index.php // Route the application. $app­>route(); // Mark afterRoute in the profiler. JDEBUG ? $_PROFILER­>mark('afterRoute') : null;      .. ..oooo.....ooo...   .odSS4PYYYSSOOXXXXXXXXXOodbgooo.  /SSYod$$$$SSOIIPXXXXXXXXXYYP.oo.*b. ($$Yd$$$$SSSOII:XXXXXXXX:IIoSSS$$b.Y,  Yd$$$$SSSOII:XXXXXXXXXX:IIOOSSS$$$b   d$$$$SSSOOI:XP"YXXXXXXXX:IIOOSSSS$$$   Y$$$SSSOOII:XbdXXXXXP"YX:IIOOOSS$$$$)   'Y$$$SSSOI:XXXXXXXXXbodX:IIOOSS$$$$$/    "Y$$$SSSOI(PoTXXXXXTo)XXIIOOOSS$$$*'      ""*Y$S(((PXXXXXXXY))dIIOSSS$$dP'         "*'()P;XXXXXXXXY)IIOSSS$P".oS,         (S'(P;XXXXXXXP;Y)XXYOP".oSSSSb        (S'(P;'XXXXXXX';Y).ooooSSSSSSSS)        (S'(P;'XXXXXXP';Y).oSSSSSSSSSSSP        (SS'Y);YXXXXX';(Y.oSSSSSSSSSSSSP         YSS'Y)'YXXX".(Y.oSSP.SSSSSSSSY          YSS'"" XXX""oooSSP.SSSSSSSSY          SSSSSS YXXX:SSSSP.SSSSSSSSY          SSSSSP  Yxb:SSSP.S"SSSSSSP          S(OO)S   YXb:SY    )SSSSS          SSSSO    )YXb.I    ISSSSP          YSSSY    I."YXXb   Y(SS)I          )SSS(    dSSo.""*b  YSSSY          OooSb   dSSSSP      )SSS(                  dSSSY       OooSS                  OooSP
  • 10. Joomladagen 2014Joomladagen 2014 Bron code – “zombie bug” index.php // Route the application. $app­>route(); // Mark afterRoute in the profiler. JDEBUG ? $_PROFILER­>mark('afterRoute') : null;                  .....                                                                    C C  /                                                                   /<   /       ___ __________/_#__=o           /(­ /(_________            )  )_      o              /| /|       |'     |                                                                  |     _|                                                                  /o   __                                                                 / '     |                                      / /      |                                                               /_/______|                                                              (   _(    <                                                                                                                                                |                  ________                                        ________                 
  • 11. Joomladagen 2014Joomladagen 2014 Bron code – “ninja bug” index.php // Route the application. $app­>route(); // Mark afterRoute in the profiler. JDEBUG ? $_PROFILER­>mark('afterRoute') : null;
  • 12. Joomladagen 2014Joomladagen 2014 Een software patch ● Stukje software om probleem op te lossen – Verhelpen van foutmelding – Verhelpen van beveiligingsprobleem – Het verbeteren van de gebruiksvriendelijkheid of prestaties ● .diff patch – Een bestandje dat de verschillen met voorgaande versie beschrijft
  • 13. Joomladagen 2014Joomladagen 2014 Foutmeldingen & patches beheren ● Bijhouden van de gemelde fouten in de software: – Rapporteren – Communicatie – Patches delen – Status van fout – Statistieken ● git – Versiebeheer software ● github.com – Opslagplaats & versiebeheer
  • 14. Joomladagen 2014Joomladagen 2014 Joomla & Patches ● Joomla 1.5 = EOL (einde oefening) – Geen patches – Geen nieuwe functies ● Joomla 2.5 = LTS (Lange termijn ondersteuning) – Wel patches – Geen nieuwe functies ● Joomla 3.x = STS (Korte termijn ondersteuning) – Wel patches – Ook nieuwe functies
  • 16. Joomladagen 2014Joomladagen 2014 “Mijn” Bug ● 7 februari 2013, rond 10:00 uur ● Joomla 3.0.3 testen voor gebruik bij een klant
  • 18. Joomladagen 2014Joomladagen 2014 Het probleem aanmelden ● Niet echt een bug, wel verwarrend... ● 7 februari 2013, om 10:29 uur (en 35 seconden) bug aangemeld op Joomla's Issue Tracker: http://joomlacode.org/gf/project/joomla/tracker/? action=TrackerItemEdit&tracker_item_id=30077
  • 20. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing ● Lokale Joomla installatie van laatste 3.0 versie ● In Joomla's broncode zelf de functionaliteit toegevoegd ● 7 februari 2013, 11:38 uur mijn code toegevoegd als proof-of-concept: http://joomlacode.org/gf/project/joomla/tracker/? action=TrackerItemEdit&tracker_item_id=30077
  • 21. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing ● Februari 2013: reacties van anderen, paar opmerkingen en suggesties ● 27 Maart 2013: “can not download sample.php. Please zip it.” – → Joomlacode.org accepteert uit veiligheidsoogpunt geen .php bestanden... ● April 2013: paar opmerkingen & suggesties ● Mei 2013: ….. niks, nada, nothing, ничего, kitu, ‫,لش شيء‬ ไม่มีอะไร
  • 23. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing Zaterdag 1 juni 2013: Joomla Bug Squad Night bij JandBeyond (internationaal Joomla congres) in Noordwijkerhout, Nederland http://www.youtube.com/watch?v=v6YdZJtzJxo
  • 25. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing Op Joomla Bug Squad Night: – Meest recente Joomla versie (“master branch”) geïnstalleerd vanaf GitHub – Keuze opties bij installatie van Joomla getest – Mijn proof-of-concept verandering geprogrammeerd – Een “diff patch” gemaakt (dank aan Andrea Tarr!) – De .diff patch toegevoegd aan Joomla Issue Tracker – Biertje gedronken Resultaat: Zaterdag 2 juni 2013, 00:30 uur “I've created a patch 30077.patch ready to test.”
  • 27. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing Zaterdag 2 juni 2013, patch “30077” 00:54 uur @test (Hans Kuijpers) 00:56 uur @test (Olaf Offick) patch tested successfully 01:05 uur @test (Mike Veeckmans) tested succesfully #jab13 01:05 uur (Andrea Tarr) Multiple good tests - moving to rtc
  • 29. Joomladagen 2014Joomladagen 2014 Werken aan een oplossing Zaterdag 2 juni 2013, patch “30077” 01:31 uur (Michael Babker) Merged at https://github.com/joomla/joomla- cms/commit/37843e88ceae995ffa73f245f7abcd45d01 5cb9a Daarna verder verbeterd door anderen: – Generieker gemaakt: versie informatie verwijderd (Jean-Marie Simonet) – Betere layout voor tooltips
  • 33. Joomladagen 2014Joomladagen 2014 d) Pizza, Bugs (& Beer) & Fun
  • 34. Joomladagen 2014Joomladagen 2014 "Pizza, Bugs & Fun" Vrijdag 12 juli 2013 – Wereldwijd georganiseerd – Nederland → Eindhoven: Josien Verreijt, Marijke Stuivenberg, Roland Dalmulder & Peter Martin
  • 36. Joomladagen 2014Joomladagen 2014 Joomladay Germany 2013 ● Zondag 15 september 2013 Bug Squashing und Accessibility Codesprint (David Jardin & David Hurley)
  • 38. Joomladagen 2014Joomladagen 2014 Joomladay UK 2013 Zaterdag 5 oktober 2013 Joomla BugSquashing session (Javier Gómez)
  • 45. Joomladagen 2014Joomladagen 2014 Joomla World Conference 2013 Zaterdag 9 november 2013 Bugs, Beer & Fun
  • 54. Joomladagen 2014Joomladagen 2014 e) De Bugtracker Issue Tracker
  • 59. Joomladagen 2014Joomladagen 2014 BT Proces: 1. Open ● Nieuwe bug? – Probleem te reproduceren met Joomla “Master Branch”? – Rapporteren: “Add new Tracker Item” ● Category ● Status: “Open” ● Build: “master” ● How to reproduce... ● Summary & Details (PHP / Browser / Database / Webserver) Tracker Team
  • 60. Joomladagen 2014Joomladagen 2014 BT Proces: 2. Confirmed ● Probleem bevestigd? – Andere gebruikers kunnen de fout reproduceren met de Joomla “Master Branch” → patch ontwikkelen Coding Team
  • 61. Joomladagen 2014Joomladagen 2014 BT Proces: 3. Pending ● Patch voor bug beschikbaar ● Moet eerst op Joomla “Master Branch” getest worden: – Test bug voor installatie patch – Patch installeren – Test of probleem is opgelost – Test of er geen nieuwe problemen zijn ontstaan Testing Team
  • 62. Joomladagen 2014Joomladagen 2014 BT Proces: 4. Ready to Commit ● Patch voor bug – Twee succesvolle tests: ● Commentaar: @test ● Commentaar: @test – Ready To Commit (RTC) = gereed om aan de Joomla core code toegevoegd te worden Testing Team
  • 63. Joomladagen 2014Joomladagen 2014 BT Proces: 5. Fixed in SVN/GitHub ● RTC → Commit Patch = samengevoegd met Joomla “Master Branch” – In volgende (sub)versie beschikbaar in de Joomla download van joomla.org PL Team +
  • 64. Joomladagen 2014Joomladagen 2014 f) Test, Test, 1, 2, 3
  • 65. Joomladagen 2014Joomladagen 2014 Testen – Benodigdheden ● Lokale webserver (voor Joomla) – XAMP/MAMP/LAMP ● Git – Distributed revision control and source code management (soort van “Wikipedia” voor broncode) ● Joomla “Master Branch” – Meest recente Joomla version met alle patches & nieuwe features – https://github.com/joomla/joomla-cms/ ● Browser – Chrome (incl Inspector) of FireFox + FireBug addon ● (Integrated Development Environment (IDE))
  • 66. Joomladagen 2014Joomladagen 2014 Testen – download Joomla “Master Branch” in /var/www/ $ git clone https://github.com/joomla/joomla­cms  Cloning into joomla­cms... remote: Counting objects: 381082, done. remote: Compressing objects: 100% (128076/128076), done. remote: Total 381082 (delta 271874), reused 357127 (delta  249654) Receiving objects: 100% (381082/381082), 95.79 MiB | 5.79  MiB/s, done. Resolving deltas: 100% (271874/271874), done. Joomla website: /var/www/joomla­cms/
  • 67. Joomladagen 2014Joomladagen 2014 Testen – Joomla installeren ● Browser – Ga naar je lokale Joomla map http://localhost/joomla- cms/ – Volg normale installatie procedure, maar kies: ● Sample Data: Test English (GB) Sample Data = voorbeeld inhoud met daarin menu's met links naar alle Joomla componenten en modules → makkelijker testen – Verwijder bij de laatste stap de installatie folder NIET!!
  • 68. Joomladagen 2014Joomladagen 2014 Testen – Joomla installeren
  • 69. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld “Bug” in /administrator/components/com_banners/models/banner.php “Hardcoded SQL” in regel 511: $db = Jfactory::getDbo(); $db->setQuery('SELECT MAX(ordering) FROM #__banners'); $max = $db->loadResult(); Joomlacode: [#32194] Banner model has hardcoded SQL
  • 71. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld Joomlacode: [#32194] Banner model has hardcoded SQL Github.com: patch [#2200] De “hardcoded SQL“: $db = Jfactory::getDbo(); $db->setQuery('SELECT MAX(ordering) FROM #__banners'); $max = $db->loadResult(); vervangen met Joomla's $query object: $db = Jfactory::getDbo(); $query = $db->getQuery(true) ->select('MAX(ordering)') ->from('#__banners'); $db->setQuery($query); $max = $db->loadResult();
  • 72. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld Github: https://github.com/joomla/joomla-cms/pull/2200
  • 73. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld Travis: https://travis-ci.org/joomla/joomla-cms/builds/12365303
  • 74. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld Joomlacode: [#32194] Banner model has hardcoded SQL Patch: https://github.com/joomla/joomla-cms/pull/2200.diff
  • 75. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld [#32194] Banner model has hardcoded SQL ● Before: ● After: $ curl https://github.com/joomla/joomla­cms/pull/2200.diff | git apply % Total    % Received % Xferd  Average Speed   Time   Time     Time  Current                                  Dload  Upload   Total  Spent    Left  Speed 100   691  100   691    0     0   1448      0 ­­:­­:­­ ­­:­­:­­ ­­:­­:­­  1930
  • 76. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld – git commando's Command line: ● Controleer & vraag informatie over patch status op: curl https://github.com/joomla/joomla-cms/pull/2200.diff | git apply --check ● Patch uitvoeren op jouw lokale Joomla installatie curl https://github.com/joomla/joomla-cms/pull/2200.diff | git apply ● Patch verwijderen: curl https://github.com/joomla/joomla-cms/pull/2200.diff | git apply -R ● Controleer of patch is verwijderd: git status # On branch master nothing to commit (working directory clean)
  • 77. Joomladagen 2014Joomladagen 2014 Testen – voorbeeld – git commando's ● “Hard reset” – verwijder alle veranderingen git reset --hard HEAD ● Informatie over de veranderingen, commits etc git log git log --pretty=oneline ● Joomla “Master Branch” = heel dynamisch. Importeer de meest recente veranderingen via: git pull
  • 78. Joomladagen 2014Joomladagen 2014 Dat was makkelijk? Toch?.....
  • 79. Joomladagen 2014Joomladagen 2014 Testen zonder command line git
  • 80. Joomladagen 2014Joomladagen 2014 Testen dmv component http://docs.joomla.org/Component_Patchtester_for_Testers
  • 88. Joomladagen 2014Joomladagen 2014 Vragen? ● Presentatie beschikbaar via www.db8.nl Peter Martin e-mail: info at db8.nl website: www.db8.nl twitter: @pe7er
  • 89. Joomladagen 2014Joomladagen 2014 Gebruikte foto's 1/2 ● First Aid Plaster 1 - Gokhan Okur http://www.sxc.hu/photo/782775 ● Moth - Therese Branton http://www.sxc.hu/photo/901692 ● ASCII Bugs: http://www.asciiworld.com/ ● Executivo 3 - Ivan Soares Ferrer http://www.sxc.hu/photo/215592 ● Joomla Sticker + Stroopwafel photo - Paul Orwig ● Night moth - Irina Naumets http://www.sxc.hu/photo/1047402 ● Bandaid Bandage - Pam Roth http://www.sxc.hu/photo/291573 ● JAB13 Bug Squad, Pizza, Bugs & Fun (Eindhoven, NL), JDDE13 Bug Squashing & JWC13 foto's - Peter Martin ● JDUK13 Bug Squashing photos - Paul Orwig ● Moth 1 - Irina Naumets http://www.sxc.hu/photo/1059828
  • 90. Joomladagen 2014Joomladagen 2014 Gebruikte foto's 2/2 ● Count on us - Laura Leavell http://www.sxc.hu/photo/1206290 ● Checkbox - bzuko22 http://www.sxc.hu/photo/1335487 ● Hands: Thumbsup - J. Henning Buchholz http://www.sxc.hu/photo/238119 ● Hands: Peace - J. Henning Buchholz http://www.sxc.hu/photo/238133 ● Multimeter - Maxime Perron Caissy http://www.sxc.hu/photo/498477 ● mathematic formulas - Tomasz A. Poszwa http://www.sxc.hu/photo/214561 ● Police protecting the demonstration - Michal Zacharzewski http://www.sxc.hu/photo/559518 ● signs signs - Jason Antony http://www.sxc.hu/photo/751034 Bronnen: ● Bug Tracking Process - Marijke Stuivenberg http://tinyurl.com/slides-PBFnl ● Werken met de Joomla Master Code - Roland Dalmulder http://tinyurl.com/handleiding-PBFnl