This document introduces you to the SpiderMonkey networking API.
Each Client informs the Server about its player's moves and actions. The Server centrally collects the game state and broadcasts the state info back to all connected clients. This way all clients share the same game world and can display it to their players from their perspective.
The SpiderMonkey API is a set of interfaces and helper classes in the 'com.jme3.network' package. For most users, this package and the 'message' package is all they need to worry about. (The 'base' and 'kernel' packages only come into play when implementing custom network transports or alternate client/server protocols, which is now possible).
The SpiderMonkey API assists you in creating a Server, Clients, and Messages. Once a Server instance is created and started, the Server accepts remote connections from Clients, and you can send and receive Messages. Client objects represent the client-side of the client-server connection. Within the Server, these Client objects are referred to as HostedConnections. HostedConnections can hold application-defined client-specific session attributes that the server-side listeners and services can use to track player information, etc.
| Seen from the Client | Seen from the Server | |
|---|---|---|
| com.jme3.network.Client | == | com.jme3.network.HostedConnection |
You can register several types of listeners to be notified of changes.
A com.jme3.network.Server is a headless com.jme3.app.SimpleApplication. Headless means that the update loop runs, but the application does not open a window and does not listen to direct user input.
ServerMain app = new ServerMain(); app.start(JmeContext.Type.Headless);
Create a Server in the simpleInitApp() method and specify a communication port, for example 6143.
Server myServer = Network.createServer(6143); myServer.start();
The server is ready to accept clients. Let's create one.
A com.jme3.network.Client is a standard com.jme3.app.SimpleApplication.
ClientMain app = new ClientMain(); app.start(JmeContext.Type.Display); // standard type
Create a Client in the simpleInitApp() method and specify the servers IP address, and the same communication port as for the server, here 6143.
Client myClient = Network.connectToServer("localhost", 6143); myClient.start();
The server address can be in the format "localhost", "<IP_ADDRESS>" (for local testing) or “123.456.78.9” (the IP address of a real server).
The server refers to a connected client as com.jme3.network.HostedConnection. The server can get info about clients as follows:
| Accessor | Purpose |
|---|---|
| myServer.getConnection(0) | Server gets the first etc connected HostedConnection object. |
| myServer.getConnections() | Server gets a collection of all connected HostedConnection objects. |
| myServer.getConnections().size() | Server gets the number of all connected HostedConnection objects. |
Your game can define its own player ID based on whatever user criteria you want. If the server needs to look up player/client-specific information, it can store this information directly on the HostedConnection object:
| Accessor | Purpose |
|---|---|
| conn.setAttribute("MyState", new MyState()); | Server can change an attribute of the HostedConnection. |
| MyState state = conn.getAttribute("MyState") | Server can read an attribute of the HostedConnection. |
Each message represents data you want to transmit, for instance transformation updates or game actions. For each message type, create a message class that extends com.jme3.network.AbstractMessage. Use the @Serializable annotation from com.jme3.network.serializing.Serializable and create an empty default constructor. Custom constructors, fields, and methods are up to you and depend on the message data that you want to transmit.
@Serializable public class HelloMessage extends AbstractMessage { private String hello; // message data public HelloMessage() {} // empty constructor public HelloMessage(String s) { hello = s; } // custom constructor }
Register each message type to the com.jme3.network.serializing.Serializer, in both server and client.
Serializer.registerClass(HelloMessage.class);
After a message was received, a listener responds to it. The listener can access fields of the message, and send messages back. Implement responses in the two Listeners’ messageReceived() methods for each message type.
Create one ClientListener.java and make it extend com.jme3.network.MessageListener
.
public class ClientListener implements MessageListener<Client> { public void messageReceived(Client source, Message message) { if (message instanceof HelloMessage) { // do something with the message HelloMessage helloMessage = (HelloMessage) message; System.out.println("Client #"+source.getId()+" received: '"+helloMessage.getSomething()+"'"); } // else... }
For each message type, register a client listener to the client.
myClient.addMessageListener(new ClientListener(), HelloMessage.class);
Create one ServerListener.java and make it extend com.jme3.network.MessageListener
.
public class ServerListener implements MessageListener<HostedConnection> { public void messageReceived(HostedConnection source, Message message) { if (message instanceof HelloMessage) { // do something with the message HelloMessage helloMessage = (HelloMessage) message; System.out.println("Server received '" +helloMessage.getSomething() +"' from client #"+source.getId() ); } // else.... }
For each message type, register a server listener to the server:
myServer.addMessageListener(new ServerListener(), HelloMessage.class);
A client can send a message to the server:
Message message = new HelloMessage("Hello World!"); myClient.send(message);
The server can broadcast a message to all HostedConnection (clients):
Message message = new HelloMessage("Welcome!"); myServer.broadcast(message);
Using com.jme3.network.Filters, the server can send a message to specific HostedConnection (conn1, conn2, conn3), or to all but a few HostedConnections (not to conn4).
myServer.broadcast( Filters.in( conn1, conn2, conn3 ), message ); myServer.broadcast( Filters.notEqualTo( conn4 ), message );
The ID of the Client and HostedConnection are the same at both ends of a connection. The ID is given out authoritatively by the Server.
... myClient.getId() ...
A server has a game version and game name. Each client expects to communicate with a server with a certain game name and version. Test first whether the game name matches, and then whether game version matches, before sending any messages! If they do not match, you should refuse to connect, because the client and server will not be able to communicate.
| Accessor | Purpose |
|---|---|
| myServer.setName() | Specify the game name (free-form String) |
| myServer.setVersion() | Specify the game version (int) |
| myClient.getGameName() | Client gets the name of the server it is connected to. |
| myClient.getVersion() | Client gets the version of the server it is connected to. |
Tip: Your game defines its own attributs, such as player ID, based on whatever criteria you want. If you want to look up player/client-specific information, you can set this information directly on the Client/HostedConnection (see Getting Info About a Client).
You must override the client's destroy() method to close the connection cleanly when the player quits the client:
@Override public void destroy() { myClient.close(); super.destroy(); }
You must override the server's destroy() method to close the connection when the server quits:
@Override public void destroy() { myServer.close(); super.destroy(); }
The server can kick a HostedConnection to make it disconnect. You should provide a String with further info (an explanation to the user what happened) for the server to send along. This info message can be used (displayed to the user) by a ClientStateListener. (See below)
conn.close("We kick cheaters.");
The server and clients are notified about connection changes.
The com.jme3.network.ClientStateListener notifies the Client when the Client has fully connected to the server (including any internal handshaking), and when the Client is kicked (disconnected) from the server.
| ClientStateListener interface | Purpose |
|---|---|
| clientConnected(Client c) | Implement here what happens as soon as this clients has fully connected to the server. |
| clientDisconnected(Client c, DisconnectInfo info) | Implement here what happens after the server kicks this client. For example, display the DisconnectInfo to the user. |
Implement the ClientStateListener interface in the Client, and then register it:
myClient.addClientStateListener(this);
The com.jme3.network.ConnectionListener notifies the Server whenever new HostedConnections (clients) come and go. The listener notifies the server after the Client connection is fully established (including any internal handshaking).
| ConnectionListener interface | Purpose |
|---|---|
| connectionAdded(Server s, HostedConnection c) | Implemenent here what happens after a new HostedConnection has joined the Server. |
| connectionRemoved(Server s, HostedConnection c) | Implement here what happens after a HostedConnection has left. E.g. a player has quit the game and the server removes his character. |
Implement the ConnectionListener in the Server, and register it.
myServer.addConnectionListener(this);
SpiderMonkey supports both UDP (unreliable, fast) and TCP (reliable, slow) transport of messages.
message1.setReliable(true); // TCP message2.setReliable(false); // UDP
You cannot modify the scenegraph in the NetworkThread. You have to create a Callable, enqueue the Callable in the OpenGLThread, and the callable makes the modification in the correct moment. A Callable is a Java class representing a (possibly time-intensive), self-contained task.
app.enqueue(callable);
Learn more about multithreading here.


`PacemRepeaterElement` is the element that allows to iterate through arrays, contextualizing data into portions of DOM. All it needs is a `<template>` descendant that represents the item DOM. For instance: ```html <pacem-repeater datasource="{{ ['apples', 'apricots', 'raspberries'] }}"> <ul> <li>Fruit:</li> <template> <li><pacem-text text="{{ ^item }}"><pacem-text></li> </template> </ul> </pacem-repeater> ``` ## Bindings `^item` and `^index` are the accessors respectively to the **data**-item and to the item-**index**. Iterations can be nested and multi-level. In order to access upper-level items just prefix `^item` and `^index` with the proper number of `^`. See example below:
some books:
## Item Commands Items in a repeater can bubble item-relevant command events. The command name can be generic a generic: Intercepting the item-command is as simple as writing the handler attiibute on-... ```html <pacem-repeater on-itemcommand="dosomethingWith($event.detail)"> <template> <pacem-button command-name="foo" command-argument="{{ ^item }}">foo</pacem-button> ... ``` The custom event `detail` property carries the following payload: - `commandName`: string, - `commandArgument`: any Shortcuts for **standard** item-commands like **select**, **edit** and **delete** are also provided. ```html <pacem-repeater on-itemselect="selectAt($event.detail)" on-itemdelete="delete($event.detail)"> <template> <pacem-button command-name="select" command-argument="{{ ^index }}">select</pacem-button> <pacem-button command-name="delete" command-argument="{{ ^item }}">delete</pacem-button> ... ``` In this case, the custom event `detail` property carries only: - `commandArgument`: any The most common 'use case' for an editable list, in its quickest fashion.
Purely declarative TODO list
## Tree View **Template proxying**: a special custom element (`<pacem-template-proxy>`) might be allowed in place of a standard `<template>`. The `PacemTemplateProxyElement` webcomponent allows to reference an external template, which can be used as the repeater's item template. This enables **recursive loop** scenarios.
[{ "name": "root", "children": [{ "name": "branch1", "children": [ { "name": "leaf1"}, { "name": "leaf2"}, { "name": "leaf3"} ] },{ "name": "branch2", "children": [ { "name": "leaf4"}, { "name": "leaf5"} ] }] }]
## Dynamic Template Item templates can also be dynamically injected into the repeater: the `target` property of `PacemTemplateProxyElement` reacts to changes and notifies the repeater about them. > Template changes might necessitate massive repaint effort from the browser.
[{ "name": "Peter Parker", "hero": "Spiderman" },{ "name": "Bruce Wayne", "hero": "Batman" },{ "name": "Clark Kent", "hero": "Superman" },{ "name": "Tony Stark", "hero": "Ironman" }]


Java 8,11
Spring 5, Springboot 2
Hibernate, SQL, PostgreSQL
GitHub, Bitbucket
Maven
Docker
JUnit 5, Mockito, TDD
Thymeleaf, Bootstrap, Java Script
SonarQube
RabbitMQ
Jira, Slack, IntelliJ, Confluence
CircleCi, Heroku
Studing at University Wroclaw on Technology at mechanical department
Got engineer degree of Automatic and Robotic
Studing at University Wroclaw on Technology at mechanical department
Got master of engineer degree of Automatic and Robotic
Responsible for data workflow. Write scirpts for automatic generating reports
Learn Java 8, Hibernate, Spring
Get the diploma with reference number: 2412/2018
Java training in London
Full-time contract as Java Developer
Java conference in Sofia
Java Developer
English: B2/C1
Sports activities
Travelling
Cooking
3D printing
Download CV


Info
I am a professional freelanc web developer from Bulgaria. I have over 1 years of experience in developing for a wide range of clients; developing everything from small business websites, to live bidding platforms, to eCommerce stores, to blogs, to booking systems, to business portals, to eLearning platforms, and even fully functional custom social networks. Not only do I create websites and platforms, I also offer long-term support, hosting/domain advice, and more.


PSALMS 38
A psalm written by David, asking God not to forget him
1 Yahweh, when you are angry with me,
do not rebuke me and punish me!
2 Now it is as though you have shot your arrows at me and wounded me;
it is as though you have struck me and knocked me down.
3 Because you have been angry with me,
I am suffering great pain.
Because of my sin,
my whole body is diseased.
4 All my sins are like a flood that covers my head;
they are like a load that is very heavy; I cannot carry them.
5 Because I have done foolish things,
I have sores that have become worse, and they stink.
6 Sometimes I am bent over, and sometimes I lie prostrate;
I mourn all day.
7 My body is burning with fever,
and I am very ill.
8 I am completely exhausted, and I have no strength.
I am very distressed in my inner being, and I groan with pain.
9 Yahweh, you know the that I desire you to heal me;
you hear me while I am groaning.
10 My heart pounds heavily, and all my strength is gone.
I am no longer able to see well.
11 My friends and neighbors stay away from me because of my sores;
even my own family stays far from me.
12 Those who want to kill me set traps to catch me;
those who want to harm me discuss the ways that they can get rid of me;
they plot against me all day.
13 Now I act like a deaf man and do not listen to what they say.
I act like a man who cannot talk, and I say nothing to reply to them.
14 I act like a man who does not answer when people talk to him
because he cannot hear anything.
15 But Yahweh, I trust in you.

If troubles overwhelm me, my enemies will do very bad things to me!"
17 I say that because I am about to fall down,
and I constantly have pain.
18 I confess the wrong things that I have done;
I am very sorry for the sins that I have committed.
19 My enemies are healthy and strong;
there are many people who hate me for no reason.
20 Those who do evil things to me in return for my doing good things to them
oppose me because I try to do what is right.
21 Yahweh, do not abandon me!
My God, do not stay far from me!
22 Lord, you are the one who saves me;
Quickly come and help me!


SNAPBOTIX
"Sometimes a change of perspective is all it takes to see the light".
Show us how creative your 'Frame of Reference' could be by participating in our sensational photo editing contest "SNAPBOTIX".
NON-TECHNICAL EVENTS
"Sometimes a change of perspective is all it takes to see the light".
Show us how creative your 'Frame of Reference' could be by participating in our sensational photo editing contest "SNAPBOTIX".
No cricket team in the world depends on one or two players.
"We have legends and living legends but the game doesn't stop for anyone!”
Join with us for witty events and games based on IPL (Indian Premier League).
We present you the Evolutionary debate contest. If you want to express your thoughts, Grab this opportunity and know what others think on the same topic.
Crazython is an absolutely non – technical fun fiesta.

Travel with us and unlock the surprises in the
next consecutive rounds.


Page 1 of 1
-==Official File Storage==- IMPORTANT READ LAST POST
Posted:
Mon Dec 25, 2006 7:38 am
by thadiusofx3
Official File Storage:
http://www.mydatabus.com
username:
<EMAIL_ADDRESS>password: volucris
I made some default folders to put stuff in:
3D Models
Sounds and Music
Textures & Graphics
Other Storage
Make other folders inside these as you see fit.
This will make it easier to keep all the files together and give everyone a place to share/host files for the project.
Posted:
Mon Dec 25, 2006 1:04 pm
by thadiusofx3
Whoever uploaded that xenimus ogg files, are those originals sounds, or ones you made?
I'm not at home and have no speakers.
Posted:
Mon Dec 25, 2006 2:38 pm
by Skitari
cool. uploaded some of my poo and made my own folder :3
Posted:
Mon Dec 25, 2006 3:18 pm
by Ender
just checked it out and the xensoundsogg is a zip of all the original xenimus sounds/music.
I just finished transcribing relax8 (probably my fav. xen tune), and tonight I'm going to change it a little bit, then upload it.
Different patches, and a slightly different melody should be enough for us to use it legally. My rule of thumb is if Vanilla Ice can do it, so can we. (if that made you go "wtf", look up "Under Pressure" by Queen)
Posted:
Wed Dec 27, 2006 4:30 pm
by thadiusofx3
I made a couple folders inside the music, textures, and models folders.
Awaiting Approval - If you think your file is ready for the final version of the game, place it into this folder so everyone can see it and comment on it.
Finished - Once it has been decided upon and approved by the project leaders/community it can be placed in this folder.
This will just help to keep our file storage organized.
Also, feel free to make your own folders inside the music, textures, and models folders to store your intermediate stuff you are working on.
Posted:
Sat Dec 30, 2006 3:31 pm
by Ender
sticky?
Posted:
Sun Dec 31, 2006 10:15 pm
by secretrk1313
Uploaded my Dragon Sword Model
Posted:
Sun Jan 07, 2007 9:11 pm
by thadiusofx3
Who deleted the file storage account, and changed/deleted the password to the email account also?
That was really low, whoever did that.
 Hope everyone has backups of their stuff.
Posted:
Mon Jan 08, 2007 12:32 am
by Karl G.
oh man...don't tell me the email account password was volucris, too?
 Make another account and PM people the name/password.
Posted:
Mon Jan 08, 2007 5:57 am
by secretrk1313
did you still get my model? damn now he has it too
Posted:
Mon Jan 08, 2007 9:54 am
by thadiusofx3
I set up a plain old FTP account with the same username and password on my server, but i set it to no delete so the files should be safe
the ftp address is
poorserver.no-ip.org
Posted:
Mon Jan 08, 2007 12:28 pm
by Nenitus
why dont you just use a group on mydatabus.
if people want to upload files they have to make their own acct, join the group, then only the owner and admins of the group can delete files (once you set permissions.)
Posted:
Mon Jan 08, 2007 1:01 pm
by Joe M.
good idea. one other problem with such publicly-hosted file-storage--other people using our content...
Posted:
Mon Jan 08, 2007 1:36 pm
by Ender
I'm liking that idea as well.
Posted:
Mon Jan 08, 2007 3:41 pm
by Karl G.
Yeah that sounds good.


Become a Web Developer
Ive been looking for information technology jobs personally all summer and have
applied to hundreds of them. My methods include looking at my day to day activities
and relate the brand to opportunities. So for example I use google a lot. Google
has its own careers page that is super self explanatory and will save your application
to use over and over again. I highly recommend it since it save your info and gives
you an opportunity to update it before submitting. I usually use phrases like web
develop, web developer, front-end, back end, help desk, information technology to
pull up jobs that require the same amount of knowledge. Some jobs I found through google are:
Developer Advocate, Web
Front End Software Engineer
Software Engineer, Front End
The next thing I do is look at the apps I use on my phone so we can look at a few examples there.
The first one I would like to start on is Pinterest Careers
(Just a heads up I have interviewed with them and they are very particular on who they
hire but its literally an amazing place to work at. I highly suggest looking up their
offices and just seeing how they work as a team. But then again the interview process
is very difficult.) On Pinterest they section off their jobs by how common they are,
all the computer jobs are listed under engineering. The only job they have available
for web is Web Engineer, Growth.
The next app I personally don't use but I have family who does work there and suggested
I apply also is Facebook! I know a lot of you might have this app and use it daily so I
go into my web browser and type in Facebook Careers
and that link should take you to their website. They have a search bar on there and I
like to be as basic as possible and type in "Web" and all the jobs related to it will
pop up. The first one that did was Web Software Developer, Web Client (WhatsApp), heres a student
friendly one Front End Engineer, Intern/Co-op
SO the take away when it comes to hunting for jobs is the apps and things you use every day.
The best way to know a company exists is literally right in front of you. And you do not have
to work for a tech company! It can be from cliff bar to crayola or a school. The possibilities
are endless and out there.
If you guys want to get started on searching here are some companies Ive looked up this past summer
and applied to [some]:
Netflix (they have a github
Pinterest
Facebook
Clif Bar
edjoin.org (type web, information tech, or technology and under all job categories select classified)
usajobs.gov
glassdoor.com (This is a major website that shows company stats and the jobs they posted. I highly recommend it since there are actual interviews, salaries, benefits, and overall company reviews on there.)
I hope this helps!


{{ id }}
This actor is owned by {{ creator }} with passphrase
{{ passphrase }}
(use these for login).
Initialize
--
Properties
--
Delete


1 instantiation of CacheDict
System.Management.Automation (1)
engine\interpreter\LightLambda.cs (1)
47
private static readonly CacheDict<Type, Func<LightLambda, Delegate>> s_runCache = new
CacheDict
<Type, Func<LightLambda, Delegate>>(100);
2 references to CacheDict
System.Management.Automation (2)
engine\interpreter\LightLambda.cs (1)
47
private static readonly
CacheDict
<Type, Func<LightLambda, Delegate>> s_runCache = new CacheDict<Type, Func<LightLambda, Delegate>>(100);
engine\interpreter\Utilities.cs (1)
644
_dict[key] = new
CacheDict
<TKey, TValue>.KeyInfo(value, listNode);


{% extends 'base.html' %} {% block content %}
Please completely fill out form to book reading. Will receive an email confimation of booking within 24 hrs of submitting form.


2 writes to writeOnly
System.Management.Automation (2)
engine\CoreAdapter.cs (2)
2769
this.
writeOnly
= property.GetGetMethod() == null;
2783
this.
writeOnly
= true;
3 references to writeOnly
System.Management.Automation (3)
engine\CoreAdapter.cs (3)
2815
if (
writeOnly
|| useReflection)
3959
if (adapterData.
writeOnly
)
4071
return !((PropertyCacheEntry)property.adapterData).
writeOnly
;


{# Only load JS files with modifications for the ORCA system #}
{#
#} {#
#} {#
#} {#
Latency:
999
ms
#} {#
Users:
#} {#
#}
Instructions
Finish Game
Latency:
999
ms
Users:
Remaining time:
--:--
Send
Game Instructions
Modal title
×


The Update User API lets you modify the protectedProfile property of any of your users by providing the ID of a user from your account. The user ID can be obtained from the Admin panel, or from the signUp, signIn, or init methods in the Userbase SDK.
curl 'https://v1.userbase.com/v1/admin/users/$USER_ID' \
-XPOST \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary '{ "protectedProfile": {"paid", "true"} }'


Good Will Hunting (1997)
Seen on 7 December 1997 for $0 at the Loews New York Twin.
*Good Will Hunting* is a situation drama about a supergenius who cleans the floors at MIT instead of pacing them as a student.
That's the situation, the high-concept, if you will. Mathematics professor Lambeau (Stellan Skargard) leaves an "impossible" problem on the bulletin board, and Will Hunting solves it. Lambeau tracks him down and wants to take credit for discovering him. But, for all his cerebral cortex action, Will is a diamond in the rough, and needs polishing if he's going to become part of the Establishment.
Will's life is rooted in South Boston, an orphan shuttled around foster homes who now lives in a dump, works in construction, and gets into trouble with his ne'er-do-well friends, who clearly have no use or respect for the college kids that abound in Boston.
To get him under control, Lambeau takes Will to prominent psychiatrists, all of whom Will either infuriates or outwits, until he reaches Sean McGuire (Robin Williams), who is an old friend of Lambeau's who is also from South Boston, and teaches at a Bunker Hill Community College.
What follows is a fairly predictable and average "he's met his match and they have more in common and they learn a lot from each other story." McGuire's background: he lost his beloved wife and is "ironically" in his own protective shell, "ironically," just like Will. It's a good premise, but it just wasn't very interesting. Even the double-entendre title (Good Will Hunting, hunting for good will) seems a bit sophomoric and quite the cliche.
Skylar, Will's love interest, played by the personable Minnie Driver, who--finally--gets to use her (real) British accent. The interaction Will has with her and with his friend Chuckie (Ben Affleck) is the most believable. The epiphanies Will reaches with them seem much less hackneyed than the ones he reaches with McGuire. In fact, it is Affleck's speech to Will that really seems to cut through Will's defenses more than anything else. Robin Williams' performance is a bit too earnest and forced.
Perhaps it's my own bourgeois background, but it was difficult for me to understand the reverse snobbery shown in *Good Will Hunting* that keeps a supergenius stuck in a clapboard shack with a screen door that is barely on its hinges. Apparently, it was h ard for Chuckie to understand either, and he's from the same background.
The performances are what stand out in this movie. Damon is charming and funny, as is Driver. Affleck's big scene gives Chuckie some actual depth the rest of the characters are lacking. But, it's enjoyable nonetheless; I've seen a lot worse.
Directed by Gus Van Sant, this must be his blandest offering yet, when you consider his credits include the offbeat *Drugstore Cowboy*, *My Own Private Idaho*, *Even Cowgirls Get the Blues*, and more recently, his biting, more upscale hit *To Die For*. *Good Will Hunting* is probably good for his bankroll and his Hollywood credentials, but it is the least original of his projects.
Affleck and Damon have been hyped for penning and selling their screenplay. Why? It's a feel-good movie written by two men already firmly entrenched in the Hollywood establishment. Affleck was in Chasing Amy last year, and Damon has had three big movies this year and the cover of Vanity Fair. It doesn't seem that David-and-Goliath to me.
More movie reviews by Seth Bookey, with graphics, can be found at http://www.geocities.com/Athens/2679/kino.html
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


First time setup
- Sign up for a Github account: https://github.com/join
- Send an email to Richard Harrington asking him to add you to the MCGen github repository
After hearing from Richard
- Download Github Desktop: https://desktop.github.com/
- Run the installation program that you just downloaded
- Open Github Desktop
- The first screen you see will be:
Enter your login information
- Next, you will get a screen to configure git:
Enter your first and last name, and your email address
- Finally, you will get a screen to finish the configuration process:
Click Finish
- After clicking finish, you will need to setup the MCGen repository:
Click Clone a repository
- Now enter “MCGen” into the search bar to find the repository on Github:
Select the repository “REHarr/MCGen” and press “Clone”
- It will take some time to download this. Please get a coffee and relax for a bit! The screen will look something like this while it downloads:
- When the download is complete your screen will look like this:
Editing an existing file:
- Open Github Desktop
- Click on the “Repository” menu, and select “Show in Explorer”
- If editing an existing file, right-click on file and “Open with” > Microsoft Word
- Enter summary of changes into the “Summary text box”:
- Press “commit”
- Press “push origin”
Adding a new file:
- Open Github Desktop
- Click on the “Repository” menu, and select “Show in Explorer”
- Creating a new file with Microsoft Word, and save file into this directory
- Enter summary of changes into the “Summary text box”:
- Press “commit”
- Press “push origin”


System alerts
-
Protocol defining system service request alert. Provides essential definitions for system alerts giving the ability to handle them in the UI tests.
System alerts supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method. Additional protocols,SystemAlertAllow
,SystemAlertDeny
,SystemAlertOk
andSystemAlertCancel
provides definition and default implementation for handling buttons on the alert view.Note
AutoMate
provides an implementation for several different system alerts. Check the documentation for full list of supported system alerts.Example:
let token = addUIInterruptionMonitor(withDescription: "Contacts") { (alert) -> Bool in guard let alert = AddressBookAlert(element: alert) else { XCTFail("Cannot create AddressBookAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not.
-
Represents
HealthAuthorizationDontAllowAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = HealthAuthorizationDontAllowAlert(element: alert) else { XCTFail("Cannot create HealthAuthorizationDontAllowAlert object") return false } alert.allowElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
Note
Handlers should returntrue
if they handled the UI,false
if they did not.See moreWarning
The alert seems to be visible in view hierarchy and work without aninterruption monitor dance
. Check working example here: AutoMateExamplePermissionsTests -testHealthKitAlert
-
Represents
LocationAlwaysAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = LocationAlwaysAlert(element: alert) else { XCTFail("Cannot create LocationAlwaysAlert object") return false } alert.allowElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
LocationUpgradeWhenInUseAlwaysAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = LocationUpgradeWhenInUseAlwaysAlert(element: alert) else { XCTFail("Cannot create LocationUpgradeWhenInUseAlwaysAlert object") return false } alert.allowElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
LocationWhenInUseAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = LocationWhenInUseAlert(element: alert) else { XCTFail("Cannot create LocationWhenInUseAlert object") return false } alert.allowElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not.
-
Represents
AddressBookAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = AddressBookAlert(element: alert) else { XCTFail("Cannot create AddressBookAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
BluetoothPeripheralAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = BluetoothPeripheralAlert(element: alert) else { XCTFail("Cannot create BluetoothPeripheralAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
CalendarAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = CalendarAlert(element: alert) else { XCTFail("Cannot create CalendarAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
CallsAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = CallsAlert(element: alert) else { XCTFail("Cannot create CallsAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
CameraAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = CameraAlert(element: alert) else { XCTFail("Cannot create CameraAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
MediaLibraryAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = MediaLibraryAlert(element: alert) else { XCTFail("Cannot create MediaLibraryAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
MicrophoneAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = MicrophoneAlert(element: alert) else { XCTFail("Cannot create MicrophoneAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
MotionAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = MotionAlert(element: alert) else { XCTFail("Cannot create MotionAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
PhotosAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = PhotosAlert(element: alert) else { XCTFail("Cannot create PhotosAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
RemindersAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = RemindersAlert(element: alert) else { XCTFail("Cannot create RemindersAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
SiriAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = SiriAlert(element: alert) else { XCTFail("Cannot create SiriAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
SpeechRecognitionAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = SpeechRecognitionAlert(element: alert) else { XCTFail("Cannot create SpeechRecognitionAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not. -
Represents
WillowAlert
service alert.System alert supposed to be used in the handler of the
XCTestCase.addUIInterruptionMonitor(withDescription:handler:)
method.Example:
let token = addUIInterruptionMonitor(withDescription: "Alert") { (alert) -> Bool in guard let alert = WillowAlert(element: alert) else { XCTFail("Cannot create WillowAlert object") return false } alert.denyElement.tap() return true } mainPage.goToPermissionsPageMenu() // Interruption won't happen without some kind of action. app.tap() removeUIInterruptionMonitor(token)
See moreNote
Handlers should returntrue
if they handled the UI,false
if they did not.


--- layout: post title: HTML 5 Video user macro for Atlassian Confluence date: 2013-07-28 06:13:38.000000000 +01:00 type: post published: true status: publish categories: [] tags: - confluence - html5 - user macro - video meta: tmac_last_id: '618797345782800385' _edit_last: '1' _syntaxhighlighter_encoded: '1' _oembed_09ae133a479882420394c898909bcb3a: _oembed_41445133fa503bb414e4776e91a8f817: _oembed_2a86b5f094c397d9d71736b97cdd2e76: _oembed_6a83bcd8dc53a35b55395e35fe7ae57a: _oembed_3cffcd3a31a127f3a1f816640943ad76: author: David Simpson excerpt_separator: ---
When I embed an mp4 movie of 1280x800 quality i have todo the settings 1280x800 in order to be able to see the play button. When i set 720x400 i see the movie is not scaled and i also don't see my play button. Is there a work-around for this or a payed tool to make this work. I don't want to stream movies from youtube or vimeo. I want to add it local to the confluence page.
So I created a user macro that solves the problem on most browsers. The user macro uses the HTML5 <video> tag with a fallback to the flash based flow player for older browsers.
## Macro title: HTML5 Video
## Macro has a body: N
##
## Output: HTML
##
## Developed by: David Simpson
## Date created: dd/mm/yyyy
## Installed by: My Name
##
## @param width:title=Width|type=string|required=false|desc=Video width
## @param height:title=Height|type=string|required=false|desc=Video height
## @param poster:title=Poster|type=string|required=false|desc=Set a placeholder image
## @param src:title=Source|type=string|required=true|desc=Attached video filename
##
## Tested on Google Chrome and Safari using mp4 files
## Does not work for mp4s on Firefox as Mozilla does not support mp4 files - lame
## Fail-back to Flash/Flow Player for old browsers -- Tested on Internet Explorer 8
##
## Usage: {html5video:src=myvideo.mp4|width=600|height=400}
#set ($attachment = $content.getAttachmentNamed($paramsrc))
<video controls="controls"
#if ($paramwidth) width="$paramwidth" #end
#if ($paramheight) height="$paramheight" #end
#if ($paramposter) poster="$paramposter" #end ## Set a placeholder image for the video
>
<source type="video/$attachment.getFileExtension()" src="$attachment.getDownloadPath()" />
<object type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"
#if ($paramwidth) width="$paramwidth" #else width="640" #end
#if ($paramheight) height="$paramheight" #else height="360" #end
>
<param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
<param name="flashVars" value="config={'playlist':[{'url':'$generalUtil.urlEncode("$action.getGlobalSettings().getBaseUrl()${attachment.getDownloadPath()}")','autoPlay':false}]}" />

</object>
</video>

Download video: $attachment.getFileExtension() format

## Big props to: http://sandbox.thewikies.com/vfe-generator/
## In response to: https://answers.atlassian.com/questions/171822/embedding-mp4-movie-screen-size
Updated code here:html5-video-user-macro.vm
Here's a video of it in action:
http://www.youtube.com/watch?v=33iA8akPny8
It's not perfect, but mainly works well in the browsers I've tested it out in.


Justin Fields Opens Up About De-Committing From Penn State
by Andrew McCartyIn just a few days, the biggest game of the season for the Big Ten will kick off from Columbus.
No. 1 Ohio State hosts No. 9 Penn State in a game with major College Football Playoff implications. Although the Nittany Lions have one loss, they still control their own destiny. If Penn State wins out, it will likely get a spot in the playoff, but the Buckeyes won’t go down easy.
In fact, Ohio State is favored by nearly 20 points.
Star quarterback Justin Fields is a major part of that. The Georgia transfer has the Buckeyes’ offense firing on all cylinders and scoring with the best offenses in the nation.
Penn State fans have to be wondering what could have been. Fields was committed to play for James Franklin before de-committing from the program and heading to Georgia.
Before this weekend’s big game, Fields spoke about his decision to walk away from Penn State.
“It was definitely one of the hardest phone calls I’ve had to make,” he said. Fields also likened the decision to breaking up with a girlfriend.
The decision to attend Georgia eventually led him to Ohio State, where the Buckeyes are a heavy favorite to win the conference and make the playoff.
It seems like he made the right call in the end.


Atlantic OWBCs Pacific SST circulation atmospheric Hemisphere Northern (Fig. impact response energy heat tropospheric North climatological {border-style transport climate px;} variability #ffffff;} NAM meridional temperature Climate SST-fronts fronts ocean surface wintertime experiments oceanic poleward zonal SFig. flux gradient stratospheric BCF-experiment \documentclass[pt]{minimal} \setlength{\oddsidemargin}{-pt} \usepackage{amsbsy} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathrsfs} \usepackage{upgreek} \usepackage{wasysym} eddies mean polar Ocean associated baroclinicity eddy-driven (SFig. Currents Geophysical Research atmosphere contributions experiment individual jet model observed order used zonally hPa Bjerknes Gulf SST-front Stream baroclinic horizontal overall performed pp. px; using westerlies {font-family E-vector Figure SSTs Sci [], compared equatorward font-size important large-scale planetary-scale precipitation realistic results sensible significant simulated stratosphere structure westerly (American Atmospheric Nakamura Omrani Oscillation Southern b). computed differences double; eddy enhanced extra-tropical impacts latitude maintain represents transient tropical troposphere variability. waves wind %-level AGCM Annular Centre Fig. OWBCs, Ottersen, Science Union, Western according border-color border-width covariance dynamics features idealized isolate latent latitudes linear local mainly mid-latitude mid-to-high near-surface planetary proportional regions release resolution role semi-idealized shaping solid; symmetric total {font-style {font-weight (or Atmos Boundary C., Commons Creative Dynamics H., Hoskins Hurrell, Japan Keenlyside Kuroshio/Oyashio Kushnir, Method) Method). N.-E. Nakamura, OWBCs. Storm T}{\partial Visbeck, Washington, a,b). additional adjustment aqua-planet averaged background bold boundary circulation. compensation component conducted confluence convergence corresponding courier; currents em; feedback fluctuations form general gyres including largely lower lower-tropospheric midlatitude mode prescribed pt;} reduction represent seen sharp similar simulations storm-track storm-tracks studies subtropical transport. two-tailed understand understanding upward vertical vol. vortex y})$$\end{document}


{% extends "screening/Base.html" %} {% load staticfiles otree_tags %} {% block title %} Final Question {% endblock %} {% block content %}
Are you interested and able to participate in a decision-making experiment beginning at 16:00 PST today?
The experiment and will take approximately 40 minutes, in which you can earn between $4 and $8, if you and the (seven) other participants successfully complete it.
{% formfield player.get_involved %}Again, please only accept the invitation to the experiment if you plan to participate in and complete the experiment.
If you accept, we may contact you in the next 30 minutes to give you a link to the experiment.
Thank you for your participation. Your participation pay is: {{participation_pay}}
{% next_button %} {% endblock %}


A notification to inform the connected device that a specific system capability has changed.
Convenience init for required parameters
- (nonnull instancetype)initWithSystemCapability:
(nonnull SDLSystemCapability *)systemCapability;
init(systemCapability: SDLSystemCapability)
The system capability that has been updated
A SDLOnSystemCapabilityUpdated object
The system capability that has been updated.
SDLSystemCapability, Required
@property (nonatomic, strong) SDLSystemCapability *_Nonnull systemCapability;
var systemCapability: SDLSystemCapability { get set }


Installation
Step 1 → Go to NexT dir
Change dir to NexT directory. There must be layout
, source
, languages
and other directories:
1 2 3
| $ cd themes/next $ ls bower.json _config.yml docs gulpfile.coffee languages layout LICENSE.md package.json README.md scripts source test
|
Step 2 → Get module
Install module to source/lib
directory:
1
| $ git clone https://github.com/theme-next/theme-next-three source/lib/three
|
Step 3 → Set it up
Enable module in NexT _config.yml
file:
1 2 3 4 5
| three_waves: true OR canvas_lines: true OR canvas_sphere: true
|
Update
1 2
| $ cd themes/next/source/lib/three $ git pull
|


Home
CV
Publication
List
Recent Publications
Teaching:
Common problems:
- in teaching
- in learning (and beyond)
2015 Spring
Contact me:
Address:
University
of Vermont
Dept.
of Math & Stats
16
Colchester Avenue
Burlington, VT
05401
e-mail:
<EMAIL_ADDRESS>Tel:<PHONE_NUMBER>


Name
Choose Name from Sheet/Layer/Tracing Menu.
This file command lets you name a file using your own characters.
On Sheets, it is the File Name and Description
On Tracings, it is the File Name and Description
On Layers, it is just the description.


If you like this extension feel free to donate, using one of the following services
Patreon
Paypal
Become a Patron!


#include <pthread.h> void pthread_cleanup_push_defer_np(void (*routine)(void *), void *arg); void pthread_cleanup_pop_restore_np(int execute);
Compile and link with -pthread.
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
pthread_cleanup_push_defer_np(), pthread_cleanup_pop_defer_np():
Like pthread_cleanup_push(3), pthread_cleanup_push_defer_np() pushes routine onto the thread's stack of cancellation clean-up handlers. In addition, it also saves the thread's current cancelability type, and sets the cancelability type to "deferred" (see pthread_setcanceltype(3)); this ensures that cancellation clean-up will occur even if the thread's cancelability type was "asynchronous" before the call.
Like pthread_cleanup_pop(3), pthread_cleanup_pop_restore_np() pops the top-most clean-up handler from the thread's stack of cancellation clean-up handlers. In addition, it restores the thread's cancelability type to its value at the time of the matching pthread_cleanup_push_defer_np().
The caller must ensure that calls to these functions are paired within the same function, and at the same lexical nesting level. Other restrictions apply, as described in pthread_cleanup_push(3).
This sequence of calls:
pthread_cleanup_push_defer_np(routine, arg); pthread_cleanup_pop_restore_np(execute);
is equivalent to (but shorter and more efficient than):
int oldtype; pthread_cleanup_push(routine, arg); pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype); ... pthread_setcanceltype(oldtype, NULL); pthread_cleanup_pop(execute);


This is an application developed by Decisions Support System (DSS) Lab, NTUA, in order to train and improve its privacy enabled recommendation systems. Below you can read a detailed description of how your data are used.
Gathering of Personally-Identifying Information
The application collects location-based information you have shared with third party applications (Foursquare), and the given information you fill in the form. No emails or real names are stored in the system, and the identification of the Foursquare service will be used only to retrieve any new data provided by the API of the service. In each case, the application collects such information only insofar as is necessary or appropriate to fulfill the purpose of the research.
Protection of Certain Personally-Identifying Information
The application discloses potentially personally-identifying and personally-identifying information only to those of its research team (DSS Lab NTUA), partners, researchers and affiliated organizations that (i) need to know that information in order to validate the research results, and (ii) that have agreed not to disclose it to others. Some of those employees, partners, researchers and affiliated organizations may be located outside of your home country; by using the application, you consent to the transfer of such information to them. DSS Lab takes all measures reasonably necessary to protect against the unauthorized access, use, alteration or destruction of potentially personally-identifying and personally-identifying information. DSS Lab may process your personal data to increase accuracy on recommendations. The outcome of this process will not be available to any third-party entity.
Internet Protocol (IP) Address, WAN Data and Cookie processing
No data of IP Addresses, WAN data and cookies will be processed by the application. Any such data unavoidably recognized for technical reasons will be deleted as soon as possible.
Ads
Data will not be given and used for any advertising purpose.
Privacy Policy Changes
Although most changes are likely to be minor, the application may change its Privacy Policy from time to time. If you are about to
Leaving the application
If you desire to delete your data, you can send us an email with topic [Open-i recommender - remove data], your name, Foursquare ID and a short relative message, at<EMAIL_ADDRESS>{% endblock %}


Hot Restaurant
We only have 5 tables!
View Tables
Make Reservations
API Table link
API Wait List


Paywall to
{{item}}
{{ description }}
The URL is:
{{ url }}
Pay this invoice to gain access to the URL:
{{invoice}}
Don't close this page.
Pay {{(price/1000).toFixed(0)}} sat


Exploratory data analysis, data visualization, and clustering, classification, regression and model performance evaluation. Python has various libraries such as, Numpy, matplotlib, scipy, sckitlearn for data science and data analysis.
Popular machine learning techniques classification, regression, recommendation and clustering.
Python has many data mining algorithm implementation such as linear regression, logistic regression, naive bayes, k-mean, k nearest neighbor and random forest.
Data science, machine learning and artificial intelligence are few trending topic these. Data mining and Bayesian analysis has increased demand of machine learning.
Programming which learns and improves with experience. Learning means recognizing and understanding the data and taking informed decision based on the provided data points. The algorithm are developed such that they build the knowledge from data and past experience by applying statical science, probability, logic, mathematical optimization, reinforcement learning and control theory.
Here are few application of machine learning.
Steps in machine learning.
Python libraries
Machine learning has following the common type machine learning algorithms.
Ex face recognition, speech recognition, recommendation based on history, forecasting etc. These data are fed to algorithm and tuned to provide expected data points as output.
In supervise learning the input data comes as labeled data so we know the result and we try to propose solution which takes inputs data set and tries to predict correct label, later we try to improve algorithm so that the accuracy of prediction is increased. Once the algorithm reaches satisfactory mark it can be used with real data. It is based on labeled sample and the output is know with learning data. There are many supervised algorithm examples: linear regression, logistic regression, support vector machine SVM, Naive bayes classifier.
Classification- Classification is dividing the data into set, categorizing it or anything related to segregating data. It is done when you have complete data, so it is done after.
Prediction/Regression is about guessing/predicting about the input data. In this you work on training example and train the model and later use the model to predict on new data. This is further division in specific type of machine leaning such as supervised, unsupervised, reinforced. It works on continuos values and continuos value have order, less than a number or more than a number, not like discrete, no order, only set of values
It used to detect anomalies, outlier, something which is odd then normal, fraud, defective equipment, or group with similarities. In here we don’t get the labeled data. It is also called unlabeled learning, the algorithm tries to find pattern, structure, anomaly from the given data.
Since here we do not know feature which can act as data classification points so unsupervised learning tries to group them in different groups based on data underlying patterns in optimum way. Most of the time unsupervised learning tries to find similarities and cluster them. Some examples are Kmean, random forest, hierarchal clustering etc.
Association & Clustering - If you buy bread then system shows jam as well, this kind comes under association. Clustering is again grouping but without training data.
Some data are labeled and some are not, unlabeled are used in unsupervised learning and labeled are used for testing and fine tuning. It saves cost when it is difficult to get full labeled data.
Here learning is improved based on real time data feedback. System adjust itself based on learning data. Ex are self driving car, chess Alpha Go. Unlike supervised it works only on three feedback- happy, unhappy and neutral. Supervised tries to find right hyper parameters for model and updates these based on some function based on output.
The goal of machine learning is to reduce human effort but not creating the intelligence that piece goes into artificially intelligence which is superset of machine learning. It can evolve to go beyond human perception specializing in one given task.
Let’s talk a bit about standardization and normalization.
Data can in be sometime in big number or may be sometime in very small number, there are multiple technique to scale data to readable or to our needed limits. For example. 0<x<1 scaling. Any data can be scalded from 0 to 1 in this its easy to know lower limit and upper limit and we can easily perceptually how big one data in this scale.
Min-Max Normalization - To fit the data in defined boundary, let say data has 134567 min and 136878 max and we want to see it in scale of 0 to 1, or in scale of 1000 to 10000 etc.
, it lays the data Ai from set of A, from C to D.
Decimal Scaling - Divide or multiple with 10n to bring the at scale of decimal. For example
10,30, 4000 will become 0.001, 0.03, 0.4 after deviling with 104.
Standard Deviation -
Standardization or z-score Is form of normalization where mean is kept to 0 and standard deviation to 1. In graph the start and end of data limits has to have same distance from y axis.
Regression tries to find the least cost continuos function based on given input such that, the aim to minimize the cost. The cost is cost of given training set combined. Cost is also called loss. There are many loss function out which here is one mean squared error( L2 Loss function).
It better then sum of absolute error as sum of absolute error can have ambiguous result while squared will penalize larger distance and find exact half way.
Feature Scaling - If the variable are not in same scale they tend to make gradient jump and slows down the process of reaching to minimum. So there are many feature scaling.
Normal equation gets you the minimum value of θ directly, for example you know the curve of the cost function. Then you can solve for minimum value for θ. If θ is quadratic. will give you minimum value for θ. Same goes for multiple variable keep one variable constant each time. m - Training examples n - Variables. Advantage, you don’t need to α and it does not take lot of iteration like gradient descend while disadvantage is has complexity of and difficult to work with nonconvertible equation , though it can be solved by removing redundant feature, removing feature and regularization.
Logistic function or called sigmoid function, it maps the value to in between 0 < h(x) < 1. Hence can be used in probability prediction. Probability of y being 1 at given value of x when θ is hyperparameter. θ changes the width of sigmoid function hence affect the y over over x.
A good explanation here. https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc
Decision Boundary- Kind of line, curved line, plane which divides the data into sets. It is used to define the boundary of classification data. For example a line dividing area in 2D plain.
In logistic we use to have two set yes/no and each event has some probability based on that we use to say this event belong to yes or no group. That probability is derived by function . Here we have many sets and each set will have its own . We calculate y’s probability in eahc set and assign this to the set which has max probability.
If you increase the variable to map all the training data then there are chances the test data may not fall close to the curve. This is overfitting so to reduce this,
Backward proportion - We know when there is hight cost or more error in each K output nodes, then we need to fix each θ in previous layers. This is done through backward propagation.
Let δ is error in Kth node of L, now calculate δ at L-1 layer. This is done through derivative of
.
δ is applied at nodes we need to adjust our θ matrix. So we put another term Δ which is proportionate to δ
Gradient Checking - Compare the delta changed value to the output to the the change we got from Backward propagation. Gradient Checking is time consuming that is the reason we do not use it in place of backward propagation.
Multiple things we can tweak to fix our hypothesis when we start.
As you increase d polynomial degree the validation error will decrease at it will not be generalized and will have high variance.
Effect of λ
Effect of training data
In high bias(less parameterized) model training after some time is of no use, while in high variance training will improve the learning rate and decrease the Cross Validation(CV) cost.
Precision & Recall evaluation - Sometime you get the training whose output is skewed, in the sense hight percentage on one class. With these kind of data algorithms can’t learn well and show low precision and low recall characteristics. Evaluating Precision and recall give idea wether the algorithm is heading in right direction or not.
One of the famous Supervised learning.
SVM is also called Large Margin Classifier.
Think as vector multiplication and you can say what this multiplication gives projection of θ over x.
Kernel Above we were discussing are devisor which was linear, in some situation the plotted points are mixed and requires nonlinear curve to divide or enclosing circle.
K-mean is unsupervised clustering algorithm, Here you tak randomly take k clusters and each cluster has a centroid . We calculate for each which states cluster for , which cluster x belongs to by calculating distance with each cluster centroid. This c maps all the input to some cluster and later each cluster’s mean is adjusted with average of x from that cluster.
Cost Function - We keep calculating K-mean until out cost stops decreasing. Cost is calculate by squared sum of distance of x from there cluster mean.
Optimization - Initialize mean of each cluster to random value of inputs and calculate cost, the lowest cost is selected in the end as optimized solution.
Deciding number of Clusters K - Use elbow approach, keep increasing K from 2 to n draw the graph, the cost keeps on decreasing but at some point we can see elbow, the rate of cost decrease has reduce significantly. Or if there is no such elbow select whatever suites you.
Compress the data from 2D to 1D or 3D to 2D or nD to mD m< n etc, to save the memory and computation overheads. Correlated feature can be mapped together using a function or even directly so reduce multiple feature in one.
PCA(Squared Projection/minimum distance Error) - We try to find a line, where 2D points are projected and line should have minimum projection error. It is different to linear regression as linear regression tries to find out a line which tries minimizes the distance between actual y and projected h(x).
Multivariate Gaussian Distribution
Sometime we need Multivariate Gaussian because in previous we use to find out p(x1),p(x2) etc. and this use to ignore there coherent property, In case we need to look how the combined gaussian looks we calculate p(x).
Let’ remember the linear regression again, It tries to map feature of training set features= x1,x2…xn, input data =x1,x2…xm to the output of training set with tweaking parameters as θ
Now take nm as movies and nu as users. We need to fit θ for each user to movies input based movies feature. Since there are nu users hence there will θj one for each user.
The soul remains same θ and x,m normals we try to find θ to fit y for given x. So that said x is defined at least. But in last example x was some features of movies and how we can find those features, so we start small. With give θ provided by users (user rates some movies and also tell there inclination romance, action etc), with this information we calculate x. This calculated x is used to predict θ and it goes in loop x and θ both predict each one after one.
But better than going one by one lets find everything together.
If user is watching one movie suggest him another movies. This is normally found by distance between two movies features x1 (). The distance is calculated by .
What if there is new user and we need to suggest him a movie. The θi will be 0 for him as the model doesn’t have any parameter which affect θ for this new user.
The normal Gradient descent is called batch Gradient descent, where we have to find mean square of all the input data on each iteration of gradient descent update. In case if m is in million then each θ update will have to calculate million records before making updates. In Stochastic Gradient descent we update θ based on last .
Artificial Synthesize the data. Ceiling Analysis prepare one liner chart to see if you provide truth data to component how is the accuracy is increase and with this you can find out what needs to be fine tuned more rather then wasting time on other component.
#Read this https://www.altexsoft.com/blog/datascience/machine-learning-project-structure-stages-roles-and-tools/ https://towardsdatascience.com/building-package-for-machine-learning-project-in-python-3fc16f541693 https://towardsdatascience.com/the-ultimate-guide-to-data-cleaning-3969843991d4 https://medium.com/omarelgabrys-blog/statistics-probability-exploratory-data-analysis-714f361b43d1#48f7
Bayes formula tells you how to calculate P(A|B) when P(B) and P(B|A) is given. Just say you are interested to know what if I changes terms P(B|A) to P(A|B)
Here is an example.
Based on all words(evidences) calculate final probability of being some label. It is classification algorithm but doesn’t consider order so that why it called naive bayes.
 SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=’ovr’, random_state=None)[source]
Compared to Naive bayes - On more feature SVM slows down also kernel overlap issue is not there in Naive Bayes. SVM works well in non linear domain as it tries to capture relation between feature(kernel or function).
Creates a tree internally on each feature with value less then or more then, keeps on splitting till min_samples_split is reach, minimum is 2 . But when you increase it, it works as regularization parameter.
class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)[source]
Consolidating the words to single meaning.
Term frequency in a sentence and inverse document in frequency in a corpora or whole document. If word occurs more in sentence will have more term frequency, But if it occurs more in document the attention to this word has to be less. https://kavita-ganesan.com/tfidftransformer-tfidfvectorizer-usage-differences/#.XdLPzVdKgdU tfidf_vectorizer=TfidfVectorizer(use_idf=True) tfidf_vectorizer_vectors=tfidf_vectorizer.fit_transform(docs)
Principal component analysis, tries to reduce the dimension by retaining most of the information. Let’s say there are two axis x(area) and y(bedroom), it is directly proportional and create a slanted line in graph of x,y so we can change our origin and slop of base axis. This forms an new dimension which is created using other two dimension.
In algorithm we don’t try to find out one by one, we just dump all in algo, PCS tries to find most suitable by ranking and that calls it first PC line, second PC line and so on but all these PCA (new dimension) will be perpendicular to each other.
Using overall training set we try to reduce facial data dimensionality to smaller dimensions.
Use sklearn GridSearchCV for let sklearn figure out best possible parameter for specific algorithm from given parameters.
TextBlog - sentiment analysis inbuilt. LighFM - Mixed recommender system CSV - To read csv PIL(Pillow) - For images URLLib - Download files ZIPFiles - To unzip/zip files os - For os related tasks TPOT - BUilt over sklearn to find best algorithm and parameter
Collaborative - What other people like Content based - what you like.
Gradient Divergence and Curl Gradient is derivative diferent dimensions, Div or divergence is multiplication with vector field, curl is cross product.
Critical or Stationary Point - Is the point where gradient is zero, it is like maximum or minimum point where there is no slope.
Line search - it is the process of finding the direction or gradient and then the step to get to minimum. Hill climbing - It is typical mathematical optimization problem, it start with one point attempts to find a better solution.


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
MEGTEC TurboSonic Inc.
Mailing Address:
A14-550 Parkside Dr.WATERLOO, Ontario
N2L 5V4
Location Address:
A14-550 Parkside Dr.WATERLOO, Ontario
N2L 5V4
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
TurboSonic Inc. is a Canadian controlled company, formed as a merger of Turbotak Technologies Inc. with office in Waterloo, Ontario since 1976 and Sonic Environmental Systems of New Jersey operating since 1962.
TurboSonic's patented scrubber technology is used for particulate and acid gas emission control. Spray nozzle system applications, including evaporative cooling of process gases, combustion, spray drying and gas conditioning cooling towers are offered worldwide through our licensees and representatives.
TurboSonic supplies air pollution control and gas conditioning systems to a wide variety of industries, including pulp and paper, mining, automotive, power generation, food and beverage, waste incineration, chemical processing and general manufacturing. Transportable pilot plants are available to demonstrate system performance and to collect data for site-specific design.
We have executed many jobs in steel, cement and incineration plants for gas cooling/conditioning ahead of baghouses and electrostatic precipitators.
Recent research and Development has been rewarded with a number of patents for improvements to WESP design.

TurboSonic's technologies provide economic and technical advantages over conventional equipment and are designed to meet the strictest emission regulations for gaseous and particulate emissions and provide reliable operation in the most demanding applications.
TurboSonic has extensive engineering knowledge and experience in air pollution control equipment design and can retrofit competing technologies to improve their performance.
The SonicKleen Wet Electrostatic Precipitator (WESP): Increasingly stringent standards for control of sub-micron particulate necessitate the use of highly efficient particulate collection technology. The SonicKleen WESP captures sub-micron particulate, heavy metals, dioxins and furans, mists and fumes from process gas streams. The SonicKleen design delivers a superior performance over other WESPs through a combination of vertical downflow and hexagonal tube design with SonicCharge rigid mast electrodes. Continuous irrigation of the tubes eliminates maintenance related downtime.
The TurboVenturi Scrubber: The TurboVenturi Scrubber is the standard for applications with high particulate loading. Its design ensures constant pressure drop, which equates to constant removal efficiency. Different styles of TurboVenturi are available to suit a wide range of applications, including hot or corrosive gases and abrasive or sticky dust.
The Turbotak Scrubber: TurboSonic's proprietary spray nozzle systems are used to finely atomize scrubbing liquids. These droplets are the vehicle for removal of solid, liquid and gaseous contaminants from process exhaust gas streams. Energy consumption is minimized by the use of atomized sprays, resulting in significantly reduced operating costs.
Gas Absorbers: TurboSonic offers a range of gas absorption systems including open spray towers, tray towers, packed towers and Turbotak atomizing spray scrubbers to control SO2, HCl, ClO2 , Cl2 and other gas emissions. For gas streams containing acid gas and particulate, the Turbotak Wet Scrubber, which uses Turbotak Atomizing Nozzles, controls these contaminants in one system with minimal pressure drop, lower water usage and less maintenance than other systems.
TurboSorb Semi-Dry Scrubbing: Treat industrial process gas streams to remove acid gases such as SO2, SO3, HCl, HF, and ammonia compounds. By spraying calcium, potassium and sodium-based slurries or solutions, TurboSorb can achieve higher removal efficiencies than other systems. And, unlike "wet" systems, with TurboSorb, all water is evaporated so there is no liquid waste stream generated. The TurboSorb Semi-Dry Scrubber is especially effective in industries such as hazardous waste and municipal solid waste (MSW) incineration, power generation, cement, and metals.
SoniCool Evaporative Gas Cooling: Through the use of Turbotak and SoniCore Atomizing Nozzles, SoniCool accurately controls the temperature and humidity of high-temperature process gas streams from cement kilns, waste incinerators, non-ferrous smelters, and steel mill electric arc furnaces (EAF) or basic oxygen furnaces (BOF). The result is gas temperatures that do not damage equipment and ductwork, smaller gas volumes, increased capacity, and improved efficiency of downstream air pollution control equipment. Over 450 installations worldwide.
SonicBURN Waste Fuel Consumption: Introduce any liquid waste fuel into combustion chambers for better combustion and increased production. SonicBURN atomizes viscous, dirty, or mixed fuels into extremely fine droplets. The durability of the two-phase Turbotak Atomizing Nozzles allows longer production runs, less maintenance, and reduced costs compared to other designs.
Turbotak and SoniCore Atomizing Nozzles: Used in hundreds of industrial applications, Turbotak and SoniCore Atomizing Nozzles atomize liquids to fine droplets. The air-atomized nozzles feature a patented, two-phase design for superior control over droplet size and distribution. The combination of the small droplets, the distribution pattern and rugged construction make them ideal for a wide variety of applications, including evaporative gas cooling, spray drying, wet and semi-dry scrubbing, performance enhancement of air pollution control systems, dust suppression, as well as combustion and incineration.
Pilot Plants: Transportable pilot plants are available to demonstrate system performance and collect data for site specific design. Research and development facilities at the head office are involved in developing new products and improvements in system design.
Geographic Marketing Activities: TurboSonic is establishing representatives worldwide to continue its focus on international markets. The company is currently represented in the U.S., Mexico, Chile, Australia, India, South Africa, Argentina and China.
Full profile
Full profile
Contact information
Company description
541710 - Research and Development in the Physical, Engineering and Life Sciences
Product / Service / Licensing
Advantages of the Turbotak Scrubber: performance superior to conventional control equipment; cost-effective solutions for a wide variety of air pollution problems; controls particulate, acid gases, fumes, mists, odours and combinations of these; payback in terms of energy savings, reduced chemical and low water consumption and smaller water treatment equipment; recovery and recirculation systems easily incorporated into design; low sensitivity to gas flow rates, from 0-100% of design capacity; extremely low pressure drop across system; easily retrofitted to existing plant layouts; system can be upgraded to maintain compliance with increasingly stringent regulations; experience has shown operator and maintenance requirements to be minimal;
E199-Other Environmental Services
Market profile
Industry sector market interests:
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Food and Beverage Manufacturing
- Furniture and Wood Product
- Pulp and Paper
- Textile and Clothing
Geographic markets:
Export experience:
- Algeria
- Argentina
- Australia
- Belgium
- Brazil
- Chile
- Denmark
- Finland
- France
- Germany
- Iceland
- Indonesia
- Ireland
- Italy
- Japan
- Luxembourg
- Mexico
- Netherlands
- Norway
- Poland
- Russian Federation
- Sweden
- Taiwan
- United Kingdom
- United States
- Alabama
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- Florida
- Georgia
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Pennsylvania
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Virginia
- West Virginia
Actively pursuing:
- China
- India
- Israel
- South Africa
- Wisconsin
- Wyoming
Sector information
Classification codes
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
541710 - Research and Development in the Physical, Engineering and Life Sciences
Products, services and licensing
Product / Service / Licensing
Advantages of the Turbotak Scrubber: performance superior to conventional control equipment; cost-effective solutions for a wide variety of air pollution problems; controls particulate, acid gases, fumes, mists, odours and combinations of these; payback in terms of energy savings, reduced chemical and low water consumption and smaller water treatment equipment; recovery and recirculation systems easily incorporated into design; low sensitivity to gas flow rates, from 0-100% of design capacity; extremely low pressure drop across system; easily retrofitted to existing plant layouts; system can be upgraded to maintain compliance with increasingly stringent regulations; experience has shown operator and maintenance requirements to be minimal;
E199-Other Environmental Services
Market
Market profile
Industry sector market interests:
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Food and Beverage Manufacturing
- Furniture and Wood Product
- Pulp and Paper
- Textile and Clothing
Geographic markets:
Export experience:
- Algeria
- Argentina
- Australia
- Belgium
- Brazil
- Chile
- Denmark
- Finland
- France
- Germany
- Iceland
- Indonesia
- Ireland
- Italy
- Japan
- Luxembourg
- Mexico
- Netherlands
- Norway
- Poland
- Russian Federation
- Sweden
- Taiwan
- United Kingdom
- United States
- Alabama
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- Florida
- Georgia
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Pennsylvania
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Virginia
- West Virginia
Actively pursuing:
- China
- India
- Israel
- South Africa
- Wisconsin
- Wyoming


okay class its time for a pop quiz
if 7x+5=19, what is the value of 17x?
2incorrect
don't forget the rules of algebra
correct
what is mitochondria?
the powerhouse of the celldon't forget the rules of biology
shut up
correct. you may now continue to the beginning.


ColReorder adds the ability for the end user to click and drag column headers to reorder a table as they see fit, to DataTables. Key features include:
To use ColReorder, first download DataTables ( http://datatables.net/download ) and place the unzipped ColReorder package into a extensions
directory in the DataTables package. This will allow the pages in the examples to operate correctly. To see the examples running, open the examples
directory in your web-browser.
ColReorder is initialised using the $.fn.dataTable.ColReorder
constructor. For example:
$(document).ready( function () {
$('#example').DataTable();
new $.fn.dataTable.ColReorder( table );
} );
If you fancy getting involved with the development of ColReorder and help make it better, please refer to its GitHub repo: https://github.com/DataTables/ColReorder


@import controllers.ui.routes @import views.html.EmailMain @(queryParam: String)(implicit rh: RequestHeader) @EmailMain() {
Thank you for registering an account
Please click below to verify your email address


From:
To:
Pax:
Date:
Round Trip?
Return Date:
Email:
First Name:
Last Name:
Options:
Debug
Sent To API:
Response from API:


Individual
Profile
More Info
COMPAS Algorithm
Score
7
High Risk
Our Algorithm
Score
6
Medium Risk
Why our score?
Learn more about our numbers
(Preview of Fact Sheet)
Go back to Case ID screen