js - closures
definition
The Two Pillars of JavaScript — Pt 2: Functional Programming
Like objects, closures are a mechanism for containing state.
In JavaScript, a closure is created whenever a function accesses a variable defined outside the immediate function scope.
It’s easy to create closures: Simply define a function inside another function, and expose the inner function, either
by returning it, or passing it into another function. The variables used by the inner function will be available to it,
even after the outer function has finished running.
You can use closures to create data privacy in JavaScript using a factory function:
var counter = function counter() {
var count = 0;
return {
getCount: function getCount() {
return count;
},
increment: function increment() {
count += 1;
}
};
};
examples
Closures : developer.mozilla.org
lexical scoping
Nested functions have access to variables declared in their outer scope.
function init() {
var name = 'Mozilla'; // name is a local variable created by init
function displayName() { // displayName() is the inner function, a closure
alert(name); // use variable declared in the parent function
}
displayName();
}
init();
// will print 'Mozilla' in an alert box
closure - simple example
function makeFunc() {
var name = 'Mozilla';
function displayName() {
alert(name);
}
return displayName; // <-- return instead of execution
}
var myFunc = makeFunc();
myFunc();
Running this code has exactly the same effect as the previous example.
May seem unintuitive that this code still works. In some programming languages, the local variables within a function
exist only for the duration of that function’s execution.
However, because the code still works as expected, this is obviously not the case in JavaScript.
The reason is that functions in JavaScript form closures. A closure is the combination of a function and the lexical
environment within which that function was declared.
myFunc
is a reference to the instance of the function displayName
created when makeFunc
is run.
The instance of displayName
maintains a reference to its lexical environment, within which the variable name
exists.
closure - deeper example
function makeAdder(x) {
return function(y) {
return x + y;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
console.log(add5(2)); // 7
console.log(add10(2)); // 12
makeAdder
is a function factory ; it creates functions which can add a specific value to their argument.
add5
and add10
are both closures.
They share the same function body definition, but store different lexical environments.
In add5
‘s lexical environment, x
is 5
, while in the lexical environment for add10
, x
is 10
.
closure - practical example
Closures are useful because they let you associate some data (the lexical environment) with a function that operates on that data.
Consequently, you can use a closure anywhere that you might normally use an object with only a single method.
For instance, suppose we wish to add some buttons to a page that adjust the text size.
One way of doing this is to specify the font-size of the body element in pixels, then set the size of the other elements
on the page (such as headers) using the relative em
unit.
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
}
h1 {
font-size: 1.5em;
}
h2 {
font-size: 1.2em;
}
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
};
}
var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);
document.getElementById('size-12').onclick = size12;
document.getElementById('size-14').onclick = size14;
document.getElementById('size-16').onclick = size16;

Some paragraph text

some heading 1 text

some heading 2 text

12
14
16
A click on 14 link will change the base font-size
to 14px
, then

,

and

will resize accordingly.
closure - emulating private methods
Using closures in this way is known as the module pattern :
We create a single lexical environment that is shared by three functions:counter.increment
, counter.decrement
, and counter.value
.
The shared lexical environment is created in the body of an anonymous function, which is executed as soon as it has been defined.
The lexical environment contains two private items: a variable called privateCounter
and a function called changeBy
.
Those three public functions are closures that share the same environment.
var counter = (function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
};
})();
console.log(counter.value()); // logs 0
counter.increment();
counter.increment();
console.log(counter.value()); // logs 2
counter.decrement();
console.log(counter.value()); // logs 1
We could store this anonymous function that creates a counter in a separate variable makeCounter
and use it to create several counters :
var makeCounter = function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
}
};
var counter1 = makeCounter();
var counter2 = makeCounter();
alert(counter1.value()); /* Alerts 0 */
counter1.increment();
counter1.increment();
alert(counter1.value()); /* Alerts 2 */
counter1.decrement();
alert(counter1.value()); /* Alerts 1 */
alert(counter2.value()); /* Alerts 0 */
Each of the two counters, counter1
and counter2
, maintains its independence from the other.
Using closures in this way provides a number of benefits that are normally associated with object oriented programming
(data hiding and encapsulation).
creating closures in loops: A common mistake
See details in main link.
Issue with the shared lexical scope.
3 ways to avoid :
- use more closures with a factory function
- use IIFE inside the loop
- use the
let
keyword introduced in ES2015
closure - performance considerations
It is unwise to unnecessarily create functions within other functions if closures are not needed for a particular task,
as it will negatively affect script performance both in terms of processing speed and memory consumption.


In the past year, I have used the following modes of transportation to travel to work or school:
In the past year, I have used the following modes of transportation to travel to other activities and events:


Created: 2021-03-24 Wed 13:33
The Rev. Dale C. Hathaway
March 23, 2021
Copernicus
Renaissance-era mathematician, astronomer, and Catholic canon who formulated a model of the universe that placed the Sun rather than Earth at its center
We understand that on the surface of a globe there is no center
Calculus, originally called infinitesimal calculus or “the calculus of infinitesimals”, is the mathematical study of continuous change, in the same way that geometry is the study of shape and algebra is the study of generalizations of arithmetic operations.
It has two major branches, differential calculus and integral calculus; the former concerns instantaneous rates of change, and the slopes of curves, while integral calculus concerns accumulation of quantities, and areas under or between curves.
From Renaissance forward a vast developing science of interpretation.
Systems thinking is the ability or skill to perform problem solving in complex systems. A system is an entity with interrelated and interdependent parts; it is defined by its boundaries and is more than the sum of its parts (subsystem). Changing one part of the system affects other parts and the whole system, with predictable patterns of behavior.
The periodic table, also known as the periodic table of elements, is a tabular display of the chemical elements, which are arranged by atomic number, electron configuration, and recurring chemical properties. (Wikipedia)
Beginning in the 18th c. the relationships between elements began to be understood, culminating in the periodic table,
Created by Dale Hathaway.


Sphinx eager ".. only::" directive and other selective rendition extensions¶
Project home page: https://github.com/pfalcon/sphinx_selective_exclude
The implementation of ".. only::" directive in Sphinx documentation generation tool is known to violate principles of least user surprise and user expectations in general. Instead of excluding content early in the pipeline (pre-processor style), Sphinx defers exclusion until output phase, and what's the worst, various stages processing ignore "only" blocks and their exclusion status, so they may leak unexpected information into ToC, indexes, etc.
There's multiple issues submitted upstream on this matter:
- https://github.com/sphinx-doc/sphinx/issues/2150
- https://github.com/sphinx-doc/sphinx/issues/1717
- https://github.com/sphinx-doc/sphinx/issues/1488
- etc.
They are largely ignored by Sphinx maintainers.
This projects tries to rectify situation on users' side. It actually changes the way Sphinx processes "only" directive, but does this without forking the project, and instead is made as a standard Sphinx extension, which a user may add to their documentation config. Unlike normal extensions, extensions provided in this package monkey-patch Sphinx core to work in a way expected by users.
eager_only¶
The core extension provided by the package is called eager_only
and
is based on the idea by Andrea Cassioli (see bugreports above) to
process "only" directive as soon as possible during parsing phase.
This approach has some drawbacks, like producing warnings like
"WARNING: document isn't included in any toctree" if "only" is used
to shape up a toctree, or the fact that changing a documentation
builder (html/latex/etc.) will almost certainly require complete
rebuild of documentation. But these are relatively minor issues
comparing to completely broken way "only" works in upstream Sphinx.
modindex_exclude¶
"only" directive allows for fine-grained conditional exclusion, but sometimes you may want to exclude entire module(s) at once. Even if you wrap an entire module description in "only" directive, like:
.. only: option1
.. module:: my_module
...
You will still have an HTML page generated, albeit empty. It may also
go into indexes, so will be discoverable by users, leading to less
than ideal experience. modindex_exclude
extension is design to
resolve this issue, by making sure that any reference of a module
is excluded from Python module index ("modindex"), as well as
general cross-reference index ("genindex"). In the latter case,
any symbol belong to a module will be excluded. Unlike eager_only
extension which appear to have issued with "latexpdf" builder,
modindex_exclude
is useful for PDF, and allows to get cleaner
index for PDF, just the same as for HTML.
search_auto_exclude¶
Even if you exclude some documents from toctree:: using only:: directive, they will be indexed for full-text search, so user may find them and get confused. This plugin follows very simple idea that if you didn't include some documents in the toctree, then you didn't want them to be accessible (e.g. for a particular configuration), and so will make sure they aren't indexed either.
This extension depends on eager_only
and won't work without it.
Note that Sphinx will issue warnings, as usual, for any documents
not included in a toctree. This is considered a feature, and gives
you a chance to check that document exclusions are indeed right
for a particular configuration you build (and not that you forgot
to add something to a toctree).
Summary¶
Based on the above, sphinx_selective_exclude offers extension to let you:
- Make "only::" directive work in an expected, intuitive manner, using
eager_only
extension. - However, if you apply only:: to toctree::, excluded documents will
still be available via full-text search, so you need to use
search_auto_exclude
for that to work as expected. - Similar to search, indexes may also require special treatment, hence
there's the
modindex_exclude
extension.
Most likely, you will want to use all 3 extensions together - if you really want build subsets of docimentation covering sufficiently different configurations from a single doctree. However, if one of them is enough to cover your usecase, that's OK to (and why they were separated into 3 extensions, to follow KISS and "least surprise" principles and to not make people deal with things they aren't interested in). In this case, however remember there're other extensions, if you later hit a usecase when they're needed.
Usage¶
To use these extensions, add https://github.com/pfalcon/sphinx_selective_exclude as a git submodule to your project, in documentation folder (where Sphinx conf.py is located). Alternatively, commit sphinx_selective_exclude directory instead of making it a submodule (you will need to pick up any project updates manually then).
Add following lines to "extensions" settings in your conf.py (you likely already have some standard Sphinx extensions enabled):
extensions = [
...
'sphinx_selective_exclude.eager_only',
'sphinx_selective_exclude.search_auto_exclude',
'sphinx_selective_exclude.modindex_exclude',
]
As discussed above, you may enable all extensions, or one by one.
Please note that to make sure these extensions work well and avoid producing output docs with artifacts, it is IMPERATIVE to remove cached doctree if you rebuild documentation with another builder (i.e. with different output format). Also, to stay on safe side, it's recommended to remove old doctree anyway before generating production-ready documentation for publishing. To do that, run something like:
rm -rf _build/doctrees/
A typical artificat when not following these simple rules is that content of some sections may be missing. If you face anything like that, just remember what's written above and remove cached doctrees.


Approaching a task can be done in two different ways. Top-down starts from the abstract and elaborates the concrete. Whereas bottom-up starts from the concrete level and continues towards the abstract. From a logic perspective, the former corresponds to deductive reasoning. It starts with known facts that are considered as premises and seeks for conclusions. The latter, on the contrary, starts with a given set of statements and looks for premises - in other word evidences - that caused them.
In the context of defining a methodology for vocabulary development, a top-down approach starts with the facts that are known about the expected outcome, namely the vocabulary. From the different characteristics of it, a possible creation process is derived. In the next steps, a list of roles is created and a set of tools are developed or selected, which can be used within the different steps of the overall process. In fact, most ontology engineering methodologies have been created by applying this approach.
A bottom-up approach to derive best-practices and define guidelines is supposed to start from the current state of practice and look for evidences that explain why people are doing what they are doing. The most common activities of the most successful outcomes are than compiled as a set of best-practices. This is in fact the method we applied in this work. We advocate that there is no need for just another comprehensive methodology that is designed in detail in a top-down approach. Rather we claim that in the meanwhile there are sufficient good examples to be analyzed and learnt from.
For that reason, we empirically analyze a number of popular vocabulary and ontology development efforts. With regard to guidelines and best-practices, there cannot be a one-size-fits-all solution. Therefore, we categorize vocabulary and ontology development efforts along various dimensions such as vocabulary size, collaborator size, and expressivity. Finally, we map the categorization to particular sets of best-practices and guidelines in order to optimally support vocabulary and ontology development efforts with a tailored sets of guidelines and best-practices.


PyCon 2008, Chicago, USA
PyCon 2008 has been absolutely amazing this week. The talks I've seen and the people I've met have been a real inspiration, and my head is a-whirl with ideas. Above all, as always, I'm impressed by the Python community's genuine warmth. Maybe it's just a function of Python being relatively small compared to some other technologies, but there's something pleasantly hippy (in a good way) about its practitioners. Guido, for example, unsurprisingly turns out to be eminently reasonable and affable, and the IronPython team, to whom I and Resolver owe so much, are a thoroughly pleasant and interesting bunch.
To the people who have been asking for my humble talk slides, you can grab them here in a couple of formats:
- The slides as Open Office (tuned for Linux fonts, but more-or-less fine on Windows): TddBrooksSilverBullet.zip (103kb)
- The slides as PDF (fonts 100% good for everyone, but I think the various animations are gone:) TddBrooksSilverBullet.pdf (162kb)
- The accompanying source code: TddBrooksSilverBullet-src.zip (536kb)
If anyone has any outstanding thoughts or questions about the talk, I always love to chat, so please feel free to email me, tartley at the domain tartley.com (gosh I love love love http://spamarrest.com.) (Update: email obfuscated - spamarrest is no more.)
Update: There are photos!


Saudi Crown Prince Receives Abu Dhabi Crown Prince, Yemen President
Saudi Crown Prince Mohammed bin Salman, Deputy Prime Minister and Minister of Defense, held talks in Riyadh on Tuesday with Abu Dhabi Crown Prince Sheikh Mohammed bin Zayed al-Nahyan.
Discussions focused on the latest developments in Yemen and the efforts that led to the signing of the Riyadh agreement.
The UAE royal was in the Kingdom to attend the signing ceremony of the agreement on Yemen between its legitimate government and Southern Transitional Council (STC).
Crown Prince Mohammed also met with Yemeni President Abdrabbuh Mansur Hadi and STC chief Aidarous al-Zubaidi.
Custodian of the Two Holy Mosques King Salman bin Abdulaziz sponsored the agreement, which was signed on Tuesday.
Crown Prince Mohammed hailed the deal, stressing that Saudi Arabia will constantly remain keen on Yemen’s stability.
The Kingdom is confident the Yemeni people’s wisdom will rise above all challenges, he stated.


Help Post 2 Message
- When you sign up for Post 2 Message, you have the option to keep your Message public (the default account setting) or to protect your Message.
- Accounts with protected Message require manual approval of each and every person who may view that account's Message.
-
Public Message (the default setting) are visible to anyone, whether or not they have a Post 2 Message account.
-
Protected Message may only be visible to your approved Message followers.
-
Public Tweets (the default setting) are visible to anyone, whether or not they have a Twitter account.
-
Protected Tweets may only be visible to your approved Twitter followers.


GWT Simile Timeline Test Application 1.2 (c) Alistair Rutherford, Apr 2008
This is a technology demonstration of Simile Timeline GWT Wrapper API.
The GWT source code for the wrapper and this application can be found here.
For more about this go to NetThreads.


An Unexpected Party
Home
A Blog Too Far
Professional Information
About Me
Links
Contact information
Resume
Projects


{% extends "base.html" %} {% load static %} {% load compress %} {% block page_title %} MyUW {% endblock %} {% block content %}
{% include "handlebars/banner/profile.html" %} {% include "handlebars/banner/notice.html" %} {% include "handlebars/banner/calendar.html" %} {% include "handlebars/banner/pce.html" %} {% include "handlebars/banner/messages.html" %} {% include "handlebars/card/error.html" %} {% include "handlebars/card/fin_aid.html" %} {% include "handlebars/card/grade.html" %} {% include "handlebars/card/hfs.html" %} {% include "handlebars/card/library.html" %} {% include "handlebars/card/grad_status.html" %} {% include "handlebars/card/grad_committee.html" %} {% include "handlebars/card/loading.html" %} {% include "handlebars/card/no_course.html" %} {% include "handlebars/card/pce_tuition.html" %} {% include "handlebars/card/registration/holds.html" %} {% include "handlebars/card/registration/est_reg_date.html" %} {% include "handlebars/card/registration/finaid_notices.html" %} {% include "handlebars/card/registration/in_myplan.html" %} {% include "handlebars/card/registration/myplan_courses.html" %} {% include "handlebars/card/registration/reg_resources.html" %} {% include "handlebars/card/reg_status.html" %} {% include "handlebars/card/tuition.html" %} {% include "handlebars/card/textbook.html" %} {% include "handlebars/card/future_quarter.html" %} {% include "handlebars/card/events.html" %} {% include "handlebars/card/emp_fac_student.html" %} {% include "handlebars/card/thrive.html" %} {% include "handlebars/card/thrive_highlight.html" %} {% include "handlebars/card/thrive_learnmore.html" %} {% include "handlebars/card/upass.html" %} {% include "handlebars/card/outage.html" %} {% include "handlebars/card/schedule/course_cards.html" %} {% include "handlebars/card/schedule/course_card_content.html" %} {% include "handlebars/card/schedule/course_sche_panel.html" %} {% include "handlebars/card/schedule/eval_panel.html" %} {% include "handlebars/card/schedule/course_resource_panel.html" %} {% include "handlebars/card/schedule/instructor_panel.html" %} {% include "handlebars/card/schedule/final_panel.html" %} {% include "handlebars/card/schedule/sp_final.html" %} {% include "handlebars/card/schedule/final_day.html" %} {% include "handlebars/card/schedule/visual.html" %} {% include "handlebars/card/schedule/visual_day.html" %} {% include "handlebars/card/instructor_schedule/course_cards.html" %} {% include "handlebars/card/instructor_schedule/course_card_content.html" %} {% include "handlebars/card/instructor_schedule/course_sche_panel.html" %} {% include "handlebars/card/instructor_schedule/course_resource_panel.html" %} {% include "handlebars/card/instructor_schedule/no_courses_card.html" %} {% include "handlebars/card/instructor_schedule/future/course_card_content.html" %} {% include "handlebars/card/instructor_schedule/future/course_sche_panel.html" %} {% include "handlebars/card/instructor_schedule/future/course_resource_panel.html" %} {% include "handlebars/card/instructor_schedule/past/course_card_content.html" %} {% include "handlebars/card/instructor_schedule/past/course_sche_panel.html" %} {% include "handlebars/card/instructor_schedule/past/course_resource_panel.html" %} {% include "handlebars/card/new_student/ns_critical_info.html" %} {% include "handlebars/card/new_student/ns_international_stu.html" %} {% include "handlebars/card/new_student/ns_summer_efs.html" %} {% include "handlebars/card/new_student/ns_thank_you.html" %} {% include "handlebars/card/new_student/ns_to_register.html" %} {% include "handlebars/header/quarter.html" %} {% include "handlebars/panel/addi_course_links.html" %} {% include "handlebars/panel/no_courses.html" %} {% include "handlebars/landing.html" %} {% include "handlebars/future_410_error.html" %} {% include "handlebars/error.html" %} {% include "handlebars/hfs.html" %} {% include "handlebars/grades.html" %} {% include "handlebars/loading.html" %} {% include "handlebars/notices.html" %} {% include "handlebars/other_quarters.html" %} {% include "handlebars/quarter_books.html" %} {% include "handlebars/visual_schedule.html" %} {% include "handlebars/thrive_messages.html" %} {% include "handlebars/thrive_message.html" %} {% include "user_state.html" %} {% endblock %} {% block extra_js %} {% compress js inline %} {% endcompress %} {% endblock %}


{% extends "base.html" %} {% block title %}
Medieval catalogues > BENEDICTINES: THE SHORTER CATALOGUES > Whitby > Catalogue, late 12th cent.
{% endif %}84 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


date: January 17-18 2020 time: 11 a.m. location: Washington Marriott at Metro Center, Washington D.C.


Modules | |
| PROXY Data Structures | |
| PROXY Functions | |
| PROXY Enumerated Data Types | |
===========================================================================
This is the CSL-FL API documentation for the Secure Proxy module.
The following procedure describes how to properly use this CSL-FL API:
Allocate and initialize an array of CSL_ProxyTargetParams structures, one for each proxy target. A pointer to this array of structures is passed in the CSL_ProxyCfg structure.
This array of structures would be initialized as follows for the navss_main, which has a single ringacc target:
CSL_ProxyTargetParams navssMainProxyTargetCfg[] = { // Target 0: ringacc0 { (CSL_proxy_target0Regs *)0x000033000000UL, // pTargetRegs 3072U, // numChns 512U // chnSizeBytes } };
Allocate and initialize the CSL_ProxyCfg structure. A pointer to this structure is passed to all proxy API functions.
This structure would be initialized as follows for the navss_main:
CSL_ProxyCfg navssMainProxyCfg = { (CSL_proxyRegs *)0x000031120000UL, // pGlbRegs (CSL_proxy_cfgRegs *)0x000033400000UL, // pCfgRegs 64, // bufferSizeBytes 1, // numTargets navssMainProxyTargetCfg, // pProxyTargetParams };
Each proxy data flow (between the host and a target queue) requires a proxy thread. A proxy thread is simply a logical, bi-directional connection between the proxy IP block and a target queue. For each of these threads... a) Initialize the CSL_ProxyThreadCfg structure b) Call CSL_proxyCfgThread to configure the thread c) Call #CSL_proxyCfgThreadErrEventNum to configure the thread error event number
The CSL_proxyGetNumThreads function can be called to determine the number of threads supported by this proxy.


2 medium sweet potatoes peeled
2 teaspoons olive oil
½ teaspoon salt
¼ teaspoon garlic powder
¼ teaspoon paprika
⅛ teaspoon black pepper
Preheat the air fryer to 380°F. Peel the sweet potatoes, then slice each potato into even ¼ inch thick sticks.
Place the sweet potatoes in a large mixing bow, and toss with olive oil, salt, garlic powder, paprika and black pepper.
Cook in 2 or 3 batches, depending on the size of your basket without overcrowding the pan until they’re crispy. I recommend 12 minutes, turning half way. This may vary based on your air fryer.
Serve immediately with your favorite dipping sauce.
Storage: Store any leftovers in an airtight container. They will last about 3-4 days in the fridge. To reheat, just place in the air fryer at 360°F for 1-2 minutes or in a toaster oven. You can also reheat in the microwave but the potatoes will be soft if heated in the microwave.
Substitutes: For best results, follow the recipe as is. However you can switch out the spices and use a different oil
Equipment: I used the NuWave Air Fryer to make this recipe. It’s easy to use with guides on the appliance, easy to clean up and I’ve been very happy with the results!
Calories: 149kcal, Carbohydrates: 27g, Protein: 2g, Fat: 4g, Saturated Fat: 1g, Sodium: 653mg, Potassium: 438mg, Fiber: 4g, Sugar: 5g, Vitamin A: 18566IU, Vitamin C: 3mg, Calcium: 39mg, Iron: 1mg


Special thanks to:
- Leetcode, for giving me the idea to create the website in the first place
- w3schools, for HTML help when I needed it
- Sudoku.com, for givng a good layout for my game, as well as
instructions
- The creators of the video that I used in my instructions.
- The host of the photo I used for my video
- The creators of the favicon that I used


I decided to take valium as an alternative to general anesthetic during my wisdom tooth extraction. I had never taken it before, and I am generally somewhat hesitant with psychoactive drugs. So far, the only ones I have used, besides alcohol and caffeine, are marijuana, which I like, and LSD, which was a bit too much for me. At this time, I was not regularly using any other medications or herbal supplements, except for ibuprofen, for the pain I'd been having in my (already badly decayed) teeth.
I arrived at the oral surgeon's office an hour before the surgery, took the valium, and then hung out in a quiet room, listening to my iPod, and waiting to see what would happen. The night before, I had made myself a mix of music I thought I would enjoy in such a state, and I did really enjoy it, particularly songs like Stairway to Heaven that are chill, but have interesting rhythmic stuff going on as well. I had recently (about 6 months before) started meditating, so to help myself relax I focused on my breathing and the music.
Nonetheless, I was about to have oral surgery, and I felt nervous. I hadn't slept well the night before, nor had I eaten breakfast, because I had been advised not to in case they ended up needing to use the general anesthetic, so I was pretty tired, hungry and shaky to begin with. At first, I noticed my breathing and heartbeat were faster than normal, but after 10 or 20 minutes they seemed to fall into a more relaxed rhythm. I didn't feel any out of the ordinary physical sensations, like warmth or exceptional muscle relaxation, nor did I notice any distinct psychological effects, the way I had expected to based on my experiences with marijuana. So, at that point I had no idea what effect, if any, the drug was having.
After chilling out for about 30-45 minutes, the nurse came and walked me into the operating room. They told me how to adjust my body, open my mouth, turn my head etc, and I did not experience any confusion or slowness in thinking, at least not that was apparent to me. Then they shot me up with 6 shots of novocaine. Normally, I am very put off by needles, and I experience slight panic even when giving blood or getting an immunization. But, in this case, I just let it happen. I noticed that it hurt, and that my mouth was suddenly devoid of all feeling, but I didn't have the immediate adrenaline response that I usually would in such a situation. Instead, I was able to lie still, focusing on breathing through my nose and enjoying my mix of music, while simultaneously aware of the surgeon plying my teeth out with a twisting motion and, at one point, using a saw. The physical sensations weren't pleasant, but I kept asking myself 'Can I tolerate this? Is it ok?' and deciding that it was.
Luckily for me, my wisdom teeth took only 15 minutes to extract, and then, after 15 more minutes in a recovery area, my boyfriend came to pick me up. I was able to walk, understand all the post-op instructions, and go into the pharmacy myself to pick up my medication.  I didn't feel high or sleepy, but I do think that the valium reduced my natural tendency to be restless, and helped enable me to just be still, not worry about doing anything, wait for the bleeding to stop, and change the gauze on my own without freaking out or worrying about whether I was doing it exactly right. After a few hours my mouth stopped bleeding, and I spent the rest of the afternoon reading a book in bed, quite alert and happy.
I didn't notice any side effects from the valium, or any change in my mood or perception as it wore off. The only real effect was that it eliminated my normal tendency to panic uselessly in a stressful situation, and allowed me to maintain a calm, aware state of mind in the midst of a fairly unpleasant medical procedure. I don't anticipate trying to use it recreationally, but I would definitely consider using it in the future to help me get through similar situations, especially as an alternative to stronger anesthesia which, from my understanding, is harder on your body, takes longer to wear off and can have unpleasant side effects for the rest of the day.
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.


Sencha GXT - GWT Framework
Create feature-rich HTML5 applications
using Java and GWT
- Sencha GXT is the most comprehensive Java framework for building feature-rich web applications. It uses
the GWT (formerly Google Web Toolkit) compiler, allowing developers to write applications in Java and compile
their code into highly optimized cross-platform HTML5 code.
- For more information, see the
Sencha GXT product page.
Getting started with GXT
GXT release notes


Concurrent job execution Charts
Home
About
{{contact}}
Refresh
Job Phase vs Time
workflow:
Run Jobs
{{TableTitle}}
{{title}}
{{s}}


Repay (RPAY) versus The Competition Head to Head Comparison
by Jessica MooreRepay (NASDAQ: RPAY) is one of 134 public companies in the “Business services, not elsewhere classified” industry, but how does it weigh in compared to its rivals? We will compare Repay to related businesses based on the strength of its dividends, profitability, analyst recommendations, institutional ownership, valuation, earnings and risk.
Analyst Recommendations
This is a summary of current ratings and recommmendations for Repay and its rivals, as reported by MarketBeat.
| Sell Ratings | Hold Ratings | Buy Ratings | Strong Buy Ratings | Rating Score | |
| Repay | 0 | 0 | 3 | 0 | 3.00 |
| Repay Competitors | 1268 | 5212 | 8910 | 405 | 2.54 |
Repay presently has a consensus target price of $15.67, indicating a potential upside of 13.69%. As a group, “Business services, not elsewhere classified” companies have a potential upside of 10.23%. Given Repay’s stronger consensus rating and higher probable upside, analysts clearly believe Repay is more favorable than its rivals.
Insider and Institutional Ownership
71.5% of Repay shares are held by institutional investors. Comparatively, 63.9% of shares of all “Business services, not elsewhere classified” companies are held by institutional investors. 15.4% of shares of all “Business services, not elsewhere classified” companies are held by insiders. Strong institutional ownership is an indication that large money managers, hedge funds and endowments believe a company will outperform the market over the long term.
Profitability
This table compares Repay and its rivals’ net margins, return on equity and return on assets.
| Net Margins | Return on Equity | Return on Assets | |
| Repay | N/A | -15.32% | -12.05% |
| Repay Competitors | 0.56% | -3.77% | 1.91% |
Earnings and Valuation
This table compares Repay and its rivals revenue, earnings per share and valuation.
| Gross Revenue | Net Income | Price/Earnings Ratio | |
| Repay | N/A | $1.52 million | -98.43 |
| Repay Competitors | $2.78 billion | $431.25 million | 6.71 |
Repay’s rivals have higher revenue and earnings than Repay. Repay is trading at a lower price-to-earnings ratio than its rivals, indicating that it is currently more affordable than other companies in its industry.
Risk and Volatility
Repay has a beta of -0.05, meaning that its stock price is 105% less volatile than the S&P 500. Comparatively, Repay’s rivals have a beta of 0.74, meaning that their average stock price is 26% less volatile than the S&P 500.
Summary
Repay rivals beat Repay on 9 of the 13 factors compared.
Repay Company Profile
Repay Holdings Corporation provides integrated payment processing solutions in the United States. The company offers credit and debit card processing, automated clearing house processing, and funding solutions. It primarily serves clients in consumer finance, automotive, receivables management, and healthcare sectors, as well as financial institutions. The company was formerly known as Thunder Bridge Acquisition, Ltd. and changed its name to Repay Holdings Corporation in July 2019. Repay Holdings Corporation was founded in 2017 and is headquartered in Atlanta, Georgia.


Golden Gate teenager Jaderian Guillaume reported missing in Collier County
by WFTX Digital TeamGOLDEN GATE, Fla. -- Collier County deputies are looking for a missing Golden Gate teenager.
15-year-old Jaderian Guillaume was last seen Wednesday, November 13th.
He is believed to be a runaway.
He was wearing a gray shirt and blue jeans, and he has earrings. Deputies believe he ran away from home.
If you have any information on where he is, please call the Collier County Sheriff's Office at<PHONE_NUMBER>.


The most friendly-bike cities
Create a blog post subtitle that summarizes your post in a few short, punchy sentences and entices
your audience to continue reading.
Welcome to your blog post. Use this space to connect with your readers and potential customers in
a way that’s current and interesting. Think of it as an ongoing conversation where you can share
updates about business, trends, news, and more.
“Do you have a design in mind for your blog? Whether you prefer a trendy postcard look or you’re going
for a more editorial style blog - there’s a stunning layout for everyone.”
Every layout comes with the latest social features built in. Readers will be able to easily share
posts on social networks like Facebook and Twitter, view how many people have liked a post, made comments
and more. With the Wix, building your online community has never been easier.

Blogging gives your site a voice, so let your business’ personality shine through.  Go wild with original blog posts about recent projects, cool inspirational ideas, or what your
company culture is like. Add images, and videos to really spice it up, and pepper it with slang to keep
readers interested. Are you a programmer? Stay on the more technical side by offering weekly tips, tricks,
and hacks that show off your knowledge of the industry. No matter what type of business you have, one thing
is for sure - blogging gives your business the opportunity to be heard in a way in a different and
unconventional way.
Get Inspired
To keep up with all things Wix, including website building tips and interesting articles, head over to to the Wix Blog. You may even find yourself inspired to start crafting your own blog, adding unique content, and stunning images and videos. Start creating your own blog now. Good luck!


This is a CodeMirror mode that brings
syntax highlighting for IP addresses.
MIME types defined
text/x-ip-address (default)
text/x-ipv4-address (consider IPv6 addresses as errors)
text/x-ipv6-address (consider IPv4 addresses as errors)
Supported formats
IPv6
IPv4
Addresses
CIDR
Ranges
Dual addresses
Options:
ipv4_ranges: boolean: accept IPv4 ranges, e.g. <IP_ADDRESS>-<IP_ADDRESS>
ipv6_ranges: boolean: accept IPv6 ranges, e.g. 2001:0db8::-2001:0db8:ffff::
ipv4_cidr: boolean: accept IPv4 CIDR suffixes, e.g. <IP_ADDRESS>/8
ipv6_cidr: boolean: accept IPv6 CIDR suffixes, e.g. 2001:db8::/32
strict: boolean: strict mode
All options above default to true.
Strict mode
If strict mode is enabled, only one value (address, range or CIDR) will be parsed; everything else will be marked as erroneous.
Example with an IP range:
If strict mode is disabled, codemirror-mode-ipaddr parses and highlights all IP addresses in the text editor:


{% load static otree %} {% block content %}
Welcome! Please read the following instructions very carefully.
In this study, you and another participant have been matched together to form a two-member team - think of yourself as the boss and your team member as the worker. Your team member/worker will work on a button-pressing task (to be described on the next page) for upto 10 minutes. Each of you will earn $1 simply for participating in this study. You may each earn additional bonus amounts based on the decisions you and your worker take. Your respective earnings will be transferred to your accounts within 24 hours.
Once the button-pressing task begins, your team will earn $0.10 for every 100 points your worker will score. However, before the worker starts the task, you have to decide how much of these $0.10 you want to split between yourself and your worker. The amount you select for the worker will serve as his/her bonus rate for the task. Specifically, out of the 10 cents per 100 points that your team will receive, you can choose to give 0, 3, 6 or 9 cents to your worker, keeping the rest for yourself. Of course, the bigger the bonus rate you choose for your worker, the less your own bonus will be. On the other hand, you would want to try and incentivize your worker to score as many points as possible.
Your worker will not know your identity and will only see the bonus rate selected by you before starting to work on the task.
To summarize, all you will need to do is select a bonus rate for your worker who will observe what you have chosen before starting work on the button-pressing task. Bonus payments will be determined once your worker has finished working on the task.
Here is one EXAMPLE of what can happen in the experiment.
Here is an illustrative calculator for practice which you can use to calculate hypothetical earned bonuses. To do that, first select a bonus rate for the worker (0, 3, 6 or 9 cents per 100 points). Next enter the number of points you imagine the worker will score. The calculator will show you the earned bonus amounts for you and your worker. Of course, these bonuses are hypothetical since you don't know how many points the worker will actually score. This calculator will remain accessible to you at the time you will be making your decision about the bonuses.
{% endblock %}


Errors¶
The errors detected by the parser fall into three categories. The parser attempts to warn about these errors at the earliest opportunity.
Syntax errors
Valence errors - a type of semantic error, where an atom’s valence is not on a list of allowed valences
Kekulization errors - another semantic error, where an aromatic system cannot be kekulized
Note that detection of stereochemistry-related errors is not currently supported.
The following example shows how to catch all exceptions raised by
the parser with a single except
statement. Note that you may
prefer to individually catch each of the three types of exception for
the purpose of statistics or logging (see below for details). Note
that you should avoid using a generic except:
statement as this
may mask errors in your own code.
import sys
import partialsmiles as ps
try:
ps.ParseSmiles("c1cccc1", partial=False)
except ps.Error as e:
print(repr(e), file=sys.stderr)
# KekulizationFailure('Aromatic system cannot be kekulized', 'c1cccc1', 5)
print(str(e), file=sys.stderr)
# Aromatic system cannot be kekulized
# c1cccc1
# ^
Syntax errors¶
The SMILES parser warns about obvious syntax errors such as illegal characters, missing brackets, unmatched parentheses and ring closure digits, and so forth.
It goes a bit further than this though. The partialsmiles parser is designed to warn about errors in SMILES strings at the very earliest opportunity. In order to do so, by default certain assumptions are made (and enforced) about the structure of the SMILES string. These assumptions will be true for SMILES strings generated by a cheminformatics toolkit. Given that machine-learning models are typically trained on such SMILES strings, it is reasonable for the validation procedure to assume (and enforce) that these assumptions are met.
Bond closures may not span a dot, e.g.
C1.C1
.Dots may not occur within parentheses (e.g.
C(C.C)C
).The final branch must be unparenthesised - e.g.
C(C(O))C
is rejected.
Taken together, (1) and (2) allow the parser to validate that all rings are closed and all brackets matched whenever a dot is observed. (3) allows the parser to more accurately place a lower bound on the valence of the atom being added to; for example, for the partial SMILES string C(
, the explicit valence of the carbon is at least 2 if (3) is true, but only 1 otherwise; this allows valence errors due to hypervalent atoms to be caught more quickly.
Syntax errors can be caught as follows:
import sys
import partialsmiles as ps
try:
ps.ParseSmiles("C[C(=O)C", partial=False)
except ps.SMILESSyntaxError as e:
print(repr(e), file=sys.stderr)
# SMILESSyntaxError('Missing the close bracket', 'C[C(=O)C', 3)
print(str(e), file=sys.stderr)
# Missing the close bracket
# C[C(=O)C
# ^
Valence errors¶
These errors are caused when the valence of a particular charged state of an atom is not present in a list of allowed valences. For example, neutral carbon is only allowed to be 4-valent; C+ is only allowed to be 3-valent. More than one allowed value can be specified.
The valence-checker provided works as follows:
If an element is not on the list, an exception is raised.
Otherwise…if its charge state is not, an exception is raised.
Otherwise…if its actual valence is not included in the list of allowed valences, an exception is raised
Before using the partialsmiles library to check SMILES strings generated by a machine-learning method, the training set should first be checked. If any valence errors are found, consider editing the dictionary of allowed valences in valence.py
(but also think about whether there’s something wrong with your structure).
Warning
An important point that the user should note is that the only allowed valence for neutral nitrogen is 3. While the user can edit this to include ‘hypervalent’ nitrogen (i.e. 5-valent), I recommend they do not, and instead that they convert any hypervalent nitrogens in their training data to 3-valent. Allowing hypervalent nitrogen yields no benefit but makes it difficult to catch erroneous nitrogen valences.
It is also worth noting that if every atom in the training set is specified with square brackets (e.g. ethane as [CH3][CH3]
instead of CC
), then early termination (via early detection of disallowed valence) is also promoted. This may also improve the machine-learning model.
Valence errors can be caught as follows:
import sys
import partialsmiles as ps
try:
ps.ParseSmiles("C(C)(C)(C)(C)C", partial=False)
except ps.ValenceError as e:
print(repr(e), file=sys.stderr)
# ValenceError('Uncommon valence or charge state', 'C(C)(C)(C)(C)C', 0)
print(str(e), file=sys.stderr)
# Uncommon valence or charge state
# C(C)(C)(C)(C)C
# ^
Kekulization errors¶
A kekulization error is raised if an alternating pattern of single and double bonds cannot be found to cover an aromatic system (some details omitted). By definition, it is not possible to check for an error until the entire aromatic system is read (i.e. all connected lowercase atoms in the aromatic system). This means that all atoms connected to the system also need to be resolved as the parser can’t know whether these will turn out to be aromatic.
For example, we cannot attempt to kekulize the aromatic system in the partial SMILES string c1ccccc1
as any additional character may affect the kekulization; once this is provided, e.g. c1ccccc1C
, we can try to kekulize it. Similarly, for c1ccc2cc1C
we cannot attempt to kekulize until the identity of the atom at the other end of the bond closure “2” is known.
Kekulization errors can be caught as follows. Note that the indicated location of the error may be any atom in the problematic aromatic system:
import sys
import partialsmiles as ps
try:
ps.ParseSmiles("C(C)(C)(C)(C)C", partial=False)
except ps.KekulizationError as e:
print(repr(e), file=sys.stderr)
# KekulizationFailure('Aromatic system cannot be kekulized', 'c1cc[nH]cc1', 3)
print(str(e), file=sys.stderr)
# Aromatic system cannot be kekulized
# c1cc[nH]cc1
# ^


Class Precedence List:
Description:
An object of type restart represents a function that can be called to perform some form of recovery action, usually a transfer of control to an outer point in the running program.
An implementation is free to implement a restart in whatever manner is most convenient; a restart has only dynamic extent relative to the scope of the binding form which establishes it.


{% extends "utils/base.html" %} {% from 'utils/greeting.html' import greeting %} {% block body %}
Pickup date: {{ pickup_date }}
Pickup location:
View in Google Maps
{% if comments is not none %}
Additional comments: {{ comments }}
{% endif %}


iOS Developer, New Yorker, Taco Lover.
I build iOS apps, I love hard-shelled tacos, and I tutor mathematics.
Get on task with theGrindTimer to manage your productivity.
The Universal Pre-K Finder for New York City app helps parents find universal pre-kindergarten schools in NYC.


About Us
Princeton FinTech was founded in Fall 2016 by a group of students interested in gaining exposure to the FinTech industry. A rapidly growing and evolving industry, companies in the FinTech space seek to disrupt traditional financial institutions by bringing the innovative approach of Silicon Valley. From banking and personal finance to payment platforms and cryptocurrencies, FinTech is a highly heterogeneous space that has only begun to scratch the surface of what's possible.
Princeton FinTech was founded with the intention that we would expose members to the FinTech industry not only by exposing them to people involved in the industry, but through projects, including data exploration and statistical modeling, mobile and web-based FinTech applications, as well as projects with industry partners. This is a departure from how other clubs oriented around the financial industry have operated, but is one that we feel will provide more value for students. There's no better way to learn about a sector than to dive right in and get one's hands dirty, and this is what we hope to cultivate.
Meet the Team
Click the dotted line to expand each member's biography.


Man Utd special edition shirt to celebrate Chinese New Year leaked
Manchester United are set to commemorate Chinese New Year with an outlandish new shirt
by Rich Jones, https://www.mirror.co.uk/authors/rich-jones/Manchester United are set to launch an outlandish shirt to commemorate Chinese New Year.
The first pictures of the eccentric kit have been leaked by FootyHeadlines.com , with the limited edition item set to go on sale nearer the Chinese New Year on January 25.
But the shirt is not set to be worn by Ole Gunnar Solskjaer's side in an official match, instead being sold through the Adidas store.
The shirt fits the same template as the controversial Adidas x EA Sports shirts released last year which also featured in FIFA 19 but were not worn in real life.

It is said to be part of a wider range, also including a pair of trousers shown in the leaked images with more items to mark Chinese New Year potentially set to be unveiled at a later date.
The report also claims Arsenal , Bayern Munich, Juventus and Real Madrid will launch similar clothing items to celebrate the event.
United have already opted for an eccentric snakeskin away kit this season, with the Adidas kit dividing opinion.
There have been mixed responses at best to the Chinese New Year shirt, which is certainly eye-catching, although those who are not a fan can take comfort in the fact it will not be seen on the pitch.


RPI Incident Map
Visualization of the Incidents Reported to Public Safety
Filter Options:
Select Location
Select Type of Incident
Select Month
×
North Campus
West Campus
South Campus
East Campus
Academic Campus
Off Campus
×
January 2016
February 2016
March 2016
April 2016
May 2016
June 2016
July 2016
August 2016
September 2016
October 2016
November 2016
December 2016
×
Mischief
Fire Alarm
Medical Incident
Intoxication
Property Damage
Larceny and Assault


Vetan1675.github.io
The 2019 Mustang is designed to custom-fit the way you drive, down to the last detail. From the look of the instrument panel to the sound of its growl to the way it feels tackling a curve, this legend Cyprus was settled by Mycenaean Greeks in two waves in the 2nd millennium BC. As a strategic location in the Middle East, it was subsequently occupied by several major powers, including the empires of the Assyrians, Egyptians and Persians, from whom the island was seized in 333 BC by Alexander the Great.
4450 Azurite St, Cumming, GA 30040 MLS# 5644813 Redfin. English is spoken widely in South Africa and is an official or co-official language in several countries. In South Africa, English has been spoken since 1820, co-existing with Afrikaans and various African languages such as the Khoe and Bantu languages. How to Grow Pineapples From Seeds Hunker.
- Automotive Industry Action Group. REGISTRATION IS OPEN for the 2019 Southern Automotive Quality Summit! The annual Southern Automotive Quality Summit is a unique collaboration between the Alabama Automotive Manufacturer s Association (AAMA) and the Automotive Industry Action Group (AIAG).  The pineapple fruit is an excellent source of vitamins and nutrients, and can also serve decorative purposes.
2019 Ford® Mustang Sports Car The BULLITT is Back! Ford.com. 4 bed, 3 bath, 2341 sq. ft. house located at 4450 Azurite St, Cumming, GA 30040 sold for $272,000 on Apr 28, 2016. MLS# 5644813. Beautiful 4 bed home with 3 FULL baths in popular Fieldstone


{% extends 'clinicalsearch/base.html' %} {% load staticfiles %} {% block maincontent %}
Use the following search parameters to find a relevant clinical trial happening in the USA. Not all parameters need to be filled out! The original data is pulled from clinicaltrials.gov and their API, but most data points were scraped after API calls gave us some basic data.
A limitation is you need to enter the exact sponsor's name if you want to search by sponsor.
States need to be entered by their abbreviation.
Example search: "cancer", "25"


Hi, my name is Minh Duc Nguyen, and I am a Computer Science and (soon to be) Mathematics major at Tufts University. A little bit about myself: I have been a lover of numbers and algorithms since secondary school, studying in specialized mathematics classes and competing in various national-level competitions. Then, I was introduced to Computer Science in my freshman year of college, and immediately became interested in how expertise in mathematics (and especially in algorithms) can be used to develope ingenious software that better the life of people and facilitate the development of science. If you are also a Math or Computer enthusiast and want to chat, feel free to send me an email or connect with me through LinkedIn!


My Work
Image Sharing App
This image sharing app is a web application that allows you to link to images on the web and create a personal wall of your favorite images. This application utilizes both local and twitter authentication to keep track of users.
Technologies:
HTML5, CSS3, React, Redux, Express.js, MongoDB
Book Trading App
This book club app is a web application that allows you list books that you own, propose trade requests to other users, and then approve those requests. This application utilizes local authentication to keep track of users.
Technologies:
HTML5, CSS3, React, Redux, Express.js, MongoDB, Google Books API
Chat Room App
This chat room app is a web application that allows you to create a chat room and write messages that other users in that room can read. This application utilizes websockets to send updates to all connected users.
Technologies:
HTML5, CSS3, React, Redux, Express.js, MongoDB, Socket.io
Nightlife App
This nightlife app is a web application that allows you to search for bars and clubs in your area, find information on them through the Yelp API, and confirm whether you will be going to them that night. This application utilizes google authentication to keep track of users.
Technologies:
HTML5, CSS3, Pug, Express.js, MongoDB, Yelp API
To-Do List App
This to-do list app is a web application that allows you to create a to-do list filled with tasks and then check them off as the tasks are completed. This application utilizes json web token authentication to keep track of users.
Technologies:
HTML5, CSS3, React, Redux, Express.js, MongoDB
OTHER PROJECTS
HTML
CSS
Javascript
Google API
HTML
CSS
Javascript
Google API
HTML
CSS
Javascript
React
Node.js
MongoDB
Socket.io
HTML
CSS
Javascript
Chart.js
HTML
CSS
Javascript
Angular
Node.js
MongoDB
HTML
CSS
Javascript
Angular
Node.js
MongoDB
About
I am a passionate, self-taught web developer based in Houston, Texas. I enjoy making functional and visually stunning web applications. A creative problem solver, critical thinker, and perpetual self-learner, I love new challenges, exploring new technologies and thinking about design and user experience. I also currently contribute to open source. I am available for any small freelance projects, as well as full-time positions as a frontend or backend developer. I look forward to hearing from you.
Skills
CSS3
HTML5
Javascript
Node.js
Express.js
MongoDB
React
Redux
Heroku
GitHub
Contact
Ⓒ David Magee


The years of 1991 to 1994 were the worst in Steve’s career. Paradoxically, they were some of the happiest years in his private life. In 1990, at age 35, after his girlfriend Tina Redse had turned down his proposal, he started dating a young Stanford MBA student called Laurene Powell. Laurene was a leggy blonde in the mold of Steve’s taste in women, but she was also very smart and independent — in addition to being a militant vegan. According to Steve, it was love at first


The EAI metrics track the Email Address Internationalization (EAI) support on mail exchanger (MX) servers of second level domain names across participating Top Level Domains (TLDs). See About EAI for details. The data is presented in the EAI TLD table below. The EAI TLD table includes one line per TLD, showing the MX records or registered in that TLD, or the IP addresses used by these MX records. The EAI Summary Table shows the count of unique domain names found in these MX records.
The CSV files for previous measurements are available here.
The TLD table lists the total number of MX records found when scanning the zone files for each TLD listed, and the total number of IP addresses associated with the MX records of the TLD. The summary table below lists the number of unique domain names present in the MX records across all TLD, and the number of unique IP addresses associated with these MX records.
The table is quite large. The controls below can be used to navigate to specific slices of the data.


Written by
Senthilkumar S
About
About
Hey, I am Senthil, Roaming around chennai. Typing Javascript mostly on my computer. Always playing with some innovative projects sometimes with cricket bat. Working to give greatest usabilities and nice interfaces. Also loves to make computer think. For further details about me, please visit the repositories on Github.
Enjoy!


-
2017.10.04. New major release for MEPX that includes new strategies for multi-class classification and several bug fixes.
-
2017.08.05. New website mirror at https://mepx.github.io/.
-
2016.11.30. New source code for evolving Evolutionary Algorithms for Single Objective Optimization using MEP is available on Github.
-
2016.10.05. Paper section updated.
-
2016.08.29. New MEPX release. Bug fixing. More exact function for counting the running time. New random number generator.
-
2016.08.09. New MEPX release. Bug fixing.
-
2016.07.17. List of papers updated.
-
2016.05.24. New MEP source code for solving even-parity problems with Automatically Defined Functions. Can be downloaded from https://github.com/mepx/mep-basic-src.
-
2016.04.27. New MEPX release. There is a checkbox on the Training data tab which displays or inhibits the display of grids data (training, validation and test). I have chose not to display the data because filling a grid with data takes a lot of time. So, if you have many data or a large project, I suggest to uncheck this box before loading them. Several bugs have been fixed.
-
2016.04.07-2016.04.25. Several strategies for multi-class classification have been tested. See more details here. However, none of them could compete with what we have so far implemented in MEPX or libmep.
-
2016.04.06. New MEPX release. Bug fix in the display of Target column.
-
2016.04.05. New MEPX release. Statistics for runs and errors can now copied directly to Clipboard. This is very useful for performing Copy-Paste to Excel or related programs.
-
2016.04.03. New MEPX release. Added Mean Squared Error for fitness computation in the case of regression problems. Previously was only Mean Absolute Error. In the case of classification problems the error is now multiplied by 100 in order to show the percentage.
-
2016.04.02. List of papers updated.
-
2016.03.31. New MEPX release. Display the best error (for training, validation and test), mean and stddev over multiple runs. Several bugs have been fixed.
-
2016.03.27. New MEPX release. Adds random subset selection (RSS) which means that fitness is computed on a smaller set of data. RSS set is randomly selected at each generation. By using RSS the program runs faster.
-
2016.03.26. Mirror copy of the MEP site at: mepx.org. This short name is much more easier to memorize than the long name of the site hosted on our faculty server.
-
2016.03.25. New MEPX release. 64bit version for Windows is now available. A status bar has been added which displays the current generation, best training error, average training error (over the entire population) and validation error. Selecting the individual to be moved in the next subpopulation is now done randomly (previously it was made with tournament selection).
-
2016.03.22. New MEPX release. Can load PROBEN1 files. Several bugs have been fixes.
-
2016.03.15. New MEPX release. Now it can solve classification problems with multiple classes (>= 2). Also the latest version contains some bug fixes.
-
2016.03.02. New MEPX release. To numeric and scale buttons have been moved to Advanced panel of the Data. Also the latest version contains some bug fixes.
-
2016.02.21. MEP source code for solving classification problems with multiple classes (2 or more) has been added to the Github repository (see mep_multi_class.cpp from https://github.com/mepx/mep). Multi class is NOT yet available for libmep library and neither in MEPX.
-
2016.02.16. New MEPX version which now displays the variable index (like "x 99") in the header of the training, validation and test tables. Also the latest version contains some bug fixes.
-
2016.02.12. Google group about MEP created. Address is here: https://groups.google.com/d/forum/mepx
-
2016.02.06. New MEPX version which contains some bug fixes.
-
2016.02.03. Source code moved to Github.
-
2016.02.03. New MEP source code with C++11 threads.
-
2015.11.15. New MEPX version with many new features: can load alphanumerical values, can find/replace/scale values, can shuffle rows (in a random order) can move data between training, validation and test etc.
-
2015.08.15. New MEP source code with multiple sub-populations. Also a small bug fix in MEP source code.
-
2015.08.05. Bug fix in MEP source code.
-
2015.08.03. MEPX for Ubuntu 64 bit is now available for download.
-
2015.07.30. MEP source code for evolving digital circuits has been added to the Source code section.
-
2015.05.23. A new button which saves (training, validation, test) data from existing project (xml files) to text files. Also several bugs have been fixed.
-
2015.05.17. Classification threshold parameter has been removed. Now the program discover the best threshold by itself. It is slower than previous, but now there are no more wasted iterations with not optimal threshold. Previous classification projects must be run again because the previous classification parameter is ignored.
Several bugs have been fixed.
-
2015.05.15. New operators: if (a < 0)?b:c and if (a < b)?c:d and a little bit more speed.
-
2015.05.14. Multi-core support for MEPX. Just set the number of cores from the parameters window and the program will do the computations in parallel.
-
2015.05.10. Source code updated. Now it contains constants and shows how to solve binary classification problems.
-
2015.05.09. Speed optimization of MEPX. For building1-energy problem from the archive, the running time was reduces from 190 seconds downto 126 seconds. Other parameters were: population size = 1000, code length = 100, num generations = 100.
-
2015.05.06. More operators added to MEPX software.
-
2015.05.06. New youtube movie on how to use MEPX software.
-
2015.05.05. New end-user software for Windows, Mac and Linux.
-
2015.05.05. Website updated.
-
2008.09.01. Papers section updated.
-
2005.02.01. Software section updated.
-
2014.12.01. Papers section updated.
-
2004.07.01. New methods and their websites: Traceless Genetic Programming, Evolving Evolutionary Algorithms
-
2004.04.03. New MEP source code.
-
2002.01.13 First paper on Multi Expression Programming was written.
-
2001. Work started on Multi Expression Programming.


Thank you for downloading this theme. If you have trouble or find a bug, please open an issue on GitHub:
https://github.com/HackerThemes/theme-machine
There is a pro version available which adds new components, a number of page layouts and more color palettes: Check out Charming Pro


Upgrading to the latest version of Sunbird allows you to avail benefits of new and enhanced features and bugs fixed on the platform as well the latest updated versions of any third party component used by it.
Pull the latest code of project-sunbird/sunbird-devops
from the master branch.
It is good practice to take a full backup of all the databases before updating the new schema. Follow steps here to take backup.
Run ./sunbird-install.sh
. This will deploy the latest version of sunbird services and also update the latest schema on databases.
Note: Latest images versions of all the services are updated in the master branch. To get the particular hotfix image of any Sunbird service, update the minor version in the sunbird-devops/deploy/deploy-core.sh
file. Re-run the sunbird-devops/deploy/deploy-core.sh
ssh to the database server on which you want to take backup.
Run git clone https://github.com/project-sunbird/sunbird-devops
cd sunbird-devops/deploy/
Backup:
Take a snapshot of Cassandara database using
nodetool snapshot -t my_backup
Copy the snapshot to your backup directory.
./cassandra_backup.py <cassandra_data_path> <snapshot_name> <path_to_backup_directory>
for example:
./cassandra_backup.py /var/lib/cassandra/data my_backup cassandra_backup_20180412
Above command creates the snapshot of all the keyspaces mentioned below.
portal - Stores the session data
dialcodes - Stores the energized text book details
sunbirdplugin - Stores the custom or plugin data(used by announcment team as an object api internally)
sunbird - Stores the org,user,course,batch,badgr etc..
Restore:
Copy the Cassandra backup snapshot to the instance where you want to run restore.
Restore Cassandra database using command
./cassandra_restore.py <cassandra_host_ip_address> <snapshotdir>
for example:
./cassandra_restore.py <IP_ADDRESS> ./cassandra_bakup_20180412
Backup:
Run the script below to take a full backup of the Postgres database.
./backup_postgres.sh
Above command creates the backup file in the location /tmp/postgresql-backup
.
Backup of Postgres is done for below databases
api_manager - Used by kong
badger - Used by badger services
Keycloak - Used by Keycloak
quartz - Used by sunbird backend services
Restore:
Copy the backup file from the /tmp/postgresql-backup/<backup_file>
Run the below command for restore
./restore_postgres.sh
Backup:
Run the below script for backup
./backup_elasticsearch.sh
Above command creates the backup file in the location /etc/elasticsearch/backup
.
Backup of Elasticsearch is done for below databases
searchindex - Stores the user, org , course, batch data
sunbirdplugin - Stores the plugin related data (object API)
sunbirddataaudit - Stores the user & org audit history data.
Restore:
Copy the backup file from the /tmp/elasticsearch-backup/<backup_file>
to the instance where you want to run restore.
Run
./restore_elasticsearch.sh <path/to/the/restore_file
Note: Install Python on the Cassandra machine, if you use our scripts to backup or restore the Cassandra database.


Gecode::Int::LDSB::SymmetryImp< View > Class Template Reference
Implementation of a single symmetry. More...
#include <ldsb.hh>
Public Member Functions | |
| virtual ArgArray< Literal > | symmetric (Literal, const ViewArray< View > &) const =0 |
| Compute symmetric literals. | |
| virtual void | update (Literal)=0 |
| Left-branch update. | |
| virtual SymmetryImp< View > * | copy (Space &home, bool share) const =0 |
| Copy function. | |
| virtual size_t | dispose (Space &home)=0 |
| Disposal. | |
| virtual | ~SymmetryImp (void) |
| Unused destructor. | |
Static Public Member Functions | |
| static void * | operator new (size_t s, Space &home) |
| Placement new operator. | |
| static void | operator delete (void *, Space &) |
| Return memory to space. | |
| static void | operator delete (void *) |
| Needed for exceptions. |
Detailed Description
template<class View>
class Gecode::Int::LDSB::SymmetryImp< View >
Implementation of a single symmetry.
Definition at line 166 of file ldsb.hh.
Constructor & Destructor Documentation
template<class View >
| Gecode::Int::LDSB::SymmetryImp< View >::~SymmetryImp | ( | void | ) | [inline, virtual] |
Unused destructor.
Definition at line 52 of file sym-imp.hpp.
Member Function Documentation
template<class View>
| virtual ArgArray<Literal> Gecode::Int::LDSB::SymmetryImp< View >::symmetric | ( | Literal | , | |
| const ViewArray< View > & | ||||
| ) | const [pure virtual] |
Compute symmetric literals.
Implemented in Gecode::Int::LDSB::VariableSymmetryImp< View >, Gecode::Int::LDSB::ValueSymmetryImp< View >, Gecode::Int::LDSB::VariableSequenceSymmetryImp< View >, and Gecode::Int::LDSB::ValueSequenceSymmetryImp< View >.
template<class View>
| virtual void Gecode::Int::LDSB::SymmetryImp< View >::update | ( | Literal | ) | [pure virtual] |
template<class View>
| virtual SymmetryImp<View>* Gecode::Int::LDSB::SymmetryImp< View >::copy | ( | Space & | home, | |
| bool | share | |||
| ) | const [pure virtual] |
template<class View>
| virtual size_t Gecode::Int::LDSB::SymmetryImp< View >::dispose | ( | Space & | home | ) | [pure virtual] |
template<class View >
| void * Gecode::Int::LDSB::SymmetryImp< View >::operator new | ( | size_t | s, | |
| Space & | home | |||
| ) | [inline, static] |
Placement new operator.
Definition at line 56 of file sym-imp.hpp.
template<class View >
| void Gecode::Int::LDSB::SymmetryImp< View >::operator delete | ( | void * | , | |
| Space & | ||||
| ) | [inline, static] |
Return memory to space.
Definition at line 62 of file sym-imp.hpp.
template<class View >
| void Gecode::Int::LDSB::SymmetryImp< View >::operator delete | ( | void * | ) | [inline, static] |
Needed for exceptions.
Definition at line 66 of file sym-imp.hpp.
The documentation for this class was generated from the following files:
- gecode/int/ldsb.hh (Revision: 15623)
- gecode/int/ldsb/sym-imp.hpp (Revision: 15120)


The App was disabled due to an error while attempting to compile it. An attempt to enable it again will fail, as it needs to be updated.
The App has been constructed but that's it.
The App was disabled due to other circumstances.
The App was disabled due to an unrecoverable error being thrown.
The App's initialize()
was called and returned true.
The App was disable due to its license being invalid
The App was manually disabled by a user.
The App's onEnable()
was called, returned true, and this was done by the user such as installing a new one.
The status is known, aka not been constructed the proper way.
Generated using TypeDoc
The App's
onEnable()
was called, returned true, and this was done automatically (system start up).


CascadeSelect displays a nested structure of options.
CascadeSelect requires a value to bind and a collection of arbitrary objects with a nested hierarchy. optionGroupLabel is used for the text of a category and optionGroupChildren is to define the children of the category. Note that order of the optionGroupChildren matters and it should correspond to the data hierarchy.
Content of an item can be customized with the option template.
| Name | Type | Default | Description |
|---|---|---|---|
| options | array | null | An array of selectitems to display as the available options. |
| optionLabel | string | null | Property name or getter function to use as the label of an option. |
| optionValue | string | null | Property name or getter function to use as the value of an option, defaults to the option itself when not defined. |
| optionGroupLabel | string | null | Property name or getter function to use as the label of an option group. |
| optionGroupChildren | string | null | Property name or getter function to retrieve the items of a group. |
| placeholder | string | null | Default text to display when no option is selected. |
| disabled | boolean | false | When present, it specifies that the component should be disabled. |
| dataKey | string | null | A property to uniquely identify an option. |
| tabindex | number | null | Index of the element in tabbing order. |
| inputId | string | null | Identifier of the underlying input element. |
| ariaLabelledBy | string | null | Establishes relationships between the component and label(s) where its value should be one or more element IDs. |
| appendTo | string | null | Id of the element or "body" for document where the overlay should be appended to. |
| style | object | null | Inline style of the component. |
| styleClass | string | null | Style class of the component. |
| Name | Parameters | Description |
|---|---|---|
| onChange | event.originalEvent: Original event event.value: Selected option value |
Callback to invoke on value change. |
| onGroupChange | event.originalEvent: Original event event.value: Selected option group |
Callback to invoke when a group changes. |
| onBeforeShow | - | Callback to invoke before the overlay is shown. |
| onBeforeHide | - | Callback to invoke before the overlay is hidden. |
| onShow | - | Callback to invoke when the overlay is shown. |
| onHide | - | Callback to invoke when the overlay is hidden. |
| Name | Parameters |
|---|---|
| value | $implicit: Value of the component placeholder: Placeholder text to show |
| option | $implicit: Data of the option |
Following is the list of structural style classes, for theming classes visit theming page.
| Name | Element |
|---|---|
| p-cascadeselect | Container element. |
| p-cascadeselect-label | Element to display label of selected option. |
| p-cascadeselect-trigger | Icon element. |
| p-cascadeselect-panel | Icon element. |
| p-cascadeselect-items-wrapper | Wrapper element of items list. |
| p-cascadeselect-items | List element of items. |
| p-cascadeselect-item | An item in the list. |
None.


[ http://store.feminist.org/getandgivems.aspx ]
Dear Dry,
Act today to get the latest issue of Ms. before it hits newsstands.
The latest issue of “Ms”. features a profile of Academy Award winner Lupita Nyong'o and highlights how she is altering the visibility of African women, both on screen and stage in the all-female play Eclisped.
*Join “Ms.” today to find out Ms. today to find out how Lupita Nyong'o is harnessing her star power to bring African women’s stories to light! [ http://store.feminist.org/getandgivems.aspx ]*
Also featured in this issue that you don’t want to miss:
* Campaigning While Female: Find out how women candidates are reshaping presidential politics.
* TRAP-ed in Texas: How even if the Supreme Court overturns Texas’ abortion restrictions, access to reproductive health care in the state–and across the country–will remain in peril.
* Is Isis afraid of Girls? Read award-winning Egyptian American journalist Eltahawy’s commentary on the global terrorism crisis-and the Kurdish women fighting its spread.
Choose the format that fits your life: digital only, print only, or digital and print.
Now you can take “Ms."with you on the go. [ http://store.feminist.org/getandgivems.aspx ]
For women’s equality,
Katherine Spillar
Executive Editor, Ms.
P.S. Join the Ms. community now, and read the latest issue before it hits newsstands. [ http://store.feminist.org/getandgivems.aspx ]