Suche senden
Hochladen
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
•
Als PPTX, PDF herunterladen
•
3 gefällt mir
•
2,232 views
D
Dharmesh Sheta
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 18
Jetzt herunterladen
Empfohlen
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010
kensipe
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel Development
IBM UrbanCode Products
PrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latest
Prashant Soni
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
IBM UrbanCode Products
Agile Evolution with Kanban
Agile Evolution with Kanban
Chris McDermott
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
DevOps.com
Lean and Kanban Principles for Software Developers
Lean and Kanban Principles for Software Developers
Cory Foy
Real Developers Don't Need Unit Tests
Real Developers Don't Need Unit Tests
John Ferguson Smart Limited
Empfohlen
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010
kensipe
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel Development
IBM UrbanCode Products
PrashantSoni_exp_embeddedSwDevelopment_latest
PrashantSoni_exp_embeddedSwDevelopment_latest
Prashant Soni
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
IBM UrbanCode Products
Agile Evolution with Kanban
Agile Evolution with Kanban
Chris McDermott
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
DevOps.com
Lean and Kanban Principles for Software Developers
Lean and Kanban Principles for Software Developers
Cory Foy
Real Developers Don't Need Unit Tests
Real Developers Don't Need Unit Tests
John Ferguson Smart Limited
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPC
DVClub
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
IBM UrbanCode Products
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
RIF-Technology
Постоянное тестирование интеграции
Постоянное тестирование интеграции
SQALab
Amit_Resume
Amit_Resume
amit dave
How we build quality software at uSwitch.com
How we build quality software at uSwitch.com
hemalkuntawala
Relay health build system
Relay health build system
roncordell
Build & Release Engineering
Build & Release Engineering
Pranesh Vittal
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Chris Sterling
PL/SQL Development
PL/SQL Development
Thanh Nguyen
Real World TDD
Real World TDD
Schalk Cronjé
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
STX Next
How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012
_mr_me
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Real-Time Innovations (RTI)
bryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STE
Bryan Reinbolt
TDD anche su iOS
TDD anche su iOS
Andrea Francia
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
Stefan Koopmanschap
Manual testing1
Manual testing1
Raghu Sirka
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Wee Witthawaskul
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
AgileSparks
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
Justin Gordon
Continuous Integration for z using Test Data Management and Application D...
Continuous Integration for z using Test Data Management and Application D...
DevOps for Enterprise Systems
Weitere ähnliche Inhalte
Was ist angesagt?
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPC
DVClub
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
IBM UrbanCode Products
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
RIF-Technology
Постоянное тестирование интеграции
Постоянное тестирование интеграции
SQALab
Amit_Resume
Amit_Resume
amit dave
How we build quality software at uSwitch.com
How we build quality software at uSwitch.com
hemalkuntawala
Relay health build system
Relay health build system
roncordell
Build & Release Engineering
Build & Release Engineering
Pranesh Vittal
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Chris Sterling
PL/SQL Development
PL/SQL Development
Thanh Nguyen
Real World TDD
Real World TDD
Schalk Cronjé
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
STX Next
How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012
_mr_me
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Real-Time Innovations (RTI)
bryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STE
Bryan Reinbolt
TDD anche su iOS
TDD anche su iOS
Andrea Francia
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
Stefan Koopmanschap
Manual testing1
Manual testing1
Raghu Sirka
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Wee Witthawaskul
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
AgileSparks
Was ist angesagt?
(20)
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Постоянное тестирование интеграции
Постоянное тестирование интеграции
Amit_Resume
Amit_Resume
How we build quality software at uSwitch.com
How we build quality software at uSwitch.com
Relay health build system
Relay health build system
Build & Release Engineering
Build & Release Engineering
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
PL/SQL Development
PL/SQL Development
Real World TDD
Real World TDD
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...
bryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STE
TDD anche su iOS
TDD anche su iOS
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
Manual testing1
Manual testing1
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
Ähnlich wie Marrying Jenkins and Gerrit-Berlin Expert Days 2013
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
Justin Gordon
Continuous Integration for z using Test Data Management and Application D...
Continuous Integration for z using Test Data Management and Application D...
DevOps for Enterprise Systems
Automated Build using teamcity
Automated Build using teamcity
Md Jawed
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding
Intland Software GmbH
Implementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software Quality
Rocket Software
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Intland Software GmbH
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas
Seng 123 1-concepts
Seng 123 1-concepts
Atilla Elçi
Technical debt management strategies
Technical debt management strategies
Raquel Pau
Gerrit Code Review
Gerrit Code Review
Luca Milanesio
Intsoc2
Intsoc2
jogajosh
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
Twice. Ontwikkelaars van IT professionals
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
Delta-N
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
ajayrajaganeshkayala
Agile & ALM tools
Agile & ALM tools
Larry Cai
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery Process
Huib Schoots
Delivering the Dude: Continuous X
Delivering the Dude: Continuous X
Brent Pabst
DevOps in an Embedded World
DevOps in an Embedded World
Sajeewa Dayaratne
Continuous testing
Continuous testing
Oleksandr Metelytsia
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
Santosh Ojha
Ähnlich wie Marrying Jenkins and Gerrit-Berlin Expert Days 2013
(20)
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
Continuous Integration for z using Test Data Management and Application D...
Continuous Integration for z using Test Data Management and Application D...
Automated Build using teamcity
Automated Build using teamcity
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding
Implementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software Quality
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Seng 123 1-concepts
Seng 123 1-concepts
Technical debt management strategies
Technical debt management strategies
Gerrit Code Review
Gerrit Code Review
Intsoc2
Intsoc2
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
Agile & ALM tools
Agile & ALM tools
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery Process
Delivering the Dude: Continuous X
Delivering the Dude: Continuous X
DevOps in an Embedded World
DevOps in an Embedded World
Continuous testing
Continuous testing
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
Kürzlich hochgeladen
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
UiPathCommunity
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
Hiroshi SHIBATA
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
panagenda
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
A Framework for Development in the AI Age
A Framework for Development in the AI Age
Cprime
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Mark Goldstein
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
IES VE
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
ThousandEyes
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
panagenda
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Wes McKinney
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
Kürzlich hochgeladen
(20)
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
A Framework for Development in the AI Age
A Framework for Development in the AI Age
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
1.
Berlin Expert Days
2013 Enjoy Code Review Again Marrying Gerrit with Jenkins in 20 Minutes Johannes Nicolai Development Manager, CollabNet Dharmesh Sheta Software Engineer, CollabNet CollabNet Engineering Office, Potsdam, Germany ENTERPRISE CLOUD DEVELOPMENT 1 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
2.
CollabNet In One
Slide 2 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
3.
3
Copyright ©2012 CollabNet, Inc. All Rights Reserved.
4.
Agenda
• What is Code Review? • The Joy in Code Review • The Pain in Code Review • Enjoy Code Review Again: Introducing Gerrit and Jenkins • Demo Workflow Explained • Live Demo • Resources • Q&A 4 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
5.
What is Code
Review? “Code review is systematic examination (often known as peer review) of computer source code. […] Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.” [1] We will not cover formal inspections methods and pair programming here but concentrate on informal walk throughs, typically referred as Informal Peer review “In software development, peer review is a type of software review in which a work product (document, code, or other) is examined by its author and one or more colleagues, in order to evaluate its technical content and quality.” [2] [1] Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. p. 260. ISBN 0-470- 04212-5. [2] http://en.wikipedia.org/wiki/Software_peer_review 5 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
6.
The Joy in
Code Review • Code review can be used very early in the process Phase Recovery Prospects Success Factor Early Planning Excellent 95 % Requirements Excellent 90 % Initial Design Very Good 80 % Detail Design Good 65 % Coding Fair 45 % Integration Poor 30 % Testing Very Poor 15 % Deployment Non existent 0% Maintenance Non existent 0% [3] Caspers Jones, Patterns of Software Systems Failure and Success 6 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
7.
The Joy in
Code Review • Peer review does not only apply to executable source code – Design/requirement specifications – Documentation – XML schema • Some quality aspects can only be verified using code review – Readability/changeability of the code – Meaningful qualifiers / object names / functions • Great source for knowledge transfer and early design/architecture conflict detection 7 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
8.
Code Review Efficiency
compared to other methods [5] 8 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
9.
Code Review Costs
compared to other methods [5] 9 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
10.
The Pain in
Code Review • Less than 50 percent of software applications are developed using code review [5] [5] C. Jones, The Economics of Software Quality, Capers Jones, Olivier Bonsignour and Jitendra Subramanyam, Addison-Wesley Longman, 2011 • Ego challenges – Welcome to the world of gamification (after talk) • Half baked review requests killing motivation – ‘The demo tape problem‘ – Many code review requests do not meet basic quality gates • Compiles/builds • Passes unit / integration tests • Meets coding standards and metrics • No IP violations • Review Tool challenges – ‘Context switching par excellence‘ – Creating patches – Uploading patches – Inspecting patches – Downloading patches – Applying patches – Building patches – Providing feedback – Reworking patches – Merging patches 10 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
11.
Gerrit = Widely
Used Git Server + Code Review Tool • 100% pure Java SSH and HTTP Git backend – Scalable and suitable for large Enterprises • Web-based and Command Line administration – Users and Groups – Project and branch security (read and write) • Collaboration and Code-review – B2B integration at code-level – Communicate and share code knowledge in the Team – Enforce workflow and code quality • The most successful open source code review – Android OS – Eclipse, OpenStack, Qt, CouchDB and many others 11 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
12.
Who’s Using Gerrit
in Production Today? source: Wikipedia 12 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
13.
Jenkins = Most
popular Open Source CI • Has hundreds of plugins to – Interact with various SCMs (Git, SVN, CVS, …) – Build software (ant, maven, gradle, make) – Run unit/integration tests (JUnit, Selenium, …) – Perform static code analysis (findbugs, checkstyle, PMS, Sonar, …) • Works brilliantly together with Gerrit over Gerrit Trigger Plugin – Keeps ssh connection open to learn about new review requests immediatly – Builds and verifies all configures quality gates (tests, coding conventions, code KPIs, you name it) – Sets ‘verified’ flag in review request according to result of verification build (either +1 or -1) – If Jenkins sets -1, then further code review isn’t possible, developer has to either re-work or abandon change 13 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
14.
Tackling half baked
review requests: Marrying Gerrit and Jenkins CI Build: OK CI Build: OK master A1 C2* Verified: -1 Verified: +1 (build failed) (build OK) C2 C2* refs/for/master Reviewed: +2 push push local A1 C2 C2* master 14 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
15.
Learn More CollabNet
DVD for BED TeamForge + Gerrit Data Sheet Git Blogs http://blogs.collab.net/git Software Downloads (TeamForge, Git + clients) http://www.collab.net/git 15 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
16.
Q&A 16
Copyright ©2012 CollabNet, Inc. All Rights Reserved.
17.
TeamForge = Enterprise-Grade
Git Mgmt. + ALM Gerrit Basic SCM features Protection jGit engine Code Quality Advanced Git security Control Native engine Git Projects organization IT standard compliance GitWeb Code-review ALM integration Replication Hybrid SCM With TeamForge and Gerrit, Git is now ready for the enterprise. Realize all the benefits of Git, without compromising governance, security and compliance. 17 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
18.
The technical details
we shield users from 18 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Jetzt herunterladen