Websocket Notifier

Total Page:16

File Type:pdf, Size:1020Kb

Websocket Notifier Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica WebSocket Notifier: una RubyGem basata su WebSocket Tesi di laurea triennale Relatore Prof. Tullio Vardanega Laureando Federico Gobbo Anno Accademico 2015–2016 Federico Gobbo: WebSocket Notifier: una RubyGem basata su WebSocket, Tesi di laurea triennale, c Oct 2016. Sommario Il presente documento rappresenta la relazione finale dell’esperienza di stage condotta nell’azienda Si14 Spa. Esso è organizzato in quattro capitoli: 1. Descrizione dell’azienda: le origini, la natura, il mercato, i processi aziendali; 2. Le motivazioni alla base dell’esperienza di stage: i punti di vista dei portatori di interesse, ovvero l’azienda, l’università e il sottoscritto; 3. Presentazione del progetto di stage: processi e prodotti; 4. Valutazione retrospettiva sull’esperienza di stage. Convenzioni tipografiche Nel testo vengono utilizzate delle convenzioni tipografiche col seguente significato: • Corsivo: termine in lingua inglese; • Grassetto: termine rilevante; • Verbatim: nomi di file, codice; • Glossariojgj: termine presente nel glossario; • Riferimento1: termine associato a un riferimento bibliografico. iii “Make the best of the situation” — Eric Clapton Ringraziamenti Vorrei ringraziare il Prof. Tullio Vardanega, relatore della mia tesi, per l’aiuto, i buoni consigli e la disponibilità che ha dimostrato nei miei confronti. Ringrazio la mia famiglia, la mia ragazza e i miei amici per avermi permesso, col loro sostegno, di raggiungere questo traguardo. Padova, Oct 2016 Federico Gobbo v Indice 1 L’azienda: Si141 1.1 Storia . .1 1.2 Contesto aziendale . .1 1.2.1 I vantaggi dell’ecosistema M31 . .2 1.2.2 Tecnologia e innovazione . .2 1.2.3 Spin-off aziendali . .2 1.3 Struttura interna . .3 1.3.1 I reparti . .3 1.3.2 Coordinamento e comunicazione . .4 1.4 Processi aziendali . .5 1.4.1 Acquisizione e fornitura . .5 1.4.2 Gestione . .5 1.4.3 Sviluppo . .6 2 Le motivazioni 11 2.1 L’interesse dell’azienda . 11 2.1.1 Gli stage nella strategia aziendale . 11 2.1.2 Il progetto assegnato . 12 2.1.3 Valutazioni sulla tipologia di progetto . 13 2.2 La scelta personale . 13 2.2.1 L’azienda . 13 2.2.2 Il progetto . 13 2.3 Il fine dell’università . 14 3 Il progetto: WebSocket Notifier 15 3.1 Lo scopo . 15 3.2 Il dominio . 15 3.2.1 Applicazioni web e servizi cloud . 15 3.2.2 Le tecnologie utilizzate . 16 3.3 Le due fasi . 18 3.3.1 Fase 1: studio delle tecnologie . 18 3.3.2 Fase 2: sviluppo del modulo WebSocket . 22 3.4 Creazione della RubyGem . 23 vii viii INDICE 3.4.1 Presentazione delle specifiche . 23 3.4.2 Pianificazione . 23 3.4.3 Analisi dei requisiti . 26 3.4.4 Progettazione . 27 3.4.5 Sviluppo . 29 3.4.6 Documentazione . 32 3.4.7 Testing . 34 3.4.8 Validazione . 34 4 Valutazione retrospettiva 37 4.1 Bilancio dei risultati . 37 4.1.1 Difficoltà incontrate . 37 4.2 Bilancio formativo . 38 4.2.1 Conoscenze . 38 4.2.2 Abilità . 39 4.2.3 Competenze . 39 4.3 Il gap formativo . 39 Glossario 41 Acronimi 45 Bibliografia 47 Elenco delle figure 1.1 Logo dell’azienda Si14 e dell’incubatore M31 . .1 1.2 Organigramma aziendale di Si14 . .4 1.3 Ciclo di iterazione della metodologia Agile . .6 1.4 Workflow GitFlow . .8 3.1 Diagramma di Gantt per la Pianificazione . 25 3.2 Prima architettura della RubyGem . 33 Elenco delle tabelle 3.1 File e cartelle principali di una applicazione Ruby on Rails . 19 3.2 Requisiti obbligatori . 26 3.3 Requisiti desiderabili . 27 3.4 Requisiti opzionali . 27 3.5 Soddisfacimento dei requisiti obbligatori . 36 3.6 Soddisfacimento dei requisiti desiderabili . 36 3.7 Soddisfacimento dei requisiti opzionali . 36 Elenco dei codici 3.1 Esempio di migration . 20 3.2 File config.ru per web server Faye . 29 3.3 Invio messaggi dal Server . 30 3.4 Uso del metodo dispatch con le callback di ActiveRecord . 30 ix x ELENCO DEI CODICI 3.5 Iscrizione a un canale . 31 3.6 LoggerExtension . 32 Capitolo 1 L’azienda: Si14 1.1 Storia Si14 nasce nel 2008 dall’incubatore M31, acceleratore di imprese del territorio veneto. L’azienda ha le sue radici in ambiente universitario: da un professore e un gruppo di studenti di ingegneria ha avuto origine quella che sarebbe stata la prima forma di Si14: un’azienda di ingegneri che progettava e realizzava schede elettroniche per conto di aziende terze. Figura 1.1: Logo dell’azienda Si14 e dell’incubatore M31 Con il tempo Si14 è cresciuta ad abbracciare un universo tecnologico più ampio, andando ad allargare il suo organico ed espandendo le sue competenze. Sono nati così nuovi reparti dedicati all’hardware, al firmware e al software che collaborando rendono possibile la creazione di prodotti completi. 1.2 Contesto aziendale Questa è la forma attuale di Si14: un’azienda ad alto contenuto tecnologico ed innovativo, che partendo da una business idea fornisce soluzioni complete sotto forma di prodotti e servizi. Se M31 è definito acceleratore di impresa, Si14 può essere definita acceleratore di prodotto: mantenendo al suo interno tutte le competenze necessarie essa può infatti ridurre il tempo per arrivare a commercializzare un prodotto, ovvero il cosiddetto time to market. Quest’ultimo è un parametro essenziale in un mercato dominato non da chi ha l’idea migliore, ma da chi raggiunge un’ottima realizzazione grazie ad un inserimento precoce nel mercato stesso. A questo scopo si punta alla 1 2 CAPITOLO 1. L’AZIENDA: Si14 produzione di un MVPjgj (Minimum Viable Product) che consenta di raccogliere quanto prima feedback dagli utenti finali. Gli ambiti di applicazione sono i più disparati: dal biomedicale, sportivo, indu- striale, fino al militare. In otto anni di attività sono stati numerosi i progetti portati a termine, molti dei quali per aziende di rilevanza nazionale e internazionale. Di seguito ne sono elencati alcuni: • Luna Rossa: nel giugno del 2014 Si14 è stata Fornitore Ufficiale del team Luna Rossa per la Coppa America, progettando e realizzando un anemometro, fornen- do smartwatch Wearit per il monitoraggio delle performance e un’infrastruttura per la sincronizzazione e la fruizione delle riprese GoPro. • Sirio Panel (Gruppo Finmeccanica): Si14 ha realizzato un hard disk da elicotteri utilizzabile in ambito civile e militare, un Network Area Storage in grado di memorizzare informazioni sensibili e renderle disponibili agli altri apparati di bordo. Per Sirio Panel Si14 ha inoltre realizzato un tablet da coscia per utilizzo in ambito militare e un sistema ILS (Instrumental Landing System) per l’atterraggio strumentale automatico di un aeromobile. • Manfrotto: Si14 ha realizzato Digital Director, la prima stazione di regia per iPad nel mondo della fotografia, in grado di controllare da remoto l’intera attrezzatura fotografica. 1.2.1 I vantaggi dell’ecosistema M31 L’incubatore M31 non ha solo lo scopo di investire sulle aziende emergenti. Esso crea un ecosistema di aziende che possono sfruttare l’una le conoscenze e i servizi dell’altra. Lo stesso M31 si occupa di fornire personale o interi reparti per le aziende in formazione, in modo tale che possano concentrarsi completamente sugli aspetti core e raggiungere più velocemente uno stadio maturo. 1.2.2 Tecnologia e innovazione Per la natura dell’azienda l’innovazione è una componente essenziale: ricercarla mantenendo al contempo standard di qualità elevati è l’unico modo per essere competitivi sul mercato. Si14 trova nell’innovazione lo spirito che la contraddistingue, lo stesso che la spinge ad accettare sempre nuove sfide: questo per certi aspetti espone l’azienda a rischi non indifferenti, soprattuto quando il prodotto non è commissionato da altre aziende. Si14 mette quindi in atto tutte le misure precauzionali necessarie nell’analisi e nella gestione dei rischi. 1.2.3 Spin-off aziendali Non solo l’azienda accetta e porta a compimento sfide tecnologiche e di innovazione nei prodotti che realizza: in alcuni casi questi conducono alla nascita di vere e proprie 1.3. STRUTTURA INTERNA 3 aziende spin-off, nate a partire da singoli progetti e che diventano per certi aspetti realtà indipendenti. Questo è il caso delle aziende D·Eye e Wearit. D·Eye D·Eye nasce nel 2014 grazie all’idea dell’oftalmologo Andrea Russo, che ha saputo vedere nei moderni smartphone uno strumento sufficientemente potente e al tempo stesso versatile, per andare ad imitare e in alcuni casi sosituire il classico oftalmoscopio. D·Eye ha infatti sviluppato un dispositivo ottico in grado di effettuare esami della retina sfruttando la telecamera e il sistema di illuminazione di cui ogni smartphone è dotato. Wearit Wearit ha dato origine al primo “action watch” in grado di rilevare dati corporei qualitativi, oltre che quantitativi. Wearit rappresenta un sistema per tracciare, registrare ed analizzare ogni tipo di attività sportiva, fornendo un’unica metrica basata sull’aggregazione e l’analisi dei dati provenienti dai sensori dello smartwatch. 1.3 Struttura interna Come detto, la grande forza di Si14 sta nel poter contare su tutte le competenze di cui necessita direttamente al suo interno. L’organizzazione della azienda rispecchia questa specializzazione dividendo l’organico in reparti e team. 1.3.1 I reparti Di seguito elenco i reparti aziendali dei quali sono venuto a conoscenza durante l’esperienza di stage. Nella figura ?? è illustrato l’intero organigramma aziendale. Ricerca e sviluppo Il reparto di ricerca e sviluppo è il cuore di Si14, dove i team di sviluppo collaborano nel progettare e realizzare soluzioni innovative. • Hardware: il team dedicato all’hardware si occupa di progettare le schede elettroniche e in generale la parte fisica di un nuovo prodotto; • Firmware: le schede elettroniche di per sé non possono comunicare né essere sfruttate dal software: il team dedicato al firmware si occupa quindi di realizzare codice a basso livello che permetta di interpretare i segnali elettrici e fornire un’interfaccia al livello superiore; • Software: il team sviluppa il modello dei dati, la business logic, le interfacce grafiche che si integrano, sfruttano e governano il prodotto stesso.
Recommended publications
  • Interfacing Apache HTTP Server 2.4 with External Applications
    Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick November 6, 2012 Who am I? Interfacing Apache HTTP Server 2.4 with External Applications Met Unix (in the form of Xenix) in 1985 Jeff Trawick Joined IBM in 1990 to work on network software for mainframes Moved to a different organization in 2000 to work on Apache httpd Later spent about 4 years at Sun/Oracle Got tired of being tired of being an employee of too-huge corporation so formed my own too-small company Currently working part-time, coding on other projects, and taking classes Overview Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Huge problem space, so simplify Perspective: \General purpose" web servers, not minimal application containers which implement HTTP \Applications:" Code that runs dynamically on the server during request processing to process input and generate output Possible web server interactions Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Native code plugin modules (uhh, assuming server is native code) Non-native code + language interpreter inside server (Lua, Perl, etc.) Arbitrary processes on the other side of a standard wire protocol like HTTP (proxy), CGI, FastCGI, etc. (Java and \all of the above") or private protocol Some hybrid such as mod fcgid mod fcgid as example hybrid Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Supports applications which implement a standard wire protocol, no restriction on implementation mechanism Has extensive support for managing the application[+interpreter] processes so that the management of the application processes is well-integrated with the web server Contrast with mod proxy fcgi (pure FastCGI, no process management) or mod php (no processes/threads other than those of web server).
    [Show full text]
  • Integrating Openshift Enterprise with Identity Management (Idm) in Red Hat Enterprise Linux
    Integrating OpenShift Enterprise with Identity Management (IdM) in Red Hat Enterprise Linux OpenShift Enterprise 2.2 IdM in Red Hat Enterprise Linux 7 Windows Server 2012 - Active Directory Integration Mark Heslin Principal Systems Engineer Version 1.1 January 2015 1801 Varsity Drive™ Raleigh NC 27606-2072 USA Phone: +1 919 754 3700 Phone: 888 733 4281 Fax: +1 919 754 3701 PO Box 13588 Research Triangle Park NC 27709 USA Linux is a registered trademark of Linus Torvalds. Red Hat, Red Hat Enterprise Linux and the Red Hat "Shadowman" logo are registered trademarks of Red Hat, Inc. in the United States and other countries. Microsoft and Windows are U.S. registered trademarks of Microsoft Corporation. UNIX is a registered trademark of The Open Group. Intel, the Intel logo and Xeon are registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. All other trademarks referenced herein are the property of their respective owners. © 2014 by Red Hat, Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, V1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The information contained herein is subject to change without notice. Red Hat, Inc. shall not be liable for technical or editorial errors or omissions contained herein. Distribution of modified versions of this document is prohibited without the explicit permission of Red Hat Inc. Distribution of this work or derivative of this work in any standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from Red Hat Inc.
    [Show full text]
  • Insight: Semantic Provenance and Analysis Platform for Multi-Center Neurology Healthcare Research
    INSIGHT: SEMANTIC PROVENANCE AND ANALYSIS PLATFORM FOR MULTI-CENTER NEUROLOGY HEALTHCARE RESEARCH by PRIYA RAMESH Submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Department of Electrical Engineering and Computer Science CASE WESTERN RESERVE UNIVERSITY January, 2016 ii CASE WESTERN RESERVE UNIVERSITY SCHOOL OF GRADUATE STUDIES We hereby approve the thesis of PRIYA RAMESH candidate for the Master of Science degree*. (signed) Dr. Satya S. Sahoo, Ph.D. (Chair of the committee) Dr. Kenneth A. Loparo, Ph.D. Dr. Martha Sajatovic, MD. (date) November 5th, 2015 *We also certify that written approval has been obtained for any proprietary material contained therein. iii Copyright © Priya Ramesh January, 2016 All rights reserved. iv TABLE OF CONTENTS TABLE OF CONTENTS iv LIST OF FIGURES vi LIST OF TABLES vii ACKNOWLEDGEMENT viii CHAPTER 1. INTRODUCTION 10 CHAPTER 2. BACKGROUND 13 2.1 Managing Epilepsy Well Network 13 2.1.1 Introduction 13 2.1.2 MEW database workgroup 16 2.1.3 MEW Network survey results 17 2.1.4 A common terminology for epilepsy self-management 19 2.1.5 Standardization of data elements 20 2.1.6 Data curation workflow for MEW Network datasets 21 2.1.7 MEW Network database design and functionality 26 2.2 Research Studies 27 CHAPTER 3. METHODS 30 3.1. Semantic Integration Module using MEW Common Data Elements (CDEs) 33 3.2. Data Exploration and Query Module 34 3.3. Ontology-based Inference Module 36 CHAPTER 4. INSIGHT SOFTWARE DEVELOPMENT 38 4.1 Objective 38 4.2 Agile Methodology 39 4.3 User Interface Development 41 CHAPTER 5.
    [Show full text]
  • Vasili Korol
    Vasili Korol Senior Software Developer Odense, Denmark Age: 35 mob.: +45 20 68 50 23 Married, have son (born 2010) e-mail: [email protected] ​ Personal Statement ⚬ Strong IT skills (16+ years of versatile experience) ⚬ Background in physics research ⚬ Work effectively both as team member and leader ⚬ Enthusiastic and committed ⚬ Spoken languages: Russian (native), English (fluent), Danish (Prøve i Dansk 3 / level B2) ​ ​ ​ ​ Education 2006–2008: Master’s degree (with distinction) in applied physics. ​ 2002–2006: Bachelor’s degree (with distinction) in applied physics. Under- to postgraduate student at St. Petersburg State Polytechnical University, Faculty of Physics and Technology, Dept. of Cosmic Physics. The thesis “Search for possible space-time variations of the fine-structure constant and isotopic shifts” (a supervisor Prof. ​ M.G. Kozlov). ​ 1992-2002: School education in St. Petersburg, Russia and Belfast, UK (in 1993). Professional Career 2015 – Feb 2021: Software developer in the QuantBio research group at the University of ​ ​ ​ ​ Southern Denmark (SDU), Institute of Physics, Chemistry and Pharmacy (HPC section). I am the principal developer of VIKING, a service providing a web interface for configuring ​ ​ ​ and running scientific computational tasks on supercomputers. I designed the software architecture, developed the system core and coordinated the work of several developers. 2014 – 2015: Lead programmer (Perl) at Internet Projects LLC, russian informational portals subscribe.ru and sendsay.ru (St. Petersburg, Russia). ​ ​ ​ Worked with a team of developers on projects targeted at developing an API for news aggregation and content processing services. This involved integration with various online platforms (Facebook, Twitter, Vkontakte, LiveJournal, Google Analytics), web scraping and designing instruments for user publications at the portals and beyond.
    [Show full text]
  • Configuration Management at the Los Alamos National Laboratory
    Mac Configuration Management at the Los Alamos National Laboratory By Allan Marcus April, 2010 Overview.....................................................................................................................................1 The Challenge ...........................................................................................................................2 Product Selection.....................................................................................................................3 Getting Started..........................................................................................................................7 Basic Implementation............................................................................................................8 Configuration Management .............................................................................................. 14 Advanced Implementation................................................................................................ 16 How LANL uses Puppet ....................................................................................................... 20 Lessons Learned ................................................................................................................... 24 About the Author .................................................................................................................. 29 Appendix 1: puppet.sh........................................................................................................ 30 Appendix
    [Show full text]
  • Version Control Graphical Interface for Open Ondemand
    VERSION CONTROL GRAPHICAL INTERFACE FOR OPEN ONDEMAND by HUAN CHEN Submitted in partial fulfillment of the requirements for the degree of Master of Science Department of Electrical Engineering and Computer Science CASE WESTERN RESERVE UNIVERSITY AUGUST 2018 CASE WESTERN RESERVE UNIVERSITY SCHOOL OF GRADUATE STUDIES We hereby approve the thesis/dissertation of Huan Chen candidate for the degree of Master of Science Committee Chair Chris Fietkiewicz Committee Member Christian Zorman Committee Member Roger Bielefeld Date of Defense June 27, 2018 TABLE OF CONTENTS Abstract CHAPTER 1: INTRODUCTION ............................................................................ 1 CHAPTER 2: METHODS ...................................................................................... 4 2.1 Installation for Environments and Open OnDemand .............................................. 4 2.1.1 Install SLURM ................................................................................................. 4 2.1.1.1 Create User .................................................................................... 4 2.1.1.2 Install and Configure Munge ........................................................... 5 2.1.1.3 Install and Configure SLURM ......................................................... 6 2.1.1.4 Enable Accounting ......................................................................... 7 2.1.2 Install Open OnDemand .................................................................................. 9 2.2 Git Version Control for Open OnDemand
    [Show full text]
  • Le Web Social Table Des Matières
    Le Web Social Table des matières 1 Web social 1 1.1 Historique ............................................... 1 1.2 L'évolution du web social ....................................... 1 1.2.1 Blogs et wiki ......................................... 1 1.2.2 L'art social .......................................... 2 1.2.3 Le crowdsourcing ...................................... 2 1.2.4 Le développement d'applications mobiles .......................... 2 1.2.5 Des projets de logiciels communautaires ........................... 2 1.3 Du web social à la vie réelle ..................................... 2 1.4 Bibliographie ............................................. 3 1.5 Notes et références .......................................... 3 1.6 Voir aussi ............................................... 3 2 Réseautage social 4 2.1 Histoire ................................................ 4 2.2 Applications .............................................. 4 2.3 Modèle économique ......................................... 5 2.3.1 Commerce des données ................................... 5 2.3.2 Vente d'espaces publicitaires ................................. 5 2.3.3 Cession des actifs ....................................... 5 2.4 Domaines d'application ........................................ 5 2.4.1 Réseaux internes versus réseaux externes ........................... 6 2.4.2 Services en ligne de réseautage professionnels ........................ 6 2.4.3 Réseaux sociaux d'amis de la vie réelle ............................ 6 2.4.4 Services en ligne d'ancien
    [Show full text]
  • Rails Connector for CMS Fiona Infopark CMS Fiona Rails Connector for CMS Fiona
    Infopark CMS Fiona Rails Connector for CMS Fiona Infopark CMS Fiona Rails Connector for CMS Fiona While every precaution has been taken in the preparation of all our technical documents, we make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. All trademarks and copyrights referred to in this document are the property of their respective owners. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without our prior consent. Contents 1 Concepts . 7 1.1 Moving to Rails? . 7 1.1.1 Editorial and Live System . 7 1.1.2 Editorial Content and Layout are Handled Equally . 7 1.1.3 The Classical Live System is heterogeneous . 8 1.1.4 Ruby on Rails is an Integrated Framework . 8 1.1.5 Moving to Ruby on Rails . 8 1.1.6 Frequently Asked Questions About Moving to Rails . 9 1.2 What Is Ruby on Rails? . 10 1.3 Functions of Infopark Rails Connector . 11 1.4 Usage Scenarios for the Rails Connector . 11 1.5 The Playland Demo Application . 12 1.6 The Layout of a Rails Application . 18 1.7 Deployment . 18 1.8 CMS Layouts as Extensible Page Types . 19 1.9 Dedicated Controllers for Specific CMS File Formats . 20 1.10 Using the Rails Application as a Preview Server .
    [Show full text]
  • Read My Resume
    Eli Thorkelson [email protected] github.com/decasia TL;DR I’m a full-stack web software engineer with a doctorate in cultural anthropology. I’m currently doing back-end development for the Nebo Agency in Atlanta, where I’ve had a special focus on improving testing and web stack performance in our client projects. I previously designed and built more than a dozen Ruby on Rails applications for the University of Chicago’s Humanities Division. I’ve maintained Linux servers, web software stacks, and relational and NoSQL databases; I’m especially interested in software design patterns and user interfaces. I recently returned to software after a few years in academic teaching and research. TECHNICAL SKILLS Languages: Ruby, PHP, Python, SQL; HTML, CSS, Javascript; college coursework in Java and C++. Web development frameworks: Ruby on Rails (~7 years), Drupal 6/7/8, Node.js, WordPress. Databases: PostgreSQL, MySQL, SQLite, Mongo, Redis. Web front end: Ember.js, jQuery, d3.js, Freeboard, Mobiledoc, jPlayer, PanoJS, Bootstrap; SASS, CoffeeScript/ES6. Web server software: Apache, Nginx, Phusion Passenger, Apache Solr, Nagios, Ansible, Shibboleth SP. Development software: Cucumber, RSpec, qUnit; Git (GitHub/GitLab/BitBucket); Asana. Web services: AWS, DigitalOcean, EngineYard, Algolia, New Relic, Mailchimp, Mailgun. EMPLOYMENT Feb 2020– Back End Web and Applications Engineer, Nebo Agency, Atlanta Built websites and web applications (mainly Ruby and PHP), maintained web servers and database systems. Interfaced with clients and internal project teams, provided estimates for engineering tasks. Improved server response times by 10x on a high-profile client project (down to <200ms from over 2000ms). Built an OSX native application for internal task management (in Swift).
    [Show full text]
  • TPR01: Higher Ed on Rails Sven Aas, Web Team Lead, Mount Holyoke College, [email protected]
    TPR01: Higher Ed on Rails Sven Aas, Web Team Lead, Mount Holyoke College, [email protected] Links to presentation materials and additional information will be available at my website: http://www.mtholyoke.edu/~saas/ This is an incomplete and highly subjective set of lists, but I hope it will be a useful resource: Resources for Ruby and Rails Training Materials Official sites Online Training Materials Ruby (use 1.8.x for production, for now): Why's (Poignant) Guide to Ruby: http://www.ruby-lang.org/ http://poignantguide.net/ruby/ Rails: PeepCode Screencasts: http://www.rubyonrails.org/ http://peepcode.com/ Official News Books on Ruby Ruby News: Programming Ruby, 3rd Edition http://www.ruby-lang.org/en/news/ 2008, by D. Thomas, C. Fowler, and A. Hunt Riding Rails: http://weblog.rubyonrails.org/ The Ruby Way, 2nd Edition 2006, by H. Fulton Other Good Blogs Ruby Inside: The Ruby Programming Language http://www.rubyinside.com/ 2008, by D. Flanagan and Y. Matsumoto Giant Robots …: http://giantrobots.thoughtbot.com/ Books on Rails Rail Spikes: Agile Web Development with Rails, 3rd Edition http://railspikes.com/ 2008, by S. Ruby, D. Thomas, D. Hansson Rails Envy: http://www.railsenvy.com/ The Rails Way Railscasts: 2007, by O. Fernandez http://railscasts.com/ Rails Recipes 2006, by C. Fowler Advanced Rails Recipes 2008, by M. Clark Copyright 2008, Sven Aas Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License TPR01: Higher Ed on Rails Sven Aas, Web Team Lead, Mount Holyoke College, [email protected] Rails Tool Chain
    [Show full text]
  • Deploying and Monitoring Ruby on Rails a Practical Guide
    Mit hotfixes von Carsten Bormann 2011-03-05 + 2013-02-28 Deploying and Monitoring Ruby on Rails A practical guide Mathias Meyer and Jonathan Weiss, 25.05.2009 Danke! Peritor GmbH Mashed up with... 2011-03-05 Deployment/Scaling/ Caching/Debugging jan krutisch mindmatters gmbh&co. kg [email protected] http://mindmatters.de Deployment Real artists ship! Komponenten client (Browser) rails database client Heute: (Browser) ➔ railsthin mongrel (∨database unicorn) mongrel ist schnell apache ist schneller client webserver rails Dateisystem public/ database rails ist nicht threadsafe client rails webserver rails database Dateisystem rails public/ webserver rails webserver rails oldschool: CGI / SCGI / FastCGI newschool: http mongrel versus... mod_proxy_balancer (in Apache/nginx/lighttpd) oder ein richtiger proxy oder ein richtiger balancer Varnish HAProxy, Squid, etc. true school: passenger Apache-Modul client rails webserver rails database rails Dateisystem public/ mod_passenger automagisch. it just works. http://modrails.com Infrastructure Infrastructure 5 Simple Rails Setup One Rails instance handles all requests Rails is single-threaded: There is only one concurrent request 6 Rails Setup 7 Rails Setup 8 Typical Rails Setup •! A load-balancer distributes the incoming requests •! Some load-balancers will deliver static requests themselves •! Several Rails instances handle all requests •! Number of concurrent requests equals number of Rails instances 9 Rails Setup Options 10 Deployment Questions Apache? Pound? mod_proxy_balancer? FastCGI? Mongrel? Proxy? Load-balancer? Nginx? mod_rails? Ebb? HA-Proxy? Reverse Proxy? Swiftiply? Phusion Passenger? Thin? Pen? Rails Application Server? Lighttpd? 11 What we are going to cover today Rails Application Server Proxy/Web Server •! FastCGI •! Apache2 •! Mongrel •! Nginx •! mod_rails / Phussion Passenger •! Lighttpd •! JRuby + Glassfish & Co.
    [Show full text]
  • Install Redmine on Centos 6.5 ‐ 64 Bit
    Install Redmine on Centos 6.5 ‐ 64 bit Install Redmine on Centos 6.5 ­ 64 bit The System Requirements Update the System Install the dependencies packages Install Apache and MySQL Turn off SELinux Set up the Hostname Configuring the Firewall Install PHP and phpMyAdmin Install Ruby Install Rubygems Install Passenger Create Database for Redmine Install Redmine Setting up Rails Activate FCGI Setting up Apache and FastCGI Creating Files Directory Configuring Email Create Virtual Host for Redmine Running Redmine Install Subversion Origin source from : eDesignNetwork.org The System Requirements During the installation process we will use the Centos 6.5 ­ 64 bit OS, the original hardware configuration should not require high you can install on a normal PC or a virtual machine using VMWare, VirtualBox. For the CentOS operating system, you can downloading at URL address : http://centos.org/download Selecting a 64­bit version called "CentOS­6.5­x86_64­bin­DVD1.iso", after you download and install on the computer or on a virtual machine, the installation process is simple for anyone with basic computer skills. Although this guiding document install on the Centos 6.5 operating system, but you can use any version of Centos 6.x for both 32 bit and 64 bit. When the installation process is complete, you need the tools to connect with the Centos server via FTP and SSH protocols, you must to install FileZilla at the URL address : https://filezilla­project.org/download.php Next, we need to install Putty to communicate with Linux via SSH. Download the installation package Putty for Windows at the following address : http://www.putty.org/ To prepare for the next section, you need to set up a connection using Putty SSH to Server running Centos, enter the IP address of the computer running Centos (probably IP on the dedicated server, on the virtual machines, on the your LAN or PC).
    [Show full text]