MSE 102 is a course which builds off the concepts introduced in MSE 45, and offers a deeper look at the atomic-scale properties of materials As the title implies, the course is divided into (roughly) three parts: bonding, crystallography, and crystal defects. This course is required for the MSE minor.
Not official prerequisites, but a good understanding of Math 53 and 54 are definitely needed.
**The treatment of group theory in the MSE department is quite different from Chem 104A and should not be taken as a substitute. It is also important to note that some conventions in the engineering field are different than the chemistry field in regards to symmetry and group theory.
Three hours of lecture per week, plus an optional two hour discussion section in the evening which is meant to help with the homework and occasionally cover extra topics. Problem sets are meant to be challenging on their own, but significant help is given at office hours and in discussion. These problem sets can take 1-2 hours for a student with group theory experience, and up to 5 hours for students with no experience in group theory or quantum mechanics.
This class is best taken directly after MSE 45.
I took this class at the same time as Chem 104A. Learning group theory from the MSE and chemistry perspectives is interesting, but these classes do not necessarily need to be taken together.
Students typically take MSE 103 and MSE 104 after this class.
In my opinion, this class is the MSE department’s equivalent of Chem 104A and Chem 120A. It covers a lot of topics in a short amount of time, but can be quite rewarding. Personally, I found it interesting to learn about bonding in the solid state because chemistry classes rarely focus on extended materials. Thinking about symmetry in the solid state can be challenging compared to molecular symmetry.
Also, discussions are really important for this class, even though they are optional!
Written by: Sophia Weng
Last edited: Spring 2019


{% import "bootstrap/wtf.html" as wtf %} {% extends "base.html" %} {% block title %}Request a Record{% endblock title %} {% block custom_css %} {% endblock %} {% block content %}
Please make your request specific so you receive the fastest service. After you submit a FOIL request you will receive a confirmation number so you can track the status of the response. The agency will notify you about how much time is required to respond to your request.
Selecting a category helps clarify which agency will receive the request by listing agencies grouped by categories.
Select the agency that will handle your request.
Hide Agency Instructions
90 characters remaining
Note: The agency, category, and title of your request will be visible to the public. Do not enter personal information here.Ex: Queens Blvd Roadwork Permit.
5000 characters remaining
Note: The request details you write here will not be visible to the public. However, the agency may post a description of the records provided.Ex: Roadwork permits for work done in on Queens Blvd. between 40th and 45th streets, Borough of Queens, in September and October 2017.
You must select at least one request type from the dropdown below.
First and last name fields are required. The Email field is optional but recommended. If you do not provide an email you must enter either a phone number, fax number, or address in the Alternate Contact Information section.
This information will not be publicly viewable on this site. You must provide contact information so that the agency can respond to your request for records.
32 characters remaining
64 characters remaining
No information entered in this section will be visible to the public.
Fields are included in case alternate contact method is needed.
128 characters remaining


The Manifest logs the contents of assets compiled to a single directory. It records basic attributes about the asset for fast lookup without having to compile. A pointer from each logical path indicates with fingerprinted asset is the current one.
The JSON is part of the public API and should be considered stable. This should make it easy to read from other programming languages and processes that don’t have sprockets loaded. See `assets` and `files` for more infomation about the structure.
Create new Manifest associated with an `environment`. `path` is a full path to the manifest json file. The file may or may not already exist. The dirname of the `path` will be used to write compiled assets to. Otherwise, if the path is a directory, the filename will default to “manifest.json” in that directory.
Manifest.new(environment, "./public/assets/manifest.json")
# File lib/sprockets/manifest.rb, line 25 def initialize(environment, path) @environment = environment if File.extname(path) == "" @dir = File.expand_path(path) @path = File.join(@dir, 'manifest.json') else @path = File.expand_path(path) @dir = File.dirname(path) end data = nil begin if File.exist?(@path) data = MultiJson.decode(File.read(@path)) end rescue MultiJson::DecodeError => e logger.error "#{@path} is invalid: #{e.class} #{e.message}" end @data = data.is_a?(Hash) ? data : {} end
Returns internal assets mapping. Keys are logical paths which map to the latest fingerprinted filename.
Logical path (String): Fingerprint path (String) { "application.js" => "application-2e8e9a7c6b0aafa0c9bdeec90ea30213.js", "jquery.js" => "jquery-ae0908555a245f8266f77df5a8edca2e.js" }
# File lib/sprockets/manifest.rb, line 57 def assets @data['assets'] ||= {} end
Cleanup old assets in the compile directory. By default it will keep the latest version plus 2 backups.
# File lib/sprockets/manifest.rb, line 138 def clean(keep = 2) self.assets.keys.each do |logical_path| # Get assets sorted by ctime, newest first assets = backups_for(logical_path) # Keep the last N backups assets = assets[keep..-1] || [] # Remove old assets assets.each { |path, _| remove(path) } end end
Wipe directive
# File lib/sprockets/manifest.rb, line 152 def clobber FileUtils.rm_r(@dir) if File.exist?(@dir) logger.warn "Removed #{@dir}" nil end
Compile and write asset to directory. The asset is written to a fingerprinted filename like `application-2e8e9a7c6b0aafa0c9bdeec90ea30213.js`. An entry is also inserted into the manifest file.
compile("application.js")
# File lib/sprockets/manifest.rb, line 85 def compile(*args) paths = environment.each_logical_path(*args).to_a + args.flatten.select { |fn| Pathname.new(fn).absolute? } paths.each do |path| if asset = find_asset(path) files[asset.digest_path] = { 'logical_path' => asset.logical_path, 'mtime' => asset.mtime.iso8601, 'digest' => asset.digest } assets[asset.logical_path] = asset.digest_path target = File.join(dir, asset.digest_path) if File.exist?(target) logger.debug "Skipping #{target}, already exists" else logger.info "Writing #{target}" asset.write_to target end save asset end end end
Returns internal file directory listing. Keys are filenames which map to an attributes array.
Fingerprint path (String): logical_path: Logical path (String) mtime: ISO8601 mtime (String) digest: Base64 hex digest (String) { "application-2e8e9a7c6b0aafa0c9bdeec90ea30213.js" => { 'logical_path' => "application.js", 'mtime' => "2011-12-13T21:47:08-06:00", 'digest' => "2e8e9a7c6b0aafa0c9bdeec90ea30213" } }
# File lib/sprockets/manifest.rb, line 74 def files @data['files'] ||= {} end
Removes file from directory and from manifest. `filename` must be the name with any directory path.
manifest.remove("application-2e8e9a7c6b0aafa0c9bdeec90ea30213.js")
# File lib/sprockets/manifest.rb, line 118 def remove(filename) path = File.join(dir, filename) logical_path = files[filename]['logical_path'] if assets[logical_path] == filename assets.delete(logical_path) end files.delete(filename) FileUtils.rm(path) if File.exist?(path) save logger.warn "Removed #{filename}" nil end
Finds all the backup assets for a logical path. The latest version is always excluded. The return array is sorted by the assets mtime in descending order (Newest to oldest).
# File lib/sprockets/manifest.rb, line 162 def backups_for(logical_path) files.select { |filename, attrs| # Matching logical paths attrs['logical_path'] == logical_path && # Excluding whatever asset is the current assets[logical_path] != filename }.sort_by { |filename, attrs| # Sort by timestamp Time.parse(attrs['mtime']) }.reverse end
Basic wrapper around Sprockets::Environment#find_asset. Logs compile time.
# File lib/sprockets/manifest.rb, line 175 def find_asset(logical_path) asset = nil ms = benchmark do asset = environment.find_asset(logical_path) end logger.warn "Compiled #{logical_path} (#{ms}ms)" asset end
Persist manfiest back to FS
# File lib/sprockets/manifest.rb, line 185 def save FileUtils.mkdir_p dir File.open(path, 'w') do |f| f.write MultiJson.encode(@data) end end


--- layout: post title: '"Tell a friend" resulted in suspended Facebook account' categories: [] tags: - facebook - finance - mint - security status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
Tell a friend" resulted in suspended Facebook account
Mint.com has been a financial life saver for me. I can finally track where all my money goes and set a budget that I can follow! However, since its been acquired by Intuit, quality of service has been a little erratic. For example, a week went by before they resolved a problem with sync'ing with my bank. Its hard to fault a free service like this, but there are some things even a free service should not fail on - security. For Facebook issue, it just looks like Mint's third party promotional partner did not follow protocol with Facebook. I spent last evening changing all my account passwords for fear of a real phishing attack had occured.  BTW, Mint, get your act together and charge me for a "Pro account." I'll pay!


Base package for the Dasein Cloud API. The entry point into leveraging this library is the {@link org.dasein.cloud.CloudProvider} class. The API does not currently support any fancy bootstrapping mechanism. Instead, you simply construct an implementation of the {@link org.dasein.cloud.CloudProvider} API appropriate to your target cloud.
The cloud provider gives access to all supported services within the target cloud. Any service
that is wholly unsupported will return null
. An application will thus request
its cloud provider using whatever bootstrapping mechanism is appropriate to its environment
and then request the services it desires:
// Print out all regions supported in this cloud CloudProvider provider = new AmazonWebServices(); ProviderContext context = new ProviderContext(); DataCenterServices dc; // Not shown: Setting the AWS access credentials // When done, call provider.init(context) with the set credentials provider.connect(context); dc = provider.getDataCenterServices(); for( Region region : dc.listRegions() ) { System.out.println(region.getName()); }
Begin implementing this API by writing an implementation of the {@link org.dasein.cloud.CloudProvider} abstract
class. The simplest provider package for Dasein Cloud is an implementation of
{@link org.dasein.cloud.CloudProvider} that returns null
for all services. Of course, you probably
want to tie into specific services and thus your implementation should return implementations
of all relevant services.


Table of Contents
Chapter 1
Chapter 2
Unlinked
section
with
nested
HTML elements
Linked sub-section
Paragraph
A
link
with
nested
HTML
elements
A link with
newlines
splitting the text
An unlinked element without children must be ignored
Page List
1
2
Landmarks
Table of Contents
Begin Reading


Ocean [aj04], ocean, in Crystal Sea
Last updated Turn #124
Ocean [aj04], ocean, in Crystal Sea
------------------------------------------------------------------------
16: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
16: 13% damaged, arrived from Ocean [aj03], owner:
16: Phantasm [n4b], Imperial Empire, duke, with two workers,
16: eight sailors
17: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
17: 13% damaged, departed for Ocean [aj05].
17: Hungry looking birds circle overhead.
Routes leaving Ocean:
North, to Ocean [ai04], 6 days
East, to Ocean [aj05], 6 days
South, to Ocean [ak04], 6 days
West, to Ocean [aj03], 6 days


Mass Pattern Search (Menu
Analysis
\ Tools for Analysis)
Mass pattern search will be part of the next version.


filename = os.path.join(app_dir, "canvas-rc.pck")
if os.path.exists(filename):
with open(os.path.join(app_dir, "canvas-rc.pck"), "rb") as f:
rc.update(pickle.load(f))
def save_config():
app_dir = data_dir()
def open_config():
warnings.warn(
"open_config was never used and will be removed in the future",
DeprecationWarning, stacklevel=2
)
return
def save_config():


Web Components: custom elements
Standard Link
Standard Link (Focus)
Main Link
Small Link
Main Small Link
Web Components: Polymer Mixins
Standard Link
Standard Link (Focus)
Main Link
Small Link
Main Small Link
SASS: Mixins
Standard Link
Standard Link (Focus)
Main Link
Small Link
Main Small Link


SoCaTelevision™ is part of the Inland Empire Television Network™, located east of Los Angeles and west of Palm Springs, in the heart of Southern California, the Inland Empire. The Inland Empire (I.E.) is one of the largest and fastest growing regional areas in the United States. The "I.E." encompasses the counties of Riverside and San Bernardino, and is home to the Inland Empire Television Network™
SoCal Television™ is an on-location television production that ventures throughout Southern California to showcase special travel locations, entertainment, tourist attractions, upcoming current events, and local news. Along with fine dining reviews and MUCH MORE!
SoCal Television™ can be viewed online on the "Inland Empire Television Network". It is easily accessible and broadcasted worldwide over the Internet.
Watch SoCal Television 24/7 at www.SoCalTelevision.com
Please Like and Follow our page!
SoCAL television is also distributed through DVD. Contact us for more information about DVD's of the show.


Since the day I invested in some SP 2 years ago when I first join Steem, I’ve been constantly looking for an investment tool that is going to repay my hard-earned SP in a various way.
There are plenty of ways to fully utilize the one’s SP including:
- Self-voting 10 times a day.
- Delegate all the SP to voting bot like @smartsteem.
- Selling votes to voting bot
I definitely not interested in the first one. Yet I don’t like the idea of giving away all my stake to a bot just for the sake of income. Maybe I will do that the day when I decided not to stay active here.
@justyy’s YY Bank system turns out to be the best I’ve ever tried.
I started out my Steem journey in the CN community and @justyy was the big shot in the circle. He started the YY Bank initially for the sake of CN community as we were quite small compared to the others. I first joined with a delegation of 100 SP as the project aims to support my fellow friends in the same circle.
It works like some sort of voting bots while giving out daily interest even investors stay inactive on the platform, just like what a bank does. Read more about it here.

I’m not going to do the math here as I did not bother to do a detailed experiment or comparison but YY Bank just clearly won in the battle in term of investment return.
Collecting my delegation back and put it all to the YY Bank
I still want to hold most of my SP and I usually delegated out 20% of my power which is at the acceptable level.
I guess the YY Bank is not limited to the CN community anymore but you can always check with the bank owner @justyy or check out his post footer in every post for more detail. Give him the same amount of delegation that you gave to your favourite investment tool and compare the result.
You will be surprised.
Posted from my blog with SteemPress : https://fr3eze.vornix.blog/best-banking-system-on-steem/
This page is synchronized from the post: ‘Best Banking system on Steem?’


Please use the following code to recover your account
Go to the following link to use the code. shauting.com/recovery


Security Server Installation Guide for Ubuntu
X-ROAD 7
Version: 2.43
Doc. ID: IG-SS
Version history
| Date | Version | Description | Author |
|---|---|---|---|
| 01.12.2014 | 1.0 | Initial version | |
| 19.01.2015 | 1.1 | License information added | |
| 18.03.2015 | 1.2 | Meta-package for security server added. Legacy securelog module removed | |
| 02.04.2015 | 1.3 | “sdsb” change to “xroad” | |
| 27.05.2015 | 1.4 | Some typos fixed | |
| 30.06.2015 | 1.5 | Minor corrections done | |
| 06.07.2015 | 1.6 | New repository address | |
| 18.09.2015 | 1.7 | Reference data in 3.2 updated | |
| 18.09.2015 | 2.0 | Editorial changes made | |
| 13.10.2015 | 2.1 | Editorial changes made | |
| 10.12.2015 | 2.2 | Updated the installing of the support for hardware tokens (2.7) | |
| 17.12.2015 | 2.3 | Added xroad-addon-wsdlvalidator package | |
| 19.05.2016 | 2.4 | Merged changes from xtee6-doc repo. Updated table 2.2 with p 1.12, added chapter 2.8 and updated 3.2. | |
| 30.09.2016 | 2.5 | Added chapter „Different versions of xroad-* package after successful upgrade“. | |
| 07.12.2016 | 2.6 | Added operational data monitoring packages. 2 GB RAM -> 3 GB RAM | |
| 23.02.2017 | 2.7 | Converted to Github flavoured Markdown, added license text, adjusted tables for better output in PDF | Toomas Mölder |
| 13.04.2017 | 2.8 | Added token ID formatting | Cybernetica AS |
| 22.01.2018 | 2.8.1 | Added NEE and NGO member classes | Jürgen Šuvalov |
| 25.08.2017 | 2.9 | Update environmental monitoring installation information | Ilkka Seppälä |
| 15.09.2017 | 2.10 | Added package with configuration specific to Estonia xroad-securityserver-ee | Cybernetica AS |
| 05.03.2018 | 2.11 | Added terms and abbreviations reference and document links | Tatu Repo |
| 10.04.2018 | 2.12 | Updated chapter "Installing the Support for Hardware Tokens" with configurable parameters described in the configuration file 'devices.ini' | Cybernetica AS |
| 07.06.2018 | 2.12.1 | Updated repository information with x-tee.ee domain | Jürgen Šuvalov |
| 03.07.2018 | 2.12.2 | Added network diagram and reference data for monitoring servers | Jürgen Šuvalov |
| 08.08.2018 | 2.12.3 | Editorial changes | Jan Raik |
| 13.08.2018 | 2.12.4 | Package name fix | Taavi Meinberg |
| 14.10.2018 | 2.13 | Update package repository address | Petteri Kivimäki |
| 25.10.2018 | 2.14 | Add RHEL7 as supported platform, update section 2.2 Reference data | Petteri Kivimäki |
| 15.11.2018 | 2.15 | Add Ubuntu 18 installation instructions | Jarkko Hyöty |
| 28.01.2018 | 2.16 | Update port 2080 documentation | Petteri Kivimäki |
| 30.05.2019 | 2.17 | Added package installation instructions on chapter "2.4 Preparing OS" | Raul Martinez |
| 11.09.2019 | 2.18 | Remove Ubuntu 14.04 from supported platforms | Jarkko Hyöty |
| 20.09.2019 | 2.19 | Add instructions for using remote databases | Ilkka Seppälä |
| 12.04.2020 | 2.20 | Add note about the default value of the connector-host property in the EE-package | Petteri Kivimäki |
| 29.04.2020 | 2.21 | Add instructions how to use remote database located in Microsoft Azure | Ilkka Seppälä |
| 12.06.2020 | 2.22 | Update reference data regarding JMX listening ports | Petteri Kivimäki |
| 24.06.2020 | 2.23 | Add repository sign key details in section 2.2 Reference data | Petteri Kivimäki |
| 24.06.2020 | 2.24 | Remove environmental and operational monitoring daemon JMX listening ports from section 2.2 Reference data | Petteri Kivimäki |
| 09.08.2020 | 2.25 | Update ports information in section 2.2 Reference data, add section 2.2.1 Network Diagram | Petteri Kivimäki |
| 17.08.2020 | 2.26 | Update for RHEL 8. | Jarkko Hyöty |
| 08.09.2020 | 2.27 | Fix minimum RAM requirement. | Ilkka Seppälä |
| 16.09.2020 | 2.28 | Describe deployment options and database customization options. | Ilkka Seppälä |
| 29.09.2020 | 2.29 | Add instructions for creating database structure and roles manually. | Ilkka Seppälä |
| 19.01.2021 | 2.30 | Add instructions for using an alternative Java distribution. | Jarkko Hyöty |
| 04.02.2021 | 2.31 | Minor updates. | Ilkka Seppälä |
| 13.04.2021 | 2.32 | Update minimum requirements in section 2.2 Reference data | Petteri Kivimäki |
| 16.04.2021 | 2.33 | Update remote database installation instructions | Jarkko Hyöty |
| 18.05.2021 | 2.34 | Update error handling section | Ilkka Seppälä |
| 02.06.2021 | 2.35 | Add backup encryption information | Andres Allkivi |
| 01.07.2021 | 2.36 | Update 3rd party key server | Petteri Kivimäki |
| 11.08.2021 | 2.37 | Minor updates | Petteri Kivimäki |
| 18.08.2021 | 2.38 | Minor updates to Annex D | Ilkka Seppälä |
| 25.08.2021 | 2.39 | Update X-Road references from version 6 to 7 | Caro Hautamäki |
| 26.08.2021 | 2.40 | Add instructions how to disable the messagelog addon before installing, add section 2.7 Disable the Messagelog Addon before Installation (optional) | Caro Hautamäki |
| 03.08.2021 | 2.41 | Minor fixes | Ilkka Seppälä |
| 06.09.2021 | 2.42 | Update list of running services | Jarkko Hyöty |
| 26.09.2022 | 2.43 | Remove Ubuntu 18.04 support |
| 19.04.2023 | 2.30 | Removed unused properties from db.properties | Mikk-Erik Bachmann | | 05.05.2023 | 2.31 | Minor updates | Justas Samuolis | | 23.05.2023 | 2.32 | Backup Encryption Configuration | Eneli Reimets | | 31.05.2023 | 2.33 | Add Central Server network diagram | Petteri Kivimäki | | 28.06.2023 | 2.34 | Update database properties to the new Spring datasource version | Raido Kaju |
License
This document is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/
Table of Contents
- License
- 1 Introduction
-
2 Installation
- 2.1 Prerequisites to Installation
- 2.2 Reference Data
- 2.3 Requirements for the Security Server
- 2.4 Preparing OS
- 2.5 Setup Package Repository
- 2.6 Remote Database Setup (optional)
- 2.7 Disable the Messagelog Addon before Installation (optional)
- 2.8 Security Server Installation
- 2.9 Post-Installation Checks
- 2.10 Installing the Support for Hardware Tokens
- 2.11 Installing the Support for Environmental Monitoring
- 3 Security Server Initial Configuration
- 4 Installation Error handling
- Annex A Security Server Default Database Properties
- Annex B Default Database Users
- Annex C Deployment Options
- Annex D Create Database Structure Manually
1 Introduction
1.1 Target Audience
The intended audience of this Installation Guide are X-Road Security server system administrators responsible for installing and using X-Road software. The daily operation and maintenance of the security server is covered by its User Guide [UG-SS].
The document is intended for readers with a moderate knowledge of Linux server management, computer networks, and the X-Road working principles.
1.2 Terms and abbreviations
See X-Road terms and abbreviations documentation [TA-TERMS].
1.3 References
-
[UG-SS] Cybernetica AS. X-Road 7. Security Server User Guide. Document ID: UG-SS
-
[TA-TERMS] X-Road Terms and Abbreviations. Document ID: TA-TERMS.
-
[UG-SYSPAR] X-Road: System Parameters User Guide. Document ID: UG-SYSPAR.
-
[IG-XLB] X-Road: External Load Balancer Installation Guide. Document ID: IG-XLB.
2 Installation
2.1 Prerequisites to Installation
There are multiple alternatives how the security server can be deployed. The options are described in Annex C Deployment Options.
The security server is officially supported on the following platforms:
- Ubuntu Server 20.04 or 22.04 Long-Term Support (LTS) operating system on a x86-64 platform.
- Red Hat Enterprise Linux (RHEL) 7 and 8 (x86-64).
NB: RIA provides support only for Security Servers which are installed on the Ubuntu operating system.
The software can be installed both on physical and virtualized hardware (of the latter, Xen and Oracle VirtualBox have been tested).
2.2 Reference Data
Note: The information in empty cells should be determined before the server’s installation, by the person performing the installation.
Caution: Data necessary for the functioning of the operating system is not included.
| Ref | Explanation | |
|---|---|---|
| 1.0 | Ubuntu 18.04, Ubuntu 20.04 (x86-64) 3 GB RAM, 3 GB free disk space |
Minimum requirements without the monitoring and op-monitoring add-ons. With the add-ons minimum of 4 GB of RAM is required. |
| 1.1 | http://x-tee.ee/packages/live/xroad | X-Road stable package repository |
| http://x-tee.ee/packages/test/xroad | X-Road test package repository | |
| 1.2 | https://x-tee.ee/packages/live/xroad/xroad.pub | The repository key |
| 1.3 | Account name in the user interface | |
| 1.4 | Inbound ports from external network | Ports for inbound connections from the external network to the security server |
| TCP 5500 | Message exchange between security servers. Recommended to use IP filtering (whitelisting only RIA IP's and partners). | |
| TCP 5577 | Querying of OCSP responses between security servers. Recommended to use IP filtering (whitelisting only RIA IP's and partners) | |
| 1.5 | Outbound ports to external network | Ports for outbound connections from the security server to the external network |
| TCP 5500 | Message exchange between security servers | |
| TCP 5577 | Querying of OCSP responses between security servers | |
| TCP 4001 | Communication with the central server | |
| TCP 80 | Downloading global configuration from the central server | |
| TCP 80,443 | Most common OCSP and time-stamping services | |
| 1.6 | Inbound ports from internal network | Ports for inbound connections from the internal network to the security server |
| TCP 4000 | User interface and management REST API (local network). Must not be accessible from the internet! | |
| TCP 80, 443 | Information system access points (in the local network). Must not be accessible from the external network without strong authentication. If open to the external network, IP filtering is strongly recommended. | |
| TCP 9011 | Operational data monitoring daemon JMX listening port | |
| TCP 9999 | Environmental monitoring daemon JMX listening port | |
| 1.7 | Outbound ports to internal network | Ports for inbound connections from the internal network to the security server |
| TCP 80, 443, other | Producer information system endpoints | |
| TCP 2080 | Message exchange between security server and operational data monitoring daemon (by default on localhost) | |
| 1.8 | Security server internal IP address(es) and hostname(s) | |
| 1.9 | Security server public IP address, NAT address | |
| 1.10 | <by default, the server’s IP addresses and names are added to the certificate’s Distinguished Name (DN) field> | Information about the user interface TLS certificate |
| 1.11 | <by default, the server’s IP addresses and names are added to the certificate’s Distinguished Name (DN) field> | Information about the services TLS certificate |
It is strongly recommended to protect the security server from unwanted access using a firewall (hardware or software based). The firewall can be applied to both incoming and outgoing connections depending on the security requirements of the environment where the security server is deployed. It is recommended to allow incoming traffic to specific ports only from explicitly defined sources using IP filtering. Special attention should be paid with the firewall configuration since incorrect configuration may leave the security server vulnerable to exploits and attacks.
The table below lists the required connections between different components.
| Connection Type | Source | Target | Target Ports | Protocol | Note |
|---|---|---|---|---|---|
| Out | Security Server | Central Server | 80, 4001 | tcp | |
| Out | Security Server | Management Security Server | 5500, 5577 | tcp | |
| Out | Security Server | OCSP Service | 80 / 443 | tcp | |
| Out | Security Server | Timestamping Service | 80 / 443 | tcp | |
| Out | Security Server | Data Exchange Partner Security Server (Service Producer) | 5500, 5577 | tcp | |
| Out | Security Server | Producer Information System | 80, 443, other | tcp | Target in the internal network |
| In | Monitoring Security Server | Security Server | 5500, 5577 | tcp | |
| In | Data Exchange Partner Security Server (Service Consumer) | Security Server | 5500, 5577 | tcp | |
| In | Consumer Information System | Security Server | 80, 443 | tcp | Source in the internal network |
| In | Admin | Security Server | 4000 | tcp | Source in the internal network |
It is strongly recommended to protect the security server from unwanted access using a firewall (hardware or software based). The firewall can be applied to both incoming and outgoing connections depending on the security requirements of the environment where the security server is deployed. It is recommended to allow incoming traffic to specific ports only from explicitly defined sources using IP filtering. Special attention should be paid with the firewall configuration since incorrect configuration may leave the security server vulnerable to exploits and attacks.
2.2.1 Network Diagram
The following network diagram is an example of a simple stand-alone Security Server setup. Attention should be paid when configuring the firewall of your Security Server, as misconfigurations (e.g. exposing port 80/tcp to the public internet) can leave your server vulnerable. IP whitelisting should be used for all ports that are open to the external network.
Allowing incoming connections from the Monitoring Security Server on ports 5500/tcp and 5577/tcp (monitoring server IP's) is necessary for the X-Road Center to be able to monitor the ecosystem and provide statistics and support for Members.
Caution: The enabling of auxiliary services which are necessary for the functioning and management of the operating system (such as DNS, NTP, and SSH) stay outside the scope of this guide.
2.3.1 RIA IP's for Whitelisting
| Type | EE - production | ee-test | ee-dev |
|---|---|---|---|
| Central Server | cs1.ee.x-tee.ee cs2.ee.x-tee.ee cs3.ee.x-tee.ee |
cs1.test.x-tee.ee cs2.test.x-tee.ee cs3.test.x-tee.ee |
cs1.dev.x-tee.ee cs2.dev.x-tee.ee cs3.dev.x-tee.ee |
| Central Monitoring Server | mon.ee.x-tee.ee | mon.test.x-tee.ee | mon.dev.x-tee.ee |
| Management Security Server | ht1.ee.x-tee.ee ht2.ee.x-tee.ee ht3.ee.x-tee.ee |
ht1.test.x-tee.ee ht2.test.x-tee.ee ht3.test.x-tee.ee |
ht1.dev.x-tee.ee ht2.dev.x-tee.ee ht3.dev.x-tee.ee |
2.3 Requirements for the Security Server
Minimum recommended hardware parameters:
- the server’s hardware (motherboard, CPU, network interface cards, storage system) must be supported by Ubuntu in general;
- a 64-bit dual-core Intel, AMD or compatible CPU; AES instruction set support is highly recommended;
- 4 GB RAM;
- a 100 Mbps network interface card;
- if necessary, interfaces for the use of hardware tokens.
Requirements to software and settings:
- an installed and configured Ubuntu 20.04 LTS or 22.04 LTS x86-64 operating system;
- if the security server is separated from other networks by a firewall and/or NAT, the necessary connections to and from the security server are allowed (reference data: 1.4; 1.5; 1.6; 1.7). The enabling of auxiliary services which are necessary for the functioning and management of the operating system (such as DNS, NTP, and SSH) stay outside the scope of this guide;
- if the security server has a private IP address, a corresponding NAT record must be created in the firewall (reference data: 1.9).
2.4 Preparing OS
-
Add an X-Road system administrator user (reference data: 1.3) whom all roles in the user interface are granted to. Add a new user with the command
sudo adduser <username>
User roles are discussed in detail in X-Road Security Server User Guide [UG-SS]. Do not use the user name
xroad
, it is reserved for the X-Road system user. -
Set the operating system locale. Add following line to the
/etc/environment
file.LC_ALL=en_US.UTF-8
-
Ensure that the packages
locales
andsoftware-properties-common
are presentsudo apt-get install locales software-properties-common
-
Ensure that the locale is available
sudo locale-gen en_US.UTF-8
2.5 Setup Package Repository
Add the X-Road repository’s signing key to the list of trusted keys (reference data: 1.2):
wget -O - https://x-tee.ee/packages/live/xroad/xroad.pub | apt-key add -
Add X-Road package repository (reference data: 1.1)
echo "deb http://x-tee.ee/packages/live/xroad $(lsb_release -sc)-current main" > /etc/apt/sources.list.d/xroad.list
Update package repository metadata:
sudo apt update
If you are installing the default setup with local PostgreSQL database and want to enable the messagelog addon, continue at section 2.8. If you need to customize database properties and e.g. use a remote database or disable the messagelog addon, read on.
2.6 Remote Database Setup (optional)
This is an optional step.
Optionally, the security server can use a remote database server. To avoid installing the default local PostgreSQL server during security server installation, first install the xroad-database-remote
-package.
sudo apt install xroad-database-remote
For the application level backup and restore feature to work correctly, it is important to verify that the local PostgreSQL client has the same or later major version than the remote database server and, if necessary, install a different version of the postgresql-client
package (see https://www.postgresql.org/download/linux/ubuntu/)
psql --version
psql (PostgreSQL) 12.6 (Ubuntu 12.6-0ubuntu<IP_ADDRESS>)
psql -h <database host> -U <superuser> -tAc 'show server_version'
10.16 (Ubuntu 10.16-0ubuntu<IP_ADDRESS>)
The security server installer can create the database and users for you, but you need to create a configuration file containing the database administrator credentials.
For advanced setup, e.g. when using separate servers for the databases, sharing a database with several security servers, or if storing the database administrator password on the security server is not an option, you can create the database users and structure manually as described in Annex D Create Database Structure Manually and then continue to section 2.7. Otherwise, perform the following steps:
Create the property file:
sudo touch /etc/xroad.properties
sudo chown root:root /etc/xroad.properties
sudo chmod 600 /etc/xroad.properties
Edit /etc/xroad.properties
. See the example below. Replace parameter values with your own.
postgres.connection.password = <database superuser password>
postgres.connection.user = <database superuser name, postgres by default>
Note. If Microsoft Azure database for PostgreSQL is used, the connection user needs to be in format username@hostname
.
Before continuing, test that the connection to the database works, e.g.
psql -h <database host> -U <superuser> -tAc 'show server_version'
For additional security, the postgresql.connection.*
properties can be removed from the /etc/xroad.properties
file after installation (keep the other properties added by the installer).
2.7 Disable the Messagelog Addon before Installation (optional)
It is possible to preconfigure the Security Server installation so that the messagelog addon will be automatically disabled after the installation process is done. This also skips the creation of the messagelog database.
In order to skip messagelog database creation and disable the messagelog addon, run the following command to add a boolean value into the debconf database before installing the Security Server
sudo debconf-set-selections <<< 'xroad-addon-messagelog xroad-addon-messagelog/enable-messagelog boolean false'
2.8 Security Server Installation
Issue the following command to install the security server packages (use package xroad-securityserver-ee
to include configuration specific to Estonia; use package xroad-securityserver-fi
to include configuration specific to Finland; use package xroad-securityserver-is
to include configuration specific to Iceland):
sudo apt-get update
sudo apt-get install xroad-securityserver-ee
Upon the first installation of the packages, the system asks for the following information.
-
Account name for the user who will be granted the rights to perform all activities in the user interface (reference data: 1.3).
-
Database server URL. Locally installed database is suggested as default but remote databases can be used as well. In case remote database is used, one should verify that the version of the local PostgreSQL client matches the version of the remote PostgreSQL server.
-
The Distinguished Name of the owner of the user interface's and management REST API's self-signed TLS certificate (Subject DN) and its alternative names (subjectAltName) (reference data: 1.8; 1.10). The certificate is used for securing connections to the user interface and to the management REST API. The name and IP addresses detected from the operating system are suggested as default values.
-
The Subject DN must be entered in the format:
/CN=server.domain.tld
-
All IP addresses and domain names in use must be entered as alternative names in the format:
IP:<IP_ADDRESS>,IP:<IP_ADDRESS>,DNS:servername,DNS:servername2.domain.tld
-
-
The Distinguished Name of the owner of the TLS certificate that is used for securing the HTTPS access point of information systems (reference data: 1.8; 1.11). The name and IP addresses detected from the system are suggested as default values.
-
The Subject DN must be entered in the format:
/CN=server.domain.tld
-
All IP addresses and domain names in use must be entered as alternative names in the format:
IP:<IP_ADDRESS>,IP:<IP_ADDRESS>,DNS:servername,DNS:servername2.domain.tld
-
The meta-package xroad-securityserver
also installs metaservices module xroad-addon-metaservices
, messagelog module xroad-addon-messagelog
and WSDL validator module xroad-addon-wsdlvalidator
. The meta-packages xroad-securityserver-ee
, xroad-securityserver-fi
, xroad-securityserver-is
, and xroad-securityserver-fo
install operational data monitoring module xroad-addon-opmonitoring
.
N.B. In case configuration specific to Estonia (package xroad-securityserver-ee
) is installed, connections from client applications are restricted to localhost by default. To enable client application connections from external sources, the value of the connector-host
property must be overridden in the /etc/xroad/conf.d/local.ini
configuration file. Changing the system parameter values is explained in the System Parameters User Guide [UG-SS].
2.9 Post-Installation Checks
The installation is successful if system services are started and the user interface is responding.
- Ensure from the command line that X-Road services are in the
running
state (example output follows):sudo systemctl list-units "xroad-*" UNIT LOAD ACTIVE SUB DESCRIPTION xroad-addon-messagelog.service loaded active running X-Road Messagelog Archiver xroad-base.service loaded active exited X-Road initialization xroad-confclient.service loaded active running X-Road confclient xroad-monitor.service loaded active running X-Road Monitor xroad-proxy-ui-api.service loaded active running X-Road Proxy UI REST API xroad-proxy.service loaded active running X-Road Proxy xroad-signer.service loaded active running X-Road signer
- Ensure that the security server user interface at https://SECURITYSERVER:4000/ (reference data: 1.8; 1.6) can be opened in a Web browser. To log in, use the account name chosen during the installation (reference data: 1.3). While the user interface is still starting up, the Web browser may display a connection refused -error.
2.10 Installing the Support for Hardware Tokens
To configure support for hardware security tokens (smartcard, USB token, Hardware Security Module), act as follows.
-
Install the hardware token support module using the following command:
sudo apt-get install xroad-addon-hwtokens
-
Install and configure a PKCS#11 driver for the hardware token according to the manufacturer's instructions.
-
Add the path to the PKCS#11 driver to the file
/etc/xroad/devices.ini
(as described in the example given in the file). -
After installing and configuring the driver, the
xroad-signer
service must be restarted:sudo service xroad-signer restart
If you are running a high availability (HA) hardware token setup (such as a cluster with replicated tokens) then you may need to constrain the token identifier format such that the token replicas can be seen as the same token. The token identifier format can be changed in /etc/xroad/devices.ini
via the token_id_format
property (default value: {moduleType}{slotIndex}{serialNumber}{label}
). Removing certain parts of the identifier will allow the HA setup to work correctly when one of the tokens goes down and is replaced by a replica. For example, if the token replicas are reported to be on different slots the {slotIndex}
part should be removed from the identifier format.
Depending on the hardware token there may be a need for more additional configuration. All possible configurable parameters in the /etc/xroad/devices.ini
are described in the next table.
| Parameter | Type | Default Value | Explanation |
|---|---|---|---|
| enabled | BOOLEAN | true | Indicates whether this device is enabled. |
| library | STRING | The path to the pkcs#11 library of the device driver. | |
| library_cant_create_os_threads | BOOLEAN | false | Indicates whether application threads, which are executing calls to the pkcs#11 library, may not use native operating system calls to spawn new threads (in other words, the library’s code may not create its own threads). |
| os_locking_ok | BOOLEAN | false | Indicates whether the pkcs#11 library may use the native operation system threading model for locking. |
| sign_verify_pin | BOOLEAN | false | Indicates whether the PIN should be entered per signing operation. |
| token_id_format | STRING | {moduleType}{slotIndex}{serialNumber}{label} | Specifies the identifier format used to uniquely identify a token. In certain high availability setups may need be constrained to support replicated tokens (eg. by removing the slot index part which may be diffirent for the token replicas). |
| sign_mechanism | STRING | CKM_RSA_PKCS | Specifies the signing mechanism. Supported values: CKM_RSA_PKCS, CKM_RSA_PKCS_PSS. |
| pub_key_attribute_encrypt | BOOLEAN | true | Indicates whether public key can be used for encryption. |
| pub_key_attribute_verify | BOOLEAN | true | Indicates whether public key can be used for verification. |
| pub_key_attribute_wrap | BOOLEAN | Indicates whether public key can be used for wrapping other keys. | |
| pub_key_attribute_allowed_mechanisms | STRING LIST | Specifies public key allowed mechanisms. Supported values: CKM_RSA_PKCS, CKM_SHA256_RSA_PKCS, CKM_SHA384_RSA_PKCS, CKM_SHA512_RSA_PKCS, and CKM_RSA_PKCS_PSS, CKM_SHA256_RSA_PKCS_PSS, CKM_SHA384_RSA_PKCS_PSS, CKM_SHA512_RSA_PKCS_PSS. | |
| priv_key_attribute_sensitive | BOOLEAN | true | Indicates whether private key is sensitive. |
| priv_key_attribute_decrypt | BOOLEAN | true | Indicates whether private key can be used for encryption. |
| priv_key_attribute_sign | BOOLEAN | true | Indicates whether private key can be used for signing. |
| priv_key_attribute_unwrap | BOOLEAN | Indicates whether private key can be used for unwrapping wrapped keys. | |
| priv_key_attribute_allowed_mechanisms | STRING LIST | Specifies private key allowed mechanisms. Supported values: CKM_RSA_PKCS, CKM_SHA256_RSA_PKCS, CKM_SHA384_RSA_PKCS, CKM_SHA512_RSA_PKCS, and CKM_RSA_PKCS_PSS, CKM_SHA256_RSA_PKCS_PSS, CKM_SHA384_RSA_PKCS_PSS, CKM_SHA512_RSA_PKCS_PSS. |
Note 1: Only parameter library is mandatory, all the others are optional. Note 2: The item separator of the type STRING LIST is ",".
2.11 Installing the Support for Environmental Monitoring
The support for environmental monitoring functionality on a security server is provided by package xroad-monitor that is installed by default. The package installs and starts the xroad-monitor
process that will gather and make available the monitoring information.
3 Security Server Initial Configuration
During the security server initial configuration, the server’s X-Road membership information and the software token’s PIN are set.
3.1 Prerequisites
Configuring the security server assumes that the security server owner is a member of the X-Road.
3.2 Reference Data
ATTENTION: Reference items 2.1 - 2.3 in the reference data are provided to the security server owner by the X-Road central’s administrator.
The security server code and the software token’s PIN will be determined during the installation at the latest, by the person performing the installation.
| Ref | Explanation | |
|---|---|---|
| 2.1 |
https://x-tee.ee/anchors/<anchor file> ee-dev - development environment ee-test - test environment EE - production environment |
Global configuration anchor file |
| 2.2 | GOV - government COM - commercial NGO - non-profit NEE - not Estonian |
Member class of the security server's owner |
| 2.3 | <security server owner register code> | Member code of the security server's owner |
| 2.4 | <choose security server identificator name> | Security server's code |
| 2.5 | <choose PIN for software token> | Software token’s PIN |
3.3 Configuration
To perform the initial configuration, open the address
https://SECURITYSERVER:4000/
in a Web browser (reference data: 1.8; 1.6). To log in, use the account name chosen during the installation (reference data: 1.3).
Upon first log-in, the system asks for the following information.
-
The global configuration anchor file (reference data: 2.1).
Please verify anchor hash value with the published value.
If the configuration is successfully downloaded, the system asks for the following information.
- The security server owner’s member class (reference data: 2.2).
- The security server owner’s member code (reference data: 2.3).
- The security server owner’s member code (reference data: 2.3).
If the member class and member code are correctly entered, the system displays the security server owner’s name as registered in the X-Road center.
-
NB! If the security server owner or hosted client is a foreign organization (not Estonian), then the "NEE" Member Class must be selected in the security server.
The Member Code must be formed as follows:
"NTRCONTRYCODE-ORGANIZATIONREGISTRYCODE" - without whitespaces
Where:
- "NTR" - Prefix of the legal entity identifier according to ETSI EN 319 412-1 clause 5.1.4.
- COUNTRY CODE - Country code according to ISO 3166 (Alpha 2)
-
-
hyphen - ORGANIZATION REGISTRY CODE - Organizational registry code in the organization's country.
Example:
- Lexbyte Digital Limited, a registered organization in Malta
- Member Name: Lexbyte Digital Limited
- Member Class: NEE
- Member Code: NTRMT-C56249
Such requirements to the NEE Member Code are necessary to ensure the uniqueness of the Member Code of foreign organizations on X-Road (X-tee). In addition, the Member Code of X-Road members must correspond to the Organization Identifier (<IP_ADDRESS>) field in the SK ID Solutions AS e-Seal certificate profile.
References:
- SK ID Solutions AS certificate profile: https://sk.ee/upload/files/SK-CPR-KLASS3-EN-v8_0-20171130.pdf
- ETSI EN 319 412-1: http://www.etsi.org/deliver/etsi_en/319400_319499/31941201/01.01.00_30/en_31941201v010100v.pdf
- Alpha 2 country code: https://www.iso.org/obp/ui/#search
-
- Security server code (reference data: 2.4), which is chosen by the security server administrator and which has to be unique across all the security servers belonging to the same X-Road member.
- Software token’s PIN (reference data: 2.5). The PIN will be used to protect the keys stored in the software token. The PIN must be stored in a secure place, because it will be no longer possible to use or recover the private keys in the token once the PIN has been lost.
3.4 Configuring configuration backup encryption
It is possible to automatically encrypt security server configuration backups. Security server uses The GNU Privacy Guard (https://www.gnupg.org)
for backup encryption and verification. Backups are always signed, but backup encryption is initially turned off.
To turn encryption on, please override the default configuration in the file /etc/xroad/conf.d/local.ini
, in the [proxy]
section (add or edit this section).
[proxy]
backup-encrypted=true
backup-public-key-path=/etc/xroad/backupkeys
To turn backup encryption on, please change the backup-encrypted
property value to true
.
By default, additional encryption keys are stored in the /etc/xroad/backupkeys
directory.
The default directory can be changed by modifying the backup-public-key-path
property value.
By default, backups are encrypted using security server's backup encryption key. Before turning backup encryption on, it is strongly recommended to copy additional GPG public keys to backup public key folder. All these keys are used to encrypt backups so that ANY of these keys can decrypt the backups. This is useful both for verifying encrypted backups' consistency and decrypting backups in case security server's backup encryption key gets lost for whatever reason. Do not place any other files into backup keys folder, otherwise backing up configuration will fail.
To externally verify a backup archive's consistency, security server's backup encryption public key has to be exported and imported into external GPG keyring. Note that this can be done only after security server has been initialised - the security server backup encryption key is generated during initialisation.
To export security server's backup encryption public key use the following command:
gpg --homedir /etc/xroad/gpghome --armor --output server-public-key.gpg --export AA/GOV/TS1OWNER/TS1
where AA/GOV/TS1OWNER/TS1
is the security server id.
The key can then be moved to an external host and imported to GPG keyring with the following command:
gpg --homedir /your_gpg_homedir_here --import server-public-key.gpg
4 Installation Error handling
4.1 Cannot Set LC_ALL to Default Locale
If running the locale command results in the error message
locale: Cannot set LC_ALL to default locale: No such file or directory,
then the support for this particular language has not been installed. To install it, run the command (the example uses the English language):
sudo apt-get install language-pack-en
Then, to update the system’s locale files, run the following commands (the example uses the US locale):
sudo locale-gen en_US.UTF-8
sudo update-locale en_US.UTF-8
Set operating system locale. Add following line to /etc/environment
file:
LC_ALL=en_US.UTF-8
After updating the system’s locale settings, it is recommended to restart the operating system.
4.2 PostgreSQL Is Not UTF8 Compatible
If the security server installation is aborted with the error message
postgreSQL is not UTF8 compatible,
then the PostgreSQL package is installed with a wrong locale. One way to resolve it is to remove the data store created upon the PostgreSQL installation and recreate it with the correct encoding.
WARNING: All data in the database will be erased!
sudo pg_dropcluster --stop 10 main
LC_ALL="en_US.UTF-8" sudo pg_createcluster --start 10 main
To complete the interrupted installation, run the command
sudo apt-get -f install
4.3 Could Not Create Default Cluster
If the following error message is displayed during PostgreSQL installation:
Error: The locale requested by the environment is invalid.
Error: could not create default cluster. Please create it manually with pg_createcluster 10 main –start,
use the following command to create the PostgreSQL data cluster:
LC_ALL="en_US.UTF-8" sudo pg_createcluster --start 10 main
The interrupted installation can be finished using
sudo apt-get -f install
4.4 Is Postgres Running On Port 5432?
If the following error message appears during installation
Is postgres running on port 5432 ?
Aborting installation! please fix issues and rerun with apt-get -f install,
check if any of the following errors occurred during the installation of PostgreSQL.
-
Error installing the data cluster. Refer to section “Could not create default cluster”.
-
The PostgreSQL data cluster installed during the installation of the security server is not configured to listen on port 5432. To verify and configure the listening port, edit the PostgreSQL configuration file in
/etc/postgresql/10/main/postgresql.conf
. If you change the listening port, the postgresql service must be restarted.
The interrupted installation can be finished using
sudo apt-get -f install
4.5 Different versions of xroad-* packages after successful upgrade
Sometimes, after using sudo apt-get upgrade
command, some of the packages are not upgraded. In the following example xroad-securityserver-ee
package version is still 6.8.3 although other packages are upgraded to 6.8.5:
# sudo dpkg -l | grep xroad-
ii xroad-addon-messagelog <IP_ADDRESS>60929134539gitfe60f90
ii xroad-addon-metaservices <IP_ADDRESS>60929134539gitfe60f90
ii xroad-addon-wsdlvalidator <IP_ADDRESS>60929134539gitfe60f90
ii xroad-common <IP_ADDRESS>60929134539gitfe60f90
ii xroad-jetty9 <IP_ADDRESS>60929134539gitfe60f90
ii xroad-proxy <IP_ADDRESS>60929134539gitfe60f90
ii xroad-securityserver-ee 6.8.3-3-201605131138
apt-get upgrade
command doesn’t install new packages - in this particular case new packages xroad-monitor
and xroad-addon-proxymonitor
installation is needed for upgrade of xroad-securityserver
package.
To be sure that packages are installed correctly please use sudo apt upgrade
or sudo apt full-upgrade
commands.
4.6 ERROR: Upgrade supported from version X.Y.Z or newer
The following error message may come up during the security server upgrade.
ERROR: Upgrade supported from version X.Y.Z or newer
Upgrading the packages from the current version to the target version is not supported directly. The fix is to upgrade the security server to the target version step by step.
A guide to upgrading from an older version of X-Road can be found here. Follow the chapter which contains your current X-Road version.
Annex A Security Server Default Database Properties
/etc/xroad/db.properties
# connection.url format: jdbc:postgresql://<hostname>:<port>/<database name>
serverconf.hibernate.connection.url = jdbc:postgresql://<IP_ADDRESS>:5432/serverconf
serverconf.hibernate.connection.username = serverconf
serverconf.hibernate.connection.password = <randomly generated password>
serverconf.hibernate.connection.driver_class = org.postgresql.Driver
serverconf.hibernate.dialect = ee.ria.xroad.common.db.CustomPostgreSQLDialect
serverconf.hibernate.hikari.dataSource.currentSchema = serverconf,public
serverconf.hibernate.jdbc.use_streams_for_binary = true
messagelog.hibernate.connection.url = jdbc:postgresql://<IP_ADDRESS>:5432/messagelog
messagelog.hibernate.connection.username = messagelog
messagelog.hibernate.connection.password = <randomly generated password>
messagelog.hibernate.connection.driver_class = org.postgresql.Driver
messagelog.hibernate.dialect = ee.ria.xroad.common.db.CustomPostgreSQLDialect
messagelog.hibernate.hikari.dataSource.currentSchema = messagelog,public
messagelog.hibernate.jdbc.use_streams_for_binary = true
op-monitor.hibernate.connection.url = jdbc:postgresql://<IP_ADDRESS>:5432/op-monitor
op-monitor.hibernate.connection.username = opmonitor
op-monitor.hibernate.connection.password = <randomly generated password>
op-monitor.hibernate.connection.driver_class = org.postgresql.Driver
op-monitor.hibernate.hikari.dataSource.currentSchema = opmonitor,public
op-monitor.hibernate.jdbc.use_streams_for_binary = true
Annex B Default Database Users
| User | Database | Privileges | Description |
|---|---|---|---|
| serverconf | serverconf | TEMPORARY,CONNECT | The database user used to read/write the serverconf database during application runtime. |
| serverconf_admin | serverconf | CREATE,TEMPORARY,CONNECT | The database user used to create/update the serverconf schema. |
| messagelog | messagelog | TEMPORARY,CONNECT | The database user used to read/write the messagelog database during application runtime. |
| messagelog_admin | messagelog | CREATE,TEMPORARY,CONNECT | The database user used to create/update the messagelog schema. |
| opmonitor | op-monitor | TEMPORARY,CONNECT | The database user used to read/write the op-monitor database during application runtime. |
| opmonitor_admin | op-monitor | CREATE,TEMPORARY,CONNECT | The database user used to create/update the op-monitor schema. |
| postgres | ALL | ALL | PostgreSQL database default superuser. |
Annex C Deployment Options
C.1 General
X-Road security server has multiple deployment options. The simplest choice is to have a single security server with local database. This is usually fine for majority of the cases, but there are multiple reasons to tailor the deployment.
C.2 Local Database
The simplest deployment option is to use a single security server with local database. For development and testing purposes there is rarely need for anything else, but for production the requirements may be stricter.
C.3 Remote Database
It is possible to use a remote database with security server. This option is sometimes used in development and testing when there's need to externalize the database state.
Security server supports a variety of cloud databases including AWS RDS and Azure Database for PostgreSQL. This deployment option is useful when doing development in cloud environment, where use of cloud native database is the first choice.
C.4 High Availability Setup
In production systems it's rarely acceptable to have a single point of failure. Security server supports provider side high availability setup via so called internal load balancing mechanism. The setup works so that the same member / member class / member code / subsystem / service code is configured on multiple security servers and X-Road will then route the request to the server that responds the fastest. Note that this deployment option does not provide performance benefits, just redundancy.
C.5 Load Balancing Setup
Busy production systems may need scalable performance in addition to high availability. X-Road supports external load balancing mechanism to address both of these problems simultaneously. A load balancer is added in front of a security server cluster to route the requests based on selected algorithm. This deployment option is extensively documented in [IG-XLB].
C.6 Summary
The following table lists a summary of the security server deployment options and indicates whether they are aimed for development or production use.
| Deployment | Dev | Prod |
|---|---|---|
| Local database | x | |
| Remote database | x | |
| High-availability Setup | x | |
| Load Balancing Setup | x |
Annex D Create Database Structure Manually
Depending on installed components, the security server uses one to three databases (catalogs):
- serverconf for storing security server configuration (required)
- messagelog for storing message records (optional, but installed by default)
- op-monitor for operational monitoring data (optional)
These databases can be hosted on one database server (default setup), or you can use several servers.
Login to the database server(s) as the superuser (postgres
by default) to run the commands, e.g.
psql -h <database host>:<port> -U <superuser> -d postgres
Run the following commands to create the necessary database structures. If necessary, customize the database and role names to suit your environment (e.g when the same database server is shared between several security server instances, it is necessary to have separate database names and roles for each server). By default, the database, database user, and schema use the same name (e.g. serverconf), and the admin user is named with _admin prefix (e.g. serverconf_admin).
serverconf (required)
CREATE DATABASE serverconf ENCODING 'UTF8';
REVOKE ALL ON DATABASE serverconf FROM PUBLIC;
CREATE ROLE serverconf_admin LOGIN PASSWORD '<serverconf_admin password>';
GRANT serverconf_admin to <superuser>;
GRANT CREATE,TEMPORARY,CONNECT ON DATABASE serverconf TO serverconf_admin;
\c serverconf
CREATE EXTENSION hstore;
CREATE SCHEMA serverconf AUTHORIZATION serverconf_admin;
REVOKE ALL ON SCHEMA public FROM PUBLIC;
GRANT USAGE ON SCHEMA public to serverconf_admin;
CREATE ROLE serverconf LOGIN PASSWORD '<serverconf password>';
GRANT serverconf to <superuser>;
GRANT TEMPORARY,CONNECT ON DATABASE serverconf TO serverconf;
GRANT USAGE ON SCHEMA public to serverconf;
messagelog (required by xroad-addon-messagelog)
CREATE DATABASE messagelog ENCODING 'UTF8';
REVOKE ALL ON DATABASE messagelog FROM PUBLIC;
CREATE ROLE messagelog_admin LOGIN PASSWORD '<messagelog_admin password>';
GRANT messagelog_admin to <superuser>;
GRANT CREATE,TEMPORARY,CONNECT ON DATABASE messagelog TO messagelog_admin;
\c messagelog
CREATE SCHEMA messagelog AUTHORIZATION messagelog_admin;
REVOKE ALL ON SCHEMA public FROM PUBLIC;
GRANT USAGE ON SCHEMA public to messagelog_admin;
CREATE ROLE messagelog LOGIN PASSWORD '<messagelog password>';
GRANT messagelog to <superuser>;
GRANT TEMPORARY,CONNECT ON DATABASE messagelog TO messagelog;
GRANT USAGE ON SCHEMA public to messagelog;
op-monitor (optional, required by xroad-opmonitor)
If operational monitoring is going to be installed, run additionally the following commands. Again, the database and role names can be customized to suit your environment.
CREATE DATABASE "op-monitor" ENCODING 'UTF8';
REVOKE ALL ON DATABASE "op-monitor" FROM PUBLIC;
CREATE ROLE opmonitor_admin LOGIN PASSWORD '<opmonitor_admin password>';
GRANT opmonitor_admin to <superuser>;
GRANT CREATE,TEMPORARY,CONNECT ON DATABASE "op-monitor" TO opmonitor_admin;
\c "op-monitor"
CREATE SCHEMA opmonitor AUTHORIZATION opmonitor_admin;
REVOKE ALL ON SCHEMA public FROM PUBLIC;
GRANT USAGE ON SCHEMA public to opmonitor_admin;
CREATE ROLE opmonitor LOGIN PASSWORD '<opmonitor password>';
GRANT opmonitor to <superuser>;
GRANT TEMPORARY,CONNECT ON DATABASE "op-monitor" TO opmonitor;
GRANT USAGE ON SCHEMA public to opmonitor;
Lastly, customize the database connection properties to match the values used when creating the database.
Note. When using Microsoft Azure PostgreSQL, the user names need to be in format username@hostname
in the properties files.
Create the configuration file /etc/xroad.properties
.
sudo touch /etc/xroad.properties
sudo chown root:root /etc/xroad.properties
sudo chmod 600 /etc/xroad.properties
Edit /etc/xroad.properties
and add/update the following properties (if you customized the role names, use your own). The admin users are used to run database migrations during the install and upgrades.
serverconf.database.admin_user = serverconf_admin
serverconf.database.admin_password = <serverconf_admin password>
op-monitor.database.admin_user = opmonitor_admin
op-monitor.database.admin_password = <opmonitor_admin password>
messagelog.database.admin_user = messagelog_admin
messagelog.database.admin_password = <messagelog_admin password>
Create the /etc/xroad/db.properties
file
sudo mkdir /etc/xroad
sudo chown xroad:xroad /etc/xroad
sudo chmod 751 /etc/xroad
sudo touch /etc/xroad/db.properties
sudo chmod 0640 /etc/xroad/db.properties
sudo chown xroad:xroad /etc/xroad/db.properties
Edit the /etc/xroad/db.properties
file and add/update the following connection properties (if you customized the database, user, and/or role names, use the customized values).
The database connection url format is jdbc:postgresql://<database host>:<port>/<database name>
serverconf.hibernate.connection.url = jdbc:postgresql://<database host>:<port>/serverconf
serverconf.hibernate.connection.username = serverconf
serverconf.hibernate.connection.password = <serverconf password>
serverconf.hibernate.hikari.dataSource.currentSchema = serverconf,public
messagelog.hibernate.connection.url = jdbc:postgresql://<database host>:<port>/messagelog
messagelog.hibernate.connection.username = messagelog
messagelog.hibernate.connection.password = <messagelog password>
messagelog.hibernate.hikari.dataSource.currentSchema = messagelog,public
op-monitor.hibernate.connection.url = jdbc:postgresql://<database host>:<port>/op-monitor
op-monitor.hibernate.connection.username = opmonitor
op-monitor.hibernate.connection.password = <opmonitor password>
op-monitor.hibernate.hikari.dataSource.currentSchema = opmonitor,public


THE CITY OF LOST CHILDREN A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 8.2
France, 1995 U.S. Availability: 12/15/95 (limited) Running Length: 1:52 MPAA Classification: R (Mature themes, profanity) Theatrical Aspect Ratio: 1.85:1
Cast: Daniel Emilfork, Ron Perlman, Judith Vittet, Dominique Pinon, Jean-Claude Dreyfus, Mireille Mousse, Jean-Louis Trintignant Directors: Jean-Pierre Jeunet and Marc Caro Producer: Claudie Ossard Screenplay: Jean-Pierre Jeunet, Marc Caro, Gilles Adrien Cinematography: Darius Khondji Music: Angelo Badalamenti U.S. Distributor: Sony Pictures Classics In French with Subtitles
In 1991, the creative team of Jean-Pierre Jeunet and Marc Caro introduced movie-goers to their nightmarish view of a post-apocalyptic world where troglodytes inhabited the underground and a butcher relied on apartment tenants to keep his meat cabinet full. DELICATESSEN, a bizarre black comedy, became something of a cult hit -- certainly not everyone's fare, but those who got it, loved it. Now, four years later, Jeunet and Caro are back, and, with their latest film, THE CITY OF LOST CHILDREN, it's apparent that they have neither moderated their approach nor mainstreamed their vision. THE CITY OF LOST CHILDREN is as visually striking and daringly offbeat as its predecessor.
In THE CITY OF LOST CHILDREN, Jeunet and Caro have presented another gloomy world where "normal" life is no more. The film is saturated with atmosphere and features some of the most imaginative set construction of the year. The picture works in part because the film makers have taken the time and effort to frame a strange land where all their quirky characters can live and operate. Jeunet and Caro's movie is thematically and stylistically inspired by such diverse sources as FRANKENSTEIN, DRACULA, BRAZIL, TIME BANDITS, and THE WIZARD OF OZ. Like DELICATESSEN, THE CITY OF LOST CHILDREN is characterized by dark, twisted humor, yet this movie is more of a fantasy than a macabre comedy.
THE CITY OF LOST CHILDREN relates dreams to creativity, youth, and wonder. The capacity to escape the rational world through imagination fuels not only the desire to continue living, but the need to make something out of one's life. In this film, we are introduced the brilliant-yet-warped mad scientist Krank (Daniel Emilfork), who is aging prematurely because he cannot dream. In an effort to stay alive, he has begun capturing children to steal their dreams. One of the toddlers abducted by Krank is little Denree (Joseph Lucien), the brother of a simpleminded circus strongman named One (Ron Perlman). One is joined in his search for his brother by Miette (Judith Vittet), the nine-year old, wise-beyond-her-years leader of an orphan gang. Together, One and Miette seek to penetrate Krank's fortress; elude his six cloned henchmen (all played by Dominque Pinon), the deadly Miss Bismuth (Mireille Mosse), Irvin the talking brain (voice of Jean-Louis Trintignant), and the scientist himself; and rescue Denree. It proves to be a difficult task.
While much of THE CITY OF LOST CHILDREN is surreal and strange, the film's emotional center -- the relationship between One and Miette -- is nurtured with care and genuine feeling. Miette sees in One and Denree the chance for the family she has never known, although there are times when her intentions towards the older, child-like man seem more romantic than sisterly. It's to Jeunet and Caro's credit that they are able to present the ambiguities of this relationship tenderly, without ever injecting a hint of the sordid or perverse.
Daniel Emilfork is wonderfully frightening as Krank. Bald-headed and evil-looking, he evokes memories of Max Schreck's vampire in the classic silent film NOSFERATU. Dominique Pinon, who had the lead in DELICATESSEN, uses his unusual face and goofy mannerisms to good comic effect in turning the clones into the Six Stooges. Judith Vittet shows great promise from one so young in her appealing portrayal of Miette, and Ron Perlman is effective as the strong, silent One.
Like DELICATESSEN, THE CITY OF LOST CHILDREN won't be to everyone's taste. In fact, even though I thoroughly enjoyed Jeunet and Caro's previous film, it took a while for me to warm up to this effort. The first forty-five minutes are poorly-paced and it's easy to get lost down one of the script's many dark, maze-like alleyways. The film tends to lurch along in fits and starts until Miette becomes established as a central character. From that point on, improvement is immediate and consistent. For those who enjoy the offbeat, THE CITY OF LOST CHILDREN is worth taking the time and effort to find.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Click on an whichever image represents the product you would be most interested in. You will be asked to do this 25 times, after which your task will be completed and you will be summarily thanked by our research team(or preemptively thanked, really).


at(slotName)
Tries to obtain a value for slot slotName from a local slot of that name,
or tries to load it from the PDB if the local slot does not exist. When all else fails, returns nil.
If slotName begins with an underscore ("_"), returns the id of the slot from PDB instead of the value.
atPut(slotName, value)
Records value in the slot named slotName.
createIfAbsent
Creates a slot with a new PMap clone if not already present.
init
Initialize a new PMap and automatically add it as a persistent object to PDB.
objectsForKeys
Returns a list of values for each key in the list given. Keys beginning with an
underscore ("_") are returned verbatim.
persist
Commits the PMap's slots to PDB.
persistSlots
Cleans up dirty slots by committing them to PDB.
removeAt
Marks a value for removal.
removeSlot
Marks a value for removal.
shouldPersistByDefault
PDB boolean flag indicating whether this object should be considered for persistence
when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist.
Always true by default for PMap.
slotCount
Returns the number of slots committed to PDB.
|


 We prepared list of most important files where you can find Html and Twig code to modify forum structure:
- base.html.twig - initial twig values, forum defaults (Twig array)
- overall_header.html.twig - top structure of the forum
- overall_footer.html.twig - bottom structure of the forum
- navbar_top.html.twig - Top navigation bar
- navbar_header.html - Top navigation bar content
- navbar_bottom.html.twig - Bottom navigation bar
- slideshow.html.twig - Slideshow
- topbar.html.twig - Topbar including menu and logo


Below is just about everything you’ll need to style in the theme. Check the source code to
see the many embedded elements within paragraphs.
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Lorem ipsum dolor sit amet, test link adipiscing elit. This is strong. Nullam dignissim,
convallis est. Quisque aliquam. This is emphasized. Donec faucibus. Nunc iaculis suscipit
dui. 53 = 125. Water is H2O. Nam sit amet sem. Aliquam libero nisi, imperdiet at, tincidunt
nec, gravida vehicula, nisl. The New York Times (That’s a citation). Underline. Maecenas
ornare tortor. Donec sed tellus eget sapien fringilla nonummy. Mauris a ante. Suspendisse
quam sem, consequat at, commodo vitae, feugiat in, nunc. Morbi imperdiet augue quis
tellus.
HTML and CSS are our tools. Mauris a ante. Suspendisse quam sem, consequat at,
commodo vitae, feugiat in, nunc. Morbi imperdiet augue quis tellus. Praesent mattis,
massa quis luctus fermentum, turpis mi volutpat justo, eu volutpat enim diam eget metus.
To copy a file type COPY filename.
struck.
List Types
Definition List
- Definition List Title
- This is a definition list division.
- Definition
- An exact statement or description of the nature, scope, or meaning of something: our
definition of what constitutes poetry.
Ordered List
- List Item 1
- List Item 2
- Nested list item A
- Nested list item B
- List Item 3
Unordered List
- List Item 1
- List Item 2
- Nested list item A
- Nested list item B
- List Item 3
Preformatted Text
Typographically, preformatted text is not the same thing as code. Sometimes, a faithful
execution of the text requires preformatted text that may not have anything to do with
code. Most browsers use Courier and that’s a good default — with one slight adjustment,
Courier 10 Pitch over regular Courier for Linux users. For example:
“Beware the Jabberwock, my son!
The jaws that bite, the claws that catch!
Beware the Jubjub bird, and shun
The frumious Bandersnatch!”
Code
Code can be presented inline, like {pre} block. Because we have more specific typographic needs for code, we’ll specify
Consolas and Monaco ahead of the browser-defined monospace font.
#container {
float: left;
margin: 0 -240px0 0;
width: 100%;
}
Blockquotes
Let’s keep it simple. Italics are good to help set it off from the body text. Be sure to style the citation.
Good afternoon, gentlemen. I am a HAL 9000 computer. I became
operational at the H.A.L. plant in Urbana, Illinois on the 12th of January
1992. My instructor was Mr. Langley, and he taught me to sing a song. If
you’d like to hear it I can sing it for you.
— HAL 9000


Windows 7 Enterprise Iso Download Pcriver
Windows 7 Enterprise Full Version Iso Free Download Softlay
Windows 7 Enterprise Iso Download
Download Windows 7 Enterprise Iso 32 Bit 64 Bit
Windows 7 Enterprise Iso Download Full Version 32 64 Bit 2021
Download Windows 7 Iso Files Full Version Windowstan
Download Free Windows 7 Enterprise Full Version Iso Updated 2020
Windows 7 Enterprise Iso Free Download 32 Bit 64 Bit
Windows 7 Enterprise Iso Download Full Version For Free Isoriver
Windows 7 Enterprise Free Download Iso 32 Bit 64 Bit Download Windows Pro
Windows 7 Enterprise Download Free Oceanofexe
Windows 7 Enterprise Iso Download Bootable Disc Image Windowstan
Microsoft Windows 7 Enterprise Download Updated 2021
Windows 7 Starter Official Iso Image Free Download Full Version
Download Windows 7 Enterprise Iso
Windows 7 Enterprise Free Download Iso 32 Bit 64 Bit
Windows 7 Enterprise K With Service Pack 1 X86 Korean Microsoft Free Download Borrow And Streaming Internet Archive
Windows 7 Enterprise Iso 32 Bit 64 Bit Liberated Free Download Softotornix
Windows 7 Sp1 Hebrew Iso 64 Bit Attackever
Windows 7 Enterprise Full Version Windows 7 Enterprise Download Windows 7 Iso Free Free Transparent Png Clipart Images Download
Windows 7 8 1 10 Pro X86 X64 Sep 2018 Single Iso Free Download Pc Wonderland
Download Windows 7 Original Iso Retail Oem Index Of Apps
Windows 7 Enterprise 32 Bit And 64 Bit Iso Free Download Single Click Free Software Download
Windows 7 Sp1 All In One December 2019 X86 X64 Iso Free Download
Download Windows 7 Disc Images Iso Files
10 Os Ideas Microsoft Windows Windows Microsoft
Windows 7 Enterprise Free Download Iso 32 Bit 64 Bit Osfreeware
Download Windows 7 Iso Free From Microsoft
Download Windows 7 8 1 Or 10 Iso Images Direct From Microsoft Raymond Cc
Windows 7 Ultimate Iso 32 64 Bit Download Os Apps Online


Posts
Welcome to Jekyll!
PowerShell Password Generator Function
Sorry, another account from your organization is already signed in on this computer
Find and Fix Metaverse Objects with PowerShell
Search for Bad MIM Portal Records with PowerShell
PowerShell Script to Enable/Disable Sync Rule Provisoning
Move Hyper-V VM and Storage Files to New Location
GPG Command Line Examples
AD Forest DCDiag and RepAdmin Report
Add Quotes and Commas to a List of Words in Bash
Repartition a USB Thumbdrive
Shrink LVM Volume - Ubuntu
FIM/MIM MA Pending Export Report
SQL Cheat Sheet
PowerShell to Remove Password Not Required Flag in AD
Use PowerShell to Create a Storage Usage Report for a Windows Server
MIM 2016 Metaverse Cleanup by Deleting CS
Generate Unique Logon Name with PowerShell
PowerShell Dump DHCP Reservations
PowerShell Dump DHCP Leases
Get Log Entries For a Range of Time on Linux
Set Aging on All DNS Zones
Script Creating DNS Records
Find GPOs that aren't linked or Don't Contain Policies
Enterprise Printer Status
Easy to Read Repadmin Results
Easy to Read DCDiag Report
Dump DHCP Leases with PowerShell
Check SHA1 Hash of a File with PowerShell
FIM 2010 R2 Training Videos
Exchange 2010 PowerShell Search Root
Microsoft Deployment Toolkit
Read DoD STIG XML file into MS Access Database
Forefront Identity Manager Links
Network Location Awareness Issues with WS 2008 R2 Domain Controllers
Configure WinRM for Self-Signed Certificate
Apply FDCC LGPO
Some Group Policy Reading
Beacon Attack Script
PowerShell to Email Web Content
Fake Access Point with BT5/Kali Linux
MS Access DB with PowerShell
Send-MailMessage Example
Configure Nagios DNS Check
Constant UAC Prompts in Windows 8.1
Delegate DNS Zone in BIND
Windows 8.1 EventID 10016 DistributedCOM
Cisco AnyConnect Reconnecting Errors
Remote Registry with PowerShell
Install Webmin on CentOS 6
Configure Sudoers
Configure SSHD for Security
Configure IPTables
Reset Secure Channel
Javascript and CSS to Show and Hide Div
PowerShell to Create Multiple Hyper-V VMs
Connect to a Different Active Directory Domain with PowerShell
Create and Install a Self-Signed SSL Certificate on Apache/CentOS 6
Install Wordpress on CentOS 6
Configure BIND on CentOS
Synchronize Backups from Remote Server
Notes From My Postfix Setup
NAT with IPTables
Create Legacy IPsec Policy from CLI
Disable SSLv2 on Windows Server 2008 Domain Controllers
Configure and Use WinRM
Active Directory Recycle Bin
Secure Active Directory DNS to Prevent Amplification Attacks
Offline Defrag of the Active Directory Database
Mac OSX Bind Script
Can't Add a WS 2008 R2 Domain Controller to a WS 2008 Domain
Enable Diagnostic Logging in Active Directory
Reverse SSH Tunnel
Tunneling with SSH
Configure Linux Network Interface
Configure SSH for Public Key Login
Change Linux Hostname
Change Console Resolution and Remove Splash on Linux
Low Disk Space on Server 2008
Computer Password Problems in Active Directory
Get the RID Portion of a Users SID with PowerShell
Use Symbolic Links in Windows
PowerShell Script to Check a Website
Change UPN Suffix for Office 365 Users
Deactivate an Active Directory Schema Class
Data Security in Active Directory
PowerShell to Get a Webpage
DMVPN Lab
Selective Dial Peers with Translation Rules
Cisco VoIP Troubleshooting Examples
Useful PowerShell Commands for Office 365
Change the ImmutableID for an Office 365 Mailbox
Wireless Fun with Aircrack and Others
Using LDIFDE for Importing and Exporting Objects
iOS 5 and Basic S/MIME Functionality - Sign and Encrypt your emails.
Active Directory Account and Password Settings
Wordpress Installation on CentOS 6
Windows DFS and Access Based Enumeration
What is Using That Network Port Anyways?
VMWare Information on Virtual Switch Tagging (VST)
Using MIT Kerberos for Authentication in a Mixed Environment
University Enterprise Active Directory Information
The United States Government Configuration Baseline (USGCB)
Stale Computer Objects and Clustering - Ooops....
Speed Up Loading AD PowerShell Modules
Signing scripts in Powershell with an enterprise PKI
Send Email to Gmail from Powershell
Secure Switch Template
Searching Active Directory with VBScript
Script to Create Switch Configs
Reset DSRM Password on Each Domain Controller
Remove Those Annoying Action Panes in All MMCs
Regular Active Directory Tasks
Process Hacker
Powershell Script to Find Stale User and Computer Objects
PowerShell Script to Check if a User Exists
PowerShell Links
PS Script to Manage Groups Based on User Attribute
PDC Emulator Time in VMWare
OpenLDAP and Kerberos on Debian
Ongoing Active Directory Issue (Kerberos Related)
Network Troubleshooting as it Pertains to Active Directory
NETLOGON Debug
Mount a Windows File Share in Linux from the CLI.
More on Kerberos Authentication Against Active Directory - blog.scottlowe.org
Monitor Disk Space on Domain Controllers
Microsoft Tools to Configure Local Group Policy
Microsoft Technet Group Policy Blog
Links for Smart Card Authentication in Active Directory
Kamshin Consulting
Judge Your Facial Hair
Installing the Web Service for Active Directory PowerShell Modules
Installing DNS Role on Windows Server 2008 R2 Fails
Information About Tokens and Kerberos
Identify Active Directory Schema Number
Group Policy Reading
Get to Those Network Settings Faster in Windows Vista and Windows 7
Get a List of Unique IP Addresses from a Log File
Get Your Public IP From CLI or a Script
Geek Humor
Geek Humor 2
Find Active Directory Objects Created in the Last 24 Hours
Export Active Directory Objects for Use in a Lab
Everything You Wanted to Know About DNS
Encryption in Kerberos Authentication
Editing an AD Object Attribute Not Displayed in ADUC
Domain Controller Performance Monitoring
Distributed File System (DFS) Links
Disable Computer Objects in Default Location Daily and Delete them Weekly
DFS Delays and other Fun Things
Create ACL Report for Your Home Directories
Configure RSAT from the Command Line
Configure PowerShell to Manage Office 365
Check Out Your Active Directory Database
Blocking and Auditing NTLM Authentication
Backup Group Policy Objects and Validate SPNs with PowerShell
Asterisk - IAX2 Trunks and Using Google Talk and Google Voice
Article About Unix Admins - www.infoworld.com
Appy CIS Benchmarks to Windows Server 2008 R2 and Windows 7
Active Directory in Networks Segmented by Firewalls
Active Directory and Cached Credentials
Active Directory, Virtualization, and You
Active Directory Security Best Practices
Active Directory Scripting
Active Directory PowerShell Blogs and Links
Active Directory Organizational Unit Design
Active Directory Lab
Active Directory Hash Hack
Acrobat Reader MSI Package the Easy Way
Accessing Replication Metadata using AD PowerShell
APT Cheat Sheet
A Truely Amazing Story of a Forest Recovery
A List of Windows Snap-ins and Applets
A Debian Security How-to
Why Ham Radio Endures in a World of Tweets - Wired
WSUS Uninstall Troubles
VIM Undo and Line Number Tricks
Using Cisco Netflow with Ntop
Troubleshooting and Debugging VoIP Call Basics
The rDirectory
The Website Is Down - Sales Guy vs. Web Dude
The O'Reilly CD Bookshelf
Site with Active Directory Tools
Site-to-Site VPN with Cisco ASA 5505
SharePoint Authentication Issues
Send Email from PowerShell
SSH and File Sharing
SCCM/SCOM Lab
SCCM Administrator Blog
Runaway Process Taking All of Your CPU? Kill It! Kill It Now!
Run Commands on Remote Routers (Perl and EXPECT)
Restart a Number of Services at Once
QoS to Limit Some Web Traffic (ardenpackeer.com)
PowerShell Working With ACLs and ACEs for Network Shares
PHP and SNMP
OpenVPN Project from HowtoForge
Networking Information Site
Network Templates
Mount NTFS Partitions in Linux
Motorola Verizon Droid X USB Drivers & PC Charging Drivers Download
Loading IOS image via TFTP in ROMMON
Libya Shortwave Radio
Lerning Perl
Kerberos Authentication on Debian Linux
Intrusion Detection the Debian Way
Install SNMP on Debian Squeeze
Install PIA to a APT-GET Installed Cacti Server
Install Cacti on Debian Squeeze
Hello world!
Hyper-V 2016 Core Lab in Intel Nuc (Install)
Enumerate and Set DNS Suffix and DNS Server Entries for Interfaces
Do You Have Unknown Hardware?
Displaying Logs in Splunk (Updated)
Database Query from Perl Script
DNSCMD Command to Create DNS Records in Windows DNS
DMVPN and VRF-Lite Project
DMVPN Explained
Creating Trunks in Asterisk
Create a List of IP Addresses for a Subnet (**UPDATED**)
Configure Exim4 to Send Mail for a Drupal Site
Cisco CME Using Asterisk for Voice Mail
Cisco ASA QoS Configuration
Centralize Syslog-ng Data with MySQL
Cammer Perl Script from the Creator of MRTG
Cacti Backup
Bulk Add Devices to Cacti
Another Article About QoS for Non-work Related Traffic (Networkers-Online)
Adding Server 2008 R2 Domain Controllers to a Server 2003 Environment
subscribe via RSS


|
PolyTycoon
1
UnityTransportTycoontypegame.
|
Properties | |
| static Vector3 | TopLeft = new Vector3(-0.25f, 0f, 0.5f) [get] |
| static Vector3 | TopRight = new Vector3(0.25f, 0f, 0.5f) [get] |
| static Vector3 | RightTop = new Vector3(0.5f, 0f, 0.25f) [get] |
| static Vector3 | RightBottom = new Vector3(0.5f, 0f, -0.25f) [get] |
| static Vector3 | BottomRight = new Vector3(0.25f, 0f, -0.5f) [get] |
| static Vector3 | BottomLeft = new Vector3(-0.25f, 0f, -0.5f) [get] |
| static Vector3 | LeftBottom = new Vector3(-0.5f, 0f, -0.25f) [get] |
| static Vector3 | LeftTop = new Vector3(-0.5f, 0f, 0.25f) [get] |
| static Vector3 | CenterTopRight = new Vector3(0.25f, 0f, 0.25f) [get] |
| static Vector3 | CenterTopLeft = new Vector3(-0.25f, 0f, 0.25f) [get] |
| static Vector3 | CenterBottomRight = new Vector3(0.25f, 0f, -0.25f) [get] |
| static Vector3 | CenterBottomLeft = new Vector3(-0.25f, 0f, -0.25f) [get] |
| static Vector3 | MiddleLeft = new Vector3(-0.5f, 0f, 0f) [get] |
| static Vector3 | MiddleRight = new Vector3(0.5f, 0f, 0f) [get] |
| static Vector3 | MiddleTop = new Vector3(0f, 0f, 0.5f) [get] |
| static Vector3 | MiddleBottom = new Vector3(0f, 0f, -0.5f) [get] |


class: center, middle, inverse, title-slide # Recap I ### The R Bootcamp
Twitter:
@therbootcamp
### January 2018 --- # Essentials of the R language .pull-left5[ >"To understand computations in R, two slogans are helpful:

 >###(1) Everything that exists is an object and >###(2) everything that happens is a function call." ] .pull-right5[

John Chambers
  Author of S and developer of R
 statweb.stanford.edu
 ] --- .pull-left45[ # Objects >###"Everything in R is an object"
 >
*John Chambers*

 + R's objects are have **content and attributes**. <br2> + The **content can be anything** from numbers or strings to functions or complex data structures. <br2> + Attributes often encompass **names**, **dimensions**, and the **class or type** of the object, but other attributes are possible. <br2> + Practically all data objects are equipped with those **three essential attributes**. ] .pull-right5[

  ] --- # Accessing & changing data frames (and lists) Data frames (and lists) are best accessed using **names** and the `$`-operator. This, of course, implies that you followed good practice and named the individual elements in the data object. .pull-left45[ ```r # retrieve elements using brackets my_df <- data.frame('v_1'=c('A', 'B', 'C'), 'v_2'=c(1, 2, 3)) my_df[1] ; my_df[[1]] ; my_df[['v_1']] ``` ``` ## v_1 ## 1 A ## 2 B ## 3 C ``` ``` ## [1] A B C ## Levels: A B C ``` ``` ## [1] A B C ## Levels: A B C ``` ] .pull-right45[ ```r # retrieve elements using the $-operator my_df$v_1 ``` ``` ## [1] A B C ## Levels: A B C ``` ```r my_df$v_1 <- c('X', 'Y', 'Z') my_df ``` ``` ## v_1 v_2 ## 1 X 1 ## 2 Y 2 ## 3 Z 3 ``` ] --- # Functions Any operation of your data is done by functions. Functions have 3 elements: + **Name**: Used to call (execute) a function. + **Argument(s)**: Objects that the function needs to do its job. + **Expression**: R code that is the options job. .pull-left55[ ```r # Defining a function that computes the mean my_mean <- function(x) return(sum(x) / length(x)) # Defining a function that computes # the mean or median my_stat <- function(x, method = 'mean'){ # detect and run method if(method == "mean") return(my_mean(x)) if(method == "median") return(median(x)) # return error if not method detected stop('Method must be mean or median') } ``` ] .pull-right4[ ```r # Runnning our functions my_vec <- c(1, 4, 6, 3, 7, 5, 12, 9) my_mean(x = my_vec) ``` ``` ## [1] 5.875 ``` ```r my_stat(x = my_vec, method = 'mean') ``` ``` ## [1] 5.875 ``` ```r my_stat(x = my_vec, method = 'median') ``` ``` ## [1] 5.5 ``` ] --- # Help .pull-left5[ R provides extremely helpful **help files** and **vignettes**. >**Help files** are required documentations for every R function and package published on [**CRAN**](https://cran.r-project.org/).
 >**Vignettes** are long tutorials sometimes provided by the authors of a package. ```r # To access help files help("name_of_function") ?name_of_function # find help files ??name_of_function # To list and access vignettes vignette(package = "name_of_package") vignette(package = "name_of_vignette") ``` ] .pull-right45[

  ] --- # Importing and Exporting Data In this session you will learn... .pull-left45[ 1. How to import data data from **delimeter separated files** (e.g., .csv)? <br2> 2. How to import data data from **proprietory file formats** (e.g., .sav)? <br2> 3. How to save/export data to various formats, including **R's own files types**? <br2> 4. How to use **file connections** to read data in its rawest possible way? <br2> 5. About a new data format called **tibble**. ] .pull-right45[
   ] --- # An example Assume we have a *flat* data set with variables `id`, `var_1`, and `var_2` and cases as rows. Such data can be conveniently read in using `read_csv()`. Moreover, `read_csv()` will **automatically identify** (a) columns and rows, (b) column names, (c) the type of the columns and finally return a `tibble` (more on that later). .pull-left45[ ```r # define simple data set data <- "id, var_1, var_2\n DCDL, .287, .048\n FEFK, .894, .383\n ZEWE, 1.374, .623\n OJEE, .631, .826" ``` ] .pull-right45[ ```r # read in data require(readr) read_csv(data) ``` ``` ## Loading required package: readr ``` ``` ## # A tibble: 4 x 3 ## id var_1 var_2 ## <chr> <dbl> <dbl> ## 1 DCDL 0.287 0.048 ## 2 FEFK 0.894 0.383 ## 3 ZEWE 1.374 0.623 ## 4 OJEE 0.631 0.826 ``` ] --- # `tibble`s The **output** from most `tidyverse` read functions such as `read_csv` and the preferred data format for many (but not all) analyses is a `tibble`. `tibble`s are a **modern, leaner version of data.frames**. .pull-left45[ ### tibbles ... + never change the input's type. <br2> + never add row names. <br2> + never change column names. <br2> + look better in `print`. <br2> + are accessed more consistently. ] .pull-right45[ ### Functions ```r # create tibble my_data <- tibble(id, var_1, var_2) # convert to and from data.frame as_tibble(my_data_frame) as.data.frame(my_tibble) ``` ``` ## # A tibble: 4 x 3 ## id var_1 var_2 ## <chr> <dbl> <dbl> ## 1 DCDL 0.287 0.048 ## 2 FEFK 0.894 0.383 ## 3 ZEWE 1.374 0.623 ## 4 OJEE 0.631 0.826 ``` ] --- # The almighty **tidyverse** Among its many packages, R contains a collection of high-performance, easy-to-use packages (libraries) designed specifically for handling data know as the [tidyverse](https://www.tidyverse.org/). The tidyverse includes: 1. `ggplot2` -- creating graphics. 2. `dplyr` -- data manipulation. 3. `tidyr` -- tidying data. 4. `readr` -- read wild data. 5. `purrr` -- functional programming. 6. `tibble` -- modern data frame.


How can I setup TeamDrive Client to work with a WebDAV server that
is not on the default list?
First create a new service by clicking on Service button and
selecting New Service menu item.
In the Server field specify the server name, like www.mywebdav.com
and then select WebDAV from the Protocol combobox.
Some WebDAV servers require a specially-formatted path to access
the user's files. Enter the path in the Server Directory field. If
the path should contain the username you may use #U notation
and it will be replaced by TeamDrive with the actual username.
If
your username is myname and the URL to access your files is www.mywebdav.com/~myname,
then you need to put ~#U as your server directory path.
If you
experience any problems connecting or working with a WebDAV server
please contact us at<EMAIL_ADDRESS>I have ZoneAlarm installed on my computer and TeamDrive Client does
not work. What should I do?
If you are using ZoneAlarm you will need to make few extra configuration steps to let TeamDrive work with this firewall.
Normally ZoneAlarm blocks the low-level access to the remote servers. To let TeamDrive access a server you should add it to the list of permitted servers in ZoneAlarm. To do this, follow these steps:
- Open main window of ZoneAlarm and select Security tab.
- Click the Advanced button. ZoneAlarm Pro users: select LocalZone Contents tab.
- Click the Add button and select Host/Site.
- Enter a description and the host name of the server you want to access with TeamDrive. For example, if you wanted to access
i-drive you would enter www.idrive.com as a host name.
To enable access to a server on your LAN you may select IP Address option and enter the IP address, for example <IP_ADDRESS>.
How
do I edit the un-rendered source code on Zope?
Start
Zope with the "-W 8081" option (or add "WEBDAV_SOURCE_PORT=8081"
to the z2.py file) and then put
"8081" in the TeamDrive "Port" field. Here is a more detailed explanation.
- If starting as a program on Windows, edit the "Start.bat" file in the
"C:\Program Files\Zope" directory. (Make sure
it is a capital W.) It now looks like
this:
"C:\Program Files\Zope\bin\python.exe"
"C:\Program Files\Zope\z2.py" -D -W 8081 %1 %2 %3 %4
%5 %6 %7 %8 %9
- or -
- To the "z2.py" file, modify the line to read:
WEBDAV_SOURCE_PORT=8081
- Restart Zope.
- In TeamDrive, select the Zope service on the Connect tab and
then select Service, Edit. Next click the Advanced button and
enter 8081 in the "Port" field.
That is it! Now, when you connect to Zope, you will be able to
edit the un-rendered code.
What are the differences in the Sharing Levels?
Sharing Levels allows you to optimize the performance of TeamDrive
with how much you will use it for sharing. If you are not sharing
files with anyone, set the Sharing Level to None. If files are
shared and changed frequently, change the Sharing level to Heavy.
Here are the details on the different sharing levels:
| Sharing Level |
Cache Dir |
Refresh Time |
Auto Locks |
Check before open |
| None |
Y |
15 min |
|
|
| Light |
Y |
10 min |
|
|
| Medium |
|
5 min |
Y |
|
| Heavy |
|
10 sec |
Y |
Y |
Cache Dir: When a program requests a directory listing
that is currently available in the local cache, the local listing is
returned to the program. A directory listing request is subsequently
sent to the server and when it is returned, a Windows call is made
to indicate the directory listing has changed, which will cause
Windows Explorer and some other programs to update their directory
listing.
Refresh Time: Windows makes lots of requests for directory
listings. It is not practical to send all of these directory
requests to the server and wait for a reply. Instead, TD caches
directory listings and returns the same listing. If Windows requests
a directory listing and the refresh time has expired, TD will return
the cached listing but then get a new server directory listing.
Auto Locks: When a file is opened, TD will automatically
lock it first. When the program that opened the file closes, TD will
automatically unlock it. Auto locks are set for 15 minutes and then
extended when the time falls below 10 minutes. If a file has been
manually locked for a period longer than 15 minutes, it will not be
automatically unlocked.
Check before open: When this option is active, before a
file is opened, TD will check to see if a newer version exists. This
insures that even if with cached directory listings, any open file
request will get the most current copy of the file.


One of the scenarios of using Platform Table component, is to render the large amount of items.
Storing this amount directly in memory may lead to a browser performance issues.
In order to keep the performance on a normal level, Platform Table component supports lazy loading of the items on scroll, and reusing rendered row components for row items.

For this, developers need to pass Data source class that retrieves row's children into
[childDataSource]
input property.
IMPORTANT: due to complexity of the children lazy loading logic, [childDataSource] can only
accept classes derived from TableChildrenDataProvider
.
This example shows combination of virtual scroll and lazy loading for item on each level.