Login
You have to be logged in to view this page
Make sure that you either have an account on CycLove or are logged in.
Login
Create account


All methods and properties listed on this page are public. If you want to take a look at example of what API can do, take a look in source of default PhotoSwipe UI.
You can get PhotoSwipe instance object during the initialization, e.g.:
var photoswipeInstance = new PhotoSwipe( /* ... */ );
var pswp = new PhotoSwipe( /* ... */ );
// Initialize and open gallery
// (you can bind events before this method)
pswp.init();
// Go to slide by index
// @param {int} `index`
pswp.goTo(index);
// Go to the next slide
pswp.next();
// Go to the previous slide
pswp.prev();
// Update gallery size
// @param {boolean} `force` If you set it to `true`,
// size of the gallery will be updated
// even if viewport size hasn't changed.
pswp.updateSize(force);
// Close gallery
pswp.close();
// Destroy gallery,
// automatically called after close()
pswp.destroy()
// Zoom current slide to (optionally with animation)
// @param {number} `destZoomLevel` Destination scale number. 1 - original.
// pswp.currItem.fitRatio - image will fit into viewport.
// @param {object} `centerPoint` Object of x and y coordinates, relative to viewport.
// @param {int} `speed` Animation duration. Can be 0.
// @param {function} `easingFn` Easing function (optional). Set to false to use default easing.
// @param {function} `updateFn` Function will be called on each update frame. (optional)
//
// Example below will 2x zoom to center of slide:
// pswp.zoomTo(2, {x:pswp.viewportSize.x/2,y:pswp.viewportSize.y/2}, 2000, false, function(now) {
//
// });
pswp.zoomTo(destZoomLevel, centerPoint, speed, easingFn, updateFn);
// Apply zoom and pan to the current slide
//
// @param {number} `zoomLevel`
// @param {int} `panX`
// @param {int} `panY`
//
// For example: `pswp.applyZoomPan(1, 0, 0)`
// will zoom current image to the original size
// and will place it on top left corner
//
//
pswp.applyZoomPan(zoomLevel, panX, panY);
// current slide object
pswp.currItem
// items array (slides, images)
pswp.items
// size of sliding viewport
pswp.viewportSize
// object holds all functions from framework
// framework-bridge.js
pswp.framework
// UI object (e.g. PhotoSwipeUI_Default instance)
pswp.ui
// background element (pswp__bg)
pswp.bg
// container element (pswp__container)
pswp.container
// options
pswp.options
// Even though methods below aren't technically properties, we list them here:
// current item index (int)
pswp.getCurrentIndex();
// total number of items
pswp.options.getNumItemsFn()
// current zoom level (number)
pswp.getZoomLevel();
// one (or more) pointer is used
pswp.isDragging();
// two (or more) pointers are used
pswp.isZooming();
// `true` when transition between is running (after swipe)
pswp.isMainScrollAnimating();
PhotoSwipe uses very simple Event/Messaging system. It has two methods shout
(triggers event) and listen
(handles event). For now there is no method to unbind listener, but all of them are cleared when PhotoSwipe is closed.
var pswp = new PhotoSwipe(/* ... */);
// Listen for "helloWorld" event
pswp.listen('helloWorld', function(name) {
alert('Name is: ' + name);
});
// Trigger "helloWorld" event
pswp.shout('helloWorld', 'John' /* you may pass more arguments */);
Available events:
// Before slides change
// (before the content is changed, but after navigation)
// Update UI here (like "1 of X" indicator)
pswp.listen('beforeChange', function() { });
// After slides change
// (after content changed)
pswp.listen('afterChange', function() { });
// Image loaded
pswp.listen('imageLoadComplete', function(index, item) {
// index - index of a slide that was loaded
// item - slide object
});
// Viewport size changed
pswp.listen('resize', function() { });
// Triggers when PhotoSwipe "reads" slide object data,
// which happens before content is set, or before lazy-loading is initiated.
// Use it to dynamically change properties
pswp.listen('gettingData', function(index, item) {
// index - index of a slide that was loaded
// item - slide object
// e.g. change path to the image based on `something`
if( something ) {
item.src = item.something;
} else {
item.src = item.somethingElse;
}
});
// Mouse was used (triggers only once)
pswp.listen('mouseUsed', function() { });
// Opening zoom in animation starting
pswp.listen('initialZoomIn', function() { });
// Opening zoom in animation finished
pswp.listen('initialZoomInEnd', function() { });
// Closing zoom out animation started
pswp.listen('initialZoomOut', function() { });
// Closing zoom out animation finished
pswp.listen('initialZoomOutEnd', function() { });
// Allows overriding vertical margin for individual items
pswp.listen('parseVerticalMargin', function(item) {
// For example:
var gap = item.vGap;
gap.top = 50; // There will be 50px gap from top of viewport
gap.bottom = 100; // and 100px gap from the bottom
})
// Gallery starts closing
pswp.listen('close', function() { });
// Gallery unbinds events
// (triggers before closing animation)
pswp.listen('unbindEvents', function() { });
// After gallery is closed and closing animation finished.
// Clean up your stuff here.
pswp.listen('destroy', function() { });
// Called when the page scrolls.
// The callback is passed an offset with properties {x: number, y: number}.
//
// PhotoSwipe uses the offset to determine the top-left of the template,
// which by default is the top-left of the viewport. When using modal: false,
// you should listen to this event (before calling .init()) and modify the offset
// with the template's getBoundingClientRect().
//
// Look at the "Implementing inline gallery display" FAQ section for more info.
pswp.listen('updateScrollOffset', function(_offset) {
var r = gallery.template.getBoundingClientRect();
_offset.x += r.left;
_offset.y += r.top;
});
// PhotoSwipe has a special event called pswpTap.
// It's dispatched using default JavaScript event model.
// So you can, for example, call stopPropagation on it.
// pswp.framework.bind - is a shorthand for addEventListener
pswp.framework.bind( pswp.scrollWrap /* bind on any element of gallery */, 'pswpTap', function(e) {
console.log('tap', e, e.detail);
// e.detail.origEvent // original event that finished tap (e.g. mouseup or touchend)
// e.detail.target // e.target of original event
// e.detail.releasePoint // object with x/y coordinates of tap
// e.detail.pointerType // mouse, touch, or pen
});
// Allow to call preventDefault on down and up events
pswp.listen('preventDragEvent', function(e, isDown, preventObj) {
// e - original event
// isDown - true = drag start, false = drag release
// Line below will force e.preventDefault() on:
// touchstart/mousedown/pointerdown events
// as well as on:
// touchend/mouseup/pointerup events
preventObj.prevent = true;
});
// Default UI events
// -------------------------
// Share link clicked
pswp.listen('shareLinkClick', function(e, target) {
// e - original click event
// target - link that was clicked
// If `target` has `href` attribute and
// does not have `download` attribute -
// share modal window will popup
});
To add, edit, or remove slides after PhotoSwipe is opened, you just need to modify the items
array. For example, you can push new slide objects into the items
array:
pswp.items.push({
src: "path/to/image.jpg",
w:1200,
h:500
});
If you changed slide that is CURRENT, NEXT or PREVIOUS (which you should try to avoid) – you need to call method that will update their content:
// sets a flag that slides should be updated
pswp.invalidateCurrItems();
// updates the content of slides
pswp.updateSize(true);
Otherwise, you don’t need to do anything else. Except, maybe, calling pswp.ui.update()
if you want some parts of default UI to update (e.g. “1 of X” counter). Also note:
splice
to remove elements).goTo
method before.Some method or property is missing? Found a grammatical mistake? Know how this page can be improved? Please suggest an edit!


The Five Commitment Questions
1. Are you a sinner??
2. Do you want forgiveness of sins?
3. Do you believe Jesus Christ died on the cross for you and rose again?
4. Are you willing to surrender your life to Jesus Christ?
5.
The Sinners Prayer


MDLUser Class Reference
| Inherits from | NSObject |
| Declared in | MDLUser.h |
Tasks
-
name
The user name.
property -
academicStatus
The user academic status.
property -
academicStatusIdentifier
The user academic status identifier.
property -
bio
The user bio.
property -
category
The user category.
property -
location
The user location.
property -
photoURL
The user pohoto URL.
property -
identifier
The user identifier, as generated by Mendeley.
property -
researchInterests
The user research interests.
property -
mendeleyURL
The user Mendeley URL.
property -
+ userWithIdentifier:name:
Creates a
MDLUser
and initializes its identifier and name properties. -
+ fetchMyUserProfileSuccess:failure:
Sends a profile information API request using the shared client and fetches the response as a
MDLUser
. -
+ fetchContactsSuccess:failure:
Sends a contacts API request using the shared client and fetches the response as an array of
MDLUser
. -
– fetchProfileSuccess:failure:
Sends a profile information API request using the shared client and fetches the response as a
MDLUser
. -
– sendContactRequestSuccess:failure:
Sends an add contact API request using the shared client.
Properties
academicStatus
The user academic status.
@property (copy, nonatomic) NSString *academicStatus
Discussion
The user academic status.
Declared In
MDLUser.h
academicStatusIdentifier
The user academic status identifier.
@property (copy, nonatomic) NSString *academicStatusIdentifier
Discussion
The user academic status identifier.
Declared In
MDLUser.h
bio
The user bio.
@property (copy, nonatomic) NSString *bio
Discussion
The user bio.
Declared In
MDLUser.h
category
The user category.
@property (strong, nonatomic) MDLCategory *category
Discussion
The user category.
Declared In
MDLUser.h
identifier
The user identifier, as generated by Mendeley.
@property (copy, nonatomic) NSString *identifier
Discussion
The user identifier, as generated by Mendeley.
Declared In
MDLUser.h
location
The user location.
@property (copy, nonatomic) NSString *location
Discussion
The user location.
Declared In
MDLUser.h
mendeleyURL
The user Mendeley URL.
@property (strong, nonatomic) NSURL *mendeleyURL
Discussion
The user Mendeley URL.
Declared In
MDLUser.h
name
The user name.
@property (copy, nonatomic) NSString *name
Discussion
The user name.
Declared In
MDLUser.h
Class Methods
fetchContactsSuccess:failure:
Sends a contacts API request using the shared client and fetches the response as an array of MDLUser
.
+ (void)fetchContactsSuccess:(void ( ^ ) ( NSArray *))success failure:(void ( ^ ) ( NSError *))failure
Parameters
- success
A block object to be executed when the request operation finishes successfully. This block has no return value and takes one argument: an array of
MDLUser
objects.
- failure
A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the resonse data. This block has no return value and takes one argument: the
NSError
object describing the network or parsing error that occurred.
Discussion
Sends a contacts API request using the shared client and fetches the response as an array of MDLUser
.
Declared In
MDLUser.h
fetchMyUserProfileSuccess:failure:
Sends a profile information API request using the shared client and fetches the response as a MDLUser
.
+ (void)fetchMyUserProfileSuccess:(void ( ^ ) ( MDLUser *))success failure:(void ( ^ ) ( NSError *))failure
Parameters
- success
A block object to be executed when the request operation finishes successfully. This block has no return value and takes one argument: a
MDLUser
object.
- failure
A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the resonse data. This block has no return value and takes one argument: the
NSError
object describing the network or parsing error that occurred.
Discussion
Sends a profile information API request using the shared client and fetches the response as a MDLUser
.
Declared In
MDLUser.h
userWithIdentifier:name:
Creates a MDLUser
and initializes its identifier and name properties.
+ (MDLUser *)userWithIdentifier:(NSString *)identifier name:(NSString *)name
Return Value
The newly-initialized user.
Discussion
Creates a MDLUser
and initializes its identifier and name properties.
Declared In
MDLUser.h
Instance Methods
fetchProfileSuccess:failure:
Sends a profile information API request using the shared client and fetches the response as a MDLUser
.
- (void)fetchProfileSuccess:(void ( ^ ) ( MDLUser *))success failure:(void ( ^ ) ( NSError *))failure
Parameters
- success
A block object to be executed when the request operation finishes successfully. This block has no return value and takes one argument: a
MDLUser
object.
- failure
A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the resonse data. This block has no return value and takes one argument: the
NSError
object describing the network or parsing error that occurred.
Discussion
Sends a profile information API request using the shared client and fetches the response as a MDLUser
.
Declared In
MDLUser.h
sendContactRequestSuccess:failure:
Sends an add contact API request using the shared client.
- (void)sendContactRequestSuccess:(void ( ^ ) ( ))success failure:(void ( ^ ) ( NSError *))failure
Parameters
- success
A block object to be executed when the request operation finishes successfully. This block has no return value and takes no argument.
- failure
A block object to be executed when the request operation finishes unsuccessfully, or that finishes successfully, but encountered an error while parsing the resonse data. This block has no return value and takes one argument: the
NSError
object describing the network or parsing error that occurred.
Discussion
Sends an add contact API request using the shared client.
Declared In
MDLUser.h


@fragments.trailblocks.section(trails, numWithImages = 3, numItemsVisible = trails.size)
@(section: Section, trails: Seq[Trail])(implicit request: RequestHeader)
@fragments.trailblocks.section(trails, numWithImages = 3, numItemsVisible = trails.size)


Draw (color in) custom polyominos below or add standard tetrominos
Click to add standard tetrominos:
Polyominos to be fit show up here (click to remove)
Draw (color in) the region to fit the polyominos into
Algorithm X / Dancing Links (best)
SAT (JavaScript SAT Solver)
SAT (Z3 Webassembly build)
NO SOLUTION


Wed Dec 28, 2011
Well folks, this Wordpress blog has officially reached its end. But all the content remains and all broken links have been fixed. And now for the good news. The blogging continues over at wordbit.com where I’ve moved to the Tumblr platform. Thanks for reading!


math::calculus - Integration and ordinary differential equations
This package implements several simple mathematical algorithms:
The integration of a function over an interval
The numerical integration of a system of ordinary differential equations.
Estimating the root(s) of an equation of one variable.
The package is fully implemented in Tcl. No particular attention has been paid to the accuracy of the calculations. Instead, well-known algorithms have been used in a straightforward manner.
This document describes the procedures and explains their usage.
This package defines the following public procedures:
Determine the integral of the given function using the Simpson rule. The interval for the integration is [begin, end]. The remaining arguments are:
Number of steps in which the interval is divided.
Function to be integrated. It should take one single argument.
Similar to the previous proc, this one determines the integral of the given expression using the Simpson rule. The interval for the integration is [begin, end]. The remaining arguments are:
Number of steps in which the interval is divided.
Expression to be integrated. It should use the variable "x" as the only variable (the "integrate")
The commands integral2D and integral2D_accurate calculate the integral of a function of two variables over the rectangle given by the first two arguments, each a list of three items, the start and stop interval for the variable and the number of steps.
The command integral2D evaluates the function at the centre of each rectangle, whereas the command integral2D_accurate uses a four-point quadrature formula. This results in an exact integration of polynomials of third degree or less.
The function must take two arguments and return the function value.
The commands integral3D and integral3D_accurate are the three-dimensional equivalent of integral2D and integral3D_accurate. The function func takes three arguments and is integrated over the block in 3D space given by three intervals.
Determine the integral of the given function using the Gauss-Kronrod 15 points quadrature rule. The returned value is the estimate of the integral over the interval [xstart, xend]. The remaining arguments are:
Function to be integrated. It should take one single argument.
Number of steps in which the interval is divided. Defaults to 1.
Determine the integral of the given function using the Gauss-Kronrod 15 points quadrature rule. The interval for the integration is [xstart, xend]. The procedure returns a list of four values:
The estimate of the integral over the specified interval (I).
An estimate of the absolute error in I.
The estimate of the integral of the absolute value of the function over the interval.
The estimate of the integral of the absolute value of the function minus its mean over the interval.
The remaining arguments are:
Function to be integrated. It should take one single argument.
Number of steps in which the interval is divided. Defaults to 1.
Set a single step in the numerical integration of a system of differential equations. The method used is Euler's.
Value of the independent variable (typically time) at the beginning of the step.
Step size for the independent variable.
List (vector) of dependent values
Function of t and the dependent values, returning a list of the derivatives of the dependent values. (The lengths of xvec and the return value of "func" must match).
Set a single step in the numerical integration of a system of differential equations. The method used is Heun's.
Value of the independent variable (typically time) at the beginning of the step.
Step size for the independent variable.
List (vector) of dependent values
Function of t and the dependent values, returning a list of the derivatives of the dependent values. (The lengths of xvec and the return value of "func" must match).
Set a single step in the numerical integration of a system of differential equations. The method used is Runge-Kutta 4th order.
Value of the independent variable (typically time) at the beginning of the step.
Step size for the independent variable.
List (vector) of dependent values
Function of t and the dependent values, returning a list of the derivatives of the dependent values. (The lengths of xvec and the return value of "func" must match).
Solve a second order linear differential equation with boundary values at two sides. The equation has to be of the form (the "conservative" form):
d dy d -- A(x)-- + -- B(x)y + C(x)y = D(x) dx dx dx
Ordinarily, such an equation would be written as:
d2y dy a(x)--- + b(x)-- + c(x) y = D(x) dx2 dx
The first form is easier to discretise (by integrating over a finite volume) than the second form. The relation between the two forms is fairly straightforward:
A(x) = a(x) B(x) = b(x) - a'(x) C(x) = c(x) - B'(x) = c(x) - b'(x) + a''(x)
Because of the differentiation, however, it is much easier to ask the user to provide the functions A, B and C directly.
Procedure returning the three coefficients (A, B, C) of the equation, taking as its one argument the x-coordinate.
Procedure returning the right-hand side (D) as a function of the x-coordinate.
A list of two values: the x-coordinate of the left boundary and the value at that boundary.
A list of two values: the x-coordinate of the right boundary and the value at that boundary.
Number of steps by which to discretise the interval. The procedure returns a list of x-coordinates and the approximated values of the solution.
Solve a system of linear equations Ax = b with A a tridiagonal matrix. Returns the solution as a list.
List of values on the lower diagonal
List of values on the main diagonal
List of values on the upper diagonal
List of values on the righthand-side
Determine the root of an equation given by
func(x) = 0
using the method of Newton-Raphson. The procedure takes the following arguments:
Procedure that returns the value the function at x
Procedure that returns the derivative of the function at x
Initial value for x
Set the numerical parameters for the Newton-Raphson method:
Maximum number of iteration steps (defaults to 20)
Relative precision (defaults to 0.001)
Return an estimate of the zero or one of the zeros of the function contained in the interval [xb,xe]. The error in this estimate is of the order of eps*abs(xe-xb), the actual error may be slightly larger.
The method used is the so-called regula falsi or false position method. It is a straightforward implementation. The method is robust, but requires that the interval brackets a zero or at least an uneven number of zeros, so that the value of the function at the start has a different sign than the value at the end.
In contrast to Newton-Raphson there is no need for the computation of the function's derivative.
Name of the command that evaluates the function for which the zero is to be returned
Start of the interval in which the zero is supposed to lie
End of the interval
Relative allowed error (defaults to 1.0e-4)
Return an estimate of the zero or one of the zeros of the function contained in the interval [xb,xe]. The error in this estimate is of the order of eps*abs(xe-xb), the actual error may be slightly larger.
The method used is the so-called bisection. For properties: see the regula falsi procedure.
Name of the command that evaluates the function for which the zero is to be returned
Start of the interval in which the zero is supposed to lie
End of the interval
Relative allowed error (defaults to 1.0e-7)
Return an estimate of the zero or one of the zeros of the function contained in the interval [xb,xe]. The error in this estimate is of the order of eps*abs(xe-xb), the actual error may be slightly larger.
The method used is the so-called secant method. For properties: see the regula falsi procedure. Note that this method is not guaranteed to produce a zero, but it is fast.
Name of the command that evaluates the function for which the zero is to be returned
Start of the interval in which the zero is supposed to lie
End of the interval
Relative allowed error (defaults to 1.0e-7)
Return an estimate of the zero or one of the zeros of the function contained in the interval [xb,xe]. The error in this estimate is of the order of eps*abs(xe-xb), the actual error may be slightly larger.
The method used is the so-called Brent method. For properties: see the regula falsi procedure.
Name of the command that evaluates the function for which the zero is to be returned
Start of the interval in which the zero is supposed to lie
End of the interval
Relative allowed error (defaults to 1.0e-7)
Return an estimate of the zero or one of the zeros of the function contained in the interval [xb,xe]. The error in this estimate is of the order of eps*abs(xe-xb), the actual error may be slightly larger.
The method used is the so-called Chandrupatla method. It is a variant of the Brent method and is reputed to be faster. See https://www.embeddedrelated.com/showarticle/855.php for a discussion.
Name of the command that evaluates the function for which the zero is to be returned
Start of the interval in which the zero is supposed to lie
End of the interval
Relative allowed error (defaults to 1.0e-7)
Notes:
Several of the above procedures take the names of procedures as arguments. To avoid problems with the visibility of these procedures, the fully-qualified name of these procedures is determined inside the calculus routines. For the user this has only one consequence: the named procedure must be visible in the calling procedure. For instance:
namespace eval ::mySpace { namespace export calcfunc proc calcfunc { x } { return $x } } # # Use a fully-qualified name # namespace eval ::myCalc { proc detIntegral { begin end } { return [integral $begin $end 100 ::mySpace::calcfunc] } } # # Import the name # namespace eval ::myCalc { namespace import ::mySpace::calcfunc proc detIntegral { begin end } { return [integral $begin $end 100 calcfunc] } }
Enhancements for the second-order boundary value problem:
Other types of boundary conditions (zero gradient, zero flux)
Other schematisation of the first-order term (now central differences are used, but upstream differences might be useful too).
The various root finding methods differ in robustness, ease of use and convergence rates. While the Newton-Raphson method is quite fast (quadratic convergence), it is not guaranteed to produce an answer. The methods that bracket the root, require two starting points, but except for the secant method are guaranteed to deliver a good estimate.
Let us take a few simple examples:
Integrate x over the interval [0,100] (20 steps):
proc linear_func { x } { return $x } puts "Integral: [::math::calculus::integral 0 100 20 linear_func]"
For simple functions, the alternative could be:
puts "Integral: [::math::calculus::integralExpr 0 100 20 {$x}]"
Do not forget the braces!
The differential equation for a dampened oscillator:
x'' + rx' + wx = 0
can be split into a system of first-order equations:
x' = y y' = -ry - wx
Then this system can be solved with code like this:
proc dampened_oscillator { t xvec } { set x [lindex $xvec 0] set x1 [lindex $xvec 1] return [list $x1 [expr {-$x1-$x}]] } set xvec { 1.0 0.0 } set t 0.0 set tstep 0.1 for { set i 0 } { $i < 20 } { incr i } { set result [::math::calculus::eulerStep $t $tstep $xvec dampened_oscillator] puts "Result ($t): $result" set t [expr {$t+$tstep}] set xvec $result }
Suppose we have the boundary value problem:
Dy'' + ky = 0 x = 0: y = 1 x = L: y = 0
This boundary value problem could originate from the diffusion of a decaying substance.
It can be solved with the following fragment:
proc coeffs { x } { return [list $::Diff 0.0 $::decay] } proc force { x } { return 0.0 } set Diff 1.0e-2 set decay 0.0001 set length 100.0 set y [::math::calculus::boundaryValueSecondOrder \ coeffs force {0.0 1.0} [list $length 0.0] 100]
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category math :: calculus of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
romberg
Mathematics
Copyright © 2002,2003,2004 Arjen Markus


Methods
(static) self.addObject(gameObject) → {string}
Adds game object to scene.
Parameters:
| Name | Type | Description |
|---|---|---|
gameObject |
Object | Valid Engine2D game object to add to scene. |
- Source:
Returns:
id - ID of game object added to scene.
- Type
- string
(static) self.destroyObject(objectId)
Permanently destroys a game object.
Parameters:
| Name | Type | Description |
|---|---|---|
objectId |
string | ID of desired object in the scene to destroy. |
- Source:
(static) self.disableObject(objectId)
Disables a game object.
Parameters:
| Name | Type | Description |
|---|---|---|
objectId |
string | ID of desired object in the scene to disable. |
- Source:
(static) self.enableObject(objectId)
Enables a game object.
Parameters:
| Name | Type | Description |
|---|---|---|
objectId |
string | ID of desired object in the scene to enable. |
- Source:


Messages sent overnight are picked up at 8am in the morning.  You can leave this page now.
Print request received:


Toolbox Settings¶
The cdt.utils.Settings
module defines the settings used in the toolbox,
such as the default hardware parameters; and the tools to autodetect the
hardware. All parameters are overridable by accessing the cdt.SETTINGS
object, a unique instance of the cdt.utils.ConfigSettings
class.
The various attributes of the cdt.SETTINGS
configuration object are:
cdt.SETTINGS.NJOBS
cdt.SETTINGS.GPU
cdt.SETTINGS.default_device
cdt.SETTINGS.autoset_config
cdt.SETTINGS.verbose
The hardware detection revolves around the presence of GPUs. If GPUs are
present, cdt.SETTINGS.GPU
is set to True
and the number of jobs
is set to the number of GPUs. Else the number of jobs is set to the number
of CPUs. Another test performed at startup is to check if an R framework
is available, unlocking additional features of the toolbox.
-
class
cdt.utils.Settings.
ConfigSettings
[source]¶ Defining the class for the hardware/high level settings of the CDT.
- Variables
NB_JOBS (int) – Number of parallel jobs that can be executed on current hardware.
GPU (int) – The number of available GPUs ; defaults to 0.
default_device (str) – Default device used for pytorch jobs.
verbose (bool) – Sets the verbosity of the toolbox algorithms.
-
get_default
(*args, **kwargs)[source]¶ Get the default parameters as defined in the Settings instance.
This function proceeds to seamlessly retrieve the argument to pass through, depending on either it was overidden or not: If no argument was overridden in a function of the toolbox, the default argument will be set to
None
, and this function will retrieve the default parameters as defined by thecdt.SETTINGS
‘s attributes.It has two modes of processing:


An Architect have the ability to design in an effective and smart way to give a special impression on the projects that I designed, side by side with visualization skills. Seeking a challenging career. This will use and Improve my skills and knowledge in favor of company’s mission.
aya abu najm , 26 years old , i'm an Architect , i have multi hobbies like reading ,camping, and designing I love romantic and comedy movies .


This is a Cloud drive project by 2018 class of the Masters in Software Engineering, Seattle University.


Contact Information
First Name
:
The first name is required.
Max 10 chars.
Only Characters.
Last Name
:
The last name is required.
Max 10 chars.
Only Characters.
Email Address
:
Email is required.
Invalid email address.Please try again.
Phone Number
:
Please enter phone number.
Must be a valid 10 digit phone number
Status
select status
Active
Inactive
Please select your status
List of Added contacts..
Sr.No
First Name
Last Name
Email
Contact Number
Status
Action
{{cont.srno}}
{{cont.fname}}
{{cont.lname}}
{{cont.email}}
{{cont.usrtel}}
{{cont.status}}


Admin Panel
Authenticating...
Login Successful. Redirecting...
Error:
Invalid Username or Password.
Remember Me
Login
Forgot Password?


26 Aug 2014 | read this first, bootstrap, css
This theme uses Bootstrap for styling. Here’re some stuff you should know before using it. To learn more, check out Bootstrap’s documentation.
h1
tags are reserved for the post title. Don’t use them. Use h2
tags mostly, and use h3
if you need subheadings.
Or just edit stylesheets/style.css
This is a regular paragraph. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Links look like this. Emphasis. Marked. Deleted. Code
. user-input.
This is a blockquote. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
You don’t need to add the Bootstrap .table
class to table
. This is how it works.
| name | type | link |
|---|---|---|
| Jekyll | BlogEngine | jekyllrb.com |
Images are responsive.
Here’re some more examples Autm-rb some bootstrap to learn more.


Friday, Feb 7, 2003
In response to Never Send An Email In Anger, Lars Bergstrom recommended that I set up a rule that defers sending an email for 1 minute. I set it for 2 minutes under Outlook XP like so:
And it works like a charm. It's always w/in the first second that I wish I could recall a message, so two minutes should be more than enough. Wahoo!


Pethidine is also known as
meperidine a.k.a
Demerol, an opiate agonist used for moderate to severe pain, with an equivalency of 7.5 mg of pethidine to 1 mg of morphine in parenteral administration. Pethidine/meperidine has a duration of 2 hours so it's a pretty short acting opioid. I was out doctor shopping the whole of last night and didn't get a hit out of the five medical establishments I went to. I guess six is my lucky number coz I managed to get a pethidine IM injection from it. =D
[photo no longer available]
This is
Injection Pethidine Hydrochloride 50 mg/ml made by
DuoPharma (Malaysia). I have never tried pethidine IM injection so imagine my glee as I made this happen. ,)
Doctor: You were here for DF-118 last time right? The medical record says you have a bad back.
Me: I actually had a slipped disc (actually, I don't ,)) and it slipped again for the second time.
(makes 'ouch face', grimaces and made as if my spinal cord was killing me)
Doctor: Do we have DF-118 here? (talking to nurse)
Nurse: (after rummaging through the restricted access medication cabinet, they don't have it, I know that coz I've been here before) No we don't, but we have Voltaren.
Doctor: Do you want something else? I can give you another pain-killer.
Me: (Hell no! It's opiates or nothing) Doctor, I hope you can help coz I'm in a lot of pain right now. Can you write a script or something?
Doctor: Okay, do you have a medical history of your slipped disc?
Me: Yeah, I had an MRI and X-Ray done in KL, where it happened (which didn't happen, of course ,)) and the prognosis was a slipped disc, which I slipped again just now (*grimace of pain*)
Doctor: Do you have it with you?
Me: No, I'm sorry doctor, I left the medical documents in KL...
Doctor: Okay, well since you have a prior here, I'll script you. Is there anything else?
Me: (pushing my luck, deciding to go for gold) Hey, I know this is a strange question, but I'm in a lot of pain right now, do you have anything to help me get through tonight? Can you give me a morphine shot? (Prays to God he doesn't go amok)
Doctor: Morphine...hmm...well, we do have morphine but we don't give it to outpatients. I think we have pethidine though, do you want that?
Me: Is pethidine an opiate? (Knowing full well it is, but no harm in playing the dumb patient)
Doctor: Yes it is.
(Writes
Pethidine 50 mg IM stat on my medical record)
Me: (looks) (tries not to grin) (tries not to grin again, perhaps somewhat unsuccessfully) Thank you very much doctor.
Doctor: Alright, just lie there and I'll prep the shot.
Me: (puts on a show of painful lying down and bolts straight up, apparently with a good back again) Hey, I'm sorry doctor, another unusual request, can I take a photo of the pethidine vial?
Doctor: Why?
Me: It's just an interest of mine. (starts photoshoot of the IM pethidine 50 mg snap off ampoule) Thanks doctor.
Doctor: Okay, I'm going to inject you now. Turn over.
Me: Er...can I take the IM injection in my arm? (I don't want the doctor to see my thigh, which is the best place to bang shit if you're holding down a professional job - full of scar marks and bruises from injections - he would have known for sure I'm an IDU - Injecting Drug User).
Doctor: (Grips my arm) Seems to be okay here.
Me: (starts filming the procedure)
[photo no longer available]
Script from pethidine injection video:
Me: Is it in? Pethidine 50 mg?
Doctor: Mmm...
Me: Okay, IM, sixthseal.com (Jesus Christ, I should not have said that in the video but it just slipped out).
(sounds of pethidine injection process)
Me: Yeah, that's the place.
Doctor: Hmm...why do you have some bruises here?
(OMG those are my IM injection spots when I was injecting ketamine)
Me: Er...uh...they're some just bruises, ya know. I probably hit something.
(Quickly changes subject)
Me: So, is that pethidine 50 mg?
Doctor: Yeah.
Me: Thanks.
[video no longer available]
Doctor: Are you driving?
Me: Er...no. (actually I am)
Doctor: This will cause the usual opiate side effects, drowsiness etc. so be careful.
Me: I will, my friend is just outside (actually no one is outside, I don't take friends on doctor shopping expedition after a disastrous incident where I lost a good doctor coz me and my friend was stoned and high on meth and she had a laughing fit).
Doctor: Okay, here is your script. You're not a drug addict are you?
Me: (*coughs and nearly chokes*) Of course I'm not.  ,) (I didn't wink, I'm just winking on the blog)
Doctor: Good.
Price of 50 mg pethidine vial: RM 10
Price of surgical consumable items (that means the syringe and swabs): RM 0.40
Price of boosting a pethidine shot: PRICELESS! =D
Pethidine Experience Report:
(10 minutes after the shot)
Me: I'm not feeling it yet, doctor? How long does it take to kick in?
Doctor: It's not going to be so fast.
Me: So we can't IV pethidine huh?
Doctor: (gives me a strange look) No, it's for IM.
Me: Okay, thank you very, very much doctor.
(Shakes doctor's hand very vigorously, perhaps too enthusiastic to be unsuspicious)
[photo no longer available]
T+ 0:30: A general feeling of elation and well being. Don't know if it's the pethidine or the euphoria of getting away with a shot of pethidine just like that.
T+ 0:45: Cigarettes smokes well, like on opiates but it's nowhere near as strong as dihydrocodeine. It does give a rather pleasant high though - kinda chill, but still motivated, I'm typing this as we speak, which I usually don't.
T+ 1:00: I think this is the peak - it's nothing special - I could compare it to a cross between tramadol and codeine if that makes sense. It feels like tramadol + codeine...and er, it seems a wee bit hallucinatory, I don't know how to explain it, it's like the feeling when I get a hit of LSD and am about to come up and trip, but it never happens. I just mentioned it coz I saw the cigarette smoke drifting off. Perhaps a more apt description would be a very mild case of Ambien induced hallucinations.
T+ 1:30: Hey, I'm feeling a little of that opiate warmth now.  I'm full of glee though. :)
Pethidine IM feels a lot like a combination of tramadol and codeine at doses of 100 mg and 300 mg respectively. There is a general feeling of well being and slight stimulation but with some of the jitteriness of tramadol (very mild). It's more like a cross between tramadol and codeine. The opiate warmth is present but mild. At my tolerance level, 50 mg of pethidine isn't much, but at least I can feel it...and I'm STILL feeling st0ked about pulling this off! =D
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


The Lease is a
commencing with a move-in date on
.
The Lease will continue month-to-month
until the Sublessee terminates the lease, giving a
minimum notice of days. At the latest, the Sublessee agrees
to vacate the premises on the move out date of .
The Sublessee can only take possession of the rented units below upon payment of
the Move-In Amount, described in the next section.
##
Sublessee will pay a total amount of
(
)
(the Total Payment) with the following breakdown.
-
for renting of a
-
for monthly deep cleaning.
-
as a refundable security deposit
less any of the expenses described in the next section.
The following amounts are defined for monthly amounts.
-
The Monthly Rent Amount is
for renting of a
.
-
The Monthly Cleaning Amount is
for a deep cleaning.
-
The Total Monthly Amount is equal to the sum of the previous two amounts,
and is .
-
The Last Month's Rent is
which will be held as a
security deposit, less any expenses related to default,
and applied to the last month's rent.
-
The Deposit Amount is
as a refundable security or
damage deposit less any of the expenses described in the next section.
Initally the Sublessee will pay the Move-In Amount of
equal to the sum of all the previous
amounts, which includes the first month's rent.
By the first day of each following month, the Sublessee will pay
, except the Last Month in which
the Rent Amount will be paid less the
paid upon Move-In.
##
A Sublessor staying for longer than two weeks is asked to contribute work hours to
running a productive, clean, prosperous Arcology for all residents. The tasks below are
chosen to suit the interests, needs, and karma of the Sublessor.
##
The Sublessee will pay a fully refundable security deposit of
to the Sublessor included in the Total Payment as described above as part of
the Move-In Payment.
The Sublessee agrees to surrender and deliver the subleased premises in the same condition as
when received by the Sublessee. The Sublessor will
refund the Sublessee the deposit at the end of the term on the Move-Out Date
via any of the supported payment methods listed in the next section, at the
choice of the Sublessee, less any of the following expenses.
* A proportional share of utilities (electricity, internet)
used during the
days,
as reported by bills received by utility company
at the end of each calendar month, divided by the 12 people living in the house.
* Any physical damage, major holes in walls, scratches / dents / furnitures / lost keys
that need to be repaired or replaced.
* Any property left behind that needs to be disposed of or donated.
Any reason for retaining a portion of the Deposit will be explained in writing on the
Move-Out Date.
This contract subsumes the previous contract with ID
and carries forward any security deposit from it.
##
This section is aspirational and has not been implemented yet in house software.
It reflects a tentative direction of Arcology as a cooperative home, and may change
without warning. In future
subleases, this section will become increasingly detailed and replace words of
the form "should"
with words of the form "is" or "does".
Residents of Arcology can earn stake (shares) in the home, which gives them a
right to earn dividends from house profits and conversely participate in risks of default
on the master lease.
Profits from the home may be distributed proportionally to residents holding shares
(shareholders) at periodic intervals. Some shares hold a fix dividend rate and should
be paid first
Any Deposit Payment that is held by Arcology should be applied to the deposit of the master
lease. If the Master Deposit is defaulted for lack of paying the Master Rent or damage
to the property that has not been repaired by the Master Move-out Date,
the Deposit Amounts of long-term residents at the Move-Out Date will experience a
corresponding loss.
##
The Sublessor agrees to pay the total amount of
,
equal to the Rent Payment plus Security Deposit,
on the Move-In Date via one of the following methods:
1. Venmo to the screen name `@paul-pham-7`
1. a paper check drawn on a U.S. bank account
1. DAI, an ERC20-compliant
stablecoin with contract address `0xc94a6e7776bade5da316cf6fd8c751fb0d5c3c5e`,
payable to the Sublessor at ETH address `0x36E5A96c8d01803d2C48756AA7bde1c01d7D9f8A`
1. The equivalent ETH at the current GDAX exchange rate to
ETH address `0x36E5A96c8d01803d2C48756AA7bde1c01d7D9f8A`,
to be agreed with Sublessor beforehand and valid for one hour.
The Sublessor agrees to pay the Move-In Amount of
,
by the Move-In Date via one of the following methods:
- Venmo to the screen name `@paul-pham-7`
- a paper check drawn on a U.S. bank account
- DAI, an ERC20-compliant
stablecoin with contract address `0xc94a6e7776bade5da316cf6fd8c751fb0d5c3c5e`,
payable to the Sublessor at ETH address `0x36E5A96c8d01803d2C48756AA7bde1c01d7D9f8A`
- The equivalent ETH at the current GDAX exchange rate to
ETH address `0x36E5A96c8d01803d2C48756AA7bde1c01d7D9f8A`,
to be agreed with Sublessor beforehand and valid for one hour.
##
In addition to the rooms above, the Sublessee will have access to common areas of the
Home including
the kitchen, bathrooms, living room, workspaces, and rooftop.
The Sublessee is invited to borrow any tools, books, cookware,
eatware, and consume reasonable amounts of house food and materials
(coffee, tea, Soylent, wire, solder, lumber, paper).
##
The Sublessee will default under this Sublease Agreement if any one or more of the
following events (the “Event of Default”) occurs:
* The Sublessee fails to pay the rent to the Sublessor or any amount of it when due
or within any grace period.
* The Sublessee fails to perform any of its obligations under this Sublease Agreement
or any applicable obligation under the Master Lease.
* The Sublessee abandons the Premises or uses the Premises for unpermitted or illegal
purposes.
##
If the Sublessee is in default, then this agreement will immediately
become null and void and the Sublessor will automatically claim right
to the Security Deposit
and any Last Month's Rent
.
##
In the event that the Rent Payment required to be paid by the Sublessee is not
paid in full by the Move-In Date, an initial late fee will be added as additional rent in the
amount of 5% of the Rent Payment. Further, a subsequent late fee of 20 USD per day will
be incurred by the Sublessee for every day payment is delayed after
Move-In Date.
The Sublessee’s failure to pay the Rent Payment by the third day after the
Move-In Date
first day of the month
will
trigger stern language, frowning expressions, and ultimately eviction
proceedings.
A Non-Payment Petition and a Notice of Petition will be filed with the housing court.
The Sublessee will receive copies of the court paper in the form of a service and be
required to attend housing court.
##
Sublessee’s tenancy will terminate on the Move-Out Date listed above unless
either party requests to change the ending date and both parties agree. In that event,
a new Sublease will be signed and supersede this one.
##
This Sublease Agreement incorporates and is subject to the
Master Lease
The Sublessee acknowledges that it has read and agreed to lead paint disclosures and any
other disclosures from the Master Lease, or that the Sublessee doesn't care and forfeits
the right to sue anyone for anything with regard to this sublease.
##
Sublessee agrees that if the Master Lease
is terminated for any reason, this Sublease Agreement will terminate effective the same date.
##
Sublessee’s and Sublessor’s preliminary negotiations
between the Parties are merged into, and superseded by, the terms of the Lease.
##
In the event of a dispute, both parties agree to binding legal arbitration out-of-court
in the State of New York, United States of America.
##
In the event of any legal action concerning this Agreement the losing party will
pay to the prevailing party reasonable arbitration or attorney’s fees to be fixed by the
arbitration.
##
The Sublessor may enter the Rooms above upon 24 hours notice to inspect the Premises,
take photographs for online listings,
maintain the Premies or make repairs that the Sublessor is obligated to perform. Exceptions
are in case of apparent emergencies, to turn
off the Air Conditioning / Heating unit if the Sublessor has left it on while not in the
bedroom, and to prepare the room for an arriving guest in the case of shared rooms.
##
Both Sublessor and Sublessee agree to sign and hold binding
this lease electronically via a written email with a PDF attachment,
from emails originating from the addresses above, including original
mail headers.
Sublessor will send Sublessee email confirmations and receipts of all payments.


| open |
/ |
|
| click |
id=create_account_button |
|
| waitForText |
id=launch_privacy_policy |
Privacy policy |
| click |
id=launch_privacy_policy |
|
| waitForText |
//div[@id='secondDialogDiv']/div/div[2]/p[15] |
In an attempt to provide you with increased value, we may include third party links on our site. These linked sites have separate and independent privacy policies. This Privacy Policy only covers our Site and does not cover any other website. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these linked sites (including if a specific link does not work). |
| verifyText |
//div[@id='secondDialogDiv']/div/div[2]/p[15] |
In an attempt to provide you with increased value, we may include third party links on our site. These linked sites have separate and independent privacy policies. This Privacy Policy only covers our Site and does not cover any other website. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these linked sites (including if a specific link does not work). |
| verifyElementPresent |
<EMAIL_ADDRESS>|
|
| verifyElementPresent |
link=Close |
|


Welcome to Gamebot.
Invite Gamebot to your server here! Visit our Github for more information. View our documentation if you're interested in development. If you have other questions, join our support server.
Gamebot's website is under construction.
Gamebot's website is under construction.


{% load i18n static %} {% trans "Choose an image" as choose_str %} {% include "wagtailadmin/shared/header.html" with title=choose_str merged=1 tabbed=1 icon="image" %}
{% trans 'Drag and drop images into this area to upload immediately.' %}


A small selection of the top artists at the top of their craft. Candy for your ears.
Born in the cramped basement of highschool best friends, Crafty Records brings you the artists at the top of their craft. We have rock, Americana, hip hop, dance and more. We don't cater to genres, we just find the best. We're crafy like that.
Since our first album release in 1998, we've been delivering the hits every year. Don't believe it? Learn more about us and see how wrong you are.
Each one hand-selected by our talented A&R department.
Just like the name says except with some rock 'n' roll. Read the bio →
Authentic Americana with a latin flavor and giant drums. Read the bio →
A cool misty night, a cold beer. Add music and that's them. Read the bio →
Part grunge, part rock, these guys just let it rip without caring. Read the bio →
King sits on top, in a throne crusted with platinum records. Read the bio →
Back to school with some of the best pop hooks you'll hear. Read the bio →
Working for the man has never been so groovy. Read the bio →
The beats aren't stuck, that's for sure. Swinging freely. Read the bio →
© 2013 Crafty Records All Rights Reserved. Especially the right to rock your socks off.


{% extends 'layouts/main.html' %} {% block title %}Home{% endblock %} {% block content %} Decentralized and inclusive credit history for all Log In with MetaMask Discover BlockBureau Use metamask to sign into BlockBureau and start your social credit history. Link1 Link2 Block Bureau Features... Check out what you can do with BlockBureau Put some block Bureau features here... We new friends! {% endblock %}
Use metamask to sign into BlockBureau and start your social credit history.
Check out what you can do with BlockBureau


Defining the Panel Layout
Now, we need to define the layout of the top (panelA) and bottom (panelB) panels of this splitPane.
Steps:
- Copy or enter the text from the right into the file
You may recall that some of the variables here have the same names as the XML tags we defined when defining a splitPanel from a menu item in part '2. Menus - Basic'.
Panel A:
The variables here are:
- 'type'
- specify what type of container we want, like we did in previous steps
- 'name' of the panel
- 'overflow'
- defines what happens when the content doesn't fit in the container
- the options are 'visible,' 'hidden,' 'scroll,' 'auto,' and 'inherit'
- 'ContentType'
- the options are 'LINK,' 'URL,' or 'RAW' (see 2. Menus - Basic : Loading content)
- 'PrimaryContainer'
- set this to 'true' if this is the primary container in your split pane
- 'data::type'
- defines how to get the data to load like in the menu files
- the options are 'html,' 'action' and 'other' (see 2. Menus - Basic : Loading content)
- 'data::data::parameters'
- defines the parameters of the action, like in the menu files (see 2. Menus - Basic : Loading content)
Panel B:
Here, we give it the name 'detail' to indicate that details of the top panel (A) will be shown in the bottom panel (B).


News1
News2
News3
News1 News1 News1 News1 News1 News1 News1
News2News2News2News2News2News2News2News2News2News2
News3News3News3News3News3News3News3News3News3News3


Programming Languages
Ilkhom Khursandov
- Web and Internet Development
- Scientific and Numeric
- Education
- Software Development
- Business Applications
Who is using Python:
- Google
- Facebook,Instagram
- Dropbox
- Reddit
Where is JS suitable?
- Applications development
- Desktop app development
- Game advancement
Types Of Java Applications
- Applets
- Web Applications
- Game advancement
Benefits Of Go
- High speed
- Go is lightweight because Go uses goroutines instead of threads
- Functions are reduced to provide readability and make the learning process easier


Road Indicators: The Municipality of City Name is located in the department name department. Population Indicators: gen_pov % of its population live in poverty. Access to Institutions: Its dataset's ID is ID and the data was collected in year .
About the DATA SOURCE


Clustering Single-cell RNA-Seq (scRNA-Seq) data from multiple samples or conditions are often challenged by confounding factors, such as batch effects and biologically relevant variability. Existing batch effect removal methods typically require strong assumptions on the composition of cell populations being near identical across samples. Here we present CIDER, a meta-clustering workflow based on inter-group similarity measures. The prototype of this method is firstly applied in Hu et al., Cancer Cell 2020.
For more informtion please see our preprint. The published version and new citation information will be available soon.
CIDER can:
If you have scRNA-Seq data corrected by an integration algorithm (e.g. Seurat-CCA, Harmony, Scanrama…). You can use CIDER to evaluate if the biological populations are correctly aligned.
Before running CIDER evaluation functions, make sure that you have a Seurat object (e.g. seu.integrated
) with corrected PCs in seu.integrated<EMAIL_ADDRESS>. Seurat-CCA automatically put the corrected PCs there. If other methods are used, the corrected PCs can be added using seu.integrated<EMAIL_ADDRESS><- corrected.PCs
.
library(CIDER)
seu.integrated <- hdbscan.seurat(seu.integrated)
ider <- getIDEr(seu.integrated, verbose = FALSE)
seu.integrated <- estimateProb(seu.integrated, ider)
The evaluation scores (IDER-based similarity and empirical p values) can be visualised by the scatterPlot
function. A detailed tutorial of evaluation is available.
p1 <- scatterPlot(seu.integrated, "tsne", colour.by = "similarity")
p2 <- scatterPlot(seu.integrated, "tsne", colour.by = "pvalue")
plot_grid(p1,p2, ncol = 3)
Here seu
is a Seurat object with initial clustering annotation stored in initial_cluster
of metadata and batch information in Batch
. The asCIDER example here contains two steps: computing IDER-based similarity matrix (getIDER
) and performing the final clustering (finalClustering
).
ider <- getIDEr(seu,
group.by.var = "initial_cluster",
batch.by.var = "Batch")
seu <- finalClustering(seu, ider, cutree.h = 0.45)
A detailed tutorial of asCIDER is here. If your data do not have prior batch-specific clusters, the dnCDIER tutorials (high-level and detailed walk-through) can be referred to.
Here is the code used to compute the similarity matrix within one batch.
library(CIDER)
# make sure have a colume called "Batch" in the data and assign a uniform value
# to all cells, for example:
seu$Batch <- "onebatch"
# run the getDistMat, the input needs to be list(seu), the tmp.initial.clusters
# is the group information that you want to compute the similarity matrix with.
# The output is the similarity matrix.
dist <- getDistMat(seu_list = list(seu), tmp.initial.clusters = "cell_type")
A more dedicated function is under construction.
Please use Issues to report bugs or seek help. Thank you!
Z. Hu, A. A. Ahmed, C. Yau. An interpretable meta-clustering framework for single-cell RNA-Seq data integration and evaluation. bioRxiv 2<IP_ADDRESS>7525; doi: https://doi.org/10.1101/2<IP_ADDRESS>7525


Girl group Rainbow officially announce their comeback!
by sl278After hinting at their return, girl group Rainbow has officially announced their comeback.
The group released a teaser image with the words 'Over the Rainbow' written on it. The release is set for November 14th and it seems like the girls produced it themselves!
Previously, it was reported that Rainbow would be getting back together for a special single release, in light of their 10th anniversary since debut.
Stay tuned for more updates.


Hi! I'm Ellie
I'm a UI/UX designer with 7+ years of experience in design.
I strongly believe in the power of research and emotional design to make products people will love. The best part of my job is to discover customer pain points and challenge myself to create an engaging experience. I love collaborative work environment and excited about upcoming changes to the digital world. I’m currently working remotely at Quest Software.
May 2018
Quest e-commerce site is the selling point of 128 software products. It’s remained unchanged for a couple of years after Quest separation from Dell.
I worked on redesigning and enhancing the experience of this platform with the focus of aligning the brand with the main marketing site and improving shopping experience to provide a pleasant purchase journey.
Customers want to have a clear understanding of the specifications and the different editions of the products they are buying. Fast checkout process along with access to available savings, will create a positive experience and therefore will increase repeat customer rate.
Our high level goals were to:
I was the main designer for this project however I worked alongside a business analyst, a project manager, a data scientist and also collaborated with a 3rd party vendor to hand off design requirements and test the outcome.
The scope of this project would affect the following areas:
We had a limited budget for this project so we had to eliminate redesigning some sections and avoid too much customization of existing modules.
I had to work with a new team of developers which made communication challenging from time to time.
Limited resources for testing and logging bugs was yet another issue because we didn’t have a shared environment with the vendor.
I started my journey by using the platform with fresh eyes to have a deeper understanding of the current flow and potential areas of improvement. Following are some of my initial findings:
I worked with a data scientist and a BA to understand the current workflow deeper and spot key areas for improvements based on our existing data.
Based on an intercept survey conducted on the site, 47% of customers claimed that it is hard to compare and understand the different features came with different editions of certain products.
I couldn’t tell the difference between RemoteScan enterprise and RemoteScan enterprise user edition, I had to call sales to get a better understanding of the features to make a decision.
Considering that RemoteScan is the second most popular product of Quest and bringing in a high revenue to the company, the priority to improve this situation became critical right away.
Plus, the flow in Google Analytics showed that 22% of customers abandoned shopping cart just to review or modify the support plan they chose in the previous step of the checkout.
I also interviewed some of our sales folks to collect direct input from our customers. My main goal was to capture some qualitative data to back up our existing quantitative data. Here are a few high-level insights I captured from our customers:
I had a few interview sessions with different business unit stakeholders. My primary goal was to understand the business needs and how I could leverage them with our customer needs and kill two birds with one stone. Here are some of the concerns and needs I identified talking to 3 stakeholders:
Metrics show over 50% of customers purchasing RemoteScan on shop enter from a generic RemoteScan buy page that does not provide any product content or comparison. We need a solution for this within the shop to ensure a clean and informative customer journey to purchase.
What if we create a hybrid product page that creates better context for the customers coming to the site from external sources? A clean comparison matrix table explaining different specs of editions could clarify ambiguous information about certain products.
At this point, I had enough to start working on the project but what I also wanted to know was to look at some broader research sources to understand the best practices of creating a smooth online shopping experience.
I started to read several research articles from the Baymard Institute about the following topics:
Based on my learning, I tried to apply the same standard rules while designing the user interface.
Before I could jump into designing, it was important to confirm my assumptions and define the happy path in the process workflow.
I created a new user flow based on my findings so that I could find any steps missed or have issues sooner than later. That way I could save time during design by making sure my solution would target solving the right problem.
I went over the flow with the team multiple times. Following is the flow we all agreed to be ideal for our customers.
I created hybrid mockups using sketch, mainly because I had all the necessary components in our design library so I could quickly stitch them together.
I intended to create a click-based prototype in Frontify and test with at least 3-5 users. I will explain the details of my finding after user testing in the mockups section.
I created a mini style guide from Quest design library in Sketch so that I can quickly drop elements into my mocks.
1. Catalog listing page
2-1. Product detail
2-2. Licensing options
2-3. Versions
3. Shopping cart
4. Checkout step 1
5. Checkout step 2
6. Checkout step 3
After several iterations and user testing we came up with the following solution to address the goals we defined initially for this project. We mainly based our judgments on the UX metrics we collected using The Heart Framework from Google.
1. Catalog listing page
I used the same hero banner concept we have on Quest marketing site to dedicate a space for promoting new releases and featured products to meet one of the asks from the business during our interview sessions.
Based on our card sorting session with stakeholders, We created categories to filter products on this page to make finding a product quicker.
The card view concept for each product helped to avoid displaying an overwhelming amount of information to customers and decreased the cognitive load.
Prefixing the prices with the currency type abbreviation was another aspect that made pricing clear for other countries.
2-1. Product detail
To create some context for customers visiting from external sources, I used a video outlining the main features and benefits of the product. Besides, I included a link back to the product page on the marketing site for accessing further in-depth information.
Adding dynamic labels for elements that tied to a certain condition increased clarification and decreased sales calls by 20%.
I also worked with developers to create instant field validation for quantity dropdown and some minor UX enhancements to the element functionality.
2-2. Licensing options
Talking to stakeholders and sales revealed a need for specifying different saving options. I gathered the information from our BA and displayed in a tile view, highlighting the recommended option to make the decision making process a tad easier.
I also tried to call out other conditions for the product to reduce sales contact.
Although these changes reduced sales contact rate for this topic by 5%, I believe this to be a behavior change that will show over time.
2-3. Versions
Creating a new page to outline all the different editions of the product eliminated the confusion to certain extent.
We split tested a comparison matrix on the marketing site and achieved 6.05% uplift in conversion rate.
3. Shopping cart
I divided the cart and checkout into two separate pages, to keep customers stay focused on accomplishing one task at a time.
When testing the prototype with candidates, I noticed that some of them missed the promotions presented on product detail pages. I included the savings based on the items they had in the cart on this page as well.
Data revealed that going back and forth to update certain items in the cart caused the cart abandonment. We included a link with a pop-up that would let customers change licensing without leaving the cart. This update reduced the cart abandonment rate by 17%.
4. Checkout step 1
A linear design approach helped stay focused on one task at a time.
Adding an interactive step navigation bar at the top not only provided constant feedback about where customers are in the process, but also helped them to navigate back if needed.
By looking at order summary box, customers had better visibility of the products they were purchasing.
5. Checkout step 2
Displaying the summary of the completed step made it easy to have a quick glimpse of the information on the previous step without leaving the checkout.
Initially, I proposed an interactive plugin that could possibly reduce error rate while providing the card information. Interestingly, some of the users thought we are going to steal their card info and print out the card displayed in the plugin.
6. Checkout step 3
At this point customers reached to the final step of their purchase journey and can skim through the information they provided one last time.
The redesign of Quest e-commerce website had a positive impact on the checkout experience and content organization in general.
However the conversion rate has not been significantly increased which means we have more things to do.
Some of the highlights are:
For confidentiality reasons I have omitted the actual values for the metrics on this project.
Mar 2018
This project was a team effort, however following are some of the key areas I worked on:
After doing some research about the best order for information architecture, the functionality of different patterns, and content voice we came up with a more engaging layput to represent Quest software products
Competitive analysis for information hierarchy
Competitive analysis for inspiration (statistics)
We had several design critique sessions with teams during this project for feedback and collaboration.
I have coded and created several versions of A/B tests for new patterns to collect data accordingly before we proceed with implementing them into the templates.
View Old TemplateIterations on mocks & team feedback
A/B test result on resources pattern
Split test result on the new layout
This project was a mix of introducing new patterns and improvements to existing components in terms of functionality and branding. Following are the new patterns that I worked on and revised based on research, team feedback, and testing results:
Hero & secondary sticky navigation (Design + Development of background diagonal image)
Statistics
Display tangible data based on facts worth mentioning about the product
Supported platforms
Customer quotes & reviews from G2 Crowd
I have also coded this pattern and researched optimized image sizes for all devices in addition to character limits along with creating a Sketch template for exporting assets for this pattern and training of team members.
Product tour
Resources (Design + Prototype)
This pattern has been revised 3 times through A/B testing
Get started & client logos
Social Share
Share the page through different social media channels to increase social traffic & presence
Sep 2017
This was an enhancement project to Quests existing home-grown CMS hosting the entire website and a ticketing system to manage and plan projects and all the requests associated with each project type to meet deadlines.
This project was a team effort. I worked on the project/request planner feature that was replaced the old style project management tool.
Since this project was an enhancement to the existing platform, many patterns and elements have been reused to maintain consistency. Project Request Planner is the only new pattern designed to integrate new functionalities. One of the biggest challenges with the addition of this feature was the migration of old-style projects into this new style. To overcome this barrier and gradual migration we defined two types of projects standard (old) and guided (new).
1. Add a new project
The process starts with this screen to add a new project.
2. Project/Request type breakdown
My fellow designer colleague worked on this pop up which shows break down of the different request and project categories based on user interviews and card sorting sessions.
3. The first step to create a project
4. Guided project entry page
4-1. Project Request Planner details
All required tasks and phases for different type of projects were defined by the business analyst of this project through interviews with users.
4-1. Moving tasks between phases
5. Adding a new request to a task
6. Adding a new or an existing task to a phase
7. Timing status for different tasks
8. Request task manager
Feb 2018 - Mar 2019
I started by reading several articles and research papers to find out the primary rules for designing an efficient form. Followings are some of the best practices I captured:
Based on my findings and working with the business analyst about the requirements of the flow I have come up with the following flow/style for the new form:
1-1. Hero space (initial load - short form)
1-2. Hero space with customer logos
Adding customer logos under the hero will create a chance to showcase popular companies using this product.
2. Product benefits
3. Awards and recognition
Final page
The split test for this version didn't show positive results!
Assumptions
The split test for this version didn't show positive results either!
Assumptions
One of the benefits of this style is that it will create a common theme for all Quest registrations forms. (assets, contact sales, events)
Contact sales registration page
Documents registration page
The split test for this version didn't show positive results either!
Jul 2018
This project was a team effort. I mainly worked at the UI for web and interactions such as:
Facts are always attractive when they are measured through numbers and data.
The main goals of this project are:
People are going to use this resource when they are in the process of discovering a new solution for some issues they are experiencing. Thus it is important to present them with actual data (facts) and how impactful this solution can be to help solve their issues. They are responsible to keep the systems up and running 24/7 and looking for a tool that can automate some of their tasks and make monitoring the systems easier so that they can stay on top of everything all the time.
1. Hero area
Fade in and bounce effect to show the initiation of the story and immediately indicate the benefits
2. Critical information about IT vulnerabilities
3. Rising complexity configurations
4. The solution to overcoming all the previously stated issues
Oct 2016
This project was a team effort. Here are the highlights of my role:
Uber spreadsheet for UI elements
Style guide best practices
Studied brand guidelines in the industry to create a standard taxonomy for the brand style guide and UI pattern library
Web style guide
Contributed building Quest web style guide and UI pattern library through tangible terminology
UI design library using Sketch


The Record No.4 Bench Plane
A classic handtool for woodworking
Smoothing plane made in England
Try-hard man braid etsy kale chips flexitarian echo park sustainable schlitz vegan XOXO pok pok brooklyn banh mi woke. Tumeric chicharrones man braid migas tofu microdosing four loko edison bulb pok pok polaroid XOXO cronut lyft. Fingerstache cray man braid, single-origin coffee four loko synth helvetica scenester shaman. Kale chips etsy coloring book hashtag paleo vexillologist locavore adaptogen organic.
Banjo 3 wolf moon chia kickstarter vaporware hexagon slow-carb. Stumptown flexitarian tumblr, twee bespoke brooklyn pickled four loko mumblecore tousled tacos microdosing craft beer. Dreamcatcher hammock brooklyn vape YOLO literally artisan stumptown quinoa. Keffiyeh palo santo pug disrupt waistcoat blue bottle marfa af activated charcoal. Yuccie hexagon actually prism, before they sold out la croix microdosing DIY scenester tousled cardigan pabst.
Polaroid tote bag pug banjo green juice man bun. Distillery kinfolk migas humblebrag trust fund vice asymmetrical, gochujang franzen wolf edison bulb put a bird on it selfies fashion axe hoodie. Tattooed drinking vinegar helvetica mlkshk listicle iceland. Palo santo mumblecore tacos blog, vape chambray mustache photo booth.
Brunch forage post-ironic, echo park deep v pinterest cred farm-to-table bicycle rights godard etsy kitsch chillwave edison bulb. Jianbing kogi heirloom portland. Seitan coloring book chicharrones, celiac 3 wolf moon activated charcoal cold-pressed artisan direct trade pickled ramps gastropub. Activated charcoal tacos tilde, scenester irony microdosing organic live-edge artisan.
Microdosing vinyl you probably haven't heard of them plaid hammock, forage kombucha poke chia wayfarers crucifix brunch taiyaki biodiesel. Af butcher YOLO live-edge, typewriter shabby chic flannel hammock. Poutine organic cliche williamsburg shaman, distillery sustainable scenester bespoke lomo selvage. Paleo lomo roof party, pop-up pinterest green juice actually kogi.  Four loko occupy vexillologist unicorn pop-up tbh edison bulb cloud bread shoreditch affogato chicharrones. Messenger bag dreamcatcher farm-to-table palo santo chambray selvage, tbh austin XOXO prism jean shorts try-hard taiyaki.


programmingTriviaGame
Start
What year was
JavaScript
made?
1995
2006
1989
1883
What year did
Node.js
come out?
2015
2011
2009
A year which I have never node
Which symbol represents the
Remainder
?
%
55318008
&
**
Which programming language is most widely used for Data Science?
Compiled Language
JavaScript
Dada
Pyton
Which large influential tech company manages the
React JavaScript
Library?
Amazon
Facebook
Boston Dyanmics
Skynet


This project contains structures and classes for reading and writing IMF/MIME documents. Also included is a structure for constructing and sending emails.
IMF (Internet Message Format) is the original format for sending emails on the Internet. MIME (Multimedia Internet Mail Extensions) is an extention to IMF for allowing mulitple media forms to be send via email. MIME is also used in other Internet protocols such as HTTP.
This project requires the jaypha-base package, available through Dub and GitHub.
Also required is the Curl library installed on your system.
| jaypha.inet.email | Structure for building emails. |
| jaypha.inet.imf.writing | Code for writing IMF documents |
| jaypha.inet.mime.contentdisposition | Content-Disposition MIME header |
| jaypha.inet.mime.contenttype | Content-Type MIME header |
| jaypha.inet.mime.header | MIME headers |
| jaypha.inet.mime.quotedprintable | MIME Quoted Printable Encoding |
| jaypha.inet.mime.reading | Code to read MIME documents |
| jaypha.inet.mime.types | MIME types and file extensions |
| jaypha.inet.mime.writing | Code to write MIME documents |
| Name | Module | Descritpion |
|---|---|---|
| struct Email | jaypha.inet.email | Use to construct and send emails |
| struct Email.Attachment | jaypha.inet.email | Attachments for emails |
| struct Mailbox | jaypha.inet.imf.writing | Email address used in IMF headers |
| struct MimeContentDisposition | jaypha.inet.mime.contentdisposition | Content-Disposition header |
| struct MimeContentType | jaypha.inet.mime.contenttype | Content-Type header |
| struct MimeEntityReader | jaypha.inet.mime.reading | Reads a MIME entity from input |
| struct MimeEntity | jaypha.inet.mime.writing | Represents a MIME entity. Used for writing |
| struct MimeHeader | jaypha.inet.mime.header | MIME header |
| Name | Module | Descritpion |
|---|---|---|
| fileExtMimeTypes | jaypha.inet.mime.types | Associative array mapping file extensions to MIME types |
| enum ImfMaxLineLength | jaypha.inet.imf.writing | Maximum allowable IMF line length |
| enum ImfRecLineLength | jaypha.inet.imf.writing | Recommended maximum IMF line length |
| enum MimeEoln | jaypha.inet.mime.header | End of line sequence used in IMF and MIME |
| MimeHeader mimeVersion | jaypha.inet.mime.header | Provides a MIME-Version header |
| Name | Module | Descritpion |
|---|---|---|
| addressHeader | jaypha.inet.writing | Creates an IMF header for address header types (from, to, cc etc) |
| extractMimeParams | jaypha.inet.mime.reading | Extracts paramters from a MIME header value string |
| extractQuotedString | jaypha.inet.mime.reading | Extracts a token from a MIME header value string |
| extractToken | jaypha.inet.mime.reading | Extracts a quoted string from a MIME header value string |
| extractMimeContentDisposition | jaypha.inet.mime.contentdisposition | Extracts data from a Content-Type MIME header field body |
| extractMimeContentType | jaypha.inet.mime.contenttype | Extracts data from a Content-Type MIME header field body |
| extMimeType | jaypha.inet.mime.types | Returns the MIME type associated with an extension |
| fileMimeType | jaypha.inet.mime.types | Returns the MIME type associated with a file name |
| imfFold | jaypha.inet.writing | Wraps a line to keep line length to a certian maximum length |
| mimeEntityReader | jaypha.inet.mime.reading | Creates a MimeEntityReader struct |
| mimeMultipartReader | jaypha.inet.mime.reading | Creates an input range of MimeEntityReaders. Used for reading multipart entities |
| parseMimeHeaders | jaypha.inet.mime.reading | Extracts and parses headers from an input range |
| quotedPrintableEncode | jaypha.inet.mime.quotedprintable | MIME Quoted Printable Encoding |
| toMimeHeader | jaypha.inet.mime.contentdisposition | Creates a Content-Disposition MIME header. |
| toMimeHeader | jaypha.inet.mime.contenttype | Creates a Content-Type MIME header. |
| unstructuredHeader | jaypha.inet.writing | Creates an IMF header for generic header types |
IMF is covered by
| RFC5322 | IMF specification (defines header syntax) |
| RFC6854 | Update to allow multiple senders. |
| RFC6152 | 8-bit extension. |
| RFC2387 | multipart/related |
MIME is covered by
| RFC2045 | Original MIME Specs |
| RFC2046 | MIME Types |
| RFC2047 | Non ASCII in IMF headers. |
| RFC2049 | MIME Conformance |
| RFC2183, 2231 | Content Disposition Header |
Other related RFCs
| RFC4289 | Registration Procedures for MIME |
| RFC4855 | Media Type Registration of RTP Payload Formats |
| RFC6838 | Media Type Specifications and Registration Procedures |
| RFC4021 | Registration of Mail and MIME Header Fields |
| RFC5321 | Simple Mail Transfer Protocol |
Other References


{% include head.html %}
{% include nav.html %} {% include action.html %} {% include heroins.html %} {% include tfnt.html %} {% include community.html %} {% include meetups.html %} {% assign people = site.data.mensen | where_exp: "mens", "mens.groups contains 'board'" %} {% include people.html %} {% include footer.html %}


{% extends 'ctflex/game/game.template.html' %} {% load static from staticfiles %} {% block extra_css %} {{ block.super }} {% endblock %} {% block extra_js %} {{ block.super }} {% endblock %} {% block content %}
Welcome to {{ window.verbose_name }}! This round has not yet started.
It will run from {{ window.start|date:'g:i A e' }} on {{ window.start|date:'F j, Y' }} to {{ window.end|date:'g:i A e' }} on {{ window.end|date:'F j, Y' }}, and it will start in:
{% include 'ctflex/game/countdown.snippet.html' %}When it starts, your team will be able to pick any {% include 'ctflex/text/timer_length.adjective.txt' %} span within the round to solve problems.
Until then, you can:


Contact Me
Questions or comments?
Get in touch.
Let me introduce myself in a few words.
All you need to do is filling the form to get in touch.
Learn more about how easy it can be having your own.
a picture that you want to turn into a nice freehand drawing.
Of course it depends on your demands, but I can make it in at most 3 days
You will recieve a demo version of the picture in order to have a quick look at it before you pay.
Once the payment has been confirmed you will recieve the high resolution version of the drawing in JPEG format.
I hope you will be persuaded to agree on that I should create a drawing to you.
Choose one of my offers below that meets your expectations.
Single Portrait
A3 (11.7x16.5 inch) sized freehand drawing in landscape or portrait orentation depending on your individual demands.
Double Portrait
A3 (11.7x16.5 inch) sized freehand drawing from two people. It is suitable for couples, siblings or teammates. It is available in landscape or portrait orentation depending on your individual demands.
Customized
Custom sized freehand drawing. It is recommended if you have particular claims or extreme demands.
Flat 1 / Alexandra court – 42-46 Kilburn High Rd,
Kilburn
London
Tamas Varga,
<EMAIL_ADDRESS>07 521 455706
If you don't like my work you don't have to pay.