From 5bb8b86e179d45ff7875d5b4bca05e7d347aa2b9 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Wed, 9 Dec 2015 23:52:29 +0100 Subject: [PATCH 01/18] Added target to create pdf using pandoc. --- Makefile | 15 +++++++++++++++ preamble.tex | 12 ++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 preamble.tex diff --git a/Makefile b/Makefile index 7f98d88..ce53b80 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ EXTRACTDIR=zzz-epub-extract TARGET_DIR=target EPUB_OUT=$(TARGET_DIR)/$(DOC).epub +PDF_OUT=$(TARGET_DIR)/$(DOC).pdf all: $(MAKE) clean img epub @@ -44,3 +45,17 @@ unzip: clean: rm -rf images $(EXTRACTDIR) $(TARGET_DIR) + +pdf: + mkdir -p $(TARGET_DIR) + pandoc \ + --include-in-header=preamble.tex \ + --smart \ + --toc \ + --chapters \ + --number-sections \ + --toc-depth=2 \ + --output=$(PDF_OUT) \ + index.md \ + $(CHAPTERS_MD) + diff --git a/preamble.tex b/preamble.tex new file mode 100644 index 0000000..c292ea5 --- /dev/null +++ b/preamble.tex @@ -0,0 +1,12 @@ +\usepackage[T1]{fontenc} +%\usepackage{fourier} +%\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage{mathpazo} +\usepackage{tgpagella} + +%\usepackage{pslatex} +\usepackage{a4wide} +\setlength{\textheight}{200mm} + +\author{Arie van Deursen and Rogier Slag} From fe21b1577f4d3f8fe4e7c52828fab94d618828b2 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Wed, 9 Dec 2015 23:53:44 +0100 Subject: [PATCH 02/18] git ignoring images folder. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 9851624..1901fe0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ _site .vagrant target +images From c7ed392fd78891dae03acb34afdf71c7178ba214 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Wed, 9 Dec 2015 23:54:05 +0100 Subject: [PATCH 03/18] Fixed author position --- index.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/index.md b/index.md index 2d0429e..9836219 100644 --- a/index.md +++ b/index.md @@ -5,12 +5,10 @@ overview: true creator: - role: Editor - text: Arie van Deursen and Rogier Slag (editors) -date: August 2015, Version 1.1-RC1 +date: August 2015, Version 1.1-RC2 --- -# Delft Students on Software Architecture - -## DESOSA 2015 +# Delft Students on Software Architecture: DESOSA 2015 **[Arie van Deursen] and [Rogier Slag].**
From 5b79250ac339602ca0848c587e25f0866c077eb7 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sat, 9 Jan 2016 22:51:54 +0100 Subject: [PATCH 04/18] Added cover image to cover in pdf. Added css file used for epub generation. Currently ensuring captions are displayed in italics, to make it clear they are different from the main text. Fixed target to inspect epub. Fixed vagrant provisioning so that proper ruby is loaded. Jekyll needs ruby 2 -- the code was already in the provision file, but in comments, for some reason. Uncommented it. epub-style messes up table of contents. Fixed. --- .gitignore | 4 +++- Makefile | 8 ++++---- epub-style.css | 3 +++ preamble.tex | 4 ++++ provision.sh | 22 ++++++++++++---------- 5 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 epub-style.css diff --git a/.gitignore b/.gitignore index 1901fe0..c055482 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ _site .vagrant target -images +/images +zzz-epub-extract +.DS_Store \ No newline at end of file diff --git a/Makefile b/Makefile index ce53b80..eb0cd57 100644 --- a/Makefile +++ b/Makefile @@ -38,10 +38,10 @@ check: # An epub file is just a zip file with html content. # Provide target for unzipping to help fixing incorrect epubs. unzip: - rm -rf $(TMPDIR) - mkdir -p $(TMPDIR) - cp $(DOC).epub $(TMPDIR)/$(DOC).zip - cd $(TMPDIR); unzip $(DOC).zip + rm -rf $(EXTRACTDIR) + mkdir -p $(EXTRACTDIR) + cp $(EPUB_OUT) $(EXTRACTDIR)/$(DOC).zip + cd $(EXTRACTDIR); unzip $(DOC).zip clean: rm -rf images $(EXTRACTDIR) $(TARGET_DIR) diff --git a/epub-style.css b/epub-style.css new file mode 100644 index 0000000..efbd9be --- /dev/null +++ b/epub-style.css @@ -0,0 +1,3 @@ +.caption, caption { + font-style: italic; +} \ No newline at end of file diff --git a/preamble.tex b/preamble.tex index c292ea5..f115462 100644 --- a/preamble.tex +++ b/preamble.tex @@ -9,4 +9,8 @@ \usepackage{a4wide} \setlength{\textheight}{200mm} +\title{\includegraphics{epub-cover.png}} + \author{Arie van Deursen and Rogier Slag} + + diff --git a/provision.sh b/provision.sh index 421b02d..6b4a562 100644 --- a/provision.sh +++ b/provision.sh @@ -7,16 +7,18 @@ echo "Upgrading all current packages" apt-get upgrade -y >> /tmp/provision.log 2>&1 echo "Installing new packages" -apt-get install git curl unzip ruby ruby-dev nodejs -y >> /tmp/provision.log 2>&1 - -#echo "Installing Ruby" -#gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 >> /tmp/provision.log 2>&1 -#curl -sSL https://get.rvm.io | bash -s stable --ruby >> /tmp/provision.log 2>&1 -#source /usr/local/rvm/scripts/rvm -# -#echo "Installing Ruby-2.2.1..." -#rvm install ruby-2.2.1 >> /tmp/provision.log 2>&1 -#rvm use ruby-2.2.1 --default >> /tmp/provision.log 2>&1 +# apt-get install git curl unzip ruby ruby-dev nodejs -y >> /tmp/provision.log 2>&1 +apt-get install git curl unzip nodejs -y 2>&1 | tee /tmp/provision.log 2>&1 + + +echo "Installing Ruby" +gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 >> /tmp/provision.log 2>&1 +curl -sSL https://get.rvm.io | bash -s stable --ruby >> /tmp/provision.log 2>&1 +source /usr/local/rvm/scripts/rvm + +echo "Installing Ruby-2.2.1..." +rvm install ruby-2.2.1 >> /tmp/provision.log 2>&1 +rvm use ruby-2.2.1 --default >> /tmp/provision.log 2>&1 echo "Installing Jekyll" gem install jekyll kramdown jekyll-sitemap jekyll-coffeescript execjs 2>&1 >> /tmp/provision.log From c2935946fa8ac3597984bf2e09282b2831939f31 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sat, 9 Jan 2016 22:53:39 +0100 Subject: [PATCH 05/18] [docker] images/code/tables in pandoc compatible markdown. Added missing image. --- .../images/docker-filesystems-multilayer.png | Bin 0 -> 32189 bytes chapters/docker/index.md | 80 +++++++++--------- 2 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 chapters/docker/images/docker-filesystems-multilayer.png diff --git a/chapters/docker/images/docker-filesystems-multilayer.png b/chapters/docker/images/docker-filesystems-multilayer.png new file mode 100644 index 0000000000000000000000000000000000000000..632aa41cca527b89eb60400bff92c37d8cdc5dac GIT binary patch literal 32189 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 literal 0 HcmV?d00001 diff --git a/chapters/docker/index.md b/chapters/docker/index.md index e23ebb9..933cbe8 100644 --- a/chapters/docker/index.md +++ b/chapters/docker/index.md @@ -59,11 +59,13 @@ Docker does so by running isolated, virtual environments in so called containers These containers are created by developers and can contain both the developed program and all other necessary software. Normally this is done by using virtual machines, but this results in a large overhead caused by the hypervisor that creates and runs a virtual machine. Docker makes it possible to create isolated environments without this overhead by running the processes in the kernel of the host OS, which eliminates the need for a guest OS. -Figure 1 illustrates the difference between using a VM on the left-hand side and using Docker on the right-hand side. +The figures below illustrate the difference between using a virtual machine on the one hand and using Docker on the other. -![VMs](images/variability_vm.png) ![Docker](images/variability_docker.png) +![](images/variability_vm.png) +
_Traditional Approach to Virtual Environments_ -*Figure 1: VMs (left-hand side) versus Docker (right-hand side) [[ref]](https://www.docker.com/whatisdocker/)* +![](images/variability_docker.png) +
_Docker's Approach to Virtual Environments_ To run such a container, an image is needed. An image is the read-only description of a container, from which multiple containers can be run. @@ -75,32 +77,32 @@ Docker can then automatically build the image by executing this `Dockerfile`. Internally, Docker uses the same functionality as the commit command to execute a `Dockerfile`. To take a closer look at the structure of the Docker project, we first identify the functional elements of Docker. -The relation between those elements is depicted in Figure 2. Table 1 provides a small description of each element's responsibility. - -![](images/component_diagram.png "Component Diagram") - -*Figure 2: Component diagram of Docker* - -Element | Responsibility ---- | --- -Builder | Parsing Dockerfiles and building images based on the contents of those Dockerfiles. -Client | Providing a user interface (CLI) to interact with Docker -Daemon | Running containers and storing images -Engine | Storing containers and manipulating these containers by executing jobs +The relation between those elements is depicted in Figure [_Component diagram of Docker_](#component-diagram). The subsequent table provides a small description of each element's responsibility. + +
+![](images/component_diagram.png) +_Component diagram of Docker_ + +Element | Responsibility +------- | ------------------------------------------------------------------ +Builder | Parsing Dockerfiles and building images based on the contents of those Dockerfiles. +Client | Providing a user interface (CLI) to interact with Docker +Daemon | Running containers and storing images +Engine | Storing containers and manipulating these containers by executing jobs Event Bus | Providing a publish-subscribe interface for events -Registry | Storing images and providing an interface for pulling those images +Registry | Storing images and providing an interface for pulling those images -*Table 1: Responsibility of each identified element* +Table: Responsibility of each identified element At the heart of Docker is [libcontainer](https://github.com/docker/libcontainer). Libcontainer provides an interface to making containers inside a host OS. -It uses namespaces, cgroups, capabilities, and filesystem access controls to isolate containers. Until version 0.9 Docker used [LXC](https://linuxcontainers.org/) for this purpose and it is still possible to swap libcontainer for LXC (see Figure 3). +It uses namespaces, cgroups, capabilities, and filesystem access controls to isolate containers. Until version 0.9 Docker used [LXC](https://linuxcontainers.org/) for this purpose and it is still possible to swap libcontainer for LXC (see Figure [Virtualization Abstraction](#virtualization-abstraction)). However, by using their own interface they are able to drastically reduce the number of moving parts [[ref]](http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/) and no longer depend on userland packages. The libcontainer project attracted a number of companies to support Docker, such as Microsoft, Google, IBM, Red Hat, and Canonical [[ref]](http://www.zdnet.com/article/docker-libcontainer-unifies-linux-container-powers/). - - -*Figure 3: Virtualization abstraction [[ref]](http://en.wikipedia.org/wiki/Docker_(software)#/media/File:Docker-linux-interfaces.svg)* +
+![](images/docker-linux-interfaces.png) +_Virtualization abstraction_ ## Usage Principles When starting to use Docker you will notice that it poses some restrictions on the application containers. Specifically, Docker encourages containers to be: @@ -110,14 +112,15 @@ When starting to use Docker you will notice that it poses some restrictions on t 3. Stateless ### Layered -As all changes are committed on top of the previous change, an image has a layered structure (see Figure 4). +As all changes are committed on top of the previous change, an image has a layered structure (see the [Figure](#layered-structure) below). This also allows the use of previously built layers/images. For example, when you have only changed the source code of your application, only the layers starting at importing your source code have to be rebuilt, i.e. the dependencies do not need to be built/installed again. Intermediate layers are cached by Docker, so only the changed layer and all layers on top of that need to be rebuilt. - +
+![](images/docker-filesystems-multilayer.png) +_Layered structure of an image_ -*Figure 4: Layered structure of an image [[ref]](https://docs.docker.com/terms/image/)* ### Application per Container It is considered a best practice to run a single process in a single container [[ref]](https://docs.docker.com/articles/dockerfile_best-practices/#run-only-one-process-per-container). This best practice becomes obvious in several places: @@ -156,11 +159,11 @@ Maintainers are the only persons allowed to merge pull requests and can be found Another big group of stakeholders are the suppliers. Companies offering Docker based services have a big interest in its development. Examples of suppliers are companies that offer Infrastructure as a Service with built-in support for Docker, such as [DigitalOcean](https://www.digitalocean.com/features/one-click-apps/docker/) and [GiantSwarm](https://giantswarm.io), but also [Docker Hub](https://hub.docker.com/), offering tools for building and sharing containers. - - -*Figure 5: The Power/Interest curve for Docker* +
+![](images/P_I_curve.png) +_The Power/Interest curve for Docker_ -Figure 5 provides an overview of the power versus interest curve, which represents how much power and interest a given stakeholder has in the system. +The [Figure above](#docker-pi) provides an overview of the power versus interest curve, which represents how much power and interest a given stakeholder has in the system. On the top right, with the most power and interest, there are two stakeholders: Docker, Inc. and Solomon Hykes. The first being the company supporting Docker, the latter being the inventor of Docker (also referred to as the [benevolent dictator for life](http://en.wikipedia.org/wiki/Benevolent_dictator_for_life)). Google, Microsoft and IBM also have quite some power and interest in the Docker project, as they contribute to the source code and provide Docker on their systems. @@ -175,13 +178,14 @@ Finally, there are also competitors, like Rocket, that have a little interest (a Docker has a clear modular structure. Each module is represented by a directory in the root of the project. These modules can be grouped together according to the layer they reside in. -The Docker project can be divided into four layers: core, utility, security, and test. -Figure 6 displays these layers and their modules. -Most of the modules that had their functionality described in Figure 2 reside in the core layer of Docker. +The Docker project can be divided into four layers: core, utility, security, and test, +as shown in the figure displaying the [Modular Structure of Docker](#docker-modular-view). +Most of the modules that had their functionality described in Figure [_Component diagram of Docker_](#component-diagram) reside in the core layer of Docker. - +
+![](images/development-view.png) +_Modular Structure of Docker_ -*Figure 6: Modular structure of Docker* Most functionality is implemented in the core layer. The `Daemon` module is responsible for constructing containers. @@ -198,12 +202,12 @@ The `security` layer contains trust-related code, a concept that is used for man Finally, Docker uses both integration tests and unit tests, as indicated by the `Tests` layer. This layer is represented by a vertical box, because testing occurs in all layers of the system. - - -*Figure 7: Module dependencies* +
+![](images/docker_deps.png) +_Module Dependencies_ -Finally, Figure 7 shows an overview of the dependencies between the most important modules. This graph was generated by statically analyzing the source code. The colors correspond to the colors in Figure 6: pink nodes are core modules, yellow nodes are domain models and purple nodes are utilities. -It should be noted that Figure 7 shows just high-level dependencies of a subset of the project. This set was chosen because of it being the core of the project and a good representation of the dependency distribution in general. +Finally, the [Figure above](#docker-dependencies) shows an overview of the dependencies between the most important modules. This graph was generated by statically analyzing the source code. The colors correspond to the colors in the Figure describing the [Modular Structure of Docker](#docker-modular-view): pink nodes are core modules, yellow nodes are domain models and purple nodes are utilities. +It should be noted that the figure shows just high-level dependencies of a subset of the project. This set was chosen because of it being the core of the project and a good representation of the dependency distribution in general. The figure starts at the top with the `docker` module, which is the entry point of the application. The important thing to note about this picture is that all dependencies contain arrows downward; there are no circular dependencies. Architectures without circular dependencies are usually easier to understand and maintain [[ref]](http://www.objectmentor.com/resources/articles/granularity.pdf). From 0952b96583e17a9d68c566b446b66d40d2174a0c Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 18:05:28 +0100 Subject: [PATCH 06/18] [diaspora] Images and tables working w/ pdf, epub, jekyll --- chapters/diaspora/index.md | 136 +++++++++++-------------------------- 1 file changed, 39 insertions(+), 97 deletions(-) diff --git a/chapters/diaspora/index.md b/chapters/diaspora/index.md index 7156f85..2071a2a 100644 --- a/chapters/diaspora/index.md +++ b/chapters/diaspora/index.md @@ -7,9 +7,7 @@ chapter: true # Diaspora -

- -

+![](images/Diaspora.png) **Simon Bijl, Tejaswini Dandi, Selman Ercan, Revathi MC**
*Delft University of Technology* @@ -50,12 +48,9 @@ In this chapter, we discuss the context, architecture and development of the Dia In 2010 the project was funded as a Kickstarter project, collecting over $200,000. Since 2012 the project is fully based on volunteer work. The image below gives a rough timeline of the project. -

- -

-

- Figure 1: Project History of Diaspora -

+![](images/History.PNG) +_Figure 1: Project History of Diaspora_ + ##Organisation @@ -65,12 +60,8 @@ In this section, the organisation and analysis of major stakeholders involved in Some of the stakeholder categories identified in Rozanski and Woods are included in this section. As the project currently involves less contributors, few of the stakeholders have multiple roles in the project. -

- -

-

- Figure 2: Stakeholder Analysis of Diaspora -

+![](images/Stakeholder.png) +_Figure 2: Stakeholder Analysis of Diaspora_ The Diaspora Foundation, which is part of the Free Software Support Network (FSSN), manages the Diaspora software development. Eben Moglen and the Software Freedom Law Center in turn run the FSSN. The FSSN provides resources to Diaspora development and manages Diaspora's branding, trademark, copyrights, finances and legal assets. Administrators who maintain the system once it has been deployed are called *podmins*, and the system administrators. Users of the network of nodes, mainly different individuals and organisations, can host a pod on their own server. @@ -81,12 +72,8 @@ The most active developer is [Mr. Jonne Haß](https://github.com/jhass) with 187 The process of software architecture involves the concerns of both the internal and the external environment. In addition to the internal stakeholders, it is essential to give a definition of the environment of the system in terms of its relationships and dependencies. This need can be met by creating a context view as part of the architectural description. The figure below gives an overview of Diaspora's interactions with external entities. -

- -

-

- Figure 3: Context view diagram of Diaspora -

+![](images/Context view.png) +_Figure 3: Context view diagram of Diaspora_ As seen from the figure, the most essential external dependencies of Diaspora can be categorised into three types: background processing, development environment and decision making tools. As Diaspora relies on a lot of network communication with other servers, background processing jobs are considered essential. This is mainly taken care of by [Redis](http://redis.io/) and [Sidekiq](http://sidekiq.org/). The development environment mainly consists of [GitHub](https://github.com/Diaspora/Diaspora) and [testing](https://wiki.diasporafoundation.org/Testing_workflow) frameworks. The process followed in the development environment is mainly discussed and decided in the central platform [Loomio](https://www.loomio.org/g/EseV9p4X/Diaspora-community), which acts a voting tool. @@ -124,12 +111,8 @@ Mandatory features are present in all products. Optional ones may or may not be selected. Among alternative features only one can be selected, while in OR-features it is possible to select one or more. Below is the feature model diagram of Diaspora. -

- -

-

- Figure 4: Diaspora Feature Model -

+![](images/feature-model.png) +_Figure 4: Diaspora Feature Model_ Most of the included features are mandatory. The OS support for development is an OR-feature; different operating systems are supported and it is possible to develop using more than one at the same time. The data storage feature is an alternative feature; various DBMSs are supported, but only one can be used at the same time. The chatting feature is optional. @@ -137,12 +120,8 @@ Most of the included features are mandatory. The OS support for development is a In order to represent a complex system in a way that is manageable and comprehensible by a range of business and technical stakeholders, the only successful way is to attack the problem from different directions simultaneously. In this approach, the architecture definition is partitioned into a number of separate but interrelated views and perspectives, each of which describes a separate aspect of the architecture. Collectively these views describe the whole system. -

- -

-

- Figure 5: Viewpoint Catalog -

+![](images/Viewpoint.png) +_Figure 5: Viewpoint Catalog_ As shown in figure 3, we made use of some of the viewpoints and perspectives defined in Rozanski and Woods in analysing the architecture of Diaspora. In this section we will analyse the Diaspora project using two viewpoints (_Development_ and _Deployment_) and one perspective (_Internationalisation_). @@ -158,22 +137,13 @@ In general, Model (M) is the central component of the MVC Architecture. Models a The operation of this architecture is illustrated in the following figure. -

- -

-

- Figure 6: MVC Architecture -

+![](images/MVC.png) +_Figure 6: MVC Architecture_ As explained earlier, Diaspora's architecture consists of modules organised as models, controllers and views. The following figure shows which modules belongs to which part of the MVC architecture. -

- -

-

- Figure 7: Modular organisation -

- +![](images/Module.png) +_Figure 7: Modular organisation_ Redis, resque, mysql2, activerecord are the databases where Diaspora stores data and acts as models for the system. Diaspora uses [Sinatra](http://www.sinatrarb.com/) libraries for creating web applications in Ruby. @@ -184,23 +154,19 @@ Diaspora uses JSXC in the front end of Diaspora's built-in chat feature. Diaspor ##### Source Code Structure Diaspora is a Ruby on Rails application and the module organisation conforms to the Ruby on Rails project structure described in [application structure](http://en.wikibooks.org/wiki/Ruby_on_Rails/Getting_Started/Creating_the_application#The_Application_Structure). The project documentation is provided through [wiki](https://wiki.Diasporafoundation.org/Main_Page) where every single feature is precisely explained using workflows. The documentation on recent changes in the system is provided through the `Changelog.md` file. The Diaspora application structure is shown in the figure below. -

- -

-

- Figure 8: The application structure of Diaspora -

+![](images/diaspora-codeline.png) +_Figure 8: The application structure of Diaspora_ |**Directory Name** | **Description**| -| :-----| :-----| -| app | This folder contains the project's models, views controllers and the important source code | -| config | Contains all the necessary configuration files of the Rails application. Localisations, routes and all basic files can be found here. | -| db | All database related files go into this folder. | -| features | Code for the related desktop and mobile features are available here. | -| graphics | The files in this directory are "source" files for the graphics used in the Diaspora frontend. | -| script | This directory has scripts for Rails that provide a variety of tasks. These scripts link to another file where the "real" files are. Inside these folder generators, server and console can be found. | -| spec | RSpec tests are located in this directory. | +| :----------| :--------------------------------------------------------------| +| app | This folder contains the project's models, views controllers and the important source code | +| config | Contains all the necessary configuration files of the Rails application. Localisations, routes and all basic files can be found here. | +| db | All database related files go into this folder. | +| features | Code for the related desktop and mobile features are available here. | +| graphics | The files in this directory are "source" files for the graphics used in the Diaspora frontend. | +| script | This directory has scripts for Rails that provide a variety of tasks. These scripts link to another file where the "real" files are. Inside these folder generators, server and console can be found. | +| spec | RSpec tests are located in this directory. | *Table 1: The content of the folders mentioned in figure 8* @@ -235,7 +201,7 @@ In order to run Diaspora, it is essential to install the following dependencies: #### Technology incompatibilities |Software/Hardware elements|Incompatibility| -|:------|:-------| +| :----------| :--------------------------------------------------------------| | Ruby| It is recommended to use [Ruby Version Manager](http://rvm.io/) which helps in ensuring that the system is always on the currently recommended Ruby version and also helps in cleanly separating the Diaspora installation from all other Ruby applications on the machine. If the Ruby version Manager is opted for, it is better to ensure that the Ruby version is at least 1.9.2-p320, as prior versions are incompatible. However this version is not maintained with security updates from the Ruby core team anymore. Hence it is recommended using the latest release of the 2.0 series. | RubyGems | If using Rails 2.x, then it is recommended to start using RubyGems from version 1.3.x.| | Redis server| Diaspora uses versions 2.6 and later releases for Redis server. It is recommended to use [PPA](https://launchpad.net/~chris-lea/+archive/ubuntu/redis-server) for installing the latest version.| @@ -255,13 +221,8 @@ This is an important model for the deployment viewpoint. This model defines: The Runtime platform Model of Diaspora is shown below: -

- -

-

- Figure 9: Runtime platform Model -

- +![](images/Deployment Diagram.png) +_Figure 9: Runtime platform Model_ For every pod system few hardware requirements need to be satisfied like size of the RAM, disk space needed type of CPU recommended etc. And the software elements necessary for the pod are database technology, protocols that are needed to use for file transfer, or for security between the layers etc. The Diaspora social network is constructed of a network of pods(nodes), which are hosted by many different individuals and institutions. Each pod is operated with a copy of the Diaspora software which acts as a personal web server. @@ -270,7 +231,7 @@ For every pod system few hardware requirements need to be satisfied like size of This model defines the technology dependencies that are needed for a environment on a node-by-node basis. The following table provides the dependency model of Diaspora. | Layer | Components | -|:------------|:-----------| +| :----------| :--------------------------------------------------------------| | Database Layer | PostgreSQL is recommended but can also use MySQL ; Redis ; Resque | | Network Layer | OpenSSL for encryption library ; libcURL for file transfer library | | Utility Layer | Sidekiq ; Ruby standard library | @@ -295,24 +256,14 @@ By default rails-i18n loads all locale files, pluralisation and transliteration #### Major touch points -

- -

-

- Figure 10: Major Touch points of Diaspora around the globe -

- +![](images/Touch points.png) +_Figure 10: Major Touch points of Diaspora around the globe_ This concern focuses on identifying all the major touch points (where a person interacts with the system), its scope of services and information that need to be internationalised in each of these touch points and system's region of concerns. The regions plotted in the diagram show the major touch points of the Diaspora system. The data is retrieved by taking the regions of active pod administrators, regions which have their languages translated at higher rate and regions which has its recent updates on languages. -

- -

-

- Figure 11: Scope of internationalisation of Diaspora -

- - +![](images/I18n.png) +_Figure 11: Scope of internationalisation of Diaspora_ + The chart is plotted by taking the values on percentage of translated data and proofread data in the Diaspora system. The chart shows clearly the proportion of translated data and proofread data in different languages in the Diaspora system. It can be seen that, though some of the languages has been translated to its maximum extent, there still remains some maintainability concerns in proofreading the translated data and finalising the changes needed to the system. It should also be noted that currently no locales are complete, lacking keys such as `activerecord.errors.messages.record_invalid` and `activerecord.errors.messages.restrict_dependent_destroy`. @@ -331,13 +282,8 @@ In this section we evaluate the maintainability of the Diaspora project. We defi The quality profile below is plotted by evaluating the cyclomatic complexity in the Diaspora codebase, through analysing every single line of code by the risk category instead of summation or average median method. Code complexity is analysed using Saikuro, which is a Ruby cyclomatic complexity analyser. When given Ruby source code Saikuro will generate a report listing the cyclomatic complexity of each method found. Some of the Classes/Modules which is under High risk category include `AspectsController`, `ConversationsController`, `PhotosController`, `StatusMessagesController`, `UsersController` and `PeopleController`. Duplication of code attributing to high risk category can be seen in the modules `PeopleController`, `StatusMessagesController`. -

- -

-

- Figure 12: Quality profile of cyclomatic complexity -

- +![](images/Complexity.png) +_Figure 12: Quality profile of cyclomatic complexity_ |**Cyclomatic Complexity**|**Risk Category**|**Percentage of code**| |:--------|:-------|:-----| @@ -352,12 +298,8 @@ The quality profile below is plotted by evaluating the cyclomatic complexity in Below is a diagram generated by the CodeClimate plugin running on the Diaspora codebase. It shows the change in the number of classes per risk category over a period of four months, prior to the last release;`Diaspora 0.4.1.2`on October 30th, 2014. -

- -

-

-Figure 13: CodeClimate Maintainability trends -

+![](images/code-climate-trends.png) +_Figure 13: CodeClimate Maintainability trends_ The first thing to note is that only the dark green area is increasing in height, meaning that most of the newly created classes and modules are in the _very low risk_ category.
From 7febc47361fa702062a47dce612d4be2cbd080fd Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 20:37:45 +0100 Subject: [PATCH 07/18] [kodi] images/code/tables in pandoc compatible markdown. --- chapters/kodi/index.md | 64 ++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/chapters/kodi/index.md b/chapters/kodi/index.md index 4bae959..bbfe1e4 100644 --- a/chapters/kodi/index.md +++ b/chapters/kodi/index.md @@ -9,7 +9,8 @@ chapter: true *A Report On the Journey of Team Kodi* - +![](images/Kodi.png) + *Authors: [Kaj Dreef](https://www.github.com/kajdreef), [Menno van der Reek](https://www.github.com/mvanderreek), [Koen Schaper](https://www.github.com/kpschaper), [Maarten Steinfort](https://www.github.com/maartensteinfort)* @@ -56,23 +57,20 @@ Furthermore, the Kodi player supports numerous [add-ons](http://kodi.wiki/view/O Originally, the Kodi software was developed for the XBOX game, a game console, the then purporting [XBOX Media Center](http://en.wikipedia.org/wiki/Kodi_(software)) (XBMC), that increased popularity whereby the XBMC foundation decided to expand their software to other platforms. Currently, the software is available for Windows, OSX, iOS, Android, and Linux. Since the name was still based on XBOX, XBOX Media Center, the foundation decided in 2014 to change the name to "Kodi" Entertainment Center. From this point we will continue naming the project Kodi. Besides that, the software has always been open-source and published for free. - - - _Figure 1: The attractive design of the Kodi Media Player from the outside_ +![](images/Kodi-home.png) +_Figure 1: The attractive design of the Kodi Media Player from the outside_ ### From the inside... At the other side, in the backoffice, the developers are collaborating with each other to continuously improving the source code of the Kodi Media Player. Starting with exposing the prominent stakeholders by diving into Kodi's repository on Github. The stakeholders with the most influence on the course of the media player software are the developers controlled by the [board members](http://kodi.wiki/view/Team_Kodi/Members), consisting of experienced developers and maintainers. Secondly, the [context view](http://www.viewpoints-and-perspectives.info/home/viewpoints/context/) highlights the dependencies, relationships and interactions with its environment. The [development view](http://www.viewpoints-and-perspectives.info/home/viewpoints/development/) describes Kodi's independent 'modular' architecture that supports the development and maintenance process. These modules can be described as well-ordered ['building blocks'](#development-view---the-building-blocks-of-kodi) in a large construction. Subsequently the [functional](http://www.viewpoints-and-perspectives.info/home/viewpoints/functional-viewpoint/) view focuses more on these 'building blocks' and how they operate and interact. Although Kodi might seem similar on many of the different operating systems from the outside, the differing features are investigated from the inside in the variability view. Ultimately with the help of the evolution perspective the roadmap to the next version, called ['Isenguard'](http://kodi.tv/kodi-15-0-alpha-1-road-to-isengard/), is discussed and evaluated. - - - _Figure 2: The backoffice of the Kodi community; working on the continuous enhancement of the media player_ +![](images/backofficeKodi.png) +_Figure 2: The backoffice of the Kodi community; working on the continuous enhancement of the media player_ ## Stakeholders - ***The brainiacs behind your TV screen*** The Kodi Foundation comprises a [large community](https://github.com/xbmc/xbmc/network/members) of hundreds software engineers, architects, developers and testers. They work on a voluntary base, as most of them have another job and no income is generated since Kodi is freeware. The search for detecting and identifying the most prominent stakeholders and capture their workflow led to the conclusion that [a limited group of developers](https://github.com/orgs/xbmc/people) have the right to approve or deny the potential contributions and pull requests, see Figure 3. However, by looking deeper into their profile history on Github, it appeared that these developers have 'earned their rights' by enormous amounts of commits after a certain period actively participating to the continuous improvement process of the software. - - - _Figure 3: Four most present integrators within the community_ +![](images/fourLargestCommitters.png) +_Figure 3: Four most present integrators within the community_ Although most of Kodi's stakeholders fit within the structure of [Rozanski and Woods](http://www.viewpoints-and-perspectives.info/home/stakeholders/), for classifying stakeholders, some of them act as more than one stakeholder type. A classification of the most prominent stakeholders is discussed below. @@ -90,9 +88,8 @@ Since Kodi is dependent on their users, they embrace them to contribute to the c By zooming in on the Kodi source code, the dependencies, interactions and relationships with the environment do appear. As can be seen in Figure 4, the Kodi software is supported on six different (operating) systems, which variates from high-specification desktop computers to low-specification computers with the purpose of only running the media player. In the context view, the behaviour of the media player and its environment are captured and displayed, as described in [Rozanski Woods](http://www.viewpoints-and-perspectives.info/home/viewpoints/context/). - - - _Figure 4: Context view of Kodi_ +![](images/kodiContextView2.png) +_Figure 4: Context view of Kodi_ It can be noted that Kodi supports multiple operating systems. It relies on these operating systems to abstract the communication with the hardware away. For other features external libraries are used, sometimes multiple libraries to be able to support all these operating systems. Using an automated build-system, the right libraries are picked for the targeted operating system. @@ -115,11 +112,10 @@ This is one of Kodi's general guidelines that actually fits in the [Rozansky and Starting with discussing the [modular design](#modular-design) that form the 'building blocks' of Kodi and illustrate these with an overview to gain a deeper understanding of the architecture of Kodi. Furthermore, the dependencies of and interactions of the modules and layers are discussed. -### Modular Design +![](images/KodiDevelopmentView.png) +
_Figure 5: Kodi's 'building blocks'_ - - - _Figure 5: Kodi's 'building blocks'_ +### Modular Design Firstly in Figure 5, the **yellow** building block encloses all files and packages about the [skins](http://kodi.wiki/view/Category:Skins), translations, fonts, and GUI of the Kodi Media Player. This is one of the most popular modules for the external developers, while it also provides a perfect example for the visualisation of the working of modules within a greater software architecture. @@ -139,18 +135,21 @@ As can be seen in the overview, the modular building blocks divide the total arc Furthermore, the relatively 'independent' modular design of Kodi prevents developing functions multiple times, by orchestrating it into the packages among the different layers. Another interesting advantage of the modular architecture, is that the [scalability](http://en.wikipedia.org/wiki/Scalability) is improved drastically. Because of the sharp boundaries between the modules, it is not only easier to maintain the source code but also easier to develop new features for the system. ### Development guidelines and principles -A large community of developers, testers, maintainers and users are [invited to contribute](http://kodi.tv/get-involved/) to the Kodi software with the goal of fulfilling as much wishes of the users as possible. For this reason most of the developers, testers and maintainers are also actively using the media player system. Besides that, a large part of the reputation that Kodi has gained since their launch in 2002 is due to their framework for add-ons. Its accessibility is associated with the [guidelines and principles](http://kodi.wiki/view/XBMC_development) that Kodi has published. All members of the community, developers and software engineers involved should abide these rules and principles. To illustrate a understanding of these guidelines, a selection* is provided. +A large community of developers, testers, maintainers and users are [invited to contribute](http://kodi.tv/get-involved/) to the Kodi software with the goal of fulfilling as much wishes of the users as possible. For this reason most of the developers, testers and maintainers are also actively using the media player system. Besides that, a large part of the reputation that Kodi has gained since their launch in 2002 is due to their framework for add-ons. Its accessibility is associated with the [guidelines and principles](http://kodi.wiki/view/XBMC_development) that Kodi has published. All members of the community, developers and software engineers involved should abide these rules and principles. To illustrate a understanding of these guidelines, a selection is provided: 1. **Code documentation** -> *This should be done by using Docbook or Doxygen (preferred)* + + > *This should be done by using Docbook or Doxygen (preferred)* 2. **Installation** -> *Be easy to install, set up and maintain, so that our valuable end-users do not get fed up with it and quit* + + > *Be easy to install, set up and maintain, so that our valuable end-users do not get fed up with it and quit* 3. **Modular design** -> * *Kodi should still compile and run if a non-essential module or library is disabled or removed* -**Due to the limited words that the book chapter may contain, the guidelines are cut out, however we would like to refer to the [Kodi website](http://kodi.wiki/view/XBMC_development) where this is discussed in more detail.* + > *Kodi should still compile and run if a non-essential module or library is disabled or removed* + +*Due to the limited words that the book chapter may contain, the guidelines are cut out, however we would like to refer to the [Kodi website](http://kodi.wiki/view/XBMC_development) where this is discussed in more detail.* ## Functional View - ***More about the features*** While continuing the journey, Kodi's Media Player is viewed from another viewpoint. @@ -159,9 +158,8 @@ However, this time it is more focussed on the underlying layer that drives most In Figure 6 a simplified model is given of the functional view of Kodi. Only the key-features are shown here to keep the figure as simple as possible, but still show how the feature interact with each other to deliver the user the best media entertainment system possible. - - - _Figure 6: Functional view of Kodi_ +![](images/FunctionalView2.png) +_Figure 6: Functional view of Kodi_ **Players**: The 'players', this is the part of Kodi where the user can actually play/open its content. This is of course the feature the user will use most often, because of this it is important that it uses an accessible GUI, resulting in a user friendly player. The players uses other features to get the content to the screen like the codecs, or their own dedicated library. @@ -175,9 +173,8 @@ In the functional view a discovery has taken place regarding the depth of the fe ## Variability View - ***The effort to broaden audience*** Nowadays it is not rare that people have multiple devices used for different purposes, varying from desktop computers and notebooks to tablets and smartphones. For example, lets look at the [Raspberry Pi](http://raspberrypi.org), which is a low-spec computer operating on a simplified version of Linux. Users can profit from prices that are as low as the specs, resulting in the necessity for software that fits its capacity. The developers of Kodi decided to also focus on the Raspberry Pi, while they already support multiple Linux version. Although, to make Kodi available for a device with lower specifications, it will result in that some features will be left out because of hardware limitations. These ''variability points'' can be found in Figure 7. This also applies for Apple OS X, iOS, Linux, Android, and Microsoft Windows operating systems. This leads to the emerging question; what is the price to reach a broad audience? - - - _Figure 7: Feature variability model of the Kodi Media Player_ +![](images/variabilityView.png) +_Figure 7: Feature variability model of the Kodi Media Player_ The main features of the system are investigated along with the perspective of the stakeholders (see section 7: [functional view](#functional-view---more-about-the-features)). Every software system has main features, since these also comprises the core activities. Also Kodi has published their main features on their [Wiki](http://kodi.wiki/view/Features_and_supported_formats). Based on the tens of different features that Kodi counts a variability model is created, see Figure 7. This model displays the cohesion of the features within Kodi. There are 5 different 'abstract' features created; Music, Pictures, Videos, Settings, and Operating System. Subsequently, these are stripped down until the core features have emerged. @@ -229,9 +226,8 @@ During the course of the Software Architecture trip, on February 28, 2015 board Currently Kodi supports a lot of different platforms, which is accompanied with the continuous increasing of device types. As it would become impossible to keep [supporting all hardware devices](http://kodi.wiki/view/Supported_hardware) a selection is made whereby the scope is moved and redefined during updates; the [Evolution Perspective](http://www.viewpoints-and-perspectives.info/home/perspectives/evolution/). The effort of maintaining these legacy devices, magnitude of the change divided by the time required, would not weight up to the value gained. For this reason the need to drop support in order to keep evolving Kodi and accept newer hardware, which also can be seen in the changes involved in update Isenguard (see Figure 8). The other way the developers try to make Kodi better maintainable is by refactoring major parts of the code and moving it to become add-ons. This allows the developers to add future features to the core, while trying at the same time to keep the core as simple as possible and better meeting the immediate needs. - - - _Figure 8: Most important changes of Kodi's Isenguard update_ +![](images/updateChanges.png) +_Figure 8: Most important changes of Kodi's Isenguard update_ #### Ease of Evolution @@ -301,13 +297,13 @@ We are armed with the different architectural tools, an experience richer. Kodi' 14. Add an explanation to your solution and argument your choices. 15. Wait for the reaction of at least 2 of the main integrators (for example [*mkortstiege*](https://github.com/mkortstiege) or [*MartijnKaijser*](https://github.com/MartijnKaijser)). 16. When they call the keyword "*Jenkins build this please*", their build bot named Jenkins is checking if the code runs with your patch (see Figure 8) - ![](images/kodi-jenkins.png) - + + ![](images/kodi-jenkins.png) _Figure 8: Jenkins the build bot_ 17. When you receive a message that your Pull Request is accepted; congratulations. 18. Good luck with contributing! - + From f79b1bbe56812d04eed4d997c19c8cb1c44b42f0 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 21:56:58 +0100 Subject: [PATCH 08/18] [syncany] fixed images for use in pdf. --- chapters/syncany/images/functionality.png | Bin 90660 -> 128810 bytes chapters/syncany/index.md | 8 -------- 2 files changed, 8 deletions(-) diff --git a/chapters/syncany/images/functionality.png b/chapters/syncany/images/functionality.png index 58cf209bccf31727fa3469ad769b0cdc729ac6f6..a9ed64f3bd3a0e3b511056bd5104210252a08d49 100644 GIT binary patch literal 128810 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%0A{&yRM*x)^gt~?0 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ⅆf;mkS7dV|{(J3qwQJ$^Zp0%dOA4QwFm87UY+` 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
: use markdown 4 spaces instead.
---
 chapters/angulardart/index.md | 240 +++++++++++++++++-----------------
 1 file changed, 121 insertions(+), 119 deletions(-)

diff --git a/chapters/angulardart/index.md b/chapters/angulardart/index.md
index 27dc96b..a4b5f18 100644
--- a/chapters/angulardart/index.md
+++ b/chapters/angulardart/index.md
@@ -10,6 +10,7 @@ chapter: true
 
 
 ![](images/angulardart_logo.png "AngularDart")
+
 
 **Abstract**
 
@@ -37,83 +38,78 @@ AngularDart combines the client-side framework Angular with the programming lang
 ### What it is all about - A Quick Example
 
 HTML:
-
-
-
-<!doctype html>
-<html>
-  <head>
-    <link rel="stylesheet" href="todo.css">
-  </head>
-  <body>
-    <h2>Todo</h2>
-    <div todo-list ng-cloak>
-    <span>
-      {{TodoCtrl.remaining()}} of {{TodoCtrl.todos.length}} remaining
-    </span>
-        [ <a href="" ng-click="TodoCtrl.archive()">archive</a> ]
-        <ul class="unstyled">
-            <li ng-repeat="todo in TodoCtrl.todos">
-                <input type="checkbox" ng-model="todo.done">
-                <span class="done-{{todo.done}}">{{todo.text}}</span>
-            </li>
-        </ul>
-        <form ng-submit="TodoCtrl.addTodo()">
-            <input type="text" ng-model="TodoCtrl.todoText"  size="30"
-                   placeholder="add new todo here">
-            <input class="btn-primary" type="submit" value="add">
-        </form>
-    </div>
-    <script type="application/dart" src="todo.dart"></script>
-    <script src="packages/browser/dart.js"></script>
-  </body>
-</html>
-
-
-
+ + + + + + + +

Todo

+
+ + {{TodoCtrl.remaining()}} of {{TodoCtrl.todos.length}} remaining + + [ archive ] +
    +
  • + + {{todo.text}} +
  • +
+
+ + +
+
+ + + + + + In this HTML example you can see some unusual properties inside the tags often prefixed with `ng-`. These are standard Angular _directives_ that add behaviour or functionality to those tags. This is done by the Angular library by scanning the HTML client-side. The `todo-list` attribute in the top `
` refers to the controller written in Dart below, which manages the logic of adding todos: Dart: -

-import ‘package:angular/angular.dart’;
-import ‘package:angular/application_factory.dart’;
-
-@Controller(
-    selector: '[todo-list]',
-    publishAs: 'TodoCtrl')
-class TodoController {
-  List<Todo> todos;
-  String todoText;
- 
-  TodoController() {
-    todos = [...];
-  }
- 
-  void addTodo() {
-    todos.add(new Todo(todoText, false));
-    todoText = '';
-  }
- 
-  int remaining() {...}
- 
-  void archive() {...}
-  }
-}
- 
-class Todo {...}
- 
-class TodoModule extends Module {...}
- 
-main() {
-  applicationFactory()
-      .addModule(new TodoModule())
-      .run();
-}
-
-
+ + import ‘package:angular/angular.dart’; + import ‘package:angular/application_factory.dart’; + + @Controller( + selector: '[todo-list]', + publishAs: 'TodoCtrl') + class TodoController { + List<Todo> todos; + String todoText; + + TodoController() { + todos = [...]; + } + + void addTodo() { + todos.add(new Todo(todoText, false)); + todoText = ''; + } + + int remaining() {...} + + void archive() {...} + } + } + + class Todo {...} + + class TodoModule extends Module {...} + + main() { + applicationFactory() + .addModule(new TodoModule()) + .run(); + } In the next section the Angular framework is described: Its stakeholders are analyzed, as well as the project's organization. Then, the implementation and its functions are assessed, after which the evolution is described and the metrics for evaluation are introduced. Lastly, the contributions made are discussed. @@ -153,23 +149,23 @@ Now that we looked into the people involved in Angular, its architecture is expl Modules are functional, largely independent, units in the project that contain multiple files of source code. It is an 'encapsulation' of a specific aspect of the project. The two main advantages of the modular programming method are (1) simplification of code through limitation of dependencies between modules and (2) easier organisation of distributed programming because teams (or individuals) can specialize on single modules instead of having to know all the source code [Sun Microsystems, 2007](https://netbeans.org/project_downloads/usersguide/rcp-book-ch2.pdf). Although the AngularDart repository could be considered to be relatively small, it also benefits from modules to structure the source code. The code section below illustrates a folder structure in the AngularDart project. It depicts the /lib folder, which actually contains 15 folders and 10 files. -

-angular.dart/lib
-  /animate                  # contains files that provide animation functionality for angular.dart
-    animation_loop.dart
-    animation_optimizer.dart
-    animations.dart
-    css_animate.dart
-    module.dart
-    [...]
-  /core                     # folder with core elements of angular.dart
-    /parser                 # sub-folder of /core containing parsing functions
-    [...]
-  module.dart 
-  annotation.dart           # source code file that adds annotation
-  exception handler.dart    # source code file that handles exceptions in angular.dart
-  [...]
-
+ + angular.dart/lib + /animate # contains files that provide animation functionality for angular.dart + animation_loop.dart + animation_optimizer.dart + animations.dart + css_animate.dart + module.dart + [...] + /core # folder with core elements of angular.dart + /parser # sub-folder of /core containing parsing functions + [...] + module.dart + annotation.dart # source code file that adds annotation + exception handler.dart # source code file that handles exceptions in angular.dart + [...] + The modules in AngularDart can be identified through the 'module.dart' file in a directory. In the example above, 'animate' is a module where 'core' contains the parser. [Christopher Hiller](https://github.com/boneskull), a Software Architect and contributor to AngularJs, explained how developers can modularize their projects when using Angular. @@ -177,7 +173,9 @@ His blog is a good addition on the explanation above and focuses on creating mod The overall tendency is that the main modules in `/lib` are loosely decoupled, with only the Core module binding all the modules together. In the image below, the different modules and the dependencies between them are illustrated by a network analysis graph: Larger modules have more imcoming dependencies whilst small modules rely on such dependencies. -![Module dependency graph analysis](images/module _graph_analysis.png "Module dependency graph analysis of /lib") + +![](images/module _graph_analysis.png) +_Module dependency graph analysis of /lib_ AngularDart is written with a Dependency Injection (DI) framework, used for the decoupling of classes, allowing for re-usability. It allows the import of some software library in such a way that the DI module handles the discovery and import of this library. @@ -196,7 +194,7 @@ The functional capabilities define what AngularDart does. AngularDart is a port We derived the following functions in AngularDart: | Function | In component | -|----------|--------| +|----------------------------------------------------|------------| | Animating HTML elements | Animate | | Teach the browser new HTML syntax | HTML Compiler | | Binding data in the view and in the model | Two-way data binding | @@ -218,24 +216,23 @@ Also the differences between AngularJs and AngularDart are taken into account, r * AngularDart is built on top of Shadow DOM, so when implementing a Component the Shadow DOM is used. An example of the DI system differing between both versions, can be made clear as follows by an example from the blog [[2](http://victorsavkin.com/post/86909839576/angulardart-1-0-for-angularjs-developers)] of Victor Savkn: -

-//JS:
-// The name here matters, and since it will be minified in production, 
-// we have to use the array syntax.
-m.factory("usersRepository", ["$http", function($http){
-  return {
-    all: function(){/* ... */}
-  }
-}]);
-
-//DART:
-@Injectable()
-class UsersRepository {
-  // Only the type here matters, the variable name does not affect DI.
-  UsersRepository(Http h){/*...*/}
-  all(){/* ... */}
-}
-
+ + //JS: + // The name here matters, and since it will be minified in production, + // we have to use the array syntax. + m.factory("usersRepository", ["$http", function($http){ + return { + all: function(){/* ... */} + } + }]); + + //DART: + @Injectable() + class UsersRepository { + // Only the type here matters, the variable name does not affect DI. + UsersRepository(Http h){/*...*/} + all(){/* ... */} + } #### Interfaces @@ -257,7 +254,8 @@ Connectors are the pieces of code of the architecture that link the elements, or #### External entities AngularDart has "other systems, software programs, hardware devices or other entities with which the system interacts" (Rozanski and Woods, p. 272), or external entities. These can be extracted from the Context view image below. -![Context view with logos](images/Context_view_with_logos.png "Context view with logos") +![](images/Context_view_with_logos.png) +_Context view with logos_ * HTML: AngularDart extends the HTML with several directives, as discussed earlier, such as "ng-class". By using this directive, AngularDart attaches to that DOM element a specified behavior, or it can transform that DOM element (and its children). * DOM: AngularDart relies on the DOM, which all browsers have implemented. Furthermore, it can make use of the Shadow DOM, which is a polyfiller if it is not already natively supported by the browser. @@ -281,10 +279,13 @@ Version 2 will also add support for Web Components, which are a collection of fo Angular 2.0 will be built using TypeScript from Microsoft. However, because no browser supports TypeScript natively yet, it will be transpiled (a source-to-source compiler, that *trans*lates code to another programming language) to EcmaScript 5. TypeScript differs from EcmaScript 5 by the addition of types to the language (type annotations, compile-time type checking and type inference). This also counts for classes, interfaces, modules and more. TypeScript is a superset of EcmaScript 5, which means that any current JavaScript program is a valid TypeScript program. However, Angular 2.0 does not offer any backwards compatibility to version 1. -![Alt text](images/angular2_transpile_architecture.png "Angular 2 Transpile Architecture") +![](images/angular2_transpile_architecture.png) +_Angular 2 Transpile Architecture_ + In the image above you can see the way the Angular 2 is built. Since the development started on version 2 of Angular, both teams of the JavaScript and Dart version are combined into one team. Version 2 uses the facada pattern, which uses abstracted functions to improve readability of the library and the make a coherent API that is easy to use. Also, the most important reason that these facades are necessary is for the differences between JavaScript and Dart APIs. The transpiler uses these facades to compile the correct API for both languages. Traceur is the component responsible for tranpsiling the code to EcmaScript 5 and Dart. -![](images/angular2_team.png "The team of Angular 2") +![](images/angular2_team.png) +_The team of Angular 2_ This compiler actually adds an extra option to develop Angular apps. Besides EcmaScript 5, EcmaScript 6, TypeScript and Dart, it is also possible to write Angular apps using the Traceur compiler in EcmaScript 6 and having it transpile to any number of the just mentioned languages. @@ -347,18 +348,16 @@ The level of achievement of the goal can be measured by comparing the deltas of For example: the number of issues being raised in AngularJs might be higher than in AngularDart or Angular 2.0, but that cannot directly concluded that AngularJs is more fragile, AngularJs has more users and contributors. So the improvement of 2.0 over 1.0 in this measure `M` should measured as: -

-Mjs = Issues(Ajs) / Contributors(Ajs)
-Mdart = Issues(Adart) / Contributors(Adart) 
-M2 = Issues(A2) / Contributors(A2) 
-
+ Mjs = Issues(Ajs) / Contributors(Ajs) + Mdart = Issues(Adart) / Contributors(Adart) + M2 = Issues(A2) / Contributors(A2) Resulting in: `M2 < Mdart < Mjs` #### Goal for Angular | Goal | | -|---------|-------| +|---------|---------------------------------| | Purpose | Lower | | Issue | The barrier | | Object | For contributing towards Angular (2.0) | @@ -443,7 +442,8 @@ An application called `cloc` is used to count the number of lines of code and th
-![Ratio Comment/LOC](images/ratio_loc_comments.png "Ratio Comment / LOC") +![](images/ratio_loc_comments.png) +_Ratio Comment / LOC_ **Total volume of documentation (word count)** @@ -478,7 +478,9 @@ Finally, general checking metrics are needed to define whether the goal, namely * **Mapping**: Monitoring the number of contributors, to see if this increases This metric is performed and obtained from GitHub, with the results depicted in the following graph: -![Number of contributors](images/number_of_contributors.png "Number of contributors") + +![](images/number_of_contributors.png) +_Number of contributors_ The number of contributors reached a peak in November 2014, and has steadily declined. This might be just because of start of the AngularJs 2.0, the new framework. From 53e0bcc970ca83c95ca817fd16ea7e536503cdb0 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Tue, 12 Jan 2016 22:37:41 +0100 Subject: [PATCH 12/18] [diaspora] images/code/tables in pandoc compatible markdown. --- chapters/diaspora/index.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/chapters/diaspora/index.md b/chapters/diaspora/index.md index 2071a2a..1c89521 100644 --- a/chapters/diaspora/index.md +++ b/chapters/diaspora/index.md @@ -8,6 +8,7 @@ chapter: true # Diaspora ![](images/Diaspora.png) + **Simon Bijl, Tejaswini Dandi, Selman Ercan, Revathi MC**
*Delft University of Technology* @@ -266,7 +267,10 @@ _Figure 11: Scope of internationalisation of Diaspora_ The chart is plotted by taking the values on percentage of translated data and proofread data in the Diaspora system. The chart shows clearly the proportion of translated data and proofread data in different languages in the Diaspora system. It can be seen that, though some of the languages has been translated to its maximum extent, there still remains some maintainability concerns in proofreading the translated data and finalising the changes needed to the system. -It should also be noted that currently no locales are complete, lacking keys such as `activerecord.errors.messages.record_invalid` and `activerecord.errors.messages.restrict_dependent_destroy`. +It should also be noted that currently no locales are complete, lacking keys such as: + +- `activerecord.errors.messages.record_invalid` and +- `activerecord.errors.messages.restrict_dependent_destroy`. #### Architectural challenges @@ -278,7 +282,7 @@ Software always needs new features and bug fixes. Diaspora currently has 197 ope In this section we evaluate the maintainability of the Diaspora project. We define four metrics and present our measurement results for these. -##### Code complexity and duplication +### Code complexity and duplication The quality profile below is plotted by evaluating the cyclomatic complexity in the Diaspora codebase, through analysing every single line of code by the risk category instead of summation or average median method. Code complexity is analysed using Saikuro, which is a Ruby cyclomatic complexity analyser. When given Ruby source code Saikuro will generate a report listing the cyclomatic complexity of each method found. Some of the Classes/Modules which is under High risk category include `AspectsController`, `ConversationsController`, `PhotosController`, `StatusMessagesController`, `UsersController` and `PeopleController`. Duplication of code attributing to high risk category can be seen in the modules `PeopleController`, `StatusMessagesController`. @@ -294,7 +298,7 @@ _Figure 12: Quality profile of cyclomatic complexity_ *Table 4: Quality profile* -##### Maintainability trends +### Maintainability trends Below is a diagram generated by the CodeClimate plugin running on the Diaspora codebase. It shows the change in the number of classes per risk category over a period of four months, prior to the last release;`Diaspora 0.4.1.2`on October 30th, 2014. From 970b7c754741868f28d3467676ecd5f0eb97804d Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 21:15:34 +0100 Subject: [PATCH 13/18] [jekyll] images/code/tables in pandoc compatible markdown. --- chapters/jekyll/index.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/chapters/jekyll/index.md b/chapters/jekyll/index.md index 2f2a9fb..7ec5db3 100755 --- a/chapters/jekyll/index.md +++ b/chapters/jekyll/index.md @@ -7,7 +7,8 @@ chapter: true # Jekyll - A Simple Static Site Generator -![](./images/jekyll-sa-header.png) +![](images/jekyll-sa-header.png) + **[Joop Aué](https://github.com/JoopAue), [Anton Bouter](https://github.com/abouter), and [Martin Rogalla](https://github.com/MartinRogalla)**
*Delft University of Technology* @@ -52,7 +53,7 @@ These insights will not only make it easier for people to join the community and * [Stamp Coupling](#stamp-coupling) * [Parallelizable Iterations](#parallelizable-iterations) * [Conclusions and Recommendations](#conclusions-and-recommendations) - * [Bibliography](#bibliography) + * [Bibliography](#jekyll-bibliography) ## Introduction Jekyll is an open-source static site generator written in Ruby. @@ -82,7 +83,7 @@ Additionally the stakeholders differ largely in their interest in Jekyll and the These different levels of [interest and power](#powerinterest-grid) require a different approach of dealing with the stakeholders. ### Types of Stakeholders -In their book, Rozanski and Woods[[1]](#bibliography) describe 11 types of stakeholders. +In their book, Rozanski and Woods[[1]](#jekyll-bibliography) describe 11 types of stakeholders. However, this section only discusses 4 of them, which are believed to be relevant for Jekyll. One additional stakeholder, the community, is highly relevant for Jekyll and will therefore be included in the stakeholder analysis. For each stakeholder type a short description is given followed by a specification of the Jekyll stakeholders that fit that description. @@ -147,7 +148,7 @@ For each stakeholder type a short description is given followed by a specificati The Jekyll community benefits greatly from [GitHub Pages](https://pages.github.com/) as GitHub Pages provides Jekyll [support](https://help.github.com/articles/using-jekyll-with-pages/) as a blog-aware static site generator. ### Power/Interest Grid -The stakeholders can be prioritized using the Power/Interest Grid[[2]](#bibliography). +The stakeholders can be prioritized using the Power/Interest Grid[[2]](#jekyll-bibliography). Stakeholders with high power and high interest must be involved in every decision and are to be satisfied. A low interest and high power stakeholder should be kept satisfied, but should not be bothered with detailed information. High interest and low power stakeholders need to be kept up-to-date with developments as they can be very helpful. @@ -169,7 +170,7 @@ In order to show the context in which Jekyll resides, a clear concise descriptio The environment of a system include the people interacting with the system, dependencies and other interacting entities. In order to construct a context view for Jekyll its core requirements, as given in [Jekyll's Features](#main-features), are to be combined with external entities. -According to Rozanski and Woods[[1]](#bibliography) an external entity of a system is any system, organization, or person with which the system interacts. +According to Rozanski and Woods[[1]](#jekyll-bibliography) an external entity of a system is any system, organization, or person with which the system interacts. The relevant entities are grouped in three relevant categories: [Internal Systems](#internal-systems), [External Systems](#external-systems) and [Classes of People](#classes-of-people). ### Internal Systems @@ -238,7 +239,7 @@ The rough dependencies between the different layers in the figure are denoted by **Figure 3** - *Structure Model* ### Common Processing -According to Rozanski and Woods[[1]](#bibliography) any large system will benefit from identifying and isolating common processes into separate code modules that are used throughout the system. +According to Rozanski and Woods[[1]](#jekyll-bibliography) any large system will benefit from identifying and isolating common processes into separate code modules that are used throughout the system. Jekyll has isolated common processing into separate code modules of which some are described below. * **Stevenson**: @@ -292,7 +293,7 @@ Travis CI will also check on code style with [Rubocop](https://github.com/bbatso If a test fails or the code doesn't satisfy the [GitHub style guide](https://github.com/styleguide/ruby) for Ruby, the pull request will not be merged. ### Codeline Organization -A codeline is defined by Rozanski and Woods[[1]](#bibliography) as a particular version of a set of source code files with a well-defined organizational structure. +A codeline is defined by Rozanski and Woods[[1]](#jekyll-bibliography) as a particular version of a set of source code files with a well-defined organizational structure. This structure includes elements such as the directory structure, but also the utilities needed to test and release a build. Because the organization of the tests was already discussed in the section [*Standardization of Testing*](#standardization-of-testing), this section will mainly describe the organization of the source files and how the project is built and released. @@ -486,8 +487,8 @@ The other 80% is spent on rendering collections. Time spent on rendering permalinks is negligible compared to the rendering of pages, posts and collections. -![Diagram render](./images/measurements/2-render-process.png) - +
+![Diagram render](./images/measurements/2-render-process.png) **Figure 8** - *Time delay caused by render processes* When investigated further, it is found that in the collection rendering process 67% of the time is used by the `place in layout` process as shown in [Figure 9a](#figure9a). @@ -495,14 +496,13 @@ Looking into that it is concluded that by far the most time can be gained by imp Especially the `place in layout` process. This fact is illustrated by [Figure 9b](#figure9b). - - -Figure 9(a) - Time delay caused by collection renderer processes - - - +
+![](images/measurements/3-collection-render.png) +**Figure 9(a)** _Time delay caused by collection renderer processes_ -Figure 9(b) - Place in layout rendering processes +
+![](images/measurements/4-render-place.png) +**Figure 9(b)** - _Place in layout rendering processes_ ### Parallelizability @@ -552,6 +552,7 @@ Jekyll's community has been warm and welcoming, providing beginning contributors *Are you new to the open source community or simply interested in contributing to Jekyll? Have a look at [Jekyll](https://github.com/jekyll/jekyll) and don't be afraid to propose small changes as the Jekyll community will give you thorough feedback on your proposed contributions and will help you along your journey.* +
## Bibliography **[1]** Nick Rozanski and Eoin Woods. 2011. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley From 22fe44fa5d1b8172d92d8886c974b16a68cd4514 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 21:32:28 +0100 Subject: [PATCH 14/18] [joomla] images/code/tables in pandoc compatible markdown. [joomla] added missing image. --- chapters/joomla/images/path-to-cms.png | Bin 0 -> 47489 bytes chapters/joomla/index.md | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 chapters/joomla/images/path-to-cms.png diff --git a/chapters/joomla/images/path-to-cms.png b/chapters/joomla/images/path-to-cms.png new file mode 100644 index 0000000000000000000000000000000000000000..577f3ab8485427eb6c62d9af66ec388a40a9c1d3 GIT binary patch literal 47489 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

Dn?rm-ovt9-q#vXGB=$*-wBM)8mER4^RPDzC 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 +![](images/Joomla-website.png) + **Remy Kabel, Panagiotis Mitsis, Michail Papadimitriou, Nikolaos Stekas** @@ -164,7 +165,7 @@ With a slightly dim face he continues, "Joomla is not the only city delivering p * Contao - Free Content CMS, specializes in back-office and front-office accessibility. * Modx - Open-Source CMS, awarded Packt Publishing's Most Promising Open Source Content Management System in 2007. -![The Path to CMS](http://michaellobry.com/wordpress/wp-content/uploads/2012/07/Flow-chart-Wordpress-vs-Joomla-vs-Drupal-Matrix-compare.png) +![The Path to CMS](images/path-to-cms.png) _**Figure:** A typical path to decide between the main competitors in the world of CMS_ From 5106ef0f189ee198b7ecaf6d1e58bb213ca6c9e0 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Tue, 12 Jan 2016 22:39:05 +0100 Subject: [PATCH 15/18] [vagrant] images/code/tables in pandoc compatible markdown. --- chapters/vagrant/index.md | 66 ++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/chapters/vagrant/index.md b/chapters/vagrant/index.md index b209532..f63b5be 100644 --- a/chapters/vagrant/index.md +++ b/chapters/vagrant/index.md @@ -8,8 +8,10 @@ chapter: true # Vagrant: Development environments made easy ![](images/logo_vagrant.png "Vagrant Logo") + ![](images/Team.png "Authors") + **Abstract** @@ -70,7 +72,8 @@ These entities will be presented and discussed in the *context view*. The number of different stakeholders in general is large and in reality it will be challenging to meet all the requirements and needs of the different stakeholders. The following diagram shows a visual overview of the stakeholder analysis of Vagrant. -![](images/VagrantStakeholder.png "Types of stakeholders for Vagrant") +![](images/VagrantStakeholder.png) +_Types of stakeholders for Vagrant_ As already mentioned in the [Introduction](#introduction), the main backer of Vagrant is Mitchell Hashimoto and his company HashiCorp. At the moment, HashiCorp handles the development, required investments, marketing, quality control, legal regulations and they provide professional support and training for Vagrant. The documentation is mainly maintained by HashiCorp staff. @@ -102,7 +105,8 @@ Instead they expect to be rewarded in the form of a better system which they can ### Context View To get an overview of the all the external entities interacting with the system, the following diagram is presented. -![](images/ContextView.png "Context View") +![](images/ContextView.png) +_Context View_ Since Vagrant makes use of external virtual machines, it is highly dependent on VM providers like [VMware](http://www.vmware.com/), [Docker](https://www.docker.com/) or Oracle's [VirtualBox](https://www.virtualbox.org/). @@ -123,7 +127,8 @@ In order to understand how Vagrant works, it is necessary to dive into the under The organisation of the modules and their coupling are shown in the picture below, which will be discussed further. -![](images/LayeredView.png "Development View") +![](images/LayeredView.png) +_Development View_ ### Core layer As can be seen from the diagram, the core-layer consist of the most inner kernel of Vagrant. @@ -250,7 +255,8 @@ Users can choose from `ssh` and `winrm` **communication protocols**, which are d Based on the features in the [previous](#mainfeatures) section, the feature model of Vagrant is created and presented below. In the model, the most basic features are mandatory because these features are needed in order to use the tool. However the user has the possibility to choose between the different options with exception to the language as English is the only supported language currently. -![](images/FeatureModel.png "Feature model") +![](images/FeatureModel.png) +_Feature model_ @@ -354,7 +360,8 @@ In the usability view the Command-Line Interface was discussed in terms of usabi In this section the Command-Line Interface will be discussed in terms of functionality. The functionality will be shown in the form of the following diagram. -![](images/FunctionalView.png "Functional view of the Command-line interface") +![](images/FunctionalView.png) +_Functional view of the Command-line interface_ In the diagram above it is clear to see how the various commands of the system relate. The blocks each represent a command available in Vagrant. @@ -450,27 +457,30 @@ To conclude, Vagrant solves the common problem of having differences in the work ## Appendix: Vagrant Commands -

box             manages boxes: installation, removal, etc.
-connect         connect to a remotely shared Vagrant environment
-destroy         stops and deletes all traces of the vagrant machine
-global-status   outputs status Vagrant environments for this user
-halt            stops the vagrant machine
-help            shows the help for a subcommand
-init            initializes a new Vagrant environment by creating a Vagrantfile
-login           log in to HashiCorp's Atlas
-package         packages a running vagrant environment into a box
-plugin          manages plugins: install, uninstall, update, etc.
-provision       provisions the vagrant machine
-push            deploys code in this environment to a configured destination
-rdp             connects to machine via RDP
-reload          restarts vagrant machine, loads new Vagrantfile configuration
-resume          resume a suspended vagrant machine
-share           share your Vagrant environment with anyone in the world
-ssh             connects to machine via SSH
-ssh-config      outputs OpenSSH valid configuration to connect to the machine
-status          outputs status of the vagrant machine
-suspend         suspends the machine
-up              starts and provisions the vagrant environment
-version         prints current and latest Vagrant version
-
+ +Command | | +|---------------|------------------------------------------------------| +box | manages boxes: installation, removal, etc. +connect | connect to a remotely shared Vagrant environment +destroy | stops and deletes all traces of the vagrant machine +global-status | outputs status Vagrant environments for this user +halt | stops the vagrant machine +help | shows the help for a subcommand +init | initializes a new Vagrant environment by creating a Vagrantfile +login | log in to HashiCorp's Atlas +package | packages a running vagrant environment into a box +plugin | manages plugins: install, uninstall, update, etc. +provision | provisions the vagrant machine +push | deploys code in this environment to a configured destination +rdp | connects to machine via RDP +reload | restarts vagrant machine, loads new Vagrantfile configuration +resume | resume a suspended vagrant machine +share | share your Vagrant environment with anyone in the world +ssh | connects to machine via SSH +ssh-config | outputs OpenSSH valid configuration to connect to the machine +status | outputs status of the vagrant machine +suspend | suspends the machine +up | starts and provisions the vagrant environment +version | prints current and latest Vagrant version + From 7042c6e5442b0eea0f9a1f65dc16592b61337b4e Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sat, 23 Jan 2016 20:37:11 +0100 Subject: [PATCH 16/18] Bumpbed version to 1.1 --- index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.md b/index.md index 9836219..48fe0b0 100644 --- a/index.md +++ b/index.md @@ -5,7 +5,7 @@ overview: true creator: - role: Editor - text: Arie van Deursen and Rogier Slag (editors) -date: August 2015, Version 1.1-RC2 +date: August 2015, Version 1.1 --- # Delft Students on Software Architecture: DESOSA 2015 From 2f62bdda78e4e2af48205d05ac2abb569c4e3ddf Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sat, 23 Jan 2016 20:45:29 +0100 Subject: [PATCH 17/18] Ignored pdf-specific files. --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 7d9e55b..fdb0c99 100644 --- a/_config.yml +++ b/_config.yml @@ -2,7 +2,7 @@ highlighter: pygments relative_permalinks: false timezone: UTC -exclude: ['provision.sh','Vagrantfile','README.md','test_links.rb'] +exclude: ['provision.sh','Vagrantfile','README.md','test_links.rb','Makefile','preamble.tex'] # Server settings host: 0.0.0.0 From 01c1b015a66e9b7b04e95d19c5c7a279254a22e5 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 24 Jan 2016 14:36:23 +0100 Subject: [PATCH 18/18] Provided proper ALT caption for all images. --- chapters/angulardart/index.md | 14 +++++++------- chapters/diaspora/index.md | 28 ++++++++++++++-------------- chapters/docker/index.md | 16 ++++++++-------- chapters/jekyll/index.md | 24 +++++++++--------------- chapters/joomla/index.md | 2 +- chapters/kodi/index.md | 20 ++++++++++---------- chapters/openra/index.md | 2 +- chapters/playframework/index.md | 24 ++++++++++++------------ chapters/syncany/index.md | 16 ++++++++-------- chapters/vagrant/index.md | 14 +++++++------- 10 files changed, 77 insertions(+), 83 deletions(-) diff --git a/chapters/angulardart/index.md b/chapters/angulardart/index.md index a4b5f18..aae561e 100644 --- a/chapters/angulardart/index.md +++ b/chapters/angulardart/index.md @@ -9,7 +9,7 @@ chapter: true *Delft University of Technology* -![](images/angulardart_logo.png "AngularDart") +![Angular Dart Logo](images/angulardart_logo.png "AngularDart") **Abstract** @@ -174,7 +174,7 @@ His blog is a good addition on the explanation above and focuses on creating mod The overall tendency is that the main modules in `/lib` are loosely decoupled, with only the Core module binding all the modules together. In the image below, the different modules and the dependencies between them are illustrated by a network analysis graph: Larger modules have more imcoming dependencies whilst small modules rely on such dependencies. -![](images/module _graph_analysis.png) +![Module dependency graph analysis of /lib](images/module _graph_analysis.png) _Module dependency graph analysis of /lib_ AngularDart is written with a Dependency Injection (DI) framework, used for the decoupling of classes, allowing for re-usability. @@ -254,7 +254,7 @@ Connectors are the pieces of code of the architecture that link the elements, or #### External entities AngularDart has "other systems, software programs, hardware devices or other entities with which the system interacts" (Rozanski and Woods, p. 272), or external entities. These can be extracted from the Context view image below. -![](images/Context_view_with_logos.png) +![PIETJE PUK](images/Context_view_with_logos.png) _Context view with logos_ * HTML: AngularDart extends the HTML with several directives, as discussed earlier, such as "ng-class". By using this directive, AngularDart attaches to that DOM element a specified behavior, or it can transform that DOM element (and its children). @@ -279,12 +279,12 @@ Version 2 will also add support for Web Components, which are a collection of fo Angular 2.0 will be built using TypeScript from Microsoft. However, because no browser supports TypeScript natively yet, it will be transpiled (a source-to-source compiler, that *trans*lates code to another programming language) to EcmaScript 5. TypeScript differs from EcmaScript 5 by the addition of types to the language (type annotations, compile-time type checking and type inference). This also counts for classes, interfaces, modules and more. TypeScript is a superset of EcmaScript 5, which means that any current JavaScript program is a valid TypeScript program. However, Angular 2.0 does not offer any backwards compatibility to version 1. -![](images/angular2_transpile_architecture.png) +![Angular 2 Transpile Architecture](images/angular2_transpile_architecture.png) _Angular 2 Transpile Architecture_ In the image above you can see the way the Angular 2 is built. Since the development started on version 2 of Angular, both teams of the JavaScript and Dart version are combined into one team. Version 2 uses the facada pattern, which uses abstracted functions to improve readability of the library and the make a coherent API that is easy to use. Also, the most important reason that these facades are necessary is for the differences between JavaScript and Dart APIs. The transpiler uses these facades to compile the correct API for both languages. Traceur is the component responsible for tranpsiling the code to EcmaScript 5 and Dart. -![](images/angular2_team.png) +![The team of Angular 2](images/angular2_team.png) _The team of Angular 2_ This compiler actually adds an extra option to develop Angular apps. Besides EcmaScript 5, EcmaScript 6, TypeScript and Dart, it is also possible to write Angular apps using the Traceur compiler in EcmaScript 6 and having it transpile to any number of the just mentioned languages. @@ -442,7 +442,7 @@ An application called `cloc` is used to count the number of lines of code and th
-![](images/ratio_loc_comments.png) +![Ratio Comment / LOC](images/ratio_loc_comments.png) _Ratio Comment / LOC_ **Total volume of documentation (word count)** @@ -479,7 +479,7 @@ Finally, general checking metrics are needed to define whether the goal, namely This metric is performed and obtained from GitHub, with the results depicted in the following graph: -![](images/number_of_contributors.png) +![Number of contributors](images/number_of_contributors.png) _Number of contributors_ The number of contributors reached a peak in November 2014, and has steadily declined. This might be just because of start of the AngularJs 2.0, the new framework. diff --git a/chapters/diaspora/index.md b/chapters/diaspora/index.md index 1c89521..779b546 100644 --- a/chapters/diaspora/index.md +++ b/chapters/diaspora/index.md @@ -7,7 +7,7 @@ chapter: true # Diaspora -![](images/Diaspora.png) +![Diaspora Logo](images/Diaspora.png) **Simon Bijl, Tejaswini Dandi, Selman Ercan, Revathi MC**
@@ -49,7 +49,7 @@ In this chapter, we discuss the context, architecture and development of the Dia In 2010 the project was funded as a Kickstarter project, collecting over $200,000. Since 2012 the project is fully based on volunteer work. The image below gives a rough timeline of the project. -![](images/History.PNG) +![_Figure 1: Project History of Diaspora_](images/History.PNG) _Figure 1: Project History of Diaspora_ @@ -61,7 +61,7 @@ In this section, the organisation and analysis of major stakeholders involved in Some of the stakeholder categories identified in Rozanski and Woods are included in this section. As the project currently involves less contributors, few of the stakeholders have multiple roles in the project. -![](images/Stakeholder.png) +![_Figure 2: Stakeholder Analysis of Diaspora_](images/Stakeholder.png) _Figure 2: Stakeholder Analysis of Diaspora_ The Diaspora Foundation, which is part of the Free Software Support Network (FSSN), manages the Diaspora software development. Eben Moglen and the Software Freedom Law Center in turn run the FSSN. The FSSN provides resources to Diaspora development and manages Diaspora's branding, trademark, copyrights, finances and legal assets. Administrators who maintain the system once it has been deployed are called *podmins*, and the system administrators. Users of the network of nodes, mainly different individuals and organisations, can host a pod on their own server. @@ -73,7 +73,7 @@ The most active developer is [Mr. Jonne Haß](https://github.com/jhass) with 187 The process of software architecture involves the concerns of both the internal and the external environment. In addition to the internal stakeholders, it is essential to give a definition of the environment of the system in terms of its relationships and dependencies. This need can be met by creating a context view as part of the architectural description. The figure below gives an overview of Diaspora's interactions with external entities. -![](images/Context view.png) +![_Figure 3: Context view diagram of Diaspora_](images/Context view.png) _Figure 3: Context view diagram of Diaspora_ As seen from the figure, the most essential external dependencies of Diaspora can be categorised into three types: background processing, development environment and decision making tools. As Diaspora relies on a lot of network communication with other servers, background processing jobs are considered essential. This is mainly taken care of by [Redis](http://redis.io/) and [Sidekiq](http://sidekiq.org/). The development environment mainly consists of [GitHub](https://github.com/Diaspora/Diaspora) and [testing](https://wiki.diasporafoundation.org/Testing_workflow) frameworks. The process followed in the development environment is mainly discussed and decided in the central platform [Loomio](https://www.loomio.org/g/EseV9p4X/Diaspora-community), which acts a voting tool. @@ -112,7 +112,7 @@ Mandatory features are present in all products. Optional ones may or may not be selected. Among alternative features only one can be selected, while in OR-features it is possible to select one or more. Below is the feature model diagram of Diaspora. -![](images/feature-model.png) +![_Figure 4: Diaspora Feature Model_](images/feature-model.png) _Figure 4: Diaspora Feature Model_ Most of the included features are mandatory. The OS support for development is an OR-feature; different operating systems are supported and it is possible to develop using more than one at the same time. The data storage feature is an alternative feature; various DBMSs are supported, but only one can be used at the same time. The chatting feature is optional. @@ -121,7 +121,7 @@ Most of the included features are mandatory. The OS support for development is a In order to represent a complex system in a way that is manageable and comprehensible by a range of business and technical stakeholders, the only successful way is to attack the problem from different directions simultaneously. In this approach, the architecture definition is partitioned into a number of separate but interrelated views and perspectives, each of which describes a separate aspect of the architecture. Collectively these views describe the whole system. -![](images/Viewpoint.png) +![_Figure 5: Viewpoint Catalog_](images/Viewpoint.png) _Figure 5: Viewpoint Catalog_ As shown in figure 3, we made use of some of the viewpoints and perspectives defined in Rozanski and Woods in analysing the architecture of Diaspora. In this section we will analyse the Diaspora project using two viewpoints (_Development_ and _Deployment_) and one perspective (_Internationalisation_). @@ -138,12 +138,12 @@ In general, Model (M) is the central component of the MVC Architecture. Models a The operation of this architecture is illustrated in the following figure. -![](images/MVC.png) +![_Figure 6: MVC Architecture_](images/MVC.png) _Figure 6: MVC Architecture_ As explained earlier, Diaspora's architecture consists of modules organised as models, controllers and views. The following figure shows which modules belongs to which part of the MVC architecture. -![](images/Module.png) +![_Figure 7: Modular organisation_](images/Module.png) _Figure 7: Modular organisation_ Redis, resque, mysql2, activerecord are the databases where Diaspora stores data and acts as models for the system. Diaspora uses [Sinatra](http://www.sinatrarb.com/) libraries for creating web applications in Ruby. @@ -155,7 +155,7 @@ Diaspora uses JSXC in the front end of Diaspora's built-in chat feature. Diaspor ##### Source Code Structure Diaspora is a Ruby on Rails application and the module organisation conforms to the Ruby on Rails project structure described in [application structure](http://en.wikibooks.org/wiki/Ruby_on_Rails/Getting_Started/Creating_the_application#The_Application_Structure). The project documentation is provided through [wiki](https://wiki.Diasporafoundation.org/Main_Page) where every single feature is precisely explained using workflows. The documentation on recent changes in the system is provided through the `Changelog.md` file. The Diaspora application structure is shown in the figure below. -![](images/diaspora-codeline.png) +![_Figure 8: The application structure of Diaspora_](images/diaspora-codeline.png) _Figure 8: The application structure of Diaspora_ @@ -222,7 +222,7 @@ This is an important model for the deployment viewpoint. This model defines: The Runtime platform Model of Diaspora is shown below: -![](images/Deployment Diagram.png) +![_Figure 9: Runtime platform Model_](images/Deployment Diagram.png) _Figure 9: Runtime platform Model_ For every pod system few hardware requirements need to be satisfied like size of the RAM, disk space needed type of CPU recommended etc. And the software elements necessary for the pod are database technology, protocols that are needed to use for file transfer, or for security between the layers etc. The Diaspora social network is constructed of a network of pods(nodes), which are hosted by many different individuals and institutions. Each pod is operated with a copy of the Diaspora software which acts as a personal web server. @@ -257,12 +257,12 @@ By default rails-i18n loads all locale files, pluralisation and transliteration #### Major touch points -![](images/Touch points.png) +![_Figure 10: Major Touch points of Diaspora around the globe_](images/Touch points.png) _Figure 10: Major Touch points of Diaspora around the globe_ This concern focuses on identifying all the major touch points (where a person interacts with the system), its scope of services and information that need to be internationalised in each of these touch points and system's region of concerns. The regions plotted in the diagram show the major touch points of the Diaspora system. The data is retrieved by taking the regions of active pod administrators, regions which have their languages translated at higher rate and regions which has its recent updates on languages. -![](images/I18n.png) +![_Figure 11: Scope of internationalisation of Diaspora_](images/I18n.png) _Figure 11: Scope of internationalisation of Diaspora_ The chart is plotted by taking the values on percentage of translated data and proofread data in the Diaspora system. The chart shows clearly the proportion of translated data and proofread data in different languages in the Diaspora system. It can be seen that, though some of the languages has been translated to its maximum extent, there still remains some maintainability concerns in proofreading the translated data and finalising the changes needed to the system. @@ -286,7 +286,7 @@ In this section we evaluate the maintainability of the Diaspora project. We defi The quality profile below is plotted by evaluating the cyclomatic complexity in the Diaspora codebase, through analysing every single line of code by the risk category instead of summation or average median method. Code complexity is analysed using Saikuro, which is a Ruby cyclomatic complexity analyser. When given Ruby source code Saikuro will generate a report listing the cyclomatic complexity of each method found. Some of the Classes/Modules which is under High risk category include `AspectsController`, `ConversationsController`, `PhotosController`, `StatusMessagesController`, `UsersController` and `PeopleController`. Duplication of code attributing to high risk category can be seen in the modules `PeopleController`, `StatusMessagesController`. -![](images/Complexity.png) +![_Figure 12: Quality profile of cyclomatic complexity_](images/Complexity.png) _Figure 12: Quality profile of cyclomatic complexity_ |**Cyclomatic Complexity**|**Risk Category**|**Percentage of code**| @@ -302,7 +302,7 @@ _Figure 12: Quality profile of cyclomatic complexity_ Below is a diagram generated by the CodeClimate plugin running on the Diaspora codebase. It shows the change in the number of classes per risk category over a period of four months, prior to the last release;`Diaspora 0.4.1.2`on October 30th, 2014. -![](images/code-climate-trends.png) +![_Figure 13: CodeClimate Maintainability trends_](images/code-climate-trends.png) _Figure 13: CodeClimate Maintainability trends_ The first thing to note is that only the dark green area is increasing in height, meaning that most of the newly created classes and modules are in the _very low risk_ category. diff --git a/chapters/docker/index.md b/chapters/docker/index.md index 933cbe8..0569a2d 100644 --- a/chapters/docker/index.md +++ b/chapters/docker/index.md @@ -61,10 +61,10 @@ Normally this is done by using virtual machines, but this results in a large ove Docker makes it possible to create isolated environments without this overhead by running the processes in the kernel of the host OS, which eliminates the need for a guest OS. The figures below illustrate the difference between using a virtual machine on the one hand and using Docker on the other. -![](images/variability_vm.png) +![_Traditional Approach to Virtual Environments_](images/variability_vm.png)
_Traditional Approach to Virtual Environments_ -![](images/variability_docker.png) +![_Docker's Approach to Virtual Environments_](images/variability_docker.png)
_Docker's Approach to Virtual Environments_ To run such a container, an image is needed. @@ -80,7 +80,7 @@ To take a closer look at the structure of the Docker project, we first identify The relation between those elements is depicted in Figure [_Component diagram of Docker_](#component-diagram). The subsequent table provides a small description of each element's responsibility.
-![](images/component_diagram.png) +![_Component diagram of Docker_](images/component_diagram.png) _Component diagram of Docker_ Element | Responsibility @@ -101,7 +101,7 @@ However, by using their own interface they are able to drastically reduce the nu The libcontainer project attracted a number of companies to support Docker, such as Microsoft, Google, IBM, Red Hat, and Canonical [[ref]](http://www.zdnet.com/article/docker-libcontainer-unifies-linux-container-powers/).
-![](images/docker-linux-interfaces.png) +![_Virtualization abstraction_](images/docker-linux-interfaces.png) _Virtualization abstraction_ ## Usage Principles @@ -118,7 +118,7 @@ For example, when you have only changed the source code of your application, onl Intermediate layers are cached by Docker, so only the changed layer and all layers on top of that need to be rebuilt.
-![](images/docker-filesystems-multilayer.png) +![_Layered structure of an image_](images/docker-filesystems-multilayer.png) _Layered structure of an image_ @@ -160,7 +160,7 @@ Maintainers are the only persons allowed to merge pull requests and can be found Another big group of stakeholders are the suppliers. Companies offering Docker based services have a big interest in its development. Examples of suppliers are companies that offer Infrastructure as a Service with built-in support for Docker, such as [DigitalOcean](https://www.digitalocean.com/features/one-click-apps/docker/) and [GiantSwarm](https://giantswarm.io), but also [Docker Hub](https://hub.docker.com/), offering tools for building and sharing containers.
-![](images/P_I_curve.png) +![_The Power/Interest curve for Docker_](images/P_I_curve.png) _The Power/Interest curve for Docker_ The [Figure above](#docker-pi) provides an overview of the power versus interest curve, which represents how much power and interest a given stakeholder has in the system. @@ -183,7 +183,7 @@ as shown in the figure displaying the [Modular Structure of Docker](#docker-modu Most of the modules that had their functionality described in Figure [_Component diagram of Docker_](#component-diagram) reside in the core layer of Docker.
-![](images/development-view.png) +![_Modular Structure of Docker_](images/development-view.png) _Modular Structure of Docker_ @@ -203,7 +203,7 @@ Finally, Docker uses both integration tests and unit tests, as indicated by the This layer is represented by a vertical box, because testing occurs in all layers of the system.
-![](images/docker_deps.png) +![_Module Dependencies_](images/docker_deps.png) _Module Dependencies_ Finally, the [Figure above](#docker-dependencies) shows an overview of the dependencies between the most important modules. This graph was generated by statically analyzing the source code. The colors correspond to the colors in the Figure describing the [Modular Structure of Docker](#docker-modular-view): pink nodes are core modules, yellow nodes are domain models and purple nodes are utilities. diff --git a/chapters/jekyll/index.md b/chapters/jekyll/index.md index 7ec5db3..59f5762 100755 --- a/chapters/jekyll/index.md +++ b/chapters/jekyll/index.md @@ -7,7 +7,7 @@ chapter: true # Jekyll - A Simple Static Site Generator -![](images/jekyll-sa-header.png) +![Jekyll Logo](images/jekyll-sa-header.png) **[Joop Aué](https://github.com/JoopAue), [Anton Bouter](https://github.com/abouter), and [Martin Rogalla](https://github.com/MartinRogalla)**
@@ -155,8 +155,7 @@ High interest and low power stakeholders need to be kept up-to-date with develop Low interest and low power stakeholders should be monitored and not flooded with excessive communication. The Power/Interest Grid for the Jekyll project is displayed in [Figure 1](#figure1). -
![](./images/power-interest-grid.png) - +![Figure 1: Power/Interest Grid](./images/power-interest-grid.png) **Figure 1** - *Power/Interest Grid* It is immediately clear that Parker Moore has great power and interest as he is the owner of the project. @@ -209,8 +208,7 @@ Furthermore, ideas for features and the future of Jekyll originate from the comm In the context diagram in [Figure 2](#figure2), a clear illustration is given of Jekyll's capabilities and its interaction with external entities. It does not go into the system's details in terms of how it should be built, but rather gives an abstract and high level view of the system. -![](./images/context-diagram.png) - +![Figure 2: Context Diagram](./images/context-diagram.png) **Figure 2** - *Context Diagram* ## Developer's Perspective @@ -234,8 +232,7 @@ The structure consists out of the following five layers ordered by abstractness The rough dependencies between the different layers in the figure are denoted by arrows. -![](./images/structure-model.png) - +![Figure 3: Structure Model](./images/structure-model.png) **Figure 3** - *Structure Model* ### Common Processing @@ -312,8 +309,7 @@ This is a very large number of files for a single folder and these should prefer One could for example place the files *site.rb*, *post.rb*, *page.rb* and *document.rb* in a new subdirectory *site* to organize the *lib/jekyll* folder. -![](./images/fileStructure.png) - +![Figure 4: Directory Structure](./images/fileStructure.png) **Figure 4** - *Directory Structure* Some other notable subdirectories are *features*, *script*, *site* and *test*. @@ -417,8 +413,7 @@ The second constraint is that data should also have either a page, post or colle Furthermore, formats like _LaTeX_ and _Math symbols_ require specific parsers to be used. -![](./images/featureDiagram.png) - +![Figure 5: Feature Diagram](./images/featureDiagram.png) **Figure 5** - *Feature Diagram* ### Variation Points @@ -467,8 +462,7 @@ Building a site starts with the `command` class that calls the `site.process` me This method calls the methods displayed in [Figure 6](#figure6) subsequently: -![](images/processes.png) - +![Figure 6: Processes in Jekyll](images/processes.png) **Figure 6** - *Processes in Jekyll* ### Metrics @@ -497,11 +491,11 @@ Especially the `place in layout` process. This fact is illustrated by [Figure 9b](#figure9b).
-![](images/measurements/3-collection-render.png) +![**Figure 9(a)** _Time delay caused by collection renderer processes_](images/measurements/3-collection-render.png) **Figure 9(a)** _Time delay caused by collection renderer processes_
-![](images/measurements/4-render-place.png) +![**Figure 9(b)** - _Place in layout rendering processes_](images/measurements/4-render-place.png) **Figure 9(b)** - _Place in layout rendering processes_ diff --git a/chapters/joomla/index.md b/chapters/joomla/index.md index c6bf6d9..e4ca219 100644 --- a/chapters/joomla/index.md +++ b/chapters/joomla/index.md @@ -7,7 +7,7 @@ chapter: true # Joomla -![](images/Joomla-website.png) +![Joomla Logo](images/Joomla-website.png) **Remy Kabel, Panagiotis Mitsis, Michail Papadimitriou, Nikolaos Stekas** diff --git a/chapters/kodi/index.md b/chapters/kodi/index.md index bbfe1e4..92a7b2d 100644 --- a/chapters/kodi/index.md +++ b/chapters/kodi/index.md @@ -9,7 +9,7 @@ chapter: true *A Report On the Journey of Team Kodi* -![](images/Kodi.png) +![Kodi Logo](images/Kodi.png) *Authors: [Kaj Dreef](https://www.github.com/kajdreef), [Menno van der Reek](https://www.github.com/mvanderreek), [Koen Schaper](https://www.github.com/kpschaper), [Maarten Steinfort](https://www.github.com/maartensteinfort)* @@ -57,19 +57,19 @@ Furthermore, the Kodi player supports numerous [add-ons](http://kodi.wiki/view/O Originally, the Kodi software was developed for the XBOX game, a game console, the then purporting [XBOX Media Center](http://en.wikipedia.org/wiki/Kodi_(software)) (XBMC), that increased popularity whereby the XBMC foundation decided to expand their software to other platforms. Currently, the software is available for Windows, OSX, iOS, Android, and Linux. Since the name was still based on XBOX, XBOX Media Center, the foundation decided in 2014 to change the name to "Kodi" Entertainment Center. From this point we will continue naming the project Kodi. Besides that, the software has always been open-source and published for free. -![](images/Kodi-home.png) +![_Figure 1: The attractive design of the Kodi Media Player from the outside_](images/Kodi-home.png) _Figure 1: The attractive design of the Kodi Media Player from the outside_ ### From the inside... At the other side, in the backoffice, the developers are collaborating with each other to continuously improving the source code of the Kodi Media Player. Starting with exposing the prominent stakeholders by diving into Kodi's repository on Github. The stakeholders with the most influence on the course of the media player software are the developers controlled by the [board members](http://kodi.wiki/view/Team_Kodi/Members), consisting of experienced developers and maintainers. Secondly, the [context view](http://www.viewpoints-and-perspectives.info/home/viewpoints/context/) highlights the dependencies, relationships and interactions with its environment. The [development view](http://www.viewpoints-and-perspectives.info/home/viewpoints/development/) describes Kodi's independent 'modular' architecture that supports the development and maintenance process. These modules can be described as well-ordered ['building blocks'](#development-view---the-building-blocks-of-kodi) in a large construction. Subsequently the [functional](http://www.viewpoints-and-perspectives.info/home/viewpoints/functional-viewpoint/) view focuses more on these 'building blocks' and how they operate and interact. Although Kodi might seem similar on many of the different operating systems from the outside, the differing features are investigated from the inside in the variability view. Ultimately with the help of the evolution perspective the roadmap to the next version, called ['Isenguard'](http://kodi.tv/kodi-15-0-alpha-1-road-to-isengard/), is discussed and evaluated. -![](images/backofficeKodi.png) +![_Figure 2: The backoffice of the Kodi community; working on the continuous](images/backofficeKodi.png) _Figure 2: The backoffice of the Kodi community; working on the continuous enhancement of the media player_ ## Stakeholders - ***The brainiacs behind your TV screen*** The Kodi Foundation comprises a [large community](https://github.com/xbmc/xbmc/network/members) of hundreds software engineers, architects, developers and testers. They work on a voluntary base, as most of them have another job and no income is generated since Kodi is freeware. The search for detecting and identifying the most prominent stakeholders and capture their workflow led to the conclusion that [a limited group of developers](https://github.com/orgs/xbmc/people) have the right to approve or deny the potential contributions and pull requests, see Figure 3. However, by looking deeper into their profile history on Github, it appeared that these developers have 'earned their rights' by enormous amounts of commits after a certain period actively participating to the continuous improvement process of the software. -![](images/fourLargestCommitters.png) +![_Figure 3: Four most present integrators within the community_](images/fourLargestCommitters.png) _Figure 3: Four most present integrators within the community_ Although most of Kodi's stakeholders fit within the structure of [Rozanski and Woods](http://www.viewpoints-and-perspectives.info/home/stakeholders/), for classifying stakeholders, some of them act as more than one stakeholder type. A classification of the most prominent stakeholders is discussed below. @@ -88,7 +88,7 @@ Since Kodi is dependent on their users, they embrace them to contribute to the c By zooming in on the Kodi source code, the dependencies, interactions and relationships with the environment do appear. As can be seen in Figure 4, the Kodi software is supported on six different (operating) systems, which variates from high-specification desktop computers to low-specification computers with the purpose of only running the media player. In the context view, the behaviour of the media player and its environment are captured and displayed, as described in [Rozanski Woods](http://www.viewpoints-and-perspectives.info/home/viewpoints/context/). -![](images/kodiContextView2.png) +![_Figure 4: Context view of Kodi_](images/kodiContextView2.png) _Figure 4: Context view of Kodi_ It can be noted that Kodi supports multiple operating systems. It relies on these operating systems to abstract the communication with the hardware away. For other features external libraries are used, sometimes multiple libraries to be able to support all these operating systems. Using an automated build-system, the right libraries are picked for the targeted operating system. @@ -112,7 +112,7 @@ This is one of Kodi's general guidelines that actually fits in the [Rozansky and Starting with discussing the [modular design](#modular-design) that form the 'building blocks' of Kodi and illustrate these with an overview to gain a deeper understanding of the architecture of Kodi. Furthermore, the dependencies of and interactions of the modules and layers are discussed. -![](images/KodiDevelopmentView.png) +![Figure 5: Kodi's 'building blocks'](images/KodiDevelopmentView.png)
_Figure 5: Kodi's 'building blocks'_ ### Modular Design @@ -158,7 +158,7 @@ However, this time it is more focussed on the underlying layer that drives most In Figure 6 a simplified model is given of the functional view of Kodi. Only the key-features are shown here to keep the figure as simple as possible, but still show how the feature interact with each other to deliver the user the best media entertainment system possible. -![](images/FunctionalView2.png) +![_Figure 6: Functional view of Kodi_](images/FunctionalView2.png) _Figure 6: Functional view of Kodi_ **Players**: The 'players', this is the part of Kodi where the user can actually play/open its content. This is of course the feature the user will use most often, because of this it is important that it uses an accessible GUI, resulting in a user friendly player. The players uses other features to get the content to the screen like the codecs, or their own dedicated library. @@ -173,7 +173,7 @@ In the functional view a discovery has taken place regarding the depth of the fe ## Variability View - ***The effort to broaden audience*** Nowadays it is not rare that people have multiple devices used for different purposes, varying from desktop computers and notebooks to tablets and smartphones. For example, lets look at the [Raspberry Pi](http://raspberrypi.org), which is a low-spec computer operating on a simplified version of Linux. Users can profit from prices that are as low as the specs, resulting in the necessity for software that fits its capacity. The developers of Kodi decided to also focus on the Raspberry Pi, while they already support multiple Linux version. Although, to make Kodi available for a device with lower specifications, it will result in that some features will be left out because of hardware limitations. These ''variability points'' can be found in Figure 7. This also applies for Apple OS X, iOS, Linux, Android, and Microsoft Windows operating systems. This leads to the emerging question; what is the price to reach a broad audience? -![](images/variabilityView.png) +![_Figure 7: Feature variability model of the Kodi Media Player_](images/variabilityView.png) _Figure 7: Feature variability model of the Kodi Media Player_ The main features of the system are investigated along with the perspective of the stakeholders (see section 7: [functional view](#functional-view---more-about-the-features)). Every software system has main features, since these also comprises the core activities. Also Kodi has published their main features on their [Wiki](http://kodi.wiki/view/Features_and_supported_formats). Based on the tens of different features that Kodi counts a variability model is created, see Figure 7. This model displays the cohesion of the features within Kodi. There are 5 different 'abstract' features created; Music, Pictures, Videos, Settings, and Operating System. Subsequently, these are stripped down until the core features have emerged. @@ -226,7 +226,7 @@ During the course of the Software Architecture trip, on February 28, 2015 board Currently Kodi supports a lot of different platforms, which is accompanied with the continuous increasing of device types. As it would become impossible to keep [supporting all hardware devices](http://kodi.wiki/view/Supported_hardware) a selection is made whereby the scope is moved and redefined during updates; the [Evolution Perspective](http://www.viewpoints-and-perspectives.info/home/perspectives/evolution/). The effort of maintaining these legacy devices, magnitude of the change divided by the time required, would not weight up to the value gained. For this reason the need to drop support in order to keep evolving Kodi and accept newer hardware, which also can be seen in the changes involved in update Isenguard (see Figure 8). The other way the developers try to make Kodi better maintainable is by refactoring major parts of the code and moving it to become add-ons. This allows the developers to add future features to the core, while trying at the same time to keep the core as simple as possible and better meeting the immediate needs. -![](images/updateChanges.png) +![_Figure 8: Most important changes of Kodi's Isenguard update_](images/updateChanges.png) _Figure 8: Most important changes of Kodi's Isenguard update_ #### Ease of Evolution @@ -298,7 +298,7 @@ We are armed with the different architectural tools, an experience richer. Kodi' 15. Wait for the reaction of at least 2 of the main integrators (for example [*mkortstiege*](https://github.com/mkortstiege) or [*MartijnKaijser*](https://github.com/MartijnKaijser)). 16. When they call the keyword "*Jenkins build this please*", their build bot named Jenkins is checking if the code runs with your patch (see Figure 8) - ![](images/kodi-jenkins.png) + ![Figure 8: Jenkins the build bot](images/kodi-jenkins.png) _Figure 8: Jenkins the build bot_ 17. When you receive a message that your Pull Request is accepted; congratulations. diff --git a/chapters/openra/index.md b/chapters/openra/index.md index 21b41e6..945fe0c 100644 --- a/chapters/openra/index.md +++ b/chapters/openra/index.md @@ -10,7 +10,7 @@ chapter: true **By Jasper Abbink, Peter Evers, Nick ten Veen, Joost Verdoorn** *Delft University of Technology* -![](images/soviet-logo.png) +![Open RA Logo](images/soviet-logo.png) **Abstract** diff --git a/chapters/playframework/index.md b/chapters/playframework/index.md index 3925211..bcbcb3d 100644 --- a/chapters/playframework/index.md +++ b/chapters/playframework/index.md @@ -13,7 +13,7 @@ By: [Herman Banken](https://github.com/hermanbanken), [Ruben Verboon](https://github.com/rubenverboon), and [Vincent van Mieghem](https://github.com/vivami) -![](images/play.png) +![Play Logo](images/play.png) **Abstract** @@ -88,7 +88,7 @@ View templating is brought out of the project, in the form of [Twirl](https://gi Some features are not modularised and live in the play-core module. These include routing, MVC logic, form validation, localisation, and several utilities. -![](images/module-diagram/modules-main.png) +![_Module View of Play_](images/module-diagram/modules-main.png) _Module View of Play_ The diagram above shows most of the modules and their dependencies. @@ -140,7 +140,7 @@ The fact that Play has less questions could mean that Play is easier to use than Both seem reasonable: Play is very well documented, and Spring MVC is widely adopted due to Spring, convincing people to use that whole platform. Compared to their estimated sizes (see [jobs](#what-is-next-for-me) below) however, Play has relatively many questions. -![](images/frequenogramStackoverflow.png) +![_Play Questions on StackOverflow_](images/frequenogramStackoverflow.png) _Play Questions on StackOverflow_ Getting exact usage numbers is hard however, as Play does not advertise itself in response headers. @@ -156,7 +156,7 @@ Our metric here, the amount of job openings, relates to the question of how adop The more jobs we found, the more adopted Play is. We looked at the amount of jobs on [Indeed](http://indeed.com), for which each of the frameworks is listed. -![](images/job.png) +![_Play Job Openings_](images/job.png) _Play Job Openings_ From this we can see that there exist frameworks that are far more adopted by employers, concluded from the amount of job openings. @@ -198,7 +198,7 @@ This service is configured to automatically build certain branches (such as 'mas Also all pull requests will be automatically build, or can be rebuild by using a certain keyword in a github pull request comment ([`@play-pull-request-validator try again`](https://github.com/playframework/playframework/pull/4007#issuecomment-76663971)). After the build all unit and integration tests are run and the result is reflected on GitHub, marking the pull request as ready to merge, or indicates whether the build or tests are failing. -![](images/jenkins.png) +![_Jenkins integration with GitHub_](images/jenkins.png) _Jenkins integration with GitHub_ ### Releases @@ -252,13 +252,13 @@ Other stakeholders can be identified. Together with their roles they are listed The figure below shows an overview of the stakeholders discussed in the table above, and also shows the relation of Typesafe's other projects with respect to Play. -![](images/stakeholder_diagram.png) +![_Play Stakeholders_](images/stakeholder_diagram.png) _Play Stakeholders_ In the diagram below, the stakeholders' power with respect to their interest are shown in a [Power/Interest Grid](http://www.mindtools.com/pages/article/newPPM_07.htm). Stakeholders in the top right are the most important stakeholders of the system. -![](images/interest-power.png) +![_Play Power/Interest Grid_](images/interest-power.png) _Play Power/Interest Grid_ ### Context View @@ -279,7 +279,7 @@ There exist a number of web frameworks which can be considered as competitors. T The diagram below explains context and the dependencies and relations between the discussed components. -![](images/play-context-view.png) +![_Play Context View_](images/play-context-view.png) _Play Context View_ ## Future[Play] @@ -297,7 +297,7 @@ The Manifesto is really about providing a coherent approach and vocabulary to th Touching the core of modern Software Architecture, it defines 4 main aspects: _"we need to build: Responsive, Resilient, Elastic, and Message Driven systems"_. -![](images/reactive-traits.png) +![_Reactive Manifesto_](images/reactive-traits.png) _Reactive Manifesto_ With Play, Typesafe addresses these aspects and makes it @@ -315,7 +315,7 @@ Thist allows the main HTTP *execution context* to handle new requests, even when The image below [by Julien Richard-Foy](https://www.packtpub.com/books/content/handling-long-running-requests-play) (major contributor of Play) illustrates this: the execution of code is interleaved, while the threaded model would block the entire thread. -![](images/reactive/execution-models.png) +![_Threaded vs evented execution models_](images/reactive/execution-models.png) _Threaded vs evented execution models_ Until this point, this section could have been about NodeJS or any other modern platform as well. @@ -346,7 +346,7 @@ Julien Richard-Foy visualised this in the image below. The two white horizontal boxes represent the execution contexts with both two threads. Using execution contexts, related work can be grouped, keeping the default context fast and responsive while still waiting for legacy blocking operations on other threads, in a transparent way. -![](images/reactive/2400OS_05_08.png) +![_Execution Contexts_](images/reactive/2400OS_05_08.png) _Execution Contexts_ However, in general, blocking operations should be prevented. @@ -376,7 +376,7 @@ These streams can be long running, but the tasks themselves are small, this is i Using this pattern Play can also handle thousands of concurrent long-running requests. This is for example shown in this small [chatting application](https://github.com/matthiasn/sse-chat/issues/10#issuecomment-42857305) of Matthias Nehlsen (@matthiasn). Having a single server handling these amounts of requests is certainly not trivial using a solely thread-based model. -![](images/sse-chat2.png) +![_Chat application_](images/sse-chat2.png) _Chat application_ #### Akka diff --git a/chapters/syncany/index.md b/chapters/syncany/index.md index 12771fd..766d18e 100644 --- a/chapters/syncany/index.md +++ b/chapters/syncany/index.md @@ -67,7 +67,7 @@ provide access to storage, power the encryption that makes Syncany secure, and aid the user in deploying the Syncany application. Figure 1 depicts the context of Syncany, including systems, services, people, and more. -![](images/context-view.png) +![__Figure 1__: Context diagram of the Syncany project.](images/context-view.png) __Figure 1__: Context diagram of the Syncany project. #### The ecosystem @@ -218,7 +218,7 @@ visualizes the core functionality of Syncany in a single image. It shows the repositories, remote file synchronization, repository sharing and storing secure content on unsecured remote locations. -![](images/functionality.png) +![__Figure 2__: Syncany core functionality summarized.](images/functionality.png) __Figure 2__: Syncany core functionality summarized. ### The Syncany blueprints @@ -239,7 +239,7 @@ structure enables Syncany to grow as a software product line; keeping shared implementation in a single place, while being extensible enough to add new storage solutions, interfaces, etc. -![](images/module-structure-model.png) +![__Figure 3__: Module Structure Model of Syncany, based on Rozanski and Woods ](images/module-structure-model.png) __Figure 3__: Module Structure Model of Syncany, based on Rozanski and Woods [[1]](#references). #### The bricks and mortar @@ -366,7 +366,7 @@ storage. The latter action prevents any inconsistencies that may have arisen bet clients after a cleanup operation. Figure 4 below summarizes the evolution that this feature has undergone. -![](images/cleanup.png) +![__Figure 4__: Feature evolution for the Cleanup feature.](images/cleanup.png) __Figure 4__: Feature evolution for the Cleanup feature. #### Transactions to compensate for your unstable Internet @@ -401,7 +401,7 @@ has been reached. The uploading of these transactions is then pipelined with the further indexing of changes. Figure 5 below shows the evolution of the transactions feature. -![](images/transactions.png) +![__Figure 5__: Feature evolution for the Transactions feature.](images/transactions.png) __Figure 5__: Feature evolution for the Transactions feature. ### Time for your check-up, Syncany @@ -447,7 +447,7 @@ changed and tested and this measure raises no real concern for too complex methods or classes. Figure 6 shows an overview of the complexity of the methods for the three main Syncany projects. -![](images/barplotMethods.png) +![__Figure 6__: Method complexities for Syncany's main projects.](images/barplotMethods.png) __Figure 6__: Method complexities for Syncany's main projects. #### Keep testing it @@ -474,7 +474,7 @@ types of tests classes in the three main projects have, it becomes apparent that Syncany does not yet have both tests for a majority of its classes, as shown in Figure 7. -![](images/coverage.png) +![__Figure 7__: Coverage data on a class level for the three main Syncany](images/coverage.png) __Figure 7__: Coverage data on a class level for the three main Syncany projects. In addition to not being extensive enough, the quality of the test suite is also @@ -485,7 +485,7 @@ show the coverage on a method level, in which we plot the percentage of lines covered by some test in a method. "Barely covered" represents 1-49% coverage, "Covered" represents 50-79% and "Covered well" represents 80+%. -![](images/coverageClasses.png) +![__Figure 8__: Coverage data on a method level for the three main Syncany](images/coverageClasses.png) __Figure 8__: Coverage data on a method level for the three main Syncany projects. #### Do not get stuck in the past diff --git a/chapters/vagrant/index.md b/chapters/vagrant/index.md index f63b5be..f400a13 100644 --- a/chapters/vagrant/index.md +++ b/chapters/vagrant/index.md @@ -7,10 +7,10 @@ chapter: true # Vagrant: Development environments made easy -![](images/logo_vagrant.png "Vagrant Logo") +![Vagrant Logo](images/logo_vagrant.png) -![](images/Team.png "Authors") +![Authors](images/Team.png) **Abstract** @@ -72,7 +72,7 @@ These entities will be presented and discussed in the *context view*. The number of different stakeholders in general is large and in reality it will be challenging to meet all the requirements and needs of the different stakeholders. The following diagram shows a visual overview of the stakeholder analysis of Vagrant. -![](images/VagrantStakeholder.png) +![_Types of stakeholders for Vagrant_](images/VagrantStakeholder.png) _Types of stakeholders for Vagrant_ As already mentioned in the [Introduction](#introduction), the main backer of Vagrant is Mitchell Hashimoto and his company HashiCorp. At the moment, HashiCorp handles the development, required investments, marketing, quality control, legal regulations and they provide professional support and training for Vagrant. @@ -105,7 +105,7 @@ Instead they expect to be rewarded in the form of a better system which they can ### Context View To get an overview of the all the external entities interacting with the system, the following diagram is presented. -![](images/ContextView.png) +![_Context View_](images/ContextView.png) _Context View_ Since Vagrant makes use of external virtual machines, it is highly dependent on VM providers like [VMware](http://www.vmware.com/), [Docker](https://www.docker.com/) or Oracle's [VirtualBox](https://www.virtualbox.org/). @@ -127,7 +127,7 @@ In order to understand how Vagrant works, it is necessary to dive into the under The organisation of the modules and their coupling are shown in the picture below, which will be discussed further. -![](images/LayeredView.png) +![_Development View_](images/LayeredView.png) _Development View_ ### Core layer @@ -255,7 +255,7 @@ Users can choose from `ssh` and `winrm` **communication protocols**, which are d Based on the features in the [previous](#mainfeatures) section, the feature model of Vagrant is created and presented below. In the model, the most basic features are mandatory because these features are needed in order to use the tool. However the user has the possibility to choose between the different options with exception to the language as English is the only supported language currently. -![](images/FeatureModel.png) +![_Feature model_](images/FeatureModel.png) _Feature model_ @@ -360,7 +360,7 @@ In the usability view the Command-Line Interface was discussed in terms of usabi In this section the Command-Line Interface will be discussed in terms of functionality. The functionality will be shown in the form of the following diagram. -![](images/FunctionalView.png) +![_Functional view of the Command-line interface_](images/FunctionalView.png) _Functional view of the Command-line interface_ In the diagram above it is clear to see how the various commands of the system relate.

FeeEsS!tv@w+ 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 ae6X*%INz}7e9Bn{An Date: Tue, 12 Jan 2016 08:43:22 +0100 Subject: [PATCH 09/18] [openra] figures and tables ready for pdf/epub. --- chapters/openra/images/soviet-logo.png | Bin 25914 -> 19343 bytes chapters/openra/index.md | 17 ++++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/chapters/openra/images/soviet-logo.png b/chapters/openra/images/soviet-logo.png index 5c7a3682a259e93d742d1e1e9eb1215c7c1ab938..b158fdcb198ff6fd055034f786a3045b4f211856 100644 GIT binary patch literal 19343 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 C!-3}j diff --git a/chapters/openra/index.md b/chapters/openra/index.md index 1c36f01..21b41e6 100644 --- a/chapters/openra/index.md +++ b/chapters/openra/index.md @@ -11,7 +11,7 @@ chapter: true *Delft University of Technology* ![](images/soviet-logo.png) - + **Abstract** @@ -74,8 +74,8 @@ A summary of the project's stakeholders can be found in [Table 1](#t1). - Type | Entities | -|---|---| + Type | Entities | +|----------------|------------------------------------------------------| | Developers | @[pchote](https://github.com/pchote) , @[Mailaender](https://github.com/Mailaender), @[obrakmann](https://github.com/obrakmann), @[chrisforbes](https://github.com/chrisforbes) | | Users | hundreds of players around the world, [ModDB](http://www.moddb.com/games/openra) | | Suppliers | .NET/Mono, [Westwood](http://nl.wikipedia.org/wiki/Westwood_Studios), [Electronic Arts](http://www.ea.com/) | @@ -304,7 +304,7 @@ OpenRA has several important features that make up the engine. Feature | Description ------------ | ----------- +----------- | --------------------------------------------------- OS | Operating system where the program runs on VM | Virtual Machine where compiled binaries are executed on Mod | Mod currently being played. This can be changed at runtime by selecting a different mod @@ -388,7 +388,8 @@ At compile-time, the Makefile will make sure that for example the map editor wil ## program targets CORE = rsdl2 rnull game utility TOOLS = editor tsbuild crashdialog -VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || echo git-`git rev-parse --short HEAD`) +VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD \ + 2>/dev/null || echo git-`git rev-parse --short HEAD`) ``` The map editor is useful for modders and the build details are also in the Makefile where the developer could specify the environment details such as the mod locations, libraries and icons. @@ -398,8 +399,10 @@ editor_SRCS := $(shell find OpenRA.Editor/ -iname '*.cs') editor_TARGET = OpenRA.Editor.exe editor_KIND = winexe editor_DEPS = $(game_TARGET) $(mod_common_TARGET) -editor_LIBS = System.Windows.Forms.dll System.Data.dll System.Drawing.dll $(editor_DEPS) thirdparty/Eluant.dll -editor_EXTRA = -resource:OpenRA.Editor.Form1.resources -resource:OpenRA.Editor.MapSelect.resources +editor_LIBS = System.Windows.Forms.dll System.Data.dll System.Drawing.dll \ + $(editor_DEPS) thirdparty/Eluant.dll +editor_EXTRA = -resource:OpenRA.Editor.Form1.resources \ + -resource:OpenRA.Editor.MapSelect.resources editor_FLAGS = -win32icon:OpenRA.Editor/OpenRA.Editor.Icon.ico ``` From 9dcb8d30c69cb6260584a7ca01071114d5f324a8 Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Sun, 10 Jan 2016 21:33:13 +0100 Subject: [PATCH 10/18] [play] Images and tables working for pdf/epub generation. --- .../playframework/images/reactive-traits.png | Bin 145011 -> 100211 bytes chapters/playframework/index.md | 35 ++++++++++++------ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/chapters/playframework/images/reactive-traits.png b/chapters/playframework/images/reactive-traits.png index 9e719f54b84bd46459630ecb2e4156068b709c82..8b5974aa8b56f23bcd83c5946126457bcf28df24 100644 GIT binary patch literal 100211 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 %xMkRvfQ zuc#kj9F#TC-}$z&+x4@DaNhKxvtCW~>Qo!V0Au_ycaGXwRr@))}$kAs@T4EST!o0J5bqttCR;O5OGxstr+QIG3a+TGO zeHJJ~rK-5lx}M<0BD?wO7^xJCC^Lg4O}!lC2l*HV zRI5|HbH&Tq0J`Cn*gD1H@mBC$WDkYGG2rt&Td39tSD@-3ZaV?=OwI~F4E@V-sJOl9 zAUpi!{b|9W-etFY+XD~g5_M@AX_O*f$*(lT#D6*3k@9`Law5}mS^91UwL`yE=%JnZ zi$fQN)FYj1QAVNiI9?V1ixX4tss`@DG6X^fDBYIjctgx_p-41an-i@J6-J5 zQi;| zsxuW4vPA0nXI>p5p!U`Jj2d2usV~pISc_1*qm8?zt<)7qh94qyHSf{Aqd%%xxX;rf zAm!Hc!nheEW5%I#Aua`yDWB~6C5A&wHk%H?wXofkvufqGw6zY222UX@7UuHorxwJ< zOZQ5IavQOpe5y8HsJ+him_dfJY)2YzS|9P%i}yu&p+egq836xM0$<1$ddGYimJ$q@ zll(%nw+*(}bA$0MM{@mqzAMDVe5~~THT(;vC}xN;diqtxhX4%qV^)VnQ)dU9%7O+@Z^P5Vb{U+1>Y$YB z&d{RjJP31l{ z@WHWc{z6WV3aqat=G{@>?G!xJNCf|q7EN~REB4xY{aLT5gTsR#18TGI>B*VZY(>{X z#CNad(I&%kQE_Tvy!`0YGL*lL_)5%sN4E9RFM{ZYK>f+v&_KxQS7XL6Tl zIn?Ze=}|;TknKFSQ8m#byr-B zRnmz3qMiM04usQI3cKPfG$hzD`hcdJsLdc*Rz%3XI$od+=+0L(^1!_Si1#xDLJ0()Lwkwi)kGPI@)~d~_xe)q*GrPfAXREVBMfi)hEiD5W zsSgXM3~LoN%(J5#L=#2xIksb0Q&PAV+-2|=u-lRGB12`4C%}os`@J{x6J&H%!Yr89 zZ{!yqPhf^;35uON9!f=Fb{@fh2L}YqKm8WwMjqyO&&>d>W}XW>k?b*07F@BlvfLQ- zG+Idv#bsE1J+7Hs2DGnSE$=w1c;8McR=eUGMt-7N(cm~;OQ3L+4$Bn3gI#SMo1Tws zeu$nZ=YE)4h?TUuy*wxq8_I#G-yM6_$8x(aim=#raV4|XU0(%4W2D}Z9c^VRPm?Vt z^340lLrc{u|AQx3Ui2NCb_r!~{a$^2>qqCSYvntd{ZG%;9qsll7?f#6c=EYieO` zfYVxhQpLmYtD=_@R7GC8A@5|vdXaMRqaG~r47qa!J*$HCNBVD*Z7`1wylr?NLr`?V zIJF6WHN(vIuJsKaJrGS{&r|ZSo-SxH>#ZlC2sk-qAxcUaqauqE>)enRK6M8!l7;yc zRoYsGcH%=xTmqy+t+M9>C6XSD)EO)c22jV@m4AwF_-rt20GCQ>C#G!$L@+-QnlrRY zrC7#jbj`KMnRY#Q8LRK!pQwK%x+6UIwW3B&yk?Gzc7VanRJG6@HG!-~MV+^D?t+<( zf(CrXJ+unPLHKKek89kIXOmmW`Z2I>qx2V{LyOuN2-H^vX*=|J zxLby@V&!_ga!aLNORIRhleer2#cL1fP!TnVZy2B_i?8wk3r~&D-Z1)513l(0m_+>! zK#$JciCk^H5>GByU-hVDnWt;6+F@a{Hgzsb%lx^4D&KNNi@&0j-B%-o? zE=%F?A$$7InTDyB;-c-4V0n77}pJ z8h+Vl_7WKlImkB1VDIh!j0!NW`^b#qilWy#*OSn06c-SIxb_NY+H2E_QojAV@%v>t zJ{YMBy8dZ7^3mNgfuryFTw6VRdj1EqU5lloA-RS9QAlX3J85X0%R_l5!4%gb3GPBn z2hTT3{$U?4OAFg>_|SCj_OuzUC_{lC|5m;tBFE}IJpOSLlU0eSSXl6L#W1sIEb#L8rYCN|<4cLJm$WrJ=3%~kh8xZ&ZT z8_t$-FLwrxu)*odDLwmUdQF=f3FumR#`6ni{d#f?()k~!qN+=DXt1l*JMVcw;Xy}9 zUVGhaZWGG{wv1P*hpOH!3g|^8YnP8a2;+j+ zAXF%f5a8-JTgarcPJSQ%xRI}W(c+4wb$!}l=~R65+-ukp$-|b027}(6dd9ITlvTF! zs7+182N-YRV*Juv%Llou<`wZ|_PAPJ;{yH)gW=&YRxjZ3+v8Z@e%&a=E+Sjc@%0xv zMGEb1IO|$KVC$Kxw)Gh2lO*2%**=$*VoH5G;~}ekd#ylyQ-{sr9Wk)#zL^eVSrWhs zY5Y!jfH?Qcz#VZ!?%`;*Kdr&25okLXqa7l0|2~{`S+28JQ!CladeI$=g`u*$+`oay6X% zmKl)Ba&UKq`MFQ**NcjUVz6INv@3VD#l=*Tck>0SHWC+0JwH1Ky|&>ayx&6T?so-b z$Zvf;2m!D4u1%L*^(tWHT+Ma9ZKE85d}!QF8#^Fx>2QdIw3o?)Cmv0=5@nfb#1e=} zcu7><#V02D6rv!ItRW&znth0aHi++41-ZDWP|E^$pL|5!n}FV1*LptvV~gTzM_}t-MGpdtsba z(#5ZC7&$z)hBk!qTr2wV#6>Kg7-8 zO*vm45X;)H`;w|P#CLkTJ?!eLUBUL{}|n=&2Z3A$KtP8Pk9 z*eW-9GH^s*UhDmE6OCk!bTy9-Apjk>;G7w3O2+Y(J8u{5rB64<8DGFE#X2?U*!+mG z;k|O70lH+Sjf=)PRPm1=#Zh{@zIZ;qI^7^LjJL7{Pp$6I)Oc}Kt?%y7{+X2kX>mxm z49q$Ge5Et}j)G3idoM2q)(Z&*(Jo@cOx1@*qEVTh10v4M&1qX*j8_){$6ybT?jqqAH_l;PQ8inrFnJ0eq^JdL|D*cDSuM-RQOys|RH z24lWD49xIYB#uhdsNqQNrg+wE*aX@NsEKxSQ{P{vUNF8 z>*I28=b2LTQ^bx~jE>0ZLuEsFbnazDXBuRNQdwHsRcK)!#V){9mijj5T4r61=0Tycw|0-AEQ{X6fCea!u`5~)|t8ZOa5DI@6gc{FBw7q%3U4BLM^kXmQ7V>?7 zKC9?^q{9rj;7FmVM>Y`}<>Mpln|#EYw!YzO41-qz*HTfuVyNn#RlLD+P}bR0p5_Q=vB-b>|?8k$wZq8?-H?5C@0?CU-gyX?gcGk6)tW|J&mE} zjBg&cESEgE%CqAr=L*-Lh>0@3Z`#MymgLW4_8L}6xcpN>6W(xtE^ZaSI$o#BkY!!- zGfP@}0%3HUs-kvzpP}k7P`eMZ%|aP#b7PY=^)OTNvI`Z>u(V=OOqL?`{Alv(nmf}M z8EW+kDcAcM`&iR#u;K6}|9a*6s`{;$&q9p>`sD+Hcn} z*?P(;_UL(eJ`Su$!ct~*D0wzQFZ8oaGp}cf#X>A8WU^S@u|YW%PNxeq0BH zaj?f*(GZWfxvdth^e(AoqTBMEQ0*iiFx%>tIlz)mUhi#Ki?4b@1L!F-bZSVF=9e3A zL!F(}-J2$!+G*LG$EWr#r(5qOa{#13FPQS61aN2Rq{{g!zEOw9Db7cxhQ*_%(|WGI z;S0E1KMSdC!SJby%QIq$$W(zV8^DBx(cpK3I=>BmWKNU-87WxlY@ol19Tzs6Y;7p3;8&<;el5tFu=f(z z=cH+Ko=I9&8X3RMhZp>*D*-C3VxKn(-EQf$oS}i2Gb-mUi1x>SRfng2L9@#5kLs0Q z%2-*+OqyUkwn}ONMM?H*`*&%iXs{l8mUW(!{TOgq%u}}SSZuPIp;cCl6<9e~So|{h z#c%2=GgN-ANZx&`{8nNP7q&Yu0bC2D3WhVy0^-J>H5?hIuNW%AF&j8VHK5QJ-|x_1 zcY!o?hgd%DmcqG8gAQ7rsw2ve{+HwRLx3i_6BdjAXcz%PY1cK&X_*vR+g2TOvwBdy z=Zc(f>>Rjx#c{lyZ15dFI{^q&e530%YPnn(Sk!N8Bb$7^5G!hR26Bw@leX(ym+d~Y z_YRprZ++b{+2WCGva|A=4;*;i$&#%!1~ToDKuu7Y(bmA|5x2gRb9(Jj^7c(j$v9ar zFKbC<8K=5v(1hzk_wrFareMm@tC%n}*)8|m2Q)+WmE)oI8xC`HHV&Jfh0!`pw%kZY zGfH?#WV0NNH@Sj|HD#9|QUH@zJ&jIS#mo;sp)eSDpf_Cc3CmGW>(j_V*qcr@OW8Pc z9e@L{Vzr~ji{@~9q-xN* zDF`gtNtG60mx8eZYB$)pq{lL@^O0uqae1b{uz-L{pIC5h<3#vWQ&Dod!68($ zR(k__tR=y>Fxv@*P1Ql?e_lm1Mn11AisRhgtY%|URzzL(7%ts;X9dE-#?*+qR!R zN^6QHBTv1$&?+9PfffO7aNI@+h+zw{+ zTe&TKtE=RD8JoZ=R8U~*_2p4(+u0CD7m;YM8{tc^C^u!UX=*|#7mMTN9a{@!`js26I*U{SI3g3AwzE6egfEb>jV=z1uanYt@R~?w z9CTt5=@g;?*fp?b;v#lFR!NDg%krHxWlrCCBMsfG zy41AD@(gvgre@s1+ln@)5Z2<{tcP)T3SETP%PG?5Tl5sym(hQI&#Qg-~EjCBOHl<~twmxpZ#LPhRJmRIv{ z%dj#arw$cMJI?}9Z*=*zeZ!#fwwcIm_8fw-#Mr~GIMtfFW=*^}ixaWl*_vX(UTH(1 z5oDLQxIbTQ3iDza&o8SB#_TpLVeP`iSW*CQ*@tx{VPbCxB0dpwO3W1uw`33#zF=Ro&IRun`3nxpi)(TciU z(-nLsy>UrkO3U!~E98$`w$(ri>+Knl($Ce`ZV7c5ABC8RDRH?$phIzPIO5a1q__|Z zSm-7y`(grd@amU-v{5!}4DEPz8~dXLF1>QgQmp7V$M1KU5XcK0;0J>yrHx^dP0l`Q z14H%O!G~f2=Y0*_`Gj-wKRPqBcus#bzbl;3{Cf19-UZ9tl>zZGTlU;gT{0>Po12Ym z-IfWyYZHrkP@;+XaMRL?DOZ5+wjpuXb4=B1Fi88aNBu!z{reMH6(FTTdrXkJcN+iv z4_fi`2jcZOfp>(EMBU%W7{Dp`-+%hj0#~cvbi)~Ln*aLozy2RUJjNf}gP7$|oVp?Z z9^qdv@nRat2?iZd_{{z;A)OBHe@4B>1ei;MHKOhRkSqH?1{|mhG<*p^#_#p`k5~EE zSjF!e0Qx_3OG#<^|JMhf{y;n&hveTdI1_)$JvjZz|BUtGbUv^O9(BK(T>a;io{r;z z12A2ZM}*>=f0AcuibfaO-zm@P8l2|F>!J&i%i5 z(`r)mf=3I|I#+#p;jO35q5)>irI8iFDpNha{LtBEtZP!t-v^+v$fwixo!;{HH=C3m zTLOXKeAEYb@oGHpRUq}xjLwuGF38er^YsH&Nxj8;?P4`H)G-HaUcW6w;yuF}c9ROY zNpbNUk+Ak(bneExgd9qT zea0L7Q1Q3Wj?d*0d6$PE{5;gUYKz1k>enm#8r}GWyjnuJySn!Di!)u0XmOo*8RE{I zvAWUcqltdoe-3z{b}F}FalB zR7oyl>+k39v866S@bTQsh(@US%3SIP(}%B=?R)03Zy!0ffy|0ATt9Ic%oF4C!WBQQ zx4KBBrNfNt`^=zA-T4(FSBu3=ePO}#miSm33VV`EL~^<%YT}f<8Fj7 zG(MQ|qq+vemEfJR2YMG()oj;B^cBAnp02Vu-X-&<%95}8$Jy1&6$Ygg#^plm98pZU z3_NN(=M9|Q+~n2zbyVP;xboS_9pjUJ?wKlb30nzh2k>5KVX{$Ra3Z@O{7a1iXMq6) zjOFurJU>^~$MWS0yWwYddRmlD|6JUQP&Lk878&Gj-4b)iz*>biWB-|y2jza0|JV{` z)}nAr$v9*M&9jo2{D%owd%c&;A8dA2UCp&=sSF{VXXcIs;>e#2>-!x%WDvOP z`)r$~JD~@@SBz>ja%oOTDkA#Vu*E-L{!mbckWx+w=Vd$^U2)NhV|-K0(=S@mqEE0r z(nl9DVe9Ob{2QoyS>JH^f%_qy&HPB;PRLNy_z>^F4w>-XD}U`9ARz7VW4jc4Lmb>O z627y)1}Wm4)r3|?{2mv-wm6sCqKT+bX2%D+=;)Ck3WVyYQ1+1XKoJL95T1^FnTmG* zagdJM`?=FQ%-4hDrbS8r$jX}ePP|f?1&X}JLZOnqTCEBwi*V2qWZ_Aw zFIi{j2kObPIvE{yeR3y8bxW)1iLwfgAy&h+mM|&>C1_y}nlODjA0)I*6~k%L*UyB*WzyPJ9_a#^7+)B8bb; z?rJbD{YPiW_X&k&0%#mM5+RsS-j(=+G_+M;%si59bsZ^GULm+OCYztT)fRhwRI*b7 zl)3Za;n*IfW+o(`)8X?^N5f^7n8DlLQtAIbE%Ib7l zb^e-1eBKN;mw^(*VTS(M@L^VXR0(%Pj8sLxm zh*GffnY{5cF&gOAu*wm;Fz|HgSxvRcXr3#do9IYxnX9?|W{8F9_$m*)qnE{p`S$dwCI@a81gaUT7V30Juvyp!BWYtry4mHs zsrvgtYrCsZOAa0XF?m)_EjYrk-%yGbmiUBS4b!0dcwi5{LUX8g{- zg41Dqu58H6kjrwgP0`96)?^Z?N3z{enJu{c^Hamx?sFB!O%;W9#PDBF zY)rkpD_;`-2xjW!7RSul4qyFxCtpUMdM>Ju4ok#Z?4DoLGt6(#7Fd|CK)ojK^fj7g zNs7H^P}#ntORlXXOnuZ?@RhxzX!!F%r&%M~S*hPPgyRAJ?WUdB@38a9o>_BTVG26% z%a-JnR|1i&H%w`va@l{nDdV<+1TzQZHCtssTb`i1e^^?o)NJ>q*n+5}L*l1PydiYX zX^Jaj23L37WK8?i^3{nQXM6qM ze{os5G1H>O?1IVi1EeE9X?Mb-dlgibPadTg{dK;k{e5gjO7+$A1D{%Ue_zR>+-$?6$dwjiN|%kys#35zjWDxO-Bla5+1drlpli$w2y z;LCjJ{#v7}SY_LCy*Lq6?LVo!(;fefiNiBO(K4^(W-w1#VbRYv5aqsHxwPNdH^^os z|F1JmR0V(xs9__c38rHkmDVNoinSBtJ4xe|1u=(bmY%|nr$ChF=G(696%$jOwg{TM zmQ(Z!=<0ES1bDhGdWDyYpY$9;r1rN=9`49-)Z)i8I6?(P*WG|(7)lSh5hhh0Pw{*? z0QFDi_{5^)WnbQv0UrQ&qydV&{Zy(z}zB@&d zn4#K;%E3-xX*~&+{OUaqkbw>C((Xu~5>VOvR9b3^xZbsBbO)z^d}1ew(i(HFQ^#5C zj4&@q-POq#FfNg53GJz$;(IMWt^C)nAj@oge>=1*X(7f%^s*W1$lkd2(Z^xBpy<~# z`8TeUlAGaM4Zp8F?KZKYkXqUlHR7O+l|FoEnpTG70ac|UcQQ%vY*13}n^mG(KOr&P z6(E|(;X0F9xMOEtbu3W%883DmDdIeJCjdiuKb5K|JZpg0=A%Z(lhNX~)uQ31&$e*_ zJXjmOYBXHquY2^`OpN0DR8QvM3(CVmz&Oi;1WliAZ3}St4zIU zz?7s~f5}*m!#x`Ags);SiGynXCu-M*V5AF z429MwCjwwGY@{52Dk1=kaU#LoQ_>F(PK^z)s{z1h z*CQmsLhO7E&ASVwPoxvHLH*!G*X!Sw8B5{}qrO!njzeK=4lUDX+`HOxW%JXbL{@DH#+QZ#vUT$;g zpIG#gYv_mKqjk-M7x#W!p2prwL{H9PmpW>?x@xb;1=^$h|9x`-eUeQ5G-UAE+%^x{ zU>6x(jALxMV()MWkr3S9PRtdf$f7L!1w!`yL3&edDZ*_D`;L3U>Q=8hWX0Ns8_8Za zq~wPE#uhO1iB7|#BAWbH80$ky;73oJV0|sD!+{GG{;$nRzzTF{l49zRnJ#m=P)=q1 znC=Aty8LGcq*CDN&4{?iYh)=b^VE)a3SBsIO3}C@HfDU@LU!7DAl%B9{zgw@yTGXs zBL8E<@dq%29XXU;Xw(gb%9PSm3xWH_8@(cTD@M8R(s+Y{eBKl zZ-mP(#2~MWdiHRU#OfdnuA{F z`8MFTWLM`#bNX$#r5_>fJ!F`R6+PyM^-5KkSX;gf4;2vzIZgLuU#jf#8s}obn(W`V zGg4fgv`i`VDOc~Y84h34e`GA>Hhn1ha?e3B@>bwCXGA62sR6C>X|)a)L1hfY@pdIu z+_U39y?bz%M(T3{CxZU+1Ok)xnCpAHu=lU&BriXP{qmbr9}qknt~BxA#t$Ik{dUDr zC>5pG=YzK1vWbp_$C5xLWob*g&Xr3(FB@I?c53ThMf)H~`LJJiyP8Bpcb~Jb79_}8 z{dGd;CB!j-gOZ}8Es*I=Qzfkf$)|!f`>v$yzf%|lOxHqN0Ze~r0beuo4bwen+M^{O zaD}&4FYD$orc;h|UFNpzJxBK=AmsREfpFr*bQTnfQaZ?WZ>yA05B0f z-gOj3ad`(Toux1dQ)WX1jmz7=ukf&A{P-^pJKUbT8R>Lv`CXdkdJ^Np+>KNeF|*8n z%%U6Z_x1Oxu?3N34DSnlt*I!SYY5XDB49pXxO>`{mAuQIm8LDzWyP=QjCNuIq%|~z zKSP8_`ig1egOWrl-51wSdlgPA8?M|`)^(zPlXYp!ZR!W6N>amk$?~3nE$|7Zcg-WiiA_F)u^aR(_FY`F3cCQc`69ncK>I$W)9-1-=S!X zTP$_pUi}Nk@hdXo$iNrj9{Mn_i1{`X{Qp)+=(*NAr0^Ju$E3OVVW;={K&KOt#C=^r+9B}S-8%sk z@;Vj|{(n6pj2Wn!R7Fe+nxH>;gsc95zgYm*h$uze zCQ52&q@G*J7l9`1v^N`SH(0d@FIMjlr>?L08uecTOJw;p5Brqp;Z^6cYoYmU2$DFi zI);mW_|<{VKgM>fS0n(!71{2D{^NBIl-=s(pz*!u2?rZ|R|1HgMTcVq|8uM_-s30f z*;h>#k?#du0oi~&OX8a&~ zQ&ipk6W3)S!T-ue{8|0GLcWNJg$SBMhv4x|&4i||S4agN0+W7zJ22yQ{eA>T0sb+hUN1z%QC^uthq-BS`DGoe?j4+O72xCil%6qr_Wp^{ zQ^yA^jKd_HNz&}yj=EFk&gX_4=!KNt(&wPP|86FRcdq|jz3%mJF1GxbPCN7HtmtWb zZgsP4`}K3cYXLC>(9~+9T*(5!2|4-3sd$zgM#l{VRya4!j3ITV0enLzz!4&>Yajg2 zGOcgorPly<>+p-Zz-ob@+o9glXBdFATuw^jvRA;lszfP3*>Vy#*8x0h8eeLevV{KU zy4iJsJwHg*el*C!B6t*X^}>JdnD45F%UpG~tPsJ&F ziz{7n4azIy#>pkO(fQ_*)|Q~i@c<5FkEqoRzR?J3uM)kZO^0`Pyfx!IusWHZ_3zI9 z`{@0$Bd;PF^Qv=nj}hc^)#%Jj~NCs;<(C*M2TxYuW@5 zfc{UDcn1Fs`_DxotAQZ2t4qF<)2J1^qCt(8v?VNcIGOxJ<#Ug{(O~PKL2B?C-nlz$ zuQIeU3oTlC3SD_6L%pYS!EUpe#CwyEO-m38^go6dvj2TaoW90oUBl79_v5cLf(|fh z2};Yw$ffO1f;EkHB15?QzWfaM8c{oEaZ%7EmohpXCAgDd52ou16JIpv9eEp)DuhMwj38CYNbQ+N;*KR z7u9Q$lzt$_?$Y6h5SmFv`8&+J_>-_u8D`YNZ`=RJgMrmLq|n?2n;EI?{K!0fZ-l8_ z#sdi#WCae5iag)NZQNI{&nOW~jX%2$)BzQ)?H+mETOW-D4ffrN0a8B>KdB%0iTD=C z@U!4xrUADKk9QSohVBXfD;szEzKx$Qdu+IA_SDus_S#E$cFUZj=3^KAyX9t_IY~P) zCpYf{d(Hn`C+E&NHn7u4Y|r$H3{= z|LgsT>KZrHl&Sy{fWZ1V#BDpNC{gwMPtPYLv??zZSOhNNOr{+^?=b$XPE;;Vs{FgI z?>D(t?7ErIQ;nAxwJrYQR{EG^eR}q~zK00(D6N4(@_yex8TKgQrzayeu=Mk}YHM?JS~kq5PGY!8U-(C+*f&R^;_=jWjaQ;b^e<>?GxX zY*gQuq`l3z;Pr!XoUwJ=SzdeI$2#;h>>bI=i#;Ug@088f7=5+L(Gb-$$>dkfWJ_G=ASaiWqkm{@df?lHZTkYvJuDD{)`Y$7fK5D;I`b> zNSEW-t?dO0p_z|Xx9RU_)f8X*vV5P~>py(1Yi(!oLZyYgwtVm97CChS_jh}6Ls2-@ zTufU`XZi*#XvuUhPg9$AZ`&SDl<0H@}uxX@1P zoy26Xg>9E_%Ep3NvpWWC>ZFRtSj(714EEW=vNq))_~M2C>^%4?tdV&0tV5@rl_>y& z{K4aH0C+ahD)JoeYI+b3_pXZ-)}LQOdbKOiLPx!iF68!}SXbW(pm89E;oBy#D*zO@ zb%SX@7q9z;%xHkm7LMb8!{nG4;C!QT!&EyRI(iN}H?H(ggdgD=wao<7d?~-l4@|bL8NxA*VGx8PopCt<;d*Stc~-V-S$L+yF%NK_bA&N6`-{sov4&vDTa&>~0?8*N)`yJ- z9%d6Ky(WoC_*dQUt!HJB+i^dP1%UFbeI4Di`!oFm`5C1qHt|`>^2a~&a}pi?AG*Fe zEUK-2TM5@iiX$BaER=Saf0S1I2grPgXJwtfT z@4VkXT+Velv)5YtiTk;qSg)!Xb%+=CIN%pSGup(Q{dsDE5h6Ii9CQ3t@*Bb8)7h@g zR{YxB@O8GB!>R4)5?(pd#V`*iCRw*6TJ)k5fNKF^(4FXLN^frw%%-62HqXj*r(SZm z3hmJjdP^pf&h2)?+N^uBkVuWe{^ptfz(s^5nEdYl$28vGZ5Lo#_u}T3<`-x$wbc{R*Fg7jtB6$`uS=Ec@rvpI zo2k~m`BY(xm@0QbhW)qys0PYw0nL?pH0_h>svIq~C$KjztpZMrVPLuMcM6=4KEawR z)={(3Gt^@h)bNnbKNjeulJFW3l`+@2$pr$f;KEonm3G-$ZqG|Cp0y_zVWpZ0*dlla z*o;52Aj`k(k*3fkT2)mxra4F*D}*{emH*$15C#o6{AzG?E~qtE(Nv2B!k@P6W+i{v zk*woSpff&7mP_IxjCYdndF<0B^LN-uXcEe%0=3ks7WQf%}p9Qd^9a7dRHpC%mO!yor6I}JbF2wHf0s*|5ZJX~_@ou2Ws3eEy z5tux>{nyouf{H=L4>2d-G&~(_eE~8g8p!pUOr8$p271P1jOn`$7K%AE%CpF0+2CPjDo5Gx)?1ORUUEymtLxa z__JL{wCl#4;lypXN+v0T_Mj`p_Aa76>7R8Ge!`XX3nt`b91f5Tn0}3BBVy`H72XEyPVgz6r6YRnEx+x63n!a7@#R0q#2YBgoALlv=s2yN z*$IR~kr?oid?jYSRH-%}qxat;dk62zcf@(@!Y%0vRv-Uk{eO4jfeWbucg` zBm9dP2^ZM(f^YukQC%CpyX&qlDkoU0GvO{|;j)_#iw15ARgo0qp~R70DQd95M}TB41nb{15TBE^~gSa|-qRkWeSplI?Bv)~O9^ ztJoraORcx)s^1JDt&%@HCW-TDCjOMcsR;loQjx=&()GaUf+n!&J1vIWJzr4+P^OT7 zzFO=J&q9^!-Xz|ldTF%vZ^?iD{F%6czTNe2o?ajF(?l#W5T}<42*7kd>CPOUWJdy} z`1nCMH_>6*15y+eo^C^xc7Un~d(?|+`HNl$3-;`bG{)_JIXnz^-J7#Ry1)tOFKTf9 zq1aFDF@W0*c}`A<5gBfpjSZ!JZ7sx*!(-KfVx-YvAYJc7-Kj~tW&j9Q;$=S+hXm5U z^GqKes^x5!jw#*SC+Pe5QSFf;7)2|HrV=E}1zh&$y2#G|ef8IJ@zmB0MLqS|4yso* zhAQScl1VnG9@p-EyLWbr2_JxLkWbJ}U6VGTJZ_wpfjQN7fS_%U7Thgx z5l3H5%JC!6Wae_dQ$YT?D^+A+8y|_I*V^| z8gXu0d#O_&ESm`=8SK%VinTBWE+7r+dhbvap~4LeD~L2Ow?zg8YB3oJ%;RyOM&edE zhkx3{fw~R+D>#;Cx#WLtFW~j$)=tID2fIHrTRT6ak;&}!v|i;|8nay`4@8UIub$Oi zgjNHL$WkZzQbmRP7{Dk4)&sMl&5DBUKx_NfPjiEO)ngmLdDR-$ z71J@OoPvok+B`)$^_ow#Xee-I%Ff@?x=IRP3^LN~4L{yT(i+b_iLtzuor zi3tgMG#w}b(1Gu*Xn@8Npms`xLhVnqotFk3tw*g4KLMUq{oSw}E7LIC{6|=Odb@W2 zBaYF_!kn0Y+_(!!Cv>)oc(2PbT|}8W|MbcUZ)euicUTu(cU*~OILMK#YoB2H@l-)?7avMz#@B7PasK*|jcNS9c%%n~brCG~EjY$Qt!{xo zqvwc$GBnkr?;16g>~u{`pi|M;lK@cl?KAaEpq}Ik1Gpx_a8!I4#yNNrS+()%*&1jb zs>+)%;QaSq%)jz=zg*bdP39O*PJ%#1gPML0(bZ(LS7&Y$sr2G0Ye3V~LeIdH6T+7)Z0!^T=NWh(7|C~Ja_hA%IO)ys6`=iu8 ztoHlJwVPvh$k_=Uyn!ZcL`dO8-+NIgdTQW7l=zdnsg#IWec;T!H!#~otaw%;+ZuGF zj&*331h-}UNUeKS7p~I$FAPxEgDaZ)4vIJ?;6a9Cs~3&BPW{+y)dAC2if@m8x<4)A z%~`U-=%xjtS2SzrX@t1RzZ@Sz2ykBJDypm3g#Ay&!KNyl zY4=ZXe_lOytQX(lN)*lG9Fl?xjAe-D$a+eh(R4RZ?uoir*!)!&ipaTN1k|uhh$^_P zXy+QQHFaLis6DEd^|aMVbl-PL^G`Q9&uIVi3L*R8+7PEB4 zwM2RIJ^ufSFDM`wz=Rg6V#LuxzDfjB_x>2n;!g|-b9R{QTwD~X(eyndJ9*)ge>k^`U0osckH7D7`>0Y@?pdYW z#L+Vgm!J38wKh=j6iX;4JizuRX0*iV2(wUbj6>-tZir6+>g!#2S>J8i_f8b4Pu#Si zn9{kb=CvEI)PlLm3zrZ4M(RHejCLJRr-=RMsZR|s7*t=Pg4-5ONSTCj%$DIC5V>s` zDR1lWsaq2nA2BDLDx=;mW>vkDDf*sp3I#@tN=sFGl7bZ!rydRwlt?DZB`?fBFc0KE zu=PW=e8zGFdnE-Roc>2Xp{@?gUU@rJzO+60c#s}RHVCWSbAR-b{6YA8$J+rg%j#9V zNzSPor;DA@@x~v8aw9&YKN4W1zI2{}0D&dmEe5=!ONPo5y7$A#lND*51bgX!Wo`Mf zVlhzhwF(zP0us@uwtl1<`{B%T2Vuc|`vTO;hEPb<~DUYVe(KNRXP7(on^ z@h=BZnCJzb4OGjv=i&1a{l~Rhjvf*2hwA$iBX2hPffP~{(9CE0I!d*rMDkEk*<>en z|3A0|7y~u0@9p-`JVKM)BFe_~MU^NP|3e_{gVQ>7fY~_xMtOS@j-QWS{+<(vZ5@NVr!wO3Nq&&d&ud-gPfjsv3(Mt1eE0bY$`K>5 z_u+Q8?6-v`MQILt+k^L(fZSvr7i!IRt!F;`c~LX}7c>k1x@Path~NT0I@ezQn z%JSO;Eml(0qw;WZ)S@i&8o=oH=1YaT)P0%20VPbNPoA14sCs(ImGZBOR*u(Au#Hz%MT;-xPh!1H&?qRxtjIi<}R2F zXp)xOTf2)WZs($wdz%7G$M`EXr~eX;69$Tf0O1Dnm!_~IOP6UeXtKv&U5#wLTp1J4 z{26?9U#(5JH-l9`1hJ?ldd=50g-_I7XIdTi`rsPrso)*2Z(JjFv?q4<(9h(ZW4S+T zru$D(E6^9-^L#qWJX}>UDC?cHWmGF1=oUZ2Rv#rO2m;&T$yV}95#ytS2M=1SwmfYA zup-!kS;HwS*tO7Cp6O))(betJXQx*v6;h|XZy6dJWyIBiv^+oFB61fDd)(ov;J1Wt zApb=3JL!29)!)tfQWTmJO`GX|cp`-qRKx%{A{Cd_PmZj(C2mYG zYogGI8eMVhSRG$ybQMgUBmmtK?YT{HQEyG*^3hYLzUsX7o>~}npEwcUm)mx>CwfCyC|nTduiTpv64KCMDlCF)YECltdGZS+g>4x8^td-^Y%PFjg?*l2bCGH ziuOao6W38W-h7UQGC}oTw~D-bV2J~N4-wnRhiR1EFcQhe|45%+VqIqP%X=dWK)ZX@ zGPK{i%4qrchZ{ED+lQBH8MX}1Mj+Px0`@`X;bw}mMS#X-wL-S)gkXs11C6xQ9b~ED zp-IT$%vHk+S-#e$!O%dgQIQM8x(5T64f+)S?7js)p_&GwzCscyQ^(4wbB{c9_ruXp`pTY>5G zFiJ0IrdXVYEBpy6TLKW)G=OR6<-nh&KYh%<+?sG*Qr%AoACMc>Fj!bODX?BW5Uqiz zD%=`jprXFqYrA#5@uC^$!c08P!dUSjjn1*Qj20s*Q?!fy8i*pG-ri!42w>Yu8T5-d zWfT>z0cVCg#r*0eI`sLBF(sk3eDE?J7;a?V#4%GkV8ydN8M;(q`Kf%f4?U0WA5jiU zT^?Y7lpS6{*Om!f)_pr-XJ* z$Zr|TZN+iS7_vEKz*#LbDgWxm*}p=)Fpy-ddoVa`CaHNejbY5~=sUx>?byzj5Ae!6 z1!xhx4+cPhe$4^8N5LkmZgIt-m6OI}Xs+E=UL;=@{>HP;U5zo~*W+Pb*w@i}A%0su_~Y$Is$0WMPvCHtCqG{I2JW1nu^1CzRI{vwf>08W zz;Gw12?3%VML0%$tSS|lFc^k8w> zBuu{6-+0P2iq>cjjY+i%^uxHvG~ks$}VzRtj(dCS+`g-pi{(yJKcv zCop51_m6kzQjN$b=dq=NafbUW|FNOo>2-v8tkk>CJ3Co&87l&nQ_kMU%jyMgyUUQ9=5ps6=z>XHTXR?4T>sx+; zME^v~lht05MB8y)O+cIH*W+=enH*b^a6Xf_~pOF%M}K2!XU#hd`uX z8n2j6jT!lYQAFlrSs?M4fb0s`fcUDQpLIhNAex0Yoml{5;4S?8y6B^KF1xLcP$Wpj z)O7LaN+y>Ttn=^_J`At9I9d7mga!TIrnfU66pZ!LNNZ{Z08Pl-rBZM0X5ablZ5-PA zNV0U5zX-O*$VB&gJ)sAVPt2jx6y@l>h2=pR(Q1#fj{NuT5O)^pX&S#?d9yuu{NtE1 zJ8ylHAM3wVzHr#JhUs@MuFo@3ewk4>krGnA_J#M?VK&O zuq%q+wq|H`{dotNQS`_Q3QAa3LbAZGx)!Q6k$c63ZWlCUJ=e>88BeZ;v30O{Hm7XH-vSgp!LT}QhrVcf?^<$;R zOy2FEL?k5FD`r9k-WQ)(rN7pAq4)P&e;ql1>{i@|sR7#E%sh9pXXTIDa|H}fj1esN z_H1-?A^Z^4xnCduA_^@?A5|yQxp@&ym6`@?y*FH1Wbql=wQYw1kmNS^dTry4gR?cU z>OTto&?-gYhrzpWWQ5nEv+JnZ1m1Ulbbus|tl!3w;u#rZ(^xyJlsy6nzHwci33Lv7 z(gdW&$b7PI?Kh?`Se5_1y^19|1CLKXSwTP9vLHr%IQY0R<=vS9I^Rz)!ES%r{o1`_ z0`*mmS>dvF_rsIzGHTm?5G9fF;=2-@pwq@by>b*N*daSh2D>oz0EOUJj|XVH+)8BQ zG^dFcd5u13dKP*~II@zP2rNZJ{R;S3D=BJQEwrHS7_phb15E@lF!msK5STl~vmMG7 z%liX1S44WgrYpcW0|6V6F7#&wOpH8BR_G47r7c`&G`;$4hbm^H8g%t)& zY!&t#@Bc6_*Ok#V7TbF9{97;lz8F{%wTpv2)?KTZ&NWbH88tti$pv0$5kAXs)@WirPh5CH#_yv!EFk5@7oCEUZrKZ+sM+2(9 z%>GLU?v%d-2QlHePD%)C&hs1++VkPXbGYTQa{4h0%z_0l{@<_ftxA}FlE~_(Mi^Rw z;rW4*gDgX$J9??itX9&`m6YCdOFvktk z*QLk9{x+HL-?yn0Gov4Wt%(f3JMb|3N#CVs9x?n?%1W)zF{Eogw*W(}qJS|vOLk)0 zo02r4mMR9;rIK~eG0yJp1^vVWD1PUi&%|h>G!up{VE}5E_J%e*GHFQo+8(3Q|JI8S zVGpsh*XOxjM_~XVDfOWFpHv_#p%h&Z9H%@4)W1wZBLAR&f__hnYU zXeAH|hq43tmCgW*jlCnG0{Z~Zk1a|xK^rZvu6{76WWtbPYsG9dKb7YjVSuls^qFNt zf9xXI{h3BziM-5Se~?}y^dJNnFb(KVs}-F7Zb3|4JlKofWLytrI@OCA>3N?H3~+u? z{XKTB8UW3qq*`vUZ&2|0`__%4M(8787_3?eRYFVQ_TkSiLCti$Um;^cRDAJy^Ows{@HT7Bu}&Kx=D5WmNx%vff-Z6YtRm-jy_)*9_>2|zh?(8hA|>9Q3`{i)9qcP zLClda4qix`?h#6TO=mhGkdg-7aV%bW_nS(tiYl0lwuo#c*vXBbo!FGBdQQt&e?f}f zm18>g*Seb^xnYUcxLfjy9YSJf%r1$fz%(>NyzTm}Ht)jTxH~O>lpj@Y8yd8iMW$7l zf0MRH7Z#xGg$+R={3h<4cv`71{6?1vqgo7xytPc*$#JnZmxWx^(#d_M6|eRnS=)3Y z1HYCQ=7mO-t3thp7(g7R!i_7@9~~$Q-Mk>~x>sO3>Uw;APBA3Ymt6v}OX2xHkgpy; zlN^8$6b#1KeJcBG;Z8~2JSrvQsA~Om^ZbtJKQa^yeYAdvgxI@@HCbI1a!z;WMJOU# z1ETJq{3zg^X^fH9JuF0x-9`+NsiYnMX>4*IC^jpTj_Z)?UIAjB|>rS*%>&@w(MQ1-!ouZ>0} zSsoydt9|QNm^>W2zl*kpw?3Ect+92Hnb^vpiRJO#3>+2Wo&Tzv!VtUFhWU_J<69Nz zB#8gqj$!_JLBX)m72ML1-I1qFST9SvfyrB0YrY^OO4W% z5zr;Vw%Ir9XjgU#M2|`bV!dx*MmymCq`I%Erch+pt-XOG9Lf3HYp*RAerJuP5y7Mh zOz5$1f_Q-`-P7`d@sS3_w|J#5ya+Jw_cIAzDD~XvVeJ()9BZ)@Da>2s((T+N3$*4~yeZ<$*#$1}K$b#Xsv}2PQzsC3LiOZ#M6CFE50a zMWlOuhAAVs$9v{GH}J2&Q{KCC6EB`fA5`DWw%*UK9p04yeaoLs7+kWL#~v1)&%8!Y zWzeg>K(puO|1zfYwB%Aj9^*0&cJaOb6(nV%TD&jX=T0|L4=bzMZ9UHl>o zwWJVZ#*thBiV)OjWUom%Uy6kVy$i!9Y@#BdRIDU!O7vi4?#Y8slRNWM3e}`4mLdNz z*C=#>@5=u4JZi&+E(8U!tucBM&h^-wYAz@asD##L7m<94#$jfXfX=pk&#agkgz?Sn zS*Cl{?Pz^E-d-d@B!KC%Riv9=RBs~uqlvuqMPdxVM|^v(#RAibOT5lhd5c+uocre~ zq*9tYzlvuRX~hjj(?UNSs0&spv)ASUqut=T<{6uru9y~5`7rVlIw&t<^;a)`^wNt^ zZr$-oWfl@npEk?^_TDABQ^iK0Vj=ivr_%`MX&MFzgbMMJS9N%LvE&9=B*p4@sc`50 zadA3pVoZV8j~|ps3X&W*pqxH8R|kgRAWR}>h-zyaOr$IL25O(HKkPZ0$81>}N zz>P&7_MdF8z-0%0;vqL$8hJAvpSG-kj(69RzT!Kp&ov(}jAza^F9R)aS~Lmxk?@{C zXhCh&b7FncX%RjR3p6A`4Uq-V82_@x=>P*zF_z=XVl-^|PiQ5%qy(GtKJu+N7J|vO zbf2WaBJ?hkR-TT=XX=k4DVn%<_={;M6ID#BIvgi$G?L(Pz1{EYqaGUO$2XqCHIUSu z2P4FxzIOWehO$4lS+djk8T=sq&KCJgMj8AFIw}{Aj1K zo+kyB5-bz5`axfbo|K(tl7xM)0eTV&(&Ii2-)!)oO+<$!!(nu_>b?B-5e;$0BHghGrpnDnw~5aTFNMM)#+$@@!x(+j zO_9lY9zURWJB$ZlPA+BN<#E$+d2WgOQP=gA5-~~E zuu?E*dy>oLoM%RMZ{g|q&G)p^YulSS96iRiv z<+9TzqPk01#c_ERvqVe-j!v2UTeTAtI)YX6V&6DjI7(53}5_uQnuwCkb`n=H&>w)hi_KpuwnEVpxIdElzfJ9*~s>B!g zICWCNq|Z%2-CNqM59VdOF`1?2OQ zA}`08#kHReegDMyRLJpU#D(@$FgQ_cNrqoc7urVm=hU@se;%9alpdVo7h3z=O36~_ zu|@q(>fYcYh+Xt(!s{thJ`r)5w2IN;LXfs?alOE$2~AZ-3M+1g5qMtIK6@PJH?dnL z=ZgcN8fNJOS%nk4PyP+xE}Qx<9u>Oz#!WbyHANP7B;_+WSiI8S3@~KHNd{T+S%o+L zQP8WOO*>q#kyGEYk4YmlY78);USo)E2EvI1qUB~gU@C&)=_~nzDj6Lo$GC*HIsL`n zQO=sxgKc3>E$rQuQO@89iy;$*gHDZE%Z#KasgyP}Sd7kxb<W#I5ZPkMi(?#Jef^($N-9;<>Vuam{#g{!ez8W_28P4hWJt(8#$(sz*v3x2VB?Xsg=s?amS8CR(;nSK^__^C1DI!DXs)Y~H2&N1 zov-C$IvJgdi<8qxe5vsET3IgXvxGs5rDAv&$*HXXq>A#ciRty0@}lRapJT}TaWRW+ z*IZalO>G&dAKoxRe8+$HNqkpFi0ZxOG|5OYQ#!C@#PNW3S04sb4=%k`KW-*VFGit+(Zev>x0y3sOF5ZF#q(36YIHn6Px zQY7ogd#XaY_r5B`%SENyyfK9^@mX`zdTtZF1KY&K zTuPM*9Bv3xp;F#;wNRIOBgm2k-$T`c#qh2V)1W>2IIJH#WG#_om<7sq`{%6sz+=4) z9Qnit;TcWq#ig0@*IN@}i8<{}-pJ0DF(RK1W$~I6Nrcp85GoQkEJyk!$vjgPipyw5 z#FysomNHED_A5-Vj)S$2FH&OyKt$|DwF^wE2F^s7440HQE*iFl*@(PNGqcJHx%92G z)MFsv3*lIjbo5Iya)D)S2rg}KqD_0;Lcb+q&y(>@({B~i@*RGz;^4?ubRk*A6azm@4-CIrdH8Qs`dN-`CLXUA@ zR+qr8Adh1VNFd{%ff&y-S1jxTth0SX-}F=}%rqzxyV_Faom>ztLwrWP#4Sq;(WPWD z44meb(AJ|FP1(1-Q2xsdCr6Wb+AiH&+W;PqQkHix3mwhF@Wui=neQFGj{N~E`D zh8;9imVN9}@7<`tqFVd{wW>J&xgA+mQqKgQ_C-pLK!+^VuZ-oScW5)<_TPL)c2fRGvsK z_#HFX9jyE!Kx~}(9vL?c;GCgRE=d9cR5Bz=%6|1k@DWi}m51sPp?u_WfZgQF&|lQ~ zOimI>!fYM7$P#F7R0hMkZ|pv&4z$0V+Sx?F7F3Yf@}ACx0J;~p7o!fG`1`Y|=f~zo z%kr2KNWvC5%RNRKSxqf$y4e;^lGeMV?wPD~w1~)4B|4fmPguFU0zXg*Weii% z!A!-i^`;h1Y|wv=S%&#XNBf!iJ1@#oK4XqJ5UA#~zj zP`MpfI`Wc1x%NbF0lF(!W<0aDb<3eOD!cmeW0)f}`E!n}`Y9>{F!L70ox!DHyRKW( zJ#T`4&o+58>fUqGhuXXnZ8DFw)v&y-7M1pr0~h9*6Q%fijQK^)lKxG7bIEr@_qI#v zBnr-4NlG|SHl*5XQpj?;SS6@;R6(U?!M@ij&d$2SAVQs&d$N>x7!`Yqhs>mDM3G}- zReBX9iAwWQnXL4DUL@3YR8xQydN@H6ENJ;EFU6l$xdVbpgGCc`yX`^qN-G0PfFz>| zZ@gnuWGLeovTVr$SELeeViadL6=I_K-umz;pz9u`+vQcJ-#Gj|pmKNvcUU|Q`*T>2 z&PN*jA6y?tAYpHa2;F^x?g`$tp#masUeNb;)0G>1SGW z9S0z(dx<>_q%*PFP}8ZjukhsT-FSP0y**fx1nScx%Uhs!kJ;98d)tE_W{-@`v4@mx zP$;eXXqKf{$t+zZmv33)+6feF4!+*zz%V^wxxU-mEQ5ttc*f~bC`<#^$lTp~0nK^> z*Ag%lp6F?S%lHt>$~Z0vg#|ss?qiK?K3p?h4@oU%wFgn5BA*(QcGe-bm`fiDo;;6;k4_9YSU-BzWwLrC&qS-nHz=e`x zpNl9J20>wo1=5Y9@Tf%*5k*BlaxXNBHw31v5kAHyhXLxPUH_P-Xpxo%#Kpbqn@zpy z`>o5l{D-37X7(*Wd3=@WseJ+)4W{Xg7YTNy^18Hl8jkKt3kxpdW!Q*sV(C{#2gga6 zLl&JDudh6-+=)X`D=re5P8D7bFLZ`=bQ&Kq(0K;QZ5U8D#>YRQJ0_-gI+s&=l$X*8)Q8;Z%J08xTzmEay+Ta!d9kEEnkZ&mGMuZM2exCT-1*fU z%+W>CIa(k*OQIDYJzRaEN@{A?#6r7xeoCq#lg6AJ&QJkBWC%r`6@04+o;}bK)`Z-;m`&+`x6_Mf0b3c3kgnd62K+bo} zW7SDA(Ixemy_A&996#tEC0+F-SLfQUQrEh)#M~Ty_O2CLF$_#p*XIkZ&yF&-ZrNj8 zAA~$0mu@*`n}u;@#40kD174oP&8^qj2Nq>JUsWhT&4PU5fxX-lR+0-(V1&Y&IYkUJ zjXe6!&hHY)6|b;&QiW?YUAy$#^DCq2F;)8NK#)gDz*tQm{UF6#yKr^pBeRQwbbwG% zjr7tBxgmmI_40nM#`E*{B3K0HO>ig2AkDJ+w z=kPH`(-WLeC+Jef+hckC+))df!>h{QNLvQ+`^ndI^J*wvK2bj^s7(sq71H;bL+e z8BC33IUQ8*7#bq&RICc5AG%dYkMc=hh3Jm{%2WR_zD^D)YwyUWgdXY(w5I;BjN!SO zqgzny8roTrNHOsJiyV_;R~ksp+<@}Jak^qI@kK}v_paqAZ`oIU+%91c`$ggS`k^bQ zzqTAr8EXPxv(GSVwKq3&s)ly(N8+EU4Cn700@$WS$N7b`=~)Amda=~fgw0j)o#3ij zqMKF)axK$wt&`zD3O!Uc*gwD!e2~)i%~ndN%oUj9x*re3&+KpJJr*%0F6cPERh z=Vs)=YY;nG_I8aH)I*n~*K=^ViP8V49J|Pkt*HH`es>(fw$HFCb6|UU(O2TWuY70g z0R|%h<|jQ!?VLQP7o{M^X<20c?842^4ROuuV%>56iEHb`r}TBAh?WTs>!XApsQbwz zK3Fd<%j4L~HMO$4t8(p1<;4(P6bis+?itK~zT}`?{3n}PeZ%7Q>vW)KcJbE?4kgsg zrGtS^(BV<0&4!ILigibQ!GX38^7S83$MPCS1BPu>7ojmE!nL?X?mlpbmjl31I$pC{ z8I6fvIr&y!8AMLv&ZOYEJm&ww;sx&o`GWpQg^zV#ADg-;u~c{{dBs~e3sT3*5Lpk3 z(S{5KymtMOH*O?9_YJnbsfMa*N10(Wbs)lJ3Sss*&0D6(VaCP#tnaszRK**<;Lo59 z%T0g-IYW@Hvz5}fS3WQY+Xug7&xHi|%{GGJ>H0m!f z>L}^rEc+tKy~*-crReLb2qnjF^jSqq8?!HG?sZP+6j9MkH-G%D_EGy^d1zIT0X+i= z7p>uzM)g9~uwQVry0jKIhvjPkU<%+jB=JNk7Uyp>UNlgDxdcyocI(`~Fk=#v_}C6m z^Ujq`@Zu4<=zH|ys%Y9&vWGF5>TSUD+?WyLHG9<&Y<5x-(dK$?dwZ<0+zh#wt)(Jj zL=Dch0rg71i%t&X9Ca3cm3}|0ytWzBToK(0P|v3dPM6GAS* z(_GI(LqH@S_uRSNhTlFt!8DLKK;h8KKxATPP0sg1`I^Zk~_aU(gRm}}EJ2e%<9S%%aHE5Bk)w2A75o!Zokv&%~gb}21zc5fU*+Y;zq+m$Kf{D83L~k#> z0Z1p|b_caBGWSxHd7fBXPW>L#;8&SPw}%27xKSWXkz?uX1j_r%5YwR$CN`w9Y6(fG zySzLkCznjRUJQw04sQDfy^CXhsXA#iBc=jj=)gFzO*S7rry~=kA#>}Ym z-Y9`YCb)RbHqBDO8pOA&%i{iAx*7qIoX zvd-x0NR)Cuxl_2eVpWy#tJ1-Ypt-M`rn>ioyot+;Ar}bK!P~9TG$-&)nRtT{*emsl zXEcFbpZueQ{v}Rzb(q1V((Ms(zLw9IN=YJmC)7O&9EEG+Sia;b;%MKALd-P-`DeM* zTNX;r=fmVEdb}>zeA$|d*01{0Uzt#;glcW$@% z;xgg#{gEZ%@YyT0b16R`FLmukJb)tJq#D%ij^j@qfwq8+a3cbV+mg0RbXqQk1k!&=(@lxiet zSr0B@j)&XjaX_OaKer6O`dYD>ep>I0-p~L;=&zh-0JcIZKhrqSlA3E+_99v<^d!@H z#{Ec|6BmXt(no7|y~H)-#`Z-FbY}`i`VuvJ2<^O|-oS{i_9%*>{x$+z!5i6V%U-f< z7gVq1q2|ggGv~8;_89F2x0AB*MD$~6xpvB;6fG=qD)Ivm=O7r+wg+sW@q>!$8y2{F zF#cgnCuq-MU^yy6+-npD2F}R%IGv@W{ zgXSdZn(Yi$6LI009Oc!HZ(r;5tOuw#j+G(-IHG-Ee~dift%h{O5e!~(673qoa|@gm zOUnjbg5*%Q|Mdt7JfQb4dv&n4D`YjKwC3ss?Mu8i^k5G;Ik9Ij@?IM#u4<({Us`*c z{n~z3Jb?4!i&3bgX>rs0>WgASD$-jm-|RScb0N2DL^u?wrxSPGG~UCae^j3+xX>P# zEiVyNjyoD>VsgGRT$aJLF`o^0}!bjn4L@1 zx3s&{RMXrQkH1!2$mH$OHSz{$B;tZmzXXay-5RqYB6IaD%1Rl<(ungZwly8ARM*`$ zbFpP9&%3<56*t~Hv5-__89UK!y|`^9v>WAod3l8Wr;h1*(j_ObRmeq*0r0R;jH|ay zFCFZqO~^&vfqNBJ;j$jVz}fcE!%DnypDgN6)j#P&7wQ6U zJBtn^sgX2hWnEM8s+ahy=K?~}?zV=F+cd7^f>edm5XP8F@0b;2g7RJuRSY=uBPSpK zZ$lf+=-n0-Ins*2Vyg2aQ4qptmNPKuWY>=KJun3ma?*S(33D^@C3 z#ssL_yd1l;dCD_oued5L);hiEMQphhKre~y>_fEkD5>^2A7RgUP8x)_J$<3 zu$8!@rkS8K8TA&viMz^F^zmv;{+YN4AK{4F&cZ!UU~wFpd^zf{Odr@HN8QmkBYjO3 zM;^<$iIQPt-Vj&x23PbM$BH_@cOYN8$2z{`l}~!pIUBC%ukd))Oq4|KE-k#lVY^+1 zOV)m>ohY=9N@V5xC3l^()p@u;#tCZkrXLUi7$5t3ZkOq92SN41;YSuT==$gS{*O$Z zmy2X9i7`Z|pW2y8%ytKCRzQJ_G=FhM&d`vyuKzsCH*=Pt9q8^+P9@bZgmXqsHz!c8 zC_-y<)K>msf34fm?WIbv8O~H{GrR4ogppdv5mAIlv7X#XDvlOab85Fo|iL1xb+Z@Pw z<)F$1v(V4We)t09rEsBiqUl*L?!}gLF>bD}*4d#kMJ1fT{epv2A(53 z6W1w4rp*{ZKxa=d^LtLnL&(UeyvKzEFYeC(dJQOmPRq-m#LjIo$n|dFJp@TfX6d99QN$b%Om92=dr+0&3m9G%$M&6Rc1_~1Oie}xslt+AYXj-y(6!!t?6Pr z>x#{IRDk;DMO_B=s{CyQLbA*=`UxeHA~bhMi6X=4WEnP8;cXKUdBGXZDDD)q08*rq7?FaqiKci2=-KiQL5wG(5v+qhj|uEJ;$RE zaqBTrXFWF$CQ3s2(UYP;~sgLkfCoCZtYzmtzv=SYzOC4J`)jz zD>)1hJ$FSLd;(LUzVh*;zyQSDj<*X^N?LAP_7X`D?9h zf%-t+K|;KCG~}bRaPULE0Y8zKY&u4((UwP$V$1knh5#|-^0oQ%byoy9B(bICSj1F4 zPh8$gLdt2sUuTrRH=>!Lu%Nnd+=JZWkVTMXHmanX?BxAuvd7h4*92;8j^i3_l5juM zt-Z{Zvex2_Z})D^sd9bE#=nOmuvs6w2|^6FY+Tk5?(Kl>2TY&RERbeVBO~X_5X>~} z2qEqEj}jo~=JMiS0+)CUfa^W9Y%?y z3yCVyeyn=i@m*}VXl(4k<~CfAB_5J7^ZY0`VaetoS9EhXHam*eHomrdJMM_YXk-nq z`?|{sHfg^l(nZYrpl`w$9?bn0lcB^%fdON$Hry;-b@O7PH%b7^UQe=i-aD$Z=8zOQ zv@fE=byiofn8pR}B5b_FJV0UgB$E7+X5J#1giV<-pLJ#ab3tcCFh|4skaa<_-FCL{ zAs@Vls&d<*eWC1sMsH`@J`1 z4O)XA&e9aQv@%Jkm2~nBTy;aHavR$V&VCqkRLvw5WvHlHX)VkjoHg`3GJHn{J`B9> zN|4BtK9}UY!EFs6V1k$ndA`#%R=>ROe>{4$>!vw#Q?-Hm0VC;cSlc3td1xx}*zw8n z(FgvoAY|j5=*)?y{>%cI^VY;xt&1>QIu4@AoMZ-K)g~n9rsCK&lDRy-`B8kta=PI1 zZ-@A?=2~Nc`mLQp9g|fc6Koq4oLoENTvK?Ic4E3Ws~gni#+>RuVhqapGr{%F_WeY;L z=9$Ken&}3?)Y__AuyGWY7m|H1liWN?Z0`QUc6J?s-~!DNids8q6`)9i5`L%?PbGZ= zij{R_b#?Q1pyu(sQZf==A%E-`C=(m%#oNrxIB!bs=>#5gb@Mx1RYkf|N_B$||E=ra zRZ}+AL;oO2-2OFOkdsDF{bx=RJ)?)kbG0Ey#QIOem4Uh?VU1KH0H4=U%qP7g*U`H-hmt1>b75uBle9*`G@_Ffd>9w(2eu zH=$WlJ+_D>6kg{1G7etN@ggDdsSpZU@2n+77|!qOFgu(4Sn59cac!^P8nR8?!R#C% z_y$w~_s|V=-*(d6dhtPD`o19d8w-V+ZNk(USyfJ;>37*>C~GjqeJ$cK0y)IJ$*;Vv zOL9`XTdlGuFy1{D$mFW|>ps~Di-&94vhGyTFwBj9YL6T~^2(mOOIP7R4^zctj=ToN zF1dqy02cVbRkvtpSvRo9+8key z@a`-l&)TT~?7gc;jKPCuSC1^Yb^210`@*n(Se)$Z|MIR5Onh;8d@wC-5Ag0-WCe_<~O^%9?qQv3z%{ zJ1E?RXJn``dJzewVJbK@yxDcoE|1 zu$$N1t)rVX?N_nqWU>&jgkD0?$~;w7j@_dX|MuY&r9fsvJ!hG6Uyon8t(a91b4mtzBispaL# zv2Bt9>qs08qg|GhHRt8N2@l*PkKZCp`XfEZWe&ztgZvSZ)x6eL3c6)H{@uTz1(wI! zUXl&~NLfD6oGGYv`B_VRvx~DmZOvEcW?sn#-eP6dUO+^4ZVa7AaMve`=kW4^G*>&t z9$c>4oq^((;~=$h)`#U&?yng!80RuR1w8Eo0`ZCREn< z^ZjsH%nA{VS^LJdeSbP55)T9`t%)Gr*3zxmOdD3u72;{fni_nHK*DwLB>T}MBuCbZ z8$~>aotZCZ$N~kd=ZU;SsysV}wkx-JFvQddkK4xY zb;jOxr2lHIzR?&A8QY3-gEQL};S$-#dvr0|?{fcW>Ivrb0^9C4j>2@|lTpVzwS%!O zKy^m)eih8Pnb}_bDeWV0=A33?dK6yG{>ZEK*jk}ke%Tj+(V~#v*;$KDL58wC!m`Y& z?v8#*%A%CR;a9#Vx5jN;-gh}AhdOlQ>-bNuTnRbPNTR_HNDBW6zxk_dw>HmzqcD2C z0bg>paq5+FN}*j7!)9r$lE7#Zmhd&?^`j&R2LUFSud;aE`UFN(TT%Ozf=i0MK`8aI zs@JF4p#}arf~+m$WS0KA<(Wr6W={^+B=?S44iU-nmezk7LJzkx#REDU<6+U}!aVu! zD#v&nkZbtu*ROPj0oNRrt$A=20NWS0j%1*C8@+eGMI#ho%Ql*^Q%hOr>yFgR@ zOSPvA`}E0g@?g_Y9xoTS#XLx$OfqRND3$d zrhjxNoXlurOlSXJd*2?<^!~>mLPhE7R_Iic+zL_drBcbIl-n?2?xx)DL+K_|ZXuV- zt=w-LhEYifxnyPxF>{;cI_&oQIAu8B^LsqLfBpXXef?!-pS`cI`}6slw1as+;7cdR zC%2AYZbvH6tpoVvj#bU5n|Mq^4#K#~WoBZ>;2Jc~_%A@3KCIz-`%a$WXst*-)XJwX z;B->j`+94aT{C^Qd^##X>K8O`bzeI9rsXpZh+b*3a8@70ABnmag;rk*j`Js*+uy@< z7&pT9Nq2V)(YeHWmF0^4T!y+h3=BdeDdSiT4qqQC%N3)unyL%lSv{;Dpv@axfV`+6$ zo!YC>rvg|OaeiL`uH^bHSX^oBu|>OF>`z`vGUqox!yep=Sec-?@^txO%z!l5kiXpG z1Iwo?XVp7(R+63!ao0dRjo-bm{z)N-4}I6Q&E+r z*R-tHp3hk|9=CdXx$eKHXkI2^Rr=%1Q?bre_4mV!W{R?VY7jA~ZHX_5lm3a+Jws-< z0sC9C_ZO+{cWTiIvz`LC%06>xb#wAM1RFZofG=U(H49pr+$Dp=NjdM`mf(%#y@nBk%LJ`+Vs>?(=6-K5O%>6D{VmcrmK zGFV4=(JNobJJ|Gi$BdxPdPpP7ty0z8AAnFJX~3M7E0GQDq6rQ zNh((sc$vxBGZrXfbKNf3;+r_SLiLqXE^QKqk=0iS0j}`kCVDrvs-ENzGN|)0PPoTa zL$J-DpzWd%_Hj#kqzT%Q5GxV@ilz=Ttk0Y{LpKq6;5xAcIu3&#d_U|eP#=qn+%I5_ zCD?++X*DZ%hG!pv&z|H_H{pLUJsB8SJz4;@Y=+zWlCAKc{kyH*ok0(4PzNa9b)(l% zL$g#a1>K2DyS-)}M>v36BA{w z%`!nP?;2{DDI>suZ(!xEEnZG_Pl^>nftz3OIT=aIaP#tVnH}&iU{stwdS)rty?a!F ztAj>vqwG4nAPM_*w~ZSgPiVYphIUxV6G(rc&v-X7wZZ>0ZZa|ns?m|I{8(cmQ1N) z)U+rQdwE->%)AyVrO$c2y;wT)V<+`zjjk)y2DUtIg++7>Nd)qV_zW{TJ4WF(np$$J zpe1&JN(FkXg;$j^N8y6F=~q`hJ{N>~4^ZZy+|?_+GW}C8-(UJY->r16Yqi)*tP1FW zBKSo@D|EI+4>o3R+U*)$VtK}J}e z&#f2iYm$25jQ@mH-a(%EIcGK7j}nm*`5`&P)f#an{jN7PX>wsE?uaNl%kkWZYv7$y zMKRK~o!b;9t1vW|M`wJT@SogWdB4m2kkqF3yEe&;_hbEY8T50XTrkSQC%+jIU4-I1 z>7O6|+8pP?H>hI!O*x8;ZZ8bd$wB+w52?ETiD#zr4a)$3>YwOJ!; zKW7kC^~-nqg9{lVcj8-$ne{uXVVuJND};?b&q*1HO=fM~ULYbq3{j9y@vgMFYfNyg zq5kx#JM_g!vbil29(YoL2QgVA{mOv9PbptCB%Hn44`e54%73SrhB)`uy#zSAIgz2) zJwSGvDkn(gZ`zTf(I&q4w63L~&pk#sYd2QvTqS%P5dn(CxxPQVuuQSWWTUI3r~73E zr2Rldj-4(DSYp7e3){uMY7_kOERTc56o7IGg0um#XT7 z#b)ve#B`cbO4F{4E*0&=N5Y0uF#N_~3+cT}l4gEBDFXHy*blqPZCm28nmN$Bod;)S zLJRjU@XEtwsTDe0Li>~7ruCq>r2JkyYw;zz8q!g(+o~Y$ZLbqiaRLT?`IaYmx!b^< z@3qWpZZ6ix4Xu?@{SH*6^={n(dvP1Y(*xcVwgRz82&5eRuJAa=@beDVUL)zYR7!V~ zruxzY|HXU}ACDK3x0@5;SdAohPZ|)@T&$tb;t1F>Sq!1|iJv0229l3e8O}kA;_b*D zU!O!TCrnjP$`>nQ0%%B=*(W?@qiV_C1EKYHdYu|2INaU(_p~1GQ&LXy@0PQ?y`RQP zd%IX`vE$vUYb`T5^0LOMKv{MHYN}+i(l4%LVF{#^>?zIJKZj#`bj>ajTl}tUqzWZv zerO+ZXDMdM$V~%jJdoEWrdx?2iVqu$qi1g=P=P+bO@SmJA_Gi^FmXv-!8H(yEy}`D z`bO03$l-xF;&NL+zyq3qev(SfuO2D*N9k(&unhrc;KX(1XwVA~ez(&GHr`_WSXLf& zjA-MnpfrM6vbJyEt4?)KTStx&kCv4d7pD}RYao&HxIRdDzeu~AAFbX(8OxfaHJacBD6uwL+xI?LiVuh`%ee@{J5r}-jYwM39+-qqspWVH{^q$gD$_}s> z+>@XtrK9q^8lqxW=CM+@(6F9$>3zH8Bp{?y3*5-n!A=H3ow^p)tNRotUi z8Fl_R>p;I5d`tj?k2pKiCN#6sJ7)@p@f?!=w%gV5B!e*h>PP~*9*)g#=(jA3A+bi( z_3Fa95B|7DA>d<{NG4iZc9)%NyyF+2TJu&lS3Z?;XG}aWenRcDWpQ9skqeL~)RS-@ z1bh6$%jyofGT6`6!`s|9o`qnIYOawi@h&9CKYZe7d}^mJ(8t0Xjwz$UW2LP41VQav@G z25h7ej4U}w^J*NMp zR+AC-6$Gl~V%<@P<+*}G(L^K{TRZMxGgZ$uck@=MA7Z_c;PftS9_$nk!IdwLx!#$DQ}I!Rjgr$NGo z2j&tPqz6UkO^OHSYbfBhK(qJ5smLh16}l+j#cC0|~gGbCaNjn79#A zQ`>9dAA&KL=5!-S88vRh@28#HVVZ6TlPK#HENps%4GK*6llXUroWQ3Fv@_6>YD2u` z>z=~mVb`kSzX%BikcRs;+CEZpKA+~M1(3cH-+c9*YX+YT=c;%cE4X?#_qH$A>sJok*#$Am&f~k|Vf7wlQ4Fu8r9Ja*nQWUfWm($TI23R0x6VzYL7B zGTKB^g<%YZhm%FIC5-4OIB!3dElSMh6d^{YvVE`KarsxYY>qM)psTPKrsLHimDlYz zSF)mR_yA0*%|kp-S8d4)_NS7qGDm4`tojpjm1t^q?cF-Y!z z$ZtQsU&*-l-n&+qg+HrS>5mh?rg)PW3hGXN)E@owPX;*+#a2S zwdA1b$E}L5kx-=T+%ZZfa38@*0NL&g9@Uh(6eJg1uWYuPDRlie;xMZNqoG1(kTZ>wh=ior`$$YV>ZuG%Y zb$qF7APQiFm{E5Px&^IhccDsw<`Olgc7ZB8)!tqlqAEmBWT7>DDBNI1-)4zx>=H z{f@PHZXiWVtX_IL`!jsHBK?q>*NQPBu+)*26l6eOD)qLp@q95$rK@4=X5Jie4`U2* zf^24&Y6@Q20~yaOwLVjQsiAzWy*O$g-DPI8SFdpx4CD$PQ1QM@0L0(E(XI4ghz*W9 zij%WJkS5}Y$XPZsw(+kD<^w`J2jY|%gUX4kR2|E4am3c0)4lM^rCUb;t^_}m0v52~ zJOHN}DYvDM!mU_{SI!;=Q{U~G%_F78P|CXeKJrDwoo%?{7<3BA%?RI*kX(#NY{7L} zbaf0XaJoq*iWHXK9LZ}rzl>2$zQh)%ptlGV2HgCm#`SB|!nm*^eijQ}>AJE!0fRSM zJ0a)a2B%b?TR?Zyq<1Ri8^09!MKn2?OG{19_~y zz`V3OCZk>K+RxqCnfSZ*1u0nS5x7>SDWWbjoF z)~VC;T3D)$)0UR7D!<~ERbRQ3#uYFY<1h0$f813Mz?e$MUSVhO9YHjWEb2-~M?#DA zq~J5il<9qn$mGi;+;fpyD6|Qc&)6fSlcGd>G3IVWr*Vow>X%PH84a+=eXyj+Ae~s& zQcW?MoS9;%SloqPRHNqGCJ-f3UHLvyC+I_{;5Ti%=KgR}{Wc5al= z{I6K;H1EYDo6u=2g07=V8z)1GUIOg@`1Gulvg^XG5_ z2V^DvuEnWbJ0!?Eb0n34yo+;8np}w|dp0E%wDKe>e7-NJ4~>noAM}01VaPMqH~3dX zXN2R?!2snj;yFwB~u0)sl8-=eYtJUuzG6Atxd-6!>Lo z;Ej;!>Rn}#75qT?a+1`s6P2ubg9j(lp?P! z0<^^=(l)L&p}nCA95}9pf}(?chXR@aLu31LubtKbDUb`M*ziI%!j^^f{0o~@a4Hta z;QP%*iYS@#@1~}3lmeVOR1v4=HHe#-ipgS1TmtPQZbWlyOa^Z!~zdCzsn z1ehTVa;uP1PMFd_VnqasXa{T3!Y;u~WghcS-5jQ?#Z#8bIf`Lk-j4zX^>!JVA6`sR zlPx5{RNf4OQXbwuvjn#&zcUOFevA)GcoPA1t-KuN0d;oadj0#=bF1@sM9< z8k3n}Rf+2FVZEA+#)R6_4Noq4jQCtOEYJpO(w7CAy;W~2z3Uo%DGk?Q9BQKn7B?uk z=Ev@aZ^?itwIvHkpYZLUQ{#HBw&HP z*Agll|CKYxM8Q)QLq2`e8SBOJfZZZWxXq7mYpw+vA93}?jE>u$ue$KURx7}F@_exU6RRA z3wKx$A03?~J$I4F;EUYvkE*`B4k=l6u0Gs8oF-<_R3%(tifjs6H^RBgY5{0Kbq6W~ zjwERyRLEB2#RZ&YDpU0Pcy_sKE=lM;{M;e!f@jTDWRASk;;8n`GY~|SR-}__UM`Nd z2-*8Oa5eRsbt=dpTH5`AY8?*`+p-64m#5r|wGh@JJ#_fvFOgzCljw87p3{Vx%AH)< zm`WFmDWhE(XAYZPwvn~d0@S)qW}FRtu*&6As4LRLT$zj^DEB-4@>v;qE~zFq5vzr` zIn2wAOJ_i1_8o4)M7;GLSom^zndp6nPz@hVkY4^~6iHAunh0TUb)hzlJY(S4l%y$0 z2qIDkdo}1`ylieJTFSVl7CCn0*ilbmifyt%HNo9JwLVa3F`s4JaYB)zq{2F97gnEn z|HO}cW8wI_+4FAk;6t&;Rc$wB-ftCa_{NtTx#{&NZq$VuX&1Ii8dRxg6q|bkrwr~A zH0Xjf8@PdU;|(6jV6jCekK5vZpj~x+5pLbp)_SI1Q{&aQO4tv$K!^KmP3rMm_ey=8 zcBO6a6ZtVCqX4de^{eFXWKnLF>{M68q7?it%WUwC0FH});JcZkom*p&=IT1zR87eL z`8dw62EXr7a&h^=Gn0YKFO8?M)fB_T*PG*Ct7_qs*dQ_}aLMa|)cU#jtuDTUL!_`f zvZVM`WseyF7-~~I1=l?i`>4(QY~Fi>P5h+IQu80}yM(ZJ_k+!k+Ey%fJPbv{mU1G4fGlmHY|8J5CNoF{ z%sdF_KsC*G&~?3F{_p?EJ{A&l+@3+<(Q8T#%Dv6X5@CtzefuIfU;+Wc-zV9>EEAlE zFSkTreR0qFzO1j=mDUvAxGxVs{)Aw?yqd{Dy|@y=bw-LcWeIeU+x=bmxR1hbZi+Rx z;P72r_Gxf`M%~oD*>N7kwG$pn*)AY~cld^I$Q?fH{nq^4fMu}W*_LYaDcZkurL@xp zC{hzjY;@MX=g)&bN!}f>Ht*;TGEN55yx*$hzZKO!TXw|{+5azWPi)^`b2;coCp z%C1ZZBcznxa^-^dGbZ|#>DZ^q0z?l+qveH0|9Ga|mDR$<$TH8=H)TbFn{L+XT==hr z4C+IlxopnN|Kk~dUJjlFDqU}HLLL0aA^J0*hqr)jc%aN3zG2e8^40H~AF`<#JxxSK@5zr3uy z4bbA|?B9TK*f6}!L*`!XPVpDs*81NUbJIWP1M@P^Fy8eq-}sLqTV7cu^bl7(xLF1L z>$vX%^CF(Ccl$2}pb2cP|CI{N8ldd|IxCt799N+%mJ`q>tu<7a#U;Am_rJ<`J*S(#iTq zP$z5g4cCrCt9E9RIOzPkjLBiNtqZR4`E>LNK~LrLP9_(3-a|l~KykP~GC-qxySzeq zAg807Su6FzYk^$Er^oBs=C*h(y8FW+1+O*W^X}|jA+M~D-!PV|V2d2M4od9P9W{Kk z+kcI=a9jEIQu&HN6StlAT1{U^ys(;a8`PoY-K~8!+j&~yCK7Aw6|51#C12lP19kja z_RRSn*R3dLPmoT`*uRGeecW5 z4f_fe9;HuGpW9{f<*u>+@8%Z{nX%T~Te@s=sCTIdnzd4l$$ch(Hxz2PQzFSkDgxI! zZAW=vvrw10C4T)I%OnQ{zbo8-GTets(G?Wgi!eZzqj+A6;XCs5>YQn5n+U0G^15ed5!66v>ftMbEcEionQ}i^I2>=k&imlV}hcE89B7xqbi~SZb={6s)$d zZOxVtmL1oh+aABlEpue+&=k+#}0<3474>kfw{|>rg^$@nPno08PhE z4AO}{yS+pI@DHtu!LFLx`NnB6y|xtI7sj7eHH5f1R_Q^X9sGpG_Nu=e`$Gj)Cce9S z>tup~W}<^Rj-2phI8=!}9P96F0d1ydZd@cCR_K6N&U>w?4cGC~4rBNY`3bnwi@O@F z=dh|7qu9>DuDQo;(AB%c3BhqaR4Mjp=~Uc(;wSdmA1JxaFiFc(5!QOz*nz&?3{9P zIvyPx*_!Jy;aB<6?G`-0f+?>?SaTosa^#;!oSo=v^dt+O)7 z;7-R>tyV;wEBN@K+pI?AxZ&H49+gHJ;4$RG_gKT$^5`Ka`3fh+MZl>q-!(`jPIdPx z%V*P^<88f=Qf)Waj9+?(AdO%V-?qr6Wt&e@Bn#*6_fgkJ%T`lssYD8~~rCiS>ozyB4LnmWz+$g0ClEIfb-{ z5?En2lIRLuRrmatR+t9Btpp8i1C7z^GNjLr?gm$+E%wJAm-=y)X-Q4!ST;Q@7Mur>WC2YF(;Nm;>n4Y7v%srr(^sB?JhD;Kw7b_D9o` zJyZiE0YbCP5g$+{tKTPSrjbkASE#X=K658wH7)+*8qCz%%%&cIe_dK3SAS5)j%*+~ z*v7p|Q(M;s>0divKr=X27A`eC ze!iCu(I5AQFRJer>fA9bAuoq4dIPKb_4Kk8VZ%fWfr<3*QWauad?)oR8&aT{r3=?s zL+Ghr%PcZ(3KZp%G_^{s&QHrf!Nw}~OzrtC)jXwlqiYw&Zk!iTR7!_wT46A34!qxL zma4K#=dEjqAb}4>Jv) zEg_w(M?q|E?QgR$Cdg6bcaYZ?&hZ+sa5_81l9|A9N3Gi8_h`q=#V662-tqma%r{!o zYM+V!m7p&1wzKSYU2O5mH9ZSBTqjp~(8G3aL#{C`0VmkBwkgaN*DIyG`20hlX_)_? z?bj!<-jT8n!cnsUZo?1WJ2oVPfm;WVA6Y&hXGUxEiL9JFS@;S*gN`?IV5Sov;>XLc zu5bd7d{) zru=Gumhub#%vFcyZ1QhGnf8$Vqp427&+;^mqEE7pTgQ9OsC0R(gUQplfhB`j7Oi&H z{VjSmAY2~DWdR)Z7cOTJfC2TEVjZzb`1Im$TP$RS_p5D5NAIDS(?=H+lulSLxSse- zj$ctbIi|{dL@*d|{J{^H9H0RE)?b!lkM-bo_@%~YrODr}J!-99rFyfuCjVXPt<3u7 z{$cs8HG;RWur}=AFOAC6z01n{%b#CDDr-qcm0%a&BaVr%{CQWy zq_)kciTL&M>L)jS;BIN~Y0B8j1F^p!3cR-FRA=;O7QzrSqLNB(|G!t%StKEBP* z`j5~2?^(=+`~Ppff;6`r+p>lI#?_1GZ~f!YtsRvAosa*I&&U7H#M(9ZpN##V9{I2J c?k^TGN3KU#SUD8706$kR>0ZpgU>W*<04Q5IasU7T literal 145011 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%0AsRSeJhoC7y3O;lmH$ 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 A@Bjb+ diff --git a/chapters/playframework/index.md b/chapters/playframework/index.md index 4be63ca..3925211 100644 --- a/chapters/playframework/index.md +++ b/chapters/playframework/index.md @@ -14,6 +14,7 @@ By: [Herman Banken](https://github.com/hermanbanken), [Vincent van Mieghem](https://github.com/vivami) ![](images/play.png) + **Abstract** @@ -88,6 +89,7 @@ Some features are not modularised and live in the play-core module. These include routing, MVC logic, form validation, localisation, and several utilities. ![](images/module-diagram/modules-main.png) +_Module View of Play_ The diagram above shows most of the modules and their dependencies. The test modules and Java-specific modules are excluded to provide a clearer view, but can be found in the [full diagram](http://delftswa.github.io/chapters/playframework/images/module-diagram/modules-full.png). @@ -138,7 +140,8 @@ The fact that Play has less questions could mean that Play is easier to use than Both seem reasonable: Play is very well documented, and Spring MVC is widely adopted due to Spring, convincing people to use that whole platform. Compared to their estimated sizes (see [jobs](#what-is-next-for-me) below) however, Play has relatively many questions. -![](images/frequenogramStackoverflow.png "Questions on StackOverflow") +![](images/frequenogramStackoverflow.png) +_Play Questions on StackOverflow_ Getting exact usage numbers is hard however, as Play does not advertise itself in response headers. This causes sites like [BuiltWith.com](http://trends.builtwith.com/framework/Play-Framework) not to measure its world wide usage correctly. @@ -153,7 +156,8 @@ Our metric here, the amount of job openings, relates to the question of how adop The more jobs we found, the more adopted Play is. We looked at the amount of jobs on [Indeed](http://indeed.com), for which each of the frameworks is listed. -![](images/job.png "Job Openings") +![](images/job.png) +_Play Job Openings_ From this we can see that there exist frameworks that are far more adopted by employers, concluded from the amount of job openings. We think that this is due to the fact that traditionally PHP and JavaScript are the most common web languages, @@ -194,7 +198,8 @@ This service is configured to automatically build certain branches (such as 'mas Also all pull requests will be automatically build, or can be rebuild by using a certain keyword in a github pull request comment ([`@play-pull-request-validator try again`](https://github.com/playframework/playframework/pull/4007#issuecomment-76663971)). After the build all unit and integration tests are run and the result is reflected on GitHub, marking the pull request as ready to merge, or indicates whether the build or tests are failing. -![](images/jenkins.png "Jenkins integration with GitHub") +![](images/jenkins.png) +_Jenkins integration with GitHub_ ### Releases To obtain the Play framework binaries, you can use the [Typesafe Activator](https://typesafe.com/community/core-tools/activator-and-sbt). @@ -239,7 +244,7 @@ Typesafe is a stakeholder that can be identified with multiple roles: it is a ** Other stakeholders can be identified. Together with their roles they are listed in the table below. | Type | Entities | -|---|---| +|-------|-----------------------------------------------------| | **Developers** | Construct and deploy the system. Most active developers are employees of Typesafe.
@[jroper](https://github.com/jroper), @[guillaumebort](https://github.com/guillaumebort), @[pk11](https://github.com/pk11), @[richdougherty](https://github.com/richdougherty) | | **Users** | Users of the Play Framework are the type of stakeholder that make use of the system. These are companies that use Play to build their (often client-facing) web services:
[LinkedIn](https://www.linkedin.com), [Coursera](https://www.coursera.org), [Klout](https://klout.com/home), [The Guardian](http://www.theguardian.com/uk), [BBC](http://www.bbc.com), many others | | **Supporters** | Cloud Platforms as a service (PaaS) that support the Play Framework for their users:
[Amazon Web Services (AWS)](http://aws.amazon.com/opsworks/), [Jelastic](http://jelastic.com), [Heroku](https://www.heroku.com), [Google App Engine (GAE)](https://cloud.google.com/appengine/docs) | @@ -247,12 +252,14 @@ Other stakeholders can be identified. Together with their roles they are listed The figure below shows an overview of the stakeholders discussed in the table above, and also shows the relation of Typesafe's other projects with respect to Play. - +![](images/stakeholder_diagram.png) +_Play Stakeholders_ In the diagram below, the stakeholders' power with respect to their interest are shown in a [Power/Interest Grid](http://www.mindtools.com/pages/article/newPPM_07.htm). Stakeholders in the top right are the most important stakeholders of the system. -![](images/interest-power.png "Power/Interest Grid") +![](images/interest-power.png) +_Play Power/Interest Grid_ ### Context View The context that Play resides in is mainly dependent on the projects that are developed and maintained by Typesafe itself (sbt, Akka). @@ -271,7 +278,9 @@ There exist a number of web frameworks which can be considered as competitors. T * [Lift](http://liftweb.net/) (Scala) The diagram below explains context and the dependencies and relations between the discussed components. -![](images/play-context-view.png "Context View") + +![](images/play-context-view.png) +_Play Context View_ ## Future[Play] The Future[A] looks bright, is a bad inside joke. @@ -288,7 +297,8 @@ The Manifesto is really about providing a coherent approach and vocabulary to th Touching the core of modern Software Architecture, it defines 4 main aspects: _"we need to build: Responsive, Resilient, Elastic, and Message Driven systems"_. -![](images/reactive-traits.png "Reactive Manifesto") +![](images/reactive-traits.png) +_Reactive Manifesto_ With Play, Typesafe addresses these aspects and makes it [simple](http://www.toptal.com/scala/scaling-play-to-thousands-of-concurrent-requests) @@ -305,7 +315,8 @@ Thist allows the main HTTP *execution context* to handle new requests, even when The image below [by Julien Richard-Foy](https://www.packtpub.com/books/content/handling-long-running-requests-play) (major contributor of Play) illustrates this: the execution of code is interleaved, while the threaded model would block the entire thread. -![](images/reactive/execution-models.png "Threaded vs evented execution models") +![](images/reactive/execution-models.png) +_Threaded vs evented execution models_ Until this point, this section could have been about NodeJS or any other modern platform as well. While basic I/O requires only some minor usage of Scala's Futures (or Promises) which can be then handed off to asynchronous actions, @@ -335,7 +346,8 @@ Julien Richard-Foy visualised this in the image below. The two white horizontal boxes represent the execution contexts with both two threads. Using execution contexts, related work can be grouped, keeping the default context fast and responsive while still waiting for legacy blocking operations on other threads, in a transparent way. -![](images/reactive/2400OS_05_08.png "Execution Contexts") +![](images/reactive/2400OS_05_08.png) +_Execution Contexts_ However, in general, blocking operations should be prevented. It is better to divide the work into small tasks that can be executed individually. @@ -364,7 +376,8 @@ These streams can be long running, but the tasks themselves are small, this is i Using this pattern Play can also handle thousands of concurrent long-running requests. This is for example shown in this small [chatting application](https://github.com/matthiasn/sse-chat/issues/10#issuecomment-42857305) of Matthias Nehlsen (@matthiasn). Having a single server handling these amounts of requests is certainly not trivial using a solely thread-based model. -![](images/sse-chat2.png "Chat application") +![](images/sse-chat2.png) +_Chat application_ #### Akka Besides the Iteratees library, Play also integrates nicely with another product of Typesafe: Akka, From 15a1505ce31225946087ba2b4c1d2d69d857ee5e Mon Sep 17 00:00:00 2001 From: Arie van Deursen Date: Tue, 12 Jan 2016 16:19:25 +0100 Subject: [PATCH 11/18] [angulardart] code and image captions compatible with pdf/epub Avoid using