This tutorial is organized as follows:
One of the most significant capabilities of the JavaTM platform is the ability to dynamically download Java software from any Uniform Resource Locator (URL) to a virtual machine (VM) running in a separate process, usually on a different physical system. The result is that a remote system can run a program, for example an applet, which has never been installed on its disk. For the first few sections of this document, codebase with regard to applets will be discussed in order to help describe codebase with regard to Java Remote Method Invocation (Java RMI).
For example, a VM running from within a web browser can download the
bytecodes for subclasses of java.applet.Applet
and any
other classes needed by that applet. The system on which the browser is
running has most likely never run this applet before, nor installed it
on its disk. Once all the necessary classes have been downloaded from
the server, the browser can start the execution of the applet program
using the local resources of the system on which the client browser is
running.
Java RMI takes advantage of this capability to download and execute classes and on systems where those classes have never been installed on disk. Using the Java RMI API any VM, not only those in browsers, can download any Java class file including specialized Java RMI stub classes, which enable the execution of method calls on a remote server using the server system's resources.
The notion of a codebase originates from the use of
ClassLoader
s in the Java programming language. When a Java
program uses a ClassLoader
, that class loader
needs to know the location(s) from which it should be allowed to load
classes. Usually, a class loader is used in conjunction with an HTTP
server that is serving up compiled classes for the Java platform. Most
likely, the first ClassLoader
/codebase
pairing that you came into contact with was the AppletClassLoader
, and the "codebase"
part of the <applet>
HTML tag, so this
tutorial will assume that you have some experience with Java RMI
programming, as well as writing HTML files that contain applet tags.
For example, the HTML source will contain something like:
<applet height=100 width=100 codebase="myclasses/" code="My.class"> <param name="ticker"> </applet>
A codebase can be defined as a source, or a place, from which to load classes into a virtual machine. For example, if you invited a new friend over for dinner, you would need to give that friend directions to the place where you lived, so that he or she could locate your house. Similarly, you can think of a codebase as the directions that you give to a VM, so it can find your [potentially remote] classes.
You can think of your CLASSPATH
as a
"local codebase", because it is the list of places on disk
from which you load local classes. When loading classes from a local
disk-based source, your CLASSPATH
variable is consulted. Your CLASSPATH
can
be set to take either relative or absolute path names to directories
and/or archives of class files. So just as CLASSPATH
is a kind of "local codebase", the codebase
used by applets and remote objects can be thought of as a "remote
codebase".
To interact with an applet, that applet and any classes that it needs
to run must be accessible by remote clients. While applets can be
accessed from "ftp://
" or local
"file:///
" URLs, they are usually accessed from
a remote HTTP server.
CLASSPATH
Figure 1: Downloading applets
The applet's codebase is always relative to the URL of the HTML page in
which the <applet>
tag is contained.
Using Java RMI, applications can create remote objects that accept method
calls from clients in other VMs. In order for a client to call methods
on a remote object, the client must have a way to communicate with the
remote object. Rather than having to program the client to speak the
remote object's protocol, Java RMI uses special classes called stubs that
can be downloaded to the client that are used to communicate with (make
method calls on) the remote object. The
java.rmi.server.codebase
property value represents one or
more URL locations from which these stubs (and any classes needed by
the stubs) can be downloaded.
Like applets, the classes needed to execute remote method calls can be
downloaded from "file:///
" URLs,
but like applets, a "file:///
" URL
generally requires that the client and the server reside on the same
physical host, unless the file system referred to by the URL is made
available using some other protocol, such as NFS.
Generally, the classes needed to execute remote method calls should be made accessible from a network resource, such as an HTTP or FTP server.
Figure 2: Downloading Java RMI stubs
java.rmi.server.codebase
property. The Java RMI server
registers a remote object, bound to a name, with the Java RMI
registry. The codebase set on the server VM is annotated to
the remote object reference in the Java RMI registry.
CLASSPATH
, which is always searched before
the codebase, the client will load the class locally. However,
if the definition for the stub is not found in the client's
CLASSPATH
, the client will attempt to retrieve the
class definition from the remote object's codebase.
Note: Steps 4 and 5 are the sames steps that the registry took to load the remote object class, when the remote object was bound to a name in (registered with) the Java RMI registry. When the registry attempted to load the remote object's stub class, it requested the class definition from the codebase associated with that remote object.
Figure 3: Java RMI client making a remote method call
In addition to downloading stubs and their associated classes to
clients, the java.rmi.server.codebase
property can be used to specify a location from which any class, not
only stubs, can be downloaded.
When a client makes a method call to a remote object, the method that it calls could be written to accept no arguments or a number of arguments. There are three distinct cases that may occur, based on the data type(s) of the method argument(s).
In the first case, all of the method parameters (and return value) are
primitive data types, so the remote object knows how to interpret them
as method parameters, and there is no need to check its CLASSPATH
or any codebase.
In the second case, at least one remote method parameter or the return
value is an object, for which the remote object can find the class
definition locally in its CLASSPATH
.
In the third case (shown as Step 6, in Figure 4), the remote method
receives an object instance, for which the remote object cannot find
the class definition locally in its CLASSPATH
. This type
of remote method call is illustrated in Figure 4. The class of the
object sent by the client will be a subtype of the declared parameter
type. A subtype is either:
Figure 4: Java RMI client making a remote method call, passing an unknown subtype as a method parameter
7. Like the applet's codebase, the client-specified codebase is
used to download Remote
classes, non-remote
classes, and interfaces to other VMs. If the codebase
property is set on the client application, then that codebase is
annotated to the subtype instance when the subtype class is loaded by
the client. If the codebase is not set on the client, the remote object
will mistakenly use its own codebase.
In the case of an applet, the applet codebase value is embedded in an HTML page, as we saw in the HTML example in the first section of this tutorial.
In the case of Java RMI codebase, rather than having a reference to the
class embedded in an HTML page, the client first contacts the Java RMI
registry for a reference to the remote object. Because the remote
object's codebase can refer to any URL, not just one that is relative
to a known URL, the value of the Java RMI codebase must be an absolute URL
to the location of the stub class and any other classes needed by the
stub class. This value of the codebase
property can refer
to:
Note: When the codebase
property value is set to
the URL of a directory, the value must be terminated by a
"/".
If the location of your downloadable classes is on an HTTP server named
"webvector", in the directory "export" (under the
web root), your codebase
property setting might look like
this:
-Djava.rmi.server.codebase=http://webvector/export/
If the location of your downloadable classes is on an HTTP server named
"webline", in a JAR file named "mystuff.jar", in
the directory "public" (under the web root), your
codebase
property setting might look like this:
-Djava.rmi.server.codebase=http://webline/public/mystuff.jar
Now let's suppose that the location of your downloadable classes has
been split between two JAR files, "myStuff.jar" and
"myOtherStuff.jar". If these JAR files are located on
different servers (named "webfront" and "webwave"),
your codebase
property setting might look like this:
-Djava.rmi.server.codebase="http://webfront/myStuff.jar http://webwave/myOtherStuff.jar"
Any serializable class, including Java RMI stubs, can be downloaded if your Java RMI programs are configured properly. Here are the conditions under which dynamic stub downloading will work:
java.rmi.server.codebase
property has been
set on the server program (or in the case of activation, the
"setup" program) that makes the call to bind
or rebind
,
such that:
codebase
property is
the URL in step A
and
codebase
property is a directory, it must
end in a trailing "/"
rmiregistry
cannot
find the stub class or any of the classes that the stub relies
on in its CLASSPATH
. This is so the
codebase gets annotated to the stub when the registry does its
class load of the stub, as a result of calls to bind
or rebind
in
the server or setup code.
SecurityManager
that allows the stub to be
downloaded. In the Java 2 SDK, Standard Edition, v1.2 and later,
this means that the client must also have a properly configured
security policy file.
There are two common problems associated with the java.rmi.server.codebase
property, which are
discussed next.
The first problem you might encounter is the receipt of a ClassNotFoundException
when attempting to bind
or rebind
a remote
object to a name in the registry. This exception is usually due to a
malformed codebase
property, resulting in the
registry not being able to locate the remote object's stubs or other
classes needed by the stub.
It is important to note that the remote object's stub implements all the same interfaces as the remote object itself, so those interfaces, as well as any other custom classes declared as method parameters or return values, must also be available for download from the specified codebase.
Most frequently, this exception is thrown as a result of omitting the trailing slash from the URL value of the property. Other reasons would include: the value of the property is not a URL; the path to the classes specified in the URL is incorrect or misspelled; the stub class or any other necessary classes are not all available from the specified URL.
The exception that you may encounter in such a case would look like this:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: examples.callback.MessageReceiverImpl_Stub java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: examples.callback.MessageReceiverImpl_Stub java.lang.ClassNotFoundException: examples.callback.MessageReceiverImpl_Stub at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Compiled Code) at sun.rmi.transport.StreamRemoteCall.executeCall(Compiled Code) at sun.rmi.server.UnicastRef.invoke(Compiled Code) at sun.rmi.registry.RegistryImpl_Stub.rebind(Compiled Code) at java.rmi.Naming.rebind(Compiled Code) at examples.callback.MessageReceiverImpl.main(Compiled Code) RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: examples.callback.MessageReceiverImpl_Stub
The second problem you could encounter is the receipt of a ClassNotFoundException
when attempting to lookup
a remote object in the registry. If you
receive this exception in a stacktrace resulting from an attempt to run
your Java RMI client code, then your problem is the CLASSPATH
with which your Java RMI registry was started.
See requirement C in section 6.0. Here is what
the exception will look like:
java.rmi.UnmarshalException: Return value class not found; nested exception is: java.lang.ClassNotFoundException: MyImpl_Stub at sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:109 at java.rmi.Naming.lookup(Naming.java:60) at RmiClient.main(MyClient.java:28)
You may wish to subscribe to the rmi-users email list.
We are very interested in knowing whether these tutorials are useful. Please send any comments or suggestions to<EMAIL_ADDRESS>with a subject of "codebase tutorial".
| Copyright ©
2004 Sun Microsystems, Inc. All Rights
Reserved.
Please send comments to<EMAIL_ADDRESS>|


removeEventListener(eventName: string, callback: Function, capture: boolean): void
Remove an event listener from the document.
Parameters
eventName: string
A string representing the event type to listen for.
callback: Function
The function to remove from the event.
capture: boolean
Specifies whether the listener to be removed was registered as a capturing listener or not.


Removed the battery on the MP3 player, put it back in and we're back in action. Finally opened USB cable for phone though as backup plan.
8/18/2009, 11:32:02 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Removed the battery on the MP3 player, put it back in and we're back in action. Finally opened USB cable for phone though as backup plan.
8/18/2009, 11:32:02 PM
Favs: 0
Retweets: 0
link


Browser Sync does automatic real-time synchronization of your edits in your local script, be it html, css, or javascript, and updates webpage view once you 'save' the edited script.
So you don't have to re-run entire script on browser every time!
Once you have successfully installed Browser Sync, do the following:
Navigate to your target directory in which you want Browser Sync to WATCH (i.e. to keep track and auto-sync);
[ browser-sync start --server --directory --files "*" ]
A Browser Sync webpage should pop up for you to visualize all folders/files in the target directory;
Click on the file on the Broswer Sync page you would like to sync-view;
Now you can edit scripts locally and view updates by SAVE your script and REFRESH the Broswer Sync page;
Once you have finished editing, EXIT Broswer Sync by hitting "Ctrl + C" in the command line (Mac only);
Please DOWNLOAD Broswer Sync here, it only takes half a minute!


--- Day 16: Flawed Frequency Transmission ---
You're 3/4ths of the way through the gas giants. Not only do roundtrip signals to Earth take five hours, but the signal quality is quite bad as well. You can clean up the signal with the Flawed Frequency Transmission algorithm, or FFT.
As input, FFT takes a list of numbers. In the signal you received (your puzzle input), each number is a
single digit: data like 15243
represents the sequence 1
, 5
,
2
, 4
, 3
.
FFT operates in repeated phases. In each phase, a new list is constructed with the same length as the input list. This new list is also used as the input for the next phase.
Each element in the new list is built by multiplying every value in the input list by a value in a repeating
pattern and then adding up the results. So, if the input list were 9, 8, 7, 6, 5
and
the pattern for a given element were 1, 2, 3
, the result would be 9*1 + 8*2 + 7*3 + 6*1 +
5*2
(with each input element on the left and each value in the repeating pattern on the right of
each multiplication). Then, only the ones digit is kept: 38
becomes 8
,
-17
becomes 7
, and so on.
While each element in the output array uses all of the same input array elements, the actual repeating
pattern to use depends on which output element is being calculated. The base pattern is 0, 1,
0, -1
. Then, repeat each value in the pattern a number of times equal to the position in the
output list being considered. Repeat once for the first element, twice for the second element,
three times for the third element, and so on. So, if the third element of the output list is being
calculated, repeating the values would produce: 0, 0, 0, 1, 1, 1, 0, 0, 0, -1, -1, -1
.
When applying the pattern, skip the very first value exactly once. (In other words, offset the whole pattern
left by one.) So, for the second element of the output list, the actual pattern used would be: 0, 1,
1, 0, 0, -1, -1, 0, 0, 1, 1, 0, 0, -1, -1, ...
.
After using this process to calculate each element of the output list, the phase is complete, and the output list of this phase is used as the new input list for the next phase, if any.
Given the input signal 12345678
, below are four phases of FFT. Within each phase, each output
digit is calculated on a single line with the result at the far right; each multiplication operation shows
the input digit on the left and the pattern value on the right:
Input signal: 12345678
1*1 + 2*0 + 3*-1 + 4*0 + 5*1 + 6*0 + 7*-1 + 8*0 = 4
1*0 + 2*1 + 3*1 + 4*0 + 5*0 + 6*-1 + 7*-1 + 8*0 = 8
1*0 + 2*0 + 3*1 + 4*1 + 5*1 + 6*0 + 7*0 + 8*0 = 2
1*0 + 2*0 + 3*0 + 4*1 + 5*1 + 6*1 + 7*1 + 8*0 = 2
1*0 + 2*0 + 3*0 + 4*0 + 5*1 + 6*1 + 7*1 + 8*1 = 6
1*0 + 2*0 + 3*0 + 4*0 + 5*0 + 6*1 + 7*1 + 8*1 = 1
1*0 + 2*0 + 3*0 + 4*0 + 5*0 + 6*0 + 7*1 + 8*1 = 5
1*0 + 2*0 + 3*0 + 4*0 + 5*0 + 6*0 + 7*0 + 8*1 = 8
After 1 phase: 48226158
4*1 + 8*0 + 2*-1 + 2*0 + 6*1 + 1*0 + 5*-1 + 8*0 = 3
4*0 + 8*1 + 2*1 + 2*0 + 6*0 + 1*-1 + 5*-1 + 8*0 = 4
4*0 + 8*0 + 2*1 + 2*1 + 6*1 + 1*0 + 5*0 + 8*0 = 0
4*0 + 8*0 + 2*0 + 2*1 + 6*1 + 1*1 + 5*1 + 8*0 = 4
4*0 + 8*0 + 2*0 + 2*0 + 6*1 + 1*1 + 5*1 + 8*1 = 0
4*0 + 8*0 + 2*0 + 2*0 + 6*0 + 1*1 + 5*1 + 8*1 = 4
4*0 + 8*0 + 2*0 + 2*0 + 6*0 + 1*0 + 5*1 + 8*1 = 3
4*0 + 8*0 + 2*0 + 2*0 + 6*0 + 1*0 + 5*0 + 8*1 = 8
After 2 phases: 34040438
3*1 + 4*0 + 0*-1 + 4*0 + 0*1 + 4*0 + 3*-1 + 8*0 = 0
3*0 + 4*1 + 0*1 + 4*0 + 0*0 + 4*-1 + 3*-1 + 8*0 = 3
3*0 + 4*0 + 0*1 + 4*1 + 0*1 + 4*0 + 3*0 + 8*0 = 4
3*0 + 4*0 + 0*0 + 4*1 + 0*1 + 4*1 + 3*1 + 8*0 = 1
3*0 + 4*0 + 0*0 + 4*0 + 0*1 + 4*1 + 3*1 + 8*1 = 5
3*0 + 4*0 + 0*0 + 4*0 + 0*0 + 4*1 + 3*1 + 8*1 = 5
3*0 + 4*0 + 0*0 + 4*0 + 0*0 + 4*0 + 3*1 + 8*1 = 1
3*0 + 4*0 + 0*0 + 4*0 + 0*0 + 4*0 + 3*0 + 8*1 = 8
After 3 phases: 03415518
0*1 + 3*0 + 4*-1 + 1*0 + 5*1 + 5*0 + 1*-1 + 8*0 = 0
0*0 + 3*1 + 4*1 + 1*0 + 5*0 + 5*-1 + 1*-1 + 8*0 = 1
0*0 + 3*0 + 4*1 + 1*1 + 5*1 + 5*0 + 1*0 + 8*0 = 0
0*0 + 3*0 + 4*0 + 1*1 + 5*1 + 5*1 + 1*1 + 8*0 = 2
0*0 + 3*0 + 4*0 + 1*0 + 5*1 + 5*1 + 1*1 + 8*1 = 9
0*0 + 3*0 + 4*0 + 1*0 + 5*0 + 5*1 + 1*1 + 8*1 = 4
0*0 + 3*0 + 4*0 + 1*0 + 5*0 + 5*0 + 1*1 + 8*1 = 9
0*0 + 3*0 + 4*0 + 1*0 + 5*0 + 5*0 + 1*0 + 8*1 = 8
After 4 phases: 01029498
Here are the first eight digits of the final output list after 100 phases for some larger inputs:
80871224585914546619083218645595
becomes24176176
.19617804207202209144916044189917
becomes73745418
.69317163492948606335995924319873
becomes52432133
.
After 100 phases of FFT, what are the first eight digits in the final output list?


Financial institutions should work harder for you. For everyone. That's why we started Betterment a decade ago, and it's why we haven't stopped working for you ever since.
smarter is better
From the money you need today to the money you're saving for tomorrow and beyond,
Betterment is your smart money manager, built to help you make the most of it.
Get startedSave and spend with confidence.
Betterment Everyday is our cash management suite that helps you make the most of your everyday money.
Meet Betterment Everyday™Invest smarter for a comfortable tomorrow.
Since 2010, we've worked to make investing more efficient and accessible using technology and Nobel Prize‐backed research.
- Built-in financial guidance
- Tax Smart technology
- Transparent 0.25% annual fee
Build a secure future with a retirement plan.
No matter your age or situation, we can help you build a plan for life after work. We'll help you determine how much to save and automatically invest your contributions.
- A retirement plan tailored to you
- You could earn an estimated 38% more over 30 years
- 0.25% annual fee and no minimum balance
You could earn an estimated 38% more over 30 years
Ready to make the most of your financial life?
Get startedGetting into the details
Pricing with Betterment
Betterment Everyday™ Savings has no fees on your account balance. Learn more about how we earn money.
Betterment Everyday Checking has no monthly maintenance fees, no overdraft fees, no minimum balance, and ATM fees are reimbursed.
Investing and Retirement have an annual fee of 0.25% per year on your balance—or about $25 per year for every $10,000 invested.
None of our accounts require a minimum balance, ever. The minimum deposit is $10.
Help with your account or finances
Our customer support team is available seven days a week to answer questions about your account.
If you want in-depth financial advice, you can talk to a certified advisor by phone. Our Premium plan provides you with unlimited access and costs 0.40% per year on your invested balances.
We also offer advice packages for needs of all kinds, starting at $199.
Account security and privacy
We take the security of our customers' accounts seriously. We employ strong browser encryption, secure data storage, and more. For details, read about our security practices.
We respect and protect the privacy of your information and will never share your data with a third party without your permission. Learn more about our Privacy Policy.
Satisfaction guaranteed
We're committed to providing you with a great financial experience. If you're not completely satisfied, we'll do everything we can we'll do everything we can to make it right.


[gecode-users] Attempt to invoke operation on failed space?
Peter Tiedemann
petert at itu.dk
Wed Apr 18 12:00:15 CEST 2007
Hi,
I was wondering what the common causes were of the above error?
Im running a DFS search on an unsolvable problem, and have a global
constraint of my own design, along with some distinct constraints.
Some time into the search, i return ES_FAILED from my propagate
function(not for the first time), which is usually followed by a my
propagators copy constructor being called, followed by my Space's copy
method. However, in this case i get:
"Exception: Space::clone: Attempt to invoke operation on failed space."
just after my propagate method returns ES_FAILED.
I realize that im not providing adequate information to debug this
problem, but perhaps you could give me a hint on what could cause
this?
Regards
More information about the gecode-users
mailing list


@* * Call the `main` template with two arguments. The first * argument is a `String` with the title of the page, the second * argument is an `Html` object containing the body of the page. *@ @main("Contact") {


Chapter 6 Developing a research question
With the problem statement and intervention somewhat defined, you should be able to combine these two into a clearly articulated research statement, best depicted in the figure below.
Landing on the right research question might seem trivial given that you have a problem statement, but it is essential to properly guide your experiment. You will use it both during the development stage and constantly revisit it, particularly in the results stage of the experiment cycle. You’ll want to spend a lot of time on this process, expecting a lot of back-and-forth, with multiple versions and revisions – this is all quite normal. This needs to be clearly articulated before you can move on to technical design choices. Each of the design choices depend on these crucial first steps – so don’t rush these! You will be better off if you don’t underestimate the preparatory phases leading to the experiment being conducted.
The characteristics of a good research question, assessed in the context of an intended experimental design, are that it be feasible, interesting, novel, ethical, and relevant. A good research question is often focused on a single topic or on several closely related ideas. If it isn’t, you won’t end up with a good design. If a question is too general or doesn’t stay on one topic, you can fix it by deciding which part of the topic you want to research.
For example, insurance companies usually struggle with honesty issues in their clients. In the case of car insurance, there is often a financial incentive to report less miles driven since reporting more would mean you would pay more (i.e. a higher number implies more honesty). The research question in this case was how the team can implement ways to prime honesty in the client group. The researchers sought to prime honesty by asking people to sign at the start of a form rather than the end when reporting how many miles they had driven on their car for insurance purposes. The rest relates to experimental design and in fact the results indicated that the treatment (those who got the form with signature at the beginning) to be effective at inducing more honest declarations (Shu et al. (2012), Signing at the beginning makes ethics salient and decreases dishonest self-reports in comparison to signing at the end, PNAS vol. 109).
A good research topic is broad enough to allow you to find plenty of material, but narrow enough to fit within the size and time constraints of your experiment
6.1 The SMART strategy
The main elements of a good research question are listed below: - Specific: Not a “fishing expedition”, a good question is usually crisp and concise. - Measurable: Testable (statistically) and purpuseful. It also means you have the expertise, equipment, and resources to tackle it. - Attainable: Something that “you” can do, a good question is relevant. - Realistic: Based on some sort of rationale and logic and can be done in a reasonable time frame. - Timely: It is novel and prefarably based in new technologies but has a past, and is important to current concerns (has a present). It can lead to new directions – i.e. is not an endpoint in itself (has a future). - Important: Meaningful whether the answer is “Yes” or “No.”
Some examples of research questions include:
- An investigation looking at whether stress levels influence how often students engage in academic cheating.
- A study looking at how caffeine consumption impacts the brain.
- A study assessing whether men or women are more likely to be diagnosed with depression.
As observed above, research question differs from the problem statement in that its question format provides guidance. It defines a limited scope or boudary for the problem statement. It tells us what constitutes an end to the answer. By being open-ended, it gives us guidance for what to do next, i.e. answer it.
In other words, a research question allows us to bite off a section of the problem statement that is big enough to chew and swallow it. It directs our attention to a manageable, defined, and bounded problem and then tells us what constitutes a complete response. As you continue researching, narrowing your broad question into a more refined question by fine-tuning your question with one (or more) of the following question stems: Who? To What Extent? When? Where? and why?
6.2 The five W’s
Good research questions usually do not have one-sentence or factual answers. Unfortunately, this eliminates many who, what, and when questions. Good empirical research questions are not ones where you could get the answer from a publicly available source like Wikipedia, or by asking one knowledgeable person. Best research often comes from the best questions, this is why it is ok to spend more time to develop a specific meaningful research question that addresses a gap.
6.3 Narrowing the topic
Once you have developed a research question, consider evaluating it to identify what parts are too broad or too narrow and find a way to rephrase the question to get to a single experimentation project.
For example, let’s say the research question we developed is: does international law cause countries to change their behaviour? This question is mostly viable, however, it is rather broad and the outcome of interest, change in behaviour is a concept. What larger idea does behaviour change represent here? population trends? social responses? legislative change? what type of law are we considering? trade? social? environmental? Answering these questions depends on the theory you have in mind and the argument you have developed for why you expect international law to influence behaviour change and which laws are you considering. In this case then, adding additional context like a geography, behaviour, chronological boundry, or law context can clarify the point of view and make the question more representative.


What specifically will you do?
For example, will you rest, phone a friend or take a series of walks?
How much?
If your target is to rest, will you rest for 15 minutes, an hour or some other length of time?
When?
Will you rest in the morning, afternoon, evening or some combination?
How often?
How many days a week will you do your target? You may want to do something daily, but it's good to allow yourself some "breathing room" by aiming to do something several times a week rather than every day.
To judge whether a goal is doable
, ask yourself "how confident am I that I can complete this target as stated?" Answer by giving a number between 0 and 10, where 0 means "not confident at all" and 10 means "totally confident.


Summary
Our idea could potentially cause economic problems and collapse as well as several political issues. However, it
would improve current mining methods by being safer for humans, more environmentally friendly, and more
efficient, and also open up opportunities for the advancement of the human race through a large infrastructure
of robots and a huge amount of resources
Con: Economic Problems
MRRM would render people working in the mining industry jobless. Because of the sudden price drop of minerals,
the commodities market could plummet, and adjusting to this new economy would even cause people outside of the
mining industry to struggle financially. In the short run, MRRM could cause global economies could enter a
depression.
Con: Political Issues
Since the initial construction of MRRM would be a massive project, contributions for materials, energy, and
workers would need to be divided among multiple nations. Once the technology is implemented and starts to ship
minerals mined from the asteroids back to Earth, there could be conflicts among nations involving the ownership
of these resources. If these conflicts are not settled properly, they could possibly lead to an international
war.
Pro: Improvement Upon Current Mining Methods
Our technology would eliminate almost all environmental and safety concerns of current mining methods. In the
most popular mining methods such as open pit mining and underground mining, harmful substances from the mined
rock are exposed to the environment, contaminating air and water sources. Habitat destruction at mining sites
and the carbon emissions of mining machines are also environmental issues caused by mining. MRRM would not have
these downsides; the harmful substances emitted from minerals, as well as the carbon emissions of our robots,
would be released into outer space, where they have no environmental impact on earth. The health risks of
working as a miner, such as hearing loss and exposure to dangerous substances, are also nonexistent in our
technology, since robots would perform these dangerous-to-human activities instead.
Pro: Space Advancement
Throughout the course of human history, there have been many radical advancements that have redefined the way
that humans live. For example, the invention of computers has created many possibilities for humans that were
unimaginable in the past. Making this advancement to space will have the same impact. Eventually, humans will
suffer overpopulation issues, which will be entirely solved by colonizing other planets. Our technology could
contribute to space advancement in two ways - it would provide us with enough resources to undertake large-scale
projects, and it could deploy robots to desired planets, to build shelters which humans could move into
immediately. It would also spread awareness for the potential of space exploration.


Survey to identify welfare scheme beneficiaries from November 20
YSR Navasakam to ensure benefits reach targeted sections
by Staff ReporterChief Secretary Nilam Sawhney held a video-conference with District Collectors on YSR Navasakam, a month-long survey which the State government proposed to conduct from November 20 for identifying the beneficiaries of various welfare schemes.
According to an official release, the door-to-door survey will be done by village and ward volunteers for the sake of implementing welfare programmes which mainly include YSR Matsyakara Bharosa, YSR Nethanna Nestham, Jagananna Vidya Deevena, YSR Sunna Vaddi Padhakam, Amma Vodi and YSR Kapu Nestham, on a saturation basis.
Besides, the survey will filter eligible beneficiaries for ‘rice cards’ (with which rice can be bought at subsidised rates at the existing PDS outlets), ‘YSR pension cards’, ‘YSR Aarogyasri cards’ and cards for fee reimbursement.
Ms. Sawhney instructed the Collectors to ensure that the survey was comprehensive and accurate so that the benefits of welfare schemes reached the targeted sections.
Chief Commissioner of Land Administration Neerabh Kumar Prasad, Special Chief Secretary (BC welfare) R. Karikal Valaven and other senior officials were present.


Reports: Colts to place TE Ebron (ankle) on IR
The Indianapolis Colts plan to place tight end Eric Ebron on season-ending injured reserve with multiple ankle injuries, according to reports Monday.
Ebron caught four passes for 44 yards in a 20-17 loss to the Houston Texans last Thursday after missing multiple practices during the week.
NFL Network’s Ian Rapoport reported Ebron needs surgery on both ankles.
He has 31 receptions for 375 yards and three scores in 11 games this season. He made the Pro Bowl with 66 catches for 750 yards and 13 touchdowns in his first season with the Colts in 2018.
The 10th overall pick in the 2014 NFL Draft by Detroit, Ebron has 283 career receptions for 3,195 yards and 27 touchdowns in 83 games (47 starts) with the Lions (2014-17) and Colts.
Ebron, 26, signed a two-year, $15 million contract with Indianapolis and will become a free agent after the season.
—Field Level Media


THE BELOW DESCRIPTION EXPLAINS THE COMPLETE CONTROLLER SCHEMATIC FOR REFERENCE AND BASIC FUNCTIONING OF CONTROLLER WITH SIGNALS MEASURED.
| NAME(refer schematic for nomenclature) | GRAPH |
|---|---|
| AH and BH Voltages | 1 |
| A PHASE(high rpm at AL,BL,CL) | 2 |
| A PHASE(low rpm at AL,BL,CL) | 3 |
| CURRENT BETWEEN AH AND G1 (POWER pmos gate) measured across 56 ohm | 4 |


We are a reliable technology partner specialising in our two flagship services: extended teams, and tandems. We are headquartered in Warsaw, Poland, and are focusing in catering to software development needs of companies based in Sweden, Norway and Denmark.
An extended development team is, as the name suggests, an extension of your core team. There are several characteristics of an extended team that make it an attractive option for your business:
Tandems is our innovative modification of the extended team concept.  There are many benefits of this setup:
We have have a significant software development experience, and still actively work on projects. Our approach is to get technical as early as possible, in order to save time and avoid misunderstandings. Our immediate area of expertise is mobile and cloud, and we are well connected with the talent in Poland.
Not that we are biased, but something about the Polish work culture, and the economy of Poland, makes the developers here offer a sweet spot of tradeoffs:
We take care of it all, should you require so. We have acquired domain-specific knowledge, and continuous growth is at the core of our philosophy. However, should you wish to keep a close oversight and control over our actions, we will make sure you do. There are many different possible forms of collaboration, and we'll adapt to the one that makes the most sense for your goals. The scale is also up for discussion.
We do things the modern way, with quick iterations to keep things moving fast. Yet, thanks to our extensive connections with software companies in Poland, we provide you the stability of a big organisation, so you can enjoy the benefits of both worlds.
We don’t just take all projects that come across. We want to understand your needs first, so that we can can be sure you are making the right choice, and we are the right partner for you.
Karol is a business oriented software developer with 7 years of Android app development, programming in Kotlin since 2015. His experience working in Sweden and Poland with both startups and corporations gave him a powerful understanding of the market. He has bootstrapped an app that has surpassed 150k+ daily users and keeps growing, available on Google Play. He is an open source contributor and has niche experience with VPN api, tunneling, and peer to peer networks.
Jakub is a software architect with 13 years of experience in enterprise systems development for leading financial and telecommunication companies in Poland. This experience gave him understanding of full IT project development lifecycle and let him learn best practices in industry. Passionate designer and programmer always eager to learn new technologies and discover innovative ways of solving problems. Business oriented, reliable partner ready to listen to your needs and share his knowledge.


transaction
package implements the strategy
Jdbi
uses to open and close transactions. The default
instance simply sets the transaction property on the connection.
There is also a runner that runs SERIALIZABLE
transactions
repeatedly until they succeed without transient serialization failures.


Provides the Events object to bind events to the canvas to interact with 3D objects.
The first parameter of each event callback function is an event wrapper object that contains as properties:
event (element) - The native event.
x (number) - The x position of the mouse pointer when the event was triggered.
y (number) - The y position of the mouse pointer when the event was triggered.
posArray (array) - If multiple events where triggered at the same time (like multiple fingers touching a screen), then the array of transformed positions will be here.
stop (function) - A method that can be called to stop the propagation of the event.
wheel (number) - Only on the mousewheel event. A number specifying the delta for the mouse scroll.
isRightClick (boolean) - Whether is right or left click.
code (number) - Available onKeyDown only. The key code number.
key (string) - Available onKeyDown only. The key pressed as a string. Can also be enter, up, down, left, right, backspace, space, delete and esc.
shift (boolean) - Available onKeyDown only. Whether the shift key is pressed.
control (booleanr) - Available onKeyDown only. Whether the control key is pressed.
alt (boolean) - Available onKeyDown only. Whether the alt key is pressed.
meta (boolean) - Available onKeyDown only. Whether the meta key is pressed.
Events Method: create
Creates a set of events for the given domElement that can be handled through a callback.
Syntax:
Events.create(app, options);
Arguments:
gl - (WebGLRenderingContext) A WebGLRenderingContext object. Events are handled for the context’s canvas element.
options - (object) An object containing the following options:
Options:
cachePosition - (boolean, optional) Whether to cache the current position of the canvas or calculate it each time in the event loop. Default’s true.
cacheSize - (boolean, optional) Whether to cache the size of the canvas or calculate it each time in the event loop. Default’s true.
relative - (boolean, optional) Whether to calculate the mouse position as relative to the canvas position or absolute. Default’s true.
centerOrigin - (boolean, optional) Whether to set the center (0, 0) coordinate to the center of the canvas or to the top-left corner. Default’s true.
disableContextMenu - (boolean, optional) Disable the context menu (generally shown when the canvas is right clicked). Default’s true.
enableTouch - (boolean, optional) Whether to append listeners to touch events. Default’s true.
enableMouse - (boolean, optional) Whether to append listeners to mouse events. Default’s true.
enableKeyboard - (boolean, optional) Whether to append listeners to keyboard events. Default’s true.
bind - (mixed, optional) bind the thisArg in the callbacks to the specified object.
picking - (boolean, optional) Whether to use picking. If true, the second parameter for the callback functions will be an O3D target for the event (or a falsy value otherwise). Default’s false.
Callbacks:
You can also provide callback functions for the events you need to
handle. The first parameter of the callback is the event object
described here. If picking is set to true in the
options, then the second parameter of the callback may be an
O3D that is the target of the mouse event. If no target
exists for the mouse event then a falsy value will be provided. The
following callbacks are:
onClick - (function, optional) Handles the onClick event.
onRightClick - (function, optional) Handles the onRightClick event.
onDragStart - (function, optional) Handles the onDragStart event.
onDragMove - (function, optional) Handles the onDragMove event.
onDragEnd - (function, optional) Handles the onDragEnd event.
onDragCancel - (function, optional) Handles the onDragCancel event.
onTouchStart - (function, optional) Handles the onTouchStart event.
onTouchMove - (function, optional) Handles the onTouchMove event.
onTouchEnd - (function, optional) Handles the onTouchEnd event.
onTouchCancel - (function, optional) Handles the onTouchCancel event.
onTap - (function, optional) Handles the tap touch event.
onMouseMove - (function, optional) Handles the onMouseMove event.
onMouseEnter - (function, optional) Handles the onMouseEnter event.
onMouseLeave - (function, optional) Handles the onMouseLeave event.
onMouseWheel - (function, optional) Handles the onMouseWheel event.
onKeyDown - (function, optional) Handles the onKeyDown event.
onKeyUp - (function, optional) Handles the onKeyUp event.
Examples:
Setting rotation and zoom to a moon object with drag and drop and mousewheel events.


Goals
Getting to know the basics of data visualization; writing simple functions (reusable, packaged code)
Class:
Topics
- Basics of using
ggplot2
- Basic
geoms
in ggplot2
- Histogram
- Lines
- Bar plots
- Faceting
- Labels
- Create your own plots
- Writing your own functions
- Explanation of functions
- Function calls
- Function definition
Reference materials:
Consult relevant chapters from:
- Healy, Kieran Data Visualization: A Practical Guide. Princeton University Press, 2018. ISBN:<PHONE_NUMBER>622. http://socviz.co/
- Hadley Wickham & Garrett Grolemund, R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. O’Reilly, 2017. ISBN:<PHONE_NUMBER>399. https://r4ds.had.co.nz/
- Wickham, Hadley. Advanced R, Second Edition. 2 edition. Boca Raton: Chapman and Hall/CRC, 2019. http://adv-r.had.co.nz/
Homework:
- Finish your worksheets and submit as described below.
Submitting homework:
- Homework assignment must be submitted by the beginning of the next class;
- Email your homework to the instructor as attachments.
- In the subject of your email, please, add the following:
070184-LXX-HW-YourLastName-YourMatriculationNumber
, where LXX
is the numnber of the lesson for which you submit homework; YourLastName
is your last name; and YourMatriculationNumber
is your matriculation number.


Secrets of the Mega Resort: inside the ridiculously lavish £3.4billion resort
Secrets of the Mega Resort on Channel 5 offers a glimpse inside the £3.4billion Baha Mar in the Bahamas and unsurprisingly everything about resort is extravagant
by Julie Delahaye, https://www.facebook.com/juliedjournoGet ready for a sneak peek inside one of the world's most luxurious holiday resorts; the Baha Mar in the Bahamas.
The 1000-acre complex cost £3.4billion to build and is made up of three five-star hotels; the Rosewood, SLS and Grand Hyatt.
It can cater up to 7,000 guests at any one time, and reportedly hosts nearly one million holidays a year. In fact it's so big, it even has its own electricity plant.
Now, new Channel 5 documentary Secrets of the Mega Resort reveals just what goes on behind-the-scenes at this immense complex, meeting with some of the 5,000 staff members of staff who keep everything running smoothly.
Unsurprisingly, everything about the resort is extravagant, from the opulent suites to the 40 restaurants and bars (including bars where cocktails are dispensed by a computer), sports facilities and of course those world-famous Bahamas beaches.
One particular highlight is the lavish Presidential Suite which is four times the size of the average house in Britain!
The ridiculously swanky suite has THREE en-suite bedrooms, a lounge with a pool table, its very own state-of-the-art cinema room, and even its own lift.
Oh, and for guests looking to take in the views, they will have a choice of SEVEN balconies, or you can always hop into the private terrace with its own hot tub.
The suite also comes with perks including free rides in a private jet and use of a 215ft-long superyacht.
Wondering what the price tag is on the room? Well, it's completely free - although it is reserved for 'high rollers' aka ultra-rich gamblers who have been known to bet millions of pounds over a weekend.
As for the activities? There's no risk of guests twiddling their thumbs.
In fact, the resort boasts its very own casino and full-service spa, while sports fans have a plethora of activities to choose from including golf courses, the Racquet Club, water sports, a gym, fitness classes, croquet, basketball and heaps more.
Everything about the resort is lavish - even the pool parties where waitresses soak the guests in champagne, and you need to spend at least $300 on food and drink if you want to use a deckchair (for the cabanas, that minimum spend can jump up to $3,500).
Even the restaurants can be the ideal place for over-indulging. The resort's exclusive steakhouse has a 1.5kg steak 'The Tomahawk' which costs $265 - but you get it completely free if you can finish the whole thing by yourself.
The Baha Mar also features its own nature reserve as well as resident flamingos which can be spotted walking around the resort. Guests can also get up close to the likes of sharks, stingrays and turtles at the aquarium.
You can find out more on the Baha Mar website.
Secrets of the Mega Resort airs on Channel 5 at 9pm on Sunday 10th November.


Week 1 Reflections: Version Control, Git, GitHub
The start of my coding learning journey
October 5, 2015
Version Control
Version control allows you to keep track of the changes you make to a file. The goal of version control allows you to save snapshots of your work, and enables you to track changes according to when you did it, why you did it, and what the contents of the change were. Tracking and adding changes allows developers working on the same project to minimize work overlap and errors arising from miscommunication. This process of regular tracking and adding changes provides an efficient framework of stage gates to manage multiple changes to a project that might be happening simultaneously as a team of developers work on different parts of the code base.
Git
Git is a version control management system (VCS) that allows developers to work efficiently on the same file at the same time on the same project.
There are 3 stages of a git change - Working Directory, Staging Area, and the Git local repository. At the beginning, you can create a new branch from your master branch. Once you have created a file, you can start the process to make a git change.
Once you have made some changes to the file on your working directory, you can start staging your changes by adding them to your staging area.  GitHub is an online "hub" that lives remotely on the Internet and allows you to store directories (folders) and files. These folders and files stored on GitHub can be accessed by other developers. GitHub allows multiple developers to collaborate efficiently via the online platform, where they can submit changes and also review changes before they are added into the master code base. A good way to think about GitHub is the Dropbox for code.


Exmouth's claim to fame is the fact that it is the closest mainland town to the continental shelf. This results in there being very rich fishing grounds within close reach. In addition, it has colourful coral reefs very close to the shore.
It is situated on the tip of land called the North West Cape, on the western side of the Exmouth Gulf.
Position 21° 57' S, 114° 8' E.
The marina here has recently been extended and is well protected by overlapping breakwaters.
Last updated January 2014.


{{ panel.user.organization }} Team
{{ panel.user.organization }} Briefing
Monthly Report
Trainings
Products


include ("create.php")
Mustang v2
Import Contacts
Create
- add a contact
Save Contacts
Load Contacts
Log Contacts
Name:
Email:
City:
State:
Zip
Previous
Next
New
Delete
Data and Test Functions:
Index:
Contacts:


Proximity uses XML to represent queries in files, to store model data, and as an off-line representation for database data. Associated document type definitions (DTDs) define the required syntax for these files:
rbc2.dtd
defines the syntax for
relational Bayesian classifier data
rpt2.dtd
defines the syntax for
relational probability tree data
rdn.dtd
defines the syntax for
relational dependency network
wrapper files
Proximity requires that the DTD be in the same directory as the corresponding query, data, or model file, or in the directory from which you launch the Proximity application:
Before editing or executing a saved query, copy
graph-query.dtd
to the directory containing the query file.
Before importing data from an XML file, copy
prox3db.dtd
to the directory containing the XML data file.
Before viewing the originating query from the resulting
container page, copy graph-query.dtd
to the
directory from which you launch the Proximity Database Browser.
Before displaying a relational probability tree or relational dependency network, copy the corresponding DTD to the directory containing the model file.
Before loading a saved model file (e.g., in a script or Java program), copy the corresponding DTD to the directory containing the model file.
DTD files are located in $PROX_HOME/resources
.


Summary
Welcome to HTML Anatomy 101. In this class, you will do the learn how to dissect an HTML page from the head to the footer, add a new feature to Sublime Text, and mark up your previous blog posts with semantic HTML tags. So get your gloves on, open your textbook (the HTML docs (Links to an external site.)) and begin!
Release 0: Set up
Before you can get started, you'll need to get setup for the challenge. Decide who is going to drive and who will navigate. Then each of you will need to:
- Create a feature branch in the phase-0 directory
- Using the command line, navigate to the week-3 directory
- Within that directory, (using the command line) create a blank HTML page called dissect-me.html.
- Add, commit, and push your changes to GitHub. Create a quick pull request and merge the changes.
- SUBMIT your link to the dissect-me.html file as soon as you do this. This is how your guide will give you feedback. The URL should be something like:https://github.com/[USERNAME]/phase-0/blob/master/week-3/dissect-me.html
NOTE: You should decide whether to trade roles in each release or change roles half way through the session. If you decide to switch from release to release, you'll want to share code easily using a collaborative editor (or even a simple google doc).


Gem Island
Home
High Scores
Credits
Github
Level 1
Level 2
Level 3
Rank
Nickname
Score
...
...
...
Your High Score
Rank
Level
Score
Change Name
Cover template for
Bootstrap
, by
@mdo
.


I Am a Student
Hi ,
Srikumar is the name. Pursuing 1st year CSE-AI and ML in VIT-AP .
Email ID<EMAIL_ADDRESS>Phone NO: +91 **********
Address: karaikal,Pondicherry


{{#css login}} {{#javascript wallet}}
Login
Create Account
Private Key
Log In
{{#if error}}
{{error}}
{{/if}}
{{#if WIF}}
Warning!
If you want to keep this address then you should save this private key in a safe place. It won't be displayed again.
Address:
{{address}}
Private Key:
{{WIF}}
Generate another
{{#else}}
Generate address
{{/if}}
TODO...


Amnesty™ Hypercube is an Friendster application that allows you to collect and share web widgets with your friends. What's a web widget? A web widget is a mini-application that is supposed to be embedded inside a blog or home page. Examples include photo slideshows, streaming audio players, flash games and embeddable video. For example, a YouTube video could be considered a widget. As could a small flash game available from Miniclip. The main thing that web widgets have in common is that they are published as small snippets of HTML code.
Using Hypercube, you can convert these code snippets into widgets that run inside of Friendster.
The trick is to find code snippets and that's where Hypercube's Provider Gallery can help. The Provider Gallery is a list of web sites that publish widgets as code snippets. We keep the Provider Gallery up-to-date with widget sites as they come into existence, so it's a good place to check often. Each site has a different process by which you obtain widget code, but once you get the code, you just cut-and-paste the snippet into Hypercube and start using your new widget right away.
Another convenient place to get widgets is Hypercube's Featured Widget tab. We'll update the Featured Widget regularly with cool widgets that we find to share with you.
We have lots of plans for Hypercube on Friendster, including integration with our free desktop widget platform version of Amnesty Hypercube. That way you'll be able to access your widgets directly on your desktop, Vista's Sidebar, Apple's Dashboard or here in Friendster. As we continue to enhance both products we'll be sure to keep you in the loop.
Amnesty™ Hypercube © 2007 Danny Espinoza


QMediaContent Class
The QMediaContent class provides access to the resources relating to a media content. More...
| Header: | #include <QMediaContent> |
| qmake: | QT += multimedia |
Public Functions
| QMediaContent() | |
| QMediaContent(const QUrl &url) | |
| QMediaContent(const QNetworkRequest &request) | |
| QMediaContent(const QMediaResource &resource) | |
| QMediaContent(const QMediaResourceList &resources) | |
| QMediaContent(const QMediaContent &other) | |
| QMediaContent(QMediaPlaylist *playlist, const QUrl &contentUrl = QUrl(), bool takeOwnership = false) | |
| ~QMediaContent() | |
| QNetworkRequest | canonicalRequest() const |
| QMediaResource | canonicalResource() const |
| QUrl | canonicalUrl() const |
| bool | isNull() const |
| QMediaPlaylist * | playlist() const |
| QMediaResourceList | resources() const |
| bool | operator!=(const QMediaContent &other) const |
| QMediaContent & | operator=(const QMediaContent &other) |
| bool | operator==(const QMediaContent &other) const |
Detailed Description
The QMediaContent class provides access to the resources relating to a media content.
QMediaContent is used within the multimedia framework as the logical handle to media content. A QMediaContent object is composed of one or more QMediaResources where each resource provides the URL and format information of a different encoding of the content.
A non-null QMediaContent will always have a primary or canonical reference to the content available through the canonicalUrl() or canonicalResource() methods, any additional resources are optional.
Alternatively QMediaContent can represent a playlist and contain a pointer to a valid QMediaPlaylist object. In this case URL is optional and can either be empty or point to the playlist URL.
Member Function Documentation
QMediaContent::QMediaContent()
Constructs a null QMediaContent.
QMediaContent::QMediaContent(const QUrl &url)
Constructs a media content with url providing a reference to the content.
QMediaContent::QMediaContent(const QNetworkRequest &request)
Constructs a media content with request providing a reference to the content.
This constructor can be used to reference media content via network protocols such as HTTP. This may include additional information required to obtain the resource, such as Cookies or HTTP headers.
QMediaContent::QMediaContent(const QMediaResource &resource)
Constructs a media content with resource providing a reference to the content.
QMediaContent::QMediaContent(const QMediaResourceList &resources)
Constructs a media content with resources providing a reference to the content.
QMediaContent::QMediaContent(const QMediaContent &other)
Constructs a copy of the media content other.
QMediaContent::QMediaContent(QMediaPlaylist *playlist, const QUrl &contentUrl = QUrl(), bool takeOwnership = false)
Constructs a media content with playlist.
contentUrl of a playlist is an optional parameter and can be empty.
Set takeOwnership to true if you want QMediaContent to take ownership of the playlist. takeOwnership is set to false by default.
QMediaContent::~QMediaContent()
Destroys the media content object.
QNetworkRequest QMediaContent::canonicalRequest() const
Returns a QNetworkRequest that represents that canonical resource for this media content.
QMediaResource QMediaContent::canonicalResource() const
Returns a QMediaResource that represents that canonical resource for this media content.
QUrl QMediaContent::canonicalUrl() const
Returns a QUrl that represents that canonical resource for this media content.
bool QMediaContent::isNull() const
Returns true if this media content is null (uninitialized); false otherwise.
QMediaPlaylist *QMediaContent::playlist() const
Returns a playlist for this media content or 0 if this QMediaContent is not a playlist.
QMediaResourceList QMediaContent::resources() const
Returns a list of alternative resources for this media content. The first item in this list is always the canonical resource.
bool QMediaContent::operator!=(const QMediaContent &other) const
Returns true if other is not equivalent to this media content; false otherwise.
QMediaContent &QMediaContent::operator=(const QMediaContent &other)
Assigns the value of other to this media content.
bool QMediaContent::operator==(const QMediaContent &other) const
Returns true if other is equivalent to this media content; false otherwise.


Merve Yüksek
Frontend Developer
I am a frontend web developer currently living in Ankara,Turkey. I graduated from Middle East Technical University in 2017.
This is my first website which I developed from scratch.
I am at the beginning of my career journey and having fun with learning and practising continually about web technologies and concepts.
Through this journey I gained many frontend skills which you may find below.
ILG Technologies,Turkey
Frontend Developer
Sep. 2018 - ...
EPT E-commerce Inc., Turkey
Frontend Developer
Mar. 2018 - Jul. 2018
Yasemin Karakaya Middle School,Turkey
Science Teacher Internship
Mar. 2017 - Jun. 2017
Technische Universität Chemnitz,Germany
Erasmus Programme-Faculty of Science
Mar. 2016 - Sep. 2016
METU Development Foundation Schools,Turkey
Science Teacher Internship
Oct. 2015 - Feb. 2016
Middle East Technical University,Turkey
BS-Mathematics and Science Education
2011 - 2017
I had a colorful university life. I was a member of METU Scout Club and METU Aikido Team. Also, I was a volunteer for UNICEF, İLKYAR(Relief foundation for Elementary Schools), Ataturkist Ideology Association, and Çiğdem Environment Association. I am always willing to learn or try new things. Here are some shoots from those lovely times..


MVP Studio is all about connecting people with tech ideas with people who can help make those ideas a reality. Teamwork is where all the action is, so we desire to be a means of connections and provisions. Interns work with developers in the tech field to learn coding and software development. Our developers are experienced and up-to-date with the technology trends, therefore they would provide key insights into your ideas to start making awesome things happen.


Help/FAQ
What is Ijah used for
Ijah is used for
1) given plants/compounds and proteins/diseases,
you want to know the connectivity from plants to compounds to proteins to diseases,
2) given plants/compounds,
you want to know targeted proteins/diseases,
3) given proteins/diseases,
you want to know plants/compounds that target (poteintially) cure such proteins/diseases,
4) validating/cross-checking whether some plant compositions, i.e. Jamu formulas,
have certain efficacy.
How can we download all data available in Ijah?
Please go to our
Downloads menu.
How can we report an issue?
The best way is to file any issue via
ContactUs menu.
You can also open an issue in our public repository.
How can we get the sql dump of Ijah database?
Please contact us.
Is the source code of Ijah Webserver publicly availaible?
Yes, please see our public repository here.
How to cite the work of Ijah Webserver?
In the meantime, please use
ijah_webserver_online.bib
How many visitors have visited this Ijah Webserver?
Please see the visitor log on the bottom-right of this page.
The log has been running since January 13th, 2017, 6:00 PM (GMT+7:00).
For the detailed statistics, please click inside the log area.
The page layout is damaged, why so? how to solve?
We are working on adaptive page layout with respect to monitor resolution,
and currently it is in progress.
In the meantime, please zoom out/in using your browser zooming button.
Is there any online forum for Ijah users?
Yes, please join us at<EMAIL_ADDRESS>How to open .csv files? Which application should be used?
You can open .csv files using standard text editor, such as WordPad, Notepad++.
You can also open them using Ms Excel with "comma" as the delimiter.
When opening using MS Excel via "File -> Open",
please make sure that you set the file types (to show/open) to "All Files".
Is there any related links pertaining to Indonesia Jamu?
Yes, we have listed several as follows:
http://jamu.or.id/,
http://jamu.ipb.ac.id/
Recommended links for further description about Indonesia plants?
Good references for Indonesian plants include:
herbalisnusantara.
Our question is not in the list, where should we ask?
Please contact us.


Hi there, and thanks for taking the time to learn more about me! My career history includes experience in the diverse fields of Acting and most recently, Software Development!
Outside of work you'll find me cooking something delicious for my family and friends, cheering for the Cubs, enjoying a play, or rewatching a classic film. If it involves being creative or having fun, count me in!
Coding is super creative, and I am thrilled that I've found another outlet for my artistic energy. My interest in programming came to fruition upon my admission to the Actualize coding bootcamp. I am proud to say I graduated from the program in March after building a fullstack web app called Dayly! Through Dayly, a user can create home light automation by way of a daily events scheduler. This app helps a user organize their schedule, while cutting costs on their electric bill. This application uses a Ruby on Rails backend, a Javascript oriented frontend and integrates with the Wink API and Yahoo Weather API.
Currently, I am looking to join a development team that values mentorship, innovation and is excited about being helpful to the world. I am passionate about approaching this craft as an art, rather than a science and I believe I can be of great value combining my new skills with my training as an Actor!
I recieved my BFA in Musical Theatre from Kent State Univeristy where I honed my performance skills and gained a strong ability to connect with people. For the past 10 years I've had the opportunity to perform live across the Chicagoland area, and managed to make my way onto the small screen as well!
Being an artist is about making something out of nothing, telling a story and making an impact on someone's life, even if only for a moment.


--- layout: template menu : tutorial title : JMS tutorial ---
In this tutorial, we will see how to use Easy Batch to asynchronously process data in parallel from a JMS queue:
We will also show how to use the EasyBatchReportsAggregator
API to merge partial reports into a global and final one.
We will create a custom record reader that pulls data from the JMS queue. To distribute the work, messages posted to the queue will be processed by several Easy Batch engines.
We will use the same resources as in the Hello World tutorial (greetings CSV data and Greeting
POJO) to create the application:
id,name
1,foo
2,bar
3,bax
4,baz
public class Greeting {
private int id;
private String name;
//Getters and setters omitted
}
As in the Hello World tutorial, the goal is to simply write a greeting message to the console for each CSV record.
We will use the same GreetingProcessor
in this tutorial.
So let's get started!
The main point in this tutorial is how to read data from the JMS queue. We will implement a custom record reader that will pull data from the queue. So here is the implementation:
public class GreetingJmsReader implements RecordReader {
private int id;
private int currentRecordNumber;
QueueConnection queueConnection;
QueueSession queueSession;
QueueReceiver queueReceiver;
Queue queue;
private boolean stop;
public GreetingJmsReader(int id) {
this.id = id;
}
@Override
public void open() throws Exception {
Properties p = new Properties();
p.load(GreetingJmsReader.class.getResourceAsStream(("/jndi.properties")));
Context jndiContext = new InitialContext(p);
QueueConnectionFactory queueConnectionFactory =
(QueueConnectionFactory) jndiContext.lookup("QueueConnectionFactory");
queue = (Queue) jndiContext.lookup("q");
queueConnection = queueConnectionFactory.createQueueConnection();
queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queueReceiver = queueSession.createReceiver(queue);
queueConnection.start();
}
@Override
public boolean hasNextRecord() {
return !stop;
}
@Override
public Record readNextRecord() throws Exception {
String record;
Message m = queueReceiver.receive();
TextMessage message = (TextMessage) m;
record = message.getText();
stop = record.equalsIgnoreCase("quit");
System.out.println("Greeting Reader " + id + " : received JMS message: " + record);
return new StringRecord(++currentRecordNumber, record);
}
@Override
public Long getTotalRecords() {
//undefined, cannot be calculated in advance
return null;
}
@Override
public String getDataSourceName() {
try {
return "JMS queue: " + queue.getQueueName();
} catch (JMSException e) {
throw new RuntimeException("Unable to get queue name", e);
}
}
@Override
public void close() throws Exception {
if (queueConnection != null) {
queueConnection.close();
}
if (queueSession != null) {
queueSession.close();
}
if (queueReceiver != null) {
queueReceiver.close();
}
}
}
The implementation is self explanatory: the reader uses a JMS connection factory and reads greetings records from the queue named q
until it receives the message quit
.
Now let's create 2 Easy Batch instances to process data posted to the JMS queue:
public class Launcher {
public static void main(String[] args) throws Exception {
//start embedded JMS broker
JMSUtil.startBroker();
// Build 2 easy batch engines
EasyBatchEngine easyBatchEngine1 = buildEasyBatchEngine(1);
EasyBatchEngine easyBatchEngine2 = buildEasyBatchEngine(2);
//create a 2 threads pool to call Easy Batch engines in parallel
ExecutorService executorService = Executors.newFixedThreadPool(2);
Future<EasyBatchReport> batchReportFuture1 = executorService.submit(easyBatchEngine1);
Future<EasyBatchReport> batchReportFuture2 = executorService.submit(easyBatchEngine2);
//wait for easy batch instances termination and get partial reports
EasyBatchReport easyBatchReport1 = batchReportFuture1.get();
EasyBatchReport easyBatchReport2 = batchReportFuture2.get();
//merge partial reports into a global one
ReportMerger reportMerger = new DefaultReportMerger();
Report finalReport = reportMerger.mergeReports(easyBatchReport1, easyBatchReport2);
System.out.println(finalReport);
//shutdown executor service
executorService.shutdown();
//stop embedded JMS broker
JMSUtil.stopBroker();
}
public static EasyBatchEngine buildEasyBatchEngine(int id) {
return new EasyBatchEngineBuilder()
.registerRecordReader(new GreetingJmsReader(id))
.registerRecordMapper(new DelimitedRecordMapper(Greeting.class, new String[]{"id","name"}))
.registerRecordProcessor(new GreetingSlowProcessor())
.build();
}
}
To keep the tutorial simple, we have used an embedded message broker. The broker setup details are not shown here for readability sake.
To launch Easy Batch instances in parallel, we have used a java.util.concurrent.ExecutorService
with a thread pool of 2 workers.
To send greetings records as JMS messages to the queue, we will use the following utility class:
public class JMSSenderLauncher {
public static void main(String[] args) throws Exception {
//init JMS factory and session
JMSUtil.initJMSFactory();
// Send some messages to JMS queue
Scanner scanner = new Scanner(System.in);
String input;
do {
input = scanner.nextLine();
JMSUtil.sendJmsMessage(input);
} while (!input.equalsIgnoreCase("quit"));
//close JMS session
JMSUtil.closeJMSSession();
}
}
This class makes the tutorial interactive : we will type in data in the console to send it to the JMS queue and see how and which Easy Batch instance will process it. To stop the execution, we have to send quit message to the queue.
That's all, we can now run the tutorial and see the results.
The complete source code of this tutorial is available here.
To run the tutorial with maven, first launch the following command in the easybatch-tutorials
directory :
mvn exec:java -PrunJmsTutorial
This will start the embedded broker and Easy Batch instances that will listen to JMS messages posted to the queue. Then launch the JMS sender utility class in a separate console to be able to send data to the queue:
mvn exec:java -PrunJmsSender
You will be able to type in CSV greetings records in the console and see which Easy Batch engine has processed the record and what was the processing result. Here is a sample output:
1,foo
Message '1,foo' sent to JMS queue
2,bar
Message '2,bar' sent to JMS queue
quit
Message 'quit' sent to JMS queue
INFO: Initializing easy batch engine
INFO: Data source: JMS queue: q
INFO: Strict mode: false
INFO: Total records = N/A
INFO: easy batch engine is running...
Greeting Reader 2 : received JMS message: 1,foo
Hi foo! Your id is 1
Greeting Reader 1 : received JMS message: 2,bar
Hi bar! Your id is 2
In this tutorial, we have seen how to use Easy Batch along with JMS to create an asynchronous batch application.
We have implemented a custom record reader that reads data from a JMS queue. To distribute the work across multiple Easy Batch instances, we have used
a thread pool through the ExecutorService
and submitted Easy Batch instances to it. This tutorial shows a powerful technique to distribute data processing
across multiple Easy Batch "workers" asynchronously.
Finally, we have also seen how to use the EasyBatchReportsAggregator
API to merge partial reports into a global one.


For anything that’s installable (that is, a package folder, tarball, tarball url, git url, name@tag,
name@version, name, or scoped name), this command will fetch it to the cache, copy the tarball to the current
working directory as <name>-<version>.tgz
, and then write the filenames out to stdout.
If the same package is specified multiple times, then the file will be overwritten the second time.
If no arguments are supplied, then npm packs the current package folder.
The --dry-run
argument will do everything that pack usually does without actually packing anything.
That is, it reports on what would have gone into the tarball, but nothing else.


{%extends 'baseg1.html'%} {%block title%}Adventure X | Poverty{%endblock%} {%block content%}
One of the tent dwellers tells you about a flood that swept through the city ealier this week


Twitch Streams
{{stream.displayName}}
Online – {{stream.game}}
Offline
{{stream.status}}
Go to Twitch
Made with ♡ by -
Will Germany


5 references to All
Microsoft.PowerShell.Commands.Utility (1)
commands\utility\GetMember.cs (1)
81
public PSMemberTypes MemberType { get; set; } = PSMemberTypes.
All
;
System.Management.Automation (4)
engine\InternalCommands.cs (2)
705
_inputObject.Members.Match(_propertyOrMethodName, PSMemberTypes.
All
);
2492
ReadOnlyPSMemberInfoCollection<PSMemberInfo> members = _inputObject.Members.Match(_property, PSMemberTypes.
All
);
engine\MshMemberInfo.cs (2)
4179
return Match(name, PSMemberTypes.
All
, MshMemberMatchOptions.None);
4919
return Match(name, PSMemberTypes.
All
, MshMemberMatchOptions.None);


[gecode-users] Unary: Allow for negative durations when task is not mandatory
Roberto Castañeda Lozano
rcas at kth.se
Thu Nov 21 09:50:02 CET 2013
Hi Andrea, you are right, the check is there because I wrote the code
some time ago and it was required then. You can remove it and everything
should work just fine.
Best regards,
Roberto
On 11/20/2013 07:51 PM, Andrea Peano wrote:
> Hello,
> your code was very useful.
>
> I've just seen that new implementations of standard nooverlap don't
> check anymore for multiple occurrences of the same variable within the
> same array (e.g., x0.same(home)). Am I right? Instead, your propagator
> still checks it.
> I think this limitation might be too restrictive... But I cannot say
> whether it is actually required or not.
> What do you think about that?
>
> Thank you,
> Andrea
>
>
>
>
>
> On Fri, Nov 1, 2013 at 3:14 PM, Andrea Peano <andrea.peano at unife.it
> <mailto:andrea.peano at unife.it>> wrote:
>
> Hi Roberto,
> thank you very much. I'm pretty sure that it's close enough to my
> needs!
>
> I'll try it asap :)
>
> Thanks,
> Andrea
>
>
> On Fri, Nov 1, 2013 at 9:45 AM, Roberto Castaneda Lozano
> <rcas at kth.se <mailto:rcas at kth.se>> wrote:
>
> Hi Andrea,
>
> Interestingly enough I implemented for my own purposes a
> similar generalization to nooverlap a year ago, see the
> attachment.
>
> Best regards,
>
> Roberto
>
> From: users-bounces at gecode.org
> <mailto:users-bounces at gecode.org> [users-bounces at gecode.org
> <mailto:users-bounces at gecode.org>] on behalf of Andrea Peano
> [andrea.peano at unife.it <mailto:andrea.peano at unife.it>]
> Sent: Thursday, October 31, 2013 12:50
> To: Christian Schulte
> Cc: users at gecode.org <mailto:users at gecode.org>
> Subject: Re: [gecode-users] Unary: Allow for negative
> durations when task is not mandatory
>
> Yes, sure it's useful, thank you.
> I'm just wondering whether a modification of the unary might
> be more efficient or not.
> In such a case, I could modify the source files of Gecode, by
> adding another (modified) unary constraint, otherwise...
> should I write an user-defined propagator?
>
> I've the same doubt regarding the nooverlap, I'd like to
> achieve a generalization of it.
> In this generalization rectangles of the same "group" can
> overlap eachother, but they cannot overlap other rectangles of
> other groups.
> So the new nooverlap will take in input an IntArgs array which
> contains the group IDs.
>
> In your guide I read:
> "The constraints [nooverlap] are implemented by a naive
> propagator (considering pairwise no-
> overlap between rectangles including constructive disjunction,
> see also GCCAT: diffn),
> this will change in the future. "
>
> I could add a condition within the implementation of the
> nooverlap, that checks if the two rectangles belong to two
> different groups. Is it right?
>
> Do you have any suggestion?
>
> Thank you,
> Andrea
>
> On Wed, Oct 30, 2013 at 1:05 PM, Christian Schulte
> <cschulte at kth.se <mailto:cschulte at kth.se>> wrote:
>
> Hi,
>
> There is a generic trick for situations like this: you
> introduce new variables tend', tstart' and tdur' and only
> enforce that they are equal to tend, tstart,
> tdur respectively when the Boolean variable is 1. That means
> if the Boolean variable is 0, the new variables can have
> whatever value.
>
> Hope that helps
> Christian
>
> --
> Christian Schulte, Professor of Computer Science, KTH,
>
> www.ict.kth.se/~cschulte/ <http://www.ict.kth.se/%7Ecschulte/>
>
>
> From:
>
> users-bounces at gecode.org <mailto:users-bounces at gecode.org>
> [mailto:users-bounces at gecode.org
> <mailto:users-bounces at gecode.org>]
> On Behalf Of Andrea Peano
>
> Sent: Tuesday, October 29, 2013 10:21 AM
>
> To:
> users at gecode.org <mailto:users at gecode.org>
>
> Subject: [gecode-users] Unary: Allow for negative durations
> when task is not mandatory
>
>
> Hello all,
>
> I would modify the unary constraint in order to allow negative
> durations (tend<tstart) when the boolvar m (mandatory) is 0.
>
> Is there an easy way to do this?
>
> Thank you,
>
> Andrea
>
> --
>
>
>
>
> Andrea Peano - PhD student
>
>
> Department of Engineering - University of Ferrara
> Tel: +39 0532 97 4827 <tel:%2B39%200532%2097%204827>
>
>
>
>
>
>
>
> --
>
> Andrea Peano - PhD student
> Department of Engineering - University of Ferrara
> Tel: +39 0532 97 4827
>
>
>
>
> --
>
> Andrea Peano - PhD student
> Department of Engineering - University of Ferrara
> Tel: +39 0532 97 4827
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20131121/f5b37c38/attachment-0001.html>
More information about the users
mailing list


Quick Start
Get started with Docker
Docker for Windows 10
Docker for Windows requires:
Windows 10 64bit: Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or later).
Virtualization is enabled in BIOS. Typically, virtualization is enabled by default. This is different from having Hyper-V enabled. For more detail see Virtualization must be enabled in Troubleshooting.
CPU SLAT-capable feature.
At least 4GB of RAM.
If you do not have windows 10 Pro, Enterprise or Education, Please use Docker Toolbox.
This is the easiest way to get started with docker and TAP. Windows 10 has an app called Docker For Windows which will handle everything automatically for you. See How To install Docker For Windows
- Ensure you have docker for windows installed and it is running.
- First, quickly create a virtual switch for your virtual machine (VM) to use, so they can use your network adapter.
- Launch Hyper-V Manager
- Click Virtual Switch Manager in the right-hand menu
- Click Create Virtual Switch of type External
- Give it the name “myswitch”, and check the box to share your host machine’s active network adapter
-
Now create a VM we can use to run TAP on. (You may need to run this in admin, press windows key + x > Command Prompt (Admin))
docker-machine create -d hyperv --hyperv-memory 2048 --hyperv-virtual-switch "myswitch" myvm1
Notice we are passing in some custom variables
- We are giving it 2gb of ram
- We are choosing the switch we just created “myswitch”
- We are naming it “myvm1”
-
Once it is created, verify that it is running and write down it’s IP. (here mine is <IP_ADDRESS>)
docker-machine ls
-
To control your newly created docker machine there is a simple command you can run
docker-machine env myvm1
This will return a command you can run in order to automatically send your docker commands to your vm. (the last line minus the REM)
Yours may be different than mine, be sure to run whatever command your terminal returns.
run that command
@FOR /f "tokens=*" %i IN ('docker-machine env myvm1') DO @%i
Now any docker commands we run will run on the machine we created! Now let’s get TAP running.
-
run docker run and pass in a number of parameters
docker run -e JAVA_OPTS="-Xms512M -Xmx6000M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" -e TAP_HOSTS="<IP_ADDRESS>:9000" -e TAP_SECRET="test" -p 9000:9000 andrewresearch/tap:3.2.2
There are a few parameters here:
- JAVA_OPTS is passing in our custom java environment variables which allow us to increase the amount of memory the application can use.
- TAP_HOSTS is telling our application which IP is authorised to use our application, In this case you need to pass in your machine IP you wrote down earlier. In my case it is <IP_ADDRESS>:9000
- TAP_SECRET is a secret variable we can pass through to our application to ensure we are allowed to run the image. in this case just include “test”
- -p tells the docker machine which port to use, So we are mapping our Port 9000 to the machines port 9000
- lastly we include the docker image name in this case is “andrewresearch/tap:3.2.2” (3.2.2 is the version number, which may change at a later date. be sure to use the latest available)
-
That’s it! if all went well, The docker should mention
factorie-nlp-api - Completed in xms
and you should be able to access your TAP instance by navigating to your Docker IP in a browser! (in my case <IP_ADDRESS>:9000)If there are any issues with this documentation, or you wish to suggest changes, open an issue.
Docker for Mac
Mac hardware must be a 2010 or newer model, with Intel’s hardware support for memory management unit (MMU) virtualization, including Extended Page Tables (EPT) and Unrestricted Mode. You can check to see if your machine has this support by running the following command in a terminal: sysctl kern.hv_support
MacOS El Capitan 10.11 and newer macOS releases are supported. We recommend upgrading to the latest version of macOS.
At least 4GB of RAM
VirtualBox prior to version 4.3.30 must NOT be installed (it is incompatible with Docker for Mac). If you have a newer version of VirtualBox installed, it’s fine.
If you do not have a late enough Mac model Please use Docker Toolbox.
This is the easiest way to get started with docker and TAP. Late models of Mac have an app called Docker For Mac which will handle everything automatically for you. See How To install Docker For Mac
- Ensure you have docker for mac installed and it is running.
- Ensure you have VirtualBox version 5+ installed on your system
- Now create a VM we can use to run TAP on.
docker-machine create -d virtualbox --virtualbox-memory 2048 myvm1
Notice we are passing in some custom variables
- We are giving it 2gb of ram
- We are naming it “myvm1”
-
Once it is created, verify that it is running and write down it’s IP. (here mine is <IP_ADDRESS>)
docker-machine ls
-
To control your newly created docker machine there is a simple command you can run
docker-machine env myvm1
This will return a command you can run in order to automatically send your docker commands to your vm. (the last line minus the REM)
Yours may be different than mine, be sure to run whatever command your terminal returns.
run that command
eval $(docker-machine env myvm1)
Now any docker commands we run will run on the machine we created! Now let’s get TAP running.
-
run docker run and pass in a number of parameters
docker run -e JAVA_OPTS="-Xms512M -Xmx6000M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" -e TAP_HOSTS="<IP_ADDRESS>:9000" -e TAP_SECRET="test" -p 9000:9000 andrewresearch/tap:3.2.2
There are a few parameters here:
- JAVA_OPTS is passing in our custom java environment variables which allow us to increase the amount of memory the application can use.
- TAP_HOSTS is telling our application which IP is authorised to use our application, In this case you need to pass in your machine IP you wrote down earlier. In my case it is <IP_ADDRESS>:9000
- TAP_SECRET is a secret variable we can pass through to our application to ensure we are allowed to run the image. in this case just include “test”
- -p tells the docker machine which port to use, So we are mapping our Port 9000 to the machines port 9000
- lastly we include the docker image name in this case is “andrewresearch/tap:3.2.2” (3.2.2 is the version number, which may change at a later date. be sure to use the latest available)
-
That’s it! if all went well, The docker should mention
factorie-nlp-api - Completed in xms
and you should be able to access your TAP instance by navigating to your Docker IP in a browser! (in my case <IP_ADDRESS>:9000)If there are any issues with this documentation, or you wish to suggest changes, open an issue.
Docker ToolBox
Ensure you have installed Docker Toolbox
Install Docker Toolbox for Windows
Install Docker Toolbox for Mac
When installing Docker Toolbox, Ensure you install VirtualBox and Git, To ensure the program works correctly.
Once you have Docker Toolbox running and have run the Quick Setup Icon it created you should have this screen.
-
Firstly let’s remove the default docker machine, as we need to create one with 2gb memory.
docker-machine rm default
-
Great, Let’s create a new one and pass in some custom parameters
docker-machine create -d virtualbox --virtualbox-memory=2048 myvm1
This created a new machine called “myvm1” and gives it 2gb of ram instead of the default 1gb.
-
Great! let’s get our docker machine IP.
docker-machine ls
My ip in this case would be <IP_ADDRESS>
-
Now we want to control our docker machine
docker-machine env myvm1
this will return a command we can run to set our machine as the active environment.
The last line is what we want, copy and paste it to set this machine as active.
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env myvm1)
-
Now we can start our Tap Image.
docker run -e JAVA_OPTS="-Xms512M -Xmx6000M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" -e TAP_HOSTS="<IP_ADDRESS>:9000" -e TAP_SECRET="test" -p 9000:9000 andrewresearch/tap:3.2.2
There are a few parameters here:
- JAVA_OPTS is passing in our custom java environment variables which allow us to increase the amount of memory the application can use.
- TAP_HOSTS is telling our application which IP is authorised to use our application, In this case you need to pass in your machine IP you wrote down earlier. In my case it is <IP_ADDRESS>:9000
- TAP_SECRET is a secret variable we can pass through to our application to ensure we are allowed to run the image. in this case just include “test”
- -p tells the docker machine which port to use, So we are mapping our Port 9000 to the machines port 9000
- lastly we include the docker image name in this case is “andrewresearch/tap:3.2.2” (3.2.2 is the version number, which may change at a later date. be sure to use the latest available)
Once that runs it will automatically download everything you require and then let you know it is running with
[info] factorie-nlp-api - Completed in xxxxx ms
-
That’s it! TAP is now running in a docker machine, You should be able to use TAP in the browser by navigating to you machine IP with the port 9000
In my case i would navigate to <IP_ADDRESS>:9000
If there are any issues with this documentation, or you wish to suggest changes, open an issue.
Docker CE for Linux
Ensure you have installed Docker CE
They have instructions for several versions of linux, Ensure you follow the instructions for your particular version of linux.
Ensure you have installed Docker Machine
Install docker machine on linux
Ensure you have installed Oracle VirtualBox for linux
-
Create a Virtual Machine to run our docker container.
docker-machine create -d virtualbox --virtualbox-memory=2048 myvm1
-
run
docker-machine ls
to get the IP of our new machine.In my case the IP is <IP_ADDRESS>. Let’s write that down for later.
-
We need to set our new docker machine as our active environment.
docker-machine env myvm1
This will return a command we can run which will set our environment to the active docker machine. Copy and paste the last line into your terminal.
eval $(docker-machine env myvm1)
Now any docker commands we run will run on the docker machine.
-
Run our TAP image.
docker run -e JAVA_OPTS="-Xms512M -Xmx6000M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" -e TAP_HOSTS="<IP_ADDRESS>:9000" -e TAP_SECRET="test" -p 9000:9000 andrewresearch/tap:3.2.2
There are a few parameters here:
- JAVA_OPTS is passing in our custom java environment variables which allow us to increase the amount of memory the application can use.
- TAP_HOSTS is telling our application which IP is authorised to use our application, In this case you need to pass in your machine IP you wrote down earlier. In my case it is <IP_ADDRESS>:9000
- TAP_SECRET is a secret variable we can pass through to our application to ensure we are allowed to run the image. in this case just include “test”
- -p tells the docker machine which port to use, So we are mapping our Port 9000 to the machines port 9000
- lastly we include the docker image name in this case is “andrewresearch/tap:3.2.2” (3.2.2 is the version number, which may change at a later date. be sure to use the latest available)
Great once that completes you should see the message
[info] factorie-nlp-api - Completed in xxxxx ms
-
That’s it! you should be good to go. You can now access the TAP instance by navigating to your machine ip in your browser with the port 9000
In my case that would <IP_ADDRESS>:9000
If there are any issues with this documentation, or you wish to suggest changes, open an issue.
Run Docker on Digital Ocean
Digital Ocean offers a 1 click Docker Droplet that is capable of running TAP for $10 a month.
use this referral code to receive $10 in free credit upon signing up and adding a payment method.
https://m.do.co/c/694c2ae2c08b
-
Once you have an account Create a new Project to use for TAP.
Once created, Click Create > Droplet
Choose Docker and change the size to the $10 droplet.
Disable backups, and choose a datacenter that is closest to you.
Add an SSH key or use your existing one. See here for instructions on this.
Finally give it a name you will recognize and choose the project you created.
Then click create.
It may take a few minutes to setup.
-
There are 2 ways we can “talk” to our new droplet.
We can use the built in console (requires setting up a root password) Or we can use our ssh key and a client called Putty.
To connect with Putty follow this guide
To Set a Root Password and use the console follow this guide
-
Once you are logged in on your droplet you should have a command line in front of you.
-
We need to add a swapfile to enable enough ram to get java running.
Run the following command to add a swap file.
sudo fallocate -l 1G /swapfile
let’s lock down the swap file so no one else can use it
sudo chmod 600 /swapfile
verify that it’s permissions are correct by typing
ls -lh /swapfile
You should see the following
Great, Now mark it as swap so we can actually use it
sudo mkswap /swapfile
Now we can enable it
sudo swapon /swapfile
please note this will be removed if you restart the server. If you wish to make it permanent please see the following guide here
-
Great now we can run the following command to setup your droplet.
Please note you need to replace DROPLET-IP with the IP of your droplet.
docker run -e JAVA_OPTS="-Xms512M -Xmx6000M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" -e TAP_HOSTS="DROPLET-IP:9000" -e TAP_SECRET="test" -p 9000:9000 andrewresearch/tap:3.2.2
That’s it! You should be up and running and now can access your Tap Client from the browser by typing in your Droplet IP and adding the port.
DROPLET-IP:9000
Get started locally without Docker
-
First clone the project source code with git:
git clone https://github.com/heta-io/tap
-
Ensure you have the latest sbt installed
-
Create a file called
LocalSbtSettings.scala
in the /project directory. This will hold your specific settings for your build:import sbt._ object LocalSbtSettings { val githubBaseUrl = "https://github.com/heta-io/tap" //Change this to your fork val scaladocApiBaseUrl = "https://heta-io.github.io/tap/" //Change this to your fork val dockerRepoURI = "the.url.to.publish.docker.images.to" //leave as is if not using docker }
-
Now we need to setup some variables.
Windows 10
- Open Start and type “path”
- Click “Edit System Environment Variables”
- Click Environment Variables
- Click New under “User Variables”
- Enter
SBT_OPTS
for name and under value enter-Xmx6G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=6G -Xss6G
- Click ok
- Click New under “User Variables”
- Enter
TAP_HOSTS
for name and under value enterlocalhost:9000
- Click ok
- Click New under “User Variables”
- Enter
TAP_SECRET
for name and under value entertest
- Click ok
- Click Path under “User Variables” and click Edit
- Ensure you have an entry that links to your java directory eg
C:\Program Files\Java\jdk1.8.0_181\bin
- if it not present, add it and make sure it puts to your jdk director and the bin folder.
- Click ok and exit the variables screen.
- close and reopen your terminal window to refresh the variables
Windows 7/Vista/8
- Open Start > Control Panel > System > Advanced system settings > environment variables
- Click “Edit System Environment Variables”
- Click Environment Variables
- Click New under “User Variables”
- Enter
SBT_OPTS
for name and under value enter-Xmx6G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=6G -Xss6G
- Click ok
- Click New under “User Variables”
- Enter
TAP_HOSTS
for name and under value enterlocalhost:9000
- Click ok
- Click New under “User Variables”
- Enter
TAP_SECRET
for name and under value entertest
- Click ok
- Click Path under “User Variables” and click Edit
- Ensure you have an entry that links to your java directory eg
C:\Program Files\Java\jdk1.8.0_181\bin
- if it not present, add it and make sure it puts to your jdk director and the bin folder.
- Click ok and exit the variables screen.
- close and reopen your terminal window to refresh the variables
MacOS
- Find your bash profile
~/.bash_profile
- Open your bash profile file
nano .bash_profile
- Add the following lines
export SBT_OPTS='-Xmx6G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=6G -Xss6G' export TAP_HOSTS='localhost:9000' export TAP_SECRET='test'
- Press Ctrl+X and Y to save and exit
- Open your path variables
sudo nano /etc/paths
- ensure that one of the lines leads to your jdk folder. See this guide for help
-
Open terminal in the root directory of the tap project.
-
Run the following command inside the terminal sbt run
-
Connect to
http://localhost:9000
with your web browser
FAQ and common issues.
sbt is not recognised
You have not installed SBT and setup the path variable.
Install SBT from here and ensure set path environment variables is selected
javac is not found in this directory
You have not setup your javac path variable, or it is not pointing to the correct directory.
See here for help setting this up
Document Last Updated on 21/11/2018


We need YOU to help make SRCCON:WORK work. In addition to the participants who lead sessions throughout the conference, we’ll also need a small group of people to help us keep the two-day event running smoothly. Want to help? Consider volunteering at SRCCON:WORK.
Volunteers will help with:
Volunteering will be a significant time commitment. For offering that time and missing out on some (but not all!) of the conference, you will have our gratitude, free entry to the event, a SRCCON:WORK Volunteer T-shirt, and the knowledge that you played an integral role in making this brand-new event a success.
If you want to attend SRCCON:WORK and are excited about playing this type of vital support role, please email us for information about volunteering.


{% extends "base.html" %} {% load static %} {% block title %}RMG - Reaction Mechanism Generator{% endblock %} {% block extrahead %}{% endblock %} {% block navbar_items %}{% endblock %} {% block sidebar_items %}{% endblock %} {% block page_title %}RMG - Reaction Mechanism Generator{% endblock %} {% block page_body %}
RMG is an automatic chemical reaction mechanism generator that constructs kinetic models composed of elementary chemical reaction steps using a general understanding of how molecules react.
Flux diagram for the pyrolysis of 1,3-hexadiene, an example model generated
with RMG, showing the net carbon flux at an instant near the end of the
simulation.
You are now visiting the interactive website for RMG, featuring web tools to help you visualize RMG-generated models, as well as tools to view and search the RMG databases for thermodynamics, transport, and kinetics data.
You can obtain a copy of the actual RMG software through the links below:
Latest Stable Version: {{version}} (Download and Install)
Source Code: RMG-Py Github Repository
RMG is a free, open-source software package (distributed under the MIT/X11 license). The software is developed in the William H. Green research group in the Department of Chemical Engineering at MIT and in the Richard H. West research group at the Department of Chemical engineering at Northeastern University
Please post comments or concerns about the website to our issues page or email the RMG Development Team at<EMAIL_ADDRESS>Please subscribe to the RMG users mailing list to receive the latest updates about the RMG software and other news.
{% endblock %}