Table of Contents
This chapter explains how to quickly install, run, and use a HyperSQL Listener (aka Server) on UNIX.
Note that, unlike a traditional database server, there are many use cases where it makes sense to run HyperSQL without any listener. This type of setup is called in-process, and is not covered here, since there is no UNIX-specific setup in that case.
I intend to cover what I think is the most common UNIX setup: To run a multi-user, externally-accessible catalog with permanent data persistence. (By the latter I mean that data is stored to disk so that the catalog data will persist across process shutdowns and startups). I also cover how to run the Listener as a system daemon.
When I give sample shell commands below, I use commands which will work in Bourne-compatible shells, including Bash and Korn. Users who insist on using the inferior C-shells will need to convert.
Go to http://sourceforge.net/projects/hsqldb and click on the "files" link. You want the current version. I can't be more specific because SourceForge/Geeknet are likely to continue changing their interface. See if there's a distribution for the current HSQLDB version in the format that you want.
If you want a binary package and we either don't provide it, or
you prefer somebody else's build, you should still find out the current
version of HyperSQL available at SourceForge. It's very likely that you
can find a binary package for your UNIX variant with your OS distributor,
http://www.jpackage.org/, http://sunfreeware.com/, etc. Nowadays, most UNIXes
have software package management systems which check Internet
repositories. Just search the repositories for "hsqldb" and "hypersql".
The challenge is to find an up-to-date package. You
will get better features and support if you work with the current stable
release of HyperSQL. (In particular, HyperSQL version 2.0.0 added tons of
new features). Pay attention to what JVM versions your binary package
supports. Our builds (version 2.0 and later) document the Java version it
was built with in the file doc/index.html
, but you
can't depend on this if somebody else assembled your distribution. Java
jar files are generally compatible with the same or greater major
versions. For example,if your hsqldb.jar
was built
with Java 1.3.6-11, then it is compatible with Java versions 1.3.* and
greater.
| Note | |
|---|---|
|
It could very well happen that some of the file formats which I discuss below are not in fact offered. If so, then we have not gotten around to building them. |
Binary installation depends on the package format that you downloaded.
|
Installing from a .pkg.Z file |
This package is only for use by a Solaris super-user. It's a System V package. Download then uncompress the package with uncompress or gunzip uncompress filename.pkg.Z You can read about the package by running pkginfo -l -d filename.pkg Run pkgadd as root to install. pkgadd -d filename.pkg |
|
Installing from a BSD Port or Package | You're on your own. I find everything much easier when I install software to BSD without their package management systems. |
|
Installing from a .rpm file |
Just skip this section if you know how to install an RPM. If you found the RPM using a software management system, then just have it install it. The remainder of item explains a generic command-line method which should work with any Linux variant. After you download the rpm, you can read about it by running rpm -qip /path/to/file.rpm Rpms can be installed or upgraded by running rpm -Uvh /path/to/file.rpm as root. Suse users may want to keep Yast aware
of installed packages by running rpm through Yast: |
|
Installing from a .zip file |
Extract the zip file in an ancestor directory of the new
HSQLDB home. You don't need to create the
cd ancestor/of/new/hsqldb/home unzip /path/to/file.zip All the files in the zip archive will be extracted to
underneath a new subdirectory named like
|
Take a look at the files you installed. (Under
hsqldb
for zip file installations. Otherwise, use the
utilities for your packaging system). The most important file of the
HyperSQL system is hsqldb.jar
, which resides in the
subdirectory lib
. Depending on who built your
distribution, your file name may have a version label in it, like
hsqldb-<IP_ADDRESS>.jar
.
| Important | |
|---|---|
|
For the purposes of this chapter, I define
Furthermore, unless I state otherwise, all local file paths
that I give are relative to the
|
If the description of your distribution says that the
hsqldb.jar
file will work for your Java version, then
you are finished with installation. Otherwise you need to build a new
hsqldb.jar
file.
If you followed the instructions above and you still don't know
what Java version your hsqldb.jar
supports, then try
reading documentation files like readme.txt
,
README.TXT
, INSTALL.txt
etc. (As
I said above, our newer distributions always document the Java version for
the build, in the file doc/index.html
). If that still
doesn't help, then you can just try your hsqldb.jar
and see if it works, or build your own.
To use the supplied hsqldb.jar
, just skip to
the next section of this
document. Otherwise build a new
hsqldb.jar
.
Procedure 14.1. Building hsqldb.jar
If you don't already have Ant, download the latest stable binary version from http://ant.apache.org. cd to where you want Ant to live, and extract from the archive with
unzip /path/to/file.zip
or
tar -xzf /path/to/file.tar.gz
or
bunzip2 -c /path/to/file.tar.bz2 | tar -xzf -
Everything will be installed into a new
subdirectory named apache-ant- + version
. You can
rename the directory after the extraction if you wish.
Set the environmental variable JAVA_HOME
to
the base directory of your Java JRE or SDK, like
export JAVA_HOME; JAVA_HOME=/usr/java/j2sdk1.4.0
The location is entirely dependent upon your
variety of UNIX. Sun's rpm distributions of Java normally install to
/usr/java/something
. Sun's System V package
distributions of Java (including those that come with Solaris)
normally install to /usr/something
, with a
sym-link from /usr/java
to the default version
(so for Solaris you will usually set JAVA_HOME to
/usr/java
).
Remove the existing file HSQLDB_HOME
/lib/hsqldb.jar
.
cd to HSQLDB_HOME
/build
.
Make sure that the bin directory under your Ant home is in your search
path. Run the following command.
ant hsqldb
This will build a new
HSQLDB_HOME
/lib/hsqldb.jar
.
See the Building HyperSQL Jars appendix if you want to build anything
other than hsqldb.jar
with all default
settings.
If you installed from an OS-specific package, you may already
have a catalog and listener pre-configured. See if your package includes a
file named server.properties
(make use of your
packaging utilities). If you do, then I suggest that you still read this
section while you poke around, in order to understand your
setup.
Select a UNIX user to run the database process (JVM) as. If
this database is for the use of multiple users, or is a production
system (or to emulate a production system), you should dedicate a UNIX
user for this purpose. In my examples, I use the user name
hsqldb
. In this chapter, I refer to this user as
the HSQLDB_OWNER
, since that user will own the
database catalog files and the JVM processes.
If the account doesn't exist, then create it. On all system-5 UNIXes and most hybrids (including Linux), you can run (as root) something like
useradd -c 'HSQLDB Database Owner' -s /bin/bash -m hsqldb
(BSD-variant users can use a similar pw
useradd hsqldb...
command).
Become the HSQLDB_OWNER
. Copy the sample
file
sample/server.properties
to the
HSQLDB_OWNER
's home directory and rename it to
server.properties
. (As a final reminder,
"sampleserver.properties" is a relative path, so it is understood to
be relative to your HSQLDB_HOME
).
# Hsqldb Server cfg file. # See the HyperSQL Network Listeners chapter of the HyperSQL User Guide. # Each server.database.X setting defines a database "catalog". # I.e., an independent set of data. # Each server.database.X setting corresponds exactly to the jdbc:hsqldb:* # JDBC URL you would use if you wanted to get a direct (In-Process) # Connection to the catalog instead of "serving" it. server.database.0=file:db0/db0 # I suggest that, for every file: catalog you define, you add the # connection property "ifexists=true" after the database instance # is created (which happens simply by starting the Server one time). # Just append ";ifexists=true" to the file: URL, like so: # server.database.0=file:db0/db0;ifexists=true # server.dbname.0 defaults to "" (i.e. server.dbname.n for n==0), but # the catalog definition n will be entirely ignored for n > 0 if you do not # set server.dbname.n. I.e. dbname setting is required for n > 0, though it # may be set to blank (e.g. "server.dbname.3=")
Since the value of the first database (server.database.0) begins with file:, the catalog will be persisted to a set of files in the specified directory with names beginning with the specified name. Set the path to whatever you want (relative paths will be relative to the directory containing the properties file). You can read about how to specify other catalogs of various types, and how to make settings for the listen port and many other things in other chapters of this guide.
Set and export the environmental variable
CLASSPATH
to the value of
HSQLDB_HOME
(as described above) plus
"/lib/hsqldb.jar", like
export CLASSPATH; CLASSPATH=/path/to/hsqldb/lib/hsqldb.jar
In HSQLDB_OWNER
's home
directory, run
nohup java org.hsqldb.server.Server &
This will start the Listener process in the background, and
will create your new database catalog "db0". Continue on when you see
the message containing HSQLDB server... is online
.
nohup
just makes sure that the command will not
quit when you exit the current shell (omit it if that's what you want
to do).
We're going to use SqlTool to access the database, so you will
need the file sqltool.jar
in addition to
hsqldb.jar
. If sqltool.jar
isn't
already sitting there beside hsqldb.jar
(they both
come pre-built), build it exactly as you would build
hsqldb.jar
, except use ant target
sqltool
. If your distribution came with a sqltool jar
file with a version label, like sqltool-<IP_ADDRESS>.jar
,
that's fine-- use that file whenever I say
sqltool.jar
below.
Copy the file sample/sqltool.rc
to the
HSQLDB_OWNER
's home directory. Use
chmod
to make the file readable and writable only to
HSQLDB_OWNER
.
# $Id: sqltool.rc 4313 2011-06-06 02:19:38Z unsaved $ # This is a sample RC configuration file used by SqlTool, DatabaseManager, # and any other program that uses the org.hsqldb.lib.RCData class. # See the documentation for SqlTool for various ways to use this file. # If you have the least concerns about security, then secure access to # your RC file. # You can run SqlTool right now by copying this file to your home directory # and running # java -jar /path/to/sqltool.jar mem # This will access the first urlid definition below in order to use a # personal Memory-Only database. # "url" values may, of course, contain JDBC connection properties, delimited # with semicolons. # As of revision 3347 of SqlFile, you can also connect to datasources defined # here from within an SqlTool session/file with the command "\j urlid". # You can use Java system property values in this file like this: ${user.home} # The only feature added recently is the optional "transiso" setting, # which may be set to an all-caps transaction isolation level as listed # in the Java API Spec for java.sql.Connection. # Windows users are advised to use forward slashes instead of reverse slashes, # and to avoid paths containing spaces or other funny characters. (This # recommendation applies to any Java app, not just SqlTool). # A personal Memory-Only (non-persistent) database. urlid mem url jdbc:hsqldb:mem:memdbid username SA password # A personal, local, persistent database. urlid personal url jdbc:hsqldb:file:${user.home}/db/personal;shutdown=true username SA password transiso TRANSACTION_READ_COMMITTED # When connecting directly to a file database like this, you should # use the shutdown connection property like this to shut down the DB # properly when you exit the JVM. # This is for a hsqldb Server running with default settings on your local # computer (and for which you have not changed the password for "SA"). urlid localhost-sa url jdbc:hsqldb:hsql://localhost username SA password # Template for a urlid for an Oracle database. # You will need to put the oracle.jdbc.OracleDriver class into your # classpath. # In the great majority of cases, you want to use the file classes12.zip # (which you can get from the directory $ORACLE_HOME/jdbc/lib of any # Oracle installation compatible with your server). # Since you need to add to the classpath, you can't invoke SqlTool with # the jar switch, like "java -jar .../sqltool.jar...". # Put both the SqlTool jar and classes12.zip in your classpath (and export!) # and run something like "java org.hsqldb.util.SqlTool...". #urlid cardiff2 #url jdbc:oracle:thin:@aegir.admc.com:1522:TRAFFIC_SID #username blaine #password secretpassword #driver oracle.jdbc.OracleDriver # Template for a TLS-encrypted HSQLDB Server. # Remember that the hostname in hsqls (and https) JDBC URLs must match the # CN of the server certificate (the port and instance alias that follows # are not part of the certificate at all). # You only need to set "truststore" if the server cert is not approved by # your system default truststore (which a commercial certificate probably # would be). #urlid tls #url jdbc:hsqldb:hsqls://db.admc.com:9001/lm2 #username BLAINE #password asecret #truststore ${user.home}/ca/db/db-trust.store # Template for a Postgresql database #urlid blainedb #url jdbc:postgresql://idun.africawork.org/blainedb #username blaine #password losung1 #driver org.postgresql.Driver # Template for a MySQL database. MySQL has poor JDBC support. #urlid mysql-testdb #url jdbc:mysql://hostname:3306/dbname #username root #password hiddenpwd #driver com.mysql.jdbc.Driver # Note that "databases" in SQL Server and Sybase are traditionally used for # the same purpose as "schemas" with more SQL-compliant databases. # Template for a Microsoft SQL Server database using Microsoft's Driver # (I find that the JTDS driver is much more responsive than Microsoft's). # OLDER JDBC Driver: #urlid msprojsvr #url jdbc:microsoft:sqlserver://hostname;DatabaseName=DbName;SelectMethod=Cursor # The SelectMethod setting is required to do more than one thing on a JDBC # session (I guess Microsoft thought nobody would really use Java for # anything other than a "hello world" program). # This is for Microsoft's SQL Server 2000 driver (requires mssqlserver.jar # and msutil.jar). #driver com.microsoft.jdbc.sqlserver.SQLServerDriver #username myuser #password hiddenpwd # Current 2011 JDBC Driver for Microsoft SQL Server: # Requires just the new sqljdbc4.jar. (Microsoft just loves back-slashes) #url jdbc:sqlserver://hostname\instanceName;DatabaseName=dbname #driver com.microsoft.jdbc.sqlserver.SQLServerDriver # Template for Microsoft SQL Server database using the JTDS Driver # http://jtds.sourceforge.net Jar file has name like "jtds-1.2.5.jar". #urlid nlyte #username myuser #password hiddenpwd #url jdbc:jtds:sqlserver://myhost/nlyte;instance=MSSQLSERVER #driver net.sourceforge.jtds.jdbc.Driver # Template for a Sybase database #urlid sybase #url jdbc:sybase:Tds:hostname:4100/dbname #username blaine #password hiddenpwd # This is for the jConnect driver (requires jconn3.jar). #driver com.sybase.jdbc3.jdbc.SybDriver # Template for Embedded Derby / Java DB. #urlid derby1 #url jdbc:derby:path/to/derby/directory;create=true #username ${user.name} #password any_noauthbydefault #driver org.apache.derby.jdbc.EmbeddedDriver # The embedded Derby driver requires derby.jar. # There'a also the org.apache.derby.jdbc.ClientDriver driver with URL # like jdbc:derby://<server>[:<port>]/databaseName, which requires # derbyclient.jar. # You can use \= to commit, since the Derby team decided (why???) # not to implement the SQL standard statement "commit"!! # Note that SqlTool can not shut down an embedded Derby database properly, # since that requires an additional SQL connection just for that purpose. # However, I've never lost data by not shutting it down properly. # Other than not supporting this quirk of Derby, SqlTool is miles ahead of ij.
We will be using the "localhost-sa" sample urlid definition from
the config file. The JDBC URL for this urlid is
jdbc:hsqldb:hsql://localhost
. That is the URL for the
default catalog of a HyperSQL Listener running on the default port of the
local host. You can read about URLs to connect to other catalogs with and
without listeners in other chapters of this guide.
Run SqlTool
.
java -jar path/to/sqltool.jar localhost-sa
If you get a prompt, then all is well. If security is
of any concern to you at all, then you should change the privileged
password in the database. Use the command SET PASSWORD
command to change
SA's password.
SET PASSWORD 'newpassword';
Set a strong password!
| Note | |
|---|---|
|
If, like most UNIX System Administrators, you often need to
make up strong passwords, I highly suggest the great little program
|
Note that with SQL-conformant databases like HyperSQL 2.0, user names and passwords are case sensitive. If you don't quote the name, it will be interpreted as upper-case, like any named SQL object. (Only for backwards compatibility, we do make an exception for the special user name SA, but you should always use upper-case "SA" nevertheless).
When you're finished playing, exit with the command
\q
.
If you changed the SA password, then you need to update the
password in the sqltool.rc
file
accordingly.
You can, of course, also access the database with any JDBC client
program. You will need to modify your classpath to include
hsqldb.jar
as well as your client class(es). You can
also use the other HSQLDB client programs, such as
org.hsqldb.util.DatabasManagerSwing
, a graphical
client with a similar purpose to SqlTool
.
You can use any normal UNIX account to run the JDBC clients,
including SqlTool
, as long as the account has read
access to the sqltool.jar
file and to an
sqltool.rc
file. See the Utilities Guide about where
to put sqltool.rc
, how to execute sql files, and
other SqlTool
features.
Connect to the database as SA (or any other Administrative user)
and run CREATE USER
to
create new accounts for your catalog. HSQLDB accounts are
database-catalog-specific, not
Listener
-specific.
In SQL-compliant databases, all database objects are created in a
schema. If you don't specify a schema, then the new
object will be created in the default schema. To create a database object,
your account (the account that you connected with) must have the role
DBA
, or your account must have authorization for the
target schema (see the CREATE SCHEMA command about this last). When you
first create a HyperSQL catalog, it has only one database user-- SA, a DBA
account, with an empty string password. You should set a password (as
described above). You can create as many additional users as you wish. To
make a user a DBA, you can use the "ADMIN" option to the CREATE USER
command, command, or
GRANT the DBA Role to the account after creating it.
Once an object is created, the object creator and users with the DBA role will have all privileges to work with that object. Other users will have only the rights which the pseudo-user PUBLIC has. To give specific users more permissions, even rights to read objects, you can GRANT permissions for specific objects, grant Roles (which encompass a set of permissions), or grant the DBA Role itself.
Since only people with a database account may do anything at all with the database, it is often useful to permit other database users to view the data in your tables. To optimize performance, reduce contention, and minimize administration, it is often best to grant SELECT to PUBLIC on table-like objects that need to be accessed by multiple database users, with the significant exception of any data which you want to keep secret. (Similarly with EXECUTE priv for routines and USAGE priv for other object types). Note that this is not at all equivalent to giving the world or the Internet read access to your tables-- you are giving read access to people that have been given accounts for the target database catalog.
Do a clean database shutdown when you are finished with the database catalog. You need to connect up as SA or some other Admin user, of course. With SqlTool, you can run
java -jar path/to/sqltool.jar --sql 'shutdown;' localhost-sa
You don't have to worry about stopping the
Listener
because it shuts down automatically when
all served database catalogs are shut down.
You can, of course, run HSQLDB through inittab on System V UNIXes, but usually an init script is more convenient and manageable. This section explains how to set up and use our UNIX init script. Our init script is only for use by root. (That is not to say that the Listener will run as root-- it usually should not).
The main purpose of the init script is to start up a Listener for
the database catalogs specified in your
server.properties
file; and to gracefully shut down
these same catalogs. For each catalog defined by a
server.database.X
setting in your .properties file, you
must define an administrative "urlid" in your
sqltool.rc
(these are used to access the catalogs for
validation and shutdown purposes). Finally, you list the urlid names in
your init script config file. If, due to firewall issues, you want to run
a WebServer instead of a Server, then make sure you have a healthy
WebServer with a webserver.properties set up, adjust your URLs in
sqltool.rc
, and set TARGET_CLASS in the config
file.
By following the commented examples in the config file, you can start up any number of Server and/or WebServer listener instances with or without TLS encryption, and each listener instance can serve any number of HyperSQL catalogs (independent data sets), all with optimal efficiency from a single JVM process. There are instructions in the init script itself about how to run multiple, independently-configured JVM processes. Most UNIX installations, however, will run a single JVM with a single Listener instance which serves multiple catalogs, for easier management and more efficient resource usage.
After you have the init script set up, root can use it anytime to start or stop HSQLDB. (I.e., not just at system bootup or shutdown).
The primary design criterion of the init script is portability. It does not print pretty color startup/shutdown messages as is common in late-model Linuxes and HPUX; and it does not keep subsystem state files or use the startup/shutdown functions supplied by many UNIXes, because these features are all non-portable.
Offsetting these limitations, this one script does it's intended job great on the UNIX varieties I have tested, and can easily be modified to accommodate other UNIXes. While you don't have tight integration with OS-specific daemon administration guis, etc., you do have a well tested and well behaved script that gives good, utilitarian feedback.
The strategy taken here is to get the init script to run your single Server or WebServer first (as specified by TARGET_CLASS). After that's working, you can customize the JVM that is run by running additional Listener instances in it, running your own application in it (embedding), or even overriding HSQLDB behavior with your own overriding classes.
Copy the init script sample/hsqldb.init
to
hsqldb
in the directory where init scripts live
on your variety of UNIX. The most common locations are
/etc/init.d
or
/etc/rc.d/init.d
on System V style UNIXes,
/usr/local/etc/rc.d
on BSD style UNIXes, and
/Library/StartupItems/hsqldb
on OS X (you'll
need to create the directory for the last).
View your server.properties
file. Make a
note of every catalog define by a
server.database.X
setting. A couple steps down,
you will need to set up administrative access for each of these
catalogs. If you are using our sample server.properties
file, you will just need to set up access for the catalog specified
with file:db0/dbo
.
| Note | |
|---|---|
|
Pre-2.0 versions of the hsqldb init script required use
of .properties settings of the
form |
Either copy HSQLDB_OWNER
's
sqltool.rc
file into root's home directory, or
set the value of AUTH_FILE
to the absolute path
of HSQLDB_OWNER
's sqltool.rc
file. This file is read directly by root, even if you run hsqldb as
non-root (by setting HSQLDB_OWNER
in the config
file). If you copy the file, make sure to use
chmod
to restrict permissions on the new copy.
The init script will abort with an appropriate exhortation if you
have the permissions set incorrectly.
You need to set up a urlid stanza in your
sqltool.rc
file for network access (i.e. JDBC
URL with hsql:, hsqls:, http:, or https:) for each catalog in your
server.properties
file. For our example, you
need to define a stanza for the file:db0/db0
catalog. You must supply for this catalog, a hsql: JDBC URL, an
administrative user name, and the password.
Example 14.1. example sqltool.rc stanza
urlid localhostdb1 url jdbc:hsqldb:hsql://localhost username SA password secret
Look at the comment towards the top of the init script
which lists recommended locations for the configuration file for
various UNIX platforms. Copy the sample config file sample/hsqldb.cfg
to one of
the listed locations (your choice). Edit the config file according
to the instructions in it. For our example, you will set the value
of URLIDS
to localhostdb1
,
since that is the urlid name that we used in the
sqltool.rc
file.
# $Id: hsqldb.cfg 3583 2010-05-16 01:49:52Z unsaved $ # Sample configuration file for HyperSQL Server Listener. # See the "HyperSQL on UNIX" chapter of the HyperSQL User Guide. # N.b.!!!! You must place this in the right location for your type of UNIX. # See the init script "hsqldb" to see where this must be placed and # what it should be renamed to. # This file is "sourced" by a Bourne shell, so use Bourne shell syntax. # This file WILL NOT WORK until you set (at least) the non-commented # variables to the appropriate values for your system. # Life will be easier if you avoid all filepaths with spaces or any other # funny characters. Don't ask for support if you ignore this advice. # The URLIDS setting below is new and REQUIRED. This setting replaces the # server.urlid.X settings which used to be needed in your Server's # properties file. # -- Blaine (blaine dot simpson at admc dot com) JAVA_EXECUTABLE=/usr/bin/java # Unless you copied the jar files from another system, this typically # resides at $HSQLDB_HOME/lib/sqltool.jar, where $HSQLDB_HOME is your HSQLDB # software base directory. # The file name may actually have a version label in it, like # sqltool-1.2.3.jar (in which case, you must specify the full name here). # A 'hsqldb.jar' file (with or without version label) must reside in the same # directory as the specified sqltool.jar file. SQLTOOL_JAR_PATH=/opt/hsqldb-2.0.0/hsqldb/lib/sqltool.jar # For the sample value above, there must also exist a file # /opt/hsqldb-2.0.0/hsqldb/lib/hsqldb*.jar. # Where the file "server.properties" or "webserver.properties" resides. SERVER_HOME=/opt/hsqldb-2.0.0/hsqldb/data # What UNIX user the server will run as. # (The shutdown client is always run as root or the invoker of the init script). # Runs as root by default, but you should take the time to set database file # ownerships to another user and set that user name here. HSQLDB_OWNER=hsqldb # The HSQLDB jar file specified in HSQLDB_JAR_PATH above will automatically # be in the class path. This arg specifies additional classpath elements. # To embed your own application, add your jar file(s) or class base # directories here, and add your main class to the INVOC_ADDL_ARGS setting # below. Another common use-case for adding to your class path is to make # classes available to the DB engines for SQL/JRT functions and procedures. #SERVER_ADDL_CLASSPATH=/usr/local/dist/currencybank.jar # For startup or shutdown failures, you can save a lot of debugging time by # temporarily adjusting down MAX_START_SECS and MAX_TERMINATE_SECS to a # little over what it should take for successful startup and shutdown on # your system. # We require all Server/WebServer instances to be accessible within # $MAX_START_SECS from when the Server/WebServer is started. # Defaults to 60. # Raise this is you are running lots of DB instances or have a slow server. #MAX_START_SECS=200 # Max time to allow for JVM to die after all HSQLDB instances stopped. # Defaults to 60. Set high because the script will always continue as soon as # the process has stopped. The importance of this setting is, how long until # a non-stopping-JVM-problem will be detected. #MAX_TERMINATE_SECS=0 # NEW AND IMPORTANT!!! # As noted at the top of this file, this setting replaces the old property # settings server.urlid.X. # Simply list the URLIDs for all DB instances which your *Server starts. # Usually, these will exactly mirror the server.database.X settings in your # server.properties or webserver.properties file. # Each urlid listed here must be defined to a NETWORK url with Admin privileges # in the AUTH_FILE specified below. (Network type because we use this for # inter-process communication) # Separate multiple values with white space. NO OTHER SPECIAL CHARACTERS! # Make sure to quote the entire value if it contains white space separator(s). URLIDS='localhostdb1' # These are urlids # ** IN ADDITION TO URLIDS **, for instances which the init # script should stop but not start. # Most users will not need this setting. If you need it, you'll know it. # Defaults to none (i.e., only URLIDS will be stopped). #SHUTDOWN_URLIDS='ondemand' # SqlTool authentication file used only for shutdown. # The default value will be sqltool.rc in root's home directory, since it is # root who runs the init script. # (See the SqlTool chapter of the HyperSQL Utilities Guide if you don't # understand this). #AUTH_FILE=/home/blaine/sqltool.rc # Typical users will leave this unset and it will default to # org.hsqldb.server.Server. If you need to run the HSQLDB WebServer class # instead, due to a firewall or routing impediment, set this to # org.hsqldb.server.WebServer, see the docs about running WebServr, and # set up a "webserver.properties" file instead of a "server.properties". # The JVM that is started can invoke many classes (see the following item # about that), but this is the server that is used (1) to check status, # (2) to shut down the JVM. #TARGET_CLASS=org.hsqldb.server.WebServer # This is where you may specify both command-line parameters to TARGET_CLASS, # plus any number of additional progams to run (along with their command-line # parameters). The MainInvoker program is used to embed these multiple # static main invocations into a single JVM, so see the API spec for # org.hsqldb.util.MainInvoker if you want to learn more. # N.b. You should only use this setting to set HSQLDB Server or WebServer # parameters if you run multiple instances of this class, since you can use the # server/webserver.properties file for a single instance. # Every additional class (in addition to the TARGET_CLASS) # must be preceded with an empty string, so that MainInvoker will know # you are giving a class name. MainInvoker will invoke the normal # static main(String[]) method of each such class. # By default, MainInvoker will just run TARGET_CLASS with no args. # Example that runs just the TARGET_CLASS with the specified arguments: #INVOC_ADDL_ARGS='-silent false' #but use server.properties property instead! # Example that runs the TARGET_CLASS plus a WebServer: #INVOC_ADDL_ARGS='"" org.hsqldb.server.WebServer' # Note the empty string preceding the class name. # Example that starts TARGET_CLASS with an argument + a WebServer + # your own application with its args (i.e., the HSQLDB Servers are # "embedded" in your application). (Set SERVER_ADDL_CLASSPATH too).: #INVOC_ADDL_ARGS='-silent false "" org.hsqldb.server.WebServer "" com.acme.Stone --env prod localhost' # but use server.properties for -silent option instead! # Example to run a non-TLS server in same JVM with a TLS server. In this # case, TARGET_CLASS is Server which will run both in TLS mode by virtue of # setting the tls, keyStore, and keyStorePassword settings in # server*.properties, as described below; plus an "additional" Server with # overridden 'tls' and 'port' settings: #INVOC_ADDL_ARGS="'' org.hsqldb.server.Server --port 9002 --tls false" # This is an important use case. If you run more than one Server instance, # you can specify different parameters for each here, even though only one # server.properties file is supported. # Note that you use nested quotes to group arguments and to specify the # empty-string delimiter. # The TLS_* settings have been obsoleted. # To get your server running with TLS, set # system.javax.net.ssl.keyStore=/path/to/your/private.keystore # system.javax.net.ssl.keyStorePassword=secretPassword # server.ssl=true # IN server.properties or webserver.properties, and # MAKE THE FILE OWNER-READ-ONLY! # See the TLS Encryption section of the HyperSQL User Guide, paying attention # to the security warning(s). # If you are running with a private server cert, then you will also need to # set "truststore" in the your SqlTool config file (location is set by the # AUTH_FILE variable in this file, or it must be at the default location for # HSQLDB_OWNER). # Any JVM args for the invocation of the JDBC client used to verify DB # instances and to shut them down (SqlToolSprayer). # Server-side System Properties should normally be set with system.* # settings in the server/webserver.properties file. # This example specifies the location of a private trust store for TLS # encryption. # For multiple args, put quotes around entire value. # If you are starting just a TLS_encrypted Listener, you need to uncomment # this so the init scripts uses TLS to connect. # If using a private keystore, you also need to set "truststore" settings in # the sqltool.rc file. #CLIENT_JVMARGS=-Djavax.net.debug=ssl # This sample value displays useful debugging information about TLS/SSL. # Any JVM args for the server. # For multiple args, put quotes around entire value. #SERVER_JVMARGS=-Xmx512m # You can set the "javax.net.debug" property on the server side here, in the # same exact way as shown for the client side above.
Verify that the init script works.
Just run
/path/to/hsqldb
as root to see the arguments you may use. Notice that you can run
/path/to/hsqldb status
at any time to see
whether your HSQLDB Listener
is
running.
Re-run the script with each of the possible arguments to really test it good. If anything doesn't work right, then see the Troubleshooting the Init Script section.
Tell your OS to run the init script upon system startup and
shutdown. If you are using a UNIX variant that has
/etc/rc.conf
or
/etc/rc.conf.local
(like BSD variants and
Gentoo), you must set "hsqldb_enable" to "YES" in either of those
files. (Just run cd /etc; ls rc.conf
rc.conf.local
to see if you have one of these files). For
good UNIXes that use System V style init, you must set up hard links
or soft links either manually or with management tools (such as
chkconfig
or insserv
) or Gui's
(like run level editors).
This paragraph is for Mac OS X users only. If you followed the
instructions above, your init script should reside at
/Library/StartupItems/hsqldb/hsqldb
. Now copy
the file StartupParameters.plist
from the
directory src/org.hsqldb/sample
of your HSQLDB
distribution to the same directory as the init script. As long as
these two files reside in
/Library/StartupItems/hsqldb
, your init script
is active (for portability reasons, it doesn't check for a setting
in /etc/hostconfig
). You can run it as a
Startup Item by running
SystemStarter {start|stop|restart} Hsqldb
Hsqldb is the service name. See the man page for
SystemStarter
. To disable the init script,
wipe out the /Library/StartupItems/hsqldb
directory. Hard to believe, but the Mac people tell me that during
system shutdown the Startup Items don't run at all. Therefore, if
you don't want your data corrupted, make sure to run "SystemStarter
stop Hsqldb" before shutting down your Mac.
Follow the examples in the config file to add additional
classes to the server JVM's classpath and to execute additional classes
in your JVM. (See the SERVER_ADDL_CLASSPATH
and
INVOC_ADDL_ARGS
items).
Definitely look at the init script log file, which is at an
OS-sependent location, but is usually at
/var/log/hsqldb.log
.
Do a ps
to look for processes containing the
string hsqldb
, and try to connect to the database
from any client. If the init script starts up your database
successfully, but incorrectly reports that it has not, then your problem
is with specification of urlid(s) or SqlTool setup. If your database
really did not start, then skip to the next paragraph. Verify that your
config file assigns a urlid for each catalog defined in
server.properties
or
webserver.properties
, then verify that you can run
SqlTool
as root to connect to the catalogs with
these urlids. (For the latter test, use the --rcfile
switch if you are setting AUTH_FILE
in the init
script config file).
If your database really is not starting, then verify that you
can su
to the database owner account and start the
database. The command su USERNAME -c ...
won't work
on most UNIXes unless the target user has a real login shell. Therefore,
if you try to tighten up security by disabling this user's login shell,
you will break the init script. If these possibilities don't pan out,
then debug the init script or seek help, as described below.
To debug the init script, run it in verbose mode to see exactly
what is happening (and perhaps manually run the steps that are suspect).
To run an init script (in fact, any sh shell script) in verbose mode,
use sh
with the -x
or
-v
switch, like
sh -x path/to/hsqldb start
See the man page for sh
if you don't know the
difference between -v
and
-x
.
If you want troubleshooting help, use the HSQLDB lists/forums.
Make sure to include the revision number from your
hsqldb
init script (it's towards the top in the
line that starts like "# $Id:"), and the output of a run of
sh -x path/to/hsqldb start > /tmp/hstart.log 2>&1
This section is for users who are using our UNIX init script, and who are upgrading their HyperSQL installation.
Most users will not have customized the init script itself, and
your customizations will all be encapsulated in the init script
configuration file. These users should just overwrite their init script
with a new one from the HyperSQL installation, and manually merge config
file settings. First, just copy the file
/sample/hsqldb.init
over top of of your init script
(wherever it runs from). Then update your old config file according to the
instructions in the new config file template at
sample/hsqldb.cfg
. You will have to change very few
settings. If you are upgrading from a pre-2.0 installation to a post-2.0
installation, you will need to (1) add the setting
URLIDS
, as described above and in the inline comments,
and (2) replace variable HSQLDB_JAR_PATH
with
SQLTOOL_JAR_PATH
which (if you haven't guessed) should
be set to the path to your sqltool.jar
file.
Users who customized their init script will need to merge their customizations into the new init script.
$Revision: 5206 $


A session representing a logged-in user
The implementation of fetch
to use. Defaults to a global fetch
.
The HTTP method to send the request with.
If the length of a GET request's URL exceeds maxUrlLength
the request will use POST instead.
The base URL for the AGOL organization, e.g., https://myOrg.maps.arcgis.com
Additional parameters to pass in the request.
Base url for the portal you want to make the request to. Defaults to 'https://www.arcgis.com/sharing/rest'.
The base URL for the portal, e.g., https://www.arcgis.com
Generated using TypeDoc
An extension of a IUserRequestOptions that includes the organization and portal URLs.


BLACK ROBE A film review by Chad Polenz Copyright 1997 Chad Polenz
**1/2 1991, R, 101 minutes [1 hour, 41 minutes] [drama] starring: Lothaire Bluteau (Father Laforgue - "Blackrobe"), Aden Young (Daniel), Sandrine Holt (Annuka), August Schellenberg (Chomina), produced by Robert Lantos, Stephanie Reichel, Sue Milken, written by Brian Moore (based on his novel), directed by Bruce Beresford.
"Black Robe" is one of those "period piece" movies that is so blatant in its efforts to be a powerful, symbolic drama you feel bad if you don't like it. The themes to this film are quite evident, but then again, so are the flaws.
Lothaire Bluteau stars as a Father Laforgue, a 17th century French priest who wants to travel to the Americas to witness to the "poor savages." It's difficult to understand his motivation because the manner in which he carries out his mission is not very productive, positive, nor sympathetic.
He takes with him a young apprentice named Daniel (Young), and the two travel with a small tribe of Algonquin Indians from Quebec to a mission in Huron. Not much happens in terms of plot development, so essentially what Beresford is trying for is characterization and themes as he shows the impact the Indians and the white men have on each other.
The Indians refer to Father Laforgue simply as "Blackrobe." This is symbolic of the role of his character, with black being an absolute negative color, and robe as in "of the cloth." Blackrobe repeatedly tries to witness to the natives but with little success. They are just as close-minded as he is when it comes to theology and who is actually "right."
The film doesn't do a good job in justifying its existence - is it supposed to be a historically accurate portrayal of the events, or is it a story of tolerance? At one point it almost becomes a sappy love story and at another point it borders on the adventure genre. We get a story with a lot of apparent truth and accuracy to it, but what is it building up to?
The only time the film becomes somewhat interesting is during a battle scene in which Blackrobe's clan is attacked by another tribe and many are brutally killed (except for the main characters of course). One guaranteed method of bringing people of differences together is a common enemy, and that cliche comes into play here. Chomina (Schellenberg), one of the Algonquin leaders that had been guiding Blackrobe, is captured and tortured along with our heroes. There's that moment of "Lets put our differences aside and work together to kick their ass!" But it's too late, the characters aren't interesting enough to really care about what happens to them.
Blackrobe does make it to the Huron mission, and the Indians there beg him to baptize them, only because they think by doing so it will stop the illness that is plaguing them. When the leader of the tribe asks Blackrobe if he loves them, he thinks about all the Indians he has encountered, both good and bad, and replies "yes" but not enthusiastically.
There's many smaller themes and conclusions that can be drawn from "Black Robe," but as a whole it seems empty. It just needed work on its characterization and actual storytelling style.
visit Chad'z Movie Page @ http://members.aol.com/ChadPolenz/index.html
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


Add text-align:center to <li> or <a> to center the links. Add the border property to <ul> add a border around the navbar. If you also want borders inside the navbar, add a border-bottom to all <li> elements, except for the last one:
In this example, we center the navigation links and add a border to the navigation bar.


Health tips
Have plenty of water
Don't skip meals
Exercise regularly
Sleep Well!.8hrs is a standard time
Play games like your taste!
Avoid unhygienic food
Click to Register for Quiz
Click here to participate in Quiz


Add, remove or edit rows with custom columns
Table using several custom column widgets, as well as external state tracking. Functions for adding, removing and inline editing (with data validation).
Please note that this example only persists changes in memory so the data will be reset when component is reinitialized e.g when route changes or page is refreshed.
Number of selected rows: {{myTable.selectedRows.length}}


Who We Are
The Open Coalition is a loose affiliation of organisations, all working in the open space. Originally founded in partnership by Wikimedia UK, Open Knowledge, Creative Commons and Mozilla, the Coalition has grown to include many other organisations. We believe that by working together, across organisational boundaries, we can help each other to work more effectively, and continue to build a free and open Web.
What We Do
- Facilitate better communication across the sector
- Work with partners to build joint projects
- Grow our network by identifying and partnering with open organisations
- Encourage the understanding and use of open practices across the Web


Overview
Launch is the next-generation of tag management capabilities from Adobe. Launch gives customers a simple way to deploy and manage all of the analytics, marketing, and advertising tags necessary to power relevant customer experiences.
Launch empowers anyone to build and maintain their own integrations with Launch, called Extensions. These extensions are available to Launch customers in an app-store experience so they can quickly install, configure, and deploy their tags.
Launch is offered to Adobe Experience Cloud customers as an included, value-add feature. Launch is an entirely new product with a new code base, designed to replace the previous Dynamic Tag Management (DTM) service. However, DTM will continue to be supported for the foreseeable future. Adobe will continue to fix any significant bugs and ensure consistent performance. At this time, no major feature enhancements are planned for legacy DTM.
Key benefits
- Faster time to value
- Trustworthy data through centralized collection, organization, and delivery using data elements
- Compelling experiences through the integration of data and marketing technology using rule builder
Key features
Extensions
An extension is a package of code (JavaScript, HTML, and CSS) that extends the Launch UI and client functionality. Build, manage, and update your integrations using a virtually self-service interface. You can think of Launch as an operating system, and extensions are the apps you use to achieve your tasks.
Extension Catalog
Browse, configure, and deploy marketing/advertising tools built and maintained by independent software vendors.
Rule Builder
Create robust rules that combine multiple events, sequenced in the way that you determine using if/then logic with conditions and exceptions. Extensions provide options for:
- Events
- Conditions
- Exceptions
- Actions
The rule builder includes real-time error checking and syntax highlighting for your custom code.
When the criteria outlined in your rules are met and conditions are satisfied, the actions you define are executed in order.
Data Elements
Collect, organize, and deliver data across web-based marketing and advertising technology.
Enterprise Publishing
The publishing process enables teams to publish code to pages. Different people can create an implementation, approve it, and publish it to your pages.
- Changes to your code are encapsulated within libraries you define
- You specify where and when you want your code deployed
- Multiple libraries can be built in parallel by different teams
- Unlimited development environments
- Deliberate, permissioned process for merging libraries together
Open APIs
Automate implementations of individual technologies, or a group of technologies.
- Launch interacts with the Reactor APIs
- Deployments can be automated through APIs
- Integrate the Launch APIs with your own internal systems
- You can build your own user interface, if desired
Light, Modular Container tag
The Launch container tag is 60% lighter than DTM and 40% lighter than Google Tag Manager. The content of your container is minified, including your custom code. Everything is modular. If you don't need an item, it is not included in your library. The result is an implementation that is fast and compact. See Minification.
Other highlights
Launch provides several improvements over similar systems, including:
- No use of
document.write ()
where Chrome doesn't allow it - The Page Top and Page Bottom rules are bundled into the main library to minimize unnecessary HTTP calls
- Custom action scripts within a rule can be loaded in parallel, but are executed sequentially
- If you avoid Page Top and Page Bottom rules, the code is mostly asynchronous, with a path to getting fully async
Requirements
Launch requires the following:
- You must be an Adobe Experience Cloud customer.
- You must deploy the Launch or DTM embed code on your web pages.
Adobe Launch FAQ
Frequently asked questions about dynamic tag management.
A FAQ about the new version of dynamic tag management, announced in March 2017.
What is Launch?
Launch is the next-generation of the Adobe tag-management capability, built into the Adobe Cloud Platform. Launch enables clients to:
- Deploy client-side web products using integrations called extensions
- Consistently capture, define, manage, and share data between marketing and advertising products from other vendors and from Adobe
Launch is an advanced JavaScript delivery system that evaluates conditions and executed actions to efficiently and effectively deploy client-side libraries and products. It provides a highly scalable approach to managing and building extensions, together with a robust set of APIs for programmatic interaction with the Adobe Cloud Platform.
Is Launch just an updated DTM?
No. Launch is an entirely new product with a new code base. The system has been redesigned from scratch using modern front-end development practices and an API-first approach. Everything is built on a robust set of APIs, which makes the system very powerful and highly flexible.
Will the current DTM product remain available?
Yes, legacy DTM (the existing production version) will continue to be supported for the foreseeable future. Adobe will continue to fix any significant bugs and ensure consistent performance. At this time, no major feature enhancements are planned for legacy DTM.
The Launch team is working to make the migration process from legacy DTM to Launch as easy as possible so customers can take advantage of more than twenty new features, extensions, and APIs that Launch provides.
How much does Launch cost?
There is no additional charge for Launch. It is available for any Adobe Experience Cloud customer.
Will I have to change the embed codes in my current DTM implementation?
No, you won't have to change your production embed codes if you're currently using the existing (legacy) DTM system. You can continue to work in your current DTM Company and Web Properties without worrying about changing that embed code. The product team has not finalized the migration process just yet, but they are working to make it as easy and automated as possible. For more details, see the Launch help docs, and this blog post.
I heard there are plug-ins now. What's that about?
Launch is built into the Adobe Cloud Platform and it is fully extensible. Customers, Adobe Partners, agencies, and marketing or advertising technology vendors will soon be able to build Launch extensions that add new functionality or modify existing functionality. The system allows partners and clients to build, manage, and update their own integrations. This is just one way Adobe is opening up the Adobe Cloud Platform so customers and partners can build products and businesses on the Platform, and so everyone can more easily connect Adobe technology to the marketing and advertising technologies from other vendors. Over time, this will be the place for customers to install and configure all of their client-side technologies.
Will all third-party extensions be available right away?
Extensions will be available for all Adobe solutions and for a select group of independent vendors when Launch is released. The product team is working closely with several technology partners to ensure the availability of these extensions upon release. After that initial release of Launch, the product team will work to expand the number of extensions as quickly as possible. Because extensions can be built, managed, and updated by the Extension developer, vendors won't have to wait for Adobe engineering to build them, so this should be a very rapid process going forward.
When will clients or partners be able to build extensions?
After general availability, Launch will open its virtually self-service portal that extension developers can use to build their own integrations with the Adobe Cloud Platform.
Will Launch meet my company's security standards?
Launch is SOC-2 and Gramm-Leach-Bliley Act ready. Launch also offers the capability of being self-hosted. The JavaScript libraries can be served from your own servers, or the CDN of your choice. For I.T. and security teams, this gives you the ability to run automated testing, to check the files into your own version control system, and to fully comply with any internal production migration processes, security-related or otherwise.
I have a project coming up very soon. Should I wait for Launch?
If you are already using legacy DTM, or are currently deploying DTM, you should continue to do so. Don't wait. Move your projects forward using the current DTM. Then, when you're ready to move to Launch, the migration process will make it as easy and automated as possible (no on-page embed code changes, and automated migration of Rules and Data Elements).
Which capabilities exist in Launch that don't exist in legacy DTM?
Launch will offer four major capabilities that aren't comparable to legacy DTM:
-
Deploy non-Adobe client-side browser technologies quickly and easily
Using extensions, clients and partners can easily control in-browser technologies in the interface, without managing custom code.
-
Enterprise-grade publishing
Compartmentalize and control each piece of your libraries to deploy precisely what you need, where you need it, and when you need it.
-
Robust approval workflows
Flexible approval workflows allow custom processes to match your existing internal approval processes.
-
Granular rights management
Administrators will designate which extensions users can, and can't use. They will also control which areas within Launch are accessible to certain users.
Does Launch support single page apps and my favorite framework?
Yes. Launch has capabilities to give users and extension developers flexibility in collecting, managing, and distributing data within single page application experiences or Ajax-heavy pages or sites. This applies regardless of your development framework preferences, whether that's Angular, React.js, Ember, Meteor, etc.
Does Launch support dynamic data layers?
Yes. Launch includes an extension that specializes in listening for changes in dynamic data layers.
Which event types does Launch support?
Event types are available through extensions. The pre-loaded DTM extension includes 30 built-in event types. Other extensions could add additional event types. For example, the YouTube extension includes four video event types: play, pause, end, and time played. Through extensions, Launch can support any other browser event types or synthetic event types, such as specific visitor activity sequences.
Will the new Launch speed up (or slow down) my web site?
Launch is designed to deliver and run marketing and advertising technologies on your web site as efficiently as possible using today's best practices. When used properly, Launch has proven to improve performance of web sites over alternative methods of providing similar functionality.
Which browsers will Launch support?
Browser support in the Launch client-side libraries:
- Chrome (latest)
- Safari (latest)
- Firefox (latest)
- Internet Explorer (10 and above)
- iOS Safari (latest)
- Android Chrome (latest)
Browser support in the Launch application interface:
- Chrome (latest)
- Safari (latest)
- Firefox (latest)
- Internet Explorer (11 and above)
Legacy DTM supported older versions of Internet Explorer, but over the last few years, the percentage of overall web users with older, outdated browsers has dropped to a small segment for our clients. Most Adobe clients now leverage more modern web platform features in current browsers and create better user experiences, including single page applications and interactive Ajax-heavy web sites and pages. As most clients move to more modern approaches with their sites, they demand a solution like Launch that enables those approaches.
Does the new Launch work on native mobile apps?
Adobe continues to recommend the Mobile Services App SDK to implement data collection and delivery in a native mobile app environment. With Adobe mobile services, the process is streamlined with a single SDK that works with multiple Adobe Cloud Platform solutions. Going forward, you will see additional tag management-like functionality in the Mobile Services interface as the Launch and Mobile teams continue working closely together for more seamless Cloud Platform access and user experiences.
What if I have other questions?
These are the questions we've received most often from customers and partners since the Launch announcement. If you have other questions, please ask in the Adobe Community on the main Launch page located at https://adobe.com/go/launchme.
Launch is just one example of where our platform is headed: more open, more integrated and as always dedicated to customer success.


--- layout: default title: ICNB'16 - Conference Venue ---
We are pleased to announce that the International Conference on Nanobiotechnology (ICNB'16) will be held in Prague, Czech Republic, on April 1 - 2, 2016 at the Clarion Congress Hotel Prague.
Situated in the "modern part of Prague", the Clarion Congress Hotel Prague is just 15 minutes from Prague's historical centre. The Hotel offers various restaurants, bars, a wellness and fitness centre; there is also a shopping mall right next to the Hotel.
For more information on the Clarion Congress Hotel Prague, please visit:
This beautiful city is the sixth most-visited city in Europe and the fourteenth-largest city in the European Union. Prague is situated in the north-west of Czech Republic, on the Vltava River, and is home to over 2 million people.
Home to a number of famous attractions, Prague boasts more than ten museums, a number of galleries, theaters, cinemas and many other historical exhibits. Popular attractions in Prague consist of the Prague Castle, the Charles Bridge, Old Town Square, the Jewish Quarter and Petřín Hill among many more.
For more information on Prague, please visit: www.praguewelcome.cz.


This is the 2nd part of the Plugin Developer tutorial.
Our plugin introduced a new build step to be configured on FreeStyle jobs. We will now add global, system-wide configuration (i.e. Jenkins > Manage Jenkins > Configure)
Global configuration
Do you know GRaveN can run your builds on the Cloud ? We will let user enable this option as a global setting. In our hudson.plugins.graven.GravenBuilder resource package we add a global.jelly view file. As the name suggest, such file will be used to configure global settings for the plugin component, that are managed by the Descriptor. This one then acts as a metadata container.
<?jelly escape-by-default='true'?> <j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form"> <f:section title="${%GRaveN}" name="graven"> <f:entry title="${%Send builds to the Cloud}" field="enableCloud"> <f:checkbox/> </f:entry> </f:section> </j:jelly>
Noticed in this global view that the section is set with a name="graven". As our form fields may collide with other plugin, especially if we use common names like name or path, we use a dedicated namespace to isolate plugin attributes form other plugins. The effect is that all form elements will be packaged in a dedicated graven JSON structure when sent back to the server, so we can easily filter the form data that match our component.
As for config.jelly, we can define help tooltips as companion html files and support i18n with a bundle.
The Descriptor will get populated by this view if we override the configure method to retrieve data from the global configuration form submission
@Extension public static class Descriptor extends BuildStepDescriptor<Builder> { private boolean enableCloud; public Descriptor() { load(); } @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { json = json.getJSONObject("graven"); enableCloud = json.getBoolean("enableCloud"); save(); return true; } public boolean isEnableCloud() { return enableCloud; } (...)
We can also use DataBinding, as we did with DataBoundConstructors, to avoid picking all form fields using a json.getXXX call, but for this to happen we have to either create setter method for the enableCloud attribute or declare it as public :
@Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { req.bindJSON(this, json.getJSONObject("graven")); save(); return true; } public void setEnableCloud(boolean enableCloud) {...}
Persist configuration
Just after binding the form submission to Descriptor attributes, we call the save method so that Jenkins will store the data in a dedicated XML file hudson.plugins.graven.GravenBuilder.xml in JENKINS_HOME. XStream is used to serialize data to configuration files, compared to other Java to XML binding solution, it has the benefits to be very flexible, so that we can easily support legacy configuration file when some attribute name have been refactored. To retrieve the saved data on Jenkins startup, we call the load method from the default constructor.
For GravenBuilder instances to access metadata in a simple way, we will use Java 5 covariant return type and override getDescriptor so that we can simply access our Descriptor singleton :
public boolean isEnableCloud() { return getDescriptor().isEnableCloud(); } @Override public Descriptor getDescriptor() { return (Descriptor) super.getDescriptor(); }
Tools Installation
We could use this global configuration to manage GRaveN installation, so that user can choose the GRaveN version they want to build project with. This is such a common case in Jenkins, that there is already a pre-define canvas to support configuring installation and even auotmatic installation from a downloadable package.
We create a new Jenkins component to support GRaveN installation, with the adequate Descriptor :
/** * @author <a<EMAIL_ADDRESS>De loof</a> */ public class GravenInstallation extends ToolInstallation { @DataBoundConstructor public GravenInstallation(String name, String home, List<? extends ToolProperty<?>> properties) { super(name, home, properties); } @Extension public static final class Descriptor extends ToolDescriptor<GravenInstallation> { public Descriptor() { setInstallations(); load(); } @Override public String getDisplayName() { return "GRaveN"; } @Override public GravenInstallation newInstance(StaplerRequest req, JSONObject formData) throws FormException { return (GravenInstallation) super.newInstance(req, formData.getJSONObject("gravenInstallation")); } } }
Notice the call to setInstallation on Descriptor constructor to initialize a default empty installation set for new Jenkins instance, followed by a call to load to retrieve persisted configuration.
The newInstance method - that would by default search for a DataBoundConstructor to match the JSON form data - is overridden to extract the subset that matches our global configuration namespace for tool installation.
QUESTION : is there a way to only declare the namespace ? maybe this could be a valuable improvement to only override some JSONObject getJsonDataRoot(formData) or even just return the "namespace"
The associated view for this component is a config.jelly file. You may wonder this is not a global.jelly one, but note our Descriptor inherit from ToolDescriptor; Stapler view inherit from their parent view, and our descriptor will automatically be integrated in the ToolInstallation canvas that handles multiple ("repeatable") entries, additional properties, and more...
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form"> <f:entry title="${%Name}" field="name"> <f:textbox/> </f:entry> <f:entry title="${%Home directory}" field="home"> <f:textbox /> </f:entry> </j:jelly>
Do you notice the "install automatically" link ? This is a benefit from reusing ToolInstallation : as much tools can be installed from a downloadable zip and/or using some scripting, this configuration is provided by default, with extension point to provide your own ToolInstaller strategy when required. You can for example extend DownloadFromURLInstaller so that the tool will be downloaded from it's distribution site and installed on demand.
Path on slave
How to configure our tool installation if we distribute builds on slave executors ? They may use distinct location for tools or maybe even distinct Operatin Systems. As described in ToolInstallation javadoc, you are encouraged (but not required) to implement NodeSpecific and EnvironmentSpecific to help Jenkins translate the configured path to match the node/environment where the build will be executed. Let's do :
public class GravenInstallation extends ToolInstallation implements NodeSpecific<GravenInstallation>, EnvironmentSpecific<GravenInstallation> { public GravenInstallation forEnvironment(EnvVars environment) { return new GravenInstallation(getName(), environment.expand(getHome()), getProperties().toList()); } public GravenInstallation forNode(Node node, TaskListener log) throws IOException, InterruptedException { return new GravenInstallation(getName(), translateFor(node, log), getProperties().toList()); } (...)
Those two methods allow to use environment variable and let Jenkins "expand" them at runtime to get execution path, as well as to translate path for a node, using node specific properties. This will aslo be used by automatic ToolInstaller to install the tools on node where it is not yet available.


Ed can purchase water in a 0.75 liter and 2 liter bottle. He regards the two goods as perfect substitutes.
a.) Assuming Ed’s utility depends on the quantity of water consumed, express the utility function in terms of quantities of 0.75L containers (x) and 2L containers (y).
so,
so,
That is that x little bottles contributes the same to utility as 3/8 of a big bottle.
(insert figure 1 here)
b.) State Ed’s demand function for x in terms of and I.
if
If the price of the little bottle is less than the price of the big bottle, he should buy all little bottles.
c.) Graph the demand curve for x, holding I and p_y constant.
insert figure 2 here
d.) How do changes in I and shift the demand curve for x?
insert figure 3
David receives only $3 a week and cares only about a particular sandwich bundle that is peanut butter and jelly. He uses exactly 1 oz of jelly and 2 oz of peanut butter for each sandwich.
a.) How much peanut butter and jelly will David buy with his $3 allowance in a week?
Davide will buy 15 oz jelly and 30 oz peanut butter in a week.
b.) Suppose the price of jelly were to rise to $0.15 an oz. How much of each commodity will be bought?
David will buy 12 oz of jelly and 24 oz of peanut butter.
c.) By how much should David’s allowance be increased to compensate for the rise in price in jelly in part (b)?
He needs $0.75 in compensation to be able to eat 15 sandwiches again.
d.) Graph your results in parts (a) to (c).
insert figure 4 here
e) In what sense does this problem involve only a single commodity: peanut butter and jelly sandwiches? Graph the demand curve for this single commodity.
Since he really is interested in sandwiches, the components are consumed in fixed proportions.
insert figure 5
f.) Discuss the results of this problem in terms of the income and substitution effects involved in the demand for jelly.
No substitution effect. It is all manifest through the income effect.
Suppose the utility function for goods x and y is given by .
a.)Calculate the uncompensated (Marshallian) demand function for x and y and describe how the demand curves for x and y are shifted by changes in I or the price of the other goods.
An increase in income increase consumption of both x & y, but a price increase in x decrease consumption of x & increases consumption of y. An increase in the price of y decreases only consumption of y.
b.) Calculate the expenditure function for x and y.
c.) Use the expenditure function calculated in part (b) to compute the compensated demand functions for goods x and y. Describe how the compensated demand curves for x and y are shifted by changes in income or by changes in the price of the other good.
Two Ways:
1.) Plug e in for I in the Marshallian demands
2.) Shephard’s Lemma (p.167)
The compensated demand curves are unaffected by changes in income. They do, however, show that both cross prices affect x & y.
Part (e) of Problem 5.9 has a number of useful applications because it shows how price responses depend ultimately on the underlying parameters of the utility function. Specifically, use that result together with the Slutsky equation in elasticity terms to show:
a.) In the Cobb-Douglas case (), the following relationship holds between the own-price elasticities of and .
First, Slutsky equation in elasticities
Remember,
multiply through by
multiply by in income term
Substitute
Substitute .
Substitute share of income spent on x.
Now using 5.9 (e) in the Cobb Douglass Case.
Since in Cobb Douglass case.
Similarly for y, then . Similarly you can show that
b.) If then , and if then . Provide an intuitive explanation for this result.
Again by the slutsky equation in elasticities.
Since CES is homothetic,
Similarly for y:
when
when
Intuition
Written with StackEdit.


Hey there!
You currently don't have access for this
If you would like to request access. Please contact the webmaster
OK
{{msg}}


Nemu's Electronic Entrancement Device
This is a clone of the Cranial Lust MUST/2 system.
Drag script parts from the left to build a playlist on the right.
Start!


LCSO: Jury duty scam continues to be reported in Southwest Florida
by WFTX Digital TeamFORT MYERS, Fla. -- The Lee County Sheriff's Office has a warning for you about a jury duty-related scam making the rounds.
The sheriff’s office says they've received multiple complaints from people who have gotten a call from someone claiming to be a Lee County Sheriff's Office employee.
The caller is telling people they need to a pay a fine for missing jury duty.
The Lee County Sheriff’s Office will not call and solicit money over the phone.
The sheriff's office says this is a scam, and they're urging anyone who has paid money to report it immediately by calling<PHONE_NUMBER>.


I just recently graduated from Stony Brook University with a degree in Computer Science!
I am an enthusiastic programmer with some experience with Java, Python, C, and SQL/MySQL. I also have some experience with web development and have some knowledge of HTML, CSS, JavaScript, NodeJS/ExpressJS and PHP.
Whenever I'm not too busy with whatever work I have, I help maintain my parent's garden. I also help maintain gardens around Manhattan during the summer.
Worked with LUNGS, an organization of community gardens, to maintain public gardens around the NYC area and also supervise any volunteers that arrived to help.
Worked with other interns to develop web pages that fit the standards and needs of clients. These web pages can be found in the portfolio section.
Worked with the New York Blood Center to manage the flow of donors, filling out paperwork, and handle any documents that donors provide.


© 5/11/1992 Alexander Chislenko
FUTUROLOGY
Being both fond of futurology and deeply dissatisfied with everything I could read in it, I started writing down some of my own thoughts - on and off - hoping to eventually put it all together.
Below I am including the first part of my unfinished manuscript in hope to get response that would either put me in touch with some kindred spirits, or make me save my time for something more worthwhile. So what do you think?
Notes on global evolution for fellow Thinkers
It is generally understood that the civilization is now going through several revolutionary transformations. Defining a revolution as a structural transition between two quasi-stationary states, we should agree that the main task for any attempt to envision the future - or understand the essence of current processes - is to describe the expected features of the next state, and also develop some ideas of what we are going to see on the way to it, what other ways we could choose, why this next state is worth achieving at all, and what are our options after we get there.
But wherever I looked, these questions were avoided - there are few people whose scope of vision extends more than a few decades into the future, and even their interest rapidly evaporates when you are trying to discuss with them human alternatives at the stages when all processes they enjoy taking part in give way to something structurally different.
If we compare our way to the future to a road with moving cars, we would picture some people looking out of the car windows in random directions, some sleeping on the seats, and a few trying to steer - mostly to overtake the others. And nobody thinks of the final destination...
Below I will try to suggest some reasons why different areas of thought fail to provide us with adequate concepts of direction, some suggestions how we could improve the situation, and some of my own visions of long-term and ultimate human, social, and technological future.
Notes on the following text (You don't have to read this)
Text structure:
The first few parts represent my today's opinions on the areas where I have tried to look for wisdom. They can be read in practically any order.
The rest of the text contains my own ideas in the order of what I would call increasing vision. I recommend that you read it from the beginning down, and when you think it is already too crazy - just drop it, because further it'll be a lot worse.
Methods of presentation (a disclaimer).
With the greatest respect I have to my reader, I am trying to just outline the path of thought, casting small stepping stones of argument sparingly and far from each other, so you have to take big steps to pass. Well, one who can't make big steps wouldn't get far anyway...
To keep this text short, I also take the liberty of redefining common concepts in what I feel is their broader sense and conducting some linguistic experiments that should look innocently simple to anybody who can understand the ideas of this text. My goal is not to present the complete set of ideas that I would like you to have after reading this article, but to offer some thoughts that will help you to come to these - and other - ideas yourself. Actually, I do not understand why many authors try to feed us with 'full and balanced' stories in areas that are way before completion - instead of just showing us some spectacular and structurally important pieces that we could use as building blocks for further development, even if these ideas are sketchy, ungrounded, politically incorrect, too categorical or plain wrong. Well, since I personally believe that this is the only way to respectably treat the reader in this kind of literature, I choose it - with this warning - and suggest that whenever you find some statements that you would never agree with - try to think of the implications of those statements, but not of what should be done with a person who puts this kind of stuff on paper.
Science Fiction
The remarkable success of Science relies on the departure of its concepts from our [limited] sensual experience, to more closely correspond to the structures of the Real World, while Fiction is bound to address our sensuality - and so Science Fiction has to keep one foot on each side of this widening gap - with, as could be expected, inevitable traumatic consequences. Now, with SF writers' and readers' worldviews widening much slower than this gap, we can notice that modern SF is both less romantically appealing to the wide audience and lags farther behind current scientific frontiers than Jules Vernes' and many other books of the relatively recent past.
Today, seeing on the covers of most popular SF books and tapes those typical pictures of sexy-barbaric-alien-females-holding-big- sparkling-shmasers, we can conclude that [at least, the mainstream of,] SF has developed into a new set of popular fairy tales - by creating an artificial reality of its own symbols, metaphors, heroes and environments - and the stories it tells us usually are not even aimed at expanding its world.
Still, even recently, there have been some interesting ideas that first appeared in the science fiction, including those of intelligent superobjects and cyberspace. But keeping up with the frontiers of thought, this part of SF outpaces the mass market interests, and the more its authors try to water their intellectual constructs down with conventional adventure plots, the more it frustrates those few idea-seekers who could really appreciate it. As a result, many would-be-good-SF-writers now tend to express themselves in philosophical essays, publications in alternative scientific editions and Internet messages. Good-bye, SF...
Economics.
Economics as a discipline developed when people lived among ample natural resources and in relatively stable socio-economic environment. At those times, and until recently, economics provided insights into some directions of the development of the human society and helped steer it into the future. Now the situation has changed, and so did the relevance of the economic theory:
In the conditions when most of the available resources are limited, the commonly accepted practice of counting the extracted resources as a pure gain in GNP can be compared to moving money from the right pocket to the left and thinking of it as a gain - just because we are used to count it only in the left pocket. And no matter how precisely we do the calculations, we are only fooling ourselves...
With all markets quickly becoming saturated, the main criteria of progress in any sector of the economy are not the increased amount in the production of the same stuff, but those of structural change. Meanwhile, the economic indicators reflect quantitative changes in the structurally stable areas, use questionable methods to disguise small structural changes as quantitative, and totally fail to account for the new products constituting the essence of today's economic progress. As a result, economic methods become confined to a rapidly [relatively] shrinking, and no longer isolated, domain of stable production, and fail to reflect long-term growth in social wealth, let alone guide it.
Innovations have never appeared by means of free exchange or direct orders, which can only help allocate necessary resources and spread the novelty. With innovations becoming the core of the social life we will can only expect local decision-making (foundation for market forces) and monocriterial (monetary) considerations to continue losing their indicative and guiding roles - and give way to more integrated control schemes that already determine the behavior of other complex systems, from biological organisms and national cultures to corporations and software packages.
Attempts to control the society on further levels of development with monetary-economic indicators might resemble carrying biological criteria to assess the condition of a political party by calculating total weight of its members. Not that such a figure would be totally irrelevant, but watching it will hardly yield profound insights into the nature of the subject...
Explanations of these simple ideas should be provided by the economic theory itself, but with its record of still more evident flaws in many areas, we just cannot expect it. For example, I have always been amazed to read in numerous market reviews that an industry with the production raising 20% a year and prices falling 30% a year is in depression. In this case, all market analysts report a 'regrettable 10% decline in revenues', i.e., the money that the industry extracts from the rest of the society for itself. And if none of them ever thinks that such a 'depression' represents a clear success in the industry's service of the social good today, can we expect them to go still farther beyond the sphere of their local interests and predict the future demise of the [traditional] economics itself?
Demographics and other quantitative sociology.
For some time I was fascinated by demographics, and later - by global modeling attempts, the Club of Rome's reports and other similar studies. Many of these works reside on a firm mathematical foundation and can offer spectacular calculations of population and resource dynamics in, say, 22nd century, with an accuracy of a few percent, provided current trends and reproductive patterns hold. So it might seem that with further improvement of these models, and some political will, we could easily manipulate the global eco-techno-socium and print out maps of distant future for inquisitive minds. Unfortunately, however, the underlying assumptions are wrong - the environments of the modelled systems change rapidly and drastically. So the population in the year 2150 can easily be 100% higher or 100% lower. And whatever the figure, we have no idea of whether it is high or not, since we cannot even imagine what kind of technology will service people at that time (in fact, I tend to believe that expectations of biologically immortal and largely non-human population in 2150 are rather conservative, and by far not visionary).
So here we might get some reasonable short-term (10-30 years) predictions of important, but aging factors. Useful for governments and some market analysts, but not visionaries.
Religion.
It is hard to find any frame of thought comparable to religion in its ability to give people stable and comprehensive vision of their destiny and purpose of human existence.
Unfortunately, most religions are separated from the rest of the world of ideas by high walls of belief condition, which makes them inaccessible to people who are used to travel in this world using mostly rational paradigms. They just cannot penetrate through these walls consciously, and all of them, except a few who manage to get to that side in some tunneling transition, have to form all their views by rational means.
Besides, the rational worldview is increasingly recognized as an important tool of improving human life, exactly at the time when Religion and Science are getting more and more difficult to reconcile, because of the Religion's primitive views of the world structure that portray Religion as a set of fairy tales to the followers of pure Science, and do a lot of damage to the integrity of worldviews of those who are still trying to combine the two.
Those silly tales, however, have as little relation to the Religion as do modern scientific theories, and are no more than artifacts of ancient science that found themselves embedded into the body of religion, and, due to its conservative nature, are still being carried along.
I still believe that it is possible not only to reconcile religion and science, but develop a unified world theory that would fully integrate both. However, all my attempts to discuss ways for this integration, like extensions of morphogenetic fields and semantic space concepts, transhuman ethical principles, possibilities of development of intelligent - and beyond - quasi-material entities, or at least such evident subjects like development of emergent distributed features in super-complex material systems - all these attempts are shrugged off as too esoteric by all rationalists,and are righteously ignored by the Believers who are not interested in any studies of their objects of worship that start from research of their metabolic processes.
And though it seems that those nice objects would be much better off if there was a place in their admirers' minds for both their beauty and design, I will still keep trying to build a bridge over the wall surrounding the beautiful city of Religion with its somewhat narcissist inhabitants, only from the outside, together with other ambitious rationalists. Maybe, we'll get some help from the other side when we are half way through...
Science.
In my own experience, the better I learn to convey my thoughts, the sooner my listeners understand that this is something they definitely do not want to strain their brains for; the only way seems to try to lead them from where they are to where they know they might enjoy it, then get them make the next step, hoping that in those little steps and peculiar paths they will ultimately get to the apex of knowledge that has always been so near... But is this game worth it? Especially taking into account that there are lots of other directions for growth, many at least as good as mine, and nobody can follow them all at the same time... Another idea is to help those people to harmonize their ideas in their sphere of understanding, using my experience in my special field, but without trying to even outline the map of my field.
Same thing seems to happen with the attempts to simplify the increasingly complex scientific ideas to general audience; most of them just cannot be adequately projected on the non-professional set of concepts, and as a result the society is alienated from this field of research, and the field is not getting the funds... Instead, we could try do develop metaphors that cannot be smoothly extended to the prevailing professional paradigm (in other words, limited, irrelevant, etc.), but represent structures of knowledge that can help the rest of us harmonize our understanding of the world and reconcile our primitive misconceptions of the Reality's structure with those of modern science (humor intended).
In fact, the world is full of such concepts, but due to a narrow understanding of their metaphors by professionals (as 'truths'), the non-professionals have to develop them themselves.
Results:
Transhumans should not be expected to be super-humans, to excel or even succeed as humans (just as humans don't have to succeed as animals to be superior to them). They may also look like humans, just as those look like animals, or collections of cells, or atomic structures. But there always are emergent features, unobservable for the previous level...
Transhumans develop visions, superhumans do the work, humans provide 'democratic' control.
Flaws in biological design (kludge):
- species don't share inventions due to absence of mechanism and standards, though there's a pool of genetic freeware in terms of food, viruses, etc. (a species could try to slow down the development of other species by making genes incompatible, but would definitely loose more by not getting anything else - that's a clear great opportunity, but the blind process couldn't use it);
- vision maps and other kludges;
- outdated stuff - our memories getting rigid, fat supplies.
- what discipline then? Well, the disciplines are areas with positive feedback, and tend to distort the picture, and preserve it........ If we could videotape the process of scientific growth in the space of ideas, we would see it start as a small round egg near the original point of zero complexity, then develop little bulges representing appearing ideas, mindsets and, later, institutions, pushing their own areas outwards. After a short period of such growth with local positive feedbacks, our nice egg turns into a full-scale octopus... Some of the tentacles develop in the directions that...
Identities, pride etc. when features are shared.
Greek mythology - 3 Gray sisters - they had one eye and one tooth; Ulysses sees them, one sister says: 'give me an eye so that I can see him".
Soon we'll be able to produce robots with basic image recognition and motor skills that will be able to replace humans at many manual jobs. What will those people do? Read Shakespeare? And: are we producing superior beings (robots) to enslave them only because we don't recognize them as beings? Is that what the whole robot industry is about?
System design.
Nobody has ever produced a single bit of matter. All that people have being creating is structures. Until recently, the structures have been mostly material (now less and less so), which is not their essence, as some humans still manage to believe, but a temporary, and regrettable, factor.
Arts and economics
Let us call the realm of structures that we use to build other structures economics, and structures that we directly enjoy - art. A couple of exemplary notes:
1) Protein structure of food isn't art, even if food *seems* to be the final consumer product. It isn't, since economics doesn't stop at the skin boundary, and neither should our theory. It's rather the boundary of consciousness we should do our accounting at (*lots* of reservations here), and the parts of (intentionally produced) food structure that reach this boundary are definitely [culinary] art.
2) This realm division is functional, which means that [different aspects of] the same structure can represent both economics and art. Some of the art we enjoy when it enters our consciousness (momentary pieces with instant access, like [simple] pictures, tastes, etc.); some - in the process of their digestion by the consciousness (music, movies, dances, games), and still others - after pre-loading them into our minds (memories, theories and other nice mental constructs).


Welcome to the United Nations Association
A student run organization at Indiana University.
The Indiana University United Nations Association Chapter was created in January of 2014. Although we are a new organization, we have many plans for the near future! Our new club on the Indiana University Campus will host events, dinners, listen to think-tanks and attend congressional hearings.
We are excited to have you join us on this exciting journey of becoming global advocates!


Application of methods for downscaling model inputs from global reanalysis datasets (Fiddes and Gruber 2014) together with efficient methods of applying high resolution numerical models at regional scales (Fiddes and Gruber 2012) to simulate land surface products, in the Indian Himalayas.
Physically based models can be useful for simulation of the energy and water balance in remote mountain regions where observational data is not available for more empirical methods. Such simulations are particularly useful in assessment of a range of crucial land surface processes, related to water supply and natural hazards. Key challenges in using such models are: (1) supplying appropriate scale model drivers, (2) improving efficiency for large area simulation, and (3) model evaluation and possible debiasing in data sparse regions. This study implements new methods which address (1) and (2) in a data sparse region of the Himalaya. Specific focus is placed on (3), development of methods with which to evaluate (and simple debiasing) of model simulations when conventional data is sparse.
METHODS
- Downscale atmospheric reanalysis data (ERA-Interim) to high resolution DEM scale (ASTER 30~m) according to Fiddes and Gruber 2014.
- Subgrid method which samples topographic heterogeneity to make a lumped model for highly efficient large area simulation Fiddes and Gruber 2012.
- Numerical modelling of surface parameters (2002-2012) using GeoTOP, a distributed hydrological model with coupled water and energy balance (Endrizzi et al 2013). -Evaluate and debias results in data poor areas.
WORKING WITH
University of Zurich/Fribourg Research Group on Environment and Climate: Impacts, Risks and Adaptation
REFERENCES
A poster presented at the IGS conference in Kathmandu March 2015
Media: Times of India Sunday Special


Recipients
Dave Smith, Christopher Soames, Martin Trollope
Message
Dear [recipient name] We are inviting you to the assessment panel for the competition 'Technology inspired'. We recognise your expertise and would greatly appreciate your comments on the scientific / business merit of the applications assigned to the panel assessment. Please visit our online Innovation Funding Service to respond to this request: [invite URL]
Yours sincerely,
Competitions Team
Innovate UK
Tel: 0300 321 4357
Email: competitions@innovateuk.gov.uk