Silverstripe

Total Page:16

File Type:pdf, Size:1020Kb

Silverstripe SilverStripe The Complete Guide to CMS Development Ingo Schommer and Steven Broschart Translated by Dr Julian Seidenberg and Ingo Schommer A John Wiley and Sons, Ltd., Publication SilverStripe SilverStripe The Complete Guide to CMS Development Ingo Schommer and Steven Broschart Translated by Dr Julian Seidenberg and Ingo Schommer A John Wiley and Sons, Ltd., Publication 2009 by Galileo Press Galileo Computing is an imprint of Galileo Press, Bonn (Germany), Boston (USA). German Edition first published 2008 by Galileo Press. All rights reserved. Neither this publication nor any part of it may be copied or reproduced in any form or by any means or translated into another language without the prior consent of Galileo Press, Rheinwerkallee 4. 53227 Bonn, Germany. Galileo Press makes no warranties or representations with respect to the content hereof and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Galileo Press assumes no responsibility for any errors that may appear in this publication. This edition first published 2009 2009 John Wiley and Sons, Ltd Registered office John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex, PO19 8SQ, United Kingdom For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse the copyright material in this book please see our website at www.wiley.com. The right of the author to be identified as the author of this work has been asserted in accordance with the Copyright, Designs and Patents Act 1988. 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, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought. ISBN 978-0-470-68183-1 A catalogue record for this book is available from the British Library. Typeset in 10/12 Optima by Laserwords Private Limited, Chennai, India Printed in USA ‘‘I feel SilverStripe is a great example of a well-constructed open source project.’’ Chris DiBona, Open Source Programs Manager, Google Inc. Publisher’s Acknowledgements Some of the people who helped bring this book to market include the following: Editorial and Production VP Consumer and Technology Publishing Director: Michelle Leete Associate Director - Book Content Management: Martin Tribe Associate Publisher: Chris Webb Executive Commissioning Editor: Birgit Gruber Assistant Editor: Colleen Goldring Content Editor: Claire Spinks Publishing Assistant: Ellie Scott Copy Editor: Andrew Finch Composition: Laserwords Private Ltd Marketing Senior Marketing Manager: Louise Breinholt Marketing Executive: Kate Batchelor Contents About the Authors xi About the Translator xiii Foreword by Sigurd Magnusson xv Preface by Steven Broschart xvii 1 Introduction 1 1.1 Why SilverStripe? 1 1.2 History 15 1.3 Future 17 1.4 Conclusion 18 2 Installation 19 2.1 System Requirements 19 2.2 Preparation 20 2.3 Installation 23 2.4 Useful Software 33 2.5 Database Management 36 2.6 Support 37 2.7 Conclusion 38 3 Architecture 39 3.1 Introduction 39 3.2 MVC – Model View Controller 40 viii CONTENTS 3.3 ORM – Object Relational Mapping 49 3.4 Directory Structure 54 3.5 Modules and Widgets 58 3.6 Themes 59 3.7 Configuration 61 3.8 Conclusion 62 4 First Steps 65 4.1 Our Project: Job Portal and User Group 65 4.2 Creating the Page Structure 67 4.3 Inserting Page Content 78 4.4 Managing Files and Images 84 4.5 Versioning 92 4.6 Comments 93 4.7 Simple Contact Form 96 4.8 Creating New Users 102 4.9 Themes 105 4.10 Conclusion 108 5 Development: Job Postings 109 5.1 Job Categories as a Page Type 110 5.2 Job as a DataObject 115 5.3 Relations Between DataObjects 119 5.4 Creating the Interface 123 5.5 Creating Templates 129 5.6 Custom Forms 146 5.7 Email Notification 154 5.8 Integrating the Blog Module 160 5.9 Search Engine Optimization 162 5.10 Conclusion 168 6 CRM 169 6.1 Where are we Headed? 170 6.2 Datamodel 171 6.3 Using ModelAdmin for Data Management 177 6.4 Multi-page Registration Form 182 6.5 Skills as Tags 194 6.6 File Uploads for References 196 6.7 Searching DataObjects 202 6.8 Generic Views Using CollectionController 207 6.9 Defining Access Permissions 217 6.10 Web Services Using RESTfulServer 221 6.11 RSS Feeds for Jobs 229 6.12 Conclusion 231 CONTENTS ix 7 Security 233 7.1 Cross-site Scripting (XSS) 233 7.2 Cross-site Request Forgery (CSRF) 237 7.3 SQL Injection 238 7.4 Directory Traversal 241 7.5 Sessions 243 7.6 Conclusion 246 8 Maintenance 247 8.1 Environment Types 247 8.2 Configuration of Multiple Environments 249 8.3 Version Control using Subversion 251 8.4 Backup 256 8.5 Upgrade 260 8.6 Error Handling 261 8.7 Performance 266 8.8 Conclusion 272 9 Testing 273 9.1 Test-driven Development 274 9.2 Installing PHPUnit 276 9.3 Running Tests 277 9.4 Unit Tests for the Model 280 9.5 Functional Tests for the Controllers 286 9.6 Conclusion 290 10 Localization 291 10.1 Character Sets and Unicode 292 10.2 Translating Templates and Code 295 10.3 Translatable: Translating Database Content 301 10.4 Conclusion 307 11 Recipes 309 11.1 Prerequisites 309 11.2 Customizable Page Banner 310 11.3 Branding the CMS Interfaces 314 11.4 Full-text Search for Websites 318 11.5 Redirecting from Legacy URLs 324 11.6 Simple Statistics using TableListField 329 11.7 Showing Related Pages 337 11.8 CSV Import using CSVBulkLoader 345 11.9 A Fully Flash-based Website Driven by SilverStripe 352 11.10 Conclusion 372 xCONTENTS 12 Extending 373 12.1 Different Ways to Extend SilverStripe 374 12.2 Extending Core Functions 374 12.3 Creating Custom Modules 382 12.4 Creating Custom Widgets 385 12.5 Conclusion 392 13 Useful Modules 395 13.1 E-commerce 396 13.2 Forum 398 13.3 Gallery 401 13.4 Flickr Service 402 13.5 Youtube Gallery 404 13.6 Spam Protection: Mollom and Recaptcha 405 13.7 Auth_External 408 13.8 Auth_OpenID 409 13.9 Subsites 410 13.10 CMS Workflow 411 13.11 Site-tree Importer 415 13.12 Geospatial Modules 415 13.13 Conclusion 417 Index 419 About the Authors Steven Broschart has been active for 6 years as an advisor and developer at one of Germany’s leading online marketing agencies, cyberpromote GmbH. Aside from developing PHP and Ruby on Rails business applica- tions and coordinating key accounts for SEO, he advises his clients on selecting appropriate open source software. Steven is a regular author in relevant industry publications. Ingo Schommer freelanced as a PHP and Flash developer for several years prior to joining SilverStripe in 2006 as a senior developer. At SilverStripe, Ingo analyses and builds modern web applications, making sure that they work well in a browser and not just on paper. He has a key role architecting and implementing core functionality in the SilverStripe platform, and facilitates involvement of the open-source community. About the Translator Julian Seidenberg has a background in developing web applications using PHP and Java and has worked in a variety of software engineering roles. He is also a developer at SilverStripe and holds a PhD in Semantic Web technology from the University of Manchester. Foreword Sigurd Magnusson Co-founder and Chief Marketing Officer, SilverStripe Ltd Thanks for buying the book! After countless long days and nights, it’s a real joy to see it come to fruition. In 2000, the dream of the SilverStripe project began: to make a fan- tastic software platform to build and manage websites. Our company SilverStripe Ltd, which had its fair share of geeks, was in the business of building websites for customers. We found the tools out there didn’t suit us, and certainly didn’t suit our customers. Tools were either too technical, which suited us fine but confused our clients, or were simple enough for our non-technical customers, but insulted us with poorly constructed HTML and limited us from building sophisticated website features. So, we committed to make a system that let professional, expe- rienced web developers build innovative websites which can then be passed, in confidence, to non-technical people to manage. Several years passed, and by 2006 we had a few hundred customers. We had always sought to make the product global, but because we were the only one developing SilverStripe, adoption was limited to our home country, New Zealand. We were working hard on an entirely rewritten version of SilverStripe, v2.0, and agreed that if we were to make it successful, it had to be released as free software, with a loyal community of developers around it.
Recommended publications
  • ROADS and BRIDGES: the UNSEEN LABOR BEHIND OUR DIGITAL INFRASTRUCTURE Preface
    Roads and Bridges:The Unseen Labor Behind Our Digital Infrastructure WRITTEN BY Nadia Eghbal 2 Open up your phone. Your social media, your news, your medical records, your bank: they are all using free and public code. Contents 3 Table of Contents 4 Preface 58 Challenges Facing Digital Infrastructure 5 Foreword 59 Open source’s complicated relationship with money 8 Executive Summary 66 Why digital infrastructure support 11 Introduction problems are accelerating 77 The hidden costs of ignoring infrastructure 18 History and Background of Digital Infrastructure 89 Sustaining Digital Infrastructure 19 How software gets built 90 Business models for digital infrastructure 23 How not charging for software transformed society 97 Finding a sponsor or donor for an infrastructure project 29 A brief history of free and public software and the people who made it 106 Why is it so hard to fund these projects? 109 Institutional efforts to support digital infrastructure 37 How The Current System Works 38 What is digital infrastructure, and how 124 Opportunities Ahead does it get built? 125 Developing effective support strategies 46 How are digital infrastructure projects managed and supported? 127 Priming the landscape 136 The crossroads we face 53 Why do people keep contributing to these projects, when they’re not getting paid for it? 139 Appendix 140 Glossary 142 Acknowledgements ROADS AND BRIDGES: THE UNSEEN LABOR BEHIND OUR DIGITAL INFRASTRUCTURE Preface Our modern society—everything from hospitals to stock markets to newspapers to social media—runs on software. But take a closer look, and you’ll find that the tools we use to build software are buckling under demand.
    [Show full text]
  • Google Summer of Code 2019
    Google Summer of Code 2019 Contributing for: The Terasology Foundation Biome-centric Gameplay Template / Enhancements for Terasology! 1 ABOUT ME Name Hassaan Ali (TheHxn) Email [email protected] Discord @TheHxn (#3124) GitHub - https://github.com/TheHxn Profiles Forum - https://forum.terasology.org/members/thehxn.3148/ 2 BIOME-CENTRIC GAMEPLAY ENHANCEMENTS 2.1 OVERVIEW This Idea has been chosen from Terasology’s GSoC Ready Ideas board from Trello [1]. Currently biomes are used in a few game settings, but not with a huge impact to gameplay. This idea aims to support greater variety, meaning to biomes and to help make worlds more "alive" as said by Brylie on the forum. 2.2 INTEREST My interest in this project comes from the fact that not many GSoC students are interested in it, so it definitely needs work as it is a very good idea for Terasology giving the game engine a unique feel to it. Also because I have worked very much with terrains, used World Machine, L3DT, Terresculptor terrain generators to generate climate based terrains. I am very interested as to how the world and life biomes could be improved in Terasology. 2.3 PROJECT FUNCTIONS 1. Inspection tool: When a player encounters a plant or animal, they might use an 'inspection' tool. It can show the details of the entity, we can use WordlyToolTip module to give such information. These details could include health, hunger, biome preferences, and genomic information for the inspected entity. 2. Transplant/Transport: Plants and animals can be transplanted between biomes. Animals could be transplanted using the GooKeeper module as a catch-and-release tool.
    [Show full text]
  • Ultimate++ Forum - Mentoring How to Ing-Howto/Index.Html
    Subject: Google Summer of Code Posted by koldo on Mon, 08 Mar 2010 11:08:17 GMT View Forum Message <> Reply to Message Hello all Google Summer of Code is a program that awards with money students that work in approved Open Source projects. To participate in it first the open source project has to apply to it as a "mentor organization". The deadline for this is this Friday 12. Main things to do are: - Open a "ideas" page in web - Fill the mentor organization questionnaire There is few time and few opportunities to be approved but some of us think that we would have to try it. If you can help please answer to this post ASAP. We have only 4 days, so we have to be very constructive talking ONLY about "Applying to GSoC as a Mentoring Organization". Please put other discussions in other posts. If you cannot participate this week but you have an idea for a project please post it, including: - Project description - Experience required to do it Do not forget that there is few time to do the project ("summer of code") so please be specific including only projects to be finished in short time. Some links: - Google Summer of Code 2010 FAQ http://socghop.appspot.com/document/show/gsoc_program/google /gsoc2010 - "ideas" page examples: -- https://svn.boost.org/trac/boost/wiki/soc2009 -- http://wiki.winehq.org/SummerOfCode -- http://wiki.wxwidgets.org/Development:_Student_Projects - Selection criteria http://socghop.appspot.com/document/show/program/google/gsoc 2009/orgcriteria - Advices for mentor organization http://code.google.com/p/google-summer-of-code/wiki/Advicefo
    [Show full text]
  • Phpmyadmin Documentation Release 5.1.2-Dev
    phpMyAdmin Documentation Release 5.1.2-dev The phpMyAdmin devel team Sep 29, 2021 Contents 1 Introduction 3 1.1 Supported features............................................3 1.2 Shortcut keys...............................................4 1.3 A word about users............................................4 2 Requirements 5 2.1 Web server................................................5 2.2 PHP....................................................5 2.3 Database.................................................6 2.4 Web browser...............................................6 3 Installation 7 3.1 Linux distributions............................................7 3.2 Installing on Windows..........................................8 3.3 Installing from Git............................................8 3.4 Installing using Composer........................................9 3.5 Installing using Docker..........................................9 3.6 IBM Cloud................................................ 14 3.7 Quick Install............................................... 14 3.8 Verifying phpMyAdmin releases..................................... 16 3.9 phpMyAdmin configuration storage................................... 17 3.10 Upgrading from an older version..................................... 19 3.11 Using authentication modes....................................... 19 3.12 Securing your phpMyAdmin installation................................ 26 3.13 Using SSL for connection to database server.............................. 27 3.14 Known issues..............................................
    [Show full text]
  • MEDES and Google Summer of Code
    MEDES and Google Summer Of Code All students and developers are welcome to participate in the Google Summer of Code program, with MEDES. Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. For its activities, MEDES has developed an innovative data collection tool based on Open Source technologies: the Imogene solution. This tool has enabled the deployment of information systems in various contexts that are now operational. The platform allows to rapidly design a data collection system and, based on MDA technologies, it allows to generate a set of applications fulfilling the needs specified by the model. The applications generated include: * a Web application, * an Android application, * a Desktop application. Both Android and Desktop applications can work offline and have bi-directionnal synchronization processes. They integrate remote update mechanisms. Read more about Imogene on our website or at code.google.com/p/imogene All our applications are developed using the Java programing language. You will have to work with Eclipse as Imogene is an Eclipse Plugin itself. A good knowledge of Java is required to apply to one of these projects. The ideas below were contributed by our team. If you wish to submit a proposal based on these ideas, you can contact us and find out more about the particular suggestion you're looking at. Project: Unit test project for the web generated application using Selenium Brief explanation: Each time a web application is generated using Imogene, the application needs to be tested. By generating a unit test project, this would automate the unit tests for a generated application allowing the users to validate the application functionalities.
    [Show full text]
  • Facebook's Libra
    JULY 2019 Facebook’s Libra AND THE FUTURE OF DIGITAL IDENTITIES Page 6 (Feature Story) Apple launches its own digital ID program 9Page 9 (News and Trends) The challenges of digital IDs in the mobile space 13Page 13 (Deep Dive) © 2019 PYMNTS.com All Rights Reserved WHAT'S INSIDE Digital ID developers race to provide better, 03 more secure solutions FEATURE STORY Wayne Vaughan, co-founder of the 06 Decentralized Identity Foundation, on Facebook’s Libra cryptocurrency and how it will impact the digital identity industry NEWS AND TRENDS METHODOLOGY The latest headlines from around the digital Who’s on top and how they got there, including 09 identity space, including Apple's new digital ID 15 three sets of top provider rankings program, 3D finger vein scanners at hospitals and more DEEP DIVE SCORECARD An in-depth look at mobile digital IDs and the The results are in. See the highest-ranked 13 issues world governments have faced during 16 companies in a provider directory featuring implementation more than 200 major digital identity players. ABOUT 89 Information about PYMNTS.com and Jumio TABLE OF CONTENTS ACKNOWLEDGMENT The Digital Identity Tracker is done in collaboration with Jumio, and PYMNTS is grateful for the company’s support and insight. PYMNTS.com retains full editorial control over the presented findings, methodology and data analysis. WHAT’S INSIDE The digital identity market is expected to reach $15 billion paralysis of choice with so many options available. One by 2024, and giants such as Google and Apple are rac- potential solution is a decentralized, self-sovereign stan- ing to improve identity verification experiences.
    [Show full text]
  • A Survey on Content Management System, Software's and Tools
    ISSN (Online) 2393-8021 IARJSET ISSN (Print) 2394-1588 International Advanced Research Journal in Science, Engineering and Technology ISO 3297:2007 Certified Vol. 4, Issue 11, November 2017 A Survey on Content Management System, Software's and Tools Madhura K Assistant Professor, Computer Science Department, Presidency University, Bangalore1 Abstract: This paper contains a survey of content management system, content management process, architecture and working. Also contains different types of tools and software. Content Management (CM) is the process for collection, delivery, retrieval, governance and overall management of information in any format. The term is typically used in reference to administration of the digital content lifecycle, from creation to permanent storage or deletion. The content involved may be images, video, audio and multimedia as well as text. A Content Management System (CMS) is a computer application that supports the creation and modification of digital content. It is typically used to support multiple users working in a collaborative environment. A Content Management System (CMS) is a tool for creating and managing digital content such as documents, text, web pages, videos and images.A content management system (CMS) is a software application or set of related programs that are used to create and manage digital content. CMSes are typically used for Enterprise Content Management (ECM) and Web Content Management (WCM). An ECM facilitates collaboration in the workplace by integrating document management, digital asset management and records retention functionalities, and providing end users with role-based access to the organization's digital assets. A WCM facilitates collaborative authoring for websites. ECM software often includes a WCM publishing functionality, but ECM webpages typically remain behind the organization's firewall.
    [Show full text]
  • CMS Matrix - Cmsmatrix.Org - the Content Management Comparison Tool
    CMS Matrix - cmsmatrix.org - The Content Management Comparison Tool http://www.cmsmatrix.org/matrix/cms-matrix Proud Member of The Compare Stuff Network Great Data, Ugly Sites CMS Matrix Hosting Matrix Discussion Links About Advertising FAQ USER: VISITOR Compare Search Return to Matrix Comparison <sitekit> CMS +CMS Content Management System eZ Publish eZ TikiWiki 1 Man CMS Mambo Drupal Joomla! Xaraya Bricolage Publish CMS/Groupware 4.6.1 6.10 1.5.10 1.1.5 1.10 1024 AJAX CMS 4.1.3 and 3.2 1Work 4.0.6 2F CMS Last Updated 12/16/2006 2/26/2009 1/11/2009 9/23/2009 8/20/2009 9/27/2009 1/31/2006 eZ Publish 2flex TikiWiki System Mambo Joomla! eZ Publish Xaraya Bricolage Drupal 6.10 CMS/Groupware 360 Web Manager Requirements 4.6.1 1.5.10 4.1.3 and 1.1.5 1.10 3.2 4Steps2Web 4.0.6 ABO.CMS Application Server Apache Apache CGI Other Other Apache Apache Absolut Engine CMS/news publishing 30EUR + system Open-Source Approximate Cost Free Free Free VAT per Free Free (Free) Academic Portal domain AccelSite CMS Database MySQL MySQL MySQL MySQL MySQL MySQL Postgres Accessify WCMS Open Open Open Open Open License Open Source Open Source AccuCMS Source Source Source Source Source Platform Platform Platform Platform Platform Platform Accura Site CMS Operating System *nix Only Independent Independent Independent Independent Independent Independent ACM Ariadne Content Manager Programming Language PHP PHP PHP PHP PHP PHP Perl acms Root Access Yes No No No No No Yes ActivePortail Shell Access Yes No No No No No Yes activeWeb contentserver Web Server Apache Apache
    [Show full text]
  • Silverstripe
    silverstripe #silverstripe 1 1: 2 2 2 Examples 2 2 CMS / 2 2: DataExtensions 4 Examples 4 DataObject 4 DataObject 4 DataExtension 4 3: LeftAndMain 6 6 Examples 6 1. 6 6 6 6 2. HelloWorldLeftAndMain.php 6 7 7 7 3. (HelloWorldLeftAndMain_Content.ss) 8 . 8 8 4: ModelAdmin 9 Examples 9 9 UI DataObject 9 DataObject . 9 DataObject 9 searchable_fields ModelAdmin . 10 GridField 10 ModelAdmin 11 5: ORM 12 Examples 12 DataObject 12 6: 13 13 ? 13 13 Examples 13 13 13 YAML 13 13 7: 15 15 Examples 15 SilverStripe Grid 15 GridField 15 15 15 CMS 16 16 8: 17 17 Examples 17 17 AJAX 17 17 19 20 : 20 9: 22 22 Examples 22 MyClass.php 22 23 You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: silverstripe It is an unofficial and free silverstripe ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official silverstripe. The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners. Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected] https://riptutorial.com/ko/home 1 1: Silverstripe PHP .
    [Show full text]
  • Harvesting the Twittersphere: Qualitative Research Methods Using Twitter
    Fall 08 Spring 13 Harvesting the Twittersphere: Qualitative Research Methods Using Twitter By: Anthony La Rosa [email protected] May 2013 Marketing Advisor: Deborah Fain Marketing-Lubin School of Business Pace University i Abstract: Harvesting the Twittersphere explores the current state of research, by comparing quantitative to qualitative and analyzing the current market. In a consumer driven market, it seems that most businesses are neglecting performing qualitative research. It could be because of the falling cost and increasing convenience of quantitative research methods provided by cloud systems such as: Salesforce.com, IBM, SAP, and McKinsey. Another reason may be that there is no efficient or inexpensive way to conduct qualitative research on a digital platform. While certain companies try to conduct qualitative studies online by using chat rooms, discussion boards or Facebook prompts, there is no method that is as widespread or respective as the traditional methods. While focus groups and participant observation offer unique insights into consumers, both methods can be costly and difficult to set up. Harvesting the Twittersphere proposes a new methodology of using Twitter to conduct a qualitative study. By search a specific term, a researcher can search through the constantly generated tweets to see what people are saying about the term. The tweets should be captured, sorted and analyzed in order to provide a unique insight from the consumer. By nature, Twitter offers feelings of users since what they tweet is usually their individual perspective on a subject. This is the perfect field in order to conduct a qualitative study since it is about sharing emotions, sentiments and feelings, rather than numbers, facts or statistics.
    [Show full text]
  • Zvonimir Rakamaric June, 2021
    Zvonimir Rakamari´c June, 2021 CONTACT Address: School of Computing, 50 South Central Campus Drive, Rm 3424 INFORMATION University of Utah, Salt Lake City, UT 84112-9205, USA Phone: +1 (801) 581-6139 E-mail: [email protected] WWW: www.zvonimir.info, www.soarlab.org PROFESSIONAL Amazon Web Services (AWS), Seattle, WA, USA APPOINTMENTS Principal Applied Scientist May 2021 – present School of Computing, University of Utah, Salt Lake City, UT, USA Associate Professor (leave of absence) Jul 2018 – present School of Computing, University of Utah, Salt Lake City, UT, USA Assistant Professor Jun 2012 – Jun 2018 Carnegie Mellon University, Silicon Valley Campus, NASA Ames Research Park, CA, USA Postdoctoral Fellow Mar 2011 – Mar 2012 Dept. of Computer Science, University of British Columbia, Vancouver, BC, Canada Research Assistant Sep 2006 – Mar 2011 Software Reliability Research Group, Microsoft Research, Redmond, WA, USA Research Intern Jul 2006 – Oct 2006, Oct 2008 – Jan 2009, Nov 2009 – Feb 2010 Dept. of Computer Science, University of British Columbia, Vancouver, BC, Canada Research Assistant May 2005 – Aug 2006 TIS.kis, Zagreb, Croatia Software Engineer Mar 2003 – Aug 2004 EDUCATION University of British Columbia, Vancouver, BC, Canada Ph.D. in Computer Science, Mar 2011 • Thesis: Modular Verification of Shared-Memory Concurrent System Software • Supervisor: Alan J. Hu M.Sc. in Computer Science, Aug 2006 • Thesis: A Logic and Decision Procedure for Verification of Heap-Manipulating Programs • Supervisor: Alan J. Hu Faculty of Electrical
    [Show full text]
  • Opettajan Arvio Opinnäytetyöstä
    Harrison Oriahi CONTENT MANAGEMENT SYSTEMS (CMS) CONTENT MANAGEMENT SYSTEMS (CMS) Harrison Oriahi Bachelor’s thesis Autumn 2014 Degree Programme in Information Technology Oulu University of Applied Sciences ABSTRACT Oulu University of Applied Sciences Degree in Information Technology, Internet Services Author(s): Harrison Oriahi Title of Bachelor’s thesis: Content Management Systems Supervisor(s): Veijo Väisänen Term and year of completion: Autumn 2014 Number of pages: 48 + 3 appendices ABSTRACT: This thesis describes the three most common and widely used content management systems (CMS) used to power several millions of business websites on the internet. Since there are many other content managements systems online, this report provides some helpful guides on each of these three most used systems and the web design projects that each of them maybe most suitable. There are plenty of options when it comes to selecting a content management system for a development project and this thesis focuses on making a detailed comparison between the three most commonly used ones. This comparison will help provide a clear understanding of why a content management system maybe preferred to the other when considering any web design project. To help detect the content management system (CMS) or development platform that an already existing website is built on, some helpful website analyzing tools are also discussed in this report. By reading this report, a reader with no previous experience with content management systems will be able to have a general view on what they are, what the commonly used ones are and what to consider when making a choice of content management system to use.
    [Show full text]