Keeping Rails on the Tracks
|
|
- Eleanor Woods
- 6 years ago
- Views:
Transcription
1 Keeping Rails on the Tracks Mikel lindsaar.net
2 Working in Rails & Ruby for 5+ Years
3 On the Rails? What do I mean by on the rails? Apps that work and are easy to maintain & bug free
4 Experience helped write, rewrite, support or review 40 production rails last 12 months released a non trivial gem - mail maintained a non trivial gem - tmail made many patches to Rails itself, in the top 20 committers
5 Working Code? This is the one end of the pragmatic scale Devs that are paid to make it work take the green light, red light approach too far. Is it running? Yes, therefore it is working - leads to messy code
6 Sexy Code? This is the other end of the pragmatic scale Devs that get upset if something doesn t look right or is not super neat Time wasters on large scale projects Sexy code is nice to have, but often a waste of money
7 Maintainable Code? This is probably the middle ground Code that works Code that is neat and tidy, but not sacrificing budget for that Code that can be maintained
8 A Product is Only a Product if it is Exchanged This is pretty critical to all Rails developers.
9 Budget Matters Beautiful code is ugly if no one buys it
10 Trade-Offs are Life Decide how much refactoring needed based on code use Touched once a year, or once a month. Refactor the latter
11 You are not selling code You are selling a solution Running app are what counts Internal or External client doesn t matter
12 Deployment is a First Class Citizen This has been said by many people - not the first Need to be able to deploy - make it a trivial and repeatable one liner
13 Server Setup Use Chef / Puppet / whatever Repeatable Configuration Much easier to run a chef recipe that you know will work at 3am than remember how to install postgres
14 Use Bundler Removes Deployment Pain Be explicit with versions Only lock to git repos you own Not specifying versions in the Gemfile leads to future pain At least limit using the ~> control Lock to your own github fork, and at least specify branch or sha1 Never lock to open versions Edge rails in bundler, seriously!?
15 Repeatable Deployment Get the staging server up Use common deployment methods capistrano, or ey deploy, or heroku git deploy
16 Make a db/seeds.rb file Make it easy for other Developers The other developer may be you! In 6 months you will have no idea what you need to get it working
17 Link in Security Don t store passwords in the app Use some other data store
18 Using app Gem
19 Document It Update that README file! Should be able to open the readme and deploy your app Include authorisation needed (ssh keys on server or whatever)
20 Fast Page == Happy Client
21 Page Load Times Count Combine Javascript and CSS CSS Sprites Asset Pipelining in Rails 3.1 Before combination: 40 asset requests After combination: 5 asset requests Trivial in Rails 3.1 Rails 3 and lower, Jammit and other tools
22 Caching Optimisation Know and love Rails view caching: Fragment Cache Action Cache Page Cache Before fragment cache: 2480ms After fragment caching: 120ms
23 Big Session == Slow Site Session objects are a slippery slope to pain Store values, not objects 10k session record 5,000 new sessions per month 500mb session table in DB
24 Pick Your Fights Don t make a persisted session cart for every visitor 500,000 rows in sessions table Removed sessions for non customers Appdex went from 10% => 98% row session database store... no fun. File system is just asking for trouble - not scalable If follow previous two advices then overhead is minimal and very scalable
25 Opinions Matter
26 Use Pluralization Breaks conventions - hard to code and remember Simple fix using inflectors
27 Use the idioms
28 Less code written == less bugs Remove Useless Code
29 Being Smart can be Stupid
30 Explicit Methods Don t use before, after and around filters for object instantiation Filters are for state modification Valid uses of filters: timezones, authorization, authentication et al. Reasons: filters inherit, easy to get lost. Use explicit helpers
31 Keep Tests Simple Computers are good at nesting Humans less so We need to see context, as close to content as possible
32
33 Use Helpers Instead before & after should only maintain the test environment Keep tests wet Don t use before and after for app related activities
34 Hard to read Especially 2 pages down, where you can t see the before block
35 Easy to Read Easy to read no matter where you are in the test, also less context switching
36 Simple is better than Complex What you leave out is almost more important than what you put in Meta Programming has its place, that place is probably not in your Rails App Long writing methods better than dynamic if you can get away with it Meta programming has it s place, that place is not
37 Good Code is Easy to Read Good code might be non trivial to implement But should be trivial to understand. The more bad code you have, the closer you are to a rewrite
38 Reinvention is Over Rated
39 Reinventing Controllers Becomes code smell because you need to relearn simple idioms
40 Reinventing Controllers
41 Use the right tool for the job
42 Cucumber is not Unit Testing Making cucumber specs that should be unit tests
43 You too can refactor 5 level nested ternary INSIDE A STRING characters, one line Good t-shirt print
44 You too can refactor
45 Read Ruby Docs Go and read the standard Ruby documentation online Array, String, Hash, Ennumerator
46 Databases have feelings too
47 You don t need database agnostic code Make use of your database features Out of 50 apps, one is migrating DB Use migrations Good for development and testing Bad for production, get into the SQL and make the DB sing
48 Instantiation is Slow Report run in ruby: 45 minutes Equivalent SQL query: 15 seconds Object instantiation is slow
49 Use the DB tools you have Migrate legacy data with Active Record: 150 hours PostgreSQL COPY with generated CSV: 74 mins
50 Don t Share the DB 12 rails apps against one BIG database 12 places for migration files Refactor to API calls and CAS for auth
51 Code has responsibilities
52 Beware the Train Wreck Trivial example, but valid, train wrecks also can blow up your database
53 Control flow is code smell DEMO (control_flow_demo.rb) 85 line 10 if else statement method You can ALWAYS refactor control flow into object messages Cleaner code, easier to read Again, be pragmatic, and pick your fights
54 How to stay on track? What do I mean by on the rails? Apps that work and are easy to maintain & bug free
55 Get an Inspection Many consultancies do this Ask for a sample rubyx Inspect Service rubyx.com/services/inspect
56 Maintainable Code This is probably the middle ground Code that works Code that is neat and tidy, but not sacrificing budget for that Code that can be maintained
57 Questions? Mikel rubyx.com rubyx.com/services/inspect speakerrate.com/talks/7575
58
Contents in Detail. Foreword by Xavier Noria
Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,
More informationRuby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil
Ruby in the Sky with Diamonds August, 2014 Sao Paulo, Brazil JELASTIC PLATFORM AS INFRASTRUCTURE Jelastic provides enterprise cloud software that redefines the economics of cloud deployment and management.
More informationFINDING TOXIC CODE. Experiences and techniques for finding dangerous code in large multi-language codebases
FINDING TOXIC CODE Experiences and techniques for finding dangerous code in large multi-language codebases Kornelis (Korny) Sietsma - @kornys on Twitter WHO AM I? 2 WHAT DO I DO NOW? Consulting, Delivery,
More informationThe Long Road from Capistrano to Kubernetes
The Long Road from Capistrano to Kubernetes Tobias Schwab, Co-Founder of PhraseApp Slides: http://bit.ly/cap-to-kube How to deploy Ruby on Rails? Deploying Ruby on Rails required on all servers: OS + system
More informationLecture 14. Moving Forward 1 / 23
Lecture 14 Moving Forward 1 / 23 Course Evaluations Remember to fill out course evaluations for this class! Please provide honest and constructive feedback on the course Anything that you'd want me to
More informationAngular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy
Angular 2 and Hexo Static Meets Dynamic For the Best of Both Worlds! Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional Experience
More informationRails Engines. Use Case. The Implementation
Rails Engines Rails engines range from simple plugins to powerful micro-applications. The discussions we ve had so far about Railties are closely related to the function of a Rails engine. One interesting
More informationAirBespoke Inventory Tracking System
Colorado School of Mines Field Session AirBespoke Inventory Tracking System Client: Kylen McClintock Written by: Peter Palumbo, Kyle Thistlewood, Nhan Tran, Minh Vu June 22, 2016 Contents 1 Introduction
More informationMRI Internals. Koichi Sasada.
MRI Internals Koichi Sasada ko1@heroku.com MRI Internals towards Ruby 3 Koichi Sasada ko1@heroku.com Today s talk Koichi is working on improving Ruby internals Introduce my ideas toward Ruby 3 Koichi Sasada
More informationGit. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015
Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone
More informationContinuous Integration. Johannes Seitz
Continuous Integration Johannes Seitz - @Ookami86 What is Continuous Integration? That Jenkins job may be necessary, but not sufficient. Ways of working in a team Integrating often Integrating in a Big
More informationExtract API: Build sophisticated data models with the Extract API
Welcome # T C 1 8 Extract API: Build sophisticated data models with the Extract API Justin Craycraft Senior Sales Consultant Tableau / Customer Consulting My Office Photo Used with permission Agenda 1)
More informationWEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang
WEB SECURITY WORKSHOP TEXSAW 2014 Presented by Solomon Boyd and Jiayang Wang Introduction and Background Targets Web Applications Web Pages Databases Goals Steal data Gain access to system Bypass authentication
More informationDeveloping Kubernetes Services
/ MARCH 2019 / CON LONDON Developing Kubernetes Services at Airbnb Scale What is kubernetes? @MELAN IECEBULA Who am I? A BRIEF HISTORY Why Microservices? 4000000 3000000 MONOLITH LOC 2000000 1000000 0
More informationWeb Hosting. Important features to consider
Web Hosting Important features to consider Amount of Storage When choosing your web hosting, one of your primary concerns will obviously be How much data can I store? For most small and medium web sites,
More informationImplementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications
Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.
More informationBeBanjo Infrastructure and Security Overview
BeBanjo Infrastructure and Security Overview Can you trust Software-as-a-Service (SaaS) to run your business? Is your data safe in the cloud? At BeBanjo, we firmly believe that SaaS delivers great benefits
More informationOverhauling Dev Arch with Ansible Tower and Docker
Overhauling Dev Arch with Ansible Tower and Docker Scott Van Velsor, Bryan Shake, Khaled Awwad June 29 1130a #redhat #rhsummit origins the landscape that came before branch & path limits no automation
More informationDevelopers and DBAs. Farmers and City Slickers have different mindsets
Developers and DBAs Farmers and City Slickers have different mindsets About ~ Øyvind Isene DBA Consultant working for Bicon in Oslo Optimization and helping developers with db OUGN and the Oracle community
More informationSYMFONY2 WEB FRAMEWORK
1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from
More informationSurrogate Dependencies (in
Surrogate Dependencies (in NodeJS) @DinisCruz London, 29th Sep 2016 Me Developer for 25 years AppSec for 13 years Day jobs: Leader OWASP O2 Platform project Application Security Training JBI Training,
More informationScaling DreamFactory
Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud
More informationStanko Tadić
State of modern JavaScript development 04.02.2017. Stanko Tadić HELLO, MY NAME IS STANKO TADIĆ and I m a Principal Developer at Work & Co. I love development, music and cartoons. You might say I m a geek.
More informationERICH PRIMEHAMMER REFACTORING
ERICH KADERKA @ PRIMEHAMMER REFACTORING WHAT IS REFACTORING? Martin Fowler: Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of
More informationCold, Hard Cache KV? On the implementation and maintenance of caches. who is
1 of 5 TE X T ONLY Cold, Hard Cache On the implementation and maintenance of caches who is KV? click for video Dear KV, Our latest project at work requires a large number of slightly different software
More informationGunnery Documentation
Gunnery Documentation Release 0.1 Paweł Olejniczak August 18, 2014 Contents 1 Contents 3 1.1 Overview................................................. 3 1.2 Installation................................................
More informationChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile
ChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile Status: Closed Priority: Normal Author: Enno Grà per Category: Created: 2011-07-17 Assignee: Updated: 2012-06-23 Due date:
More informationGit Basi, workflow e concetti avanzati (pt2)
Git Basi, workflow e concetti avanzati (pt2) Andrea Fornaia, Ph.D. Department of Mathema.cs and Computer Science University of Catania Viale A.Doria, 6-95125 Catania Italy fornaia@dmi.unict.it hfp://www.cs.unict.it/~fornaia/
More informationJavaScript: the Big Picture
JavaScript had to look like Java only less so be Java's dumb kid brother or boy-hostage sidekick. Plus, I had to be done in ten days or something worse than JavaScript would have happened.! JavaScript:
More informationEpisode 298. Getting Started With Spree
Episode 298 Getting Started With Spree Spree 1 is a fully-featured e-commerce solution that can be easily integrated into a Rails application. If you need to turn a Rails app into a store that sells products
More informationReal Life Web Development. Joseph Paul Cohen
Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your
More informationRocking with Racket. Marc Burns Beatlight Inc
Rocking with Racket Marc Burns Beatlight Inc What am I doing here? My first encounter with Racket was in 2010 I wanted to use Racket in industry The opportunity arose in June 2014: Loft What am I doing
More informationGetting Started With Containers
DEVNET 2042 Getting Started With Containers Matt Johnson Developer Evangelist @mattdashj Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session
More informationIntroduction and first application. Luigi De Russis. Rails 101
Introduction and first application Luigi De Russis 2 About Rails Ruby on Rails 3 Framework for making dynamic web applications created in 2003 Open Source (MIT License) for the Ruby programming language
More informationlearn programming the right way
Coding 101 learn programming the right way 1 INTRODUCTION Before you begin learning how to code, it s first useful to discuss why you would want to learn web development. There are lots of good reasons
More informationa handful of Git workflows for the agilist steven harman twitter: stevenharman
a handful of Git workflows for the agilist steven harman twitter: stevenharman http://stevenharman.net stop worrying and start loving The Git. git is awesome - if you re using it, you know. if not, don
More informationLinux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017
Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science
More informationJapan on Rails. Name: Akira Matsuda GitHub: amatsuda
Japan on Rails Name: Akira Matsuda Twitter: @a_matsuda GitHub: amatsuda Index The Problems The Communities Ruby in Japan Rails in Japan % whoami whoami A Community Leader Freelance Railer - A Programmer
More informationEPHEMERAL DEVOPS: ADVENTURES IN MANAGING SHORT-LIVED SYSTEMS
SESSION ID: CSV-W12 EPHEMERAL DEVOPS: ADVENTURES IN MANAGING SHORT-LIVED SYSTEMS Todd Carr DevOps Engineer Unity Technologies @frozenfoxx Who am I? DevOps Engineer at Unity Technologies Security Enthusiast
More informationExpert Guidance on Migrating from Magento 1 to Magento 2
Expert Guidance on Migrating from Magento 1 to Magento 2 Gordon Knoppe Business Solutions Architect, ECG James Cowie Technical Architect, ECG Expert Consulting Group ECG Charter: To provide expert insight,
More informationWe re working full time this summer alongside 3 UCOSP (project course) students (2 from Waterloo: Mark Rada & Su Zhang, 1 from UofT: Angelo Maralit)
We re working full time this summer alongside 3 UCOSP (project course) students (2 from Waterloo: Mark Rada & Su Zhang, 1 from UofT: Angelo Maralit) Our supervisors: Karen: heads project, which has been
More informationO Reilly RailsConf,
O Reilly RailsConf, 2011-05- 18 Who is that guy? Jesper Richter- Reichhelm / @jrirei Berlin, Germany Head of Engineering @ wooga Wooga does social games Wooga has dedicated game teams Cooming soon PHP
More informationMicroservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer
Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer http://ewolff.com Why Microservices? Why Microservices? Strong modularization Replaceability Small units Sustainable Development
More informationmonolith to micro-services? event sourcing can help Doug
monolith to micro-services? event sourcing can help Doug legacy Client Culture Amp (2012-2015) Rails App (Murmur) Read-write Query Server Read-only DB Our journey Our meandering path to CQRS & event sourcing
More informationDevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY
DevOps Anti-Patterns Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! 31 Anti-Pattern: Throw it Over the Wall Development Operations 32 Anti-Pattern: DevOps Team Silo
More informationHolistic Database Security
Holistic Database Security 1 Important Terms Exploit: Take advantage of a flaw or feature Attack Surface: Any node on the network that can be attacked. That can be the UI, People, anything that touches
More informationDeployment Is Not A Four Letter Word. Chris Hartjes PHP Quebec 2009 Conference
Deployment Is Not A Four Letter Word Chris Hartjes PHP Quebec 2009 Conference WARNING: This presentation may contain language that is offensive to some. I ll try not to swear but sometimes it just comes
More informationWeb2py Instant Admin Documentation
Web2py Instant Admin Documentation Release 0.1 Ramana Mar 29, 2017 Contents 1 Web2py Instant Admin 3 1.1 What is it?................................................ 3 1.2 How to Install?..............................................
More informationLearning to love release notes
Learning to love release notes Anne Edwards Write the Docs 2018 anne@improbable.io Who am I? technical writer for nearly four years three different companies - currently working at Improbable long-form
More informationCloudCenter for Developers
DEVNET-1198 CloudCenter for Developers Conor Murphy, Systems Engineer Data Centre Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the
More informationElasticIntel. Scalable Threat Intel Aggregation in AWS
ElasticIntel Scalable Threat Intel Aggregation in AWS Presenter: Matt Jane Obligatory Who I Am slide.. Builder/Automator I put things in clouds Open Source Advocate
More informationBeyond 1001 Dedicated Data Service Instances
Beyond 1001 Dedicated Data Service Instances Introduction The Challenge Given: Application platform based on Cloud Foundry to serve thousands of apps Application Runtime Many platform users - who don
More informationnacelle Documentation
nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2
More informationFlexible Network Analytics in the Cloud. Jon Dugan & Peter Murphy ESnet Software Engineering Group October 18, 2017 TechEx 2017, San Francisco
Flexible Network Analytics in the Cloud Jon Dugan & Peter Murphy ESnet Software Engineering Group October 18, 2017 TechEx 2017, San Francisco Introduction Harsh realities of network analytics netbeam Demo
More informationPower Up/Level Up: Supercharging Your Security Program for Cloud and DevOps. Rich
Power Up/Level Up: Supercharging Your Security Program for Cloud and DevOps Rich Mogull @rmogull CISO Ragnarok The board is breathing down your neck, the CEO wants reports, and the CFO writes Try Open
More informationRuby on Rails. SITC Workshop Series American University of Nigeria FALL 2017
Ruby on Rails SITC Workshop Series American University of Nigeria FALL 2017 1 Evolution of Web Web 1.x Web 1.0: user interaction == server roundtrip Other than filling out form fields Every user interaction
More informationDistributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014
Distributed Systems 29. Distributed Caching Paul Krzyzanowski Rutgers University Fall 2014 December 5, 2014 2013 Paul Krzyzanowski 1 Caching Purpose of a cache Temporary storage to increase data access
More informationApplication Deployment
Application Deployment Software Engineering II WS 2018/19 Christoph Matthies (christoph.matthies@hpi.de) Enterprise Platform and Integration Concepts Datacenter Work by Leonardo Rizzi (CC BY-SA 2.0) Agenda
More informationGet in Touch Module 1 - Core PHP XHTML
PHP/MYSQL (Basic + Advanced) Web Technologies Module 1 - Core PHP XHTML What is HTML? Use of HTML. Difference between HTML, XHTML and DHTML. Basic HTML tags. Creating Forms with HTML. Understanding Web
More informationMonica. Personal Relationship Management
Monica Personal Relationship Management Alexis SAETTLER FOSDEM 2019 1. Presentation of Monica 2. What we are trying to do 1. Presentation of Monica 2. What we are trying to do Idea Remember everything
More informationSpam. Time: five years from now Place: England
Spam Time: five years from now Place: England Oh no! said Joe Turner. When I go on the computer, all I get is spam email that nobody wants. It s all from people who are trying to sell you things. Email
More informationLiquibase Version Control For Your Schema. Nathan Voxland April 3,
Liquibase Version Control For Your Schema Nathan Voxland April 3, 2014 nathan@liquibase.org @nvoxland Agenda 2 Why Liquibase Standard Usage Tips and Tricks Q&A Why Liquibase? 3 You would never develop
More informationA TALE OF TWO APPS WHY DEVELOPMENT PRACTICES MATTER
A TALE OF TWO APPS WHY DEVELOPMENT PRACTICES MATTER WHO AM I? PHP Developer for about 9 years Worked in insurance for 4.5 years I know RPG! (Not that good at it though) WHAT DID WE NEED TO DO? Build an
More informationRead & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql,
Read & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql, HTML, Swift) Start Learning to Program in the C++ Language
More informationThe Art and Science of Memory Allocation
Logical Diagram The Art and Science of Memory Allocation Don Porter CSE 506 Binary Formats RCU Memory Management Memory Allocators CPU Scheduler User System Calls Kernel Today s Lecture File System Networking
More informationDeveloping ASP.Net MVC 4 Web Application
Developing ASP.Net MVC 4 Web Application About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will
More informationWeb Programming Step by Step
Web Programming Step by Step Chapter 13: Taking a Website Live Alex Loddengaard (alexloddengaard@gmail.com) (http://www.alexloddengaard.com) 6/4/08 Alex Loddengaard 1 What is Cellarspot? Social network
More informationtest with :) chen songyong
test with :) chen songyong about me about me Remote worker! Worked in start-ups, web consultancies, banks and digital agencies! @aquajach in Twitter & Github test in old days test in old days do you write
More informationThe Idiot s Guide to Quashing MicroServices. Hani Suleiman
The Idiot s Guide to Quashing MicroServices Hani Suleiman The Promised Land Welcome to Reality Logging HA/DR Monitoring Provisioning Security Debugging Enterprise frameworks Don t Panic WHOAMI I wrote
More informationApp Engine: Datastore Introduction
App Engine: Datastore Introduction Part 1 Another very useful course: https://www.udacity.com/course/developing-scalableapps-in-java--ud859 1 Topics cover in this lesson What is Datastore? Datastore and
More informationAn Incredibly Brief Introduction to Relational Databases: Appendix B - Learning Rails
O'Reilly Published on O'Reilly (http://oreilly.com/) See this if you're having trouble printing code examples An Incredibly Brief Introduction to Relational Databases: Appendix B - Learning Rails by Edd
More informationLecture 4. Ruby on Rails 1 / 52
Lecture 4 Ruby on Rails 1 / 52 Homeworks 2 & 3 Grades were released for homework 2 Homework 3 was due last night Everyone got a style freebie since my default setup ignores spec files and I didn't change
More informationRancher Part 4: Using the Catalog Example with GlusterFS
Rancher Part 4: Using the Catalog Example with GlusterFS As promised, it s time to get to the catalog goodness. Since GlusterFS hasn t gotten enough love from me lately, it s time to bring that into the
More informationCOURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS
ABOUT THIS COURSE In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the
More informationWeb Application Expectations
Effective Ruby on Rails Development Using CodeGear s Ruby IDE Shelby Sanders Principal Engineer CodeGear Copyright 2007 CodeGear. All Rights Reserved. 2007/6/14 Web Application Expectations Dynamic Static
More informationBack-end architecture
Back-end architecture Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 2 January 2018 https://education.github.com/pack 1 2 Outline HTTP 1. HTTP and useful web tools 2. Designing APIs 3. Back-end services
More informationRewrite or Refactor. When to declare technical bankruptcy. Laura Thomson OSCON - July 22,
Rewrite or Refactor When to declare technical bankruptcy Laura Thomson (laura@mozilla.com) OSCON - July 22, 2010 1 Technical debt Shipping first time code is like going into debt. A little debt speeds
More informationAspirin as a Service: Using the Cloud to Cure Security Headaches
SESSION ID: CSV-T10 Aspirin as a Service: Using the Cloud to Cure Security Headaches Bill Shinn Principle Security Solutions Architect Amazon Web Services Rich Mogull CEO Securosis @rmogull Little. Cloudy.
More informationWeb App Vs Web Site. Some tricks of the trade. Laurent Technical Director, BlackBerry Web Platform
Web App Vs Web Site Some tricks of the trade Laurent Hasson @ldhasson, lhasson@rim.com Technical Director, BlackBerry Web Platform 2012-05-09 Web Apps Vs. Web Sites 1 INTRODUCTION 2012-05-09 Web Apps Vs.
More informationFinal Report: Faculty Progress Report System Team Deadpool
Final Report: Faculty Progress Report System Team Deadpool Team Members and roles: - Adedoyin Aderibigbe ( Scrum Master) - aadedoyino@email.tamu.edu - Kelly Luk Bounsawat (Product Owner) - kelly_12azn@tamu.edu
More informationCS Lab 1: httpd
CS 194-24 Palmer Dabbelt February 6, 2013 Contents 1 Setup 2 2 Distributed Code 3 2.1 Cucumber, Capybara and Mechanize.............................. 3 2.2 HTTP Server...........................................
More informationWhat is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)
1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?
More informationDeveloping ASP.NET MVC 4 Web Applications
Developing ASP.NET MVC 4 Web Applications Course 20486B; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
More informationMySQL. The Right Database for GIS Sometimes
MySQL The Right Database for GIS Sometimes Who am I? Web/GIS Software Engineer with Cimbura.com BS in IT, MGIS Michael Moore I like making and using tools (digital or physical) GIS Web Services I m most
More informationUnit Testing J2EE from JRuby. Evan Light
Unit Testing J2EE from JRuby Evan Light http://evan.tiggerpalace.com Who I am Professional developer since 1996 Java since 1999 J2EE since 2000 Ruby since 2006 Some yutz with Keynote and a remote control
More informationCS 520: VCS and Git. Intermediate Topics Ben Kushigian
CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards
More informationCloud Native Applications. 主讲人 :Capital One 首席工程师 Kevin Hoffman
Cloud Native Applications 主讲人 :Capital One 首席工程师 Kevin Hoffman Agenda Define Cloud Native Cloud Native practices and the 15 factors From Monoliths to the Cloud Q&A What is Cloud Native? Contract between
More informationWorking with the Seagull Framework. By Demian Turner, Seagull Systems
Working with the Seagull Framework By Demian Turner, Seagull Systems seagullproject.org Who is Demian Turner? Developing websites since 1996, using PHP since 1999 Committer on several open source projects:
More informationTranscript for Episode 3: The Right Tool for the Job
(October 2013) Panelists: Jonathan Stark (), Mobile Strategy Consultant and Series Host Kevin Smith (), General Manager, Mobile Computing & Compilers, Developer Products Division, Intel Doug Schepers (DW),
More informationSECURITY AUTOMATION BEST PRACTICES. A Guide on Making Your Security Team Successful with Automation SECURITY AUTOMATION BEST PRACTICES - 1
SECURITY AUTOMATION BEST PRACTICES A Guide on Making Your Security Team Successful with Automation SECURITY AUTOMATION BEST PRACTICES - 1 Introduction The best security postures are those that are built
More informationCrystal for Rubyists
Crystal for Rubyists Serdar Dogruyol Contents Preamble 2 Why Crystal? 3 Installing Crystal 5 Binary installers.............................. 5 From Source................................ 5 Future Proofing............................
More informationLecture 4. Ruby on Rails 1 / 49
Lecture 4 Ruby on Rails 1 / 49 Client-Server Model 2 / 49 What is it? A client (e.g. web browser, phone, computer, etc.) sends a request to a server Request is an HTTP request Stands for HyperText Transfer
More informationContinuous Delivery of your infrastructure. Christophe
Continuous Delivery of your infrastructure Christophe Vanlancker @Carroarmato0 Christophe Vanlancker Internal operations and consulting Mentor Kris couldn t make it so I s/kris/christophe/g Todays Goals
More informationEnterprise Systems & Frameworks
Enterprise Systems & Frameworks CS25010 - Web Programming Connor Goddard 5 th November 2015 Aberystwyth University 1 INTRODUCTION In today s session, we will aim to cover the following: Multi-tier Architectural
More informationGit: Distributed Version Control
Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 What Does "D" Stand For? Distributed version control Multiple people, distributed
More informationReengineering II. Transforming the System
Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have
More informationOffline-first PWA con Firebase y Vue.js
Offline-first PWA con Firebase y Vue.js About me Kike Navalon, engineer Currently working at BICG playing with data You can find me at @garcianavalon 2 We live in a disconnected & battery powered world,
More informationComSpOC: 3D Buildings:
1 ComSpOC: http://apps.agi.com/satelliteviewer/ 3D Buildings: http://cesiumjs.org/newyork/ Red Bull X-Alps: http://www.redbullxalps.com/news/article/relive-the-day-10-battle.html NORAD Tracks Santa: http://cesiumjs.org/demos/noradtrackssanta.html
More informationGit: Distributed Version Control
Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 Demo Prep: Empty (but initialized) repo Linear development: Create, edit, rename,
More informationOutline Key Management CS 239 Computer Security February 9, 2004
Outline Key Management CS 239 Computer Security February 9, 2004 Properties of keys Key management Key servers Certificates Page 1 Page 2 Introduction Properties of Keys It doesn t matter how strong your
More information