11
1 When people use scales that are not correct;
Yahweh is angry that they are stealing from their customers;
he is delighted with those who use correct weights on the scales.
2 People who are proud live in such a way that always ends in disgrace;
people who are humble are the only ones who can learn about wisdom.
3 People who keep their promises also make choices that lead them in the right way;
those who cannot be trusted are destroyed by their own dishonesty.
4 Your money will not help you on the day Yahweh judges the world;
but if you do what is right, you will be kept safe from many dangers, even death.
5 When people are honest and good, they know where they should go and what they should do;
but those who do evil find that their wickedness will destroy them.
6 God rescues those who do what is right,
but those who do what is evil become slaves to their desires.
7 When a wicked person dies, all he hoped for in the future is lost;
what he wanted to accomplish with his strength, will never happen.
8 The one who does what is right, Yahweh delivers from trouble;
and Yahweh gives that trouble to the wicked.
9 A person who has no kind of religious faith uses his words to destroy his neighbor;
but people who do right will be saved by the knowledge they have gathered.
10 When things go well for those who do what is right, those in their city are happy,
and shouts of joy are heard when wicked people die.
11 When there are people in the city who please God and they give good gifts to others, the city becomes great;
but the words spoken by the wicked tear down the city.
12 The one who treats his friend with contempt has no good judgment;
a person who has learned what is important says nothing.
13 Those who spread gossip tell secrets to others,
but a person you can trust will not talk about it.
14 A nation will be destroyed if it does not have leaders who guide it wisely;
but the nation will have victory when it listens to many advisors.
15 If you promise to pay off a loan that is taken by a stranger, you will lose your money.
You will be safe if you refuse to make any kind of agreement to pay someone else's debts.
16 A kindhearted woman earns respect;
but violent people take hold of riches.
17 By their kindness to others kind people give good gifts to themselves,
but one who is cruel hurts himself by his cruelty.
18 Wicked people tell lies to make more money,
but those who do what is right will be paid even more because they earned it.
19 Those who do what is right will live,
but those who do what is wrong will die.
20 Yahweh hates those who take good things and they twist them and they do bad things with them,
but he is delighted with those who always do what is right.
21 It is certain that evil people will not escape their punishment.
and the children of those who do right will be kept safe.
22 If you see a gold ring in a pig's nose,
that is very much like a beautiful woman who does not have good sense.
23 Those who do what is right desire things that result in good,
but the reward of the wicked is that they will experience Yahweh's wrath.
24 If a person sows seed, he can expect to harvest a crop;
his few seeds will give him much more;
another person does not plant a crop, and he becomes poor.
25 Those who give generously to others will prosper;
if you share your water with other people, you will have enough for yourself, too.
26 People will curse the merchant who will not sell them grain,
but they praise the one who sells it.
27 If you work hard and go out to find what is good, you will also find good will.
but if you look for evil, you will find it.
28 Those who trust in their money will fall down,
but those who do what is right will grow like a healthy tree.
29 Those who bring troubles to their families will inherit nothing,
and those who do foolish things will become the servants of those who are wise.
30 Those who do what is right will be like a life giving tree,
but acts of violence take away life.
31 It is sure that those who do what is right will get what they truly deserve;
but even more, the person who does bad things
and the one who sins against Yahweh,
will surely receive what they deserve.


{% extends "regform.html" %} {% block helppage %}
This screen lets you change the details of a proposed session.
Note that you cannot change the topic you proposed your session in. You'll have to ask the topic lead to redirect your suggestion to another topic.
{% endblock %} {% block formtitle %}


If you have a valid ID from the DMV, you can register online. Otherwise, see full instructions here.
Any kind of ID—a photo ID is not required.
You always have the right to vote. If you believe you are at the poll site assigned to your home address, ask for an affidavit ballot. (An affidavit ballot just means that the Board of Elections will double check your voter registration before counting your vote.)
Note that your vote will not be counted if you vote at a poll site that is not tied to where your registered home address is, so double check this using NY's Voter Lookup Tool.


unshare - disassociate parts of the process execution context
#define _GNU_SOURCE
#include <sched.h>
int unshare(int flags);
unshare() allows a process (or thread) to disassociate parts of its
execution context that are currently being shared with other processes (or
threads). Part of the execution context, such as the mount namespace, is
shared implicitly when a new process is created using fork(2) or
vfork(2), while other parts, such as virtual memory, may be shared by
explicit request when creating a process or thread using clone(2).
The main use of unshare() is to allow a process to control
its shared execution context without creating a new process.
The flags argument is a bit mask that specifies which parts
of the execution context should be unshared. This argument is specified by
ORing together zero or more of the following constants:
- CLONE_FILES
- Reverse the effect of the clone(2) CLONE_FILES flag. Unshare
the file descriptor table, so that the calling process no longer shares
its file descriptors with any other process.
- CLONE_FS
- Reverse the effect of the clone(2) CLONE_FS flag. Unshare
filesystem attributes, so that the calling process no longer shares its
root directory (chroot(2)), current directory (chdir(2)), or
umask (umask(2)) attributes with any other process.
- CLONE_NEWCGROUP (since Linux 4.6)
- This flag has the same effect as the clone(2)
CLONE_NEWCGROUP flag. Unshare the cgroup namespace. Use of
CLONE_NEWCGROUP requires the CAP_SYS_ADMIN capability.
- CLONE_NEWIPC (since Linux 2.6.19)
- This flag has the same effect as the clone(2) CLONE_NEWIPC
flag. Unshare the IPC namespace, so that the calling process has a private
copy of the IPC namespace which is not shared with any other process.
Specifying this flag automatically implies CLONE_SYSVSEM as well.
Use of CLONE_NEWIPC requires the CAP_SYS_ADMIN
capability.
- CLONE_NEWNET (since Linux 2.6.24)
- This flag has the same effect as the clone(2) CLONE_NEWNET
flag. Unshare the network namespace, so that the calling process is moved
into a new network namespace which is not shared with any previously
existing process. Use of CLONE_NEWNET requires the
CAP_SYS_ADMIN capability.
- CLONE_NEWNS
- This flag has the same effect as the clone(2) CLONE_NEWNS
flag. Unshare the mount namespace, so that the calling process has a
private copy of its namespace which is not shared with any other process.
Specifying this flag automatically implies CLONE_FS as well. Use of
CLONE_NEWNS requires the CAP_SYS_ADMIN capability. For
further information, see mount_namespaces(7).
- CLONE_NEWPID (since Linux 3.8)
- This flag has the same effect as the clone(2) CLONE_NEWPID
flag. Unshare the PID namespace, so that the calling process has a new PID
namespace for its children which is not shared with any previously
existing process. The calling process is not moved into the new
namespace. The first child created by the calling process will have the
process ID 1 and will assume the role of init(1) in the new
namespace. CLONE_NEWPID automatically implies CLONE_THREAD
as well. Use of CLONE_NEWPID requires the CAP_SYS_ADMIN
capability. For further information, see pid_namespaces(7).
- CLONE_NEWUSER (since Linux 3.8)
- This flag has the same effect as the clone(2) CLONE_NEWUSER
flag. Unshare the user namespace, so that the calling process is moved
into a new user namespace which is not shared with any previously existing
process. As with the child process created by clone(2) with the
CLONE_NEWUSER flag, the caller obtains a full set of capabilities
in the new namespace.
- CLONE_NEWUSER requires that the calling process is not threaded;
specifying CLONE_NEWUSER automatically implies CLONE_THREAD.
Since Linux 3.9, CLONE_NEWUSER also automatically implies
CLONE_FS. CLONE_NEWUSER requires that the user ID and group
ID of the calling process are mapped to user IDs and group IDs in the user
namespace of the calling process at the time of the call.
- For further information on user namespaces, see
user_namespaces(7).
- CLONE_NEWUTS (since Linux 2.6.19)
- This flag has the same effect as the clone(2) CLONE_NEWUTS
flag. Unshare the UTS IPC namespace, so that the calling process has a
private copy of the UTS namespace which is not shared with any other
process. Use of CLONE_NEWUTS requires the CAP_SYS_ADMIN
capability.
- CLONE_SYSVSEM (since Linux 2.6.26)
- This flag reverses the effect of the clone(2) CLONE_SYSVSEM
flag. Unshare System V semaphore adjustment (semadj) values,
so that the calling process has a new empty semadj list that is not
shared with any other process. If this is the last process that has a
reference to the process's current semadj list, then the
adjustments in that list are applied to the corresponding semaphores, as
described in semop(2).
In addition, CLONE_THREAD, CLONE_SIGHAND, and
CLONE_VM can be specified in flags if the caller is single
threaded (i.e., it is not sharing its address space with another process or
thread). In this case, these flags have no effect. (Note also that
specifying CLONE_THREAD automatically implies CLONE_VM, and
specifying CLONE_VM automatically implies CLONE_SIGHAND.) If
the process is multithreaded, then the use of these flags results in an
error.
If flags is specified as zero, then unshare() is a
no-op; no changes are made to the calling process's execution context.
On success, zero returned. On failure, -1 is returned and errno is set to
indicate the error.
- EINVAL
- An invalid bit was specified in flags.
- EINVAL
- CLONE_THREAD, CLONE_SIGHAND, or CLONE_VM was
specified in flags, and the caller is multithreaded.
- EINVAL
- CLONE_NEWIPC was specified in flags, but the kernel was not
configured with the CONFIG_SYSVIPC and CONFIG_IPC_NS
options.
- EINVAL
- CLONE_NEWNET was specified in flags, but the kernel was not
configured with the CONFIG_NET_NS option.
- EINVAL
- CLONE_NEWPID was specified in flags, but the kernel was not
configured with the CONFIG_PID_NS option.
- EINVAL
- CLONE_NEWUSER was specified in flags, but the kernel was not
configured with the CONFIG_USER_NS option.
- EINVAL
- CLONE_NEWUTS was specified in flags, but the kernel was not
configured with the CONFIG_UTS_NS option.
- EINVAL
- CLONE_NEWPID was specified in flags, but the process has
previously called unshare() with the CLONE_NEWPID flag.
- ENOMEM
- Cannot allocate sufficient memory to copy parts of caller's context that
need to be unshared.
- ENOSPC (since Linux 3.7)
- CLONE_NEWPID was specified in flags, but the limit on the nesting
depth of PID namespaces would have been exceeded; see
pid_namespaces(7).
- ENOSPC (since Linux 4.9; beforehand EUSERS)
- CLONE_NEWUSER was specified in flags, and the call would
cause the limit on the number of nested user namespaces to be exceeded.
See user_namespaces(7).
- From Linux 3.11 to Linux 4.8, the error diagnosed in this case was
EUSERS.
- ENOSPC (since Linux 4.9)
- One of the values in flags specified the creation of a new user
namespace, but doing so would have caused the limit defined by the
corresponding file in /proc/sys/user to be exceeded. For further
details, see namespaces(7).
- EPERM
- The calling process did not have the required privileges for this
operation.
- EPERM
- CLONE_NEWUSER was specified in flags, but either the
effective user ID or the effective group ID of the caller does not have a
mapping in the parent namespace (see user_namespaces(7)).
- EPERM (since Linux 3.9)
- CLONE_NEWUSER was specified in flags and the caller is in a
chroot environment (i.e., the caller's root directory does not match the
root directory of the mount namespace in which it resides).
- EUSERS (from Linux 3.11 to Linux 4.8)
- CLONE_NEWUSER was specified in flags, and the limit on the
number of nested user namespaces would be exceeded. See the discussion of
the ENOSPC error above.
The unshare() system call was added to Linux in kernel 2.6.16.
The unshare() system call is Linux-specific.
Not all of the process attributes that can be shared when a new process is
created using clone(2) can be unshared using unshare(). In
particular, as at kernel 3.8, unshare() does not implement flags that
reverse the effects of CLONE_SIGHAND, CLONE_THREAD, or
CLONE_VM. Such functionality may be added in the future, if required.
The program below provides a simple implementation of the unshare(1)
command, which unshares one or more namespaces and executes the command
supplied in its command-line arguments. Here's an example of the use of this
program, running a shell in a new mount namespace, and verifying that the
original shell and the new shell are in separate mount namespaces:
$ readlink /proc/$$/ns/mnt
mnt:[4026531840]
$ sudo ./unshare -m /bin/bash
# readlink /proc/$$/ns/mnt
mnt:[4026532325]
The differing output of the two readlink(1) commands shows
that the two shells are in different mount namespaces.
/* unshare.c
A simple implementation of the unshare(1) command: unshare
namespaces and execute a command.
*/
#define _GNU_SOURCE
#include <sched.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
/* A simple error-handling function: print an error message based
on the value in 'errno' and terminate the calling process */
#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \
} while (0)
static void
usage(char *pname)
{
fprintf(stderr, "Usage: %s [options] program [arg...]\n", pname);
fprintf(stderr, "Options can be:\n");
fprintf(stderr, " -i unshare IPC namespace\n");
fprintf(stderr, " -m unshare mount namespace\n");
fprintf(stderr, " -n unshare network namespace\n");
fprintf(stderr, " -p unshare PID namespace\n");
fprintf(stderr, " -u unshare UTS namespace\n");
fprintf(stderr, " -U unshare user namespace\n");
exit(EXIT_FAILURE);
}
int
main(int argc, char *argv[])
{
int flags, opt;
flags = 0;
while ((opt = getopt(argc, argv, "imnpuU")) != -1) {
switch (opt) {
case 'i': flags |= CLONE_NEWIPC; break;
case 'm': flags |= CLONE_NEWNS; break;
case 'n': flags |= CLONE_NEWNET; break;
case 'p': flags |= CLONE_NEWPID; break;
case 'u': flags |= CLONE_NEWUTS; break;
case 'U': flags |= CLONE_NEWUSER; break;
default: usage(argv[0]);
}
}
if (optind >= argc)
usage(argv[0]);
if (unshare(flags) == -1)
errExit("unshare");
execvp(argv[optind], &argv[optind]);
errExit("execvp");
}
unshare(1), clone(2), fork(2), kcmp(2),
setns(2), vfork(2), namespaces(7)
Documentation/userspace-api/unshare.rst in the Linux kernel
source tree (or Documentation/unshare.txt before Linux 4.12)
This page is part of release 5.05 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at https://www.kernel.org/doc/man-pages/.


{{ define "main" }}
Want to proceed without Aadhaar OTP? Sure!
You can skip this KYC step.
However, you can only collect an amount of Rs.8238/-* through all contributions.
*There are other pre-paid wallets linked with this Aadhaar number. The sum across all such wallets cannot exceed Rs.10,000/-
Powered by


Tips for getting your Bluetooth devices to work properly
Source: Android Central
Depending on who you ask, Bluetooth is either a huge convenience or one of the most frustrating pain points of modern technology. I'd say it's somewhere in-between.
By far the most common use for Bluetooth in consumer gadgetry is audio; whether you're listening to music through wireless speakers or taking phone calls on your earbuds, there's a near-100% chance it's thanks to Bluetooth. One of the main issues with streaming audio over Bluetooth is latency. You've probably noticed when watching videos with Bluetooth headphones, for example, that the image and audio are slightly out of sync, because Bluetooth just isn't fast enough to keep things perfectly aligned.
For as ubiquitous as it is in wireless gadgets, Bluetooth is still finicky at times, but a lot of that can be alleviated with some simple know-how.
Check that your devices support Bluetooth 4.2 or newer
Source: Android Central
While there isn't much you can do to get around technological bottlenecks, it at least helps to ensure that the wireless devices you're buying feature a recent version of Bluetooth. The good news is that this doesn't necessarily mean you need to go out and buy something made in the last few months. While Bluetooth 5.1 is the latest iteration, its improvements were largely in features like range and stability.
Anything running Bluetooth 4.2 or newer will do.
Bluetooth 4.2 is the most recent version to bring speed improvements over its predecessor with a massive increase in packet payload size. In other words, Bluetooth devices sold in 2014 can have just as little latency with audio streaming as brand new headphones and speakers sold in 2019. Of course, that support means nothing if the device you're streaming from runs an older version of Bluetooth.
This isn't so much an issue with tech you'd typically upgrade every few years like computers and phones, but car manufacturers are notorious for dragging their feet when it comes to incorporating new tech into their stereo systems. Unless you drive a newer car or use an aftermarket stereo, you've probably noticed far worse Bluetooth latency compared to your wireless headphones. My 2012 Mazda 3, for example, still runs Bluetooth 2.0 … which was released all the way back in 2004, and results in an annoying ~two-second delay.
Having trouble pairing?
Source: Daniel Bader / Android Central
Bluetooth doesn't just cover audio accessories, it's used in everything from smartwatches to game controllers, GPS trackers, and endless other gadgets. However, none of that matters if you can't get your devices to connect to your phone in the first place. Again, Bluetooth can be finicky, but there are a few tricks that could help you connect to a stubborn device.
Most of the solutions are simpler than you might think.
The first tip is fairly obvious, but make sure the device you're trying to connect to is powered on and set to pairing mode. You should see it pop up in the discoverable devices list in your phone's Bluetooth menu, but if not, try turning Bluetooth off on both devices, then back on. It's amazing how often such a simple trick can be all that was needed. If your Bluetooth device still isn't showing up, turn both devices completely off and back on.
You might also benefit from removing all of the previously connected devices from your phone's memory. There's a decent chance you have a handful of accessories in your Bluetooth list that you paired to once or twice — say, a friend's portable speaker or a smartwatch you don't use anymore — and your phone could be trying to connect to one of those instead of the device you're actually trying to pair. Removing each device is as simple as navigating to your list of devices, tapping the settings icon next to each name, and tapping the unpair option.
Lastly, you'll want to make sure both devices in question are fully charged; some devices have power saving features that automatically disable Bluetooth once you reach a particular battery percentage. This one's an easy fix, but it can be annoying when all you want to do is pair your devices and get back to what you were doing.
Be sure to enable Bluetooth permissions
One of the beauties of Android is that it allows you to individually enable or disable certain functions on each of your Bluetooth peripherals, but that can also lead to some confusion if certain permissions are disabled by default. On Bluetooth headphones that support calling, you can typically toggle access to phone calls, media audio, or contact sharing. This can come in handy if you like to listen to music through your headphones but would rather carry out conversations with the phone directly to your ear.
Adjusting these permissions is easy; just jump into the same settings menu of the desired Bluetooth peripheral mentioned in the previous section, and you'll see the permissions listed out along with toggles for each.
Bluetooth is well worth the tradeoffs
For all of its frustrations, Bluetooth is still a great technology that makes way for some pretty incredible wireless devices.
You won't get the same audio quality and immediacy with Bluetooth headphones as you would with wired headphones, nor will Bluetooth controllers be quite as responsive as their wired counterparts, but the convenience is well worth the tradeoffs for most.
All 20 stories from our 2019 Spotlight on Bluetooth package, all in one place. Whether it's a spot of Bluetooth history, a bit of humor from wireless memes, or some thoughtful analysis on the future of the short-range tech, you'll find it right here, courtesy of the folks at Android Central, iMore and Windows Central.
General Bluetooth
- Introduction to our 2019 Spotlight on Bluetooth
- Where did the Bluetooth name and logo come from?
- A history of all the major Bluetooth releases and updates
- Where Bluetooth is headed, and the challenges it must overcome to get there
- Bluetooth 5: Is it actually better, and do you need it?
- Why Bluetooth is so great (and so terrible): A story told via memes
- Why the Bluetooth in your car sucks (and always will)
- 12 weird Bluetooth gadgets the Mobile Nations team uses every day
Android
- A closer look at Google's Fast Pair technology and how it builds on Bluetooth
- Top tips for getting your Android devices to play nicely with Bluetooth
- Yes, Bluetooth sucks, but it was good enough to kill the headphone jack on phones
Windows
- 5 major Bluetooth milestones at Microsoft
- How to master Bluetooth on Windows 10
- Why Xbox One (still) doesn't use Bluetooth
- Why wireless gaming mice still use RF receivers instead of Bluetooth
- Windows Central staff's favorite Bluetooth gadgets right now


Before Change
self.config_hooks = []
self.configurations = []
self.named_configs = dict()
self.ingredients = list(ingredients)
self.logger = None
self.captured_functions = []
self.post_run_hooks = []
self.pre_run_hooks = []
After Change
if self.mainfile is None and not interactive:
raise RuntimeError("Defining an experiment in interactive mode! "
"The sourcecode cannot be stored and the "
"experiment won"t be reproducible. If you still"
" want to run it pass interactive=True")
// =========================== Decorators ==================================
@optional_kwargs_decorator


Home
Projects
About
My Web Development Blog Posts
Cultural Blog Posts
C1 Reflection
/
C1 Time & Habits
/
C2 Emotional Intelligence
/
C3 Meditation & Mindfulness
/
C4 Daily Mindfulness
/
C5 Self Confidence
/
C6 Control
/
C7 Motivation
/
C8 Connecting
/
C9 Leadership
Technical Blog Posts
HTML, CSS & DOM pt.1
/
HTML, CSS & DOM pt.2
/
Design to Web
/
JavaScript Basics
/
Problem Solving
/
JavaScript Language
/
JavaScript Scope
Blog Title
Blog Subtitle
Blog content is posted here


Riiiiiiiiing! The ice cream van arrives in your street!
A friendly looking man with a mustache opens the sales window. "Which-a taste do you desire?" he asked.
"We've-a got-a many sorts of flavors, you know. Take a look-a at the menu."
Riiiiiiiiing! The ice cream van arrives in your street!
A friendly looking man with a mustache opens the sales window. "Which-a taste do you desire?" he asked.
"We've-a got-a many sorts of flavors, you know. Take a look-a at the menu."


{% load staticfiles %}
Submit Support Request
Support Phone Number:
Support Email:
Dashporter Address:


France, Germany, Britain urge Iran to reverse nuclear deal breaches
PARIS (Reuters) - France, Britain and Germany said on Monday they would consider a dispute resolution mechanism enshrined in the 2015 Iran nuclear deal that could lead to United Nations sanctions being reimposed for recent breaches of the pact.
In a joint statement, the three countries, known as the E3, warned Iran that its latest actions were hindering their efforts to defuse tensions in the region.
They added that they were extremely concerned by its decision to resume uranium enrichment at the Fordow plant, though stopped short of directly urging sanctions.
“Iran’s action ... has potentially severe proliferation implications,” the three countries said in the statement.
“We affirm our readiness to consider all mechanisms in the JCPoA (nuclear deal), including the dispute resolution mechanism, to resolve the issues related to Iran’s implementation of its JCPoA commitments.”
Iran is enriching uranium at its underground Fordow site and rapidly accelerating enrichment more broadly, a report by the U.N. atomic watchdog found earlier on Monday.
It is the latest in a series of steps through which it has overstepped the limits of the 2015 pact, in response to the United States withdrawing from the accord and reimposing sanctions.
“We stand ready to continue our diplomatic efforts to create the conditions for, and to facilitate, the de-escalation of tensions in the Middle East,” the E3 countries said.
“These efforts are however made increasingly difficult by Iran’s latest actions.”
France, Britain and Germany also called on Iran to comply fully with the international atomic watchdog after one of its inspectors was detained in October.
Iran briefly held an inspector working for the International Atomic Energy Agency and seized her travel documents, diplomats told Reuters last week, in what appeared to be the first incident of its kind since the 2015 pact.


This website is under construction. But fear not! Here is some information till then.
I am Pradyuman Vig and am currently a Purdue University Computer Engineering student.
I love to code and go to hackathons and recently attended Wildacks 2014 at Northwestern University.
I will be an intern with Hewlett-Packard starting May 2015 (and will continue to work with HP at a campus office during the school year).
I created two hacks at Wildhacks 2014:
1. The first hack (which won the Microsoft Azure prize at the competition) was a way to send contact information by shaking hands (using Pebble smartwatches and Android). This hack can also be modified to send payment information by venmo, etc using different gestures (its something that can be done with the way we have coded this hack but it wasn't implemented at the hackathon due to the time constraint).
For more information, click on the following links:
ChallengePost
Github
2. The second hack was a way to calculate if a stock price was going to go up or down the following morning using social media and stock history. It displays the three stocks most likely to go up the next day (from the database of stocks given by the Yahoo Finance API). We used the APIs and technology from Yahoo Finance, IBM Bluemix, Paypal, MailJet, and dunnhumby for this hack.
For more information, click on the following links:
ChallengePost
Github
Construction will end soon so come back later for a much more visually appealing and content rich website!
Till then, you can check your reaction time!
Click on the boxes and circles as quickly as you can (make sure to scroll down)!
You have not attempted yet.


1. http header
x-access-user
x-access-token
curl -X ${method} -H "x-access-user:$username" -H "x-access-token:$token" ${url}
2. queryString
user
token
curl -X ${method} ${url}?user=$username&token=$token


Delete Repository
×
Confirm Delete Repository
NO
YES
Repository Details - {{IP}}/{{namespace}}/{{repository}}
Sort
Name Asc.
Name Dec.
Repository
Tag
{{repository}}
{{tag.name}}
×
Confirm Delete Tag
NO
YES
Edit Tag
×
Edit Tag
Tag Name:


Looking for more great content? There's more where that came from! Here are some other articles that have recently been published.
No other recent articles exist.


The instruction set of the PDP-11 was designed towards a clean, general, symmetric instruction set. It can be used as a register-based, stack-based, or memory-based machine, depending on the programmer's preferences. Interrupt responsiveness is also important, supported with multiple interrupt levels for real-time computing as well as allowing for a separate interrupt handler for each device that generates interrupts.
Word length is 16 bits with the leftmost, most significant bit (MSB) being bit 15. There are eight general registers of 16 bits each. Register 7 is the program counter (PC) and, by convention, Register 6 is the stack pointer (SP). There is also a Processor Status Register/Word (PSW) which indicates the 4 condition code bits (N, Z, V, C), the Trace Trap bit, processor interrupt priority, and 4 bits for current and previous operating modes. Addressing on the -11 is linear from memory address 0 through 177777. Memory management allows access to physical memory with addresses of up to 22 bits (17777777). All I/O devices, registers etc are addressed as if they were part of memory. These live in the 4KW of reserved memory space at the top of the addressing range. Additionally, on most implementations of the PDP-11 architecture, the processor's registers are memory-mapped to the range 17777700-17777717 (there are many control registers beyond just the general registers, the specifics vary between implementations). Thus Register 2 (R2) has an address of 17777702. All word memory addresses are even, except for registers. In byte operations, an even address specifies the least-significant byte and an odd address specifies the most-significant byte. Specifying an odd byte in a word operation will return an odd address trap. Memory addresses from 0 to 400 octal are reserved for various exception traps such as timeouts, reserved instructions, parity, etc., and device interrupts.
Addressing for the Single Operand, Double Operand and Jump instructions is achieved via six bits:
_ _ _ _ _ _ |x|x|x|_|_|_| |Mode |Reg |
where the modes are as follows: (Reg = Register, Def = Deferred)
Mode 0 Reg Direct addressing of the register Mode 1 Reg Def Contents of Reg is the address Mode 2 AutoIncr Contents of Reg is the address, then Reg incremented Mode 3 AutoIncrDef Content of Reg is addr of addr, then Reg Incremented Mode 4 AutoDecr Reg is decremented then contents is address Mode 5 AutoDecrDef Reg is decremented then contents is addr of addr Mode 6 Index Contents of Reg + Following word is address Mode 7 IndexDef Contents of Reg + Following word is addr of addr
Note that the right-most bit of the mode is an indirection bit.
Although not special cases, when dealing with R7 (aka the PC), some of these operations are called different things:
_ _ _ _ _ _ |x|x|x|1|1|1| |Mode | R7 | Mode 2 Immediate Operand follows the instruction Mode 3 Absolute Address of Operand follows the instruction Mode 6 Relative Instr address+4+Next word is Address Mode 7 RelativeDef Instr address+4+Next word is Address of address
Mainstream instructions are broken into Single operand and Double operand instructions, which in turn can be word or byte instructions.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |b|i|i|i|s|s|s|s|s|s|d|d|d|d|d|d| | | | : | : | | | Op | Source | Dest |
Bit 15, b, generally selects between word-sized (b=0) and byte-sized (b=1) operands. In the table below, the mnemonics and names are given in the order b=0/b=1.
The double operand instructions are:
Subtracts the source from the destination, storing the results in the destination.
 In the table below, the mnemonics and names are given in the order b=0/b=1. Unless otherwise stated, the operand is read for the data to operate on, and the result is then written over that data.
The single operand instructions are:
The branch (b=1) is described in the section on branches, below.
Note that SWAB is actually a bit pattern from the range reserved for branches. This particular pattern is otherwise unused, as it would be a modification of BR, Branch Always, which has no obvious semantics.
MTPS is only on LSI-11s, and is used to move a byte to the processor status word. This is needed because the LSI-11 does not support accessing registers via memory addresses.
MFPS copies the processor status byte to the indicated register.  This seems slightly odd, until you realize the sequence of events: the branch instruction is read from memory and the PC incremented. If the branch is to be taken, the offset is then added to the current value of the PC. Since the PC has already been incremented, the offset is thus relative to the following word. Note that all branch instructions are one word long.
The various branches test the values of specific condition codes, and if the tests succeed, the branch is taken. The condition codes are N (negative), Z (zero), C (carry), and V (overflow).  Set/Clear corresponding bits depending on sense of bit 04 (set=1, clear=0). Codes 240 and 260 set/clear no bits and are, thus, used as NOP. Although specific mnemonic are provided for each flag and all flags, any combination may actually be set or cleared at a time.
 It then jumps to the destination. The fun part is (as usual with the PDP-11) that the PC is a general register, and the description above is the result when the PC is used as the source.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |0|0|0|0|0|0|0|0|1|0|0|0|0|s|s|s| | Opcode |Stack|
The actual operations involved are:
MOV <source>,PC MOV (R6)+,<source>
This is the reverse of JSR. Obviously, the finesse here too is that you can use the PC, to get what people normally consider a CALL/RETURN function.
Why is it done like this then? Well, consider this example:
... JSR R0,FOO .WORD A .WORD B MOV R1,C ... FOO: MOV @(R0)+,R1 ADD @(R0)+,R1 RTS R0
This type of parameter passing is used extensively in the PDP-8 and PDP-10), for example. Also, the FORTRAN runtime system on the PDP-11 do it this way.
There is a comparison of PDP-11 and 80x86 floating point formats available at: ftp://ftp.dbit.com/pub/pdp11/info/fpp.txt


For each banner, viewing that banner fires an ad impression event and clicking it fires an ad click event.
Click the first banner and on the button that appears to fire an ad conversion event.
Banner ID 23, zone ID 7, campaign ID 12, advertiser ID 201
Banner ID 127, no campaign or advertiser ID set
Banner ID 56ea2819ffc7da75f7e, no campaign, advertiser or user ID set


AWGA
Association of Women Geoscientists of Asia
Toggle navigation
Home
Newsletter
Activities
Membership
form
Related
Links
Contact
us
Contact Us
Name:
Email address:*
Query/ Suggestion/ Feedback:


Issue 7332:
Cropped string can't be expanded in the Watch panel
Steps to reproduce
- Open Firebug and enable and the Script panel
- Click this button
- The debugger should halt the execution at line
- Select the Watch panel and expand the string
aaa
.
You should see the complete (not cropped) value.


CSUDH
2017
A mobile-first approach to designing landing pages that drive maximum enrollment
A lot has changed over the last thirty years in regards to college admissions. The Internet changed everything, and the education industry is no different. It changed the way students researched colleges and the way colleges advertised to students. Admission officers used to have more contact with students but now everything can be done online - viewing colleges, submitting applications, or getting financial aid without students ever setting a foot on campus. Educational institutions understand this and many create landing pages to convert prospects into leads.
CSUDH was one of the institutions that needed to replace its aging text-only landing pages and I was brought on to come up with a new design that would attract and ultimately convert leads into enrollment while adhering to ADA/WebAIM compliance rules.
After sitting down with the Director of Admissions and his staff, we were able to identify and set goals for the redesign:
I created 3 wireframes, 2 had more page elements while the last design was very minimalistic. CSUDH preferred the latter approach
As we begun to roll out these new designs, I jotted down some notes for areas we could improve on for the next revision.


{% extends "layout.html" %} {% block title %} Identifying Short Term Conditions {% endblock %} {% block content %} {% include "../includes/phase_banner_alpha.html" %} Short-term conditions Are you applying because of a short-term (less that 3 months) injury, illness or because of an operation meaning that you cannot work? Yes No How long does your doctor expect you to be off work? weeks {% include "../includes/help.html" %} {% endblock %}


Sparlix Network
Home
Status
Forums
Bans
Staff
Rules
News
Contact
Welcome to
Sparlix
Join
Our Network
to Unlock Unlimited Fun!
PLAY.SPARLIX.COM
COPY IP
Follow Us On Social Media
© Copyright at
MyServer.com


Apache C++ Standard Library User's Guide
Chapter 16: Building Containers and Algorithms
16.1 Extending the C++ Standard Library
16.2 Building on the Standard Containers
16.2.1 Inheritance
16.2.2 Generic Inheritance
16.2.3 Generic Composition
16.3 Creating Your Own Containers
16.3.1 Meeting the Container Requirements
16.3.2 Meeting the Allocator Interface Requirements
16.3.3 Iterator Requirements
16.4 Tips and Techniques for Building Algorithms
16.4.1 The iterator_traits Template
16.4.2 The distance and advance Primitives


| | |
- builtins.OSError(builtins.Exception)
-
- Directory_Not_Found
- FASTA_Not_Found
- builtins.ValueError(builtins.Exception)
-
- Incorrect_Number_Chains
- No_Input_Directory_Provided
- No_PDB_Found
class Directory_Not_Found(builtins.OSError) |
| |
Custom OSError exception that is raised when the input directory with PDB files does not exist. |
| |
- Method resolution order:
- Directory_Not_Found
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Methods defined here:
- __init__(self, directory)
- Method to initialize the object after its creation.
Keyword arguments:
directory -- name of the directory that does not exist.
- __str__(self)
- Returns the string representation of the object with the error message.
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- __reduce__(...)
- helper for pickle
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class FASTA_Not_Found(builtins.OSError) |
| |
Custom OSError exception that is raised when the input FASTA file, if provided, does not exist. |
| |
- Method resolution order:
- FASTA_Not_Found
- builtins.OSError
- builtins.Exception
- builtins.BaseException
- builtins.object
Methods defined here:
- __init__(self, fasta_file)
- Method to initialize the object after its creation.
Keyword arguments:
fasta_file -- name of the FASTA file that does not exist.
- __str__(self)
- Returns the string representation of the object with the error message.
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from builtins.OSError:
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
- __reduce__(...)
- helper for pickle
Data descriptors inherited from builtins.OSError:
- characters_written
- errno
- POSIX exception code
- filename
- exception filename
- filename2
- second exception filename
- strerror
- exception strerror
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class Incorrect_Number_Chains(builtins.ValueError) |
| |
Custom ValueError exception that is raised when the PDB model object contains more than 2 chains. |
| |
- Method resolution order:
- Incorrect_Number_Chains
- builtins.ValueError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from builtins.ValueError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __reduce__(...)
- helper for pickle
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- __str__(self, /)
- Return str(self).
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class No_Input_Directory_Provided(builtins.ValueError) |
| |
Custom ValueError exception that is raised when a directory is not provided as input. |
| |
- Method resolution order:
- No_Input_Directory_Provided
- builtins.ValueError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from builtins.ValueError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __reduce__(...)
- helper for pickle
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- __str__(self, /)
- Return str(self).
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
|
class No_PDB_Found(builtins.ValueError) |
| |
Custom ValueError exception that is raised when the input directory does not have PDB files. |
| |
- Method resolution order:
- No_PDB_Found
- builtins.ValueError
- builtins.Exception
- builtins.BaseException
- builtins.object
Data descriptors defined here:
- __weakref__
- list of weak references to the object (if defined)
Methods inherited from builtins.ValueError:
- __init__(self, /, *args, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- __new__(*args, **kwargs) from builtins.type
- Create and return a new object. See help(type) for accurate signature.
Methods inherited from builtins.BaseException:
- __delattr__(self, name, /)
- Implement delattr(self, name).
- __getattribute__(self, name, /)
- Return getattr(self, name).
- __reduce__(...)
- helper for pickle
- __repr__(self, /)
- Return repr(self).
- __setattr__(self, name, value, /)
- Implement setattr(self, name, value).
- __setstate__(...)
- __str__(self, /)
- Return str(self).
- with_traceback(...)
- Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
Data descriptors inherited from builtins.BaseException:
- __cause__
- exception cause
- __context__
- exception context
- __dict__
- __suppress_context__
- __traceback__
- args
| |


three.js
- GLTFLoader +
KHR_materials_variants
Materials Variants Shoe
by
Shopify, Inc
Quarry
from
HDRI Haven


sqlite_exec
SQLiteDatabase::exec
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.3)
sqlite_exec -- SQLiteDatabase::exec — Executes a result-less query against a
given database
说明
bool sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] )
bool sqlite_exec ( string $query , resource $dbhandle )
面向对象风格 (method):
public bool SQLiteDatabase::queryExec ( string $query [, string &$error_msg ] )
Executes an SQL statement given by the query against a given database handle
(specified by the dbhandle parameter).
Warning
SQLite will execute multiple queries separated by semicolons, so you can use it
to execute a batch of SQL that you have loaded from a file or have embedded in
a script.
参数
dbhandle
The SQLite Database resource; returned from sqlite_open() when used
procedurally. This parameter is not required when using the object-oriented
method.
query
The query to be executed.
Data inside the query should be properly escaped.
error_msg
The specified variable will be filled if an error occurs. This is specially
important because SQL syntax errors can't be fetched using the
sqlite_last_error() function.
Note: 为兼容其他数据库扩展(比如 MySQL)，支持两种可替代的语法。推荐第一种格
式，函数的第一个参数是dbhandle。
返回值
This function will return a boolean result; TRUE for success or FALSE for
failure. If you need to run a query that returns rows, see sqlite_query().
由 SQLITE_ASSOC 与 SQLITE_BOTH 返回的列名会依照 sqlite.assoc_case 配置选项的值
决定大小写。
更新日志
版本 说明
5.1.0 Added the error_msg parameter
范例
Example #1 Procedural example
Example #2 Object-oriented example
queryExec("UPDATE users SET email=
<EMAIL_ADDRESS>WHERE username='jDoe'", $error);
if (!$query) {
exit("Error in query: '$error'");
} else {
echo 'Number of rows modified: ', $dbhandle->changes();
}
?>
参见
• sqlite_query() - Executes a query against a given database and returns a
result handle
• sqlite_unbuffered_query() - Execute a query that does not prefetch and
buffer all data
• sqlite_array_query() - Execute a query against a given database and returns
an array
User Contributed Notes 2 notes
===============================================================================
Just to point out that "CREATE TABLE IF NOT EXISTS" is only supported in SQLite
version 3.3.0 or above. And PHP (currently 5.2.5) only comes with SQLite
version 2.1.
Executing a create table like this will throw an error as will creating a table
that already exists. Instead execute a normal "CREATE TABLE" command and catch
it with "try {..} catch".
===============================================================================
If you run a multiline SQL command (an INSERT, for example), and there is a SQL
error in any of the lines, this function will recognize the error and return
FALSE. However, any correct commands before the one with the error will still
execute. Additionally, if you run changes() after such an incident, it will
report that 0 rows have been changed, even though there were rows added to the
table by the successful commands.
An example would be:
query("CREATE TABLE foo(id INTEGER PRIMARY KEY, name CHAR(255));");
// insert sample data
$ins_query = "INSERT INTO foo (name) VALUES ('Ilia1');
INSERT INTO foo (name) VALUES('Ilia2');
INSECT INTO foo (name) VALUES('Ilia3');";
$dbo->queryExec($ins_query);
// get number of rows changed
$changes = $dbo->changes();
echo "
Rows changed: $changes
";
// Get and show inputted data
$tableArray = $dbo->arrayQuery("SELECT * FROM foo;");
echo "Table Contents\n";
echo "
\n"; print_r($tableArray); echo "\n"; ?> The above code should show that 0 rows have been changed, but that there is new data in the table.


The Sports Cool Vest
Whether you're racing against others or simply yourself, there’s always a finish line to cross. And by staying cool, you can ensure that path is more comfortable. The Sports Cool Vest helps regulate body temperature and fits tight, thanks to a heavy-duty front zipper, dual side straps and over-the-shoulder adjustability. The durable cooling packs included with the vest feature a hermetically sealed outer barrier film that is easily cleaned.
Shop Now


{% extends "admin/base.html" %} {% block title %}District List ({{selected_year}}){% endblock %} {% block content %}
| Key | Year | Abbreviation | Display Name | Has Rankings | Has Advancement | {% for district in districts %}|
|---|---|---|---|---|---|---|
| {{ district.key_name }} | {{ district.year }} | {{ district.abbreviation }} | {{ district.display_name }} | {% if district.rankings %}{% endif %} |
{% if district.advancement%}{% endif %}
Refresh from FIRST
|


public class Vec3f extends java.lang.Object implements IVec3fR, IVec3W
| Modifier and Type | Field and Description |
|---|---|
static PVec3f |
AXIS_NX
The negative x-axis normal as constant.
|
static PVec3f |
AXIS_NXNYNZ
The diagonal axis normal of negative x, negative y and negative z as constant.
|
static PVec3f |
AXIS_NXNYZ
The diagonal axis normal of negative x, negative y and positive z as constant.
|
static PVec3f |
AXIS_NXY
The diagonal axis normal of negative x and positive y as constant.
|
static PVec3f |
AXIS_NXYNZ
The diagonal axis normal of negative x, positive y and negative z as constant.
|
static PVec3f |
AXIS_NXYZ
The diagonal axis normal of negative x, positive y and positive z as constant.
|
static PVec3f |
AXIS_NXZ
The diagonal axis normal of negative x and positive z as constant.
|
static PVec3f |
AXIS_NY
The negative y-axis normal as constant.
|
static PVec3f |
AXIS_NYZ
The diagonal axis normal of negative y and positive z as constant.
|
static PVec3f |
AXIS_NZ
The negative z-axis normal as constant.
|
static PVec3f |
AXIS_X
The positive x-axis normal as constant.
|
static PVec3f |
AXIS_XNY
The diagonal axis normal of positive x and negative y as constant.
|
static PVec3f |
AXIS_XNYZ
The diagonal axis normal of positive x, negative y and positive z as constant.
|
static PVec3f |
AXIS_XNZ
The diagonal axis normal of positive x and negative z as constant.
|
static PVec3f |
AXIS_XY
The diagonal axis normal of positive x and positive y as constant.
|
static PVec3f |
AXIS_XYNZ
The diagonal axis normal of positive x, positive y and negative z as constant.
|
static PVec3f |
AXIS_XYZ
The diagonal axis normal of positive x, positive y and positive z as constant.
|
static PVec3f |
AXIS_XZ
The diagonal axis normal of positive x and positive z as constant.
|
static PVec3f |
AXIS_Y
The positive y-axis normal as constant.
|
static PVec3f |
AXIS_YNZ
The diagonal axis normal of positive x and negative y as constant.
|
static PVec3f |
AXIS_YZ
The diagonal axis normal of positive y and positive z as constant.
|
static PVec3f |
AXIS_Z
The positive z-axis normal as constant.
|
float |
x
The x component.
|
float |
y
The y component.
|
float |
z
The z component.
|
static PVec3f |
ZERO
The Zero Vector as constant.
|
| Constructor and Description |
|---|
Vec3f()
The default constructor.
|
Vec3f(double scalar)
This constructor sets both components to scalar.
|
Vec3f(double x,
double y,
double z)
This constructor sets the components to x, y and z.
|
Vec3f(org.barghos.core.api.tuple.ITup3R t)
This contructor sets the components to the values of t.
|
| Modifier and Type | Method and Description |
|---|---|
static Vec3f |
abs(double x,
double y,
double z,
Vec3f res)
Returns a vector with absolute x, y and z component from the given x and y component.
|
static Vec3f |
abs(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns a vector with absolute x, y and z component from the given tuple.
|
static Vec3f |
add(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Adds x1 and y1 to x2 and y2 and saves the result in res.
|
static Vec3f |
add(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Adds x and y to a tuple and saves the result in res.
|
static Vec3f |
add(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Adds a scalar to a tuple and saves the result in res.
|
static Vec3f |
add(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Adds a tuple to x and y and saves the result in res.
|
static Vec3f |
add(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Adds a tuple to a scalar and saves the result in res.
|
static Vec3f |
add(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Adds one tuple to another and saves the result in res.
|
static Vec3f |
cross(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Returns the cross product between x1, y1 and z1 and x2, y2 and z2.
|
static Vec3f |
cross(double x1,
double y1,
double z1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns the cross product between x1, y1 and z1 and v2.
|
static Vec3f |
cross(org.barghos.core.api.tuple.ITup3R v1,
double x2,
double y2,
double z2,
Vec3f res)
Returns the cross product between the first tuple and x2, y2 and z2.
|
static Vec3f |
cross(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns the cross product between the first and second tuple.
|
static Vec3f |
div(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Divides x1 and y1 by x2 and y2 and saves the result in res.
|
static Vec3f |
div(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Divides x and y by a tuple and saves the result in res.
|
static Vec3f |
div(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Divides a scalar bx a tuple and saves the result in res.
|
static Vec3f |
div(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Divides a tuple by x and y and saves the result in res.
|
static Vec3f |
div(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Divides a tuple by a scalar and saves the result in res.
|
static Vec3f |
div(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Divides one tuple by another and saves the result in res.
|
static double |
dot(double x1,
double y1,
double z1,
double x2,
double y2,
double z2)
Returns the dot product between x1, y1 and z1 and x2, y2 and z2.
|
static double |
dot(double x1,
double y1,
double z1,
org.barghos.core.api.tuple.ITup3R v2)
Returns the dot product between x1 and y1 and a second tuple.
|
static double |
dot(org.barghos.core.api.tuple.ITup3R v1,
double x2,
double y2,
double z2)
Returns the dot product between a tuple and x2 and y2.
|
static double |
dot(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2)
Returns the dot product between two tuples.
|
static float |
getAbsMaxComponent(double x,
double y,
double z)
Returns the maximal absolute component from x, y and z.
|
static float |
getAbsMaxComponent(org.barghos.core.api.tuple.ITup3R v)
Returns the maximal absolute component from a tuple.
|
static float |
getAbsMinComponent(double x,
double y,
double z)
Returns the minimal absolute component from x, y and z.
|
static float |
getAbsMinComponent(org.barghos.core.api.tuple.ITup3R v)
Returns the minimal absolute component from a tuple.
|
int |
getDimensions() |
static float |
getMaxComponent(double x,
double y,
double z)
Returns the maximal component of x, y and z.
|
static float |
getMaxComponent(org.barghos.core.api.tuple.ITup3R v)
Returns the maximal component of a tuple.
|
static float |
getMinComponent(double x,
double y,
double z)
Returns the minimal component of x, y and z.
|
static float |
getMinComponent(org.barghos.core.api.tuple.ITup3R v)
Returns the minimal component of a tuple.
|
float |
getX() |
float |
getY() |
float |
getZ() |
static Vec3f |
gridSnap(double x,
double y,
double z,
double gx,
double gy,
double gz,
Vec3f res)
Returns a vector with the components x, y and z snapped to the gridspacing of gx, gy and gz.
|
static Vec3f |
gridSnap(double x,
double y,
double z,
double gridSize,
Vec3f res)
Returns a vector with the components x, y and z snapped to the gridspacing of gridsize.
|
static Vec3f |
gridSnap(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R grid,
Vec3f res)
Returns a vector with the components x, y and z snapped to the gridspacing of gridsize.
|
static Vec3f |
gridSnap(org.barghos.core.api.tuple.ITup3R v,
double gx,
double gy,
double gz,
Vec3f res)
Returns a vector with the components from tuple v snapped to the gridspacing of gx, gy, and gz.
|
static Vec3f |
gridSnap(org.barghos.core.api.tuple.ITup3R v,
double gridSize,
Vec3f res)
Returns a vector with the components from tuple v snapped to the gridspacing of gridsize.
|
static Vec3f |
gridSnap(org.barghos.core.api.tuple.ITup3R v,
org.barghos.core.api.tuple.ITup3R grid,
Vec3f res)
Returns a vector with the components from tuple v snapped to the gridspacing of grid.
|
static Vec3f |
invert(double x,
double y,
double z,
Vec3f res)
Returns the inverted vector of x, y and z.
|
static Vec3f |
invert(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns the inverted vector of the tuple v.
|
static boolean |
isFinite(double x,
double y,
double z)
Returns if x and y are finite.
|
static boolean |
isFinite(org.barghos.core.api.tuple.ITup3R v)
Returns if the components of the tuple v are finite.
|
static boolean |
isZero(double x,
double y,
double z)
Returns if x and y are zero.
|
static boolean |
isZero(double x,
double y,
double z,
double tolerance)
Returns if x and y are zero.
|
static boolean |
isZero(org.barghos.core.api.tuple.ITup3R v)
Returns if the components of v are zero.
|
static boolean |
isZero(org.barghos.core.api.tuple.ITup3R v,
double tolerance)
Returns if the components of v are zero.
|
static double |
length(double x,
double y,
double z)
Returns the length of x, y and z.
|
static double |
length(org.barghos.core.api.tuple.ITup3R v)
Returns the length of the tuple.
|
static double |
lengthSafe(double x,
double y,
double z)
Returns the length of x, y and z.
|
static double |
lengthSafe(double x,
double y,
double z,
double tolerance)
Returns the length of x, y and z.
|
static double |
lengthSafe(org.barghos.core.api.tuple.ITup3R v)
Returns the length of the tuple.
|
static double |
lengthSafe(org.barghos.core.api.tuple.ITup3R v,
double tolerance)
Returns the length of the tuple.
|
static Vec3f |
max(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Returns a vector with its components set to the maximal x, y and z value of x1, y1 and z1 and x2, y2 and z2.
|
static Vec3f |
max(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the maximal x, y and z value of x, y and z and a tuple.
|
static Vec3f |
max(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the maximal x, y and z value of a scalar and a tuple.
|
static Vec3f |
max(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Returns a vector with the maximal x, y and z value of a tuple and x, y and z.
|
static Vec3f |
max(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Returns a vector with the maximal x, y and z value of a tuple and a scalar.
|
static Vec3f |
max(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the maximal x, y and z value of two tuples.
|
static Vec3f |
min(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Returns a vector with its components set to the minimal x, y and z value of x1, y1 and z1 and x2, y2 and z2.
|
static Vec3f |
min(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the minimal x, y and z value of x, y and z and a tuple.
|
static Vec3f |
min(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the minimal x, y and z value of a scalar and a tuple.
|
static Vec3f |
min(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Returns a vector with the minimal x, y and z value of a tuple and x and y.
|
static Vec3f |
min(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Returns a vector with the minimal x, y and z value of a tuple and a scalar.
|
static Vec3f |
min(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Returns a vector with the minimal x, y and z value of two tuples.
|
static Vec3f |
mul(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Multiplies x1 and y1 with x2 and y2 and saves the result in res.
|
static Vec3f |
mul(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Multiplies x and y with a tuple and saves the result in res.
|
static Vec3f |
mul(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Multiplies a scalar with a tuple and saves the result in res.
|
static Vec3f |
mul(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Multiplies a tuple with x and y and saves the result in res.
|
static Vec3f |
mul(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Multiplies a tuple with a scalar and saves the result in res.
|
static Vec3f |
mul(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Multiplies one tuple with another and saves the result in res.
|
static Vec3f |
normal(double x,
double y,
double z,
Vec3f res)
Returns the given x and y normalized.
|
static Vec3f |
normal(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns the given tuple normalized.
|
static Vec3f |
normalSafe(double x,
double y,
double z,
double tolerance,
Vec3f res)
Returns the given x and y normalized.
|
static Vec3f |
normalSafe(double x,
double y,
double z,
Vec3f res)
Returns the given x and y normalized.
|
static Vec3f |
normalSafe(org.barghos.core.api.tuple.ITup3R v,
double tolerance,
Vec3f res)
Returns the given tuple normalized.
|
static Vec3f |
normalSafe(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns the given tuple normalized.
|
static Vec3f |
reciprocal(double x,
double y,
double z,
Vec3f res)
Returns a vector with the components set to the reciprocals of x, y and z(1 / x, 1 / y, 1 / z).
|
static Vec3f |
reciprocal(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns a vector with the components set to the reciprocals of the components of the tuple v(1 / v.x, 1 / v.y).
|
static double |
reciprocalLength(double x,
double y,
double z)
Returns the reciprocal of the length(1 / length) of x, y and z.
|
static double |
reciprocalLength(org.barghos.core.api.tuple.ITup3R v)
Returns the reciprocal of the length(1 / length) of the tuple.
|
static double |
reciprocalLengthSafe(double x,
double y,
double z)
Returns the reciprocal of the length(1 / length) of x, y and z.
|
static double |
reciprocalLengthSafe(double x,
double y,
double z,
double tolerance)
Returns the reciprocal of the length(1 / length) of x, y and z.
|
static double |
reciprocalLengthSafe(org.barghos.core.api.tuple.ITup3R v)
Returns the reciprocal of the length(1 / length) of the tuple.
|
static double |
reciprocalLengthSafe(org.barghos.core.api.tuple.ITup3R v,
double tolerance)
Returns the reciprocal of the length(1 / length) of the tuple.
|
Vec3f |
set(double scalar)
Sets the x, y and z component to scalar.
|
Vec3f |
set(double x,
double y,
double z)
Sets the x, y and z component to x, y and z.
|
Vec3f |
set(int index,
double value) |
Vec3f |
set(org.barghos.core.api.tuple.ITup3R t)
Sets the x, y and z component to t.
|
Vec3f |
setX(double x)
Sets the x component to x.
|
Vec3f |
setY(double y)
Sets the y component to y.
|
Vec3f |
setZ(double z)
Sets the z component to z.
|
static Vec3f |
sign(double x,
double y,
double z,
Vec3f res)
Returns a vector with the signs of the components x, y and z.
|
static Vec3f |
sign(org.barghos.core.api.tuple.ITup3R v,
Vec3f res)
Returns a vector with the signs of the components of the tuple.
|
static double |
squaredLength(double x,
double y,
double z)
Returns the squared length of x and y.
|
static double |
squaredLength(org.barghos.core.api.tuple.ITup3R v)
Returns the squared length of the tuple.
|
static Vec3f |
sub(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
Vec3f res)
Subtracts from x1 and y1 the values x2 and y2 and saves the result in res.
|
static Vec3f |
sub(double x,
double y,
double z,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Subtracts from x and y the values of a tuple and saves the result in res.
|
static Vec3f |
sub(double scalar,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Subtracts from a scalar the values of tuple and saves the result in res.
|
static Vec3f |
sub(org.barghos.core.api.tuple.ITup3R v1,
double x,
double y,
double z,
Vec3f res)
Subtracts from a tuple the values x and y and saves the result in res.
|
static Vec3f |
sub(org.barghos.core.api.tuple.ITup3R v1,
double scalar,
Vec3f res)
Subtract from a tuple a scalar and saves the result in res.
|
static Vec3f |
sub(org.barghos.core.api.tuple.ITup3R v1,
org.barghos.core.api.tuple.ITup3R v2,
Vec3f res)
Subtracts one tuple from another and saves the result in res.
|
public static final PVec3f ZERO
public static final PVec3f AXIS_X
public static final PVec3f AXIS_Y
public static final PVec3f AXIS_Z
public static final PVec3f AXIS_NX
public static final PVec3f AXIS_NY
public static final PVec3f AXIS_NZ
public static final PVec3f AXIS_XY
public static final PVec3f AXIS_XZ
public static final PVec3f AXIS_YZ
public static final PVec3f AXIS_NXY
public static final PVec3f AXIS_NXZ
public static final PVec3f AXIS_NYZ
public static final PVec3f AXIS_XNY
public static final PVec3f AXIS_XNZ
public static final PVec3f AXIS_YNZ
public static final PVec3f AXIS_XYZ
public static final PVec3f AXIS_NXYZ
public static final PVec3f AXIS_XNYZ
public static final PVec3f AXIS_XYNZ
public static final PVec3f AXIS_NXNYZ
public static final PVec3f AXIS_NXYNZ
public static final PVec3f AXIS_NXNYNZ
public float x
public float y
public float z
public Vec3f()
public Vec3f(org.barghos.core.api.tuple.ITup3R t)
t
- A tuple that the components are set to.public Vec3f(double scalar)
scalar
- A value that is set to both components.public Vec3f(double x, double y, double z)
x
- The new x component.y
- The new y component.z
- The new z component.public Vec3f setX(double x)
IVec3W
public Vec3f setY(double y)
IVec3W
public Vec3f setZ(double z)
IVec3W
public Vec3f set(org.barghos.core.api.tuple.ITup3R t)
IVec3W
public Vec3f set(double scalar)
IVec3W
public Vec3f set(double x, double y, double z)
IVec3W
public Vec3f set(int index, double value)
set
in interface org.barghos.core.api.tuple.ITup3fW
set
in interface org.barghos.core.api.tuple.ITupfW
public float getX()
getX
in interface org.barghos.core.api.tuple.ITup3fR
public float getY()
getY
in interface org.barghos.core.api.tuple.ITup3fR
public float getZ()
getZ
in interface org.barghos.core.api.tuple.ITup3fR
public int getDimensions()
getDimensions
in interface org.barghos.core.api.tuple.ITupR
public static Vec3f add(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple to add.v2
- The second tuple to add.res
- The resulting vector. can be null.public static Vec3f add(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The tuple to add.scalar
- The scalar to add.res
- The resulting vector. can be null.public static Vec3f add(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The tuple to add.x
- The x value to add.y
- The y value to add.z
- The z value to add.res
- The resulting vector. can be null.public static Vec3f add(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- The scalar to add.v2
- The tuple to add.res
- The resulting vector. can be null.public static Vec3f add(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The x value to add.y
- The y value to add.z
- The z value to add.v2
- The tuple to add.res
- The resulting vector. can be null.public static Vec3f add(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x value to add.y1
- The first y value to add.z1
- The first z value to add.x2
- The second x value to add.y2
- The second y value to add.z2
- The second z value to add.res
- The resulting vector. can be null.public static Vec3f sub(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple to subtract from.v2
- The second tuple to subtract.res
- The resulting vector. can be null.public static Vec3f sub(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The tuple to subtract from.scalar
- The scalar to subtract.res
- The resulting vector. can be null.public static Vec3f sub(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The tuple to subtract from.x
- The x value to subtract.y
- The y value to subtract.z
- The z value to subtract.res
- The resulting vector. can be null.public static Vec3f sub(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- The scalar to subtract from.v2
- The tuple to subtract.res
- The resulting vector. can be null.public static Vec3f sub(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The x value to subtract from.y
- The y value to subtract from.z
- The z value to subtract from.v2
- The tuple to subtract.res
- The resulting vector. can be null.public static Vec3f sub(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x value to subtract from.y1
- The first y value to subtract from.z1
- The first z value to subtract from.x2
- The second x value to subtract.y2
- The second y value to subtract.z2
- The second z value to subtract.res
- The resulting vector. can be null.public static Vec3f mul(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple to multiply.v2
- The second tuple to mluitply with.res
- The resulting vector. can be null.public static Vec3f mul(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The tuple to multiply.scalar
- The scalar to multiply with.res
- The resulting vector. can be null.public static Vec3f mul(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The tuple to multiply.x
- The x value to multiply with.y
- The y value to multiply with.z
- The z value to multiply with.res
- The resulting vector. can be null.public static Vec3f mul(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- The scalar to mutliply.v2
- The tuple to multiply with.res
- The resulting vector. can be null.public static Vec3f mul(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The x value to multiply.y
- The y value to mlutiply.z
- The z value to mlutiply.v2
- The tuple to multiply with.res
- The resulting vector. can be null.public static Vec3f mul(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x value to multiply.y1
- The first y value to multiply.z1
- The first z value to multiply.x2
- The second x value to multiply with.y2
- The second y value to multiply with.z2
- The second z value to multiply with.res
- The resulting vector. can be null.public static Vec3f div(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple to divide.v2
- The second tuple to divide by.res
- The resulting vector. can be null.public static Vec3f div(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The tuple to divide.scalar
- The scalar to divide by.res
- The resulting vector. can be null.public static Vec3f div(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The tuple to divide.x
- The x value to divide by.y
- The y value to divide by.z
- The z value to divide by.res
- The resulting vector. can be null.public static Vec3f div(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- The scalar to divide.v2
- The tuple to divide by.res
- The resulting vector. can be null.public static Vec3f div(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The x value to divide.y
- The y value to divide.z
- The z value to divide.v2
- The tuple to divide by.res
- The resulting vector. can be null.public static Vec3f div(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x value to divide.y1
- The first y value to divide.z1
- The first z value to divide.x2
- The second x value to divide by.y2
- The second y value to divide by.z2
- The second z value to divide by.res
- The resulting vector. can be null.public static double dot(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2)
v1
- The first float tuple.v2
- The second float tuple.public static double dot(org.barghos.core.api.tuple.ITup3R v1, double x2, double y2, double z2)
v1
- The first tuple.x2
- The x component of the second vector.y2
- The y component of the second vector.z2
- The z component of the second vector.public static double dot(double x1, double y1, double z1, org.barghos.core.api.tuple.ITup3R v2)
x1
- The x component of the first vector.y1
- The y component of the first vector.z1
- The z component of the first vector.v2
- The second tuple.public static double dot(double x1, double y1, double z1, double x2, double y2, double z2)
x1
- The x component of the first vector.y1
- The y component of the first vector.z1
- The z component of the first vector.x2
- The x component of the second vector.y2
- The y component of the second vector.z2
- The z component of the second vector.public static double reciprocalLength(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that the length is from.public static double reciprocalLength(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static double reciprocalLengthSafe(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that the length is from.public static double reciprocalLengthSafe(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static double reciprocalLengthSafe(org.barghos.core.api.tuple.ITup3R v, double tolerance)
v
- The tuple that the length is from.tolerance
- The threshold around 0.public static double reciprocalLengthSafe(double x, double y, double z, double tolerance)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.tolerance
- The threshold around 0.public static double length(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that the length is from.public static double length(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static double lengthSafe(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that the length is from.public static double lengthSafe(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static double lengthSafe(org.barghos.core.api.tuple.ITup3R v, double tolerance)
v
- The tuple that the length is from.tolerance
- The threshold around 0.public static double lengthSafe(double x, double y, double z, double tolerance)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.tolerance
- The threshold around 0.public static double squaredLength(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that the length is from.public static double squaredLength(double x, double y, double z)
x
- The x component.y
- The y component.z
- The z component.public static Vec3f normal(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The tuple to normalize.res
- The resulting vector. can be null.public static Vec3f normal(double x, double y, double z, Vec3f res)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.res
- The resulting vector. can be null.public static Vec3f normalSafe(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The tuple to normalize.res
- The resulting vector. can be null.public static Vec3f normalSafe(double x, double y, double z, Vec3f res)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.res
- The resulting vector. can be null.public static Vec3f normalSafe(org.barghos.core.api.tuple.ITup3R v, double tolerance, Vec3f res)
v
- The tuple to normalize.tolerance
- The threshold around 0.res
- The resulting vector. can be null.public static Vec3f normalSafe(double x, double y, double z, double tolerance, Vec3f res)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.tolerance
- The threshold around 0.res
- The resulting vector. can be null.public static Vec3f invert(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The input tuple.res
- The resulting vector. can be null.public static Vec3f invert(double x, double y, double z, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.res
- The resulting vector. can be null.public static Vec3f reciprocal(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The input tuple.res
- The resulting vector. can be null.public static Vec3f reciprocal(double x, double y, double z, Vec3f res)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.res
- The resulting vector. can be null.public static Vec3f cross(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f cross(org.barghos.core.api.tuple.ITup3R v1, double x2, double y2, double z2, Vec3f res)
v1
- The first tuple.x2
- The second x component.y2
- The second y component.z2
- The second z component.res
- The resulting vector. can be null.public static Vec3f cross(double x1, double y1, double z1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x1
- The first x component.y1
- The first y component.z1
- The first z component.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f cross(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x component.y1
- The first y component.z1
- The first z component.x2
- The second x component.y2
- The second y component.z2
- The second z component.res
- The resulting vector. can be null.public static boolean isFinite(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple to check.public static boolean isFinite(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static boolean isZero(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple to check.public static boolean isZero(double x, double y, double z)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.public static boolean isZero(org.barghos.core.api.tuple.ITup3R v, double tolerance)
v
- The tuple to check.tolerance
- The threshold around 0.public static boolean isZero(double x, double y, double z, double tolerance)
x
- The x component of the vector.y
- The y component of the vector.z
- The z component of the vector.tolerance
- The threshold around 0.public static Vec3f abs(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The tuple that components are used.res
- The resulting vector. can be null.public static Vec3f abs(double x, double y, double z, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.res
- The resulting vector. can be null.public static Vec3f min(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple.v2
- The secound tuple.res
- The resulting vector. can be null.public static Vec3f min(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The first tuple.scalar
- A single value used for x and y.res
- The resulting vector. can be null.public static Vec3f min(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The first tuple.x
- The second x component.y
- The second y component.z
- The second z component.res
- The resulting vector. can be null.public static Vec3f min(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- A single value used for x and y.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f min(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The first x component.y
- The first y component.z
- The first z component.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f min(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x component.y1
- The first y component.z1
- The first z component.x2
- The second x component.y2
- The second y component.z2
- The second z component.res
- The resulting vector. can be null.public static Vec3f max(org.barghos.core.api.tuple.ITup3R v1, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
v1
- The first tuple.v2
- The secound tuple.res
- The resulting vector. can be null.public static Vec3f max(org.barghos.core.api.tuple.ITup3R v1, double scalar, Vec3f res)
v1
- The first tuple.scalar
- A single value used for x and y.res
- The resulting vector. can be null.public static Vec3f max(org.barghos.core.api.tuple.ITup3R v1, double x, double y, double z, Vec3f res)
v1
- The first tuple.x
- The second x component.y
- The second y component.z
- The second z component.res
- The resulting vector. can be null.public static Vec3f max(double scalar, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
scalar
- A single value used for x and y.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f max(double x, double y, double z, org.barghos.core.api.tuple.ITup3R v2, Vec3f res)
x
- The first x component.y
- The first y component.z
- The first z component.v2
- The second tuple.res
- The resulting vector. can be null.public static Vec3f max(double x1, double y1, double z1, double x2, double y2, double z2, Vec3f res)
x1
- The first x component.y1
- The first y component.z1
- The first z component.x2
- The second x component.y2
- The second y component.z2
- The second z component.res
- The resulting vector. can be null.public static float getMinComponent(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that components are used.public static float getMinComponent(double x, double y, double z)
x
- The x component.y
- The y component.z
- The z component.public static float getMaxComponent(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple that components are used.public static float getMaxComponent(double x, double y, double z)
x
- The x component.y
- The y component.z
- The z component.public static float getAbsMinComponent(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple.public static float getAbsMinComponent(double x, double y, double z)
x
- The x component.y
- The y component.z
- The z component.public static float getAbsMaxComponent(org.barghos.core.api.tuple.ITup3R v)
v
- The tuple.public static float getAbsMaxComponent(double x, double y, double z)
x
- The x component.y
- The y component.z
- The z component.public static Vec3f sign(org.barghos.core.api.tuple.ITup3R v, Vec3f res)
v
- The tuple.res
- The resulting vector. can be null.public static Vec3f sign(double x, double y, double z, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.res
- The resulting vector. can be null.public static Vec3f gridSnap(org.barghos.core.api.tuple.ITup3R v, org.barghos.core.api.tuple.ITup3R grid, Vec3f res)
v
- The tuple.grid
- The gridspacing for x, y and z.res
- The resulting vector. can be null.public static Vec3f gridSnap(org.barghos.core.api.tuple.ITup3R v, double gridSize, Vec3f res)
v
- The tuplegridSize
- The gridspacing for x, y and z.res
- The resulting vector. can be null.public static Vec3f gridSnap(org.barghos.core.api.tuple.ITup3R v, double gx, double gy, double gz, Vec3f res)
v
- The tuplegx
- The gridspacing for x.gy
- The gridspacing for y.gz
- The gridspacing for z.res
- The resulting vector. can be null.public static Vec3f gridSnap(double x, double y, double z, org.barghos.core.api.tuple.ITup3R grid, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.grid
- The gridspacing for x, y and z.res
- The resulting vector. can be null.public static Vec3f gridSnap(double x, double y, double z, double gridSize, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.gridSize
- The gridspacing for x, y and z.res
- The resulting vector. can be null.public static Vec3f gridSnap(double x, double y, double z, double gx, double gy, double gz, Vec3f res)
x
- The x component.y
- The y component.z
- The z component.gx
- The gridspacing for x.gy
- The gridspacing for y.gz
- The gridspacing for z.res
- The resulting vector. can be null.


Header Remove Readers link Remove Mentions link Remove Grants link Remove Premium link
User menu Remove Premium link Remove Search Alerts link
User profile Remove advertisement banner with hint to go Premium Remove Grants updates ("We found N grants worth $XXX ...") Remove Mentions updates ("Your name is mentioned in ...") Remove Readers updates ("An XYZ researcher read your paper ...")
Analytics Remove Profile Visitors from Analytics Remove CV from Analytics
Bulk download Don't ask for bulk download when downloading a paper Remove bulk download buttons Remove "Download full PDF package" buttons Remove "Download figures" buttons Remove "Translate PDF" buttons
Article summaries. Remove Summary tab when reading a paper Remove key takeaways buttons
Popups Disable rating requests Disable suggestion to start a discussion


| Path: | README |
| Last Update: | Thu Dec 02 19:30:01 +0100 2010 |
rtriplify is a ruby clone of the triplify-php version. It is used to create an rdf-mapping of your existing database and serves it‘s content out to the (semantic)-web. It gives you several opportunities to improve your application with semantic-data in several RDF- and output formats. The following RDF-formats are supported:
You can serve these formats in the following output-formats:
You have to do several steps to configure and run a rtriplify instance with your Application. For experienced users just do the following steps:
(1) install rtriplify (2) add "triplify.yml" file to your app/config folder (3) configure the mapping (4) add route for rtriplify controller (optional) (5) enjoy it
For further information, we are now going on detail:
The easiest way to install rtriplify is by using ruby gem (of course you need a running ruby/rails environment). Just open your command-prompt and input:
gem install rtriplify
Another possibility is to install triplify as rails-plugin. In this case, go to the root folder of you application and install it by executing the following command on your commandline:
ruby script/plugin install http://github.com/rtriplify/rtriplify.git
Of course you can download the source from github and install it manually too.
rtriplify just loads, if you have placed a "triplify.yml" config file in the "app/config" folder of your application. Please add such a file. Easily download the sample config file from abc.de. This config file located at lib/config/triplify_demo.yml folder of your triplify installation directory. (if installed as plugin you can find it at your-app-folder/vendor/plugin/rtriplify/lib/config/triplify_demo.yml)
gem install rtriplify
then place a triplify.yml file in the config folder of your RoR-application. Probably it‘s the best idea to use the sample config file included in the gem or you can download a clean sample file here [3] too.
Usaly the sample config has all configuration possibilitys inside of it and it‘s well documented. I think you can start now and change the config so that it will fit to your Application.
Now, you want to see your nice RDF-Data?
just add following route in the route.config:
map.connect 'triplify/*specs', :controller => 'triplify', :action => "tripleize"
that‘s it. Now just go to your-app.com/triplify/ and you will get the full RDF dump of your database. (If you haven‘t changed the data-depth part in the config)
That‘s all the magic. For detailed documentation I‘ll go on detail on some of the config sections.
You can
In addition you have the possibility to generate RDFa -Data and place it inside of your webpage as a hidden div. Please be aware that this is not the clean way to serve your content as RDFa. But I think, if you have generated the mapping file for your database it‘s just the consequence to place RDFa on your page instead. RTriplify gives you the right tools to place RDFa tags on your Webpage without having to do a full code review of your templates. And of course, search engines like google and yahoo already watch for these tags. Google already rewards RDFa tags with some specials. For further informations please see here [1] or [2] here
[1]www.google.com/support/webmasters/bin/answer.py?hl=en&answer=99170 [2]developer.yahoo.com/searchmonkey/ (sadly this project is discontinued)
Copyright (c) 2010 Nico Patitz, released under the MIT license


2048
Score
0
Best
Join the numbers and get to the
2048
tile!
New Game
Statistics
Win:
Lose:
high scores
1:
2:
3:
4:
5:
reset


001 // Copyright (c) 2011, Mike Samuel 002 // All rights reserved. 003 // 004 // Redistribution and use in source and binary forms, with or without 005 // modification, are permitted provided that the following conditions 006 // are met: 007 // 008 // Redistributions of source code must retain the above copyright 009 // notice, this list of conditions and the following disclaimer. 010 // Redistributions in binary form must reproduce the above copyright 011 // notice, this list of conditions and the following disclaimer in the 012 // documentation and/or other materials provided with the distribution. 013 // Neither the name of the OWASP nor the names of its contributors may 014 // be used to endorse or promote products derived from this software 015 // without specific prior written permission. 016 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 017 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 018 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 019 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 020 // COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 021 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 022 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 023 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 024 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 025 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 026 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 027 // POSSIBILITY OF SUCH DAMAGE. 028 029 package org.owasp.html; 030 031 import java.util.LinkedList; 032 import java.util.List; 033 import javax.annotation.Nullable; 034 035 import com.google.common.collect.Lists; 036 037 /** 038 * Consumes an HTML stream, and dispatches events to a policy object which 039 * decides which elements and attributes to allow. 040 */ 041 public final class HtmlSanitizer { 042 043 /** 044 * Receives events based on the HTML stream, and applies a policy to decide 045 * what HTML constructs to allow. 046 * Typically, implementations use an {@link HtmlStreamRenderer} to produce 047 * the sanitized output. 048 * 049 *
 050 * Implementations of this class are in the TCB.
 051 */ 052 @TCB 053 public interface Policy extends HtmlStreamEventReceiver { 054 /** 055 * Called when an HTML tag like {@code <foo bar=baz>} is seen in the input. 056 * 057 * @param elementName a normalized (lower-case for non-namespaced names) 058 * element name. 059 * @param attrs a list of alternating attribute name and value pairs. 060 * For efficiency, this list may be mutated by this during this method 061 * call, but ownership reverts to the caller on method exit. 062 * The values are raw -- HTML entities have been decoded. 063 * Specifically, implementations are allowed to use a list iterator 064 * and remove all disallowed attributes, add necessary attributes, and 065 * then pass the list to an {@link HtmlStreamRenderer}. 066 */ 067 void openTag(String elementName, List<String> attrs); 068 069 /** 070 * Called when an HTML tag like {@code </foo>} is seen in the input. 071 * 072 * @param elementName a normalized (lower-case for non-namespaced names) 073 * element name. 074 */ 075 void closeTag(String elementName); 076 077 /** 078 * Called when textual content is seen. 079 * @param textChunk raw content -- HTML entities have been decoded. 080 */ 081 void text(String textChunk); 082 } 083 084 /** 085 * Sanitizes the given HTML by applying the given policy to it. 086 * 087 *
 088 * This method is not in the TCB. 089 * 090 *
 091 * This method has no return value since policies are assumed to render things 092 * they accept and do nothing on things they reject. 093 * Use {@link HtmlStreamRenderer} to render content to an output buffer. 094 * 095 * @param html A snippet of HTML to sanitize. {@code null} is treated as the 096 * empty string and will not result in a {@code NullPointerException}. 097 * @param policy The Policy that will receive events based on the tokens in 098 * HTML. Typically, this policy ends up routing the events to an 099 * {@link HtmlStreamRenderer} after filtering. 100 * {@link HtmlPolicyBuilder} provides an easy way to create policies. 101 */ 102 public static void sanitize(@Nullable String html, final Policy policy) { 103 if (html == null) { html = ""; } 104 105 TagBalancingHtmlStreamEventReceiver balancer 106 = new TagBalancingHtmlStreamEventReceiver(policy); 107 108 // According to Opera the maximum table nesting depth seen in the wild is 109 // 795, but 99.99% of documents have a table nesting depth of less than 22. 110 // Since each table has a nesting depth of 4 (incl. TBODY), this leads to a 111 // document depth of 90 (incl. HTML & BODY). 112 // Obviously table nesting depth is not the same as whole document depth, 113 // but it is the best proxy I have available. 114 // See http://devfiles.myopera.com/articles/590/maxtabledepth-url.htm for 115 // the original data. 116 117 // Webkit defines the maximum HTML parser tree depth as 512. 118 // http://trac.webkit.org/browser/trunk/Source/WebCore/page/Settings.h#L408 119 // static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512; 120 121 // The first number gives us a lower bound on the nesting depth we allow, 122 // 90, and the second gives us an upper bound: 512. 123 // We do not want to bump right up against that limit. 124 // 256 is substantially larger than the lower bound and well clear of the 125 // upper bound. 126 balancer.setNestingLimit(256); 127 128 balancer.openDocument(); 129 130 HtmlLexer lexer = new HtmlLexer(html); 131 // Use a linked list so that policies can use Iterator.remove() in an O(1) 132 // way. 133 LinkedList<String> attrs = Lists.newLinkedList(); 134 while (lexer.hasNext()) { 135 HtmlToken token = lexer.next(); 136 switch (token.type) { 137 case TEXT: 138 balancer.text( 139 Encoding.decodeHtml(html.substring(token.start, token.end))); 140 break; 141 case UNESCAPED: 142 balancer.text(Encoding.stripBannedCodeunits( 143 html.substring(token.start, token.end))); 144 break; 145 case TAGBEGIN: 146 if (html.charAt(token.start + 1) == '/') { // A close tag. 147 balancer.closeTag(HtmlLexer.canonicalName( 148 html.substring(token.start + 2, token.end))); 149 while (lexer.hasNext() 150 && lexer.next().type != HtmlTokenType.TAGEND) { 151 // skip tokens until we see a ">" 152 } 153 } else { 154 attrs.clear(); 155 156 boolean attrsReadyForName = true; 157 tagBody: 158 while (lexer.hasNext()) { 159 HtmlToken tagBodyToken = lexer.next(); 160 switch (tagBodyToken.type) { 161 case ATTRNAME: 162 if (!attrsReadyForName) { 163 // Last attribute added was valueless. 164 attrs.add(attrs.getLast()); 165 } else { 166 attrsReadyForName = false; 167 } 168 attrs.add(HtmlLexer.canonicalName( 169 html.substring(tagBodyToken.start, tagBodyToken.end))); 170 break; 171 case ATTRVALUE: 172 attrs.add(Encoding.decodeHtml(stripQuotes( 173 html.substring(tagBodyToken.start, tagBodyToken.end)))); 174 attrsReadyForName = true; 175 break; 176 case TAGEND: 177 break tagBody; 178 default: 179 // Just drop anything not recognized 180 } 181 } 182 if (!attrsReadyForName) { 183 attrs.add(attrs.getLast()); 184 } 185 balancer.openTag( 186 HtmlLexer.canonicalName( 187 html.substring(token.start + 1, token.end)), 188 attrs); 189 } 190 break; 191 default: 192 // Ignore comments, XML prologues, processing instructions, and other 193 // stuff that shouldn't show up in the output. 194 break; 195 } 196 } 197 198 balancer.closeDocument(); 199 } 200 201 private static String stripQuotes(String encodedAttributeValue) { 202 int n = encodedAttributeValue.length(); 203 if (n > 0) { 204 char last = encodedAttributeValue.charAt(n - 1); 205 if (last == '"' || last == '\'') { 206 int start = 0; 207 if (n != 1 && last == encodedAttributeValue.charAt(0)) { 208 start = 1; 209 } else { 210 // Browsers deal with missing left quotes :  211 // but generally do not deal with missing right :  212 } 213 return encodedAttributeValue.substring(start, n - 1); 214 } 215 } 216 return encodedAttributeValue; 217 } 218 219 }