[gecode-users] (no subject)
naguissa light
naguissa1989 at gmail.com
Fri Nov 22 13:57:14 CET 2013
hi everyone!
i have a simple question : how can i put an IntVarArgs into a vector ( or
is it even possible to do that ) , because i need to do some sum like this:
vector<int> *gain*;
IntVarArgs *gain1 *(m);
i have to do sum betwin those to and because i can't use* linear or rel
constraints* i just thought about geting gain1 into a vector.
i thought like this because in linear constraint i need to do som thing
like this :
linear (*this , gain, gain1, IRT_EQ, y); (here i dont have any thing as y
that's whay i cant use linear constaints) same thing for rel but what i
want is this
geting for every iterative (gain[i]*gain1[i]) and put the result into
an *IntArgs
gain2* , after that i want to do this :
*linear (*this , gain2, IRT_EQ, y);* when y is an IntVar
so intArgs gain2 is the sum of the sum of (gain[i]*gain1[i])
can YOU help me with this
Thank YOU very much for any idea
Naguissa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20131122/8907dbb2/attachment.html>
More information about the users
mailing list


Code4CT Travel is an initative to find you the best travel opportunites to the most notable and interesting corners of the earth, from the ancient ruins of Machu Picchu, Peru to the beautiful sinking city of Venice, Italy


I would like you to answer the following questions in a short answer format using Markdown.
For questions that ask for a list, use the appropriate Markdown syntax to create either ordered or unordered lists.
Use bold and italic text for emphasis in your responses.
GitHub Username: ldinkins
Team name: gitpub
Today's date: 10-12-16
In this class we have worked with GitHub and Cloud9 primarily. Through these we have learned Markdown, HTML, CSS and some Linux.
I found learning about GitHub the most interesting and useful. I never knew what an open source site was like before and how it would be benefitial. Even if I never use it again learning about GitHub has expanded my tech vocabulary and understanding.
For me, learning Markdown and HTML has been the most difficult. It just doesn't come naturally to me to remember what each sysmbol does to change the text styles. I think Markdown and HTML have been the most difficult because it is so many little things to memorize. It's more like learning a whole new language. The git commands are more intuative.
When you are finished with the questions in file:


An object adapter is the mechanism that connects a request using an object reference with the proper code to service that request. The Portable Object Adapter, or POA, is a particular type of object adapter that is defined by the CORBA specification. The POA is designed to meet the following goals:
This document presents an introduction to using the POA with the Java SE. For a more complete description of the POA, see Chapter 11 of the CORBA 2.3.1 Specification.
The steps for creating and using a POA will vary according to the specific application being developed. The following steps generally occur during the POA life cycle:
Each step is described in more detail in the sections that follow.
Step 1: Get the root POA
The first step is to get the first POA, which is called the rootPOA. The root POA is managed by the ORB and provided to the application using the ORB initialization interface under the initial object name "RootPOA".
An example of code that will get the root POA object and cast it to a POA is:
ORB orb = ORB.init( args, null ); POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));Step 2: Define the POA's Policies
The Portable Object Adapter (POA) is designed to provide an object adapter that can be used with multiple ORB implementations with no rewriting needed to deal with different vendors' implementations.
The POA is also intended to allow persistent objects -- at least, from the client's perspective. That is, as far as the client is concerned, these objects are always alive, and maintain data values stored in them, even though physically, the server may have been restarted many times.
The POA allows the object implementer a lot more control over the object's identity, state, storage, and life cycle. You can create a POA without defining any policies and the default values will be used. The root POA has the following policies by default:
The following code snippet shows how policies are set in the RMI-IIOP (with POA) example:
Policy[] tpolicy = new Policy[3]; tpolicy[0] = rootPOA.create_lifespan_policy( LifespanPolicyValue.TRANSIENT ); tpolicy[1] = rootPOA.create_request_processing_policy( RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY ); tpolicy[2] = rootPOA.create_servant_retention_policy( ServantRetentionPolicyValue.RETAIN);
Each policy is discussed briefly in the following topics. For more information on POA policies, refer to Chapter 11, Portable Object Adapter of the CORBA/IIOP 2.3.1 Specification.
This policy specifies the threading model used with the created
POA. The default is ORB_CTRL_MODEL
.
The ThreadPolicyValue
can have the following
values:
ORB_CTRL_MODEL
- The ORB is responsible for
assigning requests for an ORB-controlled POA to threads.SINGLE_THREAD_MODEL
- Requests for a
single-threaded POA are processed sequentially.
(NOTE: This policy is not supported in the ORB
shipped with Java SE).This policy specifies the lifespan of the objects implemented in
the created POA. The default is TRANSIENT
.
The LifespanPolicyValue
can have the following
values:
TRANSIENT
- The objects implemented in the POA
cannot outlive the POA instance in which they are first
created.PERSISTENT
- The objects implemented in the POA
can outlive the process in which they are first created.This policy specifies whether the servants activated in the
created POA must have unique object identities. The default is
UNIQUE_ID
.
The IdUniquenessPolicyValue
can have the following
values:
UNIQUE_ID
- Servants activated with that POA
support exactly one Object Id.MULTIPLE_ID
- A servant activated with that POA
may support one or more Object Ids.This policy specifies whether Object Ids in the created POA are
generated by the application or by the ORB. The default is
SYSTEM_ID
.
The IdAssignmentPolicyValue
can have the following
values:
USER_ID
- Objects created with that POA are
assigned Object Ids only by the application.SYSTEM_ID
- Objects created with that POA are
assigned a unique object id by the POA. If the POA also has the
PERSISTENT
policy, assigned Object Ids must be unique
across all instantiations of the same POA.This policy specifies whether the created POA retains active
servants in an Active Object Map. The default is
RETAIN
.
The ServantRetentionPolicyValue
can have the
following values.
RETAIN
- to indicate that the POA will retain
active servants in its Active Object Map.NON_RETAIN
- to indicate Servants are not retained
by the POA.This policy specifies how requests are processed by the created
POA. The default is USE_ACTIVE_OBJECT_MAP_ONLY
.
The RequestProcessingPolicyValue
can have the
following values:
USE_ACTIVE_OBJECT_MAP_ONLY
- If the object ID is
not found in the Active Object Map, an
OBJECT_NOT_EXIST
exception is returned to the client.
The RETAIN
policy is also required.USE_DEFAULT_SERVANT
- If the object ID is not
found in the Active Object Map or the NON_RETAIN
policy is present, and a default servant has been registered with
the POA using the set_servant
operation, the request
is dispatched to the default servant.USE_SERVANT_MANAGER
- If the object ID is not
found in the Active Object Map or the NON_RETAIN
policy is present, and a servant manager has been registered with
the POA using the set_servant_manager
operation, the
servant manager is given the opportunity to locate or activate a
servant or raise an exception.This policy specifies whether implicit activation of servants is
supported in the created POA. The default value is
IMPLICIT_ACTIVATION
.
The ImplicitActivationPolicyValue
can have the
following values:
IMPLICIT_ACTIVATION
- Indicates implicit
activation of servants. This requires SYSTEM_ID
and
RETAIN
policies to be set.NO_IMPLICIT_ACTIVATION
- Indicates no implicit
servant activation.Creating a new POA allows the application developer to declare specific policy choices for the new POA and to provide a different adapter activator and servant manager (these are callback objects used by the POA to activate POAs on demand and activate servants). Creating new POAs also allows the application developer to partition the name space of objects, as Object Ids are interpreted relative to a POA. Finally, by creating new POAs, the developer can independently control request processing for multiple sets of objects.
A POA is created as a child of an existing POA using the create_POA operation on the parent POA. To create a new POA, pass in the following information:
childPOA
.The following code snippet shows how the POA is created in the Hello World: Persistent Server example.
// Create a POA by passing the Persistent Policy POA persistentPOA = rootPOA.create_POA("childPOA", null, persistentPolicy );
Each POA object has an associated POAManager
object
that controls the processing state of the POAs with which it is
associated, such as whether requests to the POA are queued or
discarded. The POAManager
can also deactivate the POA.
A POA Manager may be associated with one or more POA objects.
The POAManager
can have the following states:
The
POAManagerOperations
javadocs contain more information
on these states.
POA Managers are not automatically activated when they are
created. The following code snippet shows how the
POAManager is activated in the Hello World: Persistent Server
example. If the POA Manager is not activated in this way, all calls
to the Servant
will hang because, by default, the POA
Manager is in the HOLD
state.
// Activate PersistentPOA's POAManager. Without this step, // all calls to Persistent Server will hang because POAManager // will be in the 'HOLD' state. persistentPOA.the_POAManager().activate( );
The following information is quoted from section 11.2.5 of the CORBA Specification.
At any point in time, a CORBA object may or may not be associated with an active servant.If the POA has the RETAIN
policy, the servant and
its associated Object Id are entered into the Active Object Map of
the appropriate POA. This type of activation can be accomplished in
one of the following ways.
activate_object
or
activate_object_with_id
operations).set_servant_manager
.IMPLICIT_ACTIVATION
policy is also in effect and the
language binding allows such an operation), the POA may implicitly
activate an object when the server application attempts to obtain a
reference for a servant that is not already active (that is, not
associated with an Object Id).If the USE_DEFAULT_SERVANT
policy is also in
effect, the server application instructs the POA to activate
unknown objects by having the POA invoke a single servant no matter
what the Object Id is. The server application registers this
servant with set_servant
.
If the POA has the NON_RETAIN
policy, for every
request, the POA may use either a default servant or a servant
manager to locate an active servant. From the POA's point of view,
the servant is active only for the duration of that one request.
The POA does not enter the servant-object association into the
Active Object Map.
When using RMI-IIOP technology, your implementations use
delegation (known as the Tie model) to associate your
implementation with the interface. When you create an instance of
your implementation, you also need to create a Tie object to
associate it with a CORBA interface. The following code snippet
shows how to activate the Tie, if the POA policy is
USE_ACTIVE_OBJECT_MAP_ONLY
. This sample code is from
the RMI-IIOP with
POA example.
_HelloImpl_Tie tie = (_HelloImpl_Tie)Util.getTie( helloImpl ); String helloId = "hello"; byte[] id = helloId.getBytes(); tPOA.activate_object_with_id( id, tie );
The CORBA Specification discusses creating object references (section 11.2.4), activating objects (section 11.2.5), and processing requests (section 11.2.6) in more detail than is done in this document. Please refer to the CORBA 2.3.1 Specification for more information.
Step 6: Create the object referenceObject references are created in servers. Once created, they may be exported to clients. Object references encapsulate object identity information and information required by the ORB to identify and locate the server and the POA with which the object is associated. References are created in the following ways:
The following example is from Hello World: Persistent Server. This
example uses the servant_to_reference
operation to map
an activated servant to its corresponding object reference.
// Resolve Root Naming context and bind a name for the // servant. org.omg.CORBA.Object obj = orb.resolve_initial_references( "NameService" ); NamingContextExt rootContext = NamingContextExtHelper.narrow( obj ); NameComponent[] nc = rootContext.to_name( "PersistentServerTutorial" ); rootContext.rebind( nc, persistentPOA.servant_to_reference( servant ) );
The following example is from the RMI-IIOP with POA example. In this example, the following code directly creates a reference. In doing so, they bring the abstract object into existence, but do not associate it with an active servant.
// Publish the object reference using the same object id // used to activate the Tie object. Context initialNamingContext = new InitialContext(); initialNamingContext.rebind("HelloService", tPOA.create_reference_with_id(id, tie._all_interfaces(tPOA,id)[0]) );
The behavior can occur only if the POA has been created with the
IMPLICIT_ACTIVATION
policy, which is the default
behavior.
Once an reference is created in the server, it can be made available to clients. For more information on creating object references and exporting to clients, refer to section 11.2.4 of the CORBA 2.3.1 Specification for more information.
An adapter activator is optional. You would use an adapter activator if POAs need to be created during request processing. If all needed POAs are created when the application is executed, an adapter activator is not required.
An adapter activator supplies a POA with the ability to create
child POAs on demand, as a side-effect of receiving a request that
names the child POA (or one of its children), or when the
find_POA
method is called with an activate parameter
value of TRUE. The ORB will invoke an operation on an adapter
activator when a request is received for a child POA that does not
currently exist. The adapter activator can then create the required
POA on demand.
A request must be capable of conveying the Object Id of the target object as well as the identification of the POA that created the target object reference. When a client issues a request, the ORB first locates an appropriate server (perhaps starting one if needed) and then it locates the appropriate POA within that server.
If the POA does not exist in the server process, the application
has the opportunity to re-create the required POA by using an
adapter activator. An adapter activator is a user-implemented
object that can be associated with a POA. It is invoked by the ORB
when a request is received for a non-existent child POA. The
adapter activator has the opportunity to create the required POA.
If it does not, the client receives the
ADAPTER_NONEXISTENT
exception.
Once the ORB has located the appropriate POA, it delivers the request to that POA. The further processing of that request depends both upon the policies associated with that POA as well as the object's current state of activation.
For more information on Adapter Activators, refer to section 11.3.3 of the CORBA 2.3.1 Specification or the AdapterActivatorOperations API documentation.
Servant Managers are optional. You would use a servant manager to allow the POA to activate servants on demand when a request for an inactive object is received. If your server loads all objects when it starts up, you do not need a servant manager.
A servant manager is a callback object that the application developer can associate with a POA. The ORB will invoke operations on servant managers to activate servants on demand, and to deactivate servants. Servant managers are responsible for managing the association of an object reference (as characterized by its Object Id value) with a particular servant, and for determining whether an object reference exists or not. Each servant manager type contains two operations, the first called to find and return a servant and the second to deactivate a servant. The operations differ according to the amount of information usable for their situation.
To use servant managers, the USE_SERVANT_MANAGER
policy must be set. Once set, the type of servant manager used in a
particular situation depends on other policies in the POA. The two
types of servant managers are:
ServantActivator
When the POA has the RETAIN
policy, it uses servant
managers that are ServantActivators
.
This type is typically used to activate persistent objects.
ServantLocator
When the POA has the NON_RETAIN
policy, it uses
servant managers that are ServantLocators
. Because the
POA knows that the servant returned by this servant manager will be
used only for a single request, it can supply extra information to
the servant manager's operations and the servant manager's pair of
operations may be able to cooperate to do something different than
a ServantActivator
. When the POA uses the
ServantLocator
interface, immediately after performing
the operation invocation on the servant returned by preinvoke, the
POA will invoke postinvoke on the servant manager, passing the
ObjectId value and the Servant value as parameters (among others).
This feature may be used to force every request for objects
associated with a POA to be mediated by the servant manager.
This type is typically used to activate transient objects.
For more information on Servant Managers, refer to section 11.3.4 of the CORBA 2.3.1 Specification.
POAManager.activate() is required for a newly created POA if a null is passed for the POAManager parameter to POA::createPOA . If null is passed, a new POAManager is created and associated with the created POA. In this case, POAManager.activate() is needed.
To control several POAs with the same POAManager, you would:
There is no implicit relationship between the Root POA's POAManager and other POAs unless explicitly programmed by the programmer as shown above.
For more information, read section 11.3.2 of the CORBA specification, formal/99-10-07.


| Constants' Details |
| BIT
|
| TINYINT
|
| SMALLINT
|
| INTEGER
|
| BIGINT
|
| FLOAT
|
| REAL
|
| DOUBLE
|
| NUMERIC
|
| DECIMAL
|
| CHAR
|
| VARCHAR
|
LONGVARCHAR
const long LONGVARCHAR = -1;
|
|
| DATE
|
| TIME
|
TIMESTAMP
const long TIMESTAMP = 93;
|
|
| BINARY
|
VARBINARY
const long VARBINARY = -3;
|
|
LONGVARBINARY
const long LONGVARBINARY = -4;
|
|
| SQLNULL
|
OTHER
const long OTHER = 1111;
- Description
- indicates that the SQL type is database-specific and
gets mapped to an object that can be accessed via
the method
XRow::getObject()
.
|
|
OBJECT
const long OBJECT = 2000;
- Description
- indicates a type which is represented by an object which implements
this type.
|
|
DISTINCT
const long DISTINCT = 2001;
- Description
- describes a type based on a built-in type.
It is a user-defined data type (UDT).
|
|
STRUCT
const long STRUCT = 2002;
- Description
- indicates a type consisting of attributes that may be any type.
It is a user-defined data type (UDT).
|
|
ARRAY
const long ARRAY = 2003;
- Description
- indicates a type representing an SQL ARRAY.
|
|
BLOB
const long BLOB = 2004;
- Description
- indicates a type representing an SQL Binary Large Object.
|
|
CLOB
const long CLOB = 2005;
- Description
- indicates a type representing an SQL Character Large Object.
|
|
REF
const long REF = 2006;
- Description
- indicates a type representing an SQL REF, a referencing type.
|
|
BOOLEAN
const long BOOLEAN = 16;
- Description
- identifies the generic SQL type
*
BOOLEAN .
*
*
- Since
- OOo 2.0
|
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Toggle navigation
Todo App v1.0
Sign out
Tasks
{{task.title}}
{{completedTasks.length}} completed tasks
{{task.title}}
Complete
Assign to
Set due date
Remind me


| Unique identifier | Status | Date Published | Date Requested |
|---|---|---|---|
|
REVOKED
NOT VALID
OLD VERSION
PUBLISHED
DELETED
|
()
on
|
()
|


py2store.base¶
Forwards to dol.base:
Base classes for making stores. In the language of the collections.abc module, a store is a MutableMapping that is configured to work with a specific representation of keys, serialization of objects (python values), and persistence of the serialized data.
That is, stores offer the same interface as a dict, but where the actual implementation of writes, reads, and listing are configurable.
Consider the following example. You’re store is meant to store waveforms as wav files on a remote server. Say waveforms are represented in python as a tuple (wf, sr), where wf is a list of numbers and sr is the sample rate, an int). The __setitem__ method will specify how to store bytes on a remote server, but you’ll need to specify how to SERIALIZE (wf, sr) to the bytes that constitute that wav file: _data_of_obj specifies that. You might also want to read those wav files back into a python (wf, sr) tuple. The __getitem__ method will get you those bytes from the server, but the store will need to know how to DESERIALIZE those bytes back into a python object: _obj_of_data specifies that
Further, say you’re storing these .wav files in /some/folder/on/the/server/, but you don’t want the store to use these as the keys. For one, it’s annoying to type and harder to read. But more importantly, it’s an irrelevant implementation detail that shouldn’t be exposed. THe _id_of_key and _key_of_id pair are what allow you to add this key interface layer.
These key converters object serialization methods default to the identity (i.e. they return the input as is). This means that you don’t have to implement these as all, and can choose to implement these concerns within the storage methods themselves.


My name is Donald.
I live in Duckburg (will be selected).
My best friend is Mickey.
This p element is outside the div element.
This p element is also outside the div element.


{% extends "tutorial.html" %} {% block head %} {% endblock %} {% block browsersupport %} Operaunsupported Internet Explorerunsupported Safarisupported Firefoxunsupported Chromesupported {% endblock %} {% block content %}
If you're a web developer targeting the multi-device web, you likely have to test your sites and web apps across a number of different devices and configurations. Synchronized testing can help here and is an effective way to automatically perform the same interaction across a number of devices and browsers at the same time.
Synchronized testing can help solve two particularly time-consuming problems:
Thankfully if you have access to some of your target devices, there are a number of tools aimed at improving the flow from your desktop to your mobile devices. In this article, we will look at Ghostlab, Remote Preview, Adobe Edge Inspect and Grunt.
Ghostlab is a commercial Mac application ($49) designed to synchronise testing for sites and web apps across multiple devices. With minimum setup it allows you to simultaneously sync:
This makes testing your site's end-to-end user experience on multiple devices very straightforward. Once you've opened your page in a browser on your devices, any changes to navigation (including refreshes) cause any other connected devices to refresh instantly. Ghostlab supports watching local directories, so this refresh also happens when you save edits to local files, keeping everything in sync always!
I found setting up Ghostlab a painless process. To get started, download, install and run the trial (or full version if you're in the buying mood). You will then want to connect your Mac and the devices you wish to test to the same Wifi network so that they're discoverable.
Once Ghostlab is running, you can either click "+" to add a URL for testing or simply drag it from your browser's address bar. Alternatively, drag the local folder you wish to test over into the main window and a new site entry will be created. For this article, I'm testing a live version of http://html5rocks.com. Cheeky, eh? ; )
You can then kick-start off a new Ghostlab server by clicking the ">" play button next to the name of your site. This starts a new server, available at an IP address specific to your network (e.g http://<IP_ADDRESS>:8080).
Here, I've connected up a Nexus 4 and pointed Chrome for Android to the IP address Ghostlab gave me. That's all I have to do. Ghostlab doesn't require that you install a dedicated client per device like some other solutions and it means you can start testing even more quickly.
Any device you connect to the Ghostlab URL will be added to the list of connected clients in the sidebar to the right of the main Ghostlab window. Double-clicking the device name displays additional details such as the screen size, OS and so on. You should now be able to test navigating and synchronizing clicks! Yay.
Ghostlab is also able to display some stats about connected devices like the UA string, viewport width and height, device pixel density, aspect ratio and more. At any time, you can manually change the base URL you are inspecting by clicking the settings cog next to an entry. This opens up a configuration window that looks like the below:
I can now select one of my other connected devices, click on different links around HTML5Rocks and the navigation is synchronized both on my desktop Chrome (where I entered in the same Ghostlab URL) as well as across all of my devices.
What's even better is that Ghostlab has an option allowing you to proxy all links going through the network so that instead of a click on http://<IP_ADDRESS>:8080/www.html5rocks.com navigating to www.html5rocks.com/en/performance (for example), which would break the automatic cross-device refresh suffered by other solutions, it can just translate this link into http://<IP_ADDRESS>/www.htm5rocks.com/en/performance so that navigating is completely seamless across all my devices.
To enable, check "Load all content through Ghostlab" under the "Content Loading" tab.
Seeing it in action:
Ghostlab is capable of loading any number of sites or windows across any supported browser. This doesn't just let you test your site at different resolutions, but how your code behaves on different browsers and platforms. Yay!
Ghostlab allows you to configure the setup for the project workspace you're previewing and you can specify whether you would like changes to the directory to be watched and refreshed when detected. This means changes cause all connected clients to be refreshed. No more manual refreshes!
You may be wondering what else Ghostlab can help with. Whilst it's certainly not a swiss-army knife, it also supports remote code inspection on connected devices. Through the main interface, double-clicking on any device name should bring up a "debug" option which will launch a version of the Chrome DevTools for you to play around with.
Ghostlab makes this possible via the bundled Weinre remote web inspector, which lets you debug scripts and tweak styles on connected devices. Similar to the remote debugging experience available for Chrome for Android, you can select elements, run some performance profiling and debug scripts.
All in all, I was impressed with how quickly I was able to use Ghostlab for everyday testing across devices. If you're a freelancer, you might find the cost of the commerical license a little high (see below for more options). However, I'm happy to recommend Ghostlab otherwise.
Adobe Edge Inspect is part of the Adobe Creative Cloud subscription package, but also comes available as a free trial. It allows you to drive multiple iOS and Android devices with Chrome (via the Edge Inspector Chrome extension), so that if you browse to a particular URL all of your connected devices stay in sync.
To get set up, first sign up for an Adobe Creative Cloud account or login to an existing account if you already have one. Next, download and install Edge Inspect from Adobe.com (available for Mac and Windows at present, but not Linux - sorry!). Note the docs for Edge Inspect are useful to keep at hand.
Once installed, you'll want to get the Edge inspect extension for Chrome so that you can synchronize browsing between connected devices.
You will also need to install an Edge Inspect client on each device you wish to sync actions with. Thankfully clients are available for iOS, Android and Kindle.
With the installation process behind us, we can now start inspecting our pages. You'll need to make sure all your devices are connected to the same network for this to work.
Start up Edge Inspect on your desktop, the Edge Inspect extension in Chrome and
then the app on your devices (see below):
We can now navigate to a site like HTML5Rocks.com on desktop and our mobile device will automatically navigate to the same page.
In the extension, you'll also now see your device listed with a <> symbol next to it as in the screenshot below. Clicking this will launch an instance of Weinre allowing you to inspect and debug your page.
Weinre is a DOM viewer and console, and lacks features from the Chrome DevTools like JavaScript debugging, profiling, and network waterfall. While it is the bare minimum of developer tooling, it's useful for sanity-checking DOM and JavaScript state.
The Edge Inspect extension also supports generating screenshots from connected devices with ease. Useful for layout testing or just getting captures of your page to share with others.
For developers already paying for CC, Edge Inspect is a great solution. It does however come with a few caveats such as each device requiring a dedicated client to be installed and a little extra setup work that you may not find with an alternative like Ghostlab.
Remote Preview is an open source tool where you host HTML pages and content that you can display on multiple devices.
Remote preview executes an XHR call at an interval of every 1100ms to check if a URL in a configuration file has changed. If it finds that it has, the script updates the src attribute of an iframe loaded into the page for each device, loading the page into it. If there are no changes detected, the script will continue polling until a change is made.
This is great for chaining devices together and easily changing a URL across all of them. To get started:
Whilst a lo-fi solution, Remote Preview is free and works.
Grunt (and Yeoman) are command-line tools used for scaffolding and building projects on the front-end. If you're already using these tools and have live-reload setup, it's easy to update your workflow to enable cross-device testing where each change you make in your editor causes a reload in any of the devices you've opened up your local app on.
You're probably used to using grunt server
. When run from the root directory
of your project, it watches for any changes to your source files and
automatically refreshes the browser window. This is thanks to the
grunt-contrib-watch task which we run as part of the server.
If you happen to have used Yeoman to scaffold out your project, it will have
created a Gruntfile with everything you need to get live-reload working on your
desktop. To get it functioning cross-device, you just need to change one
property, which is the hostname
(on your desktop). It should be listed under
connect
. If you notice hostname
is set to localhost
just change it to
<IP_ADDRESS>. Next run grunt server
and as usual, a new window should open
displaying a preview of your page. The URL will probably look like
http://localhost:9000 (9000 is the port).
Fire up a new tab or terminal and use ipconfig | grep inet
to discover your
system's internal IP. It may look like <IP_ADDRESS>
. The last step is to open
up a browser like Chrome on the device you would like to synchronize livereloads
to and type in this IP address followed by the port number from earlier. i.e
<IP_ADDRESS>:9000
.
That's it! Live-reload should now cause any edits you make to source files on your desktop to trigger reloads in both your desktop browser and the browser on your mobile device. Awesome!
Yeoman also has a Mobile generator available which makes setting this workflow up a breeze.
Emmet LiveStyle is a browser and editor plugin that brings live CSS editing to your development workflow. It is currently available for Chrome, Safari and Sublime Text and supports bi-directional (editor to browser and vice-versa) editing.
Emmet LiveStyle doesn't force a complete browser refresh when you make changes, but instead pushes CSS edits across the DevTools remote debugging protocol. What this means is that you can see changes made in your desktop editor in any connected version of Chrome, whether it be on desktop Chrome or Chrome for Android.
LiveStyle has what it calls "multi-view mode", which is ideal for testing and tweaking responsive designs across windows and devices. In multi-view mode, all editor updates are applied to all windows as are DevTools updates for the same page.
With the LiveStyle package installed, to get started with live CSS editing:
Now the list of editor files will be automatically updated when you edit, create, open or close files.
Cross-device testing is still a new and fast moving space with many new contenders in development. Thankfully there exist a number of free and commercial tools for assuring your compatibility and testing across a wide number of device sets.
That said, there's still a lot of potential for improvement in this area and we would encourage you to think about how the tooling for testing across devices can be further improved. Anything that reduces setup time and improves your cross-device workflow is a win.
Perhaps the largest issues I ran into during testing with these tools was devices regularly going to sleep. This isn't a deal-breaker, but does get annoying after a while. Where possible it's a good idea to set your devices to not sleep as a workaround, however, keep in mind that this can drain your battery unless you're always plugged in.
I didn't personally run into any major issues with GhostLab. At $49 some may find the price a little steep; however, keep in mind if you're using it regularly it more or less pays for itself. One of the nicest things about the setup was not having to worry about installing and managing a client per target device. The same URL worked everywhere.
With Adobe Edge Inspect, I found having to install and use specific clients on each device a little bit tedious. I also found it didn't consistently refresh all of the clients connected up, meaning I had to do this myself from the Chrome extension. It also requires a subscription to Creative Cloud and is limited to loading up sites in the client rather than in a selected browser on your devices. This may limit your ability to accurately test.
Remote Preview functioned as advertised, but is extremely lightweight. This means for anything more than refreshing your site across devices, you'll need a more advanced tooling option. It won't for example, synchronize clicks or scrolls.
If you're looking for a free cross-platform solution to get you started, I recommend using Remote Preview. For those working in a company looking for a paid-for solution, GhostLab has been consistently excellent in my experience but is only available for the Mac. For Windows users, Adobe Edge Inspect is your best call and minus some quirks, does generally get the job done.
Grunt and LiveStyle are also excellent for augmenting your live iteration during development.
{% endblock %}


UserTheme
@objc(TKUserTheme)
public class UserTheme : NSObject, Theme
A Theme
class wrapping a user provided theme file (.theme
).
To enable user themes, set theme folder on ThemeManager.userThemesFolderURL
.
Notes about .theme
files:
- lines starting with
#
or//
will be treated as comments, thus, ignored; - non-comment lines consists on simple variable/value assignments (eg,
variable = value
); variable
name can contain characters[a-zA-Z0-9_-.]+
;- custom variables can be specified (eg,
myBackgroundColor = ...
); - theming properties match the class methods of
ThemeColor
,ThemeGradient
andThemeImage
(eg,labelColor
); - variables can be referenced by prefixing them with
$
(eg,mainBorderColor = $commonBorderColor
); - colors are defined using
rgb(255, 255, 255)
orrgba(255, 255, 255, 1.0)
(case insensitive); - gradients are defined using
linear-gradient(color1, color2)
(where colors are defined as above; case insensitive); - pattern images are defined using
pattern(named:xxxx)
(named images) orpattern(file:../dddd/xxxx.yyy)
(filesystem images); - images are defined using
image(named:xxxx)
(named images) orimage(file:../dddd/xxxx.yyy)
(filesystem images); ThemeManager.themes
property is automatically updated when there are changes on the user themes folder;- file changes are applied on-the-fly, if it corresponds to the currently applied theme.
Example .theme
file:
// ************************* Theme Info ************************* //
displayName = My Theme 1
identifier = com.luckymarmot.ThemeKit.MyTheme1
darkTheme = true
// ********************* Colors & Gradients ********************* //
# define color for `ThemeColor.brandColor`
brandColor = $blue
# define a new color for `NSColor.labelColor` (overriding)
labelColor = rgb(11, 220, 111)
# define gradient for `ThemeGradient.brandGradient`
brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
// ********************* Images & Patterns ********************** //
# define pattern image from named image "paper" for color `ThemeColor.contentBackgroundColor`
contentBackgroundColor = pattern(named:paper)
# define pattern image from filesystem (relative to user themes folder) for color `ThemeColor.bottomBackgroundColor`
bottomBackgroundColor = pattern(file:../some/path/some-file.png)
# use named image "apple"
namedImage = image(named:apple)
# use image from filesystem (relative to user themes folder)
fileImage = image(file:../some/path/some-file.jpg)
// *********************** Common Colors ************************ //
blue = rgb(0, 170, 255)
orange.sky = rgb(160, 90, 45, .5)
// ********************** Fallback Assets *********************** //
fallbackForegroundColor = rgb(255, 10, 90, 1.0)
fallbackBackgroundColor = rgb(255, 200, 190)
fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
With the exception of system overrided named colors (e.g., labelColor
), which
defaults to the original system provided named color, unimplemented properties
on theme file will default to -fallbackForegroundColor
, -fallbackBackgroundColor
,
-fallbackGradient
and -fallbackImage
, for foreground color, background color,
gradients and images, respectively.
-
Unique theme identifier.
Declaration
Swift
public var identifier: String
-
Theme display name.
Declaration
Swift
public var displayName: String
-
Theme short display name.
Declaration
Swift
public var shortDisplayName: String
-
Is this a dark theme?
Declaration
Swift
public var isDarkTheme: Bool
-
File URL.
Declaration
Swift
@objc public var fileURL: URL?
-
Reloads user theme from file.
Declaration
Swift
@objc public func reload()
-
Theme asset for the specified key. Supported assets are
NSColor
,NSGradient
,NSImage
andNSString
.Declaration
Swift
@objc public func themeAsset(_ key: String) -> Any?
Parameters
key
A color name, gradient name, image name or a theme string
Return Value
The theme value for the specified key.
-
Checks if a theme asset is provided for the given key.
Do not check for theme asset availability with
themeAsset(_:)
, use this method instead, which is much faster.Declaration
Swift
@objc public func hasThemeAsset(_ key: String) -> Bool
Parameters
key
A color name, gradient name, image name or a theme string
Return Value
true
if theme provides an asset for the given key;false
otherwise.


QUEM SOMOS
Puggorino very hand that feed shibe corgo puggorino, heckin good boys and girls very jealous pupper wow very biscit big ol, very taste wow he made many woofs.
APOIE
ADOTE
Doggo ipsum
Heck very good spot ruff very jealous pupper yapper, heckin long bois doing me a frighten. Doggo wow very biscit wrinkler pupper boofers you are doing me a frighten doing me a frighten, wrinkler puggo very hand that feed shibe super chub. - Pupperino extremely cuuuuuute shoober long doggo, long bois. - Pupperino extremely cuuuuuute shoober long doggo, long bois. - Pupperino extremely cuuuuuute shoober long doggo, long bois.
Cat ipsum
Milk the cow. Lounge in doorway sleep on keyboard ooooh feather moving feather! so stare at ceiling run outside as soon as door open. Don't nosh on the birds make muffins pooping rainbow while flying in a toasted bread costume in space, hiss and stare at nothing then run suddenly away and walk on car leaving trail of paw prints on hood and windshield.
ANIMALS
Cat ipsum
Mrow knock over christmas tree so pet me pet me pet me pet me, bite, scratch, why are you petting me.
Read more
Doggo ipsum
Puggo corgo ur givin me a spook many pats porgo, long bois many pats. Snoot corgo ur givin me a spook dat tungg tho shoober pupper.
Read more
Contato
Telefone:
+55 9 4213 1306
Email<EMAIL_ADDRESS>Endereço: Brasil, SP


Hello! I'm nod3rator (sometimes Teh_Sauce_Guy or talons1337). Here's some of the stuff I've done, or that I'm working on:


+++++++++[>++++++++<-]>.$+.$
Memory
Brainfuck Interpreter
>
Move pointer one memory location forward
<
Move pointer one memory location backward
+
Increment data at memory location by one
-
Decrement data at memory location by one
[
If memory location is 0, skip to ], else continue
]
If memory location is 0, continue, else skip to [
,
Read input character into memory location
.
Write output character from memory location
$
Memory dump for debugging
Enable memory dump symbol
Convert output to ASCII
Signed Memory
Block size (bytes):
Memory size (blocks):
×
Memory Dumps


X-Road: Message Transport Protocol
Technical Specification
Version: 2.4
04.03.2019
Doc. ID: PR-MESSTRANSP
Version history
| Date | Version | Description | Author |
|---|---|---|---|
| 01.07.2015 | 0.6 | Translated to English | Siim Annuk |
| 14.07.2015 | 0.7 | Total restructuring | Ilja Kromonov |
| 11.08.2015 | 0.8 | Comments added | Margus Freudenthal |
| 11.08.2015 | 0.9 | Fixes according to comments | Siim Annuk |
| 27.08.2015 | 1.0 | Minor improvements | Siim Annuk |
| 28.08.2015 | 1.1 | Comments and editorial changes | Margus Freudenthal |
| 28.08.2015 | 1.2 | More fixes according to comments | Siim Annuk |
| 31.08.2015 | 1.3 | Made minor editorial changes | Margus Freudenthal |
| 09.09.2015 | 2.0 | Editorial changes made | Imbi Nõgisto |
| 14.10.2015 | 2.1 | Changes added about HTTP headers and attachments. Ports 5500 and 5577 are default configuration. | Siim Annuk |
| 17.10.2015 | 2.2 | Anchored the figures in place | Margus Freudenthal |
| 01.03.2019 | 2.3 | X-Request-Id header | Caro Hautamäki |
| 04.03.2019 | 2.4 | Converted into Markdown | Caro Hautamäki |
Table of Contents
License
This document is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/
1 Introduction
This document describes the communications protocol that is used by service client's and service provider's security servers to exchange messages with each other.
1.1 Overview
Figure 1. Protocols used in the X-Road system
As can be seen from Figure 1, three protocols are involved when exchanging messages between a service client and a service provider. These include:
-
X-Road message protocol – used for communication between an information system and a security server within an organization (see PR-MESS for details). X-Road message protocol is a profile of the SOAP protocol (http://www.w3.org/TR/2000/NOTE-SOAP-20000508/).
-
X-Road message transport protocol – a synchronous secure communication protocol that provides confidentiality and integrity when exchanging messages between two security servers over the public Internet. This protocol is described in the current document.
-
OCSP Response Retrieval Protocol – the protocol used in parallel with the X-Road message transport protocol when establishing a secure communications channel between the service client's and the service provider's security servers (see Section 2.2 for details).
The communication protocol is divided into two layers (Figure 2) – the transport layer and the application layer. The transport layer uses HTTP over mutually authenticated TLS; see Section 2 for details on how the TLS session is established. The application layer consists of MIME multipart encoded X-Road transport messages that are exchanged over the transport layer (HTTPS); see Section 3 for the exact format of the message and how it's processed.
The service client's security server encapsulates the request message it receives from the service client into an X-Road transport message and in turn receives an X-Road transport message (message format described in Section 3.1) from the service provider's security server before forwarding the encapsulated response back to the service client (process described in detail in Section 3.2).
The service provider's security server receives the X-Road transport message from the service client's security server and forwards the encapsulated request message to the service provider. The service provider's security server encapsulates the response from the service provider into an X-Road transport message and sends it to the service client's security server (process described in detail in Section 3.3).
Chapters 2 and 3, as well as the annex of this specification contain normative information. All the other sections are informative in nature. All the references are normative.
This specification does not include option for partially implementing the protocol – the conformant implementation must implement the entire specification.
Figure 2. Layers of the X-Road message transport protocol
1.2 Terms and Abbreviations
See X-Road terms and abbreviations documentation [TA-TERMS].
1.3 References
-
[PR-SIGDOC] Freudenthal, Margus. Profile for High-Perfomance Digital Signature. Cybernetica Research Reports, T-4-23, 2015 https://cyber.ee/research/reports/
-
[BATCH-TS] Freudenthal, Margus. Using Batch Hashing for Signing and Time-Stamping. Cybernetica Research Reports, T-4-20, 2013 https://cyber.ee/research/reports/
-
[PR-MESS] Cybernetica AS. X-Road: Profile of Messages. Document ID: PR-MESS.
-
[TA-TERMS] X-Road Terms and Abbreviations. Document ID: TA-TERMS.
2 Transport Layer
2.1 TLS Authentication
Security servers use authentication certificates to initiate a mutually authenticated message exchange. Each security server's authentication certificate must be registered at the central server. The certification service provider that issued these certificates must be approved by the central server. Therefore, certificate chains constructed when authenticating the connection must include certificates up to the issuing certificate of the trusted certification service provider that is registered at the central server as an approved certification authority.
The process of establishing of a secure communication channel can be described by the following steps.
-
An X-Road request message arrives at the service client's security server.
-
Service client's security server processes the request and determines the target service provider's security server.
-
Service client's security server initiates the TLS handshake with the target service provider's security server on port 5500 (default configuration).
-
Service client's security server receives the authentication certificate chain of the service provider's security server as part of the TLS handshake.
-
Service client's security server checks if the local OCSP cache contains OCSP responses for the received certificates.
-
If the OCSP responses are not cached, the service client's security server must download them from the service provider's security server and cache them locally (see Section 2.2 for details).
-
Service client's security server verifies that the authentication certificate of the service provider's security server was issued by an approved certification service provider and builds the certification chain for the authentication certificate. The certification chain and corresponding OCSP responses are then verified.
-
If verification is successful, the service client's security server forwards the X-Road transport message to the service provider's security server. If verification failed, the service client's security server sends a SOAP Fault message back to the service client's information system.
-
Having received the X-Road transport message, the service provider's security server verifies the service client's authentication certificate chain using the global configuration.
This process is illustrated in the sequence diagram in Figure 3.
Figure 3. TLS authentication
2.2 Downloading OCSP Responses from Service Provider
Each X-Road security server only interacts with the CA that issued the certificates used by it. For this reason, the OCSP responses for certificates are always transferred together with the certificates themselves. The security servers cache the OCSP responses for their certificates and periodically update this cache.
The service client's security server sends the OCSP responses for authentication certificate as part of the request message. However, before sending the request the client's security server must verify service provider's security server's authentication certificate. Because the OCSP stapling specification is not widely implemented yet, the client's security server downloads the OCSP responses from the service provider's security server using a separate channel (HTTP).
Service provider's security server must respond to HTTP GET requests to port 5577 (default configuration). In the HTTP GET request the client's security server indicates the certificates whose OCSP responses are requested. For this, the client includes cert query parameters whose content is hexadecimally encoded SHA-1 hashes of the certificates. For example, the following URL is used to retrieve OCSP responses for two certificates:
http://SECURITYSERVER:5577/?cert=a1b2c3d4e5&cert=f6g7h8i9j0
where SECURITYSERVER is the address of the service provider's security server.
As a response to this request the service responds with a MIME multipart message (multipart/related
). Each part of this message must contain a requested OCSP responses with content-type application/ocsp-response
. See Annex 4.1 for an example response.
3 Application Layer
The integrity of transmitted message is ensured by signing the X-Road transport message in the security server. The signature can be either a regular signature or a batch signature. Batch signatures must be created for messages that contain attachments. If a signing key is located on a slow secure signature creation device then batch signatures may be used when signing many messages simultaneously. See [PR-SIGDOC] for more information about how signatures are created.
The X-Road message transport protocol is designed for streaming the message contents (e.g. attachments) between security servers. The signature can be calculated after the previous parts (e.g. attachments) of the transport message have been transferred to the other party. Streaming the message contents puts restrictions on how the signature of the transport message must be verified. The contents of the transport message must be cached in the security server before the signature of the message can be verified, because the verification result determines the validity of the message – the security server must not forward an invalid message to the other party.
3.1 X-Road Transport Message
Figure 4. X-Road transport messages
The X-Road transport messages are encoded as MIME multipart messages with content-type multipart/related
. The content-type of the client request message is sent from the service client's security server to the service provider's security server and vice versa using the x-original-content-type
HTTP header. The value of the original content type is used to forward the request or response message to the service provider's or service client's information system. All other HTTP headers sent by the service client's security server or service provider's security server are not preserved in the security server. MIME headers in the multipart message are preserved.
The X-Road transport message encapsulates either the SOAP message package that arrives to the security server or a SOAP fault message (uses content-type text/xml
instead of multipart/related
). The latter is only sent from the service provider's security server to the service client's security server if an error occurred before processing the request message in the service provider's security server. The normal X-Road request message must consist of the following MIME message parts (see Figure 4 The parts are mandatory unless stated otherwise):
-
byte contents of OCSP responses (content-type
application/ocsp-response
) of the service client's security server authentication certificate chain that was used to authenticate the TLS connection; -
the SOAP message (content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package); -
(optional) a nested MIME multipart (content-type
multipart/mixed
) containing all attachments as parts. This part is only present if the original SOAP message package contains attachments; -
(optional) if the signature is a batch signature, then:
a) the hash chain result XML (content-type
application/hash-chain-result
) andb) the hash chain XML (content-type
application/hash-chain
) of the signature. -
the signature XML (content-type
signature/bdoc-1.0/ts
) associated with the SOAP message and any attachments of the encapsulated message;
The normal X-Road response message must consist of the following MIME message parts (see Figure 4 The parts are mandatory unless stated otherwise):
-
the SOAP message (content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package); -
(optional) a nested MIME multipart (content-type `multipart/mixed) containing all attachments as parts. This part is only present if the original SOAP message package contains attachments;
-
(optional) if the signature is a batch signature, then:
a) the hash chain result XML (content-type
application/hash-chain-result
) andb) the hash chain XML (content-type
application/hash-chain
) of the signature. -
one of the following:
a) the signature XML (content-type
signature/bdoc-1.0/ts
) associated with the SOAP message and any attachments of the encapsulated message; orb) a SOAP fault XML (content-type
text/xml
), if any errors occurred during the processing of the message (i.e. error when creating signature). Since the previous parts of the message have already been sent to the other party, the SOAP fault must be sent as the last part.
3.2 Message Handling in Service Client's Security Server
The following describes the actions that the service client's security server must take in order to perform a secure message exchange between a service client and a service provider.
-
Receive a SOAP message or a SOAP message package (if attachments are present) from the service client (message format described in PR-MESS).
-
Parse the SOAP message to determine the target service provider.
-
Establish TLS connection with it's security server (see Section 2.1).
-
Send an X-Road transport message to the service provider's security server (message format described in Section 3.1) in the following steps:
a) Add the following HTTP headers to the HTTP headers of the HTTP request:
-
UUID (
x-road-request-id
). The id is shared between request/response pairs so one can easily find corresponding messages from logs if needed. -
Hash algorithm identifier (
x-hash-algorithm
). The hash algorithm is used by the other party to calculate the hashes of the message parts to be used during message verification. -
Original content type (
x-original-content-type
) of the request message.
b) Write an OCSP response part to the transport message (content-type
application/ocsp-response
) for each OCSP response in the authentication certificate chain used for establishing the TLS connection.c) Write the service client's request SOAP message (content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package) to the transport message. Calculate the hash of the request SOAP message.d) If the original request was a SOAP message package, write a nested MIME multipart (content-type
multipart/mixed
) containing all attachments as parts. Copy the MIME headers of each attachment part and calculate the hash of the data.e) Calculate the signature using the stored message and attachment hashes in accordance with [PR-SIGDOC, BATCH-TS]. Write the signature as the last part of the message (content-type
signature/bdoc-1.0/ts
). -
-
Start reading a response from the target service provider's security server (message format described in Section 3.1.
-
If the content-type of the response is
multipart/related
then process the message parts as follows:a) The first part must be the encapsulated SOAP response message with content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package. The message is not forwarded to the service client until it can be verified.b) If the content-type of the next part is
multipart/mixed
then this part is the nested attachments multipart.c) If the content-type of the next part is
application/hash-chain-result
then this message contains a batch signature. The hash chain result is stored for message verification.d) If the content-type of the next part is
application/hash-chain
then this message contains a batch signature. The hash chain is stored for message verification. The hash chain result must be present if the hash chain is present.e) If the content-type of the last part is
signature/bdoc-1.0/ts
then the part contains the signature of the message. If the content-type of the part istext/xml
then the part contains a SOAP fault indicating that an error occurred during the processing of the message in the service provider's security server and it must be returned to the service client.
If the content-type of the response is text/xml
then an error occurred at the service provider's security server and the received SOAP Fault must be returned to the service client. In case of any other content-type, the response is malformed and a corresponding SOAP Fault must be returned to the service client.
-
Verify the response message using the stored message hash, attachment hashes, and signature in accordance with [PR-SIGDOC, BATCH-TS].
-
Send the service provider's encapsulated response SOAP message (or a SOAP message package in case the response has attachments) to the service client.
Figure 5. Message processing on service client's side
3.3 Message Handling in Service Provider's Security Server
The following describes the actions that the service provider's security server must take in order to perform a secure message exchange between a service client and a service provider.
-
Establish TLS connection with the service client's security server (see Section 2.1).
-
Start reading the X-Road transport message from the service client's security server (message format described in Section 3.1).
-
The content-type of the request message must be
multipart/related
. The security server must process the message parts as follows:a) Read all the parts with content-type
application/ocsp-response
. These parts contain OCSP responses that must be used in when verifying the authentication certificate chain of the service client's security server.b) The part that comes after OCSP responses must have the content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package, this part is the encapsulated SOAP request message. The message is not forwarded to the service provider until it can be verified.c) If the content-type of the next part is
multipart/mixed
then this part is the nested attachments multipart.d) If the content-type of the next part is
application/hash-chain-result
then this message contains a batch signature. The hash chain result is stored for message verification.e) If the content-type of the next part is
application/hash-chain
then this message contains a batch signature. The hash chain is stored for message verification.f) If the content-type of the last part is
signature/bdoc-1.0/ts
then the part contains the signature of the message. If the content-type of the last part istext/xml
then the part contains a SOAP fault indicating that an error occurred during the processing of the message in the service client's security server. -
Verify the request message using the stored message hash, attachment hashes, and signature in accordance with [PR-SIGDOC, BATCH-TS].
-
Send the encapsulated SOAP message and any attachments to the target service provider.
-
Start reading a response from the target service provider (message format described in PR-MESS).
-
Send an X-Road transport message to the service client's security server (message format described in Section 3.1) in the following steps:
a) Add the following HTTP headers to the HTTP headers of the HTTP request:
-
Hash algorithm identifier (
x-hash-algorithm
). The hash algorithm is used by the other party to calculate the hashes of the message parts to be used during message verification. -
Original content type (
x-original-content-type
) of the request message.
b) Write the service provider's response SOAP message (content-type
text/xml
orapplication/xop+xml
in case the original message is a MTOM-encoded SOAP message package). Calculate the hash of the response SOAP message to be used when creating the signature.c) If the response from the service provider was a SOAP message package, write a nested MIME multipart (
multipart/mixed
) containing all attachments as parts. For each part, calculate the hash of the data to be used when creating the signature.d) Calculate the signature using the stored message and attachment hashes in accordance with [PR-SIGDOC, BATCH-TS]. Write the signature as the last part of the message (content-type
signature/bdoc-1.0/ts
). -
Figure 6. Message processing on service provider's side
4 Annex: Example Messages
All the example messages only contain the relevant HTTP headers (content-type) and the headers of the MIME parts. The contents of the MIME parts are omitted for brevity.
4.1 Response to OCSP Downloading Request
Content-Type: multipart/related; charset=UTF-8; boundary=jetty625909216ic7gfi1u
--jetty625909216ic7gfi1u
Content-Type: application/ocsp-response
...bytes of the ASN.1-encoded OCSP response...
--jetty625909216ic7gfi1u--
4.2 Simple Request
Content-Type: multipart/related; charset=UTF-8; boundary=xtop1357783211hcn1yiro
--xtop1357783211hcn1yiro
Content-Type: application/ocsp-response
...ocsp response...
--xtop1357783211hcn1yiro
Content-Type: text/xml ; charset=UTF-8
...request SOAP...
--xtop1357783211hcn1yiro
Content-Type: signature/bdoc-1.0/ts
...signature XML...
--xtop1357783211hcn1yiro--
4.3 Simple Response
Content-Type: multipart/related; charset=UTF-8; boundary=xatt569125687hcu8vfma
--xatt569125687hcu8vfma
Content-Type: text/xml ; charset=UTF-8
...response SOAP...
--xatt569125687hcu8vfma
Content-Type: signature/bdoc-1.0/ts
...signature XML...
--xatt569125687hcu8vfma--
4.4 Request with Attachments
Content-Type: multipart/related; charset=UTF-8; boundary=xtop1357783211hcn1yiro
--xtop1357783211hcn1yiro
Content-Type: application/ocsp-response
...ocsp response...
--xtop1357783211hcn1yiro
Content-Type: text/xml; charset=UTF-8
...request SOAP...
--xtop1357783211hcn1yiro
Content-Type: multipart/mixed; charset=UTF-8; boundary=xtop569125687h3h10du0
--xtop569125687h3h10du0
Content-Type: text/plain; charset=UTF-8
Content-Location: attachment.txt
...attachment data...
--xtop569125687h3h10du0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Id: <data.bin>
...attachment data...
--xtop569125687h3h10du0 --
--xtop1357783211hcn1yiro
Content-Type: application/hash-chain-result
...hash chain result XML...
--xtop1357783211hcn1yiro
Content-Type: application/hash-chain
...hash chain XML...
--xtop1357783211hcn1yiro
Content-Type: signature/bdoc-1.0/ts
...signature XML...
--xtop1357783211hcn1yiro--
4.5 Response with Fault as Last Part
Content-Type: multipart/related; charset=UTF-8; boundary=xatt569125687hcu8vfma
--xatt569125687hcu8vfma
Content-Type: text/xml; charset=UTF-8
...response SOAP...
--xatt569125687hcu8vfma
Content-Type: text/xml; charset=UTF-8
...SOAP fault...
--xatt569125687hcu8vfma--


[§328E-1 Purpose.] The purpose of this chapter is to restrict the sale and use in the State of certain compounds which induce an intoxicated condition in the user. [L 1970, c 204, §1]


Melbourne Stratco Carports, Pergolas, Verandahs, and Patios
Innovative Verandahs services the Melbourne area and outer Melbourne suburbs. Innovative Verandahs can provide great advice and installs quality verandas, pergolas, carports and patios for satisfied customers all over the Melbourne region.
Located at Hillside, Melbourne Western Suburbs
Innovative Verandahs service all parts of Melbourne and surrounding areas up to 50 kilometres from the centre of Melbourne.
Innovative Verandahs
- Address: 12 Beattys Road,Hillside, Melbourne, Victoria3037
- Contact: Shane Spiteri
- Email<EMAIL_ADDRESS>- Mobile:<PHONE_NUMBER>
- Hours: Mon-Sat 8:00am - 5:00pm
- Carport
- Pergola
- Verandah
- Patio
- Gazebo
- Outdoor living designs
Request a quote and book a free consultation
Get a quote for a new veranda, carport, pergola or patio in the Melbourne area


Limbo
Some items do not appear in the game. These may be unused or reserved for special occaisons.
Mobiles
Items


| Methods' Details |
getChildAt
- Description
- Returns the child tree node at Index.
- Throws
- ::com::sun::star::lang::IndexOutOfBoundsException
if Index is less than 0 or equal or greater then getChildCount.
|
|
getChildCount
- Description
- Returns the number of child nodes.
|
|
getParent
- Description
- Returns the parent node of this node.
|
|
getIndex
- Description
- Returns the index of Node in this instances children.
- Returns
- The child index of Node , or -1 if Node is no child of this instance.
|
|
hasChildrenOnDemand
| boolean |
| hasChildrenOnDemand(); |
- Description
- Returns true if the children of this node are created on demand.
A TreeControl will handle a node that returns true always
like a node that has child nodes, even if getChildCount
returns 0.
- See also
- TreeExpansionListener;
|
|
getDisplayValue
- Description
- If not empty, the textual representation of this any is used as the text part of this node.
|
|
getNodeGraphicURL
| string |
| getNodeGraphicURL(); |
- Description
- The URL for a graphic that is rendered before the text part of this node.
If this URL is empty, no graphic is rendered.
|
|
getExpandedGraphicURL
| string |
| getExpandedGraphicURL(); |
- Description
- The URL for a graphic that is rendered to visualize expanded non leaf nodes.
If URL is empty, XTreeControl::DefaultExpandedGraphicURL is used.
|
|
| getCollapsedGraphicURL
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


How a fintech company ended up next to Skid Row
A sickly-looking man, walking like a zombie, crossed my path in the middle of the road as I drove through Skid Row to get to office. While waiting for him to pass, I looked to the left and only to find more disturbing scenes: a few homeless people in a tent shooting drugs up their arms and a soup kitchen filled with people whose despair-stricken eyes were staring right back at me.
But it didn’t matter. I parked my car and went straight to work.
A homless Person in Skid Row
Every morning, I drive through Skid Row to get to my office. I used to find it disgusting but now I’m sort of numbed to it. Even though it is not so pleasant, our current office location offered some tactical advantages for us. This essay discusses how a startup should be thinking about its early office locations and why it makes sense for us to be where we are today.
How to find your first office location
For technology startups in its infancy stage, a good place to consider is your home or garage. It is a no brainer; there is no cost involved and definite it would save a ton of time from commuting. This would be suitable for a founder who is comfortable with the idea of working from and living in your home. I have heard from people that this could be either very distracting or very efficient. It really depends on the person.
However, if a startup were growing rapidly and you needed to have a team in your home or garage, this is less than ideal. The formality, or lack thereof, can sometimes be problematic. I have witnessed situations where employees came to their boss’s home to work but saw the boss in his pyjamas. How awkward! Moreover, noises and unfocused discussions tend to get out of control when there are more people in a small tight space.
We went through this phase in the beginning when our company first relocated to Los Angeles. It’s cost-effective but informal. The downside is that we did not have a presentable space to meet customers.
Now if you have some money to lease a small space, read on here
A next natural choice, if you have some capital to spare, is to situate the company inside one of those co-working spaces. This is often very convenient and inexpensive. There are nice conference rooms that you could use if you needed to have meetings with external partners or customers. Usually, these places have a good vibe and communities tend to form. Therefore, it would be a great place to get external feedback from others – this helps tremendously with product iteration, to say the least. The best part about working at these space is that you don’t need to worry about basic utility bills and wifi. You can just pay as your team expand and your company require more room. Sometimes, there is even free-flowing coffee and beer!
We moved to a more traditional, on-demand office space rentals right after our first funding. It was nice, clean and very professional. Although lack the community feel of a more modern co-working space such as WeWork, we still think it’s a good fit for us at that stage. The receptionist staff was very presentable and courteous. We could rent out the boardroom by the hours for meetings with potential investors or town hall meetings with staff. My only complaints were the occasional terrible wifi speed and their nickel-and-diming each and every expense. In any case, the corporate image we presented through this rental office was fitting to our brand at that point in time.
One good alternative is to look for incubator programs out there which grants free physical space if you were accepted into their programs. This would be an excellent opportunity to build out your human network and meet more people, in addition to getting free rental. In my previous company, I took this approach with a startup in Beijing.
So, does that mean you should not get your own space? NO! The problem with not graduating from these co-working space is that things become more complex with a larger team. Under these circumstances, you would need to be really good at controlling your company image, organizing your team around the given space and ensuring computer servers and equipment sit properly behind YOUR OWN firewall. All these things would be immensely harder to manage if you were to work within the confines of a co-working space (I mean, you could do it but you would need to shell out big bucks to pay the co-working company so that they can customize things for you). Therefore, it still makes sense to do some research to find your own space eventually.
Having your own office is a dream come true
Office Front
View from coffee shop No Ghost Bears nearby
A major consideration would be affordability. We just went through this exercise and this was how we did it. During our initial search, we reviewed properties in LA tech hubs. We balked at the idea of paying high rents at prime estates at some of these places (Venice, Santa Monica and Pasadena). We needed to have a flexible space which we could expand if we needed to. After searching high and low, we ended up looking at downtown Los Angeles. There is a diverse choice of real estates to choose from; major banks and big firms are typically in the high rises on the west, homeless shelters and soup kitchens on the east (Skid Row) and lofts for young, creative people nestled in between. After doing a little shopping, we settled for something next to Skid Row and it turned out to be wonderful!
The location we picked was situated on the edge of a up-and-coming Fashion District. There were a couple of remodeled apartment nearby so a lot of young people live in the vicinity. Naturally, lunch spots nearby were fabulous (especially Mexican food). Our rent turned out to be very reasonable and we were given a giant loft space. Based on our design request, our landlord partitioned the office into several areas with see-through conference rooms. We also had a sink put in so employees could prepare their lunches. Our office was initially very barren so we had several team building activities to help decorate and make the office feel warm. The building came with rooftop access so one could go upstairs to get a change of scene if needed.
How does all this make sense for us
One major positive impact that we felt right away was that recruiting became a lot easier. Even though Los Angeles is a sprawling city, downtown Los Angeles is still quite central and totally accessible by car, bus and train. Not to mention USC and UCLA were not too far from us, which made it perfect to hire interns.
More importantly, being in this location lets us get a lot closer to our clients. Many of our clients have shops in our neighborhood. The simple gestures of walking by and saying hello can do wonders in terms of understanding their needs and building on that relationship. There is no better way to understand your customers than by being in their proximity.
On the flip side, there are distasteful things we had to live with. The scenery changes drastically as soon as you walked a block south west from here.  “Un-Pleasantville” is literally right next door. The other thing I dislike a lot is that young people who live nearby like to walk their dog without picking up after themselves.
At the end of the day, by being close to our customers and working next to a terrible neighborhood humbly reminds that we still have a lot of work to do in order to make a dent in the universe. That’s the best blessing in disguise which I am sure would help us in the days to come as we continue to grow.


Borno govt to rehabilitate 42-year Maiduguri zoological garden
by Agency ReportThe Borno State Commissioner of Environment, Kabiru Wanori, on Friday, announced plans by the state government to rehabilitate the 42-year Maiduguri Zoological Garden.
Wanori told the News Agency of Nigeria in Maiduguri that the zoological garden would be restocked and upgraded, in line with international standard.
He disclosed that the state government had adopted proactive measures to reinvigorate the garden, encourage tourism development and boost its revenue base.
Wanori explained that the moribund zoological garden would be stocked with various animal species of reptiles, monkeys, cats and birds, among others.
“Some of the ageing animals, such as lions, monkeys, hyenas, elephants and leopards were not replaced in the past.
“The zoological garden lost some of its precious animals, including buffaloes, rhinos and giraffes. We have a special place where their biographies are kept for interested visitors.
“Rehabilitation of the zoological garden will encourage wildlife conservation, tourism, generate employment opportunities and boost the state revenue base,” Wanori said.
He noted that the number of visitors to the zoo had dropped drastically in the last 10 years due to the lack of animals and insurgency.
The commissioner added that the rehabilitation effort would lead to the upgrade of the zoological garden and enhance its operations.
(NAN)


The data indicates that the most humid places on Earth with (100% humidity) are located between -40 and 80 degrees latitude. The poles do not experience 100% humidity, but nearly everywhere else on Earth shows a range between 20% and 100% humidity.


Currently offline. Want to connect?
Log Out Currently offline. Want to connect?
Currently offline. Want to connect? Log Out Back to Chat Thread list


This page contains a JavaScript program which will generate a truth table given a well-formed formula of sentential logic. You can enter multiple formulas separated by commas to include more than one formula in a single table (e.g. to test for entailment). Tables can be displayed in html (either the full table or the column under the main connective only), plain text (for pasting into a text document), or LaTex. You can also select which pair of symbols to use for the two truth values.
|
Select Truth Value Symbols:
T/F⊤/⊥ 1/0 Select Truth Operator Symbols:
DefaultCmput272 C-style boolean logic |
Select Type of Table:
Full TableMain Connective Only Text Table LaTex Table |
Symbols: use the following symbols for the various logical connectives:
| ~ | for negation |
| & | for conjunction |
| v | for disjunction |
| > | for the conditional |
| < > | for the biconditional |
| # | for absurdity/falsum |
| | | for the Sheffer Stroke, aka NAND |


Valentine Wrap
The February special sandwich is the Valentine Wrap — heart-healthy organic chicken with roasted red peppers on a whole wheat wrap.
The February special sandwich is the Valentine Wrap — heart-healthy organic chicken with roasted red peppers on a whole wheat wrap.
Enjoy the best coffee on the coast in the comfort of your home. We will feature a different flavor of our gourmet, locally roasted coffee each day with free bistro tastings and a discount on one-pound bags.


You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Issues
| # | Summary | Product | Status | Kind | When |
|---|---|---|---|---|---|
| 1548 |
Get automated log analysis working again |
wincent.com | closed | bug | Created , updated |
| 1547 |
Two floaters on Synergy |
Synergy | closed | bug | Created , updated |
| 1546 |
Issue filtering doesn't work when logged in |
wincent.com | closed | bug | Created , updated |
| 1545 |
Vim Seg faults with c-t built. |
Command-T | closed | bug | |
| 1544 |
Trial Google Analytics |
wincent.com | closed | feature request | Created , updated |
| 1543 |
probleme pour registrer mon produit synergy |
Synergy | closed | support ticket | Created , updated |
| 1542 |
wildignore settings not working |
Command-T | closed | bug | Created , updated |
| 1541 |
"Learn" from previous selections |
Command-T | open | feature request | Created , updated |
| 1540 |
Update to Rails 3 |
wincent.com | closed | feature request | Created , updated |
| 1539 |
Make product model taggable |
wincent.com | open | feature request |


Name: {{ client.first_name }} {{ client.last_name}}
Nickname: {{client.nick_name }}
-
Incomplete Requests{% if requests %}{% else %}
-
{% for request in requests %}
- {{ request.item.name }} {% endfor %}
No requests
{% endif %} -
Quick Info
-
{% if client.is_military%}
- Served In The Military {% endif %} {% if client.health_concerns%}
- Has Health Concerns {% endif %} {% if client.dna_assistance%}
- Needs DNA Assistance {% endif %} {% if client.has_doctor%}
- Has A Doctor {% endif %} {% if client.has_insurance%}
- Has Insurance {% endif %}
- Duration of Homelessness: {{ client.duration_of_homelessness }} Yr
-
Story
{{ client.story }}


BELMONT, N.C. — Amy Brown walks into her kitchen every morning to prepare breakfast for her 2 young sons. Oatmeal is a favorite in their home, so she grabs a 20-ounce bottle of water from one of the many crates around her home, in order to prepare the morning meal.
For the past 20 months, Brown and her family have not been able to drink or cook with their water due to high levels of arsenic and hexavalent chromium found in their well.
“Normally, you would have taken your pot and filled it up under the sink. We can’t do that, so we have to open up this 20-ounce bottle just to start breakfast,” Brown said. “And my children know now, not to even turn on the faucet when they go to brush their teeth. They open up 20-ounce bottles to do all of that.”
Brown received a “Do not Drink” from the North Carolina Department of Environmental Quality on April 18, 2015. Her well had been tested by the state, and the results showed that she should not drink or cook with her water. She immediately started making calls to figure why.
“If my well was tested because of how close I live [to a coal ash pond], then this isn’t my fault, I didn’t do anything,” she said. “Therefore, someone needs to provide my family with bottled water, something that I don’t have to fear when I’m cooking my family meals.”
At this time, Duke Energy was in the process of conducting more rigorous testing in that area per the mandate in the Coal Ash Management Act of 2014.
“We were in the process of just beginning the intensive testing that was going to be needed to fulfil the requirements of the state law. And those reports were not finished yet,” Duke Energy representative Erin Culbert said. “Based on the data that we had seen historically, we did not believe that our facilities had any impact on neighbors’ wells.”
Brown continued to call Duke Energy until May 7, 2015 when she demanded to speak to a manager by the end of that day.
“Thursday night, I was on the ball field with my older son in Charlotte and it was getting close to 9 o’clock and my phone rings. And it was the boss over the Charlotte area for Duke Energy, called me from home,” she said.
Tim Gause, the Charlotte region director for government and community relations at Duke Energy, spoke about Brown’s problem and her feelings about the situation. Then, according to Brown, Gause said by giving her family water, the company was taking a risk.
“I quickly let him know what my thoughts on risk were. And that is what about the potential health risk of my children who have been and are being exposed to cancer-causing water,” Brown said. “We’re over here worried about the water that we’re being exposed to and wondering is it safe for our children to take a bubble bath, that’s the difference in how you explain risk and I explain risk.”
Brown said she told Gause he had until Monday morning, May 11, to provide her family with bottled water. And on Monday morning, it was delivered.
Brown has remained an outspoken advocate for her community and those affected by coal ash. She started by hosting community meetings to educate the community on the issue of coal ash. In these meetings, they got information from various riverkeepers, got feedback from affected community members, and even got Duke Energy to speak with them.
Duke Energy said their facilities haven’t had any impact on neighbors’ wells. Culbert said the thorough testing completed in late 2015 confirmed this assertion.
“We continued to see no indication that our ash basins were impacting their wells, and that still remains true today,” she said.
But 20-ounce bottles of water are still an unwelcomed guest in Brown’s home.
“What will your children’s childhood memories be when they grow up? Mine will have the memory of when we lived off of bottled water and what they couldn’t do and how we had to live our lives,” she said.
Culbert said House Bill 630 is the solution for people like Brown who are have been living off of bottled water. The bill requires Duke Energy to provide a permanent source of water for everyone within a half mile radius of these coal ash ponds. The company has until Dec. 15 to propose their water solutions to the state. Then, they will go to the community.
“Community choice and involving those residents is a big part of this process. So we will provide those options back to neighbors and they will have an opportunity to indicate their selection,” Culbert said.
The bill gives Duke Energy until October 2018 to provide these residents with a permanent source of water. Brown said that is too much time. She calls HB 630 the “negotiated bill,” and said it has more downsides than benefits.
“[Duke] can do better than that, especially where I live and the water lines are already there,” she said.
In addition to the timeline, Brown opposes the option for the cap-in-place method in the bill. She said these pits are unlined and seeping into the groundwater behind her home, and that’s not safe.
As a result of the bill, Duke Energy has agreed to excavate the coal ash from eight of the 14 ponds in North Carolina. Culbert says the company has made the most sensible decision at each location based on the science and engineering.
“I think we can all agree that keeping the material on the plant property itself is really the best option,” Culbert said. “Because otherwise you’re looking for a lot more disposal locations and you have so much transportation needed to be able to move the material to new sites and new locations.”
Still, Brown wants the pond at Allen Steam Station, 1,000 feet away from her home, to be the ninth pond excavated. And she won’t stop until Duke Energy agrees.
“I don’t expect them to clean it up in five, ten, 15 years, I know it’s going to take a long time. I just need them to commit to cleaning it up,” she said. “You can’t tell me my pits are less toxic than the other eight facilities that are going to get cleaned up.”
Until then, she will keep on fighting for her children and their safety.
“No one will fight for my children the way that I will,” she said. “And I am the best teller of my story, and that is why I will continue.”


10.11 How Do I ...
New Squid users often ask the same, or similar, questions about
getting Squid to forward requests in the right way. Here
I'll show you how to configure Squid for some common
scenarios.
10.11.1 Send All Requests Through Another Proxy?
You simply need to
define a parent and tell Squid it
isn't allowed to connect directly to origin servers.
For example:
cache_peer parent.host.name parent 3128 0
acl All src 0/0
never_direct allow All
The drawback to this configuration is that Squid
can't forward cache misses if the parent goes down.
If that happens, your users receive the "cannot
forward" error message.
10.11.2 Send All Requests Through Another Proxy Unless It's Down?
 Using ICP should cause Squid to detect
a dead parent quickly, but at the same time may incorrectly declare
the parent dead on occasion.
10.11.3 Make Sure Squid Doesn't Use Neighbors for Some Requests?
Define an ACL to match the special request:
cache_peer parent.host.name parent 3128 0
acl Special dstdomain special.server.name
always_direct allow Special
In this case, cache misses for requests in the special.server.name domain are always sent to
the origin server. Other requests may, or may not, go through the
parent cache.
10.11.4 Send Some Requests Through a Parent to Bypass Local Filters?
Some ISPs (and other organizations) have upstream providers that
force HTTP traffic through a filtering proxy (perhaps with HTTP
interception). You might be able to get around their filters if you
can use a different proxy beyond their network.
Here's how you can send only special requests to the
far-away proxy:
cache_peer far-away-parent.host.name parent 3128 0
acl BlockedSites dstdomain www.censored.com
cache_peer_access far-away-parent.host.name allow BlockedSites
never_direct allow BlockedSites
|


Saintes-Maries
is the subject of a series of paintings that Vincent van Gogh made in 1888. When Van Gogh lived in Arles, he took a trip to Saintes-Maries-de-la-Mer on the Mediterranean Sea, where he made several paintings of the seascape and town. In June 1888, Van Gogh took a 30-mile stagecoach trip from Arles to the sea-side fishing village of Saintes-Maries-de-la-Mer on the coast of the Mediterranean Sea.
Bedroom in Arles
is the title given to each of three similar paintings by 19th-century Dutch Post-Impressionist painter Vincent van Gogh. Van Gogh's own title for this composition was simply The Bedroom (French: La Chambre à coucher). There are three authentic versions described in his letters, easily distinguishable from one another by the pictures on the wall to the right.
Skull of a Skeleton with Burning Cigarette
is an early work by Vincent van Gogh. The small and undated oil-on-canvas painting featuring a skeleton and cigarette is part of the permanent collection of the Van Gogh Museum in Amsterdam. It was most likely painted in the winter of 1885–86 as a satirical comment on conservative academic practices.


I'm currently working in National Grid. I mainly work with my client to analyze data or build up an end-to-end system to automate the whole process.
Prior to this, I majored in data science in Center for Data Science, NYU. My main interest and research focus on Machine learning, deep learning especially in theorem and application of NLP, Adversarial Network, transfer learning.
I also worked as research intern in AIG Inc. with computer vision group in 2016. I implemented a new method to extract important information from a pretrained model, which is proven to be much better than the previous one after several experiments.
I received my honored B.S in Computational Mathematics from Nanjing University. During that time, I mainly worked with Professor Zhang Qiang in numerical solution of partial differential equation (PDE).
I am now working in National Grid as data scienctist. -- Since 09/2017
Use collision event data from CERN to produce an auto-encoder to compress data. The data is 3-D tensor while the index represent the location of the energy detector and the value represent the energy. The challenge is that this noisy data has 14400 dimension and we need to preserve the most relevant part and thus reduce the noise. The compress ratio is 32:14400.
Compare three compressors: Multilayer perceptron auto-encoder, convolutional auto-encoder and PCA. We evaluate them by two ways. One is calculating the reconstruction error and the other is apply reconstructed data in real application to see its performance.
Add threshold RELU on the last layer to make the output sparse. We find that multilayer perceptron is the best auto-encoder because it has over 0.95 AUC score between the reconstruction data and the original data. Also unlike PCA, it does not focus on the biggest value but indeed extract the hidden factor via our training process.
We use this technique to do anomaly detection. We compare the mean square error between the normal one and the abnormal one. And we find that multilayer perceptron performs best in this case.
This work is part of Kyle Cranmer work, which is presented in NIPS 2016.
Use the data from health care system to predict possible duplication of information. The challenge is that the whole pair set is around 10^11, which is time consuming if we build the model on it. And it is also not a balanced dataset because in ground truth we only have around 120,000 pairs.
Construct an efficient parallel method to get a smaller set of interesting pairs, which we think that they are duplication. The processing time is 10 minutes using 8 workers on CPU. After this process, we reduce the pair set from 10^11 to 3700k. Then we generate a balanced training set by randomly select same number negative pairs (pairs that are not duplication) as the positive pairs (pairs that are duplication). Then we use a feature extractor to generate feature vector for each pair. Finally use random forest to make the prediction.
The smaller set of interesting pairs includes over 95% ground truth. And we finally get 99.4% accuracy with our fine tunning classifier.
Use the data from Yelp Dateset Challenge to fit different models. The challenge of this dataset is that the business attribute of the restaurant is not enough for well prediction so that combining the review as the additional feature is necessary.
Create a new model by tagging words of each review as adjective then apply Google pre-trained word2vec model which can improve the accuracy by 50\%. Also evaluate the model by using AUC of the micro-ROC curve, which is equal to the probability that the confident score of true sample is higher than the score of false sample. For our model, the AUC/probability is 0.86.
STL-10 is a famous image processing database for testing semi-supervised learning containing 4000 training data, 1000 validation data, 8000 testing data and 100000 unlabeled data for 10 different class. The challenge of this dataset is that the training dataset is not enough for training compared to testing data.
We find a good initial kernel for first four CNN layers by applying k-means clustering to unlabeled data, which makes our accuracy improved to 76%.
We generate extra training data by applying some augmentation technology such as scaling, translation for balancing the size of training data and testing data. We find that when we augment twice for each training data, it performs best and finally get 78% accuracy.
How to change the real-life photograph by adding some new feature? It is really an interesting problem. This paper use neural net to extract texture feature from style image and content feature from real-life photograph, then starting from a white noise image, they try to make the image has similar texture feature and content feature.
This personal project makes me know that every layer in deep neural network is meaningful. I implemented it by using tensorflow and create an end-to-end solution for it.
We use citi bike data and weather data in 2015 to find the relationship.
I create multiple MapReduce functions to filter or edit dimension of data. Besides only testing the relation between weather and usage, we also added the dimension such as age and gender in order to check if the results would vary for these groups.
We use data visualization technique to explore the correlation. We find that temperature has very high correlation and the usage of citi bike is various depending on time, traffic, gender and age groups.
Burgers' equation is a fundamental PDE in various area of applied mathematics. It performs very bad when it comes to advection-dominant condition.
I modified some part of Streamline-Diffusion Method to Burgers' equation which can improve the standard finited element method by half order.
I proved the stability property of this method and give the upper bound of the speed. Also I carried out some experiments to illustrate the advantage of this new method to Burgers' equation.
This is my undergraduate thesis project, advised by Professor Zhang Qiang.
New York University, Center for Data Science
Nanjing University


EnOcean
Logged in as
Username
(
disconnect
)
Configuration
Data visualization
Users management
Users management
Users management
My profile
Users management
Add a user
My profile
First name :
Username :
Password :
Last name :
Email :
×
Manage user
First name :
Username :
Last name :
Password :
Email :


Available from the Apple App Store, Google Play Store, Amazon Store and Microsoft Store.
TVPlayer is free to download and free to use. Watch over 100 TV channels in one app.
Get a TVPlayer Plus subscription to watch 106 premium channels not on Freeview or Freesat.
TVPlayer Plus is available on iOS, Android, AppleTV, Amazon Fire TV, EE TV, Windows 10, XBOX One, Roku and Humax H3.
Install the app for your iPhone or iPad from the App Store, choose the programme you want from our 100+ channels, and then watch it live or on demand. You can watch on 3G/4G and WiFi.
Watch all of the best television in the UK on your Android phone or tablet. You can watch over 75+ free channels and 25+ premium channels all in one place for just £5.99 a month.
With TVPlayer PLUS on Amazon Fire TV, you can access the best of UK television in one app. You’ll find all your favourites, including BBC1, ITV, Channel 4, MTV and Eurosport.
You can enjoy watching TVPlayer across all Windows 10 devices, including desktop, phone and tablet. Our annual pack offers the best value with two months of premium content for free.
Our Apple TV product allows you to easily surf between 100+ channels. We offer on demand content for our PLUS customers, so you can keep up with your favourite shows.
An added benefit of being a PLUS customer is access to our macOS app. You can use AirPlay to show our best content on whatever screen you want.
COMING SOONTVPlayer is available to all Xbox users, so you can watch all your favourite TV shows in one place.
You can watch our premium channels on the EE set top box. Sit back and enjoy your favourite channels, including History, Discovery, National Geographic and many more.
Live and catch-up TV is now available on Roku. Watch the best of UK TV in one app.


Book Exchange
View books available and wanted for trade, post your own list, or see if you have something someone's looking for!
| Title | Author | Condition | Rating | Recently Requested By |
|---|---|---|---|---|
| J.S. Le Fanu's Ghostly Tales volume 1 | J.S. Le Fanu | Good | Mr.Oldfashioned | |
| J.S. Le Fanu's Ghostly Tales volume 2 | J.S. Le Fanu | Good | Mr.Oldfashioned | |
| Carnacki, the Ghost Finder | William Hope Hodgson | Fair | Placid | |
| A Bid for Fortune or Dr. Nikola's Vendetta | Guy Newell Boothby | Good | SupernaturalRingleader | |
| The Memoirs of Sherlock Holmes | Sir Arthur Conan Doyle | Good | MasterAxon | |
| Spin | Robert Charles Wilson | Nearly new | AwakenedSpace | |
| The Towers of Sunset | L.E. Modesitt Jr. | Nearly new | DivineFate | |
| The Magic of Recluse | L.E. Modesitt Jr. | Nearly new | DivineFate | |
| Blood Maidens | Barbara Hambly | Library discard | EonObelisk |
<< Previous | Next >>