Computing one student's grades may be useful to that student, but the computation is simple enough that a pocket calculator could handle it almost as well as our program. On the other hand, if we are teaching a course, we will want to compute grades for a class full of students. Let's revise our program to make it useful for an instructor.
Instead of interactively reporting one student's grade, we'll assume that we are given a file that contains many students' names and grades. Each name is followed by a midterm grade and a final exam grade, and then by one or more homework assignment grades. Such a file might look like
Smith 93 91 47 90 92 73 100 87 Carpenter 75 90 87 92 93 60 0 98 ...
Our program should calculate each student's overall grade using medians: The median homework grade counts 40%; the final, 40%; and the midterm, 20%. For this input, the output would be
Carpenter 86.8 Smith 90.4
In the output, we want the report to be organized alphabetically by student, and we want the final grades to line up vertically so that they are easier to read. These requirements imply that we'll need a place to store the records for all the students, so that we can alphabetize them. We'll also need to find the length of the longest name, so that we know how many spaces to put between each name and its corresponding grade.
Assuming that we have a place to store the data about a single student, we can use a
vector
to hold all the student data. Once the vector
contains data for all the students,
we can sort
it, and then calculate and write each student's grades. We'll start by creating
a data structure to hold the student data, and by writing some auxiliary functions to read
and process those data. After we have developed these abstractions, we'll use them to
solve the overall problem.
We know that we need to read each student's data and then arrange the students in alphabetical order. When we do so, we want to keep the students' names and grades together. Therefore, we need a way to store in one place all the information that pertains to one student. That place should be a data structure that holds the student's name, midterm and final exam grades, and all the homework grades.
In C++, we define such a data structure as follows:
struct Student_info { string name; double midterm, final; vector<double> homework; }; // note the semicolon it's required
This struct definition says that Student_info
is a type, which has four data members.
Because Student_info
is a type, we can define objects of that type, each of which will
contain an instance of these four data members.
The first member, named name
, is of type string
; the second and third are double
s
named midterm
and final
; and the last is a vector
of double
s named homework
.
Each object of Student_info
type holds information about one student. Because
Student_info
is a type, we can use a vector<Student_info>
object to hold information
about an arbitrary number of students, just as we used a vector<double>
object to
hold an arbitrary number of homework grades.
If we break our problem into manageable components, we'll see that there are three separable
steps, which we can represent by separate functions: We need to read data into a
Student_info
object, we need to generate the overall grade for a Student_info
object, and we need to be able to sort a vector
of Student_info
objects.
The function that reads one of our records is a lot like the read_hw
function that we
wrote in §4.1.3/57. In fact, we can use that function to read the homework grades. In
addition, we'll need to read the student's name and exam grades:
istream& read(istream& is, Student_info& s) { // read and store the student's name and midterm and final exam grades is >> s.name >> s.midterm >> s.final; read_hw(is, s.homework); // read and store all the student's homework grades return is; }
There is no ambiguity in naming this function read
, because the type of its second
parameter will tell us what we're reading. Overloading will distinguish it from any other
function called read
that might read into another kind of structure. Like read_hw
, this
function takes two references: one to the istream
from which to read, and another to the
object in which to store what it reads. When we use the parameter s inside the function,
we will affect the state of the argument that we were passed.
This function works by reading values into the name, midterm
, and final
members
of the object s
, and then calling read_hw
to read the homework grades. We might reach
end-of-file, or encounter input failure, at any point during this process. If so, the subsequent
input attempts will do nothing, and when we return, is
will be in the appropriate
error state. Note that this behavior relies on the fact that the read_hw
function
(§4.1.3/57) carefully leaves the input stream in an error state if it was already in such a
state when we called read_hw
.
The other function that we need computes a final grade for a Student_info
object.
We already solved most of this problem when we defined the grade
function in
§4.1.2/54. We will continue that work just a little further by overloading the grade
function
with a version that determines the overall grade for a Student_info
object:
double grade(const Student_info& s) { return grade(s.midterm, s.final, s.homework); }
This function operates on an object of type Student_info
, and returns a double
that
represents the overall grade. Note that the parameter has type const Student_info&
,
rather than just plain Student_info
, so that when we call it, we do not incur the overhead
of copying an entire Student_info
object.
Note also that this function does not protect against an exception being thrown by the
grade
function that it calls. The reason is that there isn't anything that our grade
function
can do to handle the exception beyond what the grade
function that it calls has
already done. Because our grade
function doesn't catch
the exception, any exception
that occurs will be passed back to our caller, which presumably will be in a better position
than we are to decide what to do about students who did no homework.
Our last task, before writing the whole program, is to decide how we will sort our
vector
of Student_info
objects. In the median
function (§4.1.1/53), we sorted a
vector<double>
parameter, named vec
, by using the library sort
function:
sort(vec.begin(), vec.end());
However, assuming our data is in a vector
called students
, we can't just say
sort(students.begin(), students.end()); // not quite right
Why not? We'll have much more to say about sort
and other library algorithms in
Chapter 6, but it is worth thinking a bit abstractly about how the sort
function might
operate. In particular, how does sort
know how to arrange the values in the vector
?
The sort
function must compare elements of the vector
in order to put them in
sequence. It does so by using the <
operator for the element type of whatever vector
it
is asked to sort. We can call sort
on a vector<double>
, because the <
operator will
compare two double
s and give us an appropriate result. What will happen when sort
tries to compare the values of type Student_info
? The <
operator does not have an
obvious meaning when applied to Student_info
objects. Indeed, when sort
tries to
compare two such objects, the compiler will complain.
Fortunately, the sort
function takes an optional third argument that is a predicate. A
predicate is a function that yields a truth value, typically of type bool
. If this third argument
is present, the sort
function will use it to compare elements instead of using the <
operator. Therefore, we need to define a function that takes two Student_info
s, and
that says whether the first is less than the second. Because we want to order the students
alphabetically by name, we'll write our comparison function to compare only the names:
bool compare(const Student_info& x, const Student_info& y) { return x.name < y.name; }
This function simply delegates the work of comparing Student_info
s to the string
class, which provides a <
operator for comparing string
s. That operator compares
string
s by applying normal dictionary ordering. That is, it considers the left-hand
operand to be less than the right-hand operand if it is alphabetically ahead of the right-hand
operand. This behavior is exactly what we need.
Having defined compare
, we can sort the vector
by passing the compare
function
as a third argument to the sort
library function:
sort(students.begin(), students.end(), compare);
When sort
compares elements, it will call our compare
function to do so.
Now that we have functions to process student records, we can generate our report:
int main() { vector<Student_info> students; Student_info record; string::size_type maxlen = 0; // read and store all the records, and find the length of the longest name while (read(cin, record)) { maxlen = max(maxlen, record.name.size()); students.push_back(record); } // alphabetize the records sort(students.begin(), students.end(), compare); for (vector<Student_info>::size_type i = 0; i != students.size(); ++i) { // write the name, padded on the right to maxlen + 1 characters cout << students[i].name << string(maxlen + 1 - students[i].name.size(), ' '); // compute and write the grade try { double final_grade = grade(students[i]); streamsize prec = cout.precision(); cout << setprecision(3) << final_grade << setprecision(prec); } catch (domain_error e) { cout << e.what(); } cout << endl; } return 0; }
We have already seen most of this code, but a couple of points are new.
The first novelty is the call to the library function max
, which is defined in the header
<algorithm>
. On the surface, max
's behavior is obvious. However, one aspect of its
behavior is not obvious: Its arguments must both have the same type, for complicated reasons
that we shall explore in §8.1.3/142. This requirement makes it essential for us to
define maxlen
to be a variable of type string::size_type
; it won't do merely to
define it as an int
.
The second novelty is the expression
string(maxlen + 1 - students[i].name.size(), ' ')
This expression constructs a nameless object (§1.1/10) of type string
. The object contains
maxlen + 1 - students[i].name.size()
characters, all of which are blank.
This expression is similar to the definition of spaces
in §1.2/13, but it omits the name of
the variable. This omission effectively turns the definition into an expression. Writing
students[i].name
followed by this expression yields output that contains the characters
in students[i].name
, padded on the right to exactly maxlen + 1
characters.
The for
statement uses the index i to walk through students
one element at a time.
We get the name to write by indexing into students
to get the current Student_info
element. We then write the name
member from that object, using an appropriately constructed
string
of blanks to pad the output.
Next we write the final grade for each student. If the student didn't do any homework,
the grade computation will throw an exception. In that case, we catch
the exception,
and instead of writing a numeric grade, we write the message that was thrown as
part of the exception object. Every one of the standard-library exceptions, such as
domain_error
, remembers the (optional) argument used to describe the problem that
caused the exception to be thrown. Each of these types makes a copy of the contents of
that argument available through a member function named what
. The catch
in this program
gives a name to the exception object that it gets from grade
(§4.1.2/54), so that it
can write as output the message that it obtains from what()
. In this case, that message
will tell the user that the student has done no homework
. If there is no exception, we
use the setprecision
manipulator to specify that we'll write three significant digits,
and then write the result from grade
.


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread jass.engine.In jass.render.SourcePlayer
public class SourcePlayer
Renders Sources to audio card using JavaSound or native methods, or out to file. To write to file manually call advanceTime(), see renderToFile example. Can't add rendered objects after starting it.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.lang.Thread |
|---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
| Field Summary | |
|---|---|
protected boolean |
pushIsInitialized
Push a buffer out if you want to manually "render" sound |
| Fields inherited from class jass.engine.In |
|---|
sourceContainer |
| Fields inherited from class java.lang.Thread |
|---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
| Constructor Summary | |
|---|---|
SourcePlayer(int bufferSize,
float srate)
Create Source Player intended to real-time audio output. |
|
SourcePlayer(int bufferSize,
float srate,
java.lang.String fn)
Create Source Player intended for audio-file output. |
|
SourcePlayer(int bufferSize,
int bufferSizeJavaSound,
float srate)
Create Source Player intended to real-time audio output. |
|
SourcePlayer(int bufferSize,
int bufferSizeJavaSound,
float srate,
Source src)
Create Source Player intended to real-time audio output. |
|
SourcePlayer(int bufferSize,
int bufferSizeJavaSound,
float srate,
java.lang.String preferredMixer)
Create Source Player intended to real-time audio output. |
| Method Summary | |
|---|---|
void |
advanceTime(double realTime)
Advance time and process audio till then. |
void |
advanceTime(double realTime,
boolean ascii)
Advance time and process audio till then. |
void |
AGCOff()
Disable AGC |
void |
AGCOn()
Enable AGC |
void |
cleanupASIO()
Shut down the ASIO libraries. |
void |
closeASIO()
Stop the ASIO streaming process and clean up. |
float |
getAGC()
Get value used by AGC. |
java.lang.String |
getAudioAPI()
Get method for audioAPI string |
int |
getInputChannelNum()
Get method for returning the selected output channel for ASIO |
boolean |
getMute()
Get Mute/unmute state |
void |
getNextBuffer(short[] myData)
Retrieve the next available audio buffer. |
int |
getNumRtAudioBuffersNative()
Get RtAudio latency parameter if using native sound. |
int |
getOutputChannelNum()
Get method for output channel number. |
RTAudioFullDuplexRtAudio |
getRTAudioFullDuplexRtAudio()
Get render object when using full duplex with RtAudio native libs Needs rtaudio.dll or librtaudio.so and works on Windows/LINUX/MAXOSX only. |
boolean |
getUseNativeSound()
Get method for useNativeSound flag |
boolean |
getUseNativeSoundFullDuplex()
Get method for useNativeSoundFullDuplex flag |
float |
getVolume()
Get volume (used if ACG is off) |
void |
initASIO()
Initialize the ASIO system and start it up. |
int |
initAsioJass(int srate,
int bufferSize,
int outputchannelNum,
int inputchannelNum,
AudioIn myInput)
Initialize the ASIO libraries this is done in JassASIO.dll The system will begin running once the initialization has occurred The buffers will be retrieved from the getNextBuffer(short[]) method |
protected void |
initPush()
|
void |
push(float[] buf)
|
void |
resetAGC()
Reset AGC state |
void |
run()
Start thread which obtains buffers form sources and writes to audio out. |
void |
setAGC(float maxSignal)
Set AGC maximum signal seen. |
void |
setASIOInput(AudioIn commingIn)
Set this AudioIn object so that we can use ASIO input. |
void |
setInputChannelNum(int channel)
Set method for Input channel Number |
void |
setMute(boolean muted)
Set mute/unmute |
void |
setNChannels(int n)
set nchannels 1 for mone 2 for stereo |
void |
setNumRtAudioBuffersNative(int numRtAudioBuffers)
Set RtAudio latency parameter if using native sound. |
void |
setOutputChannelNum(int channel)
Set method for output channel Number |
void |
setUseNativeSound(boolean value)
Set method to make it use/not use RtAudio based native sound. |
void |
setUseNativeSound(boolean value,
java.lang.String audioAPI)
Determine the use of Native Methods, either ASIO (needs JassASIO.dll) or something else (will be chosen later at run time depending on which shared library is found: rtaudio.dll (ASIO or DX version) or librtaudio.so (OSS or ALSA version). |
void |
setUseNativeSoundFullDuplex(boolean value)
Set method to make it use RtAudio based native sound with full duplex Needs rtaudio.dll or librtaudio.so and works on Windows/LINUX/MAX OSX only. |
void |
setVolume(float v)
Set volume (if ACG is off) |
void |
stopPlaying()
Call to stop player |
void |
stopPushing()
|
| Methods inherited from class jass.engine.In |
|---|
addSource, getSources, removeSource |
| Methods inherited from class java.lang.Thread |
|---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected boolean pushIsInitialized
| Constructor Detail |
|---|
public SourcePlayer(int bufferSize, int bufferSizeJavaSound, float srate)
bufferSize
- Buffersize used for blocks in filter graphbufferSizeJavaSound
- buffer size used by Java Sound. Use 0 for default.srate
- sampling rate in Hzpublic SourcePlayer(int bufferSize, float srate)
bufferSize
- Buffersize used for blocks in filter graphsrate
- sampling rate in Hzpublic SourcePlayer(int bufferSize, int bufferSizeJavaSound, float srate, java.lang.String preferredMixer)
bufferSize
- Buffersize used for blocks in filter graphbufferSizeJavaSound
- buffer size used by Java Sound. Use 0 for default.srate
- sampling rate in HzpreferredMixer
- preferred Mixer (e.g., "Esd Mixer").public SourcePlayer(int bufferSize, int bufferSizeJavaSound, float srate, Source src) throws SinkIsFullException
bufferSize
- Buffersize used for blocks in filter graphbufferSizeJavaSound
- buffer size used by Java Sound. Use 0 for default.srate
- sampling rate in Hzsrc
- Source to play.
SinkIsFullException
public SourcePlayer(int bufferSize, float srate, java.lang.String fn)
bufferSize
- Buffersize used for blocks in filter graphsrate
- sampling rate in Hzfn
- file name for raw audio data| Method Detail |
|---|
public int initAsioJass(int srate, int bufferSize, int outputchannelNum, int inputchannelNum, AudioIn myInput)
srate
- is the smapling ratebufferSize
- is the size of the output buffer to be used in ASIOoutputchannelNum
- selects the output channelsinputchannelNum
- select the input channel (if desired)myInput
- is used to give access to an input device if ASIO input-output is desiredpublic void cleanupASIO()
public void setASIOInput(AudioIn commingIn)
commingIn
- audio input through ASIOpublic void setUseNativeSound(boolean value, java.lang.String audioAPI)
value
- - true to use native methods, false otherwiseaudioAPI
- - either "something", or "ASIO".public RTAudioFullDuplexRtAudio getRTAudioFullDuplexRtAudio()
public void setUseNativeSound(boolean value)
value
- valuepublic void setUseNativeSoundFullDuplex(boolean value)
value
- valuepublic int getOutputChannelNum()
public void setOutputChannelNum(int channel)
channel
- - the selected channel. Output will be done through the selected
channel and the chennel at the next largest location. This will create matched
stereo sound.channel
- the channel to usepublic int getInputChannelNum()
public void setInputChannelNum(int channel)
channel
- - the desired Input channel. This must be set before the InitASIO method is calledpublic boolean getUseNativeSound()
public boolean getUseNativeSoundFullDuplex()
public java.lang.String getAudioAPI()
public void setNumRtAudioBuffersNative(int numRtAudioBuffers)
numRtAudioBuffer
- rtaudio parameter influences latency. 0 will choose minimumpublic int getNumRtAudioBuffersNative()
public void setNChannels(int n)
n
- # channelspublic void setMute(boolean muted)
muted
- false if unmute, true if mutepublic boolean getMute()
public float getAGC()
public void setAGC(float maxSignal)
maxSignal
- maximum value of signal seen.public void resetAGC()
public void setVolume(float v)
public float getVolume()
v
- volume (scales the output)public void AGCOn()
public void AGCOff()
public void advanceTime(double realTime) throws BufferNotAvailableException, java.io.IOException
realTime
- real-time in seconds.
BufferNotAvailableException
java.io.IOException
public void advanceTime(double realTime, boolean ascii) throws BufferNotAvailableException, java.io.IOException
realTime
- real-time in seconds.
BufferNotAvailableException
java.io.IOException
public void getNextBuffer(short[] myData) throws BufferNotAvailableException
myData
- an array to be filled with the data elements
BufferNotAvailableException
public void stopPlaying()
public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public void initASIO()
public void closeASIO()
public void stopPushing()
protected void initPush()
public void push(float[] buf)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Push Encryption (node)
This library provides the functions necessary to encrypt a payload for sending with the Web Push protocol. It also includes a helper function for actually send the message to the Web Push endpoint.
What is this for?
The Push API allow users to subscribe for notifications from a web site, which can be delivered to them even if the browser has been closed. This was first shipped as part of Chrome 42, but the push message could not contain any payload data.
As of Chrome 50 and Firefox 44 (desktop-only) payloads are supported, but the server must encrypt the payload or the receiving browser will reject it.
This library implements the necessary encryption as a Node module.
Overview
Install the module using npm:
npm install web-push-encryption
Require the module:
var webpush = require('web-push-encryption');
Send a message:
webpush.sendWebPush('Yay! Web Push!', subscription);
If the push service requires an authentication header (notably Google Cloud Messaging, used by Chrome) then you can add that as a third parameter:
if (subscription.endpoint.indexOf('https://android.googleapis.com/gcm/send/') === 0) {
webpush.sendWebPush('A message for Chrome', subscription, MY_GCM_KEY);
}
Docs
You can find docs here.
Support
If you've found an error in this library, please file an issue: https://github.com/GoogleChrome/web-push-encryption/issues
Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub.
License
Copyright 2016 Google, Inc.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


| PFC | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PFC | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PFC | | PGD | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | PGP | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP | | PGP1 | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP1 | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP1 | | PMC | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PMC | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PMC | | PStringLen | OpenAFP, OpenAFP.Internals, OpenAFP.Internals.Binary | | PTD | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD | | PTD1 | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD1 | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD1 | | PTX | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | PTX_ | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | PTX_AMB | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMB | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMB | | PTX_AMI | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMI | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMI | | PTX_BLN | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BLN | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BLN | | PTX_BSU | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BSU | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BSU | | PTX_DBR | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DBR | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DBR | | PTX_DIR | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DIR | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DIR | | PTX_ESU | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.ESU | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.ESU | | PTX_NOP | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.NOP | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.NOP | | PTX_RMB | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMB | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMB | | PTX_RMI | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMI | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMI | | PTX_RPS | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RPS | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RPS | | PTX_SBI | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SBI | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SBI | | PTX_SCFL | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SCFL | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SCFL | | PTX_SIA | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIA | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIA | | PTX_SIM | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIM | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIM | | PTX_STC | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STC | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STC | | PTX_STO | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STO | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STO | | PTX_SVI | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SVI | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SVI | | PTX_TRN | | 1 (Type/Class) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.TRN | | 2 (Data Constructor) | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.TRN | | pfc | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PFC | | pfc_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PFC | | pfc_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PFC | | pgd_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_Reserved1 | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_Reserved2 | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_XLUnitsperUnitBase | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_XPageSize | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_XUnitBase | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_YLUnitsperUnitBase | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_YPageSize | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd_YUnitBase | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgd__ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGD | | pgp | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP | | pgp1 | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP1 | | pgp1_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP1 | | pgp1_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP1 | | pgp_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP | | pgp_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PGP | | pmc | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PMC | | pmc_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PMC | | pmc_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PMC | | processChunk | OpenAFP, OpenAFP.Types, OpenAFP.Types.Chunk | | ptd | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD | | ptd1 | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD1 | | ptd1_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD1 | | ptd1_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD1 | | ptd_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD | | ptd_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTD | | ptx_ | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | ptx_Chunks | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | ptx_EscapeSequence | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | ptx_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.AFP, OpenAFP.Records.AFP.PTX | | ptx_amb | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMB | | ptx_amb_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMB | | ptx_ami | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMI | | ptx_ami_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.AMI | | ptx_bln | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BLN | | ptx_bln_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BLN | | ptx_bsu | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BSU | | ptx_bsu_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.BSU | | ptx_dbr | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DBR | | ptx_dbr_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DBR | | ptx_dir | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DIR | | ptx_dir_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.DIR | | ptx_esu | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.ESU | | ptx_esu_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.ESU | | ptx_nop | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.NOP | | ptx_nop_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.NOP | | ptx_rmb | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMB | | ptx_rmb_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMB | | ptx_rmi | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMI | | ptx_rmi_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RMI | | ptx_rps | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RPS | | ptx_rps_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.RPS | | ptx_sbi | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SBI | | ptx_sbi_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SBI | | ptx_scfl | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SCFL | | ptx_scfl_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SCFL | | ptx_sia | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIA | | ptx_sia_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIA | | ptx_sim | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIM | | ptx_sim_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SIM | | ptx_stc | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STC | | ptx_stc_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STC | | ptx_sto_Orientation | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STO | | ptx_sto_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STO | | ptx_sto_WrapDirection | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.STO | | ptx_svi | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SVI | | ptx_svi_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.SVI | | ptx_trn | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.TRN | | ptx_trn_Type | OpenAFP, OpenAFP.Records, OpenAFP.Records.PTX, OpenAFP.Records.PTX.TRN | | push | OpenAFP, OpenAFP.Types, OpenAFP.Types.Chunk | | put | OpenAFP, OpenAFP.Internals, OpenAFP.Internals.Binary | | putBuf | OpenAFP, OpenAFP.Internals, OpenAFP.Internals.Binary | | putByte | OpenAFP, OpenAFP.Internals, OpenAFP.Internals.Binary |
|


I'm a Kenyan based web designer & front‑end developer focused on crafting
clean & user‑friendly experiences.
I am a Moringa school student still studying software development
During the evenings I spend my time working on freelance projects and building my own products.
I chose to learn and take programming classes because of the love i have for technology.
Nyumbani Hostel
Visit Nyumbani Hostel!
This is a hostel management system which ensures that record management
is done perfectly and managing hostel
applications,registration forms and allotment of rooms,
Clique photography
Visit clique photography.com!
It is a concept for a photography brand
that is a blend of a marketing site


Red Hat Product Documentation
Welcome to the official Red Hat documentation, where you can learn about all our products.
To navigate use one of the following product's documentation:
Welcome to the official Red Hat documentation, where you can learn about all our products.
To navigate use one of the following product's documentation:


public class SimpleEdgePortrayal2D extends SimplePortrayal2D
| Modifier and Type | Field and Description |
|---|---|
static int |
ALWAYS_SCALE |
double |
baseWidth |
java.awt.Paint |
fromPaint |
java.awt.Font |
labelFont |
java.awt.Paint |
labelPaint |
static int |
NEVER_SCALE |
static int |
SCALE_WHEN_SMALLER |
int |
shape |
static int |
SHAPE_LINE
Deprecated.
Use SHAPE_LINE_ROUND_ENDS
|
static int |
SHAPE_LINE_BUTT_ENDS |
static int |
SHAPE_LINE_ROUND_ENDS |
static int |
SHAPE_LINE_SQUARE_ENDS |
static int |
SHAPE_THIN_LINE |
static int |
SHAPE_TRIANGLE |
java.awt.Paint |
toPaint |
TYPE_HIT_OBJECT, TYPE_SELECTED_OBJECT
| Constructor and Description |
|---|
SimpleEdgePortrayal2D()
Draws a single-color, undirected black line (or triangle) with no label.
|
SimpleEdgePortrayal2D(java.awt.Paint edgePaint,
java.awt.Paint labelPaint)
One single color line will be drawn, and if labelPaint is null, no label is drawn.
|
SimpleEdgePortrayal2D(java.awt.Paint fromPaint,
java.awt.Paint toPaint,
java.awt.Paint labelPaint)
If fromPaint == toPaint, one single color line will be drawn, and if labelPaint is null, no label is drawn.
|
SimpleEdgePortrayal2D(java.awt.Paint fromPaint,
java.awt.Paint toPaint,
java.awt.Paint labelPaint,
java.awt.Font labelFont)
If fromPaint == toPaint, one single color line will be drawn, and if labelPaint is null, no label is drawn.
|
| Modifier and Type | Method and Description |
|---|---|
void |
draw(java.lang.Object object,
java.awt.Graphics2D graphics,
DrawInfo2D info)
Draw a the given object with an origin at (info.draw.x, info.draw.y),
and with the coordinate system scaled by so that 1 unit is in the x and
y directions are equal to info.draw.width and info.draw.height respectively
in pixels.
|
boolean |
getAdjustsThickness() |
double |
getBaseWidth() |
java.lang.String |
getLabel(Edge edge,
EdgeDrawInfo2D info)
Returns a name appropriate for the edge.
|
int |
getLabelScaling() |
java.lang.String |
getName(LocationWrapper wrapper)
Returns a static, one-line name for the given object that is useful for a human
to distinguish it from other objects.
|
protected double |
getPositiveWeight(java.lang.Object edge,
EdgeDrawInfo2D info)
Returns a weight appropriate to scale the edge.
|
int |
getScaling() |
int |
getShape()
Returns the shape of the edge.
|
boolean |
hitObject(java.lang.Object object,
DrawInfo2D range)
Return true if the given object, when drawn, intersects with a provided rectangle, for
hit testing purposes.
|
void |
setAdjustsThickness(boolean val) |
void |
setBaseWidth(double val)
Sets the width of the base of the triangle used in drawing the directed edge -- by default, this is 0 (a simple line is drawn).
|
void |
setLabelScaling(int val) |
void |
setScaling(int val) |
void |
setShape(int shape)
Sets the shape of the edge.
|
getInspector, getStatus, handleMouseEvent, setSelected
public java.awt.Paint fromPaint
public java.awt.Paint toPaint
public java.awt.Paint labelPaint
public java.awt.Font labelFont
public static final int NEVER_SCALE
public static final int SCALE_WHEN_SMALLER
public static final int ALWAYS_SCALE
public double baseWidth
public static final int SHAPE_THIN_LINE
public static final int SHAPE_LINE
public static final int SHAPE_LINE_ROUND_ENDS
public static final int SHAPE_LINE_SQUARE_ENDS
public static final int SHAPE_LINE_BUTT_ENDS
public static final int SHAPE_TRIANGLE
public int shape
public SimpleEdgePortrayal2D()
public SimpleEdgePortrayal2D(java.awt.Paint edgePaint, java.awt.Paint labelPaint)
public SimpleEdgePortrayal2D(java.awt.Paint fromPaint, java.awt.Paint toPaint, java.awt.Paint labelPaint)
public SimpleEdgePortrayal2D(java.awt.Paint fromPaint, java.awt.Paint toPaint, java.awt.Paint labelPaint, java.awt.Font labelFont)
public boolean getAdjustsThickness()
public void setAdjustsThickness(boolean val)
public int getShape()
public void setShape(int shape)
public double getBaseWidth()
public void setBaseWidth(double val)
public int getScaling()
public void setScaling(int val)
public int getLabelScaling()
public void setLabelScaling(int val)
protected double getPositiveWeight(java.lang.Object edge, EdgeDrawInfo2D info)
public java.lang.String getLabel(Edge edge, EdgeDrawInfo2D info)
public void draw(java.lang.Object object, java.awt.Graphics2D graphics, DrawInfo2D info)
Portrayal2D
draw
in interface Portrayal2D
draw
in class SimplePortrayal2D
public boolean hitObject(java.lang.Object object, DrawInfo2D range)
SimplePortrayal2D
hitObject
in class SimplePortrayal2D
public java.lang.String getName(LocationWrapper wrapper)
Portrayal
getName
in interface Portrayal
getName
in class SimplePortrayal2D


|
Interfaces
ComponentFactory Container ContainerProvider StereotypeHandler |
|
Classes
AbstractComponentRegistry ComponentFactoryIntrospector ConverterHandler InterceptorStereotypeHandler ResourceHandler |
|
Exceptions
ComponentRegistrationException |
|
Annotation Types
ApplicationScoped Cacheable Component PrototypeScoped RequestScoped SessionScoped Stereotype |


Public Facelet API. Most developers should be able to utilizing the framework using
the public classes and interfaces.
An application that wishes to use Facelets as a ViewHandler, they must specify the
following in their faces-config.xml
(@see com.sun.facelets.FaceletViewHandler).
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
Below is sample code for using Facelets at the API level with JavaServer Faces.
// get the view to render
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewToRender = context.getViewRoot();
// grab our FaceletFactory and create a Facelet
FaceletFactory factory = FaceletFactory.getInstance();
Facelet f = factory.getFacelet(viewToRender.getViewId());
// populate UIViewRoot
f.apply(context, viewToRender);


{% extends "base.html" %}
{% block title %}Confirm Backup of {{kind_str|escape}}{% endblock %}
{% block body %}
Datastore Admin: Backup to Google Cloud Storage
{% if kind_list %}
{% comment %}
size_total represents the total size of the figures for which we have
datastore statistics available.
sizes_known indicates whether or not we have datastore statistics for all
kinds.
These two variables are used to render different messages for the three
possible scenarios: all sizes known, some sizes known, no sizes known.
{% endcomment %}
{% else %}


11.90. Release 0.103
Cluster Resource Management
There is a new cluster resource manager, which can be enabled via the
experimental.cluster-memory-manager-enabled
flag. Currently, the only
resource that’s tracked is memory, and the cluster resource manager guarantees
that the cluster will not deadlock waiting for memory. However, in a low memory
situation it is possible that only one query will make progress. Memory limits can
now be configured via query.max-memory
which controls the total distributed
memory a query may use and query.max-memory-per-node
which limits the amount
of memory a query may use on any one node. On each worker, the
resources.reserved-system-memory
flags controls how much memory is reserved
for internal Presto data structures and temporary allocations.
Task Parallelism
Queries involving a large number of aggregations or a large hash table for a join can be slow due to single threaded execution in the intermediate stages. This release adds experimental configuration and session properties to execute this single threaded work in parallel. Depending on the exact query this may reduce wall time, but will likely increase CPU usage.
Use the configuration parameter task.default-concurrency
or the session
property task_default_concurrency
to set the default number of parallel
workers to use for join probes, hash builds and final aggregations.
Additionally, the session properties task_join_concurrency
,
task_hash_build_concurrency
and task_aggregation_concurrency
can be
used to control the parallelism for each type of work.
This is an experimental feature and will likely change in a future release. It is also expected that this will eventually be handled automatically by the query planner and these options will be removed entirely.
Hive Changes
- Removed the
hive.max-split-iterator-threads
parameter and renamedhive.max-global-split-iterator-threads
tohive.max-split-iterator-threads
. - Fix excessive object creation when querying tables with a large number of partitions.
- Do not retry requests when an S3 path is not found.
General Changes
- Add
array_remove()
. - Fix NPE in
max_by()
andmin_by()
caused when few rows were present in the aggregation. - Reduce memory usage of
map_agg()
. - Change HTTP client defaults: 2 second idle timeout, 10 second request timeout and 250 connections per host.
- Add SQL command autocompletion to CLI.
- Increase CLI history file size.


MOROS include a simplified regular expression engine with the following syntax:
\
escape the following character to its literal meaning^
matches the starting position within the string$
matches the ending position within the string*
matches the preceding element zero or more times+
matches the preceding element one or more times?
matches the preceding element zero or one time.
matches any single character\w
matches any alphanumeric character\W
matches any non-alphanumeric character\d
matches any numeric character\D
matches any non-numeric character\w
matches any whitespace character\W
matches any whitespace characterThe engine is UTF-8 aware, so for example the unicode character é
will be
matched by \w
even if it's not present in the ASCII table and has a size
of two bytes.


Introduction
Welcome to the Di Nkɔmɔ API.
Overview
- Current Version: Draft 2
- Root Endpoint: https://api.dinkomo.frnk.ca/0.2/
Authentication
To authorize, use this code:
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
import kittn
api = kittn.authorize('meowmeowmeow')
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "Authorization: meowmeowmeow"
Make sure to replace
meowmeowmeow
with your API key.
Kittn uses API keys to allow access to the API. You can register a new Kittn API key at our developer portal.
Kittn expects for the API key to be included in all API requests to the server in a header that looks like the following:
Authorization: meowmeowmeow
Working with Collections
Sorting
Filtering
Field Selection
Paging
Embeds
Embeds, sometimes referred to as expansions, allow you to include related data to a model in a single request.
Method Spoofing
For clients that don’t support the PUT
, PATCH
or DELETE
, these verbs can be simulated with the X-HTTP-Method-Override
HTTP header.
Rate Limiting
Alphabets
Embeds for alphabets
| Parameter | Description |
|---|---|
| languageList | [array] Languages using this alphabet. |
List alphabets
Sample request
// ...
<?php
// ...
Sample response
{
"total": 34,
"per_page": 20,
"current_page": 1,
"last_page": 2,
"next_page_url": "https://api.dinkomo.frnk.ca/0.2/alphabet?page=2",
"prev_page_url": null,
"from": 1,
"to": 20,
"data": [
{
"name": "ፊደል",
"transliteration": "ፊደል",
"code": "amh-Ethi",
"scriptCode": "Ethi",
"letters": "",
"createdAt": "2016-07-08 03:28:14",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "nMY3oCmE",
"resourceType": "alphabet"
},
{
"name": "Twi Alphabet",
"transliteration": "Twi Alphabet",
"code": "twi-Latn",
"scriptCode": "Latn",
"letters": "abdeɛfghiklmnoɔprstuwy\nABDEƐFGHIKLMNOƆPRSTUWY",
"createdAt": "2016-07-06 23:23:02",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "DEPjLtzM",
"resourceType": "alphabet"
},
{...}
]
}
GET /alphabets
Retrieve an alphabet
Sample request
// ...
<?php
// ...
Sample response
{
"name": "Twi Alphabet",
"transliteration": "Twi Alphabet",
"code": "twi-Latn",
"scriptCode": "Latn",
"letters": "abdeɛfghiklmnoɔprstuwy\nABDEƐFGHIKLMNOƆPRSTUWY",
"createdAt": "2016-07-06 23:23:02",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "DEPjLtzM",
"resourceType": "alphabet"
}
GET /alphabets/{id}
Create an alphabet
Sample request
// ...
<?php
// ...
Sample response
POST /alphabets
Update an alphabet
Sample request
// ...
<?php
// ...
Sample response
PUT /alphabets/{id}
Delete an alphabet
Sample request
// ...
<?php
// ...
Sample response
DELETE /alphabets/{id}
Countries
List countries
Sample request
// ...
<?php
// ...
Sample response
{
"total": 264,
"per_page": 20,
"current_page": 1,
"last_page": 14,
"next_page_url": "https://api.dinkomo.frnk.ca/0.2/country?page=2",
"prev_page_url": null,
"from": 1,
"to": 20,
"data": [
{
"name": "Åland Islands",
"altNames": "",
"code": "AX",
"createdAt": "2016-07-06 23:22:34",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "YEpvf75M",
"resourceType": "country"
},
{
"name": "Zimbabwe",
"altNames": "",
"code": "ZW",
"createdAt": "2016-07-06 23:22:34",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "NE1PfwXW",
"resourceType": "country"
},
{...}
]
}
GET /countries
Retrieve a country
Sample request
// ...
<?php
// ...
Sample response
{
"name": "Zimbabwe",
"altNames": "",
"code": "ZW",
"createdAt": "2016-07-06 23:22:34",
"updatedAt": "2016-07-24 22:33:07",
"deletedAt": null,
"uniqueId": "NE1PfwXW",
"resourceType": "country"
}
GET /countries/{id}
Create a country
Sample request
// ...
<?php
// ...
Sample response
POST /countries
Update a country
Sample request
// ...
<?php
// ...
Sample response
PUT /countries/{id}
Delete a country
Sample request
// ...
<?php
// ...
Sample response
DELETE /countries/{id}
Cultures
Definitions
Embeds for definitions
| Parameter | Contents |
|---|---|
| mainTitle | [string] Main title for definition. |
| titleList | [array] All definition titles. |
| translation | [array] Translation in current locale. |
| translationData | [object] All translations. |
| mainLanguage | [object] Main language definition exists in. |
| languageList | [array] All languages definition exists in. |
| tagList | [array] Tags. |
| relatedDefinitionList | [array] Related definitions. |
| referenceList | [array] References for translation in current locale. |
List definitions
Sample request
// ...
<?php
// ...
Sample response
GET /definitions
Retrieve a definition
Sample request
// ...
<?php
// ...
// /api/0.2/definition/8MyQRHYM?embed=uri,editUri,mainTitle,titleString,titleList,translation,languageList
Sample response
{
"type": "word",
"subType": "noun",
"mainLanguageCode": "twi",
"rating": 1,
"meta": {},
"createdAt": "2015-04-09 13:10:07",
"updatedAt": "2015-04-09 13:10:07",
"deletedAt": null,
"uri": "http://dinkomo.frnk.ca/twi/ɔdɔ",
"editUri": "http://dinkomo.frnk.ca/admin/definition/8MyQRHYM/edit?return=summary",
"mainTitle": "ɔdɔ",
"titleString": "ɔdɔ, dɔ",
"titleList":
[
{
"title": "ɔdɔ",
"transliteration": "",
"reference": "",
"createdAt": "2016-05-13 14:39:09",
"updatedAt": "2016-05-13 14:39:09",
"deletedAt": null
},
{
"title": "dɔ",
"transliteration": "",
"reference": "",
"createdAt": "2016-05-13 14:39:09",
"updatedAt": "2016-05-13 14:39:09",
"deletedAt": null
}
],
"translation":
{
"practical":
{
"eng": "love"
},
"literal":
{
"eng": ""
},
"meaning":
{
"eng": "an intense feeling of deep affection"
}
},
"languageList":
{
"twi": "Asante Twi",
"aka": "Akan"
},
"uniqueId": "8MyQRHYM",
"resourceType": "definition"
}
GET /definitions/{id}
Create a definition
Sample request
// ...
<?php
// ...
Sample response
POST /definitions
Update a definition
Sample request
// ...
<?php
// ...
Sample response
PUT /definitions/{id}
Delete a definition
Sample request
// ...
<?php
// ...
Sample response
DELETE /definitions/{id}
Definition of the day
GET /words/daily
GET /expressions/daily
Definition types
Definitions are categorized by type. There are currently four supported definition types:
| Name | Endpoint | Description |
|---|---|---|
| word | /words |
Word definitions. |
| name | /names |
Proper names, including places and people. |
| expression | /expressions |
Expressions, proverbs, sayings, etc. |
| story | /stories |
Stories, poems, songs, etc. |
Count
Sample request
// ...
<?php
// ...
Sample response
GET /{definitionType}/count
Search
Sample request
// ...
<?php
// ...
Sample response
GET /{definitionType}/search/{query}
Exact title match
Sample request
// ...
<?php
// ...
Sample response
GET /{definitionType}/title/{title}
Languages
Embeds for languages
| Parameter | Description |
|---|---|
| uri | [string] Language URI |
| parentUri | [string] URI of parent language |
| parentName | [string] Name of parent language |
| definitionsCount | [integer] Number of definitions in language |
| firstDefinition | [object] First definition for language |
| latestDefinition | [object] Latest definition for language |
| randomDefinition | [object] Random definition in language |
List languages
Sample request
// ...
<?php
// ...
Sample response
GET /languages
Retrieve a language resource
Sample request
// ...
<?php
// ...
// /api/0.2/language/OJjYiQEa?embed=parentName,definitionsCount,uri,editUri,firstDefinition,latestDefinition,randomDefinition
Sample response
{
"code": "twi",
"parentCode": "aka",
"name": "Asante Twi",
"transliteration": "",
"altNames": "Ashanti, Twi",
"createdAt": "2015-04-09 13:08:27",
"updatedAt": "2016-05-03 14:08:58",
"deletedAt": null,
"parentName": "Akan",
"definitionsCount": 950,
"uri": "http://dinkomo.frnk.ca/twi",
"editUri": "http://dinkomo.frnk.ca/admin/language/twi/edit",
"firstDefinition":
{
"mainTitle": "ɔdɔ",
"translation":
{
"practical": {
"eng": "love"
},
"literal": {
"eng": ""
},
"meaning": {
"eng": "an intense feeling of deep affection"
}
},
"type": "word",
"subType": "noun"
},
"latestDefinition":
{
...
},
"randomDefinition":
{
...
},
"uniqueId": "OJjYiQEa",
"resourceType": "language"
}
GET /languages/{code}
Create a language resource
Sample request
// ...
<?php
// ...
Sample response
POST /languages
Update a language resource
Sample request
// ...
<?php
// ...
Sample response
PUT /languages/{code}
Delete a language resource
Sample request
// ...
<?php
// ...
Sample response
DELETE /languages/{id}
References
Embeds for references
| Parameter | Description |
|---|---|
| name | [string] Name or title of reference. |
| shortCitation | [string] Abridged reference summary. |
| longCitation | [string] Longer reference summary. |
| apaCitation | [string] APA-style citation. |
| chicagoCitation | [string] Chicago-style citation. |
| harvardCitation | [string] Harvard-style citation. |
| ieeeCitation | [string] IEEE-style citation. |
| iso690Citation | [string] ISO 690-style citation. |
| mlaCitation | [string] MLA-style citation. |
List references
Sample request
// ...
<?php
// ...
Sample response
{
"total": 43,
"per_page": 20,
"current_page": 1,
"last_page": 2,
"next_page_url": "https://api.dinkomo.frnk.ca/0.2/reference?page=2",
"prev_page_url": null,
"from": 1,
"to": 20,
"data": [
{
"type": "book",
"data": {
"author": "Florence Abena Dolphyne",
"title": "A Comprehensive Course in Twi (Asante) for the Non-Twi Learner",
"date": "1996-01-01",
"publisher": "Ghana Universities Press",
"isbn": "9964302452",
"isbn-13": "9789964302450",
"city": "Accra"
},
"string": "",
"deletedAt": null,
"uniqueId": "NE1lCDWP"
},
{...}
]
}
GET /references
Retrieve a reference
Sample request
// ...
<?php
// ...
Sample response
{
"type": "book",
"data": {
"author": "Florence Abena Dolphyne",
"title": "A Comprehensive Course in Twi (Asante) for the Non-Twi Learner",
"date": "1996-01-01",
"publisher": "Ghana Universities Press",
"isbn": "9964302452",
"isbn-13": "9789964302450",
"city": "Accra"
},
"string": "",
"deletedAt": null,
"uniqueId": "NE1lCDWP"
}
GET /references/{id}
Create a reference
Sample request
// ...
<?php
// ...
Sample response
POST /references
Update a reference
Sample request
// ...
<?php
// ...
Sample response
PUT /references/{id}
Delete a reference
Sample request
// ...
<?php
// ...
Sample response
DELETE /references/{id}
Tags
Embeds for tags
| Parameter | Description |
|---|---|
| definitionCount | [string] Number of definitions under the tag. |
List tags
Sample request
// ...
<?php
// ...
Sample response
{
"total": 87,
"per_page": 20,
"current_page": 1,
"last_page": 5,
"next_page_url": "https://api.dinkomo.frnk.ca/0.2/tag?page=2",
"prev_page_url": null,
"from": 1,
"to": 20,
"data": [
{
"title": "numbers",
"deletedAt": null,
"language": "en",
"uniqueId": "8MygI5E2"
},
{
"title": "face",
"deletedAt": null,
"language": "en",
"uniqueId": "oMBLIdEA"
},
{...}
]
}
GET /tags
Retrieve a tag
Sample request
// ...
<?php
// ...
Sample response
{
"title": "body",
"uniqueId": "XE2KI7JV"
}
GET /tags/{id}
Create a tag
Sample request
// ...
<?php
// ...
Sample response
POST /tags
Update a tag
Sample request
// ...
<?php
// ...
Sample response
PUT /tags/{id}
Delete a tag
Sample request
// ...
<?php
// ...
Sample response
DELETE /tags/{id}


| Package | Description |
|---|---|
| com.stl.skipthelibrary |
SKIP THE LIBRARY
For all your book related cravings 📕
|
| com.stl.skipthelibrary.Activities |
This package contains all of our activities
|
| com.stl.skipthelibrary.BindersAndAdapters |
This package contains all of our Binding classes and Adapters.
|
| com.stl.skipthelibrary.DatabaseAndAPI |
This package contains all of our classes that deal with databases and external web API's
|
| com.stl.skipthelibrary.Entities |
This package contains all of our entity classes
|
| com.stl.skipthelibrary.Enums |
This package contains all of our enums
|
| com.stl.skipthelibrary.Exceptions |
This package contains all of our exceptions
|
| com.stl.skipthelibrary.Fragments |
This package contains all of our fragments
|
| com.stl.skipthelibrary.Helpers |
This package contains all of our helpers, these include handlers and receivers
|
| com.stl.skipthelibrary.Singletons |
This package contains all of our singletons
|
| com.stl.skipthelibrary.Validators |
This package contains all of our validators
|


Trump retweets 'Resort of the Week' award for Doral golf club; says it was 'best location' for G-7
by Andrew O'ReillyPresident Trump is still upset that next year’s G-7 summit will not be held at his golf resort in Doral, Fla.

“Too bad we didn’t have the G-7 here. I offered to pick up the entire cost, would have saved at least $35,000,000 for the USA,” Trump tweeted. “Best location.  Wrong! Looking at Camp David. Will announce soon.”
Acting White House Chief of Staff Mick Mulvaney announced in October that next year’s G-7 meeting was going to be held at the Doral resort between June 10 and 12, but then – during his infamous “We do it all the time” press conference – Mulvaney later rescinded the move. No new location has yet to be announced.
RICK PERRY, OTHER OFFICIALS CALLED TO TESTIFY IN IMPEACHMENT INQUIRY BEHIND CLOSED DOORS
Trump first made a pitch to have next year’s summit at the resort during August’s G-7 conference in France – and stirred up controversy amid concerns over the ethics of the president personally profiting off an official government event.
“I used to make money off giving speeches. Now, I make speeches all the time and you know how much I make? Zero,” Trump said in August while defending his call to have the meeting in Doral.
The president added: “From my standpoint, I’m not going to make any money…I don’t want to make any money.”
CLICK HERE TO GET THE FOX NEWS APP
Since assuming office, the president has faced repeated pushback from a number of his aides regarding his official visits to properties he owns in New Jersey and Florida. They are worried about the appearance that Trump is using taxpayer dollars to turn a profit at his own resorts.
Trump, who has not divested from his properties, spends many weekends at his resorts in either Florida or New Jersey and has regularly dined at his organization’s restaurant in Washington, D.C. A Washington Post analysis found that the president’s trips to his properties have brought his businesses at least $1.6 million in revenue since he took office – mostly from federal officials and GOP campaigns who follow Trump.
While the Constitution prohibits presidents from taking “emoluments,” or payments, from foreign states, Trump says that clause refers to a ban on outright bribes, not business transactions, and that he will continue to do business with foreign governments at his hotels.


Always here, too constantly elevate to your needs.
We offer many options for all your needs from traditional, glass, wheelchair lift, pneumatic and more.
READ MOREWe can achieve any solution, no matter how big the job. From traction elevators, hydraulic elevators, hydraulic/traction combination, machine room less elevator, and so much more.
READ MOREAntoine Deblonde is the visionary of this company.
Antoine Deblonde Rocket Elevators CEOOur employee of the month, who has shown great promise.
Paul Latulipe Rocket Elevators, Employee of the Month1-581-701-0303
4468 Rue Wellington #204, Verdun, Quebec H4G 2G4
Address: 4468 Rue Wellington #204, Verdun, Quebec H4G 2G4 Phone: 1-581-701-0303 Email: mail@RocketServices.com


Explore about The invention of Internet
Explore about who are involved in Browser wars
Explore about Internet Search and who won the internet
Explore about .com bubble
Role of People in the rise of web


You can't remove the admin role from yourself.
Please save this user before assigning a role.
This will send a welcome email to {{user.fullname}} containing their email and a link to login to the dashboard.
{{item.name}}
{{user.role}}
{{changeMessage}}
Current password is required
New password is required
Confirm password is required
Passwords do not match!
Password must be at least 6 characters
Password must be less than 20 characters
Thumbs up!


The Novacene Project
The story of humanity’s
Global endeavour.
We explore the nature of change throughout the world.
We investigate the challenges of our journey forward
We are dreamers, storytellers, and futurists with a passion for progress.
Come join us on this exciting journey.
Coming Soon


| NS3/4A protease inhibitors |
1
st generation: Telaprevir, Boceprevir 2
nd generation: Simeprevir Next generation drugs: Glecaprevir, Grazoprevir, Paritaprevir, Voxilaprevir
|
Bind to the active site of the NS3/4A protease |
High potency (varies by HCV genotype) Low barrier to resistance (1a<1b) High potential for drug interactions Can cause rash, anemia, and raised bilirubin Later generation drugs like Glecapravir & Grazoprevir are pangenotypic and are expected to have higher barriers to resistance. |
| NS5A inhibitors |
Daclatasvir, Elbasvir, Ledipasvir, Ombitasvir, Pibrentasvir, Velpatasvir |
Interact with domain 1 of the NS5A dimer, although the exact mechanism remains to be fully elucidated |
Moderate to high potency (consistent across HCV genotypes & subtypes) High barrier to resistance (1a=1b) Low potential for drug interactions; may interact with HIV antiretrovirals (nucleoside reverse transcriptase inhibitors) and ribavirin Can cause mitochondrial toxicity |
| Nucleos(t) ide analog NS5B polymerase inhibitors |
Sofosbuvir |
These are incorporated into the nascent RNA chain and result in chain termination by compromising the binding of the next incoming nucleotide |
Potency varies by HCV genotype Very low barrier to resistance (1a<1b) Variable potential for drug interactions |
| Non-nucleoside NS5B polymerase inhibitors |
Dasabuvir |
Interact with thumb 1, thumb 2, palm 1 or palm 2 domain of NS5B and inhibit polymerase activity by allosteric mechanisms of action |
High potency (against multiple HCV genotypes) Low barrier to resistance (1a<1b) Low to moderate potential for drug interactions |


The Linux development host needs a few things to be set up.
Run the following to install necessary packages:
$ sudo apt-get install bison build-essential chrpath cifs-utils cmake coreutils curl desktop-file-utils diffstat docbook-utils doxygen fakeroot flex g++ gawk gcc git-core gitk graphviz help2man libgmp3-dev libmpfr-dev libreadline6-dev libsdl-dev libtool libxml2-dev libxml-libxml-perl make m4 ninja-build python-pip python-jinja2 python-pysqlite2 quilt samba scons sed subversion texi2html texinfo unzip wget
If ccache
is installed, you must uninstall it so you can build some target images:
$ sudo apt-get remove ccache
Some versions of Ubuntu default to dash system shell instead of bash, which will cause builds to fail. Run echo
$0
to check your shell.
If you need to change it to use bash, run:
$ sudo dpkg-reconfigure dash
Answer "No" to the question.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


Cute Kitty:
I am a human being mostly comprised of water and meat. I like to float on the water in pointed-end plastic cylinders
I like camping and fostering kittens


Welcome to FindFoodFast!
Allow FindFoodFast to use your location to display the lunch places closest to you. Some lunch offers will be presented to you with allergy information and prices. Please see below for more information about allergies and special diets.
Click on the icon to find yourself and the lunch places in a map or go straight to the
restaurant's web site using the icon .


Next: defmacro, Previous: compiler-macro-function, Up: Evaluation and Compilation Dictionary
define-compiler-macro
name lambda-list [[{declaration}* | documentation]] {form}*
⇒ name
name—a function name.
lambda-list—a macro lambda list.
declaration—a declare expression; not evaluated.
documentation—a string; not evaluated.
form—a form.
[Editorial Note by KMP: This definition probably needs to be fully expanded to not refer through the definition of defmacro, but should suffice for now.]
This is the normal mechanism for defining a compiler macro function. Its manner of definition is the same as for defmacro; the only differences are:
The name can be a function name naming any function or macro.
The expander function is installed as a compiler macro function for the name, rather than as a macro function.
The &whole argument is bound to the form argument that is passed to the compiler macro function. The remaining lambda-list parameters are specified as if this form contained the function name in the car and the actual arguments in the cdr, but if the car of the actual form is the symbol funcall, then the destructuring of the arguments is actually performed using its cddr instead.
Documentation is attached as a documentation string to name (as kind compiler-macro) and to the compiler macro function.
Unlike an ordinary macro, a compiler macro can decline to provide an expansion merely by returning a form that is the same as the original (which can be obtained by using &whole).
(defun square (x) (expt x 2)) ⇒ SQUARE (define-compiler-macro square (&whole form arg) (if (atom arg) `(expt ,arg 2) (case (car arg) (square (if (= (length arg) 2) `(expt ,(nth 1 arg) 4) form)) (expt (if (= (length arg) 3) (if (numberp (nth 2 arg)) `(expt ,(nth 1 arg) ,(* 2 (nth 2 arg))) `(expt ,(nth 1 arg) (* 2 ,(nth 2 arg)))) form)) (otherwise `(expt ,arg 2))))) ⇒ SQUARE (square (square 3)) ⇒ 81 (macroexpand '(square x)) ⇒ (SQUARE X), false (funcall (compiler-macro-function 'square) '(square x) nil) ⇒ (EXPT X 2) (funcall (compiler-macro-function 'square) '(square (square x)) nil) ⇒ (EXPT X 4) (funcall (compiler-macro-function 'square) '(funcall #'square x) nil) ⇒ (EXPT X 2) (defun distance-positional (x1 y1 x2 y2) (sqrt (+ (expt (- x2 x1) 2) (expt (- y2 y1) 2)))) ⇒ DISTANCE-POSITIONAL (defun distance (&key (x1 0) (y1 0) (x2 x1) (y2 y1)) (distance-positional x1 y1 x2 y2)) ⇒ DISTANCE (define-compiler-macro distance (&whole form &rest key-value-pairs &key (x1 0 x1-p) (y1 0 y1-p) (x2 x1 x2-p) (y2 y1 y2-p) &allow-other-keys &environment env) (flet ((key (n) (nth (* n 2) key-value-pairs)) (arg (n) (nth (1+ (* n 2)) key-value-pairs)) (simplep (x) (let ((expanded-x (macroexpand x env))) (or (constantp expanded-x env) (symbolp expanded-x))))) (let ((n (/ (length key-value-pairs) 2))) (multiple-value-bind (x1s y1s x2s y2s others) (loop for (key) on key-value-pairs by #'cddr count (eq key ':x1) into x1s count (eq key ':y1) into y1s count (eq key ':x2) into x2s count (eq key ':y1) into y2s count (not (member key '(:x1 :x2 :y1 :y2))) into others finally (return (values x1s y1s x2s y2s others))) (cond ((and (= n 4) (eq (key 0) :x1) (eq (key 1) :y1) (eq (key 2) :x2) (eq (key 3) :y2)) `(distance-positional ,x1 ,y1 ,x2 ,y2)) ((and (if x1-p (and (= x1s 1) (simplep x1)) t) (if y1-p (and (= y1s 1) (simplep y1)) t) (if x2-p (and (= x2s 1) (simplep x2)) t) (if y2-p (and (= y2s 1) (simplep y2)) t) (zerop others)) `(distance-positional ,x1 ,y1 ,x2 ,y2)) ((and (< x1s 2) (< y1s 2) (< x2s 2) (< y2s 2) (zerop others)) (let ((temps (loop repeat n collect (gensym)))) `(let ,(loop for i below n collect (list (nth i temps) (arg i))) (distance ,@(loop for i below n append (list (key i) (nth i temps))))))) (t form)))))) ⇒ DISTANCE (dolist (form '((distance :x1 (setq x 7) :x2 (decf x) :y1 (decf x) :y2 (decf x)) (distance :x1 (setq x 7) :y1 (decf x) :x2 (decf x) :y2 (decf x)) (distance :x1 (setq x 7) :y1 (incf x)) (distance :x1 (setq x 7) :y1 (incf x) :x1 (incf x)) (distance :x1 a1 :y1 b1 :x2 a2 :y2 b2) (distance :x1 a1 :x2 a2 :y1 b1 :y2 b2) (distance :x1 a1 :y1 b1 :z1 c1 :x2 a2 :y2 b2 :z2 c2))) (print (funcall (compiler-macro-function 'distance) form nil))) |> (LET ((#:G6558 (SETQ X 7)) |> (#:G6559 (DECF X)) |> (#:G6560 (DECF X)) |> (#:G6561 (DECF X))) |> (DISTANCE :X1 #:G6558 :X2 #:G6559 :Y1 #:G6560 :Y2 #:G6561)) |> (DISTANCE-POSITIONAL (SETQ X 7) (DECF X) (DECF X) (DECF X)) |> (LET ((#:G6567 (SETQ X 7)) |> (#:G6568 (INCF X))) |> (DISTANCE :X1 #:G6567 :Y1 #:G6568)) |> (DISTANCE :X1 (SETQ X 7) :Y1 (INCF X) :X1 (INCF X)) |> (DISTANCE-POSITIONAL A1 B1 A2 B2) |> (DISTANCE-POSITIONAL A1 B1 A2 B2) |> (DISTANCE :X1 A1 :Y1 B1 :Z1 C1 :X2 A2 :Y2 B2 :Z2 C2) ⇒ NIL
compiler-macro-function, defmacro, documentation; (setf documentation), Syntactic Interaction of Documentation Strings and Declarations
The consequences of writing a compiler macro definition for a function in the COMMON-LISP package are undefined; it is quite possible that in some implementations such an attempt would override an equivalent or equally important definition. In general, it is recommended that a programmer only write compiler macro definitions for functions he or she personally maintains–writing a compiler macro definition for a function maintained elsewhere is normally considered a violation of traditional rules of modularity and data abstraction.
Next: defmacro, Previous: compiler-macro-function, Up: Evaluation and Compilation Dictionary


|
DotNetBrowser
1.16
|
Interface for handling URL requests and responses. More...
Inherited by DotNetBrowser.DefaultNetworkDelegate.
Public Member Functions | |
| void | OnBeforeURLRequest (BeforeURLRequestParams parameters) |
| Fires when a request is about to occur. This event is sent before any TCP connection is made and can be used to redirect requests to another location. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, then default behavior will be used - the target URL will not be changed. More... | |
| void | OnBeforeRedirect (BeforeRedirectParams parameters) |
| Fired when a server-initiated redirect is about to occur. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected. More... | |
| void | OnBeforeSendHeaders (BeforeSendHeadersParams parameters) |
| Fires when a request is about to occur and the initial headers have been prepared. It allows adding, modifying, and deleting HTTP request headers. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected. More... | |
| void | OnSendHeaders (SendHeadersParams parameters) |
| Fires right before the HTTP headers are sent to the network. This event is informational and it does not allow modifying HTTP headers. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected. More... | |
| void | OnHeadersReceived (HeadersReceivedParams parameters) |
| Fires each time that an HTTP(S) response header is received. Due to redirects and authentication requests this can happen multiple times per request. This event is intended to allow adding, modifying, and deleting HTTP response headers, such as incoming "Set-Cookie" headers. More... | |
| void | OnResponseStarted (ResponseStartedParams parameters) |
| Fires when the first byte of the response body is received. For HTTP requests, this means that the status line and response headers are available. This event is informational. More... | |
| void | OnDataReceived (DataReceivedParams parameters) |
| This method is invoked each time when a part of the response body is received. When the whole response body is received, OnCompleted(RequestCompletedParams) method will be fired. This event is informational. More... | |
| void | OnCompleted (RequestCompletedParams parameters) |
| Fires when a request has been processed successfully or failed. You can get information about HTTP request status via the RequestCompletedParams.GetStatus() method. If HTTP request status is RequestStatus.FAILED, you can get information about network error using the RequestCompletedParams.GetErrorCode() method. More... | |
| void | OnDestroyed (RequestParams parameters) |
| Fires when a request is being destroyed. More... | |
| bool | OnAuthRequired (AuthRequiredParams parameters) |
| This method is invoked when a request receives an authentication challenge and is unable to respond using cached credentials. You can use this method to handle "basic" or "digest" authentication. FYI: to test "basic" or "digest" authentication you can use http://test.webdav.org/ More... | |
| bool | OnCanSetCookies (string url, List< Cookie > cookies) |
| This method is invoked when Chromium engine decides whether cookies can be saved for the url or not. Return true to allow engine to save the cookies. If you return false, the cookies will not be saved and will not be available in CookieStorage. More... | |
| bool | OnCanGetCookies (string url, List< Cookie > cookies) |
| This method is invoked when Chromium engine decides whether cookies can be sent back to the web server. Return true to allow cookies to be sent to the web server. More... | |
| void | OnBeforeSendProxyHeaders (BeforeSendProxyHeadersParams parameters) |
| The similar to OnBeforeSendHeaders(BeforeSendHeadersParams) method. Fires when proxy connection is used, after OnBeforeSendHeaders method is invoked. Provides information about proxy connection, and also allows adding, modifying, and deleting HTTP request headers. More... | |
Interface for handling URL requests and responses.
| bool DotNetBrowser.NetworkDelegate.OnAuthRequired | ( | AuthRequiredParams | parameters | ) |
This method is invoked when a request receives an authentication challenge and is unable to respond using cached credentials. You can use this method to handle "basic" or "digest" authentication. FYI: to test "basic" or "digest" authentication you can use http://test.webdav.org/
| parameters | the authentication challenge information such as authentication scheme, URL etc. Use AuthRequiredParams.Username and AuthRequiredParams.Password to provide authentication credentials. |
Implemented in DotNetBrowser.DefaultNetworkDelegate, DotNetBrowser.WinForms.WinFormsDefaultNetworkDelegate, and DotNetBrowser.WPF.WPFDefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnBeforeRedirect | ( | BeforeRedirectParams | parameters | ) |
Fired when a server-initiated redirect is about to occur. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected.
| parameters | provides information about the current URL, new URL, HTTP method ("GET", "POST" etc.) and HTTP response code (e.g., 200, 404, and so on). |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnBeforeSendHeaders | ( | BeforeSendHeadersParams | parameters | ) |
Fires when a request is about to occur and the initial headers have been prepared. It allows adding, modifying, and deleting HTTP request headers. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected.
Note that one URL request can be split into several HTTP requests (for example to fetch individual byte ranges from a large file) or can be handled by the network stack without communicating with the network. For this reason, the event does not provide the final HTTP headers that are sent to the network. For example, all headers that are related to caching are invisible.
The following headers are currently not provided to the onBeforeSendHeaders event.
| parameters | provides information about request URL, HTTP method ("GET", "POST" etc.) and HTTP request headers. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnBeforeSendProxyHeaders | ( | BeforeSendProxyHeadersParams | parameters | ) |
The similar to OnBeforeSendHeaders(BeforeSendHeadersParams) method. Fires when proxy connection is used, after OnBeforeSendHeaders method is invoked. Provides information about proxy connection, and also allows adding, modifying, and deleting HTTP request headers.
| parameters | provides information about request. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnBeforeURLRequest | ( | BeforeURLRequestParams | parameters | ) |
Fires when a request is about to occur. This event is sent before any TCP connection is made and can be used to redirect requests to another location. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, then default behavior will be used - the target URL will not be changed.
| parameters | provides information about request URL and HTTP method ("GET", "POST" etc.). To override the target URL use the BeforeRedirectParams.SetURL(String)} method. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| bool DotNetBrowser.NetworkDelegate.OnCanGetCookies | ( | string | url, |
| List< Cookie > | cookies | ||
| ) |
This method is invoked when Chromium engine decides whether cookies can be sent back to the web server. Return true to allow cookies to be sent to the web server.
If this method throws an exception, then default behavior will be applied - the method returns true.
| url | a string representation of the URL associated with the cookies. |
| cookies | a list of cookies to send. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| bool DotNetBrowser.NetworkDelegate.OnCanSetCookies | ( | string | url, |
| List< Cookie > | cookies | ||
| ) |
This method is invoked when Chromium engine decides whether cookies can be saved for the url or not. Return true to allow engine to save the cookies. If you return false, the cookies will not be saved and will not be available in CookieStorage.
If this method throws an exception, then default behavior will be applied - the method returns true.
| url | a string representation of the URL associated with the cookies. |
| cookies | a list of cookies to apply. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnCompleted | ( | RequestCompletedParams | parameters | ) |
Fires when a request has been processed successfully or failed. You can get information about HTTP request status via the RequestCompletedParams.GetStatus() method. If HTTP request status is RequestStatus.FAILED, you can get information about network error using the RequestCompletedParams.GetErrorCode() method.
| parameters | provides information about request URL, HTTP method ("GET", "POST" etc.), request status, response code and network error code. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnDataReceived | ( | DataReceivedParams | parameters | ) |
This method is invoked each time when a part of the response body is received. When the whole response body is received, OnCompleted(RequestCompletedParams) method will be fired. This event is informational.
Note that Mime-Type and Charset, provided by DataReceivedParams, are taken from response headers and may be overridden by OnHeadersReceived(HeadersReceivedParams) method.
| parameters | provides information about request URL, HTTP method ("GET", "POST", etc.), Mime-Type, and response data. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnDestroyed | ( | RequestParams | parameters | ) |
Fires when a request is being destroyed.
| parameters | provides information about request. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnHeadersReceived | ( | HeadersReceivedParams | parameters | ) |
Fires each time that an HTTP(S) response header is received. Due to redirects and authentication requests this can happen multiple times per request. This event is intended to allow adding, modifying, and deleting HTTP response headers, such as incoming "Set-Cookie" headers.
This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected.
| parameters | provides information about request URL, HTTP method ("GET", "POST" etc.) and HTTP request headers. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnResponseStarted | ( | ResponseStartedParams | parameters | ) |
Fires when the first byte of the response body is received. For HTTP requests, this means that the status line and response headers are available. This event is informational.
This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected.
| parameters | provides information about request URL, HTTP method ("GET", "POST" etc.) and HTTP response code. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.
| void DotNetBrowser.NetworkDelegate.OnSendHeaders | ( | SendHeadersParams | parameters | ) |
Fires right before the HTTP headers are sent to the network. This event is informational and it does not allow modifying HTTP headers. This method is invoked synchronously. URL request will be blocked while this method is executing. If this method throws an exception, the loading process will not be affected.
| parameters | provides information about request URL, HTTP method ("GET", "POST" etc.) and HTTP request headers. HTTP headers overriding has no effect. |
Implemented in DotNetBrowser.DefaultNetworkDelegate.


A connected component of a graph is a subgraph where all vertices are reachable via edges in the subgraph.
Here’s an example of a graph with 8 connected components:
(Two of the connected components are single verts.)
There are a lot of theoretical uses of connected components that are beyond the scope of the course. But on the more practical front, here are some potential uses:
If you have a BFS or DFS, finding connected components is pretty straightforward if you modify your search to return a list of verts visited. (Also modify the search to not always color the verts white at the start.)
connected_components = [];
for v in graph.vertexes:
v.color = white
for v in graph.vertexes:
if v.color == white:
component = bfs(v)
connected_components.push(component);
Draw a graph of 8 vertexes with 3 connected components.


A track list? Yes, you can actually repeat multiple tracks.
On the other hand, if a fixed number of vertical tracks is used in the repeat notation and the number of items exceeds this value more rows are added. You can read more about that in the next section: implicit grids.
The repeat notation is quite useful, but it can be automated even further. Instead of setting a fixed number of repetitions we can use the auto-fill and auto-fit keywords.
The auto-fill keyword creates as many tracks as fit into the grid container without causing the grid to overflow it.
The auto-fit keyword behaves the same way as auto-fill, except that after grid item placement it will only create as many tracks as needed and any empty repeated track collapses.
If there are more items, auto-fit creates more columns.
All rules also apply to grid-template-rows.
If there are more grid items than cells in the grid or when a grid item is placed outside of the explicit grid, the grid container automatically generates grid tracks by adding grid lines to the grid. The explicit grid together with these additional implicit tracks and lines forms the so called implicit grid.
Two items placed outside of the explicit grid causing the creation of implicit lines and trackss
The widths and heights of the implicit tracks are set automatically. They are only big enough to fit the placed grid items, but it's possible to change this default behavior.
The grid-auto-rows and grid-auto-columns properties give us control over the size of implicit tracks.
Implicit tracks are now at least 300px wide and 60px high, but will expand if the content demands it.
Implicit tracks may not just be added to the end of the explicit grid. It may also happen that the explicit grid needs to be extended to the start.
Each item ends on the second line and spans 2 cells (one vertically, the other horizontally). Since there is only one cell before the second line respectively another implicit track is added to the grid at the start of each side.
As already mentioned, implicit tracks are also added if the number of items exceeds the number of cells. By default, the auto-placement algorithm places items by filling each row consecutively, adding new rows as necessary. We can specify how auto-placed items get flowed into the grid by using the grid-auto-flow property.
Due to the fact that it's possible to automatically size cells using grid-auto-rows and grid-auto-columns it's not obligatory to define an explicit grid.
Relying solely on the implicit grid can get confusing and difficult to understand in combination with explicit placement. In this example the first item is placed auto and spans 2 rows, the second item is placed explicitly in the first column and spans 2 columns creating a second vertical track. The third and fourth item would actually both be placed automatically in the fourth row, but the fifth item is placed explicitly in the previously non-existent third column. This creates a third vertical track and due to Grids auto-placement, the third item moves up a row to fill the space.


jQuery.confine Example 2
This example demonstrates
- implicitly confining a textarea via HTML5 data attributes on the textareas
- Support for confining dynamically added textareas after the plugin activation
Steps to test:
- Try typing in more than the maximum characters for each textarea
- Note that each has a separate maximum, defined by their data-maxlength HTML5 attributes
- Click 'Add Another Textarea' to dynamically add more fields, and note they are also confined by their attributes, even though they were created after the confine plugin was initialized.
Add Another Text Area


“Hitvā ghare pabbajitvā,
hitvā puttaṁ pasuṁ piyaṁ;
Hitvā rāgañca dosañca,
avijjañca virājiya;
Samūlaṁ taṇhamabbuyha,
upasantāmhi nibbutā”ti.
Having given up my home, my child, my cattle,
and all that I love, I went forth.
Having given up desire and hate,
having dispelled ignorance,
and having plucked out craving, root and all,
I’m quenched and at peace.
…
Saṅghā therī ….


BakedGoods
Tea Cakes &Slice Cakes
+
Muffins & Cup Cakes
+
Pastries
+
Brownies
+
Birthday & Party Cakes
+
Doughnuts & Mousses
+
Cookies,Rusk & Khari
+
Gourmet Breads
+


You can reach the filter at loadbalancerConfiguredFilter.
You can edit the file in webapps/configuredfilter/WEB-INF/classes/loadbalancer.json to change filters output.


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
July 02, 2003
Multilaterial military actions about to become obsolete
Guardian | Submitted by: Dirty Sammy
"The Pentagon is planning a new generation of weapons, including huge hypersonic drones and bombs dropped from space, that will allow the US to strike its enemies at lightning speed from its own territory. Over the next 25 years, the new technology would free the US from dependence on forward bases and the cooperation of regional allies, part of the drive towards self-sufficiency spurred by the difficulties of gaining international cooperation for the invasion of Iraq."
|
|
Read article... and
This article...
|
|
America pushing for total immunity on war crimes
Toronto Star | Submitted by: poorjon
"The United States will suspend military aid to about 35 countries that didn't meet a deadline today for exempting U.S. troops from prosecution before the new UN international war crimes tribunal. ... Created under a 1998 treaty, the court was established to prosecute genocide, war crimes and crimes against humanity cases against nationals of countries unwilling or unable to try the cases themselves. ... Former president Bill Clinton's administration signed the treaty but the Bush administration nullified the signature and has sought a permanent exemption from prosecutions."
|
|
Read article...
|
|
Big Brother back on schedule
Wire Services | Submitted by: thx1138
"The Pentagon is developing an urban surveillance system that would use computers and thousands of cameras to track, record and analyze the movement of every vehicle in a foreign city. ... The project's centerpiece is groundbreaking computer software that is capable of automatically identifying vehicles by size, color, shape and license tag, or drivers and passengers by face." [Next stop: Total Information Awareness.]
|
|
Read article... and
This article...
|
|
Giant blob washes ashore in Chile
CNN | Submitted by: Mikya
"Chilean scientists were baffled on Tuesday by a huge, gelatinous sea creature found washed up on the southern Pacific coast and were seeking international help identifying the mystery specimen. ... Photographs showed a round leathery substance like a mammoth jelly fish, about as long as a school bus."
 A court in Cologne fined a man who admitted he was having sex with a hitchhiker when he drove his car into a road sign, but only because he fled the scene. ... 'It's hard to believe, but in fact no law was broken with the intercourse on the motorway. It's a situation lawmakers never thought about.'"
|
|
Read article...
|
|
15-year-old repeatedly raped in South African jail
iAfrica | Submitted by: Tim Howard
"The repeated rape of a 15-year-old boy by an adult in a Mpumalanga police station holding cell has provoked an outcry from opposition parties, including a demand for a proper investigation of the incident. According to reports, the boy -- who is facing charges of theft of goods totalling R500 -- may have contracted AIDS after he was sexually abused by an inmate at the Amsterdam police cells."
|
|
Read article...
|
|
|
|
|


With a dexterous smack of the hands, Ovinus Real initiates a ritualistic summoning incantation, and a new episode materializes from the depths of the individual's imagination: The least they could do.
Previous episodes:
gunn.app: Please subscribe to Ovinus Real's YouTube channel · Facebook · Instagram · and join the unofficial Gunn Discord server.


{{ fontawesome_html() }}
Mycroft Remote Services Dashboard
REMOTE SERVICES DASHBOARD
LOGIN PORTAL
{{ form.csrf_token }}
Submit