Natural Language Processing: natural langauge classification, natural language generation, machine translation, low-resource language preservation
Machine Learning: deep learning and neural networks
Theoretical Computer Science: algorithms design and complexity analysis
Other: game theroy, computational finance, data visualization
| 1. Implement Data cleaning and joining on input: data of orders and shipping costs from warehouse. |
| 2. Develop advanced Last-area-first-fit algorithm for optimizing the size of cartons |
| 3. Modify multi-objective genetic algorithms for modelling the cartons sets having the lowest predictive annual shipping cost |
| 4. Implement a VBA tool applying those algorithms |
| 5. Run input on VBA tool, and output the dimensional for each carton from the optimal carton set |
Note: If you would like to know the details about this research, please contact me via email (The research paper is almost finished). |
| Semantic Processing - Quantifier Scoping |
This project introduces a new implementation of a quanfifier scoping algorithm. This algorithm models how neurons of our working memory deal with quantifer scoping of sentences. |
| Research Poster |
| Text Mining and Data Visualization |
This project is the current research project that I am working on. We are focusing on the structural pattern within I Ching and are discovering how the gua (卦) is related to fortune telling in I Ching Corpus. |
The related contribution, "Visualizing Philosophy - I Ching" (Author: Yvette Shen, Pei-yuan Tang, and Han-wei Shen) has been accepted for RSD7 conference. |
Another related contribution, “Visualizing Philosophy: A Modern Design Approach to Understand I-Ching” (Author: Yvette Shen, Han-wei Shen, has been accepted for presentation (and long paper publication) at the Information+ 2018 conference Pei-yuan Tang). |
| I-Ching Visualization V1 |
| Income US Analysis (2016) |
This project displays and compares the expenditures among all 5 income groups in the US. |
| Multidimensional Data Visualization |
This project uses three modes of visiualization on the data points of handwirtten digits from 0 to 10. All data are composed of 784 dimensional vectors, storing all pixels values of the pictures. We reduce the data and visualize all of them in a plane (2 dimension). Hovering over the data point will display the original greyscale image (combination of its all pixel values). The "group" option forces all data points in their own clusters as concentric circles. The "TSNE" option displays all data points scattered by the TSNE dimension-reduction method, while the "PCA" option displays all data points scattered by the PCA dimension-reduction method. |
| Urban Structure |
This project is an user interactive site for discovering the cycle of buildings of Columbus, Ohio. We use all 300 thousands data to develop a user interactive website for you to view the building data. It is a group project and we have 5 people in our group. Design: Savanah, Developers: Zhenyang(35%), Me(Pei-yuan 35%), Rob (20%) and Andres (10%). We have a main page, a user interactive map page, and a data analysis page (user interactive as well). |
| Tutorial |
It is a tutorial for DBpedia that can be used for learning the relation-based database structure. |


Sage – a global online learning community, filled with free, high-quality online education resources to help you develop essential, certified workplace skills.


Welcome
Today's Progress
Calendar
Settings
About
FAQ
Today's Progress:
Thursday, August 22, 2019
Home
Today's Progress
Ranking of the Day
Great
Good
Ok
Bad
Terrible
Hours Slept Last Night
Exercise Today
Time Spent Studying (hrs)
Make Bed
Cups of Water Drank
Read Today
What book was it?
Wash the Dishes


Use images with block compression (DDS images) in a Windows Store JavaScript app. DDS images can be used like any other format like JPEG or PNG; for example in an Image tag or in a Canvas 2D Context.
IMPORTANT: Before running this JavaScript project, you must first do the following:
Refer to readme.txt located in the root of the solution for more information.
HTML Canvas with an opaque (BC1) wood texture background and an animated transparent (BC3) guitar.


Friends
Friends Request
See all
Unknown
2 Mutual Friends
Confirm
Delete
Unknown
4 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete
See More
Unknown
2 Mutual Friends
Confirm
Delete
Unknown
4 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete
Unknown
5 Mutual Friends
Confirm
Delete


Watercolor (American English) or watercolour (Commonwealth and Ireland), also aquarelle (French loanword), a diminutive of the Latin for water, is a painting method in which the paints are made of pigments suspended in a water-based solution. Watercolor refers to both the medium and the resulting artwork.
The traditional and most common support material to which the paint is applied for watercolor paintings is paper. Other supports include papyrus, bark papers, plastics, vellum, or leather, fabric, wood, and canvas. Watercolor paper is often made entirely or partially with cotton, which gives a good texture and minimizes distortion when wet.
In East Asia, watercolor painting with inks is referred to as brush painting or scroll painting. In Chinese, Korean, and Japanese painting it has been the dominant medium, often in monochrome black or browns.


View hidden fields while debugging.
A short one today. A typical pattern for Notes and Domino forms is to have hidden fields at the beginning and end of a form. These hidden fields store lookups, IDs, relations and all sorts of things. As a unwritten convention these fields are marked red and hidden from reading and editing (basically all hidewhen options are checked). While developing or troubleshooting applications it is important that you can see the values of these fields. So instead of checking all hide options I use the following approach:
I create a hidden Computed For Display field of type number named "IsNotDebug". I put this formula in:
@IsNotMember("[Debug]"; @UserRoles)
Then I use a formula in the hide when section: IsNotDebug. Is is kind of plain English: Hide when is not Debug.
By adding or removing the role [Debug] from your user-id you can switch on/off the display of the hidden fields. If you do a lot of local development, you might opt for a Environment variable instead of a role.
A final tip: To make things look better I often find hidden fields neatly put into tables with some explanations in the second column. This is not a good idea. Hide when formulas are executed separately for every paragraph in every cell. So you create a lot of extra computation. Best is to have the fields in a single paragraph (newlines with Shift-Control are ok). I use the pattern
Field : [the field] (Comment) | <-this could be just a bar or a new line.
I create a hidden Computed For Display field of type number named "IsNotDebug". I put this formula in:
@IsNotMember("[Debug]"; @UserRoles)
Then I use a formula in the hide when section: IsNotDebug. Is is kind of plain English: Hide when is not Debug.
By adding or removing the role [Debug] from your user-id you can switch on/off the display of the hidden fields. If you do a lot of local development, you might opt for a Environment variable instead of a role.
A final tip: To make things look better I often find hidden fields neatly put into tables with some explanations in the second column. This is not a good idea. Hide when formulas are executed separately for every paragraph in every cell. So you create a lot of extra computation. Best is to have the fields in a single paragraph (newlines with Shift-Control are ok). I use the pattern
Field : [the field] (Comment) | <-this could be just a bar or a new line.
Posted by Stephan H Wissel on 14 June 2007 | Comments (5) | categories: Show-N-Tell Thursday


Journalism code ticket + travel scholarships
The journalism code community is diverse and distributed across the globe. Events can be a great opportunity to get together in person to chat and collaborate, but sometimes the cost of travel can be a hardship. To help defray the cost of attending conferences and other technical events, OpenNews offers Ticket + Travel scholarships.
Whether you’re a newsroom developer at a small organization with a strained professional development budget or a freelance developer eager to learn more about journalism code, we created this program to help you attend events. Our next application will open on March 7.
What we’re offering
- $500 toward the cost (travel, lodging, etc.) of attending an event on journalism technology, or an open source event where you’ll bring a journalism connection.
- Full coverage of your event registration fee (capped at $1,000, but most events in the community cost much less).
When applications are open
Our first batch of applications closed on January 13. We will have two more applications this year:
- Applications will open March 7 and close on March 17. We will notify all applicants by March 24.
- Applications will open June 26 and close on July 7. We will notify all applicants by July 14.
Who should apply
- Anyone who is part of the journalism code community such as developers, designers, and data analysts working in newsrooms.
- Anyone interested in learning more about the journalism code community such as people working in other areas of technology who want share their development, design, or analysis skills with journalists.
- People of color, women, and other under-represented groups in technology are strongly encouraged to apply.
What happens after you apply
OpenNews staff will review applications and inform applicants of their application status by the notification date.
What happens after the conference
You tell us how it went! We’ll send you a short follow-up survey and will be excited to check out any blog posts or code repos that come out of your participation in the event.
FAQ
What types of events are covered for travel?
If there’s an event that you think would help increase your participation in the journalism code community, you should tell us about it and apply for the scholarship.
Can people outside of the US apply for the scholarship?
Yep! The application is open to everyone. We welcome applications from any country. And you can apply for a scholarship to attend events outside of the US, too.
When will I receive my scholarship?
When we notify scholarship recipients, we will include information about how to receive the scholarship funds. In short, you will need to send us an invoice and a W-9, and our administrators will process the payment. It may take a month or so for check processing.
What if I need more than $500 for my travel?
We’re able to offer $500 scholarships at this time. Many events and professional organizations offer their own scholarship programs as well. Or maybe your event has things like a room share board to help cut down on costs.
Why are you offering this scholarship?
We know that a lot of important work, sharing, and learning happens at in-person events. It’s not easy for everyone to get to those events though, no matter how valuable they may be. We know that travel costs can be a hardship, and offer this scholarship as a way to help mitigate that.
How do you decide who will receive a scholarship?
OpenNews staff reviews all applications. We prioritize applications from members of communities under-represented in journalism and technology, as well as from people who would be unable to speak at or majorly contribute to an event without the scholarship.
What about your conference, SRCCON?
We run a separate scholarship process for that event and will have more details about that later this year.
Questions?
If you have any additional questions that we didn’t cover here, just email us.


Credit Card Fraud Detection: a Realistic Modeling and a Novel Learning Strategy
A. Dal Pozzolo, G. Boracchi, O. Caelen, C. Alippi and G. Bontempi
IEEE Transactions on Neural Networks and Learning Systems (TNNLS), 2017.
[pdf]
SCARFF: a Scalable Framework for Streaming Credit Card Fraud Detection with Spark
F. Carcillo, A. Dal Pozzolo, Y. Le Borgne, O. Caelen, Y. Mazzer and G. Bontempi
Information Fusion, Elsevier, 2017.
[pdf]
2015
When is undersampling effective in unbalanced classification tasks?
A. Dal Pozzolo, O. Caelen, and G. Bontempi
Machine Learning and Knowledge Discovery in Databases (ECML-PKDD), Porto, Portugal, 2015
[Paper][Slides][Poster]
Calibrating Probability with Undersampling for Unbalanced Classification
A. Dal Pozzolo, O. Caelen, R. A Johnson and G. Bontempi
IEEE Symposium Series on Computational Intelligence (SSCI), Cape Town, South Africa, 2015.
[Paper][Slides]
Credit Card Fraud Detection and Concept-Drift Adaptation with Delayed Supervised Information
A. Dal Pozzolo, G. Boracchi, O. Caelen, C. Alippi and G. Bontempi
International Joint Conference on Neural Networks (IJCNN), Killarney, Ireland, 2015.
[Paper][Slides]
2014
Learned lessons in credit card fraud detection from a practitioner perspective
A. Dal Pozzolo, O. Caelen, Y. Le Borgne, S. Waterschoot, and G. Bontempi
Expert Systems with Applications, vol. 41, no. 10, pp. 4915–4928, 2014.
[pdf]
Using HDDT to avoid instances propagation in unbalanced and evolving data streams
A. Dal Pozzolo, R. A Johnson, O. Caelen, S. Waterschoot, N. V Chawla, and G. Bontempi
International Joint Conference on Neural Networks (IJCNN), Beijing, China, 2014.
[Paper][Slides]
2013
Racing for unbalanced methods selection
A. Dal Pozzolo, O. Caelen, S. Waterschoot, and G. Bontempi
International Conference on Intelligent Data Engineering and Automated Learning (IDEAL), Hefei, China, 2013.
[Paper][Slides][Rpackage]
Thesis
Adaptive Machine Learning for Credit Card Fraud Detection
A. Dal Pozzolo, and G. Bontempi
PhD in Computer Science at Universite Libre de Bruxelles, 2015
[pdf][Slides]
Comparison of Data Mining Techniques for Insurance Claim Prediction
A. Dal Pozzolo, G. Moro, and G. Bontempi
Master of Science in Applied Statistics and Actuarial Science at Universita di Bologna, 2011
[pdf]


A useful port of call is making short hops down the Bay of Biscay coast. This is a holiday town about 30nm north of Biarritz.
Position 43° 39'18"N, 01° 26'55"W (port entrance)
The entrance to the port is narrow and probably not safe to enter in strong on shore winds or in any swell.
There is a marina here.
New port added February 2013.


Oops...
It looks like your internet connection was too unstable to automatically update Blockbench.
Download and run the installer to update manually. Your custom settings will remain untouched.
- {{ mode.name }}
It looks like your internet connection was too unstable to automatically update Blockbench.
Download and run the installer to update manually. Your custom settings will remain untouched.
{{ format.description }}


| | |
- calcColor(col1, col2, u, min_u, max_u)
- Args:
col1: String of first color
col2: String of first color
u: Interpolation parameter in range [min_u, max_u]
min_u
max_u
Return:
Hex string interpolated color
- cartesian2Polar(x, y)
- Return the polar coordinates corresponding to the given cartesian coords.
Args:
x: Cartesian x coordinate
y: Cartesian y coordinate
Return:
Polar coordinate tuple (r, theta) with theta in degrees [0,359]
- centerOfMass(positions, weights)
- Calculate the center of mass of a set of weighted positions.
Args:
positions: A list of (x,y,z) position tuples
weights: A list of position weights
Return:
A tuple of floats representing the coordinates of the center of mass.
- cos(...)
- cos(x)
Return the cosine of x (measured in radians).
- degrees(...)
- degrees(x)
Convert angle x from radians to degrees.
- mapRangeParam(u, min_u, max_u, min_v, max_v)
- Linearly map a floating point value u in the range [min_u, max_u] to a value
v in the range defined by [min_v, max_v].
Args:
See description.
Return:
Floating point value v
- midTheta(theta1, theta2)
- minNetDiff(a, b)
- Returns an offset s that minimizes (zeros) the net difference between the
equal length lists a and b. Net difference is the sum of all pairwise
differences: a_elem - (b_elem + s).
Let n = number of elements in a (and in b)
E = -(n * s) + sum(a) - sum(b)
Args:
a: A list of values
b: A list of values
Return:
A floating point offset
- polar2Cartesian(r, theta)
- radians(...)
- radians(x)
Convert angle x from degrees to radians.
- sin(...)
- sin(x)
Return the sine of x (measured in radians).
- sqrt(...)
- sqrt(x)
Return the square root of x.
- theta2Quadrant(theta)
- topRange(l, s)
- Given a list of values, determines a range in which the values in the top
s% must lie.
Args:
l: A list of values
s: A percentage
Return:
A tuple (lowest value that could be in top s%, max value in l)
|


Your browser does not support HTML5 video.
Score
{{routineObj.score}}
Username
{{routineObj.submittedBy}}
Sports
{{routineObj.sport}}
Level
{{routineObj.level}}
Event
{{routineObj.event}}


| 063:004 Khan | : |
And when you look at them, their bodies please you; and when they speak, you listen to their words. They are as blocks of wood propped up. They think that every cry is against them. They are the enemies, so beware of them. May Allah curse them! How are they denying (or deviating from) the Right Path. |
| 063:004 Maulana | : |
And when thou seest them, their persons please thee; and if they speak, thou listenest to their speech. They are like pieces of wood, clad with garments. They think every cry to be against them. They are the enemy, so beware of them. May Allah destroy them! How they are turned back! |
| 063:004 Pickthal | : |
And when thou seest them their figures please thee; and if they speak thou givest ear unto their speech. (They are) as though they were blocks of wood in striped cloaks. They deem every shout to be against them. They are the enemy, so beware of them. Allah confound them! How they are perverted! |
| 063:004 Rashad | : |
When you see them, you may be impressed by their looks. And when they speak, you may listen to their eloquence. They are like standing logs. They think that every call is intended against them. These are the real enemies; beware of them. GOD condemns them; they have deviated. |
| 063:004 Sarwar | : |
Their physical appearance attracts you when you see them and when they speak, you carefully listen to them. In fact, they are like propped up hollow trunks of wood (They are so cowardly) they think that every cry which they hear is against them. They are the enemy, so beware of them. May God condemn them. Where are they turning to, leaving behind the Truth?. |
| 063:004 Shakir | : |
And when you see them, their persons will please you, and If they speak, you will listen to their speech; (they are) as if they were big pieces of wood clad with garments; they think every cry to be against them. They are the enemy, therefore beware of them; may Allah destroy them, whence are they turned back? |
| 063:004 Sherali | : |
And when thou seest them, their figures please thee; and when they speak, thou listenest to their speech. They are as though they were blocks of wood propped up. They think that every cry is against them. They are the enemy, so beware of them. ALLAH's curse be upon them, how are they being turned away from the truth ! |
| 063:004 Yusufali | : |
When thou lookest at them, their exteriors please thee; and when they speak, thou listenest to their words. They are as (worthless as hollow) pieces of timber propped up, (unable to stand on their own). They think that every cry is against them. They are the enemies; so beware of them.  How are they deluded (away from the Truth)! |
Concepts/Themes Covered: الإيمان > الإيمان بالله > النفاق Faith> Belief In Allah> Hypocrisy
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


| Fig 1 |
Geographic distribution of the four subspecies of Oncomelani ... |
| Fig 2 |
Minimum volume ellipsoids occupied by the four subspecies of ... |
| Fig 3 |
Distributions of model evaluation results (AUC ratios) of in ... |
| Fig 4 |
Predicted potential distributional changes for Oncomelania h ... |
| Fig 5 |
Potential distributional changes for the subspecies Oncomela ... |
| Fig 6 |
Future transmission potential of schistosomiasis projected o ... |


This visualisation offers an overview of the behaviour of particles in rotating frames of reference, as presented in the year 1 Physics mechanics course.
Central to our understanding of rotating frames is idea that if a body rotates in the "lab frame", the rotating frame is the one in which the body is stationary. This is illustrated in the graphics to the left - the leftmost image shows the Earth's rotation in the "lab frame", and the one on the right shows how, in the Earth frame, the sun appears to rotate about the Earth.
Mathematically, it is useful to consider $\mathbf{r}$, the vector distance from the centre of the rotating body (the origin of the rotating frame). We also define a vector $\mathbf{\omega}$ to have the magnitude of the rotation rate (in radians per second) and the direction determined by applying the right hand rule to the rotation. We can now describe the graphics to the left mathematically: any point that is stationary in the rotating frame moves with a tangential speed of $\mathbf{v}=\mathbf{\omega}\times\mathbf{r}$. This term forms the basis of the derivation shown in the next slide.


Restaurants and Foodism
From European quality and charm to the best poutine money can buy.
Learn MoreAcademia and International Accreditations
Learn about top world learning facilities and Educational Programs.
Learn MoreFrom European quality and charm to the best poutine money can buy.
Learn MoreLearn about top world learning facilities and Educational Programs.
Learn More


Comment Model.
More...
|
|
def | __unicode__ (self) |
| |
|
def | __str__ (self) |
| |
|
def | current (self) |
| | Get latest version of users comment.
|
| |
| def | content (self) |
| | Get latest version of users comments content. More...
|
| |
|
def | edit (self, newcontent) |
| |
|
|
| topic = ForeignKey(Topic, on_delete=CASCADE, related_name='comments') |
| |
|
| profile = ForeignKey(Profile, on_delete=CASCADE, related_name='comments') |
| |
|
| vote_count = IntegerField(default=0) |
| |
§ content()
| def MeancoApp.models.comment.Comment.content |
( |
|
self | ) |
|
Get latest version of users comments content.
The documentation for this class was generated from the following file:
- C:/Users/Ahmet Ercan Tekden/Documents/bounswe2016group12/WEB-BACKEND/Meanco/MeancoApp/models/comment.py


Id: 168
Name: Jackie
Status: Alive
Species: Alien
Type: Gazorpian
Gender: Female
OriginName: Gazorpazorp
OriginUrl: https://rickandmortyapi.com/api/location/40
LocationName: Gazorpazorp
LocationUrl: https://rickandmortyapi.com/api/location/40
Image: https://rickandmortyapi.com/api/character/avatar/168.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/7']
Url: https://rickandmortyapi.com/api/character/168
Created: 2017-12-29T17:14:03.430Z


GIScene.Scene Class
The Scene Object
Constructor
GIScene.Scene
-
containerDivId
-
[config]
Parameters:
-
containerDivId
StringThe id of an HTMLDivElement which will be used as container for the webgl canvas.
-
[config]
Object optionalAllowed values for config are:
cameratype: 'perspective'|'ortho'
near: {Number} far: {Numver} fov: {Number}
width: {Integer} height: {Integer}
animate:{Boolean}
center: {THREE.Vector3} positionFromCenter: {THREE.Vector3} projection: {String} units: {String} offset: {GIScene.Coordinate3} skyColor: {THREE.Color} fog: {THREE.Fog}
Item Index
Methods
Methods
addControl
()
Adds a control to the scene
addEventListener
-
eventType
-
listener
inherited from THREE.EventDispatcher
Parameters:
-
eventType
String -
listener
Functionfunction, to be called when the event is dispatched
addLayer
()
Adds a layer to the scene
dispatchEvent
-
event
inherited from THREE.EventDispatcher
Parameters:
-
event
Object
Example:
this.dispatchEvent( { type: 'beforeRender', content: anythingToBePassedToTheListeners } );
disposeLayer
-
layer
Deletes all layer objects and the layer from memory
Parameters:
-
layer
GIScene.Layer
getLayerById
-
id
Parameters:
-
id
String
Returns:
result returns the layer found by id or null
getLayerDescendants
-
filter
get all descendants of the layers. Optionally the layers can be filtered by an array filter function.
Parameters:
-
filter
FunctionAn array filter function that is applied to each layer object of the scene. Should return true or false.
Example:
//get only descendants of layers that are not Helper Layers
scene.getLayerDescendants(function(e,i,a){
return !(e instanceof GIScene.Layer.Helper);
}
);
getObjectsBy
-
callback
get Objects by a evaluation function which recursively tries to match the objects of the scene
Parameters:
-
callback
Function
Returns:
matches
hasEventListener
-
eventType
-
listener
inherited from THREE.EventDispatcher
Parameters:
-
eventType
String -
listener
Functionfunction, to be removed from the event
removeControl
()
Removes a control from the scene
removeEventListener
-
eventType
-
listener
inherited from THREE.EventDispatcher
Parameters:
-
eventType
String -
listener
Functionfunction, to be removed from the event
removeLayer
()
Removes a layer from the scene
setCenter
-
vector
-
positionFromCenter
-
duration
Jump to another place in the scene.
Parameters:
-
vector
THREE.Vector3vector in scene coordinates
-
positionFromCenter
THREE.Vector3vector to place the camera at some distance from the point of interest (vector)
-
duration
Numberduration in milliseconds. if undefined or > 0 an animation is perforemed from the current to the specified new center. Set this to 0 to jump immediately to the new location.
setFaceCulling
-
faceCullingMode
Sets the face culling mode for the whole scene
Parameters:
-
faceCullingMode
THREE.FrontSide | | THREE.BackSide | | THREE.DoubleSide | | 'default'
setShading
-
shadingMode
Sets the shading mode for the whole scene
Parameters:
-
shadingMode
THREE.FlatShading | | THREE.SmoothShading | | 'default'
setTexturing
-
texturingMode
Sets texturing of on or off for the whole scene
Parameters:
-
texturingMode
Mixedcan be: {String} 'default' | {boolean} true | {boolean} false
setVertexColors
-
vertexColorMode
Sets the vertex color mode for the whole scene
Parameters:
-
vertexColorMode
THREE.NoColors | | THREE.FaceColors | | THREE.VertexColors | | 'default'
setWireframe
-
wireframeMode
Set the wireframe property for the whole scene
Parameters:
-
wireframeMode
Mixedcan be {String} 'default' | {boolean} true | {boolean} false
startAnimation
()
Start animation frame and render loop
stopAnimation
()
Stop animation frame and render loop
viewFrom
-
relativePosition
Function to move camera to predefined relative positions from Scene.center
Parameters:
-
relativePosition
Stringallowed values are 'left','right','front','back','top','bottom'
Properties
camera
THREE.CombinedCamera
The active camera. {THREE.CombinedCamera} can be switched from perspective to orthographic and vice versa
config
Object
The config which is used to initialize the Scene. Merged from defaults and passed config Object.
defaults
Object
private
The default config which is used when no config object is provided.
root
THREE.Scene
The scenegraph root node. Add {THREE.Object3D}-objects to this node. See THREE.js docs for further information
Events
addlayer
beforeRender
beforeRender Event will be executed directly before the render call in the render loop
beforeRender
beforeRender2 Event will be executed directly before the render call in the render loop
cameraChange
Fires whenever camera position changes
center
Fires after setCenter() completed
center
Fires after setCenter() completed


|
LiteSQL
0.3.17
|
An abstract base class of persistents objects. More...
#include <persistent.hpp>
Public Member Functions | |
| const Database & | getDatabase () const |
| returns reference to Database the object is in | |
| bool | isInDatabase () const |
| returns true if object is in database | |
| const Persistent & | operator= (const Persistent &p) |
| copies values and keeps fields unchanged | |
| Persistent (const Persistent &p) | |
| copies values and registers Field-objects to fields | |
| Persistent (const Database &_db, const Record &row) | |
| Persistent (const Database &_db) | |
| creates empty Persistent | |
| virtual void | onDelete () |
| virtual | ~Persistent () |
| empty | |
Static Public Member Functions | |
| static Split | getTablesFromFieldTypes (const std::vector< FieldType > &fdatas) |
| selectObjectQuery uses this to list tables used by Persistent More... | |
Protected Types | |
| typedef std::map< std::string, std::vector< pair< FieldType, std::string > > > | Updates |
Protected Member Functions | |
| std::string | insert (Record &tables, Records &fieldRecs, Records &values, const std::string &sequence) |
| executed when object is created into database | |
| void | update (const Updates &updates) |
| template<class T > | |
| void | updateField (litesql::Persistent::Updates &updates, const std::string &table, litesql::Field< T > fld) |
| void | prepareUpdate (Updates &updates, const std::string &table) |
| void | deleteFromTable (const std::string &table, const std::string &id) |
Protected Attributes | |
| const Database * | db |
| pointer to current Database Persistent is assigned to. More... | |
| bool | inDatabase |
| flag that indicates that object is stored in some database. More... | |
| int | oldKey |
| used to keep track of ID changes. More... | |
An abstract base class of persistents objects.
|
static |
selectObjectQuery uses this to list tables used by Persistent
| fdatas | field information |
Referenced by ~Persistent().
|
protected |
pointer to current Database Persistent is assigned to.
It is not a reference because Persistents must be assignable using operator=
Referenced by getDatabase(), operator=(), and Persistent().
|
protected |
flag that indicates that object is stored in some database.
It might be more accurate to use pointer in stead of boolean.
Referenced by isInDatabase(), operator=(), and Persistent().
|
protected |
used to keep track of ID changes.
When user changes Persistent object's identifier (ID, field 0), record has to be upcasted to change row id of all tables of object
Referenced by operator=(), and Persistent().


Learn how to work with VS Code snippets, including using default snippets, extension snippets, and even creating your own!
When writing the latest piece of code in Visual Studio Code (VS Code), do you ever catch yourself typing the same thing over and over again? Maybe you’ve typed a function declaration ten times today or defined the same set of parameters on command for the 20th time. Did you know you can get your time and sanity back using Visual Studio Code snippets?
Visual Studio Code snippets are small pieces of text stored in VS Code. You can invoke these snippets via a menu or key sequence and can save a ton of time when you find yourself repeating blocks of text with few differences between each occurrence.
For example, below you can see by simply typing wvb in VS Code, you have the option to expand a good deal more text, as indicated by the Write-Verbose
text in the box. This is the power of snippets!
Expanding VS Code snippets
In this article, you’re going to learn how to work with VS Code snippets, including using default snippets, extension snippets, and even creating your own!
This is going to be a walkthrough article to get your hands dirty. If you plan to follow along learning how to work with VS Code snippets, you’ll need VS Code version 1.17 or greater. For full disclosure, I’ll be using VS Code 1.38.1 on Windows.
You can download the latest version of VS Code for your particular platform here.
Before you can begin building your own snippets (which you will), it’s important to learn how to find the built-in snippets available to you.
You can find all snippets in the menu interface. The menu interface allows you to review and to use snippets. To access the menu, you can either press F1 or Ctrl-Shift-P, type “snippet" and press Enter. You will see a menu pop up similar to what you see below.
VS Code snippet list
When you hit Enter on Insert Snippet, you’ll see a drop-down of available snippets, as shown below. You can see there are quite a few snippets available by default and see more by scrolling down.
Snippet List
The drop-down of available snippets allows you to review the built-in snippets that are available through adding a language extension in VS Code.
You can use VS Code to work with many different languages. Each language has it’s own nuances. To support these differences, VS Code supports language extensions.
Language extensions provide VS Code with smart editing features for different programming languages. Language extensions give programming language additional support such as:
Extensions install through the VS Code Extension menu.
VS Code Extension menu
You can review the definition of these snippets given by the language extensions by opening the JSON file on Windows located at C:\Users
Extensions, in of themselves, have nothing to do with snippets but you’ll find the that many extensions come with built-in snippets you should be aware of.
When you select a snippet via the menu interface, you will see the contents of the snippet to the file. This process of converting the snippet definitions into useful code is called expanding.
When you call the prefix, VS Code reads that specific prefix and runs whatever instructions you define in the snippet. These instructions can vary from snippet to snippet. This entire process of calling, converting, and inserting of the snippet is called expanding.
Some snippets come, by default, in VS code but when you install an extension, they sometimes come with snippets of their own. Examples of extensions with included snippets are the Python extension from Microsoft, the PowerShell extension from Microsoft, and the C# extension from Microsoft.
These extensions are normally installed in Windows under the C:\Users
The folders for the extensions follow the ms-vscode.- naming convention. Each of these folders contains a snippet folder that has the snippets that are included with the extension.
Contents of C:\Users
To demonstrate using an extension snippet, let’s take the PowerShell extension for example. This extension comes with a couple of useful snippets called region and for to expedite creating PowerShell region blocks and *for* loops.
Let’s say you need to create a for loop in a PowerShell script enclosed in a region block. The code to do this is shown below. The code in the screenshot below is 50 characters long and creates a for loop inside a region block that iterates over the numbers 1 to 10.
_For Statements With Region Block_s
Rather than typing out every single character in this example, you can use two snippets that come installed with the PowerShell extension from Microsoft called region and for.
Take a look below to see how easy it is to use each of these snippets to save a ton of typing!
Snippet in Action
You do not have to limit yourself to the snippets that come with VS Code itself or that come with extensions. Perhaps the existing extensions don’t contain the code layout that you need or you want to format these snippets yourself. Lucky for you, you can create your own snippets! In this section, you’ll see just how to do that.
To create a custom snippet, open your User Snippets in VS Code by clicking Files → Preferences → User Snippets. This will open up the snippet language selection scope for you. This is where you can specify a language in which you want to create the snippet. You can see an example of what this looks like in the screenshot below.
By choosing a language, VS Code will create a language.json file in C:\Users
Snippet Language Scope
The languages you see available to you may differ from what you see above. In the above VS Code installation, many language extensions have already been installed.
Find the language that you want to create the snippet for and hit Enter to open up the language JSON file. This file is where your custom snippets will get stored, and it is here you can create your custom snippets.
There are four data items to specify for a custom snippet:
Example snippet definition of the For statement
Let’s see what it takes to create a custom snippet for the Python programming language. In this example, dt prefix will invoke a custom Python snippet. This snippet will print a message with the current time pre-populated.
First open the snippet language selector, type Python, and hit Enter to create a python.json file. This will bring up a python.json file in the Windows C:\Users
You can see its default state in the image below.
Default Python snippets JSON
Now it’s time to begin editing the JSON file. First, define the name and prefix (dt). Snippet prefixes are short and clear as this is the value typed to call the snippet. The shorter the snippet prefix, the fewer characters to type when you want to call it.
You can see an example an example of what this looks like below.
Snippet prefix
The body contains the code that will be expanded when the snippet is called. This code can be simple text and comments. It can also have other functions that you’ll see in later sections. If the body has many lines, there are a few gotchas you’ll need to watch out for.
You can see an example of what the example snippet body looks like below.
Snippet body
The description is a message describing the prefix as seen below that’s defined below the body.
Snippet description
The description will be shown below the prefix in the snippet list and provides more information on what the snippet does. It also helps differentiate the snippet from similar ones created.
Below is an example screenshot of snippets identifying prefixes and descriptions.
Example of prefix and description
If you don’t already have any custom Python snippets defined when you’re done creating the snippet you should have a python.json file that looks like the below code snippet.
{
"DateTime Snippet": {
"prefix": "dt",
"body": [
"import datetime",
"dt = datetime.datetime.now()",
"print(f\"The time is {dt} and this is a message\")"
],
"description": "Prints a message with current time"
}
}
Save this JSON file and now the custom snippet is available in any Python file in VS Code.
Now when you open a Python tab and type the prefix dt, the custom snippet below appears. Hitting Enter will expand the snippet body into the Python tab.
Custom Snippet in Action
Snippets are not isolated to the words you define in the snippet body. Snippets also can include text from the file you are calling them from.
VS Code has internal variables you can use. These are placeholders that take currently highlighted text and inserts it into the snippet. For example, by putting the variable $TM_SELECTED_TEXT
in the snippet, you can show the selected text. Check out the VS Code Variables Reference page for a full breakdown of all internal VS Code variables.
To demonstrate, let’s create a snippet that simply creates a line to output the selected text to the console called log-it.
Open the snippet language selector, type JavaScript, and hit Enter to create a javascript.json file. This file will look similar to the python.json file created in the previous section. Although this time, it has sample Javascript code instead of Python code. You can its default state in the screenshot below.
Default JavaScript JSON file
Now create a snippet using the following JSON:
{
"Print selected line to console": {
"prefix": "log-it",
"body": [
"console.log('$TM_SELECTED_TEXT');"
],
"description": "Log highlighted text output to console"
}
}
Save this JSON file and you now can use this snippet in your JavaScript files.
When you call this snippet with highlighted text, it will replace $TM_SELECTED_TEXT
with whatever text you have highlighted. When you call this snippet without highlighted text, $TM_SELECTED_TEXT
will be empty. You can see this in action in the screenshot below.
JavaScript $TM_SELECTED_TEXT
Snippet in Action
So far, the examples you’ve seen have been complete when called. Even the JavaScript assumes you’ve highlighted text beforehand. But what about the cases where you need to type values into the snippet after it’s called?
What if you want to type the value in the console.log()
instead of using the highlighted text? What about if you want to type in various places in the snippet?
In this section, you’ll learn how to use tab stops to enable you to type text into the produced code the snippet expands to. Tab stops are set places in your snippet that the cursor will go to. These places get visited in order each time that you press tab. With these tab stops, you can type values into the snippet after it gets expanded.
Tab stops, defined by using the snippet variables $0
, $1
, $2
, and up in the snippet body, specify to the snippet where your cursor will go next when you call your snippet and hit tab.
The tab stops follow normal ordering (1 follows 2 follows 3, etc.) with one exception: Tab stop 0 is the place the cursor will be on after all the other tab stops. To demonstrate this, the snippet below expands to a Write-Output
message with the current date and a place for more text.
This body
with two tab stops
$1
at the end of the Write-Output
message$0
on the next line so the snippet will end on a blank line
{ “DateTime Snippet PS": { “prefix": “dtPS", “body" : [ “Write-Output -Message"The time is $((Get-Date).ToLocalTime()) and $1"“,"$0" ] “description": “PSCustomObject with 3 lines" } }
Save this snippet and call it by typing the prefix dtPS in a PowerShell file.
When the snippet expands, your cursor jumps to the position of tab stop 1. From here, add the value or code that you want and press tab to jump the cursor to the next tab stop. This will continue all the way until you have gone through all the tab stops you specified.
You can see this in action in the screenshot below.
Tab stops
While tab stops are great for a start, what if you need specific values usually in those spots but want the ability to change them, if necessary? Now it’s time to include default values.
The example above had a tab stop, but when the snippet expanded, there was no text in its place. The cursor jumped to the tab stop location and then the user had to take over.
If only there was a way that a value could be where the tab stop is—that way, the snippet could expand and that value will be expanded with it. When the tab stop gets to that location, the default value could get overwritten or it can get tabbed past.
Let’s check out how to add default values to custom snippets. You’ll do so by editing the above PowerShell snippet JSON file.
To start, open the snippet language selector, choose PowerShell, and change the tab stops from $1
to ${1:this is my default message}
. The value after the colon becomes the default value. This value is expanded with the snippet.
When that tab stop is hit, two things can happen. The default value can be overwritten, or it can be tabbed past and it will keep its default value.
Below you can see the change in the body.
{
"DateTime Snippet PS" {
"prefix": "dtPS",
"body" : [
"Write-Output -Message \"The time is $((Get-Date).ToLocalTime()) and $1{1:this is my default message}\"",
"$0"
],
"description": "PSCustomObject with 3 lines"
}
}
Once updated and saved, these default values are expanded and also show up in the IntelliSense window when called, as shown in the screenshot below.
Snippet with Default Values
Default messages are good examples of what you can do with tab stops. Tab stops also give you the option of choice. In the next section, you’re going to see an example of adding choices to your tab stops.
Tab stops are not limited to having a default value or no value at all. They can be defined in the VS Code snippet definition to give the user options when the snippet expands as well.
Perhaps you have a situation where you want to choose a different value or command in a snippet. Rather than creating three different snippets with different choices, you can edit the snippet to present a choice with a tab stop, as shown in the screenshot below.
Snippet with choices
Tab stops will present a choice when the following syntax is used in the body of the snippet:
${N|Choice1,Choice2,Choice3[,Choice]|}
The tab stop shown above has been modified to give the choice of:
Write-Output
Write-Warning
Write-Error
This was done by placing two pipe characters ( | ) after the tab stop. Choices are put inside the pipe characters, separated by commas. You can see this in the code block below.
${1|
Write-Output -Message \"The time is $((Get-Date).ToLocalTime()) and this is my default message\",
Write-Warning -Message \"The time is $((Get-Date).ToLocalTime()) and this is my default message\",
Write-Error -Message \"The time is $((Get-Date).ToLocalTime()) and this is my default message\"
|}
Below you can see the example snippet.
{
"DateTime Snippet PS" {
"prefix": "dtPS",
"body" : [
"Write-Output -Message \"The time is $((Get-Date).ToLocalTime()) and this is my default message\", Write-Warning -Message \"The time is $(Get-Date).ToLocalTime()) and this is my default message\", Write-Error -Message \"The time is $(Get-Date).ToLocalTime()) and this is my default message\"|}",
"$0"
],
"description": "PSCustomObject with 3 lines"
}
}
When the custom snippet expands now, the choice of which option to choose will appear in an IntelliSense window, as seen in the screenshot below.
From here, you can select the choice you want and watch it get expanded out into that choice. In our example screenshot below, the entire line of code is replaced with the option to choose from three different Write commands, and it shows that each one can be called and run without issue.
Snippet With Choice in Action
Custom snippets can be simple text or code. They can have tab stops so you can include messages, default values, or choices, as well as highlighted text.
It doesn’t have to be an arduous task of typing out every single character of every single code block. With snippets, you don’t have to remember the exact syntax for a for, a foreach, or a switch statement every time. Snippets are the perfect fit for this niche.
I’ve shown Python, JavaScript, and PowerShell snippets in this post. VS Code snippets are available for many, many more languages. Your limits are only what you use and what you can think of!


Interested in hiring Canova Construction? Please send an email to<EMAIL_ADDRESS>for more information.
Our brochure:
--- layout: default ---
Interested in hiring Canova Construction? Please send an email to<EMAIL_ADDRESS>for more information.
Our brochure:
Canova Construction
20 Prospect Street
Marblehead, MA 01945
781-990-3472
781-990-3649


Gets the devices IP address. ## Syntax
getIP(source: <#Type (WFIPAddressSourceOption)#>, type: <#Type (WFIPAddressTypeOption)#>)
getIP(source: External, type: IPv4)


Located on the south-west coast of Western Australia about 150nm south of Perth, Augusta is sited where the Blackwood River emerges into Flinders Bay. It is the nearest town to Cape Leeuwin, on the farthest south-west corner of the Australian continent.
Position 34.312°S, 115.159°E.
Work commenced in October 2011 for a new $25 million boat harbour at Flat Rock, about four kilometres south of the town of Augusta, in Flinders Bay. A sheltered boating facility was very much needed here.
The project included the construction of two breakwaters built to create a protected harbour basin accommodating a four-lane boat launching ramp; two boat-holding jetties; and a service jetty.
Construction was completed November 2014.
Last updated January 2015.


Drinks
Caffeine
If you're pregnant, limit the amount of caffeine you have to 200 milligrams (mg) a day. This is about the same as 2 mugs of instant coffee.
High levels of caffeine in pregnancy can result in babies having a low birthweight, which can increase the risk of health problems in later life. Too much caffeine can also cause a miscarriage.
What has caffeine in it?
Caffeine is found naturally in some foods and drinks, such as:
It's also added to:
- energy drinks
- cold and flu remedies
- some soft drinks, such as cola
Should I avoid caffeine in pregnancy?
Green tea can contain the same amount of caffeine as regular tea.
Some cold and flu remedies also contain caffeine. Talk to your midwife, doctor or pharmacist before taking these remedies.
Reducing your caffeine intake
Try water, fruit juice, or decaffeinated tea or coffee. Limit the amount of energy drinks you have, as they can be high in caffeine.
If you occasionally exceed the recommended limit, don't worry. The risks are quite small.
Always talk to your midwife, pharmacist or another healthcare professional before taking any medicines in pregnancy, including cold and flu remedies.
You don't need to cut out caffeine completely, but don't have more than 200mg a day.
The approximate amount of caffeine found in food and drinks is:
- one mug of instant coffee: 100mg
- one mug of filter coffee: 140mg
- one mug of tea: 75mg
- one can of cola: 40mg
- one 250ml can of energy drink: 80mg (larger cans of energy drink may have up to 160mg caffeine)
- one 50g bar of plain (dark) chocolate: most UK brands contain less than 25mg
- one 50g bar of milk chocolate: most UK brands contain less than 10mg
So, if you have one can of cola and one mug of filter coffee, for example, you have reached almost 200mg of caffeine. Don't worry if you occasionally have more than this amount – the risks are small.
To cut down on caffeine, try decaffeinated tea and coffee, fruit juice or mineral water instead of regular tea, coffee, cola and energy drinks.
Herbal teas in pregnancy
There's little information on the safety of herbal teas in pregnancy, so it's best to drink them in moderation.
The FSA recommends drinking no more than around 4 cups of herbal tea a day during pregnancy, and to seek advice from your GP or midwife if you're unsure about which herbal products are safe to consume.
Alcohol
Experts are still unsure exactly how much – if any – alcohol is completely safe for you to have while you're pregnant, so the safest approach is not to drink at all while you're expecting.
Is it safe to drink alcohol when pregnant?
The Chief Medical Officers for the UK recommend that if you're pregnant or planning to become pregnant, the safest approach is not to drink alcohol at all to keep risks to your baby to a minimum.
Drinking in pregnancy can lead to long-term harm to the baby, with the more you drink, the greater the risk.
How does alcohol affect my unborn baby?
When you drink, alcohol passes from your blood through the placenta and to your baby.
A baby's liver is one of the last organs to develop and doesn't mature until the later stages of pregnancy.
Your baby cannot process alcohol as well as you can, and too much exposure to alcohol can seriously affect their development.
Drinking alcohol, especially in the first three months of pregnancy, increases the risk of miscarriage, premature birth and your baby having a low birth weight.
Drinking after the first three months of your pregnancy could affect your baby after they're born.
The risks are greater the more you drink. The effects include learning difficulties and behavioural problems.
Drinking heavily throughout pregnancy can cause your baby to develop a serious condition called foetal alcohol syndrome (FAS).
Children with FAS have:
- poor growth
- facial abnormalities
- learning and behavioural problems
Drinking less heavily, and even drinking heavily on single occasions, may be associated with lesser forms of FAS. The risk is likely to be greater the more you drink.
How to avoid alcohol in pregnancy
It may not be as difficult as you think to avoid alcohol completely for nine months, as many women go off the taste of alcohol early in pregnancy.
Most women do give up alcohol once they know they're pregnant or when they're planning to become pregnant.
Women who find out they're pregnant after already having drunk in early pregnancy should avoid further drinking.
However, they should not worry unnecessarily, as the risks of their baby being affected are likely to be low.
If you're concerned, talk to your midwife or doctor.
What is a unit of alcohol?
If you do decide to drink when you're pregnant, it's important to know how many units you are consuming.
One UK unit is 10 millilitres (ml) – or eight grams – of pure alcohol. This is equal to:
- half a pint of beer, lager or cider at 3.5% alcohol by volume (ABV: you can find this on the label)
- a single measure (25ml) of spirit, such as whisky, gin, rum or vodka, at 40% ABV
- half a standard (175ml) glass of wine at 11.5% ABV
You can find out how many units there are in different types and brands of drinks with the Drinkaware unit and calorie calculator.
If you have an Android smartphone, iPhone, iPad or iPod touch, you can download the free One You Drinks Tracker from Google Play or the iTunes App Store. It allows you to keep a drinks diary and get feedback on your drinking.


WEB SALON
Home
About
Contact
Contribution
Close
P
Hola fellas!!
This is my portfolio
I design and develop websites.
Find me here


Output: assignment1-public-tests.gtp
|
| Date: | January 26, 2019 6:12:00 PM MST |
| Host: | Yiyangs-MacBook-Pro.local |
| Command: |
Go0.py |
name
= Go0
version
= 1.0
cputime
? Unknown command
boardsize 7
=
clear_board
=
play B C6
=
play W C5
=
play B D5
=
play W C4
=
play B E4
=
play W C3
=
00 gogui-rules_final_result
#?[unknown]
= unknown
play B F3
=
play W C2
=
play B G2
=
10 gogui-rules_final_result
#?[black]
= black
20 gogui-rules_legal_moves
#?[]
=
clear_board
=
play B B7
=
play W C7
=
play B C6
=
play W D6
=
play B D7
=
play W E7
=
play B E6
=
play W F5
=
play B E5
=
play W D5
=
play B C5
=
play W A6
=
play B B6
=
play W B5
=
play B C4
=
play W D4
=
play B E4
=
play W C3
=
play B D3
=
play W E3
=
play B F3
=
play W F4
=
play B E2
=
play W F2
=
play B G1
=
play W G2
=
play B G3
=
play W G4
=
play B G5
=
play W G6
=
play B G7
=
play W F7
=
play B F6
=
play W D2
=
play B B4
=
play W F1
=
play B A4
=
play W A3
=
play B B3
=
play W A5
=
play B A7
=
play W C1
=
play B C2
=
play W D1
=
play B E1
=
play W B2
=
play B A2
=
play W A1
=
30 gogui-rules_legal_moves
#?[b1]
= b1
40 genmove b
#?[b1]
= b1
play B B1
= illegal move: "b1" occupied
50 gogui-rules_final_result
#?[draw]
= draw
60 genmove b
#?[pass]
= pass
70 genmove w
#?[pass]
= pass
clear_board
=
play B A1
=
play B A2
=
play B A3
=
play B A4
=
play B A5
=
80 genmove w
#?[resign]
= resign
clear_board
=
90 play C A1
#?[illegal move: "c" wrong color]
= illegal move: "c" wrong color
100 play B A10
#?[illegal move: "a10" wrong coordinate]
= illegal move: "a10" wrong coordinate
play B A1
=
110 play W A1
#?[illegal move: "a1" occupied]
= illegal move: "a1" occupied
cputime
? Unknown command
quit
=
Generated on 1/26/19 6:12 PM by gogui-regress 1.5.0 (http://gogui.sf.net)


--- layout: section title: Articles tagline: Articles, right from my untold drafts. description: As I said, I love to think of any random thing and run after it until I shape it into a set of programs. That's it. Articles I write, are the development stories or technical elaboration of those things, most of the time. image: https://ssl.gstatic.com/ui/v1/icons/mail/images/2/5/android/bg.png ---


Green Thumb Lawn Service
Home
Navbar Link
menu
Satisfied customers
A park we serviced in 2018
A forest cabin we serviced
Even your furry friends will love your new yard!
This beautiful vista is made even better with a well-manicured lawn!


| FIRST Robotics Competition Award Winners | ||
| Award | Team Number | Name |
| Chairman’s Award | 103 | NASA/Amplifier Research/Custom Finishers/Lutron Electronics/BAE Systems & Palisades High School |
| Founder's Award | Innovation First, Inc. | |
| Woodie Flowers Award | Andrew Baker | |
| Engineering Inspiration Award | 343 | Hamilton Career Center/Oconee-Business Education Partnership & Seneca High School & West-Oak High School & Walhalla High School & Tamassee-Salem High School |
| Championship Winner 1 | 111 | Motorola & Rolling Meadows High School & Wheeling High School |
| Championship Winner 2 | 469 | EXIDE Technologies/Johann A. Krause Inc/Norgren Automotive/NACHI Robotic Systems, Inc/Faurecia/Ex-Cell-O Machine Tools/Precision Race Services/Lawrence Technological University & Lahser High School & International Academy |
| Championship Winner 3 | 65 | GM Powertrain & Pontiac Northern High School |
| Championship Finalist 1 | 343 | Hamilton Career Center/Oconee-Business Education Partnership & Seneca High School & West-Oak High School & Walhalla High School & Tamassee-Salem High School |
| Championship Finalist 2 | 25 | Bristol-Myers Squibb & North Brunswick Twp. High School |
| Championship Finalist 3 | 494 | DaimlerChrysler/General Motors/Burkland Textron & Goodrich High School |
| DaimlerChrysler Team Spirit Award | 222 | Ronco Machine/Procter and Gamble/North East PA Tech Prep Consortium & Tunkhannock Area High School |
| Delphi "Driving Tomorrow's Technology" Award | 167 | Rockwell Collins & City High/West High School |
| GM Industrial Design Award | 868 | Delphi Energy & Chassis Systems & Carmel High School |
| Johnson & Johnson Sportsmanship Award | 494 | DaimlerChrysler/General Motors/Burkland Textron & Goodrich High School |
| Kleiner Perkins Caufield & Byers Entrepreneurship | 341 | Rohm & Haas/NASA/BAE Systems & NMTCC & Wissahickon High School |
| Motorola Quality Award | 27 | Collins & Aikman & Oakland Schools - OSMTech Academy & Oakland Schools - Walter P. Chyrsler Manufacturing Technology Academy |
| Xerox Creativity Award | 312 | Baxter Healthcare Tampa Bay & Lakewood High School & Osceola High School |
| Imagery Award | 68 | General Motors North America Engineering & North Oakland County Schools |
| Leadership in Control Award | 190 | WPI & Massachusetts Academy of Math and Science |
| Autodesk Inventor Award | 75 | Johnson & Johnson Consumer Products Worldwide/Johnson & Johnson Personal Products World Wide & Hillsborough High School |
| Autodesk Award for Visualization - Grand Prize | 967 | NASA/Rockwell Collins/John Pappajohn Entrepreneurial/Iowa Fluild &Power /EHA/Kirkwood Community College/Bentley Manufacturing and Machine Shop/Linn-Mar Booster Club/Linn-Mar Foundation/Jeff's RV inc./Valley Apparel/Cedar Rapids, Institute of Electrical and Electronic Engineering/T.K. Wong and Associates Ltd./Tri-State Tours/Klein Tools & Linn-Mar Community Schools |
| Autodesk Award for Visualization - Rising Star | 1182 | NASA/Epic Systems, Inc/Heat Transfer Systems, Inc. & Parkway South High |
| Rookie All Star Award #1 | 1108 | NASA /Kansas Space Grant Consortium/Electric Shop Inc./School To Careers/Baehr Foundation/GETZ Color Graphics, Inc./Sutherland Family Limited Partnership/Triangle Builders LLC/U.S.D. #368 Endowment Society/Wal-Mart & Paola High School |
| Rookie All Star Award #2 | 1023 | LEGO Company/La-Z-Boy & Bedford High School |
| Judges Award #1 | 118 | NASA Johnson Space Center/Lockheed Martin & Clear Creek ISD-Clear Brook HS, Clear Creek HS, and Clear Lake HS |
| Judges Award #2 | 254 | Kleiner Perkins Caufield & Byers/NASA Ames Research Center/Unity Care Group & Bellarmine College Preparatory |


1on1 one-pivot GEM
Overview
The one-pivot GEM provides a simple way to mine data from a list of objects. There are no constraints on the types of objects that you can pivot. You can pivot anything from a list of numbers to a list of ActiveRecord objects to anything in between.
One::Pivoter
exposes two methods of importance.
pivot
- runs a single pivotmulti-pivot
- stacks multiple pivots into a single result
A pivot
is simply a Ruby block (or Proc) that executes for each item in the list. The result returned from this block then serves as the key in the resulting Hash.
Lets have a look at some examples.
Note: there are a few advanced features not demonstrated in the examples below. For example, adding identifiers to pivots or attaching observers to pivot operations. We use these features at 1on1 to cache pivot results for each item. This gives us a big performance boost when the same item participates in multiple pivots during its lifetime... especially when the pivot Proc is an expensive operation. Have a look at the tests when you want to dig a little deeper.
Installation
gem install one-pivot
A simple single pivot
require 'one-pivot' # create the pivot instance pivoter = One::Pivoter.new # create a list of objects to pivot list = [1,2,3,4,5,6,7,8,9] # run a single pivot # note: the block passed to the pivot method is invoked for each item in the list # note: the result from the block will act as the 'key' in the resulting Hash result = pivoter.pivot(list) {|item| item <= 5} # 'result' will be a Hash with the following structure { true => [1,2,3,4,5], false => [6,7,8,9] }
A simple multi-pivot
require 'one-pivot' # create the pivot instance # note: the multi-pivot delimiter that was specified pivoter = One::Pivoter.new # create a list of objects to pivot list = [1,2,3,4,5,6,7,8,9] # run several pivots together pivots = [] pivots << lambda do |i| key = "less than or equal to 5" if i <= 5 key ||= "greater than 5" end pivots << lambda do |i| key = "greater than or equal to 3" if i >= 3 key ||= "less than 3" end pivots << {:delimiter => " & "} result = pivoter.multi_pivot(list, *pivots) # 'result' will be a Hash with the following structure { "less than or equal to 5 & greater than or equal to 3" => [3, 4, 5], "less than or equal to 5 & less than 3" => [1, 2], "greater than 5 & greater than or equal to 3" => [6, 7, 8, 9] }
A real world example
# we'll be working with ActiveRecord objects based on the following schema # ============================================================================ # create_table "users", :force => true do |t| # t.string "name" # t.datetime "created_at" # t.datetime "updated_at" # end # # create_table "skills", :force => true do |t| # t.string "name" # t.datetime "created_at" # t.datetime "updated_at" # end # # create_table "skills_users", :id => false, :force => true do |t| # t.integer "user_id" # t.integer "skill_id" # end # # and will seed the datbase with the following data # ============================================================================ # ruby = Skill.create(:name => "Ruby") # python = Skill.create(:name => "Python") # php = Skill.create(:name => "PHP") # javascript = Skill.create(:name => "JavaScript") # # users = User.create([ # {:name => "Ryan", :skills => [ruby]}, # {:name => "Dave", :skills => [php, javascript]}, # {:name => "Brett", :skills => [ruby, javascript]}, # {:name => "Jay", :skills => [ruby, python, php, javascript]}, # {:name => "Doug"} # ]) # require 'one-pivot' pivoter = One::Pivoter.new # note that the pivot block returns an array # each unique value in the arrays returned will become a key in the resulting Hash result = pivoter.pivot(User.all) do |user| user.skills end # 'result' will be Hash with the following structure # note: I've simplified the object structure (using names only) for clarity { "Ruby" => ["Brett", "Jay", "Ryan"], "PHP" => ["Dave", "Jay"], "JavaScript" => ["Brett", "Dave", "Jay"], "Python" => ["Jay"], nil => ["Doug"] }


Quarentine Diary
Conferences
March
16/03 - GDC
18/03 - VIVE Engage
22/03 - IEEE VR
25/03 - GTC
April
05/04 - EGSR
15/04 - Unite Now
24/04 - ICCP
24/04 - F8
May
04/05 - Rio2C
26/05 - EG
28/05 - GI
Jun
02/06 - SPM-SMI
18/06 - CVPR
22/06 - WWDC
26/06 - VFX Rio
Jul
13/07 - HPG
14/07 - Unreal Fest
27/07 - Deep Learning
Aug
06/08 - X3D
24/08 - SIGGRAPH
Webinars / Lives
April
14/04 - Past, Present and Future of Computer Graphics: Perspective from Two Forerunners
18/04 - One World Together
20/04 - Brazil Bridge
22/04 - Remote Learn and Work with NVIDIA
26/04 - Festival Brasilia
May
05/05 - IMPA Live
12/05 - Ray Tracing Essentials
13/05 - Procedural Approach to Animation-Driven Effects
Jun
10/06 - Machine Learning and Neural Networks
15/06 - New Normal
25/06 - NVIDIA Solucoes
Jul
07/07 - Training and Deploying Accelerated Conversational AI
Aug
05/08 - Ray Tracing in Unreal Engine 4
06/08 - TI no IMPA
18/08 - DGX A100
Sept
03/09 - AI: Driving change
Copyright © Luiz Velho


Transaction verification can be roughly divided in two phases. Script verification occurs when a transaction arrives, and includes the expensive witness verification. Order verification is performed when a block comes in, and checks whether the transaction is allowed at its location in the chain. This means that for all its inputs, the corresponding outputs must precede the transaction in the chain and may not be already spend at that point.
To see how Bitcoin Core verifies order, let us consider a part of the blockchain tree where two blocks are competing at the tip:
Bitcoin Core maintains a UTXO-index, an index of all unspent outputs that is used (besides script-validation) to check the order-validity at a given point, and that is updated after verification of each transaction. Because it always applies to a single point in the tree, it requires linearizing the tree. One branch (the longest) is dubbed the main branch while others are dubbed side-branches.
The drawback of this approach, is that the UTXO-index must be validated and updated sequentially for each transaction because each transaction may reference the previous one. On top of that, whenever a side branch is promoted to main branch, the UTXO-index needs to be "moved": all changes caused by the transactions in the blocks of the main branch must be reverted before the side branch can be verified. An expensive process called a reorg.
Bitcrust solves these bottlenecks by getting rid of the UTXO-index all together.
To verify order Bitcrust uses a compact representation of the blockchain, called the spend tree. It contains 64-bit records that can point to block headers, to transactions or for each input, to the output being spend. Each block in the spend-tree starts with a record that points to the end of the previous block.
Whenever a block is added to the spend-tree, each spend is verified simply by scanning back the tree. If the same spend is found, the block is rejected as a double-spend. If nothing is found the block is rejected as spending an non-existing output, and if the transaction with the output being spend is found, the spend is accepted.
The elegance of this approach is that the order of transactions can be verified fully in parallel in a highly cache efficient way. Not only can two competing blocks be verified at the same time, but within one block, every input can be verified in parallel as well.
Because the on disk structure is a tree, reorgs are simply the selection of another tip; the difference between main and side-branches no longer effects storage and validation and is left to higher layers of the software.
The vast majority of inputs is spending a recent output and for those, the spend tree is blazingly fast. Problems occur when an output from the early chain is being spent; in that case the spend-tree is too slow as it would require scanning millions of records.
Fast early spends are achieved with help of the spend index. This is a very compact bit index with one bit for each transaction and one for each output. The spend index serves as a broom wagon; it follows the tips but always lags a few blocks behind. Whenever verification in the spend-tree reaches the broom wagon, and no major split has taken place, the order can be verified with two simple lookups in the spend index: checking the presence of the transaction and the absence of the spend.
Because updates made to the spend-index always represent information that is not directly used as it is still being verified using the spend-tree, all reads and writes can still occur in parallel.
Like all data in Bitcrust, the spend-tree and spend-index use lock-free data structures and the Compare-And-Swap idiom to allow concurrent readers and writers even across processes.
Because the information which transactions are stored in which blocks is already persisted in the spend-tree, Bitcrust also uses a different storage model for block content. Block headers and transactions are stored separately, and transactions are stored immediately when they are script-verified, but still unconfirmed.
This means the "mempool" of unconfirmed is not necessarily kept in memory; only if disk cache pages (or memory map pages) are available as handled by the OS. Verified, unconfirmed transactions are actually bad candidates to force in memory because their content is rarely needed any time soon; the order validation when a block comes in, only uses their hashes and file pointers.
An additional advantage is that while the criteria for relaying transactions and for including them in blocks may be kept strict, the criteria for storing transactions can be relaxed without loss of efficiency. This can result in a high degree of transactions being pre-synchronized when a block arrives using Compact Blocks or XThin.
This could be even further optimized if miners were to use a strategy where they let incoming transactions "rest" for a while before including them in a block. This might yield pre-synchronization rates of near 100%, making even better use of the gains of the specialized order-verification of Bitcrust.
An interesting difference between Bitcrust and Core is the cost of what is known as "UTXO bloat".
The cost for a node to accept a transaction is not always the same. For implementations that use an UTXO-index, a transaction with 10 inputs and 1 output is much cheaper then a transaction with 1 input and 10 outputs, because the former reduced the UTXO-index by 9 items while the latter adds 9 items.
For the peak-load order validation, the asymmetry in cost for Bitcrust is reversed! The more inputs in a transaction, the bigger the growth of the spend-tree but the spend-tree is not effected by outputs at all. This is not to say that we should promote more outputs and less inputs as outputs still effect baseload script-verification, but it eliminated the negative effect of UTXO bloat during peak load order-verification.
The storage layer of Bitcrust is written in Rust and available at GitHub.
The first results are very promising, as the implementation seems to be not only faster than Core in order validation, but is also more performant in full block validation. Preliminary comparisons are published on this site


We could say that, on average, each taxi ride cost $5.56, or that the average score on the quiz was 5.56. But sometimes the mean can hide useful information. Suppose we have a class of 10 students and one student has 10 cookies, while the other 9 students have 0 cookies. The mean number of cookies each student has is
in-context


Men's Wear
Top wear
Bottom wear
Accessories
Women's Wear
Top wear
Bottom wear
Accessories
Kid's Wear
Top wear
Bottom wear
Kids care
@if (Route::has('login'))
@auth
Home
@else
Login
@if (Route::has('register'))
Register
@endif @endauth
@endif
User
Admin


The objective of this project is not to give a complete set of components ready to use in production. Instead, it focuses on best practices (structure, i18n, a11y, tips) to build valid components.


Safi is a nice, clean city with a fascinating medina. Although there are no facilities for yachts, spares for fishing boats are available.
It should be noted however that corruption is an on-going problem here and cruisers who left their boat here while visiting Marakesh in May 2012, returned to find the boat had been entered and certain items stolen (see report adjacent).
It is recommended that cruisers only visit this port if absolutely necessary and do not leave their boat unattended.
Safi is a large commercial port and fishing harbour. Port control (CH 16) maintains 24 hour radio watch and will direct yachts where to berth for clearance (likely alongside another vessel).
Customs, police and immigration will come to the yacht; formalities are reported to be straightforward and officials courteous and efficient.
Safi has no marina, no facilities (water or electric), and berthing in the main port (most likely alongside a commercial vessel) will cost approximately double the rate of other Moroccan Marinas.
Although there is a controlled port gate and passes are needed by yacht crew to come and go, entrance is widely granted as people go to the fishing port. Security is therefore not as good as it may seem.
Fuel can be brought to the boat by one of the locals, however prices will be approximately 50% more than the norm and a "gift" will be required.
Be warned that the harbour master and harbour personnel will ask for baksheesh. It is not recommended to leave your boat unattended here.
Last updated May 2012.


France, Turkey qualify for Euro 2020
by Agency ReportTurkey booked their place at Euro 2020 on Thursday after a goalless qualifying draw with Iceland which also sent world champions France to next year’s finals.
With two teams qualifying from Group H, leaders Turkey are four points ahead of third-placed Iceland with one match remaining after the stalemate in Istanbul, with France a point behind Turkey in second.
Iceland needed to win to have any chance of qualifying thanks to their inferior head-to-head record with the French but will now have to hope they make the playoffs at the end of the qualifying phase.
Didier Deschamps’ France would have qualified for the Euros with a win over Moldova later on Thursday regardless of the result between Iceland and the Turks — who have been rejuvenated since Senol Gunes returned to take charge in February — and can now move top of the group.
Former national team goalkeeper Gunes took Turkey to third place at the 2002 World Cup during his first spell as manager between 2000 and 2004, and guided his team to qualification with relative ease, beating and drawing with France and losing only one match.
That upturn in form comes after a dreadful slump under previous coach Mircea Lucescu that saw Turkey fail to qualify for the last year’s World Cup in Russia and relegated to third-tier League C in the UEFA Nations League.
The hosts largely kept Iceland at bay in a match of few chances, but had to thank Merih Demiral for making sure of qualification when he brilliantly cleared Hordur Magnusson’s header off the line with eight minutes to go.
AFP.


Navigate with your battery in mind. Optimized for Tesla Model S by modeling watt-hours/mile. Project by Melodi Heuer for CS 5600


| Interface | Description |
|---|---|
| Function |
Interface for an editing function.
|
| Tool |
Interface for an editing tool.
|
| Class | Description |
|---|---|
| AbstractFunction |
Abstract base class for Function implementations.
|
| AbstractTool |
Abstract base class for Tool implementations.
|
| AddNoiseFunction |
A function for adding noise to node coordinates.
|
| ComputePassableEdgesFunction |
A function for computing passable edges.
|
| CreateBuildingTool |
A tool for creating buildings.
|
| CreateEdgeTool |
A tool for creating edges.
|
| CreateNodeTool |
A tool for creating nodes.
|
| CreateRoadTool |
A tool for creating roads.
|
| CreateShapeTool |
A tool for creating shapes.
|
| CreateSpaceTool |
A tool for creating spaces.
|
| DeleteEdgeTool |
A tool for deleting edges.
|
| DeleteNodeTool |
A tool for deleting nodes.
|
| DeleteShapeTool |
A tool for deleting shapes.
|
| FixAttachedObjectsFunction |
A function for fixing the lists of attached shapes.
|
| FixDegenerateShapesFunction |
A function for fixing degenerate shapes.
|
| FixDuplicateEdgesFunction |
A function for fixing duplicate edges.
|
| FixLatLongTool |
A tool for fixing latitude/longitude coordinates.
|
| FixNearbyNodesFunction |
A function for fixing nearby nodes.
|
| GMLEditor |
A component for editing GML maps.
|
| InspectTool |
A tool for inspecting objects.
|
| MergeLinesTool |
A tool for merging lines by deleting a common node.
|
| MergeNodesTool |
A tool for merging nodes.
|
| MoveNodeTool |
A tool for moving nodes.
|
| PanZoomTool |
A tool for panning and zooming the view.
|
| ProgressFunction |
Abstract base class for Function implementations that require a progress dialog.
|
| PruneOrphanEdgesFunction |
A function for pruning edges that are not attached to any shapes.
|
| PruneOrphanNodesFunction |
A function for pruning nodes that are not attached to any edges.
|
| ScaleFunction |
A function for scaling the map.
|
| Snap |
Class for snapping coordinates to a grid.
|
| SplitEdgesFunction |
A function for splitting edges that cover nearby nodes.
|
| SplitEdgeTool |
A tool for splitting edges.
|
| SplitShapeTool |
A tool for creating edges.
|
| TogglePassableTool |
A tool for toggling the passable flag on edges.
|
| ValidateFunction |
Check the map for errors and highlight them on the map.
|
| Exception | Description |
|---|---|
| CancelledByUserException |
Exception for indicating the the user has cancelled an operation.
|


The best drivers are aware that they must be beware.
STAT ALERT!!
4,12,000
In 2018, the number of accidental fatalities across India amounted to around 412 thousand. The rate of accidental deaths in 2018 was about 2.6 percent higher than the previous year. Road accidents had the highest number of fatalities followed by railway incidents.
70
In 2018, the number of females aged between 25 and 35 years being killed in road accidents amounted to around five thousand across India. Each year, about three to five percent of the GDP of the country was invested in road accidents. About 70 percent of accidents involved young Indians. The country has about one percent of the global vehicle population but it accounted for six percent of the world's road traffic accidents.
35,000
In 2018, the number of male victims in road accidents wherein the age of the victim was between 25 to 35 years amounted to around 35 thousand across India. Each year, about three to five percent of the GDP of the country was invested in road accidents. About 70 percent of accidents involved young Indians.
16.7
Maharashtra, an Indian state with a population share of over nine percent, had the highest share of about 16.7 percent of total accidental deaths in India during 2018. Meanwhile, Uttar Pradesh with the largest population share, accounted for only about nine percent of the accidental deaths in the country. Majority of accidental casualties reported were between ages 30 and 45 years.
17
Roughly around 17 accident-related deaths occur across India every hour. Fewer cops and empty roads at night, and sometimes even during the day seem to enable motorists to do away with the traffic rules. However, efforts were made to reduce these discrepancies. The police had equipped themselves with night vision speed guns to identify the culprits. Over speeding fine was increased in the amendment of the Motor Vehicles Act as well.
0.6
Road accident severity measured by the number of persons killed per 100 accidents, has seen an increase of 0.6 percentage points in 2018 over the previous year. The country has about one percent of the global vehicle population but it accounted for six percent of the world's road traffic accidents.
11
India, ranks 1st in the number of road accident deaths across the 199 countries reported in the World Road Statistics, 2018 followed by China and US. As per the WHO Global Report on Road Safety 2018, India accounts for almost 11 percent of the accident related deaths in the World.
4,67,044
A total of 4,67,044 road accidents have been reported by States and Union Territories (UTs) in the calendar year 2018, claiming 1,51,417 lives and causing injuries to 4,69,418 persons


Exports an archive containing the entire project. You can use this archive as a backup. The archive can be imported into this installation or into another installation of INCEpTION that is using the same version as this one or a more recent version.
You can optionally choose to include the annotations in a secondary format in the archive. This means that the annotation data is then contained twice in the archive. Once in the mandatory archival format used by INCEpTION and once in the format that you chose. Including a secondary format is useful when you want to further process the annotation data outside of INCEpTION. E.g. if you want to further process the data with Python, you might choose the UIMA CAS XMI (XML 1.0) format as the secondary format and then use DKPro Cassis to process the data further.


Help not available now! For more information about this and related project, visit our site or our Github Organization.


Our conference is less than ten days away, and we're happy to share some more information for you to prepare for the big day.
The final talk schedule for the conference is now live on our website. We are excited to see and hear our wonderful speakers talk about all things docs!
Come early, get your badge and get to know other attendees. The reception is hosted by our friends at Apiary at their lovely new office in Praha 8.
The reception will start at 6 PM and will include drinks and light snacks. This event is not included in the friends-and-family ticket.
The forecast: European! We recommend packing your sunglasses and your umbrella, so that you are prepared both for higher temperatures and for occasional light showers. All our venues are indoors, but wind breakers and layers will be useful when walking between venues and especially during the city tour.
If you registered for the conference and would like to join the city tour on Sunday morning, please make sure that your RSVP is up-to-date. We can only accommodate ticket holders who confirmed attendance, and friends-and-family ticket holders.
To change your RSVP, locate your ticket email confirmation, click the Change Details button, and then change your answer to the city tour question. Please update your answers no later than August 23rd.
Our official ticket sale ended, thank you to everyone who registered! Friends-and-Family tickets are still be available until 3 days before the conference starts, and we opened a waiting list for conference tickets that you can register to be informed in case of cancellations.
We're happy to welcome our latest sponsors:
If you're interested in sponsoring, send us an email.
See you all in Prague!


Sorry, BCEmissions.ca does not support Internet Explorer. Visualizations may not display correctly.
For the best experience, please access this website using Chrome or Firefox.
BCEmissions.ca aims to promote awareness of personal contributions to climate change, in the context of contributions at the municipal level.
The public is generally aware of the significance of climate change, but members of the public do not understand the scope of their GHG emissions. This information is publicly available, but it is not in an accessible format: pieces are scattered across tables, spreadsheets, PDFs, and websites. BCEmissions.ca aims to bring many interconnected pieces of information together, and present them in an interesting and accessible format that doesn't overwhelm the visitor with information, while at the same time allowing visitors to learn more if they wished.
The general public can make use of this application to learn about their community's share of emissions. Secondary school teachers would greatly benefit from integrating BCEmissions.ca into their climate change and geography curriculum. As the application was created with educational settings in mind, doing so would provide students with a more engaging way to learn about GHG emissions among BC communities.
BCEmissions.ca incorporates data from the following sources:
Client-side: jQuery, RaphaelJS, flot, and Google Maps API v3.
Development: Python, Django, and MySQL.
Hosting: Ubuntu running nginx.


The process is very easy. All you need to do is login, go to the Goals and Habits Page and set your goals and timeframe needed to complete them.
Currently there is only a common basic plan available for all users at no cost. Hence there are no upgrades available as of now.
One needs to set as to how often he would like to repeat his/her habits. Based on this all the necessary tracking will take place and the user would be reminded at regular intervals.
As one keeps completing tasks(goals and habits), he/she gets medals. The medals are awarded as follows:
5 Tasks - Bronze Medal
10 Tasks - Silver Medal
20 Tasks - Gold Medal
GoalKeeper offers you the platform to assimilate all your habits and goals that you wish to inculcate in your day-to-day life.
It also provides incentives on accomplishing tasks in the form of medals to keep you motivated enough to complete them.
We send reminders incase you opt for them. We also provide you with a statistics and analytics page to give you the
numerical nitty-gritty of your tasks.


#* The server renders this HTML page in an end-user's browser when the user opts to change their password from the login page or when the user submits the HTML login page and the server returns a code indicating the user must change their password. Velocity variables (identified by the $ character) are generated at runtime by the server. Change text or formatting as needed. Modifying Velocity statements is not recommended as it may interfere with expected server behavior. The following variables are available on this page, but not used by default: $client_id - The ID of the OAuth client used in this transaction $spAdapterId - The SP Adapter ID used in this transaction It is recommended to sanitize the values that are displayed using $escape.escape() for example $escape.escape($client_id). *# #set( $messageKeyPrefix = "html.form.change.password.template." ) #set( $passwordPolicy = $templateMessages.getMessage($messageKeyPrefix, "passwordPolicy") ) ## disable username field if a value is supplied #set( $usernameDisabled = false ) #if (($username) && ($username.trim().length() > 0)) #if (!($usernameNotChained) && ($hideChainedUsername)) #set( $usernameDisabled = true ) #end #if (($isPasswordExpiring)) #set( $usernameDisabled = true ) #end #end


This is a 1-dim. translational component with a compliant connection of two translational 1-dim. flanges where inertial effects between the two flanges are neglected. The basic assumption is that the cut-forces of the two flanges sum-up to zero, i.e., they have the same absolute value but opposite sign: flange_a.f + flange_b.f = 0. This base class is used to built up force elements such as springs, dampers, friction.
The difference to base class "PartialCompliant" is that the relative distance and the relative velocity are defined as preferred states. The reason is that for a large class of drive trains, the absolute position is quickly increasing during operation. Numerically, it is better to use relative distances between drive train components because they remain in a limited size. For this reason, StateSelect.prefer is set for the relative distance of this component.
In order to improve the numerics, a nominal value for the relative distance should be set, since drive train distances are in a small order and then step size control of the integrator is practically switched off for such a variable. A default nominal value of s_nominal = 1e-4 is defined. This nominal value might also be computed from other values, such as "s_nominal = f_nominal / c" for a spring, if f_nominal and c have more meaningful values for the user.


I suspect my issue may be the clamp placement, but if anyone has had the same issue or can give some pointers it would be helpful to save time troubleshooting.
I have an emonpi with CT1 inside the consumer unit on meter tail in (fitted by electrician yesterday when PV commissioned) and CT2 on the tail from from the new sub-board the PV inverter is fed through. The electrician did not put in a henley block as they planned as the tails come out from inside the wall and he was not sure he had enough length (or it looked like a lot of hassle) - so the tails from sub-board go into the back of the main breaker on the consumer unit - but basically its like the "Type 1" diagram on the emonpi page. I am also using AC-AC adapter.
During darkness the house reading seems accurate, general reading and increases/decreases with load changes (follows my older current cost/perl/rrd setup). When the PV starts to output though I seem to get an accurate PV reading (~200w on grey xmas eve) but the house load goes from 200-300w down to double digits like 19w - and I even saw -17w earlier.
I am not that awake yet today but the behavior is a bit strange as the reading is accurate on CT1 when the PV is not generating and then inaccurate when it is.
Any suggestions? I will try to re-position clamps a bit later but the behavior on house and the negative reading seems strange and I am wondering if the clamps are directional (they are marked with arrows, and were installed in direction of current flow - i.e. from tails to house, and from inverter to supply).
Running "Powered by openenergymonitor.org | low-write 9.2 | 2015.12.10"
Re: Erratic Consumption readings during solar generation (new install)
It sounds like CT1 is measuring the net power flow into / out-of the property. At night, that's the same as your consumption, but by day it's your consumption minus your PV production, which can easily go negative on a sunny day when you're not consuming much.
Re: Erratic Consumption readings during solar generation (new install)
From your description, I think dBC is right and CT1 is on the grid side of where the PV infeed joins the house wiring. CT1 will then be measuring the nett power flow to or from the grid, so on a good sunny day with little or no power being used in the house, you should see -3 kW or so.
Re: Erratic Consumption readings during solar generation (new install)
No CT1 is between the grid and the consumer unit only, its on the main cable inside the CU. CT2 is on the sub-board from the PV.
I suspected CT1 was backwards, so I gingerly teased it out of the CU and swapped it (arrows were the wrong way) but now it reliably reads negative of expected reading so I am a bit lost. I put CT1 on the solar with CT2 and it reads (well +/- 10w) the same so clamp seems ok - all a bit confusing.
Arrows on the CT go in direction of flow right? So from inverter to grid, and from grid to CU?
Re: Erratic Consumption readings during solar generation (new install)
The way you originally described the wiring, I understood that you have a pair of tails coming from the meter into the main switch of your consumer unit. Also going into the live side of that main switch is another pair of tails (or a cable) that end up at your inverter via a sub-board.
Is (was) your CT1 on one of the tails between the meter and the main switch, i.e. is the point of connection to the inverter on the meter side of CT1 or on the consumer unit side?
If CT2 is on the PV feed, it will see only the PV generation (with a caveat, below).
If CT1 is on the meter side of the common connection, then it will see the nett power and energy flow (forget the sign for the moment). Any generated power that is consumed by the house will bypass it. When you get the sign right as per our convention, CT1 will show your nett power, CT2 will show the PV generation, and your house consumption is CT1 + CT2
If CT1 is on the consumer unit side of the common connection (and if I've understood your wiring correctly, this is not possible), then it will see only the house consumption. It will have no knowledge of whether part or all of that comes from the grid or from your PV. It will only see the part of your generated power that the house consumes, the remained that is exported to the grid will bypass it. In this case CT1 will show your house consumption, CT2 will show the PV generation as always, and the nett power flow from/to the grid is CT1 - CT2.
Our convention is that imported power and energy is positive, and generation too is positive. What determines the sign of the power is the relative phasing of both the ac adapter and the current transformer in relation to the voltage and current waveforms respectively. Turning the CT over on the cable won't affect anything other than the sign. My CTs don't have arrows, this http://openenergymonitor.org/emon/Current_Transformer_Installation tells you how to install the CT to honour our convention.
The caveat: Most inverters consume a few watts of "keep alive" power during darkness hours, but the power level is normally below that which we can reliably measure. So it may indicate a positive value when it really should be negative, i.e. your inverter is consuming power.
Re: Erratic Consumption readings during solar generation (new install)
Right, thanks for all the replies, especially for Robert for taking time to explain again in detail, sorry to go AWOL family stuff overrided tinkering.
This has been vexing me for some time... and after much head scratching I just started drawing a diagram and realised he has the clamp on the wrong cable! It is indeed measuring between utility meter and everything, not between junction and house board only, this explains exactly what is happening. Moral of the story - never let a qualified electrician install something and assume they know what they are doing!
So basically referring to the installation guide, I have ended up with a "Type 2" setup as the diagram shows setup: http://openenergymonitor.org/emon/modules/emonpi#ct_sensors
I did not see the CT installation page: http://openenergymonitor.org/emon/Current_Transformer_Installation although now I can see its linked from the installation guide - genuine comment that link could be more prominent in the install guide - I did my own tests as I could not find the details in the install guide.
This does explain why my "usage" does drop to 0 when generating, as we are exporting or close to 0 so net flow is minimal - what further confused the matter is that the hot water immersion heater is aiming to get close to 0 as possible - so the reading kept moving around. See attached chart from today (just over 5Kwh today - not bad for December I thought!) to see what I mean.
Question now is do I move the clamp onto the right cable inside the board, or do I just reconfigure emoncms inputs - I think I will look at moving the clamp as in its current location its very hard to remove so there is a risk of it being in place and unplugged which I believe is a no-no as even with the diode in the clamps form the shop there is a risk of damage to the CT (or yourself).
Re: Erratic Consumption readings during solar generation (new install)
"never let a qualified electrician install something and assume they know what they are doing"
Hmm. We engineers have a name for those people, and it's not complimentary. I don't have a lot of confidence in their trade's supervisory system, I can think of several installations or alterations I've had cause to look at, carried out by registered, or allegedly registered, firms or individuals, that had defects - one quite serious. And a very serious defect was put on my neighbour's installation by a bathroom fitter. He broke the seal on the supply authority's main fuse, inserted Henley blocks and in doing so managed to swap line and neutral upstream of the consumer unit. Fortunately for the neighbour, I found it before anything serious did happen. How serious could it have been? The only protection against a line-earth fault on any wiring including the lighting circuits was the 80 A supply authority's fuse.
<Rant over>
Personally, I'd leave the CT where it is, because there you'll get a much more accurate measure of your nett energy flow to/from the grid, and if at some point you want to add MartinR's or Robin's diverter to the system, it's in the right place.
Re: Erratic Consumption readings during solar generation (new install)
Yes, in the end I left it on the main incoming tail and reconfigured emoncms. The electricians were ok but as usual job was done to time and effort rather than best results. They clipped the 4mm to the woodwork where it comes down through the airing cupboard rather than using conduit (no mechanical protection from airing shelves against it) which I might address later and the conduit and the way they used the knock outs in the new sub board and isolator were not the neatest - but I am very OCD with my cable routing I concede!
All working now, I was going to mount the emon in a plastic box with the temp sensor breakout but just ordering an Alu case from the shop now... should have done that in the first place!
I was not aware of the diverters with emon when I did the solar order back in October, so I have an iBoost+ fitted I took the option on at the time which works to achieve the same goal - emon will have temprature sensors for top and bottom of the tank and I might yet add a sender to record the power put into the immersion heaters (big tank, have two immersions).


--- layout: post title: It's a trailer alright date: 2015-02-03 22:45:50.000000000 -08:00 type: post background: '/img/posts/bg.jpg' parent_id: '0' published: true password: '' status: publish categories: - travel tags: [] meta: _edit_last: '2' _thumbnail_id: '1030' permalink: "/travel/its-a-trailer-alright/" ---
Woke up, sick for the second day, and there wasn't any heat. The trailer was 54 degrees and I don't know how long the heater had been blowing cold air. A trip to the propane store and I'm lugging around these tanks and trying to heft them into position in a cupboard build to just fit them. Checked my black water level and it was at 3/4 full. When the torrential downpour stopped, it was that least-favorite task of hooking up the pump, water, taping down a plastic bag over the dump tank inlet and snaking a short hose in all while mouth-breathing.
The few months I've had this trailer have had a very steep learning curve. And one day I might figure out how to light the oven and actually use it. The carpet under the massive plumbing leak at the fresh water inlet might be drying finally after three weeks. Okay, it's still a little damp. And when I remember to empty the measuring cup under the sink inlet pressure fitting, it's usually only a cup or two that's collected.
Somehow I always feel like I'm just one breakdown catastrophe away from homelessness pretty much all of the time. I'm frankly amazed any of it works. The water heater still can blister me if I put it on straight hot, the grey water drains out nicely into the pasture, the lights turn on (well most of them), the stove still lights, the microwave blows the circuit every other time I use it, and when I remember to refill the propane, the heater heats.
I am pretty worried about taking this thing on the road ever. It feels so precarious just parked here in the mud. Perhaps by the time the ground dries out, I'll have all of these kinks straightened out and will be too darn happy to test the Bitchhiker on the road. Perhaps.


--- title: Hash keywords: fastai sidebar: home_sidebar summary: "Functions to generate unique name files." description: "Functions to generate unique name files." ---
It can be used on lists,
matrix([[1, 2], [3,4]])
or arrays
matrix(np.array([[1, 2], [3,4]]))
Decimal separators are by default replaced.
matrix(np.array([[1.1, 2.2], [3.3,4.4]]))
Lists are also fine.
matrix([1.3, 2.4])
number(3.14)
From this post: a function to hash any arbitray string.
string('foo-bar#baz?qux@127/\\9]')