These are a few guidelines for Ganeti code and documentation.
In simple terms: try to stay consistent with the existing code. PEP 8 says:
A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is most important.
Note
You might also want to take a look at the Google style guide, since we have some things in common with it.
In general, always indent using two (2) spaces and don’t use tabs.
The two spaces should always be relative to the previous level of indentation, even if this means that the final number of spaces is not a multiple of 2.
When going on a new line inside an open parenthesis, align with the content of the parenthesis on the previous line.
Valid example:
v = (somevalue,
a_function([
list_elem, # 7 spaces, but 2 from the previous indentation level
another_elem,
]))
Always use double quotes (""), never single quotes (''), except for existing code. Examples for formatting strings:
var = "value"
# Note: The space character is always on the second line
var = ("The quick brown fox jumps over the lazy dog. The quick brown fox"
" jumps over the lazy dog. The quick brown fox jumps over the lazy"
" dog.")
fn("The quick brown fox jumps over the lazy dog.  The quick brown fox"
" jumps over the lazy dog. The quick brown fox jumps over the lazy"
" dog."))
 The quick brown fox"\
" jumps over the lazy dog."
# Space character goes to the beginning of a new line
var = ("The quick brown fox jumps over the lazy dog. The quick brown fox "
"jumps over the lazy dog. The quick brown fox jumps over the lazy "
"dog.")
Built-in sequence types are list ([]), tuple (()) and dict ({}). When splitting to multiple lines, each item should be on its own line and a comma must be added on the last line. Don’t write multiline dictionaries in function calls, except when it’s the only parameter. Always indent items by two spaces.
# Short lists
var = ["foo", "bar"]
var = ("foo", "bar")
# Longer sequences and dictionary
var = [
constants.XYZ_FILENAME_EXTENSION,
constants.FOO_BAR_BAZ,
]
var = {
"key": func(),
"otherkey": None,
}
# Multiline tuples as dictionary values
var = {
"key":
("long value taking the whole line, requiring you to go to a new one",
other_value),
}
# Function calls
var = frozenset([1, 2, 3])
var = F({
"xyz": constants.XYZ,
"abc": constants.ABC,
})
# Wrong
F(123, "Hello World",
{ "xyz": constants.XYZ })
We consider tuples as data structures, not containers. So in general please use lists when dealing with a sequence of homogeneous items, and tuples when dealing with heterogeneous items.
Positional arguments must be passed as positional arguments, keyword arguments must be passed as keyword arguments. Everything else will be difficult to maintain.
# Function signature
def F(data, key, salt=None, key_selector=None):
pass
# Yes
F("The quick brown fox", "123456")
F("The quick brown fox", "123456", salt="abc")
F("The quick brown fox", "123456", key_selector="xyz")
F("The quick brown fox", "123456", salt="foo", key_selector="xyz")
# No: Passing keyword arguments as positional argument
F("The quick brown fox", "123456", "xyz", "bar")
# No: Passing positional arguments as keyword argument
F(salt="xyz", data="The quick brown fox", key="123456", key_selector="xyz")
Note
PEP 257 is the canonical document, unless epydoc overrules it (e.g. in how to document the type of an argument).
For docstrings, the recommended format is epytext, to be processed via epydoc. There is an apidoc target that builds the documentation and puts it into the doc/api subdir. Note that we currently use epydoc version 3.0.
Note that one-line docstrings are only accepted in the unittests.
Rules for writing the docstrings (mostly standard Python rules):
Here’s an example:
def fn(foo, bar):
"""Compute the sum of foo and bar.
This functions builds the sum of foo and bar. It's a simple function.
@type foo: int
@param foo: First parameter.
@type bar: float
@param bar: The second parameter. This line is longer
to show wrapping.
@rtype: float
@return: the sum of the two numbers
"""
return foo + bar
Some rules of thumb which should be applied with good judgement on a case-to- case basis:
The most important consideration is, as usual, to stay consistent with the existing code.
As there’s no “canonical” style guide for Haskell, this code style has been inspired from a few online resources, including the style guide for the Snap framework, this style guide and this other style guide.
Use ordinary, non-literate Haskell .hs files.
Use proper copyright headers, and proper Haddock style documentation headers:
{-| Short module summary.
Longer module description.
-}
{-
Copyright (C) ...
This program is free software ...
-}
If there are module-level pragmas add them right at the top, before the short summary.
Imports should be grouped into the following groups and inside each group they should be sorted alphabetically:
It is allowed to use qualified imports with short names for:
Whenever possible, prefer explicit imports, either in form of qualified imports, or by naming the imported functions (e.g., import Control.Arrow ((&&&)), import Data.Foldable(fold, toList))
Use only spaces, never tabs. Indentation level is 2 characters. For Emacs, this means setting the variable haskell-indent-offset to 2.
Line length should be at most 78 chars, and 72 chars inside comments.
Use indentation-based structure, and not braces/semicolons.
Note
Special indendation of if/then/else construct
For the do notation, the if-then-else construct has a non-intuitive behaviour. As such, the indentation of if-then-else (both in do blocks and in normal blocks) should be as follows:
if condition
then expr1
else expr2
i.e. indent the then/else lines with another level. This can be accomplished in Emacs by setting the variable haskell-indent-thenelse to 2 (from the default of zero).
If you have more than one line of code please newline/indent after the “=”. Do not do:
f x = let y = x + 1
in y
Instead do:
f x =
let y = x + 1
in y
or if it is just one line:
f x = x + 1
Multiline strings are created by closing a line with a backslash and starting the following line with a backslash, keeping the indentation level constant. Whitespaces go on the new line, right after the backslash.
longString :: String
longString = "This is a very very very long string that\
\ needs to be split in two lines"
Warning
Note that this is different from the Python style!
When declaring either data types, or using list literals, etc., the columns should be aligned, and for lists use a comma at the start of the line, not at the end. Examples:
data OpCode = OpStartupInstance ...
| OpShutdownInstance ...
| ...
data Node = Node { name :: String
, ip :: String
, ...
}
myList = [ value1
, value2
, value3
]
The choice of whether to wrap the first element or not is up to you; the following is also allowed:
myList =
[ value1
, value2
]
For records, always add spaces around the braces and the equality sign.
foo = Foo { fBar = "bar", fBaz = 4711 }
foo' = Foo { fBar = "bar 2"
, fBaz = 4712
}
node' = node { ip = "<IP_ADDRESS>" }
Like in Python, surround binary operators with one space on either side. Do no insert a space after a lamda:
-- bad
map (\ n -> ...) lst
-- good
foldl (\x y -> ...) ...
Use a blank line between top-level definitions, but no blank lines between either the comment and the type signature or between the type signature and the actual function definition.
Note
Ideally it would be two blank lines between top-level definitions, but the code only has one now.
As always, no trailing spaces. Ever.
Functions should be named in mixedCase style, and types in CamelCase. Function arguments and local variables should be mixedCase.
When using acronyms, ones longer than 2 characters should be typed capitalised, not fully upper-cased (e.g. Http, not HTTP).
For variable names, use descriptive names; it is only allowed to use very short names (e.g. a, b, i, j, etc.) when:
the function is trivial, e.g.:
sum x y = x + y
we talk about some very specific cases, e.g. iterators or accumulators in folds:
map (\v -> v + 1) lst
using x:xs for list elements and lists, etc.
In general, short/one-letter names are allowed when we deal with polymorphic values; for example the standard map definition from Prelude:
map :: (a -> b) -> [a] -> [b]
map _ [] = []
map f (x:xs) = f x : map f xs
In this example, neither the a nor b types are known to the map function, so we cannot give them more explicit names. Since the body of the function is trivial, the variables used are longer.
However, if we deal with explicit types or values, their names should be descriptive.
Finally, the naming should look familiar to people who just read the Prelude/standard libraries.
Since one cannot update a value in Haskell, this presents a particular problem on the naming of new versions of the same value. For example, the following code in Python:
def failover(pri, sec, inst):
pri.removePrimary(inst)
pri.addSecondary(inst)
sec.removeSecondary(inst)
sec.addPrimary(inst)
becomes in Haskell something like the following:
failover pri sec inst =
let pri' = removePrimary pri inst
pri'' = addSecondary pri' inst
sec' = removeSecondary sec inst
sec'' = addPrimary sec' inst
in (pri'', sec'')
When updating values, one should add single quotes to the name for up to three new names (e.g. inst, inst', inst'', inst''') and otherwise use numeric suffixes (inst1, inst2, inst3, ..., inst8), but that many updates is already bad style and thus should be avoided.
Always declare types for functions (and any other top-level bindings).
If in doubt, feel free to declare the type of the variables/bindings in a complex expression; this usually means the expression is too complex, however.
Similarly, provide Haddock-style comments for top-level definitions.
Exceptions make it hard to write functional code, as alternative control flows need to be considered and compiler support is limited. Therefore, Ganeti functions should never allow exceptions to escape. Function that can fail should report failure by returning an appropriate sum type (Either or one of its glorified variants like Maybe or Result); the preferred sum type for reporting errors is Result.
As other Ganeti functions also follow these guide lines, they can safely be composed. However, be careful when using functions from other libraries; if they can raise exceptions, catch them, preferably as close to their origin as reasonably possible.
 g . h
Also use function composition in a similar manner in expressions to avoid extra parentheses:
-- bad
f (g (h x))
-- better
f $ g $ h x
-- best
f . g . h $ x
It is recommended to keep the use of extensions to a minimum, so that the code can be understood even if one is familiar with just Haskel98/Haskell2010. That said, some extensions are very common and useful, so they are recommended:
Such extensions should be declared using the Language pragma:
{-# Language BangPatterns #-}
{-| This is a small module... -}
Always use proper sentences; start with a capital letter and use punctuation in top level comments:
-- | A function that does something.
f :: ...
For inline comments, start with a capital letter but no ending punctuation. Furthermore, align the comments together with a 2-space width from the end of the item being commented:
data Maybe a = Nothing -- ^ Represents empty container
| Just a -- ^ Represents a single value
The comments should be clear enough so that one doesn’t need to look at the code to understand what the item does/is.
Use -- | to write doc strings rather than bare comment with --.
We generate the API documentation via Haddock, and as such the comments should be correct (syntax-wise) for it. Use markup, but sparingly.
We use hlint as a lint checker; the code is currently lint-clean, so you must not add any warnings/errors.
Use these two commands during development:
make hs-apidoc
make hlint
If you have big type that takes time to generate and several properties to test on that, by default 500 of those big instances are generated for each property. In many cases, it would be sufficient to only generate those 500 instances once and test all properties on those. To do this, create a property that uses conjoin to combine several properties into one. Use printTestCase to add expressive error messages. For example:
prop_myMegaProp :: myBigType -> Property
prop_myMegaProp b =
conjoin
[ printTestCase
("Something failed horribly here: " ++ show b) (subProperty1 b)
, printTestCase
("Something else failed horribly here: " ++ show b)
(subProperty2 b)
, -- more properties here ...
]
subProperty1 :: myBigType -> Bool
subProperty1 b = ...
subProperty2 :: myBigType -> Property
subProperty2 b = ...
...
Use genMaybe genSomething to create Maybe instances of something including some Nothing instances.
Use Just <$> genSomething to generate only Just instances of something.
To generate strings, consider using genName instead of arbitrary. arbitrary has the tendency to generate strings that are too long.


Our minions are working for you :) We are comparing {leftversion} of {packageid} against {rightversion}


Utility classes for reading and manipulating time values and time zones on the Ewon Flexy system. @version 1.0 @author HMS Networks, MU Americas Solution Center


On June 23rd 2016, the UK voted to leave the European Union. This event was known as Brexit, or 'British Exit.' Over 30 million citiens voted, with 53.4% voting for Brexit and the other 46.4% voting to stay. Although these voter percentages are accurate, how well do they represent public opinion on social media, before and after Brexit? This website will use Sentiment Analysis to study 6.5GB worth of Twitter tweets in order to estimate the overall sentiment before and after Brexit. Sentiment Analysis is the process of dynamically determining if a sentence has a positive, negative, or neutral connotation.
Total Positive Tweets Before: 524
Total Negative Tweets Before: 787
Total Positive Tweets After: 2329
Total Negative Tweets After: 4001
Percentage of Positive Tweets Before: 39.97%
Percentage of Negative Tweets Before: 63.21%
Percentage of Positive Tweets After: 36.79%
Percentage of Negative Tweets After: 60.03%
Despite most citizens voting to leave the European Union, public opinion on Twitter about Brexit was generally negative. Unsurprisingly, there was more discussion about Brexit after the seperation was finalized.


Man City goalkeeper Ederson to miss Liverpool clash
Manchester - Manchester City suffered a huge blow ahead of Sunday's top-of-the-table clash at Premier League leaders Liverpool with goalkeeper Ederson ruled out through injury.
The Brazilian international came off at half-time during Wednesday's 1-1 Champions League draw at Atalanta with a muscular problem.
"He's not able to play," said City manager Pep Guardiola at his pre-match press conference.
City ended that game in Milan with right-back Kyle Walker in goal after Ederson's replacement Claudio Bravo was sent off 10 minutes from time for bringing down Josip Ilicic outside his box.
Bravo endured an error-strewn first season in England back in 2016/17 when City finished third in the Premier League.
The Chilean has been replaced by Ederson as Guardiola's first-choice stopper over the past two seasons as City have won the league.
However, Guardiola rejected suggestions that Bravo will be a liability at Anfield on Sunday.
"We have another top 'keeper," added Guardiola.
"You have to respect this guy. He is 34-years-old and has spent his whole career at the top level.
"The first season he was struggling because he was new to the Premier League but the team was not at the top level.
"All the problems were not down to Claudio but it is easy to point the finger."
City travel to Anfield on Sunday already six points behind Liverpool.
Defeat by Jurgen Klopp's team would leave City with a mountain to climb if they are to stop the Reds finally ending a 30-year wait to be champions of England again.
Liverpool have lost only one of their last 50 Premier League games but while Guardiola is aware of the task that will await his side should they lose, he does not believe it will be definitive in the title race.
"It never ends in November," he added. "I know what happens if we lose and everyone is going to say it is over, but we still have a lot of games to play.
"Experience in sport shows that you have to keep fighting until the end. That is what I want on Sunday and for the other games.
"It will be more difficult when you see a team like Liverpool who lost once last season and is unbeaten this season.
"So you can imagine that they are not going to lose many games but the season is long, and a lot of situations can happen."


Provides a minimal interface for applying annotators from the 'Stanford CoreNLP' java library. Methods are provided for tasks such as tokenisation, part of speech tagging, lemmatisation, named entity recognition, coreference detection and sentiment analysis.
| Version: | 0.4-2 |
| Imports: | rJava, XML |
| Published: | 2016-09-21 |
| Author: | Taylor Arnold, Lauren Tilton |
| Maintainer: | Taylor Arnold <taylor.arnold at acm.org> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| SystemRequirements: | Java (>= 7.0); Stanford CoreNLP <http://nlp.stanford.edu/ software/corenlp.shtml> (>= 3.5.2) |
| Materials: | README |
| CRAN checks: | coreNLP results |
| Reference manual: | coreNLP.pdf |
| Package source: | coreNLP_0.4-2.tar.gz |
| Windows binaries: | r-devel: coreNLP_0.4-2.zip, r-release: coreNLP_0.4-2.zip, r-oldrel: coreNLP_0.4-2.zip |
| OS X binaries: | r-release: coreNLP_0.4-2.tgz, r-oldrel: coreNLP_0.4-2.tgz |
| Old sources: | coreNLP archive |
Please use the canonical form https://CRAN.R-project.org/package=coreNLP to link to this page.


Files CCore/inc/DeferCall.h CCore/src/DeferCall.cpp
DeferCall is a defer call engine. It allows record actions and execute them in a defer call loop. This technology is similar to the message loop processing, known in the GUI application development, but is not restricted to a predefined set of messages.
DeferCall is essentially single-threaded. You may run several defer call loops on one per thread basis.
To run a DeferCall loop, you have to derive a class from the DeferCallQueue.
class Queue : public DeferCallQueue { .... public: Queue() { activate(); } ~Queue() { deactivate(); } void forward(TimeScope time_scope) { .... } };
forward() is called when the defer call queue is empty. This method must generate new defer calls or sleep within the given time_scope period. forward() should be used to generate defer calls to handle external events, like key pressing of mouse movement.
Next, you have to create a queue object, then prepare other entities and run the loop.
Queue queue; .... Queue::Loop();
To stop the loop use the DeferCallQueue::Stop(). The global methods address the current active DeferCallQueue object for the current thread. Objects, involved in the DeferQueue processing on this thread, should live withing the queue object life-time.
To add a defer call input to some class use the DeferInput class:
class Window { .... DeferTick defer_tick; private: void put(char ch); void tick(); public: class Input : DeferInput<Window> { friend class Window; explicit Input(Window *window) : DeferInput<Window>(window) {} ~Input() {} public: void put(char ch) { try_post(&Window::put,ch); } }; Input input; Window() : input(this) { defer_tick=input.create(&Window::tick); defer_tick.start(); } };
The class DeferCall serves as the base class of other defer call classes. You don't need to use it directly.
class DeferCall : NoCopy
{
....
public:
DeferCall();
~DeferCall();
virtual void call()=0;
virtual void destroy(DeferCallQueue *defer_queue)=0;
void safeCall();
static void * operator new(std::size_t len,DeferCallQueue *defer_queue);
static void * operator new(std::size_t len,JustTryType,DeferCallQueue *defer_queue) noexcept;
static void operator delete(void *mem,DeferCallQueue *defer_queue);
static void operator delete(void *mem,JustTryType,DeferCallQueue *defer_queue);
};
call() is defined in a derived class and is an actual processing method.
destroy() is defined in a derived class to properly destroy the object.
safeCall() calls the call() and catches and ignores all exceptions.
Other methods are used to allocate and free memory for the object from the given DeferCallQueue.
The class DeferCallHeap is used to allocate and free memory for DeferCall objects. An object of this class is used by a DeferCallQueue object for the memory management. You don't need to use this class directly.
class DeferCallHeap : NoCopy
{
....
public:
explicit DeferCallHeap(ulen mem_len);
~DeferCallHeap();
void * alloc(ulen len);
void free(void *mem);
static ulen GetMaxLen(); // max cached length
};
The memory is taken from a memory block of mem_len length. This block is allocated by the constructor and released by the destructor.
alloc() returns null, if there is no memory available.
free() argument must not be null.
GetMaxLen() is used for the memory allocation caching. To speed up memory operations for short objects DeferCallHeap maintains a list of short memory blocks up to some count for such allocations. GetMaxLen() determines the maximum short allocation length.
The class DeferCallQueue is a main DeferCall engine class. It maintains the list of DeferCalls and executes them in a loop. The object of this type is registered per thread as the current thread DeferCall loop object.
class DeferCallQueue : NoCopy
{
....
private:
virtual void forward(TimeScope time_scope)=0;
protected:
void activate();
void deactivate();
public:
// constructors
static constexpr MSec DefaultTickPeriod = 40_msec ; // 25 Hz
static constexpr unsigned DefaultTicksPerSec = 25 ;
static constexpr ulen DefaultMemLen = 1_MByte ;
explicit DeferCallQueue(MSec tick_period=DefaultTickPeriod,ulen mem_len=DefaultMemLen);
~DeferCallQueue();
// heap
void * try_alloc(ulen len);
void * alloc(ulen len);
void free(void *mem); // mem!=0
template <class T>
void destroy(T *obj);
// call
void post(DeferCall *defer_call);
void post_first(DeferCall *defer_call);
void start_tick(DeferCall *defer_call);
void stop_tick(DeferCall *defer_call);
// loop
void loop();
void stop();
// per-thread queue
static DeferCallQueue * Get();
static bool IsActive();
static void Loop() { Get()->loop(); }
static void Stop() { Get()->stop(); }
};
forward() must be defined in a derived class. This method is called when the defer call queue is empty.
activate() must be called in a derived class constructor to register the object with the current thread. If some object is already registered, an exception is thrown.
deactivate() must be called in a derived class destructor to unregister the object with the current thread.
DefaultMemLen is the default heap capacity.
The argument tick_period is the tick period, defaulted to the DefaultTickPeriod, equals 40 milliseconds, that gives 25 Hz tick frequency. The tick period is maintained as accurate, as possible.
The argument mem_len is a heap capacity. All DeferCall objects for this loop are created in the heap of this capacity.
The following four methods are heap methods. You don't need to use these methods directly.
try_alloc() returns null, if there is no memory.
alloc() throws an exception, if there is no memory. It also stops the defer call loop in this case.
free() releases the memory, the argument must not be null.
destroy() destroys a DeferCall object.
The following four methods are queue methods. You don't need to use these methods directly. Arguments must not be null.
post() puts the DeferCall object in the queue. The object is consumed. It will be destroyed after processing or during the queue cleanup after stop.
post_first() puts the DeferCall object in the queue head. The object is consumed. It will be destroyed after processing or during the queue cleanup after stop.
start_tick() starts ticks on the object. The object is not consumed. It retains the owner. Defer tick is a periodic event, during this event all specified defer calls are called to do a periodic processing.
stop_tick() stops ticks on the object. The object can be destroyed now.
The next two methods are loop methods. You don't need to use these methods directly.
loop() starts the defer calls loop.
stop() stops the loop.
Finally, four global methods.
Get() gets the active DeferCallQueue object. An exception is thrown, if there is no one.
IsActive() is true iff there is an active DeferCallQueue for the current thread.
Loop() starts the defer call loop.
Stop() stops the loop.
The class DeferCouple is a helper class, it stores a pointer to a DeferCallQueue object and a pointer to a DeferCall object. You don't need to use this class directly. If you desire to do it, think throw how its methods are working, they have been designed to serve a particular purpose.
struct DeferCouple
{
DeferCallQueue *defer_queue;
DeferCall *defer_call;
// constructors
DeferCouple();
DeferCouple(NothingType) : DeferCouple() {}
DeferCouple(DeferCallQueue *defer_queue,DeferCall *defer_call);
// props
bool operator ! () const { return !defer_queue; }
// cleanup
void cleanup() noexcept(EnableNoExcept);
// post
void post() { defer_queue->post(defer_call); }
void post_first() { defer_queue->post_first(defer_call); }
void try_post() { if( defer_queue ) defer_queue->post(defer_call); }
void try_post_first() { if( defer_queue ) defer_queue->post_first(defer_call); }
void start_tick() { defer_queue->start_tick(defer_call); }
void stop_tick() { defer_queue->stop_tick(defer_call); }
};
Default constructor and NothingType-constructor creates a null object.
The second constructor creates an object with given object pointers. If the DeferCall pointer is null, a null object is constructed.
There is no destructor, so you have to cleanup the object manually by the method cleanup().
operator !() returns true, if the object is null.
cleanup() destroys the DeferCall object and nullifies the object.
Other methods posts the defer call or starts the defer tick on it.
The class DeferTick is a defer tick controller. It may own some defer call, given as a DeferCouple object. If it owns some defer call, the defer tick can be started on this defer call.
class DeferTick : NoCopy
{
....
public:
// constructors
explicit DeferTick(DeferCouple couple=Nothing);
~DeferTick();
// set/reset
bool set(DeferCouple couple);
bool reset();
void operator = (DeferCouple couple);
// start/stop
bool start();
bool stop();
};
Constructor builds the object, owning the given defer call, provided as a DeferCouple object. If the DeferCouple object is null, the tick object is null.
Destructor resets the object. If a defer call object was owned, it is destroyed.
set() and operator = sets a new defer call object, or null. The previous defer call is destroyed, if any. If the defer tick was started, it remains started on the new defer call, unless null is provided. In the last case the tick becomes stopped and the return value is true.
reset() is the same as set(Nothing). I.e. it destroys the old defer call object and resets the tick object to the null state. The defer tick is stopped, if it was running. In the last case the return value is true.
start() starts the defer tick on the owned defer call, if any. The return value is true, if the defer tick has been successfully started.
stop() stops the defer tick, if it is running. The return value is true, if the defer tick has been successfully stopped.
All four methods return true, if the defer tick status (running or stopped) has been changed.
The class DeferInput is the main "input" class. It is used to build and use defer calls, bounded with method calls of some object.
template <class S>
class DeferInput : NoCopy
{
....
public:
template <class ... TT>
static constexpr ulen GetMessageLength();
// constructors
explicit DeferInput(S *obj);
~DeferInput();
void cancel();
// post
template <class ... TT>
DeferCouple create(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
template <class ... TT>
void post(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
template <class ... TT>
void post_first(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
// try post
template <class ... TT>
DeferCouple try_create(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
template <class ... TT>
void try_post(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
template <class ... TT>
void try_post_first(void (S::* method)(TT... tt),const TT & ... tt) requires ( ... && CopyCtorType<TT> ) ;
// post interface
template <FuncInitArgType<S &> FuncInit>
DeferCouple create(FuncInit func_init); // func(S &)
template <FuncInitArgType<S &> FuncInit>
void post(FuncInit func_init);
template <FuncInitArgType<S &> FuncInit>
void post_first(FuncInit func_init);
// try post interface
template <FuncInitArgType<S &> FuncInit>
DeferCouple try_create(FuncInit func_init); // func(S &)
template <FuncInitArgType<S &> FuncInit>
void try_post(FuncInit func_init);
template <FuncInitArgType<S &> FuncInit>
void try_post_first(FuncInit func_init);
};
The constructor argument is a pointer to the target object. It should be non-null (otherwise the object is useless). The object life-time must be greater than the DeferInput object life-time. Constructor also captures the pointer to the current DeferCallQueue object. So the input object must be used withing the thread has created the input object and after the thread is attached with a DeferCallQueue object.
cancel() deactivates all pending defer calls. They call() methods become "doing nothing".
There are four groups of methods for the defer call creation and submission. The first method creates a defer call and returns one as a DeferCouple object. The second creates and posts the defer call. The third creates and posts at the queue head.
The first group creates a defer call from an object method and a set of arguments. Rememebr, the arguments are copied and stored, so you must be caution with arguments of a "pointer type". Also if the method is failed due to the lack of memory, the defer call loop will be stopped. The method can also throw an exception from the argument copying. This situation is considered as a bad design, it's better avoid it. Don't use types with not efficient copy constructors!
create creates a defer call from the given object method and the set of arguments. You need this method for the defer tick processing.
post() creates and post a defer call from the given object method and the set of arguments.
post_first() creates and post at the head a defer call from the given object method and the set of arguments.
The second group of methods is try variants.
try_create() is the same as the create(), but does not throw exception if no memory. In this case the method returns a null object.
try_post() is the same as the post(), but does not throw exception if no memory. In this case the method does nothing.
try_post_first() is the same as the post_first(), but does not throw exception if no memory. In this case the method does nothing.
Last methods are similar, but create defer calls not from object methods, but from functor initialization objects. Each time the defer call is called, the functor is created from the initializer and applied to the object.


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
IN THE HIGH COURT OF PUNJAB AND HARYANA AT CHANDIGARH RSA No.2742 of 2008(O&M) Date of decision: .9.2008 Haryana State Pollution Control Board and another ...... Appellants versus Juglan Glue P.C.I.S. Ltd. .......Respondent CORAM: HON'BLE MR. JUSTICE RAKESH KUMAR GARG ****
Present: Mr. J.P.Bhatt, Advocate for the appellants. Rakesh Kumar Garg, J .
CM No.8090-C of 2008 For the reasons mentioned in the application, delay of 70 days in filing the appeal is condoned.
CM stands disposed of.
RSA No.2742 of 2008 The respondent is a Co-operative Society and is running a glue industry since 1967. After coming into force of Water (Prevention and Control of Pollution)Act, 1974 and Air (Prevention and Control of Pollution) Act, 1981, no standards were prescribed for the industry of the respondent.
It is the case of the respondent that although his industry did not discharge any trade effluent which could cause pollution, yet as a matter of precaution it applied for consent to the appellants which was granted as per rules and it was found that the plaintiff-respondent was not discharging any trade effluent. Despite this, the employees of the appellants took samples from the industry of the respondent and false report was prepared and prosecution was launched against the respondent. Subsequently, the appellants advised and suggested the respondent to deposit litigation charges for the withdrawal of prosecution. As per the advise and suggestion and assurance of the appellants, respondent deposited a sum of Rs.7,500/- with the appellants on 28.3.1994 but despite that, the prosecution was not withdrawn by the appellants and subsequently the complaint filed by the appellants against the respondent was found to be false, which was dismissed by the Court of competent jurisdiction by acquitting the respondent. The respondent requested the appellants to refund the fee of Rs.7,500 deposited for withdrawal of the prosecution. The request of the respondent for refund of the amount was rejected by the appellants vide its letter dated 29.8.2002.
The respondent filed the present suit for declaration to the effect that the letter dated 29.8.2002 issued by defendants whereby the refund of the litigation charges has been declined by the defendants is totally wrong and illegal against law and facts on record, null and void and as such is liable to be set aside and as a consequential relief of mandatory injunction directing the defendants to refund the litigation fees received by the defendants for withdrawal of prosecution with interest @ 24% per annum from the date of deposit to the date of realization on the basis of evidence oral and documentary of every description.
The suit was contested by the appellants and it was submitted that the fee of Rs.7,500/- deposited by the respondent was not the fee for withdrawal of the prosecution, rather it was the litigation charges and they have forwarded the case of the respondent to the Government for withdrawal of the prosecution. However, the Government did not permit the withdrawal of prosecution. It was also asserted that the suit is not maintainable in the present form. The trial Court dismissed the suit filed by the respondent vide its judgement and decree dated 26.9.2006.
Feeling aggrieved against the aforesaid judgment and decree, the respondent filed an appeal before the District Judge, Hisar which was allowed vide judgment and decree dated 8.3.2008. The relevant part of the impugned judgment and decree passed by the District Judge, Hisar is reproduced as under:
"I have considered the rival contentions of the parties very carefully and I find that the respondents who are part and partial of the govt. and are discharging the sovereign duties, are not supposed to take a frivolous technical plea so as to non-suit the plaintiff. In this case, resolution, was passed to institute the suit for refund of the amount due to the violation of the promise given by the respondents. In this case, the Pollution Board has although taken Rs.7500/- for withdrawal of the prosecution on the plea of litigation expenses yet they have not fulfilled that promise. It is different matter that the appellant successfully faced that prosecution and was acquitted of the charges. Once the respondents were unable to fulfill their promise, they were not only morally bound but duty bound to refund this amount to the appellant, instead they have started taking one plea or another in order to defeat the claim of the appellant. Since it was a violation of the undertaking given by the respondents, the suit for mandatory injunction is fully maintainable.
Admittedly, the promise having not been fulfilled,the respondents are liable to refund the amount to the appellant and there is no necessity to file suit for recovery. The appeal being continuation of suit can very well be filed by the person who was authorized to file suit. The arguments that the appeal has been signed only by the advocate would not make any difference. Because the same advocate was representing the appellant before the trial court. The finding recorded by the trial court with regard to issues no.1 to 4 are hereby reversed. Resultantly, the suit of the plaintiff succeeds and a decree for mandatory injunction is passed in favour of the appellant and against the defendant/respondents to refund the amount of Rs.7500/- with 6% interest from the date of filing of the suit till the date of recovery. If this amount is not paid within three months then, the interest would be 12% per annum instead of 6% per annum. Thus, the appeal is accepted."
By way of this appeal, the Haryana State Pollution Control Board has challenged the impugned judgement and decree.
Learned counsel for the appellants has argued that an amount of Rs.7,500/- deposited by the respondent was not the fee for withdrawal rather it was the litigation charges and the case of the plaintiff was forwarded to the Government for withdrawal of the prosecution as per the guidelines but the Government did not permit the withdrawal of the prosecution and the appellant was not competent to withdraw the complaint against the respondent and hence, they are not at fault. It was further argued by the learned counsel for the appellants that the suit for mandatory injunction is not maintainable and the plaintiff-respondent should have filed the suit for recovery. An objection has also been raised to the maintainability of the appeal on the ground that the resolution to file the appeal has not been attached with the grounds of appeal as resolution has been passed later on i.e. 22.11.2006 whereas the appeal was filed on 9.11.2006. On the basis of the above arguments, learned counsel for the appellants has raised the following substantial question of law:-
" Whether the suit as well appeal filed by the respondent are maintainable.?"
I have heard learned counsel for the appellants and perused the record. However, I find no force in the arguments raised by the learned counsel for the appellants.
Admittedly, there was a policy Ex.D1 vide which the procedure has been laid down for withdrawal of the cases and in compliance of the assurance given by the appellant-Board and the procedure prescribed in the document Ex.D1, the plaintiff-respondent deposited a sum of Rs.7,500/- for withdrawal of the prosecution against him. This procedure has been laid down by the appellant-Board and it has also been admitted that the Board recommended for withdrawal of the case to the Government. Another important factor which is relevant to be mentioned is that, in fact, the respondent stood acquitted in the complaint/prosecution case by a Court of competent jurisdiction. The only plea taken by the appellants is that the Government has not allowed the withdrawal as they were not competent to withdraw the complaint and therefore, they are not at fault. The appellant-Board has not substantiated its arguments by placing on record the reasons on the basis of which the Government did not allow withdrawal. Even the order of the Government declining to allow the withdrawal of the case against the respondent has not been placed on record of the case. Even otherwise, the appellant-Board is an autonomous body which has been created under a statute. It was the Board who had initiated the complaint against the respondent and it was for the appellant- Board to withdraw the complaint against the respondent. There is no evidence on record to prove that permission of the Government was necessary for withdrawal of complaint against the respondent. Thus, the letter dated 29.8.2002 issued by the appellant-Board whereby the request of the respondent for refund of litigation charges has been declined has been rightly held to be illegal.
As far as the objection of the appellants with regard to the maintainability of suit for mandatory injunction being for recovery of money is concerned, the same is liable to be rejected. The suit filed by the respondent is not a suit for recovery simpliciter. In fact the respondent has filed a suit for declaration to the effect that the letter dated 29.8.2002 issued by the appellant-Board declining its request for refund is illegal and as a consequential relief a mandatory injunction has been sought against the appellants to refund the litigation fee. The judgement cited by the learned counsel for the appellants in the case of State of Haryana v. Dr. Prem Singh Mann, 1996 (3) PLR 799 is not applicable to the facts of the case.
The other objection of the appellants regarding maintainability of the appeal on the ground that there was no resolution by the respondent-Company to file the appeal on the date of filing of the appeal i.e. 9.11.2006 is also liable to be rejected. Undisputedly, resolution was passed by the respondent-Company on 22.11.2006. Thus, it was merely an irregularity which cannot come in the way of the Court for granting relief. The Hon'ble Supreme Court of India in the case of Uday Shankar Triyar v. Ram Kalewar Prasad Siingh and another AIR 2006 SC 269 has held as under:-
"17. Non-compliance with any procedural requirement relating to a pleading, memorandum of appeal or application or petition for relief should not entail automatic dismissal or rejection, unless the relevant statute or rule so mandates. Procedural defects and irregularities which are curable should not be allowed to defeat substantive rights or to cause injustice. Procedure, a hand-maid to justice, should never be made a tool to deny justice or perpetuate injustice, by any oppressive or punitive use. The well recognized exceptions to this principle are:-
i) whether the Statute prescribing the procedure, also prescribes specifically the consequence of non- compliance.
ii) where the procedural defect is not rectified, even after it is pointed out and due opportunity is given for rectifying it;
iii)where the non-compliance or violation is proved to be deliberate or mischievous;
iv)where the rectification of defect would affect the case on merits or will affect the jurisdiction of the court.
v) In case of Memorandum of Appeal there is complete absence of authority and the appeal is presented without the knowledge, consent and authority of the appellant."
Thus, in view of the above well settled proposition of law, there is no merit in the said objection raised by the appellants. Even otherwise the resolution authorising to file appeal dated 22.11.2006 was passed. It is not disputed that while instituting the suit in the trial Court, the respondent- Company has placed on record a resolution of the Company to institute the legal proceedings against the appellant-Board. It is well settled proposition of law that appeal is a continuation of a suit therefore, if powers have been given by a company to a person to institute suits and other legal proceedings that power will also include the power to file appeals and revisions. In my above view, I am supported by a judgement of this Court in the case of National Fertilizers Ltd. Bathinda v. Municipal Committee, Bathinda and another 1982 PLR 322. In RSA No.1270 of 2004 (Municipal Council Bathinda v. Raj Kumar) decided on 27.7.2006, this Court after relying upon Uday Shankar Triyar's case (supra) has taken the view as under:
"Coming to the facts of the case, the resolution authorising the Executive Officer to file the suit has been proved before the lower appellate court and the plaint was duly signed by the pleader. It has also been established that the Municipal Committee was entitled to recovery a sum of Rs.3,11,000/- from the respondent along with interest thereon. The rights of the appellant, therefore, could not be defeated on this mere technicality. "
For the reasons stated above, I find no merit in the present appeal. No substantial question of law raises for the determination of this Court.
Dismissed.
September , 2008 (RAKESH KUMAR GARG) ps JUDGE


General Cluster setting and defaults
| Default Authentication | |
| Default Replicas | |
| Keyring file Path | |
| Bind to IPv6 | |
| Default Log File | |
| OSD down-Out interval | |
| OSD Report Timeout | |
| Default Journal Size | |
| Default Journal Path | |
| Default OSD Data Path | |
| OSD Max Backfills | |
| OSD Max Scrubs |
Generate notifications for the following events
{{data.name.split('_').join(' ')}} |
Yes | No |
Alert user when the following utilization thresolds have been breached
| Warning (Near Full) | Critical (Full) | |
|---|---|---|
{{data.name.split('_').join(' ')}} |
{{data.configs[1].value}} | {{data.configs[0].value}} |


Name Amount Cooked
Type Volume Alcohol
Type Intensity Duration OI
Username:
Password:
First Name: Last Name: Username: Password: Email: Date of Birth: Month January February March April May June July August September October November December Day Year
Gender: Male Female


main page
games
music
art
links
forums
Here's some original music I've made.
It is for personal listening use only, unless you have specific permission from me to use it for something else.
Music
Weird Space
Spacey piece set to appear in Pug Fugly's Return to Sector 9.
MIDI
Update Title
Update text
Update Title
Update text
Update Title
Update text
Update Title
Update text
News Archive


Are interviews necessary?
Neuropsychological assessment
Concerned with evaluating the functioning of the nervous system as it relates to behavior
Concerned with both central and peripheral nervous system
organicity, a mental disorder is linked to a biological cause (e.g. brain lesion)
Lots of plasticity in brain functioning/recovery and link between organicity and damage are not one-to-one
Conditions prompting evaluation
- Referrals from psychologist, general practitioner, neurologist
- No medical basis for impairment (e.g. headaches)
- Look at cognitive reponse to trauma or chronic conditions
- hard vs. soft signs
Neuropsychological evaluation
purpose - to make inferences about the structural and functional characteristics of the brain by evaluating an individual's behavior in defined stimulus-response situations
May test a myriad of behaviors: visual, auditory, perceptual, problem solving, cognitive processing, sensory
Timing of assessment may be critical to validity
methods - similar as other psychological methods but also including imaging equipment (e.g fMRI)
Imperative to have a strong understanding of biology and neurological functioning
What would it mean if someone was complaining about headaches?
History and case study
- Similar methods to counseling/clinicial psychologist evaluation
- Medical history of patient and their family
- For children, have they reached developmental milestones
- Demographics and psychological history (e.g. intelligence, personality disorders, etc)
- Type, nature, and severity of issues
- Will want to know the onset of behavior and any changes observed
Interview and mental status exam
Unlike counseling/clinicial, interviews here are more structured
Typically involve rating
Formal exam would be used to screen for impairments and/or disease
Would administer a mental status exam for general understanding of the mental state of the examinee
Mental status exam
- Appearance, behavior
- Orientation
- Memory
- State of senses and psychomotor abilites
- State of consciousness, affect, mood, personality
- Thought content & processes
- Intelligence, insight, judgment
- Focus on neuropsychological functioning
What types of tests would we want to use in neuropsychology?
General intelligence tests
Weschler tests very commonly used in neuropathology
Patterns of scores often indicative of a deficit
Focus on interpreting pattern of subtest scores (pattern analysis)
Other scores devised to assess brain damage (e.g. quotients or ratio scores)
Depending on focus of assessment, may deviate from prescribed testing procedure
Abstract thinking
- Inability to think in abstract manner indicative of neuropsychological deficit
- Tests elicit abstract thinking in testee administered
- Weschler similarities test
- Proverbs test
- Sorting tests
- Test frontal lobe functioning - concentration, planning, organization, cognitive flexibility, working memory, inhibition of impulsive behavior
Executive Functioning
Involved in planning, organizing, cognitive flexibility, and inhibition of impulses
Associated with frontal and prefontal lobes
Associated with, but distinct from, intelligence
Believed to be plastic
Children in poverty often have low EF
Perceptual and motor test
- perceptual - measure sensory functioning
- motor - measure motor skills
- includes tests of color, smell, dexterity, speed, ability, etc.
Tests of verbal functioning
verbal fluency may be associated with brain injuries or diseases (e.g. dementia)
- Controlled Word Association Test - examiners says a letter and examinee says as many words as they can
- Has been used with dementia patients (but can not readily identify people with dementia)
Is someone able to express them self with language (aphasia)
Reitan-Aphasia Screening Tests used to detect aphasia - naming common objects and writing familiar words
Unidimensional? Culturally sensitive?
Tests of memory
- Many models of memory
- Memory models include short and long-term memory
- Something perceived may move into short-term memory, back to being aware, back to short-term memory (and so on), and either to long-term memory or could be lost
- Different ways memory is classified in LTM
Types of test
- California Verbal Learning Test-II
- Obtain the most comprehensive and detailed assessment of verbal learning and memory available for older adolescents and adults
- Examinees are read a list of words, selected after careful study of their frequency of use across multiple demographic variables, and asked to recall them across a series of trials
- Wechsler Memory Scale
- An extremely comprehensive memory test
Why might we consider a battery of tests?
Why might be an
issue with this?
fMRI
- Produces images of the brain, non-invasively, that allow us to monitor the flow of blood (i.e. study function)
- Use fMRI to see how our brain responds to different stimuli
- Diverse uses including studies of mindfulness, prevent disabilities, treating disorders and addictions, studying autism, studying criminials, examing racism, decision-making, memory, and much more
Issues with fMRI
Often done with small sample sizes, low statistical power, and lots of statistical testing!
Non-independent statistical tests and corrections are needed, otherwise dead salmon
Be mindful of practical significance and understand how it differs from statistical significance


A Webpage developed to help you find all the necessary courses needed to get going with the career of Data Analyst
Data science continues to evolve as one of the most promising and in-demand career paths for skilled professionals. Today, successful data professionals understand that they must advance past the traditional skills of analyzing large amounts of data, data mining, and programming skills. In order to uncover useful intelligence for their organizations, data scientists must master the full spectrum of the data science life cycle and possess a level of flexibility and understanding to maximize returns at each phase of the process.
Data analysts bridge the gap between data scientists and business analysts. They are provided with the questions that need answering from an organization and then organize and analyze data to find results that align with high-level business strategy. Data analysts are responsible for translating technical analysis to qualitative action items and effectively communicating their findings to diverse stakeholders. A Data Analyst with added skillset becomes a Data Scientist.
Data scientists examine which questions need answering and where to find the related data. They have business acumen and analytical skills as well as the ability to mine, clean, and present data. Businesses use data scientists to source, manage, and analyze large amounts of unstructured data. Results are then synthesized and communicated to key stakeholders to drive strategic decision-making in the organization.
The field of statistics is the science of learning from data. Statistical knowledge helps you use the proper methods to collect the data, employ the correct analyses, and effectively present the results.
It provides great libraries to deals with data science application. One of the main reasons why Python is widely used in the scientific and research communities is because of its ease of use and simple syntax which makes it easy to adapt for people who do not have an engineering background.
A Data Scientist needs SQL in order to handle structured data. This structured data is stored in relational databases. Therefore, in order to query these databases, a data scientist must have a sound knowledge of SQL.
Converting and mapping data from its raw form to another format with the purpose of making it more valuable and appropriate for advance tasks.
Data visualizations make big and small data easier for the human brain to understand, and visualization also makes it easier to detect patterns, trends, and outliers in groups of data.
Course : Statistics for Data Science and Business Analysis
Platform : Udemy
Created by : 365 Careers
Ratings : 4.58/5
Level : Beginner
Course : Learn Python Basics of Data Analysis
Platform : OpenClassrooms
Created by : OpenClassrooms
Ratings : NA
Level : Beginner
Course : Retrive Data using SQL
Platform : OpenClassrooms
Created by : OpenClassrooms
Ratings : NA
Level : Beginner
Course : Using Databases with Python
Platform : Coursera
Created by : University of Michigan
Ratings : 4.8/5
Level : Beginner
Course : Use Python Libraries for Data Science
Platform : OpenClassrooms
Created by : OpenClassrooms
Ratings : NA
Level : Intermediate
Course : Intoduction to Data Science
Platform : Coursera
Created by : University of Michigan
Ratings : 4.5/5
Level : Intermediate
Course : Applied Plotting, Charting & Data Representation in Python
Platform : Coursera
Created by : University of Michigan
Ratings : 4.5/5
Level : Intermediate
Course : Create a Dashboard using Tableau
Platform : OpenClassrooms
Created by : OpenClassrooms
Ratings : NA
Level : Intermediate
Let me know if this website was of nay help to you or did provide you by giving you clarity about how and where to start studing.


Starbucks
Starbucks Corporation is an American multinational chain of coffeehouses and roastery reserves headquartered in Seattle, Washington. As the world's largest coffeehouse chain, Starbucks is seen to be the main representation of the United States' second wave of coffee culture.[6][7] As of early 2020, the company operates over 30,000 locations worldwide in more than 70 countries. Starbucks locations serve hot and cold drinks, whole-bean coffee, microground instant coffee known as VIA, espresso, caffe latte, full- and loose-leaf teas including Teavana tea products, Evolution Fresh juices, Frappuccino beverages, La Boulange pastries, and snacks including items such as chips and crackers; some offerings (including their annual fall launch of the Pumpkin Spice Latte) are seasonal or specific to the locality of the store.
Founding
The first Starbucks was opened in Seattle, Washington, on March 30, 1971,[9] by three partners who met while they were students at the University of San Francisco:[10] English teacher Jerry Baldwin, history teacher Zev Siegl, and writer Gordon Bowker were inspired to sell high-quality coffee beans and equipment by coffee roasting entrepreneur Alfred Peet after he taught them his style of roasting beans.[11] Bowker recalls that Terry Heckler, with whom Bowker owned an advertising agency, thought words beginning with "st" were powerful. The founders brainstormed a list of words beginning with "st," and eventually landed on "Starbo," a mining town in the Cascade Range. From there, the group remembered "Starbuck," the name of the chief mate in the book Moby-Dick.[12] Bowker said, "Moby-Dick didn't have anything to do with Starbucks directly; it was only coincidental that the sound seemed to make sense."
Sale and expansion
In 1984, the original owners of Starbucks, led by Jerry Baldwin, purchased Peet's Coffee.[17] By 1986, the company operated six stores in Seattle[18] and had only just begun to sell espresso coffee.[19] In 1987, the original owners sold the Starbucks chain to former manager Howard Schultz, who rebranded his Il Giornale coffee outlets as Starbucks and quickly began to expand the company.[20] That same year, Starbucks opened its first locations outside of Seattle in Waterfront Station in Vancouver, British Columbia, and Chicago, Illinois.[21] By 1989, 46 Starbucks stores existed across the Northwest and Midwest, and the company was roasting more than 2,000,000 pounds (907,185 kg) of coffee annually.[18] At the time of its initial public offering (IPO) on the stock market in June 1992, Starbucks had 140 outlets, with revenue of US$73.5 million, up from US$1.3 million in 1987. The company's market value was US$271 million by this time.


In Deduction mode we have avaliable all the operators to use:
Also we have the following options to process a given formula:
For example, given the formula:
Go option displays the truth table of all the formulae in the premises,
the truth table of the conclusion part, and the truth table of the overall deduction. The number
of models and the result of the deducion is also printed:
In case of Go (Only display result) option, Logic Calculator performs as in Basic mode.
Debug tab displays the same result as in Basic mode.


Rebellion launches board games division
UK developer and publisher will kick off new business with tabletop version of Sniper Elite
by James BatchelorRebellion is expanding into a new industry with the launch of Rebellion Unplugged, a new division dedicated to board games.
The UK publisher and developer already produces video games, books, comics and has branched into TV and film production. Now the firm is capitalising on the rising popularity of tabletop games by bringing its IP to this market.
Rebellion Unplugged's first release will be Sniper Elite: The Board Game, based on the firm's popular WWII shooters. An early version will be playable at PAX Unplugged in Philadelphia next month, with a Kickstarter campaign due to launch in early 2020.
Several other games are in the works, with more to be announced next year. The company's IP portfolio also includes 2000 AD (including Judge Dredd), Evil Genius and Sniper Elite spin-off Zombie Army.
The new division is being lead by Duncan Molloy, founder and creative lead of Osprey Games' board games line-up.
"We're absolutely delighted to be launching Rebellion Unplugged," said CEO and founder Jason Kingsley. "My brother Chris and I have been making video games for more than 25 years, and our love of the medium has its roots in our childhood love of board games.
"We've got so many great games and comic book heroes and universes to draw from too, so it's going to be a lot of fun."


Employment
Lead Consultant
GENPACT HEADSTRONG CAPITAL MARKETS | NOIDA
- Development of new features and bug fixing
- Learned Agile model of software development and took ownership of all coding and testing
- Implemented multiple item drag and drop feature in Angular
- Creating UI solutions utilizing agile process
- Functional Testing of various test case scenarios
Technical Lead
TECH MAHINDRA | NOIDA
- Bug fixing for mobile app
Senior Associate Technology L1
SAPIENT GLOBAL MARKETS | GURGAON
- Only frontend senior dev in team
- Designing of reusable components
- Evaluating requirements and preparing functional mockups
- Guiding team to follow best practices
- Unit and Integration testing
- Carried out UAT deployment using Bamboo
Senior software Engineer
SDG | NOIDA
- Developed multiple features and screens using jquery
Software Engineer
MAGIC SOFTWARE | NOIDA
- Coding and development of Flash/HTML5 game s for e learning domain
- Was part of framework team who was involved in development of a gaming framework based on Backbonejs
- Successfully carried out development of Flash games in multiple projects at same time


Home
New: Home Video
New: Home Custom Slider
Home Default
Home Carousel
Home Fullscreen
About
Services
List
Details
Gallery
Album Default
Album Carousel
Gallery
Blog
Contact


on
Digitizing collections
I’ve begun creating a media server lately. Something that I never thought I would attempt. With the number of relatively comprehensive streaming services, a media server did not make much sense. Not to mention my ptsd thinking back to my teenage years of terrible data-handling. I would create inumerable backups with minute differences, making it impossible to realize which one was the proper backup when needed. I’m still surprised today by some backup hidden deep in my file systems. I imagine I’ve learnt something from my last few years with linux, where I’ve learned rules to file managment.
The appeal of a media server has been the BYOM (Bring Your Own Media) approach. I have a number of CDs and movies in the house which are not easy to find online (think Criterion collection DVDs, the tv show Eureka, or the number of classical music around the house). Plus, I did spend a decent bit of cash in the past on digital media, and I did not want it to have been for naught!
I’m going to write here a general guide to how I got my system running, because many of the details are ridiculously simple, and it should have been easier. I’ll start by introducing my media server, how I handle CDs, and how I’ve been ripping DVDs.
The media server
I’m surprised how powerful the server I made is. I started it as a ‘what-if’ project, that has become an important in-house source of entertainment. I was going to spend a max of 100$ above what I have in the house to put the server together, because I figured it would overheat, be underpowered, or just burn out. Most NAS systems described online cost a minimum of 400$. I used a 35$ raspberry pi. Turns out, a raspberry pi is more than enough (total cost is less than ~150$ SGD). My system needed just:
- 3A power supply at 5V
- Raspberry pi 3b+ or better
- MyTraveller WD external HDD
Of course, this is the bare minimum. The raspberry pi can be replaced with a proper computer or NAS system. The raspberry pi is looked down upon in forums for the more advanced media servers, but I don’t feel as if i’m missing anything. It performs wonderfully for just media and one attached HDD without overclocking, becoming undervoltage, or overheating. Adding more than one HDD does stand the chance of undervoltage, which can be solved through powered USB hubs. I recommend doing your own research there. I saw some hubs can shorten HDD lifespans due to improper power supply, or that was just poor luck on part of the user. Over heating is a risk with multiple users. Think three or more users. At two users, I got temps in the 70Cs, and I’m in Singapore with an ambient temp of ~30C.
update: For large movie files, using chromecast ontop of the raspberry pi can sometimes have long loading times. I’m not sure if I’m doing something wrong, or the raspberry pi is having issues converting files to the appropiate format.
There are some concerns about power supply. An HDD needs 5V at minimum 0.5A (rest) or ~0.7A (spinning) for external portable hdd. That is already easily provided by the USB hubs, assuming the power supply is at least 2.5A or greater. Internal HDDs or running multiple HDDs have a higher power requirement and absolutely should get power from other than the raspberry pi. Do note that I have ensured that only a maximum voltage goes through the USB. I added a few lines to /boot/config.txt on the raspberry pi as such:
# power managment for usb
max_usb_current=1
I had concerns at first about HDD lifespans, as a media server would be on 24/7. I imagined I would implement a complicated system where the HDD would be spun down when not in use, and there are guides for how to do that online. Do keep in mind that not all HDDs have that ability, like the WD MyPassport external portable drives (like the one I am using). This does not have to be a concern: shortly after setting it up, a redditor posted details about his build which is similar to mine. Even has the same HDD, except its been running for 3 years for 24/7. It is better to just have an extra HDD on the side for proper backup.
For the actual server, I make use of Plex. An audiophile with a massive music-only collection and a large monthly budget would be more interested in Roon (I do not describe how to use Roon on the raspberry pi). Roon is software similar to Plex but highly lauded. Unlike Plex, Roon will stream lossless media, while Plex converts lossless to MP3 at max 360Kbps. This is not a big loss for me given an important feature in Plex missing in Roon: the option to listen to your collection outside of the home.
Plex has three options depending on your budget:
- Free :
You can stream to your PCs free of charge! portable devices (tablets, phones) require an app that costs ~7$. However, once you bought it on a system (android, iOS), you can install it as many times as you want on any devices. You are also limited to one user, meaning only one user profile allowed. The last troublesome detail is that you cannot download music for offline usage on the apps.
- monthly :
Free access to ALL apps (including one called plex-amp), multiple user profiles, offline download for the apps, and access to a list of special discounts and apps. Roughly 7$ per month.
- lifetime subscription :
one time charge, and all the benefits of monthly forever.
I went with the free option, and its suiting me just fine.
I do recommend having more than one hdd to store all your media. Its just proper habit. I have another HDD stored separately to which I backup the server to every two weeks.
The music ripping process
I have two pieces of invaluable software for the ripping; abcde and MusicBrainz.
abcde
abcde is a minimal, terminal based ripping software. The output can be customized with a config file in ‘/etc/abcde.conf’. I have a relatively simple config file that can be seen in my dotfiles. Ultimately I use abcde to get the CDs in my system with minimal metadata. I process the data further using MusicBrainz. While abcde has in-built functions to communicate with MusicBrainz, it sometimes cannot identify the CD for one reason or the other. These are usually minor issues that the full MusicBrainz software has options for but the terminal has limited options. To be honest, I probably don’t have the right bit of code; I have to manually modify the conf file to ignore the MusicBrainz database when the roadblocks appear. Ultimately, I use abcde to get the CDs in with or without basic metadata.
I recommend these sites for further information:
MusicBrainz
While abcde can pull information from MusicBrainz, I have not bothered to configure abcde to work perfectly with the software. I’m working with a lot of classical music CDs, some of which are not properly in the MusicBrainz catalogue (which is pretty damn comprehensive, abcde just can’t find the proper CD ID in the catalogue from the terminal). MusicBrainz is an amazing piece of software, and open to user contributions like wikipedia. Any gaps can be filled in by the user. Plus, it can grab cover art!
There are a number of configurations that I encourage people to look into, such as renaming files by metadata, and automatic sorting into a file-hirearchy. A number of problems can be encountered, but all of them are simple, and honestly easily solved by searching online.
For more information on setting up MusicBrainz, I recommend these guides:
The DVD ripping process
My software of choice here is HandBrake. I’ve been ripping a series of Bergmans, Kurosawa, and Satyajit Rays into my server using HandBrake for a few days, and have settled on a process. As I understand it, HandBrake has presets for configuring the system (cropping of black bars, level of quality, etc). The correct preset just has to be selected and start it. If the DVD has multiple files (trailers, commentaries, etc), make sure to select each one in the drop-down menu, decide what you want to name the file, add to queue, and repeat until everything is in the queue before starting. Further customization may be wanted, I often have to modify the audio to add an extra commentary option, or add subtitles for foriegn films, nothing too strenuos to do.
No real pre-customization is needed to use the software.
In the future
I have a couple of ideas for how I would improve this media server in the future. For one, this system limits audio output to mp3 360kbps. The HDD has flac, and I want to hear that through a couple of good speakers that I have. To do that, I need to hook the raspberry pi directly to the speakers, and have the music play from the raspberry pi.
Another improvement I need to make is a proper backup system. Both topics will be potentially problematic, and I’ll be sure to post my approach if I ever get to it.


Error Propagation: A basic introduction
Why it matters, how to do it, and an interactive example.
2016-01-17
This is the first article in a series I hope to continue through the year roughly covering the subjects I'm going over at the time. As: one, I'm pushing my borders on many of these subjects, and two, for much of it, these posts are the most contact with another person on the subject rather than a book or digital lecture, it's highly likely that you the reader may find a mistake or some aspect that I've overlooked.
Over the solstice holidays I visited home and picked up an interesting book at a trendy used book store that I've often found having a nice science section. It was Landmark Experiments in Twentieth Century Physics by George Trigg. In addition to getting a really neat peek at some of the challenges that experimentalists have faced and ingenuity that they've used, it's also driven home the importance of rigorously propagating errors through calculations. For example, the anomalous electron magnetic dipole moment would have been noticed nearly a decade earlier by Kinsler had he been more thorough assessing his errors and noticing that his results did measurably show it was not exactly two like the prevailing theory of the time said it must have been.
So what do we talk about when we're talking about error propagation? Rarely in research do we get to measure exactly the property of a system we're most interested in. Much more frequently we measure one or more properties, $X_1,X_2,...$ and then some other understanding of what we're working with allows us to piece together the property we were looking for in the beginning.
Say we have a sample of some strange element, and we have a detector with a decent clock on it at some known distance away from the sample, and set up an electric field of a known strength, and can reliably ionize the element so it has a charge +1 electron. This would let us calculate 1) the force on atoms of the sample, 2) the time of flight of the sample, and 3) how far they traveled. From that it's basic kinematics $x=\frac{A}{2}*t^2$. We could do some algebra and piece together what the mass of the element is. But! We don't have an exact measurement for the field strength, distance traveled or time it took! How can we trust our inferred mass measurement if none of direct measurements are exactly correct?
Now, during lunch or over drinks, you might be satisfied with the rough calculation and just assert you're within an order of magnitude. Or maybe even a factor of two if you're feeling cheeky. Maybe it's a calculation for an assignment that requires you put error bars on it and you're particularly weary that day, so you slap a $\pm 10 \%$ on it and hope for partial credit. But in reality, the engineers will cry out, "even with our most inventive designs, we only have 5% tolerances on the mass of this compound! Is it still going to work?", and the nuclear physicists remark, "If this element has isotopes, it might be a mass difference of only 1%, how can we make any conclusions with such shoddy work?" and as you continue on to use this value in other calculations eventually the more precise you make this measurement the more you open up as options with it.
First lets distinguish relative error from absolute error. If I measure how tall a red wood is, and find it to be 100 meters tall, but because of the way the wind is swaying it around I'm not quite sure about that last meter we might say there is an absolute error of 1 meter. And if I'm visiting my friend and am astounded by their leonberger and insist on measuring how tall it is, and find it to be a meter, but am not quite sure of the last centimeter because it's furr is so fluffy we would say there is an absolute error of .01 meters. Now while these are very different levels of precision, the relative errors are the same, because both end up as 1% of the conclusion we made about the thing being measured. Absolute error of some measurement X is often denoted as $\Delta X$ or $\sigma_X$.
So let's break down our experiment. we're going to work with $x=\frac{A}{2}*t^2$ and try to find the mass of an atom.  Because we've cleverly arranged our experiment to have a constant electric field over the entire apparatus and nothing else is happening and the atoms are all singly ionized, our force is just $E*q$, so given these expressions we can set up our final function for mass as $m=\frac{q}{2}\frac{E}{x}*t^2$.
On to our measurement errors. We're gonna treat the $\frac{q}{2}$ as an exactly known quantity of 0.8011E-19 coulombs and not propagate the uncertainty in that measurement because we know that value out to a huge number of digits. Our ruler is accurate down the milimeter, or $\sigma_x=.001$ meters. Our electric field is a bit harder to measure and we have an absolute error of $\sigma_E=.1$ volts per meter. And we're pretty chuffed about our timer, it's accurate down to 10 microseconds, or $\sigma_t=.00001=1E-5$ gotta be good enough for us, right?
So what do we actually end up measuring? a travel distance of 2 meters, a field strength of 10 volts per meter and a travel time of 8.7E-4 seconds. Throwing this into the expression we got earlier, we have a final value of about 3.0314E-25, or if we divide through by the atomic mass unit, which is about one nucleon, we get 182.5, Hooray, the calculator has given us numbers, it says we could totally tell isotopes apart! But how do we calculate the error due to our rough measurements?
This is where the math kicks in. In reality our measurement errors trickle over each other and complicate things, but we're going to assume that each measurement is slightly wrong for completely independent reasons. For example, the fact that our ruler only measured down to millimeters really doesn't have any impact on our stop watch only going down to the tenths of milliseconds. The general form for calculating the error in a function $F(x,y,...)$ is $\sigma_F=\sqrt{(\frac{df}{dx}*\sigma_x)^2+(\frac{df}{dy}*\sigma_y)^2+...}$ until you've accounted for all your all variables. Lets get down to some partial derivatives then!
Derivative with respect to field, $\frac{dm}{dE} = \frac{q}{2}\frac{1}{x}*t^2$ time of flight, $\frac{dm}{dt} = q\frac{E}{x}*t$ and distance traveled, $\frac{dm}{dx} = \frac{-q}{2}\frac{E}{x^2}*t^2$. Just looking at this we infer that if we wanted to try and cut down errors we might explore setting it up so that our time of flight is smaller, or our vacuum chamber were longer. But what's our final calculation come out to? Evaluating these partial derivatives at our measured values and calculating our error in mass we get around 7.61E-27 kg, or, in amu, 4.58. Oh, dear. that's alarming. So that means according to our measurements we can say with confidence the element we're working with weights $182\pm4 amu$. We can't really be confident of any decimal places, because our errors wash them out. This large of an error also means we have no idea if this element has any isotopes either, I chose tungsten as our mystery compound which has isotopes that weigh from 180 amu to 186, so our measurements definitely leave something to be desired.


LED Lighting now comes in all shapes and sizes to cover nearly every application. No longer a niche product, LED lighting stands alone as the top dog in energy saving lighting options.With hundreds of LED retrofits under our collective belts (including highly specialized projects), consider the Lee Energy team your energy-efficient LED expert. We offer everything from lighting design services for customized solutions to standard retrofits and LED re-lamping
Controls turn off or “turn down” lighting and other equipment when it is not needed, resulting in additional savings. Controls are an important part of energy-efficient lighting solutions. Timers, dusk-to-dawn sensors, occupancy sensors, dimmers, and “daylight harvesting” controls assure that lighting is available when needed, but turned off, or dimmed, when it’s not. Lee Energy can help you select the right controls to reduce lighting energy consumption by 10-40% or more.
Refrigerated cases are a major energy user for many retailers. Since lighting in these cases consumes energy, and adds heat load to the refrigeration system, LEDs make sense, since they give off less heat. Lee Energy offers a variety of energy-saving retrofits for refrigerated cases including:Sloan LED Cold Door reach-in case lighting, DigiLite Open case lighting, Efficient EC evaporator fan motors, Anti-Sweat Heater Controls for reach-in case doors and frames.


There is a IntelliJ
plugin adding a project wizard for Ktor projects.
Using the plugin
Like this website, the plugin allows you to create a Ktor project, but with the
additional convenience of being fully integrated in the IDE and automatically setting up
the project.
Creating a new project a Ktor
section will appear:
-
In a first step, you can configure the project to generate and select features to
install:
-
In a second step, you can configure the project artifacts:
Installing the plugin
You can get the plugin from:
- Plugin Website: https://plugins.jetbrains.com/plugin/10823-ktor
- Inside IntelliJ:
IntelliJ IDEA
→ Preferences...
→ Plugins
→ Install JetBrains Plugin...
→ Ktor
→
Install
- IntelliJ Welcome Screen:
Configure
→ Plugins
→ Install
JetBrains Plugin...
→ Ktor
→ Install


Portfolio page
Toggle navigation
Gita
Home
About
Portfolio
Contact
Website Design Studio
Facebook
Github
Linked in
Twitter
We build websites that deliver business results.
We’re a New Zealand company, which means many of our
clients have small budgets by world standards.
And that means we have to think.
Our Works
Project1
Project2
Project3
Connect with us through<EMAIL_ADDRESS>Facebook
Github
Linked in
Twitter


{{Infobox prepared food | name = Chancaca | image = | caption = Central Chilean sopaipillas with and without chancaca sauce | alternate_name = | country = Bolivia, Chile, and Peru | region = | creator = | course = | type = Dessert topping | served = | main_ingredient = Sugar, honey; usually zest of orange | variations = | calories = | other = }}
Chancaca is a typical Peruvian, Bolivian, and Chilean sweet sauce made of raw unrefined sugar from sugar cane. It is often flavored with orange peel and is consumed on sopaipillas or picarones.
Chancaca is also a synonym for piloncillo, the unrefined sugar used to make chancaca syrup.<ref>{{cite web |title=Chancaca |url=http://rickcooks.com/ingredients/chancaca.htm |accessdate=27 March 2013}}</ref>
In Colombia, chancacas are a traditional coconut candy.
{{reflist}}
{{Dessert sauces}}
{{chile-cuisine-stub}} {{ingredient-stub}} {{peru-cuisine-stub}}


Stanford Linguistics
In this experiment, you will hear 11 words. For each word, please indicate what you heard using the buttons below the word. Please pay attention, thanks!
Please listen to the following audio clip.
{}
On the following pages, you will see a phrase and several translations for this phrase.
Please select the translation that you think the speaker would have used. You might have heard some of the phrases on the previous pages but some of them will be new phrases. For the new ones, simply guess what you think the speaker would have said.
How do you think the speaker would say the following phrase?
{{}}
What's your name?
How old are you?
Please select your gender
Native Language:
Are you (or were you at some point in your life) frequently exposed to loud noises?
Thanks for your Time!


vignettes/introduction_to_fitting.Rmd
introduction_to_fitting.Rmd
The package will expect the data in a certain format, such as the following,
# maximum time
tmax <- 21
# number of outbreaks
n_outbreaks <- 2
# number of daily cases per outbreak
outbreak_cases <- matrix(c(1,0,0,0,0,1,5,2,6,5,10,11,13,11,9,4,2,6,0,3,1,
1,1,0,1,0,0,0,1,3,0,3,2,0,0,3,6,5,6,6,6,10
),ncol=2)
# number of susceptible individuals by location
outbreak_sizes <- c(100,100)
Parameterisation of the priors are kept in the list
prior_list
and can be updated shown below,
# define list of priors
new_prior_list <- cr0eso::prior_list
# update mean of r0 prior to be 2
new_prior_list$r0_mean <- 2
Fit model with no intervention and updated priors (for speed we only fit one chain but multiple should be sampled),
# load stan model
stan_mod <- rstan::stan_model(system.file("stan", "hierarchical_SEIR_incidence_model.stan", package = "cr0eso"))
fit <- seir_model_fit(
stan_model = stan_mod,
tmax,n_outbreaks,outbreak_cases,outbreak_sizes,
intervention_switch = FALSE,
priors = new_prior_list,
chains = 1)
#>
#> SAMPLING FOR MODEL 'hierarchical_SEIR_incidence_model' NOW (CHAIN 1).
#> Chain 1:
#> Chain 1: Gradient evaluation took 0.001 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 10 seconds.
#> Chain 1: Adjust your expectations accordingly!
#> Chain 1:
#> Chain 1:
#> Chain 1: Iteration: 1 / 600 [ 0%] (Warmup)
#> Chain 1: Iteration: 60 / 600 [ 10%] (Warmup)
#> Chain 1: Iteration: 120 / 600 [ 20%] (Warmup)
#> Chain 1: Iteration: 180 / 600 [ 30%] (Warmup)
#> Chain 1: Iteration: 240 / 600 [ 40%] (Warmup)
#> Chain 1: Iteration: 300 / 600 [ 50%] (Warmup)
#> Chain 1: Iteration: 301 / 600 [ 50%] (Sampling)
#> Chain 1: Iteration: 360 / 600 [ 60%] (Sampling)
#> Chain 1: Iteration: 420 / 600 [ 70%] (Sampling)
#> Chain 1: Iteration: 480 / 600 [ 80%] (Sampling)
#> Chain 1: Iteration: 540 / 600 [ 90%] (Sampling)
#> Chain 1: Iteration: 600 / 600 [100%] (Sampling)
#> Chain 1:
#> Chain 1: Elapsed Time: 6.602 seconds (Warm-up)
#> Chain 1: 3.623 seconds (Sampling)
#> Chain 1: 10.225 seconds (Total)
#> Chain 1:
#> Warning: The largest R-hat is NA, indicating chains have not mixed.
#> Running the chains for more iterations may help. See
#> http://mc-stan.org/misc/warnings.html#r-hat
#> Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
#> Running the chains for more iterations may help. See
#> http://mc-stan.org/misc/warnings.html#bulk-ess
#> Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable.
#> Running the chains for more iterations may help. See
#> http://mc-stan.org/misc/warnings.html#tail-ess
# Extract the posterior samples to a structured list:
posts <- rstan::extract(fit$model)
extracted_posts <- hom_extract_posterior_draws(posts) # get object of incidence and zeta
#> Warning: The `x` argument of `as_tibble.matrix()` must have unique column names if `.name_repair` is omitted as of tibble 2.0.0.
#> Using compatibility `.name_repair`.
#> Warning in rpois(dplyr::n(), incidence): NAs produced
result <- hom_plot_r0_by_location(extracted_posts=extracted_posts)
#> Warning: Ignoring unknown parameters: fun.y
# plot results
result$plot
#> No summary function supplied, defaulting to `mean_se()`
extracted_posts <- hom_extract_posterior_draws(posts) # get object of incidence and r0
#> Warning in rpois(dplyr::n(), incidence): NAs produced
result <- hom_plot_incidence_by_location(extracted_posts=extracted_posts,
outbreak_cases = outbreak_cases)
# plot results
result$plot
#> Warning: Removed 2 row(s) containing missing values (geom_path).
The code below extracts and plots the counterfactual scenario and also provides a summary table of cases by location in the baseline, scenario, where there was no intervention and the difference and proportional difference representing the cases averted. The final row provides a total summary of cases.
result <- hom_plot_counterfactual_by_location(fit,
outbreak_cases = outbreak_cases)
# plot results
show(result$plot)
# show table of results
result$table
#> # A tibble: 3 x 5
#> location baseline counterfactual averted proportion_aver~
#> <chr> <glue> <glue> <glue> <glue>
#> 1 1 87.5 (68 - 103.05) 85 (69 - 104) -1.5 (-24 - 21.05) -0.02 (-0.33 - ~
#> 2 2 51.5 (38 - 68) 52 (40.95 - 67) 0 (-17 - 17.05) 0 (-0.38 - 0.28)
#> 3 total 139 (114 - 163) 137 (117 - 162.05) -3 (-29.05 - 26.05) -0.02 (-0.23 - ~
The code below takes the output of seir_model_fit
and
creates a table of \(R_0\) and
intervention strength \(\zeta\)
summaries by location as well as a total representing the predictive
distribution. Also included is a critical time column, which is the
estimated time from the outbreak to where the effective R is below one.
The function also allows for adding more than one model to compare the
outputs, for example comparing a model with intervention to one with no
intervention assumed.
create_pub_tables(model1 = fit) %>%
knitr::kable()
| location | r0 model1 | zeta model1 | critical_time model1 |
|---|---|---|---|
| 2 | 4.13 (3.3 - 5.02) | 0.55 (0.13 - 1.95) | 2.62 (0.69 - 10.79) |
| 1 | 8.56 (6.83 - 10.99) | 0.47 (0.11 - 1.82) | 4.43 (1.18 - 20.18) |
| Total | 5.65 (3.47 - 10.3) | 0.51 (0.11 - 1.94) | 3.23 (0.81 - 18.56) |


If you haven't installed OpenCV yet, please do so byfollowing the instructions below.
The installation of OpenCV varies betweenoperating systems, so below Iam providing instructions for Windows, Mac, and Linux:
1.Open the command line and type:
pip install opencv-python
2.Then open a Python session and try:
import cv2
3.If you get no errors, then OpenCV has been successfully installed and you can skip the next steps.
4.If there is an error (usually saying that DLL load failed) then please download a precompiled wheel (.whl) file fromthis linkand install it with pip. Make sure you downloadthe correct file for your Windows version and your Python version. For example, forPython 3.6 onWindows 64-bit you would do this:
pip install opencv_python3.2.0cp36cp36mwin_amd64.whl
5.Then try to import cv2 in Python again. If there's still an error, then please type the following again in the command line:
pip install opencv-python
6.Now you should successfully importcv2 in Python.
Currently some functionalities of OpenCV are not supported for Python 3 on Mac OS, so it's best to install OpenCV for Python 2and use Python 2 to run the programsthat containscv2 code. Its' worth mentioning that Python 2 is installed by default on Mac, so no need to install Python 2. Here are the steps to correctly install OpenCV:
1. Install brew:
Open your terminal and paste the following:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. OpenCV depends on GTK+, so please install that dependencyfirst with brew (always from the terminal):
brew install gtk+
3. Install OpenCV with brew:
brew install opencv
4. Open Python 2 by typing:
python
5. Import cv2 in Python:
import cv2
If you get no errors, that means OpenCV has been successfully installed.
1.Please open your terminal and execute the following commands one by one:
sudo apt-get install libqt4-dev cmake -D WITH_QT=ON .. make sudo make install
2.If that doesn't work, please execute this:
sudo apt-get install libopencv-*
3.Then install OpenCV with pip:
pip install opencv-python
4. Import cv2 in Python.If there are no errors, OpenCVhas been successfully installed.


Improve this Doc
Lists are used to display information, such as contact lists, playlists, etc. Lists generally include multiple `ion-item` components that contain content, such as formatted HTML, text, and icons. `ion-list` and `ion-item` are similar to the standard HTML `
` (unordered list) and `
` (list item) elements, but also offer additional mobile platform styling and performance optimizations for scrolling and touch events.
Note that lists that require tappable items should use buttons with the `ion-item` attribute (`


4Castr Wheather Forcasting App
Search
Current Weather
5-Day Forecast
Card title
Card title
Card title
Card title
Card title


Boquete Jazz & Blues Festival
TICKETS
Festival 2018
Line Up
Program
Promo Events
Sponsors
Festival Merchandise
Info
The Festival Venue
Festival Rules
Getting There
Lodging
Panama Quick Facts
Boquete Weather
What To See & Do
Music for Schools
About Us
The Foundation
Artist Submissions
Sponsorships
Contact Us
Visitor Survey
Newsletter Archive
Privacy Policy
Blog
QUICK FACTS
Quick Facts About Panama
Just a few quick facts about the wonderful country of Panama:
Panama is a very small country with just 3.5 million people, 1.3 million of whom are living in the greater Panama City area.
National language is Spanish but a lot of people in Panama City and the more touristic areas speak at least some English (after all, there were thousands of US-citizens living here in the canal zone and elsewhere for more than 100 years!)
Panamanians generally are very friendly, helpful, welcoming people. They don't avoid eye contact with strangers and reward any friendly "Buenos dias" or "Buenas tardes" with a wave and a big smile.
The national currency is the Balboa but all banknotes are US$. Balboas exist only as coins, side by side with US $ coins. No currency risk for US citizens, and great bargains for European visitors from the Euro-zone!
General cost of living (except for luxury goods or technical equipment) is about 30% lower than in the US or Europe.
Credit or debit cards are widely accepted in touristic areas. In smaller places and rural areas you need cash (which is called 'effectivo' here). ATM's can be found at all banks, airports and some shopping centers. Don't bring traveler cheques.
Although violent crime is generally quite rare in Panama it is advisable to use caution and not wander off alone into unknown areas, especially at night. Petty crime like theft of valuables is more common (after all, this is a poor country). So, please use common sense and be cautious not to flash your cash or expensive jewelry, cameras etc. in front of people you don't know.


Mentor On Demand
Home
Search Trainings
(current)
Current Trainings
Completed Trainings
Payments
Mentor Profile
Notifications
4
Logout
Select Domain
Front-end
Back-end
DevOps
Amazon AWS
Mobile App Development
Web App Development
Search
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★
Alice Fox
✔ Available
Skills
Java, Angular, JavaScript, React, Vue, Flutter
No. of Trainings
23
Experience
2 Years
Work Timings
9 AM - 6 PM
Rating
4.6 ★


Channel selection
Master volume
test
Left
Right
Balance
Equalizer
Test slider
Debug
Channel:
Balance:
Master_L:
Master_R:
Low:
Mid:
High:
Gain:
Test slider:


Firebug activation - Page without Firebug
Page with Firebug
Steps to reproduce
Open the link above in a new tab and switch to it
Switch back to the other tab (
Firebug activation - Page with Firebug
)
⇒ The Firebug UI should be visible there.


Some of the functionality, therefore, is missing. I try to indicate where this is the case.
The application itself is designed for desktop and ipad, but the demo contains elements that are only visible on desktop-sized screens (>1110px)


miscellaneous
This page contains a list of resources that I have found particularly useful and helpful during my academic career, including tools that I recommend to my students, as well as a few interesting talks, podcasts, and texts related to my hobbies.
tools
The list includes various engineering tools that are useful or even necessary when working on a thesis or a research project.
-
valgrind - the most standard and useful tool for debugging memory errors and bugs on Linux.
-
ccache - speed up compilation of C/C++ programs.
meta
-
You and Your Research by Richard Hamming, a must-watch for PhDs, researchers, and engineers.
-
Scientific Benchmarking of Parallel Computing Systems: twelve ways to tell the masses when reporting performance results - the “art of the scientific benchmarking” paper by Prof. Hoefler, covering the most important aspects of gathering and interpreting measurements data on computing systems.
-
The Science of Scientific Writing by George D. Gopen and Judith A. Swan, a short and very useful paper on writing papers.
-
How to Write a Great Research Paper great talk by Simon Peyton Jones with many helpful recommendations and tips. The most important lesson from this talk: practice paper-driven research by beginning with a paper draft, as explaining the idea helps to find key challenges and weaknesses and quickly identify which ideas are worth working on.
-
How to Give a Great Research Talk another great talk by Simon Peyton Jones. The most important lesson from this talk: focus on one key message, present it very deeply and with many details, use examples to drive the narrative, and omit other details from the paper. The audience should remember the one major contribution of your work.
- Leslie Lamport on Writing Papers
- what is the most important reason to write a paper? “You have done something that you are excited about”. Don’t include jokes in papers, don’t submit papers because conference deadline is approaching and you want to be there, bad thinking cannot lead to good writing. Use formulas and solid examples to present the ideas, instead of long and verbose descriptions in plain English.
history
-
(Podcast) The History of Rome - an excellent podcast covering the entire history of ancient Rome in almost 180 episodes.
-
(Text) Why the Classics - a poem by Zbigniew Herbert, a famous Polish poet who has been exploring classic authors and mythology extensively in his works.
-
(Video, PL) Początki narodu polskiego..? - a lecture on the beginnings of the Polish nation by Prof. Henryk Samsonowicz, one of the most accomplished Polish historians.
-
(Video) (EN) Napoleon the Great? - a debate on the legacy of Napoleon Bonaparte between Andrew Roberts and Adam Zamoyski.
-
(Video) [Barbarossa] The Major Errors and Blunders - Or why Barbarossa Failed The WWII and Eastern Front have been extensively exploited by the pop culture, spreading many myths and half-truths. This video by the Military History Visualized, a YouTube channel created by a German historian, covers the usually ignored problems of logistics and intelligence, providing a high-level overview of the Barbarossa campaign and its ultimate collapse.
-
(Book) Ring of Steel - major and popular history books on world wars tend to focus on the perspectives of Allied powers. Instead, this book provides a very wide and in-depth analysis of the German and Austria-Hungary empires before and during the First World War, covering the geopolitical, ethnic, economic, and agricultural situations of both countries. A highly recommended read to learn the other perspective on the Great War.