Apuntes De RUBY

Total Page:16

File Type:pdf, Size:1020Kb

Apuntes De RUBY Apuntes de RUBY Casiano R. Le´on 1 1DEIOC Universidad de La Laguna A Juana For it is in teaching that we learn And it is in understanding that we are understood 1 Agradecimientos/Acknowledgments I'd like to thank A mis alumnos de Lenguajes y Paradigmas de Programaci´ondel Grado de Inform´atica de la Escuela Superior de Inform´atica en la Universidad de La Laguna 2 Parte I LENGUAJES Y PARADIGMAS DE PROGRAMACION 3 Cap´ıtulo1 Introducci´ona los Lenguajes y Paradigmas de Programaci´on Los primeros computadores costaban millones de d´olaresde 1940, ocupaban una o varias habita- ciones y consum´ıantanta electricidad como una f´abricade tama~nomediano. El Colossus fu´eel primer computador electr´onicodigital completamente programable (1943-1944). Los primeros computadores se programaban en lenguaje m´aquina:una secuencia de bits que con- trola directamente al procesador. Los programadores usaban lenguaje m´aquina entre otras cosas por- que estaban convencidos de que el tiempo del computador era mucho mas valioso que el tiempo del programador. El lenguaje ensamblador fue inventado para permitir que las operaciones fueran expresadas me- diante abreviaciones nem´onicas. Al principio la correspondencia era uno-uno entre nem´onicose instrucciones de la m´aquina.Luego se les a~nadieron expansiones de macros, que permiten la abreviaci´onde secuencias parametrizadas de secuencias de instrucciones que aparecen a menudo. Cuando los computadores empezaron a evolucionar y a tener distintos dise~nos,comenz´otambi´en la frustraci´onde tener que reescribir los programas para cada nueva m´aquina.empez´oa ser clara la necesidad de disponer de un lenguaje que fuera independiente de la m´aquina en el cual fuera posible expresar usando una notaci´onmatem´aticalos c´alculos.En la d´ecadade los 50 aparece el lenguaje Fortran. El lenguaje Lisp especificado en 1958 por John McCarthy es s´oloun a~nomas joven. Tambi´en de esa ´epoca es el lenguaje Algol. Los compiladores son los programas del sistema que se encargan de la traducci´ondesde un lenguaje de alto nivel al lenguaje ensamblador o al lenguaje m´aquina. Al comienzo los programadores pod´ıanescribir c´odigoen ensamblador que era mas eficiente que el que el compilador produc´ıa.Hoy en d´ıa,en parte debido a la complejidad del hardware (pipelining, multiples unidades funcionales, etc.) un compilador puede producir mejor c´odigoque el escrito por un humano. Adem´asel coste del trabajador hoy en d´ıasobrepasa con mucho al costo del hardware. Se trata por tanto de economizar en la construcci´onde programas y su mantenimiento. 1.1. Modelos de Programaci´on Programming models bridge the gap between the underlying hardware architecture and the sup- porting layers of software available to applications. Programming models are different from both programming languages and application programming interfaces (APIs). Specifically, a programming model is an abstraction of the underlying computer system that allows for the expression of both algorithms and data structures. In comparison, languages and APIs provide implementations of these abstractions and allow the algorithms and data structures to be put into practice { a programming model exists independently of the choice of both the programming language and the supporting APIs. 4 1.2. Paradigmas de Programaci´on A programming paradigm is a fundamental style of computer programming, a way of building the structure and elements of computer programs. Capabilities and styles of various programming languages are defined by their supported program- ming paradigms; some programming languages are designed to follow only one paradigm, while others support multiple paradigms. Programming paradigms that are often distinguished include imperative (Fortran, C) declarative (Prolog, SQL) functional (Haskell) object-oriented (Smalltalk, Ruby) logic (Prolog) Programming paradigms can be compared with programming models that are abstractions of com- puter systems. For example, the von Neumann model is a programming model used in traditional sequential computers. For parallel computing, there are many possible models typically reflecting different ways processors can be interconnected. The most common are based on shared memory, distributed memory with message passing, or a hybrid of the two. Some programming language researchers criticise the notion of paradigms as a classification of programming languages. They argue that many programming languages cannot be strictly classified into one paradigm, but rather include features from several paradigms. Imperative programming is focused on describing how a program operates. It describes compu- tation in terms of statements that change a program state. Object-oriented programming integrates code and data using the concept of an .object". An object has both state (data) and behavior (code). Declarative programming is a style of programming in which programs describe their desired results without explicitly listing commands or steps that must be performed. Logic programming is a programming paradigm based on formal logic 1.3. El Arte del Dise~node Lenguajes >Por que hay tantos lenguajes de programaci´on? 1. Evoluci´on Fortran Algol Smalltalk Cobol -----> Pascal -----> C++ Basic Ada Eiffel ... ... ... GOTOS STRUCTURED OOP 2. Prop´ositoespec´ıfico Lisp Computaci´onsimb´olica Prolog Relaciones l´ogicas Snobol, Icon Manipulaci´onde texto Perl Manipulaci´onde texto y programaci´onde sistemas 5 3. Preferencias personales Brevedad de C Recursi´on versus iteraci´on Punteros >Que hace que un lenguaje tenga ´exito? 1. Expresividad Basic (priemras versiones) versus Common Lisp 2. Facilidad de aprendizaje Basic Logo, Scratch, Pascal Java 3. F´acilde implementar Basic Pascal 4. Open Source C 5. Calidad de los compiladores Fortran 6. Razones econ´omicas, Patronazgo, Inercia Cobol, PL/I <--- IBM Ada <--- Departamento de Defensa USA C# <--- Microsoft Java <--- Sun, Oracle, Google 1.4. El Espectro de los Lenguajes de Programaci´on Los lenguajes de programaci´onpueden ser clasificados en familias de acuerdo con su modelo de computaci´on[?]. declarativo funcional Lisp, Scheme, Clojure, ML, Haskell, Scala flujo de datos (dataflow) Id, Val logicos, basados-en-restricciones Prolog basados en templates XSLT imperativos von Neuman C, Ada, Fortran scripting Perl, Python, PHP orientados a objetos Smalltalk, Ruby, Eiffel, C++, Scala 6 1. Los lenguajes funcionales usan un modelo computacional basado en la definici´onde funciones recursivas. Se inspiran en el lambda c´alculo(Lisp, ML, Haskell, Erlang, Elixir) 2. Los lenguajes dataflow realizan su c´alculoseg´unel flujo de informaci´onentre nodos funcionales. Son ejemplos de Dataflow los lenguajes Id y Val. Las hojas de c´alculotambi´enpueden conside- rarse un ejemplo, ya que el cambio de una variable fuerza el re-c´alculode todas las celdas que dependen de ella 3. Los lenguajes l´ogicos y los lenguajes de restricciones se inspiran en la l´ogicade predicados 4. Los lenguajes de von Neumann se basan en la ejecuci´onde las sentencias de un programa almacenado en memoria y que cambian los valores de las variables almacenadas en la memoria 5. Los lenguajes de scripting o lenguajes din´amicos facilitan la combinaci´onde componentes que fueron desarrolladas como programas independientes. Son lenguajes de scripting bash, csh, awk, PHP, JavaScript, Perl, Python, Ruby, . 6. Los Lenguajes orientados a objetos describen la soluci´onen base a objetos que interactuan entre si. Los objetos disponen de su propio estado interno y un conjunto de subrutinas (denominadas m´etodos) que modifican dicho estado. el lenguaje orientado a objetos por excelencia es Smalltalk En cuanto a la concurrencia, las mas de las veces es implementada mediante librer´ıas,paquetes y compiladores extendiendo las capacidades de un lenguaje secuencial como C o Fortran. Algunos len- guajes, entre ellos Java, C#, Ada, Modula-3, Erlang y Elixir contienen caracter´ısticasexpl´ıcitamente concurrentes. Para ver como diferentes lenguajes resuelven el mismo problema puede consultarse: Rosetta Code: A site with solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different 1.5. >Porqu´eestudiar lenguajes? 1. Los lenguajes de prop´osito/dominio espec´ıficopermiten expresar de forma mas sencilla la soluci´on de un determinado problema: a) HTML para escibir p´aginasweb b) CSS para darles estilo c) Make o Rake para describir el workflow de tareas d)L ATEX para escribir documentos e) SQL para la manipulaci´onde datos f ) DOT (GraphViz) para dibujar grafos la mayor parte de los programadores nunca implementaran un lenguaje de programaci´onpero si que posiblemente tendr´anque escribir programas que transformen de un formato a otro o crear su propio lenguaje de configuraci´onpara una cierta aplicaci´on 2. Simular caracter´ısticas ´utilesde un lenguaje en otro 3. Elegir entre varias alternativas para expresar una misma cosa una alternativa ´optima 7 Cap´ıtulo2 Programaci´onImperativa Imperative programming is focused on describing how a program operates. In computer science terminologies, imperative programming is a programming paradigm that des- cribes computation in terms of statements that change a program state. The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without prescribing how to do it in terms of sequences of actions to be taken. V´ease la secci´onImperative Programming de la Wikipedia. 2.1. Estructuras de Datos V´easela secci´onData structure en la Wikipedia
Recommended publications
  • Questions for Ruby Gems
    www.YoYoBrain.com - Accelerators for Memory and Learning Questions for Ruby Gems Category: Basics - (21 questions) How do you check the version of gems on gem --version system Ruby: How do you update gems version gem update --system Ruby: How do you install a particular gem gem install rails (such as rails) How do you search the gem repository gem list -r name directly for gem with a name How do you uninstall a particular version of a gem uninstall name -v#.# gem What type of file would you need to install a .gem file gem directly If you install a gem directly and it needs post postinstall.rb installation code to be run, what is the typical file name 2 ways to make the gem code available in a require xxxx - uses the latest version ruby program require_gem 'xxxx', = x.x.x - to specify the gem version Ruby: How can you find out which version of gem list --remote name the gems are available from remote repository What is a .gem file essentially archives like tar or zip files with metadata describing contents Ruby: What must be created to make your custom gem specification, called own gem gemspecplaced in gemspec.rb and uses object GEM::Specification Ruby: How do you create your own .gem file gem build gemspec.rb RubyGem: code for package is placed within lib ____ directory RubyGem: convention for primary file lib/gem_name.rb RubyGem: file where you define what's in gem_name.gempspec gem, who made it, and version RubyGem: how to build / install from source gem build gem_name.gemspecgem install files ./gemname.gem RubyGem: how to push a created gem to gem push gem_name-0.0.0.gem RubyGems.org RubyGems: how to detect a gem on gem list -r gem_name RubyGems.org RubyGems: convention for adding modules / make a directory inside lib with same name classes to gem as gemlib/gem_name/ .
    [Show full text]
  • Alexander, Kleymenov
    Alexander, Kleymenov Key Skills ▪ Ruby ▪ JavaScript ▪ C/C++ ▪ SQL ▪ PL/SQL ▪ XML ▪ UML ▪ Ruby on Rails ▪ EventMachine ▪ Sinatra ▪ JQuery ▪ ExtJS ▪ Databases: Oracle (9i,10g), MySQL, PostgreSQL, MS SQL ▪ noSQL: CouchDB, MongoDB ▪ Messaging: RabbitMQ ▪ Platforms: Linux, Solaris, MacOS X, Windows ▪ Testing: RSpec ▪ TDD, BDD ▪ SOA, OLAP, Data Mining ▪ Agile, Scrum Experience May 2017 – June 2018 Digitalkasten Internet GmbH (Germany, Berlin) Lead Developer B2B & B2C SaaS: Development from the scratch. Ruby, Ruby on Rails, Golang, Elasticsearch, Ruby, Ruby on Rails, Golang, Elasticsearch, Postgresql, Javascript, AngularJS 2 / Angular 5, Ionic 2 & 3, Apache Cordova, RabbitMQ, OpenStack January 2017 – April 2017 (project work) Stellenticket Gmbh (Germany, Berlin) Lead developer Application prototype development with Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql. September 2016 – December 2016 Part-time work & studying German in Goethe-Institut e.V. (Germany, Berlin) Freelancer & Student Full-stack developer and German A1. May 2016 – September 2016 Tridion Assets Management Gmbh (Germany, Berlin) Team Lead Development team managing. Develop and implement architecture of application HRLab (application for HRs). Software development trainings for team. Planning of software development and life cycle. Ruby, Ruby on Rails, Javascript, Backbone.js, Postgresql, PL/pgSQL, Golang, Redis, Salesforce API November 2015 – May 2016 (Germany, Berlin) Ecratum Gmbh Ruby, Ruby on Rails developer ERP/CRM - Application development with: Ruby 2, RoR4, PostgreSQL, Redis/Elastic, EventMachine, MessageBus, Puma, AWS/EC2, etc. April 2014 — November 2015 (Russia, Moscow - Australia, Melbourne - Munich, Germany - Berlin, Germany) Freelance/DHARMA Dev. Ruby, Ruby on Rails developer notarikon.net Application development with: Ruby 2, RoR 4, PostgreSQL, MongoDB, Javascript (CoffeeScript), AJAX, jQuery, Websockets, Redis + own project: http://featmeat.com – complex service for health control: trainings tracking and data providing to medical adviser.
    [Show full text]
  • Automating Configuration N49(PDF)
    Automating Network Configuration Brent Chapman Netomata, Inc. [email protected] www.netomata.com NANOG 49 — 13 June 2010 Copyright © 2010, Netomata, Inc. All Rights Reserved. Introduction Who I am What I'm here to talk about 2 Copyright © 2010, Netomata, Inc. All Rights Reserved. Why automate network configuration? Because automated networks are More reliable Easier to maintain Easier to scale 3 Copyright © 2010, Netomata, Inc. All Rights Reserved. For example... Imagine you're managing a moderately complex web site Multiple real and virtual hosts Several "environments" (production, testing, development, etc.) Separate VLAN for each environment 4 Copyright © 2010, Netomata, Inc. All Rights Reserved. For example... What networking devices & services need to be managed? Routers Switches Load Balancers Firewalls Real-time status monitoring (i.e., Nagios) Long-term usage monitoring (i.e., MRTG) 5 Copyright © 2010, Netomata, Inc. All Rights Reserved. For example... How to add new virtual host to existing load balancer pool? Set up host itself, using Puppet or cfengine or whatever Add host to VLAN defs on switches Add host to ACLs on routers Add host to pool on load balancers Add host to NAT and ACLs on firewalls Add host to real-time monitoring (i.e., Nagios) Add host to usage monitoring (i.e., MRTG) 6 Copyright © 2010, Netomata, Inc. All Rights Reserved. For example... What's the problem with doing all that by hand? You have to remember how to manage all those very different devices (and you probably don't do it very often) It takes a lot of time Every step is a chance to make a mistake You might get distracted, and never finish Over time, these small mistakes add up, leading to inconsistent networks that are unreliable and difficult to troubleshoot 7 Copyright © 2010, Netomata, Inc.
    [Show full text]
  • Github Essentials.Pdf
    [ 1 ] GitHub Essentials Unleash the power of collaborative workflow development using GitHub, one step at a time Achilleas Pipinellis BIRMINGHAM - MUMBAI GitHub Essentials Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2015 Production reference: 1280915 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78355-371-6 www.packtpub.com Credits Author Copy Editor Achilleas Pipinellis Trishya Hajare Reviewer Project Coordinator Umesh Ram Sharma Shweta H Birwatkar Commissioning Editor Proofreader Dipika Gaonkar Safis Editng Acquisition Editor Indexer Nikhil Karkal Hemangini Bari Content Development Editor Production Coordinator Sumeet Sawant Nitesh Thakur Technical Editor Cover Work Saurabh Malhotra Nitesh Thakur About the Author Achilleas Pipinellis is an open source enthusiast and tries to get involved in as many projects as possible.
    [Show full text]
  • Avaliação De Performance De Interpretadores Ruby
    Universidade Federal de Santa Catarina Centro Tecnológico Curso de Sistemas de Informação Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Florianópolis 2010 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Orientador: Lúcia Helena Martins Pacheco Doutora em Engenharia Florianópolis 2010 Almeida, Wilson Avaliação de Performance de Interpretadores Ruby / Wilson Al- meida - 2010 xx.p 1.Performance 2. Interpretadores.. I.Título. CDU 536.21 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Aprovado em 21 de junho de 2010 BANCA EXAMINADORA Lúcia Helena Martins Pacheco Doutora em Engenharia José Eduardo De Lucca Mestre em Ciências da Computação Eduardo Bellani Bacharel em Sistemas de Informação Aos meus pais e meu irmão. Aos familiares e amigos, em especial pra mi- nha eterna amiga Liliana, que está torcendo por mim de onde ela estiver. Agradecimentos Agradeço ao meu amigo, colega de curso, parceiro de trabalhos e orientador Eduardo Bellani, pelo encorajamento, apoio e seus ricos conselhos sobre o melhor direci- onamento deste trabalho. A professora Lúcia Helena Martins Pacheco pela orientação, amizade, e pela paciência, sem a qual este trabalho não se realizaria. Ao professor José Eduardo Delucca, por seus conselhos objetivos e pontuais. Todos os meus amigos que incentivaram e compreenderam a minha ausência nesse período de corrida atrás do objetivo de concluir o curso.
    [Show full text]
  • Ruby Visual Quickstart Guide.Pdf
    VISUAL QUICKSTART GUIDE RUBY Larry Ullman Peachpit Press Visual QuickStart Guide Ruby Larry Ullman Peachpit Press 1249 Eighth Street Berkeley, CA 94710 510/524-2178 510/524-2221 (fax) Find us on the Web at: www.peachpit.com To report errors, please send a note to: [email protected] Peachpit Press is a division of Pearson Education. Copyright © 2009 by Larry Ullman Editor: Rebecca Gulick Copy Editor: Bob Campbell Production Coordinator: Myrna Vladic Compositor: Debbie Roberti Indexer: Jack Lewis Cover Design: Peachpit Press Technical Reviewer: Fabio Cevasco Notice of rights All rights reserved. No part of this book may be reproduced or transmitted in any form by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. For information on getting permission for reprints and excerpts, contact [email protected]. Notice of liability The information in this book is distributed on an “As Is” basis, without warranty. While every precaution has been taken in the preparation of the book, neither the author nor Peachpit Press shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the instructions contained in this book or by the computer software and hardware products described in it. Trademarks Visual QuickStart Guide is a registered trademark of Peachpit Press, a division of Pearson Education. Macintosh and Mac OS X are registered trademarks of Apple Computer, Inc. Microsoft and Windows are registered trademarks of Microsoft Corp. Other product names used in this book may be trademarks of their own respective owners.
    [Show full text]
  • Distributed Programming with Ruby
    DISTRIBUTED PROGRAMMING WITH RUBY Mark Bates Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the pub- lisher was aware of a trademark claim, the designations have been printed with initial Editor-in-Chief capital letters or in all capitals. Mark Taub The author and publisher have taken care in the preparation of this book, but make no Acquisitions Editor expressed or implied warranty of any kind and assume no responsibility for errors or Debra Williams Cauley omissions. No liability is assumed for incidental or consequential damages in connection Development Editor with or arising out of the use of the information or programs contained herein. Songlin Qiu The publisher offers excellent discounts on this book when ordered in quantity for bulk Managing Editor purchases or special sales, which may include electronic versions and/or custom covers Kristy Hart and content particular to your business, training goals, marketing focus, and branding Senior Project Editor interests. For more information, please contact: Lori Lyons U.S. Corporate and Government Sales Copy Editor 800-382-3419 Gayle Johnson [email protected] Indexer For sales outside the United States, please contact: Brad Herriman Proofreader International Sales Apostrophe Editing [email protected] Services Visit us on the web: informit.com/ph Publishing Coordinator Kim Boedigheimer Library of Congress Cataloging-in-Publication Data: Cover Designer Bates, Mark, 1976- Chuti Prasertsith Distributed programming with Ruby / Mark Bates.
    [Show full text]
  • Michael Johann Mjohann@Rails­Experts.Com
    Steinfurt, Germany Michael Johann mjohann@rails­experts.com http://www.rails­experts.com I am interested in new projects where various modern technologies are combined to build great innovative products. My view is from the full stack developer to architecture and engineering aspects. I am also passionate about being a CTO if the company is trusting my technical experience. I've supported the most known industry standards before thy became mainstream. I've founded JavaSPEKTRUM print magazine in 1996 and RailsWayMagazine (print) in 2009 and have been editor in chief for both magazines. In 2008 I wrote a german book about "JRuby on Rails for Java Enterprise Developers). As a regular speaker at conferences in Europe/USA, I always spread the news about new technologies and how they apply to projects. As a person with multiple interests I combine using technical aspects in development with writing and speaking at conferences. I've been an evangelist for Java and Rails. Technical Skills Like: ruby, on, rails, ios, android, java, jee, html5, css3, javascript, mongodb, torquebox, ansible, docker, rspec, cucumber Dislike: php, typo3, cobol Experience Chief Full Stack Developer – Smaps GmbH December 2013 ­ Current ruby­on­rails­4.1, objective­c, mongodb, android Responsible for product development of backend, frontend and mobile clients Backend consists of MongoDB Frontend is HTML5 with Bootstrap, JQuery, GoogleMaps API iOS Client native with RestKit API communication Android native (Java) Interims CTO – Eco Novum GmbH 2012 ­ November 2013 ios, mongodb, jrubyonrails, html5, css3, javascript, chef, git, jira, json Responsible for all architectural and technological aspects of the products (several mobile payment solutions).
    [Show full text]
  • Symbols & Numbers A
    ruby_02.book Page 267 Thursday, May 10, 2007 4:12 PM INDEX Symbols & Numbers \ (backslash), in regular expression, for literal characters, 144 %Q for instantiating Strings, 23, \W, in regular expression, for 108–109, 215–216, 219, 239, whitespace, 66 245, 248–250 { } (braces) %w for instantiating Arrays, 47, for blocks, 28 113, 115 for declaring Hash, 42 & (ampersand), for expressing blocks {x}, in regular expression, 79 and Procs, 105–106 - method (Hash), 93 ! (exclamation point), for destructive ||= operator, 77–78, 127 methods, 20, 22–23 | (pipe) character, in regular || (or) operator, 17 expression, 56 # character + method of Integers and Strings, 3–4 for comments, 14 + (plus sign), in regular for instance method, 234 expression, 62 #{} for wrapping expression to be = (equal sign), for assigning value to interpolated, 23 variable, 9 #! (shebang), 47 == operator, for equality testing, 14 $ (dollar sign), for bash prompt, 19 =begin rdoc, 22 * (asterisk), in irb prompt, 8 =end, 22 ** (asterisk doubled), for “to the <=> method (Comparable), 145, power of,” 72 150–151 /\d+/ in regular expression, for digits <% and %> tags, 211 only, 79 <%= tag, for printing expression, 214 :needs_data Symbol key, 116 99bottles.rb script, 20–25 :nitems Symbol key, 116 :unless0th Symbol key, 116 ? (question mark) A in predicate method names, 22 actionpack, warnings related to, 226 in regular expression, for optional Active Record, Rails dependence expressions, 144 on, 227 @ sign, for instance variable, 21–22 Agile Web Development with Rails @@ sign, for class
    [Show full text]
  • Aplikacija Za Pregled Tehnologij Spletnih Projektov Na Podlagi Avtomatske Analize Repozitorijev
    Univerza v Ljubljani Fakulteta za računalništvo in informatiko Aljana Polanc Aplikacija za pregled tehnologij spletnih projektov na podlagi avtomatske analize repozitorijev DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: doc. dr. Aleš Smrdel Ljubljana, 2016 Rezultati diplomskega dela so intelektualna lastnina avtorja in Fakultete za računalništvo in informatiko Univerze v Ljubljani. Za objavljanje ali iz- koriščanje rezultatov diplomskega dela je potrebno pisno soglasje avtorja, Fakultete za računalništvo in informatiko ter mentorja. Besedilo je oblikovano z urejevalnikom besedil LATEX. Fakulteta za računalništvo in informatiko izdaja naslednjo nalogo: Tematika naloge: V okviru diplomskega dela razvijte aplikacijo, ki bo služila za vzdrževanje ažurne evidence o tehnologijah pri različnih spletnih projektih. Aplikacija mora omogočiti avtomatsko periodično pregledovanje vseh aktivnih projek- tov znotraj nekega podjetja in posodabljanje podatkov o uporabljenih teh- nologijah za vsakega izmed projektov. V ta namen najprej analizirajte teh- nologije, ki se uporabljajo pri izdelavi sodobnih spletnih projektov, nato pa realizirajte aplikacijo, ki se mora biti sposobna povezati z repozitorijem pro- jektov, prebrati vse projekte in na podlagi analize datotek projektov razbrati tehnologije, ki so uporabljene pri posameznem projektu. Za vsak projekt mora aplikacija razbrati uporabljene programske jezike, orodja, knjižnice ter razvijalce, ki sodelujejo pri posameznem projektu. Razvijte tudi spletni vme- snik, ki bo omogočal prikaz podatkov o projektih in tehnologijah znotraj ne- kega podjetja ter nadroben prikaz tehnologij uporabljenih pri posameznem projektu. Razvijte tudi administrativni spletni vmesnik, ki bo omogočal do- polnjevanje in popravljanje avtomatsko pridobljenih podatkov. Pri razvoju aplikacije izberite najprimernejše tehnologije na strani odjemalca in na strani strežnika. Uspešnost delovanja razvite aplikacije testirajte na nekem repozi- toriju projektov.
    [Show full text]
  • Django and Mongodb
    1. .bookmarks . 5 2. 1.1 Development Cycle . 5 3. Creating and Deleting Indexes . 5 4. Diagnostic Tools . 5 5. Django and MongoDB . 5 6. Getting Started . 5 7. International Documentation . 6 8. Monitoring . 6 9. Older Downloads . 6 10. PyMongo and mod_wsgi . 6 11. Python Tutorial . 6 12. Recommended Production Architectures . 6 13. Shard v0.7 . 7 14. v0.8 Details . 7 15. v0.9 Details . 7 16. v1.0 Details . 7 17. v1.5 Details . 7 18. v2.0 Details . 8 19. Building SpiderMonkey . 8 20. Documentation . 8 21. Dot Notation . 8 22. Dot Notation . 23. Getting the Software . 8 24. Language Support . 8 25. Mongo Administration Guide . 9 26. Working with Mongo Objects and Classes in Ruby . 9 27. MongoDB Language Support . 9 28. Community Info . 9 29. Internals . 9 30. TreeNavigation . 10 31. Old Pages . 10 31.1 Storing Data . 10 31.2 Indexes in Mongo . 10 31.3 HowTo . 10 31.4 Searching and Retrieving . 10 31.4.1 Locking . 10 31.5 Mongo Developers' Guide . 11 31.6 Locking in Mongo . 11 31.7 Mongo Database Administration . ..
    [Show full text]
  • Benjamin M. Ward (703) 336 9706 [email protected]
    Benjamin M. Ward www.benmward.com (703) 336 9706 [email protected] SECURITY CLEARANCE TOP SECRET / SCI with Polygraph Jun 2017 - Present PROFESSIONAL EXPERIENCE Software Engineer​ | ​Bit Systems, Sterling, VA Jul 2016 - Present Work on a team developing a powerful software platform to facilitate mission data ingestion, persistence, and real-time analysis with a modern web application based client Tasks range from full-stack application development, database design, file system infrastructure enforcement, peer code review, technical documentation, and configuration of integrated systems in classified environments Technologies:​ Grails, Groovy, Java, AngularJS, Puppet, PostgreSQL, HTML, CSS, Shell Scripting, and others Computer Law and Ethics TA​ | ​George Mason University, Fairfax, VA Jan 2016 - Jul 2016 Received the 2016 Distinguished Undergraduate Teaching Assistant Award from the GMU Computer Science Dept. Assisted students with legal research for landmark computer/software related cases; Grading responsibilities Internship (Software Engineer)​ | ​Bit Systems, Sterling, VA May 2015 - Aug 2015 Developed a caching system to optimize the delivery of large and bursty data for an enterprise Java application Technologies:​ Java, PostgreSQL, Spring Framework, Camel, ActiveMQ, JMS, Javascript, Ant, XML (JAXB) EDUCATION George Mason University​ | ​Fairfax, VA Aug 2012 - May 2016 B.S. in Applied Computer Science with a concentration in Software Engineering Cum Laude GPA 3.52 TECHNICAL SKILLS Languages Java, Groovy, Javascript, PostgreSQL, Shell
    [Show full text]