Welcome to the /usr/sbin/ece-install Guide
Table of Contents
- 1 Supported Operating Systems
- 2 A Note on Running ece-install On Non-GNU/Linux Systems
- 3 Downloading the ece-install Script
- 4 Running the ece-install Script
- 5 Available Server Profiles
- 5.1 Common for All Server Profiles
- 5.2 Common for Editorial, Presentation and Search Instances
- 5.3 Profile :: Full Stack on One Host
- 5.4 Profile :: Editorial Server (Publication Server)
- 5.5 Profile :: Presentation Server
- 5.6 Profile :: Database Server
- 5.7 Profile :: Cache Server
- 5.8 Profile :: Install Widget Framework
- 5.9 Profile :: Create Publication
- 5.10 Profile :: Monitoring Server
- 5.11 Profile :: Restoring from backup
- 5.12 Profile :: Analysis Server
- 5.13 Profile :: NFS server
- 5.14 Profile :: NFS client
- 5.15 Profile :: VIP provider
- 5.16 Running interactively
- 5.17 Running in FAI mode
- 5.18 Data security
- 6 Full Automatic Install (FAI)
- 7 Running More Than One Installation Process
- 8 Re-running ece-install (and How To Speed It Up)
- 9 Using a Custom Configuration File for ece-install
- 10 Overview of File Paths Used by the ece-install script
- 11 Overriding the Escenic directories
- 12 Extending ece-install by Writing Hooks
- 13 Assumptions
- 14 Uninstalling Everything That the ece-install Set Up
- 15 Example Output FAI
1 Supported Operating Systems
For the best experience, run this script on Debian Squeeze (or newer), the latest Ubuntu LTS or most other Debian based operating systems, but it should work without any problems on any Unix like system that has BASH version 4.2 or newer.
1.1 Debian based operating systems
If running on a Debian based operating system, ece-install will take care of installing all required third party software, such as database & caching server.
1.2 RedHat based operating systems
ece-install constantly gets better support for automatic installation on RedHat based operating systems. However, since the public RedHat repositories are significantly smaller than the Debian ones, there will often be the case that you'll have to do some manually installation of 3rd party dependencies prior to running ece-install. Don't despair though, ece-install will tell you what you need to do.
1.3 Other GNU/Linux and Unix systems
If you're installing on another Linux or Unix system, you must first make sure that these 3rd party components are installed. ece-install will tell you which ones it cannot find and tell you to install these, so you can simply run it to find out which ones you need.
You may also look inside the ece-install script for all calls to the 'assertpreprequesite' method and you'll get a list of the binaries ece-install assumes are present.
1.4 Tested Operating Systems
| Operating system | Status | Date updated |
|---|---|---|
| Debian 6.0 (squeeze) | Everything is 100% automatic | 2012-02-27 13:18 |
| Ubuntu LTS 10.04 | Everything except Tomcat/APR wrappers are automatic | 2012-02-27 13:19 |
| Ubuntu 11.10 | Everything except Tomcat/APR wrappers are automatic | 2012-02-27 13:19 |
| CentOS 6.2 | HA, APR & monitoring are not automatic | 2012-03-07 13:42 |
2 A Note on Running ece-install On Non-GNU/Linux Systems
Please note, it's assumed that the OS uses GNU's tools, i.e. find, cp & tar. If you're running a system which has a different set of core tools, such as any of the BSDs (including Mac OS X) or Solaris, make sure that GNU's tools take precedence in the command PATH offered to ece-install.
3 Downloading the ece-install Script
The ece-install script can be downloaded from: https://raw.github.com/skybert/ece-scripts/master/usr/sbin/ece-install or be downloaded together with the other ece-scripts using git:
$ git clone https://github.com/skybert/ece-scripts.git
4 Running the ece-install Script
You must run the script as the root user. If you start the script as a regular user, it will complain:
[ece-install] You must be root when running ece-install
To become root on Ubuntu based systems and Mac OS X, do:
$ sudo su
Please note that just doing "sudo ece-install" may not work.
On all other Unix like system, do:
$ su -
You will need access to http://technet.escenic.com and put these credentials in the root user's $HOME/ece-install.conf, normally this means /root/ece-install.conf, the script will also tell you this if you forget to provide such a configuration file:
[ece-install] /root/ece-install.conf doesn't exist, I cannot live without it :-(
As for the technet credentials, the script will also tell you if it cannot find what it's looking for:
[ece-install] Be sure to set technet_user and technet_password [ece-install] in /root/ece-install.conf
The minimum ece-install.conf file is thus:
technet_user=<user> technet_password=<password>
If you're installing WF as well, you'll need additional credentials for this, see the Widget Framwork section below, and if you want to runn a fully automatic install without any user interaction, you'll need to specify some FAI specific parameters, see the FAI section below.
With the configuration file in place, you're now ready to run it:
# bash ece-install [-v|--verbose|<-f|--file> <conf-file>]
It will output everything from internal and external commands to its log file located at /var/log/ece-install.log.
ece-install will try to "fail fast", exiting as soon as it detects an error during its execution:
[ece-install-1] The command [cd /does/not/exist] FAILED, exiting :-( [ece-install-1] See /var/log/ece-install.log for further details.
As a last resort, if something goes astray with the script, and the log file cannot give you enough clues, the ultimate way of debugging this is to run the BASH interpreter with the -x flag:
# bash -x ece-install
Here you can see everything that BASH does when running the script, how the wildcard variables expand and so on. Normally, having a tail on /var/log/ece-install.log should be sufficient, though.
5 Available Server Profiles
When starting the script, it will ask you which server profile you want to install:
Hi, which server profile do you wish to install? 1 - All in one, full stack on one host, suitable for dev & test environments 2 - Editorial (publication) server 3 - Presentation server (ECE + memcached). 4 - Database server 5 - Cache server (cache and web server) 6 - RMI hub 7 - Search server (Solr + indexer-webapp) 8 - Install Widget Framework. 9 - Create a new publication based on WF if available, ECE/clean-demo if not 10 - A monitoring server (web server + Munin gatherer) 11 - Restore from backup (DB, data files, binaries, conf & publications) Select 1-11 and press ENTER Your choice [1]>
5.1 Common for All Server Profiles
The script will install a Munin node on the host. It will also install the Escenic specific Munin plugins on hosts where there are any Escenic server components.
5.2 Common for Editorial, Presentation and Search Instances
5.2.1 Sun Java 6
5.2.2 Apache Tomcat application server
- Compression of textual content (previously, this was typically set up with Apache and its moddeflate module).
- pooling set up tweaked for high read/write performance.
- proper logging configuration directing solr messages to its own log.
- routing information in the cookies
- application server access log
5.2.3 Basic Escenic Nursery configuration
The basic Nursery configuration is taken care of for you, including RMI, database, search and application server/URIs.
5.2.4 APR, native library for optimal Tomcat I/O performance
5.2.5 Escenic Assembly environment
The reason why ece-install sets this up on each host, is to make the installation process as smooth as possible. The assembly environment may be removed after the installation if you want to.
5.2.6 Database driver
5.2.7 Compression of content
This was was previously accomplished by having a web server in fron t of the application server (or cache server if you used ESI). A typical system architecture would contain Apache with moddeflate. However, this is no longer necessary as Varnish can handles ESI parsing of compressed content (and many other things that we before needed Apache for). Thus, we'll let the application server do the compression for us now.
5.3 Profile :: Full Stack on One Host
This profile is suitable for developers and admins wanting to set up a test environment. It will install the full stack including caching server, application server, ECE, assembly host, database, Widget Framework, as well as creating a publication for you.
For further details on each of the different server components, see the different profile descriptions bellow.
5.4 Profile :: Editorial Server (Publication Server)
Will set up a typical editorial server (often referred to as the publication server in Escenic literature).
5.5 Profile :: Presentation Server
This will set up a typical presentation server:
- Memcached, distributed memory cache
- Deployment setup to only deploy escenic-admin and the publication(s).
5.6 Profile :: Database Server
If ece-install is run on a support version of Debian or Ubuntu, this will install the excellent Percona distribution of MySQL with their set of high performance patches.
If not, MySQL or Percona must be installed in advance.
Given that the mysqld is install, this profile will download all the Escenic components and install the ECE database schema based from the SQL files contained inside the distribution bundles. To accomplish this, the script will make a call to drop-and-create-ecedb in the same directory as the ece-intall script itself.
The script will fail by itself if the DB already exists:
[ece-install] Setting up the ECE database schema ... ERROR 1007 (HY000) at line 1: Can't create database 'ece5db'; database exists ERROR 1050 (42S01) at line 2: Table 'DBChangeLog' already exists [ece-install] running tables FAILED, exiting :-(
If you for some reason wish to make ece-install drop the DB fro you before creating a new one, you can set
fai_db_drop_old_db_first=1
5.6.1 Master & slave setup
It's easy to set up master and slave DBs, here's how you'd configure ece-install to install these:
On the master, create an ece-install.conf with:
fai_enabled=1 fai_db_install=1 fai_db_master=1 fai_db_replication=1
The script will itself output some replication log settings you need for the slave:
[ece-install-35] - DB is now set up on localhost:3306 [ece-install-35] - ece-install.conf for slave: fai_db_master_log_file=mysql-bin.000013 [ece-install-35] - ece-install.conf for slave: fai_db_master_log_position=106
Once this is done, create and use an ece-install.conf on the slave with this configuration:
fai_enabled=1 fai_db_install=1 fai_db_replication=1 fai_db_master=0 fai_db_master_host=my-db-master fai_db_master_log_file=mysql-bin.000013 fai_db_master_log_position=106
The script will set up and use the replication user & credentials with default values, if you wish to override these, have a look in the FAI parameter overview.
5.7 Profile :: Cache Server
If ece-install is run on a support version of Debian or Ubuntu, it will install the latest Varnish 3.0 caching server from the Varnish APT repository.
If ece-install is run on a different platform, the admin must install Varnish 3.x prior to running ece-install.
The script will configure Varnish for a typical Escenic site:
- it will set up the cache server on port 80
- will set up an access control lists of IPs which may access the
privileged web applications such as /escenic-admin, /escenic and
/webservice.
ece-install will also add the host from which you connect, making sure that if you've SSH-ed into the server to conduct the install, you'll automatically be included in the "staff" ACL and can access all the web applications without editing these ACLs (or disabling security as many does).
- will set up sticky sessions/session binding
- will set up a backend cluster and allow the user to enter the different backend servers that will serve the web site.
- will set up configuration to strip away cookies from static resources, such as CSS, JS and pictures.
- will install the nginx web server for serving static content and will configure Varnish accordingly. This will be very useful for Adactus servers wanting to pull content from your ECEs.
TBD:
- If run on a Linux platform, the script will tweak the kernel parameters for optimal TCP handling for a web facing server.
- let the /munin run through on port 80, requiring the connecting IPs to be in the staff network ACL, defined in the Varnish configuration.
5.8 Profile :: Install Widget Framework
You'll need a user name and password for accessing the repo.escenic.com Maven repository. You should get these credentials when you bought Widget Framework. If you for some reason do not have these, please contact<EMAIL_ADDRESS>If you don't have these ready in your ece-install.conf, ece-install will complain:
[ece-install] Be sure to set wf_user and wf_password in /root/ece-install.conf [ece-install] If you don't have these, please contact<EMAIL_ADDRESS>5.9 Profile :: Create Publication
This profile will create a publication for you, only asking you the name of the publication and which ECE instance to use for its creation.
This installation profile will base the publication on the Widget Framework if its present on the system, if not, ECE's clean demo WAR is used as a basis.
5.10 Profile :: Monitoring Server
This will install a Munin gatherer and web server. The latter for accessing the reports generated by the former.
TBD: This profile will also install the Nagios interface for monitoring the different nodes.
5.11 Profile :: Restoring from backup
ece-install can restore from a backup made by the ece script:
$ ece -i <instance> backup
As stated in the ece guide, this backup may contain (depending on what's available on the host where it's run):
- database dump of the instance
- data files (pictures, video files and so on). This is often referred to as the "multimedia archive" in Escenic literature.
- ECE, cache and web server configuration
- Escenic software
5.12 Profile :: Analysis Server
This profile will install the Escenic Analysis Engine and configure it for production use with sane defaults. Be sure to use a different DB than you use for ECE.
5.13 Profile :: NFS server
Will install an NFS server.
5.14 Profile :: NFS client
Will install an NFS client, create all the mountpoints and mount these on the host.
Configuration example for setting up an NFS client mounting the multimedia archive on the NFS server:
fai_enabled=1 fai_nfs_client_install=1 fai_nfs_server_address=<IP_ADDRESS> fai_nfs_export_list="/var/exports/multimedia"
5.15 Profile :: VIP provider
This profile will make the host capable of serving a certain virtual IP (VIP) for one or more services. This is a useful thing for all SPOFs in your architecture, such as the file server or database.
You will typically install another profile at the same time as the VIP provider. For instance, you will install both an NFS server and a VIP provider for that NFS server (and perhaps other services too running on the same host).
The following ece-install.conf configuration will install an NFS server and make it a VIP provider exposing its NFS service. The two VIP providers have have the IP addresses <IP_ADDRESS> and <IP_ADDRESS> and both provide the VIP <IP_ADDRESS>
# install the NFS server fai_enabled=1 fai_nfs_server_install=1 fai_nfs_export_list="/var/exports/multimedia" fai_nfs_allowed_client_network="<IP_ADDRESS>/<IP_ADDRESS>" # install the VIP provider, primary node fai_vip_install=1 fai_vip_service_list="nfs-kernel-server" fai_vip_primary_node_name=ubiquitous fai_vip_primary_node_ip=<IP_ADDRESS> fai_vip_primary_node_auth_key=d41d8cd98f00b204e9800998ecf8427e fai_vip_secondary_node_name=ubiquitous-lts fai_vip_secondary_node_ip=<IP_ADDRESS> fai_vip_address=<IP_ADDRESS> fai_vip_sibling_ip=$fai_vip_secondary_node_ip
The secondary node, also an NFS VIP provider can have the exact same configuration except for having a different sibling:
fai_vip_sibling_ip=$fai_vip_primary_node_ip
Note that the faivipprimarynodeauthkey is optional. If not set, ece-install will generate it for you. However, you will then have to add this to ece-install.conf when installing the secondary node. Generate this key, do:
$ dd if=/dev/urandom bs=512 count=1 | \ openssl md5 | \ cut -d' ' -f2
5.16 Running interactively
5.16.1 Start ece-install and choose the Option, "Restore from backup"
# ece-install
5.16.2 Select Which Backup to Restore
[ece-install-5] From which dataset do you wish to backup? 1 - engine-dev1-backup-2011-10-10.tar.gz 2 - engine-dev1-backup-2011-10-11.tar.gz [ece-install-5] Enter the number next to the tarball, from 1 to 2 Your choice [1]>
The ece script mentioned above will create backups in
/var/backups/escenic
and the ece-install script will hence expect to find them here.
5.16.3 Choose What to Restore
[ece-install-12] Which part of the system do you wish to restore? 1 - The database 2 - The Solr and ECE data files (multimedia archive) 3 - The ECE configuration files 4 - The Escenic and Tomcat software binaries + publication templates Your choice [1]> 2
5.16.4 Sit Back and Watch ece-install Restore the Data for You
[ece-install-13] Restoring the Solr & ECE data files on ubiquitous ... [ece-install-21] - The installation is now complete! It took 0d 0h 0m 20s [ece-install] Successfully restored Solr & ECE data files [ece-install] from backup: engine-dev1-backup-2011-10-12.tar.gz [ece-install] Check /var/lib/escenic to verify they're all there
5.17 Running in FAI mode
If you're running in FAI mode, you can choose between these settings to decide what to restore and where to find the backup file to restore from:
| Parameter | Default | Description |
|---|---|---|
| fairestoreall | 0 | Restore everything found in the backup file |
| fairestoredb | 0 | Install the DB server & restore its contents |
| fairestoredatafiles | 0 | Restore the Solr & ECE data files |
| fairestoreconfiguration | 0 | Restore the Solr & ECE configuration files |
| fairestoresoftwarebinaries | 0 | Restore the Escenic and Apache Tomcat software |
| fairestorefromfile | "" | The .tar.gz produced by "ece -i <instance> backup" |
For example, to restore everything possible from a given tarball, you need this in your ece-install.conf:
fai_enabled=1 fai_restore_from_backup=1 fai_restore_all=1 fai_restore_from_file=/var/backups/escenic/engine-dev1-backup-2011-10-10.tar.gz
5.18 Data security
You should take heed when running restore, so that you're not restoring a system which you didn't want to change (yes, this mishap does happen).
The ece-install script will help you a bit on the way, but the final responsibility always lies with you as the user.
If you're trying to restore the DB and the ECE schema already exists, the restore will fail:
[ece-install-8] Restoring the database contents on ubiquitous ... [ece-install-24] Selecting the most recent database dump ece5db-2011-10-10.sql.gz ERROR 1007 (HY000) at line 1: Can't create database 'ece5db'; database exists ERROR 1050 (42S01) at line 25: Table '`ece5db`.`AccessControlList`' already exists [ece-install-24] The command [restoring from var/backups/escenic/ece5db-2011-10-10.sql.gz] FAILED, exiting :-( [ece-install-24] See /var/log/ece-install.log for further details.
6 Full Automatic Install (FAI)
The ece-install script has support for doing a full automatic install (FAI). You can only install one profile at a time. The profiles are the parameters with "install" in their name, such as:
fai_editor_install
When running in FAI mode, you probably want to redirect standard output to a log file for easy reading later on:
# bash ece-install > ece-install.out &
Alternatively, you may do:
# nohup bash ece-install > ece-install.out &
The "nohup" at the beginning and the ampersand at the end lets you log out of the SSH/X session to your Linux/Unix box while the script keeps running in the background.
6.1 Installing from EARs instead of Binaries
It is possible to get ece-install to use a supplied EAR and configuration archive instead of using the files provided with the Escenic Content Engine & plugins.
The EAR to provide is the one you generate with:
$ ece -i <instance> assemble
Normally, the EAR will then be available in:
/var/cache/escenic/engine.ear
The configuration bundle must contain:
engine/security engine/siteconfig/bootstrap-skeleton engine/siteconfig/config-skeleton assemblytool/plugins/<plugin>/siteconfig
and optionally also:
engine/solr/conf
A simple way to create this bundle, is to use a server which has the assembly environment set up and then do:
$ cd /opt/escenic $ tar czf /tmp/nursery-skeleton-solr-and-security.tar.gz \ engine/security \ engine/siteconfig/config-skeleton/ \ engine/solr/conf \ engine/siteconfig/bootstrap-skeleton/`
/tmp/nursery-skeleton-solr-and-security.tar.gz should now have everything you need. You can now configure your FAI installation to use these by, e.g.:
fai_presentation_ear=/tmp/engine.ear fai_presentation_conf_archive=/tmp/nursery-skeleton-solr-and-security.tar.gz
Corresponding configuration options are available for the other server profiles, see the table below.
The inclusion of the engine/solr directory makes it easy for users to provide their own, optimised Solr configuration. In this context, also note that a post install hook, setupsolr.postinst, is available.
If you wish to provide Nursery configuration for the plugins, you simply put them in engine/siteconfig/config-skeleton inside your tarball, together with the other Nursery configuration files.
6.2 Setting up virtual hosts
Setting up virtual host definitions in the application server makes a some things easier, such as ECE plugins which set cookies based on information they get from the app server.
ece-install can set up the virtual hosts configuration for Tomcat application servers if the profile is editorial, all presentation.
To use this feature, you must define one domain for each publication in the following FAI parameter:
fai_publication_domain_mapping_list=" firepub#fire.escenic.com ildpub#ild.escenic.com "
This will produce the following stanzas in server.xml:
<Host name="fire.escenic.com" appBase="webapps" autoDeploy="false"> <Context displayName="fire.escenic.com" docBase="firepub" path="/" /> </Host> <Host name="ild.escenic.com" appBase="webapps" autoDeploy="false"> <Context displayName="ild.escenic.com" docBase="ildpub" path="/" /> </Host>
Furthermore, if these host names are not resolvable to your local host (neither localhost or the IP of your $HOSTNAME), ece-install will add entries for these domains in the machine's /etc/hosts:
# added by ece-install @ Wed Feb 8 19:21:49 CST 2012 <IP_ADDRESS> fire.escenic.com # added by ece-install @ Wed Feb 8 19:21:51 CST 2012 <IP_ADDRESS> ild.escenic.com
If you do not want ece-install to touch your /etc/hosts, you can set faikeepoffetchosts=1 in your ece-install.conf
6.3 Overview of All FAI Parameters
The ece-install script understands for the following settings in the $HOME/ece-install.conf file of the root user:
| Parameter | Default | Description |
|---|---|---|
| faiallinstall | 0 | Install all components on your server. |
| faianalysisdbhost | localhost | For the EAE DB (different from ECE's) |
| faianalysisdbinstall | 0 | Install db profile |
| faianalysisdbpassword | read-the-source-luke | For the EAE DB (different from ECE's) |
| faianalysisdbport | 3306 | For the EAE DB (different from ECE's) |
| faianalysisdbschema | ece5db | For the EAE DB (different from ECE's) |
| faianalysisdbuser | ece5user | For the EAE DB (different from ECE's) |
| faianalysisname | analysis1 | EAE instance name |
| faianalysisport | 8080 | Port of the EAE |
| faianalysisshutdown | 8005 | Shutdown port for the EAE app server |
| faicachebackends | ${HOSTNAME}:8080 | Space separated, e.g. "app1:8080 app2:8080" |
| faicacheinstall | 0 | Install cache server profile |
| faidbdropolddbfirst | 0 | Warning: this will drop the old database before installing a new one |
| faidbhost | $HOSTNAME | Useful for editor & presentation profiles |
| faidbinstall | 0 | Install db profile |
| faidbpassword | read-the-source-luke | Useful for DB installation profile |
| faidbport | 3306 | Useful for editor & presentation profiles |
| faidbschema | ece5db | Useful for DB installation profile |
| faidbuser | ece5user | Useful for DB installation profile |
| faieditorconfarchive | "" | conf.tar.gz to use for Nursery & JAAS configuration |
| faieditorear | "" | EAR to use instead of the Escenic binaries |
| faieditorinstall | 0 | Install the editorial profile |
| faieditorname | editor1 | Name of the editor instance |
| faieditorport | 8080 | HTTP port of the editor instance |
| faieditorshutdown | 8005 | Shutdown port of the editor instance |
| faienabled | 0 | Whether or not to run ece-install in FAI mode |
| faikeepoffetchosts | 0 | Set this to 1 if you don't want ece-install adding entries to /etc/hosts |
| faimonitoringserverinstall | 0 | Install the monitoring server profile. |
| faimonitoringserverip | <IP_ADDRESS> | The IP of the monitoring server. |
| fainfsallowedclientnetwork | "" | IP/netmwask of allowed NFS clients, example: <IP_ADDRESS>/<IP_ADDRESS> |
| fainfsclientinstall | 0 | Installs an NFS client |
| fainfsclientmountpointparent | /mnt | Mount point parent directory |
| fainfsexportlist | "" | Space separated list of NFS export directories, full paths as seen on the NFS server. E.g.: /var/exports/multimedia |
| fainfsserveraddress | "" | Address of the NFS server, useful for the NFS client profile |
| fainfsserverinstall | 0 | Install an NFS server |
| faipresentationconfarchive | "" | conf.tar.gz to use for Nursery & JAAS configuration |
| faipresentationear | "" | EAR to use instead of the Escenic binaries |
| faipresentationinstall | 0 | Install the presentation server profile |
| faipresentationname | web1 | Name of the presentation server instance |
| faipresentationport | 8080 | HTTP port of the presentation server instance |
| faipresentationshutdown | 8005 | Shutdown port of the presentation instance |
| faipublichostname | ${HOSTNAME}:8080 | The public address for your website |
| faipublicationcreate | 0 | Create a new publication |
| faipublicationdomainmappinglist | "" | Mapping between publication names and their corresponding domains on the form: "one#one.com other#other.com" |
| faipublicationname | mypub | Name of the publication |
| faipublicationuseinstance | dev1 | Name of local instance to use for creation |
| faipublicationwar | "WF or ECE demo WAR" | WAR to base the new publication on |
| faipublicationwarurilist | "" | Publication WARs used for setting up Assembly tool. Supported: http[s]://tmp.com/mypub.war, ///tmp/mypub.war and /tmp/mypub.war. |
| fairmiinstall | 0 | Install RMI hub profile |
| faisearchconfarchive | "" | conf.tar.gz to use for Nursery & JAAS configuration |
| faisearchear | "" | EAR to use instead of the Escenic binaries |
| faisearchforeditor | 0 | If 1 (true), will configure Solr for use with an editorial server, if not conf for presentation servers will be chosen. |
| faisearchindexerwsuri | http://${HOSTNAME}:8080/indexer-webservice/index/ | URI of the indexer-webservice that the search instance shall use for knowing what to index. |
| faisearchinstall | 0 | Install the search server profile (Solr + indexer) |
| faisearchname | search1 | Name of the search instance |
| faisearchport | 8080 | HTTP port of the search instance |
| faisearchshutdown | 8005 | Shutdown port of the search instance |
| faivipaddress | "" | The virtual IP the provider will claim |
| faivipinstall | 0 | Install a VIP provider |
| faivipprimarynodeauthkey | "" | Optional, but useful to set to make conf files consistent. Will be generated if not set |
| faivipprimarynodeip | "" | Primary node IP |
| faivipprimarynodename | "" | Primary node name, must be what $(uname -n) returns |
| faivipsecondarynodeip | "" | Secondary node IP |
| faivipsecondarynodename | "" | Secondary node name, must be what $(uname -n) returns |
| faivipservicelist | "" | List of init.d scripts to invoke when the VIP is acclaimed/revoked, script must support start & stop |
| faivipsiblingip | "" | The IP of the other node offering the VIP |
| faiwfinstall | 0 | Install Widget Framework profile |
As you've probably have guessed, 0 means "false" and 1 means "true" :-)
6.4 Examples
6.4.1 Installing an Editorial Server & Create a Publication
To automatically install an editorial server and create a publication called "jollygood", the minimal configuration in ece-install.conf would be:
fai_enabled=1 fai_editor_install=1 fai_publication_create=1 fai_publication_name=jollygood
6.4.2 Installing Two Presentation Servers On a Single Host
If you wish to only install two presentation servers called "web1" and "web2" on your host, you will first run ece-install with:
fai_enabled=1 fai_presentation_install=1 fai_presentation_name=web1
And then re-issue ece-install with the following configuration:
fai_enabled=1 fai_presentation_install=1 fai_presentation_name=web2 fai_presentation_port=8081 fai_presentation_shutdown=8105
Notice that this configuration has some extra options since the previous run of ece-install could run with the default settings, whereas the second one needs to override these.
6.5 Verifying That the Script Is Running In FAI Mode
When FAI is enabled, ece-install will report:
[ece-install] Full Automatic Install (FAI) enabled. [ece-install] All user input will be read from /root/ece-install.conf
7 Running More Than One Installation Process
If the script believes there's already an ece-intall process running, it will abort:
[ece-install] There's already one ece-install process running. If you believe [ece-install] this is wrong, e.g. if a previous run of ece-install was aborted [ece-install] before it completed, you may delete /var/run/ece-install.pid and [ece-install] run ece-install again.
8 Re-running ece-install (and How To Speed It Up)
Although the initial thought behind ece-install, is to run it on a clean system to get up and running as soon as possible. However, you may want to re-run ece-install on the same host, for instance to add another instance of ECE, set up Widget Framework or create another publication.
ece-install has a number of features which will try to minimise the time it takes to run it on consecutive runs. If running on Debian based systems, it will check if you already have installed pre-requisite 3rd party libraries and only if any are missing will it ask the package manager to fetch it.
Likewise, ece-install will see if the Escenic artifacts or application server that you need are already present in the /tmp/ece-downloads folder, and only download the missing ones (if any).
To get a list of the artifacts it'll pull from http://technet.escenic.com and http://tomcat.apache.org search for the following variables:
- technetdownloadlist
- wfdownloadlist
- tomcatdownload
Two other ways of speeding up the installation is (of course) to use the backup/restore feature or install from a EAR and configuration bundle, see the FAI section.
9 Using a Custom Configuration File for ece-install
You can specify a different configuration by using the -f parameter:
$ ece-install -f ece-install-presentation-server.conf
10 Overview of File Paths Used by the ece-install script
There are of course other paths involved when setting up your system, but these should be the most interesting ones.
| Path | Explanation |
|---|---|
| /etc/apt/sources.list.d/escenic.list | 3rd party APT repositories added by ece-install *) |
| /etc/default/ece | The configuration file for the ece init.d script |
| /etc/escenic/ece-<instance>.conf | Instance specific settings for /usr/bin/ece |
| /etc/escenic/ece.conf | Common ece.conf file for /usr/bin/ece |
| /etc/escenic/engine/common | Common Nursery configuration layer |
| /etc/escenic/engine/common/security | Common security configuration for all ECE instances. |
| /etc/escenic/engine/common/trace.properties | Log4j configuration, produces instance specific log files. |
| /etc/escenic/engine/instance/<instance> | Instance specific Nursery configuration |
| /etc/escenic/solr | ECE specific Solr configuration |
| /etc/init.d/mysql[d] | For starting and stopping MySQL/Percona |
| /etc/init.d/varnish | For starting and stopping Varnish |
| /etc/intit.d/ece | The init.d script managing all the ECE instances on your host. |
| /etc/varnish/default.vcl | The Varnish configuration |
| /opt/escenic | All ECE components can be found here |
| /opt/escenic/assemblytool | The assembly tool |
| /opt/escenic/assemblytool/plugins | Contains symlinks to all plugins in /opt/escenic |
| /opt/escenic/engine | Symlink pointing to the current ECE |
| /opt/tomcat | Symlink pointing to the install Apache Tomcat (catalinahome) |
| /opt/tomcat-<instance> | Instance specific Tomcat files (catalinabase) |
| /usr/bin/ece | Script for operating all ECE instances + RMI hub and EAE |
| /usr/sbin/drop-and-create-ecedb | DB script used by the ece-install script |
| /usr/sbin/ece-install | The installation script described in this guide |
| /var/log/escenic/<type>-<instance>.log | The instance's log4j log |
| /var/log/escenic/<type>-<instance>.out | The instance system out log |
| /var/log/escenic/solr.<date>.log | The Solr log (not in standard out!) |
| /var/run/escenic/<type>-<instance>.pid | The instance's PID file |
*) Applies only to Debian based systems.
11 Overriding the Escenic directories
All of the Escenic specific directories may be overwritten in ece-install.conf. Here's an example of changing all the paths possible with the same suffix.
dir_suffix=escenic-parallel escenic_root_dir=/opt/${dir_suffix} escenic_conf_dir=/etc/${dir_suffix} escenic_log_dir=/var/log/${dir_suffix} escenic_data_dir=/var/lib/${dir_suffix} escenic_run_dir=/var/run/${dir_suffix} escenic_backups_dir=/var/backups/${dir_suffix} escenic_spool_dir=/var/spool/${dir_suffix} escenic_cache_dir=/var/cache/${dir_suffix} escenic_crash_dir=/var/crash/${dir_suffix} appserver_parent_dir=/opt
Note, this is only needed if you are running two completely separate environments on the same host. A use case is if you're setting up a test environment and want to separate stacks of Escenic Content Engine and plugins.
12 Extending ece-install by Writing Hooks
ece-install has a number of hooks on which you can hook on your own scripts. The scripts are to reside in $HOME/ece-conf.d/ and have names inspired by Debian's package scripts:
<hook name>.<phase>
e.g.:
install_analysis_server.preinst
Will be run before the body of the hook, just the corresponding .postinst hook will be run after.
12.1 Accessing ece-install variables
Before running the hook, ece-install will make all its local variables available in /var/run/escenic/ece-install.env, which can then be used by the hook scripts.
12.2 Example hook
Here is an example hook which will be run after the EAE is installed.
# Put this in is $HOME/ece-install.d/install_analysis_server.postinst # read ece-install's current variables source /var/run/escenic/ece-install.env # do something useful echo "Hello from $0, EAE is installed in ${tomcat_base}" > /tmp/hello.txt
12.3 Available hooks
Currently, the following hooks are available:
install_analysis_server.preinst install_analysis_server.postinst set_up_solr.preinst set_up_solr.postinst
13 Assumptions
13.1 The machine on which ece-install has enough RAM
It is assumed that the machine on which ece-install has enough RAM to install the profiles the user asks for.
A common error by users, is to run ece-install in a (virtual) machine that has e.g. only 1GB RAM. For happy running, we recommend having a machine with at least 3GB when installing a full ECE stack on it.
14 Uninstalling Everything That the ece-install Set Up
WARNING: this is potentially dangerous as some of these components may be used by other pieces of software you have running on your host. However, this may be useful if you're installing a clean environment and want to e.g. undo your previous install to install a different profile.
Open the ece-install script and look for the "uninstallece" function, it has copy and pastable commands for undoing most/all things set up by the script.
15 Example Output FAI
The ece-install will often be run in FAI mode where all the settings are read from ~/ece-install.conf. Given the following entries in this file:
technet_user=apples technet_password=andoranges wf_user=foo wf_password=bar fai_enabled=1 fai_all_install=1
All the different components described in this guide are installed on the host that runs the install script.
The following output is produced from ece-install:
[ece-install-0] Full Automatic Install (FAI) enabled. [ece-install-0] All user input will be read from /root/ece-install.conf [ece-install-0] I'm logging to /var/log/ece-install.log [ece-install-1] Stopping conflicting processes ... [ece-install-1] Installing 3rd party packages needed by ece-install ... [ece-install-1] Setting up the ece UNIX scripts ... [ece-install-2] Setting up the torstein user's UNIX environment ... [ece-install-2] Installing a presentation server on quanah ... [ece-install-2] Installing 3rd party packages needed by ECE ... [ece-install-4] Setting up the basic Nursery configuration ... [ece-install-4] Using the supplied Nursery & JAAS configuration [ece-install-4] from the bundle: /tmp/nursery-skeleton-and-security.tar.gz [ece-install-4] Setting up the application server ... [ece-install-5] Setting up proper log4j & Java logging configuration ... [ece-install-5] Setting correct permissions on ECE related directories ... [ece-install-6] Assembling, deploying & starting pres1 ... [ece-install-7] I'm using the supplied EAR instead of running an assembly. [ece-install-24] Adding the ece init.d script to the default run levels ... [ece-install-24] Installing a Munin node on quanah ... [ece-install-30] The installation is now complete! It took 0d 0h 0m 30s [ece-install-30] - New ECE instance pres1 installed. [ece-install-30] - Admin interface: http://quanah:9980/escenic-admin/ [ece-install-30] - View installed versions with: ece -i pres1 versions [ece-install-30] - Type 'ece help' to see all the options of this script [ece-install-30] - Read its guide: /usr/share/doc/escenic/ece-guide.txt [ece-install-30] - /etc/default/ece lists all instances started at boot time [ece-install-30] - A Munin node has been installed on quanah [ece-install-30] - Install info: /usr/share/doc/escenic/ece-install-guide.txt [ece-install-30] - Guide books: http://documentation.vizrt.com/ece-5.3.html [ece-install-30] Enjoy your time with Escenic Content Engine! [ece-install-30] -Vizrt Online


HEAR NO EVIL A film review by James Berardinelli Copyright 1993 James Berardinelli
Date Released: 3/26/93 Running Length: 1:37 Rated: R (Violence, language, sexual situations)
Starring: Marlee Matlin, D. B. Sweeney, Martin Sheen, John C. McGinley Director: Robert Greenwald Producer: David Matalon Screenplay: R. M. Badat and Kathleen Rowell Music: Graeme Revell Released by Twentieth Century Fox
Marlee Matlin plays Jillian, a deaf exercise instructor. One of her clients (John C. McGinley) comes into possession of some information that leads him to a stolen ancient coin valued at $1 million. When a crooked police officer (Martin Sheen) who wants the coin for his "retirement fund" gets close to it, McGinley's character hides it among Jillian's possessions, right before a car he borrows from one of his friends (D. B. Sweeney) blows up. Soon after, Jillian is assaulted and nearly killed. Only the timely arrival of Sweeney's character saves her. Over the next few days, they get to know each other, overcoming the hearing barrier that separates them while working to find the coin and stay alive.
When it comes to character development (at least that of the primary characters), atmosphere, and a relatively-intelligent portrayal deafness, HEAR NO EVIL is a good movie. However, consider a little thing like plot and the film is in trouble. The storyline for this picture is an amalgamation of cliches, coincidences, contrivances, and plot holes.
During the writing process, all of the thought and energy apparently went into making HEAR NO EVIL's two main characters seem like real people - and they do. Marlee Matlin's Jillian is especially effective - a mixture of sensitivity, humor, and strength. She's not the typical screaming female-in-danger who has to wait for the nearest man to save her (although that does happen once).
When it comes to dealing with the issue of deafness, HEAR NO EVIL is no CHILDREN OF A LESSER GOD, but it is effective. There are several "scenes of silence" which purport to give Jillian's perspective on events by turning off the audio. These don't work as well as they could have, principally because they aren't completely silent - there's an annoying background tinkling, as of distant wind-chimes ringing. However, at times the movie does a good job creating a sense of almost-claustrophobic isolation.
In some ways, this movie is similar to JENNIFER 8. That film deals with a blind woman being stalked. In this one, it's a deaf woman. Both targets are rendered more vulnerable because of their disability, but neither movie is exploitative or condescending. JENNIFER 8 and HEAR NO EVIL sincerely attempt to present the audience with a sense of what a victim experiences when she's cut off in some way from the rest of the world.
Where HEAR NO EVIL fails is in the story it has to tell. The plot is riddled with holes, and when it tries to plug some of the more obvious ones, it widens them. It's astonishing how little of the script makes sense. There are far too many contrivances and coincidences for this picture to be credible. The writers should have given the audience credit for some intelligence. Instead of going for a slick ending with an abysmal twist, they should have stuck to a straight thriller. Maybe then they would have avoided a few of the pitfalls that tripped them up.
Fortunately, the stalker element of the plot doesn't take up all the screen time. A fair amount is devoted to the developing relationship between the two main characters. These scenes, often sweet (but not cloyingly so) and almost always genuine-seeming, are strong and almost make up for a lot of the other rubbish that clutters up this movie.
At least HEAR NO EVIL doesn't give us yet another clone of FATAL ATTRACTION and/or THE HAND THAT ROCKS THE CRADLE. Lately, it seems that every thriller fits into this category. Unfortunately, while HEAR NO EVIL goes in another direction, it doesn't blaze any new trails. There is potential here, and good acting and a few decent characters to go with it, but the story lets everyone down - especially the audience.
Rating: 6.3 (C, **)
- James Berardinelli<EMAIL_ADDRESS>.
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


public class Constant
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static double |
DISCOUNT_RATE |
static int |
GRID_A_SIZE |
static int |
GRID_B_SIZE |
static int |
ITERATIONS |
static int |
K_VAL
Variables
K_VAL: Stores the value to iterate until for policyEval
PROB_INT: Stores the probability that the intended action is taken
PROB_CW: Stores the probability that the clockwise action is taken
PROB_CCW: Stores the probability that the anti-clockwise action is taken
DISCOUNT_RATE: Stores the discount rate in valueIteration
ITERATIONS: Stores the value of number of iterations that will be taken into account for the Plot of Estimated Utilities
NUM_STATES: Stores the value of the number of states that will be used for the Plot of Estimted Utilities
GRID_A_SIZE: Stores the size of Grid A
GRID_B_SIZE: Stores the size of Grid B
|
static int |
NUM_STATES |
static double |
PROB_CCW |
static double |
PROB_CW |
static double |
PROB_INT |
| Constructor and Description |
|---|
Constant() |
public static final int K_VAL
public static final double PROB_INT
public static final double PROB_CW
public static final double PROB_CCW
public static final double DISCOUNT_RATE
public static final int ITERATIONS
public static final int NUM_STATES
public static final int GRID_A_SIZE
public static final int GRID_B_SIZE


List of Projects.
Generate LICENSE file from package.json
Anonymous Reporting System Example - IFPA Project - Database II
Example app in my lecture: "XSS - From Theory to Practice" in Vue.js Norte 10th Edition
Simples Elixir API to financial management
A auto-complet with colors for terminal(Bash) - Package for Atom
Curated list of Handlebars
Curated list of Polybar
List of games tested with Proton (Tool for Steam Client on Linux)
Um Tema Flat, Limpo e algumas utilidades para o site BancoDeSéries ❤
Talk BrazilJS OnTheRoad Belém 2020 - [PT-BR] Redes neurais com Javascript utilizado Brain.js
Calculator CleanUI Android
XKCD plugin for Cerebro
List of licenses from choosealicense.com
Copy random files to a specific folder
My app of wallpapers, using Electron!
Use o "debug" via console.*
Telegram Bot Game - Defend The Castle
Convert .docx file to .pdf
My personal dotfiles
Echo of scrobble in Lastfm
Game build with Android Jetpack used MVVM
Project focused on the implementation of policies in Kubernetes clusters through GitOps.
GitHub Graphql - Send request using Fetch API
Share files Fast, Easy and Secure, to world or on your local network.
https://developer.android.com/training/basics/firstapp
Bank Dashboard Layout Example in Flutter
Flutter web example aplication deployed with ExpressJs
ML Kit Face Detection in Flutter Example
The game made your keyboard, this is amazing!
Bot de um grupo do Podmaniacos
Intuitive and user-friendly generator of package.json
Generate a README.md from package.json contents. [Fork https://github.com/zeke/package-json-to-readme/]
Module and tool for create password
Hackathon Getnet 2020 - API Service
Check offline site in a repository of Github
User metadata for my https://ghuser.io/TiagoDanin
Commit in all repositories with a command
Compare two profiles of GitHub
Gnome WebApp
[UWP] A Quick, Easy and Secure Password Generator
Add label 'Hacktoberfest' in new issues.
Handlebars helper - Generate lorem ipsum text
Handlebars helper - Generate string with base64-encoded sha384 hash
Module for lua decoding html entities :)
Simple indicator with Reactions ¯ \ _ (ツ) _/¯
ISO639 Codes for JavaScript
Python function str.format for JavaScript
Verify unicode in your text
🍉 An opinionated tool for making static websites
A Autolick using the Arduino Leonardo
Language codes & country codes
Source code of my minecraft server
My script for create GH-Pages
My script for create GH-Pages - Version 2
Pause command of Microsoft DOS in JavaScript
MyDatabaseGame API
MyDatabaseGame App
Minimalistic internationalization using gettext style for NodeJS
Get npm packages per author with download counts
[Pt-br] Clone do dashboard do aplicativo mobile da Nubank utilizando Jetpack Compose
Convert a large number to nice formatted string
SEO / HTML Meta Tags Module for Nuxt.js
Vuikit Module for Nuxt.js
Hackathon TecBan 2020 - Open Banking API Service
Example de layout in Flutter inspiration in Netflix App + Woody Woodpecker Characters
Take a break
A Polybar module to show unread notifications from GitHub
Polybar - Helpers to create plugin/module using NodeJS
A Polybar module to scrobble & love music in Lastfm
[PT] Executar um pseudocódigo utilizado JavaScript
Web Monitoring PostgreSQL- Tracking execution statistics of all SQL statements executed by a server.
Simple module to colorize text on terminal
Samples app Quiz for CoronaSDK
[Pt-br] Idopterlabs Talks -Testes com React Native
A simples web api to real time chat using web socket.io and express
Package loading time in NodeJs
Import/Load/Require module from url
A utility to clone and update xml resources file
Rock Paper Scissors Machine Learning CLI (Use my "Rock-Paper-Scissors-ML")
Rock Paper Scissors Machine Learning
Rock Paper Scissors Machine Learning Web (Use my "Rock-Paper-Scissors-ML")
Module for convert numbers in Roman numbers :)
[UWP] A very simple chatbot, your name is Sam!
ScraperScript is a query language for Web Scraping
Send message for channel (Telegram) using the Markdown or HTML
SiDBot V4 Based on otouto v3.2 by topkecleon
SiDBot Version 5.2
Trival Game Web using Open Trivia DB API
Plugin Spotify for Telegram
Android SQL CRUD
Android SQL CRUD
Search series covers stickers via inline - @StickersPlayBot [Base Text PT-Br]
Search, Explore & Discover the bests bots, channel or groups - Telegram: @StoreOfBot
CLI Tool to download subtitles for movies and series.
Gnome Extension - Media playback controls for Spotify
Auto-complete plugin for Telegraf methods
Implementation of getChatMembers method in Telegraf using cache
Generate LICENSE file from package.json
Anonymous Reporting System Example - IFPA Project - Database II
Example app in my lecture: "XSS - From Theory to Practice" in Vue.js Norte 10th Edition
Simples Elixir API to financial management
A auto-complet with colors for terminal(Bash) - Package for Atom
Curated list of Handlebars
Curated list of Polybar
List of games tested with Proton (Tool for Steam Client on Linux)
Um Tema Flat, Limpo e algumas utilidades para o site BancoDeSéries ❤
Talk BrazilJS OnTheRoad Belém 2020 - [PT-BR] Redes neurais com Javascript utilizado Brain.js
Calculator CleanUI Android
XKCD plugin for Cerebro
List of licenses from choosealicense.com
Copy random files to a specific folder
My app of wallpapers, using Electron!
Use o "debug" via console.*
Telegram Bot Game - Defend The Castle
Convert .docx file to .pdf
My personal dotfiles
Echo of scrobble in Lastfm
Game build with Android Jetpack used MVVM
Project focused on the implementation of policies in Kubernetes clusters through GitOps.
GitHub Graphql - Send request using Fetch API
Share files Fast, Easy and Secure, to world or on your local network.
https://developer.android.com/training/basics/firstapp
Bank Dashboard Layout Example in Flutter
Flutter web example aplication deployed with ExpressJs
ML Kit Face Detection in Flutter Example
The game made your keyboard, this is amazing!
Bot de um grupo do Podmaniacos
Intuitive and user-friendly generator of package.json
Generate a README.md from package.json contents. [Fork https://github.com/zeke/package-json-to-readme/]
Module and tool for create password
Hackathon Getnet 2020 - API Service
Check offline site in a repository of Github
User metadata for my https://ghuser.io/TiagoDanin
Commit in all repositories with a command
Compare two profiles of GitHub
Gnome WebApp
[UWP] A Quick, Easy and Secure Password Generator
Add label 'Hacktoberfest' in new issues.
Handlebars helper - Generate lorem ipsum text
Handlebars helper - Generate string with base64-encoded sha384 hash
Module for lua decoding html entities :)
Simple indicator with Reactions ¯ \ _ (ツ) _/¯
ISO639 Codes for JavaScript
Python function str.format for JavaScript
Verify unicode in your text
🍉 An opinionated tool for making static websites
A Autolick using the Arduino Leonardo
Language codes & country codes
Source code of my minecraft server
My script for create GH-Pages
My script for create GH-Pages - Version 2
Pause command of Microsoft DOS in JavaScript
MyDatabaseGame API
MyDatabaseGame App
Minimalistic internationalization using gettext style for NodeJS
Get npm packages per author with download counts
[Pt-br] Clone do dashboard do aplicativo mobile da Nubank utilizando Jetpack Compose
Convert a large number to nice formatted string
SEO / HTML Meta Tags Module for Nuxt.js
Vuikit Module for Nuxt.js
Hackathon TecBan 2020 - Open Banking API Service
Example de layout in Flutter inspiration in Netflix App + Woody Woodpecker Characters
Take a break
A Polybar module to show unread notifications from GitHub
Polybar - Helpers to create plugin/module using NodeJS
A Polybar module to scrobble & love music in Lastfm
[PT] Executar um pseudocódigo utilizado JavaScript
Web Monitoring PostgreSQL- Tracking execution statistics of all SQL statements executed by a server.
Simple module to colorize text on terminal
Samples app Quiz for CoronaSDK
[Pt-br] Idopterlabs Talks -Testes com React Native
A simples web api to real time chat using web socket.io and express
Package loading time in NodeJs
Import/Load/Require module from url
A utility to clone and update xml resources file
Rock Paper Scissors Machine Learning CLI (Use my "Rock-Paper-Scissors-ML")
Rock Paper Scissors Machine Learning
Rock Paper Scissors Machine Learning Web (Use my "Rock-Paper-Scissors-ML")
Module for convert numbers in Roman numbers :)
[UWP] A very simple chatbot, your name is Sam!
ScraperScript is a query language for Web Scraping
Send message for channel (Telegram) using the Markdown or HTML
SiDBot V4 Based on otouto v3.2 by topkecleon
SiDBot Version 5.2
Trival Game Web using Open Trivia DB API
Plugin Spotify for Telegram
Android SQL CRUD
Android SQL CRUD
Search series covers stickers via inline - @StickersPlayBot [Base Text PT-Br]
Search, Explore & Discover the bests bots, channel or groups - Telegram: @StoreOfBot
CLI Tool to download subtitles for movies and series.
Gnome Extension - Media playback controls for Spotify
Auto-complete plugin for Telegraf methods
Implementation of getChatMembers method in Telegraf using cache
Command /start parameters parser middleware for Telegraf
Telegraf Test - Simple Test ToolKit of Telegram Bots
A Telgram Desktop theme based on Flatabulous
Reduce the file size of your project down to 50%, by randomly deleting half of the files.
README.md
README with my npm packages
MyPager Github.io
TicTacToe with Android Jetpack Compose
Integration with Twitter <-> Telegram
TycotBot
A editor of hosts
[Pt-br] Dashbaord com últimos Pregões da Bolsa B3
Wrapper for the Unsplash Source API
Update Version number in NPM Package, Quasar & Cordova
Package/Tool for update MIT license year
VSCode Hacker Typer - In Progress
Example PWA + Nuxt + Vue + Axios + Express
[PT-BR] Arquivos da apresentação para o Meetup do Vuejs Norte - Edição 11º
WearOS Jetapck Compose - WearOS Count Water App
Web Project PHP Example
Windows Language Code Identifier (LCID) for JavaScript
Management system for Translation :)
Criado pela equipe Synko, o robô mais famoso do Brasil chega ao Telegram!
My first game. Create using Gamemake.
Analyze similarity between 2 PDFs.
Uma alternativa do app padrão do Banco de Séries.
Top Secret :^)
Implementation of getChatMembers method in Telegraf using cache
Downloads: +1363
Example app in my lecture: "XSS - From Theory to Practice" in Vue.js Norte 10th Edition
Downloads: +383
Web Monitoring PostgreSQL- Tracking execution statistics of all SQL statements executed by a server.
Downloads: +362
Handlebars helper - Generate string with base64-encoded sha384 hash
Downloads: +347
Web App feito para disciplinar de Calculo I - 2018.02, realizar operações com matrizes quadradas
Downloads: +304
Reduce the file size of your project down to 50%, by randomly deleting half of the files.
Downloads: +228
Tradução da documentação do Telegram Bot API para PT-BR
Downloads: +147
Module and tool for create password.
Module for lua, decoding html entities :)
Module for convert numbers in Roman numbers :)
Share files Fast and Easy, on your local network!
Check offline site in a repository of Github.
Simple module to colorize text on terminal.
A auto-complet with colors for terminal(Bash).
Auto-complete plugin for Telegraf methods
Virtual air conditioning in your pocket, this relaxing sound will provide better night's sleep.
A Quick, Easy and Secure Password Generator.
A very simple chatbot, your name is Sam! Using the API Program-o.com.
Check offline site in a repository of Github.
Site de noticias tecnológicas.
Um forum sobre tecnológia.
Mais uma rede social no mundo :^)
Canal de tutoriais no Youtube.


We created ToolSwitch to sell high end import power tools
ToolSwitch was originally created as a project to test potential ecommerce offerings.
It became quite profitable in its own right, grossing 10k/month on $800 AdWords spend with a $500 average order value.


WITNESS LIST Natural Resources Committee May 11, 1999-2:00P HB 480 THIS LIST HAS NO WITNESSES. HB 801 Registering, but not testifying: For: Morphew, Cindy (Texas Oil & Gas Association - V.P. for Environmental Affairs), Austin On: Hoffman, Margaret (TNRCC - Director - Environmental Law Division), Austin HB 846 AGAINST: Renbarger, Robert (United Aquifers LLC - Attorney), Austin Registering, but not testifying: For: Clayton, Bill (Uvalde Water District - Consultant), Austin Collins, Sharlene (Paul Lewis), Austin Everheart, Harvey (Mesa UWCD - General Manager), La Mesa Halbert, Wayne (Texas Irrigation Council-Legislative Director), Harlingen Luther, William (Paul A. Lewis), Austin Robbins, Dean (Texas Water Conservation Association - Asst. General Manager), Austin Williams, C.E. (Panhandle Groundwater District - General Manager), White Deer On: Jones, Sam (TNRCC - Manager, District Administration), Austin HB 1187 THIS LIST HAS NO WITNESSES. HB 1552 THIS LIST HAS NO WITNESSES. HB 1654 Registering, but not testifying: On: Sarahan, Paul (TNRCC - Director, Litigation Division), Austin HB 2000 THIS LIST HAS NO WITNESSES. HB 2147 Registering, but not testifying: For: Mintz, David (Texas Apartment Association - Director of Government Affairs), Austin On: Howgley, Bob (Texas General Land Office-Director of Real Estate, Asset Mgmt.), Austin HB 2205 Registering, but not testifying: For: Fisher, Jon (Texas Ag Industries Assn. - VP, Govt Affairs), Austin HB 2526 Registering, but not testifying: For: Small, Ed (Texas & Southwestern Cattle Raisers Association-Attorney), Austin On: Kennedy, Boyd (Texas Parks & Wildlife Dept. - Staff Attorney), Austin King, Jack (Texas Parks & Wildlife - Law Enforcement/Policy and Planning), Austin Sinclair, L. David (Texas Parks & Wildlife - Director of Wildlife Enforcement), Austin HB 2572 Registering, but not testifying: On: Hoffman, Margaret (TNRCC - Director - Environmental Law Division), Austin HB 2660 THIS LIST HAS NO WITNESSES. HB 2815 FOR: Newton, Chris (Texas Petroleum Marketers & Convenience Stores-General Counsel), Austin Registering, but not testifying: For: Johnson, Rick (Texas Food Industry Assn. - President), Austin On: Ing, Leigh (TNRCC - Deputy Office of Waste Management), Austin HB 2816 FOR: Newton, Chris (Texas Petroleum Marketers & Convenience Store Assn.-Counsel), Austin ON: Ing, Leigh (TNRCC - Deputy, Office of Waste Management), Austin Registering, but not testifying: For: Johnson, Rick (Texas Food Industry Association- President), Austin On: Pharr, Machelle (TNRCC - Chief Financial Officer), Austin HB 2926 Registering, but not testifying: For: Everheart, Harvey (Mesa UWCD - General Manager), LaMesa Williams, C.E. (Panhandle Groundwater District-General Manager), White Deer On: Musick, Steve (TNRCC - Manager, Groundwater Assessment Section), Austin HB 2960 Registering, but not testifying: For: Nevill, Trent (Johnson Controls - Sales Office Manager), Austin Polan, Deborah (CES/Way International, Inc. - Consultant/Counsel), Austin Simpson, James (Johnson Controls - Area Sales Manager), Flower Mound Stagner, Steve (Consulting Engineering Council of Texas-Executive Director), Austin On: Matthews, Jerry (Texas Energy Coordination Council - Executive Director), Austin HB 2977 FOR: Blackburn, Sadie (Citizen's Environmental Coalition), Houston Koros, John (Harris County Flood Control District-Environmental Services Mgr), Houston Registering, but not testifying: For: Cron, Richard (Office of Harris County Judge Robert Eckels-Leg. Coordinator), Houston Crouch, Greg (Bayou Preservation Association - Board of Directors), Houston Crouch, Kay (Crouch Environmental Services, Inc. - President), Houston On: Hoffman, Margaret (TNRCC - Director/Environmental Law Division), Austin HB 3050 THIS LIST HAS NO WITNESSES. HB 3277 THIS LIST HAS NO WITNESSES. HB 3401 Registering, but not testifying: On: Jones, Sam (TNRCC - Manager, District Administration Section), Austin HB 3462 Registering, but not testifying: On: Kennedy, Boyd (Texas Parks & Wildlife Dept. - Staff Attorney), Austin King, Jack (Texas Parks & Wildlife - Law Enforcement/Policy & Planning), Austin Vaca, Carlos (Texas Parks & Wildlfie Dept. - Dir. of Water Safety Enforcement), Austin HB 3481 Registering, but not testifying: For: McCarthy, Ed (Bexar-Medina-Atascosa Counties WCID No.1 - Attorney), Austin Ward, Johnny (Bexar-Medina-Atascosa Counties WCID #1 - Vice President/Dir.), Natalia On: Jones, Sam (TNRCC-Manager, District Administration Section), Austin HB 3554 Registering, but not testifying: On: Jones, Sam (TNRCC - Manager, District Administration Section), Austin HB 3818 Registering, but not testifying: For: Davenport, David (Canyon Regional Water Authority - General Manager), New Braunfels On: Jones, Sam (TNRCC - Manager, District Administration Section), Austin SB 1905 FOR: Mahaffey, Mike (Port of Corpus Christi), Corpus Christi Maldonado, Rick (Port of Corpus Christi-Director/Govt. Affairs), Corpus Christi Younger, Pat (Texas Ports Association - President), Houston Registering, but not testifying: For: Truan Jr., Carlos (Port of Corpus Christi - Lobbyist), Austin


Building Games For Android¶
In this chapter we will learn about Building RingLibSDL Games for Mobile.
So we can create packages (*.apk) for the applications that are developed using Ring Game Engine for 2D Games.
Download Requirements and Update the Android SDK¶
The Android SDK Tools
The Android NDK (Tested using android-ndk-r10c)
Apache Ant v1.8 or later
Java SE Development Kit (JDK) v6 or later
Update the Android SDK to get the API and tools packages required for development
Tested using Android 4.4.2 (API 19)
In Windows - Define the next Environment Variables based on your system.
- JAVA_HOME
For Example : C:\Program Files (x86)\Java\jdk1.8.0_05
- ANDROID_HOME
For Example : B:\mahmoud\Tools\Java-Android\adt-bundle-windows-x86-20140702\sdk


public interface Lapack
| Modifier and Type | Method and Description |
|---|---|
void |
geqrf(INDArray A,
INDArray R)
QR decomposiiton of a matrix
Factorize a matrix A such that A = QR
The matrix A is overwritten by the Q component (i.e. destroyed)
geqrf = QR factorization of a general matrix (GE) into an orthogonal
matrix Q and an upper triangular R matrix
|
void |
gesvd(INDArray A,
INDArray S,
INDArray U,
INDArray VT)
SVD decomposiiton of a matrix
Factorize a matrix into its singular vectors and eigenvalues
The decomposition is such that:
A = U x S x VT
gesvd = singular value decomposition (SVD) of a general matrix (GE)
|
INDArray |
getLFactor(INDArray A)
extracts the L (lower triangular) matrix from the LU factor result
L will be the same dimensions as A
|
INDArray |
getPFactor(int M,
INDArray ipiv)
This method takes one of the ipiv returns from LAPACK and creates
the permutation matrix.
|
INDArray |
getrf(INDArray A)
LU decomposiiton of a matrix
Factorize a matrix A
The matrix A is overridden by the L & U combined.
|
void |
getri(int N,
INDArray A,
int lda,
int[] IPIV,
INDArray WORK,
int lwork,
int INFO)
Generate inverse ggiven LU decomp
|
INDArray |
getUFactor(INDArray A)
extracts the U (upper triangular) matrix from the LU factor result
U will be n x n matrix where n = num cols in A
|
void |
potrf(INDArray A,
boolean lower)
Triangular decomposiiton of a positive definite matrix ( cholesky )
Factorize a matrix A such that A = LL* (assuming lower==true) or
A = U*U (a * represents conjugate i.e. if matrix is real U* is a transpose)
The matrix A is overridden by the L (or U).
|
int |
syev(char jobz,
char uplo,
INDArray A,
INDArray V)
Caclulate the eigenvalues and vectors of a symmetric matrix.
|
INDArray getrf(INDArray A)
A
- the input matrix, it will be overwritten with the factorsError
- - with a message to indicate failure (usu. bad params)void geqrf(INDArray A, INDArray R)
A
- the input matrix, it will be overwritten with the factorsThe
- R array if null R is not returnedError
- - with a message to indicate failure (usu. bad params)void potrf(INDArray A, boolean lower)
A
- the input matrix, it will be overwritten with the factorswhether
- to return the upper (false) or lower factorError
- - with a message to indicate failure (usu. bad params)int syev(char jobz, char uplo, INDArray A, INDArray V)
A
- the input matrix, it will be overwritten with the eigenvectorsV
- the resulting eigenvaluesError
- - with a message to indicate failure (usu. bad params)void gesvd(INDArray A, INDArray S, INDArray U, INDArray VT)
A
- the input matrixS
- the eigenvalues as a vectorU
- the left singular vectors as a matrix. Maybe null if no S requiredVT
- the right singular vectors as a (transposed) matrix. Maybe null if no V requiredError
- - with a message to indicate failure (usu. bad params)INDArray getPFactor(int M, INDArray ipiv)
M
- - the size of the permutation matrix ( usu. the # rows in factored matrix )ipiv
- - the vector returned from a refactoringINDArray getLFactor(INDArray A)
A
- - the combined L & U matrices returned from factorizationINDArray getUFactor(INDArray A)
A
- - the combined L & U matrices returned from factorizationCopyright © 2020. All rights reserved.


Research and analysis
Report into how governments provide funding to support students with additional needs.
Ref: ISBN 978-1-78105-517-5 , DFE-RR484 PDF , 376KB , 26 pages
An international review of funding for young people with additional needs and the effect funding has on their attainment.
Additional needs pupils are defined as:
Published: 17 December 2015
From: Department for Education
Part of: School and college funding


Drop File:
Drop files here or click to upload
File Drag/Drop is not supported for this browser
{{f.name}}
{{dynamic}} / {{max}}


Sorry, BCEmissions.ca does not support Internet Explorer. Visualizations may not display correctly.
For the best experience, please access this website using Chrome or Firefox.
In 2009, the Town of Golden was ranked 84th in population among CEEI-surveyed BC municipalities, with 3,959 residents.
Residential |
Commercial Small or Medium Industrial |
Large Industrial |
Wholesale |
| Electricity | |
|---|---|
| Natural gas | |
| Wood | |
| Heating oil | |
| Propane |
Sorry, heating and electricity consumption information for this region is unavailable.
Transportation is a major source of greenhouse gas emissions and pollution. Environmentally-friendly and sustainable commute options are coloured in lighter shades of green.
I commute to and from work or school by .
Great!
Walking is good exercise, and environmentally friendly. Compared to driving a car, no carbon dioxide is generated.
Great!
Bicycling is good exercise, and environmentally friendly. Compared to driving a car, no carbon dioxide is generated.
Great!
Taking public transit is a sensible and affordable way to get to work. For every kilometre travelled on public transit, about 8 grams of carbon dioxide is generated.
For every kilometre travelled in a single-occupancy vehicle, about 293 grams of carbon dioxide is produced. This amount varies significantly based on the efficiency of your vehicle.
Visualize: 293 grams of carbon dioxide in the form of dry ice is enough to fill a 2 Litre pop bottle.
Good! Carpooling helps reduce the number of cars on the road, and the amount of greenhouse gases generated. Assuming a full van with 6 passengers and 1 driver, each occupant will generate about 43 grams of carbon dioxide.
Visualize: 43 grams of carbon dioxide in the form of dry ice is about 6 teaspoons.
A motorcycle produces fewer emissions than a car or van. For every kilometre travelled in a motorcycle, about 119 grams of carbon dioxide is produced.
Taxis can generate more carbon dioxide than a private single-occupancy vehicle, as the taxi carries a non-commuting driver, and must travel significant distances to reach each customer.
Sorry, the commute mode data for this region is unavailable.
| Year | Commuters | < 5km | 5–10km | 10–15km | 15–25km | 25km+ |
|---|---|---|---|---|---|---|
Where do you fit in?Enter your home and workplace address to calculate your own commute distance. |
||||||
Sorry, the commute distance data for this region is unavailable.
Number of households in each category of housing, by surveyed year:
| Single House | Semi Detached House | Row House | Duplex | < 5-storey Apartment |
≥ 5-storey Apartment | Other | Movable |
|---|
Single detached homes are a very energy-inefficient form of housing. Much heat escapes through the exterior walls on all sides.
In 2007, 947,000 British Columbian households living in single detached homes consumed a total of 128,325,573GJ of energy.
On average, 0.60GJ of energy was spent on heating each metre of floor space, and 117.9GJ per household.
Overall, BC apartments emitted 2.9 megatons of CO2, excluding electricity. 25.8 tonnes of CO2 is produced per TJ of energy consumed.
Do your part to save money and reduce energy use in your home: LiveSmart BC and BC Hydro's Power Smart program can show you how.
Semi-attached houses are more efficient than detached houses, as shared walls retain and redistribute heat.
Statistics combine semi-detached, row, and duplex homes into one reporting category. In 2007, 185,000 British Columbian households living in these homes consumed a total of 21,991,910GJ of energy.
On average, 0.87GJ of energy was spent on heating each metre of floor space, and 86.4GJ per household.
Overall, BC apartments emitted 400,000 kilotons of CO2, excluding electricity. 25.8 tonnes of CO2 are emitted per TJ of energy consumed.
Low-rise apartments are very energy-efficient, as shared walls retain and redistribute heat.
In 2007, British Columbians living in low-rise apartments consumed a total of 10,587,982GJ of energy. 543,000 British Columbian households lived in an apartment.
On average, 0.56GJ of energy was spent on heating each metre of floor space, and 49.6GJ per household.
Overall, BC apartments emitted 700,000 kilotons of CO2, excluding electricity. 26.1 tonnes of CO2 are emitted per TJ of energy consumed.
High-rise apartments are very energy-efficient, as shared walls retain and redistribute heat.
In 2007, British Columbians living in high-rise apartments consumed a total of 3,371,408GJ of energy. 543,000 British Columbian households lived in an apartment.
On average, 0.56GJ of energy was spent on heating each metre of floor space, and 49.6GJ per household.
Overall, BC apartments emitted 700,000 kilotons of CO2, excluding electricity. 26.1 tonnes of CO2 are emitted per TJ of energy consumed.
Mobile homes are a very energy-inefficient form of housing. Much heat escapes through the exterior walls on all sides, and insulation is often poor.
In 2007, 66,000 British Columbian households living in mobile homes consumed a total of 3,994,588GJ of energy.
On average, 0.87GJ of energy was spent on heating each metre of floor space, and 86.4GJ per household.
Overall, BC apartments emitted 200,000 kilotons of CO2, excluding electricity. 27 tonnes of CO2 are emitted per TJ of energy consumed.
Sorry, the housing data for this region is unavailable.
This graphic represents all the land under the jurisdiction of the Town of Golden.
| Land area | Parks and protected areas | |||||||
|---|---|---|---|---|---|---|---|---|
| Year | Population | Total | Net | Federal | Provincial | Local | ALR | Other |
| 2009 | 3,959 | 11.82km2 | 9.05km2 | - | 1.18km2 | 0.63km2 | 0.11km2 | 0.85km2 |
| 437.6/km2 | 22.9m2/person |
Higher density makes public transit more efficient and feasible to operate. It also brings goods and services closer to residents, thereby reducing commutes. Combined with the energy savings of increased housing density, these factors reduce emissions per capita.
| City | World density rank | Population | Area (km2) | Density (/km2) |
|---|---|---|---|---|
| Manila, Philippines | 1 | 1,660,714 | 38.55 | 43,079 |
| Mumbai, India | 20 | 13,830,884 | 603.0 | 22,937 |
| Paris, France | 30 | 2,203,817 | 105.4 | 20,909 |
| Athens, Greece | 36 | 745,514 | 38.96 | 19,135 |
| Macau, China | 42 | 542,200 | 29.2 | 18,568 |
| Seoul, Korea | 49 | 10,464,051 | 605.25 | 17,288 |
| New York City, USA | - | 8,391,881 | 789.0 | 10,636 |
Sorry, land use and greenspace data for this region is unavailable.
3,307 tonnes
1,846 tonnes
Sorry, trash output information for this region is unavailable.
Ozone is a greenhouse gas. Ground-level ozone is formed primarily by sunlight reacting with carbon monoxide, hydrocarbon, and nitrogen oxide pollution. The layer of ozone in the stratosphere is produced by UV light reacting with oxygen in the air, which in turn prevents most UV radiation from reaching the surface of the earth. However, ozone at ground-level is not beneficial.
Increased concentrations of ground-level ozone is harmful to both human health and the environment. It traps heat, and is the primary component of smog.
The World Health Organization's guideline threshold for 8-hour mean ozone is 100µg/m3, or 51ppb. The Canadian annual mean maximum is 46ppb. The world's background ozone level is approximately 28ppb. Ozone levels lower than this concentration are caused by further reactions with pollutants.
This is a measure of the concentration of solid or liquid particles suspended in the air. PM2.5 means particles less than 2.5µm in diameter. These particulates are produced by burning wood and fossil fuels.
Particulates of this size cause serious health problems, as they remain in the deep in the lungs after being inhaled.
The World Health Organization's guideline threshold for annual mean PM2.5 is 10µg/m3. BC's objective threshold is 8µg/m3.
Sorry, air quality data for this region is unavailable. Air quality data is only available for a select number of municipalities.


{% ifequal result "OK"%} Thank you for your comments. Your feedback has been sent. {% else %} There was some sort of problem. Result = {{result}}. {% endifequal %}


{{dialogHeader}}
The mango is a juicy stone fruit belonging to the genus Mangifera, consisting of numerous tropical fruiting trees, cultivated mostly for edible fruit. The majority of these species are found in nature as wild mangoes. They all belong to the flowering plant family Anacardiaceae. The mango is native to South and Southeast Asia, from where it has been distributed worldwide to become one of the most cultivated fruits in the tropics.
The highest concentration of Mangifera genus is in the western part of Malesia (Sumatra, Java and Borneo) and in Burma and India. While other Mangifera species (e.g. horse mango, M. foetida) are also grown on a more localized basis, Mangifera indica—the "common mango" or "Indian mango"—is the only mango tree commonly cultivated in many tropical and subtropical regions.
It originated in Indian subcontinent (present day India and Pakistan) and Burma. It is the national fruit of India, Pakistan, and the Philippines, and the national tree of Bangladesh. In several cultures, its fruit and leaves are ritually used as floral decorations at weddings, public celebrations, and religious ceremonies.
The mango is a juicy stone fruit belonging to the genus Mangifera, consisting of numerous tropical fruiting trees, cultivated mostly for edible fruit. The majority of these species are found in nature as wild mangoes. They all belong to the flowering plant family Anacardiaceae. The mango is native to South and Southeast Asia, from where it has been distributed worldwide to become one of the most cultivated fruits in the tropics.
The highest concentration of Mangifera genus is in the western part of Malesia (Sumatra, Java and Borneo) and in Burma and India. While other Mangifera species (e.g. horse mango, M. foetida) are also grown on a more localized basis, Mangifera indica—the "common mango" or "Indian mango"—is the only mango tree commonly cultivated in many tropical and subtropical regions.
It originated in Indian subcontinent (present day India and Pakistan) and Burma. It is the national fruit of India, Pakistan, and the Philippines, and the national tree of Bangladesh. In several cultures, its fruit and leaves are ritually used as floral decorations at weddings, public celebrations, and religious ceremonies.
The dialog component is to provide a Modal Popup functionality.
[close-button]
- boolean - (Default: true
)(Optional) Takes a boolean that causes the close button to be displayed in the top right corner[close-on-unfocus]
- boolean - (Default: true
)(Optional)- Takes a boolean that causes the dialog to close when a user clicks outside of the dialog[dialog-header]
- string - (Default: null
)(Optional) - The heading of the dialogUse the component's show()
, hide()
and toggle(visible: boolean)
method to properly trigger the dialog's display. Reference the dialog using in your view to have access to the method to use.


 He has foreseen this. It is your destiny. Join me, and together we can rule the galaxy as father and son.
Come to the Dark Side of the Force


|
Playlist Creator 3.6.2
|
| |
The name of the program says it all - with Playlist Creator you can create playlists easily and quickly.
The composition and creation of a playlist is done within seconds: Just add all desired files, enter the
name of the playlist and select its save location and one moment later your first playlist is already done!
By the way, the fastest and easiest method for adding files to the playlist is via drag and drop from
Windows Explorer.
Playlist Creator supports the powerful open-source library MediaInfo.
Thus a reliable readout of tags (metadata) of numerous file formats in combination with a very high processing speed is guaranteed.
The user can choose whether the program should readout tags and which data exactly should be extracted. Furthermore you
can create dynamic titles using simple variables.
You can add files of any file type to the playlist. After installation of the program you'll find many
predefined file types. If the desired file type is missing you can easily add this type to the list.
For compatibility with a wide variety of hardware and software Playlist Creator can create playlists either in
PLS-format or M3U-format.
|
| |
|
|


Getting Started
OS Install
Ubuntu 16.04 LTS is installed on PCs in the THORMANG3 and the PC for Remote Control Version.
Network Setting
This section explains how to configure the network for MPC(Motion PC) and PPC(Perception PC) of the robot, as well as the Wi-Fi switch and the OPC(Operating PC).
Access Point Setting
Access Point(AP) Information
- Model : D-Link DIR-806A
- Account
- user : admin
- password : admin
AP Server
- Router Mode(Orange light)
- IP Address : <IP_ADDRESS>
- WiFi Name (2.4G) : THORMANG-Sxx (xx : number)
- WiFi Name (5G) : THORMANG-Sxx-5G (xx : number)
- WiFi Password : 11111111
AP in THORMANG3
- Repeater Mode(Green light)
PC Setting
MPC (Motion PC)
- IP Address : <IP_ADDRESS>
- Netmask : <IP_ADDRESS>
- Gateway : <IP_ADDRESS>
PPC (Perception PC)
- IP Address : <IP_ADDRESS>
- Netmask : <IP_ADDRESS>
- Gateway : <IP_ADDRESS>
OPC (Operating PC)
- IP Address : <IP_ADDRESS>
- Netmask : <IP_ADDRESS>
- Gateway : <IP_ADDRESS>
ROS Install
ROS(Robot Operating System) is required in order to control THORMANG3. Currently THORMANG3 is developed and tested with Kinetic Kame version of ROS.
Note
Install ROS
ROS Environment Setting
Note
Environment Setting Reference
Note
ROS Network Setup Reference
Network Setting Example
Above configuration has to be repeatedly done whenever a new terminal window is created. The following method will load configuration file when creating a terminal window. ROS Network setup is also performed when the configuration file is loaded.
System configuration
- PPC(Perception PC) : core PC
- IP : <IP_ADDRESS>
- MPC(Motion PC)
- IP : <IP_ADDRESS>
- OPC(Operation PC)
- IP : <IP_ADDRESS>
Example setting for PPC
- Open the bash file with an editor to apply configuration.
$ gedit ~/.bashrc
- Append below contents at the end of the .bashrc file.
# Set ROS Kinetic source /opt/ros/kinetic/setup.bash source ~/catkin_ws/devel/setup.bash ##### Set ROS Network #### # PPC CORE(<IP_ADDRESS>) export ROS_MASTER_URI=http://<IP_ADDRESS>:11311 # local ROS IP export ROS_IP=<IP_ADDRESS>
- Use below command to apply modified configuration or open a new terminal window.
$ source ~/.bashrc
Example setting for MPC
- Open the bash file with an editor to apply configuration.
$ gedit ~/.bashrc
- Append below contents at the end of the .bashrc file.
# Set ROS Kinetic source /opt/ros/kinetic/setup.bash source ~/catkin_ws/devel/setup.bash ##### Set ROS Network #### # PPC CORE(<IP_ADDRESS>) export ROS_MASTER_URI=http://<IP_ADDRESS>:11311 # local ROS IP export ROS_IP=<IP_ADDRESS>
- Use below command to apply modified configuration or open a new terminal window.
$ source ~/.bashrc
Example setting for OPC
- Open the bash file with an editor to apply configuration.
$ gedit ~/.bashrc
- Append below contents at the end of the .bashrc file.
# Set ROS Kinetic source /opt/ros/kinetic/setup.bash source ~/catkin_ws/devel/setup.bash ##### Set ROS Network #### # PPC CORE(<IP_ADDRESS>) export ROS_MASTER_URI=http://<IP_ADDRESS>:11311 # local ROS IP export ROS_IP=<IP_ADDRESS>
- Use below command to apply modified configuration or open a new terminal window.
$ source ~/.bashrc
Time Synchronization
In order to run the ROS on multiple PCs, each PC clock has to be synchronized. The following script file comes in handy for this synchronization procedure. PPC time becomes the reference for synchronization, and perform below procedures only for MPC and OPC.
- Create the script file with an editor.
$ gedit ~/timesync
- Copy and paste below contents to the script file
#! /bin/sh sudo date --set='-2 secs' sudo ntpdate <IP_ADDRESS> sudo hwclock -w PPC(<IP_ADDRESS>)
- Modify the script file permission(Add execute permission)
$ sudo chmod +x timesync
- Run the script file to sync time for PPC, MPC and OPC.
$ ~/timesync
- If NTP socket is running, Stop the ntp service and sync time.
$ sudo service ntp stop $ ~/timesync
ROBOTIS ROS Package Install
This section introduces how to install the ROBOTIS ROS Package for THORMANG3.
- ROBOTIS-Framework : DXL SDK based Framework for ROBOTIS platforms
- ROBOTIS-Framework-msgs : ROS Messages used in the ROBOTIS-Framework
- ROBOTIS-THORMANG-MPC : ROS Packages for the Motion PC of THORMANG3
- ROBOTIS-THORMANG-PPC : ROS Packages for the Perception PC of THORMANG3
- ROBOTIS-THORMANG-OPC : ROS Packages for the Operating PC of THORMANG3
- ROBOTIS-THORMANG-Common : Common ROS Packages for THORMANG3
- ROBOTIS-THORMANG-msgs : ROS Messages used in the ROBOTIS THORMANG3 packages
- ROBOTIS-THORMANG-Too
MPC Installation
Install the ROBOTIS ROS Package from the MPC. The ROS Package is installed by default.
- Download Packages from GitHub to the source folder in the catkin workspace.
$ cd ~/catkin_ws/src $ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Math.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-MPC.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-Common.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-Tools.git
- After installing all dependent packages, go to the workspace and build. Use j1 option when building for the first time.
$ cd ~/catkin_ws $ catkin_make -j1
- Find ft_calibration_data.yaml and ft_data.yaml from provided USB and copy them to thormang3_manager/config/.
PPC Installation
Install the ROBOTIS ROS Package from the PPC. The ROS Package is installed by default.
- Download Packages from GitHub to the source folder in the catkin workspace.
$ cd ~/catkin_ws/src $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-PPC.git
- After installing all dependent packages, go to the workspace and build. Use j1 option when building for the first time.
$ cd ~/catkin_ws $ catkin_make -j1
OPC Installation
Install the ROBOTIS ROS Package from the OPC.
- Download Packages from GitHub to the source folder in the catkin workspace.
$ cd ~/catkin_ws/src $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-OPC.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-msgs.git $ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-THORMANG-Common.git
-
After installing all dependent packages, go to the workspace and build. Use j1 option when building for the first time.
Note
Dependencies : qt-ros, map_server, nav_msgs, humanoid_nav_msgs, sbpl, octomap-rosNote
sbpl needs to be installed manually. Please follow the sbpl install instruction.$ sudo apt install ros-kinetic-map-server $ sudo apt install ros-kinetic-humanoid-nav-msgs $ sudo apt install ros-kinetic-octomap ros-kinetic-octomap-msgs ros-kinetic-octomap-ros ros-kinetic-octomap-server $ sudo apt install ros-kinetic-qt-ros $ cd ~/catkin_ws/src $ git clone https://github.com/AravindaDP/humanoid_navigation.git $ cd ~/catkin_ws $ catkin_make -j1
-
Troubling Shot for
libGL
in 64bit UbuntuNote
Reference : Link
Update
When the source is modified, update & build is necessary.
- Go to the folder where source is copied and run the pull command.(ex : ROBOTIS-THORMANG-OPC)
$ cd ~/catkin_ws/src/ROBOTIS-THORMANG-OPC $ git pull
- Build
$ cd ~/catkin_ws $ catkin_make
Additional ROS Package Install
The followings are required ROS Packages for THORMANG3 when installing desktop-full.
ROS Packages for MPC
Install below ROS Packages from the MPC. The Package is installed by default.
urg_node : ROS Package for Lidar
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/urg_node
$ git clone https://github.com/ros-drivers/urg_c
$ git clone https://github.com/ros-perception/laser_proc
Note
Reference : http://wiki.ros.org/urg_node
ROS Packages for PPC
Install the below ROS Package from the PPC. The Package is installed by default.
uvc_camera : ROS Package for USB camera
$ sudo apt install libv4l-dev
$ cd ~/catkin_ws/src
$ git clone https://github.com/ktossell/camera_umd
Note
Reference : http://wiki.ros.org/uvc_camera
realsense
Note
Reference : http://wiki.ros.org/RealSense


Hello dear friend!
I would like to invite you to join me on a game of Where am i,
click this link:
For an adventure around the globe. Kind regards, your WAI team!
WAI
Leopold Franzens Universität Innsbruck write us back at<EMAIL_ADDRESS>Website: www.whereamiplay.com


Markers
Create scripts using the Script Window.
Set Script Type to Behavior.
Duplicate Script Cast members for quick starting point for new scripts
Three type of Scripts (Behaviors, Parent, Movie).
We only use Behavior Script for now. Use Property Inspector to set script type
to Behavior.
Frame Script Channel. Get triggered when Play Back Head hits the frame.
Frame Script to stop on a frame:
on exitFrame
go the frame
end
Frame Script to loop in a section of the Score.
on exitFrame
go "a"
end
Sprite Behavior Scripts. Gets triggered on mouse events (mouseUp, mouseDown, mouseEnter, mouseLeave)
Property Inspector->Behavior Pane
on mouseUp
go "a"
end
Naming Behaviors
Removing Behaviors


--- layout: default title: Home ---
Hello and welcome to my website.
I occasionally share my thoughts on my blog. Check out my latest posts here.
When I'm not doing homework, you can find me climbing, eating bagels, and listening to podcasts.
For those interested, you can check out my projects and accomplishments on my Resume page.
I’m also on a few social networks:
Thanks for checking everything out!


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/Type.20of.20the.20empty.20type.3F.html ---
Beginner here. As I understand it everything in lean has a type. If this is the case then what is the type of the empty type in lean (or type theories more generally)?
There are infinitely many empty types. Lean has a hierarchy of type universes Sort 0, Sort 1, Sort 2, ...
. You can define an empty inductive type inside any universe. In fact, you can define multiple empty inductive types in the same universe, and you can't prove in Lean that they're equal. The type of an empty type will be Sort i
for some i
.
Alright, so as an example, what is the type of the empty type which is used when defining the negation of a proposition? When we say ¬A is A -> E what is the type of that E?
That empty type is named false
in Lean. Its type is Sort 0
, which also goes by the name Prop
.
Ahh okay thanks. Also when trying to prove something and you end up with false as a hypothesis then you're done right? How does lean know that false proves everything?
Yep. The theorem false.elim
is what you need. In tactic mode, if you have h : false
you can use cases h
.
This is the recursion principle for an empty inductive type, btw, which is how Lean "knows" it.
A variation which is easier to read in tactic mode is: exfalso, exact h
Or contradiction
Or the contradiction
tactic is even easier to read.
Can you elaborate on how its "the recursion principle for an empty inductive type" at all? What does that mena?
When you define an inductive type T
, you give a list of the ways to construct a term of type T
. The recursion principle says how to define a function with domain T
. For each constructor, you say what the function should do given a term created with that constructor. This is enough to define a function, since the constructors are the only way to create a term of type T
.
For an empty type like false
, there are no constructors, so there are no inputs to the recursor. It's a function from false
to any type.
Recursors are generated automatically when you define an inductive type. For a simple non-degenerate example:
inductive two | a | b #check @two.rec_on
You define a function out of the finite type two
by saying what the values should be on a
and b
. Equivalently, you prove a theorem about all terms of type two
by proving it for a
and proving it for b
.
Okay, so thats saying youre making a new type called two and that a and b are the only things of type two?
And if you added a function as well as the a and b then that would be another way of making a thing of type two?
So with the empty type you simply give no constructors and so to prove anything about terms of the empty type you dont need to do anything at all?
If thats right then I feel like im getting it, but I dont quite get how that lets you create a function from false to anything at all
In order to create a function from A to B, you need to explain where each element of A should go. If there is no element in A then you're done.
Okay, so thats saying youre making a new type called two and that a and b are the only things of type two?
Yep, exactly. a
and b
are both constructors of the new type two
. The constructors or an inductive type are surjective, meaning any term t : two
must be either a
or b
. They're also injective, meaning a ≠ b
(unless two
is a Prop
, but that's another rabbit hole).
In order to create a function from A to B, you need to explain where each element of A should go. If there is no element in A then you're done.
That makes sence - when doing the false.elim itll create a function from false to whatever im tryin to prove by going through all the possible things which could be false, then realise there are none becasue theres no constructors and so create the function without a problem
Yep, exactly.
a
andb
are both constructors of the new typetwo
. The constructors or an inductive type are surjective, meaning any termt : two
must be eithera
orb
. They're also injective, meaninga ≠ b
(unlesstwo
is aProp
, but that's another rabbit hole).
How is = even defined for a and b? is it just part of an inductive type that it defines what = means for terms of the type?
Also are they any other ways to define types other than by using inductive types?
Heh, that's another rabbit hole. Have you read any of Theorem Proving in Lean? (https://leanprover.github.io/theorem_proving_in_lean/) Short answer, =
is a family of inductive propositions, but that might not mean much to you. It's discussed there in chapter 7.
Haha youre right about it not meaning much. I have had a breif look at it, ill be sure to look at chapter 7 for that explanation
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Jon L. Gallegos
Democrat
I am retired as of February 2020. My uploaded resume has details.
I have a Bachelors of Social Work from Colorado State University (1979) and a Maters of Public Administration from University of Colorado Denver (2006)
80003
My entire work career history of over 30 years is dedicated to advocacy work to assist vulnerable populations needing assistance and intervention for education and self sufficiency. Participation on several advisory groups through completed term membership and holding roles on an nonprofit governing board for five years are included in my experiences. Through my employers I connected to advocacy groups that would serve the community while supporting the influences to improve our agencies service delivery,
I was an advisory board member of the Spanish Language Advisory Board the Denver Election commission for over 5 years. I participated in the caucus for my precinct<PHONE_NUMBER>) for the 2016 presidential election.
*Spanish Language Advisory Board for the Denver Election Commission *The Arvada Humans Services Advisory Committee *The Racial Gender Disparity Advisory Committee for the Denver Crime Prevention and Control Commission *Community advisory member for the All Families Deserve a Chance Coalition *Skills2Compete Advisory Board member operating under the Colorado Center on Law and Policy
I believe strongly in community participation and to eliminate barriers of representation in order to achieve as comprehensive and inclusive community voice as possible. As a public servant, I was always cautious not to cross any boundaries that would put my role and purpose into question and now that I am retired from public sector work think I can contribute more directly to policy development without concern of conflict of interests.
I believe that all voices must be heard and options validated. I believe each of us always has something to learn and to learn it is important to show up as an ally to each other in opportunities to express our thoughts and respect education and experience from those who are participating. Addressing the issue over personalizing a disagreement usually moves to a positive end point that while not always a consensus, can at the least be a method of informed consent.
As a Manger and supervisor and Co-Director for human service programs I have developed or participated in the development of policies requiring logic and analysis. Considerations of political influences, budgets and resources are always part of the process to reach sound decision making.
Male