Chris Mccord, Bruce Tate, José Valim — «Programming Phoenix

Total Page:16

File Type:pdf, Size:1020Kb

Chris Mccord, Bruce Tate, José Valim — «Programming Phoenix Early Praise for Programming Phoenix Programming Phoenix is an excellent introduction to Phoenix. You are taken from the basics to a full-blown application that covers the MVC layers, real-time client- server communication, and fault-tolerant reliance on 3rd party services. All tested, and presented in a gradual and coherent way. You’ll be amazed at what you’ll be able to build following this book. ➤ Xavier Noria Rails Core Team I write Elixir for a living, and Programming Phoenix was exactly what I needed. It filled in the sticky details, like how to tie authentication into web applications and channels. It also showed me how to layer services with OTP. The experience of Chris and José makes all of the difference in the world. ➤ Eric Meadows-Jönsson Elixir Core Team A valuable introduction to the Phoenix framework. Many small details and tips from the creators of the language and the framework, and a leader in using Phoenix in production. ➤ Kosmas Chatzimichalis Software Engineer, Mach7x Programming Phoenix is mandatory reading for anyone looking to write web appli- cations in Elixir. Every few pages I found myself putting the book down so I could immediately apply something I’d learned in my existing Phoenix applications. More than merely teaching the mechanics of using the Phoenix framework, the authors have done a fantastic job imparting the underlying philosophy behind it. ➤ Adam Kittelson Principal Software Engineer, Brightcove Programming Phoenix Productive |> Reliable |> Fast Chris McCord Bruce Tate and José Valim The Pragmatic Bookshelf Dallas, Texas • Raleigh, North Carolina 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 Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf, PragProg and the linking g device are trade- marks of The Pragmatic Programmers, LLC. Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein. Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at https://pragprog.com. The team that produced this book includes: Jacquelyn Carter (editor) Potomac Indexing, LLC (index) Eileen Cohen (copyedit) Gilson Graphics (layout) Janet Furlow (producer) For customer support, please contact [email protected]. For international rights, please contact [email protected]. Copyright © 2016 The Pragmatic Programmers, LLC. All rights reserved. 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 the prior consent of the publisher. Printed in the United States of America. ISBN-13: 978-1-68050-145-2 Encoded using the finest acid-free high-entropy binary digits. Book version: P1.0—April 2016 Contents Acknowledgments . ix 1. Introducing Phoenix . 1 Fast 2 Concurrent 3 Beautiful Code 4 Interactive 7 Reliable 8 Is This Book for You? 9 Online Resources 12 Part I — Building with Functional MVC 2. The Lay of the Land . 15 Simple Functions 15 Installing Your Development Environment 18 Creating a Throwaway Project 20 Building a Feature 21 Going Deeper: The Request Pipeline 27 Wrapping Up 36 3. Controllers, Views, and Templates . 37 The Controller 37 Creating Some Users 40 Building a Controller 43 Coding Views 45 Using Helpers 46 Showing a User 48 Wrapping Up 51 Contents • vi 4. Ecto and Changesets . 53 Understanding Ecto 53 Defining the User Schema and Migration 55 Using the Repository to Add Data 58 Building Forms 60 Creating Resources 64 Wrapping Up 68 5. Authenticating Users . 69 Preparing for Authentication 69 Managing Registration Changesets 70 Creating Users 73 The Anatomy of a Plug 74 Writing an Authentication Plug 78 Implementing Login and Logout 83 Presenting User Account Links 86 Wrapping Up 88 6. Generators and Relationships . 91 Using Generators 91 Building Relationships 99 Managing Related Data 101 Wrapping Up 104 7. Ecto Queries and Constraints . 107 Adding Categories 107 Diving Deeper into Ecto Queries 114 Constraints 120 Wrapping Up 127 8. Testing MVC . 129 Understanding ExUnit 130 Using Mix to Run Phoenix Tests 131 Integration Tests 134 Unit-Testing Plugs 141 Testing Views and Templates 147 Splitting Side Effects in Model Tests 148 Wrapping Up 153 Contents • vii Part II — Writing Interactive and Maintainable Applications 9. Watching Videos . 157 Watching Videos 157 Adding JavaScript 160 Creating Slugs 164 Wrapping Up 171 10. Using Channels . 173 The Channel 174 Phoenix Clients with ES6 175 Preparing Our Server for the Channel 177 Creating the Channel 180 Sending and Receiving Events 182 Socket Authentication 186 Persisting Annotations 189 Handling Disconnects 195 Wrapping Up 198 11. OTP . 199 Managing State with Processes 199 Building GenServers for OTP 202 Supervision Strategies 208 Designing an Information System with OTP 212 Building the Wolfram Info System 216 Wrapping Up 227 12. Observer and Umbrellas . 229 Introspecting with Observer 229 Using Umbrellas 231 Wrapping Up 238 13. Testing Channels and OTP . 239 Testing the Information System 239 Isolating Wolfram 245 Adding Tests to Channels 250 Authenticating a Test Socket 252 Communicating with a Test Channel 252 Wrapping Up 257 Contents • viii 14. What’s Next? . 259 Other Interesting Features 260 What’s Coming Next 264 Good Luck 266 Index . 267 Acknowledgments Most of this book is written in a collective voice, but acknowledgments are deep and personal things. For this chapter alone, we’ll speak some as a team but also in each of our individual voices. You’ll notice that Chris has more to say than the rest of us, and as the creator of Phoenix, it’s right and proper that he does so. As a team, we’d like to thank this production crew. It’s been the finest any of us have ever worked with. Potomac Indexing, LLC handled our indexing, Eileen Cohen did our copyedit, and Janet Furlow managed the endless pro- duction details. These contributions were invaluable, but we’d also like to single a couple out for deeper praise. Jackie Carter, our longtime friend and editor, has as much to say about the quality of this book as any of the authors on this team. Your voice is constant, and your gentle encouragement pushed us at the right times and in the right ways. Also, Dave Thomas did the layout and cover for this book, but he’s also served as a tireless advocate for Elixir and Phoenix and has shared many plates of Indian food with this team. Your friendship and guidance are always appreciated. We might not have had the opportunity to write this book without your tireless contributions. The next plate of Indian is on us. And we mean it. Our reviewers worked hard to provide excellent feedback, even though the code serving as the foundation for this book was constantly shifting. Bryan Weber, Eric Meadows-Jönsson, Colby Blaisdel, Adam Guyot, Adam Kittelson, Jason Stiebs, Ian Warshak, Xavier Noria, George Guimaraes, Carlos Antonio da Silva, Bernardo Chaves, Ian Dees, Vince Foley, Brian Hogan, and Lauro Caetano all did various levels of reviews for us. Xavier Noria stands out for providing extraordinary service while going through broken examples and also providing excellent feedback for the concepts in this book. Thanks also to the beta readers who did great work for us. report erratum • discuss Acknowledgments • x José Valim Elixir has been a labor of love and a project that has exceeded my wildest expectations. Elixir wouldn’t exist without the support of my partners at Plataformatec. They were the first to believe Elixir could make a dent in the world, and their investments in the community have helped Elixir grow with strength and grace. Getting this far wouldn’t be possible without the unconditional support of my wife, Małgosia. Most of Elixir was written on a small desk placed in the corner of our bedroom. Of all the corners in the world, I can’t imagine a better one. Finally, I want to thank my parents and friends for teaching me the lessons that still guide me on this journey. Bruce Tate I would like to thank my family as always, especially Maggie. You inspire me; you make bad days better and good days impossibly great. I couldn’t do any of this without you. Also, thanks to Paul Janowitz at icanmakeitbetter.com. While going through an acquisition, you allowed me research time to spend on projects like this one. We both believe that the world is a better place when we can give back to the projects that contribute to our success. Thanks for putting your money where your mouth is. Ian, your journey continues to inspire me. It’s been great having you in this community, and I can’t wait for the great things you’ll do here. Also, to the Elixir Mafia, molte grazie. You know who you are. Chris McCord First, I would like to thank José Valim for creating Elixir, for his contributions to Phoenix, and for building a community that has been such a pleasure to be a part of. It goes without saying that Phoenix wouldn’t be possible without his work on Elixir, but it goes deeper than that. He has my deepest gratitude for setting in motion my dream career, sharing his wisdom on running large open source projects, and being a helpful friend in between hectic releases.
Recommended publications
  • A Flexible Framework for File System Benchmarking &Pivot
    ;login SPRING 2016 VOL. 41, NO. 1 : & Filebench: A Flexible Framework for File System Benchmarking Vasily Tarasov, Erez Zadok, and Spencer Shepler & Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems Jonathan Mace, Ryan Roelke, and Rodrigo Fonseca & Streaming Systems and Architectures: Kafka, Spark, Storm, and Flink Jayant Shekhar and Amandeep Khurana & BeyondCorp: Design to Deployment at Google Barclay Osborn, Justin McWilliams, Betsy Beyer, and Max Saltonstall Columns Red/Blue Functions: How Python 3.5’s Async IO Creates a Division Among Function David Beazley Using RPCs in Go Kelsey Hightower Defining Interfaces with Swagger David N. Blank-Edelman Getting Beyond the Hero Sysadmin and Monitoring Silos Dave Josephsen Betting on Growth vs Magnitude Dan Geer Supporting RFCs and Pondering New Protocols Robert G. Ferrell UPCOMING EVENTS NSDI ’16: 13th USENIX Symposium on Networked USENIX Security ’16: 25th USENIX Security Systems Design and Implementation Symposium March 16–18, 2016, Santa Clara, CA, USA August 10–12, 2016, Austin, TX, USA www.usenix.org/nsdi16 www.usenix.org/sec16 Co-located with NSDI ’16 Co-located with USENIX Security ’16 CoolDC ’16: USENIX Workshop on Cool Topics on WOOT ’16: 10th USENIX Workshop on Offensive Sustainable Data Centers Technologies March 19, 2016 August 8–9, 2016 www.usenix.org/cooldc16 Submissions due May 17, 2016 www.usenix.org/woot16 SREcon16 CSET ’16: 9th Workshop on Cyber Security April 7–8, 2016, Santa Clara, CA, USA Experimentation and Test www.usenix.org/srecon16 August 8, 2016 Submissions
    [Show full text]
  • Top Functional Programming Languages Based on Sentiment Analysis 2021 11
    POWERED BY: TOP FUNCTIONAL PROGRAMMING LANGUAGES BASED ON SENTIMENT ANALYSIS 2021 Functional Programming helps companies build software that is scalable, and less prone to bugs, which means that software is more reliable and future-proof. It gives developers the opportunity to write code that is clean, elegant, and powerful. Functional Programming is used in demanding industries like eCommerce or streaming services in companies such as Zalando, Netflix, or Airbnb. Developers that work with Functional Programming languages are among the highest paid in the business. I personally fell in love with Functional Programming in Scala, and that’s why Scalac was born. I wanted to encourage both companies, and developers to expect more from their applications, and Scala was the perfect answer, especially for Big Data, Blockchain, and FinTech solutions. I’m glad that my marketing and tech team picked this topic, to prepare the report that is focused on sentiment - because that is what really drives people. All of us want to build effective applications that will help businesses succeed - but still... We want to have some fun along the way, and I believe that the Functional Programming paradigm gives developers exactly that - fun, and a chance to clearly express themselves solving complex challenges in an elegant code. LUKASZ KUCZERA, CEO AT SCALAC 01 Table of contents Introduction 03 What Is Functional Programming? 04 Big Data and the WHY behind the idea of functional programming. 04 Functional Programming Languages Ranking 05 Methodology 06 Brand24
    [Show full text]
  • Making Reliable Distributed Systems in the Presence of Sodware Errors Final Version (With Corrections) — Last Update 20 November 2003
    Making reliable distributed systems in the presence of sodware errors Final version (with corrections) — last update 20 November 2003 Joe Armstrong A Dissertation submitted to the Royal Institute of Technology in partial fulfilment of the requirements for the degree of Doctor of Technology The Royal Institute of Technology Stockholm, Sweden December 2003 Department of Microelectronics and Information Technology ii TRITA–IMIT–LECS AVH 03:09 ISSN 1651–4076 ISRN KTH/IMIT/LECS/AVH-03/09–SE and SICS Dissertation Series 34 ISSN 1101–1335 ISRN SICS–D–34–SE c Joe Armstrong, 2003 Printed by Universitetsservice US-AB 2003 iii To Helen, Thomas and Claire iv Abstract he work described in this thesis is the result of a research program T started in 1981 to find better ways of programming Telecom applica- tions. These applications are large programs which despite careful testing will probably contain many errors when the program is put into service. We assume that such programs do contain errors, and investigate methods for building reliable systems despite such errors. The research has resulted in the development of a new programming language (called Erlang), together with a design methodology, and set of libraries for building robust systems (called OTP). At the time of writing the technology described here is used in a number of major Ericsson, and Nortel products. A number of small companies have also been formed which exploit the technology. The central problem addressed by this thesis is the problem of con- structing reliable systems from programs which may themselves contain errors. Constructing such systems imposes a number of requirements on any programming language that is to be used for the construction.
    [Show full text]
  • Article 15 Phoenix Telecommunications
    The Cover The upper cover image is an artist’s concept of the Phoenix Lander with legs deployed and thrusters on just before landing on the surface of Mars. This rendition was created by Corby Waste of JPL in 2003. As the Mars program artist, he has created artwork for several Mars missions [1]. During lander surface operations, the Phoenix project generated many exotic images from Mars. One of these, the lower cover image [2], is a vertical projection that combines hundreds of exposures taken by the lander’s Surface Stereo Imager camera and projects them as if looking down from above. The black circle is where the camera itself is mounted on the lander, out of view in images taken by the camera. North is toward the top of the image. This view comprises more than 100 different Stereo Surface Imager pointings, with images taken through three different filters at each pointing. The images were taken in the period from the 13th Martian day, or sol, after landing to the 47th sol (June 5 through July 12, 2008). The lander's Robotic Arm appears cut off in this mosaic view because component images were taken when the arm was out of the frame. DESCANSO Design and Performance Summary Series Article 15 Phoenix Telecommunications J im T aylor Stan Butman C had E dwards P eter I lott R ichard K ornfeld Dennis L ee Scott Shaffer Gina Signori J et Pr opulsion L abor ator y C alifornia I nstitute of T echnology Pasadena, California National Aeronautics and Space Administr ation J et Pr opulsion L abor ator y C alifor nia I nstitute of T echnology Pasadena, California August 2010 This research was carried out at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration.
    [Show full text]
  • TAG, It's You! a NEW SPIN on an OLD GAME
    Student Life Magazine The University of Advancing Technology Issue 5 SUMMER/FALL 2009 03 TAG, IT’S YOU A New Spin on an Old Game S N A P I T 50 D IGITAL DREAMS DO COME TRUE a Western Short FILM Destined for Greatness 24 Rise to The Surface Three Students Build a Multi-Touch Computer $6.95 SUMMER/FALL T.O.C. • • • LOOK FOR THESE MICROSOFT TAGS 04 TAG, IT'S YOU! A NEW SPIN ON AN OLD GAME TA B L E O F CON T E N T S GEEK 411 ISSUE 5 SUMMER/FALL 2009 ABOUT UAT 10 WE’RE TAKING OVER THE WORLD. JOIN US. 32 GET GEEKALICIOUS: T-SHIRT SALE 41 THE BRICKS (OUR AWESOME FACULTY) 49 THE MORTAR (OUR AWESOME STAFF) INSIDE THE TECH WORLD FEATURE 6 BIG BRAIN EVENTS STORIES 26 DEADLY TALENTED ALUMNI 35 WHAT'S YOUR GEEK IQ? 36 GO PLAY WITH YOUR DOTS 24 RISE TO THE SURFACE 38 WHAT’S HOT, WHAT’S NOT ThE RE STUDENTS BUILD A MULTI-TOUCH COMPUTER 42 DAYS OF FUTURE PAST 45 GADGETS & GIZMOS GEEK ESSENTIALS 12 GEEKS ON TOUR 18 DAY IN THE LIFE OF A DORM GEEK 30 LET THE TECH GAMES BEGIN 40 YOU KNOW YOU WANT THIS 46 HOW WE GOT SO AWESOME 47 WE GOT WHAT YOU NEED 22 GEEKILY EVER AFTER 54 GEEKS UNITE – CLUBS AND GROUPS HWTOO W UAT STUDENTS FELL IN LOVE AT FIRST SHOT STORIES ABOUT REALLY SMART PEOPLE 8 INVASION OF THE STAY PUFT BUNNY 29 RAY KURZWEIL 34 GEEK BLOGS 50 COWBOY DREAMS 20 DAVID WESSMAN IS THE MAN UAP T ROFESSOR DIRECTS FILM 16 LIVING THE GEEK DREAM 33 INTRODUCING… NEW GEEKS 14 WE DO STUFF THAT MATTERS 2 | GEEK 411 | UAT STUDENT LIFE MAGAZINE 09UT A 151 © CONTENTS COPYRIGHT BY FABCOM 20092008 LOOK FOR THESE MICROSOFT TAGS THROUGHOUT THIS S ISSUE OF GEEK 411 N AND TAG THEM A P TO GET MORE OF I THE STORY OR T BONUS CONTENT.
    [Show full text]
  • Mojolicious Web Clients Brian D Foy Mojolicious Web Clients by Brian D Foy
    Mojolicious Web Clients brian d foy Mojolicious Web Clients by brian d foy Copyright 2019-2020 © brian d foy. All rights reserved. Published by Perl School. ii | Table of contents Preface vii What You Should Already Know . viii Some eBook Notes ........................... ix Installing Mojolicious ......................... x Getting Help .............................. xii Acknowledgments . xiii Perl School ............................... xiv Changes ................................. xiv 1 Introduction 1 The Mojo Philosophy .......................... 1 Be Nice to Servers ........................... 4 How HTTP Works ........................... 6 Add to the Request ........................... 15 httpbin ................................. 16 Summary ................................ 18 2 Some Perl Features 19 Perl Program Basics .......................... 19 Declaring the Version ......................... 20 Signatures ................................ 22 Postfix Dereference ........................... 25 Indented Here Docs ........................... 25 Substitution Returns the Modified Copy . 26 Summary ................................ 27 3 Basic Utilities 29 Working with URLs .......................... 30 Decoding JSON ............................. 34 Collections ............................... 45 Random Utilities ............................ 50 TABLE OF CONTENTS | iii Events .................................. 52 Summary ................................ 55 4 The Document Object Model 57 Walking Through HTML or XML ................... 57 Modifying
    [Show full text]
  • Francesco Cesarini, Simon Thompson — «Erlang Programming
    Erlang Programming Francesco Cesarini and Simon Thompson Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Erlang Programming by Francesco Cesarini and Simon Thompson Copyright © 2009 Francesco Cesarini and Simon Thompson. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mike Loukides Indexer: Lucie Haskins Production Editor: Sumita Mukherji Cover Designer: Karen Montgomery Copyeditor: Audrey Doyle Interior Designer: David Futato Proofreader: Sumita Mukherji Illustrator: Robert Romano Printing History: June 2009: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Erlang Programming, the image of a brush-tailed rat kangaroo, and related trade dress are trademarks of O’Reilly Media, Inc. 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 O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. TM This book uses RepKover™, a durable and flexible lay-flat binding. ISBN: 978-0-596-51818-9 [M] 1244557300 Table of Contents Foreword .
    [Show full text]
  • Elixir Language
    Elixir Language #elixir Table of Contents About 1 Chapter 1: Getting started with Elixir Language 2 Remarks 2 Versions 2 Examples 2 Hello World 2 Hello World from IEx 3 Chapter 2: Basic .gitignore for elixir program 5 Chapter 3: Basic .gitignore for elixir program 6 Remarks 6 Examples 6 A basic .gitignore for Elixir 6 Example 6 Standalone elixir application 6 Phoenix application 7 Auto-generated .gitignore 7 Chapter 4: basic use of guard clauses 8 Examples 8 basic uses of guard clauses 8 Chapter 5: BEAM 10 Examples 10 Introduction 10 Chapter 6: Behaviours 11 Examples 11 Introduction 11 Chapter 7: Better debugging with IO.inspect and labels 12 Introduction 12 Remarks 12 Examples 12 Without labels 12 With labels 13 Chapter 8: Built-in types 14 Examples 14 Numbers 14 Atoms 15 Binaries and Bitstrings 15 Chapter 9: Conditionals 17 Remarks 17 Examples 17 case 17 if and unless 17 cond 18 with clause 18 Chapter 10: Constants 20 Remarks 20 Examples 20 Module-scoped constants 20 Constants as functions 20 Constants via macros 21 Chapter 11: Data Structures 23 Syntax 23 Remarks 23 Examples 23 Lists 23 Tuples 23 Chapter 12: Debugging Tips 24 Examples 24 Debugging with IEX.pry/0 24 Debugging with IO.inspect/1 24 Debug in pipe 25 Pry in pipe 25 Chapter 13: Doctests 27 Examples 27 Introduction 27 Generating HTML documentation based on doctest 27 Multiline doctests 27 Chapter 14: Ecto 29 Examples 29 Adding a Ecto.Repo in an elixir program 29 "and" clause in a Repo.get_by/3 29 Querying with dynamic fields 30 Add custom data types to migration and to schema
    [Show full text]
  • SAPUI5 – Das Umfassende Handbuch 699 Seiten, Gebunden, November 2016 79,90 Euro, ISBN 978-3-8362-4456-5
    SAP-Wissen aus erster Hand. Leseprobe Mit diesem Buch tauchen Sie ein in die Anwendungsentwicklung mit SAPUI5 und lernen alles, was Sie über Design, Programmie- rung und Betrieb der Apps wissen müssen. In dieser Leseprobe erläutern die Autoren die allgemeine Nutzung von SAPUI5 sowie deren Modelltypen und erörtern die unterschiedlichen Formen des Data Bindings. »Modelle und Bindings« »Einleitung« Inhaltsverzeichnis Index Die Autoren Leseprobe weiterempfehlen Christiane Goebels, Denise Nepraunig, Thilo Seidel SAPUI5 – Das umfassende Handbuch 699 Seiten, gebunden, November 2016 79,90 Euro, ISBN 978-3-8362-4456-5 www.sap-press.de/4303 4456.book Seite 161 Mittwoch, 9. November 2016 10:03 10 Kapitel 5 In diesem Kapitel erörtern wir die allgemeine Nutzung von SAPUI5 und die darin enthaltenen Modelltypen sowie das Data Binding. 5 Modelle und Bindings Im vorherigen Kapitel 4, »Aufbau von MVC-Anwendungen«, haben wir er- läutert, wie Modelle als Datencontainer funktionieren, in denen sämtliche Geschäftsdaten enthalten sind, die in Ihrer Anwendung verarbeitet werden. SAPUI5 wird mit verschiedenen vordefinierten, einsatzbereiten Modellklas- sen bereitgestellt. In der Beispielanwendung haben Sie schon ein JSON- und ein Ressourcenmodell in Aktion gesehen. In diesem Kapitel erklären wir die- se Modelltypen genauer, und Sie erfahren mehr über die Bindungsfunktio- nalität, die in allen Anwendungen zum Einsatz kommt. Data Binding beinhaltet das Verbinden von Daten, die in einem bestimmten Modell in einer Anwendung verfügbar sind, mit einem bestimmten Teil der Benutzeroberfläche auf dem Bildschirm. Diese Verbindung kann entweder unidirektional oder bidirektional sein. Bei der ersten Verbindung werden die Daten aus dem Modell bereitgestellt, und die Modelldaten bleiben un- berührt, wenn sie in der Benutzeroberfläche geändert werden.
    [Show full text]
  • Phoenix Law Review
    PHOENIX LAW REVIEW VOLUME 7FALL 2013 NUMBER 1 Published by Phoenix School of Law Phoenix, Arizona 85004 Published by Phoenix Law Review, Phoenix School of Law, One North Central Avenue,14th Floor, Phoenix, Arizona 85004. Phoenix Law Review welcomes the submission of manuscripts on any legal topic and from all members of the legal community. Submissions can be made via ExpressO at http://law.bepress.com/expresso, via e-mail to [email protected], or via postal service to: Submissions Editor Phoenix Law Review Phoenix School of Law 1 North Central Avenue 14th Floor Phoenix, Arizona 85004 We regret that manuscripts cannot be returned. All submissions should conform to the rules of citation contained in the most recent edition of The Bluebook: A Uniform System of Citations, published by the Harvard Law Review Association. Phoenix Law Review is published twice each year or more by the Phoenix School of Law. Subscription rates are $50.00 per year for United States addresses and $64.00 per year for addresses in other countries. Subscriptions are renewed automatically unless notice to cancel is received. Subscriptions may be discontinued only at the expiration of the current volume. Direct all communications to the Administrative Editor at the address given above. Copyright © 2013 by Phoenix Law Review on all articles, comments, and notes, unless otherwise expressly indicated. Phoenix Law Review grants per- mission for copies of articles, comments, and notes on which it holds a copy- right to be made and used by nonprofit educational institutions, provided that the author and Phoenix Law Review are identified and proper notice is affixed to each copy.
    [Show full text]
  • Evaluation of Password Hashing Schemes in Open Source Web
    Evaluation of Password Hashing Schemes in Open Source Web Platforms Christoforos Ntantogian, Stefanos Malliaros, Christos Xenakis Department of Digital Systems, University of Piraeus, Piraeus, Greece {dadoyan, stefmal, xenakis}@unipi.gr Abstract: Nowadays, the majority of web platforms in the Internet originate either from CMS to easily deploy websites or by web applications frameworks that allow developers to design and implement web applications. Considering the fact that CMS are intended to be plug and play solutions and their main aim is to allow even non-developers to deploy websites, we argue that the default hashing schemes are not modified when deployed in the Internet. Also, recent studies suggest that even developers do not use appropriate hash functions to protect passwords, since they may not have adequate security expertise. Therefore, the default settings of CMS and web applications frameworks play an important role in the security of password storage. This paper evaluates the default hashing schemes of popular CMS and web application frameworks. First, we formulate the cost time of password guessing attacks and next we investigate the default hashing schemes of popular CMS and web applications frameworks. We also apply our framework to perform a comparative analysis of the cost time between the various CMS and web application frameworks. Finally, considering that intensive hash functions consume computational resources, we analyze hashing schemes from a different perspective. That is, we investigate if it is feasible and under what conditions to perform slow rate denial of service attacks from concurrent login attempts. Through our study we have derived a set of critical observations.
    [Show full text]
  • Winter 2016 Vol
    ;login WINTER 2016 VOL. 41, NO. 4 : & Your Cores Are Slacking Off Jean-Pierre Lozi, Baptiste Lepers, Justin Funston, Fabien Gaud, Vivien Quéma, and Alexandra Fedorova & BeyondCorp Part III: The Access Proxy Luca Cittadini, Batz Spear, Betsy Beyer, and Max Saltonstall & OpenLambda for Microservices Scott Hendrickson, Stephen Sturdevant, Edward Oakes, Tyler Harter, Venkateshwaran Venkataramani, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau & Tuning ZFS for Databases Allan Jude and Michael W. Lucas & Interview with Fyodor Vaskovich Rik Farrow Columns Understanding Python Metaclasses David Beazley Monitoring Your Monitoring Systems Dave Josephsen Forecasting the Weather with Dark Sky David N. Blank-Edelman Extending Go Applications with Exec Plugins Kelsey Hightower Rising Tide of IoT Devices Dan Geer Idiot-Blockers for the Internet Robert G. Ferrell UPCOMING EVENTS LISA16 USENIX ATC ’17: 2017 USENIX Annual Technical December 4–9, 2016, Boston, MA, USA Conference www.usenix.org/lisa16 July 12-14, 2017, Santa Clara, CA, USA Co-located with LISA16 Submissions due February 7, 2017 www.usenix.org/atc17 SESA ’16: 2016 USENIX Summit for Educators in System Administration Co-located with USENIX ATC ’17 December 6, 2016 HotCloud ’17: 9th USENIX Workshop on Hot Topics www.usenix.org/sesa16 in Cloud Computing July 10-11, 2017, Santa Clara, CA, USA USENIX Journal of Education in System Administration Submissions due March 14, 2017 (JESA) www.usenix.org/hotcloud17 Published in conjunction with SESA www.usenix.org/jesa HotStorage ’17: 9th USENIX Workshop
    [Show full text]