Android 4.4+ and a WebView configured for debugging.
iOS users, rest assured, you can do it with Safari.
console.log("%s has %d points", "Sam", 100);
Also %c for css styles and %o / %O for Node/javascript representation
group('logging')
,
console.log('Getting data from DB', logging)
,
groupEnd()
Get a call stack of your execution point with console.trace()
Log timing with
time('logging')
,
timeEnd('logging')
Show on the timeline panel when your script is executed with
console.timeStamp('my-script')
table([{ firstName: "John", lastName: "Smith" },{firstName:"Jane",lastName:"Doe"}]);
keys(object)
,
values(object)
inspect($0)
,
dir($0)
,
copy($0)
(un)monitor(TI.app.init)
,
debug(TI.app.init)
(un)monitorEvents(window, ["resize", “scroll"])
,
getEventListeners($0)
{sourcemap => true}
in config.rb
great tool for performance and execution analysis
shows in-depth view of what happens when
visual execution overview
shows animation frames
spot memory leaks
console.profile();
...
console.profileEnd();
Steady growth of lows after GC cycles indicate memory leaks.
It's all HTML/JS/CSS - no magic!
It's all HTML/JS/CSS - no magic!
--debug-devtools-frontend=dir
Or read the Contribution Guide on how to contribute to upstream.


Checkout
Step 2 of 3
…
I have a promo code
Promo Code
Apply
Ship my order to…
Default Address
Sammy the Shark
New York City
Edit
Delete this address
A new address
Name
Street address 1
Street address 2
ZIP Code
City
State
Select state
Save Address
I'd like to include a gift message
Gift Message
256 characters left
I'll pay with…
My Visa Card
Credit Card Number
**********1111
Expiration
07/2016
Billing Address
1509 Latona St, Philadelphia, PA 19146
Edit
Delete this card
A New Credit Card
We accept these credit cards.
PayPal
When you click "Place Order", you will be taken to the PayPal website.
Place Order


Bio:
Born and raised in the PNW. I love the outdoors especially paddling and mountain biking. I am in my first year of learning web development and I am enjoying the challenge. I wouldn't say it comes easy to me but I love the "aha" moment when it all clicks and then you see the results of what you built.
Eduction:
- Code Fellows
- Coding Dojo
- Eastern Washington University
- Bellevue College
Job Experience:
Out of college I was doing the bookkeeping for my fathers business in automotive detailing. Long story short, a few years went by and before I knew it I was running the shop. This wasn't the plan but I ended up working there for over a decade. I loved the crew and the satisfaction of getting the job done. In January my father retired and it gave me a opportunity to start a new path in life which has brought me here to web development
- Detail Manager
- Bookkeeper
- Marketing nad Technology Assistant
- Parks Manager
Goals:
My goal is to become a self sufficient full stack web developer. I have already learned so much but also realize there is always so much more to learn! I am hoping to continue my education at Code Fellows through the 301 and 401.
Top 10 Incredible Cutting-Edge Technologies In Development:
- Sustainable Fusion Reactor
- Ultra–High Speed Tube Trains
- Wireless Electricity
- Real-Time Google Earth
- Holographic TV
- Tooth Regeneration
- Paper-Thin, Flexible Computers and Phones
- Sunscreen Pills
- Agricultural Robots
- Artificial Gills


Gluu Server Community Edition Docs
Gluu Server is a free open source identity provider (IDP) and access management suite of software primarily written in java. The Gluu Server combines best-of-breed open source identity and access management software with easy deployment and administration, and is engineered to support robust enterprise requirements for uptime and availability.
Primarily, the Gluu Server is used to achieve the following solutions:
- Outbound and Inbound Single Sign-On (SSO)
- Centralized authentication and authorization
- Customer, partner, and employee authentication
- Web & API access management
- Strong authentication
- Identity Federation
The code is open source, and available on Github.
Community support can be enlisted on the Gluu support site. If your organization needs to open private tickets with us, or needs an SLA or consultative support, Gluu offers a range of VIP support options.
Navigating The Docs
The menu on the left can be used to navigate the docs. However for convenience the following is given.
Install Gluu Server
| Operating System | Version |
|---|---|
| Ubuntu | 14.04 16.04 |
| CentOS | 6.x 7.2 |
| RHEL | 6.x 7 |
| Debian | 8.x |
Upgrading from a previous release
Configure Cluster
Please use the following to confugure Gluu Server manual cluster.
Gluu Server GUI
The following pages explain the oxTrust GUI
| oxTrust Tab Menu | Sub-menu |
|---|---|
| Configuration | oxTrust JSON Configuration oxAuth JSON Configuration Cache Refresh/Backend LDAP/AD |
| SAML | Outbound Inbound |
| OpenID Connect | n/a |
| UMA | n/a |
| Users | Import People |
| Personal | n/a |
Integrate Gluu Server
Service Provider/Requesting Party Integration
| SAML SP | OpenID Connect RP |
|---|---|
| CentOS | CentOS |
| Ubuntu | Ubuntu |
| IIS 7 | |
| Windows |
Integration Guides
| SSO | Plugin |
|---|---|
| Liferay | |
| Hobsons | |
| Salesforce |
Authentication
| Multi Factor Guides |
|---|
| DUO |
| U2F |
| oxPush2 |
| Wikid |
| Certificate |
Support
Please see the FAQ Page for basic troubleshooting, or open a ticket on our support portal for community support. Gluu also offers paid support. Please view our pricing page to learn more about our VIP support options.


The requested url not found on our server. We think the best thing to do is,start from the home page. Or please contact us at


To install @as-pect/core, install the latest version from github along with
@as-pect/assembly.
$ npm install @as-pect/core @as-pect/assembly
To create a TestContext simply import it and instantiate it.
import { TestContext, EmptyReporter } from"@as-pect/core";
import { instantiateBuffer } from"assemblyscript/lib/loader";
const ctx = new TestContext({
fileName: "test.spec.ts", // put the name of the AssemblyScript file here// groupRegex: /./, // if you want to filter what groups run, modify this regex// testRegex: /./, // if you want to filter what tests run, modify this regex// performanceConfiguration: {}, // modify the performance configuration here// nortrace: true, // disable rtrace monitoring// stdout: null, // change stdout (must have a `write(input: string)` method)// stderr: null, // change stderr (must have a `write(input: string)` method)
});
const imports = ctx.createImports({
// put any imports here
});
// instantiate the module using instantiateStreaming or instantiateBufferconst wasm = await instantiateStreaming(
fetch("./path/to/test/binary.wasm"),
imports,
);
// run the tests
ctx.run(wasm);
// inspect the testGroups for errorsconst groups = ctx.testGroups;
// check if the tests passedconst pass = ctx.pass;
Reporters are the way tests get reported. When running the CLI, the
SummaryReporter is used and all the values will be logged to the console. The
test suite itself does not log out test results. If you want to use a custom
reporter, you can create your own by extending the abstract Reporter class.
Each test suite run will use the provided reporter and call
onStart(suite: TestSuite) to notify a consumer that a test has started. This
happens once per test file. Since a file can have multiple describe function
calls, these are logically placed into TestGroups. Each TestGroup has it's
own description and contains a list of TestResults that were run.
If no reporter is provided to the configuration, one will be provided that uses
stdout and chalk to provide colored output.
If performance is enabled, then the times array will be populated with the
runtime values measured in milliseconds.
This reporter outputs a lot of information, including:
All Test Groups and Test Names for each test
RTrace Info (reference allocations vs deallocations)
Performance Statistics
Logging Information
const { VerboseReporter, TestContext } = require("@as-pect/core");
// create a test contextconst ctx = new TestContext({
reporter: new VerboseReporter(),
});
The JSONReporter can be used to create json files that contain the test
output. The file output location is {testname}.spec.json. It can be used
directly from the configuration file.
const { JSONReporter, TestContext } = require("@as-pect/core");
// export your configurationconst ctx = new TestContext({
reporter: new JSONReporter(), // internally uses the fs.createWriteStream() function
});
The object ouput definition is shaped like this:
// Test Results are compiled into an array
[
// For each test, there is an object with the following shape
{
// The Test Group
group: group.name,
// The Test Name
name: result.name,
// If it ran
ran: result.ran,
// If it passed
pass: result.pass,
// The total test runtim
runtime: result.runTime,
// The error message
message: result.message,
// Actual value message if an expectation failed
actual: result.actual ? result.actual.message : null,
// Expected value message if an expectation failed
expected: result.expected ? result.expected.message : null,
// The average run time (performance)
average: result.average,
// The median run time (performance)
median: result.median,
// The maximum run time (performance)
max: result.max,
// The minimum run time (performance)
min: result.min,
// The standard deviation of the run times (performance)
stdDev: result.stdDev,
// The variance of the run times (performance)
variance: result.variance,
},
];
The CSVReporter can be used to create csv files that contain the test
output. The file output location is {testname}.spec.csv. It can be used
directly from the configuration file.
const { CSVReporter, TestContext } = require("@as-pect/core");
// export your configurationconst ctx = new TestContext({
reporter: new CSVReporter(), // internally uses the fs.createWriteStream() function
});
This is a list of all the columns in the exported csv file.
const csvColumns = [
"Group", // The Test Group"Name", // The Test Name"Ran", // If it ran"Pass", // If it passed"Runtime", // The total test runtim"Message", // The error message"Actual", // Actual value message if an expectation failed"Expected", // Expected value message if an expectation failed"Average", // The average run time (performance)"Median", // The median run time (performance)"Max", // The maximum run time (performance)"Min", // The minimum run time (performance)"StdDev", // The standard deviation of the run times (performance)"Variance", // The variance of the run times (performance)
];
It is possible to write as-pect tests that run in jest as well. The
compatible functions are documented in the
@as-pect/core/types/as-pect.portable.d.ts file and can be added to your
project by using the --portable flag. Instead of using the types provided by
@types/jest, use the portable ones provided by as-pect. This is the
recommended way to setup testing when trying to write portable tests.
npminstall--save-devjest @as-pect/cli typescript assemblyscript/assemblyscript
npx ts-jest config:init
npx asp --portable
Then change the jest configuration to match these properties as you see fit:
This method is used for extending matchers in JS. JS is a dynamic language, and AssemblyScript is not. It is possible to create custom assertions without this method, so it is marked as "won't support."
expect.anything()
🤞 Maybe Support
This is a dynamic matcher, and dynamic matchers are currently not supported. It is possible to implement something like this. Please see contributing on how to submit a pull request.
expect.any(constructor)
👎 Won't Support
This method is impossible to replicate in AssemblyScript because classes are not concrete values.
expect.arrayContaining(array)
🤞 Maybe Support
This is a dynamic matcher, and dynamic matchers are currently not supported. It is possible to implement something like this. Please see contributing on how to submit a pull request.
expect.assertions(number)
🤞 Maybe Support
This is entirely possible to implement. Please see contributing on how to submit a pull request.
expect.hasAssertions()
🤞 Maybe Support
This is entirely possible to implement. Please see contributing on how to submit a pull request.
expect.not.arrayContaining(array)
🤞 Maybe Support
This is entirely possible to implement. Please see contributing on how to submit a pull request.
expect.not.objectContaining(object)
🛑 Maybe Support (waiting)
This is entirely possible to implement, but Reflection must be supported.
expect.not.stringContaining(string)
🤞 Maybe Support
This is entirely possible to implement. Please see contributing on how to submit a pull request.
expect.not.stringMatching(string | regexp)
🛑 Maybe Support (waiting)
This is entirely possible to implement, but this method may require a RegExp implemention to be implemented fully. Please see contributing on how to submit a pull request.
expect.objectContaining(object)
🛑 Maybe Support (waiting)
This is entirely possible to implement, but Reflection must be supported.
expect.stringContaining(string)
🤞 Maybe Support
This is entirely possible to implement. Please see contributing on how to submit a pull request.
expect.stringMatching(string | regexp)
🛑 Maybe Support (waiting)
This is entirely possible to implement, but this method may require a RegExp implemention to be implemented fully. Please see contributing on how to submit a pull request.
expect.addSnapshotSerializer(serializer)
🤞 Maybe Support
This may be possible to implement, but this method requires snapshots. Please see contributing on how to submit a pull request.
.not
✔ Supported
.resolves
🛑 Maybe Support (waiting)
This may be possible to implement, but this method requires Promises. Please see contributing on how to submit a pull request.
.rejects
🛑 Maybe Support (waiting)
This may be possible to implement, but this method requires Promises. Please see contributing on how to submit a pull request.
.toBe(value)
✔ Supported
.toHaveBeenCalled()
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has been called. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveBeenCalledTimes(number)
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has been called. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveBeenCalledWith(arg1, arg2, ...)
👎 Won't Support
Rest parameters and argument inspection is not possible in AssemblyScript.
.toHaveBeenLastCalledWith(arg1, arg2, ...)
👎 Won't Support
Rest parameters and argument inspection is not possible in AssemblyScript.
Rest parameters and argument inspection is not possible in AssemblyScript.
.toHaveReturned()
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveReturnedTimes(number)
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveReturnedWith(value)
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveLastReturnedWith(value)
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveNthReturnedWith(nthCall, value)
🤞 Maybe Support
Currently, there is no good way to use jest.fn() in as-pect. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a --function-calls flag potentially. Please see contributing on how to submit a pull request.
.toHaveLength(number)
✔ Supported
Only incompatible with ArrayBuffer values
.toHaveProperty(keyPath, value?)
👎 Won't Support
Properties are known at compile time.
.toBeCloseTo(number, numDigits?)
✔ Supported
.toBeDefined()
🤞 Maybe Support
This is currently possible to implement. Please see contributing on how to submit a pull request.
.toBeFalsy()
✔ Supported
.toBeGreaterThan(number)
✔ Supported
References comparisons using this comparison require overriding valueOf() which should a f64 value, and using the operator(">") decorator.
.toBeGreaterThanOrEqual(number)
✔ Supported
References comparisons using this comparison require overriding valueOf() which should a f64 value, and using the operator(">=") decorator.
.toBeLessThan(number)
✔ Supported
References comparisons using this comparison require overriding valueOf() which should a f64 value, and using the operator("<") decorator.
.toBeLessThanOrEqual(number)
✔ Supported
References comparisons using this comparison require overriding valueOf() which should a f64 value, and using the operator("<=") decorator.
.toBeInstanceOf(Class)
👎 Won't Support
Use expect<bool>(actual instanceof Class).toBeTruthy() instead.
.toBeNull()
✔ Supported
Only works for reference values. Number values will always fail this assertion in AssemblyScript.
.toBeTruthy()
✔ Supported
.toBeUndefined()
👎 Won't Support
The undefined value does not exist in AssemblyScript.
.toBeNaN()
✔ Supported
Must be used on float values.
.toContain(item)
✔ Partially Supported
Type cannot be string (yet.) This will be supported on a future date. Please see contributing on how to submit a pull request.
.toContainEqual(item)
✔ Supported
.toEqual(value)
🤞 Maybe Support
This can be implemented when reflection is implemented. Please see contributing on how to submit a pull request.
.toMatch(regexpOrString)
🤞 Maybe Support
This method requires RegExp for full support. Please see contributing on how to submit a pull request.
.toMatchObject(object)
🤞 Maybe Support
This can be implemented when reflection is implemented. Please see contributing on how to submit a pull request.
.toMatchSnapshot(propertyMatchers?, hint?)
🤞 Maybe Support
This is hard to implement because JS can dynamically inspect arguments. It requires a filesystem and should serialize snapshots just like jest does. Perhaps partial support for expect(actual).toMatchSnapshot(hint?) would be a good compromise. Please see contributing on how to submit a pull request.
This method is cannot be supported because errors cannot be inspected for their type, it requires a post-test-run transform, and it also requires an ast transformer like babel or prettier.
If an expectation fails and hits an unreachable() instruction, any unreleased
references in the function call stack will be held indefinitely as a memory
leak. Test Suites don't stop running if they fail the test callback. However,
tests will stop if they fail inside the beforeEach(), beforeAll(),
afterEach(), and afterAll() callbacks.
Typically, a throws() test will leave at least a single Expectation on the
heap. This is to be expected, because the unreachable() instruction unwinds
the stack, and prevents the ability for each function to __release a reference
pointer properly. Your test suite output may look like this:
[Describe]: toHaveLength TypedArray type: Uint32Array
[Success]: ✔ should assert expected length
[Throws]: ✔ when expected length should not equal the same value RTrace: +3
[Success]: ✔ should verify the lengthisnot another value
[Throws]: ✔ when the lengthis another expected value RTrace: +3
The RTrace: +3 corresponds to an Expectation, a Uint32Array, and a single
backing ArrayBuffer that was left on the heap because of the fact that the
expectation failed. This was expected because these two tests were annotated
with the throws(desc, callback) function. If you see a function that is
expected to pass and RTrace returns a very large value, it might be an
indicator of a very serious memory leak, and the DefaultTestReporter can be
your best friend when it comes to finding these sorts of problems.
Among other solutions, the following methods are exposed to you as a way to
inspect how many allocations and frees occurred during the course of function
execution. Every one of these functions exist in the RTrace namespace and will
call into JavaScript to query the state of the heap relative to the overall test
file, the test group, and each individual test depending on the function.
The start method creates a starting point for a relative number of heap
allocations. It should be used in conjunction with the RTrace.end(label)
method which returns the relative number of heap allocations compared to the
starting number when the label was created.
The end method creates an ending point for a relative number of heap
allocations to be measured from. It should be used in conjunction with the
RTrace.start(label) method which returns the relative number of heap
allocations compared to the starting number when the label was created.
To increase performance on testing, do not use the log() function and reduce
the amount of IO that as-pect must do to compile your tests. The biggest
bottleneck in Web Assembly testing, is compilation. This means that using
things like @inline many times will cause your module to compile more slowly,
and as a result the test file will run slower.
To enable performance using the global test functions, call the
Performance.enabled() function with a true value.
describe("my test suite", () => {
Performance.enabled(true);
test("some performance test", () => {
// some performance sensitive code
});
});
When using Performance.enabled(true) on a test, logs are not supported for
that specific test. Running 10000 samples of a function that collects logs
will result in a very large amount of memory usage and IO. Calls to log<T>()
will be ignored and any test with the test.performance property set to
true will have a test.logs array with a length of 0.
Note that each of the performance functions must be called before the test is
declared in the same describe block to override the corresponding default
configuration values on a test by test basis.
To override the maximum number of samples collected, use the
Performance.maxSamples function.
Performance.maxSamples(10000); // 10000 is the maximum value
it("should collect only 10000 samples at most", () => {});
To override the maximum test run time (including test logic), use the
Performance.maxRunTime function.
Performance.maxRunTime(5000); // 5000 ms, or 5 seconds of test run time
it("should have a maxRunTime of 5 seconds", () => {});
To override how many decimal places are rounded to, use the
Performance.roundDecimalPlaces function.
Performance.roundDecimalPlaces(4); // 3 is the default
it("should round to 4 decimal places", () => {});
To force reporting of the median test runtime, use the
Performance.reportMedian function.
Performance.reportMedian(true); // false will disable reporting of the median
it("should report the median", () => {});
To force reporting of the average, or mean test runtime, use the
Performance.reportAverage function.
Performance.reportAverage(true); // false will disable reporting of the mean
it("should report the average", () => {});
To force reporting of the variance of the runtimes, use the
Performance.reportVariance function.
// false will disable reporting of the variance
Performance.reportVariance(true);
it("should report the variance deviation", () => {});
To force reporting of the standard deviation of the runtimes, use the
Performance.reportStdDev function. This method implies the use of a variance
calculation, and will be auto-included in the test result.
// false will disable reporting of the standard deviation
Performance.reportStdDev(true);
it("should report the standard deviation", () => {});
To force reporting of the maximum runTime value, use the
Performance.reportMax function.
Performance.reportMax(true); // false will disable reporting of the max
it("should report the max", () => {});
To force reporting of the minimum runTime value, use the
Performance.reportMin function.
Performance.reportMin(true); // false will disable reporting of the min
it("should report the min", () => {});
Providing these values inside an as-pect.config.js configuration will set
these as the global defaults.
Note that when using the cli, the cli flag inputs will override the
as-pect.config.js configured values.
// in as-pect.config.jsmodule.exports = {
performance: {
/** Enable performance statistics gathering for *every* test. */
enabled: false,
/** Set the maximum number of samples to run for every test. */
maxSamples: 10000,
/** Set the maximum test run time in milliseconds for every test. */
maxTestRunTime: 2000,
/** Report the median time in the default reporter for every test. */
reportMedian: true,
/** Report the average time in milliseconds for every test. */
reportAverage: true,
/** Report the standard deviation for every test. */
reportStandardDeviation: false,
/** Report the maximum run time in milliseconds for every test. */
reportMax: false,
/** Report the minimum run time in milliseconds for every test. */
reportMin: false,
},
};
It's possible that running your tests requires a browser environment. Instead
of running as-pect from the command line, use the --output-binary flag
along with the --norun flag and this will cause as-pect to output the
*.spec.wasm file. This binary can be fetch()ed and instantiate like the
following example.
// browser-test.tsimport { instantiateBuffer } from"assemblyscript/lib/loader";
import {
TestContext,
IPerformanceConfiguration,
IAspectExports,
// EmptyReporter,
} from"as-pect";
const performanceConfiguration: IPerformanceConfiguration = {
// put performance configuration values here
};
// Create a TestContextconst runner = new TestContext({
// reporter: new EmptyReporter(), // Use this to override default test reporting
performanceConfiguration,
// testRegex: /.*/, // Use this to run only tests that match this regex// groupRegex: /.*/, // Use this to run only groups that match this regex
fileName: "./test.spec.ts", // Always set the filename
});
// put your assemblyscript imports hereconst imports = runner.createImports({});
// instantiate your test module here via the "assemblyscript/lib/loader" moduleconst wasm = instantiateStreaming<IAspectExports>(
fetch("./test.spec.wasm"),
imports,
);
runner.run(wasm); // run the tests synchronously// loop over each group and test in that groupfor (const group of runner.testGroups) {
for (const test of group.tests) {
console.log(test.name, test.pass ? "pass" : "fail");
}
}
If you want to compile each test suite manually, it's possible to use the asc
compiler yourself by including the following file in your compilation.
./node_modules/as-pect/assembly/index.ts
By default, as-pect always shows the generated compiler flags.
@as-pect/core
Typescript infastructure for running tests.
Table of contents
Usage
To install
@as-pect/core
, install the latest version from github along with@as-pect/assembly
.$ npm install @as-pect/core @as-pect/assembly
To create a
TestContext
simply import it and instantiate it.import { TestContext, EmptyReporter } from "@as-pect/core"; import { instantiateBuffer } from "assemblyscript/lib/loader"; const ctx = new TestContext({ fileName: "test.spec.ts", // put the name of the AssemblyScript file here // groupRegex: /./, // if you want to filter what groups run, modify this regex // testRegex: /./, // if you want to filter what tests run, modify this regex // performanceConfiguration: {}, // modify the performance configuration here // nortrace: true, // disable rtrace monitoring // stdout: null, // change stdout (must have a `write(input: string)` method) // stderr: null, // change stderr (must have a `write(input: string)` method) }); const imports = ctx.createImports({ // put any imports here }); // instantiate the module using instantiateStreaming or instantiateBuffer const wasm = await instantiateStreaming( fetch("./path/to/test/binary.wasm"), imports, ); // run the tests ctx.run(wasm); // inspect the testGroups for errors const groups = ctx.testGroups; // check if the tests passed const pass = ctx.pass;
Reporters
Reporters are the way tests get reported. When running the CLI, the
SummaryReporter
is used and all the values will be logged to the console. The test suite itself does not log out test results. If you want to use a custom reporter, you can create your own by extending the abstractReporter
class.export abstract class Reporter { public abstract onStart(suite: TestSuite): void; public abstract onGroupStart(group: TestGroup): void; public abstract onGroupFinish(group: TestGroup): void; public abstract onTestStart(group: TestGroup, result: TestResult): void; public abstract onTestFinish(group: TestGroup, result: TestResult): void; public abstract onFinish(suite: TestSuite): void; public abstract onTodo(group: TestGroup, todo: string): void; }
Each test suite run will use the provided reporter and call
onStart(suite: TestSuite)
to notify a consumer that a test has started. This happens once per test file. Since a file can have multipledescribe
function calls, these are logically placed intoTestGroup
s. EachTestGroup
has it's own description and contains a list ofTestResult
s that were run.If no reporter is provided to the configuration, one will be provided that uses
stdout
andchalk
to provide colored output.If performance is enabled, then the
times
array will be populated with the runtime values measured in milliseconds.SummaryReporter
This reporter only outputs failed tests and is the default
TestReporter
used by theas-pect
cli. It can be used directly from the configuration file.const { SummaryReporter, TestContext } = require("@as-pect/core"); // create a test context const ctx = new TestContext({ reporter: new SummaryReporter({ // enableLogging: false, // disable logging }), });
VerboseReporter
This reporter outputs a lot of information, including:
const { VerboseReporter, TestContext } = require("@as-pect/core"); // create a test context const ctx = new TestContext({ reporter: new VerboseReporter(), });
JSONReporter
The
JSONReporter
can be used to createjson
files that contain the test output. The file output location is{testname}.spec.json
. It can be used directly from the configuration file.const { JSONReporter, TestContext } = require("@as-pect/core"); // export your configuration const ctx = new TestContext({ reporter: new JSONReporter(), // internally uses the fs.createWriteStream() function });
The object ouput definition is shaped like this:
// Test Results are compiled into an array [ // For each test, there is an object with the following shape { // The Test Group group: group.name, // The Test Name name: result.name, // If it ran ran: result.ran, // If it passed pass: result.pass, // The total test runtim runtime: result.runTime, // The error message message: result.message, // Actual value message if an expectation failed actual: result.actual ? result.actual.message : null, // Expected value message if an expectation failed expected: result.expected ? result.expected.message : null, // The average run time (performance) average: result.average, // The median run time (performance) median: result.median, // The maximum run time (performance) max: result.max, // The minimum run time (performance) min: result.min, // The standard deviation of the run times (performance) stdDev: result.stdDev, // The variance of the run times (performance) variance: result.variance, }, ];
CSVReporter
The
CSVReporter
can be used to createcsv
files that contain the test output. The file output location is{testname}.spec.csv
. It can be used directly from the configuration file.const { CSVReporter, TestContext } = require("@as-pect/core"); // export your configuration const ctx = new TestContext({ reporter: new CSVReporter(), // internally uses the fs.createWriteStream() function });
This is a list of all the columns in the exported csv file.
const csvColumns = [ "Group", // The Test Group "Name", // The Test Name "Ran", // If it ran "Pass", // If it passed "Runtime", // The total test runtim "Message", // The error message "Actual", // Actual value message if an expectation failed "Expected", // Expected value message if an expectation failed "Average", // The average run time (performance) "Median", // The median run time (performance) "Max", // The maximum run time (performance) "Min", // The minimum run time (performance) "StdDev", // The standard deviation of the run times (performance) "Variance", // The variance of the run times (performance) ];
Portability
It is possible to write
as-pect
tests that run injest
as well. The compatible functions are documented in<EMAIL_ADDRESS>file and can be added to your project by using the--portable
flag. Instead of using the types provided by@types/jest
, use the portable ones provided byas-pect
. This is the recommended way to setup testing when trying to write portable tests.npm install --save-dev jest @as-pect/cli typescript assemblyscript/assemblyscript npx ts-jest config:init npx asp --portable
Then change the jest configuration to match these properties as you see fit:
module.exports = { preset: "ts-jest", testEnvironment: "node", testMatch: ["assembly/__tests__/**/*.spec.ts"], };
This is the compatibility table.
as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has been called. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has been called. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.as-pect
. However, it is possible to apply a transform to the source and notify the host that a function has returned a value. We can support this feature under a--function-calls
flag potentially. Please see contributing on how to submit a pull request.ArrayBuffer
valuesvalueOf()
which should af64
value, and using theoperator(">")
decorator.valueOf()
which should af64
value, and using theoperator(">=")
decorator.valueOf()
which should af64
value, and using theoperator("<")
decorator.valueOf()
which should af64
value, and using theoperator("<=")
decorator.expect<bool>(actual instanceof Class).toBeTruthy()
instead.undefined
value does not exist in AssemblyScript.expect(actual).toMatchSnapshot(hint?)
would be a good compromise. Please see contributing on how to submit a pull request.RTrace and Memory Leaks
If an expectation fails and hits an
unreachable()
instruction, any unreleased references in the function call stack will be held indefinitely as a memory leak. Test Suites don't stop running if they fail the test callback. However, tests will stop if they fail inside thebeforeEach()
,beforeAll()
,afterEach()
, andafterAll()
callbacks.Typically, a
throws()
test will leave at least a singleExpectation
on the heap. This is to be expected, because theunreachable()
instruction unwinds the stack, and prevents the ability for each function to__release
a reference pointer properly. Your test suite output may look like this:[Describe]: toHaveLength TypedArray type: Uint32Array [Success]: ✔ should assert expected length [Throws]: ✔ when expected length should not equal the same value RTrace: +3 [Success]: ✔ should verify the length is not another value [Throws]: ✔ when the length is another expected value RTrace: +3
The
RTrace: +3
corresponds to anExpectation
, aUint32Array
, and a single backingArrayBuffer
that was left on the heap because of the fact that the expectation failed. This was expected because these two tests were annotated with thethrows(desc, callback)
function. If you see a function that is expected topass
andRTrace
returns a very large value, it might be an indicator of a very serious memory leak, and theDefaultTestReporter
can be your best friend when it comes to finding these sorts of problems.Among other solutions, the following methods are exposed to you as a way to inspect how many allocations and frees occurred during the course of function execution. Every one of these functions exist in the
RTrace
namespace and will call into JavaScript to query the state of the heap relative to the overall test file, the test group, and each individual test depending on the function.RTrace.count()
The count method returns the current number of heap allocations.
Example:
const num: i32 = RTrace.count(); // The current number of allocations on the heap
RTrace.start(label: i32)
The start method creates a starting point for a relative number of heap allocations. It should be used in conjunction with the
RTrace.end(label)
method which returns the relative number of heap allocations compared to the starting number when the label was created.Example:
const enum RTraceLabels { MEMORY_INTENSIVE_OPERATION = 0, } RTrace.start(RTraceLabels.MEMORY_INTENSIVE_OPERATION); doSomething(); const end: i32 = RTrace.end(RTraceLabels.MEMORY_INTENSIVE_OPERATION); expect<i32>(end).toBe(0);
RTrace.end(label: i32)
The end method creates an ending point for a relative number of heap allocations to be measured from. It should be used in conjunction with the
RTrace.start(label)
method which returns the relative number of heap allocations compared to the starting number when the label was created.Example:
const enum RTraceLabels { MEMORY_INTENSIVE_OPERATION = 0, } RTrace.start(RTraceLabels.MEMORY_INTENSIVE_OPERATION); doSomething(); const end: i32 = RTrace.end(RTraceLabels.MEMORY_INTENSIVE_OPERATION); expect<i32>(end).toBe(0);
RTrace.allocations()
The allocations function will report the exact number of allocations that have occurred during the course of test file evaluation.
const allocations: i32 = RTrace.allocations();
RTrace.frees()
The allocations function will report the exact number of frees that have occurred during the course of test file evaluation.
const frees: i32 = RTrace.frees();
RTrace.groupAllocations()
The allocations function will report the exact number of allocations that have occurred during the course of the test group's evaluation.
describe("a group", () => { afterAll(() => { const groupAllocations: i32 = RTrace.groupAllocations(); }); });
RTrace.groupFrees()
The frees function will report the exact number of frees that have occurred during the course of the test group's evaluation.
describe("a group", () => { afterAll(() => { const groupFrees: i32 = RTrace.groupFrees(); }); });
RTrace.testAllocations()
The allocations function will report the exact number of allocations that have occurred during the course of the test's evaluation.
describe("a group", () => { afterEach(() => { const testAllocations: i32 = RTrace.testAllocations(); }); });
RTrace.testFrees()
The frees function will report the exact number of frees that have occurred during the course of the test's evaluation.
describe("a group", () => { afterEach(() => { const testFrees: i32 = RTrace.testFrees(); }); });
RTrace.increments()
The increments function returns the total number of reference counted increments that occurred over the course of the current test file.
Example:
const increments: i32 = RTrace.increments();
RTrace.decrements()
The decrements function returns the total number of reference counted decrements that occurred over the course of the current test file.
Example:
const decrements: i32 = RTrace.decrements();
RTrace.groupIncrements()
The groupIncrements function returns the total number of reference counted increments that occurred over the course of the current testing group.
describe("A testing group", () => { afterAll(() => { // log how many increments occured log<i32>(RTrace.groupIncrements()); }); });
RTrace.groupDecrements()
The groupDecrements function returns the total number of reference counted decrements that occurred over the course of the current testing group.
describe("A testing group", () => { afterAll(() => { // log how many increments occured log<i32>(RTrace.groupDecrements()); }); });
RTrace.testIncrements()
The testIncrements function returns the total number of reference counted increments that occurred over the course of the current testing group.
describe("A testing group", () => { afterEach(() => { // log how many increments occured log<i32>(RTrace.testIncrements()); }); });
RTrace.testDecrements()
The testDecrements function returns the total number of reference counted decrements that occurred over the course of the current testing group.
describe("A testing group", () => { afterEach(() => { // log how many increments occured log<i32>(RTrace.testDecrements()); }); });
RTrace.collect()
This method triggers a garbage collection.
describe("something", () => { // put some tests here }); afterEach(() => { // trigger a garbage collection after each test RTrace.collect(); });
Performance Testing
To increase performance on testing, do not use the
log()
function and reduce the amount of IO thatas-pect
must do to compile your tests. The biggest bottleneck in Web Assembly testing, is compilation. This means that using things like@inline
many times will cause your module to compile more slowly, and as a result the test file will run slower.Performance Enabling Via API
To enable performance using the global test functions, call the
Performance.enabled()
function with atrue
value.describe("my test suite", () => { Performance.enabled(true); test("some performance test", () => { // some performance sensitive code }); });
When using
Performance.enabled(true)
on a test, logs are not supported for that specific test. Running 10000 samples of a function that collects logs will result in a very large amount of memory usage and IO. Calls tolog<T>()
will be ignored and any test with thetest.performance
property set totrue
will have atest.logs
array with a length of0
.Note that each of the performance functions must be called before the test is declared in the same
describe
block to override the corresponding default configuration values on a test by test basis.To override the maximum number of samples collected, use the
Performance.maxSamples
function.Performance.maxSamples(10000); // 10000 is the maximum value it("should collect only 10000 samples at most", () => {});
To override the maximum test run time (including test logic), use the
Performance.maxRunTime
function.Performance.maxRunTime(5000); // 5000 ms, or 5 seconds of test run time it("should have a maxRunTime of 5 seconds", () => {});
To override how many decimal places are rounded to, use the
Performance.roundDecimalPlaces
function.Performance.roundDecimalPlaces(4); // 3 is the default it("should round to 4 decimal places", () => {});
To force reporting of the median test runtime, use the
Performance.reportMedian
function.Performance.reportMedian(true); // false will disable reporting of the median it("should report the median", () => {});
To force reporting of the average, or mean test runtime, use the
Performance.reportAverage
function.Performance.reportAverage(true); // false will disable reporting of the mean it("should report the average", () => {});
To force reporting of the variance of the runtimes, use the
Performance.reportVariance
function.// false will disable reporting of the variance Performance.reportVariance(true); it("should report the variance deviation", () => {});
To force reporting of the standard deviation of the runtimes, use the
Performance.reportStdDev
function. This method implies the use of a variance calculation, and will be auto-included in the test result.// false will disable reporting of the standard deviation Performance.reportStdDev(true); it("should report the standard deviation", () => {});
To force reporting of the maximum runTime value, use the
Performance.reportMax
function.Performance.reportMax(true); // false will disable reporting of the max it("should report the max", () => {});
To force reporting of the minimum runTime value, use the
Performance.reportMin
function.Performance.reportMin(true); // false will disable reporting of the min it("should report the min", () => {});
Performance Enabling Via Configuration
Providing these values inside an
as-pect.config.js
configuration will set these as the global defaults.Note that when using the
cli
, the cli flag inputs will override theas-pect.config.js
configured values.// in as-pect.config.js module.exports = { performance: { /** Enable performance statistics gathering for *every* test. */ enabled: false, /** Set the maximum number of samples to run for every test. */ maxSamples: 10000, /** Set the maximum test run time in milliseconds for every test. */ maxTestRunTime: 2000, /** Report the median time in the default reporter for every test. */ reportMedian: true, /** Report the average time in milliseconds for every test. */ reportAverage: true, /** Report the standard deviation for every test. */ reportStandardDeviation: false, /** Report the maximum run time in milliseconds for every test. */ reportMax: false, /** Report the minimum run time in milliseconds for every test. */ reportMin: false, }, };
Using as-pect as a Package
It's possible that running your tests requires a browser environment. Instead of running
as-pect
from the command line, use the--output-binary
flag along with the--norun
flag and this will causeas-pect
to output the*.spec.wasm
file. This binary can befetch()
ed and instantiate like the following example.// browser-test.ts import { instantiateBuffer } from "assemblyscript/lib/loader"; import { TestContext, IPerformanceConfiguration, IAspectExports, // EmptyReporter, } from "as-pect"; const performanceConfiguration: IPerformanceConfiguration = { // put performance configuration values here }; // Create a TestContext const runner = new TestContext({ // reporter: new EmptyReporter(), // Use this to override default test reporting performanceConfiguration, // testRegex: /.*/, // Use this to run only tests that match this regex // groupRegex: /.*/, // Use this to run only groups that match this regex fileName: "./test.spec.ts", // Always set the filename }); // put your assemblyscript imports here const imports = runner.createImports({}); // instantiate your test module here via the "assemblyscript/lib/loader" module const wasm = instantiateStreaming<IAspectExports>( fetch("./test.spec.wasm"), imports, ); runner.run(wasm); // run the tests synchronously // loop over each group and test in that group for (const group of runner.testGroups) { for (const test of group.tests) { console.log(test.name, test.pass ? "pass" : "fail"); } }
If you want to compile each test suite manually, it's possible to use the
asc
compiler yourself by including the following file in your compilation../node_modules/as-pect/assembly/index.ts
By default,
as-pect
always shows the generated compiler flags.


A journey into the world of containers and storage.
docker run -d -v /storage/solution:/data mysql
Kai Davenport - @kai_davenport
ClusterHQ - https://clusterhq.com


H(x) is the h-index for the past x years. Here, the h(x) of a scientist/department/etc. can be calculated using the exported excel file from a Web of Science citation report of a search. Also calculated is the year of first publication, total number of publications, and sum of times cited for the specified period. Therefore, for h-10: the date of first publication, total number of publications, and sum of times cited in the past 10 years are calculated. Note: the excel file has to first be saved in a .csv format.
| Version: | 1.0.0 |
| Depends: | R (≥ 3.2.0) |
| Published: | 2015-09-11 |
| Author: | Sepand Alavifard [aut, cre] |
| Maintainer: | Sepand Alavifard <s.alavifard at gmail.com> |
| License: | AGPL |
| NeedsCompilation: | no |
| CRAN checks: | hindexcalculator results |
| Reference manual: | hindexcalculator.pdf |
| Package source: | hindexcalculator_1.0.0.tar.gz |
| Windows binaries: | r-devel: hindexcalculator_1.0.0.zip, r-release: hindexcalculator_1.0.0.zip, r-oldrel: hindexcalculator_1.0.0.zip |
| OS X binaries: | r-release: hindexcalculator_1.0.0.tgz, r-oldrel: hindexcalculator_1.0.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=hindexcalculator to link to this page.


European Union Offers Technical Assistance to Pakistan on FATF Action Plan
On development cooperation, the EU and Pakistan appreciated the encouraging progress of ongoing activities and exchanged views on priorities concerning cooperation beyond 2020.
Islamabad: The European Union (EU) has offered technical assistance to Pakistan for implementation of the Financial Action Task Force (FATF) action plan by the country, it was reported on Sunday.
A joint press release issued at the conclusion of the 10th session of the European Union-Pakistan Joint Commission in Brussels on Friday said that the two sides emphasised the importance of the implementation of FATF action plan by Pakistan, Dawn news reported.
The Pakistan side at the meeting appreciated the EU’s offer of technical assistance.
Implementation of ‘GSP-Plus’, issues hampering trade and investment, and improving the business climate remained focus of the discussion during the meeting.
On development cooperation, the EU and Pakistan appreciated the encouraging progress of ongoing activities and exchanged views on priorities concerning cooperation beyond 2020.
The next session of the joint commission will be held in Islamabad in 2020.
The two sides undertook to hold the next political dialogue in Islamabad that would contribute towards the EU-Pakistan strategic dialogue at high representative and foreign minister level at mutually agreed dates in Brussels.
For breaking news and live news updates, like us on Facebook or follow us on Twitter and Instagram. Read more on World Latest News on India.com.
Story Timeline
- 19 Oct 2019 'Pakistan Under Pressure to Act,' Says Army Chief After FATF Gives Pakistan February 2020 Deadline to Curb Ter...
- 18 Oct 2019 Pakistan Escapes FATF Blacklisting, Gets February 2020 Deadline to Crackdown on Terror Financing
Comments - Join the Discussion


THE PRICE OF MILK
Reviewed by Harvey Karten Lot 47 Director: Harry Sinclair Writer: Harry Sinclair Cast: Danielle Cormack, Karl Urban, Willa O'Neill, Michael Lawrence, Rangi Motu
People still marry largely on the basis of the chemistry they feel during their courtship period. In other words, hormones rule. But if hormonal changes go southward at a fortunately gradual pace, the initial half-crazed passion of two lovers is bound to fade somewhat after a year or two--which is good, because if people felt toward each other the way they did while first discovering each other's bodies, nothing much of a mundane nature could get done.
With "The Price of Milk," New Zealand filmmaker Harry Sinclair ("Topless Women Talk About their Lives") investigates a similar phenomenon, which is, how do you know that the person you are about to marry really and truly loves you in the first place? The obvious answer is to test that love. In medieval times, the nobility would prove their affection by drinking fair maiden's bathwater out of her slipper, but in New Zealand, the pixies are relied on more frequently. In this fairy tale, in fact, Auckland-born director Sinclair positions a couple, Rob (Karl Urban) and Lucinda (Danielle Cormack) amid the rolling hills of his country, pretty much a unit unto themselves except for their heads of dairy cows and an agoraphobic dog named Nigel (Pirate).
Rob is a natural as a dairy farmer, possessing $400,000NZ or cows who reply to his greeting of "good morning" every day with a chorus of thunderous moos. His girl friend, Lucinda, appreciates Rob's talent with the animals but despite their passion under the sheets (or in this case under a colorful quilt), she wonders whether his affection toward her is at least as much as his attractive to the bovine. As quickly as you can say "Taumarunui," Lucinda literally runs into the fabulous Auntie (Rangi Motu), who because of a lack of heating in the boonies needs as many quilt blankets as her golf-crazed nephews can produce. When Auntie's Maori nephews steal the blanket in the dead of night, Lucinda is required by Auntie to swap her most valuable possession to get the comforter back. The tradeoff leads to a severance of her relationship with Rob, who is seduced by Lucinda's so- called best friend Drosophila (Willa O'Neill).
Despite the unobtrusive but effective presence of an enchanted soundtrack produced by the Moscow State Orchestra, this "Milk" is frightfully skimmed. Though Danielle Cormack sports long, curly locks giving her the appearance of a Rapunzel. and conveys her naivete by widening her eyes as though as student of Rodney Dangerfield, she is unappealingly masculine. One can easily see what the comely Karl Urban sees in the competition. Though Willa O'Neill's Drosophila drives a wreck of a car, she has far more charm and allure. The real trouble, though, is in the script, which comes across as though Mr. Sinclair simply allowed the ensemble to improvise and settled for the first take in each scene. If it's true that only a Western urban audience can appreciate the humor of the highly metropolitan Woody Allen, then perhaps logically enough the waggery allegedly present in a pastoral "The Price of Milk" became shipwrecked somewhere in the Tasman Sea.
Not Rated. Running time: 87 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


What is it and why is it important?
A responsive site is where the site layout, sizes, look, feel and (if appropriate) function all change depending on the size of device the user is accessing the site from.
This is important because users now access the internet from many different sized screens, which also vary from being touch screen to keyboard/mouse driven. And that means that the impact of a site being only built for one of these mediums is big and could be the difference between someone using your site/product or going elsewhere.
What is it and why is it important?
This is where the site is built on the assumption that the user will access it from a mobile device, with all code written for this and then the additional queries relating to bigger screens are added on.
This is important for styling, usability and performance. For instance, a smaller screen will need to have the content be visible (don't want to be zooming in/out to navigate the page and read the content). It will also be touch screen, so buttons about the size of a finger will be more user friendly than a hyperlink from a word/phrase. From a performance perspective, the amount of processing power a mobile device has will likely be lower than a desktop. By coding for mobile first, anything dictating the look/content/functionality for larger decives will only be accessed by those larger devices. So the smaller mobile device doesn't need to sift through all that code just to get to the relevant bits.
Pros:
Cons:
What is it and why do we use it?
These are the basic plans that we draw up before starting to build a site, mapping out the basic structure and elenments of the page. We use the wireframe to make it easier to understand how to best code the site (containers, sections, divisions, headers etc). And also to plan how the site may look/be structured in both mobile and desktop view. These drawings are then a useful visual tool to use as coding progreses.
Challenges in my wireframe came from not having the time or skills (yet) to get the layout/functionality that I really want (e.g. working out the best ways to organise the divisions to get a certain look for the blog page navigation - I couldn't get this to look the way I designed it).
Along with this, came the challenge of knowing when I've tried enough different angles to get something to look like my wireframe and when I just need to accept that it will look different and move on.
I can imagine that this will be a key challenge in bringing designs to life in future projects, with the key to this being able to understand what is possible in the time/with the skills available. Then, what could be possible with more time and exploration. And keeping the communication live throughout to make sure that any deviations from the wireframe are accepetable.


Play game
Settings
Statistics
Welcome to Flappy Bird game!
Game
Your browser is not compatible with our technology to start the game.
Please, download different browser.
Settings
Choose background:
Choose and drag to game on right:
Bird:
Obstacle:
Your browser is not compatible with our technology to start the game.
Please, download different browser.
Your recent statistics
Date
Score
Top score
Date
Score


Tree Selectors are used to select elements based on their positions in the DOM tree
$("parent > child")
$("ancestor descendant")
$("previous + next")
$("previous ~ siblings")
This is para 1
This is para 2
This is para 3
This is para 4
This is para 5


FREXP
Section: Linux Programmer's Manual (3)
Updated: 2013-08-06
Index
Return to Main Contents
NAME
frexp, frexpf, frexpl - convert floating-point number to fractional
and integral components
SYNOPSIS
#include <math.h>
double frexp(double x, int *exp);
float frexpf(float x, int *exp);
long double frexpl(long double x, int *exp);
Link with -lm.
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
frexpf(),
frexpl():
-
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or
cc -std=c99
DESCRIPTION
The
frexp()
function is used to split the number
x
into a
normalized fraction and an exponent which is stored in
exp.
RETURN VALUE
The
frexp()
function returns the normalized fraction.
If the argument
x
is not zero,
the normalized fraction is
x
times a power of two,
and its absolute value is always in the range 1/2 (inclusive) to
1 (exclusive), that is, [0.5,1).
If
x
is zero, then the normalized fraction is
zero and zero is stored in
exp.
If
x
is a NaN,
a NaN is returned, and the value of
*exp
is unspecified.
If
x
is positive infinity (negative infinity),
positive infinity (negative infinity) is returned, and the value of
*exp
is unspecified.
ERRORS
No errors occur.
ATTRIBUTES
Multithreading (see pthreads(7))
The
frexp(),
frexpf(),
and
frexpl()
functions are thread-safe.
CONFORMING TO
C99, POSIX.1-2001.
The variant returning
double
also conforms to
SVr4, 4.3BSD, C89.
EXAMPLE
The program below produces results such as the following:
$ ./a.out 2560
frexp(2560, &e) = 0.625: 0.625 * 2^12 = 2560
$ ./a.out -4
frexp(-4, &e) = -0.5: -0.5 * 2^3 = -4
Program source
#include <math.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
double x, r;
int exp;
x = strtod(argv[1], NULL);
r = frexp(x, &exp);
printf("frexp(%g, &e) = %g: %g * %d^%d = %g\n",
x, r, r, FLT_RADIX, exp, x);
exit(EXIT_SUCCESS);
}
SEE ALSO
ldexp(3),
modf(3)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- Multithreading (see pthreads(7))
-
- CONFORMING TO
-
- EXAMPLE
-
- Program source
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:55:13 GMT, September 18, 2014


A very useful marina on Sardinia for a passage to or from Sicily.
Located on the Eastern side of the bay of Cagliari. Slightly open to the north, a relatively small fetch but some swell can make its way in.
Pretty, but reported to be quite unfriendly. The high cost for overnight berthing coupled with the poor facilities make this a useful place a quick rest, stopover or shelter only. The marina is a long walk from anything.
It is necessary to complete all formalities at this marina.
Cruisers that visited this facility in April 2012 found most marina buildings to be closed, either permanently or seasonal.
If anchoring, be aware that the holding near the marina is not good.
Last updated February 2014.


Play audio podcast. This audio podcast is about using audio tag in HTML5.
Welcome to learning about embedding audio using the latest HTML5 techniques. The new HTML5 audio element supports native play of audio files in the browser—without the need for plug-ins or players. The audio element begins with the tag.
Short video clip embedded into the website. A girl and a dog are playing together at the beach.


Working from home meant we could vary snack and coffee breaks, change our desks or view, drink on the job, even spend the day in pajamas, and often meet to gossip or share ideas.
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
to give you a new, perfect Bodyfit
This is flexible and extremely intuitive PSD theme, packed with tons of options and shortcodes that simplify whole website building process and make customization a real fun
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Copyright@2015-Designed by Mustafa


Edit 4-4 Moves the buffer to the cursor relative to the pivot point.
Press 4 to start the Move.
Rubber banding is enabled.
Move the cursor to the target position.
Rubber band previews the move from pivot point to cursor position..
Press 4 to complete the move.
The buffer and the pivot point is regenerated at the cursor position.


This will return all emails sent by the current user, by the contact whose ID is
fa300a0e-0ad1-b322-9601-512d0983c19a
, using the email address<EMAIL_ADDRESS>which is referenced by
the ID
b0701501-1fab-8ae7-3942-540da93f5017
, or by the lead whose ID is
73b1087e-4bb6-11e7-acaa-3c15c2d582c6
using the email address<EMAIL_ADDRESS>which is referenced by
the ID
b651d834-4bb6-11e7-bfcf-3c15c2d582c6
.
{
"filter": [{
"$from": [
{
"parent_type": "Users",
"parent_id": "$current_user_id"
},
{
"parent_type": "Contacts",
"parent_id": "fa300a0e-0ad1-b322-9601-512d0983c19a"
},
{
"email_address_id": "b0701501-1fab-8ae7-3942-540da93f5017"
},
{
"parent_type": "Leads",
"parent_id": "73b1087e-4bb6-11e7-acaa-3c15c2d582c6",
"email_address_id": "b651d834-4bb6-11e7-bfcf-3c15c2d582c6"
}
]
}]
}
This would return all archived emails received by the current user.
{
"filter": [{
"$or": [{
"$to": [
{
"parent_type": "Users",
"parent_id": "$current_user_id"
}
],
"$cc": [
{
"parent_type": "Users",
"parent_id": "$current_user_id"
}
],
"$bcc": [
{
"parent_type": "Users",
"parent_id": "$current_user_id"
}
]
}]
}, {
"state": {
"$in": [
"Archived"
]
}
}]
}


Farming Talk – November 19
A new round of government grant funding has opened for applications providing grants for projects in England which create jobs and growth in the rural economy.
Funding of up to £175,000 is available for up to 40 per cent of a project and is therefore a fantastic way to secure capital to enable projects to go ahead.
The Growth Programme grants are available to farms and rural businesses who are looking to expand or diversify.
The government has also launched a new £50 million Woodland Carbon Guarantee scheme to encourage farmers and landowners to plant more trees and help tackle climate change.
It gives land managers in England long-term financial income to invest in carbon sequestration – the process by which trees lock up and store carbon from the atmosphere.
Successful participants will be offered the option to sell Woodland Carbon Units to the government over 35 years at a guaranteed price set by auction, providing new income for land managers who help businesses compensate for their carbon emissions.
To apply for the Woodland Carbon Guarantee, you can register projects with the Woodland Carbon Code – the voluntary standard for UK woodland creation projects where claims are made about the carbon dioxide they sequester.
Charlotte Rogerson of Berrys, Shrewsbury


Harshraj Dhote_
Student, Full Stack Developer
I am a Web developer and programmer from Nagpur, India. I am currently pursuing B.Tech in Computer Science and Engineering from Walchand College Of Engineering, Sangli. I have a passion for web development and love to create for web and mobile devices. I know how to create web applications, to run across devices using the latest technologies available. I believe in power of programming to transform and improve the lives of people around the world.
ResumeBachelor of Technology - Computer Science and Engineering
2018 - 2021 (Expected)
Walchand College Of Engineering, Sangli
8.27 C.G.P.A
Diploma - Information Technology
2015 - 2018
Government Polytechnic, Nagpur
91.44%
Secondary
2015
Shri Sai Parnath English High School, Nagpur
87.40% (Maharashtra State Board)
HTML & CSS 80%
JavaScript 70%
Node.Js 60%
MongoDB 60%
git 70%
Linux and Shell Scripting 65%
PHP 70%
C/C++ 70%
Data Structues 60%
Java 60%
Android 60%
Over decades, medical facilities have evolved elegantly. Still most of us are the witness of the fact that whenever we see a doctor, we need to put forward our medical file in front of him/her. Our file contains our previous prescriptions, medical reports,etc. It is a tedious task to keep record of all these. We provided a digital solution to this problem so that, next time when you visit your doctor, you don’t need to carry your medical file. We have developed Web portal to allow the doctor to view the past records of any patient with the patient’s consent.
Used stack:
github.com/harshrajdhote/When any crime happens people can only report to police by calling on 100 emergency numbers. Information about crime incidents will be only known to police in a realtime manner and most of the time there are issues with finding the actual location of the crime scene. In any crime or emergency, how quickly we reach the crime or emergency spot plays an important role, also people won't get the actual information from the genuine source. Strangers in a new vicinity don't know the regions which are danger prone. Our App provides the solution to all the above problems.
Used stack:
github.com/harshrajdhote/Smartwhiz is an online education classifieds business of Smartwhiz Inc. It is a marketplace which connects the education seekers with the education providers. Information on educational institutes, programs, scholarships and admission notifications for undergraduate programs, vocational courses providing professional degrees or certificates and higher education in India and abroad is available on the website. As before coming these site the employees from smart Whiz were working manually to perform tasks like record maintaining, information gathering, and analysis of data of students also of various colleges.
Used stack:
github.com/harshrajdhote/SmartwhizThe Official Website of Walchand Linux Users' Group, WCE Sangli. Website is used for club activities like publicity, advertisements, entries, feedbacks and club data management.
Used stack:
www.wcewlug.orgA Simple Weather forcasting Web App build with Node.js and DarkSky Api. Let you know the current weather details based on the location given.
Used stack:
github.com/harshrajdhote/weather-websiteGet in touch_
Or just write me a letter here_


SQL vs. NoSQL
07/20/14
We've been learning about SQL databases in this week, so we can use this understanding as a base for contrasting NoSQL (stands for Not Only SQL).
- Table-based
- Standard schema defined
- Follows ACID
- Atomicity - each transaction is success or failure only
- Consistency - any transaction brings database from one valid state to another valid state
- Isolation - transactions execute independently of each other
- Durability - changes are permanent
- Standard query language exists
- Best used when transactions must be definite
- Examples include MySQL, Oracle, SQLite
- Key-value pairs, documents, etc.
- No standard schema defined
- Follows BASE
- Basically Available - guarantees database is accessible at any time
- Soft state - state may change over time even without input
- Eventual consistency - system will become the same for everyone over time
- No standard query language
- Best used when many simple queries and changing structure
- Examples include MongoDB, BigTable
The major difference between SQL and NoSQL databases is that SQL is highly structured into a table form, while NoSQL databases can take many forms. This is commonly a key-value structure where each piece of data is a value and a key is assigned to retrive the data later, or a document database where each document has a different collection of fields with information. Each SQL database table thus has a standard schema, where each field is defined to take a certain type of data (e.g. integers, varchar, date) and default values are specified. NoSQL database objects do not have defined schema, and each piece of information can be structurally different.
To understand the ACID vs. BASE characterization, it is actually helpful to define one more acronym, CAP.
- Consistency - whether system is fully operational according to established rules
- Availability - whether system available when requested
- Partition-tolerance - whether system continues to operate even under circumstances of data loss
When would a user prefer either SQL or NoSQL? SQL's consistency and adherence to ACID makes it better for functions like banking and other secured information, because these require precise transactions and accurate answers upon request. SQL is also better for complex queries that consider structured information from many sources. Meanwhile, NoSQL can be useful for web sites that process large numbers of new pieces of information and many queries where a "best guess" answer is adequate. NoSQL may also be a better choice for a business that is growing and changing quickly due to less need for defining structure at initiation.


Close
PLEASE ENABLE JAVASCRIPT FOR THIS SITE TO WORK!
00:00
00:03
No subtitles added yet. Press the plus on the bottom of this panel to get started!
Fetching Metadata...
-
Export Subtitles
Loading...


Take a breather and celebrate with us during Latinx Heritage Month
Get the change to connect with the largest community of Latinx professionals in tech
Opportunity to receive unique promos from our partners and raffle prizes delivered to you directly


ImpaCT merchandise is now available! Contact us now to place your order!
The Tri-State and New England’s newest Premier High-Level Pro-Am Basketball Summer Showcase. This event features basketball talent from NBA, FIBA overseas professionals, Social Media Icons, and NCAA D1-D3 collegiate players. In 2019 ”The League '' was hosted at the American School for the Deaf where hundreds of student-athletes and their families came to experience fun and competitive family entertaining basketball games
Pellentesque dictum nisl in nibh dictum volutpat nec a quam. Vivamus suscipit nisl quis nulla pretium, vitae ornare leo.
Experience developmental to high level Sports skills training with former & current professional athletes who are dedicated in teaching athletes preparation of the mind, body & soul.
Train in an individual or small group setting that will help take your game to the next level. Basketball skills training available Monday - Friday
Train in an individual or small group setting that will help take your game to the next level. Soccer skills training available Monday - Friday
Train in an individual or small group setting that will help take your game to the next level. Football skills training available Monday - Friday
Train in an individual or small group setting that will help take your game to the next level. Track & Field skills training available Monday - Friday
Experience moderate to high intensity cardio & strength training circuits in ImpaCT’s signature general fit classes available Monday - Friday
| Basketball | 5:00 - 8:00 | |
| Soccer | 5:00 - 8:00 | |
| Football | 5:00 - 8:00 | |
| Track & Field | 5:00 - 8:00 | |
| Bring A Buddy | Mon.7:00 - 8:00 | |
| Guantlet | Tue.7:00 - 8:00 | |
| Stallions | Wed.7:00 - 8:00 | |
| Kick Box Cardio | Thur.7:00 - 8:00 | |
| Beach Body | Fri.7:00 - 8:00 |
If you are a former collegiate or professional athlete looking to make an impact in your community through sports & wellness contact us now to join the ImpaCT Team!


Quibble
Upload class file
more_vert
Details
CO Mapping
Logout
INSTRUCTIONS
The colums must be in the following order and named exactly as
Roll No.
PID No.
Name
We could not find the student list for the selected class.
Please upload the Excel file with list of students in:
of
for
Which row contains the header?
Row no...
Input is not a number!
Which sheet contains the students list?
Sheet no...
Input is not a number!
ADD FILE
SUBMIT


--- title: Custom models keywords: fastai sidebar: home_sidebar summary: "Transformer net." description: "Transformer net." ---
transformer_net
transformer_net()
class
TransformerNet
TransformerNet() :: Module
Module
Same as nn.Module, but no need for subclasses to call super().__init__
nn.Module
super().__init__


Hotel booking
问题描述 :
A transport company often needs to deliver goods from one city to another city. The transport company has made a special deal with a hotel chain which allows its drivers to stay in the hotels of this chain for free. Drivers are only allowed to drive up to 10 hours a day. The transport company wants to find a route from the starting city to the destination city such that a driver can always spend the night in one of the hotels of the hotel chain, and that he needs to drive at most 10 hours from one hotel to the next hotel (or the destination). Of course, the number of days needed to deliver the goods should also be minimized.
输入:
The input file contains several test cases. Each test case starts with a line containing an integer n, (2 ≤ n ≤ 10000), the number of cities to be considered when planning the route. For simplicity, cities are numbered from 1 to n, where 1 is the starting city, and n is the destination city. The next line contains an integer h followed by the numbers c1, c2, …, ch indicating the numbers of the cities where hotels of the hotel chain are located. You may assume that 0 ≤ h ≤ min(n, 100). The third line of each test case contains an integer m (1 ≤ m ≤ 105), the number of roads to be considered for planning the route. The following m lines describe the roads. Each road is described by a line containing 3 integers a, b, t (1 ≤ a, b ≤ n and 1 ≤ t ≤ 600), where a, b are the two cities connected by the road, and t is the time in minutes needed by the driver to drive from one end of the road to the other. Input is terminated by n = 0.
输出:
The input file contains several test cases. Each test case starts with a line containing an integer n, (2 ≤ n ≤ 10000), the number of cities to be considered when planning the route. For simplicity, cities are numbered from 1 to n, where 1 is the starting city, and n is the destination city. The next line contains an integer h followed by the numbers c1, c2, …, ch indicating the numbers of the cities where hotels of the hotel chain are located. You may assume that 0 ≤ h ≤ min(n, 100). The third line of each test case contains an integer m (1 ≤ m ≤ 105), the number of roads to be considered for planning the route. The following m lines describe the roads. Each road is described by a line containing 3 integers a, b, t (1 ≤ a, b ≤ n and 1 ≤ t ≤ 600), where a, b are the two cities connected by the road, and t is the time in minutes needed by the driver to drive from one end of the road to the other. Input is terminated by n = 0.
样例输入:
6 3 2 5 3 8 1 2 400 3 2 80 3 4 301 4 5 290 5 6 139 1 3 375 2 5 462 4 6 300 3 0 2 1 2 371 2 3 230 0
样例输出:
2 -1
题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=2992
题目大意：有一家物流公司要送货炒年糕起点（1）送到终点（n），途中有n个城市其中只有h家客栈是免费休息的，途中有m条路通向不同的城市，开车的司机每天最多开10个小时的车程，问你起点送货到终点最少需要住几家客栈（规定只能住自家免费客栈）。 如果答案不存在输出-1。
解题思路：
司机从起点或者休息的客栈出发，落脚点必是下一家休息的客栈或者终点。所以对每家客栈（包括起点）spfa一次，找出客栈间最小车程小于十小时的，如果两件客栈间车程小于10小时则令他们的行走天数g[u][v]为1。 开始把终点也放入spfa了一次，wrong answer了一次。
注意g[][]初始值赋为无穷大，客栈对应所在的城市用map映射一下（道理同节点离散化一样的），再对包括起点终点在内的所有客栈floyd一次，求出g[start][end]的值。
#include <iostream> #include <cstdio> #include <map> #include <vector> #include <cstring> #include <algorithm> using namespace std; const int maxn=10005; const int INF=0x3fffffff; int que[maxn]; int st[110]; int g[110][110]; int inque[maxn]; int dis[maxn]; int n, num; struct Node { int v, cost; Node(int v_,int cost_) { v=v_, cost=cost_; } }; map<int,int>mp; vector<Node>vt[maxn]; void spfa(int start) ///可做模板 { int h=0, t=0; for(int i=1; i<=n; i++) { dis[i]=INF; inque[i]=0; } dis[start]=0; inque[start]=1; que[t++]=start; while(h!=t) { int u=que[h++]; inque[u]=0; ///出队列 if(h==maxn) h=0; ///！循环队列 for(int i=0; i<vt[u].size(); i++) { int v=vt[u][i].v, cost=vt[u][i].cost; if(dis[v]>dis[u]+cost) { dis[v]=dis[u]+cost; ///松弛操作 if(!inque[v]) ///防止节点重复进队列 { inque[v]=1; que[t++]=v; if(t==maxn) t=0; ///循环队列 } } } } for(int i=1; i<=n; i++) { if(dis[i]<=600) { g[mp[start]][mp[i]]=1; } } } void floyd() { for(int k=0; k<=num+1; k++) for(int i=0; i<=num+1; i++) for(int j=0; j<=num+1; j++) { if(g[i][j]>g[i][k]+g[k][j]) g[i][j]=g[i][k]+g[k][j]; } } int main() { int h, m, u, v, cost; while(cin >> n, n) { cin >> num; mp.clear(); for(int i=0; i<=n; i++) vt[i].clear(); for(int i=0; i<=num+2; i++) for(int j=0; j<=num+2; j++) { g[i][j]=INF; if(i==j) g[i][j]=0; } for(int i=1; i<=num; i++) { scanf("%d",st+i); mp[st[i]]=i; } st[0]=1; mp[1]=0; st[num+1]=n; mp[n]=num+1; cin >> m; for(int i=0; i<m; i++) { scanf("%d%d%d",&u,&v,&cost); vt[u].push_back(Node(v,cost)); vt[v].push_back(Node(u,cost)); } for(int i=0; i<=num; i++) spfa(st[i]); floyd(); if(g[0][num+1]==INF) cout << -1 <<endl; else cout << g[0][num+1]-1 <<endl; } return 0; }
解题参考：http://www.cnblogs.com/kane0526/archive/2012/12/14/2818747.html
(adsbygoogle = window.adsbygoogle || []).push({});
第一题还是比较考验智商~
27行 minStack.push(minValue); 去掉就对了
第一题是不是可以这样想，生了n孩子的家庭等价于n个家庭各生了一个1个孩子，这样最后男女的比例还是1:1
哇，算法有这么多呢！
请问printAllCombination的时间复杂度怎么分析呢？
代码可真够长的！
根本过不了。。。。
helpful！！ mark
有没有C++编译的？
这个差别应该不会太大，或许编辑器就自动优化成内联函数了
补充：此算法求出的不一定是最优解，之前理解错了
跟书上的解法不一样，不知道哪个效率要高些
其实就是DFS搜索，数据量较小，穷举了所有情况
算法是程序的灵魂，算法分简单和复杂，如果不搞大数据类，程序员了解一下简单点的算法也是可以的，但是会算法的一定要会编程才行，程序员不一定要会算法，利于自己项目需要的可以简单了解。


Tournaments
Add a Player
Add a Match Result
Leaderboard
Detail Results
Recent Matches
Show
matches.
Recent Comments
Add comment
Show
comments.


public final class AlgoUtil
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static float[][] |
IDENTITY |
static float |
TILE_LENGTH_IN_PIXELS
Amount of pixels a tile should have in window-coordinate-space.
|
| Modifier and Type | Method and Description |
|---|---|
static float |
calculateGeoDistance(FloatVector3D from,
FloatVector3D to)
Calculates the distance between two geo-positions.
|
static FloatVector3D |
floatTileToGL(FloatVector3D floatTile) |
static FloatVector3D |
geoToFloatTile(FloatVector3D geoVector) |
static FloatBoundingBox |
geoToGL(FloatBoundingBox geoBox)
Converts a bounding box in geographic coordinates where the first two
coordinates of each corner vectors represent a position and the third
one a zoom level into a matching bounding box in GL-coordinates.
|
static FloatVector3D |
geoToGL(FloatVector3D geoVector)
Converts a given vector of which the first two coordinates represent
a position and the third one a zoom level in geographic coordinates into
a vector of which the first two coordinates represent a matching
position and zoom in GL-coordinates.
|
static void |
geoToGL(GeoState geoState,
GLState glState)
Converts the coordinates from
geoState into GL-coordinates
and saves them in glState |
static IntegerBoundingBox |
geoToTile(FloatBoundingBox geoBox)
Converts a given bounding box in geographic coordinates (degree) into an
equivalent bounding box in tile coordinates.
|
static IntegerVector3D |
geoToTile(FloatVector3D geoVector)
Converts a
FloatVector3D object which represents a position
on the map and a zoom level in geographic coordinates into an
IntegerVector3D object that represents the same position and
the same zoom level in tile coordinates. |
static void |
geoToTile(GeoState geoState,
TileState tileState)
Converts the coordinates from
geoState into tile coordinates
and updates tileState with them. |
static float[][] |
getRotationMatrix(float deg,
FloatVector3D axis,
float[][] oldMatrix) |
static java.util.Collection<IntegerVector3D> |
getTileCoordsInGLBBox(FloatBoundingBox bbox,
float step,
int tileZoom)
Takes a GL-bounding-box and returns the tile-coordinates of all those
tiles that are contained fully or partially in the bounding-box.
|
static float |
glCoordsPerPixelRange(int pixels,
float canvasPixelRange,
float canvasRange) |
static float |
glCoordsPerPixelRange(int pixels,
int tileZoom)
Returns the length of a vertical or horizontal range in
window-coordinate-space in GL-coordinates.
|
static FloatVector3D |
glToFloatTile(FloatBoundingBox glBox) |
static FloatVector3D |
glToFloatTile(FloatVector3D glVector) |
static FloatBoundingBox |
glToGeo(FloatBoundingBox glBox)
Converts a bounding box in GL-coordinates where the first two
coordinates of each corner vectors represent a position and the third
one a zoom level into a matching bounding box in geographic coordinates.
|
static FloatVector3D |
glToGeo(FloatVector3D glVector)
Converts a given vector of which the first two coordinates represent
a position and the third one a zoom level in GL-coordinates into a
vector of which the first two coordinates represent a matching position
and zoom in geographic coordinates.
|
static void |
glToGeo(GLState glState,
GeoState geoState)
Updates the given
GeoState object by converting all the
available information from GLState into geographic
coordinates. |
static IntegerBoundingBox |
glToTile(FloatBoundingBox glBox,
float glZoom)
Converts a given bounding box in GL-coordinates into an equivalent
bounding box in tile coordinates.
|
static IntegerVector3D |
glToTile(FloatVector3D glVector)
Converts a
FloatVector3D object which represents a position
on the map and a zoom level in GL-coordinates into an
IntegerVector3D object that represents the same position and
the same zoom level in tile coordinates. |
static void |
glToTile(GLState glState,
TileState tileState)
Converts the available coordinates from
glState into
tile coordinates and updates tileState with those new
values. |
static int |
glToTileZoom(float glZoom)
Converts a given positive number representing a zoom level in
GL-coordinates into a zoom level for tile coordinates.
|
static boolean |
isTileBBoxSuperposed(IntegerBoundingBox a,
IntegerBoundingBox b) |
static float[][] |
multMatrix(float[][] m,
float[][] n) |
static FloatVector3D |
rotateAroundZ(FloatVector3D vec,
float angle)
Rotates the passed Vector around the Z-Axis.
|
static FloatBoundingBox |
tileToGeo(IntegerBoundingBox tileBox)
Converts a given bounding box in tile coordinates into an equivalent
bounding box in geographic coordinates (degree).
|
static FloatVector3D |
tileToGeo(IntegerVector3D tileVector)
Converts a
IntegerVector3D object which represents a position
on the map and a zoom level in tile coordinates into a
FloatVector3D object that represents the same position and
the same zoom level in geographic coordinates. |
static FloatBoundingBox |
tileToGL(IntegerBoundingBox tileBox)
Converts a bounding box given in tile coordinates into an equivalent
bounding box in GL-coordinates.
|
static FloatVector3D |
tileToGL(IntegerVector3D tileVector)
Converts a
IntegerVector3D object which represents a
position
on the map and a zoom level in tile coordinates into a
FloatVector3D object that represents the same position and
the same zoom level in GL-coordinates. |
static FloatBoundingBox |
tileToGLBox(IntegerVector3D tileVector)
Converts a given 3d-integer-vector of which the first two coordinates
represent a position in tile coordinates and the third one a zoom level
in tile coordinates, into a bounding box in GL-coordinates of which the
upper left corner matches the given vector.
|
static float |
tileToGLZoom(float tileZoom)
Converts a given non-negative number representing a zoom level in
tile coordinates into a zoom level in GL-coordinates.
|
public static final float TILE_LENGTH_IN_PIXELS
public static final float[][] IDENTITY
public static FloatVector3D geoToGL(FloatVector3D geoVector)
geoVector
- the vector to be convertedpublic static FloatVector3D tileToGL(IntegerVector3D tileVector)
IntegerVector3D
object which represents a
position
on the map and a zoom level in tile coordinates into a
FloatVector3D
object that represents the same position and
the same zoom level in GL-coordinates. The position is represented in
the first two coordinates and the zoom level in the third one. Because a
zoom level is always greater than or equal to 0 in tile coordinates,
in the case of the given zoom level being smaller than 0
null
will be returned.tileVector
- the vector in tile coordinates that represents a
position on the map in the first two coordinates and a
zoom level in the third onetileVector
and null
if and only if tileVector
is
null
or the third coordinate of it is smaller
than 0public static IntegerVector3D glToTile(FloatVector3D glVector)
FloatVector3D
object which represents a position
on the map and a zoom level in GL-coordinates into an
IntegerVector3D
object that represents the same position and
the same zoom level in tile coordinates. The position is represented in
the first two coordinates and the zoom level in the third one. Because a
zoom level is always strictly greater than 0 in the GL-representation,
in the case of the given zoom level being smaller or equal to 0
null
will be returned.glVector
- the vector in GL-coordinates that represents a position on the
map in the first two coordinates and a zoom level in the third
oneglVector
and null
if and only if glVector
is
null
or the third coordinate of it is smaller or
equal to 0public static IntegerVector3D geoToTile(FloatVector3D geoVector)
FloatVector3D
object which represents a position
on the map and a zoom level in geographic coordinates into an
IntegerVector3D
object that represents the same position and
the same zoom level in tile coordinates. The position is represented in
the first two coordinates and the zoom level in the third one. Because a
zoom level is always strictly greater than 0 in geographic coordinates,
in the case of the given zoom level being smaller or equal to 0
null
will be returned.geoVector
- the vector in geographic coordinates that represents a
position on the map in the first two coordinates and a
zoom level in the third onegeoVector
and null
if and only if geoVector
is
null
or the third coordinate of it is smaller or
equal to 0public static FloatVector3D glToGeo(FloatVector3D glVector)
glVector
- the vector in GL-coordinates to be convertedpublic static FloatVector3D tileToGeo(IntegerVector3D tileVector)
IntegerVector3D
object which represents a position
on the map and a zoom level in tile coordinates into a
FloatVector3D
object that represents the same position and
the same zoom level in geographic coordinates. The position is represented in
the first two coordinates and the zoom level in the third one. Because a
zoom level is always greater than or equal to 0 in tile coordinates,
in the case of the given zoom level being smaller than 0
null
will be returned.tileVector
- the vector in tile coordinates that represents a
position on the map in the first two coordinates and a
zoom level in the third onetileVector
and null
if and only if tileVector
is
null
or the third coordinate of it is smaller
than 0public static FloatVector3D glToFloatTile(FloatVector3D glVector)
public static FloatVector3D glToFloatTile(FloatBoundingBox glBox)
public static FloatVector3D floatTileToGL(FloatVector3D floatTile)
public static FloatVector3D geoToFloatTile(FloatVector3D geoVector)
public static FloatBoundingBox geoToGL(FloatBoundingBox geoBox)
geoBox
- the geographic bounding box to be converted, it is
assumed to form a valid rectanglegeoBox
or null
if geoBox
is null
public static IntegerBoundingBox geoToTile(FloatBoundingBox geoBox)
geoBox
- the bounding box in geographic coordinates, which is expected
to form a valid rectanglegeoBox
, or null
if and only if
geoBox
is null
public static FloatBoundingBox glToGeo(FloatBoundingBox glBox)
glBox
- the GL-bounding box to be converted, it is
assumed to form a valid rectanglegeoBox
of null
if glBox
is
null
public static IntegerBoundingBox glToTile(FloatBoundingBox glBox, float glZoom)
glBox
- the bounding box in GL-coordinates, which is expected to be a
valid rectangleglZoom
- the current zoom level which is needed for the conversionglBox
,
or null
if and only if the given bounding box is
null
public static FloatBoundingBox tileToGeo(IntegerBoundingBox tileBox)
tileBox
- a bounding box in tile coordinates, which is expected to be a
valid rectanglenull
if and only if the passed bounding box is
null
public static FloatBoundingBox tileToGL(IntegerBoundingBox tileBox)
tileBox
- the bounding box in tile coordinates which is expected to be a
valid rectanglenull
if and only if null
is given as
bounding boxpublic static FloatBoundingBox tileToGLBox(IntegerVector3D tileVector)
tileCoords
- a vector in tile coordinates, representing position and a zoom
leveltileCoords
matches the upper left cornerpublic static void geoToGL(GeoState geoState, GLState glState)
geoState
into GL-coordinates
and saves them in glState
geoState
- the state from which the data is takenglState
- the state to be updatedpublic static void glToTile(GLState glState, TileState tileState)
glState
into
tile coordinates and updates tileState
with those new
values.glState
- the state from which the information is takentileState
- the state to be updatedpublic static void geoToTile(GeoState geoState, TileState tileState)
geoState
into tile coordinates
and updates tileState
with them.geoState
- the state from which the data is takentileState
- the state to be updatedpublic static void glToGeo(GLState glState, GeoState geoState)
GeoState
object by converting all the
available information from GLState
into geographic
coordinates.glState
- the state from which the data is usedgeoState
- the state to be updatedpublic static int glToTileZoom(float glZoom)
glZoom
- the zoom level to be convertedTileState.MAX_ZOOM
representing a zoom level in tile coordinatespublic static float tileToGLZoom(float tileZoom)
tileZoom
- the zoom level to be convertedpublic static boolean isTileBBoxSuperposed(IntegerBoundingBox a, IntegerBoundingBox b)
public static float glCoordsPerPixelRange(int pixels, int tileZoom)
pixels
- The length of the range in pixels (window-space).tileZoom
- The zoom-level to calculate the length for.public static float glCoordsPerPixelRange(int pixels, float canvasPixelRange, float canvasRange)
public static FloatVector3D rotateAroundZ(FloatVector3D vec, float angle)
vec
- The Vector to be rotated. It won't be changed.angle
- The angle around which the FloatVector3D vec
will
be rotated.angle
which origin
coordinates where specified by vec
.public static java.util.Collection<IntegerVector3D> getTileCoordsInGLBBox(FloatBoundingBox bbox, float step, int tileZoom)
bbox
- The bounding-box to get tile-coordinates for.step
- The distance checked for tiles in. This should be less or
equal to the side-length of a tile to get all tiles contained
in the box.tileZoom
- The tile-zoom of the tiles to check for.public static float calculateGeoDistance(FloatVector3D from, FloatVector3D to)
from
- The position to start from.to
- The destination.from
and to
in kilometers.public static float[][] multMatrix(float[][] m, float[][] n)
public static float[][] getRotationMatrix(float deg, FloatVector3D axis, float[][] oldMatrix)


Description:
That part of a simulator whose job it is to create or load a previously stored flowsheet, solve it and display the results.
Subclasses:
Equation Oriented Executive Simulator Executive using Equation Oriented solving. Sequential Modular Executive Simulator Executive using Sequential Modular solving.


Ashanti On Nelly Relationship: ‘I Haven’t Seen Him Since We Broke Up’
by Shakiel MahjouriAshanti and Nelly have not spoken in quite a while.
Ashanti recently appeared on “Watch What Happens Live” with Andy Cohen. A fan wrote in and asked about Ashanit’s ex Nelly. It turns out the two have not been in touch whatsoever.
“I honestly haven’t seen him since we broke up. Which is crazy,” Ashanti shared. Cohen chimed in, “Well let’s bring him out, everybody! Just kidding.” Cohen’s joke had Ashanti laughing hysterically.
Another fan wrote in and asked about Irv Gotti addressing their affair on “The Wendy Williams Show”. Ashanti expertly dodged the question.
“I feel like… I have a single out called ‘Pretty Little Thing’ featuring Afro B, it’s so hot,” she shared. “I’m on two tours this year, one in the U.S., one in the U.K, you know, [a] movie coming out this Saturday, you know, I’m very excited.”
Ashanti and Nelly had a nine-year relationship that ended in 2012.


Please wait just a moment while your data is being uploaded and processed.
No further action is required at this point; we will contact you by email.
Once the review and any revisions are complete, we will assign a DOI, and publicly publish the data package. Until then, it will not be publicly visible.


Technologies for building modern web applications
An introduction to http, browsers, html and css.
Prototype-based programming language that is dynamic, loosely typed and has first-class functions.
JavaScript file and module loader.
Application development framework for the browser.
MVC framework for the browser.
Declarative data-binding framework.
Library for building rich data visualizations.
Little things in javascript that you may not know about.
Principles for keeping your code clean.
Accessing and manipulating the live HTML tree.
Library for working with the DOM.
Semantic markup, canvas, CSS3 etc...
Common tools used for debugging web applications.
Best practices for a fast website.
Front-end framework for the web.
The dynamic stylesheet language.
Task runner.
Language parser.
Store and sync data instantly.
Website that allows users to play with regular expressions.
Visualize your regular expressions


|
|||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Deprecated Interfaces | |
|---|---|
| jxl.CellFormat
Repackaged as jxl.format.CellFormat |
| Deprecated Classes | |
|---|---|
| jxl.write.Alignment
Repackaged as jxl.Alignment. This version is retained for backwards compatibility |
|
| jxl.write.Border
repackaged as jxl.format.Border |
|
| jxl.write.BorderLineStyle
Repackaged as jxl.format.BorderLineStyle |
|
| jxl.write.Colour
This has been repackaged as jxl.format.Colour |
|
| jxl.write.Font
Renamed to writable font |
|
| jxl.write.Pattern
Repackaged as jxl.format.Pattern |
|
| jxl.write.VerticalAlignment
Repackaged as jxl.format.VerticalAlignment |
| Deprecated Methods | |
|---|---|
| jxl.write.WritableWorkbook.copy(Workbook)
Copying now occurs implicitly as part of the overloaded factory method Workbook.createWorkbood |
|
| jxl.Sheet.getColumnFormat(int)
Use getColumnView and the CellView bean instead |
|
| jxl.Sheet.getColumnWidth(int)
Use getColumnView instead |
|
| jxl.format.Colour.getDefaultBlue()
use getDefaultRGB instead |
|
| jxl.format.Colour.getDefaultGreen()
use getDefaultRGB instead |
|
| jxl.format.Colour.getDefaultRed()
use getDefaultRGB instead |
|
| jxl.CellView.getDimension()
use getSize() instead |
|
| jxl.Sheet.getRowHeight(int)
use getRowView instead |
|
| jxl.Sheet.isHidden()
in favour of the getSettings() method |
|
| jxl.Sheet.isProtected()
in favour of the getSettings() method |
|
| jxl.write.WritableSheet.setColumnView(int, int, CellFormat)
Use the CellView bean instead |
|
| jxl.CellView.setDimension(int)
use the setSize method instead |
|
| jxl.write.WritableSheet.setFooter(String, String, String)
use the SheetSettings bean |
|
| jxl.write.WritableSheet.setHeader(String, String, String)
use the SheetSettings bean |
|
| jxl.write.WritableSheet.setHidden(boolean)
use the SheetSettings bean instead |
|
| jxl.write.WritableSheet.setProtected(boolean)
use the SheetSettings bean instead |
|
| jxl.SheetSettings.setSelected()
use overloaded version which takes a boolean |
| Deprecated Constructors | |
|---|---|
| jxl.write.Font(WritableFont.FontName)
Use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int)
use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int, WritableFont.BoldStyle)
use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int, WritableFont.BoldStyle, boolean)
use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int, WritableFont.BoldStyle, boolean, UnderlineStyle)
use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int, WritableFont.BoldStyle, boolean, UnderlineStyle, Colour)
use jxl.write.WritableFont |
|
| jxl.write.Font(WritableFont.FontName, int, WritableFont.BoldStyle, boolean, UnderlineStyle, Colour, ScriptStyle)
use jxl.write.WritableFont |
|
|||||||||
| PREV NEXT | FRAMES NO FRAMES |