Question
Consider a simple node-like data structure called BiNode, which has pointers to two other nodes.
public class BiNode {
public BiNode node1, node2;
public int data;
}
The data structure BiNode could be used to represent both a binary tree (where node1 is the left node and node2 is the right node) or a doubly linked list (where node1 is the previous node and node2 is the next node). Implement a method to convert a binary search tree (implemented with BiNode) into a doubly linked list. The values should be kept in order and the operation should be performed in place (that is, on the original data structure).
Solution
At another post [LeetCode Plus] Convert BST to Circular DLL, we already discussed 2 approaches:
- in-order traversal approach
- divide and conquer approach
First approach isn’t intuitive. We will further discuss D&C approach here.
The key of the solution is how we return both HEAD and TAIL. The book suggests 3 ways:
- Build a data structure to store both head and tail
- Just return head, and retrieve tail by traversing thru - bad time complexity O(n2)
- Use circular linked-list! Time O(n).
I wrote the code for 1st and 2nd approach. And 3rd is already covered in previous post.
- You need to understand why we need the list to be circular.
Code
Approach 1
public static BiNode convert(BiNode root) {
BiNodePair res = helper(root);
return res.leftMost;
}
private static BiNodePair helper(BiNode node) {
if (node == null) {
return null;
}
BiNodePair res = new BiNodePair(node, node);
if (node.node1 != null) {
BiNodePair leftRes = helper(node.node1);
res.leftMost = leftRes.leftMost;
leftRes.rightMost.node2 = node;
node.node1 = leftRes.rightMost;
}
if (node.node2 != null) {
BiNodePair rightRes = helper(node.node2);
res.rightMost = rightRes.rightMost;
rightRes.leftMost.node1 = node;
node.node2 = rightRes.leftMost;
}
return res;
}
static class BiNodePair {
BiNode leftMost;
BiNode rightMost;
public BiNodePair(BiNode node1, BiNode node2) {
leftMost = node1;
rightMost = node2;
}
}
Approach 2
public static BiNode convert(BiNode root) {
if (root == null) {
return null;
}
return helper(root);
}
private static BiNode helper(BiNode node) {
// node is not null
BiNode newHead = node;
// do left part
if (node.node1 != null) {
newHead = helper(node.node1);
BiNode leftTail = getListTail(newHead);
leftTail.node2 = node;
node.node1 = leftTail;
}
// do right part
if (node.node2 != null) {
BiNode rightHead = helper(node.node2);
node.node2 = rightHead;
rightHead.node1 = node;
}
return newHead;
}
private static BiNode getListTail(BiNode head) {
// head is not null
while (head.node2 != null) {
head = head.node2;
}
return head;
}


This is a NFSv2-specific option.
The mapping daemon ugidd must be running.
Like Don't trust UIDs, this option
allows you to specify a list of client GIDs to be treated as the
untrusted group. You must enter a comma-separated list
of GIDs or GID ranges like 1,10,20-25,100-150.
exportfs options: squash_gids, map_daemon


| 038:008 Khan | : |
"Has the Reminder been sent down to him (alone) from among us?" Nay! but they are in doubt about My Reminder (this Qur'an)! Nay, but they have not tasted (My) Torment! |
| 038:008 Maulana | : |
Has the Reminder been revealed to him from among us? Nay, they are in doubt as to My Reminder. Nay, they have not yet tasted My chastisement. |
| 038:008 Pickthal | : |
Hath the reminder been unto him (alone) among us? Nay, but they are in doubt concerning My reminder; nay but they have not yet tasted My doom. |
| 038:008 Rashad | : |
"Why did the proof come down to him, instead of us?" Indeed, they are doubtful of My proof. Indeed, they have not yet tasted My retribution. |
| 038:008 Sarwar | : |
Can it be that he alone has received the Quran?" In fact, they have doubts about My Quran and this is because they have not yet faced (My) torment. |
| 038:008 Shakir | : |
Has the reminder been revealed to him from among us? Nay! they are in doubt as to My reminder. Nay! they have not yet tasted My chastisement! |
| 038:008 Sherali | : |
'Has the reminder been sent down to him alone out of us all?' Nay, they are in doubt concerning MY Reminder. Nay, they have not yet tasted MY punishment. |
| 038:008 Yusufali | : |
"What! has the Message been sent to him - (Of all persons) among us?"...but they are in doubt concerning My (Own) Message! Nay, they have not yet tasted My Punishment! |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الشرك والمشركون > عبادة غير الله تعالى Pillars of Islam> Islamic> Polytheism and the Polytheists> Worshiping Otherwise His Glory القرآن الكريم > حقيقته وتصديقه للكتب الأوائل The Holy Quran> The Quran's Reality and its confirmation of the Previous Books
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.


This demo shows you how you can create new effects with a little customisation and a smattering of standard JavaScript.
There's three Line chart objects and each one uses the
trace()
effect - however the
second is delayed by 500ms. And then the third, again using
the trace()
effect, is delayed by 1000ms.
Each Line object is passed all three datasets, however in each chart two of the datasets are using transparency as their color - so only one dataset can be seen. In the first Line it's the first dataset, in the second Line it's the second and in the third Line it's the third dataset.
The visible colors are gradients, as you can see. If it runs a little too slow for you on your device (on less powerful devices it can slow down a little) you can make the gradients solid colors and you can also make the tracing sequential - so each dataset starts tracing only when the previous has finished. There's a demo of this in action that you can see here: https://www.rgraph.net/demos/effects-line-tracecenter.html
That demo also uses the animationTraceCenter
option - and this changes the trace()
effect from tracing from the left hand side to
tracing from the center of the chart outwards in both directions.
<script src="RGraph.common.core.js"></script> <script src="RGraph.line.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="700" height="300"> [No canvas support] </canvas>This is the code that generates the chart:
<script> // Some information for the chart data = [ [8,6,3,5,12,8,5,4,6,12], [4,8,6,3,5,2,4,8,5,2], [8,6,3,5,9,4,5,8,4,6] ]; fillstyle = [ 'Gradient(rgba(96,0,0,0.5):red:red:red:red)', 'Gradient(rgba(0,96,0,0.5):#0f0:#0f0:#0f0)', 'Gradient(rgba(0,0,96,0.5):rgba(0,0,96,0.5):blue:blue:blue)' ]; delay = 500; frames = 45; // // Show the first (red) section // new RGraph.Line({ id: 'cvs', data: data, options: { textColor: '#fff', tickmarksStyle: null, shadow: false, linewidth: 0.001, colorsBackground: 'black', backgroundGridVlines: false, backgroundGridColor: '#666', backgroundGridBorder: false, axes: false, spline: true, filled: true, filledColors: [fillstyle[0],'transparent','transparent'], yaxisScaleMax: 35, marginLeft: 40, textSize: 16 } }).trace({frames: frames}); // // Show the second (green) section // setTimeout(function () { new RGraph.Line({ id: 'cvs', data: data, options: { tickmarksStyle: false, shadow: false, linewidth: 0.001, backgroundGrid: false, axes: false, filledColors: ['transparent', fillstyle[1], 'transparent'], spline: true, filled: true, yaxisScaleMax: 35, marginLeft: 40 } }).trace({frames: frames}); }, delay); // // Show the third (blue) section // setTimeout(function () { new RGraph.Line({ id: 'cvs', data: data, options: { tickmarksStyle: false, shadow: false, linewidth: 0.001, backgroundGrid: false, axes: false, filledColors: ['transparent', 'transparent', fillstyle[2]], spline: true, filled: true, yaxisScaleMax: 35, marginLeft: 40 } }).trace({frames: frames}); }, delay * 2); </script>


Career Objective/Experience
Become a successfull full stack developer
Become a Blockchain Developer
Become a system achitect
Education
Bloskchain development, Georgebrown College, 2018
Business Analyst, Georgebrown College 2017
Visit my links to Github


Adopt a Kitten
Submit Cat for Adoption
Cat Name:
Cat Age:
Cat Color:
Cats Favorite Things:
Cat Breed:
British
Tabby
Calico
Local
Is Good with dogs?
Is Good With Kids:
Good with Other Cats:
Kittens Available for Adoption:


--- redirect_from: /ru/ExtendedConsole.html title: "ConEmu | Far's ExtendedConsole" breadcrumbs: - url: TableOfContents.html#features title: Features ---
ConEmu implements extended console feature. This is new in Far Manager 3.x and ConEmu. When ExtendedConsole.dll (ExtendedConsole64.dll) located in ConEmu folder (next to ConEmuC.exe), Far 3.x started in ConEmu and checkbox Colorer TrueMod support is turned on - console program acquires 16M colors for text drawing and bold/italic/underline type faces.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/vscode.20syntax.20highlighting.html ---
I would like to use this occasion to remind you that bug reports regarding the syntax highlighting in the vscode extension are always welcome.
Which occasion?
Rocky pasting screen-shots instead of words?
Oh no, I see https://github.com/leanprover/vscode-lean/commits/v0.15.1
I doubt this matters in practice, but it may be worth noting that the change to syntaxes/lean.json
is only compatible with an unreleased version of 3.5c (one that includes this PR). Current versions of Lean don't allow docstrings to contain nested block comments, so the highlighting will be off.
Oh, there are more changes. :slight_smile:
I'm probably not using the latest version, but for me "export" is not displayed in blue, unlike the other keywords.
Not a bug, but is there a way to get info in the Lean Messages
window to use the highlighting/bracket colorization that's specified for "normal" windows?
Also is there anything written about how to use an external pretty printer not written in JS/TS with the vscode extension?
Thanks for all the hard work btw.
@Jasmin Blanchette Fixed.
@Chris B If you're thinking of the bracket pair colorizer extension, that one only works in text editors and not in the HTML view. It does the bracket highlighting by adding syntax highlighting, so it doesn't work in the HTML view we use for the info view. We could of course implement this (and/or bracket matching) ourselves, but I think it would be quite a bit of work.
I'm not sure what you mean by "external pretty printers".
Something like Trepplein's pretty printer. After looking around I think I might be dragging you into the weeds of lean-client-js or LSP or something so I'll do some more reading.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


This beautiful and rugged landscape changes with every passing season. No area call me back like this one.


When you click and drag the node, you will see its title, author, and publication date above the visualization; and below you will see its 'citation key', and you can set the 'radius' (ie. degree of separation from centre) of the network centred on that text which you want to see graphed.


This document is a strawman proposal for a very simple browser-supported API for AJAX applications to support bookmarking and the back and forward buttons. It is meant to be implemented by both browser manufacturers as well as developers creating emulation libraries to provide such support. It is in alpha draft form and is open to comments.
AJAX applications are essentially entire web applications contained within a single web page. By default, they do not work with browsers' bookmarking and back and forward button capabilities. There is no way for a user to bookmark the particular state of an AJAX web page, such as after a search request, and pressing the back or forward buttons after working with an AJAX application will cause the browser to completely leave the AJAX web page, confusing users and creating usability problems.
In order to truly be effective AJAX applications must support these abilities. As a user works with an AJAX page, selecting functions and changing the system's state, the browser's URL location bar should change to a degree necessary for the user to bookmark the current state or send it to friends via email. Every change to the browser's location while within the AJAX page should be saved into the history, so that as users press the back and forward buttons the browser will jump between the various locations that have been recorded. Developers should have full control recording history changes while within their AJAX web page; a developer should simply be able to provide a new in-page history location and history data. When a history change occurs, the developer should receive a callback with the new location and any associated history data.
An AJAX history API should not force programmers to interpret history changes in a particular way; it should completely divorce network activity from in-page history changes. In AJAX systems, network activity through XmlHttpRequest or publish-subscribe APIs are not necessarily appropriate to be placed into the browser's DHTML history; in contrast, user activity that produces no network activity is sometimes important to store into the AJAX history.
When a developer receives a history change event, they should have the full power to interpret it in a way that is appropriate for their application. Some AJAX applications will use the back and forward buttons as simulated Undo/Redo systems, while others will only record higher-level user events into the history and bookmark systems. The decision of how to interpret history change events must be left to the application developer; an AJAX history API should only give the ability to intercept in-page history events and not interpret the meaning of these events.
Developers are also not interested in the manner in which a history change event occurs; i.e. whether it was through the back button, the forward button, by going through a browser's list of history pages, etc. Programmers are simply interested in being notified of the existence of an in-page history change.
A major requirement for this API is that it can be emulated through shims for browsers that do
not natively support the API. This requirement significantly influences the
shape of the API we can create, since most browser's do not allow emulation libraries to extend
the available native event types, add methods to the history
object, etc.
Emulation shims are not expected to provide all the features of this API; where possible, developers
are given simple methods to query on whether a particular feature is supported.
Really Simply History introduces the notion of an in-page DHTML history that is separate from a browser's standard
cross-page history object. It does this by adding a new member to the window
object named
dhtmlHistory
:
window.dhtmlHistory
Since the window
object is the root level object and is implicit, developers can
leave off the window
reference when referring to the dhtmlHistory
object.
The dhtmlHistory
object has the following primary methods:
addListener(callback)
removeListener(callback)
add(newLocation, historyData)
hasHistory()
It also has the following support methods that are useful in some contexts:
isInternational()
supportsHistoryData()
getVersion()
Let's start by seeing how a programmer would actually use this API. This is in contrast
to usual specifications which are full of hairy context free grammars
and obtuse verbiage; this should keep us honest and ensure we actually have a
usable API. Here is the complete
code for an example usage of the dhtmlHistory
API; we will break down and discuss
each piece:
<head>
<script language="JavaScript">
function initialize() {
// subscribe to DHTML history change
// events
dhtmlHistory.addListener(historyChange);
// if this is the first time we have
// loaded the page...
if (dhtmlHistory.hasHistory() == false) {
// start adding history
dhtmlHistory.add("helloworld", "Hello World Data");
dhtmlHistory.add("foobar", 33);
dhtmlHistory.add("boobah", true);
var historyData = new Object();
historyData.value1 = "This is the first value";
historyData.value2 = "This is the second data";
dhtmlHistory.add("moreStuff", historyData);
}
}
/** Our callback to receive history change
events. */
function historyChange(newLocation, historyData) {
alert("A history change has occured: newLocation="+newLocation
+ ", historyData="+historyData);
}
</script>
</head>
<body onload="initialize()">
</body>
</html>
A developer begins by subscribing to DHTML history change events after the page is finished
loading, using the addListener
method. This method takes a single argument, which
is a JavaScript callback function. The callback function will receive two arguments whenever a
DHTML history change event has occurred: the new location of the page, and any optional history
data that might be associated with this event:
<head>
<script language="JavaScript">
function initialize() {
// subscribe to DHTML history change
// events
dhtmlHistory.addListener(historyChange);
// if this is the first time we have
// loaded the page...
if (dhtmlHistory.hasHistory() == false) {
// start adding history
dhtmlHistory.add("helloworld", "Hello World Data");
dhtmlHistory.add("foobar", 33);
dhtmlHistory.add("boobah", true);
var historyData = new Object();
historyData.value1 = "This is the first value";
historyData.value2 = "This is the second data";
dhtmlHistory.add("moreStuff", historyData);
}
}
/** Our callback to receive history change
events. */
function historyChange(newLocation, historyData) {
alert("A history change has occured: newLocation="+newLocation
+ ", historyData="+historyData);
}
</script>
</head>
<body onload="initialize()">
</body>
</html>
A developer add's history events using the add()
method. Adding a history
event involves specifying a new location for the history change, such as "edit:SomePage", as well
as providing an optional historyData
value that will be stored with this event:
<head>
<script language="JavaScript">
function initialize() {
// subscribe to DHTML history change
// events
dhtmlHistory.addListener(historyChange);
// if this is the first time we have
// loaded the page...
if (dhtmlHistory.hasHistory() == false) {
// start adding history
dhtmlHistory.add("helloworld", "Hello World Data");
dhtmlHistory.add("foobar", 33);
dhtmlHistory.add("boobah", true);
var historyData = new Object();
historyData.value1 = "This is the first value";
historyData.value2 = "This is the second data";
dhtmlHistory.add("moreStuff", historyData);
}
}
/** Our callback to receive history change
events. */
function historyChange(newLocation, historyData) {
alert("A history change has occured: newLocation="+newLocation
+ ", historyData="+historyData);
}
</script>
</head>
<body onload="initialize()">
</body>
</html>
The new location will be shown to the user in the browser's URL toolbar, as an anchor value. For
example, after calling dhtmlHistory.add("helloworld", "Hello World Data")
for an
AJAX web page that lives at http://codinginparadise.org/my_ajax_app
, the user would
see the following in their browser's URL toolbar:
http://codinginparadise.org/my_ajax_app#helloworld
They could then bookmark this page; later, if they use this bookmark, your AJAX application can read
the #helloworld
value and use it to initialize the web page. Location values after the
hash will be URL encoded and decoded transparently by the dhtmlHistory
framework.
historyData
is useful for saving more complicated state with an AJAX location change than what
can easily fit on to a URL. It is an optional value that can be any JavaScript type, such as a Number,
String, or Object. One example use of this is saving all of the text in a rich text editor,
for example, if the user navigates away from the page. When a user navigates back to this location, the
browser will return the object
to a history change listener.
Developers can provide a full JavaScript object for historyData
, with nested objects and
arrays representing complex state; whatever is allowed by JSON (JavaScript Object Notation) is allowed
in the history data, including simple data types and the null
type. References to DOM objects and scriptable browser objects
like XmlHttpRequest, however, will not be saved. Note that historyData
is not saved with bookmarks, and disappears
when the browser is closed, or if the browser's cache or history are cleared or full.
Note that most emulation shims for this API, as opposed to native support in the browser,
will probably not have the ability to return historyData
; this is due to the fact
that saving history data after the browser has left a page is very difficult and unreliable from
within an emulation library. To create code that
is compatible for all browsers that use this API, whether through native support or emulation, developers
can either choose to not use history data:
dhtmlHistory.add("helloworld");
...
function historyChange(newLocation) {
alert("History change, newLocation="+newLocation);
}
Or can choose to use the supportsHistoryData()
method, which returns true if a browser
can store history data and false if it can not:
if (dhtmlHistory.supportsHistoryData()) {
dhtmlHistory.add("helloworld", someData);
}
else {
dhtmlHistory.add("helloworld");
}
The last step in working with dhtmlHistory
is the hasHistory()
method.
In some browsers, if you navigate to a web page, jump to another web site, and then press the back button
to return to the initial web site, the initial web page will completely reload and fire an onload event.
This can create havoc with code that wants to initialize the page in a certain way only the first time
it is loaded; afterwards, if there is history or certain data has already been loaded from a remote
web server, a
developer wishes to not repeat a certain action. The hasHistory()
method makes it possible
to differentiate between the very first time a web
page has loaded versus after it has already been loaded and possibly contains history data. As soon as a
page has loaded the first time it has DHTML history, namely the single page itself. In the example code, we
only want to add test history events the first time a page has loaded; if the user presses the back button
to return to the first page, we do not want to re-add all the history events:
<head>
<script language="JavaScript">
function initialize() {
// subscribe to DHTML history change
// events
dhtmlHistory.addListener(historyChange);
// if this is the first time we have
// loaded the page...
if (dhtmlHistory.hasHistory() == false) {
// start adding history
dhtmlHistory.add("helloworld", "Hello World Data");
dhtmlHistory.add("foobar", 33);
dhtmlHistory.add("boobah", true);
var historyData = new Object();
historyData.value1 = "This is the first value";
historyData.value2 = "This is the second data";
dhtmlHistory.add("moreStuff", historyData);
}
}
/** Our callback to receive history change
events. */
function historyChange(newLocation, historyData) {
alert("A history change has occured: newLocation="+newLocation
+ ", historyData="+historyData);
}
</script>
</head>
<body onload="initialize()">
</body>
</html>
An alternative method for subscribing to history change events is supported, using the
onhistorychange
attribute directory on a document's body
tag:
<body onhistorychange="alert('history change')">
A developer can register a callback using onhistorychange
just as they would
using addListener()
; note that using the onhistorychange
method will
clear out any listeners added using addListener()
.
Developers can use the getVersion
method to find out which version of the
Really Simple History API is supported. The value returned should be the specification version as a string,
such as "0.01".
As a final note to implementors, history change events are fired from the following user actions; they are not fired for any other actions not on this list:
historyData
historyData
The default encoding for location values and JavaScript strings is UTF-8. The text encoding for
emulation shims for browsers that do not natively support the DhtmlHistory API is
unspecified, however; internationalized values may not necessarily work in these browsers. The
isInternational()
method is provided for programmers to query
whether the browser they are working with supports internationalization in the context of DHTML history:
if (dhtmlHistory.isInternational()) {
// store some UTF-8 string in our DHTML history
}
else {
alert("This browser does not support internationalization");
}
History
Object, etc.?I have kept deep browser integration to a minimum to support browser emulation shims, which may
not be able to hook new event types into the browser through the W3C addEventListener
,
or which may not have permission to add methods to the history
object.
History
object?There really is a difference between the browser's history
object and
dhtmlHistory
. A web page has permission (and interest) in subscribing to history changes
within the context of its own document; if a user jumps from my AJAX application to Google, my application
is not interested in that. If the user jumps back from Google to my AJAX application, I am interested
in this. For this reason we separate out cross-page history from in-page history.
Extending the history
object also creates trouble for browser emulation shims;
see Why Don't You Use W3C Events, the Native History
Object, etc.
for more information.


I'm Sufyan Dawoodjee.
I study computer engineering at the University of South Florida.
I love computer hardware, software and everything in between.
I like to eat, program and smile.
I also read, a lot.
- The New York Times for high-quality journalism
- Hacker News for a mix of programming and entrepeneural content
- Dangerous Prototypes for my nascent interest in electronics
- Hackaday for the amazing, inventive projects
- Life Hacker for optimal living
- Articles, tutorials and projects I find interesting


SODA Dashboard provides a unified interface to the underlying capabilities from the SODA Framework components. This dashboard is built mainly to illustrate/showcase various use cases that could run on SODA ecosystem projects.
It is a direct client to SODA API and other projects which are getting integrated to SODA Ecosystem.
Uploading file [ {{fileName}} ]
-
downloading file [ {{downfile.name}} ]


Event Manager Winnie the Cat:
You don't have enough glittering medals to play the coin-toss game. Collect some more medals and come back. Meow!!


In the past few months, I've been having thoughts of being rasist towards black people. I would always ask God to take these thoughts away. They would go away, but they kept comming back, even though I'm not rasist and never have been. My favorite musician is Hendrix!
My brother and his friend ordered one ounce of salvia months ago. We all smoked it a lot at first, but then we took a long break. Me and my brother both had spiritual experiences the first time we smoked it right (huge hit, held in a long time). Many amazing things happened to us both. My brother's friend however, hasen't ever experienced any spiritual stuff, he has had the normal. Like once, he was in a boat, and water was everywhere, but he was on my brother's bed.
Anyway, we took a break from it for a couple months. About a week ago, we decided it was time once again. It was just me and my brother. We got really high first off some amsterdam quality stash. Then my brother put on King Crimson's 'Salior's Tale' right before I smoked the salvia. I was laying down on a couch in my brother's room during the entire thing, mostly with my eyes closed.
Right before I smoked it, I asked God to show me my life. Then right before it kicked in, I had the rasist thoughts. I then asked God to take the thoughts away. At this point, my eye's were closed. After I asked God this, I immeadeatly appeard in front of this weird looking door. It was small and kind of an arched shaped door. There were all of these people around me and there was one main person or angel.
When I wanted to go in the door I automaticly appeard on the other side of the door. The same main being came through also. He said 'You like Hendrix'? I said yah. Then he opened his hands, and many things happened that are imposible to explain. I had flash backs of old acid trips, and I understood that my father and my brother had some spiritual wisdom, that they knew things. Then Jimi Hendrix appeared there with us. Then we went into a party and there were lots of people there talking and having fun. Hendrix told me 'You're cool it's alright'. I don't remember what happend after that.
At some point, the person or angel told me to look at the T.V. So I opened my eyes and did this. There was a reflection, it looked like some weird eyeballs or something. I wanted to get higher than this and then I was told that that is heaven, and I can only get there when I die, and my brother, who had died two years ago, was there. That's when my other brother said something to me, and we were both starting to come down. When this all happened it was like a dream, I couldn't touch anybody, everything happened to me, and I watched myself. It's the best Salvia trip any of us have had yet. My brother's trip was just the normal salvia trip. His eyes were open the whole time, still a great time though. Everybody is pretty amazed by this salvia trip, so I wrote in.
I smoked again tonight, but I jamed out on my guitar both times. We have just found out about many things, and will continue to try new things. We will write again, we have had many amazing journys, and we have even more to come.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% extends "base.html" %} {% block content %}
METS File: {{ mets_file }}
Are you sure you want to delete METS file?


*** User 2017-05-02 17:33:11.468 ***
17:33:11.467 [info] Disabling blocking sync...
*** User 2017-05-02 17:33:11.472 ***
17:33:11.472 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-1@MacBook-Pro-de-Anne-France'
*** User 2017-05-02 17:33:12.965 ***
17:33:12.965 [info] Enabling membership...
*** User 2017-05-02 17:33:12.966 ***
17:33:12.966 [info] Disabling blocking sync...
*** User 2017-05-02 17:33:12.971 ***
17:33:12.971 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-2@MacBook-Pro-de-Anne-France'
*** User 2017-05-02 17:33:14.473 ***
17:33:14.473 [info] Enabling membership...
*** User 2017-05-02 17:33:14.475 ***
17:33:14.474 [info] Disabling blocking sync...
*** User 2017-05-02 17:33:14.479 ***
17:33:14.479 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-3@MacBook-Pro-de-Anne-France'
*** User 2017-05-02 17:33:14.710 ***
Joining node: 'node-3@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56340
*** User 2017-05-02 17:33:14.711 ***
Joining issued: 'node-3@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56340
*** User 2017-05-02 17:33:14.711 ***
Joining node: 'node-2@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56323
*** User 2017-05-02 17:33:14.711 ***
Joining issued: 'node-2@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56323
*** User 2017-05-02 17:33:14.712 ***
Joining node: 'node-1@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56311
*** User 2017-05-02 17:33:14.712 ***
Joining issued: 'node-1@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 56311
*** User 2017-05-02 17:33:14.773 ***
Waiting for join to complete with manager: partisan_default_peer_service_manager
*** User 2017-05-02 17:33:14.775 ***
Finished.
*** CT 2017-05-02 17:33:14.775 *** COVER INFO
Adding nodes to cover test: ['runner@MacBook-Pro-de-Anne-France']
*** CT 2017-05-02 17:33:14.786 *** COVER INFO
Successfully added nodes to cover test: []
*** User 2017-05-02 17:33:15.207 ***
Case finished: product_test
*** User 2017-05-02 17:33:22.257 ***
17:33:22.257 [info] Application lasp exited with reason: stopped
*** User 2017-05-02 17:33:22.257 ***
17:33:22.257 [info] Application partisan exited with reason: stopped
=== Ended at 2017-05-02 17:33:22
=== successfully completed test case
=== Returned value: ok
Test run history
| Top level test index


The purpose of BI SC 003 is to help you prepare for living in the 21st century in a sustainable way. Through the course, you will come to realize that you are dependent upon and supported by natural systems, without which life on earth could not exist. By presenting ideas and concepts about living systems and their environment, it is hoped that an understanding of these biological and ecological principles and their application towards current environmental problems will give you the confidence to be a trustworthy instrument for healthy development, a conscientious steward of nature and an agent of change towards a sustainable society.
The following text book is required. It may be purchased from MBS Direct, or rented/purchased from other sources:
For each of the 12 lessons in this course you should read the assigned chapter(s) in the text book and watch/listen to a 20-25 minute lecture located on the course web-site, or read the transcript of the lecture.
There will be two proctored exams in this course, one mid-course exam covering lessons 1-6, and one final exam covering lessons 7-12. Each exam will be available in Canvas for a 7 day period as outlined in the course schedule. You will only be able to open each exam once and you will then have 2 hours to complete all the questions. The exams will be proctored with Examity and you are not permitted to use the text book or notes while taking the exams. Exam questions will assess your understanding of the course materials.
Each exam consists of 40 multiple choice questions worth 3 points each (total 120 points), and 8 short answer questions worth 10 points each (total 80 points). Each exam is 200 points total and 20% of the course grade.
Exam Late Submission Policy: If you miss the exam deadline you may contact the instructor to ask to take a make-up exam. Unless you have a valid, documented reason for missing the exam period you will lose 10% per day taking the exam late.
For each of the 12 lessons there will be 1-3 assignments. See course schedule for due dates for individual assignments.
Course Introduction Activities (25 points): During week 1 you will complete several course introduction activities:
In the discussion forums you will get a chance to discuss environmental issues with your classmates. You will write your answer to a set of questions in a short essay format and post this in the discussion forum, in addition to replying to at least two of your classmates’ posts (one in the information literacy discussion, three in climate change discussion). Participate by the deadlines outlined in the course schedule.
Grading Criteria: To obtain full credit for participation in the discussion forums you need to post well-written, reflective main response that meets all the requirements outlined in description, and write at least two (three in climate change discussion) substantial replies to your classmates’ postings. A simple "I agree with you" is not enough, you should instead try to ask thought-provoking questions, add supporting information, or state your opposing views that contributes to your classmates’ learning.
Each quiz will consist of multiple choice and short answer questions. Quizzes are open book/notes and there is no time limit. Submit by the deadlines outlined in the course schedule.
You will research one specific example that relates to a topic covered in the required reading/lecture and summarize your findings in a 300-500 word essay.
Submit in assignment folders by the deadlines outlined in the course schedule. Note: The originality of your case study assignments will be checked through Turnitin.
Grading Criteria: Full credit will be awarded if all the requirements outlined in the description are met, all questions are answered correctly/ thoroughly and assignment is submitted by the deadline. See grading rubrics for more detail.
You will watch one or several short videos that relate to topics covered in the required reading/lecture and then answer a set of questions. Submit in drop box by deadlines outlined in the course schedule.
Grading Criteria: Full credit will be awarded if all questions are answered correctly/thoroughly and submitted by the deadline.
Grading Criteria: Full credit will be awarded if all the requirements outlined in the description are met, all questions are answered correctly/ thoroughly and assignment is submitted by the deadline. See grading rubrics for more detail.
Throughout the semester you will get a chance to participate in a few polls/surveys. You will get 2 extra credit points for each poll/survey you participate in if you do so by the corresponding lesson’s submission deadline. Zero points for late participation in polls/surveys. There will also be a 10 extra credit point discussion forum associated with lesson 12.
Use proper English when writing assignments, participating in class discussions and completing exams; achieving competence in the use of the English language is one of the objectives of general education at Penn State. Improper use of the English language, including more than a few minor spelling and grammatical errors, will adversely affect your grade.
This course consists of 12 lessons. For each lesson you will read one (or two) chapter(s) in the text book, watch a power point lecture and complete 1-3 assignments. Assignments associated with each lesson add up to approximately 50 points. 15 points are associated with the course introductory activities. See course format for assignment descriptions and course schedule for deadlines for each assignment.
| Assignment Type | Number Assigned | Points Each | Total Points | % of Course Grade |
|---|---|---|---|---|
| Exams | 2 | 200 | 400 | 40% |
| Quizzes | 9 | 10-35 | 160 | 16% |
| Discussion Forums | 10 | 15-30 | 185 | 17.5% |
| Case Studies | 3 | 20 | 60 | 6% |
| Projects | 4 | 15-50 | 65 | 6.5% |
| Video Assignments | 4 | 15-20 | 65 | 6.5% |
| Course Introduction Activities | 5 | 1-10 | 25 | 2.5% |
| Total | 36 | N/A | 1000 pts | 100% |
| Grade | Percentage | Points |
|---|---|---|
| A | 92-100 | 920-1000 |
| A- | 90-91.9 | 900-919 |
| B+ | 88-89.9 | 880-899 |
| B | 82-87.9 | 829-879 |
| B- | 80-81.9 | 800-819 |
| C+ | 78-79.9 | 780-799 |
| C | 70-77.9 | 700-779 |
| D | 60-69.9 | 600-699 |
| F | < 60 | < 600 |


| with :: Storable a => a -> (Ptr a -> IO b) -> IO b |
The memory is freed when f terminates (either normally or via an exception), so the pointer passed to f must not be used after this.
| new :: Storable a => a -> IO (Ptr a) |
The memory may be deallocated using Foreign.Marshal.Alloc.free or Foreign.Marshal.Alloc.finalizerFree when no longer required.
| fromBool :: Num a => Bool -> a |
| toBool :: Num a => a -> Bool |
| maybeNew :: (a -> IO (Ptr a)) -> Maybe a -> IO (Ptr a) |
| maybeWith :: (a -> (Ptr b -> IO c) -> IO c) |
| -> Maybe a -> (Ptr b -> IO c) -> IO c |
| maybePeek :: (Ptr a -> IO b) -> Ptr a -> IO (Maybe b) |
| withMany :: (a -> (b -> res) -> res) -> [a] -> ([b] -> res) -> res |
(argument order: destination, source)
| copyBytes :: Ptr a -> Ptr a -> Int -> IO () |
| moveBytes :: Ptr a -> Ptr a -> Int -> IO () |


A diverse group of proteins whose genetic MUTATIONS have been associated with the chromosomal instability syndrome FANCONI ANEMIA. Many of these proteins play important roles in protecting CELLS against OXIDATIVE STRESS. (mesh:D051856)
| Synonym | Reference | Specificity |
| FANC proteins | Exact | |
| FANC | Exact |
| Identifier | Name | Relation |
| HGNC:3436 | ERCC4 | isa |
| HGNC:3587 | FANCF | isa |
| HGNC:23168 | FANCM | isa |
| HGNC:9817 | RAD51 | isa |
| HGNC:3588 | FANCG | isa |
| HGNC:25568 | FANCI | isa |
| HGNC:3586 | FANCE | isa |
| HGNC:25009 | UBE2T | isa |
| HGNC:3584 | FANCC | isa |
| HGNC:9820 | RAD51C | isa |
| HGNC:3585 | FANCD2 | isa |
| HGNC:23845 | SLX4 | isa |
| HGNC:20473 | BRIP1 | isa |
| HGNC:3582 | FANCA | isa |
| HGNC:20748 | FANCL | isa |
| HGNC:3583 | FANCB | isa |
| HGNC:12829 | XRCC2 | isa |
| HGNC:1101 | BRCA2 | isa |
| HGNC:26144 | PALB2 | isa |
| HGNC:1100 | BRCA1 | isa |


To create a trading algorithm with LEAN, define a subclass of the QCAlgorithm
class. LEAN loads your algorithm into the engine during the building and compilation process. LEAN runs an algorithm manager that synchronizes the data your algorithm requests, injects the data into your algorithm so you can place trades, processes your orders, and then updates your algorithm state.
The LEAN engine manages your portfolio and data feeds, so you focus on your algorithm strategy and execution. We automatically provide basic portfolio management and reality modeling underneath the hood. The QCAlgorithm
class provides some key helper properties for you to use, including the Security Manager, Portfolio Manager, Transactions Manager, Notification Manager, and Scheduling Manager. The class also has hundreds of helper methods to make the API easy to use.
The Securities property is a dictionary of Security
objects. Each asset (Equity, Forex pair, etc) in your algorithm has a Security
object. All the models for a security live on these objects. For example, Securities["IBM"].FeeModel
and Securities["IBM"].Price
self.Securities["IBM"].FeeModel
and self.Securities["IBM"].Price
return the fee model and price of IBM, respectively.
The Portfolio is a dictionary of SecurityHolding
objects. These classes track the profits, losses, fees, and quantity of individual portfolio holdings. For example, Portfolio["IBM"].LastTradeProfit
self.Portfolio["IBM"].LastTradeProfit
returns the profit of your last IBM trade.
Other helpers like Transactions, Schedule, Notify, and Universe have their own helper methods.
public class QCAlgorithm { SecurityManager Securities; // Array of Security objects. SecurityPortfolioManager Portfolio; // Array of SecurityHolding objects SecurityTransactionManager Transactions; // Transactions helper ScheduleManager Schedule; // Scheduling helper NotificationManager Notify; // Email, SMS helper UniverseManager Universe; // Universe helper // Set up Requested Data, Cash, Time Period. public virtual void Initialize() { ... }; // Event Handlers: public virtual void OnData(Slice slice) { ... }; public virtual void OnEndOfDay(Symbol symbol) { ... }; public virtual void OnEndOfAlgorithm() { ... }; // Indicator Helpers public SimpleMovingAverage SMA(Symbol symbol, int period) { ... }; }
class QCAlgorithm: Securities # Array of Security objects. Portfolio # Array of SecurityHolding objects Transactions # Transactions helper Schedule # Scheduling helper Notify # Email, SMS helper Universe # Universe helper # Set up Requested Data, Cash, Time Period. def Initialize(self) -> None: # Other Event Handlers def OnData(self, slice: Slice) -> None: def OnEndOfDay(self, symbol: Symbol) -> None: def OnEndOfAlgorithm(self) -> None: # Indicator Helpers def SMA(self, symbol: Symbol, period: int) -> SimpleMovingAverage:
Only define one algorithm class per project. To trade multiple strategies in a single algorithm, implement an Algorithm Framework design with multiple Alpha models. To be notified when you can define more than one algorithm class per project, subscribe to GitHub Issue #6968.


JS vs. Ruby!
JavaScript constructor functions
Constructor function (when used with the new operator) purpose is to create new objects.
Since this is a function, you can do whatever you need to do to initialize the object. In this sample we’re just assigning properties. In Ruby you can do the same thing with the initialize instance method (which we’ll get to in a bit).
The following describes what the new operator does:
creates a new object
sets the constructor property of the object to the constructor function that is passed to it (Simple in the above example)
binds the new object to this
executes the constructor function
returns the new object
Ruby classes
Classes provide a way of creating objects with defined behaviour (methods) via the new method. The important distinction is that new is a method of Class, and not a keyword operator as it is in Javascript.
Like javascript, new creates a brand new object and binds it to the current context, or self, Ruby’s equivalent to Javascript’s this. Ruby also creates a reference to the class that created it:new then passes control to the initialize method defined on the class if it exists. This is where you can do any extra initialization work on the object, like setting instance variables, similar to how you would use Javascript constructor functions.


Home
Profile
Name:
Surname:
Email:
Date of birth:
Address:
Nationality:
Change password
See proposals
Logout


Number:
URL:
E-Mail address:
Phone number: there is no default validation associated with those.
Color: must be in format #[a-f0-9]{6}.
#[a-f0-9]{6}
Range:
Date:
Time: in 1-minute steps
Month:
go!


Chapter 4 Factor Number of instances missing a value:
| 2 6 19 20 22 23 26 | normali num-of- bore stroke horsepo peak-rp price | zed-losses 41 doors 2 4 4 wer 2 m 2 4 |
| Of | the orig | inal 205 reccords, X were removed because they contained missing data for the normalized-lossess factor, which was coded as a ? . This resulted in a dataset of 164 reccords of clean data. No other factors needed cleaning up, as the data was properly coded for each reccord. |
dat kni |
r a_dict < tr::kabl | - readxl::read_xlsx(path = “data/data-dictionary.xlsx”) e(data_dict, caption = ‘Data Dictionary - Initial’, booktabs = TRUE) |
| Tab | le: (#t | ab:data-dictionary)Data Dictionary - Initial |
| N | Descri | ption Values Keep |
1 symboling -3, -2, -1, 0, 1, 2, 3 No
2 normalized-losses continuous from [65 to 256] Yes
3 make alfa-romero, audi, bmw, chevrolet, dodge, honda, isuzu, jaguar, mazda, mercedes-benz, mercury, mitsubishi, nissan, peugot, plymouth, porsche, mitsubishi, nissan, peugot, plymouth, porsche, renault, saab, subaru, toyota, volkswagen, volvo Yes
4 fuel-type diesel, gas Yes
5 aspiration std, turbo Yes
6 num-of-doors four, two Yes
7 body-style hardtop, wagon, sedan, hatchback, convertible Yes
8 drive-wheels 4wd, fwd, rwd. Yes
9 engine-location front, rear Yes
10 wheel-base continuous from [86.6 to 120.9] Yes
11 length continuous from [141.1 to 208.1] Yes
12 width continuous from [60.3 to 72.3] Yes
13 height continuous from [47.8 to 59.8] Yes
14 curb-weight: continuous from [1488 to 4066] Yes
15 engine-type dohc, dohcv, l, ohc, ohcf, ohcv, rotor Yes
16 num-of-cylinders eight, five, four, six, three, twelve, two Yes
17 engine-size continuous from [61 to 326] Yes
18 fuel-system 1bbl, 2bbl, 4bbl, idi, mfi, mpfi, spdi, spfi Yes
19 bore continuous from [2.54 to 3.94] Yes
20 stroke continuous from [2.07 to 4.17] Yes
21 compression-ratio continuous from [7 to 23] Yes
22 horsepower continuous from [48 to 288] Yes
23 peak-rpm continuous from [4,150 to 6,600] Yes
24 city-mpg continuous from [13 to 49] Yes
25 highway-mpg continuous from [16 to 54] Yes
26 price continuous from [5,118 to 45,400] Yes
Of these factors, 10 of the initial 26 were removed, resulting in the 16 factors that will be used in analysis. These factors are noted in green in Keep
column of the above table.
data_dict <- readxl::read_xlsx(path = "data/data-dictionary.xlsx")
data_clean <- read.csv("data/data-clean.csv", header = TRUE)
names(data_clean) <- data_dict[['Description']]
str(data_clean)
## 'data.frame': 164 obs. of 26 variables:
## $ symboling : int 2 2 1 1 2 0 0 0 2 1 ...
## $ normalized-losses: int 164 164 158 158 192 192 188 188 121 98 ...
## $ make : Factor w/ 18 levels "audi","bmw","chevrolet",..: 1 1 1 1 2 2 2 2 3 3 ...
## $ fuel-type : Factor w/ 2 levels "diesel","gas": 2 2 2 2 2 2 2 2 2 2 ...
## $ aspiration : Factor w/ 2 levels "std","turbo": 1 1 1 2 1 1 1 1 1 1 ...
## $ num-of-doors : Factor w/ 3 levels "?","four","two": 2 2 2 2 3 2 3 2 3 3 ...
## $ body-style : Factor w/ 5 levels "convertible",..: 4 4 4 4 4 4 4 4 3 3 ...
## $ drive-wheels : Factor w/ 3 levels "4wd","fwd","rwd": 2 1 2 2 3 3 3 3 2 2 ...
## $ engine-location : Factor w/ 1 level "front": 1 1 1 1 1 1 1 1 1 1 ...
## $ wheel-base : num 99.8 99.4 105.8 105.8 101.2 ...
## $ length : num 177 177 193 193 177 ...
## $ width : num 66.2 66.4 71.4 71.4 64.8 64.8 64.8 64.8 60.3 63.6 ...
## $ height : num 54.3 54.3 55.7 55.9 54.3 54.3 54.3 54.3 53.2 52 ...
## $ curb-weight: : int 2337 2824 2844 3086 2395 2395 2710 2765 1488 1874 ...
## $ engine-type : Factor w/ 6 levels "dohc","l","ohc",..: 3 3 3 3 3 3 3 3 2 3 ...
## $ num-of-cylinders : Factor w/ 6 levels "eight","five",..: 3 2 2 2 3 3 4 4 5 3 ...
## $ engine-size : int 109 136 136 131 108 108 164 164 61 90 ...
## $ fuel-system : Factor w/ 7 levels "1bbl","2bbl",..: 6 6 6 6 6 6 6 6 2 2 ...
## $ bore : Factor w/ 34 levels "?","2.54","2.91",..: 14 14 14 11 24 24 17 17 3 8 ...
## $ stroke : Factor w/ 32 levels "?","2.07","2.19",..: 22 22 22 22 6 6 15 15 8 12 ...
## $ compression-ratio: num 10 8 8.5 8.3 8.8 8.8 9 9 9.5 9.6 ...
## $ horsepower : int 102 115 110 140 101 101 121 121 48 70 ...
## $ peak-rpm : int 5500 5500 5500 5500 5800 5800 4250 4250 5100 5400 ...
## $ city-mpg : int 24 18 19 17 23 23 21 21 47 38 ...
## $ highway-mpg : int 30 22 25 20 29 29 28 28 53 43 ...
## $ price : int 13950 17450 17710 23875 16430 16925 20970 21105 5151 6295 ...
The objective factor in the dataset is determined to be symboling
.
Next, the data was partitioned into three groups named training, test, and validation. This was
data <- read.csv("data/data-clean.csv")
summary(data)
## X1 X2 X3 X4 X5
## Min. :-2.0000 Min. : 65 toyota :31 diesel: 15 std :136
## 1st Qu.: 0.0000 1st Qu.: 94 nissan :18 gas :149 turbo: 28
## Median : 1.0000 Median :115 mazda :15
## Mean : 0.7927 Mean :122 honda :13
## 3rd Qu.: 2.0000 3rd Qu.:150 subaru :12
## Max. : 3.0000 Max. :256 volvo :11
## (Other):64
## X6 X7 X8 X9 X10
## ? : 1 convertible: 2 4wd: 8 front:164 Min. : 86.60
## four:95 hardtop : 5 fwd:106 1st Qu.: 94.50
## two :68 hatchback :60 rwd: 50 Median : 96.55
## sedan :80 Mean : 98.16
## wagon :17 3rd Qu.:100.40
## Max. :115.60
##
## X11 X12 X13 X14 X15
## Min. :141.1 Min. :60.3 Min. :49.40 Min. :1488 dohc : 8
## 1st Qu.:165.7 1st Qu.:64.0 1st Qu.:52.00 1st Qu.:2091 l : 8
## Median :172.0 Median :65.4 Median :54.10 Median :2368 ohc :124
## Mean :172.2 Mean :65.6 Mean :53.77 Mean :2458 ohcf : 12
## 3rd Qu.:177.8 3rd Qu.:66.5 3rd Qu.:55.50 3rd Qu.:2786 ohcv : 8
## Max. :202.6 Max. :71.7 Max. :59.80 Max. :4066 rotor: 4
##
## X16 X17 X18 X19 X20
## eight: 1 Min. : 61.0 1bbl:11 3.62 :20 3.03 :14
## five : 7 1st Qu.: 97.0 2bbl:63 3.15 :15 3.15 :14
## four :137 Median :109.0 4bbl: 3 3.19 :15 3.4 :13
## six : 14 Mean :118.0 idi :15 2.97 :12 3.23 :12
## three: 1 3rd Qu.:131.8 mfi : 1 3.03 :10 2.64 :11
## two : 4 Max. :258.0 mpfi:66 2.91 : 7 3.29 : 9
## spdi: 5 (Other):85 (Other):91
## X21 X22 X23 X24
## Min. : 7.00 Min. : 48.00 Min. :4150 Min. :15.00
## 1st Qu.: 8.70 1st Qu.: 69.00 1st Qu.:4800 1st Qu.:22.00
## Median : 9.00 Median : 91.00 Median :5200 Median :26.00
## Mean :10.13 Mean : 96.21 Mean :5138 Mean :26.27
## 3rd Qu.: 9.40 3rd Qu.:114.00 3rd Qu.:5500 3rd Qu.:31.00
## Max. :23.00 Max. :200.00 Max. :6600 Max. :49.00
##
## X25 X26
## Min. :18.00 Min. : 5118
## 1st Qu.:28.00 1st Qu.: 7446
## Median :32.00 Median : 9268
## Mean :31.85 Mean :11467
## 3rd Qu.:37.00 3rd Qu.:14559
## Max. :54.00 Max. :35056
##


|
|
A DBI Record. When utilizing `foreach' or `populate' methods
of a DBIResult object, you can pass an optional Object cloned from DBIRecord.
This object will be populated with the row contents making it possible to
write objects that represent your SQL results. A simple example would be:
Person := DBIRecord clone do (fullName := method(firstName.." "..lastName))
q := conn query("SELECT id, firstName, lastName FROM people")
q foreach(Person, p, writeln("Name = ", p fullName))
As you can see, fullName was not in the SQL query, however, a dynamic method
in your Person class.
DBIRecord in and of itself provides no real functionality. It simply acts
as an Object and stores the values from the SQL query into a Map. You can
access the field information:
o := r populate(Person)
o firstName // would retrieve the firstName value of the SQL query
o setFirstName("John") // would update the object's firstName value to be John
Do not confuse the above example as updating the actual database. The call
to setFirstName only updates the objects representation of firstName.
|


{% extends 'base.html' %} {% block content %}
Welcome to Python Club - yet another digital hub for Python enthusiasts.
Currently under construction. Check back for updates!


Here is the description of our project:
Primary Robot: The primary robot will map out a "room" designed by our team with an Xbox 360 Kinect camera. The image data recieved will be condensed into arrays of depth data, and will be sent to the main web application.
User Interface: This user interface will recieve the depth data from the primary robot and upload it to an in-memory database. The data will then reconstructed into a two-dimensional, top-down map of the "room".
After the map is reconstructed, it will be presented visually on the 'reconstruction' tab of this website. A user will be able to see the map and graphically select a route for the secondary robot to follow blindly through the "room".
This user-selected route will be validated, transformed into movement commands, and sent to the secondary robot in chunks.
Secondary Robot: The secondary robot will follow the user-selected route through the "room" and deliver a dummy item to a previously selected spot.


Ocala events
-
2 pressure method moisture
The Shoe Game - Shoe Game Glossary
LS - Lifestyle which is a Jordan product that is usually associated with matching . Heat - Hard to find shoes usually older models but can also be newer models.
http://theshoegame.com/Shoe-Game-Glossary.htmlGame theory - Wikipedia, the free encyclopedia
More formally, it is "the study of mathematical models of conflict and cooperation between intelligent rational decision-makers." An alternative term suggested "as .
http://en.wikipedia.org/wiki/Game_theoryProcedural Generation of Parcels in Urban Modeling
become a standard in parcel generation for future urban modeling methods. Categories and Subject . in the context of the cyclic list. We initialize LS (B) from the faces of the straight skeleton . cities: a visual dictionary. Rizzoli, 2010. 2 .
http://www.cs.purdue.edu/cgvlab/papers/aliaga/eg2012.pdf
tools for arthritis sufferers Upcoming events in Ocala
- Sponsored event
labelled diagram of human mouth
Apr 6 - Downtown Disney
resource manager terminated microsoft outlook verizon freedom security suite downlosd
house rent santa maria ca Hottest Tickets
-
Apr 11realty one la vegas nv
Amway Center -
Apr 28lcd tv discount ntsc input
Amway Center -
Jun 25rush limbaugh's charity work
Bob Carr Performing Arts Center -
Mar 30my last yee haw
Amway Center -
Aug 27gayle mackey grammar songs
Amway Center -
Jun 21nhs pay rise england
Amway Center -
Sep 13marraige licence required for hotel stay
Francis Field -
Mar 17state track scoring michigan
St Augustine Amphitheatre -
Oct 8richard thomas triplets pictures
Amway Center -
May 4harry's farmer's market georgia
Bob Carr Performing Arts Center
Ocala's best venues
-
What does SML mean? - SML Definition - Meaning of SML ...
. Welcome To My Life. YATLOML; You Are The Love Of My Life. ZECH; Energy, life. Other terms relating to 'story': CSB; Cool Story Bro (sarcastic). LS; Lovesick .
http://www.internetslang.com/SML-meaning-definition.asp -
Mathematical economics - Wikipedia, the free encyclopedia
Much of economic theory is currently presented in terms of mathematical economic models, a set of stylized and simplified mathematical relationships asserted .
http://en.wikipedia.org/wiki/Mathematical_economics -
Best Quality Cars, 2012 - MSN Autos
J.D. Power and Associates ranks new car models for best initial quality every year. Here . Lexus LS 460 . Even the Urban Dictionary knows Toyota's are crap.
http://editorial.autos.msn.com/slideshow.aspx?cp-documentid=250010459golf clubs and airplane saftey
98 people's favorite
-
PSY - Gangnam Style | Know Your Meme
Aug 13, 2012 . Urban Dictionary · Meme Generator . http://fashion-kornar.blogspot.com/2012/ 05/fashionable-dressed-for-girls-and-woman.html. Reply · Like .
http://knowyourmeme.com/memes/psy-gangnam-style -
Paedophile Keywords Observed in eDonkey - Measurement and ...
is confirmed with the help of Urban Dictionary6, a slang dictionary. The keywords yr or . model. 479. 12 lolitaguy. 372. 13 mylola. 304. 14 info. 288 queries . 28 ls. 68. 321. 253. 29 kingpass. 41. 291. 250. 30 5yo. 42. 280. 238 queries, ratio .
http://antipaedo.lip6.fr/T12/keywords_cnrs.pdf


The objective of this project is to scan the current sanitary-ware, analyze the deformation, and provide the corrected 3d model. After carefully scan and rebuild the product, I analyzed the defects and summarized the deformation into informative engineering guidance, along with the improved 3D model ready to be made into mould for automatic production.
Top: Deformation analysis
Middle: Laser probe scanning
Bottom: Final mould
Vanity sink
Printed by Formlab resin(SLA) printer
The prototype was designed and build in Solidworks, then printed by Formlab 2 printer.
Office toys
Printed by powder bed Zcorp printer
These are the collection of my MFA thesis designs. Models were built in Rhino3D and printed using Zcorp printer. Prototypes was then primed and finished by hand.


This option only becomes available if the Highlight modified lines in gutter option
is enabled.
Select this checkbox if you want lines where only whitespaces were added/removed to be highlighted with a
different color from lines with more significant modifications.


| Name of the producer: | |
| Legal status: | |
| Name of Internal Assessor: (if applicable) |
|
| Job title of Internal Assessor: | |
| Product(s): | |
| Total number of workers: | |
| Not started | In progress | Already in practice |
|
| Performance area 1: Social Management System and Cascade Effect | |||
|---|---|---|---|
| This performance area does not have crucial questions | |||
| Performance area 2: Workers Involvement and Protection | |||
| The auditee takes specific steps to make workers aware of their rights and responsibilities | |||
| Performance area 3: The rights of Freedom of Association and Collective Bargaining | |||
| The auditee respects workers’ right to bargain collectively | |||
| Performance area 4: No Discrimination | |||
| The auditee takes the necessary measures to avoid or eradicate discrimination in the workplace | |||
| Performance area 5: Fair Remuneration | |||
| The auditee complies with the government’s minimum wage legislation or the industry standard approved through collective bargaining (if applicable) | |||
| The auditee ensures that deductions from wages are only taken under the conditions and to the extent prescribed by the law | |||
| Performance area 6: Decent Working Hours | |||
| The auditee grants workers the right to resting breaks in every working day | |||
| The auditee grants workers the right to at least one day off in every seven days | |||
| Performance area 7: Occupational Health and Safety | |||
| The auditee respects the workers’ right to remove themselves from imminent danger without seeking permission | |||
| The auditee has installed an adequate amount of firefighting equipment , which works properly | |||
| The auditee ensures that escape routes, aisles and emergency exits in the production site are easily accessible, clearly marked and not blocked | |||
| The auditee ensures qualified first-aid is available at all times | |||
| The auditee provides potable water for workers at all times | |||
| Performance area 8: No Child Labour | |||
| The auditee does not engage in illegal child labour directly or indirectly | |||
| Performance area 9: Special protection for young workers | |||
| Young workers’ working hours do not prejudice: o Their attendance at school o Their participation in vocational orientation approved by the competent authority o Their capacity to benefit from training or instruction programmes |
|||
| The auditee establishes the necessary mechanisms to prevent, identify and mitigate harm to young workers | |||
| Performance area 10: No Precarious Employment | |||
| The auditee does not use employment arrangements in a way that deliberately conflicts with the genuine purpose of the law | |||
| Performance area 11: No Bonded Labour | |||
| The auditee does not engage workers under any form of servitude or forced, bonded, indentured, trafficked or non-voluntary labour. | |||
| The auditee does not treat workers in an inhumane or degrading manner. Corporal punishment, mental or physical coercion and/or verbal abuse are forbidden. | |||
| Performance area 12: Protection of the Environment | |||
| This performance area does not have crucial questions | |||
| Performance area 13: Ethical Business Behaviour | |||
| The auditee takes the necessary measures to prevent: o Falsification of information related to its activities, structure and performance o Any act of misrepresentation of its supply chain |


Introduction
Welcome to the CourseMapper API! You can use our API to access CourseMapper API endpoints, which can let you use many functions available in CourseMapper.
We have language bindings in Curl and Json. You can view code examples in the dark area to the right.
This API documentation page was created with Slate.
Authentication
CourseMapper uses standard OAuth2 to allow access to the API. You can register a new application to obtain the clientId and clientSecret here.
1. Authorization.
Your mobile or web application should provide a button that opens a popup box or a webview to visit this URL:
https://coursemapper/api/oauth2/authorize?client_id=<client_id>&response_type=code
URL Parameters
| Parameter | Description |
|---|---|
| client_id | The Client ID |
| response_type | “code” (the only supported) |
Once users are logged in, they will be redirected to the URL provided in redirect_uri
that the application provides, or if this field was set to be empty, then it will be redirected to an empty page
https://coursemapper/api/oauth2/app?code=<temporary_token>
Response URL Parameters
| Parameter | Description |
|---|---|
| code | Contains the temporary token |
that contains the temporary token.
2. Obtain Temporary Token when user is authenticated.
Your application will have to parse this URL above and grab the temporary_token
for the next step.
3. Exchange for Access Token
Once the application has obtained a temporary token, now it has to exchange it for an access token. To do that, the application needs to send a request to:
POST http or https://coursemapper/api/oauth2/token
POST Parameters
| Parameter | Description |
|---|---|
| code | Temporary Token |
| grant_type | “authorization_code” (the only supported) |
Response
{
"result": true,
"access_token": {
"accessToken": "random-string",
"userId": "mongo-objectId",
"email"<EMAIL_ADDRESS>}
}
The result from the exchange contains this json:
| Parameter | Description |
|---|---|
| result | boolean |
| access_token | object |
Finally
CourseMapper expects for the access token to be included in all API requests to the server in a header that looks like the following:
Bearer <accessToken>
Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah
Categories
Get All Categories
curl "https://coursemapper/api/categories"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/categories"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true, "categories":
[
{
"_id": "56b0efc1309953f719610f58",
"name": "I.T",
"slug": "I-T",
"parentCategory": null,
"positionFromRoot": {"x": 1, "y": 0},
"courseTags": [{
"name": "PHP"
}],
"subCategories": [
{
"_id": "56b0efc1309953f719610f31",
"name": "Server Side",
"slug": "server-side",
"parentCategory": 1,
"positionFromRoot": {"x": 2, "y": 2},
"courseTags": [{
"name": "Web"
}],
"subCategories":[]
}
]
}
]
}
This endpoint retrieves all Categories.
HTTP Request
GET /api/categories
Response
| Key | Value |
|---|---|
| result | boolean |
| categories | array of Category |
Courses
Get Courses based on Category Id
curl "https://coursemapper/api/category/<categoryId>/courses"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/category/56b0efc1309953f719610f58/courses"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result":true,
"courses":[
{
"_id":"56b11bf8309953f719610f65",
"dateAdded":"2016-02-02T21:13:28.808Z",
"slug":"Advanced-Web-Technologies-WebTech-2",
"name":"Advanced Web Technologies (WebTech 2)",
"createdBy":"5530bef8e5a9e0dd261059b8",
"category":"56b0efc1309953f719610f58",
"description":"
Advanced Web Technologies (WebTech 2)
",
"smallDescription":"Advanced Web Technologies (WebTech 2)",
"picture":"img/courses/56b11bf8309953f719610f65.png",
"courseTags":[
"56cde0ff8754f7b704180ada"
]
},
{
"_id":"56cdf5dced46e6dd19c3d555",
"dateAdded":"2016-02-24T18:26:36.910Z",
"slug":"Advanced-Web-Technologies-WebTech-1",
"name":"Advanced Web Technologies (WebTech 1)",
"createdBy":"5530bef8e5a9e0dd261059b8",
"category":"56b0efc1309953f719610f58",
"description":"
course description
",
"smallDescription":"course\'s small description",
"courseTags":[
"56cdf5dded46e6dd19c3d556"
]
}
]
}
GET /api/category/<categoryId>/courses
Response
| Key | Value |
|---|---|
| result | boolean |
| courses | array of CoursePreview |
Get Course Detail
curl "https://coursemapper/api/course/<courseId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/course/56b0efc1309953f719610aaa"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"course": {
"_id": "56b11bf8309953f719610f65",
"dateUpdated": "2016-02-24T16:57:35.557Z",
"dateAdded": "2016-02-02T21:13:28.808Z",
"slug": "Advanced-Web-Technologies-WebTech-2",
"name": "Advanced Web Technologies (WebTech 2)",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca"
},
"category": {
"_id": "56b0efc1309953f719610f58",
"dateAdded": "2016-02-02T18:04:49.961Z",
"dateUpdated": "2016-02-02T18:04:49.961Z",
"slug": "Web-Technologies",
"name": "Web Technologies",
"parentCategory": "568d51194076070762cfb8f9",
"positionFromRoot": {
"y": -316,
"x": 275
},
"courseTags": [
"56cde0ff8754f7b704180ada",
"56cdf5dded46e6dd19c3d556"
]
},
"description": "
Advanced Web Technologies (WebTech 2)
",
"smallDescription": "Advanced Web Technologies (WebTech 2)",
"picture": "img/courses/56b11bf8309953f719610f65.png",
"courseTags": [
{
"_id": "56cde0ff8754f7b704180ada",
"dateAdded": "2016-02-24T16:57:35.982Z",
"slug": "PHP",
"name": "PHP"
}
],
"managers": [],
"isEnrolled": false
}
}
GET /api/category/<categoryId>/courses
Response
| Key | Value |
|---|---|
| result | boolean |
| course | Course |
Maps
Get All Nodes Based on Course Id
curl "https://coursemapper/api/treeNodes/course/<courseId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/treeNodes/course/56b0efc1309953f719610aaa"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"treeNodes": [
{
"_id": "56b11ea0309953f719610f66",
"dateUpdated": "2016-02-02T21:49:06.216Z",
"dateAdded": "2016-02-02T21:24:48.164Z",
"name": "Overview",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"displayName": "akana abaca"
},
"courseId": "56b11bf8309953f719610f65",
"positionFromRoot": {
"y": 6,
"x": 221
},
"isDeleted": false,
"resources": [],
"type": "subTopic",
"childrens": [
{
"_id": "56b12452309953f719610f67",
"dateUpdated": "2016-02-24T18:52:04.795Z",
"dateAdded": "2016-02-02T21:49:06.207Z",
"name": "Overview of Web Tech tes",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"displayName": "akana abaca"
},
"courseId": "56b11bf8309953f719610f65",
"parent": "56b11ea0309953f719610f66",
"positionFromRoot": {
"y": 77,
"x": 407
},
"isDeleted": false,
"resources": [
{
"_id": "56b12452309953f719610f68",
"dateUpdated": "2016-02-02T21:49:06.210Z",
"dateAdded": "2016-02-02T21:49:06.210Z",
"type": "pdf",
"createdBy": "5530bef8e5a9e0dd261059b8",
"link": "/resources/56b12452309953f719610f67.pdf",
"courseId": "56b11bf8309953f719610f65",
"treeNodeId": "56b12452309953f719610f67",
"isDeleted": false
},
{
"_id": "56b1e2a7a526d27803559a14",
"dateUpdated": "2016-02-03T11:21:11.525Z",
"dateAdded": "2016-02-03T11:21:11.525Z",
"type": "mp4",
"createdBy": "5530bef8e5a9e0dd261059b8",
"link": "/resources/56b12452309953f719610f67.mp4",
"courseId": "56b11bf8309953f719610f65",
"treeNodeId": "56b12452309953f719610f67",
"isDeleted": false
}
],
"type": "contentNode",
"childrens": []
}
]
}
]
}
GET /api/treeNodes/course/<courseId>
Response
| Key | Value |
|---|---|
| result | boolean |
| treeNodes | [treeNode] |
Get Node Detail
curl "https://coursemapper/api/treeNode/<treeNodeId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/treeNode/56b0efc1309953f719610aaa"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"treeNode":
{
"_id": "56b12452309953f719610f67",
"dateUpdated": "2016-02-24T18:52:04.795Z",
"dateAdded": "2016-02-02T21:49:06.207Z",
"name": "Overview of Web Tech tes",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"displayName": "akana abaca"
},
"courseId": "56b11bf8309953f719610f65",
"parent": "56b11ea0309953f719610f66",
"positionFromRoot": {
"y": 77,
"x": 407
},
"isDeleted": false,
"resources": [
{
"_id": "56b12452309953f719610f68",
"dateUpdated": "2016-02-02T21:49:06.210Z",
"dateAdded": "2016-02-02T21:49:06.210Z",
"type": "pdf",
"createdBy": "5530bef8e5a9e0dd261059b8",
"link": "/resources/56b12452309953f719610f67.pdf",
"courseId": "56b11bf8309953f719610f65",
"treeNodeId": "56b12452309953f719610f67",
"isDeleted": false
},
{
"_id": "56b1e2a7a526d27803559a14",
"dateUpdated": "2016-02-03T11:21:11.525Z",
"dateAdded": "2016-02-03T11:21:11.525Z",
"type": "mp4",
"createdBy": "5530bef8e5a9e0dd261059b8",
"link": "/resources/56b12452309953f719610f67.mp4",
"courseId": "56b11bf8309953f719610f65",
"treeNodeId": "56b12452309953f719610f67",
"isDeleted": false
}
],
"type": "contentNode",
"childrens": []
}
}
GET /api/treeNode/<treeNodeId>
Response
| Key | Value |
|---|---|
| result | boolean |
| treeNode | treeNode |
Discussions
Get Discussion’s Topics Based on Course Id
curl "https://coursemapper/api/discussions/<courseId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/discussions/56b0efc1309953f719610aaa"
-H "Authorization: Bearer 2ksjow2039ze_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"posts": [
{
"_id": "56b1cc0ba526d27803559a10",
"dateAdded": "2016-02-03T09:44:43.609Z",
"dateUpdated": "2016-02-03T09:44:43.609Z",
"slug": "Web-Technology-as-a-desktop-program",
"course": "56b11bf8309953f719610f65",
"title": "Web Technology as a desktop program",
"content": "...",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca",
"image": "//www.gravatar.com/avatar/57a6e733c1a82f02e5d95114e77217a4?s=200&r=pg&d=mm"
},
"totalVotes": 0
},
{
"_id": "56b12a6a309953f719610f6b",
"dateAdded": "2016-02-02T22:15:06.865Z",
"dateUpdated": "2016-02-02T22:15:06.865Z",
"slug": "What-is-Web-crawler",
"course": "56b11bf8309953f719610f65",
"title": "What is Web crawler?",
"content": "...",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca",
"image": "//www.gravatar.com/avatar/57a6e733c1a82f02e5d95114e77217a4?s=200&r=pg&d=mm"
},
"totalVotes": 0
}
]
}
GET /api/discussions/<courseId>
Response
| Key | Value |
|---|---|
| result | boolean |
| posts | [Post] |
Get A Discussion’s Replies
curl "https://coursemapper/api/discussion/<postId>/posts"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/discussion/56b0efc1309953f719610aaa/posts"
-H "Authorization: Bearer 2ksjow2039z=_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"posts": [
{
"_id": "56b12ab7309953f719610f6d",
"dateAdded": "2016-02-02T22:16:23.360Z",
"dateUpdated": "2016-02-02T22:16:23.362Z",
"slug": "",
"title": " ",
"content": "...",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca",
"image": "//www.gravatar.com/avatar/57a6e733c1a82f02e5d95114e77217a4?s=200&r=pg&d=mm"
},
"parentPost": "56b12a6a309953f719610f6b",
"totalVotes": 0
},
{
"_id": "56b12a76309953f719610f6c",
"dateAdded": "2016-02-02T22:15:18.316Z",
"dateUpdated": "2016-02-02T22:15:18.318Z",
"slug": "",
"title": " ",
"content": "...",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca",
"image": "//www.gravatar.com/avatar/57a6e733c1a82f02e5d95114e77217a4?s=200&r=pg&d=mm"
},
"parentPost": "56b12a6a309953f719610f6b",
"totalVotes": 0
}
]
}
GET /api/discussion/<topicId>/posts
Response
| Key | Value |
|---|---|
| result | boolean |
| posts | [Post] |
Add A Discussion Topic/Reply
POST /api/discussion/<postId>
URL Parameter
| Key | Value |
|---|---|
| postId | ObjectId |
Body Parameter
| Model | Description |
|---|---|
| Post | With courseId and Without parentPost if it’s a topic. Without courseId and with parentPost if it’s a reply. |
Edit A Discussion Topic/Reply
PUT /api/discussion/<postId>
URL Parameter
| Key | Value |
|---|---|
| postId | ObjectId |
Body Parameter
| Model | Description |
|---|---|
| Post | Post object |
Delete A Discussion Topic/Reply
DELETE /api/discussion/<postId>
URL Parameter
| Key | Value |
|---|---|
| postId | ObjectId |
Links
Get Links Based on Node Id
curl "https://coursemapper/api/links/<nodeId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/links/56b0efc1309953f719610aaa"
-H "Authorization: Bearer 2ksjow2039ze_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"posts": [
{
"_id": "56b1fe60a526d27803559a19",
"dateAdded": "2016-02-03T13:19:28.639Z",
"dateUpdated": "2016-02-03T13:19:28.639Z",
"slug": "Electron-Desktop-Bridge-to-Web-Technologies",
"title": "Electron Desktop Bridge to Web Technologies",
"content": "http://electron.atom.io/",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca"
},
"description": "Electron library to create desktop app using web technologies",
"contentNode": "56b12452309953f719610f67",
"totalVotes": 0
},
{
"_id": "56b1fd5ba526d27803559a17",
"dateAdded": "2016-02-03T13:15:07.213Z",
"dateUpdated": "2016-02-03T13:15:07.213Z",
"slug": "w3c",
"title": "w3c",
"content": "http://www.w3.org/",
"createdBy": {
"_id": "5530bef8e5a9e0dd261059b8",
"username": "rpl",
"displayName": "akana abaca"
},
"description": "w3c website",
"contentNode": "56b12452309953f719610f67",
"totalVotes": 0
}
]
}
GET /api/links/<nodeId>
Response
| Key | Value |
|---|---|
| result | boolean |
| posts | [Link] |
Add Link into A Content Node
POST /api/links/<nodeId>
URL Parameter
| Key | Value |
|---|---|
| nodeId | ObjectId |
Body Parameter
| Model | Description |
|---|---|
| Link | Link object |
Edit Link
PUT /api/link/<linkId>
URL Parameter
| Key | Value |
|---|---|
| linkId | ObjectId |
Body Parameter
| Model | Description |
|---|---|
| Link | Link object |
Delete Link
DELETE /api/link/<linkId>
URL Parameter
| Key | Value |
|---|---|
| linkId | ObjectId |
Votes
Get Vote Based on Object
curl "https://coursemapper/api/votes/<voteType>/id/<voteTypeId>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/votes/discussion/id/5530bef8e5a9e0dd261059b8"
-H "Authorization: Bearer 2ksjow2039ze_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"vote": {
"_id": "5530bef8e5a9e0dd261059b8",
"total": "12"
}
}
GET /api/votes/<voteType>/id/<voteTypeId>
This endpoint will return the summary of votes of an object. A vote is casted on an object by a user, based on its object type and object Id. An object can be a discussion topic, discussion reply, annotations and many others as long as it has an id as its identifiers.
URL Parameter
| Key | Value |
|---|---|
| voteType | string (discussion, reply, link, pdf-annotation, video-annotation) |
| voteTypeId | ObjectId |
Response
| Key | Value |
|---|---|
| result | boolean |
| {vote:{total:int}} | int |
Insert Vote
POST /api/votes/<voteType>/id/<voteTypeId>/<operation>
This endpoint can be used to vote up, vote down, and unvote.
URL Parameter
| Key | Value |
|---|---|
| voteType | string (“discussion”, “reply”, “link”, “pdf-annotation”, “video-annotation”) |
| voteTypeId | ObjectId |
| operation | string (“up” or “down”). Send the same value if unvote. |
Accounts
Get Account Based on Username
curl "https://coursemapper/api/account/<username>"
-H "Authorization: Bearer <accessToken>"
e.g.:
curl "https://coursemapper/api/account/rpl"
-H "Authorization: Bearer 2ksjow2039ze_18jaszxvnKLJlsfHUHfsjklmvoiay9146fah"
The above command returns JSON structured like this:
{
"result": true,
"user": {
"_id": "5530bef8e5a9e0dd261059b8",
"updatedAt": "2015-04-17T08:06:16.743Z",
"username": "rpl",
"email"<EMAIL_ADDRESS>"dateAdded": "2015-08-17T14:44:04.167Z",
"displayName": "akana abaca",
"image": "//www.gravatar.com/avatar/57a6e733c1a82f02e5d95114e77217a4?s=200&r=pg&d=mm",
"role": "admin"
}
}
GET /api/account/<username>
This endpoint will only able to get the logged in username based on the obtained access token.
Response
| Key | Value |
|---|---|
| result | boolean |
| user | User |
Errors
The CourseMapper API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 401 | Unauthorized – Your API Access Token is wrong |
| 404 | Not Found – The specified kitten could not be found |
| 500 | Internal Server Error – We had a problem with our server. Try again later. |
Models
User
| User | |
| _id | ObjectId |
| displayName | String |
| image | [Resource] |
| username | ObjectId |
| role | admin/user |
AccessToken
| AccessToken | |
| accessToken | String |
| userId | objectId |
| String |
Category
| Category | |
| _id | ObjectId |
| name | String |
| slug | String |
| parentCategory | Category |
| positionFromRoot | { “x”: int, “y”: int } |
| courseTags | [Tag] |
| subCategories | [Category] |
Tag
| Tag | |
| _id | ObjectId |
| name | String |
| slug | String |
| dateAdded | Date() |
CoursePreview
| CoursePreview | |
| _id | ObjectId |
| name | String |
| slug | String |
| picture | String (URL) |
| video | String (URL) |
| dateAdded | Date() |
| createdBy | {“name”: String} |
Course
| Course | |
| _id | ObjectId |
| name | String |
| slug | String |
| smallDescription | String |
| description | String |
| settings | Mixed |
| tabsActive | Mixed |
| category | Category |
| courseTags | [Tag] |
| picture | String (URL) |
| video | String (URL) |
| dateAdded | Date() |
| createdBy | {“name”: String} |
Post Discussion
| Post | |
| _id | ObjectId |
| parentPost | postId |
| content | String |
| courseId | ObjectId |
| createdBy | User |
| dateAdded | Date() |
| dateUpdated | Date() |
| title | String |
| totalVotes | int |
Link
| Link | |
| _id | ObjectId |
| content | String |
| contentNode | ObjectId |
| createdBy | User |
| dateAdded | Date() |
| dateUpdated | Date() |
| title | String |
| totalVotes | int |
TreeNode
| TreeNode | |
| _id | ObjectId |
| name | String |
| Resources | [Resource] |
| courseId | ObjectId |
| positionFromRoot | { “y”: int, “x”: int } |
| isDeleted | boolean |
| dateAdded | Date() |
| createdBy | {“name”: String} |
| type | String (subTopic | contentNode) |
| childrens | [TreeNode] |
Resource
| Resource | |
| _id | ObjectId |
| courseId | ObjectId |
| treeNodeId | ObjectId |
| link | String (URL) |
| dateAdded | Date() |
| createdBy | {“name”: String} |
| type | String (pdf | video | youtube | mp4) |


Welcome to Sync. A website designed by students for students.
Sync is a tool for students and employers to converse and create relationships.
See what events are currently happening in the area.
Search from a list of businesses that are using our website.
24/7 support to meet your needs and provide any possible assistance.
Here are some of the companies that use our website.
Call our customer support number (1800)123-4567 or contact us via email, syncsupport@sync.com


Brand Nu Y3 SARK: Checkout Sarkodie’s Classic Red Carpet Look To The 2019 MTN 4Syte Music Video Awards
by Chris HandlerPeople don’t just like Sarkodie for his dexterity when it comes to rap but also because of his high fashion sense–Chale dude knows how to look good to the extent that, you can’t help but just admire him.
At the 4Syte Music Video Awards, Sarkodie brought his fashion A-game on when he stepped on the red carpet wearing a black suit and with a glass of wine in his hands as he posed for the cameras.
And of course, he didn’t leave his shades home as always.
Check out the photos below and share your thoughts in comments after you share the story and keep coming back to Ghbase.com always for more stories.


NetCDF Standards
Status of standards body endorsements of netCDF and related conventions
The netCDF format has been endorsed by several standards bodies:
- On 2009-02-05, the NASA Earth Science Data Systems (ESDS) Standards Process Group
officially endorsed the document ESDS-RFC-011, NetCDF Classic and 64-bit Offset File
Formats, as an appropriate standard for NASA Earth Science
data.
- On 2010-03-12, the Integrated Ocean Observing System
(IOOS) Data Management and Communications (DMAC) Subsystem endorsed netCDF with Climate and Forecast
(CF) conventions as a preferred data format.
- On 2010-09-27, the Steering Committee of the Federal Geographic Data Committee (FGDC) officially endorsed
netCDF as a "Common Encoding Standard (CES)".
- On 2010-10-18, the ESDS-RFC-021 Technical Working Group issued a
final report
concluding that the NASA ESDS Standards Process Group should
recommend ESDS-RFC-021, CF Metadata
Conventions, for endorsement as a NASA Recommended Standard.
-
On 2011-04-19, the Open Geospatial Consortium (OGC) approved the OGC
Network Common Data Form (netCDF) Core Encoding Standard, and NetCDF
Binary Encoding Extension Standard - netCDF Classic and 64-bit
Offset Format as official OGC standards. These standards are
available for free download at http://www.opengeospatial.org/standards/netcdf.
-
On 2011-11-03, the ESDS-RFC-022 Technical Working Group issued a final report
recommending ESDS-RFC-022, NetCDF-4/HDF-5 File Format, for
endorsement as an EOSDIS Approved Standard.
- On 2012-11-16, the OGC adopted the
netCDF Enhanced Data Model Extension to the OGC Network Common Data
Form Core Encoding Standard, making netCDF-4 an official OGC
standard. This standard is available for free download at http://www.opengeospatial.org/standards/netcdf.
-
On 2013-02-14, the OGC approved the
Climate and Forecast (CF) extension to the NetCDF Core data model
standard, making the CF metadata conventions for netCDF an official
OGC standard.


Making a Murderer's lawyer bids to free man jailed over murder seen in a dream
Netflix has been upping its true crime game over the past year, but this is the one that may blow your mind the most.
2015 film Dream/Killer has been bought by the streaming service, and sees Making a Murderer’s Kathleen Zellner of a man who was convicted of murder – based on the testimony of a dream someone had.
Ryan Ferguson was 20 years old when he was convicted for the 2001 murder of 48-year-old Kent Heitholt, a sports reporter found dead outside his offices in Columbia, Missouri.
Advertisement Advertisement
Heitholt was found on the floor having been strangled by his own belt.
Just 17 at the time of the murder, in 2005 he Ferguson was sentenced to 40 years in jail for the killing – and triggered a 10 year battle spearheaded by his father Bill to get him freed.
The biggest piece of evidence that sold the jury? An anonymous tip-off to Charles ‘Chuck’ Erickson, who had taken drugs the night of the crime, and after spending time with Ryan that evening, had dreamed they may have committed it.
Yup. That’s it. That’s the evidence.
‘I didn’t know if it was memory, or if it was a dream. I assumed that if I’d done it, Ryan and I did it to get more money for drink,’ Erickson is seen telling cameras in the documentary.
Spurred on by police evidence and ‘remembering things’ while they were interrogating him, Chuck implicated himself in the crimes as well as Ryan.
But Bill Ferguson knew his son was innocent, and as a result when on his own mission for justice.
Hiring Kathleen Zellner to support his son, Bill goes on a mission to get Ryan freed, but was repeatedly refused a retrial despite the growing among of evidence supporting his innocence.
Advertisement Advertisement
In 2013, Ryan was finally released, and continues to support those who also insist they’re innocent after he himself was exonerated.
He now works as a personal trainer and health and fitness guru, and temporarily hosted an MTV series called Unlocking The Truth, which focuses on the potential innocence of prisoners.
Dream/Killer is available to watch now on Netflix.
Got a showbiz story? If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Welcome to Schedio, your AI-assisted fashion design tool
Schedio is a web application to help fashion designers create finished design images of bags and garments in few seconds.
Thanks to Schedio AI system, designers can test different combinations of textures applied on their sketches.


git init
initializes a local git
repository
on your computer.
You do this after you have
created the directory
(aka folder) that you want to push to
remote
(Github
). Also make
sure that you are actually inside the directory. pwd
if you have to!
When you have added some files and filled them with some
content, type the
git status
command in Terminal, and hit return
. Copy
and
paste this command
in
Terminal, if you have to!
When you are ready to commit
your changes locally, type git add .
in
Terminal and hit
return
, if you want to commit
all your files and directories
at
once.
git add
pathtofileIf you don't want to commit
everything all
at
once, you can
add (aka stage
)
a single file, or several
files, individually.
If you want to add more than one file, you can type git add pathtofile pathtofile
, etc.
The great
thing about git status
is, that it returns the files that either have been
newly
created and never staged or
committed, or the files that have
been modified,
including the path
to
the file!
git status
: screenshotgit add pathtofile
revisited
git add index.html
You could also do something like
git add index.html form.html
if there was another new, un-tracked file to
add
, and
another, and so on.
New, un-tracked files always
appear red
, and newly
modified files also appear red
.
When a file
, or files
, have been added to the
staging area
with the
git add
command, if you then type execute git status
, the file
or
files
that have
been
added will show up green. That means that
they
are ready to be committed
locally (your computer as opposed to remotely on
Github
).
Note: In the screenshot
in the previous slide
, the file
that was ready
for staging
was NOT a new file, but a modified one. That meant it had already
been committed at
least once
previously, and was therefore already being "tracked"
. "un-tracked"
refers
to files
that have never
been added/committed yet.
So you have staged
your file(s), and they are ready to be committed
locally. There are 2 ways to do this.  First I type the
git commit
command, which
takes me into vim
, a cool text editor which comes with most UNIX
systems
and with
Apple OS X
. I love using it for git commit
messages. Why? Because it is
easy to use, and allows you to create multi-line messages,
if you want.
You probably want to keep your commit messages to ~50
characters or less
long, but it's
nice
to have options!
So you have committed your new local repository
on your
computer. Now you
are ready to push
it to
remote origin
. remote origin
refers to the remote hosting
service you are
using to
host your repositories
remotely.
origin
does not even
have to be
origin
. For example, if you
push your repository
to a hosting service called
Heroku
for applications with
backend servers/backend databases
,
you would use heroku
instead of origin
. However,
historical convention on Github
is to use
the origin
keyword.
In order to be able to push your local commits
for the first
time to
remote
, you have to associate your local
repository
with a remote
one. However, before you even can take this
step, you have to make sure
you have a
remote repository
to push
to!
remote
repository on Github, go to your
Github profile, click
on the
Repositories tab, and
then the green New button that appears to the right of the "Find a repository"
search
bar. This will take you to https://github.com/new
, where you will create your
new
repository.
The first step to creating a remote repository on Github
is to
fill out the
repository
name field
with a repo name of your choosing. When I created the remote
repository for housing
the local
repository of this slide deck, I input the following in the repository
name field:
basic-git-commands
It is best practice to create a repository name using
hyphens
(-) between
words. Github
might not even accept other character conventions such
as _
.
I have tried
it, and Github
did not like it at all, so I had to rename the
repo.
To create your new repository, click on the green
create
repository
button.
git remote add origin remoteurl
revisited: SSH
In order to push my local test-repo
to Github
remote
, I would do the
following in
Terminal:
git remote add origin git@github.com:interglobalmedia/test-repo.git
origin
is the first argument passed to the git remote
add
command, and
git@github.com:interglobalmedia/test-repo.git
is the second
argument. It is the remote
url
of test-repo
on Github. In fact, it's the remote
url
using the SSH
protocol as opposed to the
HTTPS
protocol as
shown in the screenshot on the previous slide. That's because I configured my
Github account to use SSH
. SSH
stands for Secure
Shell
.
For those of
you who are
interested, I have created a slide deck on how to set up your
Github account with
SSH
. It goes
beyond the scope of this course, but to read the slide deck, please visit
Getting Set Up on Github
with SSH.
git remote add origin remoteurl
revisited: HTTPS
In order to push
my local test-repo
to Github
remote
using
HTTPS, I
would do the
following in
Terminal:
git remote add origin https://github.com/interglobalmedia/test-repo.git
origin
is the first argument passed to the git remote add
command, and
https://github.com/interglobalmedia/test-repo.git is the second argument.
It is the
remote
url
(HTTPS) of test-repo
on Github.
Now that your local
repository has been associated with the remote
repository, you are
ready to push
the local
repository to remote origin
! To do that, type the following
git
command in Terminal and
then hit the
return
key:
git push -u origin master
git push -u origin master
: breakdowngit push
basically results in the upload of your local
repository
on Github.
Other branches
are created for application features, and when the code
has
been reviewed
and accepted by the development team
, it is then
merged
into
the master
branch
.
Sometimes, the feature branch
does
not get merged
directly into the master branch
, but first to a
development
branch
for
further
testing
, then a staging branch
, for testing
on remote
testing
environment
hosting
, and
THEN, if all
goes well, merged
into branch master
.
The -u
flag is used the first time you
git
push
your local repo to
remote
. The
-u
flag
is the abbreviation for -set-upstream
.
git push -u origin master
: success!I use ZSH (zshell) on my computer and not bash. So when I change into another directory, I do not
have to use cd.
Most of you use bash or at least are set up for it, so please use the cd command to change into your
project
directory. You would type cd development
in Terminal instead of simply
development, as
I do in the demo. Replace development
with whatever is the name of the folder you want
to cd into. Same goes for cding into git-test-repo. Instead of simply typing
git-test-repo
, you would type cd git-test-repo
. Lastly, when you are
creating your remote repository on Github, the green create repository button was a bit cut off.
There is a green create repository button at the bottom of the "https://github.com/new" page that
you must click on in order to complete the creation of your new remote repository on
Github.


A Konnect ,has Preethi Gopinath who has worked with India’s leading Corporate – Reliance Communications Ltd for 5.5 years in the Talent Acquisition domain , & 4 years of working experience with an Executive Search firm ,with an expertise in acquiring talent for domains like Telecom Enterprise to Manufacturing , Engineering Application and R&D. She also has a BE ( E&C) ,MBA (HR ) to her credit
A Konnect ,has Preethi Gopinath who has worked with India’s leading Corporate – Reliance Communications Ltd for 5.5 years in the Talent Acquisition domain , & 4 years of working experience with an Executive Search firm ,with an expertise in acquiring talent for domains like Telecom Enterprise to Manufacturing , Engineering Application and R&D. She also has a BE ( E&C) ,MBA (HR ) to her credit
Under the guidance and leadership of Sree Baburao and Sree Chandrakeerthi, Sree Kalanikethana School of arts aspired to reach heights reached only by the big names such as shantinikethana, Baroda and JJ school of art, Mumbai. The aspirations were given a new lease of life when Mysore Development Authority granted 1 acre of land in respect and recognition of the contribution of our institution to build a new campus on CA-15 site in 2nd Stage, Vijayanagar, and Mysore in the year 1998.
Why us?
• Striving at providing cost-effective professional services to clients across the Globe, and making available the right talent at right time at optimal cost . • A Konnect represents a combination of strong ethics , values and integrity . • Boasts of handson Experience in Corporate Talent Acquisition which can scale up the Talent Acquisition operation from a very basic to a strategic level.
Value Adds from A Konnect
• Complete Confidentiality wrt the Client and prospective Employee
• Fast turnaround time focusing on the candidate’s functionality after joining
• Excellent Industry mapping , across domains
• Accurate assessments wrt the candidates suitability
• Ensure consistent service across all segments
• Industry network to generate excellent references


How to Reduce Data Usage While Browsing Internet
According to the HTTP Archive, the average webpage size has increased by 50 % per year. When you don’t have unlimited internet, using the Internet without crossing data cap seems an impossible task. But you can browse the web consuming less data.
I use a volume based Internet connection of 40 GB per month. I follow some methods to reduce the data consumption while using Internet.
STEPS:
1. Browser:
Let’s start with the browser. The browser is our gateway to the Internet. I use Google Chrome as my primary internet browser. Google has an official extension for Chrome that compresses the data for HTTP websites so that it becomes faster and uses less data. The extension is called Data Saver.
Download it from here and once added, you should see a icon added beside the menu in chrome. Click it and select Turn on data saver .
From now on, Chrome should start compressing the site elements and images by passing them through google servers. In my testing, I saved up to 20% data in a month.
Note: This doesn’t work on secure pages and in incognito mode.
2. YouTube Settings:
There is a hidden setting in YouTube that plays videos in 360p quality by default. 360p is both clear as well as data friendly quality for watching video.
To access the setting, go to https://www.youtube.com/account_playback and tick “I have a slow connection. Never play higher-quality video.” in Video playback quality. From now on, Videos will default to 360p.
Also, YouTube has an experimental video player that uses HTML5 instead of Flash to play videos. It can play videos with an average bandwidth reduction of 35 percent. To enable it, go to TestTube and on the bottom, click “Get the player” under Try out the Redesigned YouTube Player.
3. Run Plugins on Demand:
Chrome automatically plays flash ads and videos leading to higher data usage. You can stop this behaviour.
Go to settings through menu and then select
Show advanced settings > Privacy > Content settings. > Plug-ins > Click to play
From now on, video advertisement won’t be played automatically, thus saving a lot of data.
I hope these tips will help you lower data usage and be under your data cap. If you have any other tips, do leave them as comments.


{% extends "base.html" %} {% block content %}
{{application.name}}
by
{{application.organization_name}}
{{application.consumer.description}}
You haven't registered any applications yet.
{% endif %} {% endblock %}


Van Eck phreaking is a form of eavesdropping in which special equipment is used to pick up side-band electromagnetic emissions from electronics devices that correlate to hidden signals or data for the purpose of recreating these signals or data in order to spy on the electron...