SlideShare a Scribd company logo
1 of 27
Download to read offline
Typical development
problems and mistakes
      Online TV for REN TV
        http://ren-tv.com




     Timothy N. Tsvetkov
       2011, rubyc, Kiev
Evil Martians
Air and live
Genres
Personal playlists
REN TV
        is
The best Online TV
        in
      Russia
Architecture
Planning


• We have planned API to develop
• CDN Video have planned API to develop
Real life


• CDN Video API changed
DDs
• BDD
• TDD
• CI
• ADD
• DDD
• ASP .NET MVC 1.0
Truth

• BDD — Body Dysmorphic Disorder
• TDD — Test Driven Development
• CI — Convergence insufficiency
• ADD — Attention Deficit Disorder
• DDD — DDD
Testing limitations
• We can’t test everything
• You can’t develop an algorithm to proof
  that your program is correct
• Testing is hard
• Tests have errors
• Not that effective at finding bugs
Race conditions

• Most developers don’t think about race
  conditions
• Validates uniqueness is not race conditions
  safe
• Some gems are not race conditions safe
  and it is your business to check them
Optimistic locking
• Each update to the record increments the
  lock_version column and the locking
  facilities ensure that the records
  instantiated twice will let the last one saved
  raise a StaleObjectError if the first was also
  updated
• Doesn’t work between actions like edit/
  update
Pessimistic locking
• SELECT FOR UPDATE
• FOR UPDATE causes the rows retrieved
  for by the SELECT statement to be locked
  as thought for update. This prevents them
  from being modified or deleted by other
  transactions until the current transaction
  ends
Advisory lock


• Locks that have application defined
  meanings
Advisory locks. Usage
Test on race conditions

• It is hard to find them and there is no tool
  for that
• You can use test hooks in your production
  code for testing them in your rspec
Deamons


• Erlang is great
• Node.js sucks
Deamons v. 1


• Rebar to install debs, compile and start
• Classical OTP: Supervisor + fetchers,
  monitors
Deamons v. 2

• Supervisors spawns workers
• Workers spawn fetchers and monitors
  them
• Worker never die
Deamons v. 3


• v. 1 without Rebar but with Runit
Investigate a problem

• Log everything you can
• strace, tcp dump, netcat, gdb
• etc
Special thanks
toYaroslav Markin
Dumb questions

More Related Content

What's hot

Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
Christopher Read
 

What's hot (20)

Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 
Continuous Integration for Titanium
Continuous Integration for TitaniumContinuous Integration for Titanium
Continuous Integration for Titanium
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
 
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsTiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio Branches
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Agile Testing Days 2018 USA - API Testing Fundamentals
Agile Testing Days 2018 USA - API Testing FundamentalsAgile Testing Days 2018 USA - API Testing Fundamentals
Agile Testing Days 2018 USA - API Testing Fundamentals
 
After the Code
After the CodeAfter the Code
After the Code
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
End-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisEnd-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at Redis
 
AQA TALKS 4 - AUTOMATION TEST REPORTER
AQA TALKS 4 - AUTOMATION TEST REPORTERAQA TALKS 4 - AUTOMATION TEST REPORTER
AQA TALKS 4 - AUTOMATION TEST REPORTER
 
FishEye and Crucible Presentation
FishEye and Crucible PresentationFishEye and Crucible Presentation
FishEye and Crucible Presentation
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and Economics
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Software development terminology
Software development terminologySoftware development terminology
Software development terminology
 

Viewers also liked

Mill PPT Cover 7/11/2011
Mill PPT Cover 7/11/2011Mill PPT Cover 7/11/2011
Mill PPT Cover 7/11/2011
rgrachael
 
Moral philosophy
Moral philosophyMoral philosophy
Moral philosophy
rgrachael
 
Controllo di un impianto My Home da iPad iPhone-iPod touch
Controllo di un impianto My Home da iPad iPhone-iPod touch  Controllo di un impianto My Home da iPad iPhone-iPod touch
Controllo di un impianto My Home da iPad iPhone-iPod touch
INGEGNI Tech Srl
 

Viewers also liked (16)

Yokogawa Klantdag 2012
Yokogawa Klantdag 2012Yokogawa Klantdag 2012
Yokogawa Klantdag 2012
 
GC in Ruby. RubyC, Kiev, 2014.
GC in Ruby. RubyC, Kiev, 2014.GC in Ruby. RubyC, Kiev, 2014.
GC in Ruby. RubyC, Kiev, 2014.
 
Leaflet Dx450 Sparyed Concrete Testing
Leaflet   Dx450 Sparyed Concrete TestingLeaflet   Dx450 Sparyed Concrete Testing
Leaflet Dx450 Sparyed Concrete Testing
 
Stop 2012 Veiligheid
Stop 2012 VeiligheidStop 2012 Veiligheid
Stop 2012 Veiligheid
 
Hilti Lul Catalogue
Hilti Lul CatalogueHilti Lul Catalogue
Hilti Lul Catalogue
 
Hilti Tools Vibration Data
Hilti Tools Vibration DataHilti Tools Vibration Data
Hilti Tools Vibration Data
 
Asian indian phenotype
Asian indian phenotypeAsian indian phenotype
Asian indian phenotype
 
Hilti Health & Safety
Hilti Health & SafetyHilti Health & Safety
Hilti Health & Safety
 
ANOVA and its application
ANOVA and its applicationANOVA and its application
ANOVA and its application
 
Machine learning in Ruby
Machine learning in RubyMachine learning in Ruby
Machine learning in Ruby
 
Mill PPT Cover 7/11/2011
Mill PPT Cover 7/11/2011Mill PPT Cover 7/11/2011
Mill PPT Cover 7/11/2011
 
Moral philosophy
Moral philosophyMoral philosophy
Moral philosophy
 
Othello detailed Presentation
Othello detailed PresentationOthello detailed Presentation
Othello detailed Presentation
 
Veiligheid3.0
Veiligheid3.0Veiligheid3.0
Veiligheid3.0
 
Breve corso informativo sulla domotica
Breve corso informativo sulla domoticaBreve corso informativo sulla domotica
Breve corso informativo sulla domotica
 
Controllo di un impianto My Home da iPad iPhone-iPod touch
Controllo di un impianto My Home da iPad iPhone-iPod touch  Controllo di un impianto My Home da iPad iPhone-iPod touch
Controllo di un impianto My Home da iPad iPhone-iPod touch
 

Similar to Rentv

Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery ProcessSuccesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery Process
Huib Schoots
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
Harald Rietman
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
gaoliang641
 

Similar to Rentv (20)

Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
 
Kku2011
Kku2011Kku2011
Kku2011
 
Tdd using Jasmine and karma
Tdd using  Jasmine and karmaTdd using  Jasmine and karma
Tdd using Jasmine and karma
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduce
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java Project
 
CI doesn’t start with Jenkins
CI doesn’t start with JenkinsCI doesn’t start with Jenkins
CI doesn’t start with Jenkins
 
Selenium Introduction and IDE
Selenium Introduction and IDESelenium Introduction and IDE
Selenium Introduction and IDE
 
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery ProcessSuccesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery Process
 
Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
 
When & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsWhen & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile Applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016Testing Automaton - CFSummit 2016
Testing Automaton - CFSummit 2016
 
Integreation
IntegreationIntegreation
Integreation
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 

Recently uploaded

unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
Abortion pills in Kuwait Cytotec pills in Kuwait
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
amitlee9823
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
Matteo Carbone
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 

Recently uploaded (20)

RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfJohn Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdf
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 

Rentv