This post is a continuation of a series of posts about WebGL. The first started with fundamentals. and the previous was about animation.
How do we apply textures in WebGL? You could probably derive how by reading the articles on image processing but it will probably be easier to understand if we go over it in more detail.
The first thing we need to do is adjust our shaders to use textures. Here's the changes to the vertex shader. We need to pass in texture coordinates. In this case we just pass them straight through to the fragment shader.
attribute vec4 a_position;
*attribute vec2 a_texcoord;
uniform mat4 u_matrix;
*varying vec2 v_texcoord;
void main() {
// Multiply the position by the matrix.
gl_Position = u_matrix * a_position;
* // Pass the texcoord to the fragment shader.
* v_texcoord = a_texcoord;
}
In the fragment shader we declare a uniform sampler2D which lets us reference
a texture. We use the texture coordinates passed from the vertex shader
and we call texture2D
to look up a color from that texture.
precision mediump float;
// Passed in from the vertex shader.
*varying vec2 v_texcoord;
*// The texture.
*uniform sampler2D u_texture;
void main() {
* gl_FragColor = texture2D(u_texture, v_texcoord);
}
We need to setup the texture coordinates
// look up where the vertex data needs to go.
var positionLocation = gl.getAttribLocation(program, "a_position");
*var texcoordLocation = gl.getAttribLocation(program, "a_texcoords");
...
*// Create a buffer for texcoords.
var buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
*gl.enableVertexAttribArray(texcoordLocation);
*
*// We'll supply texcoords as floats.
*gl.vertexAttribPointer(texcoordLocation, 2, gl.FLOAT, false, 0, 0);
*
*// Set Texcoords.
*setTexcoords(gl);
And you can see the coordinates we're using which is mapping the entire texture to each quad on our 'F'.
*// Fill the buffer with texture coordinates for the F.
*function setTexcoords(gl) {
* gl.bufferData(
* gl.ARRAY_BUFFER,
* new Float32Array([
* // left column front
* 0, 0,
* 0, 1,
* 1, 0,
* 0, 1,
* 1, 1,
* 1, 0,
*
* // top rung front
* 0, 0,
* 0, 1,
* 1, 0,
* 0, 1,
* 1, 1,
* 1, 0,
* ...
We also need a texture. We could make one from scratch but in this case let's load an image since that's probably the most common way.
Here's the image we're going to use
What an exciting image! Actually an image with an 'F' on it has a clear direction so it's easy to tell if it's turned or flipped etc when we use it as a texture.
The thing about loading an image is it happens asynchronously. We request the image to be loaded but it takes a while for the browser to download it. There are generally 2 solutions to this. We could make the code wait until the texture has downloaded and only then start drawing. The other solution is to make up some texture to use until the image is downloaded. That way we can start rendering immediate. Then, once the image has been downloaded we copy the image to the texture. We'll use that method below.
*// Create a texture.
*var texture = gl.createTexture();
*gl.bindTexture(gl.TEXTURE_2D, texture);
*
*// Fill the texture with a 1x1 blue pixel.
*gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE,
* new Uint8Array([0, 0, 255, 255]));
*
*// Asynchronously load an image
*var image = new Image();
*image.src = "resources/f-texture.png";
*image.addEventLisenter('load', function() {
* // Now that the image has loaded make copy it to the texture.
* gl.bindTexture(gl.TEXTURE_2D, texture);
* gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA,gl.UNSIGNED_BYTE, image);
* gl.generateMips(gl.TEXTURE_2D);
*});
And here it is
What if we wanted to just use a part of the texture across the front of the 'F'? Textures are referenced with "texture coordinates" and texure coordinates go from 0.0 to 1.0 from left to right across the texture and 0.0 to 1.0 from bottom to top up the texture.
So if we match up our vertices to the texture we can figure out what texture coordinates to use.
Here's the texture coordinates for the front.
// left column front
0.22, 0.19,
0.22, 0.79,
0.34, 0.19,
0.22, 0.79,
0.34, 0.79,
0.34, 0.19,
// top rung front
0.34, 0.19,
0.34, 0.31,
0.62, 0.19,
0.34, 0.31,
0.62, 0.31,
0.62, 0.19,
// middle rung front
0.34, 0.43,
0.34, 0.55,
0.49, 0.43,
0.34, 0.55,
0.49, 0.55,
0.49, 0.43,
And here it is.
Not a very exciting display but hopefully it demonstrates how to use texture coordinates. If you're making geometry in code (cubes, spheres, etc) it's usually pretty easy to compute whatever texture coordinates you want. On the other hand if you're getting 3d models from 3d modeling software like Blender, Maya, 3D Studio Max, then your artists (or you) will adjust texture coordinates in those packages.
So what happens if we use texture coordinates outside the 0.0 to 1.0 range. By default WebGL repeats the texture. 0.0 to 1.0 is one 'copy' of the texture. 1.0 to 2.0 is another copy. even -4.0 to -3.0 is yet another copy. Let's display a plane using these texture coordinates.
-3, -1,
2, -1,
-3, 4,
-3, 4,
2, -1,
2, 4,
and here it is
You can tell WebGL to not repeat the texture in a certain direction by using CLAMP_TO_EDGE
. For example
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
Click the buttons in the sample above to see the difference.
You might have noticed a call to gl.generateMipmap
back when we loaded the texture. What is that for?
Imagine we had this 16x16 pixel texture.
Now imagine we tried to draw that texture on a polygon 2x2 pixels big on the screen. What colors should we make those 4 pixels? There are 256 pixels to choose from. In Photoshop if you scaled a 16x16 pixel image to 2x2 it would average the 8x8 pixels in each corner to make of the 4 pixels in a 2x2 image. Unfortunately reading 64 pixels and averaging them all together would be way too slow for a GPU.  To do what photoshop does for each of the 4 pixels in the 2x2 result it would have to average 1024x1024 pixel or 1 million pixels times 4. That's way way to much to do and still be fast.
So what the GPU does it it uses a mipmap. A mipmap is a collection of progressively smaller images, each one 1/4th size the previous one. The mipmap for the 16x16 texture above would look something like this.
Generally each smaller level is just a bilinear interpolation of the previous level and that's
what gl.generateMipmap
does. It looks at the biggest level and generates all the smaller levels for you.
Of course you can supply the smaller levels yourself if you want.
Now if you try to draw that 16x16 pixel texture only 2x2 pixels on the screen WebGL can select the mip that's 2x2 which has already been averaged from the previous mips.
You can choose what WebGL does by setting the texture filtering for each texture. There are 6 modes
NEAREST
= choose 1 pixel from the biggest mipLINEAR
= choose 4 pixels from the biggest mip and blend themNEAREST_MIPMAP_NEAREST
= choose the best mip, then pick one pixel from that mipLINEAR_MIPMAP_NEAREST
= choose the best mip, then blend 4 pixels from that mipNEAREST_MIPMAP_LINEAR
= choose the best 2 mips, choose 1 pixel from each, blend themLINEAR_MIPMAP_LINEAR
= choose the best 2 mips. choose 4 pixels from each, blend themYou can see the importance of mips in these 2 examples. The first one shows that if you use NEAREST
or LINEAR
and only pick from the largest image then you'll get a lot of flickering because as things
move, for each pixel it draws it has to pick a single pixel from the largest image. That changes depending
on the size and position and so sometimes it will pick one pixel, other times a different one and so it
flickers.
Notice how much the ones on the left and middle flicker where as the ones on the right flicker less.
The ones on the right also have blended colors since they are using the mips. The smaller you draw the texture the further apart WebGL is
going to pick pixels. That's why for example the bottom middle one, even though it's using LINEAR
and blending
4 pixels it flickers because those 4 pixels are from different corners of the 16x16 image depending on which
4 are picked you'll get a different color. The one on the bottom right though stays a consistent color
because it's using the 2nd to the smallest mip.
The second example shows polygons that go deep into the screen.
The 6 beams going into the screen are using the 6 filtering modes listed above. The top left beam is using NEAREST
and you can see it's clearly very blocky. The top middle is using LINEAR
and it's not much better.
The top right is using NEAREST_MIPMAP_NEAREST
. Click on the image to switch to a texture where every mip is
a different color and you'll easily see where it chooses to use a specific mip. The bottom left is using
LINEAR_MIPMAP_NEAREST
meaning it picks the best mip and then blends 4 pixels within that mip. You can still see
a clear area where it switches from one mip to the next mip. The bottom middle is using NEAREST_MIPMAP_LINEAR
meaning picking the best 2 mips, picking one pixel from each and blending
them. If you look close you can see how it's still blocky, especially in the horizontal direction.
The bottom right is using LINEAR_MIPMAP_LINEAR
which is picking the best 2 mips, picking 4 pixels from each,
and blends all 8 pixels.
You might be thinking why would you ever pick anything other than LINEAR_MIPMAP_LINEAR
which is arguably
the best one. There are many reasons. One is that LINEAR_MIPMAP_LINEAR
is the slowest. Reading 8 pixels
is slower than reading 1 pixel. On modern GPU hardware it's probably not an issue if you are only using 1
texture at a time but modern games might use 2 to 4 textures at once. 4 textures 8 pixels per texture =
needing to read 32 pixels for every pixel drawn. That's going to be slow. Another reason is if you're trying
to achieve a certain effect. For example if you want something to have that pixelated retro* look maybe you
want to use NEAREST
. Mips also take memory. In fact they take 33% more memory. That can be a lot of memory
especially for a very large texture like you might use on a title screen of a game. If you are never going
to draw something smaller than the largest mip why waste memory for those mips. Instead just use NEAREST
or LINEAR
as they only ever use the first mip.
To set filtering you call gl.texParameter
like this
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
TEXTURE_MIN_FILTER
is the setting used when the size you are drawing is smaller than the largest mip.
TEXTURE_MAG_FILTER
is the setting used when the size you are drawing is larger that the largest mip. For
TEXTURE_MAG_FILTER
only NEAREST
and LINEAR
are valid settings.
Let's say we wanted to apply this texture.
Here it is.
Why doesn't the keyboard texture show up? That's beacuse WebGL has a kind of severe restriction on textures that
are not a power of 2 in both dimensions. Powers of 2 are 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, etc.
The 'F' texture was 256x256. 256 is a power of 2. The keyboard texture is 320x240. Neither of those are a power
of 2 so trying to display the texture fails. In the shader when texture2D
is called and when the texture
referenced is not setup correctly WebGL will use color (0, 0, 0, 1) which is black. If you open up the JavaScript console
or Web Console, depending on the browser you might see errors pointing out the problem like this
WebGL: INVALID_OPERATION: generateMipmap: level 0 not power of 2
or not all the same size
WebGL: drawArrays: texture bound to texture unit 0 is not renderable.
It maybe non-power-of-2 and have incompatible texture filtering or
is not 'texture complete'.
To fix it we need to set the wrap mode to CLAMP_TO_EDGE
and turn off mip mapping by setting filtering
to LINEAR
or NEAREST
.
Let's update our image loading code to handle this. First we need a function that will tell us if a value is a power of 2.
function isPowerOf2(value) {
return (value & (value - 1)) == 0;
}
I'm not going to go into the binary math on why this works. Since it does work though, we can use it as follows.
// Asynchronously load an image
var image = new Image();
image.src = "resources/keyboard.jpg";
image.addEventListener('load', function() {
// Now that the image has loaded make copy it to the texture.
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA,gl.UNSIGNED_BYTE, image);
* // Check if the image is a power of 2 in both dimensions.
* if (isPowerOf2(image.width) && isPowerOf2(image.height)) {
* // Yes, it's a power of 2. Generate mips.
gl.generateMipmap(gl.TEXTURE_2D);
* } else {
* // No, it's not a power of 2. Turn of mips and set wrapping to clamp to edge
* gl.texParameteri(gl.TETXURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
* gl.texParameteri(gl.TETXURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
* gl.texParameteri(gl.TETXURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
* }
}
And here's that
A common question is "Who do I apply a different image to each face of a cube?". For example let's say we had these 6 images.
3 answers come to mind
1) make a complicated shader that references 6 textures and pass in some extra per vertex info into the vertex shader that gets passed to the fragment shader to decide which texture to use. DON'T DO THIS! A little thought would make it clear that you'd end up having to write tons of different shaders if you wanted to do the same thing for different shapes with more sides etc.
2) draw 6 planes instead of a cube. This is a common solution. It's not bad but it also only really works for small shapes like a cube. If you had a sphere with 1000 quads and you wanted to put a different texture on each quad you'd have to draw 1000 planes and that would be slow.
3) The, dare I say, best solution is to put all of the images in 1 texture and use texture coordinates to map a different part of the texture to each face of the cube. This is the technique that pretty much all high performance apps (read games) use. So for example we'd put all the images in one texture possibly like this
and then map use a different set of texture coordinates for each face of the cube.
// select the bottom left image
0 , 0 ,
0 , 0.5,
0.25, 0 ,
0 , 0.5,
0.25, 0.5,
0.25, 0 ,
// select the bottom middle image
0.25, 0 ,
0.5 , 0 ,
0.25, 0.5,
0.25, 0.5,
0.5 , 0 ,
0.5 , 0.5,
// select to bottom right image
0.5 , 0 ,
0.5 , 0.5,
0.75, 0 ,
0.5 , 0.5,
0.75, 0.5,
0.75, 0 ,
// select the top left image
0 , 0.5,
0.25, 0.5,
0 , 1 ,
0 , 1 ,
0.25, 0.5,
0.25, 1 ,
// select the top middle image
0.25, 0.5,
0.25, 1 ,
0.5 , 0.5,
0.25, 1 ,
0.5 , 1 ,
0.5 , 0.5,
// select the top right image
0.5 , 0.5,
0.75, 0.5,
0.5 , 1 ,
0.5 , 1 ,
0.75, 0.5,
0.75, 1 ,
And we get
This style of applying multiple images using 1 texture is often called a texture atlas. It's best because there's just 1 texture to load, the shader stays simple as it only has to reference 1 texture, and it only requires 1 draw call to draw the shape instead of 1 draw call per texture as it might if we split it into planes.
Next up lets start simplifying with less code more fun.


| Home | A.A.D.A.M. | NLP | Machine Learning | Data Visualization | Z.O.E. | S.I.M.O.N. | C.A.M. | ChatBots | HTML |
This is a continuation of our project from last year in which we began to look into OpenCv and facial
recognition. We wanted to create a program that would run continuously in the background and immediately
turn off the computer as soon as it recognized an unknown face, however, we only got through the very
basic steps of face recognition.
Moving forward, we plan to finish our project and have our script
constantly checking to see if the person looking at the computer is the owner or not. If the user is
unidentified, the computer will immediately turn off.
Anna and I began looking into ways to allow python to shut down a Mac - or at least log out the user. This proved to be harder using Apple's OS as opposed to Windows. After a lot of researching we found two methods: one immediately shuts down the mac but only works through the terminal, and the other works through PyCharm and initiates a warning before actually shutting down the Mac. We would like to be able to connect the code we have written in PyCharm to the main terminal which we hope will immediately shut the computer down when prompted.
When trying to create an 'if statement' to turn the computer off, we noticed that the if statement wouldn't run until after the main function had been completed (the facial recognition was ended). To solve this issue we began working with threading to try and force both functions (face recognition and condition) to work simultaneously. When that didn't work we tried a simple "while True" loop which worked successfully.
This week we attempted to connect our work in PyCharm to the line of code that only worked in the terminal. We attempted to return the terminal code in our PyCharm script and then run the file within the terminal, however, this was unsuccessful. As we were wrapping up we had an idea to use the 'pyautogui' library to control the computers mouse which will automatically click the confirm button when the box pops up before the computer shuts down.
Today we used 'pyautogui' to find the position of the "shut down" button and click it. Our final outlying issue was that the program was still ineffective until somebody pressed quit. We are now in a very good position where the program runs in the background without showing the camera window in the foreground.


| 1 | package fr.sii.ogham.assertion.hamcrest; | |
| 2 | ||
| 3 | import org.custommonkey.xmlunit.DetailedDiff; | |
| 4 | import org.custommonkey.xmlunit.Difference; | |
| 5 | import org.hamcrest.BaseMatcher; | |
| 6 | import org.hamcrest.Description; | |
| 7 | import org.junit.ComparisonFailure; | |
| 8 | import org.slf4j.Logger; | |
| 9 | import org.slf4j.LoggerFactory; | |
| 10 | import org.w3c.dom.Document; | |
| 11 | ||
| 12 | import fr.sii.ogham.assertion.OghamAssertions; | |
| 13 | import fr.sii.ogham.helper.html.HtmlUtils; | |
| 14 | ||
| 15 | /** | |
| 16 | * Check if the HTML is identical to the expected. The HTML strings are parsed | |
| 17 | * into {@link Document}s. Two documents are considered to be "identical" if | |
| 18 | * they contain the same elements and attributes in the same order. | |
| 19 | * | |
| 20 | * <p> | |
| 21 | * This matcher is a {@link ExpectedValueProvider} for knowing the original expected | |
| 22 | * value. Thanks to this information, {@link OghamAssertions} will generate a | |
| 23 | * {@link ComparisonFailure} with the expected string and actual string in order | |
| 24 | * to be able to visualize the differences on sources directly in the IDE. | |
| 25 | * | |
| 26 | * <p> | |
| 27 | * See {@link HtmlUtils} for more information about "similar" HTML. | |
| 28 | * | |
| 29 | * @author Aurélien Baudet | |
| 30 | * | |
| 31 | */ | |
| 32 |
1
1. getExpectedValue : All methods instructions replaced by: return null; → NO_COVERAGE |
public class IdenticalHtmlMatcher extends BaseMatcher<String> implements ExpectedValueProvider<String>, ComparisonAwareMatcher { |
| 33 | private static final Logger LOG = LoggerFactory.getLogger(IdenticalHtmlMatcher.class); | |
| 34 | | |
| 35 | private final String expected; | |
| 36 | private DetailedDiff diff; | |
| 37 | ||
| 38 | public IdenticalHtmlMatcher(String expected) { | |
| 39 | super(); | |
| 40 | this.expected = expected; | |
| 41 | } | |
| 42 | ||
| 43 | @Override | |
| 44 | public boolean matches(Object item) { | |
| 45 |
2
1. matches : All method body replaced by: return false → NO_COVERAGE 2. matches : All method body replaced by: return true → NO_COVERAGE |
diff = HtmlUtils.compare(expected, (String) item); |
| 46 | boolean identical = diff.identical(); | |
| 47 | if(!identical) { | |
| 48 | LOG.warn(comparisonMessage()); // NOSONAR | |
| 49 | } | |
| 50 | return identical; | |
| 51 | } | |
| 52 | ||
| 53 | @Override | |
| 54 | public void describeTo(Description description) { | |
| 55 |
1
1. describeTo : All method instructions removed → NO_COVERAGE |
description.appendValue(expected); |
| 56 | } | |
| 57 | ||
| 58 | @Override | |
| 59 | public String getExpectedValue() { | |
| 60 |
3
1. getExpectedValue : All method body replaced by: return "" → NO_COVERAGE 2. getExpectedValue : All method body replaced by: return "A" → NO_COVERAGE 3. getExpectedValue : All methods instructions replaced by: return null; → NO_COVERAGE |
return expected; |
| 61 | } | |
| 62 | ||
| 63 | @Override | |
| 64 | public String comparisonMessage() { | |
| 65 |
3
1. comparisonMessage : All method body replaced by: return "" → NO_COVERAGE 2. comparisonMessage : All method body replaced by: return "A" → NO_COVERAGE 3. comparisonMessage : All methods instructions replaced by: return null; → NO_COVERAGE |
StringBuilder sb = new StringBuilder(); |
| 66 | sb.append("The two HTML documents are not identical.\n"); | |
| 67 | sb.append("Here are the differences found:\n"); | |
| 68 | for(Object o : diff.getAllDifferences()) { | |
| 69 | Difference d = (Difference) o; | |
| 70 | sb.append(" - ").append(d.toString()).append("\n"); | |
| 71 | } | |
| 72 | sb.append("\n"); | |
| 73 | return sb.toString(); | |
| 74 | } | |
| 75 | ||
| 76 | } | |
Mutations | ||
| 32 |
1.1 |
|
| 45 |
1.1 2.2 |
|
| 55 |
1.1 |
|
| 60 |
1.1 2.2 3.3 |
|
| 65 |
1.1 2.2 3.3 |


Piano Journey
An attemp to keep track of my little steps in learning to play the piano.
Timeline
Each musical composition appearing below ( in total)
has a date representing when I started (more or less) learning it.
Progress
The stars represent how good I can or could play a piece
- 5 Stars: I played it at a recital
- 4 Stars: I can play it quite fluently
- 3 Stars: I can play it but not fluently
- 2 Stars: I can play more than half but not fluently
- 1 Star: I can play less than half and not fluently
This is freely hosted with
Github Pages.
The source is available on GitHub at
matteoromiti/piano-journey.
Crafted by Brandon Amos.
The place you see in the image above is the
Musikverein in Vienna.


Overview
This document contains the specifications for the Client software. The Client software is targeted to run on small IoT devices like the Raspberry Pi, and also desktop computers running a Ubuntu Linux VM in VirtualBox. In this way, the Client software can turn any computer capable of running Docker into a VPS. That device can then be rented out on the P2P VPS marketplace.
Client software is defined by the following high-level features:
- Governor
- Docker container with SSH
- Persistent Storage
- Encryption
- Deployment Packages (pre-configured scripts for setting up apps like webservers, file sharing, etc.)
- Testing
The sections below detail the specifications for each of these features:
Table of Contents #
Governor-(p2p-vps-client.js) #
The primary purpose of the governor software is to manage the Docker container and communicate with the P2P VPS server. This application runs on the host operating system, outside the Docker container. It plays the following roles:
- It reads the
device-config.json
file and registers the Client device with the P2P VPS server. - It builds the Docker container with information returned by the server after registration.
- It launches the Docker container after being built.
- It sends a heartbeat signal to the P2P VPS server every 10 minutes. The server responds with an expiration date.
- When the expiration date is reached, the governor software stops the Docker container and wipes the flash drive. It then reregisters itself with the P2P VPS server.
This workflow diagram illustrates how transactions are initiated and managed:
Docker-Container #
A Docker container is generated by the p2p-vps-client.js
governor application.
The Owner initiates the creation of the Docker container by registering the device
in the Device Management Dashboard. They are given a GUID, which they
then copy to the file device-config.json
. The application p2p-vps-client.js
reads this file and makes a REST API call to the server to register itself.
After a successful registration call, a reverse SSH tunnel to the Docker container is established. The server returns a computer generated username, password, and port, which is used to access the Docker container command line interface (CLI) over an SSH terminal (like putty). Th username, password, and port are passed to the Renter in the Fulfillment phase of the rental contract purchase, in the OpenBazaar application.
When the contract is terminated, the Docker container is destroyed and all persistent data wiped. A new Docker container with new login credentials is generated for the next renter, and a new listing is added to the P2P VPS OpenBazaar store.
Below is an illustration of the Client software stack:
The p2p-vps-client.js
governor application communicates with the Server and controlls the Docker container.client-connect.js
runs inside the Docker container and establishes the reverse SSH connection with the server.Renters are sandboxed inside the Docker container. They still have access to the devices' computational power and resources, but their control of the device is limited. The environment is easy to destroy and recreate.
Because there is a node application running both inside and outside the Docker container, and because they can both communicate with the server, secure exchanges can take place. This means things like encryption keys and passwords can be passed without ever being written to disk. This allows various forms of on-the-fly encryption, which is important as anyone with access to the physical device could access the inside of the Docker container.
Persistent-Storage #
Persistent storage can take many forms, but a USB flash drive will be encouraged, as SD cards have shown reliability issues. Most IoT devices, like the Raspberry Pi can boot off an SD card. Extra storage can easily be accommodated through USB flash drives or even USB external hard drives. 64GB Flash drives will be a (rough) standard due to their availability and low prices.
The flash-storage
client has been designed to automatically find, format, and mount
persistent storage.
Encryption
Encryption managed by the Device Owner has been explored, but found ineffective. It will be best to put the responsibility and encryption keys in the hands of the Renter. Owners will be under no obligation to provide encrypted drives. However, instructions for setting up LUKS encryption inside the renters Docker container will be provided by this project.
- This is an excellent guide that can be adapted to encrypt persistent storage in a Docker container.
Deployment-Packages #
A collection of scripts will be made available to renters. These are preconfigured shell scripts or some other type of package manager that allows them to quickly deploy common web services like NextCloud, a blog, a webserver, a single page application development environment, a TOR node, an OpenBazaar server, VPN software, etc. Easy scripts to deploy many of these use cases.
This project will rely on user contributions or 'corporate sponsorships' for this section. If interested, please see our Contributing README or contact us.
Testing #
Unit testing is initially planning to use Mocha, but we could use any platform at this stage. We could really use help with getting a solid unit testing library in place for Client software. Contact us if you'd like to help with this effort.


|
SideCar
|
Public Types | |
| enum | Type { kRectangular, kTriangular, kHanning, kHamming, kBlackman, kNumTypes } |
Public Member Functions | |
| WeightWindow (FFTSettings *fftSettings) | |
| void | setSize (int size) |
| size_t | getSize () const |
| double | operator[] (size_t index) const |
Static Public Member Functions | |
| static Logger::Log & | Log () |
| Log device to use for WeightWindow log messages. More... | |
| static const char * | GetName (int index) |
Definition at line 16 of file WeightWindow.h.
|
static |
Log device to use for WeightWindow log messages.
Definition at line 20 of file WeightWindow.cc.
References Logger::Log::Find(), and LOGINFO.


- Observable - Class in ca.utoronto.utm.util
-
Implement a modification of the Observer/Observable
Design Pattern.
- Observable() - Constructor for class ca.utoronto.utm.util.Observable
-
- Observer - Interface in ca.utoronto.utm.util
-
Implement a modification of the Observer/Observable
Design Pattern.
- Othello - Class in ca.utoronto.utm.othello.model
-
Capture an Othello game.
- Othello() - Constructor for class ca.utoronto.utm.othello.model.Othello
-
- othello - Variable in class ca.utoronto.utm.othello.model.OthelloController
-
- othello - Variable in class ca.utoronto.utm.othello.model.OthelloModel
-
- OthelloApplication - Class in ca.utoronto.utm.othello.viewcontroller
-
- OthelloApplication() - Constructor for class ca.utoronto.utm.othello.viewcontroller.OthelloApplication
-
- OthelloBoard - Class in ca.utoronto.utm.othello.model
-
Keep track of all of the tokens on the board.
- OthelloBoard(int) - Constructor for class ca.utoronto.utm.othello.model.OthelloBoard
-
- OthelloController - Class in ca.utoronto.utm.othello.model
-
- OthelloController() - Constructor for class ca.utoronto.utm.othello.model.OthelloController
-
Constructs a new OthelloController with a new Othello game, ready to play
with a user at the console.
- OthelloControllerBetterVSHuman - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P2 to play
the computer P1.
- OthelloControllerBetterVSHuman() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerBetterVSHuman
-
Constructs a new OthelloController with a new Othello game and to
appropriately initialize the players of the game.
- OthelloControllerGreedyVSHuman - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P2 to play
the computer P1.
- OthelloControllerGreedyVSHuman() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerGreedyVSHuman
-
Constructs a new OthelloController with a new Othello game and to
appropriately initialize the players of the game.
- OthelloControllerHumanVSBetter - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P1 to play
the computer P2.
- OthelloControllerHumanVSBetter() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerHumanVSBetter
-
Constructs a new OthelloController with a new Othello game and to
appropriately initialize the players of the game.
- OthelloControllerHumanVSGreedy - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P1 to play
the computer P2.
- OthelloControllerHumanVSGreedy() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerHumanVSGreedy
-
- OthelloControllerHumanVSHuman - Class in ca.utoronto.utm.othello.model
-
Run the main from this class to play two humans against eachother.
- OthelloControllerHumanVSHuman() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerHumanVSHuman
-
Constructs a new OthelloController with a new Othello game, ready to play
with two users at the console.
- OthelloControllerHumanVSRandom - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P1 to play
the computer P2.
- OthelloControllerHumanVSRandom() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerHumanVSRandom
-
Constructs a new OthelloController with a new Othello game.
- OthelloControllerRandomVSGreedy - Class in ca.utoronto.utm.othello.model
-
The goal here is to print out the probability that Random wins and Greedy
wins as a result of playing 10000 games against each other with P1=Random and
P2=Greedy.
- OthelloControllerRandomVSGreedy() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerRandomVSGreedy
-
- OthelloControllerRandomVSHuman - Class in ca.utoronto.utm.othello.model
-
This controller uses the Model classes to allow the Human player P2 to play
the computer P1.
- OthelloControllerRandomVSHuman() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerRandomVSHuman
-
Constructs a new OthelloController with a new Othello game and to
appropriately initialize the players of the game.
- OthelloControllerRandomVSRandom - Class in ca.utoronto.utm.othello.model
-
Determine whether the first player or second player has the advantage when
both are playing a Random Strategy.
- OthelloControllerRandomVSRandom() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerRandomVSRandom
-
- OthelloControllerVerbose - Class in ca.utoronto.utm.othello.model
-
- OthelloControllerVerbose() - Constructor for class ca.utoronto.utm.othello.model.OthelloControllerVerbose
-
- OthelloModel - Class in ca.utoronto.utm.othello.model
-
- OthelloModel() - Constructor for class ca.utoronto.utm.othello.model.OthelloModel
-
- otherPlayer(char) - Static method in class ca.utoronto.utm.othello.model.OthelloBoard
-


A very simple quiz engine relying on honest self-assessment. You ain't need no username, no password, or no credit card to open an account. Just focus on your quiz.
Start Quiz »No credit card, no signup, no free trial. Everything is free. If you need more quiz, just contact us.
Quiz materials are encrypted using Gibberish AES algorithm, courtesy of vincentcheung.ca. We understand that sometimes you need copyright protection on your material. Ahem.
Quiz material are downloaded, processed, and stored in your local browser and no data is sent back to our server. No server-side technology to worry about.
Sometimes you need to put your phone down and live your life. Your progress is automatically saved using HTML5 Storage API. Even if you restart your phone, you can still resume your progress.


public AreaSelection<Location> extends PersistenceAble
Created by Shynixn 2018.
| Modifier and Type | Method and Description |
|---|---|
Location |
getCenter()
AreaSelection.getCenter of the arena |
StorageLocation |
getLowerCorner()
AreaSelection.getLowerCorner of the selected square arena. |
int |
getOffsetX()
Length of the x axe.
|
int |
getOffsetY()
Length of the y axe.
|
int |
getOffsetZ()
Length of the z axe.
|
StorageLocation |
getUpperCorner()
AreaSelection.getUpperCorner of the selected square arena. |
boolean |
isLocationInSelection(Location location)
Returns if the given location is inside of this area selection.
|
void |
setCorners(Location corner1,
Location corner2)
Sets the corners between corner1 and corner2. Automatically sets lowerCorner and upperCorner.
|
getId
StorageLocation getUpperCorner()
AreaSelection.getUpperCorner
of the selected square arena.
AreaSelection.getUpperCorner
StorageLocation getLowerCorner()
AreaSelection.getLowerCorner
of the selected square arena.
AreaSelection.getLowerCorner
Location getCenter()
AreaSelection.getCenter
of the arena
AreaSelection.getCenter
int getOffsetX()
Length of the x axe.
int getOffsetY()
Length of the y axe.
int getOffsetZ()
Length of the z axe.
void setCorners(Location corner1, Location corner2)
Sets the corners between corner1 and corner2. Automatically sets lowerCorner and upperCorner.
boolean isLocationInSelection(Location location)
Returns if the given location is inside of this area selection.


{% extends "site_base.html" %} {% load i18n %} {% block title %}{% trans %}Password reset{% endtrans %}{% endblock %} {% block body %} {% if validlink %}
{% trans %}Please enter your new password twice so we can verify you typed it in correctly.{% endtrans %}
{% else %}{% trans %}The password reset link was invalid, possibly because it has already been used. Please request a new password reset.{% endtrans %}
{% endif %} {% endblock %}


vignettes/initial_analysis.Rmd
initial_analysis.Rmd
rrpp <- gsheet::gsheet2tbl(
"https://docs.google.com/spreadsheets/d/19gXobV4oPZeWZiQJAPNIrmqpfGQtpapXWcSxaXRw1-M/edit#gid=1699540381"
)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
rrpp <-
rrpp %>%
mutate(
reproducibility_score =
if_else(
data_avail > 0,
na.omit(comp_mthds_avail) +
na.omit(software_avail) +
na.omit(software_cite) +
data_avail,
as.integer(data_avail),
as.integer(0)
)
)
#> Warning in na.omit(comp_mthds_avail) + na.omit(software_avail): longer
#> object length is not a multiple of shorter object length
#> Warning in na.omit(comp_mthds_avail) + na.omit(software_avail) +
#> na.omit(software_cite) + : longer object length is not a multiple of
#> shorter object length
Create a tidy data frame of the data by unnesting software used as in many cases multiple software packages were used, so will end up with multiple rows for same article, one for each software.
library(magrittr)
library(tidyr)
#>
#> Attaching package: 'tidyr'
#> The following object is masked from 'package:magrittr':
#>
#> extract
rrpp <-
rrpp %>%
unnest(software_used = strsplit(software_used, ", "))
Count and sort top 10 software packages cited. There are likely others that are used, but they have not been properly identified by the authors.
tab <- table(rrpp$software_used)
tab_s <- sort(tab)
top10 <- tail(names(tab_s), 17) # checking the table, there are several ties
top_software <- subset(rrpp, software_used %in% top10)
top_software$software_used <- factor(top_software$software_used,
levels = rev(top10))
ggplot(top_software, aes(x = software_used)) +
geom_bar() +
ggtitle("Top 10 Software Used") +
xlab("Software") +
ylab("Count") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
The reproducibility score was calculated as the sum of the scores for computational method availability,
ggplot(rrpp, aes(y = reproducibility_score,
x = art_class)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.25, alpha = 0.5) +
ggtitle("Article Class Effect on Reproducibility") +
xlab("Class(es)") +
ylab("Score") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(rrpp, aes(y = reproducibility_score,
x = abbreviation)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.25, alpha = 0.5) +
ggtitle("Journal Effect on Reproducibility") +
xlab("Journal") +
ylab("Score") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
ggplot(rrpp, aes(y = reproducibility_score,
x = assignee)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.25, alpha = 0.5) +
ggtitle("Evaluator Effect on Reproducibility Score") +
xlab("Evaluator") +
ylab("Score")
ggplot(rrpp, aes(y = reproducibility_score,
x = open)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.25, alpha = 0.5) +
ggtitle("Open Access Effect on Reproducibility Score") +
xlab("Impact Factor") +
ylab("Score")
ggplot(rrpp, aes(y = reproducibility_score,
x = as.factor(repro_inst))) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.25, alpha = 0.5) +
ggtitle("Reproducibility Instructions Effect on Reproducibility Score") +
xlab("Reproducibility Instructions Score") +
ylab("Score")


NOTE: TWIL (This Week I Learned) is a collection of interesting findings I discover on a week-by-week basis. Hosted and curated entirely on GitHub.
Programming
Articles
Teenager Finds Classical Alternative to Quantum Recommendation Algorithm
A teenager from Texas has taken quantum computing down a notch. In a paper posted online earlier this month, 18-year-old Ewin Tang proved that ordinary computers can solve an important computing problem with performance potentially comparable to that of a quantum computer.
An interesting thing to read on my next commute. I have built one or two recommender systems before, but none of them has ever reached such a scale, as to need a quantum computer.
Be sure to check out the comment thread on Reddit too.
JavaScript : more puppy love, less fatigue
instead of showing people the current form of JavaScript as a matured, highly domesticated and fierce animal, we should get people to know it as a puppy. That’s how I got to know it. Instead of wondering what packages to install and how to set up my server to run it, I wanted to grab it, cuddle it, play with it and — above all — protect it and its surroundings from harm.
[…]
JavaScript these days has matured a lot and will become even better. It can not, though, when we hide its inner workings away from the next generation of developers. You don’t need to be a JavaScript language expert to use it. But it may be a good idea to tell the story how we got to where we are rather than asking people to blindly use what’s on offer right now. It is easy to get disappointed, discouraged and overwhelmed by something new when you use it without understanding it.
I try to approach every new technology the same way - starting from a small subset of the core features, and MVP of sorts. I gradually expand my comprehension of the technology as I move along. If you start the opposite way, you risk approaching the so called phase of “fatigue” that burns many neophyte programmers out.
Data Science
This photo here is a good example that no data should be thrown away as useless, before looking at the whole picture: It might as well be the case that a perfectly classifiable dimension lies hidden away from our eyes, we just have to discover it. This is why proper visualisation and dimensionality reduction techniques such as PCA are so important.
via A Journey to the Tip of Neural Networks
P.S: I also opened a Reddit thread for a further discussion on this topic.
iOS Development
Articles
Stop Using NSNotificationCenter | David Nix’s Blog
A good article discussing NSNotificationCenter
and why it’s use throughout our iOS apps should be reduced. It presents a serious dependency on the underlying imlementation of the OS, can become a performance bottleneck, and also makes the flow of data difficult to follow, especially in bigger iOS projects. The author gives a few alternatives, starting from basic DI (dependency injection), DI with delegation, and KVO (ky-value observables).
GitHub Projects
willowtreeapps/Hyperion-iOS
Hyperion is a hidden plugin drawer that can easily be integrated into any app. The drawer sits discreetly 🙊 under the app so that it is there when you need it and out of the way when you don’t. Hyperion plugins are designed to make inspection of your app quick and simple.
scoremedia/Fisticuffs
Fisticuffs is a data binding framework for Swift, inspired by Knockout and shares many of the same concepts
let observable = Observable<String>("")
observable.subscribe { oldValue, newValue in
print(newValue)
}
observable.value = "Hello, world"
// prints "Hello, world"
Python
As of v.3.8, Euclidean distance was included in the standard Math library (Math.dist
). With that, something like k-nearest neighbours boils down to:
nsmallest(k, training_data, partial(dist, new_point))
JavaScript
FT.com changed one line in their JavaScript code, and this made the site 10x faster. The culprit was this line of code:
return JSON.parse(JSON.stringify(this._data));
which is actually not as lame as it looks. It is actually a standard practice on many occasions. The problem is, cloning is synchronous, and when called a few times per page render, it quickly adds up.
Misc
google/filament
Filament is a physically based rendering engine for Android, Linux, macOS and Windows. This rendering engine was designed to be as small as possible and as efficient as possible on Android. Filament is currently used in the Sceneform library both at runtime on Android devices and as the renderer inside the Android Studio plugin.
Psychology
Why does walking through doorways make us forget?
Have you ever crosse th eentire house, entering the living room in a rush, only to reliaze what you were looking for? Yes, you are not alone. In fact, I thought for quite some time that this kind of stuff could happen only to me, and that it was probably caused by some physical malfunction of my body.  Forgetting about the minor details (e.g. the car keys you were lookign for until about a minute ago), is a natural reaction of the brain trying to cope with the grand masterplan it is working on, called life.
The Doorway Effect occurs because we change both the physical and mental environments, moving to a different room and thinking about different things. That hastily thought up goal, which was probably only one plate among the many we’re trying to spin, gets forgotten when the context changes.
It’s a window into how we manage to coordinate complex actions, matching plans with actions in a way that – most of the time – allows us to put the right bricks in the right place to build the cathedral of our lives.
Books
The Lean Startup
I am currently reading Eric Ries’ “The Lean Startup” and got these two quotes about early adopters, which I wanted to share:
Early adopters are suspicious of something that is too polished: if it’s ready for everyone to adopt, how much advantage can one get by being early? As a result, additional features or polish beyond what early adopters demand is a form of wasted resources and time.
Early adopters use their imagination to fill in what a product is missing. They prefer that state of affairs, because what they care about above all is being the firs
Some more notes from the book here.
Misc
Music
TIL the first Zildjian cymbals were created in 1618 by Avedis Zildjian, an alchemist who was looking for a way to turn base metal into gold. He made an alloy of tin, copper, and silver into a sheet of metal, which could make musical sounds without shattering.
via Reddit
DIY
TIL to fight illegal logging of their land, an indigenous community of 9000 members in Guyana built a drone by watching DIY videos on YouTube, to film the illegal activities and report the footage to Guyanese authorities.
via Reddit and Atlas Obscura
Final Notes
For last, I have reserved a small shameless plug. Last week, I started writing on Steemit and so far, I have posted a couple of things on my Steemit blog. So far, I do not want to say whether I like it or not. It’s an interesting medium, but way too dominated by the crypto peeps, hungry for tokens more than for quality content. I am not seeing this as a way of monetising my writing at the moment, just as a crude, early version of Reddit/Twitter/Medium/Tumblr that is worth exploring. That’s it.
Leave a comment


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Class Summary | |
|---|---|
| Baf | |
| BafBody | |
| DoubleWordType | |
| JasminClass | |
| PlaceholderInst | |
| WordType |
Public classes for the Baf intermediate representation. Baf is a low-level representation, similar to Java bytecode.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Humanizing your insurance.
Get your life insurance coverage easier and faster. We blend our expertise and technology to help you find the plan that's right for you. Ensure you and your loved ones are protected.
View PlansWe’re different
-
Snappy Process
Our application process can be completed in minutes, not hours.
-
Affordable Prices
We don't want you worrying about high monthly costs. Our prices may be low, but we still offer the best coverage possible.
-
People First
Our plans aren't full of conditions and clauses to prevent payouts. We make sure you're covered when you need it.


Research Connect User View Demo
Region: AsiaPacific | Language: English | Welcome Rahul!
Select Assigned Surveys:
{{survey.description}}
Question {{pager.index + 1}} of {{pager.count}}.
{{pager.index + 1}}.
Review Response
{{index + 1}}. {{question.name}}
Survey Result
{{index + 1}}. {{question.name}}
Your answer is {{isCorrect(question)}}.
Thanks you for selection, you may close this window now.
Thanks you for selection, you may close this window now.
Sample Informed Consent form for patient
PART I: Information Sheet
Introduction
Sample introduction for clinical trail
Purpose of the research
Sample purpose of the research
Type of Research Intervention
Sample type of Research
Information Handling
Sample information handling terms
Here By i accept the terms and condition on clicking "I Agree" or don't want to participate on clicking "I Disagree"


| Overview | Module | Use | Devguide | Index |
| Nested Modules | Services | Singletons | Interfaces | Structs | Exceptions | Enums | Typedefs | Constant Groups |
| module chart2 |
|
| Nested Modules | |
| data |
| Services | |
| Axis | |
| CandleStickChartType | chart type service for candlestick charts. |
| ChartDocument | |
| ChartDocumentWrapper | A component that implements the ::com::sun::star::chart::ChartDocument service and is initialized with a ChartDocument via the ::com::sun::star::uno::XAggregation interface. |
| ChartType | ChartType service |
| ChartTypeManager | A factory for creating ChartTypeTemplates. |
| ChartTypeTemplate | |
| CoordinateSystem | |
| CoordinateSystemType | |
| DataPoint | |
| DataPointProperties | |
| DataSeries | reflects the model data of the object that has all the information for a ::DataRenderer to create a visible data series in a chart. |
| Diagram | |
| ErrorBar | |
| ExponentialScaling | Scaling that scales a value x by taking the power of the base to x. |
| FormattedString | |
| GridProperties | Must be supported by all grids |
| Legend | Describes a legend for a Diagram. |
| LinearScaling | Scaling that scales a value x by calculating m · x + t. |
| LogarithmicScaling | Scaling that scales values by taking their logarithm. |
| LogicTargetModel | |
| MutableDataSequence | |
| PowerScaling | Scaling that scales a value x by taking the power of x to the exponent. |
| PropertyPool | |
| RegressionCurve | |
| RegressionCurveEquation | |
| Scaling | stateless service |
| StandardDiagramCreationParameters | parameters that may be passed to XChartTypeTemplate::createDiagramByDataSource. |
| Title |
| Interfaces | |
| XAnyDescriptionAccess | Offers any access to column and row descriptions. This allows to set date values as categories. |
| XAxis | |
| XChartDocument | |
| XChartShape | this interface is used for a wrapper of objects implementing the service com::sun::star::drawing::Shape |
| XChartShapeContainer | |
| XChartType | |
| XChartTypeContainer | |
| XChartTypeManager | |
| XChartTypeTemplate | |
| XColorScheme | |
| XCoordinateSystem | |
| XCoordinateSystemContainer | |
| XDataInterpreter | offers tooling to interpret different data sources in a structural and chart-type-dependent way. |
| XDataSeries | A data series represents the object that has all the knowledge to be rendered as a visual data series. |
| XDataSeriesContainer | |
| XDefaultSizeTransmitter | Allows to set a default size. This size will be used in case no further informations are available. |
| XDiagram | |
| XDiagramProvider | Gives access to a single diagram. This interface is needed by the wrapper for the old API (namespace com::sun::star::chart). |
| XFormattedString | |
| XInternalDataProvider | An internal DataProvider that has more access to data than a plain DataProvider. |
| XLabeled | |
| XLegend | interface for the legend of a diagram |
| XRegressionCurve | |
| XRegressionCurveCalculator | |
| XRegressionCurveContainer | |
| XScaling | |
| XTarget | |
| XTitle | |
| XTitled | Interface to be implemented by objects that support having a title of type XTitle. |
| XTransformation | allows the transformation of numeric values from one coordinate-system into an other. Values may be transformed using any mapping. |
| Structs | |
| DataPointLabel | |
| FillBitmap | This strucutre contains all properties of a bitmap when used as FillStyle. |
| IncrementData | An IncrementData describes how tickmarks are positioned on the scale of an axis. |
| InterpretedData | offers tooling to interpret different data sources in a structural and chart-type-dependent way. |
| LightSource | |
| RelativePosition | Determines a position of an object relative to a size defined by other means. Values from 0 to 1 cover the entire reference rectangle. Values may also be outside this range, especially negative. |
| RelativeSize | Gives a position relative to some size defined by other means. Values from 0 to 1 cover the entire reference rectangle. Values may also be greater than one, meaning a bigger size than the reference size. Negative values are not allowed. |
| ScaleData | |
| SubIncrement | |
| Symbol | properties that are used for DataSeries that display symbols. |
| Enums | |
| AxisOrientation | |
| CurveStyle | Sets the type of curves that are drawn for line charts. |
| LegendPosition | |
| PieChartOffsetMode | Mode used for a pie chart template to determine the initial state of exploded pies. |
| StackingDirection | |
| SymbolStyle | determines what kind of symbol to use |
| TransparencyStyle |
| Typedefs | |
| CoordinateSystemTypeID |
| Constant Groups | |
| AxisType | |
| DataPointGeometry3D | These values specify the geometry of data points in 3D bar charts. |
| TextAnchor | |
| TickmarkStyle |
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Kogi election: PDP’s Wada rejects results
by Success NwoguSuccess Nwogu, Abuja
The Kogi State governorship candidate of the Peoples Democratic Party, Mr Musa Wada, has rejected the result of the governorship election being announced by the Independent National Electoral Commission.
Speaking during a media briefing on Sunday in Lokoja, the Kogi State capital, he said the results that had been announced were fictitious.
He particularly said the result for Okene Local Government Area of 112,764 for the All Progressives Congress and 139 for PDP was fictitious.
He said he would go to the election petition tribunal as he claimed to have won the election.
Details later


The Coalition of Epic Sites is a webring that consists of websites I've made. This is my attempt at creating a neighborhood à la GeoCities.com.
Most sites in the webring were made in early middle school or before, so long story short: they're bad.


Decision Tree Visualizer
ID3 algorithm is used to create the decision tree below using gini-index. For positioning of the tree, Buchheim's Paper was implemented.
For better understanding of the decision tree concept, ability to change the root attribute, opt-in and opt-out attributes have been included.
Datasets used in the tree: Lenses - Mushrooms


Atary 800XL code to draw 3D charts. Creds magazin ABC, probably http://www.xabc.cz/35.
Press F5 to refresh


Popular Areas in see this movie seth review
WATCH Seth MacFarlane Oscars | Opening Monologue Video ...
Feb 24, 2013 . WATCH: Seth MacFarlane's Epic Oscars Opening From 'We Saw Your . Shatner showed MacFarlane how his reviews would improve from .
http://www.mediaite.com/tv/watch-seth-macfarlanes-epic-oscars-opening-from-we-saw-your-boobs-to-be-our-guest-feat-cpt-kirk/
Ted (film) - Wikipedia, the free encyclopedia
The film is the feature-length directorial debut of MacFarlane, produced by Media . Ted has received generally favorable reviews, with critics praising Seth .
http://en.wikipedia.org/wiki/Ted_(film)
SEE THIS MOVIE Trailer - ARTISTdirect Music
Seth Meyers. I DON'T KNOW HOW SHE DOES IT · "I DON'T KNOW HOW SHE DOES IT" · SEE THIS MOVIE · "SEE THIS MOVIE" · see all 2 trailers & videos .
http://www.artistdirect.com/video/see-this-movie/71316
"The Guilt Trip" Review: Seth Rogen Takes a Blood Sh*t on Christmas
The only mystery here is why Seth Rogen would choose to make a film so . in The Guilt Trip that cannot be telegraphed the moment you see the movie poster.
http://www.pajiba.com/film_reviews/the-guilt-trip-review-seth-rogen-takes-a-blood-sht-on-christmas.php
See This Movie (2004) - IMDb
With John Cho, Seth Meyers, Raymond O'Connor, Jim Piddock. Two bumbling . Videos. See This Movie -- Two bumbling, but determined, three-day film school .
http://www.imdb.com/title/tt0382966/
Oscars: Seth Macfarlane gives EW shout out | PopWatch | EW.com
Feb 24, 2013 . EW will give Seth MacFarlane a bad review, says Oscars host -- PHOTO. by Denise . Previous Post EW live at the Oscars -- See our tweets!
http://popwatch.ew.com/2013/02/24/entertainment-weekly-seth-macfarlane-oscars-photo/


Protoype web & mobile apps faster
Don't spend time developing a back-end service to handle your data when prototyping your app anymore. OpenWs is free, open-source and it couldn't be easier to use.
OpenWs is a RESTFul service
OpenWs APIs support the following HTTP methods: POST, PUT, GET, DELETE.
Another important feature is that CORS is enabled, which means AJAX requests made from browser will be accepted by OpenWs. No more Cross-Domain AJAX request issues.
OpenWs is an open-source project
That means you can modify or extend OpenWs to your needs.
Check out the project page in Github.Run it in your own machine if you prefer
OpenWs is built in Ruby on Rails and MongoDB. All the information on how to setup OpenWs locally can be found here.


Docker, Linux, Container
What is Virtualization
What is Containerization
Virtualization Vs. Containerization
Setting a Web Server with Docker
Linux & Docker Cheatsheet
Docker with Pycharm
About
LEARN MORE
ABOUT
CHEATSHEET
Github
DOCKER LINUX CONTAINERS
Shipping 1s and 0s 24-7
What is Virtualization
What is Containerization
Docker with Pycharm
Links
Virtualization
Containerization
Virtualization + Containerization
Web Server with Docker
Linux + Docker Cheatsheet
Docker with Pycharm


Korea
Home to a few friends of mine, South Korea is high on the travel list
Places To See
- Seoul
- Busan
- My Friends
Haiti
Beautiful Island, unique history, I'd love to learn more
Places To See
- Beaches
- Mountains
- Port-au-Prince
Antarctica
The land of ice, one of a kind animal life, and lights that dance through the skies
Places To See
- Orcas
- Icebergs
- Southern Lights
Oculus Quest
The first wireless vr device. I fell in love the first time I tried it.
Games
- Apex Construct
- The Under Presents
- Keep Talking and Nobody Explodes
Minecraft
The classic.
Versions
- Java, the best.
- Bedrock, the mobile.
- Vr, the terrifying.
Among Us
Save the crew or sabotage them, the choice is up to you.
ROLES
- Imposter
- Detective
- Third Imposte- oh, no
web designer & developer
Skillset
- js
- css
- html
- php
- nodejs
- bootstrap


Linux
Q1. To mount a drive by its ID, what command would you use first to retrieve it?
- [ ] df -h
- [ ] listid
- [ ] ls -l
- [x] blkid
Q2. Linux file access control lists (ACLs) are _.
- [x] discretionary access control system permissions layered over standard Linux permissions
- [ ] mandatory access control system permissions layered over standard Linux permissions
- [ ] a type of firewall for Linux
- [ ] the same as standard Linux permissions
- [ ] route -ipv6
- [ ] route
- [x] ip -6 route show
- [ ] ip route show
Q4. What does this command string do?
- [ ] It finds all files using ls -l and hands them off to the find command to display.
- [ ] It finds all files older than 10 minutes and long lists them using the ls command.
- [x] It finds all files larger than 10 MB and long lists them using the ls command.
- [ ] It uses the ls command to find all files in the filesystem matching the {} wildcard.
Q5. What would this locate command show?
- [ ] all files in a directory named pixmaps
- [ ] all files ending in ".jpg"
- [x] all file paths that start with "/usr", include the word "pixmaps", and end with ".jpg"
- [ ] all file paths that include "/usr/pixmaps" and end with ".jpg"
Q6. Which command allows you to do packet analysis from the command line?
- [ ] wireshark
- [ ] ethtool
- [ ] netstat
- [x] tcpdump
Q7. Which command will tell you how long a system has been running?
- [ ] log
- [x] uptime
- [ ] runtime
- [ ] access
- [ ] It is an application testing suite used to profile programming code.
- [ ] It is a local command used for monitoring local system resources in real time.
- [x] It is a set of tools, services, and libraries for gathering and analyzing performance measures.
- [ ] It is a tool designed to change system configuration for purposes of optimization.
Q9. You want to resolve a long list of DNS names using dig. What should you do?
- [x] Create a text file including all names and use the -f option of dig.
- [ ] Type in each query manually.
- [ ] Write a shell script to send multiple dig queries to the DNS server.
- [ ] Save the DNS names in an SQL database and process it with dig.
Q10. What would this command output?
ps -e --format uid,pid,ppid,%cpu,cmd
- [x] the user ID, process ID, parent process ID, CPU usage, and command name of a process
- [ ] the user ID, group ID, parent process ID, CPU usage, and command name of a process
- [ ] the UUID, process ID, parent process ID, CPU usage, and command name of a process
- [ ] all of these answers
Q11. Which command in Bash executes the last line in the shell history that starts with ls?
- [ ] !
- [ ] !!
- [ ] !*
- [x] !ls
Q12. The ssh-copy-id command copies _ to the remote host.
- [ ] both private and public keys
- [x] the ssh public key
- [ ] the ssh private key
- [ ] a fingerprint file
Q13. What command is used to determine the amount of disk usage for a directory?
- [ ] find
- [ ] fdisk
- [x] du
- [ ] df
Q14. A backup drive was created using dd to make a bit-for-bit copy. When the drive is inserted into an iSCSI target before it is booted up, the data appears to be missing. What happened?
- [ ] The backup drive is corrupted and needs to be re-created.
- [x] When the backup drive was duplicated, the label was as well. When booted, the system mounted the old duplicated drive by its identical label.
- [ ] There is a conflict between the physical location of the backup drive and the original drive.
- [ ] The backup process went wrong, and the old drive was duplicated over the original drive.
Q15. What is the key difference between a redirect (>) and piping to the tee command?
- [ ] The tee command sends output only to STDOUT and STDERR.
- [ ] A redirect sends output to STDOUT and a file, whereas a tee sends output only to STDOUT.
- [ ] Nothing, they are the same.
- [x] The tee command sends output to STDOUT and a file, whereas a redirect sends output only to a file.
Q16. What does the /etc/nsswitch.conf file manage?
- [ ] priority of one DNS server over another
- [ ] per network interface DNS server configuration
- [ ] alternative DNS services
- [x] sources for name service information
Q17. Assume the variable myNumber holds a string consisting of 10 digits. What will this command output?
- [ ] It will only match digits—and since the string has only digits, the command will output the same number without changes.
- [ ] It will output the same 10-digit number, but every digit will be inside parentheses.
- [ ] It will output the entire 10-digit number inside parentheses.
- [x] It will output the same 10-digit number, but the first 3 digits will be inside parentheses.
Q18. Packages can be downloaded but not installed with yum or dnf by specifying which option?
- [ ] None of these answers. yum does not support downloading packages without installing them.
- [ ] –downloaddir
- [ ] -d
- [x] –downloadonly
Q19. What character class is equal to this set?
[0-9]
- [ ] [[:alnum:]]
- [x] [[:digit:]]
- [ ] [[:alpha:]]
- [ ] [[:num:]]
Q20. When archiving files, which command will preserve all file attributes including ACLs and SELinux security context?
- [ ] zip
- [x] tar
- [ ] archive
- [ ] gzip
Q21. In a systemd-based OS, you can change the system hostname by editing /etc/hostname manually and then doing what?
- [ ] Restart dhcpd.
- [ ] Run /etc/hostname.
- [x] Nothing, the system notices automatically.
- [ ] Notify systemd to update it by restarting the systemd-hostnamed service.
Q22. What command would you use to resize an LVM volume group to include an additional physical volume?
- [ ] vgadd
- [ ] vgresize
- [ ] vgappend
- [x] vgextend
Q23. When would this system cron job run its task?
0 1 * * *
- [ ] every minute of the hour
- [ ] every hour of every day
- [x] every day at 1:00 AM
- [ ] only on Mondays
Q24. ifconfig has been deprecated. What command is now recommended for changing IP addresses in the live config?
- [ ] netconf
- [ ] ipconfig
- [ ] ipman
- [x] ip
Q25. You are managing an Apache web server on a system using SELinux. By default it cannot read personal webpages in users' home directories. What SELinux boolean would you set to allow this?
- [ ] apache_enable_homedirs
- [ ] httpd_enable_userdirs
- [x] httpd_enable_homedirs
- [ ] httpd_enable_userhome_dirs
Q26. Why doesn't passwd -l keep a user from logging in via other methods?
- [ ] The passwd command is not used for locking passwords.
- [ ] There is no password -l option.
- [x] It locks only the password, not the account, so users can still authenticate with keys or other methods.
- [ ] It does lock the account, keeping users from logging in even if they are using other authentication methods.
Q27. In the Bash shell, what is the difference between piping into | and piping into |&?
- [ ] Piping into | pipes both stdout and stderr. Piping into |& pipes only stderr.
- [x] Piping into | pipes stdout. Piping into |& pipes stdout and stderr.
- [ ] Piping into | pipes both stdout and stderr. Piping into |& pipes only stdout.
- [ ] Piping into | pipes stdout. Piping into |& pipes all open file descriptors.
Q28. Why is the passwd command able to modify the /etc/passwd file?
- [ ] The kernel identifies it as one of the names of extended commands.
- [ ] It has the same name as the file it modifies.
- [x] It has the SUID permission mode and is owned by root.
- [ ] It is a system administration command.
Q29. When a user deletes a file using the rm command, Linux will _.
- [ ] always ask for confirmation
- [ ] back up the file before it deletes the file
- [x] ask for confirmation if configured to do so
- [ ] never ask for confirmation
Q30. What is a major advantage of using Logical Volume Management (LVM)?
- [ ] Access to a drive is faster than with standard partitions.
- [ ] Volumes can be resized smaller without unmounting them.
- [ ] Repairing filesystem errors is easier than with standard partitions.
- [x] Volumes can be resized even if the free space is not contiguous.
Q31. What is one major difference between brace expansion and globs?
- [ ] Globs create a list; brace expansion matches pattern.
- [ ] Brace expansion requires files to exist; globs do not.
- [x] Brace expansion creates a list; globs mart the list of pathnames.
- [ ] Globs get processes first and brace expansion later.
Q32. To remove all ACLs from a directory , use setfacl with which options?
- [ ] -d
- [ ] -k
- [x] -b
- [ ] -x
Q33. Which choice will not print "Hello World" in the terminal?
Q34. What is not inherited by child process?
- [x] shell aliases
- [ ] userid
- [ ] environmental variables
- [ ] scheduling priority
Q35. What NFS option allows the root user to access NFS shares as the root user?
- [ ] no_admin_squash
- [ ] no_root_squash
- [x] allow_root_access
- [ ] all_squash
Q36. You send an email to a remote client using the following syntax. What will be in the body of the email?
- [ ] "This is a remote test"
- [ ] the date, the time, and the words "This is a remote test"
- [ ] The email subject shows "This is a remote test" but the body of the email will be empty.
- [x] the current date and time
Q37. What is the /etc/hosts file used for?
- [ ] resolving the local name
- [ ] blocking sites using iptables
- [x] setting the hostname
- [ ] configuring DNS name servers
Q38. In an extended regular expression, you would use (pattern){3} to match three instances of the pattern. How would you match the same thing with an extended glob?
- [ ] 3(pattern)
- [ ] {0,3}(pattern}
- [x] Occurrence quantifiers are not supported in Bash's version of extended globs, so this is not possible.
- [ ] {3}(pattern})
Q39. When configuring a Samba share, how would the engineering group be specified in the smb.conf?
- [ ] Samba uses Linux operating system groups from the /etc/group file; just specify the group name.
- [x] It would be preceded by a percent sign (%), such as %engineers.
- [ ] Use the group name by itself; Samba checks for its existence.
- [ ] It would be preceded by an @ symbol, such as @engineering.
- [ ] krb5-workstation
- [x] ktutil
- [ ] pam_krb5
- [ ] kdb5_util
Q41. To search from the current cursor position up to the beginning of the file using VIM, type ______ and then the search criteria.
- [x] ?
- [ ]
- [ ] /
- [ ] /search
Q42. What is the job of the NetworkManager daemon?
- [ ] It is a graphical tool that manages network connections, including bonding and wireless networks.
- [ ] It is a security service that manages user access control of local network-aware services.
- [ ] It attempts to keep an active network connection available at all times.
- [x] It is a command-line tool that manages network connections.
Q43. Why might would you use the usermod command ?
- [ ] to log out a user
- [ ] to lock a user's account
- [x] to change global user account settings
- [ ] to set a user's password


If the example works you should have downloaded a file called helloWorld.txt containing the text Hello World


iteration
/5
With user provided seed (uni_rnd1 uses 1337 as starting seed, non-persistent)
With user provided seed (uni_rnd2 uses 0 as starting seed, persistent)
Without user provided seed (uni_rnd3)


Creates the SpriteText instance with information about point, intersected with mouse cursor.
Parameters:
| Name | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
intersection |
THREE.Raycaster.intersectObject | See intersection for details. | ||||||||||||
options |
object | The following options are available
Properties
|
- Source:
Returns:
new SpriteText with information about point, intersected with mouse cursor.


The Six JavaScript Error Types
The JavaScript 1.5 specification defines six primary error types, as follows:
EvalError: Raised when the eval() functions is used in an incorrect manner.
RangeError: Raised when a numeric variable exceeds its allowed range.
ReferenceError: Raised when an invalid reference is used.
SyntaxError: Raised when a syntax error occurs while parsing JavaScript code.
TypeError: Raised when the type of a variable is not as expected.
URIError: Raised when the encodeURI() or decodeURI() functions are used in an incorrect manner.


 -GEORGE MCFLY
FIRST NAME
EMAIL
LAST NAME
PASSWORD
USERNAME


Man pulled from path of train grateful to his rescuer
Raiders fan nearly struck by train
by Shirin RajaeeOAKLAND, Calif. - The man at the center of a heart-stopping close call at the Coliseum Bay Area Rapid Transit (BART) station is speaking out. He fell just inches from an oncoming train only to be saved in the nick of time by a BART employee.
"I remember looking at the train when it was coming, and I just missed my step," said 33-year-old RayShawn Jackson.
One misstep almost cost RayShawn his life.
"When I fell I saw the train comin' and I only had a matter of seconds to get out…I heard everyone yelling ‘There's a train coming, train train train!'" he said.
That train was just inches away. The BART surveillance video shows a crowded Bart platform after a Raiders game. Rayshawn says he'd been drinking and was distracted on the phone when he accidentally steps over the yellow safety strip and falls.
"When I first jumped I missed my landing, second jump, I feel like an angel grabbed me from the air really," he said.
Bart Supervisor John O'Connor was that angel who jumped into action.
"I just remember grabbing him and pulling as hard as I could," said O'Connor. "He was sitting right there and he put his hand out and that's when I gave him a hug – I'm like dude – you almost didn't make it."
"I gave him the biggest hug. Told him how grateful I am, there in the moment," said RayShawn.
A video by a passenger posted on Twitter of the two men hugging is a moment that has since gone viral.
"One second you could be here, one second, you could be gone. It's that fast," said RayShawn.
The Rancho Cordova man says he's still in awe of what transpired, not completely grasping how he could be alive.
But one thing he's certain of…"He's my hero saved my life, I wouldn't be here if it wasn't for him," he said.
RayShawn says he's still shaken up, but doing OK.


Indian Institute of Science
9999 Generic Research Laboratory 999 Fake Street Avenue City, State Country ZIP
Phone :<PHONE_NUMBER> Cell :<PHONE_NUMBER>
Monday-Friday (8.00am - 5.00pm)
Google Scholar
ResearchGate
Facebook LinkedIn


My dog is named Bernie
He loves the treats
He has an Instagram
Commands he knows
Sit
Wait
Lay Down
Come Here


Reputed to be the birthplace of Marco Polo, this is a very attractive, medieval town. It is on the southern end of the island of the same name. The island being the largest, forested island in the Adriatic.
Position 42°57.8'N, 17°08.4'E. (town)
Port of Entry open all year.
Korcula Town
The usual berths here are in the ACI marina, which lies in a small cove, east of the town. It is protected by a breakwater on the northern side. This is often full and it is worth reserving a berth in advance.
When the town marina is full, yachts are directed to the outside of the breakwater. This is exposed and it may be worth moving elsewhere.
An alternative is the quay near the Harbour Master's office, or on the west side of the town. Yachts that anchor in the bay near the town still get charged. In 2011 fees were approx. 40 Euros a night.
Other Ports/Anchorages on Korcula Island
There are several more locations for mooring and anchoring around this attractive island:
Last updated February 2014.


CLEAR EYES COOLING ITCHY EYE RELIEF- naphazoline hydrochloride, glycerin and zinc sulfate liquid
Prestige Brands Holdings, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredients
Glycerin 0.25%
Active ingredients
Naphazoline hydrochloride 0.012%
Active ingredients
Zinc sulfate 0.25%
Uses
- For use as a protectant against further irritation or to relieve dryness of the eye.
- For the temporary relief of burning & irritation due to the dryness of the eye.
- Relieves redness of the eye due to minor eye irritations.
Warnings
For external use only.
Do not use
if solution changes color or becomes cloudy.
Ask a doctor before use if
you have narrow angle glaucoma.
When using this product:
- To avoid contamination, do not touch tip of container to any surface.
- Replace cap after using.
- Overuse may produce increased redness of the eye.
- Pupils may become enlarged temporarily.
Stop use & ask a doctor if:
- you experience eye pain
- you experience changes in vision
- you experience continued redness or irritation of the eye
- the condition worsens or persists for more than 72 hours.
Keep out of reach of children.
If swallowed, get medical help or contact a Poison Control Center (1-800-222-1222) right away.
Directions
Instill 1 to 2 drops in the affected eye(s) up to four times daily.
Other information
- Store at room temperature.
- Remove contact lenses before using.
-
Tamper Evident: Do not use if neckband on bottle is broken or missing.
Inactive ingredients
benzalkonium chloride, boric acid, cyclodextrin, edetate disodium, menthol, purified water, sodium chloride, sodium citrate
Questions?
1-877-274-1787 www.cleareyes.com
PRINCIPAL DISPLAY PANEL
NEW Clear eyes®
COOLING COMFORT
Astringent/Lubricant/Redness Relief Eye Drops
ITCHY EYE RELIEF
Cools Eye Irritations
Relieves Itching &Burning
STERILE 0.5 FL OZ (15 ML)
ITCHY EYE RELIEF
STERILE 0.5 FL OZ (15 ML)" src="http://dailymed.nlm.nih.gov/dailymed/image.cfm?setid=a710be3f-fa5b-46a6-87b5-5a4d1f807e1c&name=clear-eyes-cooling-itchy-eye-relief-01.jpg">
Prestige Brands Holdings, Inc.


| |
Methods defined here:
- __init__(self, score)
- constructor for GameOver.py
Transition: initializes a game over screen
input:none
output:none
- getCurrentState(self)
- function to return the current game state
Transition: returns the objects to display on the main screen
input:none
output:an array of objects
- updateState(self, score)
- function to update the score at the time of game over
Transition: changes the current score at game over time
input:integer value for score
output:none
|


Forced Results
- compute
- aggregates
- availability zone
- fixed ips
- flavors access
- flavors extra specs
- flavors
- hosts
- hypervisor
- quotas
- servers
- services
- simple tenant usage
- flavors
- floating ips
- floating ips actions
- list floating ips
- images
- image metadata
- images oneserver
- images
- list image filters
- list images
- keypairs
- keypairs
- limits
- absolute limits
- security groups
- security group rules
- security groups
- servers
- attach interfaces
- create server
- disk config
- instance actions
- list server filters
- list servers negative
- multiple create
- server actions
- server addresses
- server metadata
- server personality
- server rescue
- servers negative
- servers
- virtual interfaces
- authorization
- auth token
- extensions
- live block migration
- quotas
- volumes
- attach volume
- volumes get
- volumes list
- volumes negative
- identity
- admin
- roles
- services
- tenants
- users
- image
- v1
- image members
- images
- v2
- images
- network
- floating ips
- load balancer
- networks
- quotas
- routers
- security groups
- object storage
- account quotas
- account services
- container acl
- container services
- container staticweb
- container sync
- object expiry
- object services
- object version
- orchestration
- neutron resources
- non empty stack
- server cfn init
- stacks
- templates
- volume
- multi backend
- volume types extra specs negative
- volume types extra specs
- volume types negative
- volume types
- volumes actions
- volumes get
- volumes list
- volumes negative
- volumes snapshots
{% block body %}{% endblock %}


2 Chronicles 12:11
And when the king entered into the house of the LORD, the guard came and fetched them, and brought them again into the guard chamber.


Treebank Statistics: UD_Romanian-SiMoNERo: POS Tags: SCONJ
There are 11 SCONJ
lemmas (0%), 12 SCONJ
types (0%) and 1054 SCONJ
tokens (1%).
Out of 16 observed tags, the rank of SCONJ
is: 12 in number of lemmas, 13 in number of types and 14 in number of tokens.
The 10 most frequent SCONJ
lemmas: că, dacă, deși, deoarece, până, întrucât, încât, fără, să, fiindcă
The 10 most frequent SCONJ
types: că, dacă, deși, deoarece, până, întrucât, încât, fără, să, daca
The 10 most frequent ambiguous lemmas: până (ADP 92, SCONJ 28), fără (ADP 135, SCONJ 3), să (PART 324, SCONJ 2)
The 10 most frequent ambiguous types: până (ADP 86, SCONJ 27), fără (ADP 135, SCONJ 3), să (PART 320, SCONJ 2)
- până
- fără
- să
Morphology
The form / lemma ratio of SCONJ
is 1.090909 (the average of all parts of speech is 1.666462).
The 1st highest number of forms (2) was observed with the lemma “dacă”: daca, dacă.
The 2nd highest number of forms (1) was observed with the lemma “că”: că.
The 3rd highest number of forms (1) was observed with the lemma “deoarece”: deoarece.
SCONJ
occurs with 2 features: Polarity (1054; 100% instances), Variant (1; 0% instances)
SCONJ
occurs with 3 feature-value pairs: Polarity=Neg
, Polarity=Pos
, Variant=Short
SCONJ
occurs with 3 feature combinations.
The most frequent feature combination is Polarity=Neg
(972 tokens).
Examples: că, dacă, deși, deoarece, până, încât, întrucât, fără, să, daca
Relations
SCONJ
nodes are attached to their parents using 5 different relations: mark (969; 92% instances), fixed (56; 5% instances), case (27; 3% instances), advmod (1; 0% instances), obj (1; 0% instances)
Parents of SCONJ
nodes belong to 8 different parts of speech: VERB (734; 70% instances), ADJ (152; 14% instances), NOUN (85; 8% instances), ADV (48; 5% instances), ADP (14; 1% instances), NUM (11; 1% instances), AUX (8; 1% instances), PRON (2; 0% instances)
1022 (97%) SCONJ
nodes are leaves.
31 (3%) SCONJ
nodes have one child.
1 (0%) SCONJ
nodes have two children.
The highest child degree of a SCONJ
node is 2.
Children of SCONJ
nodes are attached using 3 different relations: fixed (31; 94% instances), advmod (1; 3% instances), punct (1; 3% instances)
Children of SCONJ
nodes belong to 5 different parts of speech: ADP (27; 82% instances), ADV (3; 9% instances), NOUN (1; 3% instances), PART (1; 3% instances), PUNCT (1; 3% instances)


Product Development — designing an in-house system for client data management
Note
Due to legal constraints (very strict NDA) I cannot reveal some
information about the product I helped create or my other work in the organization that contain confidential information.
I worked at FICO [Fair, Isaac and Co.], Ann Arbor from May 2017 - December 2017 as a Product Development Intern. I worked with the Cybersecurity team reporting to the VP of Product Management as part of a 10-member team. My main focus was on developing an in-house data management system that development and support teams used to maintain customer information.
I was recruited as the only intern for the summer of 2017. The first two weeks of my internship were spent in understanding the various products the company had on their product roster and figuring out the internal workings of the organization and my team as a whole. After that, I was given my goal for the summer.
I was tasked with designing and developing Admin Tools - an in-house client data management system that the Cybersecurity team used to onboard new customers into the system.
Now
Currently, the way new clients would be onboarded was by having them send their information to an Client Relationship Manager who would then forward that to a mailbox that was monitored by the Cybersecurity team. Upon receipt of the email one of the team members, who was comfortable in SQL, would create a record for that client and add in the product subscriptions that the client wished to subscribe to. This would be done through an INSERT SQL statement. It was viewed as cumbersome and dangerous as it involved adding records directly into production databases. Any modifications in customer information would also be required. Since this was a new team there was no alternative at the time and it was important to have clients onboarded quickly.
Next
The goal was to have this entire process made easier. The team wanted to do away with email, having the customer directly submit their intent to subscribe to a product on the website. This would then get sent to the Cybersecurity team who would validate the data and finally approve or reject the customer based on the data provided. The product roll-out was divided into 3 phases:
User Interviews
I conducted user interviews with developers on the team to see how they entered data into the system. I also watched as they input data into the system recording the order and format in which the various data points were input. I also requested feedback from them - asking them to share with me what they would like to be able to do in a simple manner and more importantly what their dream system would look like.
Personas
Personas were skipped in this specific project because the end users were very clearly known - it was a select group of individuals at FICO who would be using the software. A decision was made to roll-out phases 1 and 2 of this product first and then revisit phase 3 if needed at a later point. Since phase 3 would need customers to enter data themselves, that would need further research which at this point was not viable.
Lo-Fi Protoype
I began work on a lo-fi prototype by sketching workflows for the system. The workflows basically were a run-through of how the system would flow from page-to-page.
Wireframes:
Design Decisions
One of the major drawbacks of such a system was that the number of fields that needed to be entered were fairly high in number. In order to reduce some of this effort, we decided to have automated entry for some fields such as date and organization ID by using the user login information to fetch organization ID.
Another design decision made was to make use of modals when editing data. Owing to the use of multiple pages in the application, it was difficult for developers to go back and forth between pages. So, in order to make that flow from editing a record to going back and checking other information, modals were used. Clicking on an entry opened up a modal which allowed developers to edit records and then clicking "Confirm" to close the modal. A highlighted message at the top of the screen would be displayed confirming that the change was saved successfully.
User feedback:
I presented the wireframes and lo-fi pictures to the team in-charge of maintaining the database and sought their feedback. Based on the feedback presented I created a hi-fi prototype of the final product.
Note
The Hi-fi prototype is unavailable for viewing here owing to a very strict NDA.
My previous experience in software development and engineering came in handy at this role. After the design of the system we had to physically code it from scratch. Along with my mentor, we worked on crafting the system with Python Flask and SQL Alchemy. While my mentor worked on the back-end using SQL Alchemy I worked on the front-end of the system using Python Flask, HTML and CSS, ensuring that the system was making timely API calls and using caching to make the data recovery and storage more efficient.
This project required that I learn a new programming language - Python Flask. The whole project was an amazing experience and taught me to not only design in the real world but also engineer a product after the design. I specifically learned how to apply design principles from an engineering perspective and understood some of the challenges engineers face while designing to specifications. This has helped me become a better designer and also helped me foster meaningful cross-team relationships.


[gecode-users] Best-first search
Guido Tack
tack at ps.uni-sb.de
Fri Sep 4 09:30:18 CEST 2009
Malcolm Ryan wrote:
> I need a search engine for gecode that implements best-first search,
> i.e. search using a priority queue sorted on an heuristic. It doesn't
> look like Gecode current implements this, so I figure I'll have to
> write it myself.
>
> Any recommendations on how I should go about it? I've been reading the
> source for DFS and LDS but I'm not clear on what functions such an
> engine would be expected to implement.
If you want the same interface as the built-in search engines, it
should mainly provide a next method, and probably use Stop objects to
further control the search.
In order to get started, I'd just use an STL priority queue and
implement a system with full copying, i.e., the queue stores spaces.
When you dequeue a space, you determine the number of its children n,
create n-1 copies, commit the original space and each copy to one
alternative each, determine the cost for each child, and enqueue the
resulting children.
This should give you something that works, although the cost in terms
of memory may be prohibitive (you'll keep an exponential number of
spaces alive).
So the second step would be to figure out how to combine this with
recomputation. Instead of queuing spaces, you queue nodes, which may
contain a space or a pointer to a parent node. You'll have to
represent parts of the search tree in addition to the queue in order
to make this work. Then, if you dequeue a node that doesn't have a
space, you follow the parent pointers up in the tree to find a node
with a space, and recompute the target node.
I'm not quite sure how this works in practice, as you'll have to
actually create a space for each node when you create it, to determine
its priority. I guess you'd then throw away the spaces for all nodes
except the best, or something similar.
Cheers,
Guido
More information about the gecode-users
mailing list


A list of things that one has done and wishes to do within given age period or wants to do before dying


The name "vnIIc" is a play on VNC ("Virtual Network Computing") and the Apple IIc for humor purposes, but the application does not use the VNC or RFB protocols. Apple IIc is a trademark of Apple Computer, Inc. VNC and RFB are registered trademarks of RealVNC Ltd.
The first version was a Windows application, written in 2008. See a video demonstration on YouTube.
Thanks to: Michael J. Mahon, Nick Westgate, David Wilson, David Schmenk, David Schmidt and the rest of the comp.sys.apple2.programmer gang!


Ryu is a Japanese fighting character. He is highly focused on his training, aiming to become the strongest he can. His credo is "To live is to fight and to fight is to live".
Languages
ENGLISH, MANDARIN, JAPANESE
Skills
KARATE ENERGY ATTACK SHORYUKEN WALKING BAREFOOT PLAYING VIDEOGAMES DOING BURGERS MASHING POTATOES COPYWRITING ACTING VOICEOVERS


Reduce 10000 points with 100 dimensions each. Open up the browser console to see progress while the embedding is being computed.


We are gathering the data to provide insights!
You have not completed any
{{ achievementType }}.
Please completed one to view it here...
card_membership
assignment
{{ assessment.title }}
emoji_events
SCORE : {{ assessment.score }}
SCORE : {{ assessment.score }}
Percentile : {{ assessment.percentile }}
{{ assessment.date | date }}


Let's Encrypt Cert Issue Site
This is used for SSL certificates issued by the Let's Encrypt's certbot.


Scott Brown leaves Virgil van Dijk in stitches as Celtic skipper teases old pal after latest top award
Brown loves a laugh but deadly serious when praising the player named the finest player in the world for Goal's 50 best in 2019 accolade.
by Graeme Young, https://www.dailyrecord.co.uk/authors/graeme-young/Scott Brown and Virgil van Dijk enjoyed a fun-filled reunion after Celtic's king prankster left his former team-mate in stitches with a video message
The £75m Liverpool defender spent two seasons with the Parkhead side and the Hoops skipper teased the Dutchman on whether or not he remembered him.
And while Brown loves a laugh, he was deadly serious when praising the player named the finest in the world for Goal 's 50 best in 2019 accolade.
But the 34-year-old couldn't resist a prank before dishing out the compliments.
The Celtic captain joked: "Hi Virgil, I'm Scott from Celtic, do you remember me?
"I don't think anybody really knew too much about him but then two, three months into the season the lads were this guy is a player.
"He just became the Rolls Royce of the team."
And those sentiments were echoed by current Hoops boss Neil Lennon who managed van Dijk during his first season at Parkhead.
He said: "He's the best in the world.
"He could go on and play for any club now but I think he looks very happy at Liverpool .
"And why wouldn't he be? Two Champions League finals and a great Premier League run last year and another one this year."
And the player himself detailed the vital role the Hoops played in helping him become recognised as the world's best defender.
Van Dijk admitted: "Celtic, what a time!
"You look at the team before you arrive, and I think everyone knows Scott Brown anyway so before I arrived I was like 'how will he be?'
"Will he be that crazy outside the pitch as he is on it?
'At Celtic, if you draw, it's not good enough.
"The game against Ajax in the Champions League in my first year the atmosphere was outstanding. It gives you that extra lift and it was very special."


Toggle nav
This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.
{{product.description}}
View details »


{% extends "default.html" %} {% block content %} {% if user.is_authenticated %}
Testing Camera in prog Please follow the rules and be good
You aren't supposed to be here


As some of you might know, I started my career as the first developer at a startup, way back in 2012. It was a challenging but rewarding experience, and I got to learn a lot and explore the full breadth of the software stack. The following are some learnings that I wish I could tell my younger self.
Prototype like your life depends on it
“I know you guys are restless to get started, but before you write a single line of code — Make a prototype and run it by your client”
I heard this line from one of the co-founders of a very successful software services company.  Always prototype, at least on paper. It’ll help everyone visualise what they’re building, and see issues and limitations before you even start on the implementation.
Image by Samuel Mann
Write a spec, and check it twice
Software is all about the spec. It defines the scope and the tests that need to pass to mark the work as done. A spec might be as simple as a user story followed by some acceptance criteria in the Gherkin format, but it’s very important for estimations, avoiding the dreaded scope creep, and writing high quality code.
A sample spec:
As a logged in user,
I want to access the Account page,
so that I can see my Account Settings
Acceptance criteria:
Feature: Access account settings page
Scenario: Janith accesses the account settings page
Given I am logged in as<EMAIL_ADDRESS>And I am in the home page
When I click on "Account" on the top menu,
Then I am navigated to the "Account" page,
And I can see my Account Settings.
Remember, you will most probably be your own QA, so write a solid automated test suite that covers these conditions.
Timebox, timebox, timebox
You probably won’t have a Project Manager, nor will anyone really care about Agile or sprints. The constant mantra will be “just get it shipped”. This is damaging in two aspects: a team without a welldefined end goal and a timeframe to achieve it in will drift and probably get demotivated, and you will not be able to set up a good measure of how much work your team is able to tackle in a given period of time--which will make it really difficult to draw up a project timeline.
Avoid this trap. Set up 1 or 2 week sprints, take up only stories that the team is confident they can achieve in that timebox, and have a retro at the end of each sprint to discuss what went well, what failed, and how the team can improve. Try your best to ship production code at the end of every sprint. It will give the team a sense of achievement, and that which is most valuable: customer feedback.
Know when to use Frameworks and Libraries
-
There are some terrible frameworks.
-
Often, code you write from the ground-up for a specific purpose will be faster and more performant.
Both of the points above a valid, and I avoided using PHP and frontend Javascript frameworks for the longest time. This cost us a lot in terms of delivery speed and maintainability, and especially made onboarding new developers hell. I still wonder how things would’ve turned out had I used — say, Laravel or Python with Flask, or KnockoutJS from the earliest days. We probably would’ve shipped a lot more features, and at much higher quality.
Read up, seek support
Look, when it’s a tiny startup and it’s just two junior devs fighting fires every day, you will miss out on a lot. You won’t have leads who will guide you on best practices and design patterns, or architects who explain why TDD is awesome, and why you should read Clean Code by Robert C. Martin.
It will be up to you to reach out: follow your favourite library authors on Twitter, subscribe to a few good tech blogs on Medium and turn on the “Daily Digest” email. Participate in the community and tech meet ups, and try to reach out to batch mates or seniors working in bigger companies for advice and tips. There are so many people willing to help if only you’d ask.
So yeah. Those are a few things I learned the hard way, and I wouldn’t trade it for the world. I hope you find it useful.


by Hannah
The best experience whilst I have been travelling has been spending the day at an Elephant Sanctuary called Elephant Haven. They rescue elephants that have had a lifetime of abuse or been forced to perform in a circus.  It was amazing to see how gentle these giants are. It was an amazing day and proves how elephants can be taken care of when someone gives them some love. I would definitely recommend visiting this sanctuary to have the best experience of your life.


We may use and share your information as we:
•
Treat you
•
Run our organization
•
Bill for your services
•
Help with public health and safety issues
•
Do research
•
Comply with the law
•
Respond to organ and tissue donation requests
•
Work with a medical examiner or funeral director
•
Address workers’ compensation, law enforcement,
and other government requests
•
Respond to lawsuits and legal actions
➤
See pages 3 and 4
for more information
on these uses and
disclosures
You have the right to:
•
Get a copy of your paper or electronic medical record
•
Correct your paper or electronic medical record
•
Request confidential communication
•
Ask us to limit the information we share
•
Get a list of those with whom we’ve shared
your information
•
Get a copy of this privacy notice
•
Choose someone to act for you
•
File a complaint if you believe your privacy
rights have been violated
➤
See page 2
for
more information on
these rights and how
to exercise them
Our
Uses and
Disclosures
Your
Rights
➤
See page 3
for
more information on
these choices and
how to exercise them
You have some choices in the way that we
use and share information as we:
•
Tell family and friends about your condition
•
Provide disaster relief
•
Include you in a hospital directory
•
Provide mental health care
•
Market our services and sell your information
•
Raise funds
This notice describes how medical information about
you may be used and disclosed and how you can get
access to this information.
Please review it carefully.
Your Information.
Your Rights.
Our Responsibilities.
Your
Choices
Notice of Privacy Practices
•
Page 1


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/postponed.20conferences.html ---
AITP just got postponed. TYPES-ITRS 2020 was cancelled too -- and it looks like Leo was due to speak there! It's a shame that we missed out on hearing what he had to say about Lean 4 (assuming he was going to talk about Lean 4!)
Do you when AITP will now be held?
They're going to try to reschedule to September.
@Johan Commelin Are you going to postpone https://math.commelin.net/2020/lftcm/ ? I'd prefer to know about this before buying tickets and applying for a visa.
@Yury G. Kudryashov Good question! I wish it were still too early to think about this... By when would you like to know this?
@Kevin Buzzard There are preparations for an online only TYPES workshop. Looking forward to Leo's talk there.
:-) Thanks for letting us know!
Hmm, I would be interested in participating. Please let us know if the streams will be publicly available.
Experiment here: Feedback welcome to<EMAIL_ADDRESS>https://crew.i-learn.unito.it/course/view.php?id=45
key: types2020
Is there anything we should try out?
@Gabriel Ebner not urgently, I think. Unless you're planning to do another online conference and want inspiration.
Ok, please keep us up to date if the online TYPES workshop happens!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC